2008/02/24

GIF などのファイルサイズが不自然に大きいときにはImageMagick で strip する

個人的に、最近、Photoshop やIllustrator などのグラフィック系のソフトを使うことが多くなりました。

特に自分の場合はWeb 制作時にGIF ファイルを作ることが多いのですが、時々気になるのが、25 x 25 pixel などの小さなGIF ファイルなのに40kb とか不自然にファイルサイズが大きくなることがあることです。

GIF のフォーマットについて詳しく無いので、最初はそんなものかと思って気にしていなかったのですが、よく観察していると、同じピクセルサイズなのにファイルサイズはだいぶ異なる、というケースも多々あり、また、携帯電話向けのサイト制作などではファイルサイズを気にしてあげたほうがユーザーに優しい、ということもあり、解決策を調べてみたところ、手っ取り早そうな方法としてImageMagick で不要な情報(ヘッダ、その他の付加情報?)を削除するオプションがあることを知り、試したところ劇的にファイルサイズが縮小されました。

使い方はこんなかんじです。
convert -strip a.gif a-stripped.gif

このサイトで知りました。感謝。
上記のサイトではjpg で書いてあるのでjpg やその他のフォーマットでもいけそうです。

ImageMagick は便利に使えるので是非インストールしておきたい一品です。

ちなみに、このためにMacPorts からImageMagick をインストールしたところ、
==========================
% convert
/opt/local/bin/convert: error: `/opt/local/bin/.libs/convert' does not exist
This script is just a wrapper for convert.
See the libtool documentation for more information.
==========================
こんな感じのエラーで動きませんでした。

このへんで同じようなことを言っているみたいでしたが解決に至っていないようでしたので、いろいろ試したあげく、結局ImageMagick 公式サイト配布のバイナリでインストールすることに。
こちらは問題なく動きました。

2008/02/19

カワセミを見た。


大きな地図で見る

先週の木曜日だったと思いますが、仙台堀川公園内でカワセミを見ました。(写真はwikipedia から拝借)
静止したように飛んでいたので最初はハチドリかと思っていたのですが、調べてみたら、色がカワセミっぽかったし日本に多いのはカワセミということでカワセミと断定します。

場所は左の地図のところ。もし次回また見かけたら写真を撮ってみたいですが、その後見かけていないのが残念。

2008/02/18

Gmail でメーリングリストのメールが弾かれる件を自己環境だけでもとりあえず対処してみた

自分の環境を全てGmail 化したら、仕事の進め方そのものが少し変わってきました。
以前の自分のメールの扱い方から比べると、Gmail 化したことで改善された部分が大きいので、もはやGmail から戻れないという段階です。
そんな便利なGmail ですが、気になっている難点がありました。

Gmail ではMessage-ID をユニークなメッセージのID として使用するようなのですが、その挙動が厳密すぎるために既存のメーリングリストシステムとは相性が良く無いみたいです。

つまり、Gmail からML へメールを送ると、そのメールは送信時点で、あるMessage-ID を持ったメールとしてアーカイブされてしまうため、MLシステムを通った際にsubject を[info:00123] のように書き換えるような運用をしている場合、そのメールが自分には配送されない、ということになる(みたいな)のです。

Subject を書き換える処理をしていなくても実は同じことが起きているのですが、書き換える処理をしている場合、その書き換えられた方のメールが自分宛に届かない、ということです。見た目の問題としてですが。

ちなみにMessage-ID をユニークなメールのキーとして使うのは、ある意味では当然ですが、例えばBecky なんかでは重複したMessage-ID のメールを取り扱えます。

欧米ではあまりMLのサブジェクトの書き換えはしない、と聞いたことがあるのでそのせいなのかもしれませんが、この問題は認知されているようなのにGmail 側では対処される気配がない(というかやる気が無い?あるいは、やらない、というポリシーの問題の気もしますが・・。)模様で困っていました。

ヒューマンフレンドリーな[info:00123] のような仕組みは、ユーザーにとってもわかりやすい仕組みなので、なんとか直したい、この問題を解決しないことには事務所をGoogle Apps に移行できない、と密かに嘆いていたのですが、ふいに気が向いてMLのシステム側で対処することにしました。

ML にはMailman を使っていたので、Subject 書換の際に、Message-ID を書き換えてしまう、という安直な方法ですが・・。

以下が、書き換えたdiff です。

====================
$ diff -u mailman-2.1.9/Mailman/Handlers/CookHeaders.py.org mailman-2.1.9/Mailman/Handlers/CookHeaders.py
--- mailman-2.1.9/Mailman/Handlers/CookHeaders.py.org 2006-02-17 11:42:35.000000000 +0900
+++ mailman-2.1.9/Mailman/Handlers/CookHeaders.py 2008-02-18 02:11:43.000000000 +0900
@@ -237,6 +237,10 @@
prefix = mlist.subject_prefix.strip()
if not prefix:
return
+ # overwrite message-id.
+ msg['X-Original-Message-ID'] = msg.get('message-id', '')
+ del msg['message-id']
+ msg['Message-ID'] = Utils.unique_message_id(mlist)
subject = msg.get('subject', '')
# Try to figure out what the continuation_ws is for the header
if isinstance(subject, Header):
====================

ほんの3 行書き換えただけですが、きちんと動いています。
Mailman がdaemon として動作しているということをうっかり忘れていて、リスタートするのを忘れていて、書き換えたのにうまく動かない、なんてことをしてしまい、きちんと動くまでに時間を浪費してしまいましたが・・。

ただ気になるのはこの処理をしたことでループ検知などに悪影響が出ないかということです・・。

ちょっとずれる感じもしますが、
http://mail.python.org/pipermail/mailman-developers/2003-October/015981.html
でもMessage-ID の書き換えについて議論しているようで気になったのですが、結局実装されずじまい、みたいなことでしょうか。
そもそもSubject を書き換えてるのだからMessage-ID を書き換えないのがおかしい挙動なんだ、という気もしないではないので、この修正のほうがむしろ正しい挙動に近づくのでは?、なんてことまで考えたりもしましたが、RFC の厳密な解釈など詳しく無いので判断がつきません・・。
目の前のシステムがうまく動けば個人的には問題が無いのですが、もしも分かる方がいらっしゃったら教えていただきたいところです・・。

2008/02/15

Safari の予約語にはまった(?)

Safari の予約語にはまった(?)のかどうか結局突き止められていないのですが、Firefox で基本的な動作確認をしてIE もSafari も問題がなかったhtml で、いざ運用してたら、Firefox もIE も問題ないのにSafari だけおかしい、という事体に・・。
Firefx とSafari で大きく見え方が違うことも少ないのでなんでかと思ってhtml をシンプルに構成して検証していたら多分だけどもh2 id="class" とかやってしまっていた箇所で問題を発見。

ちょっと探したら、
http://www.kawa.net/works/js/tips/future-reserved-words.html
などもあるように、Safari は予約語に厳しいのかも・・。
上記URL はjavascript のことについて言及していますが、css でも制限があるのかもしれませんね。

2008/02/11

部屋を暗くすると集中力が高まる     気がする。

元来、夜型人間のせいか、昼間は集中して仕事が出来ない、物音がすると気になって仕方ない、という面倒くさい性格です。

が、最近、そうも言ってられないほど忙しい中で、いろいろ工夫していて発見したのが、「部屋を暗くすると集中力が高まる(・・・気がする。)」ということでした。

考えてみれば当たり前のような気もしますが、見つめるべき光源がモニタしかなくなれば、そこから目を離すことはあるまい、という至極シンプルな理由で集中しやすくなるのだと思います。

今まではそれほど意識して部屋を暗くしたりしたことが無く、どちらかというと目が悪くなるんじゃないかと思って部屋は明るく保っている方だったので部屋が暗いとすごく新鮮に感じられます。

そんなことを考えつつもこうしてエントリを書いているあたりで仕事には集中できていないのですが、少なくともモニタに集中できるということで・・。

ところでこの話題の写真はPhotoBooth で自分撮りした写真が良い、と思って、部屋を暗くした状態でPhotoBooth で撮ってみたのですが、その仕上がり具合たるや、恐ろしい心霊写真の様相を呈していました。
あまりの恐ろしさにモザイクをかけておきましたがオリジナルが見たい人はご連絡を。
お手持ちのマシンにカメラが付いている人は是非自分でもお試しあれ。

2008/02/08

IE (のレンダリングエンジン) のデバッグ

普段、css のデバッグ時にはFirefox & Firebug を使っているのですが、稀に必要になるIE でのデバッグではいつも困っていました。

IE Developer Toolbar というやつも使えると言えば使えるのですが、なんとなく見にくくてFirebug が欲しく感じられてしまっていたのですが、Sleipnir というIE とFF のエンジンを切り替えて使えるブラウザのプラグインでHawkeye というやつを使うとわりと使いやすいことに気がつきました。

IE Developer Toolbar でも自分の知りたい情報にはアクセスできたものの、インターフェース的にどこか使いづらく活用しきれていなかっただけなのだ、とhawkeye を使い始めて改めて気づきつつも、しばらくはsleipnir も使ってみようかという気になりました。

Fotolia Japan が開いたらしい

たまにはWeb 2.0 (!)的なサービスの紹介でも・・。
ときどき利用しているFotolia の日本語版が開いたとのことでメールが来ました。
http://jp.fotolia.com/
Fotolia はロイヤリティフリー写真を大量に扱っているサービスを展開しているのですが、なんといっても特徴は、今までのロイヤリティフリー写真とは桁が違う安さで購入できる、ということと、誰でも写真の売り手になれる、というところ。

素人が撮った写真も多いので、買うに値しない写真も山ほどありますが、商用利用したいと思ってもFlickr ではライセンス的に問題の無い写真が見つからないときなどに重宝しそうです。
なんと言っても安いので気軽に買えるのが良いと思います。

ちなみにこういうサービスのことをマイクロストックとか言うそうな。
英語版で数回使いましたが結構便利に使わせていただきました。興味のある方、是非ご堪能あれ。

2008/02/03

Spaces で反応がなくなったら。[ MacOSX Leopard ]


新年、あけましておめでとうございます。

今年は忙しさにかまけて、年賀状は来た人には出そう、という目標も到達できませんでした・・。
年賀状を下さった方々、誠に申し訳ありませんでした。
何卒無礼をお許しください。
(こんなところでお詫びしても意味が無いのですが自己満足的な新年の接頭辞として・・。)

「忙」という字は、心を亡くす、と書く、とは良く言われますが、最近の自分がまさにそういう感じに陥っているのではないかと反省しております。

昨年暮れから引きずっている仕事は年初来も引き続き終わらず追いつめられつつも、忙しいときほど関係ないことをやりたくなるのが人の性らしく、Leopard に移行して以来、気になっていたSpaces がときどき無反応になる件を調べてしまいました。

調べたら割とすぐ出てきたのですが、Dock を再起動すれば良いだけ、とのこと。
Terminal.app でkillall Dock か、アクティビティモニタでDock を終了すれば良いだけでした。

これでSpaces が返事をしなくなっても迅速に復旧できます。

自分が見つけたソースはこちらでした。
http://www.zaphu.com/2007/11/27/leopard-tip-restart-unresponsive-or-misbehaving-spaces/