Skip to main content

ログ取得ツール

Category: コンピュータ

xyzzyの名前空間

xyzzyを作業環境にしようと思い立って、auto-save-buffers.lというのを見つけてきて(require ‘auto-save-buffers)してみたら、「名前が衝突するため、exportできません」と言われてしまう。見ると、(in-package “editor”)としているので、editorという名前空間に自前のシンボルをexportしようとしてエラーになっているようにも見えた。

調べてみると、xyzzyのlispの名前空間は勝手に作っていいものではなくて、いくつか決まったものがあってネストされた状態になっている(?)みたいな。そこで、(in-package “user”)に変更したら、うまいこと動いてくれたようだ。xyzzyのlispはEmacs-lispよりもcommon-lispに近いらしいですね。ちゃんと分数(実数)型になるらしい。Lisp系の言語は以前にちょっとかじってた程度なんで分からないけど。

実数型はなんで流行らないのかな。誤差を考えなくて済むので便利だと思うんですけどね。

あとはTortoiseHGを入れてmercurialで作業環境を管理するようにして、Linuxとの同期をとったりできるようにした。auto-save-buffersもこういうものを前提にしたものですしね。Windowsで作業するというのがイメージできていなかったが、そう悪くない環境になるような気がする。xyzzyのPythonのモードも悪くない出来だと思います。

お手軽なHDRI計画(1) 色数の問題

HDRIに憧れる少年がいたとする。まあ実際は30代のオッサンですけど。自分のコンパクトデジカメでできるだけHDRIな人になるにはどうしたらいいのか。いくつか方法を考えてみたいなぁと。 HDRIっていうのはいろんな文脈で使われるようだが、私が言っているのはこっちに近いかな。写真っぽくない、絵画みたいな雰囲気。といっても非現実的になるわけじゃなくて、人間の目で見たものにより近い感じになる。写真だと逆光だのなんだので条件が悪いと猛烈に色が飛んで、目にははっきり見えるものがぜんぜん写らないじゃないですか。芸術を追求したいわけじゃなくて、あれがむかつくんですね。だからHDRIに憧れるといっても、「スクリプトを通せばある程度きれいになります」というレベルでいい。 そんなことができるのか。 このカメラにはオートブラケットの機能がついている。明るさ(用語はわからないが)を変えながら3回シャッターが切られて、3つの画像が保存される。これを組み合わせて、明るい部分を暗い画像から、暗い部分を明るい画像から採用すればそれっぽくなるような気がする。これならPythonのPILで簡単なスクリプトを書くか、Gimp(Script-Fu?)で頑張ればどうにかなるレベル。3枚のうち、暗すぎる部分と明るすぎる部分を捨てながら色を採用orブレンドしていけばいい。ただ、何の単位かわからないが、±0.5までしかないのであまりアグレッシブな(?)絵にはならないかもしれないし、三脚ではなく手で持って液晶を見ながらいい加減に撮るし、ずれると悲惨かもしれないね。ちょっとブレやすい程度で済めばいいけど。 ズレの解消法として、3つの画像をautopano-SIFTとhuginで重ねて、enblendの部分を自分で書くとか? 自分で書かなくても、enblendのオプションでどうにかなるのかもしれない。ありものをつなぎ合わせるだけでスクリプトにもしやすい(huginの部分はnonaを直接呼べばいいだけ?)。調べてみる価値はあるだろう。 また、このカメラはRaw(AdobeのDNG形式=tiffの拡張)でも保存できる。Rawでオートブラケットは効かないようだが、とにかくjpegでは飛んでしまう色まで記録できるように作られているはずだから、HDRIに近づけるだろう。OpenEXRに変換すれば、exrtoolsあたりでがんばれば、それなりになるかもしれないし、Pythonのモジュールもあるからどうにかなる可能性が高まる。 ざっと考えるとこの2つ。他にもやりようがあるのかもしれないが。 どっちがいいのかな。最初に気になるのは、Rawのデータのビット数。これが8ビットだと、何やってるんだという話になる。さすがにないか。調べる方法が分からないが手探りでやってみると、

