トップ 最新 追記

2009-06-01 [長年日記]

_ .git を小さくする git gc って結構効果あるのね

例によってログから。

19:07:23 >wtnabe< ちょっと bundle ファイルが無駄にでかくなってきた
19:07:46 >wtnabe< git の repository の comapction みたいなことってでき
                  るんだっけ
19:08:32 <eban> @wtnabe git gc
19:08:51 >wtnabe< @eban すばやいw ありがとうございます。
19:09:36 >wtnabe< うっかり手抜き発言をすると光の早さでツッコミが入る
                 (ただしものすごく一部の情報だけ)のはありがたい

いやもうほんと、そんだけっす。知識はあったけどやってみたことなかった。

ずっとやってなかったせいもあるけど期待以上に .git が小さくなってビックリ!っていうか、意外に .git は無駄が多いんだなってことを初めて知った。今度からちょこちょこ実行するようにしよう。

Tags: Git

2009-06-02 [長年日記]

_ Nostalgy の save は move

しょっちゅうハマるのでメモ。

10:51:09 >wtnabe< いつまで経っても Nostalgy の save が move だと気づけ
ない
10:54:31 >wtnabe< うっかり save してその後、うわぁしまったって慌てて
move 先で該当メールを検索して copy し直さないといけない。
10:54:37 >wtnabe< なんで save なんて名前にしたの。

copy じゃないものを選べ!

_ 妙なライブラリの名前とコマンドラインオプション

12:34:24 >wtnabe< あ、ubygems.rb っていうそういうことなのか。何この
                  typo 対応とか思ってたけど、こりゃー一本取られたわ。
12:59:32 <eban> @wtnabe un.rbもそういう意味

何のことかというと、例えば手元の MacPorts で入れた Ruby の library の中の一部はこうなってるんですよ。

$ ls -1F /opt/local/lib/ruby/vendor_ruby/1.8/
gauntlet_rubygems.rb
i686-darwin9/
rbconfig/
rubygems/
rubygems.rb
ubygems.rb

rubygems.rb があるのにこの ubygems.rb って何よ?

と思ってたわけです。しかも中身は

$ cat ubygems.rb
# This file allows for the running of rubygems with a nice
# command line look-and-feel: ruby -rubygems foo.rb
#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++


require 'rubygems'

しかない。

なんじゃそれ!

と思ったけど、これはこうすると分かる。

$ ruby -rubygems.rb -e 'puts "foo"'
foo

どういうことかと言うと、

$ ruby --help
Usage: ruby [switches] [--] [programfile] [arguments]
  -0[octal]       specify record separator (\0, if no argument)
  -a              autosplit mode with -n or -p (splits $_ into $F)
...
  -rlibrary       require the library, before executing your script
...

ニクい。ニクいよアニキ!

Tags: Ruby

2009-06-04 [長年日記]

_ ViewSourceWith なんてものを見つけた

ViewSourceWith :: Add-ons for Firefox

実は最近ずっと困ってたんですよ。

  • いつの頃からか Thunderbird 2.x と External Editor の組み合わせがまともに動いたり動かなかったりするようになった*1
  • 自宅の IntelMac に限って It's All Text ! でエディタを開くと一気に55個とかエディタが起動してうんざり。

でもいっぺんに解決! ViewSouceWith っていう名前からは想像できなかったけど、これは Firefox でも Thunderbird でも外部エディタ起動用拡張として使える。

ただし、外部エディタ起動専用の拡張ではなく、

今フォーカスの合っている部分のソースを指定したアプリで開く

ためのものなので少し注意が必要。

textarea の編集に使いたければ textarea にフォーカスを合わせておかないといけないし、メールの編集に使いたければまずメールの送信画面の本文のところにフォーカスを合わせておかないといけない。

いつ何時でも「長文を書くために外部エディタを開く」という形で使えるわけではない点だけ分かれば、Firefox でも Thunderbird でも使えるというのはとてもありがたい。二つの問題が一気に解決してしまった。素晴らしい。

*1 具体的にはメールを書いていたエディタを拡張が見失ってメール作成ウィンドウにフィードバックできなくなる。そのくせエディタを閉じないとメール作成ウィンドウは閉じれませんとブータレる。実際にはエディタは終了しており、このダイアログを強制的に閉じる手段もない。つまり Thunderbird そのものを強制終了する以外に回復方法がない。


2009-06-05 [長年日記]

_ phpdoc の出力が使いにくい

