トップ 最新 追記

2009-07-01 [長年日記]

_ PHP 5.3.0 で is_a() 復活

今日の twitter

00:36:30 <mumumu> migration53.xml を訳していると、俺みたいな馬鹿でも頭
                  悪いなって思う変更が数点あるけど、楽しいところも沢山
                  あることがわかってきた。
                  http://www.mumumu.org/~mumumu/phpmanual/migration53.html
06:37:07 >wtnabe< お。PHP 5.3 で is_a() は deprecated ではなくなったの
                  か。よかったよかった。もっとちゃんと is-a の意味を考
                  えるべき。

この点に関して自分は以前、以下のように書いている。

14:55:45 >wtnabe< PHP のオブジェクトのクラスを確認する構文が is_a() 関
                  数から instanceof にしたいみたいだけど、これ、あんま
                  よくない気がする。
14:56:37 >wtnabe< is_a っていう文字を見なくなると is_a 関係への意識が薄
                  れると思う

オブジェクトが is-a 関係かどうか

というのは常にきちんと意識できた方がよいと思う。この意味がピンと来ないならばオブジェクト指向への愛が足りない。とか断言できるとかっこいいんだろうな。実際にはよく知らない。

でも以前、明らかに継承すべきでなかったクラスを継承してコードを書いていた頃は、確かに「is-a 関係」を今ほど意識できていなかった。今は反省している。マジで。

Tags: PHP

2009-07-08 [長年日記]

_ 最近知った便利なオプション

grep --color=always
マッチした文字列がカラーでハイライトされる。*BSD と GNU grep 2.5.3 で確認*1。たぶんフツーの人は --color=never で使っているんじゃないか。自分の場合は less を常に -r オプション付きで動かしているので always だ大丈夫。今まであまり意識したことなかったけど、見やすくて助かる。
tree -N
tree はディレクトリツリーを見やすく表示してくれるツール。長い間これは日本語ファイル名に対応していないと思っていたけど、-N で Print non-printable characters as is instead of the default carrot notation ということで8ビット文字列を表示してくれる。うむ、また一つ便利になった。
Tags: Unix

*1 ただし日本語マニュアルには記述のない環境もあるので注意。


2009-07-09 [長年日記]

_ 今さらRTM

Remember The Milk

外出の機会が増えるらしいので、スケジュール管理はイントラの ics ファイル + Thunderbird + Lightning だけではまかないきれんなぁと思い、久しぶりに Remember the Milk でも使うかーと思って昔の情報をひっくり返してみた。

Google Gears + RTM - あーありがち (2007-06-09)

おぉ。なんと Remember the Milk のアカウントは2年間塩漬けにしていた。

09:05:32 >wtnabe< rtm って日本のフツーのケータイで使えるんだっけ
09:07:24 >wtnabe< おぉ。RTMは2年間塩漬けだw
09:55:41 >wtnabe< んー? RTM のリマインダが来ないな
10:25:21 >wtnabe< 今RTMってあんま流行んないんだっけ?

あれこれ試行錯誤したけど、最終的にこんな感じの設定になった。


RTMのリマインダ設定。

この設定で

  • タスクのある日の朝7時
  • タスク期限に設定した(自分の感覚で言うと期限と言うより作業開始時刻)の15分前

にメールが来るようになった。あれこれ設定したけどケータイに飛ばすのがいちばんかなということで、今は RTM からのメールがいちばん多いという状態に。目覚まし忘れても、なんかある日には7時に何かしらのメールが来るので安心感も今までより大きい。


機能としては満足度は高いんだけど、どうも使い勝手はやっぱうーんて感じで、戸惑うこともまだ多い。

11:59:50 >wtnabe< あれ。うっかり ESC 押したら確認なしでタスク消えた?
12:00:36 >wtnabe< マジか。信じられん。ものすごい脆弱性じゃないか。
12:01:18 >wtnabe< 元に戻せた。それにしたってなんだおい。

[追記] 「場所」は登録されている場所しか記入できないのでちょっと面倒。しかも登録手順がよく分からずに戸惑った。

正解は地図の右側の場所リストの上にある「場所を追加する」を押してから地図上のポイントをクリックする。

なーるほどな。

cf. Twitter / wtnabe: あ、いけた。「場所を追加する」ってやってから地図をク ...

Tags: RTM

_ DENIMもう一度試す

Web サイトの手書き風プロトタイピングツールとして DENIM が(一部で)話題になったのっていつだっけ。

DUB - DENIM

OSX 10.2 以降で動くのに JRE 1.5 を要求するというのはなんか変じゃないかと思うけど、Java がないと動かない。Windows で使う分には Java のバージョンで困ることはないやね。

06:31:24 >wtnabe< もしかして DENIM ってオブジェクトの移動できんのか。ほ
                  んとに手書きと同じじゃないか。
06:38:01 >wtnabe< cut & paste はできるけど移動ができないと厳しいなぁ。
                  もう頭が完全にドローツール向けになってる。