サーバ移行

雪の降る中、サーバを移行しました。今までバックアップと兼任だったマシンをサーバに降格させたんですが、途中でバックアップがない状態でファイルを間違って消したり(アップした画像などは復活できませんでした)、いろいろ騒ぎながらもメールとWebサーバの移行ができました。今度のサーバはThinkPad X30(2002年発売の10周年記念の限定モデル)です。

メール関係ではbogofilterをやめてSpamAssassinに。ThunderbirdのSPAM除けがSpamAssassinのヘッダを簡単に(チェックボックスにチェックするだけで)認識してくれるのでそうした。ThunderbirdのSPAM除けと2重チェックになってくれて、良いかもしれない。

OS関係ではCentOS5.1にしておいた。仮想マシン上でサーバを動かして、次回のハードウェアリプレースのときにはマイグレーションでやろうとも思ったけど、Intel VTに対応したマシンでもないし、子供に邪魔されたり奥さんにコキ使われながら移行する作業というのも悪くないので、やめておいた。

Excelの日付時刻情報が処理しにくい話

私も仕事の関係でExcelなどを使うことがあるが、Excelの日付時刻情報の使いにくさは何とかならないものか。まあ、他の表計算のソフトの状況は知らないのだけど。 何を言いたいのかというと、Excelの日付時刻情報は浮動小数点数で表現されている。1.0が1日。これが曲者だ。1秒はどの値かというと、1/(24*60*60)=約0.00001157407407407407であり、10進の浮動小数点数では正確に表現することはできない。人類は1日の中の時間を表現する時、24進数と60進数を併用している。秒以下の部分(ms, us, ns…)は10進数だが、24進数と60進数を10進数(実際は2進数)の小数で表現するのは無理があると思う。 Excelで日付時刻情報を縦もしくは横軸にとってグラフ化するとき、10秒単位で目盛をつけたいと思ったとする。軸のプロパティから目盛単位を変更するのだけど、どうしたらいいのだろう? 確か「00:00:10」が正解なのだが(ちょっと手元にないので確認できない)、なんだかなぁという気がする。目盛単位を修正するとき、得体の知れない小数に直されているので、ちょっと10秒を3秒にしたいんだ、というときに10を3にするような手軽さはなく、結局分かりにくいので、何だっけ、SECとかMINUTEとかの関数を組み合わせて秒単位の整数を作ってグラフ化するのが楽ということに(私の中では)なった。 コンピュータで日付時刻を表現するとき、少なくとも私の分野ではコンピュータにおける紀元(EPOCH)からの秒数で表現するという手法が一般的だ。EPOCHは1970年1月1日の00:00:00 GMT。秒以下の精度が必要な場合は、Cのstruct timevalのように秒とusの2つの整数を合わせて使うか、Pythonのように浮動小数点数にするか(usの精度を確保するには仮数部が31+20=51ビット以上あればいいので普通の倍精度浮動小数点数で大丈夫)。これがもっとも単純だ。60進数、24進数といえども整数ならば単純で、整数を整数(60や24)で割ったり剰余を取れば簡単に処理できる。 まあよくよく考えると、精度としては1.0が1日を示すか1秒を示すかに優劣はない。でもなんか気持ち悪いし、実際に処理しにくかったことがあったので書いてみました。

電話に関するあれやこれや

