頭のいい人が変えた10の世界

中学生向けに書かれた本かな。内容はわかりやすく書かれているけど浅かった。

被災地支援×超高速アルゴリズム取引×電子書籍×スマートテレビ×ぶつからない自動車×斬新な広告

IOTの話が一番面白かった。燃料で動くものはネットで繋がってオオイナルモノの一部になるのかな。

それからe-ラーニングも広がるんでしょう。

労働者になるための教養としての教育をわざわざ塾でお金を払って獲得するのは馬鹿らしいから、こういうのはe-ラーニングとか併用してコストは限りなく下がっていくんだろうなぁ。学びというのは社会デザインであって、ルーチンワークに投入するための画一的な教育っていうのは終わりに向かっているんだろうなぁと思うけど。

プログラミング業界で盛んな勉強会的なものっていうのを社会のデザインと考えれば、自発的なコミュニティが義務教育を超えたところにできる可能性は大いにあるわけで、知識を詰め込んで個々人の脳にグーグルの劣化版を作るみたいな教育をどこまで許容するかとかそういうことなのかなぁと思った。

40歳からの都会2田舎8の生活術

仕事は後から考えようっていうのはリスキー。あと田舎の風習に馴染めんのかっていう。当たり前のことが書いてあった。

田舎に住んでいるのでどうでもいいが、これ以上の田舎はちと困るね。

土地探し

  • 地目が山林、原野で畑を耕せる
  • 電気、水、ガス、電話が確保できる
  • 不便ではないが、ちょっと離れている
  • 安い

今借りている家庭菜園の規約が変わって、最長ニ年で再抽選になったのでちょっと困った。前のひとが何植えたかわかんないから豆類とかの間隔開けないといけない作物が植えにくくなるよねー。

マイ畑が欲しいなぁ。

Joose(Javascript版のMoose)

sof見てたら見つけた。

名前からして、MooseのJavascript版ですね。マニュアルはあるけど、モダンPerl入門でperlのサンプルから理解する方がいいような気がする。

ProductName モダンPerl入門 (CodeZine BOOKS)
牧 大輔
翔泳社 / 2940円 ( 2009-02-10 )


買ったまま放置してあるMOPの本も読まなければいけない。

ProductName The Art of the Metabobject Protocol
Gregor Kiczales
The MIT Press / 4007円 ( 1991-07-30 )


ExpressのスケルトンをCoffeeScriptに変換する

sof見てたら「xxx.jsっていうjavascriptをCoffeeScriptにしたいんだけど」「js2coffee使え」っていう問答があったので、使ってみた。

$ npm install -g js2coffee
$ express testapp
$ cd testapp
$  js2coffee app.js

で、無事に変換された

app = module.exports = express.createServer()
app.configure ->
  app.set "views", __dirname + "/views"
  app.set "view engine", "jade"
  app.use express.bodyParser()
  app.use express.methodOverride()
  app.use app.router
  app.use express.static(__dirname + "/public")

app.configure "development", ->
  app.use express.errorHandler(
    dumpExceptions: true
    showStack: true
  )

app.configure "production", ->
  app.use express.errorHandler()

app.get "/", routes.index
app.listen 3000
console.log "Express server listening on port %d in %s mode", app.address().port, app.settings.env

となると、srcフォルダを掘ってそこに.coffeeを入れて、libにコンパイルしたjavascriptを生成するようなCakefieを書けばいいような気がするが、nodeunitのテスト入れたいばあいどうすればいいのかな?

perlみたいに

$ cake
$ cake test

ってやれればいいんだが。

CoffeeScript自体のソースコードを読むのがいい気がしているが、他にベストプラクティス的なものはあるんだろうか?

Basic Category Theory for Computer Scientists

薄いわりにはなかなか読み進めることができないのは、数学的な素養が足りないからか。とhakellの型情報と突き合わせながら読んでいるが、何度も読みなおす本になりそう。

ProductName Basic Category Theory for Computer Scientists (Foundations of Computing)
Benjamin C. Pierce
The MIT Press / 2164円 ( 1991-08-07 )


わからないところがあれば検索して周辺情報を探しながら読んでるが、自分自身を出力するプログラムの後半のFunctorの説明がわかりやすかった。定義5もしっくりきた。T2 -> Tのμってjoin(concat)のことか。

他にはThe Typeclassopediaを読みなおしてみたけど、発見が色々あって得るものが多かった。これも何度か読みなおすことになりそう。

他に関数型プログラマのためのモナド理論ってのも読んだけど、これはちと難しかった。圏論の本を読んでおくべきなのだろうけど日本語の本でヨサゲなのはないだろうか。

ProductName Real World Haskell―実戦で学ぶ関数型言語プログラミング
Bryan O'Sullivan
オライリージャパン / 3990円 ( 2009-10-26 )


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 )