けんちゃんくんさんの Web日記

DCI meetup

DCI meetupに参加してきたような。

Copeから直接DCIの話を聞ける機会だというのに、残念な英語力により撃沈。

外タレがメインのイベントでは質問をするというマイルール(アジャイルサムライのセミナーのときに決めた)に従って質問をしたものの、やっぱり自分の伝えたいこと、聞きたいことを表現するのは不可能であった…

参加費分くらいは恥しい思いをしたと思うので、またこれを糧にがんばっていこうと思ったのでした。

RunningLeanを買いました

twilogによると去年の11月21日に角さんのRunningLeanワークショップを社内で開催してもらったのですが、本を買うのを忘れていたのでした。

ビジネスモデルキャンバスさえろくに知らない自分にとっては、非常に楽しめるワークショップでした。(私のチームは若干テーマ選択をあやまった感がありましたが) 終了後のアンケートにも書きましたが、半日コースだけじゃなくて一日コースがあるともっと楽しめるんじゃないかなぁと思いました。

次回のワークショップの予定はまだないようですが、まだ受けてない人はここに登録しておくといいのではないでしょうか。 Running Lean Workshop

(そして今日もロトの紋章15巻を手に入れることができずに帰路につくのであった…)

2013年仕事始め

今年の一字は「守」にしました。

昨年末から、お仕事ではいままで余り経験のないことをやらせてもらっているんですが、そういう時こそ先人の知恵をもっとしっかり守ってやらないといけないと感じています。

来年は「破」にできるように今年はしっかり地に足をつけてやっていこうと思います。

あけましておめでとうございます

あけましておめでとうございます。

昨年は8月を最後にWeb日記力が底辺まで落ちてしまいましたので、今年は少しずつ回復させていきたいと思っております。

皆様今年も宜くお願い致します。

「AWS クラウドデザインパターン」を読みました

AWSとか今まで無縁だったのですが、そうも言ってられなくなってきたところで丁度よさそうな本が出たの読んでみました。

「AWSとかよくわからん」という人にもオススメ

クラウドデザインパターンという名前は付いていますが、クラウド環境でなくても普通に使えるインフラのパターンも沢山載っています。(もちろんクラウドだからこそのパターンもあります)

その上で、それをAWS上で実現するならどういうサービスを使って、どのように構成すればいいかというのが書かれており

  • クラウドかどうかに関係ないインフラを設計する上でのパターン
  • それをAWSで実現する方法

を一気に学ぶことができます。

AWSの強力さも実感できる

特にELB、ElasticIP、CloudWatch、CloudFormationあたりの組み合わせは圧巻です。

これと同じことを自前でやれと言われたら頭が痛くなってしまいますね…

また、2章ではEC2が1つのWordPressにパターンを適用していってかっこいいインフラにする過程が紹介されていて、AWSの利点を非常にイメージしやすいと感じました。

とりあえず教養として読んでおくといい

「AWSバリバリ使ってるぜー」という人はともかく、そうじゃない人は一般教養として読んでおくといいんじゃないでしょうか。

札幌Ruby会議のスポンサーセッションで発表します

札幌Ruby会議のスポンサーセッションで「ふつうのソーシャルコーディング」というタイトルで発表させていただきます。

サイトからの引用になりますが概要は以下の通りです。

日本Ruby会議2010のHead First ふつうのシステム開発から2年が経ち、私たちの開発を支える環境も変化してきました。
GitHubのOrganizationアカウントを導入してソーシャルコーディングを実践し、CIサーバとしてTravis CIを利用するようになりました。また、アプリケーションの運用環境としてHerokuの採用も積極的に行っています。 一方で、Pivotal TrackerやIRCなど、2年前と変わらず利用し続けているものもあります。
これらのサービス、ツールを組み合わせた、永和システムマネジメントの受託開発プロジェクトにおける「ふつうのシステム開発」の姿を紹介します。

今回はライブコーディングはやらない予定ですが、その分、私達が普段の開発で大切にしているものが皆さんに伝わるように頑張りますので、札幌でお会いしましょう!

https://sapporo.rubykaigi.org/2012/ja/schedule/details/P01.html

Ember.js勉強会を開催しました(60min.第8回)

最近@ursmが興味を持っているJavaScriptフレームワークであるEmber.jsについて社内勉強会を開催しました。

まずは定番のTodoアプリでもと思ったら、ちょうどいいチュートリアルがあったのでこれを写経して、その後わからないところをursmに聞く or みんなで考えるという感じでした。

チュートリアルと本家ドキュメントをちゃんと見れば、Todoアプリの動作については理解できるようになっているので丁度いい難易度でした。