phpdoc と自分が呼ぶ場合は

phpDocumentor: The complete documentation solution for PHP

のこと。

pear install PhpDocumentor

で入るもの。

で、これを毎日回して trunk の code の apidoc を自動生成してるんだけど、この際、どのファイルを parse してるとか書き出してるといった様子が全部 stdout に吐かれる。そう、全部。

  • Hidden(読み込まないファイル)
  • Reading
  • Proccessing
  • Sorting
  • Formatting
  • Building
  • Writing
  • WARNING
  • ERROR

全部ぜーんぶ。鬱陶しい? オプションを紹介しよう。

 -q    --quiet                   do not display parsing/conversion messages.
                                 Useful for cron jobs on/off default off

だけ。on か off しかないの。

こういう情報って、とりあえず ERROR だけ欲しいよねぇ。ERROR 起きてたらそれを通知するとか、そういう使い方するもんでしょ? この吐き方はどうも、作ってる人もこの情報活用してない感じがする。これじゃー開発時にも自分の欲しい情報をすぐ取り出せないっしょ。

うーん。どうしようね。awk とか絡めて何か作るしかないのか…。いや、普段自分は気をつけて commit しているのであんまり ERROR 起きないんだけど、気をつけなきゃいけないのがダサイし、自分と同じ気をつけレベルを他人に強要、いや期待する段階でダサイし、現状はとにかく不確実である。

確実な動作を検証する方法があるはずの不確実なものに人間の注意で対応するのは我々の仕事としてはダメでしょう。

cf. Twitter / wtnabe: phpdoc の log ってこれ絶対作った人使って ...

Tags: PHP

2009-06-08 [長年日記]

_ vcat なんてものを作ってみた

vertical cat のつもりだけど、あれ意味反対か? horizontal か? そうかもしんない。まぁいいや。

何をするかというと、フツー

cat file1 file2 > dest

ってやるとできあがるファイルは

file1の内容
file2の内容

って繋がるでしょ? これを

file1<TAB>file2
file1<TAB>file2
file1<TAB>file2
...

ってくっつくようにしたもの。

例えば何かをフィルタで処理して結果を出力しちゃったんだけど、後から before と after を並べて印刷したい、とか思うこともあるわけですよ。そういうときにいちいちそのフィルタ書き換えて before と after 並べて出力するようにしなくても、これを通せばすぐできるよ! というやつです。

なんか気づくと cat 系のものをよく作ってる気がする。

え。コードがハイライトされてないし、何か分からない? ったく最近の若いもんは! awk に決まってるでしょ!

[追記] 各所でツッコミが。

うっうっ。以下言い訳。

  • paste という名前で動作が予想できないので、いざ使うときに名前を思い出せない
  • man を読んでも意味が分からなかった

きっとこの両方だったに違いない。

ん? あ! そうか! cut と対になってるじゃん! がーん。不覚っ。

Tags: Awk

2009-06-10 [長年日記]

_ システム屋以外向けの JavaScript 本探したけどいいの見つからず

今さらですが、書いている時点で4ヶ月前の情報ですorz

ずいぶん前に HTML, CSS, 周辺技術関係の本を一度整理したことがあるけど、こういう感じで JavaScript の本てないかなーという要求が発生した。

14:56:55 >wtnabe< まともな jQuery 本てあるのかな。jQuery 本が存在してる
                  のは知ってるけど。
14:57:26 >wtnabe< JavaScript を基礎から知る必要はないけど一つの幅として
                  jQuery くらいなら使えるといいなぁという人にお勧めの本
                  てなんだろう?
14:59:44 >wtnabe< monjudoh に DM 飛ばしまくると教えてくれるかな
15:07:43 >wtnabe< openspc の人の本があるな
15:08:36 <monjudoh> @wtnabe バージョンアップが速いので割といい本が出て
                    もすぐに陳腐化しちゃう感じだねー
15:09:55 >wtnabe< @monjudoh 開発者に読ませたいわけじゃないので、基本的
                  な考え方が身に付けばよいのですが、さすがにあんまり適
                  当なのはイヤだなぁという程度で考えますお。
15:10:49 >wtnabe< The GoodParts はやっぱ読んどいた方がいいのだろうか。
                  そういえば JavaScript を教えたことってないかもしれな
                  いなぁ。
15:14:35 <monjudoh> @wtnabe まるごとJavaScript&Ajaxかなんかで
                    @amachang が書いてた奴でいいんじゃない?
