basE91をJavascriptでそこそこ高速に使う
basE91という符号化方式を最近知った。Base64のような感じで91文字使うというもの。1文字のバリエーションが多いので、Base64より膨張率が低いのが特徴だ。C,Java,PHPあたりの実装が公開されている。
ちょっとJavascriptから使いたいことがあったので、実装を探したところJavaからの移植版があったんだが、ちょっと遅い…*1。
というわけで移植し直して、アルゴリズム以外のところでできるだけ速くしてみた。
encode/decodeのテストと繰り返し実行時の時間計測ができるようになっている。一応UTF-16⇔UTF-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で公開。最新がなかなか上がらない場合があるので、別鯖にも上げておく。
- http://no18.info/~kazy/ustream/ustream.gadget (最新)
- http://gallery.live.com/LiveItemDetail.aspx?li=2a4808d0-ea68-430a-8b46-7bafb4b98e73 (日本語)
- http://gallery.live.com/liveItemDetail.aspx?li=312fe344-551e-4a39-a7e1-2c4d55586a99 (説明文が英語なだけ)
追記:
Ustream/Justin両方で配信する人が多くなったんで両方見れるようにして、複数チャンネル登録できるようにした版。あんまりここに書く気なかったけど、前のクソガジェットそのままってのもアレなので追記。
- http://no18.info/~kazy/ustream/livestream.gadget
- 説明とか: http://www36.atwiki.jp/jikkyosha_ust/pages/14.html#id_895ff6d0
すげぇ久しぶりに日記を書いてみる
おー、気付いたら1ヶ月以上日記書いてへんなぁ。M1になってから、なんか滅茶苦茶忙しい。B4のときがゆったりし過ぎてたからそのギャップもあるけど、単純にやることと時間拘束が多い。
月火に授業を詰めて、金にITSpiralがあるんで既に週の半分くらいが潰れて、更に最近は水木にTAが入ってきたからもう、きついきつい。授業もITSpiralもほぼ毎回レポート提出みたいになってるし、研究やってる暇ないよ…。いやまぁ、前期のうちに殆ど単位を取ってしまおうと思って、自分で詰めたんやけどさ。
IT Spiralガイダンスとか
政府から補助金もらって去年からやってる、関西の大学と企業が連携してやってるM1向けIT教育過程として、IT Spiral*1というのがある。
先週大学で参加募集があって、今週の頭に当選発表があって、今日阪大中之島センターでガイダンスと初回の講義があるというなかなかスピーディな日程。とりあえず参加申し込みをしてみたら、なんか受かったらしい*2ので今日行ってきた。
とりあえず普通に中之島センターでの無線LANの繋ぎかたとかを解説されて昼飯。で、昼からいきなりグループに分けられて、協調ゲームをした。アイスブレイクゲームと題されていて、グループでの共同作業を(楽しく)行うことでコミュニケーションの心理的障壁を破ってやるというアレだったらしい。
その後は1コマ講義を挟んで、またコミュニケーション実習。どうも今週と来週にコミュニケーション系の講義を入れて、全体の空気をほぐしつつグループワークのやり方をつかんでもらうという狙いのようで、これが結構成功している感じ。講師は企業の人やったが、やっぱこういうコミュニケーション的なノウハウは企業が強いなぁ。まぁ実習の内容は割と普通やったんやけど、全体的な進め方とかそういう所に色々感心した。
この感じでITSpiral全体を通しても、色々収穫があるといいなぁ。