おれのソフトバンクの携帯に1日10通ぐらい海外からのスパムが届くようになって、いい加減うざい・・・。 携帯のことが全然わからないので対策もわからない・・・。普通どうすんのかな。

酷使し過ぎたためか、外付けHDDからエラーが。

こ、これが壊れたらおれ数十GBの(広義での)エンターテイメントファイルが・・・。

コマンドプロンプトから

chkdsk j: /F

で修復できた。ひゃっほー。

仕事で、システム移行に伴って、2005年頃出来た現行システムのPHPのソースをちょっと読みました。

設計もコードも、ハッカー的観点から冴えてる!という感じでは無いんですが、何かのフレームワークを使ってるわけでもなくとも、適度に構造化された関数や統一性のある名前やコメントなど、とても分かり易くて、書いた人の几帳面で丁寧な性格が伝わってきました。

システムが2年以上、特にトラブル無く稼動していたこともうなずけるなあと思いました。個人で仕事を請け負っていたこのシステムの作者も今では数人を抱える開発会社の社長として働いているそうです。

地味に良い仕事を見せてもらいました。

ガチ鬱だったので実家(八王子)で療養してたんですが、大分良くなってきたのでアパート(幡ヶ谷)に戻ってきましたー。

仕事は週に1回ミーティング+半日ほど会議室にこもって全員で作業で、あとは自宅に引き篭もって作業してます。暖かくなってきたらチャリでどっか出かけようかなと思います。暇なので誰か遊んでください。

明日、Wiseknotオワタ\(^o^)/パーティーが開かれるようです。 関係者の方ふるってご参加下さい。おれもいきます。

[ Omanga ] – Project: Net Sphere Engineer

(The official sequel to BLAME!.) After the man called Killy managed to do, uh, whatever it is that he actually did at the end of BLAME!, the world is still a dangerous place. The human survivors try to rebuild civilization, but if they find any Netsphere relics, they might go extinct first…

くそっ!英語読めねえよお。

ニコニコ動画を見てるより生産的かなと思ってFastladder入れてみた。

目的はソース読んで勉強すること。ぶっちゃけPlnetは技術的にはRSSリーダーと同じなのでもし作り直すとしたらほとんどパクれるはずとの期待も。特にクローラーのソースを見たかった。(ほとんどの時間がクローラーに費やされたので)

まだやっと動いてざっと見ただけだけどスゴイ勉強になりますな。まず、使ってるライブラリだけでもfeed-normalizerとかrfeedfinderとかopmlとかこんな便利なものがあったのかと得した感じです。

PHP4では上記のライブラリ部分似たような名前で全部書いてたのに俺の苦労はいったい・・・orz。特にfeed-normalizerなんてsimplepieのドブ川のようなソースと格闘し、パッチ送ったのに「そこはセンシティブな部分だからちょっと・・・」などという理由で断られたり苦労しまくったのにfeed-normalizerって名前見ただけでがっくりと肩を落としました。(良い意味で)

クローラーではフィードの中身をRSS広告を削除してdigestで保存して比較してたり、WEBrick::Daemonでデーモン化してたり(Plnetはcron)、フィードとクロール結果を別テーブルで保存してたりと、身に染みてためんなった。デバッグ用にTeeなんてクラスが定義されてるのも面白いなあと思いました。

これがPerl+Sledgeだったら絶対読めなかったけど(Perl暦の方が長いにもかかわらず)読みやすかったのはやはりRuby+Railsのおかげか。

JSの方は、LDRのころから何度読んでも理解できた気がしません・・・。

Railsのproductionでエラー画面(バックトレース)が出るようにするにはどうすればいいんだろう。

1月に読んだ本。全部SFかよ。現実逃避してるみたいで嫌だなあ。

万物理論 (創元SF文庫)
  • 万物理論 (創元SF文庫)
  • 東京創元社(2004-10-28)
  • 東京創元社
  • (著)グレッグ・イーガン
  • (翻訳)山岸 真
  • 定価:¥ 1,260
  • 新品価格:¥ 1,260
  • 中古価格:¥ 264
  • ASIN:4488711022

ネタが沢山詰まってるし、終盤の主人公にはカタルシスがあった。大ネタ自体は、「ちょっっっ」となったけど楽しく読めました。

宇宙消失 (創元SF文庫)
  • 宇宙消失 (創元SF文庫)
  • 東京創元社(1999-08)
  • 東京創元社
  • (著)グレッグ イーガン
  • (原著)Greg Egan
  • (翻訳)山岸 真
  • 定価:¥ 840
  • 新品価格:¥ 840
  • 中古価格:¥ 148
  • ASIN:4488711014

バブルとかの設定がすごく面白い。ネタはシンプルだけどその結果どうなっちゃうかの論理や描写をここまで書いてあるのが楽しい。終盤はもう大変なことになってます。

ディアスポラ (ハヤカワ文庫 SF)

出だしのコンピュータから生まれた生命が自我を持つまでの細かーーい説明はちょっと感動的。でもディアスポラ計画が始まってからはSOハード。ワンの絨毯はまだしも五次元やどかりやマクロ球とか、もうアイデア詰まり過ぎで置いてかれちゃう。って感覚が楽しい1冊。

老ヴォールの惑星 (次世代型作家のリアル・フィクション ハヤカワ文庫 JA (809))

4篇それぞれ毛色が違うしアイデアがあって楽しい。読みやすくて癒された。

第六大陸〈1〉 (ハヤカワ文庫JA)
第六大陸〈2〉 (ハヤカワ文庫JA)

プロジェクトX&プラネテスって感じ。終わり方に希望があって読後感が良い。

MeCabで分かち書きした時、元の文章のどこに半角スペースがあったかわからなくなって困った。

Rubyバインディング使った場合、

result = ''
node = MeCab::Tagger.new.parseToNode('filename.jpg 1024バイト')
result += while node = node.next
  # surfaceに何らかの処理
   node.surface + 'ざわざわ・・・'
end
puts result
=> filenameざわざわ・・・.ざわざわ・・・jpgざわざわ・・・1024ざわざわ・・・バイトざわざわ・・・

こんな感じでsurfaceを単につなげていくと半角スペースが無くなる。困ったのでフォーマットで適当なセパレータを入れてsplitすることにした。

MeCab::Tagger.new('-F%M__SEP__').parse('filename.jpg 1024バイト').split('__SEP__')
=> ["filename", ".", "jpg", " 1024", "バイト", "EOS\n"]

これはヘボい・・・。俺が知らないだけでなんかもっと素敵な解決策があると思うんだけど・・・。