hirax.net::Keywords::「組み込み」のブログ



2001-01-04[n年前へ]

世界の国からこんにちは 

hirax.net版GeoWhoisを作る


 VisualC++ MFCを使ったWindowsプログラミングはどうもお気楽という感じにはいかない。もちろん、「子供の科学」にすらMFCを使ったプログラミング入門が連載(何故、VisualC++で!?)されるくらいであるから、別にそれが難しいわけではないのかもしれない。しかし、VisualC++MFCでWindowsプログラミングがキライになる人は絶対いるはずだ。現に突撃実験室のwebmasterはかつてVisualC++と闘った結果、「俺は永遠に組み込み屋じゃっ」と叫んでいたらしい(C.突撃実験室)。

 私も含めて、そんなWindowsプログラミング難民達を優しく女神のように迎えてくれるのがBorlandC++Builderである。いや、女神は必ずしも私たちを優しく迎えてくれるわけではない。むしろ、女神は私達を冷たくあしらうことの方が多いので、実は女神よりもC++Builderの方が優しいと言っても良いくらいである。しかも、C++Builderは自然にWindowsプログラミング(そして嫌でもDdelphi)を覚えさせてくれるところが実にありがたい。そして、そんなC++Builder(Delphi)ユーザー達にとって実に便利なのがTorry'sDelphi Pages.だ。

 というわけで、先日Torry's Delphi Pages.をチェックしていると、とても面白いコンポーネントがあった。それはYehudaSharvit.による

である。ドメインネームから地理的な位置座票への変換を、地理データベースを持っているイリノイ大学の"cello.cs.uiuc.edu"を使って行い、そしてゼロックスのパロアルト研究所(parc)の"mapweb.parc.xerox.com"から地図画像をダウンロードして表示するコンポーネントである。ドメインネーム->持ち主の住所(WHOIS)→位置座票("cello.cs.uiuc.edu")->地図表示("mapweb.parc.xerox.com")という流れでドメインが位置している場所を表示するわけだ。

 例えば、DelphiでGeographicWhois Componentを使ってapple.comを検索・表示してみたのが次の画像である。
 

GeographicWhois Componentを使ってapple.comを検索・表示してみたもの

 もちろん、「ドメインが位置している場所」と言っても、ドメインの登録者の住所を表示するわけで、必ずしもそのドメインのサーバーが位置する場所を表示するわけではない。だけど、そもそも「ドメインが位置する場所」というのは「実際のドメインのサーバーが位置する場所」ではなくて、「ドメインの登録者の住所」だと私は思うのでこれはこれで良いのである。そしてまた、「ネットワーク上であまり意識することのない地理的な位置情報を表示する」というのがかなり面白いと私は思う。

 日頃、ちょこちょことブラブラと色々なサイトを巡回して楽しんでいる(といっても実は多くはない)のだが、そのサイト達は世界中のどこにいるのだろう?なんて時折と思うことがある。以前、

でネットワーク上を自分の家からロンドンまでヒッチハイクしてみたけど、そんなヒッチハイクも地理的な位置情報が判れば、それはもっと楽しいかもしれない。WEBで辿る「世界一周の旅」なんてのも簡単にできることだろう。そしてまた、「インターネット上の距離」と「地理的な距離」を並べて見てみるのも面白いだろう。というわけで、今回は色々なサイトがどんな場所に位置しているかを表示するアプリケーションを作ってみることにした。
 

 ところで、先のGeographicWhois Component自体はDelphi用のコンポーネントでC++Builder用ではない。もちろん、C++BuilderはPascalで書かれたDelphi用のコンポーネントだって読み込めるわけだが、とりあえずこのコンポーネントはそのままではC++Builderには取り込めない。それだけではなく、地図の縮尺や位置などの指定をすることができないため、このままでは色々なサイトの位置を重ねて表示することはできない。

 そこで、「ドメインネーム->持ち主の住所(WHOIS)→位置座票("cello.cs.uiuc.edu")->地図表示("mapweb.parc.xerox.com")というルーチン」をC++Builderで自分用に作り、できあがったアプリケーションがこれである。

もちろん、いつものように数回だけの動作(不?)確認しかしてない完全無保証版である。

 GeoWhois.exeの動作画面が次の図である。ドメインの場所を検索しその結果が上の方の画像に表示される。また、検索履歴が下の画像に表示される。検索履歴画像の方はSaveボタンでbmpファイルとして保存することができる。
 

