2013年1月28日月曜日

ドイツでの電源事情

危うく忘れるところでした。スーツケースを閉じた後に閉めるベルトみたいなやつを大きなほうから今回持っていく小さなほうに移そうとしたときに中からゴロンと出てきた、プラグ変換器。こんなやつでした。これがないとパソコンはじめすべての電気機器に充電できなくなってしまいます!

こちらあたりを参考にするとドイツはCかSEのようですね。だったら今持っているやつで対応できるようです。一安心。

次は持っていくものの電圧対応です。上の変換器はあくまでも形状を合わせるためのものなので、100V専用のものはつなげません。ってつなげるかも知れませんがどうなるかわかりませんw ほとんどのものは壊れるでしょうね・・・。なのでアダプター等の裏面をチェックです。

まずパソコン。これはたぶん世界共通だろうから大丈夫でしょうが一応。Input : 100-240V とありますね。問題なし。

次はコンセントからUSBの電源を取るやつ。おお、これも AC 100V-240V とあります。すばらしい。ま、これは最悪パソコンを起動しとけばって話もあるのでだめだったら持っていかないだけですが。

これで大丈夫かな・・・と思ったら忘れてました。電気シェーバー。これは無理かな・・・と思ったらこれも 100V-240V でした。おお、Panasonic さんありがとう!w

とはいえ変換プラグは1つしかないので同時に1つしか使えないんですけどね。あ、分岐するやつも持っていけばいいのか、と思って調べたら家にあるやつはみんな 125V 程度までですね。まあ寝るときにUSBの充電して、起きたときにシェーバーをつないで使えばいいかな。

というわけで変換プラグを持っていってきます。

2013年1月27日日曜日

出張へ行くことになりました

急な話ですが、近いうちに1週間ほどドイツのハノーバーというところまで行くことになりまして。飛行機は羽田から12時間ほどでフランクフルトに着くのですが、そこから新幹線みたいな ICE (Intercity Express)という電車に乗って2時間半ほどかけていくことになります。果たしてうまく到着できるのか?w しかも着いてすぐホテルに寄る間もなくオシゴトです・・・ orz

で、この ICE ですが、DB BAHN のサイトから予約できます。空いてるか混んでるかもわからないので予約を・・・と思ったんですが、考えてみたら飛行機が定刻につくかもわからないので着いてから買ったほうがいいですね。テレコムスクエアさんでWiFiルーターを借りていくことにしたので、外出先でもネットが使える予定です。なのでわからなくなったときは iPhone で解決を試みますw

時刻表を見るときとかに必要な駅名。
フランクフルト空港駅:Frankfurt(M) Flughafen Fernbf
フランクフルト中央駅:Frankfurt(Main)Hbf
ハノーバー中央駅:Hannover Hbf

ちなみに、ハノー「バ」ーと書いてますが、おそらく拙いドイツ語の知識を活用すると現地での発音はハノー「ファ」ーなはずですね。Vettel が「ベッテル」ではなく「フェッテル」のほうが近いというのと同じです。帰ってきたらドイツ語にかぶれて「フェッテル」と言い続けるかも知れませんw

2013年1月17日木曜日

xrdp でターミナルの補完時に待たされる件

ちょっと前に書きましたが、今自宅サーバーに接続するには xrdp 経由のリモートデスクトップで接続しています。いちいち Windows マシンに VNC クライアントを入れなくていいので重宝しているのですが、今のところ唯一かつ致命的な難点がありまして。それは
”ターミナルを開いて補完すると遅いことがある”
というものでした。とにかく接続したときに例えば
$ ls / <TAB><TAB>
などと打つと、普通はさっと / 直下のディレクトリやファイルが列挙されると思いますが、このときなぜか1秒程度待たされるのです。
$ ls /usr/loc<TAB>
のように候補が1つしかないものはさっと /usr/local とかになってくれるんですが、
$ ls /usr/li<TAB>
のように /usr/lib /usr/lib64 /usr/libexec 等複数の候補があったり、まったく候補がないような場合も同様に1秒程度待たされた後に /usr/lib まで補完されます。

