moin2はFlaskベース

コミュニティーベースのコラボレーションツールを探している。

個人的にはSphinxのWeb Supportがいいんじゃないかと思っているんだが、うちのITリテラシーを考えるとちょっと無理すぎるかなぁと断念した。

論文が電子化されているけどpdfは単なる紙の模倣でつまんないがHTML化されてパラグラフ単位とかfigure単位でコメントしたり編集できたりすれば、レビューも作りやすいし、実験はいいけど解釈はクズみたいなトータルでの判断に悩むような論文も切り取れるし、レターみたいな内容が薄いんだか知識を入れ込めなかったんだか分からないような中途半端な文章も好き勝手に補足できる。つまり真のマッシュアップが待っているわけです。

単語に分解して相関を取るとかそういうのとは逆方向に、文脈をつなぎあわせてより抽象とか本質を目指すようなことがやりやすくなるわけですな。正直論文の最後に載っているリファレンスは、島根の場所が知りたいのに日本のあたりを指してるわけで残念な仕組みだよなと思ってるのでもう少し、位置情報を高精度化すれば面白いのにとずっと思っているんだけどなかなかそうはならないのはみんな著者のストーリーを読むのが好きなのかね?他人事なのでどうでもいいけど。

で、音でいうところのサンプリングというか、パラグラフ単位でコメントを入れられる仕組みっていうのは未来があると思っている、RWHで未来を見たというかちょっと感動した。まぁ、そういうのをイントラに構築できたら良かったんだけど現状は難しそうだ(ヨーヨーヨー)。

かといってwikiはなぁ、、、Sphinxっぽく文書出力できる良い感じのwikiが欲しいなぁと思いながら調べていたらmoin2がFlaskベースでフォーマットの変換がしっかりしてそう。ReSTでもOKなのでSphinx->pdfってのもやりやすそう。

moin2

あとは知っているフレームワークなので手を入れやすそうってのもある。化学構造のエディタとか組み込まないといけないし。それからmoin2のソースコード読むのも勉強になるし、モチベーション的にもよろしいです。

まぁそんな感じで今年は、wikiベースの創薬用コラボレーションツールを作ってみるかなと。

Socket.IOのサンプルをCoffeeScriptで書きなおしてみた

WebSocketから、これからのWebを予想してみるを読んで思うところがあったので、年末年始にHTML5 APIガイドブック コミュニケーション系API編を読み直してみたら、色々再発見があったり、一周目で理解が曖昧だった部分がきちんと理解できたりして、有意義な正月を過ごせた。

ProductName 徹底解説 HTML5 APIガイドブック コミュニケーション系API編
小松 健作
秀和システム / 2730円 ( 2010-12 )


最終日をダラダラと過ごしつつ、Socket.IOのサンプルをCoffeeScriptで書きなおしてみた。

handler = (req, res) ->
  fs.readFile(__dirname + '/index.html',
  (err, data) ->
      if err
        res.writeHead(500)
        res.end('Error loading index.html')
      res.writeHead(200)
      res.end(data))

app = require('http').createServer(handler)
io = require('socket.io').listen(app)
fs = require('fs')

io.sockets.on('connection',
  (socket) ->
    socket.emit('news', { hello: 'world' })
    socket.on('my other event', (data) -> console.log(data)))

app.listen(5000)

やっぱブラウザがデスクトップみたいな位置付けになってwebsocketを使ったプログラミングが主流になるんだったら、結局以前のようなソケットプログラミングに回帰してしまって何も変わらない気がするんだが、抽象度が上がるとなんか変わるんだろうか?そこがいまいちイメージできない。

デスクトップという概念が変わるのかなぁ(あれはデバイス依存な概念な気がするし)。そういえばMetro UIは(従来の)デスクトップぽくなかったしなぁ。

デバイスといえばNode.jsでArduinoにアクセスできることを知ったのでなかなか面白いことができそう。

Arduinoとリアルタイムなウェブって相性良さそうですな。

ところで、三連休の最終日に静岡デベロッパーズつくる会#4をやるので、正月休みでなまった身体のリハビリに黙々となんか作るのはどうですかね?暇人お待ちしています。

cでパケットキャプチャを書いてみる

ProductName ルーター自作でわかるパケットの流れ
小俣 光之
技術評論社 / 1974円 ( 2011-07-09 )


同じようなコードの繰り返しで途中で飽きてきたが写経をやり遂げて、パケットキャプチャが動いたらちょっと嬉しい。

チェックサムの計算のしかた

対象となるパケットに対して、16ビットごとの1の補数和ををとり、さらにその1の補数をとる

となっているんだが、なんでコレでうまくいくのか理解できていない

sum = 0;
ptr = (u_int16_t *) data;
for(c = len; c > 1; c -= 2){
  sum += ptr;
  if(sum & 0x80000000){
    sum = (sum & 0xFFFF) + (sum >> 16);
  }
  ptr++;
}

あけましておめでとうございます

1325236049

叔母が脳腫瘍で緊急手術したため、お見舞いに行った先のホテルで年を越しているわけだが、出発時に義母家に犬を預けに行ったら、義母は腎臓結石でぐったりしてたという、、、

そういえば夏休みは実母が入院してお見舞いに行ったなと。そんな感じで身内に病気がたてつづけに発生した一年であったが、全員大事には至ってはいないので、そういう意味では去年はラッキーな一年だったのだろう。

