2008年1月アーカイブ

php-mode.elのphp-mode-user-hook

1.4.0が出たという事で更新。
PHP mode for Emacsバージョン1.4.0リリース - HotPHPPER News

使ってみて困ったのは、(ChangeLogを読んでいなかったので)期待しないキーバインドになった点。C-.でバッファきりかえ(順送り)をしているので、それがTAGを開く(?)か何かに割り当てられてしまって困りました。困ったのですが、以前も困った気がしたので.emacsで設定をしていなかった確認しました。したら、C-.にnilを当てて無効化しようと企んでいます。

それをしているのが、php-mode-user-hook。で、1.4.0(2007-04-21の変更以後)ではphp-mode-user-hookはphp-mode-hookにリネームした模様。

(php-mode-user-hook): Renamed to php-mode-hook.
php-mode-1.4.0/ChangeLog

余談ですが、アップデートを教えてくれた上述のページでは、逆に変わったと書いてある事に要注意です。

  • php-mode-hookをphp-mode-user-hookに名前を変えた
PHP mode for Emacsバージョン1.4.0リリース - HotPHPPER News

さて、一部のファイルを操作するときに、異常に重くなる現象は解消されているのでしょうかね?

ようやくSection 11まで嘘翻訳が終わった。

一度目を通していたので、ここまでは割とすんなりと和訳を書く事が出来ました。ここから先のペースがどうなるかは不明です。

そういえば、YahooのOpenIDが発行できる様になったとかで、会社の隣の席の人が相当熱い興味を持ったようです。ので、ぼんやりしていると、あっという間に置いていかれそうな恐怖を感じています。

というのも、近々再会されるであろう社内勉強会のネタとしてもOpenIDを気にしているので、ぼんやりしてたら新鮮みがなくなるな、という心配があるからです。まあ、何も考えず「自分のここ最近の成果」として発表してしまえば良いわけですが。

勉強会ネタとしてOpenIDを考えるとすると、何通りかのセッション(?)が考えられる気がしています。というのも、スーツ寄りな人に向けた噛み砕いたプレゼンと、技術向けの(自分に出来る最大の)興味深い深いプレゼンなど。そうして、OpenIDに興味を持たせたら、セキュリティ関連の討論だとか、周辺技術などに関する調査報告等も出来そう。とか考えてみたものの、自分の能力でどこまで消化して発表する事ができるものか。多分、初歩の初歩ですら、人に向けて説明できるかギリギリでしょう。

今のところ、勉強会をするにしても@ITの記事をベースにやる事になる予感がしています。まあ、社内向けだし、何もしないよりましでしょう。

そんなこんなで、YahooのOpenIDは結構多くのRPで(今のところ)使えない今日この頃でした(2.0縛り)。


短かったので、調子に乗って12と13も翻訳しました。残る、1.1との互換性とセキュリティ考察は、後日まったりと翻訳する予定です。なんだか、今週末こそ、理解を深める為にじっくりと時間を使えそうな予感。

Dictionary.appいいね

つい最近まで、なにも考えずにExciteを使ってた自分が恐ろしい。

ネットワークを経由しない分、間違いなく早いという事に気づかない自分が、本当に恐ろしい。

頻繁に単語を調べる様になると、ウェブベースのモノを使う事は凄まじくストレス。単独でローカルなリソースを使える事は凄まじくよろしい。

ちょっとストレスを感じたら、出来る限り楽できる方法を探して実現する癖を身につけないといけませんね。まがいなりにも、技術者として給料をもらっている身でありながら、まだまだ基本が身に付いていないようです。

さて、Dictionary.appの活用方法について気にする様にしましょう。


まあ、気づけなかった位に「英語を避けてきた」という事ですね。お恥ずかしい限り。

まずい。先が見えなくなってきた。
Final: OpenID Authentication 2.0 - Final(自分で進めている嘘訳)

ひとまず、section 11までメモを取りつつ目を通したので、現在は翻訳中です。