どうにもストレスするので、使うの止めようかとも思ったんですが、VNCよりクリックしたときのクリック感(?)とかがコンソールからログインしてるときに近いとか、セッションがないときにも勝手にあげてくれるとかいいところもあるので原因を探っていました。そして今日ようやく見つけました!ググってもあまり出てこないところを見るとあまりみなさん気にしてないのか、こんな環境あまりないのか、はたまた私の何かの設定のせいで会社のサーバーも自宅のサーバーも同じような状態に陥ってるのかわかりませんが、とにかく解決方法です。

解決方法は
gnome-terminal の Preferences で "Terminal bell" をオフにする
でした。なるほど、音まわりでしたか。リモートデスクトップってリモートのマシンの音もローカルに持ってこれましたよね。そのあたりに何かありそうです。

なぜこれにたどり着けたかというと、この補完が遅いという事象、今のところは gnome-terminal を使ったときにしか観測されてないんですね。なので別のターミナルを入れてみようかということで、terminator というものを入れてみました。これはこれでなかなかよさげなツールなんですが、これを使った場合、補完は遅くなかったのです。おお、解決したか!と思ったんですが、補完した瞬間(というか上の例で補完が遅い瞬間)、terminator に何かアイコンのようなものが表示されます。
 なんでしょうね、これ。と思って急いでクリックしたりなんかしてたんですがわからない。そこでデバッグオプションをつけて実行してみたところ、こんなログがでました。
ConfigBase::get_item: ConfigBase::get_item: urgent_bell found in profile default: False
ConfigBase::get_item: ConfigBase::get_item: icon_bell found in profile default: True

ベル・・・。もしや!?と思って先ほどの設定をしたところ見事に解決した、というわけです。めでたしめでたし。

2013年1月14日月曜日

GAE/J でセッションの clean up

#f1yosou では一応セッションを使ってログインできるようになっています。個人の成績等が少し見れるようになっているのですがこちらの機能はほぼ使われてなくて、次のレースのお題を投票する際に使ってるのがほとんどでした。しかし GAE/J ではそのセッションのデータは Datastore に保存されているようなのですが、それがずっと残り続けてそれなりにサイズを圧迫すると。 #f1yosou では 14,000 ものセッションが残っておりました・・・。

なのでそれをクリーンしましょう。そのためのサーブレットが既に組み込まれているのでそれを使います。web.xml に以下の定義を追加します。

 <!-- session cleanup servlet -->
 <servlet>
     <servlet-name>_ah_sessioncleanup</servlet-name>
     <servlet-class>com.google.apphosting.utils.servlet.SessionCleanupServlet</servlet-class>
 </servlet>
 <servlet-mapping>
     <servlet-name>_ah_sessioncleanup</servlet-name>
     <url-pattern>/_ah/sessioncleanup</url-pattern>
 </servlet-mapping>
 <security-constraint>
     <web-resource-collection>
         <web-resource-name>session-cleanup</web-resource-name>
         <url-pattern>/_ah/sessioncleanup</url-pattern>
     </web-resource-collection>
     <auth-constraint>
         <role-name>admin</role-name>
     </auth-constraint>
 </security-constraint>

これを cron.xml 等で定期的に叩くことによってセッションのデータを少なく保てるようです。既に多数残っている今回のケースではその URL を何度も直接叩いて減らしました。その際 Datastore Writer 等が増えるので Quota に余裕がある時にどうぞ。

2013年1月11日金曜日

Linux にリモートデスクトップで接続

表題のとおりです。なかなかいいよという噂を聞いたので試してみました。

まずは EPEL を enable しておきます。
# yum search xrdp
(snip)
Installed:
  xrdp.x86_64 0:0.5.0-0.13.el6                                                                                                 

Complete!
インストールは簡単ですね。
# service xrdp start
いきなり開始します。これだけ。そして・・・


このように Windows のリモートデスクトップ接続で接続できます。ただこのままだと日本語キーボードでは問題があるのでこのファイルを /etc/xrdp に置く必要があります。(以降のバージョンでは直っている可能性があります。その場合は xrdp-genkeymap を実行するとそのファイルが生成できるはずです。)

