トップ 最新 追記

2009-04-02 [長年日記]

_ また AirMac Express 壊れた & MacBook の電源アダプタが変

2台あった4年前の同時期*1に買った AirMac Express の2台目。ものの見事に同じ時期に壊れた。Apple タイマーか。

同じコンセントに刺していたのでコンセントの問題も疑えなくもないけど、雷とかのタイミングではないし、前回壊れて刺し直してから2週間は普通に動いてたわけで、製品の問題なんだろうなぁ。

無線APとしてはWDSが使えて小さく、デバイスとしては AirTunes が使えるのが魅力なんで、結構気に入ってるんだけど < AirMac Express

Apple って電源周り弱いよねぇということでもう一つは MacBook の電源アダプタ。昨日の夜いきなり

通電するけど充電できない

という謎の現象に出くわした。ちなみにバッテリは認識しているし、電気屋持って行って別なアダプタを刺したら*2正常に動作するので本体側の問題ではない。しかも

たまに充電できたときは抜いても充電ランプが消えない

というちょっと怖い症状。まぁこっちは保証期間内なので金銭的には痛手はないんだけど、なんだかねぇ。

Tags: Apple 日々

*1 と思ったけど、いま日記を読み返したら4ヶ月ほどずれがあるな

*2 もちろんお店の人にお願いしたよ


2009-04-04 [長年日記]

_ AirMac Express (802.11n)で WPA で WDS

超ハマった。

以前 2台の AirMac Express で WDS のときに、802.11n 対応してない AirMac Express で WEP の WDS は組んでいたんだけど、このときの AirMac が立て続けに壊れてしまったので、立て続けに 802.11n のものに入れ替えた、というか入れ替わってしまった。

1台が壊れただけのときは以前と同じ要領で WDS を組むことができていたんだけど、2台とも 802.11n になった途端、WDS だけ動かなくなってしまった。ログを見ると

WPA handshake failed

出まくってて、やっぱ WPA では無理なのか?と思っていたのだが、ほとんど丸一日掛かりで以前のノウハウが邪魔していたことが発覚。

WEP のときは各 AirMac で別々のワイヤレスネットワークを作成しなければいけなかったが、WPA になったら同一ネットワークにしておかないと WDS を組めないようだ。

これが仕様なのかどうか分からない、というか WDS はちゃんとした仕様がまだ固まっていないらしく*1、802.11s 待ちという状態らしい。とにかく AirMac 同士ではこんなことが起きました、としか言えないわけだ。

頼む。ちゃんと書いといてくれ。こんなもん分かるか!

Tags: Apple 日々

*1 さらに原則的に WDS で WPA は不可能らしい。全部 en.wikipedia で読みかじり。


2009-04-05 [長年日記]

_ RestClient は 0.9 でヘッダが取れるようになってた

RestClient を散々持ち上げておきながら、最近ページの内容がほしい場合には open-uri をよく使っていました*1。でも、いろんな方が*2思っていながらなんとなく放置気味になっているキャッシュがやはり欲しいなぁと思ったときには open-uri だと困ります。ヘッダがほとんど取れないので。([2009-04-24追記] 嘘でした。URI().read.meta で取れました。)でもそのためだけに Mechanize はちょっとイヤなのです。そんなに機能要らないし。

どうしようと思っていたんですが、灯台下暗し。RestClient が 0.9 からヘッダ取れるようになってました。

rest-client 0.8.2 の場合

irb(main):001:0> gem 'rest-client', '< 0.9'
=> true
irb(main):002:0> require 'rest_client'
=> true
irb(main):003:0> r = RestClient.get( 'http://aligach.net/diary/' )
=> ...
irb(main):004:0> r.methods.grep( /headers/ )
=> []

rest-client 0.9.2 の場合、

irb(main):001:0> gem 'rest-client', '>= 0.9'
=> true
irb(main):002:0> require 'restclient'
=> true
irb(main):003:0> r = RestClient.get( 'http://aligach.net/diary/' )
=> ...
irb(main):004:0> r.methods.grep( /headers/ )
=> ["headers"]
irb(main):005:0> r.headers
=> {:cache_control=>"no-cache", :vary=>"User-Agent",
    :last_modified=>"Sun, 05 Apr 2009 00:33:07 GMT",
    :server=>"Apache/1.3.39 (Unix)", :x_pad=>"avoid browser bug",
    :content_length=>"30246", :content_type=>"text/html; charset=EUC-JP",
    :pragma=>"no-cache", :date=>"Mon, 06 Apr 2009 00:37:43 GMT"}