以下に出た質問とか。

ArrayControllerにcontent? contentsじゃなくて?

Controllerから見れば一つのcontentだからいいんじゃないですかね。

メソッドの後ろについてるpropertyって?

Computed propertiesの宣言ですね。その中のプロパティが変わったら、こっちも変わるようになる。 @each.isDoneみたいなのは「contentの全要素のisDoneというプロパティ」という感じ。

remainingBinding: 'Todos.todosController.remaining'って何これ?

以下の省略記法だと思ってもらえれば。

remaining: function() {
  return Todos.todosController.get('remaining');
}.property('Todos.todosController.remaining'),

Qiitaにtappの記事を投稿してみました

QiitaRuby開発環境アドベントカレンダーなるものが行われていたので、tappについて投稿してみました。(1日遅れてすみませんでした…)

tappでプリントデバッグを便利に行う

ここを読んでくれている方は「あれ?」と思ったかもしれませんがtappについてそろそろ一言言っておくかの焼き直しです。ちょっと違う層にも届くといいなぁと思って書いてみました。

CentOS 5系からrpmとyumを消してしまった話

すごく悲しい出来事が起きたのでご報告。

そもそもはcapybara-webkitを入れるためにQtの環境を作ろうとしたところ、ドキュメントにはCentOS 6.2の話しかないので試しに同じ手順でやってみたのです。

そうすると、rpmで入っているsqlite3のバージョンが古くてうまくいかなかったので、sqlite3をアップグレードしようとしたのがよくなかった。

単純にアップグレードしようとしても「コンフリクトするよー」と言われてしまい、じゃあ消せばいいかとyum remove sqlite3を…いろいろ巻き添えになって消されそうだったんだけど、まあこの際一回パッケージを綺麗にしようとyを押してしまったら最後、rpmとyumまで消えてしまったのでした…

rpmがsqlite3に依存していて、yumがrpmに依存しているので結局ほぼ統べてのパッケージが消えてしまい、数分ほど放心状態に(テスト環境でホントによかった)(本番ではそんな雑に作業しないつもりだけど)。

とりあえずGoogle先生からCentOS6.0でrpmをインストールする方法というページを教えていただき、同じバージョンのCI環境をつかってrpmやyumを復旧したのでした。

で、結局capybara-webkitは普通にqt4-develを入れればよかったという落ちで、ほんとに涙目でした。みなさんもパッケージを消すときは気をつけましょう。

(ここから愚痴) そうはいっても、やっぱりパッケージ管理システムが切腹できちゃまずいと思うんですよ。ちゃんと見ろとか、ダブルチェックとかそういう話にしてもしょうがないと思うんですよ。 たとえば、Gentooなら

$ sudo emerge -C portage
 * This action can remove important packages! In order to be safer, use
 * `emerge -pv --depclean <atom>` to check for reverse dependencies before
 * removing packages.
 * Not unmerging package sys-apps/portage-2.3.4-r4 since there is no valid
 * reason for Portage to unmerge itself.

という感じでそもそも消せないわけで、また一つCentOSが嫌いになったのでした。

生誕 3 & 30 周年記念イベントに行ってきました。

各種SNSでコメントをくださったみなさま、ありがとうございました!

みなさんご存知のことかと思いますが、息子と私は誕生日が一緒で、私とウィリアム王子と高校の同級生は年まで一緒なわけです。

そんな私の生誕30周年、息子は生誕3周年の記念日だったので、スカイツリーの下まで散歩に行ってきました。

ちなみにプレゼントは365日いつでも受け付けておりますよ!

https://amzn.to/kenchan-wl

Seleniumで立ち上がるFirefoxに画面を占有されたくない人のawesomeの設定

capybara-seleniumを使ったテストがあると、急にブラウザが立ち上がって(タイル型WMだと特に)邪魔なので、Awesomeの設定でFirefoxの起動する場所を決め打ちすることにしました。

設定自体は、デフォルトのrc.luaにコメントアウトされた状態で存在しているので、そのコメントを外してあげればだいたいできます。

awful.rules.rules = {
  { rule = { class = "Firefox" },
    properties = { tag = tags[1][9] } }
    -- 1番ディスプレイの9番タグで起動する
}

これだと、単純にFirefoxを使いたいときも9番に起動してしまうんですが、Firefoxを使いたいことなんて滅多にないので問題ありませんよね。

散髪

前回から3ヶ月くらい。昔は2ヶ月で我慢できなくなってたのに最近は3ヶ月持つようになってしまった。

