2008-01-01から1年間の記事一覧

Swingを使う

とりあえずイベントを扱う練習。ボタンを押したらHelloと表示するサンプル。 関数を渡せる言語だと、actionPerformedメソッドの中身を渡してインスタンスが作れるので便利だ。 デバッグ用にインタプリタ内から実行するときは、閉じるボタンでインタプリタま…

簡易テキストエディタ

XUL

先日のFileクラス等の定義をio.jsというファイルに保存。 それを利用したサンプルということで簡易テキストエディタを作ってみた。 <window title="editor" onload="init()" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script src="io.js"/> <script></window>

ローカルファイルアクセス用Fileクラス

XUL

JavaScriptからローカルファイルにアクセスするためのXPCOM利用版のFileクラスを作ってみた。 使用例 d:\tmp\a.txtのFileオブジェクトをfに代入して読み書きする例。 readが読み出し。readしたあとはcharsetプロパティがセットされる。 writeが書き込み。現…

AIRでのfcshの使用

fcshを使うと、2回目以降のコンパイルが速いらしい。 configname=airを指定するとamxmlcとしても使える。 1回目のコンパイルを以下のように実行。 > fcsh (fcsh) mxmlc +configname=air browser.mxml2回目からはcompileコマンドにターゲットIDを指定してコン…

AIR版最小ブラウザ

MXMLにも<mx:HTML>というタグがあるので簡単に作れる。 レンダリングエンジンはGeckoではなくWebKit。 browser.mxml アプリケーション本体。 Enterキー入力のイベントがenter=で書けるのはいい。 <mx:Application width="640" height="480" layout="absolute" xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:VBox width="100%" height="100%"> </mx:vbox></mx:application>

日本語文字コードの判別

XUL

文字コードの判別はバイナリデータの難しい処理というイメージがあったけど、そこそこの精度でいいなら意外と単純だった。 今回の方針は、半角カナは無視、UTF-8の優先度高め、という方針。 各ESC(0x1B〜)が出た場合はISO-2022-JP(確定) 第1バイトで指定され…

XULRunner版最小ブラウザ

XUL

とりあえずURL欄とコンテンツ表示欄だけの最小限の構成。 <browser>というタグがあるので簡単に作れる。 <window title="browser" width="800" height="600" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> </window>

XPCOM取得用ずぼら関数

XUL

欲しいXPCOMを得るのに長々と書くのがつらくなってきたので手抜きをする関数xpc()を作ってみた。 通常時 Components.classes['@mozilla.org/network/file-output-stream;1'].createInstance(Components.interfaces.nsIFileOutputStream);xpc()使用時 xpc('cr…

日付と時刻をTで繋ぐ表記方法

日付と時刻を両方表現したい場合は2008-05-16T11:25:30+09:00 つまり日付と時刻をTでつなげる。 これが世界的スタンダードとしてISO8601とRFC3339に定められた日付と時刻の表現方法。 有名どころの言語やらデータベースその他ミドルウェアはすべてこれに沿っ…

XULRunnerからFirefoxを起動

XUL

FirefoxでURLにchrome://browser/content/を入力すると内側にもう一つのFirefoxを起動出来る。 なので、これをXULRunnerから直接起動することを考える。 firefox/chrome/browser.manifest すでに以下の内容が記入されているのでそのまま利用 content browser…

Firefoxからの実行とXULRunnerからの実行の共存

XUL

単一のXULファイルをFirefoxとXULRunnerの両方から起動出来るようなファイル配置を考える。 firefox/がFirefoxというXULアプリケーションにとってのルートディレクトリで、 間借りしたfirefox/chrome//がというXULアプリケーションにとってのルートディレク…

無理矢理オブジェクト指向

なんちゃって複素数クラスを考えてみた 使用例 Complexクラスのインスタンス1+2iを生成してcに代入 $ Complex 1 2 > c $ chmod +x cオブジェクトcに実部、虚部、文字列表現を質問してみる $ c real 1 $ c image 2 $ c toString 1+2icとcを足し算させてみる。…

編集モードにする

これで印刷前に不要箇所が消せる javascript:document.body.contentEditable="true";document.designMode="on";void0

Java上と.NET上での実行

以下のhello.scalaが変更無しに両方で実行出来るか試す。 object hello extends Application { println("Hello, world!") } Java編 コンパイル。これでhello.classが出来る。(一緒にhello$.classも出来る) > scalac hello.scala直接hello.classを実行 > java…

並列ソート

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…