16012012 life
前半は体験談でないので面白くなかった。体験談である3章は参考になった。というかこれだけかな、この本は。
- 「親がなぜ?、何?」君になる
- 子供を導くため、親も勉強しよう
- 「ソースを頭にかければいいのかな」
二番目は背中を見てるってことですな。
16012012 life
前半は体験談でないので面白くなかった。体験談である3章は参考になった。というかこれだけかな、この本は。
二番目は背中を見てるってことですな。
15012012 life
うまく言語化されて86のパターンとして収められているので「あるある!度」は高い。本で言語化されて名付けられたチームの状態や行動をどうすんのか?っていうのは読者に委ねられているので、これを読んだからといって解決するわけではない。
アドレナリン中毒組織は、考えずに反応する。そのせいで、たいていのことは流動的で、はっきりしたものや長期的なものは何もない
猛烈に働けば偉いっていう組織文化はいやですね。
強いチームと弱いチームはダッシュボードを使うが、並のチームはほとんど使わない。
失敗を個人のせいにするカルチャーだと使いにくいですね。
クライアントは、実物を見るまで、そして「これは違う」と思うまで、自分が何を欲しいのかわからない
これは個人的には経験ありすぎ。ほかでもありすぎるんだろうけど。
他に面白かったパターン
14012012 javascript coffeescript
javascriptパターンの7章のサンプルをCoffeeScriptでかきなおしてみた。オリジナルのコードはこれ。
コンソールログを開くと実行されていることがわかる。
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()
この本どうなんだろう、一度読んでおくべきなのかな?
CoffeeScript: Accelerated JavaScript Development14012012 javascript
javascriptパターンの5章までで気になったとこのメモ
引数が一つの場合には配列の長さがセットされる
>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
13012012 javascript closure
jQueryで色々プラグインを入れると管理が大変だし、イントラになんか作るときにはclosureみたいにしっかり管理できるライブラリがいいのかなと。ちなみに一昨年の年末に購入した本だった。
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で興味を持ったので買った本なんだけどね。製薬企業とかケミカルな会社のコミュニケーションツールの構築にはいいライブラリなんじゃないかなぁと。
実際に使っている製薬企業あるのかなぁ?
13012012 HTML5
今回は富士市のコミュニティfでやります。
HTML5&CSS3実践入門 最新Web標準を使いこなす (The Pragmatic Programmers)みんな大好きCanvasとAudioタグまわりを広く浅くな感じでざざっとやりますので、初心者でもわかりやすい安心安全な内容になると思います。
もちろんそろそろ発売される予定のHTML5 Canvasのウォーミングアップのために参加するのも良いでしょう。
僕は原著読みましたが、Canvasを深く知りたいならおすすめです。
懇親会は今までの串エクスプレスや上腕二頭筋からは趣向を変えておしゃれ系の野村食堂でやります(富士駅から近いので帰りが楽)。懇親会だけ出たいというヒトがいたら、@kzfmまで連絡下さい。オシャレ要員としてカウントさせて頂きます。
それから、欲しい本があったらtweetしておいてください。
かなり腑に落ちた。
そばを打つということはどういうことなのか?どこをゴールにすればよくて、それぞれの過程にはどういう意味があるのか?
っていうのは蕎麦を打っていると普通に沸き上がってくる(とめどなく?)疑問なんだけど。
小麦粉を扱う(うどんや餃子の皮を作る場合)と違って蕎麦は水回しに気を使うわけですが、それは蕎麦は水溶性蛋白質を多く含むからだそうだ。
小麦粉のような粘性を示すグルテインは含まれず、水溶性タンパクであるグロブリン. アルブミンが主となっています。
それから割粉の役割は粘性らしい。
切ってる時に麺帯の向こうがだらし無く伸びてしまう理由もわかったので精進しよう。
一度はちゃんとしたそば打ち教室にでも入門するのがいいいかもしれんなぁ。
11012012 javascript closure
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章を読むとクラシカルなパターンの導出過程がわかりやすく書かれているのでオススメです。

ちなみに図はblockdiagで書いてみたのだけど、クラス図っぽくないですね(あとでちゃんと書き方を調べる)。
11012012 life
自己肯定感が足りないってことで170ページ引っ張った本
イマドキの学生は、お互いに意見をすり合わせていくというより、特定の一人の意見を選ぶために、それ以外の意見を捨てていくというやり方で合意に達する方法を好むらしい。
アサーティブネスとかどうすんだろうね。
まぁ自己肯定感の足りない大人に育てられたら、減点主義の物事考える子どもができるのは自然だよなぁと思ったので子どもと向き合うスタンスは考えさせられたかな。