Archive for November 2009

香港・深圳・澳門の旅4日間

written by shn, on Nov 26, 2009 3:48:00 AM.

ホーテンス・S・エンドウ氏にお連れ願い、電脳空間カウボーイズと共に香港・深圳・澳門に食い倒れ、変携帯探しの旅に行って参りました。

写真はこちら

各人の旅行記は以下のあたり

遠藤諭の東京カレー日記:

シン石丸の電脳芸事ニッキ:

Keep Crazy;shi3zの日記:

ガイドをしてくださった山根さんのサイト "山根康宏オフィシャルサイト - 香港携帯情報局" 山根さんありがとうございました! 至高の変ケータイを手に入れた山根さんの嬉しそうな顔が忘れられません。

香港の携帯文化、深圳の圧倒的なエネルギーに関しては皆さんがお書きになっているのでそれ以外の話でも書こうと思います。

金とかの話

2009-11-21 12-22-22

とにかく軍資金が無いとはじまりません。日本で両替しちゃうと札束を持って行くことになり、ちょっとそれは僕にはデンジャラスなので他の方法を探してみました。また今回のは買い出し旅行なのでレートも重要です。

レートから言うと一般的に、日本で両替 > 現地空港で両替 >> 現地市中で両替≒クレジットカードのキャッシング、といわれています。 今回の旅の場合、1HKDあたり市場のレートが11.4に対し、成田空港 13.9 JPY、現地空港 12.5 JPY 街中 11.53 JPYでした。なので成田空港のボッタクリ具合がよくわかると思います。

キャッシングの場合は他と違い、「決済時点での市場のレート」+「引き落としまでの金利」になります。今回の場合、ずっと円高が進行していたので、11.636 - 11.251で決裁されていました。キャッシングの場合はドルコスト平均法的に、日々の為替変動に対してトータルで損しない。という事も言えると思います。金利に関しては引き落としまでが一カ月未満な事を考えると両替手数料と大した差は出ません。

以上の事を考えると、現金を持ち歩かなくて良いという利点もありキャッシングが一番良いという事になります。ATMはそこらじゅう(例えば駅とか)にある上だいたい24時間営業なので、夜中でも現金が手に入る利点があります。

2009-11-21 12-03-49

ただ、今回の場合は両替・インド人・安宿で有名な重慶大厦に行きたかったので、現地で2万円を両替しました。重慶大厦の1,2Fにはインド人経営の両替商がたくさん詰まっており、店によって微妙にレートが違います。入口近くのお店が一番レートが高く、2Fをちょっと行ったところにあるお店が一番良かったです(上の写真のお店)

クレジットカードメインの旅行にする場合、

  • 限度額をあげておく。

現地からでも電話であげられます

  • キャッシング枠があるか確認しておく。

今回はメインのカードに枠を設定してなくて焦りました。日本では借金は禁忌されるので枠を設定していない人も多いと思います。

  • 決済口座の違う、MasterとVISAの2枚を持っておく。

海外ではクレジットカードを、ホテルのチェックイン、自転車のレンタルなどにおいてデポジットに使われる事があります。デポジットとは例えばレンタルするときにあらかじめ引き落としておいて、返却されたときにそのトランザクションをキャンセルすることで、客がバックれても大丈夫なようにすることです。 というわけで善良に生きてるなら特に問題ないのですが、昔、アメリカ旅行をしたときにロードバイクを借りたら1000ドル程デポジットされ、限度額を突破しそのあと面倒な事になったことがあります…

今回の旅では、深圳に行ったのですが、中国ではクレジットカードはあまり使えないようです。次に行く時は銀嶺カードを用意すべきかもしれんと思いました。

あと先達広場ではクレカだと5%ぐらいの手数料を要求されました。

言語とかの話

2009-11-21 10-27-19