正直、はじめから翻訳していればよかった気もしていますが、一度目を通したおかげで、それなりにスムーズに翻訳できている気もするので、その辺は気にしません。

翻訳と言っても、仕様書の日本語版を作ろうとしている訳ではありません。自分がOpenIDをそれなりに理解する為の資料を用意する事が目的です。英語はさっぱりなので、英語の資料があっても、あまり役にたってくれません。

翻訳はsection 8まで出来ました。残り半分くらいでしょうか。翻訳が一通り出来たら、次は疑問点の洗い出しと解決などを進める予定です。

結局、週末ではやりきれませんでした。

そんな感じで、今日も心が折れない様に経過メモを書いておきました。


ちゃんとした訳が出来れば、CodeReposにフィードバック(?)したい気持ちはあるんだけど、どう転んでも自分のはうんこ訳なのでためらわれます。(コミット権もらって)コミットしたら、いろんな英語の中の人たちが添削してくれたりするんですかね。うんこが流れない状況は恐ろしいので、その辺が心配。きれいなところに、うんこが付いたら、焦って流してもらえるかな?

21世紀枠でね。
107年待った!安房に初の春切符(野球) — スポニチ Sponichi Annex ニュース

ただ単に地元(生まれ育った市)にある、幾つかの高校の中の1つではありますが、何となく嬉しいです。高専の存在を知るまでは、「ここに通うんだろうなぁ」と思っていた高校だという点で何となく親近感(?)があるのかもしれません。

知っている子は全くいないのでアレですが、大会が楽しみです。


OBではないので関係ありませんが、OBとか在校生に対する寄付金詐欺とかありそうで怖いですね。

今日は、8と9だけ。

OPとRPを関連づけて、RPから認証要求をOPに送るといったあたりの話だと思います。

なんとなく、OpenIDのやりとりが頭の中で段々と肉付けされてきた気がしないでもないです。

誰かに説明しろと言われてもさっぱりな訳ですけどね。

  1. まずは最後まで目を通す(今ここ)
  2. 適当でいいから全文を原文のフォーマットに従って翻訳
  3. 読み返しつつどうしても分からないところをメモ
  4. 別の資料をあたるか、愚痴を書いて切り上げる
  5. python-openidとかでごにょごにょ
  6. ...

今のところの今後の予定。

個人的に、何かサービスを作るにしても、メールアドレスとかの個人確認情報(?)はいっさい持ちたくないので、OpenIDの理解は重要課題だと思っています(別の方法があればそれでもいいのですが)。なので、出来る限りは、粘ろうかなと。

そういえば、OpenIDを使う場合、RESTfulで効率的に使えるんですかね?Stateless Modeがあるから、いけるんでしょうけど、OPにかかる負荷とか大丈夫なんでしょうか。それとも、セッションっぽいリソースをRP側で作って、それを使うイメージなんですかね。

XML開発者の日(9回かな?)で聞いた、セッションリソースの話の続きはどこかで参照できるのでしょうか?

そんな事を気にしつつ、今日はこの辺でおしまい。

今日は、"7. Initiation and Discovery"だけ。

初期化とディスカバリに関するところでした。XRIは放置の予定でしたが、かなりプッシュされている印象です。HTMLを使ったディスカバリは(順序的に)最終手段とされているようです。XRIがセキュアな〜という話であれば、当然ではありますね。

さて、困りました。まだ読み終えてないので判断できませんが、自分でRPを作る場合に、XRIを使おうとするユーザをどう扱うべきでしょう。XRIを受け入れなくても許されたりするのでしょうか。なんとなく、XRIは難しそうに思えるのですが、"XRI Proxy Resolver"だかなんだかを使ってRPでは簡単に対応できる物でしょうか。

YadisだとかXRDSだとか、知らない言葉がポンポン出てきて困ります。そういえば、過去の仕様(実装)への互換性を考えないとなんですよね。"OpenID Authentication 1.1 ompatibility mode"への対応(?)は推奨レベルでしたっけ。

