パスワードを忘れた? アカウント作成

pascalさんのトモダチの日記みんなの日記も見てね。 スラドのTwitterでストーリをフォローしよう。

11570615 journal
日記

pascalの日記: 中国についたよ

日記 by pascal

twitterやfacebookにつなげないのは知ってたけど、Googleのいろんなサービスにも繋げなかったりしてかなり暇。
空港のFree Wifiに繋ぐためにパスポートのコピーをとられたりして、なかなかグレートファイアーウォール手強い。

VPNはるとめんどくさいことになるのでやってない。SSH port forwardingできるマシンを準備してくればよかったー。

8140717 journal
日記

pascalの日記: Mac mini (2) 3

日記 by pascal

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倍くらいになったみたいです。

前のエントリ

409012 journal
日記

pascalの日記: すらどあっぷでーと

日記 by pascal

「日記の編集」のフォントが明朝体のままになってるな。
あとCSSが崩れてるのがいくらか(日記の投稿ページは結構壊れ気味@Chrome 15)。

全体的に見やすいレイアウトになっていて、かなりいいかんじです。中の人おつかれさまーー!

352549 journal

pascalの日記: Mac mini

日記 by pascal

そういえば先週末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は超微妙だったけど…。

344833 journal

pascalの日記: 10周年 / 2年 3

日記 by pascal

昨日はすらっしゅぱーてぃに参加して、すごく楽しい時間を過ごせました。
いつもつるんでる人たち・旧くからの知り合い・比較的最近の知り合い・IRC組・編集陣、知ってる人が意外と参加していて、お話ししてたらあっという間でした。
3周年・5周年に引き続いての参加でしたが、今までの中では一番よくorganizeされてたなー、しかも参加費2000円(!)で開催されるとは…と主催者の方々には感謝してます。
ご挨拶した方々・しそびれた方々も、どうもありがとうございました!

ozumaさんが相変わらず若くてびっくりしたんだけど、あの辺の軍団に一度お目にかかりたいです。あの辺とは、ぼんちゃん・とびやん・とりやん・いろごさん。オンラインでもあんまり接点ないのだけど楽しそげ。

//

今日はKaturagi (13740) さんの命日です。昨日彼の名前を「活発にコメントを残している人」としてスクリーン上で見たときはびっくりしました。オンラインでもオフラインでもアクティブな人だったもんなー。思い出すのも供養ということで、彼を知ってる人は心に留めておいてもらえれば(´・ω・`)ノ

336404 journal

pascalの日記: すらっしゅぱーてぃ! 4

日記 by pascal

http://atnd.org/events/16688
3周年、5周年に続いてついに10年になるのかー!!懐かしい人が参加してたらいいなー。
参加するつもりです。よろしくです。知ってる人が少なかったらさびしいのでみんなも来てねー。

322612 journal

pascalの日記: IRC over WebSocket (2)

日記 by pascal

せっかく死ぬほどハマったので、注意すべき点をメモしておく。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

322605 journal

pascalの日記: IRC over WebSocket

日記 by pascal

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ネタにしてもよかったかもしれないなー。ふまふま。

typodupeerror

アレゲはアレゲ以上のなにものでもなさげ -- アレゲ研究家

読み込み中...