香港は広東語、深圳は普通語(北京語)らしいのですが、どっちも等しく何言ってるかわからない。数字ぐらいしかわかりません(麻雀のおかげだ!) 広東語の方が発音が難しいそうです。

英語(根性英語)は香港では通じました。深圳・澳門はさっぱり。 深圳はカウボーイズが携帯を買う事に決めたから「ok! ok!」と言ってるのに、okが通じず延々と営業されて困った、なんて話もありました。

香港でちょっと困ったのは、「Cityview Hotel」という所に泊ったのですが、TAXIの運ちゃんにはそれが通じませんでした。「YMCA」という通名の方を言わないとだめなようです。他のホテルも中国語名の方しかしらない事があると思うので、タクる場合は調べておく必要があるかも。

ガジェットとか

香港の地下鉄(MTR)では、PSPをやっている人をよく見かけました。ちら見したら日本語のゲームをやっていたので驚き。NDSは見ませんでした。

携帯電話だと、Nokiaの細長い端末を良く見かけました。スマートフォンだとiPhone, BlackBerryあたり。Androidは見かけず。香港の地下鉄は電波が入るので驚き。

2009-11-23 14-53-23

MTRの駅にはデジタルサイネージがありました。こういうの増えて行くんでしょうね。もっと驚いたのは深圳で、広場に 5m * 30m ぐらいの巨大なデジタルサイネージが。この国はなんでもスケールがでかい。

深圳のPCパーツショップは、インクジェットプリンタ用の詰め替えインクがボトルで売ってたりして面白かったのですが、PCパーツ自体はあまり面白いのはありませんでした。日本で売ってる物がちょっと安いぐらい。MBは半額ぐらいだったかも。ハイエンドのVGAなんかも見かけましせんでした。やたらフォトフレーム売ってましたね。SANYOのものもあったけど本物なのかしら

澳門

2009-11-23 22-14-32

カウボーイズたちは前回行ったそうなので僕一人だけいきました。感想は「場末のラスベガス」。マカオグランプリの後片付けが終わっておらず、道路がレース場だったのがちょっとおもしろかったですね。 カジノは金をシュレッダーにかけているような感じでした。

CSSツールをうpした。 - スプライト作成、ネスト、変数

written by shn, on Nov 14, 2009 4:35:00 PM.

Python Hack-a-thonに来たので、昔作ったツールのメンテをしたりしてました。 んで、githubにうpした。

githubのプロジェクトはこちら: github cssc.git

  • YAMLで段組を定義して、CSSスプライトを生成する make_sprite.py
  • IE6のためにPNGをなるたけ綺麗にGIFにする to_gif.py
  • CSSの記述に、ネストや、変数などを使えるようにするコンバータ cssc.py

で構成されてます。

make_sprite.py

YAMLの定義ファイルからCSSスプライトを生成します。 CSSスプライトっていうのは、GoogleのCSSスプライトのような奴で、複数の画像を一枚にまとめて、リクエスト回数、ファイルサイズを節約します。

CSSスプライトを使用すると、タグの代わりに<div>などの要素にbackgroundを指定することのなります。 CSSスプライトの中で画像の座標を調べるのは面倒なので、そこらへんの生成はcssc.pyを通して自動化しています。

使い方

make_sprite.py -o sprite.png -c sprite.json -b ./images/ sprite.yaml
  • -o sprite.png 出力CSSスプライト名
  • -c sprite.json 座標定義ファイル。あとでcssc.pyで使います。
  • -b ./images/ 画像のベースディレクトリ
  • sprite.yaml 画像の段組を記載したyaml

yamlの記法

段組はyamlで記述します。

冗長に書くと、以下のような感じです。

direction: vertical
images:
  - direction: horizontal
    images:
      - left-arrow.png
      - google.png
      - right-arrow.png
  - direction: horizontal
    images:
      - google-large.png
      - direction: vertical
        images:
          - down.png
          - up.png
          - close.png

