prasinos' work memo

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

uconv 使いたいがディスクが....

ラジオの気象通報のデコードをしたいと思う。データはここここから手に入るが、アーカイブがない。とりあえず、デコードを出来るようにする前に、データを溜めないといけない状態だ。

で、溜める場所は MySQL データベースにしようと思う。ファイルだと find とかやって掃除する羽目になるが、そういうのは嫌だ。そうすると、テーブルの文字コードを latin1 以外にしないといけないが、ちょっとアメリカ人とかかわりがあるので utf8 にしようとおもう。でだ。元は Shift_JIS なわけだ。変換が要る。

Ruby には nkf.so がついてくるが、これは Shift_JIS -> utf8 は変換できない。で、RHEL をボケーっとインストールすると iconv(1) くらいしか文字コード変換の方法がないが、ダウンロードプログラムはいつだったかの forex を活用しようと思うので、データは ruby の文字列としてダウンロードされる。ファイルじゃない。で、既存の Ruby ライブラリは uconv くらいしかないらしい。自分で作るというのも一興だけれども、あまり時間を無駄にしたくないので、とりあえず uconv をダウンロードする。でかい。嫌になる。

今日はここで時間切れ。


当日追記。 Ruby にはIconv モジュールが組込みであった。これにて uconv 不要一件落着。
スポンサーサイト

UML を勉強しよう

いまさらながら UML を勉強しようと思う。

だいぶん前に古本屋でSams Teach Yourself UML in 24 Hours (Joseph Schmuller, 1999) を買った。以後単に積ん読になっていたのだが、読んでみると意外と簡単なものだ。とりあえず半分あたりの「これで図は全部です。」まで読んだ。UML は Language だと称しているので、長方形やら矢印やら丸が語彙ということになるのだが、その語彙がたった半ページで要約されている。

こんなに簡単でいいんだろうか。ウィキペディアとかみるともっと図の種類が多いような気がするのだが、UML 2.0 で追加になったものかもしれない。

どこかにノートを作らなくちゃいけないな。

OGC WMS 仕様を印刷してみる

PDF を開いてぶったまげた。OGC WMS は 11月23日付で国際規格 ISO/DIS 19128になっていたのだ。一冊 176 フランなり。でも、OGC の最終ドラフトは依然として OGC のウェブサイトから見ることができるのはとてもありがたい。


でだ。76 ページもあるのだよ。レビューしなきゃいかんだろうがしんどい。

RDB の URL てのはないものか

ふとそういうことを思ったのは理由は2つばかり。


1. データベースに入っている多種多様なデータからほいっとグラフが作れる CGI があるといいかなあと思ったのである。で、パラメタに SQL 喰わせるか? というところが悩ましい。Web にはつき物のセキュリティチェック(サニタイジング)のところにくるとそれってアンタSQL パーザ作れってのかい! と怒りたくなるわけだ。むしろ、SQL で SELECT される表をですな、なんかオブジェクトとして指定できる URL みたいなものがあるといいかなあと思ったわけ。こっちには「あきらめる」という解もある。


2. Web data service の時もそうだったが、恐ろしいのは現物主義者の逆襲である。ファイルシステムが何か実体であるかのように考えるのは幻想にすぎん (と教えてくれたのはChristian and Richter, 久野訳「UNIX ワールド」だった) のであるが、みんなあんまりそれに馴れていてほかの幻想を受けいれてくれない。なによりいけないのは、ファイルシステムはほとんど触ることができるかのように開いたりブラウズしたりできる UI があることだ。だから、やっぱ何かそういうものがあるべきなのだ。これは WinCVS と ArcCatalog を見てそう痛感した。で、そうだとすれば、嘘でも好いから階層的な構造と URL がいるなあと思ったわけ。でないと、NetCDF API のようにターゲットとなるオブジェクト毎に似て非なるインターフェイスを作るといううんざりするような体験が待っているような予感がするわけだ。


誰かやってないのかなあ。安直にパクろうとしたのだが、よくわからん。


テープドライブ断念