15:15:16 >wtnabe< @monjudoh ふむる。確認してみるです。
15:16:21 >wtnabe< @monjudoh あざーす

この時点で気になっていたのは

20:38:35 <wtnabe> ビーンズなう
20:41:36 <wtnabe> Plagger本なんてあんだな
21:05:36 <wtnabe> 「まるごと」はやっぱ開発者向きだなあ
21:29:36 <wtnabe> あんまりいい本がないなぁ。いまどきFx&Firebugをベース
                  にしないとかあり得ん。
21:32:36 <wtnabe> オライリーのPrototype本のjQuery版みたいなのが欲しいん
                  だな、きっと。

結局買わずに帰ってきた。

22:01:47 >wtnabe< あんまり人に読ませたい JavaScript 本てないもんだなと
                  思った。O'Reilly のバイブルなんかは読みたい人が読む本
                  であって読ませたい本とはなんか違う気がする。
22:03:29 >wtnabe< 言語の基礎のある人が言語として JavaScript に取り組む
                  ならああいうのでいいんだけど、数ある Web のフロントエ
                  ンドの技術の一つとして取り組みたい人にとって文法の詳
                  説はそんなに重要じゃないんだよな。
22:05:12 >wtnabe< 特にデザイン方面向けの良書がない印象。デザイン方面向
                  けはFlashが恐ろしく充実してるんだけど、これは恐らくツー
                  ルが完結してるからなんだろうな。
22:05:51 >wtnabe< 昔からあるDirectorを極める、Photoshopを極める、のと同
                  じスタンスでFlashを極めることでこんなことできるよ!と
                  いう分かりやすさが重要なんだと思う。
22:06:49 >wtnabe< 対してJavaScriptに取り組む際にはHTMLもCSSも避けて通れ
                  ず、このツールを極めればこんなことできるようになるよ!
                  という提示もできない。
22:07:39 >wtnabe< だからきっとデザイナ方面ではJavaScriptはまだなんかよ
                  く分からないうえになんかちょっとダサイ子みたいに映っ
                  ているのではないかという印象を本屋の棚の前でぼんやり
                  抱いたのであった。
22:11:36 <takedasoft> @wtnabe prototype & script.aculo.us で遊んで動く
                      面白さを体験してから、JavaScript第5版って感じで
                      すかね。ActionScriptは、面白さが先に来てるのがい
                      いところかも。
22:16:34 >wtnabe< @takedasoft そうですねぇ。昔の本はうざいだけの小技が
                  多く、最近の本は骨太なのが多くて間が欲しいなぁって感
                  じです。あとビックリするほど装丁がださくて読みにくい
                  本が多いですね。
22:20:36 >wtnabe< そういえば The Good Parts は特におぉと思うところがな
                  かった
22:22:29 >wtnabe< 独習とjQuery+JavaScript実践リファレンスは惜しいと思っ
                  た。これを足して2で割ってツールをFx+Firebugにすると自
                  分の欲しい本に近くなる感じ。
22:26:36 <takedasoft> @wtnabe ww、確かにJSユーザーは完全に二極化して
                      ますなぁ

Prototype & script.aculo.us 本は分量的にも値段的もテーマ的にもとてもよいと思う。Prototype.js を使っているならまったく文句はない。

「独習」は O'Reilly ほどゴツくはないにしろまぁ教科書だよね。外れじゃないんだけど面白みはないかな。

jQuery + JavaScript実践リファレンスは求めていた jQuery 本にかなり近いんだけど、せっかくの JavaScript なのにガッツリ Windows 依存で環境を作ってしまっている点がにんともかんとも。Firefox + Firebug でいいじゃない。このご時世になぜに Windows ベッタリだ。


2009-06-13 [長年日記]

_ IE 8 の standard mode では img の alt がツールチップ表示されない

Windows Internet Explorer 8 の変更点

alt 属性は、ブラウザが IE8 標準モードで実行されている場合には、イメージツールヒントとして表示されなくなりました。代わりに、 longDesc 属性のターゲットが存在する場合は、これがツールヒントとして使用されます。それ以外の場合は、 title が表示されます。alt 属性は、依然として Active Accessibility 名として使用され、title 属性は、alt が存在しない場合にのみフォールバック名として使用されます。

結構大きな変更なのにニュースサイトでは CSS や JScript の変更、あるいは DOCTYPE スイッチそのもの変更のようには伝えられてないですね。ちゃんと情報追いかけている人は blog, microblog でちゃんと書かれてますけど。

