basE91をJavascriptでそこそこ高速に使う

basE91という符号化方式を最近知った。Base64のような感じで91文字使うというもの。1文字のバリエーションが多いので、Base64より膨張率が低いのが特徴だ。C,Java,PHPあたりの実装が公開されている。

ちょっとJavascriptから使いたいことがあったので、実装を探したところJavaからの移植版があったんだが、ちょっと遅い…*1
というわけで移植し直して、アルゴリズム以外のところでできるだけ速くしてみた。

encode/decodeのテストと繰り返し実行時の時間計測ができるようになっている。一応UTF-16UTF-8変換をして日本語も通るようにした。

dankogaiさんの正規表現使ったBase64実装とも比較できるようにしてるが、IEでは割といい勝負になった気がする。他はnative codeだから勝負にならんし、対象データ量にもよるが。これは意外と何かに使えるんじゃなかろうか、と思ってこのエントリーを書いてみた。

ただbasE91ってURIセーフちゃうんよな…。Webでのデータ交換用途に使うとしたら致命的だ。

*1:しかもバグってることが後にわかった。比較ページでencodeすると正しくできていないことがわかる。

Thetis + fcgidでRSSが見れない

グループウェアとしてThetisを導入したんだが、RSSが見れないと言われた。見ると、確かに認証画面が出るものの通らない。
調べてみるとFastCGIなどでリダイレクトしていると発生する問題のようで、認証のためのリクエストまで飛ばしてしまうのが問題だったようだ。従って authenticate_or_request_with_http_basic を使っているRailsアプリ等をFastCGI化したもの全般で発生する。

解決法は単純で、.htaccess

 RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]

みたいなところを

 RewriteRule ^(.*)$ dispatch.fcgi [E=X-HTTP_AUTHORIZATION:%{HTTP:Authorization},QSA,L]

とするだけ。

なぜかustreamなsidebar gadgetを作ってみた

就活真最中なのに、息抜きにustreamの配信が視聴できる、vista以降で使えるデスクトップガジェットを作った。
完全に旬を逃がした話題の気がするが、最近微妙に生配信を聞くようになって、いちいちブラウザ上げてチェックするのが面倒だし、自由に複数チャンネルを監視したいし、チャットにIRCで入るのは簡単なのにビデオをGOM/WMPで見る場合はURL調べるのが激烈に面倒だ、とか色々不満が溜まっていた。
調べてみたらustreamerとかtwitterと連携するとか色々あったけど、別に大量に監視したいわけでもなく、特定のチャンネルを確実かつスムーズに視聴したいだけなので、デスクトップに配置することにした。しかしデスクトップガジェット系でustream探しても見つからない。
で、今のメインマシンがWindows7なので、とりあえずsidebar gadgetで作ろうか、と。7にはsidebarないけど名前だけsidebarなんだな。

で、適当に作った。設定でチャンネル名を入れれば、そのチャンネルが見れる。とりあえず自動再生はOFF。sidebarにドック時は小さく、アンドック時は大きいサイズになる。リサイズも可能。
windows live galleryで公開。最新がなかなか上がらない場合があるので、別鯖にも上げておく。

追記:
Ustream/Justin両方で配信する人が多くなったんで両方見れるようにして、複数チャンネル登録できるようにした版。あんまりここに書く気なかったけど、前のクソガジェットそのままってのもアレなので追記。

続きを読む

すげぇ久しぶりに日記を書いてみる

おー、気付いたら1ヶ月以上日記書いてへんなぁ。M1になってから、なんか滅茶苦茶忙しい。B4のときがゆったりし過ぎてたからそのギャップもあるけど、単純にやることと時間拘束が多い。
月火に授業を詰めて、金にITSpiralがあるんで既に週の半分くらいが潰れて、更に最近は水木にTAが入ってきたからもう、きついきつい。授業もITSpiralもほぼ毎回レポート提出みたいになってるし、研究やってる暇ないよ…。いやまぁ、前期のうちに殆ど単位を取ってしまおうと思って、自分で詰めたんやけどさ。

新歓

今頃研究室の新歓があった。しかも幹事俺。なんだかんだで幹事やったことなかったんで色々ドキドキやったんやが、なんとか無事終わった。外したつもりだった人を実は勘定に入れてたとか19時開始なのに半分以上の人が10分くらい遅れてきたとか若干トラブルはあったが、自己紹介やら会計やらもそれなりにスムーズにいってほっとした。
しかしなんつーか、もう幹事やりたくねぇなぁ。色々気になって精神衛生上良くない。

風邪ひいたかな

先週あたりから、家族全員が風邪とかいう状況やったんやが、俺も遅れて発症した。と言っても若干頭が重いとかやや熱っぽいくらいなんやが。ここ3日程、妙に疲れやすいとか夕方まで持たないとか*1初期症状らしきものはあったから警戒はしてたんやがなぁ…。徐々に悪化している。
連休近いし、騙し騙しいくか。

*1:昨日のITSpiral15時まわったあたりから完全に電池切れてた…

IT Spiralガイダンスとか

政府から補助金もらって去年からやってる、関西の大学と企業が連携してやってるM1向けIT教育過程として、IT Spiral*1というのがある。

先週大学で参加募集があって、今週の頭に当選発表があって、今日阪大中之島センターでガイダンスと初回の講義があるというなかなかスピーディな日程。とりあえず参加申し込みをしてみたら、なんか受かったらしい*2ので今日行ってきた。

とりあえず普通に中之島センターでの無線LANの繋ぎかたとかを解説されて昼飯。で、昼からいきなりグループに分けられて、協調ゲームをした。アイスブレイクゲームと題されていて、グループでの共同作業を(楽しく)行うことでコミュニケーションの心理的障壁を破ってやるというアレだったらしい。
その後は1コマ講義を挟んで、またコミュニケーション実習。どうも今週と来週にコミュニケーション系の講義を入れて、全体の空気をほぐしつつグループワークのやり方をつかんでもらうという狙いのようで、これが結構成功している感じ。講師は企業の人やったが、やっぱこういうコミュニケーション的なノウハウは企業が強いなぁ。まぁ実習の内容は割と普通やったんやけど、全体的な進め方とかそういう所に色々感心した。
この感じでITSpiral全体を通しても、色々収穫があるといいなぁ。

*1:先導的ITスぺシャリスト育成推進プログラムを英語にした略だ、というのをさっき知った

*2:人数制限があるんだが、某研究室の人間が3人居るところを見ると、どう考えても応募が少なかったとしか考えられない…