GeoWhois.exeの動作画面
ドメインの場所を検索し、その結果が上の方の画像に表示される。
検索履歴が下の画像に表示される。

 ちなみに、上の画像の検索履歴は私のよく見に行くところである。結構世界の各地に広がっているような気もするし、広がっていないような気もする。こんなプロットをもっともっと重ねてみて、あとリンクの様子も線でプロットしてみたりすればかなり面白いグラフができることだろう。

 さて、ドメイン名から位置座票への変換("cello.cs.uiuc.edu")はあまり色々な場所が登録されているわけではないので、少なくとも日本などでは東京くらいしか変換することができない。だから、当然のごとくtomoya.comやhirax.netは表示されない。だから、実際のところ私が良く見に行く個人サイトは本当はあまり検索することができない。もちろん、プロバイダー内にWEBページを持っているようなところは検索・表示することができるのだけれど、そんなところはみんな東京になってしまうのである。しかも「WEBページの持ち主= ドメインの持ち主」でもないので、そもそも「そのドメインの位置情報 = WEBページの位置情報」では全然無い。だけど、そもそもそんな日本国内の「ご近所さんを探せ!」コーナーではないのだから、もうそれはそれで良いのである。遙か遠くの国のサーバーを地図で眺めることができる、というところが良いのである。

 このGeoWhoisを応用していけば色んな遊び方があると思うのだが、今回はこのアプリケーションを作ってみたところで終わりにしたいと思う。次回以降(といってもいつになるか判らないけど)で、「インターネット上の距離」と「地理的な距離」でも調べてみたいと思う。

 それにしても、こんな地図を眺めていると、本当に旅行したい気分になってきたぞ〜
 

2004-05-27[n年前へ]

高性能コンピューティング向けのWindows 

 マイクロソフト、スパコン用OS「Windows Server HPC Edition」開発に着手という記事。「デスクトップバージョンのWindowsに専用のソフトウェアを組み込み、PCの処理能力をかき集めて利用できるようにすることも可能なため、企業は自社で保有するコンピュータをさらに有効活用できるようになる」という辺りは興味を惹かれる。

2008-10-03[n年前へ]

Simulink と Ada 

 「いつか触れてみたい Ada」で書いたように、「ボーイング777やF-22戦闘機、あるいは、ニューヨークやパリの地下鉄を動かしている」プログラミング言語Adaを使ってみたい、と思うことがある。

 Simulinkを使っていると、CやC++でSimulink の MEX(ユーザーが他言語で作った拡張機能)を作ることが多い。Simulinkは、グラフィカルにコンポーネントをワイヤーで結んでいくのが大きな特徴の一つであるとはいえ、細かな部分分はコードを書く方が楽でわかりやすかったりするからである。

 Simulink の MEX 関連サンプルを読んでいると、FORTRAN,C,C++,そして、Ada によるMEXの作り方が書いてある。Adaをよく知らない頃は、なぜAdaが・・・?と思っていた。だけれど、「Adaは信頼性・保守性に優れ主として組み込みシステム向けの言語」ということを知ると、なるほど何より先にAdaの例が登場するのが当然なのだな、と納得することができる。

2009-11-24[n年前へ]

「デバッグ用出力コードを書く」と自動的に「パーサー・スクリプト」を生成するツール 

 記憶容量が少ないハードウェアでのデバッグを目的として、外部に対して各種変数の内容を出力するプログラムを書く。そんな作業が行われている一方で、ログに出力された内容を解析するスクリプトを書く。…そんな超原始的デバッグ作業をしていると、「各種変数の内容を出力するプログラム」を書くと同時に、そのフォーマットに準じた「ログに出力された内容を解析するスクリプト」を生成するツールがないものだろうか?と思うことがある。

 もちろん、このprintfを多用する「出力ログ頼りの超原始的デバッグ」を行う、というところにおそらく根本的な問題があるのだろうとは思うが、色々な制約がある中ではそんな状況に出会ったりする。そんなこんなで、「デバッグ出力」用コード」を書くと、自動的に「パーサー・スクリプト」が生成されるツールがあれば良いな、と思う。

 といっても、それが開発環境に組み込まれているような何だかエライ(ここは関西弁の「えらい」で、東京弁の「偉い」ではない)・システムを使え、という答えでは何だか今一つ面白くない。もっと、気軽に・汎用的に使える、原始的な道具が欲しいのである。

 そんな、「デバッグ用出力コードを書く」と自動的に「パーサー・スクリプト」を生成するシステムというものが、どこかに転がっていないものだろうか。

2012-04-20[n年前へ]

組み込み向け軽量「mruby」公開 

 「組み込み向け軽量「mruby」、まつもと氏が公開

 mrubyは組み込みシステム向けに文法をシンプルにし、通常のRubyに比べ少ないメモリーでも動作するようにしたもの。UNIXやLinuxだけでなく、Windows、Mac OS X、BeOSなどでも動作するという。

 BeOS…懐かしい。



■Powered by yagm.net