まぁまだいっかなーとか思ってたんだけど、

Windows 開発統括部 Blog : Internet Explorer 8 日本語版の自動更新が始まります。

ということですでに 5月25日から自動更新で入ってきてるらしい。あれれ。

Tags: Web IE

2009-06-22 [長年日記]

_ Acceptヘッダって大事なんだね

今日以下のような現象に出くわした。

ブラウザでアクセス200 OK
RestClientでアクセス406 Not Acceptable

サーバサイドのコードでは 406 なんて吐いてないので debug しようにもできなくてオロオロしていたんだけど、HTTP をよーく見比べていたら RestClient の方は Accept ヘッダが期待より少なかった。あーなるほどね。こういうことね。

今回の確認には以下のツールを利用した。

Firefox + LiveHTTPHeaders

ngrep

LiveHTTPHeaders は恐らくもう常識だし、IE などにもこういうツールはあるみたい。でも特定のブラウザに bind されているツールは当然ながらブラウザ以外の HTTP クライアントでテストしているときには利用できない。そして GUI じゃない HTTP クライアントを使った方がテストしやすいケースって案外ある。

ぜひあなたのポケットにも ngrep を。

何の話だっけ。

Tags: Web

2009-06-24 [長年日記]

_ find -mmin で1時間以内に変更のあったファイルを取り出す

ずっと思っていたことがあったんですよ。

なんで find の -Xtime オプションて time と言いつつ日数を引数に取るんだろう? 数時間以内の変更ファイルとかどうやって抽出すればいいの?

-Xmin で簡単にできました。

例えば

find ~ -mmin -60

ってすればホームディレクトリ以下で 1時間以内に変更のあったファイルが取り出せます。(主にブラウザのキャッシュが引っかかるでしょう。)

2009-06 現在で現役の BSD find も GNU find も同様に動きます。なんてこった。全然知らなかったよ。いつからある機能なんだろ。

関連つぶやき

11:07:34 >wtnabe< find は分とか時間単位で直近のファイルを探せたら便利な
                  んだがな。その場合は基準になるファイルを用意しなきゃ
                  いけないのが面倒。
13:09:27 <showchan> @wtnabe -atimeとかじゃだめすか
14:20:17 >wtnabe< @showchan あ。最近のものは単位を与えられるのですか。
14:22:05 >wtnabe< @showchan ん? GNU find には単位を与える方法はないよ
                  うな?
14:24:30 <showchan> @wtnabe -atimeとか-aminとかあるみたいですよ。man
                    find によると
14:26:27 >wtnabe< @showchan あー -amin -mmin か。これは便利そう。ありが
                  とー。
14:28:57 >wtnabe< 基本的なツールだったり、すでに使い込んでるツールでも
                  たまに changelog とか man とか読み込まないとダメだなー
Tags: Unix

2009-06-25 [長年日記]

_ emacs の replace-string が便利、だけど

えーと要は正規表現を使わない単純な文字列の置換、のはずなんすけど、予想外に賢い(?)動作をします。twitter のログより。

19:39:56 >wtnabe< Emacs の replace-string って大文字小文字をいい具合に
                  扱ってくれるんだな。知らなかった。
19:45:28 <yuuitiro> @wtnabe ぬぬぬ、「いい具合」とゆーのはどんな感じな
                    のでしょう? 興味あり!!
19:46:45 >wtnabe< @yuuitiro いやーなんか foo -> bar で replace したら
                  Foo がちゃんと Bar になったんで、すげーなーと。
19:51:27 <yuuitiro> @wtnabe へーへーへー。それは知らなかった。。。。あ
                    りがとうございます〜!。

これは便利。

なんだけど。考えたら大文字小文字をちゃんと区別して特定の文字列だけ置換したい場合にはどうしたらいいのか分からないな。

……。まぁいいか。

Tags: Emacs

2009-06-28 [長年日記]

_ writemaps は面白いけどイマイチ

WriteMaps Site Map Application: Create, edit, and share your sitemaps online.

Web 上でサイトマップを作成できるという writemaps というサービスを試してみました。以下感想。

> WriteMaps は Google が買収したらいいんじゃないか
> WriteMaps は Sitemaps XML を吐けるみたいだけど priority を指定できない
  とあんまり嬉しくないような。XML を吐くだけのツールなんてそれなりにある
  だろうに。
> JSON で export, import できるのはいいと思う。

