コミケ告知

サークル活動の詳細は circle タグの記事へ。
ラベル 勉強会 の投稿を表示しています。 すべての投稿を表示
ラベル 勉強会 の投稿を表示しています。 すべての投稿を表示
2014年10月30日木曜日

歌舞伎座.tech#5「すごいErlangをゆかいに学ぶ会」に参加してきた

いつのまにかAkkaやらErlangやら、並行処理系のフレームワークを扱っているドワンゴさん所の勉強会。今回はErlangということで、ささっと参加申し込みして楽しみにしていました。

公式:  歌舞伎座.tech#5「すごいErlangをゆかいに学ぶ会」 - connpass

発表枠

(以下の表は、現時点での公式イベントページより引用)
発表者資料
sile@ドワンゴ「ドワンゴでのホットデプロイ事例」

「なぜERLANGにしたのか」(前回資料)
mururu@学生「Elixir 1.0」
shino@Basho「本番環境を止めずに問題を安全に解析する方法」
voluntas@時雨堂「Erlang/OTP + Lua」

Elixirが文法や機能説明である以外は、実戦で使われた事例から一般的に使えそうな話を引っこ抜いて話してくれるような、実用性の非常に高い濃い内容でした。Erlang/OTPという存在自体が、実装は枯れていて、いかにシステムを構築するかを考えればよいフレームワークなので、勉強会も自然とそうなるんでしょうね。


LT枠


(以下の表は、現時点での公式イベントページより引用)
発表者資料
山口能迪@ymotongpoo「『すごいErlangゆかいに学ぼう』でゆかいなところ」
t_egg(Comming Soon)「Euler with Erlang」
KOU_CHANG@ドワンゴErlang Utility Library (GitHub Repository)

LTはゆるい雑談な感じで。(感想とくになし)

懇親会

ピザと飲み物(缶アルコールとソフトドリンク)が配給されました。木曜日だというのに、23時まで酒飲みながらgdgdして、みなさん翌日大丈夫だったんでしょうか?
Elixirの講演をされた方を探していくつか聞いてみようかと思ったけれども、うっかり顔を覚えておくのを忘れたので、そのへんで適当に雑談。何の偶然か同業者の方を発見してしまい、Erlangとはあまり関係ないところで楽しかったです。
Erlangはすぐに「他の人がメンテできねえ」に到着してしまって、小さくて若者・精鋭がそろうところか、好き勝手にやれる研究部門でもないと、なかなか難しいですね。Scalaと違って、見た目がカッコよくて人が釣れる言語ならまだ可能性はあるかもしれないですが…

総括

Erlangを実際に使っている人にとっては、非常に実用性の高いイベントです。
Erlangを触ったことがない人の場合は…どうでしょうね。概要説明などせずに実際の問題に入るので、講演の概要くらいしか頭に残らないのでは。それなら家でスライドナナメ読みしたほうがマシw 細かい特性差を除くと機能はAkkaに近いので、Actor Modelの使いどころについてはあちらで慣れてくる手もありかも。

Erlang関係の勉強会は半年に一回くらいは開催する、というような話が聞こえてきた気がするので、次回以降にも期待しましょう。個人的にはその頃までに、Elixirで何か小物を作れたらいいなーと目論んでおります。


2013年4月20日土曜日

F#談話室 (4) に参加してきた

前回咳が止まらなくて病欠してしまったF#談話会、今回は無事参加できました。


