2003-11-07[n年前へ]
■jphoto2
打ち合わせ帰りのこだまの中で、ファイル読み込み完了チェック部分を直してみました。とりあえず、こんな感じになりました。このディレクトリ配置を見れば判ると思いますが、ディレクトリ内に画像ファイルを置いて、その中にphoto.txtという名前の「画像ファイルの一覧」のテキストファイルを置いて(例えばこんな)を置けばあとはzphotoのような表示をします。
もちろん、サムネイル画像用の小さな画像とリンククリック時に開く大きな画像を別にするなんていう風に変えてみるつもりですけれど、今の状態で使ってみたい人は適当に使ってみて下さいな。test.swfを自分の所にコピーして、自分用にphoto.txtを作ってやればOKです。ちなみに、photo.txtの改行コードはCR+LFにして下さいな、と。
2003-11-22[n年前へ]
■hirax@はてなアンテナ
「こんなに巡回してるのかぁ?」とツッコミを受けましたが、もちろん巡回しているわけはなく、あれは基本的に「はてなダイアリ・アンテナ」のコピーになります。つまり、何かの時点のはてなダイアリ全部が単に登録されているされていることになります。
では、何故コピーをしたかというと、はてなダイアリの一覧リストが欲しかったから、ということです。例えば、「はてなダイアリ・サムネイルアンテナ」を作ったりする場合のような、何かの実験をするときに(はてな側に負荷をかける作業のため基本的に遠慮していますが)使ったりしたわけです。
2003-12-31[n年前へ]
■To be continued.
これが、2003年に私が眺めた「今日見た景色」 今日見た景色を見ながら、前に書いものをただコピー。
『昨年の二月頃から、ほとんど毎日、その日眺めた景色を写真を撮ってきました。といっても、ポケットに入れたデジカメでとりあえず目の前のものをファインダーの中に入れて、シャッターを押してきただけです。ただ、ボーっと「今日」眺めた目の前の景色をデジカメで撮り続けてみたわけです。そんな写真の一部を並べてみたのが、このコンタクトプリントです。
だから、この写真はどれもみんな「今日見た景色」です。
どれも「今日見た景色」ではあるのですけど、今眺めてみるとどれも「昨日見た景色」になってしまいました。昨日の"News"が「新しいこと」でなくなってしまっているのと同じです。いつも、「今日」という日を過ごしているはずなのに、その日見た景色が「今日見た景色」でなくなっていくのは少し不思議なことです。とはえ、「昨日見た景色」が「今日見た景色」と違うわけではないし、景色を眺めている私もやっぱり同じ私です。
だから、やっぱりどれも「今日見た景色」だと思うのです。
さて、来年もまた「今日見た景色」に向けて私はシャッターを押し続けると思います。そのファインダーの中に見るだろう「明日見る景色」も、やっぱりその日その日の「今日見た景色」です。
来年の明日見る「今日見た景色」はどんな景色なのでしょうか?ずっと夢見てきたような景色が、そこには見えるのでしょうか。それとも、想像したこともないような景色を私は眺めているのでしょうか』
2004-04-09[n年前へ]
■ATOK用perl機能追加プラグイン
ATOKの変換機能を使ってperlのコマンドを使うことができる「ATOK用perl機能追加プラグイン」を作ってみました。これは、以前作ったATOK用コマンドライン機能追加プラグインを機能縮小・変更したものです。動作するためには、ATOKとperlがWindowsにインストールされている必要があります。
このソフトウェアを使うと、ATOK上で半角英数で入力中に、例えば
print sin(3)/5と入力して、「AMET変換」をすると、
0.0282240016119734と出力されますし、
system(calc)なんて入力・変換すると計算機が起動します。ちなみに、クリップボードにテキスト形式のデータが入っていれば、その内容に対して処理をすることができます。つまり、テキストデータの羅列がクリップボードにコピーされている状態で、
while(<>){print $_;}なんて入力・変換すると、クリップボードの中身がそのまま出力されるわけです。もちろん、その内容に何かの処理をするのも当然アリでしょう。例えば、エディタで作業中に「全選択」「コピー」して、perlのコマンドで全体に処理をかける、なんていうことも朝飯前です。
ちなみに、出力結果が長く(200文字程度以上に)なるときには末尾に"&"を付けて下さい。また、ATOK数式処理プラグインと同じように、末尾に"="をつけると入力内容も表示されます。その場合、
print sin(3)/5=と入力すると、
print sin(3)/5 = 0.0282240016119734と変換・出力されます。
というわけで、これからATOKとperlとこのプラグインさえあれば、どんなソフトもperlの機能が利用できるわけです。正規表現を利用した処理でも数値計算でもなんでもござれ、というわけです。AMETを使ったことがない人は、AMET変換をワンアクションでできるようにしておくようにした方が良いでしょう。
ちなみに、これは、一言で言ってしまうとperlのワンライナーが使えるようにする機能拡張ということになりますが、もしかしたら今後、履歴保存もできるようにするかもしれません。詳しくは、日曜日にでも書くと思います。とりあえず、ATOKユーザーでperl好きな人には便利かも。周りの人をちょっとビックリさせ自慢してみるためダケにでも、いかがでしょうか?
2004-04-12[n年前へ]
■ようこそ「辞書単語登録プログラミング」の世界へ
ATOKではじめるperlスクリプト
日本語を使う日本人として、PCを使っていて不便を感じることは多い。例えば、URLを入力するときには半角英文字入力モードに切り替えてキーをタイプしなければならないのに、その一方メールを書くときにはATOKの全角ひらがな入力モードに切り替えてキーをタイプし日本語を入力しなければならない。そして、そのメールを書いている途中にアルファベットのフレーズが出てくるようであれば、また文字入力のモードを切り替えなければならない。基本的にアルファベットだけを使うラテン語系の言語と違い、日本語のような多くの文字を入力するためにIMEなどのプログラムを使わなければならないとなると、どうにも不便を感じることが多い。そんな時、アルファベット文化圏に生まれなかったことを少し残念に思ったりする。
しかし、短所と長所は紙一重の表裏一体のものである。短所と長所が表裏一体というからには、どんな視点から眺めるかで、その表と裏は短所にもなれば長所にもなるハズである。IMEなどの日本語入力システムを使わなければならない不便さも、少し考え方を変えてみればきっと何かの便利さにも姿を変えるハズである。例えば、「グーグル」なんていう言葉を"
www.google.com"と辞書に単語登録してさえおけば、入力の手間を少し省くことができる。つまりは、日本語入力システムがブックマーク代わりになったりもする。つまり、日本語入力システムを単なる「よみ→漢字」という変換を行うデータベースにしておくのではなくて、「名前→URL」という変換を行うデータベース代わりに使うと便利であったりする。
そんな考えをさらに進めて、少し前にATOK数式処理プラグインなんていうものを作ってみた。JUSTSYSTEMの日本語入力システムATOKに数式処理機能を追加することで、数式計算を日本語入力と同じような感覚でできるようにしてしまうというツールを作ってみたのである。つまり、日本語入力システムを使えば「ひらがなの読みを入力すれば漢字が表示される」のと同じように、「数式を入力すればその計算結果が表示される」というものを作ってみたわけだ。日本語入力システムを使わなければならない不便さを、それを使えば、「どんなに算数が苦手な人であっても、誰もが天才算数少年になることができてしまう」という短所・長所変換システムを作ってみたのであった。
もう少し言い換えると、「有限の『よみ』を有限の『漢字』に対応させる」といったような「有限のデータベース」だけではなくて、「(色んな無限のパターンがある)数式→(色んな無限のパターンがある)計算結果」という無限のデータベースに日本語入力システムを変えてみたわけである。今回はそんな考えをさらにさらに押し進めて、ATOKの機能を必要以上にムダに機能拡張してみたい。
というわけで、今回は「数式」ではなく「perlスクリプト」プラグインを仕立ててみた(最新バージョンはperlだけでなく、ruby,awk,何でもござれバージョンになっています)。「数式」も「perlスクリプト」も結局は「プログラム言語」であって何ら違いはない(ATOK数式処理プラグインではクリップボードを変数として使うこともできる関数でもあった)わけだが、色々なことを実現しようとするならばperlの方が高機能であるに違いない。そこで、Windowsにインストールされたperlの機能をATOKから使うことができるプラグインを作ってみた。「そんなもの何の役に立つ?」「無意味にムダじゃないの?」と思う人が多いだろうし、その疑いは必ずしも外れてはいないのだが、とりあえず少し使い方の説明をしてみることにする。
例えば、まずは「perlスクリプト・プラグイン(最新バージョンはperlだけでなく、ruby,awk,何でもござれバージョンになっています)」を使って、これまでの「数式処理プラグイン」と同じようなことをしてみることにしよう。ソフトウェアをインストールした後でATOK上で半角英数で入力中に、まずは
print sin(3)/5 |
と入力して「AMET変換」すると、
0.0282240016119734 |
という風に計算を行った結果が出力される。もちろん、これまと同じように入力語句の末尾に"="を付けて
print sin(3)/5= |
と入力して「AMET変換」すると、
print sin(3)/5 = 0.0282240016119734 |
というように、入力スクリプトとその実行結果(計算結果)が共に出力される。なんと、これでATOKユーザーならばperlの数式処理機能を全て文字入力中に使うことができるわけである(perlがインストールされていれば)。
また、クリップボードにテキスト形式のデータが入っていれば、その内容が入力されたファイルがperlスクリプトに引数として渡される。だから、例えばクリップボードに
いろはにほへと ちりぬるをわか よたれそつねな らむうゐのおく やまけふこえて あさきゆめみし ゑひもせす |
なんていうデータが入っている時に、ATOKの文字入力で
$i=1;while(<>){print qq/$i: $_/;$i++}& |
と入力(末尾の&は出力結果が長くなるときのおまじない)して変換すると、クリップボードにコピーされていたデータを
1: いろはにほへと 2: ちりぬるをわか 3: よたれそつねな 4: らむうゐのおく 5: やまけふこえて 6: あさきゆめみし 7: ゑひもせす |
と行番号付きで出力することができる。
つまり、ATOKを使う限りにおいては、どんなアプリケーションであってもperlの機能を使うことができるわけだ。上の行番号を出力した例のように、メモ帳からでもあるいはノートパッドからでもperlの機能を使った機能拡張をすることができるわけだ。メモ帳ですら、perlの正規表現を駆使した整形処理をすることができるようになるのである。
えっ?こんな「perlスクリプト」を入力するのはメンドくさい?こんな"$i=1;while(<>){printqq/$i: $_/;$i++}&"なんていうプログラムを毎回毎回入力できるハズがない? うーん…何のためのATOK、何のための辞書変換、何のための日本語入力システムだろうか? …そう、こんな「perlスクリプト」はただ辞書に単語登録しておけば良い。「ぎょうばんごう」なんていう「読み」で"$i=1;while(<>){printqq/$i: $_/;$i++}&"という文字を登録しておけば済むのである。すると、最近のATOKであれば予測入力すらできてしまうから、二回目からは「ぎょう」という辺りまで入力したときにはすでに「perlスクリプト」が表示されているハズなのである。これがATOKではじめる「辞書単語登録プログラミング」なのである。これからの時代は「入力予測システム」「プログラム・データベース」「クリップボードを用いたファイル不要のプログラミング」という実にお気楽環境なのである。
そのお気楽プログラミングでどんな便利が手にはいるかというと、例えば「じこく」という「読み」に
($s,$m,$h,$d,$o,$y,$w,$i)=localtime;print qq/$h:$m:$s/; |
というような、文字を登録しておけば、「じこく」でAMET変換すると
0:18:16 |
という風に時刻を表示させることもできるし、例えば
ねん = "($s,$m,$h,$d,$o,$y,$w,$i)=localtime;$y+=1900;print qq/$y\//;" がっぴ = "$s,$m,$h,$d,$o,$y,$w,$i)=localtime;$o++;print qq/$o\/$d/;" じかん = "$now=localtime;print qq/ $now /;" |
なんていう風に登録しておけば「ねん+がっぴ」を変換すれば
2004/4/12 |
になるし、「じかん」であれば
Mon Apr 12 00:22:27 2004 |
というように自動入力することだってできるのである。
もちろん、system関数だって使えるわけだから、他のプログラムの機能を使うことだってできる。もちろん、他のプログラムの機能を使うまで行かなくても、他のプログラムを起動だけさせるなんてことだって簡単にできる。例えば、「でんたく」なんていう読みには"system(calc)"というような文字を辞書登録しておけば、「でんたく」と入力しperlスクリプトを表示させた後に変換を行うと、電卓が起動するようになる。
上に挙げたものは、とても簡単なサンプルに過ぎない。おそらく、perlを使いこなす人たちであれば、色んなperlスクリプトで色んな機能をATOKに追加していくことができるに違いない。
というわけで、今回はこんな「ATOKperlスクリプト・プラグイン」のご紹介をすることで、ATOKではじめる「辞書単語登録プログラミング」の世界へようこそと宣言をしてみたい、と思う。Windows上でATOKを使っていて、perl使い、という人がどれだけいるかは判らないが、一行プログラミングならぬ「辞書単語登録プログラミング」も面白いかも、と小さく呟いてみたいと思うのである(ちょっと弱気)。