〜2012年2月上旬〜
インスペクタが復活した。8のころとは若干違うが。
Tab Utitlities 1.1.2だとなぜかロケーションバーにURLを入力しても開けない。
1.2pre17に上げないとだめみたいだ。
わかりにくいが、開発バージョンや古いバージョンは
Versionsにある。
小細工しなくても拡張は動くといういことだけど、SQLite Optimizerは互換性がないと言われた。
これはそんなに使ってないし別の最適化アドオンにしよう。
とりあえずAdd-on Compatibility Reporterは無効化してみる。
久し振りにFedora 16でyum updateしたらimap serverにつながらなくなった。
telnet localhost 143するとつながるので、外からアクセスできないだけのようだ。
firewallの設定かと確認してみると、そもそもfirewallはdisableにしてたんだった。
で、dovecotの設定をいろいろ見てみると、
conf.d/10-master.confのタイムスタンプが新しくなっていて、
address = localhostが非常にあやしい。
これをコメントアウトしたらいけた。
なんかdovecotには毎回やられる印象があるな。
穴埋め問題ってとこが新しいね。
この問題はなかなかいい。
return trueがすでにあるのに、どうやってその後でfalseを返すのか?
問題が解けると他の人の解答も見られる。意外な答えがあったりで結構面白い。
ただmethodを作れっていう丸投げ問題はcase/whenでいけちゃうのがちょっと惜しい。
cut, paste, perlを使わなくてもsortだけでok。-kは複数指定可能。
% sort -k4,4 -k2,2n test_imput.txt ウーロン茶 270 A A ミルク 300 F A 抹茶 350 C A コーヒー 270 E B オレンジジュース 300 B B ココア 350 D B
あとこれ本当にsortされてるのかわかりにくいので、column -tを使うといいでしょう。
% sort -k4,4 -k2,2n test_imput.txt | column -t ウーロン茶 270 A A ミルク 300 F A 抹茶 350 C A コーヒー 270 E B オレンジジュース 300 B B ココア 350 D B
いい感じに整形してくれる。
コピペとかいろいろブラウザ上では禁止してるわりには、
まあなんというかズルが簡単にできてしまう。
特に丸投げ問題は。
逆に本当の穴埋めはそれができないので、良問になっている。
まず、
Unreadのページで右側のAdd folderしてrubima-0037とか作る(後からでも名前は変更可能)。
Save directly to this folder: rubima-0037というリンクがbookmarkletになってるので、それをbookmarkする。
これでるびま専用のInstapaperができたので、
るびまの0037号に行ってePub化したい記事をInstapaperする。
ただし、ePub化すると逆順になるのでそこは注意。
まあ、他にフォルダ作れば移動して並び換えることもできるので、あまり気にしなくてもいい。
あとはInstapaperのrubima-0037フォルダの右側の下にePubというリンクがあるので、
これでダウンロードする。Instapaper-rubima-0038-2012-02-05.epubというような名前になる。
残念ながら画像はなくなってしまう。
ebook-viewerなら問題なく表示できる。Sony Reader T1じゃ全然だめなところがあれだが。
Calibreの「本を変換」するときに「検索&置換」で
\<html xmlns="http:\/\/www.w3.org\/1999\/xhtml"\>
を
\<html xmlns="http:\/\/www.w3.org\/1999\/xhtml" xml:lang="ja" lang="ja"\>
に、
"en.*?"
を
"ja"
に、ぐらいで一応T1でも読めるようにはなった。
直接T1でダウンロードできるわけだし、Instapaperだけでいければ最高なんだが。
/(.)(.)(.).?\3\2\1/ というような正規表現を文字列の長さをもとに生成すればいいとやってみたら、
rubequeのやつは"\\"がまともに扱えないことがわかった。
しかたないから8進数で"\134"としてみたら、\1と34とわかれてしまってだめ。
最終的には"\x5c"と16進数にしてなんとか通った。
あ、"\\\\"でもいいようだって、そりゃだめだめだろ。
あとsubで$1とかが使えないとか、while/untilもだめとか制約が多いよ。
ものすごく無駄な方法。時間もかかる。けどいわゆるエラトステネスの篩。
(a=[*2..1000])-a.product(a).map{|x,y|x*y}
もうちょっとまともな方法。
(2..1000).select{|x|(2...x).all?{|y|x%y!=0}}
Bignumの限界に挑戦。
[s=2]+(2..1000).select{|x|0<s%x*s*=x}
しかしwhile使えないのは結構痛いな。
昨日の再掲。割り切れない数値を列挙。
(2..1000).select{|x|(2...x).all?{|y|x%y!=0}}
ド・モルガンの法則により!any?に変換できる。
(2..1000).select{|x|!(2...x).any?{|y|x%y==0}}
!any?ってのはnone?と同じ。
(2..1000).select{|x|(2...x).none?{|y|x%y==0}}
否定ということならselectのほうをrejectにしてもいい。
(2..1000).reject{|x|(2...x).any?{|y|x%y==0}}
返す値がこの場合むだではあるが、any?はfindと同じとも言える。
(2..1000).reject{|x|(2...x).find{|y|x%y==0}}
つまり割り切れる数値を除外。
なかなかいいアイデアだと思うんだけど、コメントにもあるように絶対パスになってないので、
タグ付けしても元のファイルに辿りつけない。
tag() { local t="$HOME/tags/$1"; [ -d $t ] || mkdir -p $t; shift; ln $* $t;}
これがzshだと簡単に絶対パスに変換できる。$*を$*:aにするだけ。
% pwd /home/eban/tmp/foo % set a b c % echo $* a b c % echo $*:a /home/eban/tmp/foo/a /home/eban/tmp/foo/b /home/eban/tmp/foo/c
さすがzshだ。
久し振りにノートPCの電源入れてみたら立ち上がらなくなっていた。
Operation System not foundと言われてもなあ。
とりあえず中身を確認してみる。
メモリも256MBしかないけどUbuntu 11.04のライブDVDが手元にあったので試してみたら、
なんと立ち上がった。結構無理が利くんだな。
でも「ようこそ」の「Ubuntuを試す」ボタンを押したら返ってこない。
やっぱ無理かと思ったが、Alt-F4で終了させてみたら起動のチャイムが鳴った。
その後10分ぐらい待ったがやはり返ってこない。
あきらめようしたらいきなりDVDにアクセスしだした。
ログイン画面に到達した!
でも入れない。
rootもguestもパスワードがわからない。
ああ、ubuntuでいいんだ。入れた。
また10分経過。真っ暗になる。スクリーンセーバーだった。
さらに10分後。静かになった。
「サンプル」と「Ubuntu 11.04のインストール」だけ出てる。
Alt-F2も効かないし、いろいろメモリ不足で起動してないっぽい。
panelもだめだ。でも「サンプル」をダブルクリックしたら一応nautiusが立ち上がったようで。
これでようやくWindowsのHDDが見れるのか?
ハングした。マウスカーソルも動かない。終了。
再起動したらWindows XPが復活した!
わらうしかない。
たぶんバッテリーの充電が完了してCMOSの内容が読めるようになったとかそんなとこか。