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

pascalさんのトモダチの日記みんなの日記も見てね。 過去1週間(やそれより前)のストーリーは、ストーリーアーカイブで確認できますよ。

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

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

284724 journal

pascalの日記: Kinect (2)

日記 by pascal

LinuxからKinectを使えなくて涙目だったんだけど、別のライブラリを使うことで解決した。

sudo apt-get install cmake libusb-1.0-0-dev libglut3-dev
git clone https://github.com/OpenKinect/libfreenect.git
cd libfreenect/
mkdir build
cd build/
cmake ..
make
sudo bin/glview

終了。
ここを参考にした。参考にしたというかコマンドコピペしただけですすみません。

これでようやくなんらかのコードを書けるようになるわけだ。

284370 journal

pascalの日記: Kinect

日記 by pascal

おととい「Kinectをしらないのは小学生までよねー」とか言われて調べてみたら新しいセンサーデバイスとしてめちゃくちゃ興奮したので、さっそく買ってきた。
とりあえず定番なので、Windowsにドライバを入れてMMDで遊ぶ。認識精度はよくないけど、まあまあいいね。
モーションキャプチャというよりは入力デバイスとして遊びたいなぁと思っているところなので、問題はないかな。

Linuxでは基本的にこのブログの通りに進める方針。
http://tclip.blog38.fc2.com/blog-entry-103.html

メモすべき点を箇条書きしていこう。
・libusbはバージョンが1.0.8以上でないといけないらしい。うちのUbuntuさんは古くてlibusb1.0.0までしか入っていないので、別途入れる必要があった。
拾ってきて(http://sourceforge.jp/projects/sfnet_libusb/releases/)、configure && make && make install。一発。

つづく?

262775 journal

pascalの日記: Yak shaving with Blu-ray drive 1

日記 by pascal

Blu-ray driveを買ってきた。

マシン切って現在のDVDドライブをreplaceする。
→起動しない。てかなんか起動ディスクが飛んでるД
→別のディスクにOSインスコ。
→とりあえずBlu-rayドライブ認識したので試しにデータを書き込んでみる。
→なんか異様に遅かったけど書き終わる。やった!
→あれ、DVDが1枚足りない。もとのドライブに入れっぱなしだったか。
→繋ぎ直してDVDを救出。
→っていうかBlu-rayの映画みたいよねー。でも手元にあったBlu-rayディスク再生できない。
→えっ、25GBもあるデータをextractした後に再生しなきゃいけないの?ばかなの?
→最近はmakemkvってツールがデータをextractしながらストリーミング中継してくれるらしい。まあ許せる範囲。
→wget; ./configure; make; make install
→おおすごい!見られた!だけどすんごいカクカクしてるんだけど…。CPUはAMD Athlon X2 BE2350。もう古いのか…?
→GPU支援を使えば早いらしいよ!
→nVidiaだけサポートされてるっぽい!うちnVidiaのGPU乗ってる!俺のターン!
→mplayerの設定しようとする→設定画面が落ちて設定できない( ;´Д⊂ヽ
→VLCの設定しようとする→GPU支援は1.1.0からサポートしてます!が、Ubuntu 9.10のパッケージにあるのは1.0.2です!hahaha
→このやろーtar落としてきてconfigure; make; make installしてやるヽ(`Д´)ノ
→(./configure→ほげふがが足りません→--disable-hoge-feature)を5回繰り返す
→環境変数がry
→ぱすかるはちからつきた。 ←いまここ!!NEW!

データの読み書きできるしDVDの映画も見られるからもういいよ(´・ω・`)ばーかばーか
ちなみにUbuntu 10.04と10.10はうちのマシンだとディスプレイ周りがおかしくてあんまり使えません。。

typodupeerror

身近な人の偉大さは半減する -- あるアレゲ人

読み込み中...