確かにサイトマップを Web 上で編集できる。でも基本的にそれだけ。

と思っていたんだけど、後日(7/12)…

> うへぇ。WriteMaps は note の中に保存したものは全部化けちゃうのか。
> しかも JSONで export したら \u 形式じゃなくて URL エンコードしてるっぽ
  い? なんじゃこりゃ。
> 英語でreportを送るなど。アイディアは面白いけどJSON encodeを間違う辺りは
  ちょっとどうなんだ。普通にライブラリ使って吐けばあんなことにはならんと
  思うんだが。
> pull request なんかは個人的な mail って感じで緊張するけどサービスに対す
  る feedback は英語でもあんまり緊張しないことが分かった。
> 基本的にはぐぐるさん翻訳をくっつけて送るだけだしな。
> というわけでWriteMapsは今のところPageNotesが保存すると化ける(保存前は
  普通に読めてる)、JSONでexportする形式がおかしい、という問題があります。

結局

> writemaps が残念だったのでとりあえず出よ OmniGraffle

ということでした。

[2009-09-03] 文字化け直ってなかったよ。2ヶ月近く経ってるのに。ダメなのかもしれない。

Tags: Web

2009-06-30 [長年日記]

_ linkchecker を OSX w/ py25 で使う

複数の人間で Web を作る場合、最後にリソースが適切に揃っているのか統一的にチェックする手法が必要になると思います。*1

その際、どういうツール使うのがいいのかなーと去年調べまして、今のところ

Check websites for broken links ― LinkChecker

がいいのかな、と考えています。Python を使ってて Windows でも Linux でも動くし、結果が見やすいのも気に入っています。

しかしこれ、OSX で動かそうとしたときにハマります。*2

 File "/sw/lib/python2.5/site-packages/linkcheck/director/console.py", line 30,
in <module>
   stderr = codecs.getwriter(_encoding)(sys.stderr, errors="ignore")
 File "/sw/lib/python2.5/codecs.py", line 930, in getwriter
   return lookup(encoding).streamwriter
LookupError: unknown encoding: X-MAC-JAPANESE

はいはい、ぐぐる先生ぐぐる先生。

……。

ねぇ。どんだけ調べても linkchecker でこの現象にハマっている事例は見つかりません。見つかるのは Django とか Trac とか。くそー、linkchecker はマイナーだったか。

で、どうもこれは Mac で Python のツールを動かすときには必ずハマる道らしい。うへー。ばかばかしくね? ばかばかしくね?

というわけで今回は以下のように修正しました。

こう直すべきなのかどうかは分からないです。

Python 2.6 で直ってるとかいう話もあるようですが、すべてのツールが 2.6 で動くように書かれてるわけでもないでしょうし、なかなか面倒な話ですね。

※ たぶん Python 2.6 を入れた状態で、fink も macports も使わずに野良で、あるいは自分でそれ用のパッケージを作って linkchecker を入れればいいんじゃないかなという気がしますが、やってみていません。

Tags: Web Python

*1 個々人のレベルでは Dreamweaver だけで完結するチェックとかはもちろんやるんでしょうけど。

*2 以下は Fink で入れた linkchecker を動かそうとした結果

_ MacPorts の正しいアンインストール

上の話とは別に以下のような問題にハマっていました。以下はハマりから解決するまでの twitter のログ。

> python25 を activate できない
> activate できないので python製ツールが port install できない
> MacPorts で Python がインストールできないっていう症状はそんなポピュラー
  じゃないのかな。なんか、以前は普通にインストールしたような気もするし
  なぁ。
> 意味が分からん。install されてるからダメって言うくせに uninstall しよ
  うとすると install されてないって言うし。
> pkgdb みたいなのってあるんだっけ
> あー uninstall できた。+macosx まで全部要るのか。
> uninstall したがやはりダメ。
> install できてないのに install できてるとして registered ってなんなん
  だ
>  /Application/MacPorts の中の Python てなんだ
> 以前一度 MacPorts 全部消して入れ直したときに残ったのかな、これ。
> それっぽい。macports.conf の中に applications_dir として定義されてる。
  そういうことか。
> あーやっと通った。MacPorts 消すときは /opt だけ消せばいいんじゃないの
  かぁーーーー。

数日前に MacPorts を一度全部消して入れ直していたのですが、そのとき /opt しか消していなかったのです。どうやら Python はそれだけでは完全に削除されないらしい。という話でした。

Tags: MacPorts OSX