Promises/Aの実装にwhen.jsってのがあった

jQueryのdeferredはPromises/Aの実装らしい。テスト駆動javascriptではnode-promiseが載っていたんだけど、ほかにもwhen.jsっていうのがあったのでソースを読んでみた。

Promiseの提案にはいくつかあるらしい

仮想パネル: JavaScriptで非同期プログラミングを乗り切る方法(infoQ)も面白く読めた。

jQueryのDeferredのわかりやすいscreencast

英語もゆっくりでわかりやすい。

23:40からはじまるcacheの説明が参考になった。

面白かったので、全部見てみようっと。

ProductName jQueryクックブック
jQuery Community Experts
オライリージャパン / 3780円 ( 2010-08-18 )


人生の大問題を図解する!

内容に関しては、普段からビジネス本を読んでいるヒトにとっては目新しいことはないと思う。最後のほうのフェルミ推定とか、フレームワーク思考は常識でしょう。

個人的に興味を持ったのが、本書の図なんかをスキャナアプリ等で切り抜きしやすくしてあることかな。再利用を意識してあるのが面白い。

ProductName 人生の大問題を図解する!
永田 豊志
光文社 / 1600円 ( 2011-12-15 )


ちょっと気になったのは第二章のTOEICのスコアと年収に相関があるっていうことで、英語力が収入に直結するっていう話。でもこれって逆なんじゃないかなぁ。収入を得るためには英語力が必要で結果論的にスコアが上がったと考えるほうが自然だと思うんだよね。因果関係が逆だろうと。実際TOEICなんて役に立たんというか、ボトムラインのチェッカーでしょ、あれ。

少子高齢化は決定事項なのに今の社会制度はなぁ、かなり危ういよなとは思っているけどねー。

かなりわかりやすく図も多めで楽に読めるので、あまりビジネス本を読まないヒトにとってはいい本だと思いますね。

Active Directoryのログイン名を使ったOpenID認証を考えている

Windowsでガチガチに固められている職場で、オープンソースのソフトウェアを導入するときに問題になるのが新規登録をどうするかです。イマドキのソフトウェアだと基本的にOpenIDの認証システムがついてるのだけど、イントラで使いたい場合には問題ありありなわけです。

ユーザーの立場だと新規登録ほど面倒なものはないし、自分がユーザーだったらイントラに新規登録が必要なウェブサービスなんてまず使わないしね。端末ログインする時に認証してるんだからそれを使い回せよって言いたくなる気持ちもわかります。

というわけで、イントラにOpenIDサーバーがあると便利だよなぁと思っているのだけど、ユーザー管理しているのは別の部署でOpenIDサーバーなんて立ててくれそうにないんですよね、さぁどうしたもんかと。

どうしたもんか、どうしたもんかと思いながらOpenID EnabledのPython Exampleを動かしていたら、サーバー側の認証ってサーバー側に任せられてるのねってことに気づいたというかユーザー名送ったらオウム返ししても一応OKなのか。

と言うことは、IE使えば

var o = new ActiveXObject("WScript.Network"); 
var uname = o.UserName;

で得られたログインネームをサーバーに渡して、それを返せばとりあえずOpenID対応できるんじゃないかなと思った。セキュリティはあんま考えなくていいようなサービスだったらこれでいい気がするが、どうかな。

ProductName OpenID: the Definitive Guide
David Recordon
Oreilly & Associates Inc / 2550円 ( 2012-04-30 )


参考

Canvasに富士山を描く関数

Canvasタグとflotを使って富士山を描いてみた。静岡県民だとこの関数は小学校高学年で習うのかな?

もしこの関数を知らない静岡県民がいたら、Canvasタグから勉強したほうがいいですね。タイミングよく来週HTML5読書会があります。しかもCanvasの章ですし、参加しないわけにはいけませんね。

