「勉強しろ」と言わずに子供を勉強させる法

前半は体験談でないので面白くなかった。体験談である3章は参考になった。というかこれだけかな、この本は。

ProductName 「勉強しろ」と言わずに子供を勉強させる法 (PHP新書)
小林 公夫
PHP研究所 / 735円 ( 2009-05-16 )


  • 「親がなぜ?、何?」君になる
  • 子供を導くため、親も勉強しよう
  • 「ソースを頭にかければいいのかな」

二番目は背中を見てるってことですな。

アドレナリンジャンキーを読むと晴れるモヤモヤが結構あるよ

うまく言語化されて86のパターンとして収められているので「あるある!度」は高い。本で言語化されて名付けられたチームの状態や行動をどうすんのか?っていうのは読者に委ねられているので、これを読んだからといって解決するわけではない。

アドレナリンジャンキー

アドレナリン中毒組織は、考えずに反応する。そのせいで、たいていのことは流動的で、はっきりしたものや長期的なものは何もない

猛烈に働けば偉いっていう組織文化はいやですね。

ダッシュボード

強いチームと弱いチームはダッシュボードを使うが、並のチームはほとんど使わない。

失敗を個人のせいにするカルチャーだと使いにくいですね。

  • 情報を示すだけでなく判断をうながす
  • チームが主観的な報告をしないといけないときに、比較をするための枠組みがある

かかし

クライアントは、実物を見るまで、そして「これは違う」と思うまで、自分が何を欲しいのかわからない

これは個人的には経験ありすぎ。ほかでもありすぎるんだろうけど。

他に面白かったパターン

  • 「どうしてミケランジェロになれないんだ?」
  • 残業に見る予兆
  • 裸の組織
  • 身につかない教訓

茅乃舎だしが旨い

実家からもらったので使っているんだけど、これはオススメです。

CoffeeScriptでObserverパターン

javascriptパターンの7章のサンプルをCoffeeScriptでかきなおしてみた。オリジナルのコードはこれ

コンソールログを開くと実行されていることがわかる。

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


CoffeeScriptで書きなおしたほうの実行結果。ターミナルで確認できるので楽ですね。

$ coffee pubsub.coffee 
Just read big news today
Just read big news today
Just read big news today
About to fall asleep reading this interesting analysis

コード。デバッグ用にprintSubscribersっていうメソッドを付けた。それからオリジナルコードはmix-inしていたので最初はfor-of文でそのとおりに書いたんだけど、for-of文でtypeof methodするとfunctionじゃなくてstringが返ってくるのが嫌だったので、継承を使って実装してみた。

class Publisher
  constructor: ->
    @subscribers = { any:[] }

  subscribe: (fn, type) ->
    type = type or 'any'
    @subscribers[type] = [] unless @subscribers[type]?
    @subscribers[type].push(fn)

  unsubscribe: (fn, type) -> @visitSubscriers('unsubscribe', fn, type)

  publish: (publication, type) -> @visitSubscriers('publish', publication, type)

  visitSubscriers: (action, arg, type) ->
    pubtype = type or 'any'
    subscribers = @subscribers[pubtype]
    for subscribe,i in @subscribers[pubtype]
      switch action
        when 'publish' then subscribe(arg)
        else @subscribers[pubtype].splice(i,1) if subscribe is arg

  printSubscribers: -> console.log(@subscribers)

class Paper extends Publisher
  daily: => @publish('big news today')
  monthly: => @publish('interesting analysis','monthly')

class Subscriber
  drinkcoffee: (paper) -> console.log('Just read '+ paper)
  sundayPreNap: (paper) -> console.log('About to fall asleep reading this '+ paper)

paper = new Paper
joe = new Subscriber
paper.subscribe(joe.drinkcoffee)
paper.subscribe(joe.sundayPreNap, 'monthly')
#paper.printSubscribers()
paper.daily()
paper.daily()
paper.daily()
paper.monthly()

この本どうなんだろう、一度読んでおくべきなのかな?

ProductName CoffeeScript: Accelerated JavaScript Development
Trevor Burnham
Pragmatic Bookshelf / 2355円 ( 2011-08-03 )


javascriptにおけるホイスト(まきあげ)

javascriptパターンの5章までで気になったとこのメモ

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


new Array()の振る舞い

引数が一つの場合には配列の長さがセットされる

>var ar = new Array(5);
undefined
>ar
[]
>ar.length
5

関数のホイスト

関数宣言はホイストされるが、関数式は変数のみがホイストされる。

(function(){
  console.log(typeof hoisted); // function までhoistされる
  console.log(typeof notHoisted); // 変数のみhoistされるのでundefined

  var notHoisted = function(){
  };

  function hoisted(){
  }

}());

実行してみる

$ node t.js
function
undefined

Closure Libraryはイントラのアプリ作るのにはいいかもと思った

jQueryで色々プラグインを入れると管理が大変だし、イントラになんか作るときにはclosureみたいにしっかり管理できるライブラリがいいのかなと。ちなみに一昨年の年末に購入した本だった。

ProductName Google API Expertが解説する Closure Libraryプログラミングガイド
伊藤 千光
インプレスジャパン / 3570円 ( 2010-12-10 )


