
pascalの日記: srad
通知メールの送信元が3時間ほど前に noreply@srad.jp に変更されたみたい。古い人達がまだ日記を書き続けているのを見て、懐かしさを感じる。
スラドのロゴはまだちょっと慣れないなぁ。
pascalさんのトモダチの日記、みんなの日記も見てね。
通知メールの送信元が3時間ほど前に noreply@srad.jp に変更されたみたい。古い人達がまだ日記を書き続けているのを見て、懐かしさを感じる。
スラドのロゴはまだちょっと慣れないなぁ。
twitterやfacebookにつなげないのは知ってたけど、Googleのいろんなサービスにも繋げなかったりしてかなり暇。
空港のFree Wifiに繋ぐためにパスポートのコピーをとられたりして、なかなかグレートファイアーウォール手強い。
VPNはるとめんどくさいことになるのでやってない。SSH port forwardingできるマシンを準備してくればよかったー。
1年半ぶりにPCを手に入れました。前回に引き続きMac mini。
(旧)Mac mini 2011: Core i5 (Dual core) / 8GB / 500GB
(新)Mac mini 2012: Core i7 (Quad core) / 16GB / 1TB
全体的に一回りスペックアップしたなーという感じです。CPUの処理速度的には1.5倍くらいになったみたいです。
以下のURLでJとKを使えば延々と日記を読める。
日記erとしては結構うれしい機能だなー!
http://srad.jp/journals
「日記の編集」のフォントが明朝体のままになってるな。
あとCSSが崩れてるのがいくらか(日記の投稿ページは結構壊れ気味@Chrome 15)。
全体的に見やすいレイアウトになっていて、かなりいいかんじです。中の人おつかれさまーー!
そういえば先週末Mac miniを買っちゃいました。
今までのPC遍歴は、
2003年: Note / Pen3 / 256MB / 30GB
2005年: Desktop / Pen4 / 512MB / 250GB
2007年: Desktop / Athlon X2 / 8GB / 2TB RAID 0
2010年: Netbook / AMD Athlon Neo / 2GB / 250GB
2011年: Chrome book / Atom / 2GB / 8GB SSD
2011年: Mac mini / Core i5 / 8GB / 500GB
おお、意外と買ってるな。2010年のNetbookは超微妙だったけど…。
昨日はすらっしゅぱーてぃに参加して、すごく楽しい時間を過ごせました。
いつもつるんでる人たち・旧くからの知り合い・比較的最近の知り合い・IRC組・編集陣、知ってる人が意外と参加していて、お話ししてたらあっという間でした。
3周年・5周年に引き続いての参加でしたが、今までの中では一番よくorganizeされてたなー、しかも参加費2000円(!)で開催されるとは…と主催者の方々には感謝してます。
ご挨拶した方々・しそびれた方々も、どうもありがとうございました!
ozumaさんが相変わらず若くてびっくりしたんだけど、あの辺の軍団に一度お目にかかりたいです。あの辺とは、ぼんちゃん・とびやん・とりやん・いろごさん。オンラインでもあんまり接点ないのだけど楽しそげ。
//
今日はKaturagi (13740) さんの命日です。昨日彼の名前を「活発にコメントを残している人」としてスクリーン上で見たときはびっくりしました。オンラインでもオフラインでもアクティブな人だったもんなー。思い出すのも供養ということで、彼を知ってる人は心に留めておいてもらえれば(´・ω・`)ノ
http://atnd.org/events/16688
3周年、5周年に続いてついに10年になるのかー!!懐かしい人が参加してたらいいなー。
参加するつもりです。よろしくです。知ってる人が少なかったらさびしいのでみんなも来てねー。
せっかく死ぬほどハマったので、注意すべき点をメモしておく。Viva bad knowhow!
(1) 仕様が固まってない
現時点で最新の仕様は draft-ietf-hybi-thewebsocketprotocol-07 。どんどんアップデートされているので、ぐぐって出てくる情報は古くて使えないのが結構多い。関数名変わってたりするし。
(2) (ちょっと)古いライブラリが転がってる
サーバを書くために Perl の Mojolicious::Lite ってのを最初使ったんだけど、うまくいかなくて原因不明だった。
今ならわかるよ、ライブラリとブラウザのバージョンの違いっぽい。このライブラリは僕が試した時点では draft-hixie-thewebsocketprotocol-75 以前のバージョンっぽくて、WebSocket Protocolのhandshakingのときに 'Sec-Websocket-Origin' フィールドを送ってくれない。試したのは 2011年5月頭なので、きっと直ると思うけども。
(3) (1)と(2)の理由から WebSocket Protocol 開発者がお勧めしてくれたのが pywebsocket。名前のとおり Python のライブラリ。echo サーバ / echo クライアントの見本が付いてるので、自分が作ったサーバ / クライアントがちゃんと動いているかの確認ができる。handshaking に問題があるときはどのヘッダがおかしいかもちゃんと教えてくれて便利。ちゃんとメンテナンスもされてるっぽい。
(4) mod_python / mod_pywebsocket で設定を書くファイルを間違えてちらっとハマったのでメモ。
mod_pywebsocket は pywebsocket についてくる。
今回いじったファイルは /etc/apache2/sites-available/default
追加した内容は以下のとおり。
<IfModule python_module>
AddHandler mod_python .py
PythonHandler mod_python.publisher
PythonDebug On
PythonOption mod_pywebsocket.handler_root /path/to/my/websocket/app/directory
PythonHeaderParserHandler mod_pywebsocket.headerparserhandler
PythonOption mod_pywebsocket.allow_draft75 Off
PythonPath "[ '/path/to/my/python/libraries' ] + sys.path"
</IfModule>
(5) mod_pywebsocketが動かないって思ってちょっと焦ったのでこれも一応。
(4) で設定したディレクトリ (/path/to/my/websocket/app/directory) の下にpython のコードを置く。ファイル名は "_wsh.py" で終わること。普通の python ではなく、以下の2つの関数が必要に応じてcallbackされるっぽい。
def web_socket_do_extra_handshake(request)
def web_socket_transfer_data(request)
(6) mod_python を使うときに import される自分のライブラリはどこに置けばいいの。
(4) に書いたけど、PythonPath を Apache2 の設定ファイルに書く必要がある。
(7) WebSocket から届いたデータを polling したいんだけど。
mod_pywebsocket に付いてくるファイル (msgutil.py) がその機能を実現してたので、それを使えばよいです。
mod_python + mod_pywebsocket がApache2 の上で動くことが確認できれば、そこまでハマることはないかなー。mod_python を走らせてる途中でプログラムが落ちるときは /var/log/apache2/error.log にエラーメッセージが入っててくれたし。
//
Ubuntu 9.04 を使ってるので、以下のコマンドを走らせれば必要なものは手に入りました。
sudo apt-get install libapache2-mod-python
svn checkout http://pywebsocket.googlecode.com/svn/trunk/ pywebsocket-read-only
4月28日、Chrome OS (Cr-48) を手に入れてこれはゴールデンウィーク使いまくるぞー!!と意気込む。
→当然ながら IRC クライアントを入れられない( ;´Д⊂ヽ
→このOSまじで終わってる。PC ですることって開発と IRC くらいしかないのに。
→ブラウザしか使えないならブラウザから IRC できればよくね?
という今まで沢山の人がくり返してきただろうことをやってみた。
ブラウザが任意のプロトコルを喋ることはできないので、残念ながら間に中継サーバが必要。単につくるだけじゃ面白く無いので、21世紀のインターネットを陰から支えてくれるであろうWebSocketを使ってみた。ふゅーちゃーだね。
構成。
* サーバ (IRCサーバとの通信をProxyするだけ。ISO2022-JP UTF8 のコンバージョンくらいはしてあげる)
* JSで書いたIRCクライアント
最初は自分でWebSocket protocolを喋るサーバをPythonで書いて動かしてた。
新しくポートを開ける必要があるのと、WebSocket Protocolの更新についていけないと思われたので、mod_python + mod_pywebsocketを使う方向に変更を加えた。
JSのコードをリファクタリングして、UIも変更して、とりあえずNativeのクライアントと遜色ない使い勝手にした。
ってあたりですー。結構楽しかったけど、Hackathonネタにしてもよかったかもしれないなー。ふまふま。
アレゲは一日にしてならず -- アレゲ見習い