基本的に directionとimagesのマップのネストで段組を表現します。directionは horizontal もしくは vertical 、imagesは画像ファイル名もしくは、マップのリストになります。

directionを省略して、直接子イメージのリストを書くことも出来ます。その場合の方向は、親の方向と逆になります。 この省略記法を利用すると、上のyamlは以下のようになります。

direction: vertical
images:
    - [left-arrow.png, google.png, right-arrow.png]
    - [google-large.png, [down.png, up.png, close.png]]

to_gif.py

pngをgifにします。

使い方は to_gif.py in.png out.gif 

cssc.py

CSS手書き派は日々、ネストができないことや、変数が使えないことに憤慨しています。

つまりこういう書き方がしたい!

{% set header_height = '24px' %}
{% set main_color = '#001122' %}

#site-header {
    height: {{ header_height }};

    h1#logo {
        font-size: 24px;
        color: {{ main_color }};
    }

    a {
        color: #aabbcc;

        _:hover {
            border: 1px solid #ffeedd;
        }
    }
}

OK! それなら、そうすればよいわ

./cssc.py -o out.css in.cssc

in.csscにみょうちきりんなcssもどきを書くと、in.cssにちゃんとしたものをはいてくれます。

上のmake_sprite.pyで、座標ファイルを出力した場合は以下のような感じで使います。

./cssc.py --coords main,http://static.com/main.png -o out.css in.css

--coordsオプションに
スプライト名:スプライトのURLを指定します。 座標はスプライト名.jsonから読み込みます。

csscファイルの方は、以下のように。冗長

h1#logo {
    {{ sprite_background('main', 'logo.png') }}
}

sprite_background関数の第1引数にスプライト名(コマンドラインで指定する奴)、第2引数に元画像ファイル名を指定します。

cssc詳細

{% set width = '100px' %} /* 変数などはJinja2そのまんまなので[Jinja2のドキュメント](http://jinja.pocoo.org/2/documentation/)を見るのが良いと思います。 */
// C++スタイルのコメントも使えます
{# jinja2スタイルも使えるぜ... #} 

div {
    /* 普通にcssのスタイル定義を書きます */
    border: 1px solid black;
    margin: 4px 8px;

    width: {{ width }}; // これはjinja2

    span {
        /* ネストすると "div span" になります。 */
        font-weight: bold;
    }

    a {
        text-decoration: none;

        _:hover {
            // 親要素とスペース無しで続け対場合は '_' を使います。
            // この場合、このブロックは "div a:hover" になります。
            text-decoration: underline;
        }
    }
}

あとがき

  • いまどきCSSを手書きしている奴はいるのだろうか
  • でもYUI compressorとか使うならMakeで処理できるようにしておきたいよね。
  • みんなここらへんの地味な所どうしてんだろう。
  • PyParsingはじめてトライしてみたんだけど遅い… たぶん文法定義が悪い

WiiDiet 0.1

written by shn, on Nov 11, 2009 9:55:00 PM.

WiiFitのボードに乗ったら自動的に体重ログってTwitterに書いてくれるツールが見当たらないので作りました。 Mac用です。 WiiRemoteFrameworkを使わせていただきました。

WiiDiet 0.1 Screenshot

Download WiiDiet 0.1

使い方

  1. "Bluetooth設定アシスタント"でバランスボードを登録する。 初めてWiiリモコンを仕様する場合を参考にするとよいかも

  2. "WiiDiet"を起動させる。

  3. "Discoveringうんたら"と出てたら、バランスボードのSyncボタンを押す

  4. "Balanceboard found"とか出たら、上に乗る。

  5. Send tweetボタンでTwitterに発言

設定から"Automatically"的なのをチェックしておくと、体重が安定した時点で自動的に送信します。

アレげな所

  • 体重がちょっとアバウト(+5kgぐらい多めにでたり)
  • なんで毎回Sync押さないといけないの? だれか良い方法ありましたら教えてください。