買った電話について。Bluetoothは要するに電話からはスピーカー/マイク(HSP/HFPプロファイル)を使えて、PCからはモデム(DUNプロファイル)として使える、というわけで電話からネットワークとして使える、ということはない。以前にPalm…というかCLIEではPCにつないだUSBのBluetoothアダプタを経由して、適当にNATで道路を作ればネットワークにつながったのだけど、そういうことはできないみたいだ。 次、USB接続。まずUSBのケーブルは普通のミニの5ピン。USBなのに5ピン。以前に不思議に思っていたが今となっては一般的と思っているケーブルだ(参照:USB コネクタ ミニ)。これでつなぐと、いきなり電話の画面にダイアログが出て、Mass Storageを使うかどうか聞かれる。Mass Storageにするとパーティションに分けられていないデバイスが見えた。なぜかマウントはできないな。あとLinuxはパーティションに分けられていない、リムーバブル属性のついたデバイスは/proc/partitionに現れないという、確かそういう挙動をする。そんなことはどうでもいい。まあ、この中身については追い追い調べていくとしよう。 で、Mass Storageにしないように選択すると、いきなり素直なモデムとして認識される。非常に素直だ。/dev/ttyACM0が勝手にできて、cuやminicomでつなぐと特に設定することもなくATコマンドを受け入れる。 そしてATコマンドだが、特殊なものを探したくなるのが人情というもの。まずは「AT@K(数値)」。拾えるアンテナと電波の強度(?)をリストアップする。20まで指定できるらしい。自宅で「AT@K20」と打ったらけっこう出てきた。また、以下のものは確認した。

電話購入

電話を買い替えてみた。これまで6年前に買ったPHSを使っていたのだが(お疲れ様でした)。 通販で買ったので1日不通になっていた。再配達の申し込みのために、長らく押し入れにしまっていた固定電話を引っぱり出してつないだりして。 しかし最近の電話はすごいんですね。Bluetoothがついてたり、miniSDカードさせたり、USBで充電できたりすんの! 操作がわからん。着信したときに都合が悪くて留守電応答したいときはどうすればいいんだろう…調べとかないと。 いろいろ環境を整備していると、これはやはりデータ通信に関しては定額の契約にしないとヤバいんじゃないかなと。カード型の端末で使っている回線を解約して電話機のほうを定額の契約にしてみよう。家の中だったら、Bluetoothで接続できるようにしたほうが高速かもしれない(でも家の中ならPC使うよな…)。 とりあえず、日刊スポーツが見れない。他はだいたい大丈夫かな…さすがに遅いけど。一般的なJリーグの速報サイトってどこだろう。やっぱJ’s GOAL? それと、ざっとぐぐってみたけど、この電話機で使えるsshのクライアントはないようだ。phpshellとwebminあたりでも入れとこうかな。

NoScript

Firefoxの拡張で最近人気のあるらしい、NoScript(noscript.net)を入れてみた。JavaScriptをサイト毎に禁止/許可できる。けっこう細かい処理をしてくれるので便利そうだ。Bookmarkletが使えなくなるなんてこともないし。メッセージもちゃんと日本語になってるな。 使ってみて思ったのは、JavaScriptを使っていないサイトが非常に少ないということ。ほとんどないんじゃないか(ここもそうだが)。でも使わなくても何も不都合がないサイトも多い(ここもそうだが)。 今までは*.jsが別ファイルになっていればいちいちAdblockやjunkbusterで止めるということをやっていたけど、セキュリティ的にはNoScriptのほうが効果はあるだろう。 NoScriptの不満があるとすれば、消せない設定があること。flashgotとかgooglesyndication等は消せなくなっている。消したい人もいるだろうに。それと、初期設定ではMSNやPassportも許可に設定されている。 (追記) 2005-11-28 12:56 消せなくなっているサイトは、about:configからnoscript.permanentに羅列されているサイトを削除すると、消せるようになる。 (追記) 2005-11-28 17:42 今日1日使ってみた感じだと、自分がよく見るサイトでJavaScriptがないと何もできないサイトはBloglines(何も機能しない)、時事通信(トップページが出てこない)、bjリーグ公式サイト(あらゆるリンクが辿れない)、フロンターレの公式サイト(メニューが出ない)くらいでしょうかね。それからGoogleも許可しておかないとFirefoxのCustomizeGoogle拡張が機能しません。Ajaxを使ったサイトもあるわけだから、Googleは渋々許可しました。 それ以外のサイトはどうにか必要なものを見ることができるようです。Webmail関係とかはまた許可しなきゃいけないだろうな。設定はAdblock同様に楽チンなので、追い追いやっていこうと思う。 (追記) 2005-11-29 11:20 下のバーの表示の意味がやっとわかった。「」がJavaScriptのスクリプト数、「J+F+P」はJavaとFlashとその他のプラグインの数だ。全部0か、スクリプトが許可されていれば、バーは出ない。