気象学科が持っている警報文のアーカイブからトルネードの日のぶんをコピーさせてもらおうとしたのだが、うちのセンターに転がっている Exabyte ドライブときたら、どいつもこいつもいかれていて、読んでくれない。

ひとつはどんなテープを入れても吐きだしてしまう。

ひとつはクリーニングテープを入れると出なくなってしまう。ほっとくわけにもいかないので分解して取りだしたよ。とほほ。

もうひとつはどんなテープも入らない。

もうひとつあるが、試しても無駄だろう。いちいちサーバをシャットダウンして、電源や SCSI バスの接続やら捻子止めやらを気にして、サーバを立ち上げたあとには何かしら起こる問題を手当てして.... もうやめた。

apache2 苦戦: suexec にやられた。

手持ちの某 Vine 3.1 ノートもたまにはアップグレードしてやらねばなるまいと
# apt-get update
# apt-get upgrade
しようと試みている。試みている、というのは、どえらい時間がかかるので、パッケージを表示させてちまちま部分的にインストールしているのだ。

で、何の因果apache2 が入ることになった。我輩のミニマリズムは斯様なディスクの無駄づかいを許さない。で、急遽 apache2 に移行することとあいなった。が、これ、ハマるハマる。

  • ServerName がマトモな名前でないと動かない。
  • hostname コマンドが DNS で引けない名前を返すと動かない。いや、まあ引けない名前にするほうが悪いんですが、こっちにも事情と言うのがありまして。Vine の error_log は /var/log/apache2/ という珍妙なディレクトリにあり、さっき消した apache 1.3 のログを見ていても何も出てこないのでしばし発見が遅れた。
  • CGI が suexec になるので、group writable なディレクトリに CGI を置いても動かない。で、error_log を見ている限り、このメッセージが不親切至極なことに "Premature end of script headers" なので何がなんだかわからない。ググってみたらすぐヒントが落ちていて、 suexec.log を読んだら即勝利。
まあこんなところか。まったく腹立たしい。

There must be several tables

[db] oid 縮退の悲劇

finch の msgbull テーブルにインデックスを追加する作業をしたとき、安易に create table ... select 構文で作ったら、欲しいインデックスは付け忘れるわ、oid に auto_increment は付け忘れるは、けっこうボロボロになっていた。

後者の被害は甚大で、auto_increment が無いが故にそれ以後に挿入された行はすべて oid=0 になっていた。誰も試さなかったからよいようなものの... というか、だめじゃん。

教訓: よく確認しよう。

raw GRIB table