気にしなくなったのか、のびる速度が遅くなったのか!?

社内リーンスタートアップ読書会はじめました

Lean Startup Camp Tokyo Spring 2012に行ってだいぶ意識が高まっていたのですが、ようやく第1回を開催しました。 初回なので、なんでこの本の読書会をやりたいと思ったのかを伝えてから、1部の終わりまでざっと進めました。

かなり物語が多いので、一字一句読み合わせるというよりは、パラパラ読みながらみんなの認識を合わせていく(ここはこういうことだよね?)感じでやってみましたが、まずまずだったのではないでしょうか。

1周して終わりという本ではないので、「集まった人が気になっているところを、どこでも何回でも読む」というルールで進めていこうと思います。

リーン・スタートアップ  ―ムダのない起業プロセスでイノベーションを生みだす
リーン・スタートアップ ―ムダのない起業プロセスでイノベーションを生みだす

FFXI 10周年

みたいです。

PS2のベータテストでおなか一杯になってしまって、サービス開始では課金しなかったんですが、ひょんなことからアトルガン前くらいから再開(?)することになったような記憶があります。

最近は、先々週くらいに新ナイズルで@1ミリで100層クリアを逃がしてから、強化魔法スキル500のための装備を揃えるのに?00万ギルほどつぎ込んだのでいたのでした。(ピアス買ってないけどピアス買ったほうが安かった…)(失敗したときは480くらい) リゲインが1多かったらその時クリアできたのかわからないけど、不安材料は少しでも減らしたほうがいいですからね。(と心に言いきかせている)

というわけで、もうしばらくFFにはお世話になるつもりなので、これからもよろしくお願いします。

日記に残しておかないといけない4月の出来事

2つほど今日処理しましたが、まだまだあるので書いておきます。

  • Lean Startup Camp Tokyo Spring 2012に行った
  • リーンスタートアップ読んだ
  • Rails Tutorialのいいところ
  • 新人がやってきた
  • AndroidのZaimを1ヶ月使ってみたけどこりゃだめだ
  • 未来日記最終回の数日後になぜか家に漫画がたくさんあった
  • hsbtにWeb日記勉強会をやってもらった

Rails勉強会@東京に参加しました

子供を連れてきてうるさくしていたのが私です…本当にすみませんでした…

もうちょっと持つかなぁと思ったのですが、子供1人は無理ですね。次回はみんな子供を連れてくればいいのでは?(ごめんなさい)

参加したセッションは、「Rails Engine」と「テストについて」の2つでした。

Rails Engine

Rails Engineについて一家言あるような人はいなかったので、RAILSCAST #277 Mountable Enginesを淡々を写経しながら議論していました。

Q. EngineにするのとRailtieを継承したクラスを作ることの違いは?

EngineはRailtieを継承している。そして、EngineになるとRackのミドルウェアになる。 なので、Generatorを拡張するようなものはEngineにせずにRailtieを継承して作るのもあり。

Q. assetsの下が他のEngineのassetsに影響したりしないの?

明示的に読みこまない限りない。たとえば、RailsAdminはbootstrapを使っているけど、それがRailsアプリケーションに影響を与えたら大変なことになる (今はアプリケーション自体もEngineとして動作している)

Q. exception_handler.rb のファイルパスが間違ってますよね?

ascii castの日本語版だと間違ってるみたいです。あと、ファイルの中の改行もそのままだとsyntax errorなので一行に書きましょう。 (原文では正しくなってます)

おまけ

Engineをrails newしたあと、.gitignoreにGemfile.lockが足されていたほうがいいような気がするんですがどうなんでしょ。

テストについて

だいたいmoroへの質問コーナーになってしまっていて、もうちょっとやりようがあるんじゃないかなぁと思ったのでした。

まとめ

実は初参加だったのですが、勉強会らしい勉強会に久し振りに参加したような気がします。 進行役 & 会場係の@takkanmありがとうございました。

WEB+DB PRESS Vol.68が届きました

いつもありがとうございます!今号は連載終了と連載開始がたくさんあって、年度の変わりを感じました。

Rubyわくわくナビはかなり好きだったのに終わってしまうのですね。お二人の次回作に期待しております!

WEB+DB PRESS Vol.68
WEB+DB PRESS Vol.68

Jenkins Plugin(JRuby)の勉強会をしました

昨年から細々と続けている社内勉強会の60分一本勝負で、(デブサミで川口さんとnahiさんからいろいろ聞いてきた)hsbtにJenkinsプラグインをJRubyで書く方法について教えてもらいました。

私はそもそもJavaが入ってなかったので次のような感じでいろいろ入れるところからスタート。