Closure Libraryが得意とするのは、もちろんインタラクティブなWebアプリケーションの開発です。Googleのアプリケーションほど大規模でなくても、GUIを中心とするデスクトップライクなWebアプリケーションには効果的です。

そう思うが、ライブラリ特有のお作法を学ぶコストがかかるのかなぁと感じたのであった。

本書は全体を通してTiny WordっていうWebアプリを作ってGAE/Pにデプロイするところまでカバーしている。一通り写経してみたんだけど、理解しながら読み進めたというよりは欠かされている感があったかも。javaなヒトのほうがすんなりと理解しやすいのかなぁと。

個人的にはClosure LibraryのツールバーがWAI-AREA規格に対応していてキーボードショートカットがさくっと実装できるあたりや、特に企業のイントラアプリに必要そうなウィジェットが揃っているのが気に入った。職場でwebアプリを作るときには第一選択肢にしようっと。

写経してたときに気になったのはコードが断片すぎてコードを追いにくかった。メソッドも断片だったのでgogle cpdeのレポジトリの参照は欠かせなかった。

おまけ

Closure Libraryを利用したwebアプリがなかなか見つからないんだけどchemoinformatics関連ではちょくちょく見かける。というのは化学構造エディタをweb上に実装したいっていうニーズがあるからかなぁと。

ケミストだったらタブレットでさくっと書けるエディタとELNのセットが欲しいだろうしね。

これなどおもしろそうですね。 そもそもGoogle Closure - Building Complex Applications with JavaScriptで興味を持ったので買った本なんだけどね。製薬企業とかケミカルな会社のコミュニケーションツールの構築にはいいライブラリなんじゃないかなぁと。

実際に使っている製薬企業あるのかなぁ?

第三回HTML5読書会をやります

今回は富士市のコミュニティfでやります。

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


みんな大好きCanvasとAudioタグまわりを広く浅くな感じでざざっとやりますので、初心者でもわかりやすい安心安全な内容になると思います。

もちろんそろそろ発売される予定のHTML5 Canvasのウォーミングアップのために参加するのも良いでしょう。

ProductName HTML5 Canvas
Steve Fulton
オライリージャパン / 3360円 ( 2012-01-21 )


僕は原著読みましたが、Canvasを深く知りたいならおすすめです。

懇親会は今までの串エクスプレスや上腕二頭筋からは趣向を変えておしゃれ系の野村食堂でやります(富士駅から近いので帰りが楽)。懇親会だけ出たいというヒトがいたら、@kzfmまで連絡下さい。オシャレ要員としてカウントさせて頂きます。

追記 120113

それから、欲しい本があったらtweetしておいてください。

手打ちそばの疑問に答えていただいた

かなり腑に落ちた。

そばを打つということはどういうことなのか?どこをゴールにすればよくて、それぞれの過程にはどういう意味があるのか?

っていうのは蕎麦を打っていると普通に沸き上がってくる(とめどなく?)疑問なんだけど。

小麦粉を扱う(うどんや餃子の皮を作る場合)と違って蕎麦は水回しに気を使うわけですが、それは蕎麦は水溶性蛋白質を多く含むからだそうだ。

蕎麦粉の性質

小麦粉のような粘性を示すグルテインは含まれず、水溶性タンパクであるグロブリン. アルブミンが主となっています。

それから割粉の役割は粘性らしい。

切ってる時に麺帯の向こうがだらし無く伸びてしまう理由もわかったので精進しよう。

一度はちゃんとしたそば打ち教室にでも入門するのがいいいかもしれんなぁ。

closure libraryはクラシカルな継承を実装してた

closure libraryを試している。

inheritsメソッドってクラス指向だよなぁと思いながらソースコード読んだら(1442行目)、javascpriptパターンでいうところのクラシカルパターンそのものだった。

goog.inherits = function(childCtor, parentCtor) {
  /** @constructor */
  function tempCtor() {};
  tempCtor.prototype = parentCtor.prototype;
  childCtor.superClass_ = parentCtor.prototype;
  childCtor.prototype = new tempCtor();
  childCtor.prototype.constructor = childCtor;
};

テンポラリのオブジェクトをかましていて継承関係はこんな感じになっているんだが、javascriptパターンの6章を読むとクラシカルなパターンの導出過程がわかりやすく書かれているのでオススメです。

classical

ちなみに図はblockdiagで書いてみたのだけど、クラス図っぽくないですね(あとでちゃんと書き方を調べる)。

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


○のない大人×だらけの子ども

自己肯定感が足りないってことで170ページ引っ張った本

ProductName ○のない大人 ×だらけの子ども (集英社新書)
袰岩 奈々
集英社 / 735円 ( 2011-03-17 )


イマドキの学生は、お互いに意見をすり合わせていくというより、特定の一人の意見を選ぶために、それ以外の意見を捨てていくというやり方で合意に達する方法を好むらしい。

アサーティブネスとかどうすんだろうね。

まぁ自己肯定感の足りない大人に育てられたら、減点主義の物事考える子どもができるのは自然だよなぁと思ったので子どもと向き合うスタンスは考えさせられたかな。