I'm trying to create a table for GRIB input database. Does it make sense?
CREATE TABLE `rawgrib` (
  `oid` bigint(20) unsigned NOT NULL auto_increment,
  `ctr` tinyint(3) unsigned default NULL,
  `sub` tinyint(3) unsigned default NULL,
  `proc` tinyint(3) unsigned default NULL,
  `time` datetime default NULL,
  `vt1` datetime default NULL,
  `vt2` datetime default NULL,
  `lev1` smallint(5) unsigned default NULL,
  `lev2` smallint(5) unsigned default NULL,
  `nx` smallint(5) unsigned default NULL,
  `ny` smallint(5) unsigned default NULL,
  `la1` int(10) unsigned default NULL,
  `lo1` int(10) unsigned default NULL,
  `la2` int(10) unsigned default NULL,
  `lo2` int(10) unsigned default NULL,
  `param` tinyint(3) unsigned default NULL,
  `code` blob,
  `asof` datetime default NULL,
  UNIQUE KEY `oid` (`oid`),
  KEY `time` (`time`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

[db] ゴミ掃除結果 / result of clean up

そういうわけで掃除をした。 So I did cleaning. 続きを読む

[db] ゴミ掃除が必要だ/cleanup needed

また日曜から障害を起こしていた。原因はおそらく pqact の HUP し忘れによる GRIB パイプづまりだと思われる。HUP しただけで動きだした、ようである。

DB update has been stopped since Sunday. The reason seems to be overflow of a named pipe /var/ldm/fifo/grib; I used a pqact.conf to write to the pipe for testing, but it seems like I didn't stop it. There had been no process to read the pipe, so finally pqact got frozen due to pipe fill.

で、被害規模を把握するために ....

So I tried to estimate the damage .... 続きを読む

SWIG for GRIB decoder?

Now that I have installed mapserver, I need data to display. I'm thinking about these data:
  • NWS Warning polygons
  • NCDC tornado lines
  • METAR observations
  • GRIB forecast
  • satellite imagery

I am working with GRIB decoder, but it gets heavier to control. I decided to use SWIG. It has nice documentation. This tells me not only how it works, but also how basics of how to link shared library.

But after a quick look, I found that it is difficult to create object with SWIG code. So it isn't so attractive as I expected.

[rpm] mapserver installed

I built and installed mapserver RPM package.

RPM

SPEC file is basically taken from http://mappinghacks.com/rpm/SRPMS. But I had to edit some dependency. Basically I just removed its elegant conditional statements, since I got some dependency error I can't fix.

Demo

A demo is taken from guide for new users. I had to comment out two lines in the .map file.
$ diff -c demo.map.bak  demo.map
*** demo.map.bak        2005-11-18 13:42:03.000000000 -0600
--- demo.map    2005-11-18 13:37:43.000000000 -0600
***************
*** 41,47 ****
    METADATA
      WMS_TITLE "UMN MapServer Itasca Demo"
      WMS_ABSTRACT "This is the UMN MapServer demonstration application for Itasca County located in north central Minnesota."
!     WMS_ACCESSCONSTRAINTS none
  
      # change this value to match your setup
      WMS_ONLINERESOURCE "http://localhost.localdomain/mapserver_demos/itasca/demo_init.html"
--- 41,47 ----
    METADATA
      WMS_TITLE "UMN MapServer Itasca Demo"
      WMS_ABSTRACT "This is the UMN MapServer demonstration application for Itasca County located in north central Minnesota."
!     #WMS_ACCESSCONSTRAINTS none
  
      # change this value to match your setup
      WMS_ONLINERESOURCE "http://localhost.localdomain/mapserver_demos/itasca/demo_init.html"
***************
*** 378,384 ****
  
  LAYER
    NAME mcd90py2_anno
!   NAME cities
    TYPE ANNOTATION
    DATA mcd90py2
    STATUS OFF
--- 378,384 ----
  
  LAYER
    NAME mcd90py2_anno
!   #NAME cities
    TYPE ANNOTATION
    DATA mcd90py2
    STATUS OFF

Building GDAL

Now that proj is installed, I want to install GDAL. After reading SPEC file, I don't think either OGDI or GEOS is necessary. I just remove it from RPM dependency. The "configure" script will find the way to do without them.

So try to build:

$ cd ~/rpm
$ echo rpmbuild -ba SPEC/gdal.spec | at now
It does take much time. Anyway, it finished successfully.
$ sudo rpm -ivh RPMS/i386/gdal-devel-1.2.6-ersc1.i386.rpm  RPMS/i386/gdal-1.2.6-ersc1.i386.rpm 

[rpm] Proj installation

Installation memo of PROJ.4 - Cartographic Projections Library.

RPM package is downloaded from http://mappinghacks.com/rpm/SRPMS/proj-4.4.9-mh4.src.rpm. Build. Built. Take a quick look at FAQ. There is locale problems, but I hope it doesn't matter when only US English and Japanese are used.

Install it!

[rpm] mapserver -> GDAL -> proj

Now that NetCDF is installed, I want to install GDAL - Geospatial Data Abstraction Library. I think the best way should be to get RPM and trim it as I want.

I got SRPM from http://mappinghacks.com/rpm/SRPMS/gdal-1.2.6-mh2.src.rpm. This site contains a lot of related SRPMS, so it may be important later. I tried building:

$ rpmbuild -ba SPECS/gdal.spec 
error: Failed build dependencies:
        ogdi-devel is needed by gdal-1.2.6-ersc1.i386
        geos-devel is needed by gdal-1.2.6-ersc1.i386
        proj-devel is needed by gdal-1.2.6-ersc1.i386
Okay, there must be something called ogdi, geos, and proj. At least proj is necessary. I'll come back after these guys are installed. Then I'll replace tarball to the newest one http://www.gdal.org/dl/gdal-1.3.1.tar.gz.

[rpm] netcdf installation

I decided to install Minnesota Mapserver by myself. So I'll try to build all of them by RPM packages. I know there are bunch of configuration issues, and I want to encapsulate it into RPMs.

Today NetCDF was installed by self-made RPM package based on GFD-Dennou Club version. Last time it was easy: just rebuild. But now I want more, so I had to do more.

The problem came from symbolic link. $MANDIR/man3f/netcdf.3f.gz is a symbolic link that should point to $MANDIR/man3/netcdf.3, but it actually points /var/tmp/netcdf-3.6.0p1-root/$MANDIR/man3/netcdf.3. The reason is %makeinstall macro of rpmbuild just overrides $(prefix) and it doesn't care about symbolic links.

The original version made doesn't include Fortran interface, so this problem didn't appear.

The shortest way seemed to be removing and fixing symbolic links after %makeinstall in SPEC file, but it didn't work. So I had to create patch file. Tips:

  • patch is called with "-p0" option, so edit output of "diff -Naur netcdf-3.6.0p1 netcdf-3.6.0p1.bak" to remove netcdf-blah-blah component.
  • "macros.make" file is non-existent at the time of extract, since it is created by configure. so edit patch so that the hunk is applied to "macros.make.in".

Here is the patch: 続きを読む

Limit pattern of bulletines

On 11/5, I extended the pattern of headers in pqact.conf to almost all except GRIB, as shown in example. But it was fiasco.

Firstly, binary message screwed up DB injector, so they raised exception and died every minute. As a result, the update of DB was halted for 4 days. It was worse because that caused miss of messages for Indiana/Kentucky tornado. Secondly, robin slowed down significantly. The reason is not identified, but there must be some relations. And finally, I am screwed up with unreadable records in the database.

So I decided to limit the pattern again:

WMO ^((W[EFT]|AC)[A-Z][A-Z]|W[COUVW]US)([0-9][0-9]) FILE -overwrite /var/ldm/fifo/text
I've set up MRTG to log MAX(oid) of the tables. Hope it works too.

OGC WMS が熱い

OGC WMS というのは、OGC が標準化をしている Web GIS シリーズのうち、地図としてレンダーされてしまった画像をサービスするサーバのことだ。で、こいつが今熱い。

昨年も同様 UW GIS Day Expo に行ってきたわけであるが、ほとんどどのブースも ArcIMS か MN mapserver である。その手の技術を前面に押し出した発表がウィネバーゴ郡(オシュコシュがある所。去年ちょっとお世話になった) しかなかった去年とは様変わりだ。もうこれは普及品である。もはや、徒手空拳孤立無援で Web mapping server を自作しようなんて意味がない。

なかでも一番ショッキングだったのがUW Aquatic Science Centerのページだ。ちょいとクリックして Great Lakes: Weather なんて Context を選んでいただきたい。レーダー画像やら GOES 衛星風やら警報ポリゴンやら何やらがどこからともなく提供されているということも注目点ではあるが、このマップ、いろんな WMS サーバからの画像レイヤをかき集めてきて1つの地図をこしらえているのだ。データ本体がどこにあるか、そのフォーマットがどんなものであるかを気にすることなく、自由にデータを重ねてみることができる、まさしく僕らの夢物語だったはずのものがここでは実現している。

ASC のページを作った学生に聞いてみたところ、これは MN mapserver とChameleon で作れるのだという。どちらもオープンソースだ。Chameleon の設定は難しいというが、ぜひチャレンジしてみなければなるまい。

ところで、WFS (ベクタデータ), WCS (ラスタデータ), WMS (画像) のうち WMS のアプリケーションが一番速く発達したことはどう考えるべきだろうか。利用者の端から考えると、ゲットした画像をそのままブラウザで表示できるということがアプリケーションの作りを簡単にするわけだ。


(2005-11-28 追記) ASC のウェブサイトのスクリーンショット
Screenshot-1

forwarding email

A perl script that forwards all emails stored in the spool to an address specified by .forward file. Useful when a user who has already a bunch of emails decided to forward email. 続きを読む

データベースの表スキーマの修正手順

テーブルが大きくなると、無闇やたらなクエリをかけるとサーバが固まってしまうことがある。そんなわけでオレ流手順。 続きを読む

MN mapserver + chameleon site of UW-ASC/Sea Grant

A fantastic site made by Jen, presented at GIS Day expo. I want to learn how to implement this.

Gmail にまとめる

大学のウェブメールがいっぱいになったので、思い切って Gmail に移すことにした。SSL IMAP というめんどくさいものなので、取得スクリプトを書くことは断念。Sylpheed で MH 風フォルダに突っ込んだ。で、本記事末尾のスクリプトで転送。

やってみると、けっこう能率が悪い。1600通転送するのに何分かかったかなあ。それから、Spam 落ちを除いて 1000 通くらい転送されたので、後の整理が大変だった。何かラベルを着けて一括アーカイブとかしないと、他の重要なメールとまぎれて危うい。私はどうしたかというと、後から慌てて November 2005 で検索してそれ以外をアーカイブ落としした。 続きを読む

DB の uniq

ファイルシステムに直接アプリケーションデータを格納するのをやめて RDB を使おう、と提唱しようとしているわけであるが、そのためにはファイルシステムに対して提供されているソフトウェアツールたちの対応品を全部作る・調べる必要があるわけだ。

これまで cp(1) 相当品を作って来ている。次は、uniq(1) だ。

なんでそういうものが要るかというと、dbcopy-data.rb のテストをしているうちに、本来重複で撥ねてほしいものが重複して突っこまれてしまったのである。Unique キーを附けわすれたのであるが、重複登録がされてしまった後ではもはや unique キーを附けることができない。重複したレコードをまず消してから臨まねばならないのだ。

... 作っているうちにめんどくさくなってきたので SQL コマンドで始末する。

create table tmp_dups
select time, oid,
 bit_count(bit_or(1<<(oid % 16))) as dup
from msgbull
where time between '2005-11-01'
 and '2005-11-10' group by text;
これでテキストが同じレコードの重複数 (重複してないやつは1) がカウントされ、 そんでもって筆頭の時間と oid が記録される。 そしたら、重複しているのを狙い撃ちして消す。
delete from msgbull
where oid in
(select oid from tmp_dups
 where dup > 1);
... といってやってみたら mysqld が高負荷で止まらなくなってしまういつもの悲しい現象。そこでダサいけれど確実な rename 方式とした。
ALTER TABLE msgbull RENAME TO msgbull_bak; 
で、 dbcopy-schema してからインデックス・ユニークキーを追加。それで dbcopy-data (このふたつ自作) を使ってコピーを開始すれば、いくら遅くなったってかまわない。よく考えてみたら、dbcopy コマンドを2つに別けた理由がインデックスの追加などの最適化のためだった。お馬鹿。

ところでだ。更新時刻 asof フィールドは最初コピー作業の時間に変更するようにしていたのだが、これは大失敗だ。受信時間のままにしておけば、ldm ネットワークの通報速度の統計資料になったのに。

自分で自分を証明する

エクセルでマクロを書くときに1つ困ったことがマクロウィルスである。そのためエクセルはデフォルトでは電子署名がない限りマクロを有効にしない(マクロセキュリティ:高)ようになっている。セキュリティを中に落とせば利用者がマクロを有効にできるのであるが、これもまた気持ちが悪いものである。

清く正しく電子署名をするためには認証局から何か証明書とやらいうものを買わなければいけないんだそうで、例によって貧乏なワガハイとしてはそういうことはやらない。

ところがである。マイクロソフトも粋なはからいをしてくれるもので、自分で自分に証明書を発行するプログラム C:\Program Files\Microsoft Office\Office10\SelfCert.exe を用意してくれているのだ。これで作った証明書を認めると設定すれば、マクロセキュリティが高でも自作マクロを使うことができる。素晴しい。

でもこれ本当に大丈夫なのか? 高木浩光さんに怒られるようなことしてないかオレ?

図形オブジェクトを操作する GUI の必要性

前にもちょっとだけ触れたが、ArcGIS は(雑魚を除けば) ArcMap, ArcCatalog, ArcToolbox の3つのアプリケーションからなっている。ArcMap は地図作成ソフト、そこで用いるデータをファイルシステムであるかのように扱うブラウザ・シェルが ArcCatalog である。ArcToolbox は座標変換やらデータ解析やら、まあその ArcMap/ArcCatalog のどっちに付けたものだか迷うような機能群で、どっちにもドッキングできるようになっている。

ArcCatalog の存在は、地図を作成するという最終製品のための可視化系プログラムと別に、データを管理する(コピー・改名・削除・あるいは単に一覧して所在を知る等)ということが必要ということを意味している。初心者はOSのビジュアルシェル(エクスプローラ)を使いたがるが、Geography 377 の学生たちが実習ではまったように、複数ファイルから構成されるデータや、1ファイルの一部がデータつまりその可視化系で最小単位オブジェクトとみなされるか、あるいはそのオブジェクトが外部のなんらかのデータベースと関連付けを持っているとかするならば、OSのシェルを使っているとデータを壊してしまうことになる。

で、いくつかのアイデア。

・ネットワーク分散環境では、NFS のようなファイルシェアリングの管理が問題を起こすことがある。たとえば帯域・接続数リミットができないとか。特定データのビジュアルシェルがデータに特化したプロトコルでデータをやり取りするならば、そういう問題を解決しやすい場合がある。したがって、データのビジュアルシェルを強要することにもうひとつの積極的な意義を見出せる。

・データのやりとりプロトコルの共通基盤として、昔は HTTP だけを考えてきたが、MySQL のようなデータベースプロトコルは使えないか。アプリケーションが限定されるが実装はしっかりしている。

話は戻って、ArcGIS には3つのアプリケーションがある話。これを 2001 年ころの gtool4 と対比してみると、ArcCatalog 相当品はあった。メインは ArcToolbox みたいなものであった。だから、欠けていたのは ArcMap であった。で、ArcMap は何なのか。

主たる機能はデータからデータを用いた図形表示を構成することなのだが、それは単にデータをペタペタ貼り付けるだけの GUI ではない。貼り付けたあとのデータの表示方法 (symbology, label, ...) を GUI で操作することが要点であるように思われる。

ファイルの生産に着目すると、ArcMap は地図1枚に相当する MXD ファイルを作成編集するソフトウェアだ。MXD ファイルはデータを含んでいない。データをどこから取ってきて、どのように表示するかを書いたファイルだ。これは gtool4 の可視化構造体の編集操作に相当する。

で、これを gtool4 では可視化構造体をツリー表示させた中でパラメタを一個一個編集させようとしたわけだが、それってレジストリエディタ並みに寒い風景である。やっぱりお客さんに本当に使ってもらおうと思えば WYSIWYG が必要だ。で、WYSIWYG するためには図形表示の1点をクリックされたときにそのイベントをオブジェクトにディスパッチしてくれないとやってられない。ArcMap はそういう基盤を提供してくれるから偉いのだ。

で、私はエクセルの上でそういう基盤を作るのが一番社会にインパクトがあると思ったわけであるよ(前回に無理やりつなげる)。

そうすると一から作り直しということになるのであるが、それはそれでいいのだとおもう。複数の同種オブジェクトを扱うシステムが、オブジェクト指向じゃなくて手続志向なグラフィックスライブラリで構成されているのは悲惨だ。あれは遠い昔、わたしが GrADS にぶちきれて堅気の道を踏み外したのも、多数の同種オブジェクトを描画しようとしたときにそれらの相互作用がスクリプトを保守不能なガラクタに変えていくのに耐えられなかったからであるし、結局手続き志向な基盤をオブジェクト指向にラップするという仕事のフレームワークをとっているかぎり、そのようなごたごた度合いに大差はないのではないかと思う。

ところでだ。ココログには検索がない。ログインすれば検索はできるのだが、そこで日付を探してバックナンバーを掘り出すというのはいささか不便である。なんとかならんのかこれは。

The reason why db copy failed

Finally I got it!

I wrote a program to copy db. It was later improved to copy only SELECTed records. But when I tried to use it to mirror the warning DB, it didn't worked.

The reason was oid field. It is unique key, so we have to ignore it. Additionally, I'll have to do some hack to replace asof field with current time.

テープに振り回された

サムが過去の警報データをアーカイブしたいんだという。大いに結構な話だ。で、気象学科に聞いてみたら、Exabyte のテープにアーカイブしてあると言う。そうこなくっちゃ。 で、ここからが今日の話。うちのセンターにはいくつかエクサバイトドライブが転がっている。取説はないが気合の世界だ。関係者を回って了解をとって、そいつを Linux ボックスにつけて起動する。ディップスイッチが 3 個と 1 個のがあるから、どうせ SCSI ID とターミネータだろうくらいの感はある。で、OS は起動して無事 /dev/st0 になる。が、動かない。テープを入れると吐いてしまうのだ。無理矢理読むと I/O エラー。syslog にも何も出やしない。ランプが点滅している。これはクリーニングをしろということかもしれない。クリーニングテープを突っこむ。出て来なくなる。気合の限界っぽいのでこれまでとする。 数百円お金があったらデジカメで写真に撮ってはてなに質問したら型番と対処方を教えてくれる人があるかもしれないが、お金はかけないのが身上。あっさり気象学科にごめんなさい読めないのでお手すきの時でいいので読んで下さいおねがいしますすることにした。

Windows との再会

ArcObjects の講義がめでたく終了した。これほど私の世界観を変えた講義もないとおもう。といっても、ArcGIS が気に入ったわけではない。Visual Basic だ。

たしかに ArcGIS は立派なソフトウェアだし、そのグラフィックスオブジェクト構成は2次元的データ可視化ソフトウェアのオブジェクト構成の模範たるべきものであって、これから一生懸命パクらなければいかんと思うが、いかんせん高い。殿様商売である。現代の殿様たる法人相手のビジネスではとても重要であることは確かだが、ま、所詮は近代を通じて発達してきた地図学 cartography を直截にコンピュータに移したものであって、そういうプロフェッショナルなニッチのもんである。

地図学の外にあって、新しいソフトウェアを通じて Ajax みたいに世界を変える可能性を探すとしたら、ずばりエクセルマクロ(VBA)なんではないかと思う。

そういうと、私と何らかのバックグラウンドを共有する読者はたぶん笑われると思う。が、私は本気だ。

アカデミックに限らない、一般の気象ファンの中でいったいどれくらいの割合が Linux を使いこなせるだろうか。まず皆無とみてよい。デスクトップOSとしても、まあまあ使えるようになってきた、ということだが、ただ Windows 並みでは誰もつかわない。普及するにはまだ相当の年月を要するであろう。そんな中で、誰もが開発に参加できるプラットフォームがあるだろうか、というあたりで思考が止まってきたのだが、それが VBA だ。

VB といっても VBA はインストールが要らない。要るには違いないが、エクセルをインストールすれば着いてくる。これは現代社会において、インストール不要も同然だ。それでいて、グラフィックスが使える共通言語プラットフォームとして使える。まさしく、夢のような話ではないか。大昔に BASIC パソコンに触ったときのようなわくわくする感じが久々に持てる。

ま、その、ダークサイドとしてマクロウィルスがあるわけで、なかなか悩ましいのではあるが、ま、それはそれ。

しかし何だなあ。これはプロジェクトとして支援してくれる人はまずいなさそうだ。教育系かなあ。

package "weatherdb" created

I managed to pack all files related to my weather database into a directory tree and created RPM package weatherdb (discussions). I feel happier than before looking at simpler packaging plan.

So far the weatherdb package doesn't have initialization script. I still have to create tables when I would install it to other machines. So the next step should be initialization scripts.

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。