Microsoft MVP for Visual Studio and Development Technologies(F#)を再受賞しました

Twitterに先んじて投稿していましたが一応こちらでも。 昨年に引き続きVisual Studio and Development Technologiesです。 長いですがようするにF#です。 日本で F# のみの活動でこのカテゴリの人、現状だと多く見積もって3人くらいな気がします。

昨年度は何かを作ったりひたすら.NET Coreと触れ合う一年だった気がします。 たぶん.NET Core 2.0でまた色々あるはずなのでこのあたりは引き続き追っていきたいところですね。

XamarinやUnityは…今年こそ手を出したいですね、Unity 2017とか面白そうですし。

というわけで今年度もよろしくお願いします。

Microsoft MVP for Visual Studio and Development Technologies(F#)を受賞しました

気がついたらまたカテゴリが変わっていましたが、今年で4回目の受賞となります。 Visual Studio and Development Technologiesとカテゴリ名が長すぎて未だに覚えられません。 覚えられないのでF#と言い張っておきます。

仕事でF#を使わなくなって久しいですが、これからも何かしら発信していけたらと思います。

特にXamarinとかUnityとか、F#の情報が少ない部分に手を入れられたらいいなとは思っていますが、こればかりは調べる体力があるか(そして気が向くかどうか)次第なのでなんとも……。

え、仕事で使わないのかって? 禁則事項です。

というわけで、今年度もよろしくお願いします。

テスティングフレームワークとSemantic Versioningでなんか考えた

タイトルが釣りっぽくなっていてすみません。

寝起きにぼーっと考えていたら疑問に思ったけど、チラシの裏がないのでここに投げておきます。

この記事は疑問を書いて投げっぱなしにするので解などはかかれていません

Semantic Versioning

Semantic Versioning 2.0.0

semver警察という用語もあるとかないとか。

Evolve slowly

最後にこの話をきいたのはTestingFrameworkMeetingのid:t-wadaさんの資料だったはず。

http://twada.herokuapp.com/presentations/testing_framework_meeting/testing_framework_meeting.html#8

  • Evolve slowly (テストコードは利用者の投資の結果そのものなので、その投資が早いサイクルで無駄になることはない、という安心を与えなければならない)

そのままですね。

ユーザはコードを変更しなくてもいいけど…みたいな話?

  • ユーザはコードを変更しなくてもコンパイルが通る変更
  • しかし互換は崩れる

こういう修正をする必要があったとき、semverに従えばメジャーバージョンを上げる必要があると思います。

で、開発者側としてはバグ修正なのでユーザに最新のバージョンを使って欲しいが、ユーザからは破壊的変更をバンバン行っているように見えるのでEvolve slowlyには反しているんじゃないか、みたいに思えなくもないというか。

いやまぁ、Change log読もうの一言で済むといえばその通りなのですが、メジャーバージョンがガンガンあがるってまだまだわりと抵抗あるんじゃないかなと思う次第です。 テスティングフレームワークなら余計にそう思ったりするのでは、とか。

一旦保留

ということを寝起きで考えましたが考えすぎなのかもしれないし眠いので寝ます。 これを読んで「考えすぎだよ」って思った方はそう私に伝えてください。

2015年簡易振り返り

書いておかないと忘れるけどもう時間がないので簡易版。

生活

  • F# MVPから.NET MVPになった
    • MVPらしい活動をしていたかどうかは微妙なところだが、なんかやってはいた気がする
  • 転職した
    • 転職の際にScalaMatsuriの情報を使わせてもらったお礼にと思ってインタビューを受けたが、インタビューを受けるのはこれが初だったのでわりと緊張した
    • やはり東京にいると便利だなと思うことが多い
    • しかし地元九州からさらに遠ざかってしまった…移動が面倒だったので今年は帰省していない
  • 生活時間が順調に狂った
    • ただし、転職以前に感じていた寝起きのつらさ的なストレスが消えたのでこれはこれで良かったのかもしれない
  • 年末になってようやく引っ越し貧乏から脱出しつつある
  • ゲームはコンスタントに買って消化していた気がする
    • 去年からの積みゲーがそのままになっている問題…
  • なんだかんだひと月一記事以上ブログ書いてたらしい

言語

  • F#: ほぼプライベートオンリーだけどなぜかわりと触ってた
  • Scala: ほぼプライベートオンリーだけど(ry
  • TypeScript: 諸事情で手を出した
  • Elixir: 諸事情で手を出した
  • Erlang: ちょっとだけ書いたけど思った以上に書かなかった
  • SML#: なぜか一時期書いてた
  • C++: 諸事情で書いた
  • Rust: nomを触るためにちょっと学んだ
  • Haskell: 読む力は上がったが一切書いた記憶がない

Rustを本腰入れてやりたい気もしつつ、Idrisに挑戦したい気もしつつ、Coqから目を背けないほうがいいのか…色々考えても結局なるようにしかならないので考えるのをやめよう。 来年のことは来年の私が頑張ってくれるはずだ。

ライブラリは産廃なものと形になったもので半々といったところ。 まぁ、使うことを目的としていないのでこんなものではないだろうか。

イベントとか

会社のセミナールームが使えることに味を占めて色々開催したりお手伝いしていた気がする。

  • Lens & Prism
  • F#談話室(これは一回会場手配しただけだけど
  • 関数型Scalaの集い
  • 関数プログラミング交流会
  • Testing Framework Meeting
  • 関数型ストリーム処理勉強会(これは相談を受けて開催したやつ)
  • Oleg勉強会

個人的には、知らないことが何か知れたという点で非常に満足度の高いものだった。

あと、なんだかんだで発表していたようだ。

ペースは落ちるかもしれないが、何回かは発表したいところだ。

.NET系の勉強会に顔を出したいと思いつつなかなか足を運べていないのでなんとかしたい。

締め

気の向くままに。

あの時を振り返る

ふと、 初回TDDBC名古屋 が開催されてから5年が経過したことに気がついた。

あの時はブログをやっていなかったので感想記事を書けなかったが、良い機会だし、感傷に浸りたい年頃になってしまったので、駄文(になるだろう)を書いてみる。

なお、これを読んでも得られるものはないだろう。

参加したきっかけ

あれは大学4年になるかならないかという時期、指導教員の [twitter:mikantsuki] と相談してTDDに関連する研究にしようと決まった時のこと。

「そういえば、TDDに関する勉強会が北陸であったらしいんだけど、それが次は名古屋で開催されるみたいだね。 遠いから無理かもしれないけれど、行けるなら参加したら?」

勉強会という存在を始めて知った瞬間である。 きっと良い経験になるだろうと思ったので、行く決意を固める。

今考えると、よく思い切ったものだ。

登録した時期

応募がはじまったよ、と教えてもらったので早速登録しようとする。

twitterアカウントを持っているなら記載してもらえると嬉しい、とある。 持っていなかったので作った。

その頃に研究でデータがほしいから「データ取りに協力していただけると〜」みたいなことをつぶやいた記憶がある。 若干黒歴史だが…。

ちなみに id:t-wada さんのtwitterアカウントを始めてみた時の感想は「サッカー好きなのだなー」。 その頃はちょうどW杯が始まるくらい時期だったので、たぶんそれ系のつぶやきが目に入ったのだろう。

id:bleis-tift さんは、もっと年上な人を想像していた。

初日

ここからはちょっと長くなるかもしれない(後書き:そんなに長くならなかった)。

会場到着あたりまで

初名古屋。 若干迷いながら会場に到着する。

会場の1Fにそれらしき人々を見つけるも、怖くてしゃべりかけることができない。 黙々と開場まで待つ。 (どうでもいいが、この時の愛機はIS01だった)

初勉強会なので勝手がわからず、てきとーに空いてる席に座る。

午前

飛び交っている単語がわからないものばかりだ。

OCaml?なんだそれは?*1

不安が募る。 ただ、タイミングよくイベントが開始されたので講演に集中する。

「なるほど、そういうことか」とか「ここはみかままが講義で言ってた気がする」 とか思ったりなどしていた。

ペアプロデモはRubyでわからないところがでてきたりしたのでその場で調べていたりした気がする。

ペアプロ

お昼ご飯を食べ、ペアプロ前半。 お題が講義の課題とにていたためその時の記憶に引っ張られてしまったなーと反省した記憶がある。

ペアプロ後半。 Mock の存在を知ったのはこの時だ。

お題が進み、時刻の概念が現れた時にペアの方が「これはMockを使うべきなのかな」と言ったのだ。

初めて聞く単語だったので、何をしていいか全然わからない。 わからないから、「わからないので、使い方を見せてください」とペアプロを放棄してお願いした。 ペアプロ体験が目的のイベントでこれを言っていいのかと迷ったが、興味の方が勝った。

レビューあたり

このあたりで、自分の力のなさに絶望していた。 あのくらいプログラミングできないと就職してから仕事できないのか…みたいな。

懇親会

知らない人ばかりだったため、なかなか話しかけることができずわりとぼっちになってたところ、bleisさんやt-wadaさん、kokubo_yusukeさんが話しかけてくださった。 これがなければ気分が沈みっぱなしだったと思う。 喋っているうちに心が軽くなる。

懇親会後は会場に戻ってnagiseさんのGenerics談義をきいていた。 この話もとても面白かった。

デモ用にレガシーコードを提供したのはこの辺りだ。 bleisさんとt-wadaさんがデモ用のちょうど良いサイズのコードがなくて困っているという話をしていた。 ここで自分のPCに使えそうなコードがあることに気づき、懇親会で話掛けてくださったことへのせめてもの感謝の気持ちとして、恥を捨ててコード提供を提案した。

なお件のレガシーコードは、現在はデモ用として一部構成をいじった上でGitHub上で公開されている。コードに関してはそのままなので、レガシーコード改善の練習として触ってみるのも一興かもしれない。

tddbc/LegacyCodeJava · GitHub

しかしひどいな、これ。 今ならparser combinatorで一発事案だ…制約がある中で書いたコードとはいえ、これはひどい

余談だが、もともとこのコードにはテストコードが存在していた。 探せばでてくるかもしれないが、JUnit3で書いていたし古傷をえぐるだけだろうと思い掘り返さないでいる。

宿泊部屋

修学旅行みたいに何人かで集まってワイワイコード書いてた。 この時に何名かの方が研究データ取りに協力してくださった。

2日目

寝たら気分すっきり、気力が回復する。

朝食の席ではコンパイラについておしゃべりしていた記憶がある。 そして赤味噌うみゃー。

講演とデモ

講演とデモ。 デモでコードがどんどん改善されていくのはとても勉強になった。

昼食はうどん・そば・ごはんという謎コンボ。

グリーンバンドの話が持ち上がっていたのはこの時だっただろうか。 購入者を募っていたが、私は距離が距離だったためさすがになと思って購入を控えた。 …正直言うとちょっと後悔した。

午後

最初は苦戦しつつ、途中から慣れてきてテストを差し込んだりあれこれ相談したりしていた気がする。

ところで、作業中にきがついたことの一つに、OCamlScalaでコードを書いていた方々が感動するくらい良い笑顔だったというのがある((一番記憶に残っているあの顔はきっとmzpさんだ))。 関数型言語=大学で習ったけどよくわからなかったし怖い*2、と思っていた私にはわりと衝撃的だった。 この衝撃が、今の私を形成するに至った要因の一つである。

レビューの際もわからない単語だらけだったが、この時は開き直っていた。 「自分のレベルの低さに絶望したことなら前にもあるじゃん。メモして今から調べてやればいいんだよ」みたいな。 厨二病全開だったりもした。「絶望は人を次のステージへと昇華させる…」

帰りは時間の都合があったため、ささっと退散。

帰り

t-wadaさんの言葉が脳内でリフレイン。

『TDDBC は「やりたい」と手をあげれば始められるイベントです。』

この濃度のものは、今はおそらくこのイベントを開催しなければ体験できない。 彼らを巻き込みたい。 私より数段できる彼らなら、きっとそれを糧にするだろうから。

気がついたらtwitterで「佐賀でもやりたいなー」と書き込んでいた。

そして新幹線内で爆睡し、特急電車に乗り換えてさらに爆睡し、帰宅後は熟睡した。

振り返って

思い出しながら書いていたら「若かったなー」と思ってしまうあたり、おっさん度が上がっている。

得たことはたくさんあるが、

  • 知らなかったことを後悔するよりさっさと調べる
  • やりたいと思ったらやれ
  • 動いていれば何かにつながる

あたりは特に今も自分の生活や勉強会開催のモチベーションにつながっている。

ありがとう、かつての私。 あの時参加していなければ、絶望していなければ、ここには居ないし今も技術に対して足掻いていることはなかっだろう。

*1:当時はまだ存在を知らなかった

*2:今となっては食わず嫌いなだけだったと反省するばかりだ

Microsoft MVP for .NET を受賞しました

2015年1月からC#, VB.NET, F#の枠が統合され「.NET」となっていたので、正確には再受賞です。

.NETに関してはこれからもF#に偏ったことしかしない可能性が高いですが、何かしら成果を残せたらいいな…と思っております。

あと、せっかく東京にきたのでF#で定期的にドンチャン騒ぎしたいです。