いろいろ
Seize the day.
2005-10-01 [長年日記]
■ [comp][blog] Google Sitemaps で xrea の stats をみる
ふと,Google Sitemaps を使ってみることにした.- https://www.google.com/webmasters/sitemaps/docs/en/faq.html
- 日本語訳: http://kotonoha.main.jp/2005/06/04google-sitemaps.html
stats というのは,Google ロボットのクロール状況などのレポートを表示する仕組みらしい.これを使うためには,まず verification を行う必要があるんだけど, verify のために Check Status というボタンをクリックすると,こんなことを言われる.
We've detected that your 404 (file not found) error page returns a status of 200 (OK) in the header.xrea サーバって,リクエストされたファイルが存在しない時には専用の動的 Not Found ページにリダイレクトされるんだけど,そこでどうもコード 200 か何かを返してるようで,それが悪さをしているような気ガス.
そこで,
ErrorDocument 404 http://terai.xrea.jp/file_not_found.htmlを参考にして .htaccess で ErrorDocument を設定してやる (上のサイトには 3 行のコードがあるが,1 行目だけで OK).ただし上の例は実はちょっとだけ間違ってて,URL をフルで書いてしまうと,リダイレクトコード (3xx) を返してしまい,問題の解決にならなかったりする.
- http://www.futomi.com/lecture/htaccess/error_document.html
- http://www.totalchoicehosting.com/forums/lofiversion/index.php/t22389.html
ErrorDocument 404 /file_not_found.htmlとすれば OK.これで,verify に成功し,stat が見られるようになる.
Google Sitemap 自体についてはまた機会があれば.
[ ツッコミ | permalink | trackback ]
2005-10-02 [長年日記]
■ [misc][book] 京都丸善と檸檬
先日,京都河原町の丸善に大きく閉店のお知らせの垂れ幕を見つけてショックを受けた. 最後に京都丸善を利用したのは 2 年前だ.その時はやけに掘り出し物が多かったのを覚えている.当時の記述より引用 [2003-03-04]丸善で「複雑系のバイオフィジックス」(大阪出張の総まとめ) と「カッコウはコンピュータに卵を生む」(UNIX も知らない高校時代に好きで読んでいた.やっとハードカバーが買える金銭的余裕がでてきた) と「サトラレ」(新幹線での暇潰し用) を買い,MSX マガジンに手を伸ばしかけて,理性の咎めで(笑)見送り.仕事で何度となく助けられた「複雑系の…」,十数年前,自分の Unix 偏重傾向の礎となった「カッコウは…」,思考実験モノという SF の真髄をきわめた「サトラレ」,どれも丸善のブックカバーとともに大切にしよう.
ちなみに梶井基次郎「檸檬」は新潮社サイトで無料で読める.10 年程前に読んだときにはよくわからなかった主人公の心の機微が,今はなんとなくわかる気もする.
2005-10-03 [長年日記]
■ [comp][misc] プレゼン小技
PowerPoint のキーバインドから ([B]/[W] でカットアウト/カットインとか),ハンドアウトの使い方,聴衆のコントロールまで,目から鱗がぼろぼろ.今週と来週のプレゼンはちょっと意識してみるかな.■ [misc] のまネコ見解を赤ペン先生が添削
自分は根が添削魔なので(ぉ,のまネコ原文を読んだ時に脳内で自動的に添削・校正が始まってしまってたのだが (そのせいで先々週は自分の首を絞めてたのだが),まあそうでなくても添削したくなるよな.GJ! ていうか,あー,せっかく赤ペン先生が「文」をきちんと直しても,もともとのロジックが「文章」になってないから気持ち悪いったらありゃしない.赤ペン貸せい.がるるる.(とりあえず自分の文章は棚の奥にしまっとく)■ [misc] にわかな奴ほど語りたがる
まあ blog なんてよくも悪くもその具現化だし.一方で、知人は「論文は少しでも成果が出たらすぐ書き始めるに限る。しばらく経つとぼろが見えたりしてどうでもよくなって、書かなくなるから」という習慣を確立して生産性を高めていました。こちらは「にわかな奴ほど語りたがる」のポジティブな応用例と言えそうです。なるほど.よっしゃ書くぞ!
2005-10-04 [長年日記]
■ [comp] Emacs21 インストール (FreeBSD 編)
(注: 最初の記事ポスト後,かなり書き直しました.)ふと Emacs21 を FreeBSD にインストールしてみた.
現在メインで使っているのは Emacs19 で(ぉ,今後もメインとするつもりなので,上書きを避けるために ports/packages からではなく手動で入れることにする.
以下を参考に (OpenBSD 用だけどだいたい同じ) インストール.
% tar xzvf emacs-21.4a.tar.gz % tar xzvf leim-21.4.tar.gz % cd emacs-21.4ここで emcws パッチを当てる.
% zcat ../emcws-21.3-20031213.gz | patch -p1Emacs21 のディレクトリ構成が不明なので,prefix は適当に当たり障りのないところにして,後で手動で symlink でもするかーと非常にいい加減なことを考える.
% ./configure --prefix=/usr/local/emacs21 --with-canna % gmakeすると,うわあぁぁ (AA 略),canna.c でエラー出まくり!
canna.c:1552: redefinition of `rcs_id' canna.c:144: `rcs_id' previously defined here (以下大量のエラー.略)で,よく良くsrc/canna.c をみると,なぜか同じコードが 2 回繰り返されているようにみえて仕方がない.1408 行目のところでファイルを 2 分して diff 取ってみたら,全く同じだし….謎すぎる.みんな普通にコンパイルできてるんだよな? もしかしてこれってなんかハズレとかそういうものですか? なんかよっぽど普段の行いが悪いんですかね?? _| ̄|○
ともかく,canna.c を半分に切ってやり直す.make は通った.
(追記 [2005-10-05]: 再インストールしたらこのような現象はなかったので,恐らくパッチを 2 重に当ててしまったとかそういうことかと思われ.)
この後,出来上がったバイナリをテストしてみると,こんどは core 吐いて落ちる….
% src/emacs -q Fatal error (11).セグメントエラー (coreを出力しました)-nw オプションだと立ち上がったり,試しに他のユーザとして起動したりするとうまくいくので,環境変数をあたってみたところ,
setenv XMODIFIERS @im=kinput2が悪さをしていたことが判明.以前 Firefox + kinput2 かなんかを試した時に仮に設定しただけで,使ってなかった環境変数なので,早速 unsetenv.どうも,XFree86 4.2 と相性悪いようだ. とりあえずこれで普通に起動するようになったので,
# make installする.
日本語変換については,途中いろいろ試行錯誤して,Tamago をうっかり入れて泥沼に陥ったりもしたが,基本的には emcws のデフォルト設定のままでよい.単に .emacs で
(canna)とでもしてやれば起動する.
追記 [2005-10-05]: 以下のコードは最初のポスト記事に書いていたのだけど,必要ないことがわかった.1 行目はなくても canna は動作するが,ある種のモードはこの変数を見るようなので,設定しておくとよいのかも知れない.
(set-language-environment 'Japanese)さて,/usr/local/emacs21/bin には(set-input-method "japanese-egg-canna")(global-set-key "\C-o" 'toggle-input-method)
b2m ebrowse emcws-21.4 grep-changelog ctags emcws etags rcs-checkinの 8 個のバイナリが出来ていたが,/usr/local/bin に競合する名前のファイルはなかったので,そのまま symlink とする.libexec と share もちゃんとバージョン別のディレクトリになっていたので,/usr/local 以下に symlink を作る.man と info はいいや(激ぉ.
本日のリンク元 | 1 | TrackBack(0)
2005-10-05 [長年日記]
■ [comp] Emacs21 インストール (Solaris 編)
とりあえず 10 月になってたくさん嫌な仕事が降って来たので,現実逃避月間です(激ぉ.基本的には FreeBSD 編[2005-10-04] と同じ.変更箇所としては,
- configure 時に --with-canna-includes=/usr/local/canna/include/ をつけないとエラーになってしまった.
- 前回変だった canna.c は正常だった.多分,前回は patch が 2 重に当たってしまったとかそんなところだろうと思われ.
- XMODIFIERS=@im=kinput2 は悪さをしなかった.X のバージョンが古いからだろうか?
■ [comp] mew-4.2 で RPOP 認証
ついでに Solaris に mew-4.2 もいれてみた.% tar zxvf mew-4.2.tar.gz % cd mew-4.2 % ./configure --prefix=/usr/local/emacs21 % gmake EMACS=/usr/local/emacs21/bin/emcws % gmake jinfo EMACS=/usr/local/emacs21/bin/emcws # gmake install自分の場合,mew-1.94 時代の .emacs がほぼそのまま通用した.
ただし,ひとつ厄介なのは,Mew 2.0 以降のデフォルトが APOP になったこと.パスワードを毎回訊かれるので面倒なんである(ぉ.いや,安全性という意味では正しい方向なんですが.
というわけで,RPOP でローカルスプールからパスワードなしでメールを取りたいので,以下のようにする. を参考にして,
(setq mew-mailbox-type 'mbox)
(setq mew-mbox-command "imget")
(setq mew-pop-server "mailserver")
(setq mew-mbox-command-arg "-s POP/RPOP:username@mailserver")
などとしてやるとよい.つまり,一度廃止された imget をしつこく使ってやるんである.ちなみに,単にローカルサーバのメールスプールから取ればよい場合は,
(setq mew-mbox-command "incm")
(setq mew-mbox-command-arg "-d /path/to/spool")
みたいな感じでいけるはず (bin/incm はパスの通ったところに置いとく).ついでに,mhc を使う場合,
(if (not (fboundp 'mew-match))
(defalias 'mew-match 'mew-match-string))
してやる必要があった (Mew 2.0 以降,mew-match が廃止されたらしい).その他,Mew-1.94 時代は自前で苦労して作っていた関数や機能が標準で装備されているのがうれしい.
Emacs21 は GUIGUI した外観とか,fringe とか,微妙に違和感があるのだが,意外に簡単に mew や mhc が動いてしまって,ほぼ同等の操作感が達成できたので,もしかしたらそのうち乗り換えちゃうかも.とりあえず満載の新機能でしばらく遊んでみる.1.94 からの移行の注意点は以下にまとめがある.GJ.
関連記事:
- Mew 3.3 + stunnel [2007-12-28]
- Mew 2.0 に移行してみる [2007-12-03]
- メール環境 over SSL (その 2: 古い Mew + stunnel) [2006-04-07]
- メール環境 over SSL (その 1: fetchmail で取って来る) [2006-04-06]
- Mew-4.2 の summary のカスタマイズ [2005-10-06]
■ [comp] マスク長
ルータの設定をしてて,ふと,ある単一の IP アドレスそのものを指したいときはマスク長はどうなるんだっけ,とか考えてしまった.1 種類だから 32 でいいんだっけ??また、「210.160.79.97」というようなひとつのIPアドレスの場合でも、「210.160.79.97/32」と「/32」を付けます。これはサブネットマスクの「255.255.255.255」と同じ役割で、結果的には「210.160.79.97」そのものを意味しています。合ってたらしい.
■ [misc] 焼きラーメン
ここ 1 ヵ月くらい,職場の一部でローソンの「焼きラーメン」なるものが異常に流行している.どのくらい流行してるかというと,「俺,今日も 3 食焼きラーメンだった」「すげー.俺なんてまだ十数回しか食ってねーよ」……君達,死ぬぞ (ちなみに,私の知合いの知合いに,半年間毎日コンビニ弁当だけを食べ続けてある日急死した SE というのがいる).おかげで近所のローソンには焼きラーメンが山積みされるようになってしまった.そんなハピ粉的中毒性を持つ焼きラーメン,何が彼らをそうさせるのかと思って,今日の夜食に買ってみた. 上の記事の人も書いてるように,ラーメン的な具が乗った焼きそばである.ていうか,「原材料: 焼きそば,(ry」とか書いてあるし.ていうか焼いてないし.
まあ,焼きそばと違って炒め属性がないので,どっちかっつーとこれは油そばだな.やっぱ「油そば」って名前,抵抗ある人が多いから「焼きラーメン」にしたのかな?
ラーメンも焼きそばも油そばも好きな自分としては,けっこうおいしくいただきましたけど,やっぱり 3 食これにする気はしないなあ.
本日のリンク元 | 2 | TrackBack(0)
2005-10-06 [長年日記]
■ [comp] Mew-4.2 の summary のカスタマイズ
Mew-1.94 時代の形式に合わせるのにけっこう苦労した.特に subject が固定長桁になってしまうのを可変長に戻すあたりは,[mew-dist 26370] からはじまるスレッドのパッチを利用した.
(setq mew-summary-form
`((-5 num) mark type (5 date) " " (5 time) " " (17 from) " " t (0 subj) " <<" (0 body)))
(setq mew-summary-form-extract-rule '(name))
で,こんな感じ.
3885 12/08 15:34 Kazu Yamamoto (山 [mew-dist 25712] Mew 4.2 に向けて <<何のスレッドモード.
3885 12/08 15:34 Kazu Yamamoto (山 [mew-dist 25712] Mew 4.2 に向けて <<何の 3886 12/08 17:09 Hideyuki SHIRAI ( ┣[mew-dist 25713] Re: Mew 4.2 に向けて << 3887 12/08 20:59 Kazu Yamamoto (山 ┃┗[mew-dist 25714] Re: Mew 4.2 に向けて << 3891 12/08 23:34 Yasunari Momoi ┗[mew-dist 25718] Re: Mew 4.2 に向けて
関連記事:
- Mew 3.3 + stunnel [2007-12-28]
- Mew 2.0 に移行してみる [2007-12-03]
- メール環境 over SSL (その 2: 古い Mew + stunnel) [2006-04-07]
- メール環境 over SSL (その 1: fetchmail で取って来る) [2006-04-06]
- mew-4.2 で RPOP 認証 [2005-10-05]
■ [comp] Mule-UCS の高速化
で,調子に乗って Emacs-21.4 にも Mule-UCS を入れたりしてみたんだけど [2005-07-08],動作遅すぎ.起動に 1 分くらい掛かる (世間一般でも遅いものとされてるらしい).そこで,以下のパッチを当てて高速化. ただ,そのままでは動かなかったので (依存関係が変),un-defined.el の冒頭に(require 'mucs)をつけてやるとよい.つーわけで,パッチ自体は以下のようになる.
--- un-define.el.orig Wed Mar 7 07:41:38 2001
+++ un-define.el Thu Oct 6 18:43:02 2005
@@ -35,6 +35,7 @@
;;; private charset definition.
(require 'mule-uni)
+(require 'mucs)
;;; Autoload section
(autoload 'ucs-to-char "unicode")
@@ -610,13 +611,21 @@
(mapcar
(lambda (x)
- (mapcar
- (lambda (y)
- (mucs-define-coding-system
- (nth 0 y) (nth 1 y) (nth 2 y)
- (nth 3 y) (nth 4 y) (nth 5 y) (nth 6 y))
- (coding-system-put (car y) 'alias-coding-systems (list (car x))))
- (cdr x)))
+ (if (fboundp 'register-char-codings)
+ ;; Mule 5, where we don't need the eol-type specified and
+ ;; register-char-codings may be very slow for these coding
+ ;; system definitions.
+ (let ((y (cadr x)))
+ (mucs-define-coding-system
+ (car x) (nth 1 y) (nth 2 y)
+ (nth 3 y) (nth 4 y) (nth 5 y)))
+ (mapcar
+ (lambda (y)
+ (mucs-define-coding-system
+ (nth 0 y) (nth 1 y) (nth 2 y)
+ (nth 3 y) (nth 4 y) (nth 5 y) (nth 6 y))
+ (coding-system-put (car y) 'alias-coding-systems (list (car x))))
+ (cdr x))))
`((utf-8
(utf-8-unix
?u "UTF-8 coding system"
こうしてパッチを当てた un-define.el をバイトコンパイルしてみたら,なぜか Emacs 起動時にエラーが出るようになってしまった…orzというわけで結局使わずに速いマシンで動かすことにしたのだが(ぉ,動作報告は web をみるとけっこうあるので,変なカスタマイズとかしてなければ役に立つかも.
ていうか Mew 4,なんかもう飽きて来た…(激ぉ.また仕事モードに戻れるのでよいことだけど.
■ [misc] 列車走行音とドレミファインバータ
電車が発車するときドレミファと音を奏でる車両がある(京急、常磐). 電車のモーター駆動を行うインバータが発生する音らしい. 特にVVVF のスイッチング周波数は可聴域を避けられないため、 ジーメンス社が「それならば」とドレミファインバータを開発した. (電気学会誌Vol.125, No.7)走行音は鉄ちゃん系サイトで多数公開されてるようので,早速常盤線と京急を聴いてみた. おお,確かに ドレミファソラ〜♪とか言ってる! それにしても長音階出すのってけっこう作り込が大変そうだ.以下によると正確には BCDEsFG〜♪ らしい.B Dur ですか.管楽器と一緒だな.さすがドイツ(謎. ちなみに SUPER BELL"Z の「MOTOR MAN Vol.3 仙台編&京浜急行」にも音階がでているそうだwwwwww

そういや十数年前,営団東西線の新車両が出て来た頃 (営団 05 系とかいうらしい),low C→C→F→C→low C (ド(低)ードーソードード(低)ー)という音階を奏でるので面白いなあと思っていた.以下で聴ける. このサイトによると,これは VVVF ではなく 4 象限チョッパというものによって,起動時周波数が 1 倍→2 倍→3 倍→2 倍→1 倍と変化するらしい.だからあの音階なのか.納得.
チョッパ制御は PWM みたいなもんらしいが,高価で保守が大変なことから,VVVF の普及に伴っていまでは廃れてしまったようだ.
2005-10-07 [長年日記]
■ [comp] cvs import なしでプロジェクトスタート
プロジェクトを CVS で管理し始める時って,よく入門書に書いてある通りにバカ正直に,ディレクトリ掘って,適当なファイル置いて,import し,(場合によっては) 中身を一旦消して,co して作業開始,ってな感じにやってた.グループで作業するならともかく,個人で使う場合,なんでこんな面倒なことになってるのか.適当なファイルなんて,書くべき内容がまだ定まってないこともあるし,そもそもファイルの用意は既にプロジェクトが始まってることを意味していて,リポジトリへの登録はそれに先立って最初の作業として実施されるべきだ,というよくわからん信念があった.しかも,ファイルを一旦消去しないと checkout 時に怒られたりする.なんで怒られなあかんねん.1.1.1.1 なんてまるで使い途のないバージョン番号つけよってからに.だいたい,これから使うものをわざわざしまってまたすぐ取り出すなんてあほちゃうか? …と常々思っていたのだ(ぉ.
なんかスマートな方法があるのかと探してみたが,みんなわざわざ元のディレクトリを消してみたり,改名してみたり,テンポラルな場所に置いてみたり,涙ぐましい努力をしている.
そんな中にこんな解決策があった. 要は,
CVSROOT の下に mkdir して checkout すれば良いということ.早速,今日登録するプロジェクトに使ってみた.幸せ.でも邪道なんだろうな.
■ [misc] ひらめき☆ときめきサイエンス KAKENHI
その「☆」はこっぱずかしいからなんとかならんか.KAKENHI ってのも…
大学でみんなどんなことをしているの?…つーかそれ,むしろ私が訊きたい.
○○教授ってどんなことを考えているの?
どうしたら教授になれるの?
研究員の人は普段どんな研究をしているの?
特に 2 と 3.3 のどろどろした話を聞きたい(激ぉ
∩
| |
| |
| |
| |
∧_∧ | | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ´Д`)// < 先生!どうしたら教授になれるんですか?
/ / \___________
/ /| /
__| | .| | _
_ \  ̄ ̄ ̄ ̄ ̄ \
||\ \
||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
|| || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
.|| ||
■ [misc][comp] ムーアとアラン・ケイの言葉から
アラン・ケイの言葉.If you are the smartest person in the room, you are in the wrong room.ゴードン・ムーアの言葉.
If everything you try works,
you are not trying hard enough.
2005-10-08 [長年日記]
■ [misc] ランドマークタワーが見える限界
東京都庁から横浜ランドマークタワーが見えた話は以前にした [2005-02-01][2005-05-19].山のまったくみえない相当霞んだ日だったのに見えたので,コンディションのいい時にはどのくらい遠くから見えるんだろう? とか思っていた.ちなみに西新宿-桜木町間は直線距離にしておよそ 25km.たまたま行き当たったサイト (ドレミファインバータの件 [2005-10-06] で見つけた) に,富津市金谷からはっきり見えたという話が書いてあった.36km くらいらしい. 池袋サンシャインからも見える. 神奈川県綾瀬市 (東名海老名付近) からも見えるようだ. 高尾山から. 浜松市の浜松ホトニクスのビルからも. さらに,なんと福島県の山から見えたという話まであるらしい.以下の記事「最遠の地からランドマークタワーを見る」ではカシミールを使って福島県南会津郡の観音山や南アルプスの双児山からの見え方のシミュレーションなどしている (図がないのが残念). さすが日本で一番高いビル.
2005-10-09 [長年日記]
■ [misc] ANA とウルトラクイズの関係
エコ割 CM (役所広司がマウントラッシュモアに似てるとかいうやつ).最後に流れるあの曲についウルトラクイズが強烈にフラッシュバックしたのは,どうやら私だけでないらしい.- http://yaplog.jp/somedaywhere/archive/379
- http://oak.zero.ad.jp/shink-tank/center-columns.html
- http://oshiete1.goo.ne.jp/kotaeru.php3?q=1663129
- http://snowdrop99.exblog.jp/2252967/
- http://ameblo.jp/marsmars/entry-10004558613.html
追記 [2005-10-24]: PS2 のソフト「アメリカ横断ウルトラクイズ」の画面キャプチャをみれば一目瞭然ですかね.
[www.watch.impress.co.jp]
- http://www.watch.impress.co.jp/game/docs/20020305/digicube.htm
- http://www.watch.impress.co.jp/game/docs/20020305/digi08.htm
2005-10-16 [長年日記]
■ [misc] 横着するために
高林さんの「読解いやな法則」シリーズけっこう好き.特に今回は耳が痛い.怠惰なプログラマは、面倒な作業を目の当たりにすると「横着をするための労力を惜しんではいけない」の思考回路が作動して、作業の手間を省くべくプログラムを書き始めます。これは一見、純粋な動機のように思えます。よく私の現実逃避の成果を見た人は「ひまなんですか?」と言いますが,実際は忙しいからこその結果なわけですね.ああ反省.
ところが、その背後には現実逃避の欲求が潜んでいることが多いようです。内心では手作業で片付けた方が早いとわかっていても、「横着するための労力を惜しんではいけない」と口実をつけて、これ幸いとプログラミングにいそしんでいるというわけです。
さらに悪いことに、元々やろうとしていた作業はどうでもよくなって、プログラムを書いてあれこれ試行錯誤することの方が目的になるという「手段の目的化」現象も逃避活動に拍車をかけます。この場合、作業は何も進んでいない上に、気づくと時間ばかりが経過していた、という結果に終わるのが典型的なパターンです。
そういやつい最近の「ドラゴン桜」(漫画のほう)に「東大生は究極の面倒くさがり屋で,面倒を少しでも軽減するためならなんでも模索する」というような話があった.なんか似てる.
■ [misc][comp] IP unreachable
3 日間ほど IP unreachable になっておりました.毎年恒例の職場の旅行というか研修というかそんなようなもので,山の中に連れて行かれ,ミーティングと称して軟禁されてました.とほほ.H" はもちろん,b-mobile も圏外 (H" のネットワークを使ってるので当然だが).各社の携帯も圏外だったようだ.ネットワークがないと仕事ができない人なので大打撃.いやそれ以前にインターネット中毒のほうがダメージでかいという噂もあるけど(激ぉ
しかも悪いことに,先週は本当に寝る間もないほど忙しく,進行中の案件のファイル群をモバイル PC に詰め込む暇がないまま出発させられてしまった.現地でダウンロードすればいいやと思っていたのが甘かった.あるのは先日使った PowerPoint ファイルだけ.ミーティング用のプレゼンはこれを元に一晩で作ったが,週明けに締切の書類達を全て置いて来てしまった… orz
でもまあ,海外でさえ IP が届く現在,これだけ長く IP unreachable な環境に置かれるのは実に 3 年振りなのである.とりあえずネットワークの向こうの話は全て忘れて,人間らしい(?)生活を満喫しようじゃないか! と決意.…数時間後,PC に入っていた nethack に興じている自分がいた.●| ̄|_.やっぱ PC 自体とりあげないとダメらしい.
ちなみに場所は箱根.雨天だったのでほとんど観光もできず不完全燃焼.
■ [comp] PLAY-YAN MICRO マリオインタフェース
1 ヵ月前,GAMEBOY MICRO [2005-09-18] と一緒に買った PLAY-YAN MICRO.
よーするに,GAMEBOY を MP3 プレーヤにするためのキットなわけだが,SD カードをようやく買ったので使う準備が整った.とりあえず MP3 を放り込んで聴いてみたけど.値段の割にかなり高音質.
で,なんと任天堂サイトから「キーファイル」と呼ばれる ini ファイルをダウンロードして SD カードに置くと,インタフェースがマリオバージョンになるという技がある.
マリオを操作して曲選択ができる.しかも細かいところの作り込みがやたらとすごかったり,A ボタンを曲に合わせて押しているとイベントがあったり.
[www.watch.impress.co.jp]
これらの設定変更は、本体からは行なえず、iniファイルの編集でのみ可能。なんともマニアックな設定方法だが、一度設定してしまえば、普段いじるような項目でもない。なにより、ユーザーの使い勝手や楽しみ方を拡張できる仕組みを用意してくれるのはありがたいところだ。いやほんとマニアックだね〜 (←ほめ言葉).
ちなみに旅行中 [2005-10-16],バスの隣の席に座った後輩が初代 iPod を使ってたので見せてもらったら,「バックライトが自動でつかないので,手探りでバックライトオプションを探さないとならない」と言ってたwwww.万能かと思ってた iPod に意外な盲点.
2005-10-17 [長年日記]
■ [comp] EPS 画像を Picasa で属性指向管理
自分の計算機環境では,2,000 個くらいの画像ファイルがさまざまなディレクトリに散らばっている.これを,どう管理するかがずっと悩みの種だった.今日も,昔描いた画像をあちこちから拾って来て文書を作る作業に追われてたのだが,いちいちディレクトリを開いてプレビューを見て探すのがあまりに面倒でついにブチ切れた ヽ(`Д´)ノウワァァン!!
ここでふと,Picasa を使ったらどうだろう? と気付く.Picasa は Google が開発した画像管理ツールで,iTunes と同じく属性指向インタフェースである.英語版が出た頃に試用してみたが,あるディレクトリ以下の画像を根こそぎ拾って一覧を表示したり,タイムライン順に並べたりと,かなりいけてたりする. ただし二つほど問題がある.
まず,自分の使っている画像の多くは Illustrator AI フォーマットか Adobe EPS フォーマットなんだけど,Picasa は認識してくれないのだ (PhotoShop PSD は認識できるようだけど).うーむ.
もう一つ,属性指向な Picasa はディレクトリという概念をすっぱり排していて,ファイル名と直上のディレクトリ名くらいしか表示しない.しかし私の場合,path にプロジェクトの名前など各種情報が乗っているので,ちょっと困ったりする.うーむ.
というわけでですね,
- 散らばった EPS から JPG サムネイルを作って一つのディレクトリに集約する.
- サムネイルのファイル名は,元ファイルの path とタイムスタンプから生成する.
- サムネイルのタイムスタンプは元ファイルと同一時刻とする (Picasa タイムライン機能のため).
- Picasa でこのディレクトリのみ常時監視していれば(゚Д゚)ウマー
#!/usr/local/bin/perl
use strict;
my %hash = "";
my $option = "";
my $line = "";
set_mtime();
my @filelist = `find $TEXDIR -name "*.eps" $option`;
my $len = @filelist;
print "$len file(s).\n";
for (@filelist){
chomp;
my $orig = $_;
print "$orig\n";
my $base = `basename $orig`;
chomp($base);
my @filestat = stat;
my $utime = $filestat[9];
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
localtime($utime);
$year += 1900;
$mon += 1;
my $date = sprintf("%4d%02d%02d", $year, $mon, $mday);
my $size = $filestat[7];
if ( exists($hash{$size}) ){
if ( $hash{$size} == $base ){
print "$base ($size bytes) is redundant. Skipping.\n";
next;
}
}
$hash{$size} = $base;
s+^$TEXDIR++;
s+/+\@+g;
s/\.eps$/\@$date.jpg/;
my $path = $_;
my $gif = "$DEST/$path";
system("convert -size 200 $orig $gif");
utime($utime, $utime, $gif);
}
sub set_mtime{
my $now = time;
# print "now: $now\n";
my $last = "$DEST/last";
if ( open(IN, "<$last")){
$line = ;
# print "last: $line\n";
close(IN);
}
open(IN, ">$last") || die "Can't open $last.\n";
if ( $line == "" ){
print "First execution. All files are converted.\n";
} else {
my $diff = int(($now - $line)/(60*60*24));
$diff = 1 if ( $diff == 0 );
print "Files for last $diff day(s) are converted.\n";
$option = "-mtime -$diff";
}
print(IN $now);
close(IN);
}
注意点:
- 例外処理とか一切無視(ぉ
- ImageMagick の convert が必要.
- convert は AI は扱えなかったので,AI はあきらめて EPS だけを対象とした.個人的にはそれで十分.
- path の区切りには,最初 ":" を使ったら Picasa が認識できなかったので,"@" とした.
- gs が読めない PostScript (日本語フォントが入ってるとか) は convert できない.
- mtime をみて,前回の実行以降に更新されたファイルのみを対象としている.
- 重複ファイルについては,とりあえずファイル名とファイルサイズが一致したものは skip させた.これで画像数は 700 くらいにまで落とせた.この過程でうっかり skip されてしまう unique なファイルがないとは言い切れない.ちなみに Picasa には重複ファイル監視機能があるが,いまいちどう働いてるのかわからない.
- Picasa からアクセスできるのはサムネイルでしかないので,元ファイルを開くには「サムネイル名からパスを把握して手動でたどる」必要がある.つまり,「一覧的にパスを確認するためのツール」でしかない.最終的にはここもなんとかしたいが,個人的には,これまでのパス手動探索の手間に比べれば 100 倍ましになった.
- last ファイルを開閉しているところ,なんか冗長で変なんですが,いいや(ぉ
- Picasa 側は日付順表示にしておくと探しやすい.
本日のリンク元 | 3 | TrackBack(0)
2005-10-19 [長年日記]
■ [blog] 引っ越しました
突然ですがサーバを引っ越しました. 一文字変わっただけです.疲れているときなど見過ごしそうです.この blog も当然 URL が変わりました.お手数ですがブックマークやアグリゲート等がありましたら変更お願い致します.そういえばメールアドレスも変わりました.
旧サーバもしばらくはミラーとして使いますが,気まぐれに閉鎖するかも知れません.
不具合等ありましたらお知らせ頂ければ幸いです.
追記 [2005-10-23]:
- この blog の新しい URL は http://nao.s164.xrea.com/td/ です
- Bloglines への登録は http://www.bloglines.com/sub/http://nao.s164.xrea.com/td/index.rdf
- i-know への登録は http://i-know.jp/add.cgi?url=http://nao.s164.xrea.com/td/
- Bulkfeeds: http://bulkfeeds.net/app/view/1837998.html
2005-10-20 [長年日記]
■ [misc][blog] blog 界に浸かりすぎて
blog 界を眺めていると,いつの間にかアルファブロガー達の価値観が世間の主流だという錯覚に陥ったり,Google や Six Apart やはてなのような企業ばかりに目がいってしまいがちになったりしていたけど,それは視野狭窄ということだな.- http://www.virtual-pop.com/tearoom/archives/000080.html
- (via http://www.hirax.net/diaryweb/2005/10/16.html#200510165)
Google や Six Apart や「はてな」のような派手な企業だけが良い企業というわけでもない。ついでにこのサイト経由で行き当たった「【軍曹が】携帯電話開発の現状【語る】」.YRP にいる (と思われる) 音信不通の知人の安否が気に掛かって仕方がない.
(snip)
私がBlogをやっている事も知らないだろう。もしかしたら「ブログ」自体知らない可能性もある。
それでもやっぱりTは「優秀」だ。
2005-10-21 [長年日記]
■ [tec] RFID を手軽に使う
ちょっと使いたくなって調べてみたのだが,タグは 100 円/個のオーダ.うーん,まだまだ高いな. 導入の仕方は,以下のページで非常に詳しく解説されている.アクティブタイプとパッシブタイプの違いから,アンテナの自作方法まで. 特に,「RFIDを使ってみよう (Felica編)」は夢がひろがりんぐwwww.Suica は今やたいていの人が持っている.それに 3,000 円の初期投資で Pasori を AM/PM で買えばとりあえずお手軽 RFID システムのできあがり!2005-10-22 [長年日記]
2005-10-23 [長年日記]
■ [comp] 音楽シャッフル・クイズ
結城さんの音楽シャッフル・クイズ- 問題編: http://www.hyuki.com/d/200510.html#i20051020190000
- 解答編: http://www.hyuki.com/d/200510.html#i20051023140000
前回のランダム・アルバイト・クイズでは壮絶な勘違いをしでかしてしまいましたが,めげずにシャッフルクイズにも回答してみます...なんてところまでしっかり載っちゃってるよ….あうー. _| ̄|○
というわけで,「壮絶な勘違いって何ナニ?? うひひ」と興味津々の方のために,ランダム・アルバイト・クイズの解答もついでに晒してみます. m9(^Д^)プギャー してやってください…
ランダム・アルバイト・クイズ自体はこちら.
- 問題編: http://www.hyuki.com/d/200510.html#i20051016205402
- 解答編: http://www.hyuki.com/d/200510.html#i20051019091930
問題 1:
可能である.以下の手順に従えばよい.
k 番目の応募者が来た時,
- k <= 5 であれば無条件に待機させる.
- k > 5 であれば,6 名 (控え室内の 5 名 + やってきた 1 名) から一人
を選び,拒否する.ただし,拒否対象は以下の確率分布に従って選択する.
* 控え室内の人の場合: 1/k
* やって来た人の場合: 1 - 5/k
このとき,各応募者にとって,最初に控え室にやって来てからこの時点まで待
機し続けられる確率は等しく 5/k になる.これが k >= 5 なる任意の k につ
いて成り立つから,一日の終わりまでに N 人の応募者が訪れたとすれば,採
用される確率は等しく 5/N になる.
問題 2:
k 番目の応募者が来た時,
- k <= S であれば無条件に待機させる.
- k > S であれば,S+1 名 (控え室内の S 名 + やってきた 1 名) から一
人を選び,拒否する.ただし,拒否対象は以下の確率分布に従って選択す
る.
* 控え室内の人の場合: 1/k
* やって来た人の場合: 1 - S/k
このとき,各応募者にとって,最初に控え室にやって来てからこの時点まで待
機し続けられる確率は等しく S/k になる.これが k > S なる任意の k につ
いて成り立つから,一日の終わりまでに N 人の応募者が訪れたとすれば,採
用される確率は等しく S/N になる.
(帰納的証明)
まず,k = S とする.集まった S 名が待機できる確率は明らかに 1 である.
つぎに,k = n ( >= S) とする.いま,控室の S 人の応募者に 1 から S ま
で番号を振り,新しくやって来た応募者に S+1 をつける.
わたしが拒否対象の選択を繰り返していくと,各応募者が待機し続けられる確
率は明らかに減っていく.候補者 i が部屋に残っている確率を P_i(n) とし,
わたしが応募者 i を拒否する確率を a_i(n) とすれば,
for i=1...S, P_i(n) = P_i(n-1) * (1 - a_i(n)) (1)
for i=S+1, P_i(n) = 1 - a_i(n) (2)
となる.
控え室にいる S 名は,やって来てから現在まで待機し続けられる確率が等し
くなるように選ばれているはずなので,
for i,j=1...S, P_i(n) = P_j(n) (3)
である.よって以降では単に P(n) とかく.また,わたしがこれから行う選択
によって,各応募者のチャンスに差があってはならないので,
for i,j=1...S+1, P_i(n+1) = P_j(n+1) (4)
である.さらに,明らかに
Σ a_i(n) = 1 (5)
である.
(1)(3)(4) より明らかに,i=1...S に対し a_i(n) は等しい.よってこれを単
に a(n) とかく.また,i=S+1 に対する a_i(n) を a'(n) とかく.(1)〜(5)
を書き直すと,
P(n) = P(n-1) * (1 - a(n)) (6)
P(n-1)(1 - a(n)) = 1 - a'(n) (7)
a(n)S + a'(n) = 1 (8)
となる.(7)(8) より,
a(n) = P(n-1) / (P(n-1) + S) (9)
が得られる.これを漸化式 (6) に代入すると
P(n) = SP(n-1) / (P(n-1) + S) (10)
となるが,Q(n) = 1/P(n) を導入すると (10) 式は
Q(n) = Q(n-1) + 1/S (11)
と簡単になり,一般項は
Q(n) = Q(S) + (n - S)/S (12)
P(n) = P(S)S / (S + (n-S) P(S)) (13)
となる.P(S) は 1 なので,結局
P(n) = S/n (14)
a(n) = 1/n (15)
a'(n) = 1 - S/n (16)
となる.
(証明終)
以上です.ついでに,今回の音楽シャッフル・クイズの解答では
どのように分布が偏るかも考えてみたいのですが,厄介そうなので,思いついたらまたフィードバックいたします.なんてことをうっかり書いてますが,結局思い付いてません(ぉ.最初,swap って線形代数でいう互換だから,偶置換と奇置換で違いが出るのかな,と思って N=3 でやってみましたが,見事にはずれました.誰か解いてくれ.
- http://ja.wikipedia.org/wiki/%E5%AF%BE%E7%A7%B0%E7%BE%A4
- http://www.f-denshi.com/000TokiwaJPN/01daisu/030gun.html
■ [comp][blog] wget のスラッシュ処理
bulkfeeds.net に ping を送るとき, wget でwget -q -O - "http://bulkfeeds.net/app/add.xml?url=http://nao.s164.xrea.com/td/index.rdf"みたいにして送ってたんだけど,wget が古い (少なくとも 1.5.3 以下) だと
<?xml version="1.0" encoding="UTF-8" ?>
<result>
<errors>
<error>http:/nao.s164.xrea.com/td/index.rdf</error>
</errors>
</result>
みたいなエラーが返ってきてしまう.どうも URL 中の 2 度目以降の "//" が "/" になってしまうのが原因のようだ."/" を "%2F" にしても,スラッシュの数をやたらと増やしてみてもだめぽ.
wget -d でデバッグ情報を出してみると,
parseurl ("http://bulkfeeds.net/app/add.xml?url=http://nao.s164.xrea.com/td/index.rdf") -> host bulkfeeds.net -> opath app/add.xml?url=http://nao.s164.xrea.com/td/index.rdf -> dir app/add.xml?url=http://nao.s164.xrea.com/td -> file index.rdf -> ndir app/add.xml?url=http:/nao.s164.xrea.com/td
とかなってて,ndir を求める時点でスラッシュが削られてるっぽい.ソースを読んだらここで path_simplify() という関数を呼んでて,中にこんなコードがあった.
/* Handle multiple `/'s in a row. */
while (path[i] == '/')
i++;
if ((start + 1) != i)
{
strcpy (path + start + 1, path + i);
i = start + 1;
}
思い切って wget を 1.10.2 にしたら直った.ソースは全く別物になっていた.2005-10-25 [長年日記]
■ [comp] ed をつかってみる
ツッコミスパムがついに私のところにもやってきたので,bulkfeeds DNSBL を用いたフィルタを導入してみたが, 既に来てしまったツッコミは手動で消さないといけない.そこで,xrea 鯖に ssh でログインしてみたところ…vi が使えねー!!
いや,vi (というか vim) はあるんだけど,なぜか root でしか実行できないようになってる.ex は vim への symlink になってる.Emacs などの高機能なエディタはもちろんない.
ということはですね…,えーと,あれを使えと?
……ed を??
そう,なぜか ed だけは一般ユーザでも動くのである.しかしラインエディタを使うは初めてだったりする.man ed してみたがさっぱりわからん.ぐぐってみたが情報が極端に少ない.せいぜい以下の 2 つくらい.
- http://rcsg-gsir.imsb-dsgi.nrc-cnrc.gc.ca/documents/basic/node153.html
- http://cai.cs.shinshu-u.ac.jp/sugsi/Lecture/HowToUnix/5-1.html
% ed /path/to/file
- リターンキーを押すと,現在の行を表示しながら 1 行ずつ進んでいく.
- そのまま調子に乗って連打していると EOF までいってしまうので,ここで指定した行への飛び方を覚えよう.単に行数を打てばよい.例えば「3」と打てば,3 行目にジャンプしてその行を表示する.5 行進むには「+5」,戻るには「-5」.
- 最終行は「$」で表される.これは正規表現と同じだね.それじゃ先頭行は「^」かとうっかり思いそうだけど,これは間違いで,よく考えたら「1」で済むのだ.
- 今いる行 (カレント行) を表示するには「.」である.これは Unix のカレントディレクトリと同じ発想 (Mew にも採り入れられているね).
- さらに高度な表示は「p」(for 'print') だ.「5p」で 5 行目を表示するのは「5」と同じだけど,「5,10p」で一気に 5〜10 行が表示される.これでかなり楽になる.この「行数+コマンド文字」という表記は ed 制御の基本である.
- 挿入は「a」(for 'append') か「i」(for 'insert').vi と同様に,カレント行の前に挿入するには「i」で,後に挿入するには「a」.ピリオドだけの行を挿入すれば挿入モードから抜ける.
- 行削除は「d」(for 'delete').「5,8d」で 5〜8 行目を削除.
- 行の修正は「c」(for 'change').指定された行が,入力された行で置き換えられる.入力の終わりはやはりピリオド行.
- 置換は「s」(for 'substitute').「2,7s/foo/bar/」で,2〜7 行目の最初の foo を bar に置き換える.最後に「g」をつけて「2,7s/foo/bar/g」にすれば,その行の全ての foo を bar に置き換える.さすが sed の原型,馴染み深い書式.
- 編集が終わったら,「w」(for 'write') でファイルに書き込んで「q」(for 'quit') で終了.このあたりも vi と同じ.
ちなみに tDiary のファイルは「ピリオドだけの行」が記事のデリミタになってたりするwwww.今回は影響なかったけど,ed でこの行を編集するにはどうすればいいんだろうな.
おまけ.crazy っぷりにワロタ.確かに「これらは単語ですらない!!! (Those aren't even WORDS!!!!)」ってすごいな.
■ [misc] 滅菌・殺菌・除菌
滅菌と殺菌の違いの話があったが,殺菌は特定(今回は人体に有害な菌)の菌を殺すこと、滅菌は全ての菌を殺すこと。少し前にこんな話を聞いたのを思い出した.なんでも,菌が 1 個でも減れば「除菌」なんだそうだ.
1 個というのはさすがに極端かも知れないが,滅菌や殺菌よりはだいぶ落ちる概念らしい.混同してた.
各種業界の定義 によれば,除菌の定義は
ある物質または限られた空間より微生物を除去すること
ろ過や洗浄などの手段で、物体に含まれる微生物の数を減らし、清浄度を高めることらしい.
除菌の定義
各社とも生菌数を減少させること、あるいは増殖を抑制することという回答であった。しかし、減少や抑制の程度について、数値での記載はなかった。
スポンジを「除菌」しても、菌数がゼロになるわけではないので、洗剤による「除菌」に過大な期待をしないようにしましょう。あと,「殺菌」もわりといい加減な概念だという話もある.
極端な話をすれば一割の菌を殺して九割が残っている状態でも「殺菌した」ということは可能である。ちなみに生物実験なんかでは,エタノールで拭くのは「消毒」で,オートクレーブや乾熱滅菌器は「滅菌」だな.メンブレンフィルタのろ過滅菌って,「滅菌」と言っちゃっていいのか? 確かに残らず「いなくなる」けど.
あと上の記事で間欠滅菌の意義を初めて知った.なるほど.
2005-10-26 [長年日記]
■ [comp][blog] オープンデータ blog
手元に全てのデータがないと嫌な性分だったりする.なので一般的な blog サービスは気に入らず,tDiary をヘンな使い方 [2004-12-30] で使用してたりする (当時,tDiary が一番高機能だったのだけど,最近部分的に Chalow のほうが便利そうで何かくやしい).ところがだ.
ChangeLogはオープンデータなので、自分のデータを手元で管理できるという話題。たつをさんによる。そういえば、はてなダイアリーライターも自分の手元にマスターを置いておけるという意味ではオープンデータだなあなぬー,はてなダイアリーライタ (はてダラ) なんてものがあるのか.素晴らしい. はてなダイアリーの各種サービスが使えるようになるのは,かなりの魅力だ.そのうち使ってみるかも.複数の blog を運用する気力はないので,ここの記事のミラーになりそうだけど.
さらに mixi Diary Writer なんてのもあった (ミクダラとでも呼べばよいか?). ていうか CPAN に WWW::Mixi なんてものがあるのか! 激しく面白そうだ.
2005-10-27 [長年日記]
■ [book] 大学の話をしましょうか
森博嗣の大学論.
インタビュー形式で 1 時間もあれば読めてしまうけど,いつも森氏のミステリィのその手の記述を読んでニヤニヤしている大学関係者は楽しめるかも知れない.
謎の人事,備品管理の不条理,研究費の奇妙な習慣,学会の実態…とりあえず,思ってたことを代弁してもらってすっきりするという効能はありそう.
■ [comp] ML 超入門
「1 時間でわかる」の名の通り,コンパクトにまとまっていて,一通り読むとわかった気になる.- http://min-caml.sourceforge.net/index2.html
- (via http://secure.ddo.jp/~kaku/tdiary/20051028.html#p02)
4. let h x y = x * x + y in h (h 3 7) (h 123 456)typo??
文法まとめとか. 「美しい日本の ML コンパイラ」.
■ [misc] 1 周年
この blog も 1 周年を迎えたらしいです.よくもまあこれだけ駄文を書き散らしたものです.いつも読んで下さっている奇特な方も 5 名程おられるようです.ありがとうございます.まあそのお祝いというわけではないですが,実生活でも微妙に良いニュースがあったので,夕飯は祝杯をあげました.といってもまだ仕事が残っているのでアルコールでなくて水.しかも相変わらず一人っきりの夕飯.ふはは,さみしいよおTM.場所はいつもの定食屋が混んでいたのでダージリンにしたんだけど,よく考えたら数日前に (やはり一人で) 行ったばかりだった.ラーメン屋にすればよかったか.
ていうか,候補が定食かカレーかラーメンというのはあんまりじゃね? と自分にツッコミ.
2005-10-28 [長年日記]
■ [blog] はてなミラー
というわけで [2005-10-26],試しにはてなにデータをアップロードしてみたところ,あっさり成功してしまいました.こちらです.しばらく遊んでみようと思いますが,飽きたら消しちゃうかも.あまりあちこちに同じデータがあるのもどうよという気がするので.
ユーザ名に深い意味はありません.とりあえず思い付いたものはたいてい使われていたので,片っ端から入れていって OK が出たのがこれです.
それにしても,はてなダイアリーのキーワードの効果なのか,なんか本家では考えられないペースでアクセスが来ててちょっとオソロシス (延べ人数を数えるだけの単純カウンタなのだが,それにしても多すぎる).
以下の広告はサーバによって自動的に挿入されています.
Copyright © 2004-2006, nao. All rights reserved.

