2007年07月25日

IronRuby PreAlpha 1でWebブラウザを作ってみたが…。

さっきの記事を書いた後に、もう少しIronRubyを触ってみたところ、なんかおかしい挙動がいろいろと。

当然ですが。
これ以降の内容は全部 pre alpha 1 の環境が前提になっていますので、ご注意くだされ。

とりあえず結構きついのがCLR上の列挙体が今のところ正しく取り扱えないので、WindowsFormのDockプロパティなどが設定できないってこと。
その辺が問題なければさくっと書けそうなところが厳しいですね。
あと、イベント記述方法に問題があるのか、同一クラスのオブジェクトが複数ある場合、先に宣言したイベントのみが有効になっているっぽいです。回避方法がないので、どうしようもない...

ともあれ、イロイロ試してみたブラウザプログラムのソースを以下に放置しておきます(^^;

続きを読む "IronRuby PreAlpha 1でWebブラウザを作ってみたが…。" »

IronRuby PreAlpha 1を触ってみる。

先日公開されたIronRubyのプレアルファ版をちょっと触ってみようと思います。

とりあえず以下の手順でビルドしてみました。

  1. IronRuby-Pre-Alpha1.zipをダウンロードし、展開する。
  2. スタートメニューからMicrosoft Visual Studio 2005Visual Studio ToolsVisual Studio 2005 コマンドプロンプトを開く。
    別にこの方法でなくても.NET Framework SDKのbinにパスが通っていたらいいと思います。
  3. カレントディレクトリをIronRuby-Pre-Alpha1.zipを展開したフォルダに変更する。
  4. build.cmdを実行する。
  5. そしたら次のようなファイルができる。
    • Microsoft.Scripting.dll
    • Microsoft.Scripting.pdb
    • Microsoft.Scripting.xml
    • rbx.exe
    • rbx.pdb
    • Ruby.dll
    • Ruby.pdb
    • RubyTestHost.exe
    • RubyTestHost.pdb

生成されたrbx.exeを実行してみると次のような画面になりますよ。
(この実行は普通のコマンドプロンプトでOK)

D:\IronRuby-Pre-Alpha1\Bin\Release>rbx
IronRuby Pre-Alpha (1.0.0.0) on .NET 2.0.50727.832
Copyright (c) Microsoft Corporation. All rights reserved.
>>> puts 'Hello, World'
=> nil
>>>

実は、最初間違ってput 'Hello, World'とかやったんですが、irbのようにNoMethodErrorが出るのではなくて、.NET CLRのSystem.MissingMethodExceptionと共に大量のスタックトレースが吐き出されました(^^;

せっかくなのでWindowsFormを操作してみます。
(荒井省三さんのblogを参考に試してみました。)

>>> require 'System.Windows.Forms'
=> true
>>> f = System::Windows::Forms::Form.new()
=> #<Form:0000002c>
>>> f.ShowDialog()
=> #<DialogResult:0000002d>
>>>

ボタンを配置して、イベントを発生させてみましょう。

IronRuby Pre-Alpha (1.0.0.0) on .NET 2.0.50727.832
Copyright (c) Microsoft Corporation. All rights reserved.
>>> require 'System.Windows.Forms'
=> true
>>> require 'System.Drawing'
=> true
>>> f = System::Windows::Forms::Form.new()
=> #<Form:0000002b>
>>> b = System::Windows::Forms::Button.new()
=> #<Button:0000002c>
>>> b.Location = System::Drawing::Point.new(50,100)
=> nil
>>> b.Text = '日本語'
=> nil
>>> # ref. http://www.hanselman.com/blog/WPFSampleInIronRubyTalkingViaCToWesabe.aspx
=> nil
>>> b.click do|sender, args|
... System::Windows::Forms::MessageBox.Show(sender.Text)
... end
=> nil
>>> f.Controls.Add b
=> nil
>>> f.ShowDialog
=> #<DialogResult:0000002d>
>>>

もちろん上記コードをソースファイルにして読み込ませることもできます。
っつーか出来なかったら終わってますが(^^;

require 'System.Windows.Forms'
require 'System.Drawing'

f = System::Windows::Forms::Form.new()
b = System::Windows::Forms::Button.new()
b.Location = System::Drawing::Point.new(50,100)
b.Text = '日本語'
b.click do|sender, args|
   System::Windows::Forms::MessageBox.Show(sender.Text)
end
f.Controls.Add b
f.ShowDialog
D:\IronRuby-Pre-Alpha1\Bin\Release>rbx test.rb

ちなみにコード中、律儀にSystem::Windows::Forms::MessageBox.Showとかやっていますが、別に几帳面なのではなくこうしないとエラーになるから仕方なくやっているだけです(^^;
まぁ、まだプレアルファ版ということでこの辺の面倒くさいあたりが改善されていくことを祈るばかりですね。

2007年07月23日

GoogleMapsEditor Ver.1.06 公開 - GoogleMapsAPIを利用した地図コンテンツをプログラムなしで作成できる編集ソフト

本日GoogleMapsEditor Version 1.06をリリース致しました。

更新内容は以下の通りです。(http://hsj.jp/gme/#Ver.1.06

機能追加・修正点一覧

  • GoogleMapsによる住所位置解析機能が正しく動作していなかったため、これを修正した。

ダウンロードについては http://hsj.jp/gme/#Download からどうぞ。

2006年09月27日

GoogleMapsEditor Ver.1.05 公開 - GoogleMapsAPIを利用した地図コンテンツをプログラムなしで作成できる編集ソフト

本日GoogleMapsEditor Version 1.05をリリース致しました。

Google Maps API Official Blogにて「We plan to shut down API v1 within a month or so.」と書かれておりました。 ソフトウェアの出力結果が機能しなくなることが予測されるため、応急処置的にAPI v2対応をしたVer.1.05をリリースすることと致しました。

すでに出力済みのHTMLファイルについてですが、お手数ですが以下のいずれかの方法で対策ください。

  • Ver.1.05で再作成する。
  • メモ帳などのテキストエディタで「?file=api&v=1」を検索していただき、「v=1」の部分を「v=2」(すべて半角小文字)に修正する。

なお、本格的なGoogle Maps API v2対応についてはGME2にて行う予定ですので、その点ご了承ください。

更新内容は以下の通りです。(http://hsj.jp/gme/#Ver.1.05

機能追加・修正点一覧

  • GoogleMaps API Ver.1の提供終了が予定されていることから応急処置的にVer.2に対応しました。

ダウンロードについては http://hsj.jp/gme/#Download からどうぞ。

2006年06月07日

マイミクの誕生日をGoogle Calendar用のiCalデータにする。

ご無沙汰しています。

ちょっと思いついたので作ってみました。

続きを読む "マイミクの誕生日をGoogle Calendar用のiCalデータにする。" »

2005年12月05日

GoogleMapsEditorが窓の杜大賞に候補としてノミネートされました。

題記の通り、今年の窓の杜大賞にGoogleMapsEditorが候補としてノミネートされました。 まったくそのようなことを考えていなかった(ニッチなツールですから…)ので、非常に驚いております。

もともとは、とあるサイトのグルメマップを作ってもらうために半ば押し付けっぽく作り始めたソフトウェアでしたが、β版公開後、ユーザの皆様からのご意見でブラッシュアップした結果、このような舞台に立つことができたと考えております。 この場を借りて、ダウンロードし、お使いいただいた皆様、blogやWebサイトでご紹介くださった方々に感謝させていただきます。


もしGMEを推していただけるならば、投票宜しくお願いいたします。 (投票は12月15日の正午までとなっているようです)

2005年11月10日

GoogleMapsEditor Ver.1.02 公開 - GoogleMapsAPIを利用した地図コンテンツをプログラムなしで作成できる編集ソフト

本日GoogleMapsEditor Version 1.02をリリース致しました。

10月末よりGoogleMapsとGoogleMapsAPIの測地系仕様の食い違いからGMEの出力結果も引きずられるようにポインタのずれが発生し、ご迷惑をおかけしました。

12月1日よりの世界測地系への統一という発表を受け、このバージョンからGMEの出力内容は世界測地系をデフォルトとすることに致しました。
既存のデータについても12月1日以降確実にプロット位置がずれるので、サイト(http://hsj.jp/gme/)に記載しております対策を必ずしていただきますよう宜しくお願いいたします。

更新内容は以下の通りです。(http://hsj.jp/gme/#Ver.1.02

機能追加・修正点一覧

  • 世界測地系出力のパラメータを強制的につけるようにした。
  • gme_tt="on"でのparse処理を追加した。
  • JSONデータ出力時に文字列のエスケープ処理が欠如していた不具合を修正した。
  • 南緯・西経のデータを「表示確認」すると、GoogleMapsに正しく表示されない不具合を修正した。

ダウンロードについては http://hsj.jp/gme/#Download からどうぞ。

2005年10月15日

GoogleMapsEditor Ver.1.01 公開 - GoogleMapsAPIを利用した地図コンテンツをプログラムなしで作成できる編集ソフト

本日GoogleMapsEditor Version 1.01をリリース致しました。

更新内容は以下の通りです。(http://hsj.jp/gme/#Ver.1.01

機能追加・修正点一覧(β1)

  • <TMPL_VAR filter="" />のfilter属性の値として"url", "url%-"."HtmlEncode", "HtmlDecode","Lower"."Upper"を追加した。
  • <TMPL_CDATA><![CDATA[...]]></TMPL_CDATA>命令を追加した。
  • KsGmapとの連携カスタムデザインレイアウトを同梱するようにした。
  • 位置情報を個別に削除していき0件になった時点でエラーとなる不具合を修正した。
  • Tokyo測地系とWGS84測地系を変換する機能を追加した。
  • データXMLに縮尺を保存するようにした。

機能追加・修正点一覧(β2)

  • 地図データ生成タブのレイアウトを変更し、地図の情報と カスタムデザインレイアウト設定をタブ切替とした。
  • 地図の情報に「製作者名」「連絡先」「戻り先」「備考1」「備考2」を追加し、従来の「備考」を「地図について」と変更した。
  • カスタムデザインレイアウト設定の表示形式を変更した。
  • カスタムデザインの概要をクリック時に表示するようにした。
  • カスタムデザインレイアウトのTMPL要素のexample属性に定義したアドレスを作例として表示できるようにした。
  • カスタムデザインレイアウトのTMPL要素のext属性で出力する拡張子を指定できるようにした。
  • JSON配列を併せて出力するようにした。
  • 初期表示時にマーカーを配置しないオプションを追加した。
  • マーカークリック時のイベントについてカスタマイズできるように関数buildInfoHtmlとした。
  • マーカー生成時の処理についてカスタマイズできるように関数buildGMarkerとした。
  • KsGmap連携用カスタムデザインレイアウトが正しく記述されてない不具合を修正した。
  • 通信できない場合、地図表示部にメッセージを表示するようにした。
  • GoogleMapsに対応していない環境でのアクセスの場合、地図表示部にメッセージを表示するようにした。

機能追加・修正点一覧(Ver.1.01)

  • 若干フォームデザインを修正した。
  • JSONデータに座標データ(緯度・経度)を追加した。
  • 同梱しているカスタムデザインレイアウトを修正した。

ダウンロードについては http://hsj.jp/gme/#Download からどうぞ。

2005年10月13日

mixi 最新日記一覧更新スクリプト兼ゲートウェイ(newdiary.pl/cgi)

mixiの忌まわしい仕様変更(2005/10/11)に立ち向かうべく、思いつきで作成したスクリプトです。

一応CGIとしても動作するようにしていますので、ゲートウェイとして実行することもできます(通信の安全性については当然保証しません)

尚、仕様変更までの繋ぎとしての意味合いしかないので、その辺はテキトーにお考え下さい。

Download file: mixi_new_diary.zip

動作環境

Perl 5.xでWWW::Mixiが動作する環境であれば特に設定は不要です。

以下の環境で動作確認をしています。

  • Windows XP(SP1)+Active Perl ver.5.8.4
  • Mac OS(10.3.9)

CGIとして動かす場合はshebangの修正とかperlのパスの設定とか適当にしてください。

コマンドライン引数

-i (必須) ログイン メールアドレス

-p (必須) ログイン パスワード

ライセンス・免責

PerlならびにWWW::Mixiと同様にGPLないしArtistic Licenseです。

当プログラムの利用に際し、如何なる利益・損害が発生しても、プログラム作者は一切の責任を負いませんので悪しからず。

問い合わせ

このツールは私"どなどな"が独自に作成したものです。

株式会社イー・マーキュリー・塚本牧生さんへの問い合わせはご遠慮ください。

書き捨てスクリプトなのであんまりサポートする気はないのですが、バグ報告などについてはmixiメッセージなどでお願いします。

(http://mixi.jp/show_friend.pl?id=102587)

2005年10月01日

続・Text::HatenaでMTプラグイン。

Sukerokuのコードを頼りに(するなよ)リンク関係付与をゴリゴリ実装してみました。

というか、途中で飽きたので放り出すという感じですが、それなりに動いてくれてると思います。

もちろんText::Hatenaが動く環境で、pluginを放り込んでくださいね。

Download: mt-text-hatena.pl


実装にあたり、http://fuba.s7.xrea.com/20050930050927.htmlのテストデータを参考にさせていただきました。