最後に入れているjpiがJRubyでJenkins Pluginを作るためのgemだそうな。

手順としては、

  • jpi new hogehgoeで雛形を生成
  • jpi generate hogehoge fugafugaとしてできたファイルを編集
  • jpi buildでパッケージング
  • jpi serverで作ったプラグインが入ったJenkinsが起動

という感じで、generate hogehogeがけっこう肝な感じでした。

Generatorは、いまのところ次の6つがあるんですが、後半はhsbtもよくわからないとのこと。

  • publisher (設定画面で「ビルド後の処理」に入るもの)
  • builder (設定画面で「ビルド」に入るもの)
  • wrapper (設定画面で「ビルド環境」に入るもの)
  • node_property
  • run_listener
  • computer_listener

まずは、上の3つをいろいろ使ってみたり、いまのところJRubyで書かれた唯一のプラグインであるrvm-pluginを見ながらエスパーしたり、「Rubyで書けるならこう書きたい!」みたいなのを考えてみようかという話をしていました。

あとは、Gentooでjpi serverが動かない問題を調査して、pull requestはhsbt(と奥さんの英語力)に託したりと、なかなか有意義な勉強会でした。

通販生活

イヤホンが断線してしまったので、5000円以下では鉄板と言われているEP-630を買ってみました。 本当はBluetoothにしようかと思ったんですが、

  • DR-BT63EXは、実体としてはBT-30に1500円のイヤホンが付いているだけ
  • MW600はインタフェースがもにょもにょ
  • AT-PHA05BTはちょっとお高い

ということがわかったので、状況がかわるまで我慢しようかなぁと思った次第。

EP-630で最初に聞いたときはまぁこんなもんか思ったのですが、2日くらいで慣れてきたのでした。 たしかに鉄板と言われるだけのことはありますね。

あとは、発売日に入手し逃したwacの「音楽」が入荷したようなのでぽちったりしました。

Creative インナーイヤー型イヤホン EP-630 ブラックモデル EP-630-BK
Creative インナーイヤー型イヤホン EP-630 ブラックモデル EP-630-BK

FFXIバージョンアップ

GEEK DAY TOKYOの準備があった影響で、バージョンアップからずっとほっといたけどようやく再開。

バージョンアップ前の状況としては、コルスは取れないまま、トキは取れたという感じでした。

丁度よくプロマシアルートの募集があったので潜り込んだけどアットワで4敗して終了。詩人で参加する度にいつも思うんですが、つらいときに何も出来ないのがもどかしいですね。

黒だってタゲとって薬とマナウォールで1分以上耐えられることだってあるのに…

GEEK DAY TOKYOで「ソーシャルコーディング時代の幕開け」という発表をしてきました

04/03 ジョブポストのURLが過っていたのを直しました

主催のDecooで働いている大学の同期である@nittyanから依頼を受けたので、GEEK DAY TOKYOで発表させていただきました。

イベントの雰囲気や他の発表者の方、参加者の方々を見ても、うちみたいな受託の会社が発表していいもんかとだいぶ不安だったのですが、終わってみればいろいろ反響があって安心しております。

時間の関係もあり、具体的な話があまりできませんでしたが、永和がこれからどんな開発をしていきたいのかというところが伝わると嬉しいです。

大切なこと

ESMでは、こんな開発に興味があるガッツとパッションにあふれるRubyistを募集しております。興味のある方は是非以下のリンクをご覧ください!

esminc / jobs

また、「この話もうちょっと聞きたい!」というイベント主催者の方がいましたら、スライド中のメールアドレスまでご連絡ください。

参考資料

おまけ

スライドで紹介したPull Requestがあるプロジェクト「eiwakun」は、社内で使っているIRCボット件Twitterクライアントみたいなものです。(ソースは諸事情で公開していません)

蕁麻疹とか捻挫とか

先週の金曜日から息子のお腹の調子が悪くて、さらに日曜日のお昼食べたあとに急に体が痒いみたいで見てみたら、蚊に刺されたような膨らみがいっぱいできてて、これが蕁麻疹というものらしいとわかったのであった。 ぎりぎり駅前の皮膚科に間に合うかどうかという時間だったので、若干奥さんと喧嘩しながら走って連れていったけど間に合わず、冷してあげたりすればそんなに痒くはないようなので月曜日まで様子を見ることに。

そして、月曜に奥さんに病院に連れていってもらうことにしたら、病院の前で奥さんが足首を捻挫。

昨日は早退させてもらって家のことをいろいろしていたのでした。

