Programmingの最近のブログ記事
ZIGOROuさんの記事を読んで知った通称SREGを、先日作ったMT 4.1のOpenID 2.0 OPプラグインに実装してみた。requiredとoptionalの違いとか、ユーザーが何を送るかを選ぶ機能とかを実装しないといかんな。
で、テストしようと思ったんだけど、どのRPがSREGを使ってくれるのかわからないので、とりあえずMTの標準のOpenIDコメント機能にもSREG機能を使わせるようにして、myopenid.comでテストして、んでローカルでテストしてみた。とりあえず動いた。
SREG使ってるRPを知ってる人教えてください。
を書いた。
http://code.sixapart.com/trac/mtplugins/browser/trunk/openid2-server
ちょっとまだ迷ってるところがいくつかあるのだが、まあまあ晒してしまえという勢いでコミットしたので、バグだらけでご勘弁。新しいNet::OpenID::Serverのやつも必要です。
で、僕もYappoさんの丁寧な解説とコード、それにid:lopnorさんのコードのおかげで楽できました。ありがとうございます。
http://fastladder.com/
http://lopnor.homeip.net/~danjou/authenopenid/
http://pibb.com/
http://twitwi.tw/
http://limilic.com/
で試したんだけど、pibbはhttpsが必要でこのホスティングに入ってないので、ログイン完了後の画面に遷移できなかった。twitwiはopenid2.local_idに無難なURLを指定すればログインできたけど、指定せずにmt.cgi?__mode=openidみたいなidentityで行くとエラーになった。limilicもログイン完了後のリダイレクトでエラーになった。たぶんこっちのコードが悪いんだろうけど、どこを直すかわからないので誰かが教えてくれるのを気長に待つことにします。
リッチテキストエディタのプラグイン化
Template Set関連API
Atom 1.0 (PP)
XML-RPCでウェブページ関連のAPI追加
MTML as a programming language
くらいかな。
ある場面で、「今の仕事のやりがいは何ですか」と唐突に聞かれて、答えを考えてしまった。続けて「例えば自分で実装した機能がお客に売れていくらいくら入ったとき、とか」とヒントを出されて、答えに詰まった原因がわかった。
このブログでも何度か書いたが、昔はある種のテクノロジーを技術者に伝えるという仕事をしていた。伝えるためにそれを利用するコードを書いてはいたが、当時はコードを書くのが仕事というわけではなかった。コードは伝えるための手段で、目的ではなかった。
答えに詰まってしまった原因は、最初「やりがい?コードを書けるからに決まってんだろ。他になんかあるのか?」と思ってしまったからだった。そして、「いや待て、それは求められている答えじゃない」と考え直していたのだった。
結局、「いやー、手段が目的になっちゃって。コード書くのが好きなんでそれがやりがいなんですよね。売り上げとかどうでもいいっす。よく知らないし。」とか答えて、「それわかります」とわかってない顔で応対された。
最近になっても、たまに人に「もう話しないんですか」とか「本書かないの?」とか聞かれることがあるんだけど、かつてその姿に憧れて、すこし前まで本当に好きでやっていたのがウソのように、今はそういう気にはまったくならない。毎日書いているコードで十分表現できているから、それ以上表現する気にならないんだよね、とかかっこつけて同僚に話してみたが、本当にそうなのかは自分でもよくわかっていない。
ただ、これだけは確かなようだ。今携わっている仕事は、「コードを書くこと自体が好き」、「書いたコードをたくさんの人に使ってもらえてうれしい」、「どんなコードを書くかは自分の腕に任されている」、という個人的な幸せに加えて、「その道の達人中の達人が身近にいていくらでも助言してもらえる」、「お互いに尊敬しあっているチームが個人を維持しながら集団として一つの製品を作り上げる」というチームワークの楽しさも絶妙な配合で合わせ持っている。
Movable Type 4というある分野で最強のソフトウェア製品の開発に一から携わることができる上に、自分の趣味のような機能をドサクサにまぎれてその中に入れ込んでしまうことができるような自由度。しかも自分の趣味かと思っていたらちゃんと実用的な用途を思いついてくれるユーザーがちゃんと存在する。こんな仕事にたまたまめぐりあえて、幸運としか言いようがないと思う。
はてなスターをMovable Typeで表示する方法はいろんな人が書いてるけど、やっぱHTMLタグ書くのはMTらしくないだろーってことで、今日のhack-a-thonでMTHatenaStarを書いてみた。
出力するHTMLについては、「さりげないはてなスター」に書いてあったHTMLを丸ごといただきました。ありがとうございます。
使い方
- はてなスターにブログを登録し、トークンを入手する。
- プラグインフォルダにMTHatenaStarフォルダを丸ごと放り込む。
- プラグインの設定画面で、1で取得したトークンを入力し、保存する。
- はてなスターを表示したい場所に<$MTHatenaStar$>を書く。ただし、MTEntriesのコンテキスト内(つまり、MTEntryTitleとかを使える場所)に。
- 再構築(ダイナミックパブリッシングなら不要)。
- はて☆スタ。
はてなスターを表示する場所に<script>タグも一緒に表示されちゃうのがいやなときや、はてなの指示通りに<head>の中に書きたいときは、<$MTHatenaStarScript$>タグを使えば、<script>だけを別途出力できます。ただし、処理の関係で<$MTHatenaStar$>よりは前に置く必要があります。
もちろんダイナミックパブリッシング対応だよ!
Movable Type 4で最初に目にするDashboard。そこにはプラグインでwidgetを追加できるのです。ところで、最近ブログというものの存在を脅かしているTwitter。一言二言ブログに書くのはちょっと重いけど、Twitterならお気楽につぶやける。MTにログインしてみたものの「ブログを書く」ボタンが押せない...。
そんなとき、MT4のダッシュボードから直接Twitterでつぶやけたら便利やね。はいきた、それPlu。今日は木曜日、Six Apart hack day (エンジニアは1日ハックしてていいよの日)。
こちらからどうぞ。あと、作ってる最中にustreamしてたもんで、プラグインを紹介する部分をビデオ撮りしてみた。こちら。
MT4まじ面白いっすよ。
GoogleがPingのエンドポイントを公開したそうなので、MTでエントリを作成したときにPingを飛ばすプラグインを作ってみた。RPCのほうはextendedPingとかいっててめんどくさいので、ReSTのエンドポイントに飛ばすことにした。
プラグインの設定でフィードのファイル名を指定すればchangesURLパラメータも送信します。
ほんで、エントリを公開するときにPing GoogleにチェックすればPingが飛びます。
使ってみたい物好きな方はこちらからどうぞ。
MSでXMLやってるDerekさんのエントリ。何度もいろんなところで言われていることではあるけれど、やっぱり何度聞いてもこれって問題だよなぁと。
だってさ、「hoge & moge」っていうコンテンツが元々あって、それを「マークアップ」したいなあと思って「<strong>hoge & moge</strong>」ってしたらとたんにエラーになるのっておかしくない?マークアップするのにコンテンツを書き換える(&)っておかしくない?いや、抽象レベルを一段上がれば、それは書き換えてるわけじゃないのはわかってるんだけどさ。こんな議論もきっと何度も繰り返されて識者の面々はいいかげんうんざりだろうとは思うけどさ。でもやっぱ直感的じゃないよ。
いや、でもさ、だからってPHPのシリアライザしか読めないデータを流通させるってのは、XMLによって一度否定した過去を繰り返すことにはならないのかな。JSONとか流通してるし、もういいのかな。結局XMLがクロスXXXだね、ってのはそれがテキストであることだけに意義があったわけで、だったらPHPのシリアライズもJSONもテキストだからXMLの意義を損ねていないってことになるのかな。XMLのすごいとこはタグによるツリー構造じゃなくて、それが文字コード問題までもある程度解決した「プレーン」テキストなんであるってことでしかないんだろうか。達人プログラマーにも「テキストにしとけ」って書いてあったし。Atomフォーマットも、XMLではなくJSONで規定したほうがXHTMLだのencodedだのを考える必要がなくて楽チンだったのかもしれないな。
| 達人プログラマー―システム開発の職人から名匠への道 アンドリュー ハント デビッド トーマス Andrew Hunt by G-Tools |
わが社の誇るクリエイティブデザイナの