ようやく、半分ちょい手前くらいまで読む事が出来ました。消化量は全然ですが、それでも多少なりとも見えてきた物があるような気がしてきました。

さあ、あと1週間くらいで読み切る事ができるでしょうか。

5と6を読んだ。

署名生成の手順がさっぱり訳せない。これは、きっとpython-openidとかの実装(コード)を読んだら分かるのででしょう。まだ、読んでませんが。

ますますもって、テンパリ中。

"4. Data Formats"まで、読んだ。いまいち消化できてない。

まず、Abstractの"An end user can freely choose which OpenID Provider to use, and can preserve their Identifier if they switch OpenID Providers."に引っかかっています。「利用するOPを変えてもIdentifierはそのまま使える」という意味だと思うのですが、どういう事でしょうか。
これはあくまで、「そうする事も可能である」という事でしょうか。例えば、LiveJournalをはてなのOpenIDで使ってみましたが、"http://www.hatena.ne.jp/KoshigoeBushou/"はIdentifierでは無いと考えていいのでしょうか。この場合にIdentifierはいったい何になるのでしょうか。
仮に、"http://www.hatena.ne.jp/KoshigoeBushou/"がIdentifierであるとした場合、これを別のOPでそのまま使う事が出来るのでしょうか。
"2. Terminology"を読んでみると、"Identifier"(の親戚っぽいの)が沢山あって、さっぱりイメージがつかめません。ひとまずは、適当な理解度でごまかしつつ、全て読み終えた後でしっかりと理解できる様になる事を期待します。

XRIというのは全くもって理解できていません。が、本筋では無い気がするので、後回しの予定です。生体認証がどうとかいう記事を見かけた気がしますが、まあ、いいでしょう。

"3. Protocol Overview"の5番目のも、いまいちよくわかりません。

The OP establishes whether the end user is authorized to perform OpenID Authentication and wishes to do so. The manner in which the end user authenticates to their OP and any policies surrounding such authentication is out of scope for this document.
Final: OpenID Authentication 2.0 - Final
OpenID認証を行うことがエンドユーザーに認められているかどうかを、 OPは(認められていることを期待しつつ)確認します。 エンドユーザーがどうやってOPに自身を本物であると証明するか、 またその証明の手段はどうするか、といった点については、 この文書の範囲外とします。
Final: OpenID Authenticaion 2.0 - 最終版
  1. この段階では、RPから認証要求が送られている
  2. これを、RPからOpenID認証による認証の是非を問われていると考える
  3. OPは、RPに対して是非の結果を返す必要がある
  4. OPは、この是非の判断をエンドユーザに問いかける
    • OPがエンドユーザを信頼するための仕組みは仕様外
    • ↑は、一般に、OPでの認証(ログイン)
  5. エンドユーザはRPからの認証要求に対する返答をOP上で行う

以上、はてなのOpenIDを使ってLiveJournalを利用した流れから推測しつつ(勝手な事を付け加えたりしつつ)整理してみました。
どこまでこの仕様で決められていて、具体的にどういう事なのかは、やはり読み進めていかない事には分からないのでしょう。というわけで、これも適当な理解度のまま進めます。

"4.2. Integer Representations"はさっぱりです。「任意精度整数を〜な風にエンコードしなければいけない」のだろうという事はなんとなく分かるんですが、それをどうするかは消化しきれていません。2の補数だとか、ビッグエンディアンだとか、一番左のビットがどうだとか、Diffie-Hellman鍵交換がどうたとか、キーワードっぽいものは拾えた気がするのですが。

英語力がさっぱりなので、基本的にCodeReposの和訳をたよりに原文と照らし合わせて読み進めていますが、なかなか進みません。進みませんが、最後まで読まないと「何が分からないのか」が分からないので、それなりに急ぎ目で読んでいきたいと思っています。

