Archive for January, 2008

Canon EOS Kiss Digital N

Wednesday, January 30th, 2008

img_0135.jpg

父親から借り受け使い始めることに。

この機種、先日発表された EOS Kiss X2 の先々代モデルになるが、約800万画素の CMOS センサーに 485g という軽さ、ということで割りとよさそうな感じ。

しばらく使ってみるつもり。

packer decoder

Friday, January 18th, 2008

JavaScript の圧縮・難読化ツールの定番 /packer/ で pack したコードを decode するツールを作成。

packer decoder
http://blog.shimazu.org/utils/packer_decoder.html

たとえば

eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('1.2.5.9(o,\'l\',7(){1.2.5.9(\'i\',\'g\',7(){0 f=1.2.5;0 6=1.2.c;0 d=1.e;0 a=6.8(\'h\');0 b=6.8(\'j\');k("0 3=m"+a.3.n(4));b.3=3})});',25,25,'var|YAHOO|util|value||Event|D|function|get|addListener|||Dom|L|lang|E|click|in|run|out|eval|load|String|slice|window'.split('|'),0,{}))

というコードをツールにかけると

YAHOO.util.Event.addListener(window,'load',function(){YAHOO.util.Event.addListener('run','click',function(){var E=YAHOO.util.Event;var D=YAHOO.util.Dom;var L=YAHOO.lang;var a=D.get('in');var b=D.get('out');eval("var value=String"+a.value.slice(4));b.value=value})});

といったコードが得られる。

#これを Js Decoder にかければインデントもしてくれる。

つくりは簡単だけど、自分的にとても役立っている。

2008/01/24追記
decode前のサンプルコードにミスがあり、decoderで正しく処理できてなかったので、修正。

2010/09/18追記
サーバ移行の影響か、またサンプルコードがおかしくなってたので修正。
本家 にも decode 機能がついた模様。

UI のためのホテル業界本

Tuesday, January 15th, 2008

自分的に UI を考える上で常に大事にしたい2冊の本。

一見畑違いのようだけど、ホテルのサービス精神・ホスピタリティといったものは、ウェブデザイン・プロダクトデザインにそのまま適用可能で、これらを知ることは UI の目的を再認識させてくれると思っている。

帝国ホテル 感動のサービス―クレームをつけるお客さまを大切にする

わたしはコンシェルジュ―「けっしてNOとは言えない」職業

PHSでは問い合わせられない日本郵便の窓口

Tuesday, January 15th, 2008

japanpost.png

お問い合わせ によると、電話での問い合わせ先は、

  • フリーコール(0120で始まる番号)
  • ナビダイヤル(0570で始まる番号)

の2つ。固定電話より電話料金が高い携帯電話・PHS向けに、フリーコールとは別に代替番号を用意するのはよくあるが、その代替番号がナビダイヤルというのはあまり見ない気がする。

OCN|「全国統一番号」(ナビダイヤル)の料金について

※ PHSからは接続できません。

とあるとおり、PHS ではナビダイヤルに電話できない(理由は不明)。フリーコールも念のためかけてみたけど PHS を接続できる設定になっていなかった。

問い合わせフォームでその旨を書き送信したところ、返信メールが来て関係部署にその旨伝えるとのこと。肝心の問い合わせ内容については、担当部門の住所だけ返信メールに記載があり、そこに問い合わせてくださいとのこと。住所をもとにネットで電話番号を調べて PHS で電話したところ、郵便局と郵便事業は同じ住所でも番号が違います、と言われ、電話をかけなおすことになり、ああもうなんというか。

Canon IXY DIGITAL 910 IS

Monday, January 14th, 2008

ixy.jpg

広角撮影のため Canon IXY DIGITAL 910 IS を購入。

友人の一眼レフ(Nikon D40)の写真があまりにもきれいなので、一眼レフに心奪われそうになるが、とはいえいつでも持ち歩けるほど手軽ではないので、まずはコンパクトカメラをかえることに。

このカメラ、撮影画像閲覧時にアニメーションしながら画像が切り替わったり、操作に iPod 的なダイヤルを使ったりで、デジカメにしては UI が工夫されている感じ。まだちゃんと試せてないが、広角撮影も上々で室内を広く取るには良さそう。

今回の購入にあたって周囲に相談したところ、中古カメラショップを教えてもらった。結局今回は利用しなかったけど、念のためメモしておく(特に一眼レフの売買に当たり役に立つはず)。

OpenSearch

Sunday, January 6th, 2008

Firefox 2 や IE 7 で使えるようになったブラウザに組み込めるサイト検索の仕組み「OpenSearch」をこのサイトも対応したのでメモしておく。

opensearchbar.png

以下参考にさせていただいた。

定義XMLの作成

まず、検索URLなどを定義するXMLを作成する。

<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/" xmlns:moz="http://www.mozilla.org/2006/browser/search/">
  <ShortName>blog.shimazu.org</ShortName>
  <Description>blog.shimazu.org</Description>
  <InputEncoding>utf-8</InputEncoding>
  <Image width="16" height="16">http://blog.shimazu.org/favicon.ico</Image>
  <Url type="text/html" method="GET" template="http://blog.shimazu.org/index.php?s={searchTerms}" />
</OpenSearchDescription>

Imageタグの箇所にはBase64形式のデータも格納可能で、[JavaScript] dataスキームURI生成(画像データのBase64変換) にて、「画像URL」の箇所に http://blog.shimazu.org/favicon.ico などと入力すると、