適当に整形してしまいましたが、要は headers というメソッドでヘッダの内容が Hash として取れます。うむ。便利になった。ちなみにリリースノートは

RubyForge: Rest Client: リリースノート

あ。require 'restclient' でイケるようになってる。まぁどっちみち gem の名前と合ってないんだけど;;

ところで今まであまり気にしていなかったのですが、RestClient.get の結果って、RestClient::Response オブジェクトなんですけど、これ、

irb(main):006:0> r.is_a? String
=> true

String なんですね。なるほど、それで irb 上でいきなり内容を確認できるのか。ってほんとにイマサラなわけですが。

cf.

rest-client が便利

Tags: Web Ruby

*1 まぁ内容が欲しいんだから間違ってないんですが。

*2 自分を含めて

本日のツッコミ(全2件) [ツッコミを入れる]

_ noplans [require 'open-uri' uri = URI.parse('http://aligach.net/dia..]

_ wtnabe [うお。取れますね。meta って body の方の meta data かと思ってました。なるほどー。これなら全然イ..]


2009-04-06 [長年日記]

_ Appleの正規サービスプロバイダが金沢にあった件

アップル正規サービスプロバイダ:北陸

その辺の電気屋に修理出しても結局ここに来るらしい。直接持ち込める人は直接持ち込むと話が早いよ。

次の日には新品のアダプタがゲットできました。

今回は特に100%では再現しないトラブルだったので説明が面倒だったけど、そこは「100%では再現しない」という言葉をちゃんと受け取ってもらえた。よかった。

Tags: Apple

2009-04-10 [長年日記]

_ 特定の namespace の中で const_get()

先日 Rubyで変数から定数を得る で書いたように const_get() すると与えた文字列から定数を得ることができる。*1

これ、特定の namespace の中でどうするんだろうと思って

const_get( 'Klass::Konstant' )

みたいなことして怒られてた。正解は

Klass::const_get( 'Konstant' )

でした。

なるほどな。

Tags: Ruby

*1 もちろん定数の規約には合致してる必要がある。


2009-04-13 [長年日記]

_ 再検査結果A

健康診断の再診が終わって、総合判定で A になりました。

3年振りか4年振りくらいかな、総合 A って。一つ肝機能障害の疑いアリで C もあるんだけど、これ実はアルコール関連の数値が高いわけではない。なーーんなんだろ。まぁ控えるに越したことはそらないんだろうけど、アルコール関連の数値は気にしていた成果が実は出てちょっと下がっている。なのに肝臓の判定は C のまま。よく分からん。

Tags: 日々

2009-04-14 [長年日記]

_ ri Net::HTTPResponse がステキ

ri でメソッドが引けることに気づいたのが実はそんなに昔のことではないのですが、今日またいいことを思いつきました。

ri Net::HTTPResponse

って打つと status code と定数の組み合わせが確認できます。Net::HTTP の定義している response の定数は protocol で定義しているメッセージほぼそのまんまなので、これだけで status code の意味を調べることができるわけです。

こりゃー便利だ。今までそのたんびに studyinghttp.net を見に行ってましたよ。いや、studyinghttp.net は内容まできちんと確認できるから大事なんだけど、単に status code の意味を覚えてないだけってケースもたくさんある。そういう時に便利だなと思いましたとさ。

Tags: Web Ruby

2009-04-17 [長年日記]

_ git log --color | less

git ってメッセージを color で出力できてステキなんだけど、パイプで渡してるかどうかを見てるので、ページャで読もうとすると途端にモノクロになってツレナイ感じ。

diff に関しては以前colordiff を挟む方法で color 化したことがあるんだけど、log も color で出ないかなと思ったらまんま

--color

っていうオプションがあった。なるほど。

実際には log -p(つまり diff)を color 表示したいわけじゃなくて commit 間の区切りが分かりにくいのをなんとかしたかっただけなんだけどね。svn diff は AA みたいな table 形式で表示されるので commit と commit を容易に区別できたんだけど、git log は区切りが分かりにくいなぁってずっと思ってた。

とりあえず color にするだけでずいぶん見やすくなったのでこれでいくことにする*1

Tags: Git

*1 本当は color にしなくて見やすくする方法があればなおよいかなとは思うんだけど。


2009-04-21 [長年日記]

_ disabled disabled

例によって(?) i-mode の話。

<select>
  <option disabled="disabled"></option>
</select>

に対応してなかった。

こっから先は単なる愚痴。

別に選べても正しく処理できて、結果が0件になるだけなんだからいいんじゃないの?と思ったけどダメなんだって。そういうもんかなぁ? 致命的なエラーになるならまずいけど、正しく処理できて0件になるくらいで我慢してもいいんじゃなかろうか? そこで i-mode のバカブラウザでもまったく同じに実現できる解にたどり着くコストを掛ける意味あるのかしらん。

同じ見た目にこだわると幸せになれないのは IE の場合とおんなじだよねぇ? そのコストがもっと大事な部分を削っちゃってるとは思わないのかなぁ。

Tags: Web HTML Mobile

2009-04-23 [長年日記]

_ ハヤオキ生活

tdtds ではないが1週間ほど前からハヤオキ生活を始めている。と言っても別にニコ動を見るためではなくて、単に仕事に追いつめられていただけという残念なお話。

だいたい 5:30 から 8:00 くらいまでコーディングしていたんだけど、これがまぁ進む進む。パネェ。ハヤオキマジパネェ。やんごとなき生産性の高さ。

別にテレワークを会社として推進しているとかそういう環境ではないので、この時間に家でやっている仕事は何にもカウントされないんだけど、それでも夜遅く頑張るより絶対朝の方がいいね。まぁ年をとって朝の時間を活かしやすい身体になっただけなのかもしれないけど、夜の時間を引っ張っても生活時間が圧迫されるだけで実際にはたいして仕事は進んでないなと感じた。違いがはっきり分かるくらいに朝の方が仕事が速い。家でやるにしても夜は結局ご飯食べて飲んじゃうから気分だけが空回りして終わる。

朝起きてから使える時間は限られている。だから必ず時間計算しながらの作業になる。ライフハックなんかでもよく言われることだけど、仕事は締め切りを設けてやるのが大切。あと○○分でとりあえずここまでの動作を実現して commit する、という明確なゴールのもとに行う仕事だから生産性が上がるのかもしれない。

気持ちの問題もあるかもしれない。自分はもともとそんなに朝が得意な方ではないので、「起きるぞ」という強い気持ちのもとに「頑張って起きている」。そこで「何か成果が出ないと損」という気になっているのも事実。ダラダラするなんてオレの頑張りに対して失礼すぎる。

また別な効果として、仕事のコードは書いてから実際に活かされるまでの時間が意外に長いのだということを再認識させられた。

趣味で一人で書いているコードはともかく、仕事のコードの commit はやはり他者が読んで分からなければいけない。仕事コードは svn で管理しているんだけど、手元の git のログをそのまま突っ込むのはさすがに乱暴な状態だったので、一つ一つ吟味しながら commit 作業を行った。これが結構時間が掛かる。また commit は基本的に Trac の Ticket と結びついているので Ticket の整理も必要だし、第三者の目と手での検証もしてもらわないとだいたい抜けがあって(ダメじゃん)、それをフィードバックして再修正、全部終わったら deploy という流れになる。書いただけでも長いが実際に掛かる時間も結構なものになる。

で、コーディングの時間は短縮できてもこの部分の時間はあんまり短縮できないんだなということを感じた*1し、この部分の時間の見積もりが自分は案外甘いということも確認できた。だからいざというとき Ticket 管理が甘くなるし、結果、ナァナァの部分が増える。たった今書いたことと矛盾するように聞こえるかもしれないが、この手の作業は乱暴にやれば簡単に時間短縮を図れるからだ。

でも管理作業が乱暴になったら意味がない。

コードに対してだけクオリティを求めても最終成果物の運用のクオリティは上がらない。

実に簡単なことなんだけど、朝の2時間がこの気づきを与えてくれた。

ちなみに、仕事が押してたのは一昨日までで、昨日からは 6:00 起きにしている。睡眠時間を削れないタイプなので、それまでのハヤオキは明らかにオーバーペース。6:00 なら持続できるんじゃないかなと今のところ予想している。

Tags: 日々

*1 どうしても自分以外の人が絡むためでもある


2009-04-24 [長年日記]

_ emacs で開いてる buffer の改行コードを変える

バカすぎた。こんなことに気づいてなかった。

今まで

M-x set-buffer-file-coding-system

で文字コードは何回変更したか分からない。でもこのとき改行コードまで変更できることに全然気づいてなかった。

Coding system for saving file (default nil):

って聞かれたときに今までだと

sjis

とか

utf-8

とか入れてたんだけど、これを

sjis-dos

とかにすれば改行コードを変えられたということに twitter で reply をもらうまで気づいていませんでしたorz

以下はそのときの twitter のログ。

12:55:37 wtnabe< emacs で開いてるバッファの改行コードって変えられないの
かな
13:19:49 mf2t> @wtnabe C-x Ret f で *-unix にするとかじゃなくて?
13:22:49 kyanagi> @wtnabe C-x RET f とかでしょうか? < 改行コード
14:27:56 wtnabe< @kyanagi @mf2t 文字コードしか変えられないと思ってまし
た。。。お恥ずかしい。

なーにをやってんだオレ。

Tags: Emacs

2009-04-25 [長年日記]

_ 日本Androidの会金沢支部第一回勉強会参加

日本Androidの会 金沢支部 第一回勉強会 : ATND

ただし、現時点で自分は Android にはそんなに興味ない。今回の目的は kinneko さんとの遭遇。

とだけ言うのもなんなので、一応前日 eclipse と SDK をセットアップした。

会場の石川高専はネットワークがガッツリ閉じててすべて proxy 経由でしか出れない。いつもは自宅サーバ経由の TIG で Twitter にメモを post してるんだけどそれができない。頼みの emobile は圏外。仕方なく急遽 TwitterFox を仕込む。金沢工大もそうなんだけど、今のところ学校関係で勉強会やるとネットワーク的にとても厳しい状況が続くんだろうなぁ。

肝心の内容だけど、Android はオープンだから開発者的には iPhone より面白いよ!各種センサーを使って世界中の Android 上のアプリからデータ取ると面白いんじゃね!(センサークラウドって言うらしい。)Simulator ではなく Emulatore です! iPhone とは違うのだよ! マジ Linux なので分かってる人は楽ちんだよ!(センサーに対応したデバイス積んでないとその辺はどうにもならないけど。)

現状は SDK と emulator の連携に失敗する部分があったりするけど次のバージョンや次の次のバージョンでは良くなるんじゃないかなぁ、みたいな話でした。ハードに強い方々はいろんなデバイスに載っけるという楽しみ方をしているようですが、低レイヤーにはあまし興味のない自分としては WebKit のレベルくらいまでしか押さえられない感じです。UA 的には Mobile Safari だけど Android って文字列も入る形のようです。

めっちゃアウェイだったけどとりあえず kinneko さんにご挨拶できたのでよしとしよう。ちょっと遠い世界の話も面白いな。

cf.

UI設計にはこんなものもあるらしい。

DroidDraw : Graphical User Interface Editor for Android Cell Phone Development and Programming

Tags: Study Android

2009-04-26 [長年日記]

_ Sinatra on CGI はとりあえず諦めた

Sinatra

最近あちこちで聞くので試してみた。

  • WEBRick では動く
  • CGI ではダメっぽい

CGI で動かしてる人はいるんだけどやっぱ quick hack が必要らしい。

うーん、惜しいなぁ。

実は妙に DSL DSL してる昨今の Ruby 界隈はあんまり好きじゃなくて、Sinatra も DSL って説明を読む限りではあんまり好きになれそうにないなぁという印象だった。まぁでも中身はどうせ全部 library として追い出して書くんだし、そんなに気にしなくていいかもなぁという気になるくらいには期待していただけに素直に CGI で動かないのは痛い。いちいちアプリケーションサーバとか立てたくないんですよ。主目的は内部利用のものをサクッと作ることなので。

[追記 2009-09-02]高橋会長が CGI でうまいこと動かす感じの書き方を見つけたらしい。

SinatraをCGIでもThin等のアプリサーバでも使えるようにする書き方 - 思っているよりもずっとずっと人生は短い。

Tags: Web Ruby