こんな感じで、程よくテンパっております。

SSD恐るべし

恥ずかしながら、機械に弱いもので知りませんでした。

64GBのSSDって、17万とかなんですね。それなりのマシン(というか、MacBook)が買えますね。

"Air"を買うなら、ブログ記事などを観察して、熱対策などを考慮した上で、最適なHDDに取り替えるのが最良なんでしょうか。

なんとなく、SSDが値崩れ(?)するまでお預けになりそうな気がします。

自分が活動的になるための準備期間(?)を考えれば妥当かなぁ。

隣の芝生が青すぎた

会社の隣の席の人が、あの"Air"を予約したとか。

もう、あれです。激しく嫉妬です。社内SNSとか帰り際とか、阿呆なほどに絡んでみました。人が必死に「値段と用途が釣り合わない!」と言い訳しているのに、さ(40万円の構成ね)。まあ、直接使用感とか聞く事が出来そうなので、楽しみではありますがね。

さて、やられっぱなしではあれなので、勢いで"Time Capsule(1TB)"を予約してみました。これで、LeopardのTime Machineとワイヤレスネットワークが我が家にもやってくるわけです。

実は、世間の注目は"Apple TV"に集まっているという話もあるようですが、我が家には古いモノラルのテレビデオしかないので、今のところ興味がありません。オリンピックかワールドカップの頃にテレビを買ったりすれば、色々とテレビ関連の物をそろえるかもしれませんが。

徐々に、会社でもジョブズ愛が浸透しつつあるようです。

2007年秋版にアップデート。

「かな/英数」キーでの切り替えが出来なくて諦めていたわけですが、どうやら設定を誤っていたようです。

結論から書けば、.emacsに"(set-language-environment 'japanese)"を書いていた事が原因だったようです(default-input-methodが置き換わってしまうらしい)。CarbonEmacsでは、日本語周りの設定は既にされているので、余計な設定が.emacsで行われると期待通りの動作をしないという事でしょう。

以下、CarbonEmacsの日本語設定(Emacs.app/Contents/Resources/site-lisp/site-start.d/japanese-init.el)の差分(2007-06-23と2007-11-06)。

--- tmp/japanese-init.el        2008-01-16 23:46:43.000000000 +0900
+++ /Applications/Emacs.app/Contents/Resources/site-lisp/site-start.d/japanese-init.el  2007-11-06 14:51:03.000000000 +0900
@@ -6,7 +6,7 @@
 ;; Chinese and Korean settings can be made from lines in sections A and B.
 ;; In section A, some modification will be required.
 ;; e.g. sjis-mac and 'Japanese should be replaced.