var data = 'data:image/x-icon;base64,'+
    'R0lGODlhEAAQALMAAP///+Xl5UBAQL+/v6ampllZWU1NTbOzs2ZmZvLy8oCAgMzMzJmZmebm5gAA'+
    'AAAAACH5BAAAAAAALAAAAAAQABAAAARGMMhJqwQ4a323xx0mDB8QAmN5jgSzbGthFALBBZqAYIRw'+
    '5wdMIgXCZYgoUjFnAwwEjcyqdijspEYRwSBQJH4lWDZctJglEQA7';

といった感じでBase64変換される。これを使うと以下のようになる。

<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/" xmlns:moz="http://www.mozilla.org/2006/browser/search/">
  <ShortName>blog.shimazu.org</ShortName>
  <Description>blog.shimazu.org</Description>
  <InputEncoding>utf-8</InputEncoding>
  <Url type="text/html" method="GET" template="http://blog.shimazu.org/index.php?s={searchTerms}" />
<Image width="16" height="16" type="image/x-icon">data:image/x-icon;base64,R0lGODlhEAAQALMAAP///+Xl5UBAQL+/v6ampllZWU1NTbOzs2ZmZvLy8oCAgMzMzJmZmebm5gAAAAAAACH5BAAAAAAALAAAAAAQABAAAARGMMhJqwQ4a323xx0mDB8QAmN5jgSzbGthFALBBZqAYIRw5wdMIgXCZYgoUjFnAwwEjcyqdijspEYRwSBQJH4lWDZctJglEQA7</Image>
</OpenSearchDescription>

今回は単に画像URLの指定でXMLを作成し、 http://blog.shimazu.org/utils/opensearch.xml に置いた。

linkタグの追加

headタグの中に以下linkタグを追加する。

<link rel="search" type="application/opensearchdescription+xml" title="blog.shimazu.org" href="http://blog.shimazu.org/utils/opensearch.xml">

すると、以下のような登録メニューを出せるようになる。

opensearch.png

aタグの追加

「Meta」サイトバーに「Add to Search Bar」リンクを追加するため、以下スクリプトを追加した。

function installOpenSearch(engineURL) {
    if (!engineURL) return true;
    window.external.AddSearchProvider(engineURL);
}

(function(){
    var E = YAHOO.util.Event;
    var D = YAHOO.util.Dom;
    E.addListener(this, 'load', function(){
        if (typeof window.external == "object" && typeof window.external.AddSearchProvider == "function") {
            var ul = D.getNextSibling('sidebarMeta');
            if(ul) ul.innerHTML += '<li><a href="javascript:void(0)" onclick="return installOpenSearch(\'http://blog.shimazu.org/utils/opensearch.xml\');">Add to Search Bar</a></li>';
        }
    });
})();

上記に記載の

typeof window.external == "object" && typeof window.external.AddSearchProvider == "function"

という条件式は、「OpenSearch」対応ブラウザか否かを判別するが、Mozilla Japan – アドオン – Firefox – 検索エンジン に記載のスクリプトを参考にさせていただいた。

Debian GNU/Linux (Etch) でのシリアルコンソール接続

Sunday, January 6th, 2008

おそらくサーバ運用における基本のキなんだろうけど、シリアルコンソール接続をはじめて設定してみて、思いのほかてこずったので、メモしておく(DebianマシンにWindows PCからアクセスする想定)。

/etc/inittab の以下を修正。

■修正前
#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
■修正後
T0:23:respawn:/sbin/getty -L ttyS0 115200 vt100
#コメントアウトを削除の上、通信速度を変更。

反映のため、以下コマンドを実行。

# init q

/etc/securetty の以下を修正。

■修正前
#ttyS0
■修正後
ttyS0
#コメントアウトを削除

/boot/grub/menu.lst の以下を修正。

■追加
serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
terminal --timeout=10 serial console

■kernel部分に「console=ttyS0,115200n8」を追加
title       Debian GNU/Linux, kernel 2.6.18-5-686
root        (hd0,0)
kernel      /boot/vmlinuz-2.6.18-5-686 root=/dev/hda1 ro console=tty0 console=ttyS0,115200n8
initrd      /boot/initrd.img-2.6.18-5-686
savedefault
title       Debian GNU/Linux, kernel 2.6.18-5-686 (single-user mode)
root        (hd0,0)
kernel      /boot/vmlinuz-2.6.18-5-686 root=/dev/hda1 ro single console=tty0 console=ttyS0,115200n8
initrd      /boot/initrd.img-2.6.18-5-686
savedefault

シリアルコンソール接続の範疇ではないが、今回、常用している putty ではなく UTF-8 TeraTerm Pro with TTSSH2 を使用した。カーソルが点滅する設定を解除する方法を念のためメモ。

■修正前
NonblinkingCursor=off
■修正後
NonblinkingCursor=on

また、シリアルコンソール上で起動ログを見ていたところ、ipv6 モジュールが起動しようとして、エラーになっていたので(Etchではデフォルトで機能するらしい)、以下手順で無効化しておく。

/etc/modprobe.d/aliases の以下を修正。

■修正前
alias net-pf-10 ipv6
■修正後
alias net-pf-10 off

以下に参考にさせていただいたリソースを列挙しておく。