謎

Excelの折れ線グラフで横軸の設定をキリのいい単位にする方法はないものか…普通に「軸の書式設定」-「目盛」で目盛ラベルの間隔(L)を1000とかにすると、1の次が1001になってしまうのだ。0、1000、2000にしたいのに、1、1001、2001で非常にカッコ悪い。どうやってもゼロオリジンにならないの、これ?? 「Y/数値軸との交点(C)」を0にしようとしても拒否されるし。 しょうがないからいつも散布図にしてるんだけど(これだとキリのいい数字になる)、みんなはどうしてるんだろう。自動でやると横軸は必ず見にくくなるよね。目盛の間隔も1のままで動かないのでいつも手動で変更する。 OpenOffice.orgはいまだにテキストファイルのインポートの操作が覚えられないのと、ちょっとしたグラフを書くのにも異様に重いのでまだ使えないようだ。無茶をしたいわけじゃなくて、たった数千行のデータを読み込ませてグラフにしたいだけなのに。 それとWindowsでクリップボードにあるEMFを一発で望みのサイズのpngに変換する方法があったら知りたいなぁ。Excelのグラフをpngにしてメールで送る、という作業をよくやる(シートのままだとでかすぎて送れないため)のだけど、今はいちいちペイントを上げてペースト(サイズは指定できない)、そのままペイントで「ファイルにコピー」でbmpにし、netpbmでpngに変換している。「Windows画像とFAXビューア」だと直接pngにできるけど…サイズが…あといらない黒枠がついちゃうことがある。WindowsだとVBスクリプトみたいなので書けるのかな。 emfをLinuxに送ればOOoで開けるけど、ちょっとフォントが崩れるよね。 (追記) 2005-11-22 09:25 クリップボードの話は、このソフト(shibaguchi.com)で自動保存にしているのが最も快適だということがわかった。けっこう便利です。

復活不可能

firefoxの拡張を入れてたら動かなくなった。safe modeみたいなのもないし、XMLのファイルをいくつかいじってextensionのディレクトリを削除したらいいんでしょ…と思ったけど、やってみたら全く歯が立たず。 しょうがないのでもう1つプロファイルを作ってせっせと拡張を入れまくることに。テーマはいつもPlastikfox Crystal SVGというのを使っているのでそれを入れる。大変ですよこれは。しかも1回失敗したのでやり直すハメに。prefs.jsやbookmark、cookies、signons、hostperm等はコピーするだけでいい。特に、signonsをなくしたらマジで大変なことになる(笑)。全部ダウンロードした後で全部一気にインストールする、という方針に変えて、やったらどうにかうまくいった。 $HOME/.mozilla 以下のバックアップを取っておく必要があるんだろうなぁ。面倒な話だ。別Profileの拡張をインストール/アンインストールできればいい話だが…あと拡張のインストールをUIなしでできるようになれば、だいぶ自動化できて楽になるよなぁ。 (追記) 2005-10-15 09:11 ところでFC4のfirefoxは、firefoxのアップデートの機能が削除されている。本体はyum等で勝手にアップデートされていくが、拡張やテーマのアップデートは大変な手間になる。これは何とかしてほしい。firefox本体のアップデートだけ殺すとか、そういうことはできなかったのだろうか。