羽田空港から台北いってきた - ホテル編
- http://www.rivierataipei.com/jp/index.asp
- オフィシャルサイト
- 「博覧会の会場に一番近いプティックホテル」とかつっこみどころ満載…… (ラブホじゃぜんぜんないのでご安心を)
- リビエラホテル(欧華酒店) | 台湾ホテル予約-台北ナビ
台北ナビ経由でも予約できるんだけど,Hotels.com 経由で予約した。というのは,
この 10% OFF というのはかなり大きい。
Hotels.com だと予約したあと,リアクションがほとんどない (確認のメールが1通くるだけ) ので不安だけど,少しでも安くしたいならおすすめ。
あと,実際は Hotels.com で直接探したんじゃなくて,トリップアドバイザー経由で最安値を検索した。あそこはクチコミももちろんのことながら,各販売サイトの値段を横断的に検索できるので便利。エクスペディアとかもよくクーポンだしてるのでいちどトリップアドバイザーを経由したほうがいいと思う。
ホテルの感想だけど,高級ホテルというよりちょっと規模の大きいプチホテルといった趣。フロントも超こじんまりしてるので。従業員のホスピタリティは抜群。わりと日本語も通じる (英語のほうが意志の疎通がちゃんとできるけど)。
トリップアドバイザーの評判がとてもいいんだけど,たしかにお年を召した西欧人にはたまらんだろうなぁ。ただ各種内装はクラッシックな雰囲気で,先進的だったり清潔感にあふれているわけではないので,若者にはつまらないかも。都心からちょっと離れているので便もやや悪いし (とはいえタクシーだけで都心まで10分くらいでいける)。
空港からタクシーで15分くらいかな。帰る日に気づいたけど,このホテル,花博会場から非常に近いので,(花博開催期間なら) 松山空港からの無料バスでこれる気もする。
で,デラックススイートに宿泊。このときで1泊あたり14,000円くらい - クーポン割引 10% + 税,といった感じ。もちろん部屋あたりの値段。
天井が低いので高級感はないけど,やっぱり日本に比べてお得。あと,写真がないけど,トイレ+バスルームが一番高級な感じだった。
スイートだからか,部屋のいたるところにお花がいっぱいあった。10個くらいはあったような (上の写真にも2つ写ってるよね)。ひょっとすると花博期間だからかもしれない。
右下に写っているクッキー,期待せずにたべたらかなりおいしかった。
お菓子群のなかにあったパイナップルケーキ。台湾の名産らしいです。味は,まぁふーんという感じだった。
廊下はこんな感じで,真ん中は最上階まで吹き抜けになってる。この吹き抜けのまわりに部屋が配置されていることになる。
古めかしい雰囲気のホテルだけど,テレビのシステムがやや先進的だった。なぜか SANYO 製。
あと,宿泊客は無料でインターネットできる。無線 LAN も無料でできるんだけど,そのへんの情報は部屋にまったくないので,フロントにいうべし。いうとこんなパスワード等を書いた紙をもらえる。無線 LAN のアクセスポイントは館内にたくさんあるみたいで,全部「Riviera〜」という ESS ID になってる。
羽田空港から台北いってきた - 交通編
羽田空港
羽田は都心からそれなりに時間がかかる*1のでそんなに便利になったという気はしないけど,でも羽田から外国にいけるというのはなんだか不思議な感覚だった。たしかにもともと国際線ターミナルもおまけみたいにあったけどさ。
明るい雰囲気。成田ほど大きくなく,でも十分広い。その後の報道で見るほど混雑してなかったのは朝だったからか平日だったからか。
出国ゲートを抜けるとこんな感じ。搭乗口は10箇所かな。結構広い。でもゲートから搭乗口まではわりとすぐ。成田みたいにモノレール?みたいなのに乗る必要ないし,たぶん飛行機までバスでいくとかもないんじゃないかな。
免税店は,まるで街中のブランドショップ?ってくらい堂々としてる。つーか,ブランドショップ以外ももっと充実させてくれ。
ちなみに新国際ターミナルからだからか,離陸までのタクシングにすっごい時間がかかったです。20分ちかく移動していた気がする。
こちらは到着ロビー。やっぱり綺麗。
飛行機
利用したのはエバー航空。
前乗った飛行機はゲームが結構充実してたけど,今回のは「キッズワールド」というのに3個くらいあるだけで全部つまんなそうだったのでパス。
そのかわり映画は量的にはすごく充実してた。あくまで「量的に」はね。画質悪いし中国語字幕だしって感じで (音声は日本語のものもあるのでご安心を)。
エンターティメントシステムで飛行行程も見ることができる。結構これ好きなんで自分の好きなときに見られて嬉しい。
こんな感じの 3D View にもできるところが風変わり。誰得。視点は固定だと思う。
色々忙しかったからか往復の時間をかけてもインセプションを観終わることができなくて残念。
売り上げランキング: 40
行きの羽田空港では,ありがちなカウンターでの人力チェックインだったんだけど (ANA とのコードシェアだったからかな)*2,
帰りはこんなマッシーンでチェックインをすることに。航空会社の職員がかわりに操作してくれた*3のでちょっと残念。
松山空港
この松山空港,台北市街にあって本当に便利。東京でいえば上野に空港があるようなもの?
成田と羽田だと便利さは人それぞれってか,羽田も結構都心から遠いよねって感じだけど,台北の松山空港と桃園空港だと便利さは雲泥の差。羽田-松山便が開通してほんとよかった。
出発ロビーにも人形いた。増えてるし。
てか,到着ロビーの2体とあわせて全部で5人なんだねきっと ⇒ 2010taipeiexpo.tw
バックの飛行機の模型が気になる。
気になる。
どうせ飛行機の風景ビデオでも流れてるのかな,と思ったら,フライトシミュレーターがおいてあった*5。
ひまつぶしにやってみっか,と思ったら,左のスロットルは効くものの右の操縦桿が効かないので断念。マウスで操作できたんだけど,それじゃおもしろくないし。左右のモニタは切れてるし,いいかげんだなー。
MRT
MRT は建設が進められている路線もあってガイドブックの情報じゃ古かったりするので要注意。
新荘線ができててリビエラホテル利用者にとってはちょっとだけ便利になってた。
切符はこんなトークン。カジノのチップみたい。2泊3日とかだと悠遊カード買うより都度買いしたほうが面倒が少ないと思う。
けっこう多くの人が利用する MRT。この駅は下層がホーム階になってる。ホームドアが見える?
MRT は地下鉄とは限らなくって,路線によってはこういう高架もある。
自動改札にあるピクト。
これはなにか。自動改札のドアは結構低い位置についてる。2歳の娘でもひっかかるくらい低いんだけど,そういう小児の場合,大人の前に先行させてねっていう図案です。
信号機
歩行者用信号はたいていこのようなドット絵のものだった。こちらは赤信号 (これも結構かわいい)。
青信号だと,このように上部に残り時間が表示されて,下に歩行中の人がドット絵アニメーションで表現される。なかなかかわいい。というかゲーム的表現?。うまく撮影できなかったけど現物はもっとハッキリしてます。
羽田空港から台北いってきた - 準備編
建設予定地
split はデフォルトで後続する空フィールドを削除する
昔々はまったことあるけど,久々に Perl 使ったらはまったので記念*1に。
sub show { print join q{, }, @_; print "\n"; } # デフォルトでは後続する空フィールドは削除される show split(/:/, 'a:b:c:::'); ### => a, b, c # 第3引数を正数で指定すると,「最大で」そのフィールド数までしか分割しない show split(/:/, 'a:b:c:::', 2); ### => a, b:c::: # 「最大で」なので,存在するフィールド数以上を指定しても空で埋めたりはしない show split(/:/, 'a:b:c:::', 8); ### => a, b, c, , , # 負数を指定すると空フィールド含めて最大限分割してくれる show split(/:/, 'a:b:c:::', -1); ### => a, b, c, , ,
第3引数省略時 (や 0 の場合) の挙動は,たしかに昔はまった覚えがあるけど,
- 正数時の「最大で」という仕様 (なんとなく空フィールドでそこまで埋めてくれると思ってた)
- 負数時の最大限分割
とかそもそも昔から知らなかった気がする。
*1:というか二度とはまらないための戒め
Cacti に SNMP デバイスを追加したときのメモ
スマートスイッチ(NETGEAR GS724Tv3)を Cacti でモニタリングしたときの記録
SNMP 経由で監視するデバイス (ハブ) を追加する
- 「Create」メニューの「New Graphs」を選択する
- 右上にある「Create New Host」リンクをクリックする
- 適当に設定する
- ホストが作成されたら右上の「Create Graphs for this Host」リンクをクリックする
- 今後このホスト画面には,「Management」メニューの「Devices」を選択して,適切なデバイス名をクリックするといける
- うまく設定できていると「Data Query」欄に,各ポートごとのデータソースが大量に出ているはず
- 「Data Query」欄のヘッダ右端のチェックボックスをクリックするとすべてのデータソースを一度に選択できる
- もちろん,いらない項目はチェックボタンをはずすこともできる
- 一番下の「Select a graph type:」で適切なグラフタイプを選択して,「create」
- 普通,「In/Out Bytes (64-bit Counters)」でいいと思う
- もし Error 等も統計をとりたいなら同じ手順で graph type を適切に選択して create する
グラフビューのツリーにもいれとく。
- 「Management」メニューの「Graph Trees」を選択
- 「Default Tree」を選択
- 「Tree Items」ヘッダの右端の「Add」リンク*1をクリック
- 適宜設定して「Add」
- 「Parent Items」は「root」のままでいい (凝ったツリーにしないのなら)
- 「Tree Item Type」を「Host」にする (ここがポイント; まぁちまちま「Graph」を追加してもいいんだけど)
- 「Graph Grouping Style」はデフォルトの「Graph Template」のままが結局わかりやすいと思う
- もちろん今回のようにハブの場合,「Data Query Index」でもポート順に並ぶのでいいけど
グラフのタイトルをいっぺんに変更する
んで,以上のようにするとハブを Cacti からモニタリングできるんだけど,各グラフのタイトルが
HUBNAME - Traffic - 0/1
ってなる。
NETGEAR GS724T (に限らないと思うけど) だと,設定画面で各ポートにぶら下がってる機器とかの名前を指定することができる。なので,これを反映して,
HUBNAME - Traffic - 0/1 (PORTNAME)
みたいに表示できるようにしたい。
いっこいっこ手作業で変更していくこともできるんだけど,この手のハブはポート数が膨大にあるので手作業でやってくのは骨が折れる。なのでいっぺんに設定する方法を調べた。
- まずはテンプレートの修正
- 「Collection Methods」メニューの「Data Queries」を選択
- 「SNMP - Interface Statistics」を選択
- 下部の「Associated Graph Templates」欄から適切なテンプレートを選択する
- 上記の例の場合だと「In/Out Bytes (64-bit Counters)」
- 「Suggested Values」にテンプレート候補を追加する
- ややこしい概念なのでちょっと解説
- データソースの名前やグラフのタイトルはここのテンプレートの候補をもとに適切なものが選ばれる
- たとえば「Data Template」の「name」の上から2番目に「|host_description| - Traffic - |+query_ifName|」というのがあって,実際にはこれが選ばれてる
- これは,1番目の「|host_description| - Traffic - |query_ifIP| - |query_ifName|」というのが不適切だった (query_ifIP が取得できなかった) ため
- なので,ここの候補群に「|host_description| - Traffic - |query_ifName| (|query_ifAlias|)」というのを追加すれば,query_ifAlias が存在する場合はこのテンプレートを使い,そうでない場合は別のテンプレートを使う,といったようになるわけ
- ということで具体的には,まず「Data Template - Interface - Traffic」のほうで,下部の左側のフィールドに「|host_description| - Traffic - |query_ifName| (|query_ifAlias|)」を入力する
- つぎに「Field Name:」欄に「name」と入力して,「add」する*2
- 追加されたデータを右側の上下矢印アイコンをクリックして「|host_description| - Traffic - |query_ifName|」より上位にもってくる
- つぎに「Graph Template - Interface - Traffic (bytes/sec)」のほうでも同じように追加して上位にもってくる
- こちらは「Field Name:」を「title」にすることに注意
- てか,グラフのタイトルを修正するだけならこちらの Graph Template だけでいいんですよね; 上の Data Template のほうは修正する必要はない
- 最後に「save」することを忘れずに
- これだけだと既存のデータソース,グラフの名前・タイトルが変わらないので既存のものにも適用する
- まずデータソースから。「Management」メニューの「Data Sources」を選択
- 修正したいデータソースを右端のチェックボックスで選択
- 右下の「Choose an action:」で「Reapply Suggested Names」を選択し,「go」ボタンを押す
- 確認画面がでるので「yes」を押す
- 次にグラフのタイトル。これは「Management」メニューの「Graph Management」を選択して同じようにする
Cacti • View topic - Display Interface Alias (IF-MIB) as well as Name (IF-MIB) を参考にした。
データ取得間隔を1分毎に変更する
デフォルトで5分間隔のグラフになっててさみしいので。これが正式なやり方かわかんないけど。
- 「Configuration」メニューの「Settings」を選択,「Poller」タブを選択
- 「Poller Interval」と「Cron Interval」をおのおの「Every Minute」に変更
- どうしてべつべつにあるかがよくわかんないです
- 「Templates」メニューの「Data Templates」を選択
- SNMP の場合「Interface - Traffic」を選択
- 「Step」項が「300」になっているので「60」に変更
- 他必要なテンプレートも適宜書き直す
- RRD ファイルを削除する
- 「Utilities」メニューの「System Utilities」を選択
- 「Rebuild Poller Cache」をクリック
version 0.8.7g の場合,http://www.cacti.net/download_patches.php にある One Minute Polling Interval Fix を当てるべきかもしんない。
わたしは EPEL repo のをそのままいれたので 0.8.7e という古いバージョンなのでそもそもパッチが当たらない (いいのか?)
いっそ momo-i さんの日本語化 *3されたのにするのがいいのかも。最新パッチまであたってるみたいだし。
あとはデータの保存期間をhttp://www.sabakan.info/techinfo/cacti-0.8.7-4.htmlにしたがって調整した。
郵便番号データは自分で加工しない
結論を先に。
- 細かい要件がない場合,zipcloud さんの提供している加工済データを使う (日本郵便さんの提供している原本ではなく)
- ライセンスが不明だけど Web API の利用規約とかみると商用利用等も OK と思われる
- わりきって Web API を使う (よそにまかせる) というのも手かも
- いろいろあるし。前述の zipcloud さん自身も検索 API を提供している。
以下各論。
- いわゆる ken_all.csv を (必要フィールドだけ) そのままデータベースにつっこむなんてのは (わかってやってる場合はともかく) やってはいけない
- 複数行に分割されているレコードがあるため,マージする必要がある
- 明文化されていない仕様などがありマージやクリーニングを自力でおこなうのは大変 (バッドノウハウのかたまり)
- さまざまなバッドノウハウを適用済の「きれいなデータ*1」を zipcloud さんが提供している
- しかも Web API やメールによる更新通知サービスも提供なさっている
- ただし,「郵便番号から住所を検索するサービスにまともなものがない - ぐるぐる~」の要望に完全に沿ったデータというわけではない
- 地番や丁目を括弧内で「〜」等表記してある場合などはその部分を削除してある
- 同一郵便番号で複数の町域名が対応する場合,複数レコードに分解してある (郵便番号ユニークではない)
- 事業所の個別郵便番号*2についてはマージされていない
- 仕様があわない場合は自力でがんばる必要がある
- 地名→郵便番号変換したいときとか,GIS 情報をからめたいときとかも
- 自力でがんばるとき参考になるサイト
- ろっきーさんの関連記事 (郵便番号検索 – my-hobby カテゴリ)
- あと再掲だけど 郵便番号から住所を検索するサービスにまともなものがない - ぐるぐる~
Compiz を Python からあやつる
タイトルは大袈裟。
ここ半年ほど Compiz のワークスペース切替器にキューブではなくデスクトップの壁(wall)を使っています。こっちのほうがキビキビ動くし。
んでこの wall plugin ですが,システム起動直後だと,ワークスペース切替時に壁紙がスクロールしないんです。まぁそんな仕様だと思えばいいんですけど,CompizConfig 設定マネージャを立ち上げて,「デスクトップの壁」プラグインを一度無効化して有効にすると,壁紙もスクロールするようになります。じゃあそういう仕様じゃないじゃん。
いままでいちいち起動後に CompizConfig 設定マネージャを立ち上げて修正していたんですけど,めんどくさい。CompizConfig 設定マネージャ*1が Python で書かれているっぽいので Python から Compiz の挙動を操作できるんじゃね,と思ってやってみました。
import time import compizconfig ccs = compizconfig context = ccs.Context() wall = ccs.Plugin(context, 'wall') wall.Enabled = False time.sleep(1) wall.Enabled = True
いちいち compizconfig.Context()
って書いてもいいんだけど長ったらしいので ccs = compizconfig
ってしてます((まぁ本気で短く書こうと思ったら compizconfig
のままやったほうが今回は短いと思う。Context
オブジェクトもわざわざ変数に代入する必要ないし。))。って実は CompizConfig 設定マネージャのソースの真似。Python ってこういう書き方もできるのねと勉強になりました。
time.sleep()
なしでもうまく動くかなと思ったけど,ムリだったので入れてる。1秒も待たされるのはアレだけど,まぁ実害ないというか設定マネージャ立ち上げるより百倍はやいので。
ソース見ると相当たいしたことないでしょ。でも API ドキュメントとかが全然なくて結構苦労しました。
Compiz の Git レポジトリは Compiz Git repository browser とかで見られるんだけど,libcompizconfig のソースから[http://cgit.compiz.org/compiz/compizconfig/libcompizconfig/tree/include/ccs.h:title=include/ccs.h]
とか Python バインディングのソースから[http://cgit.compiz.org/compiz/compizconfig/compizconfig-python/tree/src/compizconfig.pyx:title=compizconfig.pyx]
とか見ながら書いた。
*1:よくよく考えたら変な名前ですよね。まぁ英語でももともと CompizConfig Setting Manager ですけど。