• Like
  • Save
Scala Daysに行ってみて
Upcoming SlideShare
Loading in...5
×
 

Scala Daysに行ってみて

on

  • 3,125 views

Scala Days参加レポートのような何か

Scala Days参加レポートのような何か

Statistics

Views

Total Views
3,125
Views on SlideShare
3,125
Embed Views
0

Actions

Likes
1
Downloads
8
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Scala Daysに行ってみて Scala Daysに行ってみて Presentation Transcript

    • Scala Days に行ってみて ~ あるいはスイス旅行記 ~ @kmizu
    • 自己紹介
      • 名前:水島宏太
        • @kmizu http://twitter.com/kmizu/
      • 筑波大学大学院の博士後期課程 3 年生
      • Scala 言語仕様輪読会等のイベントを主催
        • http://atnd.org/events/3161 ( 第 4 回 )
      • プログラミング言語が大好き
      • あちこちで Scala の布教活動
    • Agenda
      • 発表申し込み~出発まで
      • 成田~ローザンヌ
      • Scala Days(1 日目 )
      • Scala Days(2 日目 )
      • 飛行機欠航
      • Scala Days 延長戦
      • 帰国
      • まとめ
    • Scala Days 2010 ?
      • Scala に関する最初のワークショップ
      • Scala のお膝元である EPFL で開催
        • スイスのローザンヌ
      • 04/15 ~ 04/16 の二日間
      • 参加者 150 名超
      • Martin Odersky 先生や Scala チームの人に会える!
      • 全発表の動画が公式ページから視聴できる!
        • 太っ腹!
        • http://days2010.scala-lang.org/node/136
    • きっかけ
      • Scala Days の CFP(Call For Speakers) を読む
        • PEG 関係の持ちネタがあるし、発表したい
        • Scala の最新動向を実際に肌で感じたい
        • Odersky 先生に実際に会って話をしてみたい
      • しかし、海外に行くのは初めて
        • 一人では心細い
        • 英語駄目駄目だけど大丈夫だろうか?
      • 友人の @_tad_ からの後押し
        • チャンスがあるなら行かないのは損! ( うろ覚え )
      • ならば行ってやろうじゃないか
    • Speakerへの応募
      • タイトルと概要を英語で書いて submit
        • PEGEX: a PEG-based pattern matching library EXtended by back reference with regex-like notation in Scala
    • Accepted
      • それから約1週間後…
        • ヒャッホウ
    • さて、自分の発表順は…
      • なんと(Opening Talkを除いて)一番最初!
        • プレッシャーが…
    • 発表の準備とか
      • 英語の発表は初めて
      • もちろん、英語のスライド作るのも初めて
      • というわけで、読み上げ原稿を用意
        • 原稿無しでその場で英語発表はきつい…
      • 発表練習
        • ついつい早口になってしまい、うまく話せない
        • 一人で原稿を読み上げてみたり
      • 英語スライドの作り方の作法がよくわからない
        • 英語圏の技術者の発表スライドを見て勉強
    • Agenda
      • 発表申し込み~出発まで
      • 成田~ローザンヌ
      • Scala Days(1 日目 )
      • Scala Days(2 日目 )
      • 飛行機欠航
      • Scala Days 延長戦
      • 帰国
      • まとめ
    • 成田~ジュネーブ
      • 経路は成田->ロンドン->ジュネーブ
        • ジュネーブ直通路線が無いので
      • 計約 13 時間のフライト
        • 長時間のフライトは初めてだったので疲れた…
      • ジュネーブに着く頃には真っ暗 (22 時過ぎ )
        • ジュネーブのホテルで一泊
      • タクシーでホテルに行こうとしたが…
        • 行き先告げると嫌そうな顔して去って行ってしまった
        • 徒歩でも近くなので嫌がられたっぽい
    • ヒースロー空港(ロンドン)の風景
    • ジュネーブ~ローザンヌ
      • スイス国鉄(SBB)で1時間弱
        • のどかな風景を眺めながらのんびり
      • スイスは鉄道が発達してて、時間もきっちり守る
        • ので、日本人にとってもわかりやすい
    • ローザンヌ
      • スイスのヴォー州に属する基礎自治体
      • フランス語圏
        • 売店のおっちゃんとか、英語通じない人が多い
      • 国際オリンピック委員会( IOC )の本部がある
        • 別名、オリンピックの首都
      • 坂道が異様に多い
        • 疲れる
      • 細い路地が多くていりくねってる
        • かなり迷いやすい
    • ローザンヌ駅前
    • ローザンヌにもあるマクドナルド
    • Agenda
      • 発表申し込み~出発まで
      • 成田~ローザンヌ
      • Scala Days(1 日目 )
      • Scala Days(2 日目 )
      • Scala Days 延長戦
      • 帰国
      • まとめ
    • ホテル~Scala Days会場まで
      • ホテル最寄駅~EPFL駅(!)まで地下鉄で移動
      • 案内の張り紙を見ながら会場まで移動
        • 馬鹿でかいキャンパス
    • Scala Days会場(外側)
    • Scala Days会場(メインホール)
    • Opening Talk (Martin Odersky)
      • 登壇するときに Odersky 先生がこけそうになる w
      • 主な内容:
        • Scala の歴史
          • 2001 年 : 設計開始 , 2003 年 : 最初のリリース
        • Scala の背景にある思想
        • Scala を導入している企業
          • 4sq,Twitter,Xerox,eBay などなど
        • Scala 2.8 新機能解説
        • Scala の未来
      • 英語が聴き取りやすく、内容も非常にわかりやすかった
    • PEGEX: a PEG-based pattern matching library EXtended by back reference with regex-like notation in Scala (@kmizu)
      • 自分の発表
      • パターンマッチングライブラリ PEGEX について
      • 緊張しまくりで発音も怪しい
      • School Days ネタを入れてみたが、全く通じず
      • 質疑応答は、聴き取り能力が低いため難航
      • 教訓:英語の 聴き取り能力 は鍛えておくべき
        • 話す力は低くても極端な話なんとかなる
        • が、聴き取り能力が低いとどうにもならない
      • 発表後、スライドの マークは何?と質問された
        • バックスラッシュに置き換えるのを忘れてた orz
    • 発表者特典のマグカップ
    • A Case Study in DSL Development: An Experiment with Python and Scala ( Klaus Havelund, Michel Ingham, David Wagner)
      • Scala の機能をうまく生かして DSL を作ってみました的な話
        • 無名関数とかデフォルト引数とか call by name とか
      • Python による DSL と比較してあーだこーだ
      • NASA のケネディ宇宙センターで使われてる(!)
        • NASA で使われてると言うとなんか凄そうに聞こえる法則
      • 感想:かなりトリッキーな使い方してるけど、よく考えられてて、上手いなー
    • Automated Refactoring for Scala (Mirko Stocker)
      • IDE 独立な Scala のリファクタリングエンジンの話
      • scalac の上に乗っける
      • Scala 特有のリファクタリングをサポート
      • Eclipse 上で動作デモ
      • 感想: Eclipse 上の動作デモに感動
        • Extract Method とか organize import とか Rename とかがちゃんと動いてた ( ? ) のは凄い
      • 現在の Scala Eclipse Plugin の nightly build にこれの成果が取り込まれたっぽい
    • 昼食(1日目)
      • EPFL の大学食堂でなんかコース料理っぽいものが出てきた
      • 割とおいしかった
        • 特にデザート
      • 周りで面白そうな話してるのに、聴き取り能力が低いせいで自分からなかなか話に飛び込めず orz
        • やはり 聴き取り能力 は重要
      • 食堂までの道順がややこしい
        • 誰かについて行かないと 迷う
    • Lightweight Language Processing in Kiama and Scala (Anthony M. Sloane)
      • Kiama という言語処理ライブラリについての話
      • 基本的なコンパイラの構成要素 ( 抽象構文木やらデータフローグラフやら ) の話が多かったので、正直退屈だった
        • あと、時差ぼけ(?)で眠かったというのもある
    • Lightweight language support for type-based, concurrent event processing (Philipp Haller)
      • 実行時型情報をうまく使ってScalaのActorライブラリを最適化してみました、という話
        • Actorのメールボックスの探索コストなどを減らせる
      • 最悪でも23%程度のオーバーヘッド
      • コードサイズはほとんど変化無し
      • Producer/Consumerパターンでは劇的な性能改善
      • Scala 2.8のコンパイラプラグインとして実装
      • ぜひともScalaの標準ライブラリに組み込んで欲しいところ
    • Named and Default Arguments in Scala (Lukas Rytz)
      • 2.8 で導入される ( された ) 名前つき引数とデフォルト引数についての話
        • 導入する動機とか、設計・実装の話
      • 一見簡単に見える機能だが、継承とかジェネリクスとかを絡めると意外と複雑なことになる
        • オーバーライド時に引数名を交換すると何が起こる?
      • 型チェックは呼び出し側で行われる
        • 意外
        • def id[T](x: T = "scala") = x // OK
        • id[Int]() // Error
    • Automatic refactorings for Scala programs (Ilya Sergey, Dave Clarke, Alexander Podkhalyuzin)
      • JetBrains の人 (IntelliJ IDEA の中の人 ) の発表
      • IntelliJ IDEA の Scala プラグインに実装されたリファクタリング機能の話
      • Scala のリファクタリングで、どこがめんどうか
        • 型推論とか implicit conversion とかクロージャとか
          • この辺があると色々ややこしいらしい
        • "Closure with state are evil!"
      • 実際のリファクタリングのデモ
      • リファクタリングエンジンの中の人も大変だ…
    • Leaky Monads - An Experiment with Automatic Resource Management (Josh Suereth)
      • 最初の一発ネタがウケた
        • 5秒でわかるモナド
          • trait Monad[M]{ def flatMap(...) } がモナドだ!
      • モナドを使うと、 ARM(Automatic Resource Management) ライブラリをうまく実装できるよ!
        • リソースを要素に持つコンテナ型 ManagedResource を用意して、こいつにモナド的な演算を定義してうんたらかんたら
      • 2010/09/02 現在、実装が github から見られる
        • http://github.com/jsuereth/scala-arm
    • Type-safe SQL embedded in Scala (Christoph Wulf)
      • SQL のクエリをコンパイル時にチェックしたい
      • 埋め込み XML と似たような方針で実装
      • SQL としてパーズを試みて、失敗したら Scala にフォールバックしたりとか
        • val iter = SELECT id, name FROM user >> sqlConnection
      • コンパイラプラグインとして実装
      • SQL の型を Scala の trait にマッピングとか色々
      • 個人的には、ここまで頑張って SQL を埋め込まなくてもいいかなと思う
    • Scala Days会場~Reception会場
      • Nice Boat
    • Reception
      • 食事はイマイチ、デザートはおいしかった
      • Odersky 先生や Scala チームの人に挨拶したりとか
      • 翌日に待ち受ける運命を知る由も無いのであった
    • Agenda
      • 発表申し込み~出発まで
      • 成田~ローザンヌ
      • Scala Days(1 日目 )
      • Scala Days(2 日目 )
        • 寝坊したので Keynote Address を聞き逃した orz
      • Scala Days 延長戦
      • 帰国
      • まとめ
    • Scala at LinkedIn: Distributed Computing with Norbert (Chris Conrad)
      • LinkedIn(登録ユーザー4500万人超のビジネスSNSサービス)内でScalaがどのように使われているか
      • NorbertというScalaで実装された分散計算フレームワークについて
        • "a framework written in Scala that makes it fast and easy to write asynchronous, cluster aware, message based client/server applications"
    • Migrating a Struts/Java E-Mail Application to Lift/Scala (Christoph Knabe, Thomas Fiedler)
      • Struts/Java で書かれた Web アプリを Lift/Scala にどうやってポーティングするかという話
      • 例外処理をどうするか
        • 特に Ajax/Comet なアプリケーションで発生した例外をどう取り扱うか
      • Lift の O/R マッパーについて
      • Lift のテンプレートシステムについて
      • 全体として、 Lift 入門ぽい印象
    • The Scala IDE for Eclipse - Retrospect and Prospect for 2.8 (Miles Sabin)
      • 微妙なことで名高い(?) Scala Eclipse Plugin についての発表
      • EDF Trading がスポンサー
        • でも、開発はほとんど Miles Sabin 氏一人っぽい?
      • 現在作業中 ( 当時 ) の諸々について
        • 宣言へのジャンプとか
      • Eclipse でのデモ
      • (2010/09/02 現在の情報 ) 今年 10 月に Miles Sabin 氏が日本に来るらしいので、興味のある人は連絡下さい
    • 昼食(2日目)
      • 確かMiles Sabin氏らと同席したような…
        • ソースコードフォーマッタを実装する計画はあるかとか質問してた気がする(うろ覚え)
    • sbt: Design and Implementation (Mark Harrah)
      • Scala 用のビルドツール sbt の設計・実装の話
        • Scala ベース
        • Apache Ivy を利用
        • 同じ JVM 上でのプログラムの実行をサポート
        • 設定ファイルは Scala で書く
      • immutable が基本で、できるだけ副作用を排除
      • task{ ... } がタスクを返す、 dependsOn メソッドで依存関係を定義、 #> と #>>,#&& 演算子によるパイプやリダイレクトのサポート、などなど
    • Processing with Spde: Scala at the Intersection of Art and Technology (Nathan Hamblen)
      • Processing(Java ベースのビジュアルプログラミング環境 ) の Scala 版である Spde についての話
      • Scala は Java に比べて言語的なメリットが色々あるので、 Processing を Scala でも使いたい云々
      • 無名関数などを活用して、 Processing を使うよりも簡潔にコードを書けている
        • size(500, 500)
        • def squared = points(-50, 50) { x => x * x }
        • def draw {
        • lineplot(squared)
        • }
    • Sneaking Scala Into Your Organization (David Copeland)
      • 一言で言うと、「あなたの会社でScalaを使うにはどうすればいいか?」
      • Scalaの学習曲線の急さをどう緩和するか
      • どの部分でScalaをまず採用するか
        • ビジネスロジック層
        • モデル層
        • アプリケーションエンドポイント層
      • Web TestingのためのDSLをScalaで書く
      • 論点の切り分け方が明確で、非常にわかりやすい良い発表
    • The Future of Scala
      • 参加者をいくつかのグループに分けて、グループごとに Scala の未来について議論するというセッション…だったのだが、全く参加できず orz( 後述 )
    • 帰りの飛行機が欠航 orz
      • アイスランドの Eyjafjallokull( エイヤフィヤトラヨークトル ) 火山の火山灰が欧州に拡散
        • 帰りの便が欠航に&いつ帰れるかわからない状態に ( 泣 )
    • 一気に鬱な状態に
    • Agenda
      • 発表申し込み~出発まで
      • 成田~ローザンヌ
      • Scala Days(1日目)
      • Scala Days(2日目)
      • Scala Days 延長戦
      • 帰国
      • まとめ
    • Scala Days延長戦
      • いつ帰れるかわからない不安の中、 Odersky 先生による次のポストが Twitter に
        • これはもう行くしかあるまい
    • Scala Days延長戦
      • Odersky 先生や Scala チームの方々とランチをご一緒させていただくことに
      • Scala 研究室見学ツアーのおまけつき
        • Scaladoc2 の開発者の方と Scaladoc2 の改善案について提案してみたり
        • Leaky Monads の人とモナドについて語り合ったり
        • なんか日本のアニメファンっぽい方と日本のアニメについて語り合ったりしてました
          • デスノート とか シリアル エクス ペリ メンツ・レイン とか
      • 不幸中の幸い
    • Scala(螺旋階段)
    • Scala研究室の屋上からの風景
      • なんか工事中っぽい雰囲気がばりばりと…
    • Scalaを降りる
    • Agenda
      • 発表申し込み~出発まで
      • 成田~ローザンヌ
      • Scala Days(1 日目 )
      • Scala Days(2 日目 )
      • 飛行機欠航
      • Scala Days 延長戦
      • 帰国
      • まとめ
    • 帰国
    • Agenda
      • 発表申し込み~出発まで
      • 成田~ローザンヌ
      • Scala Days(1 日目 )
      • Scala Days(2 日目 )
      • 飛行機欠航
      • Scala Days 延長戦
      • 帰国
      • まとめ
    • まとめ
      • Scala Days は非常に楽しかった
        • 来年も都合が悪くなければ行きたい
        • でも、今回みたいな災難はもう勘弁して欲しい
      • 人と人のつながり の大切さを実感
        • Twitter で励ましのメッセージを送ってくれた方々や情報収集を行ってくれた方々に感謝
      • 英語の 聴き取り能力 は鍛えておくべき
      • 英語能力が無くてもブロークン英語でもコミュニケーションを取るだけならなんとかなる
        • ので、海外を必要以上に恐れることは無い