海外通販(つうか、aliexpress)でちょっとしたトラブルがあり、クレームをつけたところPayPalに返金するからアカウントを教えろ、といわれた。
PayPalで送金を受けるためには、PayPal上で本人確認をしなければならず、若干面倒だったので、ここにメモ。
海外通販(つうか、aliexpress)でちょっとしたトラブルがあり、クレームをつけたところPayPalに返金するからアカウントを教えろ、といわれた。
PayPalで送金を受けるためには、PayPal上で本人確認をしなければならず、若干面倒だったので、ここにメモ。
実家でsheevaplugのSDカードが壊れて起動しなくなっていたようなので、これまで使っていた intel の DN2820FYKH を実家用に回して、shuttle XH170V で1台組んでみた。
sony reader をもう一台買い足そうと思って調べたりしていたところ、先々月くらい?からもうsony storeでも出荷終了で、変えなくなってしまったようだ。
もう中古でしか買えなくなってしまったようで、結構残念。ちょっと悔しいな。
reader storeで結構買っちゃったので、いまさらほかのものに乗り換えるのもなんだし、物理キーがついてるやつとなると、あまり選択肢がない。
うーん。これからどうしようか悩む。
しばらく間があいてしまったが、先日やっとフランスから帰国した。
その後、また家を探して借りて、仕事も戻って、落ち着いてきた感じ。
またぼちぼち再開します。
フランスに行っている間は、まぁフランス語は話せるようにはならなかったけど、いろいろと観光できたのはよかったかな。
フランス国内のほか、イギリス、イタリア、ポルトガル、スイス、スペイン、オランダ、ベルギー、ドイツに行った。
そのうち旅行に行った記事を書くかも。
PRS-T3Sのスクリーンが壊れたようだったので、aliexpressでスクリーンを購入し、iFixitの記事を参考にして修理した。
以前から調子が悪く、だましだまし使っていたCentOS7のルートディレクトリを入れていたUSBメモリがついに壊れた。
昨日btrfsが急にreadonlyでのマウントになっていた。
ログを見たりしたが、原因がわかるはずもなく、とりあえずカーネルが新しければなんとかなるかもしれんと思って、fedora23のモノにさしてみて、btrfs checkしてみたら、3つのスナップショットのツリーが壊れているようだったので、そのスナップショットを削除してみようとしたところ、削除できず(正確には30分ほど待ってもなんとも反応がなかった)。
もうこれはUSBメモリが壊れたんだろうなあと踏んで、USBメモリのファイルシステムを消したうえでchkflshで確認してみたところ、最後まで読み込めずにエラーで終了。その後、USBメモリはどうやっても認識させられなくなってしまった。(あ~あ)
もうしょうがないので、別のUSBメモリを用意して、ファイルシステムを作成。バックアップから復旧して、grub2-install やら kernel の reinstall やら grub2-mkconfig やらをして、復旧させた。
この別のUSBメモリというのも、windows8でReadyBoost用に使っていたものなので、耐久性にはおそらく難があって、また近々似たようなことが起こるかもしれない。
続きを読む btrfsでCentOS7のルートディレクトリにしていたUSBメモリが壊れた。。。。
壊れたSONY READER PRS-T3Sのスクリーンの代わりを探して、ALiExpressで購入した。
届くかどうか不安ではあったが、とりあえず2週間ほどで到着。
会員登録やクレジットカードでの購入手続きはさして難しいことはなく、まぁまぁ普通な感じ。
(日本語訳はいまいちなので、英語で読む方がよいかと。)
出品者によるのかもしれないが、支払いの際に通貨が選択でき、このとき米ドル以外の通貨でも特に手数料が上乗せされているようには見えなかったので、日本円でそのまま購入。
とりあえずは届いたので、お次はスクリーンの交換・修理だ。
いつものようにRubyで解きました。
先日 sony reader を持ち歩いていたところ、画面が正常に更新されなくなってしまい、画像のようにスクリーン上側が切れてしまったようになってしまった。。。
これはたぶんスクリーンが壊れてしまったのだと判断して、いろいろ探してみると、iFixitの記事があった。
現在代替品を買うのも大変な状況で、仕方ないのでこれを真似してみるべくhttp://www.aliexpress.com/でスクリーンを注文した。送料込み3900円くらい。
中国の問屋か何かに直接発注できる楽天みたいな感じのサイトだったけど、今は到着するのを待っているところ。ちゃんと届くのだろうか、、、。
有川浩といえば、図書館戦争は1巻だけ読んでいまいち合わなかったので、先は読んでいない。
塩の街も読んだはずだけど、もう中身は覚えてないなぁ。
「県庁おもてなし課」は、以前話題になったのと、なにより電子書籍の安売りがあった時に買っていたので読んだ。
全体的には、軽くて読みやすい感じ。あっさり読めるので、移動の暇つぶしくらいにはちょうどいいのかも。
話は嫌いじゃないけど、恋愛要素よりも観光や役所の部分をもっと膨らませてくれればさらに良かったかなぁ。
前半は、県庁勤めの主人公が「民間感覚」というカルチャーショックを受けながら成長していく、というくだりが中心だった。この辺りをもう少し読みたかったような気がする。役所の中で、おもてなし課で、新しいことをやるのは大変なんだっていうことを期待してこのタイトルの小説を買ったと思うんだけど、後半だんだんと恋愛話じみてきて、あれれ?となる。
後半の、特に作家先生のくだりはちょっと、、。
確かに物語的な必然を整えたあとではああなるのはわかるんだけど、話としてそれいるか?と、あとから考えるとそんな気もする。
でもまぁ、基本的には読みやすいので、読んでいる途中ではすらすらと流れる感じで、気にしなければ気にならない、ということかもしれない。
作題者によるまとめはhttp://togetter.com/li/971415から。
問題解説はhttps://codeiq.jp/magazine/2016/05/40858/から。
問題の概要はこちら。
■ 1 ■
四角形ABCDについて、∠ABD=a,∠CBD=b,∠ACB=c,∠ACD=d とおきます。
∠ADB を求めることを考えましょう。
さて、a,b,c,d の値(単位は度)に対し、∠ADB の値(単位は度)を 10^6 倍したものの整数部分を F(a,b,c,d) と定義します。
F(a,b,c,d) を求めるプログラムを書いてください。■ 2 ■
自然数 n に対し、次の性質をもつ自然数 d の総和を G(n) と定義します。
n を d で割った余りが 1 に等しい。
G(n) を求めるプログラムを書いてください。■ 3 ■
先頭にゼロを持たない自然数であって、逆から読んでも同じ数になる数を回文数と呼びます。
自然数 m に対し、m 以下の回文数の総和を H(m) と定義します。
例えば、H(20)=56 です。20 以下の自然数では 1~9 と 11 が回文数だからです。H(m) を求めるプログラムを書いてください。
■ 問 ■
標準入力から、半角空白区切りで自然数 a,b,c,d(a+b+c < 180 かつ b+c+d < 180)が与えられます。
標準出力に H( G( F( a,b,c,d ) ) ) の値を出力してください。
rubyで書いて提出した回答は下記の通り。
最初に提出したものでは f の計算で数値誤差があって間違った。この手の話は久々。
下のコードでは、切り捨て前に十分小さい値として0.00001をたしている。
この手の問題は整角四角形問題というらしい。学生の頃、三角関数なしでどうやって解くんだと悩んだ記憶がある。
h の計算では、1ケタの数は別に足しておいてから、11 から順に、回文数をひたすら小さい方から生成して順にたしているだけ。数値を文字列にしてひっくり返して足して、、と、手抜きだけど通ったのでまぁいいや、という感じ。
# 正弦定理で等しい辺の長さを探してごにょごにょいじると計算できる。
def f(_a,_b,_c,_d)
include Math
a=_a*PI/180
b=_b*PI/180
c=_c*PI/180
d=_d*PI/180
s=sin(b)*sin(d)*sin(a+b+c)/sin(a)/sin(c)/sin(b+c+d)
ret = atan(sin(b+c)/(s+cos(b+c)))/PI*180*(10**6) + 0.00001
ret < 0 ? (180000000 + ret).to_i : ret.to_i
end
# ナイーブに全通り1からnまで探索すると時間切れなので、少し工夫。
# n=(n-1)/d * d + 1 なので、nをdで割った余りが1のときは、
# (n-1)/dで割った余りも1になる。
# これを使って、1 から sqrt(n)までしか探索しない。
# また、nをdで割った余りが1でないときは、d*i(i>1)で割った余りも
# 1でないということを利用して、判断する回数を減らす。
def g(n)
res=n-1
max=Math.sqrt(n).to_i
arr=Array.new(1+max, false)
(2..max).each{|d|
next if arr[d]
if n%d == 1
res+=d+(n-1)/d
else
(1..(max/d)).each{|i| arr[d*i] = true }
end
}
res
end
# 回文数を小さい方から全通り生成して、mより小さければ結果に足す。
def h(m)
i=1
tmp=-1
len = m.to_s.length
if len == 1 # 1桁のときは別処理。
return (1..m).reduce(&:+)
else
res=45
end
while tmp != res
tmp=res
str=i.to_s
if str.length * 2 == len
wk=(str+str.reverse).to_i
res+=wk if wk < = m
else
([""] + %w(0 1 2 3 4 5 6 7 8 9)).each{|sp|
wk=(str+sp+str.reverse).to_i
res+=wk if wk <= m
}
end
i+=1
end
res
end
a,b,c,d=gets.chomp.split.map(&:to_i)
puts h(g(f(a,b,c,d)))
CentOS7 で logwatch を導入したが、毎日メールが送られてきてつらいので、メールの出力を抑制してみた。
毎日メールを送る原因になっているのは以下の二つ。
というわけで、それぞれ /etc 以下にファイルを作って対策した。
続きを読む CentOS7 で logwatch の出力を抑制
https://ttandai.info/archives/1894に書いた通り、btrfsではfsckしなくていいよ、ということだが、1か月ほど使ってから btrfs scrub したら、checksum error が /var/log/messages の中にいくつも出てきたので、とりあえず不良ファイルをバックアップから戻したあと、 logwatch の導入と btrfs scrub の定期実行で対策した話。
課題に手間取ったり、日程がタイトだったりして若干苦労したが、なんとか最後までやった。
続きを読む edX で オープンガバメントのMOOCをとった。( DelftX – OG101x )
回答まとめはこちら
問題は下記。
1 から 4 の数字を使って作る n 桁の整数のうち、9 の倍数となるものの個数を F(n) と定義します。例えば、F(1) = F(2) = 0、F(3) = 10、F(4) = 40 となることが確かめられます。
標準入力から、自然数 n(1 ≦ n ≦ 20)が与えられます。標準出力に F(n) の値を出力するプログラムを書いてください。
1111…から4444…まで全通り生成して数えていては終わらないので、9の剰余で分類します。すなわち、1から4の数字を使って作るn桁の数字のうち、9で割ったあまりがrになるものの個数をとすると、
の漸化式になります。
これをrubyで計算し、F(n,0)を出力するコードが下記。Hashの引数が9で割ったあまりになっています。
n=gets.to_i h={} h[1]=h[2]=h[3]=h[4]=1 (1...n).each{|m| tmp=Hash.new{|h,k| h[k]=0 } h.each{|k,v| (1..4).each{|i| tmp[(i+k)%9]+=v } } h=tmp } puts h[0]
最近始めたschemeで書いたのはこちら、末尾再帰といえば聞こえはいいけど、ループを再帰にして、状態を関数の引数で覚えている、というだけ。もっとスマートに書けると思うんだけど、引数10個くらいだしまぁいいよね、ということで。
(use-modules (ice-9 rdelim)) (define (solve i a0 a1 a2 a3 a4 a5 a6 a7 a8) (if (= i 1) a0 (+ (solve (- i 1) (+ a5 a6 a7 a8) (+ a6 a7 a8 a0) (+ a7 a8 a0 a1) (+ a8 a0 a1 a2) (+ a0 a1 a2 a3) (+ a1 a2 a3 a4) (+ a2 a3 a4 a5) (+ a3 a4 a5 a6) (+ a4 a5 a6 a7))))) (display (solve (string->number (read-line)) 0 1 1 1 1 0 0 0 0)) (newline)
なんかうりゃーっとやる気が出てきたので、サーバ業者が提供していた今までのドメインをやめて、新しくドメインとってWordPressのアドレスを変えてみた。
WordPress内部のアドレスを変えるのは、基本は「設定→一般」の設定項目でアドレスを変えるだけで、WordPress的には全く問題なくできる。
今までのサイトの方からは、一応301で新しい方にリダイレクトするようにしておいて、検索エンジン対策をしておく。(.htaccess で Redirect permanent な感じ)
(同じファイルを見るようにすれば手間はかからないが、新しい方のサイトがなかなかインデックスされないというはめになってしまうと考えた。)
WordPress自体はポータブルにできているようで、ディレクトリごとmvしてしまってもそのまま動いてくれたので、ありがたい。
あとは、いろいろなところのアドレスを直せばおしまい。よそからリンクしてもらってくれていたところは、この機会に直してもらおうかなぁ。
いまだにgooブログの方にちょこちょこと飛んでくる分があるので、なかなかgooブログをたためない、、、
以前、sheevaplug のeximを使って、外部のSMTPサーバ経由でsendmailコマンドでメール送信する方法を記事にしたが、(https://ttandai.info/archives/758)
CentOS7で同じことを実現する方法を探っていたら、結構前から、普通のmailコマンド(heirloom mailx になっている)のオプションで、普通に外部のSMTPサーバ経由でメール送信できるようになっていたので、メモを残しておく。(まぁ、このことに気付いたのは1年以上前なのだけれども、わざわざ記事にはしていなかった。最近これを扱う機会があったので、まぁ一応残しておく。)
この方法は root 権限なしでも可能なので、設定変更できないサーバ上でメール送信する際にも便利です。
最近ゲームやら漫画やらも飽きてきたので、edXを始めた。
とりあえず、schemeでプログラミングのやつ(How to Code: Systematic Program Design)と、Open government のやつ。
始めはcouseraとか見たけど、無料ではenrollできない感じだったのでパス。
gaccoは、self-pasedなやつがパッと見た感じではなさそうだからなんだか面倒。
edXは、東大とか京大でも何かコースを出していたりするみたいだね。ふーん。たぶんとらないけど。
始めてみると、いろいろと視野が広がる気がして割と楽しい、が、いまさら社会科学系の論文を英語で読むのはちとつらいかなぁ。あとは、英語の発音がアメリカ英語じゃない場合があって、字幕をみないと混乱する。
この記事やこの記事で最近触っているbtrfsでは、fsckが必要ないらしい。
実際、fsck.btrfs をしてみると、btrfs checkを使えと助言してくれるようだ。(man fsck.btrfs にもそのように書いてある)
実際、何もしなくてもごくごくたまーに、syslogの中でbtrfsのchecksumエラーの修正とかそういうのが出てくるので、少なくともCentOS7では割といろいろよきに計らってくれているのだろうと想像している。
本当に何もしなくていいのかなぁ、といろいろ見ていると、
http://marc.merlins.org/perso/btrfs/post_2014-03-19_Btrfs-Tips_-Btrfs-Scrub-and-Btrfs-Filesystem-Repair.html
というのにあたり、まぁとりあえず btrfs scrub はやっておいた方がいいらしいというのはあるが、これってRAID向けの機能のような気がするので、とりあえず使わない。(試しにやってみたら、チェックサムエラーの修正が起こってしまったのだけれども、、、このコマンド自体はデータを読むだけで何もしないはずだが、データを読んだときに何か起こったのかなぁ。定期的に全データさらうっていうのもありか、、? うーん。 今は、USBメモリな起動ドライブにあまり負荷をかけたくない。)
なので、
https://btrfs.wiki.kernel.org/index.php/FAQ#When_will_Btrfs_have_a_fsck_like_tool.3F
にも書いてある ”Note that in many cases, you don’t want to run fsck. Btrfs is fairly self healing, …” という文言を信じて、何もしないことにした。
なお、btrfs では、defrag をするコマンドも用意されているが、まぁ、これも負荷があるだろうから、定期的にはやらないことにした。
https://blogs.windows.com/windowsexperience/2016/03/17/upgrading-existing-windows-phone-8-1-devices-to-windows-10-mobile/
というわけで、さっそく、Lumia640に upgrade advisor を入れてチェック、とっととアップグレードを始めた。
本体メモリが足らなかったので、適当にSDカードにデータを逃がして、アップグレード開始。
ちょっと時間がかかるが、今アップグレードが走っているところ。どうなるかな~。
で、30分くらいかかってアップグレード終了。
Microsoftアカウントのパスワードを入れ直す必要はなく、wifi設定も完全に引き継いだ状態で起動。
ちょっと試した感じだと、
印象としては見た目が変わった感じは大きいけど、通知アイコンまわりの操作感が変わったのは地味に便利。たぶんこれはいいものだ。
あ、そういえば、Lumiaカメラをはじめ、いくつかのアプリは無くなってしまいましたな。まぁいいけど。
======
その後、しばらく使っていると、以前より電池の持ちが悪くなった感じがある。 以前 Android を使っていたときと同じような感触。
不要なアプリのバックグラウンド動作を片っ端から切ってみたら、まぁちょっとは持つようになったと思うが、ちょっとがっかり感があるかなぁ。