-;; Lines in sections C and D are not necessary.
+;; Lines in sections C are not necessary.
 
 (when
     
@@ -27,15 +27,14 @@
   (set-clipboard-coding-system 'utf-8)
   (set-terminal-coding-system 'utf-8)
   ;; (set-file-name-coding-system 'utf-8m) ; already set
-
-  ;; prefer utf-8
-  ;; ref. http://groundwalker.com/blog/2007/04/emacs_coding_system_priority.html
   (prefer-coding-system 'utf-8-unix)
   ;; A. end
 
   ;; B. inline input method (window-system)
   (when (eq window-system 'mac)
+    (setq default-input-method "MacOSX") ;; dup, but necessary here
     (add-hook 'minibuffer-setup-hook 'mac-change-language-to-us)
+    (mac-translate-from-yen-to-backslash) ;; fix for Japanese environment
     )
   ;; B. end
 
@@ -75,19 +74,6 @@
      ))
   ;; C. end
 
-  ;; D. fix yen key problem on JIS keyboard
-  ;; Ando-san's code (see [Macemacsjp-users 1126])
-  (define-key global-map [2213] nil)
-  (define-key global-map [67111077] nil)
-  (define-key function-key-map [2213] [?\\])
-  (define-key function-key-map [67111077] [?\C-\\]) 
-
-  (define-key global-map [3420] nil)
-  (define-key global-map [67112284] nil)
-  (define-key function-key-map [3420] [?\\])
-  (define-key function-key-map [67112284] [?\C-\\])
-  ;; D. end
-
   ;; ============= Japanese language setting ======================
 
   )

.emacsを考えなしに使い回していると、こういう落とし穴があるわけですね。

"大日本人"観た

切ない。

とりあえず、UAと神木隆之介が出演していた事に驚きました。正直、スタッフロールで気がつきました。

UAがマネージャーで、神木隆之介が童ノ獣でいいんですよね?

何はともあれ、もう1回コントなり漫才なりを本気でやってくれないものでしょうかね。寸止め海峡とかVISUALBUMとかが欲しくなってきました。

"Code Craft"眺めた

4部くらいまで、斜め読みしてギブアップ。

恥ずかしながら、あまりの分厚さにくじけました。最後の、「答えと解説」を読んで、気になる(いまいち理解できていなそうな)章をじっくり読むのが良いのかも。

答えを読んでしまっては身もふたもないので、章末の「考えてみよう」(「熟考しよう」と「我が身を振り返ってみよう」)を先に読んで(考えて)、理解できていなそうな章を読むのが良いのかも。

何にしても、微妙に耳タコな話が多いので、あまり新鮮な気持ちで読む事が出来ませんでした。長いので。

じっくりと、考えながら読んでいく事にします。後は、定期的に「我が身を振り返ってみよう」を読み返すのも良さそうですね。

.hgignore

hg(Mercurial)では、バージョン管理対象外のファイルを".hgignore"に書く模様。CVSと同じらしい。
Mercurial for Subversion Users - Pylons Cookbook - PythonWeb

細かい事は、"man hgignore"で。

いわゆる、"svn pset ..."。

svnなら、実行権限を(exportしたときとかに)維持する為に、"svn pset svn:executable on hoge.txt"とかするわけです。で、hg(Mercurial)だとそれっぽいコマンドが探せませんでした。

探せませんでしたが、パーミッションを変えて"hg status"してみれば、変更を拾ってくれました。コミットして"hg clone"してみれば、ほぼパーミッションを維持してくれています。

"ほぼ"というのは、(多分)umaskが影響しているようで、777としても(umaskが022だからか)755となったからです。

さて、svn:ignoreと同じ事をするにはどうすればよいのでしょう?

おおむね、守れていると思う。

週明けあたり、チーム全員に勧めるか、ボスに全員に支給する許可を貰うか考え中です。ぜひとも、この本に書いてある事をチーム全員で共有したい。

レビューやら書評やらは、もう沢山書かれているはずなので、特に書きません。アジャイルな開発を行っている、もしくは興味がある、あるいは興味が無い方々は、買って読むべきです。是が非でも。

読みやすいし、面白い。いわゆる、「"The Pragmatic Programmers"(ならびに、オーム社)、恐ろしい子!」です。

まあ、タイムリーな話題だったので、変に興奮してしまっただけかもしれませんが、多分、買うといいですよ。

マジックナンバー"103"

釣り銭が103円だった時とか、103って数字になんだかドキドキする。

ちっさいころの、おやつを買う時にがんばって消費税を計算した、あの思い出が…。

今じゃ、概算で適当に買い物しちゃうもんなぁ。

初詣

会社のみんなで初詣。

さあ、今年も生き残りをかけた挑戦の始まりだ。


今年の抱負というか目標は、『生き残る自信』を得る事かな。言い換えれば、"Shut the fuck up and write some code."と言われる(言える)様な世界に足を踏み入れられたらな、と。とか言いつつ、うだうだ夢を書きなぐるのが楽しかったり。その辺のバランスをいいあんばいでつかめたら最高、かな。

上京。

プロフィール

このアーカイブについて

このページには、2008年1月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2007年12月です。

次のアーカイブは2008年2月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。