ちなみに接続する解像度がキーになっているのか、同一の解像度で接続すると同じセッションが取得できます。逆に言うと別の解像度で接続すると新たなセッションが割り当てられます。ログアウトすると当然そのセッションはなくなります。

なかなか感動もんですがどうなってるか気になりますよね。これを見ればある程度わかるかも?
$ ps -ef | grep vnc
user   18453 18451  0 23:17 pts/0    00:00:01 Xvnc :10 -geometry 1680x1050 -depth 16 -rfbauth /home/user/.vnc/sesman_user_passwd -bs -ac -nolisten tcp -localhost -dpi 96
つまり通信はリモートデスクトップのプロトコルに準じてるわけですが、その先は VNC サーバーを自動で立ち上げてくれているみたいです。なので上に書いたように解像度を変えると別のセッションになったりしますが、最悪 VNC のディスプレイ番号を見つければ、そのマシン上からは vncviewer で接続できます。

まあ家だとつないでるマシンとサーバー間に距離がない、というかGBitの中なので VNC とどっちがいいとかあまりないですが、vncclient を入れてない Windows 機からもつなげるのはありがたいですね。ちなみに、/etc/xrdp/xrdp.ini をいじると、固定の VNC ディスプレイに接続することもできます。vino とかを使ってる場合はそれで :0 につなげることも確認しました。

なかなか便利ですよね。しばらく使ってみることにします。

2013年1月10日木曜日

ケースファンを交換

サーバー機に使っている筐体の背面の12cmファンがシャカシャカ音をたてていたので、交換してみました。そのファンは3ピンのコネクタなんですが、この前買ったマザボ(ASRock Z77 Pro4)はファン1が4ピン、つまりPWM対応のコネクタでした。4ピンのところに3ピンも刺さるのでとりあえず動作は問題ないんですが、せっかくならPWM対応のファンを買ってもう少し静かにしたいなと。

そこで買ってきました。このように4ピンのコネクタがついています。交換したら静かになりました!

しかしすぐにまたシャカシャカ音が気になりだしました。なんだ!不良品か!と思ったら、今までうるさかった背面のファンが静かになったことで、今度はフロントのファンもシャカシャカ音を立てていたことに気付いたと言うわけですw

後日フロントも換えます。こっちは 9cm なので一回り小さい感じですね。

2013年1月8日火曜日

#f1yosou : ツイッターウィジェットの更新

現在 #f1yosou のサイトにはツイッターのウィジェットが出ています。こんなやつ→ですね。

Twitter API V1.0 が動かなくなる3月にこのウィジェットも動かなくなるとか。まあ当たり前と言えば当たり前なんですが、V1.1 ではすべての API リクエストに認証(OAuth 等)が必要になったので、この任意の検索ができるウィジェットもできなくなって登録制になるという感じでしょうか。3月と言えばF1シーズン開始月になりますがそんなときにウィジェットが動いてなかったら泣けますw なので移行しましょう。

やり方はこちらに従うだけでよいはずです。それでは順に作業します。

まずは Twitter のアカウントのウィジェットの設定の画面に行きます。 そこで「新規作成」をクリックします。今回はハッシュタグによる検索なので、以下のようになりますね。いろいろ設定を変えると右のプレビューが変わります。
  これを保存すると、右下に javascript を含む HTML が生成されます。これをサイトに貼り付けます。気付かれた方もいるかと思いますが、上の設定にはドメインが必要です。1つ作っていろんなとこで使うってのはできないわけですね。それはいいんですが、開発するときにローカルで見れないと面倒だなぁと思っていたら、ちゃんと
By default we also support the "localhost" domain for testing on your local development environment.
とありました。なので安心して開発環境で試せます。実際張ってみると

完成!簡単ですね。(@ar147ti さん友情出演ありがとうございますw)

余談ですが、ドメイン指定は正確にホスト名を指定しなければいけないようで、サブドメインとかもだめです。なのでたとえば GAE で作業してる場合に別バージョンでデプロイして確認したいとかの時は <appname>.appspot.com だけでなく <version>.<appname>.appspot.com 等を一緒に指定する必要がありそうです。確認が終わったら消せばいいだけですしね。

サイトのほうにはもう少し整えてから反映します。