放射線測定器のメモ
まだ注文したのが届かないけど,色々選んだ際に調べたことをまとめて,放射線測定器のメモのページを作成した.
今後も色々調べたことをまとめていくつもり.
SPACE DiVA を契約したのだけど,意外とチャンネルの切り替えがめんどくさい.
また,Windows Media Encoderでエンコードして,別の場所で聞いている場合,当然チャンネルの切り替えができない.
これを何とかしたいと思って,学習リモコンを探してみると,4000円台でいいやつがある模様.
BUFFALO PCastTV2対応 PC用学習リモコンキット PC-OP-RS1
既に解析された方がいて,http://k-home.no-ip.info/wiki/index.php?PC-OP-RS1にLinuxでの認識方法,サンプルプログラムがあった.
Windows用のリモコンソフトは付いてくるものの,リモートデスクトップ経由などで操作するのはやはり面倒.
Linuxから制御できるのであれば,Webから操作するようにするのも楽そう…ということで,早速購入.
リモコンが届いたら,Wikiに書かれてる方法であっさり認識.
サンプルプログラムをそのまま使って,リモコンの0~9のボタンを学習.
サクッとCGIを書いて,Webからクリックで,3桁の番号を順番に送信してみるようにしたところ,上手く動いた.
画面イメージはこんなかんじ.
ch番号クリックで切り替わる.
チャンネル名をみながらすぐに変えられるので,チューナーの前にいるときもコレが便利.
ケーブルTVとかも,EPG使うより,PCからこういうツールで操作した方が画面が広くて楽そう…と思ったけど,番組情報が公開されていないのでダメかな...
ErlangにはMySQLに繋げる方法はいくつかあるけれど,ODBC経由で利用する方法を試してみた.
直接ドライバで繋げる場合はこの辺が使えるかもしれない.
http://yarivsblog.com/articles/2006/09/13/erlang-mysql-driver-reloaded/
http://code.google.com/p/erlang-mysql-driver/
ただ,この辺を使うとライセンス的になんか言われそうなのが微妙.
プロトコルにはGPLライセンスは影響しないはずだが,MySQL側は以下のようなことを言っているようだ.
これがGPLプロトコルであるので、MySQLサーバーに接続するかあるいはMySQLサーバーをエミュレートするためにそれを用いるすべての製品、あるいはプロトコルを用いるか、任意の同様の目的のために、GPLによって拘束されるすべてのクライアントとサーバーの間に間に入るために。
したがって、プログラムを書くためにこの記述を用いる場合、GPLとしてプログラムをリリースしなければなりません。
Erlangには標準でODBCのモジュールがあり,これを使う場合はおそらくセーフだとわたしは思うので,ライセンス的にはこちらの方が安全だと思う.
ODBCモジュールを使う場合は,以下のような構成になる.
・Erlangエミュレータプロセス(ユーザのコードはここで動く)
・ODBCドライバプロセス(odbcserverという名前のOS上のプロセスが別に作成される)
- unixODBCライブラリを利用(LGPL)
- MyODBC-unixODBCライブラリを利用(最新版のVer3系はGPL.Ver2系まではLGPL)
odbcserverプロセスはGPLの影響を受けるかもしれないけれど,Erlangエミュレータ自体は別プロセスであり,かつMyODBCと一体となって動くわけではないと言えると思うので,おそらく大丈夫じゃないかなぁ.
ErlangエミュレータとODBCドライバプロセスの間は,MySQL関係なく,汎用的なODBCを利用するための通信でしかないので.
(もちろん最終的には裁判でしか白黒は付かないんだろうけども.)
MyODBC-unixODBCをVer2系にすればGPLのものはないので,これならば確実に安全.
手元では,Ver3系の方でテストしてみた.
■ 使い方
● ErlangをODBCライブラリ付きでインストール
Erlangはインストール時にODBCライブラリがあるか確認し,あればODBCモジュールをインストールする.
このため,もしODBCモジュールが既に入っていない場合は,unixODBC(rpmなどで入れる場合はdevelパッケージも)をインストールした上で,Erlangをインストールし直す必要がある.
ODBCモジュールが入っているかは,erlシェルから以下のように確認できる.
1> application:start(odbc). ok
上記のようにokがでればODBCモジュールが入っている.
● MyODBCのインストールと設定
MyODBC-unixODBCをrpmなどでインストールする.
その後,設定ファイルを作る.
/etc/unixODBC/odbc.ini は以下のような感じ
[myodbc] Driver = myodbcdriver Description = MySQL ODBC 3 Driver DSN SERVER = localhost PORT = USER = root Password = Database = test OPTION = 3 SOCKET =
/etc/unixODBC/odbcinst.ini は以下のように.
Driverはmyodbcのライブラリのパスを指定する必要がある.
[myodbcdriver] Description = MySQL ODBC 3 Driver DSN Driver = /usr/lib64/unixODBC/libmyodbc3.so
● Erlangから使う
準備ができたら後は普通に使うだけ.
1> application:start(odbc). ok 2> {ok, Ref} = odbc:connect("DSN=myodbc", []). {ok,<0.39.0>} 3> odbc:sql_query(Ref, "SELECT now()"). {selected,["now()"],[{"2009-10-17 19:43:20"}]} 4> odbc:param_query(Ref, "SELECT ?, ?", [{sql_integer, [12]}, {{sql_varchar, 100}, ["12345"]}]). {selected,["12","12345"],[{"12","12345"}]}
数字も文字列として返ってきてしまうようだけど,後は普通に使える.
1行ずつ取り出す方法などは,Erlang ODBC User's Guideにサンプルがあるので,そちらを読めばすぐわかると思う.
Ajaxで履歴を使えるようにする jquery history plugin は,今まで IE8 でモードによってコードを少し変えないとうまく動かなかったのですが,serpereさんよりいい解決方法をいただきました.ありがとうございます.
Twitterでコメントもらってから少し時間が経ってしまいましたが(^^;,先ほどページの方を更新しました.
IE8でどのモードでもちゃんと動くようになりました.
また,BBSの方でIE6でhttps領域で使うとアラートがでる問題の解決方法もいただいたので,それも反映しました.
ページも英語だし,英語で連絡をいただくことが多いので,どうしても更新に時間がかかってしまい(^^;
excite翻訳とかで翻訳しながらの更新なのでなかなか.英語がもっとできたら良かったんですが...
住宅ローンとは直接関係はないけれど,家計への影響がかなりあると思うので,シミュレーションできるようにしてみた.
子どもがいるので今は手当でプラス…という人でも,配偶者控除廃止の影響で生涯で見るとマイナスだったりすることもあるので,注意が必要ですね.
あまりテレビではその辺報道しないので,子ども手当が出る→それを見込んで住宅購入→手当終了とともに返済行き詰まり,みたいなケースが増えないか心配.
手当の額が大きいだけに,手当の有無で家計への影響もかなり大きいし.
まぁ,もし民主党が政権とって制度が実施されることになれば,その時点では報道されるのかもしれないけども(^^;
やっぱり今は選挙前だからその辺は触れたくない,ってところなのかなぁ...
jQuery History プラグインを更新しました.
実はここ最近何度か更新していました.
JavaScript関係のどこかで紹介されたのか,ここ最近英語でのメールが何通もきて,色々パッチをもらいました.
おかげで,IE8/Safari4/Chrome2にもばっちり対応できました.
(わたしはほとんどパッチを取り込んだだけ(^^; ありがたいことです.)
Ajaxで戻るボタンが使えないのが不便な場合,これを使うと対応できます.
(ただし,フラグメント部分にページ情報を保存するので,それを使うようにページを書き換えないといけません)
英語のメールはいつもエキサイト翻訳でなんとか送っているので,意思疎通が大丈夫なのか若干不安ですが,まぁ何往復かメールのやりとりができているので,つたないながらも伝わってはいるのかな….
普通の会話もばっちり変換できるくらい,機械翻訳が進化してくれるといいのですが.(^^;
こちらで引用されているのを発見したのでコメントしてみます.
forkするみたい。pipeでやってるのかな。いずれにしろここがボトルネックか。。。
erl_ddllの場合はforkはしない(ハズ)です.
なぜここがボトルネックになるかというと,
・ドライバと通信するのは load_driver したプロセスが行う(のが普通?)
・そうすると,他のプロセスは load_driver したプロセスを仲介して通信する必要がある
・すべての通信が1つのプロセス(のメッセージキュー)を中継する
中継プロセスのメッセージキューに複数のプロセスがメッセージを書き込むので,ここがボトルネックになります.
Erlangのメッセージキューは,キューが長くなるほどパフォーマンスが低下します.
処理が間に合わずキューに貯まれば,パフォーマンスが落ちて,更にキューが貯まる…という悪循環になってしまいます.
(R12Bの頃に確認した限りでは.R13Bではもしかしたら改善しているかも)
と,改めてマニュアルを読むと,Portを外部に出しておいて,直接ポートドライバにメ ッセージを送るようにして,返事を driver_send_term で送り返せば上記の問題は緩和するかも….
とはいえ,やっぱりポートドライバ上にはメッセージキューがあると思われるので,そこがボトルネックになりそうな気はします.
port_control だと直接呼び出せるようなので,これを使って呼び出し元のプロセスが直接呼び出せば,上記のメッセージキューのボトルネックも回避できるのかも.
この場合,SMPを有効にしてあれば,SMPのスレッド数分は同時にポートドライバの関数がコールされるのではないか…と推測しますが未確認です.
% 確か前に試して何かうまくできなかった気がするけど,詳しく覚えてなく(^^;
driver_outputという関数で返す。→ メモリ領域の解放はどうなるんだろう?
driver_alloc で確保して,driver_output_term とかで結果を送った後,driver_free ですね.
メッセージとして送ったときにコピーされます.
みかログに載っているコードをコピってテストしてみたところ、10倍からは随分改善されたけど、マルチコアの優位性を使い切れていない。チューニングの問題なのかどうなのか。
徐々に改善していくとは思いますが,排他制御のオーバーヘッドがあるのである程度仕方ないかなという気は….
プロセス間の通信をこんなに大量にやらなければ,SMPでちゃんと速くなりますが,アプリケーション特性によっては -smp disable の方が良いこともあるようです.
ある程度はメッセージの通信量を減らすとか,自分で努力しないとダメかもしれません.
(OTPで組むと,gen_*系とかメッセージいっぱい使うので,個人的にはパフォーマンスで不利なんじゃないかと思って,普段は自前でサーバを書いていたりしますが,正しいかは未検証)
ただ,R13Bでもかなり大幅な改善があったので,今後も期待できるとおもいます.たぶん...
住宅ローンの本で金融電卓の使い方が紹介されていて,興味を持ったので金融電卓で検索していると,HPの金融電卓が有名らしい.
(本はみかローンのおすすめ書籍の方を参照)
HP-12Cは,1981年に作られて今も続いているロングセラーの電卓らしい.
2003年に改良版モデルがでているらしいけど,CPUの強化など軽微な違いだけ.
発売からもう28年.そんなに使いやすいのか?とか気になりだした.
レビューを読んでいると,キータッチが良いとか,RPN(逆ポーランド記法)の入力が良いとか.
(改良版は,RPNじゃなくて普通の入力方式も選べる)
RPN方式はよく電卓ソフトで目にしているけど,実際にはあまり使ったこと無いので,その辺の興味もあって,金融電卓 HP-12C を買ってみた.
色はブラックの方.
大きさは胸ポケットにギリギリ入るくらい?
キーは普通の電卓よりは小さい.
ただ,ボタンの間隔は十分あいているので,押しにくいことはない.
キーは確かにぷちぷち感があって,押しやすい.
普通の電卓は,キー全体が押し込まれる感じだけど,HP-12C のキーは,手前側は奥に入らずに,キーの奥側だけが押し込まれる.
普通の電卓のキーだと,力のいれ具合によって押し込まれ方が変わる(ナナメに押し込まれたりとか)ことがあるけど,この方式だとそれがない.
その辺が感触をよくしているのかも?
ある程度厚さがあるのと,大きさがコンパクトなので,卓上で使うよりは,手に持って使うのが合う感じ.
この電卓で特徴的なのは,%関係.
普通の電卓には%キーは1つしかないけど,これは3つもある.
%:YのX%は?
%T:Yの何%がXか?
Δ%:YからXへは何%増加か?
というのがそれぞれのキーにある.
これは覚えやすいし,使い勝手も良い感じ.
たとえば,200円に消費税5%を追加する,だと
200 [ENTER] 5 [%] [+]
とやるとだせる.
5 [%] と押した段階で画面には 10 (200円の5%)と表示されて,[+] を押した段階でそれが200に足されて210になる感じ.
普通の電卓だと 200 [+] 5 [%] とかで,これは直感的にわかりにくい.
(その上,これが210にならない電卓もあったりするらしい・・・)
この辺のわかりやすさはRPNならではかもしれない.
RPNも慣れると,計算途中の数値を確認しながら進められるので,なかなか良い.
たとえば,100 [*] 2 [+] 200 [*] 3 [=] を計算するとき,関数電卓だと [+] を押すときに200を確認できて,その後は最後の [=] を押したときに結果800が確認できる.
途中の 200 * 3 の結果を確認するチャンスがない.
RPNだと,100 [ENTER] 2 [*] 200 [ENTER] 3 [*] [+] となって,それぞれの [*] を押したときに,200,600 が確認できて,[+] を押したときに 800 が確認できる.
計算が長くなれば,途中で確認できることはメリットが大きいと思う.
一度慣れたら普通の電卓に戻れない…とよく書かれているのが少しわかってきた気がする.
その他,金融電卓なので,いろいろな金融計算機能がある.
といっても,わたしが使うのはローン計算(複利計算)だけ(^^;
他にも減価償却とか色々あるけど,その辺はよくわからない.
ローン計算に関しては,ちょっとした計算をする場合は,かなり便利.
・返済回数
・金利
・返済額
・借入額
などを設定して計算するけど,求めたいところ以外をいれて,求めたいボタンをポチッとすれば計算できる.
みかローンのページだと,求める部分によって計算ページが違うけど,電卓だと手軽に計算できるのは良い.
一方,繰り上げ返済や借換のシミュレーションは,ちょっとやりにくい.
機能を組み合わせれば計算できるけど,マニュアルにそんな説明はないし,繰り上げ返済による軽減額の計算などはメモリを併用しないと計算できない.
ローンの書籍の方で紹介されていたカシオの電卓だと,その辺は丁寧で,日本語のガイドに従って入れれば一発で出てくるので,普通の人はカシオの方が無難かも.
変動金利のルール(日本特有?)なんかに関しては,普通には計算できないので,そういうのはやっぱりWebページの方で,という感じかな.
これはカシオのでも駄目なようだし.
HP-12C改良版の方は,400行までのプログラムが書けるので,頑張れば計算できるだろうけど,編集などできないし見通しも悪いので,今のところ書く気が起きない(^^;
(プログラムを紙に書いて,ボタンをぽちぽち押して入力しないとダメ)
まぁ,プログラム機能はおまけと思ったとしても,普通の電卓としては大きさも使い勝手も良い感じなので,かっこいい電卓として1台持っているといいかもしれない.
見た目もプラスチック製の普通の電卓と違って,高級感があるし.
長らく放置していた jquery でブラウザの戻るボタンを使えるようにするプラグインですが,IE8対応のパッチをメールでいただいたので,反映してサイトを更新しました.
http://www.mikage.to/jquery/jquery_history.html
以前コメントの方でIE6の問題を改善するパッチもいただいていたので,あわせてマージしました.
本当に長い間放置していてすいません...
jqueryも古いままでしたので,最新版で動作を確認しました.
IE8はまだインストールしておらず確認できていない等ありますが,何か問題がありましたらコメントいただけるとうれしいです.
DvorakJ にJLOD配列を実装していただいたようです.ありがとうございます.
QWERTY 排列 から Dvorak 排列 への移行に関する覚書のページからダウンロードでき,フリーで利用できます.
わたし自身は,さすがに20年以上タイプし続けている普段の配列には結局追いつけず,
結局メインはQwertyのままだったりします.(^^;
でも,久しぶりでもそこそこタイプはできました.やっぱり,指が覚えているから?かも.
JLOD配列 (Japanese Layout on Dvorak)のページに上記のソフトウェアの紹介を追加させていただきました.
また,とりあえず作成中というのも昔のままだったので,削除.
頻出語句の省略打ち,部分に関して,頻度が高いものを定義できると良かったのですが,
結局できないままでした…(^^;
Recent Comments