TDD in Actionを共同開催しました #tddact

7月22日にTDD in Actionというイベントを共同で開催しました。

7月22日 TDD in Action #tddact(東京都)
TDD in Action #tddact - Togetterまとめ

会場抑えてくださったり募集ページを立てたりその他色々とやってくださった共同主催者の@kyon_mmさん、ありがとうございました。言いだしっぺと司会以外やってなくてすみません・・・。

また、オラクルさんには会場をお借りしました、ありがとうございます。

更にTDD Base Campコミュニティの皆様もありがとうございます。
特に本拠地ではないにもかかわらず手伝ってくださった@irofさんに感謝であります。

どんなイベントだったの?

少しでもTDDの要素が入っていればあとは何してもいいゆるふわペアプロ大会でした。
ゆるふわなので朝からビールクズまで行われていました(おすそわけしてくださったJPOUGの皆様に感謝!)。

詳細は参加者の報告記事で垣間見れます。

TDD in Action に参加しました - THE BLUE NOWHERE
TDD in Action - 負けてゐる日誌
[TDD] TDD in Actionに参加してきた - joker1007の日記
TDD in Actionに参加してきた #tddact - くりにっき
TDD in Action #tddact に行ってきた - アル中プログラマの備忘録
mike、mikeなるままに…: TDD in Actionに参加してきた
久々に東京遠征してきた - 日々常々

私はといえば、司会とライブコーディングとHaskellを少ししていました。

ちなみにきょんさんとのライブコーディングですが、30分予定なのに25分近くコードを書かずにドメイン分析っぽいこととテスト戦略っぽいことをやってました。
30分コードを書かずに終わるかと思っていたらそうでもなかったですね。

懇親会は・・・Specs2やり直して少しは反論できるようにしてきますorz

次回あるの?

え、一発ネタのイベントなので可能性は低いかと。
あったとしても私がやる場合は研究で切羽詰ってデータ収集したいときとかそんな感じでしょう。

会場探しがもう少し楽なら考えるのですけどねー・・・。

続きを読む

「すごいHaskellたのしく学ぼう!」の感想とか

すごいHaskellたのしく学ぼう!

すごいHaskellたのしく学ぼう!

今月頭に購入してようやく読み終わったので感想などなど。

もちべーしょん

私がこの本を読もうと思った理由は以下の通り。

  • FSharpXのモナディックな部分を理解したい(おい!)
  • Haskellのコード、読めるようになりたいな
  • アプリカティブが知りたい
  • yesod面白そうなのでまずはHaskell

1個目は特に本書とは関係ない不純な動機ですね、まったくもう。

すきる?

読み始めたころはこんな感じでした

  • 趣味でF#
  • プログラミングHaskellは読んだ(が、写経していない・・・)
  • ふつける積読の理に(ry*1
  • Real World Haskellは(ry
  • OOPはわかるようなわからないような・・・

読むのにかかった時間

私は遅読なのと鳥頭なのと寄り道もあって3週間少々かかりました。
寄り道の"OSから環境構築"とか"テスティングフレームワーク漁り"とか"でてきた例をF#でも書いてみる"がなかったらもう少し早かったとは思うので、実質2週間ですかね。

感想

端的に言えば「Haskellに対するやる気と時間さえあれば読める」と感じました。
F#の知識があったから大丈夫だった可能性もありますが、それを抜きにしてもあの手厚い解説なら写経したり試行錯誤したらそのうち理解できるのではないかなと。
逆を言えばじっくり読まないと挫折率が高そうだと感じたわけですが。じっくり読まないと8章以降で撃墜率があがると思います。

あと、この本だけ、とかではなく「プログラミングHaskell」もあわせて読むといいという話をどこかで聞きましたが、その通りだなと感じました。別の角度からも見れるというか(あくまで個人的な感覚ですが)。

本書読んだ後に次何すればいいのか書いてないのかーと思ったけど、『プログラミング Haskell』『すごい Haskell 楽しく学ぼう!』の次に何を読む? - Togetterまとめに書かれているのでまぁいいんじゃないですかね。


あ、少し脱線しますが"-:"より"|>"のほうが好きだなーと読みながら感じたあたり私はF#脳でした。

本には関係ないけど

コードを書いていて「あー、私にはオフサイドルールを持つ(追記:静的型付けな)言語が手になじむのかなー」とか考えてました。理由はよくわからん。

Haskellで個人的に苦労したところは演算子です。なかなか頭に入らない・・・。

まとめ

焦らず腰を据えて読めば、良き導き手となってくれると感じました。

というわけで内容が薄いけれど感想でした。

(次はRWH読むかyesod触ってみるか・・・さてはて)

*1:肌に合わなかった

HaskellのDocTestでTDDしてみる+α

(注意)この記事はお試しでやってみたよ的な記事です。

Haskell界隈で面白そうな話をみた。

『プログラミング Haskell』『すごい Haskell 楽しく学ぼう!』の次に何を読む? - Togetterまとめ

こういう話を見ていると自分でも試したくなりますよね。

というわけで、例によってFizzBuzzをお題にしてやってみました。まぁ、Haskellはじめて間もないのでこれくらいのお題がちょうどよさそうですし・・・コードひどかったりしたらご指摘ください。

続きを読む

Haskell環境を構築するためにGenntoo環境を構築する

すごいHaskellたのしく学ぼう!

すごいHaskellたのしく学ぼう!

この本の写経環境がほしかったのだが、HaddockやHspecも触りたいしWin機でやるのもなと思ったので、VMWare上にGentoo環境を作ってみた。

Gentooインストール

Gentoo Linux ドキュメント -- Gentoo Linux x86 ハンドブック

ハンドブックのインストール手順そのままなので割愛。

Gentoo Linux ドキュメント -- Gentoo GRUBエラー集

インストールしていざ起動、というときにGRUBエラーが起きたら参考になる。
ちなみに、VMWareにてCD/DVDを一度物理ドライブに切り替えた後で、もう一度ISOイメージから起動したいなら起動画面(GRUBが動く前のVMWareロゴ時)でESC押せばCD-ROMが選択できるようになるはず。

色々インストール

sudo,vim,emacs,portage-utils,git,sl,layman,eixなどをemerge。

Haskellのインストール

Gentoo-haskell overlayを使うので、laymanをインストールしておく必要がある。

Gentoo Linux ドキュメント -- Gentoo Overlay: ユーザーズ・ガイド

まず、/etc/make.confにUSE="profile"を追記*1

#layman -a haskell
#emerge haskell-platform

ここで、たぶんunmaskする必要がでてくる。

#emerge --autounmask-write haskell-platform
#dispatch-conf
#emerge haskell-platform

これであっているのだろうか…一応は動いているので、--autounmask-writeとdispatch-confは今度きちんと調べることにする。

$ghc --version
$cabal --version
$haddock --version

この二つのバージョンが表示されればたぶん大丈夫だろう。ちなみにお目当てのHaddockさんも一緒に入っていた。

haskell-mode

#emerge app-emacs/haskell-mode

これでemacshaskell-modeをひっぱってこれるはず。後は.emacsを編集して認識されるように設定。

Hspec

おまけインストール。

$cabal update
$cabal install hspec cabal-dev

慣れるまではファイル作らずにghciで作業するだろうけど、慣れてきたらHaddockやHspecも触っていきたいですね。

Haddock User Guide

*1:すでにUSEが存在するならそこに追加で