2008-04-01から1ヶ月間の記事一覧

並列ソート

Erlangの時のようにself()を送ってやらなくても、受け取り側でsenderに送信すれば返信になる。 メッセージを送信し返信を受け取るところまでやってくれる「!?」というメソッドがある。 受信用に「?」というメソッドがあり、それを使えばreact{}よりも簡単に…

値を返してもらう方法

self()で自分自身のプロセスが取得出来るのでそれを相手に送ってやる。 相手側が受け取ったプロセスに送信するようになっていればそれが返信になる。 -module(ret). -compile(export_all). ret() -> receive P -> P!123 end. main() -> S = spawn(?MODULE,re…

並列ソート

練習に4要素の並列ソートをやってみる。 ソート結果を再びリストにまとめ上げるやりかたが思いつかなかったので、 とりあえず何番目はいくつですよ、というのをわかった順に表示するだけ…。 -module(sort). -compile(export_all). pass(P,Q) -> receive X ->…

MPT.BINにmptutilを使う2

前回、読み込み件数が400件オーバーになってしまった反省をふまえて、自宅に近い順にデータを取り出して登録するようにする。 実行手順 400件であふれさせる前にバックアップしておいたMPT.BINをmptdecでデコードしてmpt.csvに出力 > mptdec MPT.BIN mpt.csv…

フォトライフおぼえがき

http://f.hatena.ne.jp/katona/upから画像ファイルをアップロード 最大画像サイズは450位がいいらしい 写真編集の欄にある画像をクリックして閲覧用のページに行く Fotolife > katona's fotolife >の後ろに書いてあるテキストをクリップボードにコピー はて…

ルーローの三角形

(-200,0)の座標を中心にして半径200√3の円弧を-30〜30度の間だけ描く …というのを120度紙を回しながら3回繰り返す %!PS-Adobe-3.0 /r 3 sqrt 200 mul def 297 421 translate newpath 1 1 3 { -200 0 r -30 30 arc stroke 120 rotate } for showpage 原点をA4…

連続した数列を範囲形式にまとめたい

仕様 * 数値は、半角スペースで区切られた文字列で渡されます。 * 続いている部分は、最初の数値と最後の数値を-(ハイフン)で繋いだ表記にします。 * 連続が1回の場合(前の数も後ろの数も連続でない)は、-(ハイフン)では繋ぎません。 * 出力は、「,」(カンマ…

MPT.BINにmptutilを使う

トヨタ純正カーナビメモリ地点情報データのユーティリティ(mptutil)が公開された! というわけで、さっそくダウンロードして使ってみる。(papara様に感謝!) トヨタ純正カーナビメモリ地点情報データのユーティリティ(mptutil) http://plaza.rakuten.co.jp/aho…

GC時に呼ばれるフックを探す

COM interface released by finalization: an IDispatchPointer {0161A070} というエラーが出ていたので、finalization:メソッドを検索するがヒットせず。 Objectクラスをブラウズするとfinalizationカテゴリがあり中にfinalizeメソッドを発見 finalize "Fin…

VBScript.RegExp版正規表現クラス

Regex11はかっこによる後方参照等が使えないので別の正規表現クラスを作ってみた 使用例 'aba' =~ '(.).\1' => true 'abc' replace: '(.)(.*)' to: '$2$1' => 'bca' ('abcdef' rmatch: '(..)(.)') at: 2 at: 1 => 'de' Regexpクラス インスタンス変数reを持…

Googleマップ

緯度と経度でアクセスする場合 http://maps.google.co.jp/maps?q=緯度,経度 経度と緯度の順にカンマで区切って指定する それぞれのパラメータは度単位の実数先日の東京都庁の座標で試してみる http://maps.google.co.jp/maps?q=35.68949127,139.6919098 吹き…

正規表現を利用する手段いろいろ

VBA

例題として以下の置換処理を考える。 "foo(10,1)+foo(20,2)" → "bar(1,10)+bar(2,20)"・関数名をfooからbarに変更。 ・第1引数と第2引数を交換。 ・置換箇所は2カ所以上。 正規表現を使わない場合 比較対象として正規表現を使わない例もあげておく fooをbar…

手持ちの秘密鍵に対応する公開鍵が欲しい場合

エクスプローラで秘密鍵ファイルをputtygen.exeにドロップすると、 自動的にauthorized_keys用のテキストが選択状態で起動される。 後はCtrl-Cを押すだけでクリップボードにコピー完了。

dllを呼び出す

今作ったfoo.dllをRubyから呼び出してみる require 'dl/win32' puts Win32API.new('foo.dll','foo','i','i').call(1) s='Fizz' Win32API.new('foo.dll','bar','p').call(s) puts s実行結果 2 Buzzこっちはちゃんとsの内容が書き換わった。

dllを呼び出す

VBA

今作ったfoo.dllをExcelから呼び出してみる Declare Function foo Lib "D:\dll\foo.dll" (ByVal x As Integer) As Integer Declare Sub bar Lib "D:\dll\foo.dll" (ByVal s As String)イミディエイトウインドウでテスト ? foo(1) 2 s="Fizz" bar(s) ? s Fizz…

dllの作り方

ソースファイルfoo.c __declspec(dllexport) int __stdcall foo(int x){ return x+1; } __declspec(dllexport) void __stdcall bar(char *s){ s[0]='B'; s[1]='u'; }defファイルfoo.def これがなくてもdllは作れるが関数名が_foo@4とかになってしまう LIBRAR…

依存dllの調べ方

dll

$ objdump -x vc8test.exe | grep 'DLL Name' DLL Name: MFC80.DLL DLL Name: MSVCR80.dll DLL Name: KERNEL32.dll dll単体のダウンロード http://www.dll-files.com/dllindex/pop.php?msvcr80 http://www.dll-files.com/dllindex/pop.php?mfc80 が、vc2005…

日本へそ公園

測地系が複数あると言うことは、日本へそ公園ではどうしてるんだろ?と思って調べてみた。 「日本のへそ」西脇市 大正12年に、旧陸軍参謀本部陸地測量部の計測に基づき、「交差点標柱」が建立されました。 平成6年には、GPSで測量されたもう一つのへそ地点に、「…

MPT.BINの座標のズレ

ズレの原因がわかったかも。 マップコードとマピオンは日本測地系ベースだが、このカーナビはWGS84ベースだからのようだ。以下、マップコード公式サイトに載ってた東京都庁を例に検証。 例えば、東京都庁を指定する場合は、 東経 139度 41分 42.10秒 北緯 35…

y=ax+bの傾きaと切片bを求める

傾きa=slope(既知のy,既知のx) 切片b=intercept(既知のy,既知のx)

外部コマンドでのフィルタ処理

popenは"r+"とかではオープン出来ないので、自前の処理を作るときのおぼえがき。 pipe(p)と実行したときにセットされるファイルディスクリプタは、p[0]に読み出し用、p[1]に書き込み用の順になっている。 dup2(fd,0);close(fd)の順に実行することでファイル…

MPT.BINの座標情報

昔実験用に以下の2地点を登録したことがあったのでここから想像を巡らす。 経度緯度情報はマピオン情報。 マップコード 000 000 神奈川県横浜市港北区篠原町付近 北緯35/30/00 東経139/37/30 MPT.BINでの該当部分 47 01 bb 63 3e 68マップコード 2 000 000 …

MPT.BINの上位・下位4Bit入れ替え

教えてもらった情報をもとに、以下のようなswap.rbを用意した。 puts ARGF.binmode.read.unpack('C*').map{|c|c>>4|(c&15)<<4}.pack('C*')これを使ってMPT.BINを変換 > ruby swap.rb MPT.BIN > out.binSJIS見えた! 固定幅のダンプだと見にくいので、00 00か…