コンピュータやソフトウェアのあれこれ@道民(&元道民)
Archive for 6月, 2011
第1回 アジャイル札幌に参加しました
6月 30th
6月29日に行われた、第1回 アジャイル札幌に参加しました。
セッション
他社の事例紹介はとても刺激的でした。
「Step by Step Agile」 @sandinistさん
前鼻さんのPMとしていままでやってきたことについて。
着実に勉強をして、実践をしているのがすごいなあと思いました。実践力、実行力。
「KTP+H」H(Happy)の軸を取り入れる、は普段の生活から取り入れて行きたいと思った。
最後時間が無くなって端折った「いまどういう形で仕事しているの?」をもっと沢山聞きたかったです。
これは、また、ご近所プログラマランチ会を開催するしかない。
「アジャイルな私と皆さん」 @niku_nameさん
同じ会社の肉さんのお話。
アジャイルの解釈の仕方など、すごく肉さんらしいプレゼンだなぁと思いました。
後半の会社事例がよかったです。(同じ会社だけど)
- SNVへのコミット数、コミット間隔
- チケット解決数
- wiki更新頻度
などの数値の変化を初めて客観的に見ることができました(おおお!!となっていました)
自分が入社してプロジェクトに入った時期とグラフを重ね合わせて、ひとりでニヨニヨしてました。
持っている問題点や目指したいところはそうですね、同じです。
ワールドカフェ
マインドマップに書いた内容から派生して、皆さんとお話できたのがとても良かったです。
(こんな話をしました:以下羅列)
- なぜ、アジャイルが積極採用されないのか
- アジャイルはアタリマエのことをしているだけなのに
- その発想自体がないんだと思う
- アタリマエのことをすると言われたことだけやってたらダメだから責任が発生するよね
- ペアプロで困っていること
- 部署間の温度差あるよね
- オセロ形式で挟めば間の人は変わるはず
- wikiとかコミットとかどんどんすればいいのに
- でもこわかったんだよね
- 議事録をwikiにして持ち回りで書いてもらうとか
- ひとりで出来ることからでも始めたい
- emacsかvimか
- 両方それなりに使えるのがいいよ
- 答えは北海道にあるんじゃないだろうか
- アジャイルの街札幌
おやつ美味しかったです!
スタッフの方に「ちゃんとチョコ用意しましたよ!!」と仰っていただきました。
感謝、感謝。
アジャイルって何?
今回の勉強会では
「で、アジャイルって何?」
という疑問がなんどもいろいろな人から出ていました。
それぞれ、自分の言葉で答えていた内容が印象的でした。
「あなたにとってのアジャイルって何?」
「あなたにとってのアジャイル的な仕事ってどんなものですか?」
っていうのは正直まだわかりませんが
“アジャイル的な仕事のやり方を探している人たちはなんか楽しそう”
と思っています。
Agileの意味のうち、”生き生きとした” という言葉のイメージが強いです。
だから、今漠然と持っているイメージとしては
- 明日仕事に行くのが嫌じゃない職場
- 仕事をするのが楽しい職場
- そういう職場で最大限の成果を出す仕事をする
こういう状態に近づいていければいいなと思っています。
第2回も参加しよう。
OSC北海道2011 – 企画LTのスライド集
6月 30th
先月開催されました、オープンソースカンファレンス2011Hokkaidoで、テーマ企画としてミニセッションを行いました。
どれも、短い時間できっちりを色んなことを伝えてくれた素敵なセッションでした。
スライドが上がっているので、企画LTのスライドリンク集を作っておこうと思います。
「守破離☆守破離 ~強くてニューゲーム~」
本当に簡単にですが、企画LTの冒頭にお話ししたことを再掲。
テーマには、これまでの積み重ねを振り返り、一度、基本に立ち返ろうという思いが込められています。
守破離
武道や茶道などで稽古を積む過程、修行の道における段階を示します。
- 「守(第一段階)」
師匠に流儀を習い、流儀を守ってできるようにする段階 - 「破(第二段階)」
師匠の教えから一歩踏み出し、打ち破る独自の工夫をする段階 - 「離(第三段階)」
師匠のもとを離れ、自分の道、新しい一流を編み出す段階
今回の企画LTはこのうち、自分が「守」の段階にいる人、「破」の段階にいる人を対象に考えました。
強くてニューゲーム
ゲーム「クロノトリガー」のシステムの通称。(自分は、このゲームを知らなかった…)
いちどゲームをクリアしたあとに、その時点のレベルやアイテムを保持した状態で、はじめからゲームを遊ぶことができるようになるという仕組みです。
それまでに修得したスキルをそのままに、基本に立ち返ってニューゲームをはじめてみよう、という意味が込められています。
スライドリンク集
守(1)
最初の一歩を踏み出すときのヒントになりそうな基礎的なHowToをいろんなジャンルからお伝えしました。
- はじめてのWebデザイン 口田聖子 @webbingstudio
- SlideShare: http://www.slideshare.net/webbingstudio/osc2011-hokkaido-web
- ブログ: http://webbingstudio.com/weblog/webdesign/osc2011_hokkaido_webdesign.html - はじめての勉強会 北村大助 @niku_name
- SlideShare: http://www.slideshare.net/niku_name/ss-8350263 - はじめてのライセンス 小岩秀和 @koiwa
- SlideShare: http://www.slideshare.net/koiwa/ss-8290670
守(2)
基礎を一周した人への「ニューゲーム」の入り口、次のステップへ進みたいと思えるきっかけになりそうなトピックをお伝えしました。
- はじめてのRuby 島田浩二 @snoozer05
- SlideShare: http://www.slideshare.net/snoozer05/20110602-osc2011dorubysapporopublic - はじめてのバージョン管理 沼田 一哉 @kaznum
- SlideShare: http://www.slideshare.net/kaznum/2011611-osc11do - はじめての正規表現 – 小野寺大地 @onodes
- SlideShare: http://www.slideshare.net/onodes/20110611-osc-hokkaidokeynote
破
さらに一歩進むため、話題の技術を時間内で出来る限りぎっしりお伝えしました。
- node.jsってどうなの? 佐藤 竜之介 @tricknotes
- SlideShare: http://www.slideshare.net/tricknotes/nodejs-8291634
- ブログ: http://d.hatena.ne.jp/tricknotes/20110613/p1 - 関数型言語ってどうなの? 村田 賢太 @mrkn
- SlideShare: http://www.slideshare.net/mrkn/ss-8285032
会場にお越しいただいた皆様、発表してくださった皆様、本当にありがとうございました。
「第1回 アジャイル札幌」に参加してきた
6月 30th
開催スタッフの皆さん、参加者の皆さん、ありがとうございました!楽しい時間を過ごさせて頂きました。
そもそもソフトウェア開発に携わっていないのと、なんとなく「アジャイル」という単語には小難しそうなイメージがあり、ずーっと避けて通っていたのですが、[リーンソフトウェア開発と組織改革]を読んだことで興味が発火。タイミングよく勉強会が開催されるなんて非常にラッキーでした。
内容としてはセッションが2本
・@sandinistさん:「Step by Step Agile」
・@niku_nameさん:「アジャイルな私と皆さん」
その後ワールドカフェ形式で、5,6人の小グループとなって机を囲み、マインドマップのような形でアジャイルについて色々と話し合いました。
セッションは、お二人とも「アジャイル開発とは?」+「自分のチームが取り組んでいるアジャイル開発」という形式。アジャイル自体よくわからない状態であった僕にとってはそれぞれ前半も勉強になりましたが、やはり後半の、お二人のプラクティスが非常に参考になりました。
@sandinistさんの「KPT方式だと、TryがProblemの解決方法しか出てこないからKPTH(Keep, Problem, Try, Happy)にした」というお話は凄く良かったです。コレは僕も毎回悩むところで、以前LOCALのささきさんが「Tryって夢を語るところじゃないの?」って言ってたんですけど、どうしてもProblemの為のTryばっかり出てきちゃうんですよね。なのでいっそのこと「夢を語るHappy」を設けるというのは良い案だと思いました。今度真似してみよう。
@niku_nameさんも実例のお話だったのですが、実際にチケット数やWikiページ数が増えていったという効果を目で見れる形で提示してくれたのは良かったです。Wiki、チケット、朝会、かんばんボード...こういったツールや仕組みというのはもちろん便利なのでしょうが、結果的には「改善の熱意」がチームメンバーに伝わったこと、そういった「意識改革」の表れがチケット数やWikiページ数に出てるんだろうなぁと思いました。
最後のワールドカフェは参加者の熱い気持ちがぶわっと固まった良い話が出来ました。僕としては同じチームに@y_ogagagaさんがいたこともあってだいぶ話しやすかったのですが、チームメンバー皆がそれぞれに今感じていること、問題だと思っていること、これからやっていきたいことをそれぞれ率直に話してとても良い雰囲気でした。僕がいたチームだけじゃなく、全体が非常に熱気がありました。こういうディスカッションはすっごい楽しい。
全体を通して僕が感じたのは、まずチームとして改善を意識して仕事をしている人たちがとても輝いているというか、ポジティブな姿が素晴らしいと思いました。僕は普段一人プロジェクトで仕事をすることが多いので、なかなか共同作業をする機会が無いんですよね。なのでプロジェクトに対してチームで対応し、その中でチームが幸せになれるように様々な改善方法にチャレンジするというのは、とても楽しそうで羨ましかったです。
それからアジャイルなソフトウェア開発というのは、旧態のソフトウェア開発が組織視点(企業が改善したいことを、企業として要件定義し、企業が開発する)であるとすれば、アジャイルなソフトウェア開発は人視点(顧客担当者が改善したいことを、顧客担当者と開発者が一緒になって要件定義して、顧客担当者と直接接する開発者が開発する)ということなのかなと思いました。開発の現場が(様々なツールや手法やコミュニケーションによって)改善されてスピードアップする、その結果顧客担当者の要求にも迅速に対応できる、そうすれば開発側も顧客側も幸せになれるよね、という感じかなと。リーン本に書いてあったとおり、結局は「人こそすべて」なんですよね。ソフトウェア開発者に限らずIT技術者というのは、機械と仕事しているわけじゃなくて、人と仕事をしているんだと、そこは間違わないようにしたいと思います。
最後に、ワールドカフェで同じチームだったアンベさんが熱く語った「Agile="想い"」という言葉が非常に印象に残りました。覚えておきます。
オーム社
売り上げランキング: 13120
[PHP]fork()した子プロセスが同じrand()を返す
6月 29th
<?php for ($i = 0; $i < 5; $i++) { if (pcntl_fork() == 0) { echo rand(0, 100), "\n"; exit; } }
これはばらばらの値を返すけど、
<?php echo rand(0, 100), "\n"; for ($i = 0; $i < 5; $i++) { if (pcntl_fork() == 0) { echo rand(0, 100), "\n"; exit; } }
と、親プロセス側で先に一度rand()が呼ばれていると、子プロセスが出力するrand()はすべて同じになってしまう。rand()は最初に呼ばれた時に自動的にsrand()されるので、同じseedが使われているということか。
Sapporo.coffee#2に行ってきました
6月 28th
今日は、えにしテックさんにお邪魔しました。
おいしいコーヒーを頂きながらのCoffeeScript勉強会デス。
※以降は、MacOS Xで実行したメモです
1. homebrewのインストール
https://github.com/mxcl/homebrew
rubyスクリプトが載っているので、それを使ってインストール
2. node.jsのインストール
Xcodeがインストールされていることを前提に、
$ brew install node
(このMacBookAirだと、インストール完了まで約6分)
3. npmをインストール
$ curl http://npmjs.org/install.sh | sh
4. CoffeeScriptのインストール
どこからでもコマンドを使うためには、-gオプションを付ける
$ npm install -g coffee-script
(-gオプションがないと、パスの設定が必要になる)
5. 実行方法
- コマンドライン
- コンパイル(JavaScriptに変換)
- ブラウザ(実行時にJavaScriptに変換)
6. 便利なモジュール?cakeコマンド
まず、Cakefileというファイルがないと、cakeコマンドがエラーになる
7. CoffeeScriptのドキュメント生成
PygmentsのCoffeeScript専用ラッパー
$ easy_install Pygment
$ npm install -g docco
スクリプトとコメントが左右に分離されたHTMLが出力される
8. テスト
CoffeeScriptのテストフレームワーク
https://github.com/pivotal/jasmine
9. 困ったこと
- CoffeeScriptだった時のエラー番号が表示されない
-> 作者も認識している問題 - ECMA Script5で実装されたsetter/getterがCoffeeScriptで表現できない
-> しばらくは対応しないってIssueに書いてある - IE6だと、GCの関係でメモリリークが起きる場合がある
関数の戻り値で参照とか返す場合に起こりえる - 関数の最後に付加されるreturnが頻発して見づらくなる
-> CoffeeScript上でreturnを書くことで回避できる - C言語のforに相当するJavaScriptを生成しようとしても意図しない結果になる
ex.)
# aとbは変数
hoge for number in [a..b] - すべての関数が無名関数なので、デバッグがしずらい
-> JavaScriptをCoffeeScriptに埋め込むくらいしか・・・
ってな感じの内容でした!
個人的な感想
最近、JavaScriptに興味が出て、CoffeeScriptのリアルタイム変換に感動して、
勢いで参加してみた訳ですが、node.jsがインストール出来たし、
とても有意義な時間を過ごすことが出来ました、感謝!!
でも、C言語のforに相当するJavaScriptが生成できないのは気持ち悪いですね。
これが、
list = [ 1, 2, 3, 4, 5 ]
n = list.length
console.log( list[i] ) for i in [0..(n - 1)]
こうなっちゃう。
var i, list, n, _ref;
list = [1, 2, 3, 4, 5];
n = list.length;
for (i = 0, _ref = n - 1; 0 <= _ref ? i <= _ref : i >= _ref; 0 <= _ref ? i++ : i--) {
console.log(list[i]);
}
次回は、読書らしいので、都合を合わせて参加したい所存です。
関係者のみなさま、今日は大変ありがとうございました!
おしまい。
えにしテックカフェ
6月 27th
えにしテックカフェ
新しいフォーメーションになってからの初のえにしテックカフェ営業日でした。
当日のお品書き
- @mayuco による『Design Rule Index』読み合わせ
- @tricknotes による Google Chrome Extension の作り方の紹介
どちらもとても勉強になりました。@mayuco & @tricknotes ++
次回は RubyKaigi 向けの特別仕様でお送りします。またのご来店をお待ちしております :-)
えにしテックカフェに行ってきました
6月 25th
素敵な憩処「えにしテックカフェ」で開催された勉強会
えにしテックカフェ 2011-06-24 に行ってきました。
エレベーターのドアが開くとお香が香る、癒しカフェです。
今回のお品書き
今回はNewえにしテックメンバーのお二人がひとつずつ。
- Design Rule Index を読んでみよう
- Chrome Extension で何か作ってみる
Design Rule Index を読んでみよう
mayucoさん担当。
普遍的なデザイン原理が書いてある「Design Rule Index」をみんなで順番に読みました。
今回はこの4つ。
- 80対20の法則
- アクセシビリティ
- 先行オーガナイザー
- 美的 ユーザビリティ効果
ソフトウェアを作るものとしても考えなくてはいけない大事なことがたくさんありました。
あれから、身の回りのいろいろな物のアクセシビリティが気になっています。
mayucoさんはわからないことがあった時に、とてもわかりやすい言葉に置き換えて説明をしてくれて
まさに先行オーガナイザーのプロだ!と思いました。
難しい言葉もたくさんあったけど、すごくよい本。
続きが読みたい。
Chrome Extension で何か作ってみる
りゅうのすけさん担当。
Chrome Extensionを作成するデモを通じて、
作成方法やインストール方法などについて、教えてもらいました。
途中、Chromeウェブストアの可能性についてなど、幅広い話もできて面白かったです。
Chrome Extensionを作るのはとっても簡単
ってりゅうのすけ君が言っていたので、作ってみました。
作ったもの
オム子のアイコンを押すと「(°⊿°) <ハロー」って吹き出しが出ます。それだけ。
作り方
りゅうのすけ君の言う通り、とっても簡単でした。
手順を思い出しながら、Chrome Extensions API リファレンスを参考にして作成。
必要なものは
- 「manifest.json」という名前のjsonファイル
- 「manifest.json」に記載した各画像、html、jsファイル
- 上記をまとめて格納するフォルダ
ルールに従ってmanifest.jsonを記述するとあっという間に「アイコンとポップアップさせるHTMLを指定して、ボタンを押したらポップアップが出る」ようにすることができました。
おもしろーい。
所要時間
30分くらい?もっとかかっていないかも。
「version」の綴りを間違えていたところが一番はまったところ。
そのほか
おやつが美味しかったです。飲み物も完備。
そして、たくさんおみやげをいただきました。
新しい発見や自分のリフレッシュにとても心地よい空間でした。
また行きたいです。
何故 KPT は K を沢山出さなければならないのか
6月 21st
何故 KPT は K を沢山出さなければならないのか
考察したことをここにつらつらと書こうと思ったのですが、オブジェクト倶楽部にある 「プロジェクトファシリテーション 実践編 ふりかえりガイド」 に僕が書こうとしてたことが全部書いてあったので引用するだけにします。
得てして良いことというのは,無意識に行っていることが多く, 特に当の本人が気づかないことがあります. 俗にコツや秘訣などと呼ばれることもあります. 当人には当たり前のことが,他の人にとっては刺激的なことがあります
厳選されたKeepだけではなく, 些細だと思うようなKeepも挙がるようになります. 書き出した本人が些細だと思うようなことが, 実は秘訣であることが多々あります. これにより,暗黙知が表出される可能性が高くなります.
最初にパパッと思いつく良い事というのは、大体の場合みんなで共有できているものですよね。
それも大事なのですが、個別に感じている良い事は、それらを挙げたあとに、悩みながら出した部分に書かれるようです。そういうのを拾うためにKeepを沢山書くようにしているはずです。ですのでKPTのKeepには個人的に些細と思えるネタでもじゃんじゃん書きましょう。