06:49:19 >wtnabe< cut & paste はページそのものならできるけど、オブジェ
                  クトは消して書き直す感じっぽいな
06:53:06 >wtnabe< イメージとしてはちゃんとサイトの概念やアクションを気
                  にする人同士の会話には使えそう。見た目重視の人には使
                  えないって感じか。あと当然画面が小さいとかペンタブレッ
                  トじゃないとかも使いにくくなる要因かな。
07:57:32 >wtnabe< DENIM のサイトはなんで port 2007 なんだろう。ただのシャ
                  レならやめてほしい。fw に引っかかる。
08:03:19 >wtnabe< なんか java のダウンロードが訳が分からなくなってる。
                  なんだこれ。

実際に使ってみないと伝わりにくいけど、

  • ページの並びは cut & paste で移動できる
  • ページ内のオブジェクトは消して描き直すしかない

ということで、手書き風って見た目が手書き風なだけじゃないんだ。

ページ間のリンクが意外に細かく制御でき*1、独自のブラウザも搭載していて見た目はともかく構造と機能を考えるには十分使える。

ただ操作性はかなり独特なので好みは分かれると思う。あんまり独特で最初は Java じゃなくて Squeak か何かと思った。普通の UI パーツを使うタイプのプロタイピングツールは、見た目はともかく構造の記述ができない場合が多く、両方のいいとこ取りをした本気のプロトタイピングツールがあれば結構売れるんじゃないかなぁ。それくらい現状は中途半端な印象。

Tags: Web

*1 例えばフォームの正常遷移と異常遷移を記述できたりする。

_ 最近の Windows に deltree はない

むかしむかしあるところに DOS プロンプトであるディレクトリ以下全部削除したい男がおったそうな。男は

deltree DIR

を使っておったそうじゃ。

……。

今ね、deltree ってないんですよ。どうするかというと

rmdir /s

で対応する。

15:47:23 >wtnabe< 4/6 に finalfusion たんに教えてもらったけど fav り忘
                  れていたこと。deltree がなかったら rd /s すればいいじゃ
                  ない。デリー・ト・シタイノヨット

rm を再帰的にやるのではなく、rmdir を中身が空じゃなくても問答無用で行うオプションを付ける。ふーむ。

Tags: Win

2009-07-11 [長年日記]

_ 第1回北陸ITPro勉強会でLTしてきた

第1回北陸ITPro勉強会 -「開発者のためのセキュリティ勉強会」 ‎(北陸ITPro勉強会)‎

ネタとしては、勝手に「Hokuriku.rb前哨戦」と題して空気読まずにここ1年くらいの Ruby ネタを、コードを公開しているものを中心にまとめ直しただけで、新しさはないんだけど久しぶりに OmniGraffle で図を描いたりしてなかなか楽しかった。

WebアプリだけがRubyじゃないよ

人前で喋ったのもずいぶん久しぶりだったけど、だいたい狙いどころで笑いが取れたのでまー満足。