健康が一番ということで、今年も健康に気を使って家族で楽しくやっていきたい。それから、言語的にはScala、ガジェット的にはAndroidを一人前にあつかえるようにしたいなぁ。

2011年に読んだ本

去年2010年に読んだ本というエントリを書いたので、今年も読んだ本の中から良かったものを選んでみた。

アジャイルな手法とか、最近のソーシャルネットの手法を効果的に取り込んだ、創薬研究プロセスとかそのためのインフラ構築に興味があるので、ビジネス本はそういうあたりがインスパイアされそうなものを選んであります。

技術書は色々読んだが、Scalaはもう少し追いかけていきたいなぁと思っている。

ビジネス本

ProductName 「新しい働き方」ができる人の時代
セス・ゴーディン
三笠書房 / 1470円 ( 2011-07-01 )


働き方やこどもの教育には関心があるので、今後どういう方向に向かうのかっていうのは興味がある。

ProductName アジャイルサムライ−達人開発者への道−
Jonathan Rasmusson
オーム社 / 2730円 ( 2011-07-16 )


まだ書評を書いてないけど、これは非常に面白いです。賛成できないところもあるけど、それすら「なぜ賛成できないのだろうか?」と考えさせられるので読んでて楽しかった。インセプションデッキと、エレベーターピッチは創薬プロジェクトでも有効だろうなと思うので取り入れてみたいなぁと。

ProductName デザインの骨格
山中俊治
日経BP社 / 1680円 ( 2011-01-29 )


僕はドラッグデザインにはアートの要素が沢山含まれていて楽しい仕事だと思っているし、工業デザインの範疇に入ると考えている。

技術書

技術書は

ProductName パーフェクトJavaScript (PERFECT SERIES 4)
井上 誠一郎
技術評論社 / 3360円 ( 2011-09-23 )


Javascript使いになろうとするなら必読かな。

ProductName 達人に学ぶ SQL徹底指南書 (CodeZine BOOKS)
ミック
翔泳社 / 2520円 ( 2008-02-07 )


集合指向言語として考えればSQLの言語仕様は非常に面白い

ProductName Scala実践プログラミング―オープンソース徹底活用
小笠原 啓
秀和システム / 2940円 ( 2011-06 )


Perlでいうところの「モダンPerl入門」またはPythonで言うところの「エキスパートPythonプログラミング」に対応する感じの中級を目指す人向けの本

Scalaはもっと盛り上がってもいいと思うんだけどなぁ。

ProductName Emacs Lispテクニックバイブル
るびきち
技術評論社 / 3129円 ( 2011-11-26 )


Emacs使いは読まねばならん。もう少し自分好みに手を入れられるように積極的にelisp書いていきたいなぁ。

javascriptを手っ取り早く学ぶためのjs本フローチャート

今年はjavascriptをちゃんと学ぼうという目標を立てて、Node.jsでWiki作ってみたり、ナポリン(富士のB級グルメのご当地キャラ)のゲームを作ったりしたので、一通りやった感は得られたかなと。

tw11128

Javascriptの本を何冊か読んだので、どういう順番で勉強したら効率的だろうかとGraphvizを使ってフローチャートにしてみた。

jsflow

パーフェクトJavascriptは必読かなと思うが、知識がない段階でいきなり読むと挫折する本なので、JGPかなんかで概要を掴んでおくか、普通にコード書けるようになってから読んだほうが得るものが多いですね。良書でしょう。

ProductName パーフェクトJavaScript (PERFECT SERIES 4)
井上 誠一郎
技術評論社 / 3360円 ( 2011-09-23 )


テスト駆動Javascriptは中級者向けですね。途中まで読んだけどこの本はおもしろい。Jenkinsと組み合わせて継続的インテグレーションまでやりたくなる。

それから、そろそろNode.jsの実戦向けの本が出てくれないかなぁと思っている。

根知男山

旨いね。

1325160056

日本酒の美味さはディラックのデルタ関数のような繊細なピンポイントさが求められるなと。

ProductName 酒のほそ道 宗達に飲ませたい日本酒100選

日本文芸社 / 720円 ( 2011-12 )


Commercial Suicide

ダークめのdrum'n'bassが満載で良い。

ProductName Commercial Suicide: Compilation

Commercial Suicide / 1200円 ( 2011-12-05 )


Roxy / Nymfo & State Of Mindが一番良かったかな。

今年ブログにつけたタグを数えた

今年は640エントリ投稿してた。

エントリについたタグをカウントして多い順に並べてみた。

宣言通りにjavascriptを重点的に学んだ気がする。

tw11128

ちなみに、タグとそのカウントの辞書を作った後に、itemでソートしたい場合にはちょっとめんどくさかった。

for k,v in  sorted(tag_table.items(), key=lambda (k, v): (v, k), reverse=True):
    print k,v

来年はAndroidかなぁ

SQLAlchemyで日付の範囲を指定する

今年一年どんだけエントリ書いたかなーと思ったので調べようとしたら、日付の範囲指定が分からなかったので調べた。

datetime.dateで2011/1/1と2012/1/1の間をand_でつないだものでfilterする

filter(and_(
Entry.pubdate >= datetime.date(relevant_year, 1, 1),
Entry.pubdate < datetime.date(relevant_year + 1, 1, 1),
))

この本はバージョンがちょっと古くなってるけど、僕の中ではまだ現役でたまにお世話になってる。

ProductName Essential Sqlalchemy
Rick Copeland
Oreilly & Associates Inc / 2719円 ( 2008-06 )