自分の作業 (VS2012 for Web単体でF#ライブラリ プロジェクトを動かす)

15時頃着いて、まず馬券を買ったのちに作業開始…しようと思ったら、なんとVisual Studio 2012のWindows DesktopをノートPCに入れていなかったことが判明。C#からF#のライブラリを呼ぶものを今日は作ろうと思っていたのに、これは誤算です。
ただ、ライブラリ部分をC#から呼ぶだけならば、C#単体テストプロジェクトがfor Webでも作れるので、これでいけそうです。ビルド依存性の設定で、C#単体テストプロジェクトがF#ライブラリ プロジェクトに依存するように設定。

F#ライブラリ プロジェクトにはScript.fsxが入っているので、これが実行できればプロジェクト単体でいくつかテストも出来ると思うのですが、いまいち使用法がわかりません。普通に実行しようとすると、出力がライブラリなので実行できませんという、ライブラリプロジェクトに対してはごく普通のエラーメッセージが出るのみです。

F# Interactive を立ち上げて #load してみましたが、カレントディレクトリがWindowsのTempディレクトリになっているようで、使い勝手がイマイチですね。

作りたいものも決めていったのですが、実装作業の進みはいまいちでした。APIを調べながらの作業はノートPCで行うには不向き、かつどちらかというと設計段階でメモ帳に手書きみたいなフェイズであり、これ家でやった方がいいなあ…という感じでした。ノートPCで作業しても問題ないフェイズにしておくことを、次回以降は考えておきます。


LT

ヘヴィなトークが2時間くらいありました。16時→18時がLTだったので、結局参加時間のほとんどLT聴講に…!F#という言語をどう使うか?どういう利点があるか?というのは自分の謎でも、世間の謎でもあります。ヘビーユーザーの使いかた、というのは参考になりますね。
コンピュテーション式を使えるくらいになると、楽しくなるのかなあ。
2013年2月16日土曜日

F#談話室(2) に参加してきた

今年も何か新しい言語に触ってみたいと思っていたところに、ちょうど入門コースのある勉強会があったので、参加してきました。
みんなで一斉に進めていきましょう形式ではなく、各自好きなことをやる集まりです。時間も夕方のLT以外は特に予定なく。

自分はF#の最初の一歩から始めたかったため、主催の七誌さんがビギナー向けとして用意してくださっていた資料を見ながら進めました。到着が17時、場所を閉めるのが20時、その間約3時間の参加でした。

環境のセットアップ (VS2012 ExpressでF# + Windowsフォームが遊べるまで)

無料のExpressでは、F#を使うまでに追加の作業が必要でした。F#を推進する気なら、最初から使えるようにしておけばいいのに…
  • Visual Studio 2012 for Webをインストール
  • Web Platform Installerを使って、追加コンポーネントとしてF#をインストール
    • 検索窓にF#と入れると、それっぽいものが出てくる
環境としてはここまで。チュートリアルでは、C#の入門編でやっているようにWindowsフォームを表示させて遊びたいのですが、Visual F#のプロジェクトはライブラリとチュートリアルしか選択肢がありません。実用的には、ライブラリの利用のみが提示されている状態。
そこで、「F#のチュートリアルプロジェクトを作成し、元から書いてあるコードを抹消する」という方法により、F#でWindowsフォームの使えるプロジェクト構成を安直に入手することが出来る、と教わりました。

はじめての えふしゃーぷ

リバーシ(オセロ)のサンプルをいじって、ネット上の文法のリファレンスを見ながら、途中パワーユーザーの方のLTを挟んで、実質90分ほどかけて、なんとか自分で関数が書ける程度にまで進みました。(いきなりリファクタリングっぽいところから入る性分もどうかと思いますが…)
以下がそのコードです…と丸ごと貼るには少々長かったのでリンクのみ。
→https://gist.github.com/moccos/4967078

  • 自作の関数を書いた
    • 関数の引数に型が指定した
  • enumっぽいもの(?)を使った
  • if式、match式を覚えた
  • for構文を使った
  • 配列を使い始めた  (まだよくわかっていない気がする)
こんな状態です。石をひっくり返すロジックがないので、まだリバーシではなく石置きですね。

間違えたところ

  • 関数の引数に型指定するとき、カッコをけちって失敗
  • 関数呼び出すときに、引数足りなくて失敗
後者、C言語やJavaならば「そんな関数/メソッドないよ」というコンパイルエラーが出るところですが、F#は部分適用が効くので、違った形でエラーが現れます。boolを返す関数 myfunc x y を用いて if (myfunc 1) then ... と書くと、「boolじゃなくてint->boolがあるので型がおかしいよ」と言われるわけです。
ここでmyfuncの返り値を真っ先に疑ってしまいました。関数型言語そこそこに使っているのに、これは恥ずかしい…(゚Д゚)

雑感

わりと無難な感じでF#の第一歩を踏み出せたような気がします。F#でいきなり何か作るのは難しくても、C#のプロジェクトの一部にF#のライブラリを混ぜ込むような感じで、徐々に浸食していけるように頑張ります。

言語自体については…mutableな変数が簡単に定義でき、クラスの概念があるので、Scalaと似たような立ち位置になるのでしょうか。JVMに対する.NET、Javaに対するC#、Scalaに対するF#、と。
ML系の言語が初めてなので、不慣れな文法や演算子にびっくりしながら進めてました。Erlangのときも、文法にはなかなか馴染めなかったので、新しい流儀に入るときはこんなものでしょうかね。全く抵抗を感じさせなかったScalaのすごさを改めて感じました。