$(function () {
    var f = function(x) { return Math.pow(x,4) - Math.pow(x,2) + 6 };
    var s = function(x) { return 12 / (Math.abs(x)+1) };
    var g = function(x) { return 1/2 * Math.cos(6*x) + 7/2 };

    var d1 = [];
    var d2 = [];
    var d3 = [];
    var d4 = [];

    for (var i = -1; i <= 1; i += 0.1)
        d1.push([i, f(i)]);

    for (var i = -7; i <= -1; i += 0.1)
        d2.push([i, s(i)]);

    for (var i = 1; i <= 7; i += 0.1)
        d3.push([i, s(i)]);

    for (var i = -2; i <= 2.1; i += 0.1)
        d4.push([i, g(i)]);

    $.plot($("#placeholder"), [ { data:d1, color: "rgb(0,0,255)" }
                  , { data:d2, color: "rgb(0,0,255)" }
                  , { data:d3, color: "rgb(0,0,255)" }
                  , { data:d4, color: "rgb(0,0,255)" }
    ]);
});

ProductName HTML5&CSS3実践入門 最新Web標準を使いこなす (The Pragmatic Programmers)
ブライアンP.ホーガン
インプレスジャパン / 2940円 ( 2011-07-08 )


プログラミングでメシが食えるか!?

Cでのソケットプログラミングの本が良かったのと、ブログが面白いので買って読んでみた。

僕の場合はPerlからプログラミングの世界に入ったので、Cが主戦力の著者の話は参考になった。 大雑把に処理を書いてみてどういうメソッド名にしたら良いかとか考えるのは大体どの言語でも共通なのかもしれない。それから「普段と違うことをする場合にコメントを残しておく」とか。

一方、自作のライブラリを揃えておいたりサンプルソースを流用っていうのはCPANのような巨大なリポジトリを持っているperlの文化とはちょっと異なるかなと。

想定読者はプログラマーなりたてのひとかな。

冬のスマタ

やたらと鉄分が高い息子のために、大井川鉄道の一泊付きSL乗車プランに行ってみた。ネーミングがいいですね。SL降りてからのバス道が怖かったけど。

駅の向かいにSLを展示しているので早めに付いても飽きない。

1326795242

1326795245

このSLに乗った。ただゆられるだけじゃなくて色々と趣向が凝らしてあるので楽しい路線の旅だった。

1326795247

翠紅苑という宿に泊まった。温泉がなかなか気持ちよかった。料理は値段相応かな。

1326795249

1326795251

1326795253

1326795255

1326795257

ホテルの隣に元大間小学校っていうのがあって、僕の小学校もあんな感じ(田舎に住んでた)だったのでちょっと懐かしかった。

1326795259

1326795261

楽しい旅だった。

クライアントサイドのMVCを考える本

Spineっていうクライアント側でMVCを実現するWebフレームワークが面白かったので、そのライブラリの作者が書いたJavascript Web Applicationsっていう本を読んでいる。

ProductName JavaScript Web Applications
Alex Maccaw
Oreilly & Associates Inc / 3020円 ( 2011-08-30 )


先週末の温泉旅行と、今日の出張の新幹線の行き帰りで7章まで読んだので感想をちょっと書いておくが、サイ本に対してフクロウ本って言われるようになるのかなぁって感じの内容だと思うがどうなんだろう。

手を動かしながら学ぶという本ではなくて、クライアント側でMVCを実現するにはどうしたらよいかという方法論を学ぶ本なので、写経して覚えるというより、自分の中の知識を統合して一つ上のレベルに昇格する感じ。

  • Spineを一通り使えるようになっていること
  • JGPの内容を理解していること
  • Javascriptパターンを理解していること

は必須な感じ。副題がjQuery developer's Guide to Moving State to the Clientと書いてあるんだけどjQueryの知識はあんまり必要でなくて、ググッて理解できるか、該当するソースコードを読めればOKだと思います。それよりもなぜそういう実装にしないといけないのか?っていうことを考えることを求められますね。

ProductName JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス
Douglas Crockford
オライリージャパン / 1890円 ( 2008-12-22 )


ProductName JavaScriptパターン ―優れたアプリケーションのための作法
Stoyan Stefanov
オライリージャパン / 2940円 ( 2011-02-16 )


静岡 もう一度泊まりたくなる宿100選

修善寺のあさばはいつか行ってみたい。

ProductName 静岡 もう一度泊まりたくなる宿100選
マイルスタッフ
マイルスタッフ / 1575円 ( 2011-03 )


風の森 秋津穂純米

無濾過生なのでシュワシュワする。さらにキリッとしていて残らない感じでさくさくいける感があるのにアルコール度17%なのでかなり酔う。

1326711381

燗付けしないタイプのなかでは好みだな。