それより名刺交換した方の中でありがち読んでますという方が何名か、いや、てゆーかはせがわさんが読んでるって言わはるじゃないですか。何それこわい(違

ちゃんと書かないとなーと思いました。次はいつまともに書けるかしら(コラ

そう言えば帰ったら eto 本と勝手に呼んでる「パターン、Wiki、XP ~時を超えた創造の原則 (WEB+DB PRESS plusシリーズ)(江渡 浩一郎)」が届いてた。わーい。読むぞ読むぞ。

[2009-07-12 追記] しまった。とにかく自分のスライドを上げることに集中して謝辞も感想も書いてない;;

わざわざ日帰りで金沢くんだりまで来ていただいたまっちゃだいふくさん、はせがわようすけ先生、企画と仕切りのHふじたさん、会場を用意していただいた KIT といろいろ働いてくれた学生さん、ありがとうございました!

はせがわさんの文字コードの話はあちこちでつまみ食いはしていたんですが、まとめてライブで聞くのは違いますね。やはりポイントはタイミングなんだなーという思いを強くしました。

自分の使っている道具*1が、どのタイミングでどのように文字コード、エンコーディング、Unicode正規化などを扱っているのか、まずはちゃんと知らないといけないですね。以前 PHP はこの辺の扱いを大胆に自動化してくれるおかげで文字化けがよく話題に上がったわけですが、昨今は便利なフレームワークが流行っていますので

コードを書いてるプログラマは何が起きてるのかよく分かっていない

という状況はあまり変わっていないと思います。

いやーこえーなぁ。しっかりしないと。

Hふじたさんの話は*2、最近遷移制御がやたら複雑な Web アプリも増えてるんだけど、それって検査を難しくしてるだけで問題の解決にはなってないよね? というのと、昔からやることは変わらない、

データは出力する直前に出力する対象にとって安全な形にしてあげないとダメだよ

というお話。基本ですね。でも意外に分かっていない人が多いんだよな、これ。

最近はあんまりこういうこと考えていなかったのでよいリハビリになりました。懇親会には行けませんでしたが、大変刺激になりました。自分に合う世界観の中で勢いや元気のある人に会うのは大事だなー。

※ 合わない世界観で元気な人に会っても疲れるだけですが。

*1 Webで言うと Web サーバ、コンテナ、フレームワーク、DBMS、ブラウザなど

*2 特に REST と縁のない、どっちかっていうとエンタープライズ系の Java とか .NET 方面に聞こえましたが

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

_ まっちゃだいふく [参加頂きありがとうございましたーーー!]


2009-07-13 [長年日記]

_ 金沢でWiFiの使えるカフェ/喫茶店情報の断片

twitter で自分のノート PC を持ち込んで、WiFi でネットに繋いで作業できるカフェとかないかなという話題に。正直、金沢ではまだかなり少ないと思うよと断りつつ、知ってる情報を吐き出しておいた。

14:27:46 >wtnabe< @kabakiyo そんなとこあるんすかねぇ。自分でやったこと
                  あるのはビーンズのタリーズとその辺のマクドです。
14:34:53 <kabakiyo> @wtnabe 自分も知らないんで、あったらうれしいんです
                    けど... ビーンズのタリーズってネット使えます?
14:36:33 >wtnabe< @kabakiyo WiFiはないすね。そのときは自前 e-mobile で
                  した。
14:39:55 >wtnabe< @kabakiyo 御経塚サティのタリーズにはWiFiのサービス入っ
                  てますね。http://bit.ly/b4dOt
14:40:14 >wtnabe< @kabakiyo 「金沢」ではないですけど…。
14:41:49 >wtnabe< @kabakiyo あと路々が freespot 入れてますけど、休みの
                  日は意外なほどいっぱいになります…。みんな freepost
                  目当てじゃないと思いますが。
14:42:31 >wtnabe< @kabakiyo あと武蔵のコニーズアイって雑貨屋のカフェコー
                  ナーは使い放題です。
14:43:53 >wtnabe< テルメにも freespot 入ってるな。カフェじゃなくて温泉
                  になっちゃうけど。
14:45:27 >wtnabe< @kabakiyo あと角間のサークルK w  かろうじて金沢
14:46:53 <kabakiyo> @wtnabe おぉ、たくさんの情報ありがとうございます!
                    結構あるんですね。近々利用させてもらいます。助かり
                    ました! *Tw*
14:49:53 <kabakiyo> @wtnabe ちょっ、メモるの大変(汗 *Tw*
14:52:53 <yuuitiro> . @wtnabe @kabakiyo 僕もそれをかこうと思っていた。
                    電源も使えるよ。
14:53:52 >wtnabe< そういやマクドのDSダウンロードコーナーってDSしか使え
                  ないみたいでMacBookからは見えなかった気がする
14:54:12 >wtnabe< まー見えてもDS用のサービスにしか繋がらないんだろうか
                  ら意味ないと思うけど
14:58:07 >wtnabe< ぶっちゃけ自分はもう freespot 探す時間を e-mobile に
                  払う金に置き換えた方が安上がりだと思っちゃってますけ
                  どね。漫画喫茶で自前 MacBook + e-mobile もやったこと
                  あるw
15:01:53 <checkela> @wtnabe その通りだと思う
15:04:54 <kabakiyo> @wtnabe 確かに。 *Tw*
15:09:45 >wtnabe< .@kabakiyo @checkela それはともかく雰囲気のいい店を知
                  りたいすね。なかなか出会えないです。
15:13:53 <checkela> @wtnabe カフェ紹介した本を片手に巡るしか
15:18:19 >wtnabe< 女の子が文庫本読んでサマになるカフェとおっさんが
                  O'Reilly本とMacBook広げて許されるカフェは違うと思うん
                  だ…。 

まとめてて思ったけど、もしかしてテルメは合宿系にいいんじゃないかという気がした。街中ではないので車で移動するしかなく、他所の人を呼ぶのはつらいけど、車社会の北陸に住んでいる人はむしろインターに近いので集まりやすいし、あとは電源とかスクリーンとかホワイトボード辺りがなんとかなるとそれなりの規模をまかなえるんじゃないかろうか。

Tags: Net

2009-07-14 [長年日記]

_ あれこれ変換サービス xFRUITS

RSS の変換サービスを探してて、ずいぶん前に話題になっていたらしい xFRUITS というものを知った。

xFruits - Compose your information system

あれ。ロゴは xFRUITS だけど、サービス名は xFruits なんだな。

確認した時点でサービスは全部11

  • aggregate rss
    • まとめる
  • rss to web
    • HTML化
  • RSS to MOBIL
    • mobile向けにHTML化
  • POST to RSS
    • xfruits.com の特定のアドレスにメールを送ると rss を生成できる
  • RSS to PDF
  • RSS to MAIL
    • POST to RSS の逆
  • RSS to OPML
  • OPML to MOBILE
  • MAIL to RSS
    • メールを受信してくれてそれを feed に変換してくれる!
  • RSS to VOICE
  • RSS to MYBLOG
    • APIの公開されているブログに feed(の内容?)を post する。対応サービス以外では使えない。

feed を HTML から scrape して作るとかそういうことはできないが、多くの場合は十分で、欲しいと思わせる機能が揃っている感じ。ただ、めっちゃ重い。

mobile 向けの HTML 化は地味に便利。PC 向けは JavaScript などで埋め込むことは特に考えている様子がなく、iframe 直埋めになってしまう感じ。つまりカスタマイズはほぼ不可能。そこら辺は惜しい。安定しているのかとか Web UI 以外のサービス部分は十分な速度を保っているのかとか、あまり細かく見てないけど知っていたらもしかして使えるときがくるかもしれない。

Tags: Web

2009-07-15 [長年日記]

_ OOoでハイパーリンクを切るには「標準の書式設定」を使う

Office ではいつからか*1ハイパーリンクの機能を持っています。これが実にやっかい。というのも普段のドキュメントでは Web のようにリンクの機能なんて意識してないので、URL文字列を修正した結果

URL文字列とリンク先が食い違う

などの事故が起きます。Web の世界に関わっている人でもそういう風に意識していなければ事故ります。まして Web の世界が分かっていない人をや。まぁ、文句はさておき、対処方法を挙げますと

  1. 設定でハイパーリンクの自動認識を外す
  2. すでに設定されたリンクを書式から外す

細かい設定方法はアプリによって違いますが、ここでは OOo 3.1 を対象にします。

1 は [ ツール ] → [ オートコレクトオプション ][ オプション ] タブの 「URL認識」のチェックを外すことで対処できます。

これを設定しておけば自分が新たに作る書類においては URL の問題にハマる心配はなくなるはずです。ですが、Office 文書は自分の作るものだけではありません。すでにリンクの設定されているファイルをもらうこともよくあります。というわけで、以下はそんなファイルをいじっていたときの Twitter のログ。

10:13:37 >wtnabe< OOo でリンク切る方法分からん。
10:19:53 <yuki_2021> @wtnabe ツール > オートコレクトオプション > オプ
ションタブ の URL認識を切ったらどうでしょうか?
12:00:39 >wtnabe< @yuki_2021 すでにURLとしてリンクになってしまっている
文字を普通の文字にしたいんです。
12:04:24 >wtnabe< Excelではリンク外したことあるはずなんだけどなぁ
12:19:54 <yuki_2021> @wtnabe 挿入 > ハイパーリンクでターゲットのURLを
外せばリンクは外れるはず、なんですができないですね(--;) このあたりが参
考になりそうです
http://oooug.jp/faq/index.php?cmd=read&page=faq%2F1%2F69&word=%A5%CF%A5%A4%A5%D1
12:21:45 >wtnabe< @yuki_2021 あ、外そうと思うからダメなんですね。まず
標準の書式にしてしまえばいいんだ。ありがとうございます!
12:22:44 >wtnabe< てゆーか2005年から放置ですか、これ。どういうことだ。
12:22:54 <yuki_2021> @wtnabe セルを選択して、書式 > 標準の書式設定でハ
イパーリンク削除で切るみたいです。

本来 OOo では URL を含むセル上で [ 挿入 ] → [ ハイパーリンク ] で出てくるダイアログから URL を外せばリンクは切れるはずなのですが、これがバグっています。2005 年に以下の報告があって以来、今も直っていません。

faq/1/69 - OpenOffice.org Q&A

ではどうするかというと、URL を含むセルを選んで [ 書式 ] → [ 標準の書式設定 ] ですべての書式設定をリセットします。

当然、ハイパーリンク以外の書式も外れますが、我慢しろということのようです。


関係ないところで関係ない話もしてました。

12:22:54 <kaz0636> 北海道でカントリーサインだとどうしても・・・w *Tw*
12:23:27 >wtnabe< @kaz0636 212個ないと
12:25:55 <kaz0636> @wtnabe そうだね。2泊3日で全部まわらないとね。皆さ
んお待ちかねだからw *Tw*
12:28:13 >wtnabe< @kaz0636 あれを見て北海道回りたくなって新得そば食べ
ましたよw
Tags: OOo

*1 HTML を出力できるようになった頃から?


2009-07-16 [長年日記]

_ Tunderbird で意図しないアカウント情報が送信される問題が起きた

ある時から突然 Thunderbird で受信時の認証が通らなくなったということでヘルプ。現象としては

  • Thunderbird 側の設定を何か変えたわけではない
  • サーバ側の設定も変更なし
  • 突然認証が通らなくなった

というもの。何度か試してみたけど確かにダメだ。正しいアカウント情報を入れ直したりしてみたけどダメ。

こういうときはログを読む。これ開発でもサポートでも鉄則ね。

……。

Thunderbird の protocol log なんて見た記憶がない。どうやって設定すんだろ? 自分の機械だったら ngrep で強引に読んじゃうんだけど、他人の機械ではそういうわけにもいかない。困ったなぁとつぶやいていたら例によって twitter で正解を知った。

16:19:54 <liar_l> @wtnabe もう遅いっぽいですが、この辺とか。
                  https://wiki.mozilla.org/MailNews:Logging
16:21:01 >wtnabe< @liar_l うぉ。環境変数で採れるんですか!知らなかった。
                  あざっす!

MailNews:Logging - MozillaWiki

ここに代表的なプラットフォームごとにログを採るための環境変数の設定方法が書いてあるのでそれに従うだけ。

17:46:36 >wtnabe< @liar_l ありがとうございます。問題の機械で現象を特定
                  できました。通常の設定画面からは変更できない値が誤っ
                  て使われていたのでabout:configで直しました。
18:02:02 >wtnabe< 探しても出てこない現象だったんでメモ。アカウント設定
                  では一つしかアカウントが見えないのに
                  mail.servers.serverが複数あり、GUI で設定できない
                  usernameが送信されて認証失敗。
18:02:48 >wtnabe< どれか分からないのでusernameを正しいものに全部書き換
                  えて対処。もしかすると使ってないはずのものを消しても
                  よかったのかも。
18:07:29 >wtnabe< OSX だったので log を tail しながらトラブルシュートし
                  たわけど、Windows だったらもっと作業的に面倒だったん
                  だろうな。よかったよ OSX で。

アカウントの作成を失敗してやり直したか、あるいは複数のアカウントを使っていたんだけど消してしまったか、まぁたぶんそんな操作が以前あったのかも。GUI の通常のダイアログでは見えない複数のサーバ情報があり、GUI の通常のダイアログ上には正しい情報が表示されるが、実際には違う情報がサーバに送られてたという、ちょっとやっかいな症状。このトラブルはちょっと経験値要るわ。

上にも書いてあるけど、通常のダイアログで確認できなくても Thunderbird なら about:config の画面で操作できるので今回はそっちで対処。

周りから見ると

  • Mac なのに Terminal でデカデカと log を tail -f
  • いつもの Thunderbird なのに見たことのないウィンドウで文字いっぱい

という状態でとてもいぶかしい感じだった。ま、出張サポセンなんてそんなもの。


2009-07-17 [長年日記]

_ 絵文字とかケータイ対応を調べてみた。想定は Apache + PHP

まぁこれも今さらなネタですが。

一つのアプリ、コンテンツから PC/ケータイ両対応したいことってよくありますな。そのための変換ツールを調べてみた。

ただし、最初に断っておくと以下のどれも採用していない。

Apache モジュールタイプ

Apache モジュールで画像を変換したり絵文字対応したりというアプローチはアプリの開発言語を選ばないので魅力的。

mod_ktai
  • yumemi
  • Apache License 2.0 と言っているがソースが公開されていないという指摘多数。
  • 企業開発なのでリソースが十分投入されていそうだけどとにかく評価できない

その後、なんでソース公開されていないの?という疑問に答えるようなアクションもないし、実はもう使ってないんじゃないか疑惑。

mod_chxj
  • 基本的に個人開発(確認時点ではメンバー3人)
  • ちゃんとオープンソース(Apache License 2.0)
  • 残念ながら参加も開発も活発な感じはしない

こういうツールって地味なので一人だとモチベーションを維持するのが大変だし、実際開発の停滞した時期もある。もしかすると github に置いたらもう少し盛り上がるかもしれないなーなんてことを思いながら見送りの方向で。

結局 Apache module タイプのツールはなんかちょっと不安が拭えないので今回はスルーで。

あと参考までに

Typepad Mobile

正式名称は結局 TypeCast でしたっけ。イマイチよく分かっていない。

これは HTML を変換するタイプではなく Atom から変換するタイプ、のはず。Atom の出力に対応しているアプリからなら簡単に使えるかもしれない。

公開時にニュースになって以降はそんなに話題になってないっぽく、移転に次ぐ移転でどこに行ったかよく分からなかったけど今は github に落ち着いてるみたい。たぶん。

今回は既存のサイトの絵文字対応で Atom は使えなかったので見送った。

PHP ライブラリタイプ

PHP では差し当たって絵文字のライブラリだけ調べた。

予想通りたくさん見つかった。でも現役でメンテされてそうなものは少ない。そして結論から言うと今回自分は何も採用はしなかった。そう、つまり自作。その理由は以下の通り。

  • mb_convert_encoding をすでに使っているコードがある
  • mb_output_handler をすでに使っているサイトがある

最近は output_handler による自動エンコーディング変換は行わないのがセオリーになっている。はず。そのためもあってか最近の絵文字ライブラリは自動変換が走ると絵文字部分は壊れてしまうものが多いみたい。

HTML_Emoji

速いらしい。

れぶろぐ - [PHP] 絵文字変換ライブラリの処理速度の比較

確かに速い。でも上に書いたように自分の要求とは合わなかった。

また、名前の通り変換ライブラリであり、例えば絵文字入りの HTML 作成を支援してくれるわけではない。UTF-8 でバイナリを直接埋め込んでいかなくちゃいけないとなると、制作現場的には厳しい。あくまで携帯から絵文字を投稿できてそれのハンドリングがちゃんとできるよっていう話のように見える。

emj

こちらは作った方がデザイン業務も行っているということで、さすがに制作現場で使いやすそうな機能を持っている。

絵文字を名前で入力できるというのは実は重要で、この方式は文字コード変換に強く、分業時にトラブルになりにくい。例えばなにがしかのテンプレートシステムと併せて使いたいとなったとき、テンプレート周りでエンコーディングの変換に気を使う必要がない。HTML_Emoji は確かに速いけれど、エンコーディング変換時には独自のメソッドの利用を要求するので「新規開発ですべて UTF-8 に統一できている」などの条件が整っていないと安心して利用することは少し難しいのだ。

そんないいことずくめそうな emj だけど、

  • ライセンスが不明
  • グローバル汚染しまくりで気持ちよくない

という辺りがネック。

Perl 使ってりゃこの辺は日本にはかなり強力なコミュニティがあるから楽できそうなんだけどね。


2009-07-19 [長年日記]

_ TC/TT の gem ができてる

Twitter しか見てなかった RubyKaigi の様子で知った。

09:49:55 <tdtds> Tokyo Cabinet/Tyrantのgemはうれしいなぁ #rubykaigi

なんですって!

$ gem search -r tokyo

*** REMOTE GEMS ***

careo-tokyocabinet
careo-tokyotyrant

のことかな。もちろん良い子のみんなは

gem sources -a http://gems.github.com

してるよね!


2009-07-20 [長年日記]

_ iPod touch げと

※ ごめんなさい。書いている時点でもう3ヶ月前の話になってしまったorz

1週間前からですかね。iPod touch が欲しくなったのでソッコー買ってしまいました。

もともとポケコンとかこういう小さいデジモノが好きなので、ずいぶん前から欲しいのは欲しかったのですが、基本的には「常に自分の PC に向かっていられる環境 + 移動は車 」の世界に住んでいるのでどうせ使いものにならないだろうという理由で iPhone/iPod touch は見送ってきました。

しかし先日の話の通りRTMを使った方がよさげな状況になってきたので、日本のケータイではなく、かつ PC ではない小型の端末が急速に欲しくなってしまったのです。

以下、例によって twitter ログより。

買う前

09:06:51 >wtnabe< iPod touch にはカメラないのか
11:48:19 >wtnabe< まとめると、カメラ、マイクなし、BluetoothはOS3.0で使
                  えるけどHIDプロファイル非対応。アプリはLDRとRTMがある
                  ので当初の目的は達成できそうな感じではある。
11:48:37 >wtnabe< でもたぶん9月に第3世代出るんだよね < iPod touch
11:52:40 >wtnabe< あとは安けりゃなんでもいいやという気分になってきている
12:06:39 >wtnabe< iPhone/iPod touchのいいところはアクセサリが豊富なとこ
                  ろだな。日本のケータイはケースに入れられないもんね。

買うとき

17:36:07 >wtnabe< iPod touchゲットした。うっかり .@kabakiyo さんに出く
                  わした。
18:16:56 <kabakiyo> @wtnabeに出くわした。エスカレーターの反対側だったの
                    であいさつだけした。

買ってから

17:38:32 >wtnabe< music playerとして使う気がほとんどないのでとりあえず
                  聞ければいいものをプレイリストに突っ込んで同期完了。
17:43:33 >wtnabe< iPhone OS 3.0 ダウンロードおせー。なにこれ。

RTM関連

17:48:25 >wtnabe< もしかしてRTMアプリってproアカウントなら無料になるん
                  じゃなくてproアカウントじゃないと使えないの?
17:52:56 <mootoh> @wtnabe yes
17:55:22 >wtnabe< @mootoh ガーーーーーン。なんて分かりにくい表記だ!
19:30:55 >wtnabe< RTMのプロアカウントはさすがに高いので代替案を探さなけ
                  れば
21:31:32 >wtnabe< mobileme 9800円/年を思えば RTM pro 25ドル/年はやっぱ
                  安いのか? いやいやいや。

翌日のRTM関連

00:01:56 <wtnabe> なるほどそこでmilponなのね。理解した。
06:46:43 >wtnabe< お礼言い忘れてた。ありがとう @mootoh ぼくらには
milpon があるんだね!

Milpon

mootoh が milpon を作っていることは実は以前から知っていました。でもその必要性が分かっていなかったのです。公式アプリが Pro アカウントでないと使えないということを知って初めて理解できたのでした。

アプリの起動とかLDRとかGmailとか

20:21:10 >wtnabe< 追加したアプリの起動方法すら分からんorz
20:21:35 >wtnabe< あ、画面が切り替わるのか
20:34:41 >wtnabe< LDR touch は画像があったり長かったりすると記事間の ↑
                  ↓ での移動が如実に重くなるな。一度記事一覧に戻ると遅
                  くないんだけど。
21:29:04 >wtnabe< gmail もまだちゃんと設定できてないテイタラクっぷり
22:51:09 >wtnabe< gmail じゃなくてその他で設定しなくちゃいけなかったの
                  か。なんだよそれ。

とりあえず結論

16:59:16 >#Twitter@t:wtnabe< ちゅーことで自分的iPod touch三種の神器は
LDR touch, Milpon, Evernoteということで。gmailは同期が遅いのが、
NatuLionはやたらページが長いのが難点。

[追記] Twitterアプリはその後Twitterrificに、初めて買った有料アプリはLimeChatになりました。

Tags: OSX iPod Apple

2009-07-24 [長年日記]

_ Pipes は続くよ!

だって。

Pipes Blog » Blog Archive » Microsoft PopFly and Google Mashup Editor RIP

06:30:26 >wtnabe< あ、Micorosoft popfly も Google Mashup Editor もやめ
                  るんだ。Pipes は続くよ!だって。
Tags: Yahoo Web

2009-07-27 [長年日記]

_ Unicode数値文字参照

数値文字参照の数値の正体

絵文字の一覧を見てたんですよね。で、そのときに絵文字の記号の横にUnicodeってのが書いてあるので、これ使えば基本的に対応機種は全部絵文字になるのかーこりゃ楽ちんだと思ったわけです*1。でもハタと思いました。数値文字参照の数値ってどこから出てくるの?と。

09:34:40 >wtnabe< Unicode 数値文字参照の数字ってどこから出てきてるんだ
                  ろう
09:46:48 <gunyoki> @wtnabe っ http://unicode.org/charts/
09:48:50 >wtnabe< @gunyoki あーそうか、特定のUTFではなくUnicode、えーと
                  UCS? で表現されているわけですね。
09:50:13 >wtnabe< どうやって求めればいいんだろう。UCS
09:55:48 <gunyoki> @wtnabe さっきのチャートの文字の下に書いてある数値。
                   16進数なので、10進数に基数変換。
09:57:33 >wtnabe< @gunyoki すでにデータとして(Unicodeじゃないものが)あ
                  るんで、それを自動で変換したいってことなんです。この
                  辺の話なのかなと思っているところです。
                  http://blog.livedoor.jp/dankogai/archives/51048882.html
10:07:47 <gunyoki> @wtnabe もし日本語でJIS X 0212やJIS X 0213使ってない
                   なら、UnicodeのBMPに載るでしょうから、UTF-16にする手
                   段があれば、何でもいいんじゃないですかね。
10:11:59 >wtnabe< @gunyoki 分かったような分からない感じになっておりま
                  す…。精進します。
10:28:47 <gunyoki> @wtnabe たとえばシェルスクリプトだと、こんな感じ。
                   echo -n 'あいうえお' | nkf -w16L0 | od -tu2 -w2 |
                   awk '/[0-9]* [0-9]*/ { print "&#" $2 ";" }'
10:36:11 >wtnabe< @gunyoki ははー。なんとか pack/unpack でできるところ
                  まできました。ありがとうございます。

なるほど、おおもとのコード体系なわけね。Unicode ってだけ言われると周辺のいろんなこと想像しちゃってダメです。で、バイナリのデータは手に入ってるのでこれの変換をゴニョゴニョと試みます。基本的にはいつも一緒の irb に活躍してもらいます。

10:38:26 >wtnabe< Ruby の Fixnum.to_s だけで基数変換できるって初めて知っ
                  た。なにこれエロい。
10:59:46 >wtnabe< irb で Unicode 数値文字参照(hex表記)を得る '変態'.
                  toutf8.unpack( 'U*' ).map{ |e| "&#x#{e.to_s(16)};" }
                  でおk
10:59:58 >wtnabe< たぶん
11:01:47 <liar_l> @wtnabe 以前、似たようなことをしたかった時は、"あ".
                  encode('UTF-8').codepoints とかして逃げましたが。
11:03:03 >wtnabe< @liar_l 1.9使いの方ですか
11:10:47 <liar_l> @wtnabe 普段は1.8で生きてますが。これに関しては、1.9
                  のが楽だったので……。

最初はちょっと悩んだけど、分かってしまえばチョー楽じゃね?と思ったが 1.9 はさらに上手だった。なにその .codepoints って。

Ruby で基数変換

ついでに知った基数変換はこれ実にエロい。

i.to_s( n )

で n 進数に変換できる。ri をまんま貼付けると以下のようになる。

$ ri Fixnum#to_s
------------------------------------------------------------ Fixnum#to_s
     fix.to_s( base=10 ) -> aString
------------------------------------------------------------------------
     Returns a string containing the representation of _fix_ radix
     _base_ (between 2 and 36).

        12345.to_s       #=> "12345"
        12345.to_s(2)    #=> "11000000111001"
        12345.to_s(8)    #=> "30071"
        12345.to_s(10)   #=> "12345"
        12345.to_s(16)   #=> "3039"
        12345.to_s(36)   #=> "9ix"

あ、60進数にはできんのか。ちょっと残念。でもよくよく考えるとあんまり使う機会ないかも^^;

*1 古い情報ではバイナリ埋め込まなきゃいけないとか SJIS 依存になってるだとかいろいろ制約があるけど、数値文字参照なら安心して普通のテキストとして操作できる。


2009-07-28 [長年日記]

_ PHPのオブジェクトIDを取得…できるのは5.2以降らしい

PHP のオブジェクトの同一性をチェックしたくなって、そういや PHP 5 からはオブジェクト ID を確認できるんじゃないか?と思い出して使ってみることにした。のだけど、PHP 5.1 までは

オブジェクト ID は目視できるだけで値として取得する方法がない

っぽい。

11:56:03 >wtnabe< PHP はオブジェクトの ID を取得する汎用の方法ってない
んだっけか
12:00:57 >wtnabe< もしかして : var_export からテキスト処理?
12:03:17 >wtnabe< あ、var_export() は var_dump() と違って ID が出ないな。
やっぱ取得する方法ないんか?
12:04:11 >wtnabe< もしかして : var_dump() して出力する前に cache を捕ま
えてゴニョゴニョ? やっとれません。

5.2 以降だと spl_object_hash が使えるらしい。

12:19:48 <shimooka> @wtnabe PHP5.2以降ですが、spl_object_hashとかどうで
しょう
12:22:22 >wtnabe< @shimooka spl … さっきまで sql だと思ってスルーして
ましたw
12:24:20 >wtnabe< @shimooka 結局今回は同一かどうかさえ分かればよかった
のでID要らなかったです。すいません。
12:25:48 <shimooka> @wtnabe w

PHP: spl_object_hash - Manual

なんだっけ。ちゃんと singleton になってるかどうか確認したかったのかな。よく覚えてない。

Tags: PHP

_ git checkout 分かってなかった

ずっとずっと git で svn revert したかった。git revert は意図していた機能と違った。Emacs の vc-mode がうまく動いている場合は vc-revert-buffer を使っていた。でも SCM を混ぜてるときとかうまく動かないし、そもそもバックエンドで何が起きてるか分かってないのってちょっと気持ち悪い。

実はこのネタは断続的につぶやいてたんだけど、今回お返事がもらえました。わーい。

12:14:04 >wtnabe< そういえば git で一部のファイルだけ svn 的に revert
する方法が未だに分からないな
12:28:49 <mumumu> @wtnabe git checkout -- foo
http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html

git checkout …。使ってる! てゆーかめっちゃメモ書いてる!

何やってんだ><

branch を指定することしかできないと思い込んでいたらしい。恥ずかしい…。

Tags: Git

2009-07-29 [長年日記]

_ Spyc 0.2.5 → 0.4.2 アップデート注意事項

またネタが混んできたから日記の日付をずらしちゃうでござる。

※ つかそもそもこのネタ古くなってあんまり意味ないかも。最新版(書いてる時点で 0.4.5)をちゃんとチェックしてね!

spyc - Project Hosting on Google Code

てゆーか Spyc のサイトの引っ越しそのものを日記には書いてないな。いかんいかん。

PHP で YAML を扱う際に人気のあるライブラリである Spyc は sorceforge.net に嫌気がさしたらしく、Goolgle Code の方に引っ越してます。*1

はい、以上。で。問題は 0.4 の方。

基本的に 0.3 で書き直したから速くなったよ!という話だったんだけど、自分は stable 志向なこともあって今まで試してなかった。今回 0.4 系を試してみて、実は速さはよく分からなかった*2んだけど、今まで parse できなかったケースで parse できるようになってて*3、これはよいと移行することにした。ただちょっと気になる点が。

それはフロースタイルで余計な空白の入るケースがあるってこと。そもそも YAML のフロースタイルをどんだけの人が使ってるのかという気もするけど、フロースタイルは言ってみれば JSON スタイルのこと。

Rubyist Magazine - プログラマーのための YAML 入門 (初級編)

要はこういう形ね。

[aaa, bbb, ccc]

で、このとき

[aaa,   bbb,   ccc]

こんな風に他の行の容量に合わせて余計な空白を入れていたんだけど、この空白がそのまま空白文字として返ってくるようになったみたい。ただし 0.4.2 でしか試してないので、書いてる時点で既にリリースされている 0.4.5 では 0.2 系のときと同じ動作に戻ってるかもしれない*4。そもそも空白を入れたい場合は明示的に "" で囲むんじゃないかと思うんだけどね。まぁ、

こういう動作をする場合もあるので注意が必要かもね

という話でした。

cf. Twitter / wtnabe: Spyc 0.2.5 - 0.4.2 上げたらフロー ...

本来はこんな風におまけで書くことじゃないかもしれないけど、Spyc は文字コードを考慮しないから比較的古いコードから設定をひっぺがすのに便利だよね。euc-jp 生書きの設定を YAML に追い出しておいて、読み込み時に文字コード変換を挟むようにしておくと、あとで utf-8 に変更するとか楽にできる。

Tags: YAML PHP

*1 以前はイヤになった様子が書かれてたんだけど、もう探すのメンドイ。

*2 あんまり大きいデータ扱わないようにしてるし。

*3 例えば \x 形式のデータを与えられないとか

*4 結構な数の bug fix があるし。