GDIでPNGを読み込む

GDIでは通常PNGファイルを読み込むことはできないらしい。

どうしても読み込む必要があったのでちょっと調べてみた

http://code.logos.com/blog/2008/09/displaying_a_splash_screen_with_c_part_i.html

このやり方でうまく読み込めるのだが、どうやらマシンによっては読み込みにFailする。一応XPSP3から使えるとなっているのだが。。。

仕方がないのでGDI+を用いました。

JavaでMongoDBに接続してみた

MongoDBはQueryがちょっと特殊です。

http://gihyo.jp/dev/serial/01/mongodb/0003?page=2

この辺りを参考に。。

データにISODate型で入っているものに対してwhere句はこんなかんじ

これをJavaから接続するにはちょっと悩みました

http://www.mkyong.com/mongodb/java-mongodb-query-document/

http://stackoverflow.com/questions/9091155/mongo-isodate-query-in-java

この辺りを参考に

ポイントはJavaのDateクラスがそのまま用いることができるとのこと。

結構悩みました。。

Kakasiをrubyでつかう(その後)

ruby-kakasiを導入してみたのですが、どうも動きがおかしいことに気づきました

どういう時におかしいかというと連続で違う引数で呼び出す際にどうやら2回めの呼び出し時の引数が聞いていないような感じです。しかもローマ字に変換する際にヘボン式か訓令式か変更した場合のみです

こんなコード

結果がこれ

最初kakasi-rubyがおかしいのかと思いソースコードをいじってみていたのですがどうやらそうではなく、本体側がおかしいことがわかりました。

このぶぶん

どうも訓令式とヘボン式のテーブルを切り替えて使っているようなのですが、高速化のためか一文字目の際にテーブルを作成し、それ以降はキャッシュを見るような感じになっています。しかしstatic変数で管理しているため、Library使用時にはこれがクリアされず、2回めのライブラリ呼び出し時には前回のキャッシュをそのまま使っていたようです

とりあえずキャッシュ部分を削除してみました。

本来ならばきちんと治すべきなのですが、、、、、

本体修正後rubyを実行

期待通りとなりました

kakasi-rubyをruby1.9で動かす

https://github.com/hogelog/kakasi-ruby

ruby用のkakasiモジュールはそのままではruby1.9ではコンパイルが通りません

そこで↓を参考に修正

http://www.metareal.org/2007/06/14/ruby-extension-struct-rstring-macros/

パッチ

と思って作成していたらすでに修正している人がいました。_| ̄|○

https://github.com/hogelog/kakasi-ruby/tree/1.9

Tomcat+DBCP+SQLite

  • server.xml

  • WEB-INF/web.xml

  • jsp

  • 結果

autocompleteで送信パラメタをカスタマイズしてみた

jQueryAutoCompleteではデフォルトの送信パラメタはtermのみでちょっと使い勝手が悪かったりします。

そこでカスタマイズしてみます

source:function(request,response)をオーバーライド

test.js

searchEngine.jsp

MacOS10.8のVirtualBox上でUSB接続のDVDを認識させる

  • iMac MacOS10.8
  • DVD Drive Buffalo BRXL-PC6VU2
  • ゲストWindowsVista Ultimate 32bit

この組み合わせでVirtualBox上のVistaにつなげるにはちょっと苦労しました。

VirtualBoxの設定からポート、USB を選択し+ボタンでBUFFALO Optical ODDを追加します。この際にUSB2.0コントローラを有効にしますが、こちらはVirtualBoxの追加パッケージを入れておく必要がありました。

このまま起動すると、Vista上では不明なデバイスとして認識されてしまい、DVDは使えません。

ネットを調べたところ皆さん苦労しているようで、起動前にUSBをMacから物理的にはなしておき、VirtualBox起動後につけるとかあったのですが、うまくいきません。

半ばあきらめていたのですが、OKWebにあったこれ

「CPUを一個にするとうまくいく!」

半信半疑でVirtualBoxのCPU数を2個から1個へ。

これがうまくいきました。Explorer上でちゃんとDVDドライブとして認識されています

YAML.dumpで日本語が文字化けする

YAML.dumpでUTF8文字列をダンプする際にはバイナリと認識されてしまい、ファイルに保存した際にちょっと困ったことになります。

Psychなどを使う方法があるとのことですが、1.8だと気軽には使えません。

一つすばらしいやり方が紹介されていたのでちょっと改造してみます

http://projectzero-swb.blogspot.jp/2010/06/rubyyaml2.html

  • CentOS5.4
  • ruby1.8.7

実行結果

test3.yaml

rubyのマルチスレッド

rubyはマルチスレッドのプログラムを書いても、CPUは一個しか使ってくれないらしい。

GIL というもののせいらしい。。

http://ja.wikipedia.org/wiki/グローバルインタプリタロック

そこでマルチプロセスのプログラムを作ってみる