捻挫の痛みはだいぶ引いてきたようなので一安心。息子は蕁麻疹は引いてきたけど、お腹の調子はまだ悪いままなのであった。

アジャイルリーダーシップトレーニングを受けてきました

アジャイルサムライの著者による、本に書いていないアジャイルリーダーシップのトレーニングがあるということで、会社の教育として受けさせてもらいました。

最初に、ジョナサンにとってのトレーニングのインセプションデッキとして、受講者にこのトレーニングで知りたいこと言ってもらい、それをリストアップしていました。

折角なので、実際に困っている「1〜3人の小規模チームでのリーダーシップについて知りたい」という事をお願いしてみたのですが、それについてのディスカッションは後述。

一番ぐっときたこと

発表資料を見直してみても載ってなかったのですが、

大切なのは、継続的に価値を届けること、そしてそれでハッピーになることだ

ということを言っていたような気がするんですよね。そう、みんながハッピーにならなきゃいけないんだよ!

全体として

すばらしいトレーニングでした。 なによりも、要所要所でジョナサンが話す彼が経験してきたプロジェクトの話は興味深く、とても刺激的なものでした。 最後のディスカッションでも、受講者の現場の問題に役立ちそうな彼のエピソードを話してくれて、すごく視野が広がった感覚があります。

また、翻訳、通訳をしていただいた和智さん、本当にありがとうございました。後半はもう頭が働かなくて翻訳に頼りっぱなしでした…(英語勉強します…)

leadershipのScienceについて

初めに、ジョナサンがトレーニングのアジェンダを紹介したのですが、最初が「leadershipのscienceについてだ」というのを聞いてこれはやばいと思いましたね。

ぐっと来たのは、

  • 人は自分のやり方で仕事がしたい
  • 報酬は、ある閾値を超えると効果がなくなる(むしろ悪影響がある)
  • 目標、評価は多角的に、チートできないように設計する

上の2つはダニエルピンクの「モチベーション3.0」の研究成果からの紹介だったのですが、最後の目標と報酬の話は非常に面白かったです。

たとえば、販売部門とシステム部門の部長の評価は、評価の一部に「相手の業績を上げるようなことができたか」という項目を入れることで、足の引っ張り合いもなくなるし、自然と仲良くなるというような話でした。

自分自身をリードする

(アジャイルな)リーダーとは、3つ事をリードしなければならなくて

  • チーム
  • 自分自身
  • 上司(組織)

というような話だったと思います。

そのなかでも、自分自身をリードするために、ドラッカー風エクササイズを実際にやってみるという内容でした。

10 tips for leading your agile team

これはほとんどアジャイルサムライの内容でしたね。 ぐっと来たところだと

  • 「悪いニュース」は伝えるのではなく、誰の目からみても明らかになるようにする(見える化の話)
  • 目標を高く設定し、それをキープする
  • コントロールなんて諦める。ただ、崖から飛びおりようとしていたら止める

小規模チームの話

実際今も1〜3人くらいの小規模チームで仕事をしているのですが、私が感じていた問題は

  • 次イテレーションの準備が十分にできない
  • 一人が休むとプロジェクトが止まってしまう(これはちゃんと伝えられなかったけど、アドバイスは非常に参考になった)

というものでした。ジョナサンから貰ったアドバイスは次のようなものでした。

まず、小規模チームというのは素晴らしい。2人なんて最高だ。 顧客とも直接話ができるんだろう? なら、次イテレーションの準備なんて言わずに、そのイテレーションの最初、もしくは途中でも、そのイテレーションでやることを決められるんじゃないか?

思わず「あぁ…」と声を漏らしそうになるくらい、今自分が出来ていないことがわかってしまう、とても的確なアドバイスでした。もっと精進します。

ディスカッションの他のテーマ

1時間くらいは受講者の知りたいことについてディスカッションする時間があったので、これの為に来たと思ってもお釣りがくるくらいいい内容でした。

メモ程度ですが気になったことを書いておきます。

  • 組織にアジャイルを普及されるために、今アジャイルで上手くいっているチームをバラしてもいいのか
  • トレードオフスライダーは「scopeを変えますよ」という宣言のために作るんだ
  • 全てがfixされているプロジェクトでは、お金を出している人を探すところから
  • チームが自発的にタスクを取ってくれない?リーダーが2週間いなくなればいいよ

おわりに

アジャイルサムライ大好きなのに、ジョナサンの話を聞いたのはこのトレーニングだけだし、記念写真とりわすれるし…

ただ、またいつか会える日がきて、そのときはジョナサンに私のサムライ戦記を伝えられるように、これからもがんばろうと思ったのでした。