03082011 music drum'n'bass
Hospitalの記念すべき100番

Yikes Remixいいよね
03082011 music drum'n'bass
02082011 javascript
socket.ioを更に抽象化してnowっていうオブジェクトを操作するだけで非同期メッセージングをできるようにしたという理解でいいのかな。
Quick "Hello World" Exampleを触ってみる。サーバー側はたったの12行
var html = require('fs').readFileSync(__dirname+'/helloworld.html'); var server = require('http').createServer(function(req, res){ res.end(html); }); server.listen(8080); var nowjs = require("now"); var everyone = nowjs.initialize(server); everyone.now.distributeMessage = function(message){ everyone.now.receiveMessage(this.now.name, message); };
ポイントはこの3行か。
everyone.now.distributeMessage = function(message){ everyone.now.receiveMessage(this.now.name, message); };
Expressとの連携も簡単だそうです
var app = express.createServer(); app.listen(3000); var everyone = require("now").initialize(app);
あとで何か作ってみる
02082011 富士
前回と同様、富士のコミュニティfでやります。
ワイワイとなんか作る場なので、ウェブアプリケーションを作ってもいいし、(みんなに背中を押されて)おもむろにさくらのVPSを契約して環境構築にはげんでもいいです。前回はNode.js度が高かった気がしますが、今回もそんな感じはするので、俺のNode.js作品見せつけに行ってやるぜってのでもみんな喜びます。
近くにはもちろんつけナポリタンのお店が点在してます。
僕はリアルタイムウェブでなんか面白そうなアイデアが見つかればExpress+nowjsで何か作りたいなぁと思っていますが、地道に自分のブログシステムのスマホ対応しているかもしれません。
02082011 life
1章のインターネットと2章のDNSの話はわかりやすくて良かったが、知っているのを前提で読んだからな気もするなぁ。
例えば、中高生あたりが読んで素直に理解できる内容なんだろうか?というあたりが知りたいが、amazonの書評は偏ってるからなぁ、booklogも見てみたけど「初心者にはいいのでは」っていう評価してるのは初心者じゃないからなぁ。
ちなみに僕はコレが欲しい
01082011 Python
xooqで本を渡す際に、背表紙の裏側にtwitterアイコン入りのQRコードシールを張っておいたらウッフィーが増えて面白いかなと思い、簡単なPythonスクリプトを書いてみた。
import urllib import Image from cStringIO import StringIO twitter_id = "kzfm" url = "http://chart.apis.google.com/chart?chs=200x200&cht=qr&chl=http://twitter.com/%s" % twitter_id buffer = urllib.urlopen(url).read() qr_image = Image.open(StringIO(buffer)) twurl = "http://img.tweetimag.es/i/%s_m" % twitter_id twbuffer = urllib.urlopen(twurl).read() tw_image = Image.open(StringIO(twbuffer)) qr_image.paste(tw_image, (147, 147)) qr_image.save("twqr.png")

01082011 life
成功するためには、致命的でない失敗を如何に重ねるかと誰かが言ったように、先人の経験から学ぶことは非常に意味のあるものです。
本書は、18人のエキスパートによるエッセイ集のようなもので、様々な経験が語られているので参考になった。
とりわけメトリクスの重要性はウェブオペレーションに限らず全てのカイゼンが必要なプロジェクトにおける真実だよなぁと思った。
あと、読んでいてこれって創薬プロジェクトが抱えている問題そのものじゃないかと思ったりした。という視点で見てみると
が創薬研究において何を意味しているのかを考えるのは意義深いかもと感じた。
インフラはアプリケーションである
31072011 javascript
Node.jsとcoffee-scriptの勉強のために読んでみた。coffee-scriptは(javascriptよりも)読みやすくていいですね。
サーバーにあるファイルを読み書きできます。

複数のクライアントで同時に開いても変更がリアルタイムで反映されているので面白い。
でも使い道がよくわからない。
31072011 life
風邪を引いたり出張が重なったりして行かない日が続くと足が遠のいてしまうことがあるが、そこそこ定期的に通えているという僕のジムライフは、脳が教える! 1つの習慣を読んだおかげで、それなりに楽しく取り組んでいる。
ジムではランニングマシンばかりなので、CNNのiPodを聞くこととと走ることを結びつけている。そうすると今回20分しか走らなかったじゃなくて今日は20分英語の勉強したという風にポジティブに捉えるようになるので、ちょっとだけでもジムで走ることが肯定されるのでよいです。
あと走り終わるとすっきりするので、その後のコーディングとか集中できるのも良いですね。
31072011 life
自分はどっちよりだかよく理解しておいて、意図的に逆の思考にスイッチするようにすると良い解決策がみつかりやすいように思う(経験論)
会議の前に自分の頭の中でブレーン・ストーミングを済ませてしまいます。会議は、その上で何か足りないものを拾うとか、アイデアのベースをみんなで共有するために行います。
30072011 javascript
Blog rolling with mongoDB, express and Node.jsの写経だが、このエントリはわかりやすいですね。

MongoDBって使いやすそうなので、SQLiteから乗り換えようかなと思ってちょっと調べたところMongoKitはSQLAlchemyっぽいような気がしたんだけどどうなんだろうかねぇ。結局javascriptだとクラス関係ないしJSON(BSON)だからMongoとの相性がいいんだろうか?あとでもう少し調べてみよう。
さて、上のエントリのブログのサンプルで使われていたHTMLとCSSのテンプレートエンジンが面白かったので調べてみた。
zen-codingみたいなノリでサクサク書いていけるっぽい。
Jade - robust, elegant, feature rich template engine for nodejs
Hamlっぽいとか書いてあったんだけどHaml知らんからなぁ(普段はFlask+Jinja2使ってます)。
CSSをシンプルに書ける独自のスタイル指定言語らしい。構造化してすっきりと記述できるみたい。
Expressive, robust, feature-rich CSS language built for nodejs
スクリーンキャストもありますね。
CSSなんてすぐにぐちゃぐちゃになって可読性が落ちるので、CSSなんてバイナリと一緒で人が読むもんじゃないんだぜみたいな立場にたてば、DRYを保てるようなこういった仕組みは良いんだろうなと思う、っていうか良い。
モジュールをインストールするとstylusっていうコマンドがついてきて、別にNode.jsじゃなくても使えるのでFlaskで使おうかなと思っている。
こんなstylがあるとして
body font-family "Helvetica Neue", "Lucida Grande", "Arial" font-size 13px text-align center text-stroke 1px rgba(255, 255, 255, 0.1) color #555 h1, h2 margin 0 font-size 22px color #343434 h1 text-shadow 1px 2px 2px #ddd font-size 60px
コマンドラインからコンパイル
$ ../../node_modules/stylus/bin/stylus style.styl
compiled style.css
できた。
body { font-family: "Helvetica Neue", "Lucida Grande", "Arial"; font-size: 13px; text-align: center; text-stroke: 1px rgba(255,255,255,0.1); color: #555; } h1, h2 { margin: 0; font-size: 22px; color: #343434; } h1 { text-shadow: 1px 2px 2px #ddd; font-size: 60px; }