|
[2014-09-06 08:09:28 JST] (INFO) start |
|
[2014-09-06 08:09:39 JST] (INFO) irc|taisukeoe|hello |
|
[2014-09-06 08:09:38 JST] (INFO) twitter|niw|Okay, my presentation is not ready (ouch!) yet heading to Shibuya soon. #ScalaMatsuri |
|
[2014-09-06 08:09:38 JST] (INFO) twitter|makoto78sasaki|#ScalaMatsuri へ出発 |
|
[2014-09-06 08:09:39 JST] (INFO) twitter|s_kozake|さて、向かうで! |
|
#ScalaMatsuri |
|
[2014-09-06 08:09:41 JST] (INFO) twitter|cbirchall|寝坊!今日に限って目覚ましが鳴らないとは。今向かっています #ScalaMatsuri |
|
[2014-09-06 09:09:41 JST] (INFO) twitter|sm0kym0nkey|到着 #ScalaMatsuri |
|
[2014-09-06 09:09:41 JST] (INFO) twitter|jagd5168|なんとか目を覚まし 9:45 到着予定 #ScalaMatsuri |
|
[2014-09-06 09:09:41 JST] (INFO) twitter|iyunoriue|#ScalaMatsuri 今日ボランティアやってますv(*・∀・*)ピース |
|
[2014-09-06 09:09:41 JST] (INFO) twitter|shitai246_|#scalamatsuri むかう |
|
[2014-09-06 09:09:41 JST] (INFO) twitter|kawachi|準備中 #ScalaMatsuri http://t.co/syT9NXJYm1 |
|
[2014-09-06 09:09:41 JST] (INFO) twitter|potix2|#ScalaMatsuri に参加します!小田好先生の講演楽しみ |
|
[2014-09-06 09:09:41 JST] (INFO) twitter|sumito3478|渋谷へゆく (′??[ ]三 #ScalaMatsuri |
|
[2014-09-06 09:09:42 JST] (INFO) twitter|eiryu|死にそうだけど #ScalaMatsuri 向かう |
|
[2014-09-06 09:09:42 JST] (INFO) twitter|nisshieeorg|間に合うかギリギリのライン・・・ #ScalaMatsuri |
|
[2014-09-06 09:09:42 JST] (INFO) twitter|g_u_nex|#ScalaMatsuri に出発する時間と通知が出たけど、もう四階に居るんだよなぁ |
|
[2014-09-06 09:09:42 JST] (INFO) twitter|cactaceae|会場到着!#ScalaMatsuri |
|
[2014-09-06 09:09:42 JST] (INFO) twitter|rabitarochan|移動中? #ScalaMatsuri |
|
[2014-09-06 09:09:42 JST] (INFO) twitter|mironal|ギリギリの到着になりそうだ???(? ? ??')?????ァ゛ア゛ア゛ァ゛ァ゛ #ScalaMatsuri |
|
[2014-09-06 09:09:42 JST] (INFO) twitter|hajimeni|来た。早すぎた。 #ScalaMatsuri |
|
[2014-09-06 09:09:42 JST] (INFO) twitter|niw|#ScalaMatsuri http://t.co/8wLiMlignb |
|
[2014-09-06 09:09:42 JST] (INFO) twitter|niw|Up to 17th #ScalaMatsuri |
|
[2014-09-06 09:09:42 JST] (INFO) twitter|AoiroAoino|開場!! #ScalaMatsuri |
|
[2014-09-06 09:09:46 JST] (INFO) twitter|makoto78sasaki|会場到着 #ScalaMatsuri http://t.co/fq2csI6oNc |
|
[2014-09-06 09:09:46 JST] (INFO) twitter|Kuchitama|Bルームの奥に2日目のアイディアを張り出すホワイトボードがあります。 #ScalaMatsuri http://t.co/p5iK7wBevP |
|
[2014-09-06 09:09:46 JST] (INFO) twitter|cactaceae|こっちが公式っぽいですよ @eiryu #ScalaMatsuri |
|
[2014-09-06 09:09:46 JST] (INFO) twitter|naoki_wada|会場着いた。ノベルティ頂いた。#ScalaMatsuri http://t.co/Rv1naFeTiA |
|
[2014-09-06 09:09:46 JST] (INFO) twitter|takudo_dev|ラップトップ率たけー |
|
#ScalaMatsuri |
|
[2014-09-06 09:09:46 JST] (INFO) twitter|teppei_tosa|来ました。LT予定です。 #ScalaMatsuri http://t.co/zaeXbW6XDx |
|
[2014-09-06 09:09:46 JST] (INFO) twitter|toru_inoue|#ScalaMatsuri に向かう |
|
[2014-09-06 09:09:46 JST] (INFO) twitter|eiryu|ハッシュタグ2種類あんの? #ScalaMatsuri #ScalaMatsuri2014 |
|
[2014-09-06 09:09:46 JST] (INFO) twitter|eiryu|オダスキー先生見たら満足しそうなくらいには疲れてる #ScalaMatsuri |
|
[2014-09-06 09:09:21 JST] (INFO) start |
|
[2014-09-06 09:09:03 JST] (INFO) irc|cb372|おはようございます |
|
[2014-09-06 09:09:35 JST] (INFO) irc|illabout|おはようございます。 |
|
[2014-09-06 09:09:05 JST] (INFO) irc|eed3si9n_|test |
|
[2014-09-06 09:09:31 JST] (INFO) irc|eed3si9n|おはようございます |
|
[2014-09-06 09:09:35 JST] (INFO) twitter|tattyamm|電源ありがたや #scalamatsuri |
|
[2014-09-06 09:09:35 JST] (INFO) twitter|tattyamm|電源ありがたや #scalamatsuri |
|
[2014-09-06 09:09:35 JST] (INFO) twitter|eiryu|今はCMの時間帯らしい #ScalaMatsuri |
|
[2014-09-06 09:09:35 JST] (INFO) twitter|eiryu|今はCMの時間帯らしい #ScalaMatsuri |
|
[2014-09-06 09:09:35 JST] (INFO) twitter|kara_d|今日はこういう感じで攻めます #scalamatsuri http://t.co/ZwmTuDfUoS |
|
[2014-09-06 09:09:35 JST] (INFO) twitter|kara_d|今日はこういう感じで攻めます #scalamatsuri http://t.co/ZwmTuDfUoS |
|
[2014-09-06 09:09:35 JST] (INFO) twitter|nisshieeorg|めっちゃCM流れるw #ScalaMatsuri |
|
[2014-09-06 09:09:35 JST] (INFO) twitter|nisshieeorg|めっちゃCM流れるw #ScalaMatsuri |
|
[2014-09-06 09:09:35 JST] (INFO) twitter|stormcat24|CMワロスwww #ScalaMatsuri |
|
[2014-09-06 09:09:35 JST] (INFO) twitter|stormcat24|CMワロスwww #ScalaMatsuri |
|
[2014-09-06 09:09:35 JST] (INFO) twitter|naoki_wada|音声同時通訳じゃなくて、テキスト通訳なのか。来年までに英語の勉強せねば!#ScalaMatsuri |
|
[2014-09-06 09:09:35 JST] (INFO) twitter|naoki_wada|音声同時通訳じゃなくて、テキスト通訳なのか。来年までに英語の勉強せねば!#ScalaMatsuri |
|
[2014-09-06 09:09:35 JST] (INFO) twitter|eiryu|着席 #ScalaMatsuri |
|
[2014-09-06 09:09:35 JST] (INFO) twitter|eiryu|着席 #ScalaMatsuri |
|
[2014-09-06 09:09:35 JST] (INFO) twitter|atty303|【ニコ生視聴中(後9分で開始)】 Scala祭 A会場 生中継 http://t.co/yXvDZPB9ht #ScalaMatsuri |
|
[2014-09-06 09:09:35 JST] (INFO) twitter|atty303|【ニコ生視聴中(後9分で開始)】 Scala祭 A会場 生中継 http://t.co/yXvDZPB9ht #ScalaMatsuri |
|
[2014-09-06 09:09:35 JST] (INFO) twitter|ruimo|ScalaMatsuri来た。思ったより規模がデカい。結構日本でもはやっているんだろうか。#ScalaMatsuri |
|
[2014-09-06 09:09:35 JST] (INFO) twitter|ruimo|ScalaMatsuri来た。思ったより規模がデカい。結構日本でもはやっているんだろうか。#ScalaMatsuri |
|
[2014-09-06 09:09:35 JST] (INFO) twitter|pocketberserker|#ScalaMatsuri 会場に潜入してる |
|
[2014-09-06 09:09:35 JST] (INFO) twitter|pocketberserker|#ScalaMatsuri 会場に潜入してる |
|
[2014-09-06 09:09:35 JST] (INFO) twitter|iyunoriue|#ScalaMatsuri Apache Spark コミッタのAaron Davidson さんのセッションが楽しみ(*^^)♪ |
|
[2014-09-06 09:09:35 JST] (INFO) twitter|iyunoriue|#ScalaMatsuri Apache Spark コミッタのAaron Davidson さんのセッションが楽しみ(*^^)♪ |
|
[2014-09-06 09:09:35 JST] (INFO) twitter|kmizu|#ScalaMatsuri 開始前 (@ 株式会社サイバーエージェント (CyberAgent Inc.) in 渋谷区, 東京都) https://t.co/6pMBKkOEl5 |
|
[2014-09-06 09:09:35 JST] (INFO) twitter|kmizu|#ScalaMatsuri 開始前 (@ 株式会社サイバーエージェント (CyberAgent Inc.) in 渋谷区, 東京都) https://t.co/6pMBKkOEl5 |
|
[2014-09-06 09:09:05 JST] (INFO) irc|eed3si9n|test |
|
[2014-09-06 09:09:34 JST] (INFO) irc|eed3si9n|前で翻訳やってます。今日はよろしくお願いします |
|
[2014-09-06 09:09:10 JST] (INFO) irc|cb372_|テスト |
|
[2014-09-06 09:09:29 JST] (INFO) irc|eed3si9n|Wifi の干渉が起こってます。ケータイの wifi は切ってください。ご協力お願いします。 |
|
[2014-09-06 09:09:01 JST] (INFO) irc|cb372_|A short into to CyberAgent's charity CA Tech Kids |
|
[2014-09-06 09:09:25 JST] (INFO) irc|cb372_|3-day camps for kids to learn programming |
|
[2014-09-06 09:09:36 JST] (INFO) irc|cb372_|takes place during school holidays |
|
[2014-09-06 09:09:52 JST] (INFO) irc|cb372_|idea: to make stuff! games, etc |
|
[2014-09-06 09:09:56 JST] (INFO) irc|cb372_|make it as fun as possible |
|
[2014-09-06 09:09:18 JST] (INFO) irc|cb372_|this photo is of kids showing off their creations to each other |
|
[2014-09-06 09:09:35 JST] (INFO) irc|cb372_|the other thing we do is a regular programming school |
|
[2014-09-06 09:09:52 JST] (INFO) irc|cb372_|for kids who are already convinced of the value of programming |
|
[2014-09-06 10:09:05 JST] (INFO) irc|cb372_|3 courses: iphone apps, |
|
[2014-09-06 10:09:08 JST] (INFO) irc|eed3si9n|using actual programming language |
|
[2014-09-06 10:09:36 JST] (INFO) irc|cb372_|not just about learning tech |
|
[2014-09-06 10:09:46 JST] (INFO) irc|cb372_|also about ideas, and how to turn those into products |
|
[2014-09-06 10:09:06 JST] (INFO) irc|cb372_|every 3 months the kids give presentations |
|
[2014-09-06 10:09:27 JST] (INFO) irc|cb372_|this is an iphone app that a student developed |
|
[2014-09-06 10:09:51 JST] (INFO) irc|cb372_|in England, IT is now a subject in elementary schools |
|
[2014-09-06 10:09:57 JST] (INFO) irc|cb372_|Japan will follow soon |
|
[2014-09-06 10:09:31 JST] (INFO) irc|cb372_|please spread the word about this program |
|
[2014-09-06 10:09:39 JST] (INFO) irc|cb372_|in your tote bag you'll find more details |
|
[2014-09-06 10:09:38 JST] (INFO) twitter|840_|この黒い棒isなに #ScalaMatsuri |
|
[2014-09-06 10:09:38 JST] (INFO) twitter|haya14busa|wa-i ScalaMatsuri http://t.co/dYDq87ddRS #ScalaMatsuri |
|
[2014-09-06 10:09:38 JST] (INFO) twitter|modal_soul|#ScalaMatsuri ステッカーてんこ盛りだし、会場のWifi早いし、スポンサー力高ぇ |
|
[2014-09-06 10:09:38 JST] (INFO) twitter|stormcat24|いっぱいもろた!! #ScalaMatsuri http://t.co/uIyQZyGtuH |
|
[2014-09-06 10:09:38 JST] (INFO) twitter|takuan_osho|ニコ生で聞いてる。 #ScalaMatsuri |
|
[2014-09-06 10:09:38 JST] (INFO) twitter|cohalz|習い事としてプログラミングをさせる時代が来るのか #ScalaMatsuri |
|
[2014-09-06 10:09:38 JST] (INFO) twitter|s_kozake|いいな? 子供にやらせてあげたい。 tech kids school #ScalaMatsuri |
|
[2014-09-06 10:09:38 JST] (INFO) twitter|garbagetown|キッズなのにアイホンアプリ作ったりプレゼンまでしてるの、、、 #ScalaMatsuri |
|
[2014-09-06 10:09:38 JST] (INFO) twitter|eiryu|サイバーエージェントさんの tech kids 紹介。教育は後々のサービス利用や採用に繋がってくるからなあ。重要 #ScalaMatsuri |
|
[2014-09-06 10:09:38 JST] (INFO) twitter|numa08|#ScalaMatsuri この、謎の黒い棒は何なのかな・・・ |
|
[2014-09-06 10:09:38 JST] (INFO) twitter|niw|?ing and ?ing #ScalaMatsuri |
|
[2014-09-06 10:09:38 JST] (INFO) twitter|garbagetown|tech kids schoolすばらしい #ScalaMatsuri |
|
[2014-09-06 10:09:38 JST] (INFO) twitter|kazzna|Tech Kids Schoolみたいなお仕事したい!!! #ScalaMatsuri |
|
[2014-09-06 10:09:53 JST] (INFO) irc|eed3si9n|#scalamatsuri is the main hashtag for the event |
|
[2014-09-06 10:09:34 JST] (INFO) irc|eed3si9n|#scalamatsuri2 is for proposing talks (by yourself or others) for the unconference tomorrow |
|
[2014-09-06 10:09:33 JST] (INFO) irc|illabout|this is the opening speech for scala matsuri |
|
[2014-09-06 10:09:38 JST] (INFO) irc|illabout|lets look back on 2013 |
|
[2014-09-06 10:09:58 JST] (INFO) irc|cb372_|sold 200 tickets in 1 week |
|
[2014-09-06 10:09:15 JST] (INFO) irc|eed3si9n|we are going back to the basics this year |
|
[2014-09-06 10:09:21 JST] (INFO) irc|cb372_|this year's theme: Enjoy.scala |
|
[2014-09-06 10:09:46 JST] (INFO) irc|eed3si9n|ScalaMatsuri is the conference name (matsuri means festival) |
|
[2014-09-06 10:09:53 JST] (INFO) irc|illabout|where did you hear about scalamatsuri? |
|
[2014-09-06 10:09:04 JST] (INFO) irc|cb372_|most people said Twitter |
|
[2014-09-06 10:09:12 JST] (INFO) irc|illabout|Are you using scala at work? |
|
[2014-09-06 10:09:16 JST] (INFO) irc|cb372_|about half said yes |
|
[2014-09-06 10:09:50 JST] (INFO) irc|illabout|Tell us about how long you've been using scala. |
|
[2014-09-06 10:09:57 JST] (INFO) irc|cb372_|a lot of people using for more than 1 year |
|
[2014-09-06 10:09:11 JST] (INFO) irc|cb372_|scala is obviously gaining in popularity |
|
[2014-09-06 10:09:27 JST] (INFO) irc|cb372_|Twitter is an effective marketing tool |
|
[2014-09-06 10:09:35 JST] (INFO) irc|cb372_|or just lots of SCala users use Twitter? |
|
[2014-09-06 10:09:36 JST] (INFO) irc|illabout|Have fun at ScalaMatsuri! |
|
[2014-09-06 10:09:29 JST] (INFO) irc|eed3si9n|小田好先生、実は昨日が誕生日 |
|
[2014-09-06 10:09:48 JST] (INFO) irc|cb372_|おめでとうございます! |
|
[2014-09-06 10:09:36 JST] (INFO) irc|eed3si9n|先生の twitter は @odersky |
|
[2014-09-06 10:09:42 JST] (INFO) irc|eed3si9n|ご招待ありがとうございます |
|
[2014-09-06 10:09:00 JST] (INFO) irc|eed3si9n|今日は Scala の進化について話します |
|
[2014-09-06 10:09:23 JST] (INFO) irc|eed3si9n|Scalaができてから十年経ちました |
|
[2014-09-06 10:09:56 JST] (INFO) irc|eed3si9n|この公表からだいたいのScala の形が既に分かります |
|
[2014-09-06 10:09:02 JST] (INFO) irc|cb372_|Scalaのゴール:abstract types, mixins |
|
[2014-09-06 10:09:07 JST] (INFO) irc|cb372_|パターンマッチ |
|
[2014-09-06 10:09:17 JST] (INFO) irc|eed3si9n|SML 的な モジュールを考えてました |
|
[2014-09-06 10:09:22 JST] (INFO) irc|cb372_|パターンマッチはXMLのためだった |
|
[2014-09-06 10:09:49 JST] (INFO) irc|eed3si9n|Scala の前史 |
|
[2014-09-06 10:09:57 JST] (INFO) irc|cb372_|学生時代、コンパイラが好きになった |
|
[2014-09-06 10:09:01 JST] (INFO) irc|eed3si9n|modula-2 から始めました |
|
[2014-09-06 10:09:22 JST] (INFO) irc|eed3si9n|チューリッヒにいるときに関数型に惚れました |
|
[2014-09-06 10:09:37 JST] (INFO) irc|eed3si9n|Pizza という言語作りました |
|
[2014-09-06 10:09:41 JST] (INFO) twitter|scova0731|Happy birthday, Oderskey-sensei ! #ScalaMatsuri |
|
[2014-09-06 10:09:41 JST] (INFO) twitter|satoshihirose|Odersky氏による基調講演!!! http://t.co/ns5iXUIww6 #ScalaMatsuri |
|
[2014-09-06 10:09:41 JST] (INFO) twitter|niw|Happy birthday, Prof. @odersky! #ScalaMatsuri |
|
[2014-09-06 10:09:41 JST] (INFO) twitter|kmizu|Modula-2とかOberonってこの会場に居る人のどれだけが知ってるんだろう… #ScalaMatsuri |
|
[2014-09-06 10:09:41 JST] (INFO) twitter|5kozawa|はじまった #ScalaMatsuri |
|
[2014-09-06 10:09:41 JST] (INFO) twitter|numa08|Pizzaきた #ScalaMatsuri |
|
[2014-09-06 10:09:41 JST] (INFO) twitter|hirosuegari|#ScalaMatsuri きた |
|
[2014-09-06 10:09:41 JST] (INFO) twitter|so_zaneli|小田好先生の基調講演。 #ScalaMatsuri |
|
[2014-09-06 10:09:41 JST] (INFO) twitter|shitai246_|オダースキーせんせいの英語わかりやすい #scalamatsuri |
|
[2014-09-06 10:09:41 JST] (INFO) twitter|garbagetown|うおおおおお小田好先生! #ScalaMatsuri http://t.co/oNG7bEa74m |
|
[2014-09-06 10:09:46 JST] (INFO) irc|cb372_|ラムダ式を巡って勉強していた |
|
[2014-09-06 10:09:50 JST] (INFO) irc|eed3si9n|Java の関数型への拡張 |
|
[2014-09-06 10:09:34 JST] (INFO) irc|eed3si9n|Java にジェネリックスを入れる作業も行いました |
|
[2014-09-06 10:09:41 JST] (INFO) irc|cb372_|ジェネリクス以外、Pizzaの機能は評判悪かった |
|
[2014-09-06 10:09:00 JST] (INFO) irc|eed3si9n|関数型ペトリネット |
|
[2014-09-06 10:09:13 JST] (INFO) irc|eed3si9n|join 計算の実装です |
|
[2014-09-06 10:09:30 JST] (INFO) irc|eed3si9n|それを使った最小言語 Funnel |
|
[2014-09-06 10:09:43 JST] (INFO) irc|cb372_|サイトはまだ見れるはず |
|
[2014-09-06 10:09:02 JST] (INFO) irc|eed3si9n|Pi 計算だと Pict |
|
[2014-09-06 10:09:27 JST] (INFO) irc|cb372_|Funnelは汎用的だった |
|
[2014-09-06 10:09:33 JST] (INFO) irc|eed3si9n|最小限語はコアの計算レイヤの上に糖衣構文の乗せたもの |
|
[2014-09-06 10:09:02 JST] (INFO) irc|eed3si9n|エンコーディングはダメだった |
|
[2014-09-06 10:09:23 JST] (INFO) irc|cb372_|暗黙的な知識が必要だった |
|
[2014-09-06 10:09:44 JST] (INFO) irc|eed3si9n|もっと実用的な言語を作りたかった |
|
[2014-09-06 10:09:06 JST] (INFO) irc|eed3si9n|OO と FP の組み合わせが良いことは分かった |
|
[2014-09-06 10:09:21 JST] (INFO) irc|eed3si9n|ライブラリで色々できるようにすることにした |
|
[2014-09-06 10:09:22 JST] (INFO) irc|cb372_|並列処理はライブラリに抽出した |
|
[2014-09-06 10:09:38 JST] (INFO) irc|cb372_|ライブラリ化して良かった |
|
[2014-09-06 10:09:20 JST] (INFO) irc|cb372_|コアcalculusと言語との依存性をゆるめた |
|
[2014-09-06 10:09:56 JST] (INFO) irc|cb372_|XMLリテラル=クレイジー! |
|
[2014-09-06 10:09:04 JST] (INFO) irc|eed3si9n|オブジェクトやクラスモデルなどが加えられた |
|
[2014-09-06 10:09:25 JST] (INFO) irc|cb372_|Asterixって知ってるかな? |
|
[2014-09-06 10:09:42 JST] (INFO) irc|eed3si9n|XML リテラルもこの時に追加されました |
|
[2014-09-06 10:09:53 JST] (INFO) irc|cb372_|このちいさな村はFPの例え |
|
[2014-09-06 10:09:06 JST] (INFO) irc|cb372_|その当時、FPはマイナーだった |
|
[2014-09-06 10:09:33 JST] (INFO) irc|eed3si9n|OO の主流派は可変的なデータをカプセル化するもの |
|
[2014-09-06 10:09:07 JST] (INFO) irc|cb372_|Webサービスはイミュータブルかつ再帰的なデータを扱うことが多い |
|
[2014-09-06 10:09:15 JST] (INFO) irc|cb372_|FPに向いている |
|
[2014-09-06 10:09:32 JST] (INFO) irc|eed3si9n|XML リテラルはそのためのもの |
|
[2014-09-06 10:09:51 JST] (INFO) irc|cb372_|FPの目玉機能としてXML処理を言語に入れた |
|
[2014-09-06 10:09:28 JST] (INFO) irc|cb372_|建前:「Webサービスのための言語」 |
|
[2014-09-06 10:09:41 JST] (INFO) irc|eed3si9n|当時アガって来てた web service へ不変データと関数型を適用という最初に想定してた用例 |
|
[2014-09-06 10:09:45 JST] (INFO) irc|cb372_|本音はちょっと違う |
|
[2014-09-06 10:09:55 JST] (INFO) irc|eed3si9n|何故新しい言語を作る必要があったのか |
|
[2014-09-06 10:09:07 JST] (INFO) irc|eed3si9n|2つの仮説 |
|
[2014-09-06 10:09:24 JST] (INFO) irc|eed3si9n|汎用言語の記述能力は高くあるべき |
|
[2014-09-06 10:09:47 JST] (INFO) irc|eed3si9n|OOP とfp を組み合わせれば、高い記述能力を得られる |
|
[2014-09-06 10:09:21 JST] (INFO) irc|cb372_|ピーナツバターとチョコを混ぜたお菓子 |
|
[2014-09-06 10:09:54 JST] (INFO) irc|eed3si9n|当時は冗談だったけど、今考えるとだいたい実話になった |
|
[2014-09-06 10:09:27 JST] (INFO) irc|cb372_|Pizza:Javaをそのまま残して、機能を追加するだけ |
|
[2014-09-06 10:09:34 JST] (INFO) irc|eed3si9n|Scala はより意欲的にOOPとFPの組み合わせを行った |
|
[2014-09-06 10:09:08 JST] (INFO) irc|eed3si9n|Pizza はモードをスイッチする必要があった |
|
[2014-09-06 10:09:17 JST] (INFO) irc|eed3si9n|Scala はお互いの統一に気を使った |
|
[2014-09-06 10:09:19 JST] (INFO) irc|cb372_|PizzaコードはFPだったり、OOPだったり、結局分かりにくい |
|
[2014-09-06 10:09:24 JST] (INFO) irc|eed3si9n|パターンマッチが良い例 |
|
[2014-09-06 10:09:03 JST] (INFO) irc|eed3si9n|パターンマッチをopen にすることで拡張にした |
|
[2014-09-06 10:09:25 JST] (INFO) irc|eed3si9n|java から持ってこなかったもの |
|
[2014-09-06 10:09:34 JST] (INFO) irc|cb372_|ScalaはJavaの拡張ではない |
|
[2014-09-06 10:09:44 JST] (INFO) twitter|takc923|#scalamatsuri 後ろのほう座っちゃったからニコ生でスライド見てる |
|
[2014-09-06 10:09:44 JST] (INFO) twitter|sun_rise_|【ニコ生視聴中】Scala祭 A会場 生中継 #ScalaMatsuri http://t.co/r5zAdka786 |
|
[2014-09-06 10:09:44 JST] (INFO) twitter|nakanishiyasuo|Scalaに一万人も興味あるのか? #ScalaMatsuri |
|
[2014-09-06 10:09:44 JST] (INFO) twitter|rinfield|#ScalaMatsuri マサカリ飛んでくるからかなw |
|
[2014-09-06 10:09:44 JST] (INFO) twitter|kazzna|algebraic datatypesって何だ?代数的データ型?何それ? #ScalaMatsuri |
|
[2014-09-06 10:09:44 JST] (INFO) twitter|cohalz|#ScalaMatsuri / “不完全にしておよそ正しくないプログラミング言語小史” http://t.co/0p0IgZr335 |
|
[2014-09-06 10:09:44 JST] (INFO) twitter|seratch_ja|ほんとだ、一万人超えてる! #ScalaMatsuri http://t.co/QlfFgVLfiX |
|
[2014-09-06 10:09:44 JST] (INFO) twitter|toru_inoue|ピザよりこころざしの高い言語 #ScalaMatsuri |
|
[2014-09-06 10:09:44 JST] (INFO) twitter|haya14busa|[不完全にしておよそ正しくないプログラミング言語小史](http://t.co/HYmaeN37Ij) #ScalaMatsuri |
|
[2014-09-06 10:09:44 JST] (INFO) twitter|jagaximo|Pizzaに興味出た #ScalaMatsuri |
|
[2014-09-06 10:09:05 JST] (INFO) irc|eed3si9n|まず最初にJava プログラマが書く予約語を3つが無し |
|
[2014-09-06 10:09:11 JST] (INFO) irc|eed3si9n|public, static, void |
|
[2014-09-06 10:09:14 JST] (INFO) irc|cb372_|Scalaにアノテーションあるけど、特殊なシンタックスではない |
|
[2014-09-06 10:09:56 JST] (INFO) irc|eed3si9n|プリミティブ演算などはメソッド |
|
[2014-09-06 10:09:08 JST] (INFO) irc|eed3si9n|キャスト用の構文も無し |
|
[2014-09-06 10:09:26 JST] (INFO) irc|cb372_|いろんな演算子をメソッドに変えた |
|
[2014-09-06 10:09:27 JST] (INFO) irc|eed3si9n|だいたい汎用的な構文に抽象化されてる |
|
[2014-09-06 10:09:47 JST] (INFO) irc|eed3si9n|内部での最初の用例は講義 |
|
[2014-09-06 10:09:56 JST] (INFO) irc|eed3si9n|100 人ぐらいの学生 |
|
[2014-09-06 10:09:13 JST] (INFO) irc|eed3si9n|コンパイラはまだまだの出来だった |
|
[2014-09-06 10:09:45 JST] (INFO) irc|eed3si9n|毎日夜鍋をして、講義をしながらコンパイラに仕上げた |
|
[2014-09-06 10:09:48 JST] (INFO) irc|cb372_|4週間頑張ってなんとかコンパイラ完成できた |
|
[2014-09-06 10:09:06 JST] (INFO) irc|cb372_|毎週コンパイラを拡張していた |
|
[2014-09-06 10:09:14 JST] (INFO) irc|eed3si9n|学生は楽しんでた |
|
[2014-09-06 10:09:25 JST] (INFO) irc|taisukeoe|学生は新しいものを触っているという感じを楽しんでいたようです |
|
[2014-09-06 10:09:27 JST] (INFO) irc|eed3si9n|次の年に公表 |
|
[2014-09-06 10:09:40 JST] (INFO) irc|cb372_|Jon Prettyさんは今日います |
|
[2014-09-06 10:09:57 JST] (INFO) irc|eed3si9n|初期からのユーザは Miles Sabin, Jon Pretty, Iulian Dragos |
|
[2014-09-06 10:09:15 JST] (INFO) irc|taisukeoe|[運営]Jon Prettyさんの講演 11:55~ Room:A |
|
[2014-09-06 10:09:49 JST] (INFO) irc|eed3si9n|2.0 はコンパイラもScala で |
|
[2014-09-06 10:09:51 JST] (INFO) irc|cb372_|本当はScala 0.2と呼ぶべきだった |
|
[2014-09-06 10:09:04 JST] (INFO) irc|eed3si9n|ここでcake pattern が登場 |
|
[2014-09-06 10:09:14 JST] (INFO) irc|taisukeoe|2006年にScala2.0リリース。ここからコンパイラの実装もScala。 |
|
[2014-09-06 10:09:22 JST] (INFO) irc|cb372_|Scalaコンパイラは今やケークパターンを |
|
[2014-09-06 10:09:57 JST] (INFO) irc|cb372_|セミコロンを無くすだけで言語は一変した |
|
[2014-09-06 10:09:59 JST] (INFO) irc|taisukeoe|みんなセミコロンが嫌いだった。バカバカしい |
|
[2014-09-06 10:09:09 JST] (INFO) irc|cb372_|Rubyっぽく見えてきた |
|
[2014-09-06 10:09:44 JST] (INFO) irc|eed3si9n|セミコロンでやっと実用的なスクリプト言語らしさがでてきた |
|
[2014-09-06 10:09:56 JST] (INFO) irc|eed3si9n|セミコロン推論 |
|
[2014-09-06 10:09:22 JST] (INFO) irc|eed3si9n|空のパラメータリストを何故自動で追加するのか |
|
[2014-09-06 10:09:23 JST] (INFO) irc|cb372_|なぜ()を自動的に追加する? |
|
[2014-09-06 10:09:34 JST] (INFO) irc|eed3si9n|普通のFPではやらないこと |
|
[2014-09-06 10:09:13 JST] (INFO) irc|eed3si9n|統一アクセス原理 |
|
[2014-09-06 10:09:25 JST] (INFO) irc|eed3si9n|フィールドとメソッドの見た目が同じ |
|
[2014-09-06 10:09:43 JST] (INFO) irc|cb372_|lengthはdefでもvalでも名前が一緒。フィールドかメソッドか、呼び出し側は気にしなくていい |
|
[2014-09-06 10:09:54 JST] (INFO) irc|taisukeoe|パラメータの無いメソッドにより、フィールドとメソッドの見た目が同じようになり、統一アクセス理論を実現する |
|
[2014-09-06 10:09:12 JST] (INFO) irc|eed3si9n|無パラメータメソッドがeta 展開されると面倒なことになる |
|
[2014-09-06 10:09:15 JST] (INFO) irc|eed3si9n|実装によって、length と呼んだ時に値じゃなくて関数オブジェクトが返って来る |
|
[2014-09-06 10:09:34 JST] (INFO) irc|eed3si9n|そのため、Scala では() を自動追加することにした |
|
[2014-09-06 10:09:00 JST] (INFO) irc|cb372_|Anyを受け取る関数が多い。その場合、間違えてFunctionを渡せてしまう |
|
[2014-09-06 10:09:28 JST] (INFO) irc|eed3si9n|無項関数の場合は () を自動追加 |
|
[2014-09-06 10:09:51 JST] (INFO) irc|eed3si9n|eta 展開にはコンパイラになんらかのヒントを出す必要があるようにした |
|
[2014-09-06 10:09:00 JST] (INFO) irc|eed3si9n|_ など |
|
[2014-09-06 10:09:05 JST] (INFO) irc|cb372_|eta展開の判定に条件を追加した |
|
[2014-09-06 10:09:26 JST] (INFO) irc|eed3si9n|2007年は成長期 |
|
[2014-09-06 10:09:30 JST] (INFO) irc|eed3si9n|色々入った |
|
[2014-09-06 10:09:34 JST] (INFO) irc|taisukeoe|2007年 Scala 2.3 - 2.7では6ヶ月程度?の間に沢山の機能を追加した。 |
|
[2014-09-06 10:09:41 JST] (INFO) irc|eed3si9n|抽出子 |
|
[2014-09-06 10:09:45 JST] (INFO) irc|eed3si9n|タプル |
|
[2014-09-06 10:09:55 JST] (INFO) irc|eed3si9n|代入演算子 |
|
[2014-09-06 10:09:10 JST] (INFO) irc|eed3si9n|placeholder構文 |
|
[2014-09-06 10:09:16 JST] (INFO) irc|eed3si9n|事前初期化 |
|
[2014-09-06 10:09:45 JST] (INFO) irc|cb372_|SomeTraitを初期化する前にval xを定義する |
|
[2014-09-06 10:09:45 JST] (INFO) irc|eed3si9n|あんまり知られてない |
|
[2014-09-06 10:09:48 JST] (INFO) irc|taisukeoe|事前初期化では、traitの初期化の前にval x = 3が初期化される |
|
[2014-09-06 10:09:52 JST] (INFO) irc|taisukeoe|(この例では) |
|
[2014-09-06 10:09:15 JST] (INFO) irc|cb372_|コンパイラのために入れた機能 |
|
[2014-09-06 10:09:25 JST] (INFO) irc|taisukeoe|これがないと壊れてしまうことがある |
|
[2014-09-06 10:09:33 JST] (INFO) irc|taisukeoe|遅延評価 |
|
[2014-09-06 10:09:36 JST] (INFO) irc|cb372_|この機能をdeprecateしたい |
|
[2014-09-06 10:09:45 JST] (INFO) twitter|shitai246_|こうやって歴史をおさらいしてくとscalaが超絶便利になったのってほんとここ最近なんだな #scalamatsuri |
|
[2014-09-06 10:09:45 JST] (INFO) twitter|niw|I remember my code using early initialization in Scala was rejected in code review… #ScalaMatsuri |
|
[2014-09-06 10:09:45 JST] (INFO) twitter|sumito3478|Early Initialization知らなかった #ScalaMatsuri |
|
[2014-09-06 10:09:45 JST] (INFO) twitter|840_|たぷるなかったのか #ScalaMatsuri |
|
[2014-09-06 10:09:45 JST] (INFO) twitter|ya7_|タプル無かったんだ… #ScalaMatsuri |
|
[2014-09-06 10:09:45 JST] (INFO) twitter|daiksy|馴染みのある感じになってきた #ScalaMatsuri |
|
[2014-09-06 10:09:45 JST] (INFO) twitter|jagaximo|こういうところが親切だなぁって思うところ、経験からどんどん入れてったところだった #ScalaMatsuri |
|
[2014-09-06 10:09:45 JST] (INFO) twitter|rinfield|Tuple入ったの以外に後のほうなんだね #ScalaMatsuri |
|
[2014-09-06 10:09:45 JST] (INFO) twitter|sifue|#ScalaMatsuri Scalaの関数呼び出しの最後に自動で()を追加してくれる仕様、かなり便利なシンタクスシュガーがいろいろできるんだけど、思わぬ挙動も生むよなぁ。 |
|
[2014-09-06 10:09:45 JST] (INFO) twitter|numa08|プレースホルダーは未だに慣れない・・・ #ScalaMatsuri |
|
[2014-09-06 10:09:45 JST] (INFO) twitter|joker1007|タプルって結構後に入ったんだな。 #ScalaMatsuri |
|
[2014-09-06 10:09:45 JST] (INFO) twitter|nakanishiyasuo|初めてScala使ったのは2.7だったなー。 #ScalaMatsuri |
|
[2014-09-06 10:09:45 JST] (INFO) twitter|nakanishiyasuo|JSのセミコロン対策としてScalaJs使うと良いよ。 #ScalaMatsuri |
|
[2014-09-06 10:09:03 JST] (INFO) irc|eed3si9n|言語機能の爆発的増加 |
|
[2014-09-06 10:09:19 JST] (INFO) irc|eed3si9n|何で短期間でこんなに増えたのか |
|
[2014-09-06 10:09:20 JST] (INFO) irc|cb372_|機能依頼が多かった |
|
[2014-09-06 10:09:32 JST] (INFO) irc|cb372_|ボランティアも多かった |
|
[2014-09-06 10:09:34 JST] (INFO) irc|eed3si9n|色々協力してくれる人も多かった |
|
[2014-09-06 10:09:44 JST] (INFO) irc|taisukeoe|Higher kind types(高階型)、 Existential types(存在型) |
|
[2014-09-06 10:09:49 JST] (INFO) irc|eed3si9n|高カインド型 |
|
[2014-09-06 10:09:41 JST] (INFO) irc|eed3si9n|2007 年はコミュニティーが色々形成された |
|
[2014-09-06 10:09:45 JST] (INFO) irc|taisukeoe|2008年に 最初のScala liftoff unconference |
|
[2014-09-06 10:09:49 JST] (INFO) irc|cb372_|2008年:世界初のScalaアンカンファレンス |
|
[2014-09-06 10:09:57 JST] (INFO) irc|cb372_|(明日もアンカンファレンスやりますよ!) |
|
[2014-09-06 10:09:58 JST] (INFO) irc|taisukeoe|[運営]ちなみに最初のScalaMatsuriは明日 |
|
[2014-09-06 10:09:02 JST] (INFO) irc|taisukeoe|安価ファンレンす |
|
[2014-09-06 10:09:14 JST] (INFO) irc|cb372_|TwitterがScalaを使い始めた |
|
[2014-09-06 10:09:23 JST] (INFO) irc|taisukeoe|明日が最初のScalaMatsuri アンカンファレンス |
|
[2014-09-06 10:09:47 JST] (INFO) irc|eed3si9n|水島さんは皆勤賞 |
|
[2014-09-06 10:09:49 JST] (INFO) irc|cb372_|水島さんはScalaDaysの常連さん |
|
[2014-09-06 10:09:17 JST] (INFO) irc|taisukeoe|[運営]ScalaMatsuri入れてくださって有り難うございます |
|
[2014-09-06 10:09:24 JST] (INFO) irc|cb372_|2010は主にリファクタリング |
|
[2014-09-06 10:09:25 JST] (INFO) irc|eed3si9n|2010年ぐらいからまとめに入った |
|
[2014-09-06 10:09:46 JST] (INFO) irc|eed3si9n|コレクションの刷新 |
|
[2014-09-06 10:09:02 JST] (INFO) irc|eed3si9n|メソッドの統一 |
|
[2014-09-06 10:09:13 JST] (INFO) irc|cb372_|コレクションの開発者が多すぎて個性が出ていた |
|
[2014-09-06 10:09:29 JST] (INFO) irc|eed3si9n|コレクションはそもそもメソッドが多いから、せめて名前の統一したい |
|
[2014-09-06 10:09:56 JST] (INFO) irc|cb372_|Arrayを他のコレクションと統一した |
|
[2014-09-06 10:09:12 JST] (INFO) irc|taisukeoe|2.8ではバグも沢山直した |
|
[2014-09-06 10:09:17 JST] (INFO) irc|eed3si9n|配列モデルは実装が漏れ気味だった |
|
[2014-09-06 10:09:26 JST] (INFO) irc|taisukeoe|2.9は並行コレクションを導入 |
|
[2014-09-06 10:09:47 JST] (INFO) irc|eed3si9n|(内部の実装が抽象化の外から見えてる状態のこと<漏れ気味) |
|
[2014-09-06 10:09:05 JST] (INFO) irc|cb372_|マクロ、リフレクションの登場 |
|
[2014-09-06 10:09:11 JST] (INFO) irc|taisukeoe|2.10では分化の年。SIPによる新機能や、実験的機能であるマクロが追加された。 |
|
[2014-09-06 10:09:46 JST] (INFO) irc|eed3si9n|SIP-18 でソースに出てくる言語機能を制限できるようにした |
|
[2014-09-06 10:09:51 JST] (INFO) irc|cb372_|明示的に使用宣言する機能 |
|
[2014-09-06 10:09:02 JST] (INFO) irc|eed3si9n|動的型付けなど |
|
[2014-09-06 10:09:03 JST] (INFO) irc|taisukeoe|なお SIP: Scala Improvement Process |
|
[2014-09-06 10:09:38 JST] (INFO) irc|cb372_|structural typesは普段使わない |
|
[2014-09-06 10:09:51 JST] (INFO) irc|cb372_|間違えて使うことがある |
|
[2014-09-06 10:09:22 JST] (INFO) irc|eed3si9n|構造型への動的ディスパッチ |
|
[2014-09-06 10:09:08 JST] (INFO) irc|eed3si9n|2.11 のテーマは小さく、強く、速く |
|
[2014-09-06 10:09:26 JST] (INFO) irc|taisukeoe|JSはいたるところにある。例えば、Scala.js! |
|
[2014-09-06 10:09:28 JST] (INFO) irc|eed3si9n|今Scala.JS が結構キテる |
|
[2014-09-06 10:09:31 JST] (INFO) irc|cb372_|Scala.JSは興味深い |
|
[2014-09-06 10:09:55 JST] (INFO) irc|eed3si9n|JavaScript は好きじゃない人も多い |
|
[2014-09-06 10:09:15 JST] (INFO) irc|eed3si9n|サーバ言語をクライアント側に持っていく(Node.js の逆) |
|
[2014-09-06 10:09:39 JST] (INFO) irc|eed3si9n|既に production で使ってるところもある |
|
[2014-09-06 10:09:40 JST] (INFO) irc|cb372_|Scalaの協力な型システムを使いつつJavaScriptを書ける |
|
[2014-09-06 10:09:47 JST] (INFO) irc|eed3si9n|かなり短期間に進歩した |
|
[2014-09-06 10:09:57 JST] (INFO) irc|eed3si9n|スケーラブルな言語 |
|
[2014-09-06 11:09:01 JST] (INFO) irc|eed3si9n|これは不変条件 |
|
[2014-09-06 11:09:10 JST] (INFO) irc|taisukeoe|Scalaの不変な条件につて。まずはスケーラブルであること。 |
|
[2014-09-06 11:09:27 JST] (INFO) irc|eed3si9n|言語は抽象化に徹するというアイディアはうまくいった |
|
[2014-09-06 11:09:35 JST] (INFO) irc|cb372_|Scala上に動くライブラリの例 |
|
[2014-09-06 11:09:41 JST] (INFO) irc|eed3si9n|機能の追加はなるべくライブラリで行う |
|
[2014-09-06 11:09:44 JST] (INFO) irc|taisukeoe|Scalaの上に、様々ライブラリが構築されている。例えばSpark。 |
|
[2014-09-06 11:09:55 JST] (INFO) irc|eed3si9n|この柔軟性は諸刃の剣 |
|
[2014-09-06 11:09:22 JST] (INFO) irc|cb372_|DSLはコミュニティを断片化するおそれがある |
|
[2014-09-06 11:09:38 JST] (INFO) irc|eed3si9n|DSLが悪いのにホスト言語の評判が悪くなることがある |
|
[2014-09-06 11:09:43 JST] (INFO) irc|taisukeoe|[運営]Sparkに関する講演は、Aaron Davidsonさんが15:45~@RoomA 上新さんが14:05~ @RoomB |
|
[2014-09-06 11:09:47 JST] (INFO) irc|eed3si9n|型の重要性 |
|
[2014-09-06 11:09:19 JST] (INFO) irc|cb372_|Scalaは安全より柔軟性を重視する |
|
[2014-09-06 11:09:22 JST] (INFO) irc|eed3si9n|よくある高度な型のコンセプトは型安全性よりも、柔軟性のために使われている |
|
[2014-09-06 11:09:40 JST] (INFO) irc|eed3si9n|これはFP派の主流とは外れる考え |
|
[2014-09-06 11:09:25 JST] (INFO) irc|cb372_|安全性を高めるのではなく、安全性を保ちながらユーザビリティをチャレンジ |
|
[2014-09-06 11:09:48 JST] (INFO) twitter|eiryu|10分ほど押してるのか #ScalaMatsuri |
|
[2014-09-06 11:09:48 JST] (INFO) twitter|xuwei_k|https://t.co/cPOePcVufR Scalaコンパイラは、一時期Pizzaを使って書かれてた疑惑が #ScalaMatsuri |
|
[2014-09-06 11:09:48 JST] (INFO) twitter|chrome_cgi|“Lispの呪い”(DSLはユーザコミュニティを断片化する) おもろい #ScalaMatsuri |
|
[2014-09-06 11:09:48 JST] (INFO) twitter|takudo_dev|DSLは諸刃の剣か、いいこと言うなあ |
|
#ScalaMatsuri |
|
[2014-09-06 11:09:48 JST] (INFO) twitter|tan_yuki|Scala.JSこんどさわってみるか #ScalaMatsuri |
|
[2014-09-06 11:09:48 JST] (INFO) twitter|nojima|「DSL は Lisp curse 」 #ScalaMatsuri |
|
[2014-09-06 11:09:48 JST] (INFO) twitter|shitai246_|Scala.js 名前は知ってたけど、Scalaの本家がやってたのか・・ #scalamatsuri |
|
[2014-09-06 11:09:48 JST] (INFO) twitter|mikamix|昨日の夜Prologで遊んでて寝坊した。 #ScalaMatsuri |
|
[2014-09-06 11:09:48 JST] (INFO) twitter|jagaximo|DSLが諸刃の剣っていうのは、昨日同僚と話したなー。書ける人が書いちゃうと、チームがついてこれなくなる #ScalaMatsuri |
|
[2014-09-06 11:09:48 JST] (INFO) twitter|modal_soul|言語は抽象化に徹し、機能はライブラリで #ScalaMatsuri |
|
[2014-09-06 11:09:48 JST] (INFO) twitter|840_|スケーラブルって単語自体が抽象度高い #ScalaMatsuri |
|
[2014-09-06 11:09:48 JST] (INFO) twitter|garbagetown|ゴゴゴゴゴゴゴゴ #ScalaMatsuri http://t.co/l5yzJK5i93 |
|
[2014-09-06 11:09:48 JST] (INFO) irc|eed3si9n|これがよく理解されてなくて誤解を受けることがある |
|
[2014-09-06 11:09:58 JST] (INFO) irc|cb372_|なぜnull安全が無いのか? |
|
[2014-09-06 11:09:03 JST] (INFO) irc|eed3si9n|null 対策 |
|
[2014-09-06 11:09:25 JST] (INFO) irc|cb372_|昔、null安全を実装するつもりだった |
|
[2014-09-06 11:09:31 JST] (INFO) irc|taisukeoe|でも、気づいたらみんなOptionを使っていた |
|
[2014-09-06 11:09:35 JST] (INFO) irc|cb372_|2.12はJava 8がメイン |
|
[2014-09-06 11:09:06 JST] (INFO) irc|cb372_|Java,Scalaラムダの相互変換 |
|
[2014-09-06 11:09:12 JST] (INFO) irc|eed3si9n|Java 8 との相互乗り入れ(interop) |
|
[2014-09-06 11:09:31 JST] (INFO) irc|eed3si9n|SAM などJava に入る関数型の機能をnative に使う |
|
[2014-09-06 11:09:04 JST] (INFO) irc|eed3si9n|よりわかりやすく、堅固な言語を目指す |
|
[2014-09-06 11:09:16 JST] (INFO) irc|eed3si9n|オペラからとったコードネーム |
|
[2014-09-06 11:09:36 JST] (INFO) irc|eed3si9n|標準ライブラリを強化。継承への依存を減らす |
|
[2014-09-06 11:09:37 JST] (INFO) irc|cb372_|継承関係を減らしたい |
|
[2014-09-06 11:09:56 JST] (INFO) irc|eed3si9n|デフォのコレクションで不変じゃないものを不変にする |
|
[2014-09-06 11:09:06 JST] (INFO) irc|eed3si9n|Seqなど |
|
[2014-09-06 11:09:33 JST] (INFO) irc|eed3si9n|他にも小ネタできれいにしたいものを直していく |
|
[2014-09-06 11:09:41 JST] (INFO) irc|cb372_|いくつかのワナを治す |
|
[2014-09-06 11:09:05 JST] (INFO) irc|eed3si9n|scala.meta など新機能も間に合えば入れる |
|
[2014-09-06 11:09:26 JST] (INFO) irc|cb372_|コレクションの大幅なパフォーマンス向上 |
|
[2014-09-06 11:09:49 JST] (INFO) irc|cb372_|言語コアのシンプル化 |
|
[2014-09-06 11:09:07 JST] (INFO) irc|eed3si9n|その次に、言語コアを刷新して DOT 計算モデルに基づいたものにする |
|
[2014-09-06 11:09:31 JST] (INFO) irc|eed3si9n|型メンバを使って他のものを抽象化する |
|
[2014-09-06 11:09:40 JST] (INFO) irc|cb372_|type membersという唯一の概念にまとめる |
|
[2014-09-06 11:09:10 JST] (INFO) irc|eed3si9n|ジェネリックス、存在型、高カインド型などが統一される予定の型の概念 |
|
[2014-09-06 11:09:52 JST] (INFO) irc|cb372_|XMLリテラル廃止 |
|
[2014-09-06 11:09:11 JST] (INFO) irc|taisukeoe|代わりにXML interporation |
|
[2014-09-06 11:09:34 JST] (INFO) irc|eed3si9n|交差型 (intersection)、直和型 (union) |
|
[2014-09-06 11:09:46 JST] (INFO) irc|cb372_|implicit定義に型宣伝を必須に |
|
[2014-09-06 11:09:23 JST] (INFO) irc|eed3si9n|後方互換性にも気を使う |
|
[2014-09-06 11:09:32 JST] (INFO) irc|cb372_|100万行程度のコミュニティScalaコードを対象にregression testしている |
|
[2014-09-06 11:09:49 JST] (INFO) irc|eed3si9n|だけど、今 -Xexperimental というフラグの機能のサポートは保証しない |
|
[2014-09-06 11:09:56 JST] (INFO) irc|eed3si9n|これは覚えておいてほしいです |
|
[2014-09-06 11:09:13 JST] (INFO) irc|cb372_|成長期の振り返り |
|
[2014-09-06 11:09:35 JST] (INFO) irc|eed3si9n|事前初期化はいらない子 |
|
[2014-09-06 11:09:15 JST] (INFO) irc|cb372_|higher-kinded typesは他の機能への影響が多すぎた |
|
[2014-09-06 11:09:31 JST] (INFO) irc|cb372_|Structural typesはリフレクションに依存する |
|
[2014-09-06 11:09:38 JST] (INFO) irc|eed3si9n|存在型もダメだった |
|
[2014-09-06 11:09:51 JST] (INFO) irc|eed3si9n|なぜ存在型を入れたのか |
|
[2014-09-06 11:09:00 JST] (INFO) irc|eed3si9n|当時 Java wildcard 型があった |
|
[2014-09-06 11:09:17 JST] (INFO) irc|eed3si9n|私がGJに入れたものじゃない |
|
[2014-09-06 11:09:58 JST] (INFO) irc|eed3si9n|色々論文が出てくるうちにどんどん複雑化していって、存在型が当時わかりやすいエンコーディングだと思った |
|
[2014-09-06 11:09:10 JST] (INFO) irc|cb372_|存在型はJavaのwildcard型に相当する |
|
[2014-09-06 11:09:11 JST] (INFO) irc|eed3si9n|型メンバでエンコードできると当時分かっていれば! |
|
[2014-09-06 11:09:52 JST] (INFO) irc|cb372_|言語機能を厳選しなくては |
|
[2014-09-06 11:09:09 JST] (INFO) irc|eed3si9n|型システムは概念が減らすほど相互の影響が減るのんで厳選する必要がある |
|
[2014-09-06 11:09:15 JST] (INFO) irc|cb372_|言語は進化するもの |
|
[2014-09-06 11:09:19 JST] (INFO) irc|cb372_|コミュニティが大事 |
|
[2014-09-06 11:09:50 JST] (INFO) twitter|ueshin|forSome とかあったのか。いらない子みたいだけど。 #ScalaMatsuri |
|
[2014-09-06 11:09:50 JST] (INFO) twitter|kazzna|とりあえず使わなくても問題ないってことだけは理解した。 #ScalaMatsuri |
|
[2014-09-06 11:09:50 JST] (INFO) twitter|eiryu|conclusion 来た #ScalaMatsuri |
|
[2014-09-06 11:09:50 JST] (INFO) twitter|s_kozake|Scalaの成長はすごいけど、後方互換への配慮なさげw #ScalaMatsuri |
|
[2014-09-06 11:09:50 JST] (INFO) twitter|stormcat24|はたしてタイムテーブルはimmutableでいられるか #ScalaMatsuri |
|
[2014-09-06 11:09:50 JST] (INFO) twitter|Kokudori|Early Initialization知らなかった。これ? |
|
http://t.co/JH9YYzYrlO |
|
#scalamatsuri |
|
[2014-09-06 11:09:50 JST] (INFO) twitter|modal_soul|ずと小田好先生のターン #ScalaMatsuri |
|
[2014-09-06 11:09:50 JST] (INFO) twitter|nazoking|同時翻訳の文章ってどっかで見えるの?開錠で写されてるだけ? #ScalaMatsuri |
|
[2014-09-06 11:09:50 JST] (INFO) twitter|wolf20xx|大学の講義みたいに終了チャイムならしてみるとか?? #ScalaMatsuri |
|
[2014-09-06 11:09:50 JST] (INFO) twitter|monzou|Scala ってまだまだ積極的に言語仕様が変わる予定なのね。 #ScalaMatsuri |
|
[2014-09-06 11:09:35 JST] (INFO) irc|illabout|If you have any questions for Professor Odersky, please ask them at the after party. |
|
[2014-09-06 11:09:06 JST] (INFO) irc|illabout|Joined typesafe 5 months ago |
|
[2014-09-06 11:09:25 JST] (INFO) irc|illabout|Haven't done too much preparation, but we will start with a demo. |
|
[2014-09-06 11:09:40 JST] (INFO) irc|illabout|sbt |
|
[2014-09-06 11:09:53 JST] (INFO) irc|cb372_|second half, I'll talk about some features I've been working on |
|
[2014-09-06 11:09:11 JST] (INFO) irc|illabout|Forgot my macbook at home! |
|
[2014-09-06 11:09:21 JST] (INFO) irc|illabout|not used to using windows |
|
[2014-09-06 11:09:37 JST] (INFO) irc|illabout|on cygwin you can use mkdir, right? |
|
[2014-09-06 11:09:54 JST] (INFO) irc|illabout|first you create the project with mkdir |
|
[2014-09-06 11:09:56 JST] (INFO) irc|cb372_|yay, I managed hello world |
|
[2014-09-06 11:09:04 JST] (INFO) irc|illabout|sbtversion 0.13.6-rc2 |
|
[2014-09-06 11:09:36 JST] (INFO) irc|illabout|Now if you run sbt, it will work. |
|
[2014-09-06 11:09:46 JST] (INFO) irc|illabout|It ran. |
|
[2014-09-06 11:09:02 JST] (INFO) irc|illabout|Open the code in your favorite editor. |
|
[2014-09-06 11:09:17 JST] (INFO) irc|illabout|open the build file: build.sbt |
|
[2014-09-06 11:09:45 JST] (INFO) irc|illabout|There are many ways to write the file, but I will introduce my favorite (recommended?) way of writing the file. |
|
[2014-09-06 11:09:03 JST] (INFO) irc|illabout|This is the multi-project form. |
|
[2014-09-06 11:09:19 JST] (INFO) irc|illabout|Now if you save and reload |
|
[2014-09-06 11:09:25 JST] (INFO) irc|illabout|it will be reloaded in sbt. |
|
[2014-09-06 11:09:39 JST] (INFO) irc|illabout|When running the name command, it prints, helloworld. |
|
[2014-09-06 11:09:52 JST] (INFO) irc|illabout|This like Maven. |
|
[2014-09-06 11:09:59 JST] (INFO) irc|illabout|Let's start with test. |
|
[2014-09-06 11:09:29 JST] (INFO) irc|illabout|working with dependencies |
|
[2014-09-06 11:09:41 JST] (INFO) irc|cb372_|this is the main reason for using sbt |
|
[2014-09-06 11:09:53 JST] (INFO) irc|illabout|we want to write tests, so we will pull down specs2 |
|
[2014-09-06 11:09:54 JST] (INFO) twitter|contee213|竹添さんだー 【ニコ生視聴中(98分経過)】 Scala祭 B会場 生中継 http://t.co/pargybQvl9 #ScalaMatsuri |
|
[2014-09-06 11:09:54 JST] (INFO) twitter|niw|ええ... testから... #ScalaMatsuri |
|
[2014-09-06 11:09:54 JST] (INFO) twitter|teppei_tosa|lazy val root = (project in file(“.”)). |
|
settings( |
|
name:= “helloworld” |
|
) |
|
sbtのマルチプロジェクト構文 |
|
#ScalaMatsuri #ra |
|
[2014-09-06 11:09:54 JST] (INFO) twitter|grimrose|やっぱりテストから書きましょうか #ScalaMatsuri #ra |
|
[2014-09-06 11:09:54 JST] (INFO) twitter|stormcat24|Cloneable #ScalaMatsuri |
|
[2014-09-06 11:09:54 JST] (INFO) twitter|joker1007|sbt何となく使ってるけど全然分かってない…。 #ScalaMatsuri #ra |
|
[2014-09-06 11:09:54 JST] (INFO) twitter|unok|完全パクリw #ScalaMatsuri #rb |
|
[2014-09-06 11:09:54 JST] (INFO) twitter|840_|すごい再現率だ…! #ScalaMatsuri |
|
[2014-09-06 11:09:54 JST] (INFO) twitter|okumin|gitbucketは確かに使いやすい。 #ScalaMatsuri |
|
[2014-09-06 11:09:54 JST] (INFO) twitter|masahiroSkd|sbtについて見てる #ScalaMatsuri |
|
[2014-09-06 11:09:54 JST] (INFO) twitter|kijuky|GitBucket会社のPJで使ってるとこあったなぁ #ScalaMatsuri |
|
[2014-09-06 11:09:54 JST] (INFO) twitter|takeshinoda|オレンジだからUbuntuと思って見てたらWindowsなのかこれw #ScalaMatsuri |
|
[2014-09-06 11:09:54 JST] (INFO) twitter|toru_inoue|ちょいちょい疑問符がでるが動かせてるww |
|
#ScalaMatsuri #ra |
|
[2014-09-06 11:09:35 JST] (INFO) irc|illabout|When writing the versions to the build.sbt file, it helps with updating the libraries later. |
|
[2014-09-06 11:09:01 JST] (INFO) irc|illabout|Now that we've added specs2, we will reload in sbt. |
|
[2014-09-06 11:09:12 JST] (INFO) irc|illabout|Now we run the tests. |
|
[2014-09-06 11:09:33 JST] (INFO) irc|illabout|Finished in 4 seconds. If we rerun it, it finishes immediately. |
|
[2014-09-06 11:09:46 JST] (INFO) irc|illabout|Let's try with scala 2.11.2. |
|
[2014-09-06 11:09:00 JST] (INFO) irc|illabout|Run the tests one more time with scala2.11.2 |
|
[2014-09-06 11:09:16 JST] (INFO) irc|illabout|Lets create HelloSpec.scala. |
|
[2014-09-06 11:09:36 JST] (INFO) irc|illabout|Creating a class at the top level is slightly annoying, so we create a package and put the class in it. |
|
[2014-09-06 11:09:48 JST] (INFO) irc|illabout|I think this will work. |
|
[2014-09-06 11:09:18 JST] (INFO) irc|illabout|s2 is interpolation. |
|
[2014-09-06 11:09:28 JST] (INFO) irc|illabout|This is a dsl of specs2. |
|
[2014-09-06 11:09:45 JST] (INFO) irc|illabout|Let's try running this. |
|
[2014-09-06 11:09:06 JST] (INFO) irc|illabout|It's telling us that beHello is not found. |
|
[2014-09-06 11:09:36 JST] (INFO) irc|illabout|This is red-green refactoring. |
|
[2014-09-06 11:09:49 JST] (INFO) irc|illabout|Now we will write Hello.scala. |
|
[2014-09-06 11:09:09 JST] (INFO) irc|illabout|Let's leave this blank on purpose. |
|
[2014-09-06 11:09:04 JST] (INFO) irc|illabout|You can use tab-completion. |
|
[2014-09-06 11:09:18 JST] (INFO) irc|illabout|You can also use test-only to only run tests from one class. |
|
[2014-09-06 11:09:32 JST] (INFO) irc|illabout|I don't know what's going on with Cygwin. |
|
[2014-09-06 11:09:11 JST] (INFO) irc|cb372_|this is a feature not found in other build tools |
|
[2014-09-06 11:09:21 JST] (INFO) irc|cb372_|using tilde, we can watch the source code for changes |
|
[2014-09-06 11:09:08 JST] (INFO) irc|illabout|even without touching sbt, the tests will run |
|
[2014-09-06 11:09:29 JST] (INFO) irc|cb372_|quickTest runs only the tests affected by the code that was changed |
|
[2014-09-06 11:09:38 JST] (INFO) irc|illabout|you can use console to enter the scala console with all the libraries loaded from your project |
|
[2014-09-06 11:09:19 JST] (INFO) irc|cb372_|console is useful for experimentation, especially with immutable data |
|
[2014-09-06 11:09:24 JST] (INFO) irc|illabout|Let's try running it from the scala console. |
|
[2014-09-06 11:09:39 JST] (INFO) irc|illabout|You can play around with your code from within the console. |
|
[2014-09-06 11:09:49 JST] (INFO) irc|illabout|Okay, demo finished. Let's go back to the presentation. |
|
[2014-09-06 11:09:31 JST] (INFO) irc|cb372_|sbt puts a lot of emphasis on the shell and interactivity |
|
[2014-09-06 11:09:55 JST] (INFO) irc|cb372_|goal is to make your daily development easier |
|
[2014-09-06 11:09:40 JST] (INFO) irc|illabout|settings are kept as key-value maps inside sbt |
|
[2014-09-06 11:09:20 JST] (INFO) irc|illabout|key-value map is immutable and we are doing transformations on it |
|
[2014-09-06 11:09:39 JST] (INFO) irc|cb372_|we used to have a lot of crazy operators but we reduced it to a few |
|
[2014-09-06 11:09:57 JST] (INFO) twitter|katsumitk|なんと、ニコ生だた。 #ScalaMatsuri http://t.co/4bWBYQ2hfs |
|
[2014-09-06 11:09:57 JST] (INFO) twitter|saka1_p|小物を作るのにSinatra便利なので、Scalatraなかなか好印象ある。今夜触ってみよう #ScalaMatsuri |
|
[2014-09-06 11:09:57 JST] (INFO) twitter|mathshun|すからまつり見てる / 【ニコ生視聴中】Scala祭 A会場 生中継 #ScalaMatsuri http://t.co/Hf7kRQnD62 |
|
[2014-09-06 11:09:57 JST] (INFO) twitter|kimutansk|#scalamatsuri #rb scalatra-formsはアーキテクチャとしては二度同じリクエストが飛ぶのでリソース効率は悪いが、サーバ側がシンプルになるので開発効率は高いと。これはなるほど。 |
|
[2014-09-06 11:09:57 JST] (INFO) twitter|seratch_ja|デザイナから Twirl ありえないという評判 #ScalaMatsuri |
|
[2014-09-06 11:09:57 JST] (INFO) twitter|nakanishiyasuo|sbtはsetting周りがイケてるよなー。 #ScalaMatsuri #ra |
|
[2014-09-06 11:09:57 JST] (INFO) twitter|qtamaki|何故かオダスキー先生が隣に!? #ScalaMatsuri |
|
[2014-09-06 11:09:57 JST] (INFO) twitter|reflex_twr|【ニコ生視聴中】Scala祭 B会場 生中継 #ScalaMatsuri http://t.co/gRUGC4n3d9 |
|
[2014-09-06 11:09:57 JST] (INFO) twitter|stormcat24|Twirlか #ScalaMatsuri |
|
[2014-09-06 11:09:57 JST] (INFO) twitter|seratch_ja|.@takezoen さんの自虐ネタ、板について来た感ある #ScalaMatsuri |
|
[2014-09-06 11:09:57 JST] (INFO) twitter|jagd5168|"sbt で console を起動するとクラスが全部コンパイルされパスが通った状態で REPL が起動するので便利" #ScalaMatsuri #ra |
|
[2014-09-06 11:09:57 JST] (INFO) twitter|840_|親和性フェスティバル #ScalaMatsuri |
|
[2014-09-06 11:09:57 JST] (INFO) twitter|takc923|#ScalaMatsuri #ra TotalTerminalってTotalFinder作ってるところが作ってるやつか |
|
[2014-09-06 11:09:57 JST] (INFO) twitter|kimutansk|#scalamatsuri #rb Playは極力静的でルーティングもあらかじめ記述する必要があるが、Scalatraはそれより動的に可能と。 あとはGitServletととの共存のためにServletコンテナの上で動く必要があったと。 |
|
[2014-09-06 11:09:57 JST] (INFO) twitter|mjkk7|helloしかない世界 #ScalaMatsuri |
|
[2014-09-06 11:09:00 JST] (INFO) irc|illabout|There are various types of keys. |
|
[2014-09-06 11:09:09 JST] (INFO) irc|illabout|All keys have types. |
|
[2014-09-06 11:09:25 JST] (INFO) irc|cb372_|keys can be scoped by project, configuration |
|
[2014-09-06 11:09:27 JST] (INFO) irc|illabout|defaults to "this", but if a key is not found other places will be searched |
|
[2014-09-06 11:09:42 JST] (INFO) irc|cb372_|this is a little confusing, so let's have a demo |
|
[2014-09-06 11:09:45 JST] (INFO) irc|illabout|Lets create a custom key. |
|
[2014-09-06 11:09:07 JST] (INFO) irc|illabout|This is a String key. |
|
[2014-09-06 11:09:39 JST] (INFO) irc|illabout|You can get out of the scala console with Ctrl-D |
|
[2014-09-06 11:09:10 JST] (INFO) irc|illabout|You can find where keys come from with inspect. |
|
[2014-09-06 11:09:25 JST] (INFO) irc|cb372_|tree command shows dependency of a key |
|
[2014-09-06 11:09:39 JST] (INFO) irc|illabout|configurations are similar |
|
[2014-09-06 11:09:08 JST] (INFO) irc|illabout|ivyConfigurations is the order of dependecies. |
|
[2014-09-06 11:09:21 JST] (INFO) irc|illabout|I created foo. |
|
[2014-09-06 11:09:47 JST] (INFO) irc|cb372_|you can override a key, scoped to a configuration |
|
[2014-09-06 11:09:17 JST] (INFO) irc|cb372_|when not overridden, it falls back to the global value |
|
[2014-09-06 11:09:30 JST] (INFO) irc|illabout|No task delegation. |
|
[2014-09-06 11:09:07 JST] (INFO) irc|illabout|Configuration is the set of source and libraries. |
|
[2014-09-06 11:09:39 JST] (INFO) irc|cb372_|e.g. you could make a separate configuration for managing JS and assets |
|
[2014-09-06 11:09:45 JST] (INFO) irc|cb372_|or one for test coverage |
|
[2014-09-06 11:09:30 JST] (INFO) irc|illabout|sbt was made because we wanted incremental compliation |
|
[2014-09-06 11:09:33 JST] (INFO) irc|cb372_|yes, the compiler is slow... |
|
[2014-09-06 11:09:08 JST] (INFO) irc|illabout|we want to deliver sbt 1.0 |
|
[2014-09-06 11:09:15 JST] (INFO) irc|cb372_|everybody wants sbt to be more stable |
|
[2014-09-06 11:09:32 JST] (INFO) irc|illabout|we want long term support for sbt 1.0 |
|
[2014-09-06 11:09:56 JST] (INFO) irc|illabout|but before we commit to long term support, we want to produce something that is good enough for us to support long-term |
|
[2014-09-06 11:09:40 JST] (INFO) irc|cb372_|jumped from 13.2 to 13.5, as we added a lot of experimental features |
|
[2014-09-06 11:09:53 JST] (INFO) irc|illabout|we are currently working on 0.13.6 |
|
[2014-09-06 12:09:25 JST] (INFO) irc|cb372_|can make a plugin that automatically enables itself given certain conditions |
|
[2014-09-06 12:09:50 JST] (INFO) irc|cb372_|no need to worry about plugin dependencies anymore |
|
[2014-09-06 12:09:48 JST] (INFO) irc|illabout|Everything will be https by default, including maven repos and typesafe repos |
|
[2014-09-06 12:09:08 JST] (INFO) irc|cb372_|we've got permission from LinkedIn to talk about this new feature |
|
[2014-09-06 12:09:47 JST] (INFO) irc|cb372_|when you depend on 100s of libs, resolution can take 30s or more |
|
[2014-09-06 12:09:00 JST] (INFO) irc|cb372_|multiply that by lots of sub-projects and it can take 10 minutes! |
|
[2014-09-06 12:09:26 JST] (INFO) irc|cb372_|consolidated resolution solves this by resolving for all projects at the same time |
|
[2014-09-06 12:09:00 JST] (INFO) twitter|eiryu|Java遺産 #ScalaMatsuri |
|
[2014-09-06 12:09:00 JST] (INFO) twitter|toru_inoue|「GitHubエンプラ使ってるけど高い。 |
|
GitBucketで同一会社で数百人レベルで使ってる例ってありますか?」 |
|
|
|
「しらないけど大人数になるとH2がネックになってるとこがある」 |
|
|
|
みたいな話か。 |
|
|
|
#ScalaMatsuri #rb |
|
[2014-09-06 12:09:00 JST] (INFO) twitter|ueshin|大文字小文字問題のツッコミがくるのか! #ScalaMatsuri #rb |
|
[2014-09-06 12:09:00 JST] (INFO) twitter|840_|s/Github/GitHub #ScalaMatsuri |
|
[2014-09-06 12:09:00 JST] (INFO) twitter|shitai246_|t gitbucket は git より h2 がボトルネック #scalamatsuri #rb |
|
[2014-09-06 12:09:00 JST] (INFO) twitter|kyo_ago|#ScalaMatsuri #b 厳しいツッコミ |
|
[2014-09-06 12:09:00 JST] (INFO) twitter|kimutansk|#scalamatsuri #rb GitBucketはH2が性能上のボトルネックとなる模様。ローカルファイルモードなのでロックがかかり、レスポンスも一定以上でないのが厳しいと。マルチデータベースのサポートを進めている最中と。 |
|
[2014-09-06 12:09:00 JST] (INFO) twitter|kijuky|GitBucketのパフォーマンス問題。会社で使うとそういうところを気にしなくちゃいけないのかー。しかし、数百人ってすごいな #ScalaMatsuri |
|
[2014-09-06 12:09:00 JST] (INFO) twitter|840_|やっぱりH2がネックになるよねー #ScalaMatsuri |
|
[2014-09-06 12:09:00 JST] (INFO) twitter|ueshin|GitよりもH2がやばい。 #ScalaMatsuri #rb |
|
[2014-09-06 12:09:09 JST] (INFO) irc|illabout|evicition is something I wanted to implement. |
|
[2014-09-06 12:09:52 JST] (INFO) irc|cb372_|eviction is dangerous, because it might choose a binary incompatible lib, so we added proper warnings |
|
[2014-09-06 12:09:22 JST] (INFO) irc|illabout|unresolved exception: it will tell you what was unresolved |
|
[2014-09-06 12:09:12 JST] (INFO) irc|illabout|sbt server will help sbt work with development environments |
|
[2014-09-06 12:09:12 JST] (INFO) irc|illabout|Being sponsered by Linkedin and implementing things like caching. |
|
[2014-09-06 12:09:14 JST] (INFO) irc|illabout|Thank you. |
|
[2014-09-06 12:09:15 JST] (INFO) irc|cb372_|Q: slow resolution when you have lots of sub-projects. Fix sounds great. When is 0.13.6 coming out? |
|
[2014-09-06 12:09:21 JST] (INFO) irc|illabout|A: It is already rc2 |
|
[2014-09-06 12:09:40 JST] (INFO) irc|illabout|I went back home for a week before coming here. |
|
[2014-09-06 12:09:02 JST] (INFO) irc|illabout|rc2's deadline was today, but there are still some bugs not fixed. |
|
[2014-09-06 12:09:11 JST] (INFO) irc|illabout|So I think it will be within a couple weeks. |
|
[2014-09-06 12:09:25 JST] (INFO) irc|cb372_|Q: what's the deal with activator vs sbt? |
|
[2014-09-06 12:09:30 JST] (INFO) irc|illabout|A: Great question. |
|
[2014-09-06 12:09:38 JST] (INFO) irc|illabout|A: It's often misunderstood. |
|
[2014-09-06 12:09:01 JST] (INFO) irc|illabout|Scala is a hard language to learn. |
|
[2014-09-06 12:09:22 JST] (INFO) irc|cb372_|Activator is designed to make it easier to get started |
|
[2014-09-06 12:09:50 JST] (INFO) irc|illabout|Out-of-the-box experience: we want to make it easier to use scala out-of-the-box |
|
[2014-09-06 12:09:54 JST] (INFO) irc|cb372_|e.g. it includes lots of jars, so sbt doesn't have to download the world |
|
[2014-09-06 12:09:46 JST] (INFO) irc|cb372_|日本のScalaコミュニティを生で実感できてうれしいです |
|
[2014-09-06 12:09:10 JST] (INFO) irc|cb372_|翻訳チームに予め感謝 |
|
[2014-09-06 12:09:16 JST] (INFO) irc|eed3si9n|翻訳チーム泣かせのプレゼンになります |
|
[2014-09-06 12:09:30 JST] (INFO) irc|eed3si9n|rapture って何 |
|
[2014-09-06 12:09:39 JST] (INFO) irc|cb372_|RaptureとはもともI/Oライブラリだった |
|
[2014-09-06 12:09:40 JST] (INFO) irc|eed3si9n|リソースがここにある |
|
[2014-09-06 12:09:54 JST] (INFO) irc|eed3si9n|これは http のリソース |
|
[2014-09-06 12:09:07 JST] (INFO) irc|cb372_|上部はコードサンプル、下はREPLで叩いた場合の結果 |
|
[2014-09-06 12:09:12 JST] (INFO) irc|eed3si9n|これはそのまま rapture DSL |
|
[2014-09-06 12:09:30 JST] (INFO) irc|cb372_|ありふれているファイルDSL |
|
[2014-09-06 12:09:36 JST] (INFO) irc|eed3si9n|これはリソースを表す古い方法 |
|
[2014-09-06 12:09:43 JST] (INFO) irc|cb372_|最新のRaptureではこう書ける |
|
[2014-09-06 12:09:53 JST] (INFO) irc|cb372_|StringContextを使っている |
|
[2014-09-06 12:09:10 JST] (INFO) irc|cb372_|マクロでやってる |
|
[2014-09-06 12:09:19 JST] (INFO) irc|eed3si9n|string 補完子を使ってこう書ける |
|
[2014-09-06 12:09:26 JST] (INFO) irc|cb372_|コンパイルタイムにURL形式をチェックする |
|
[2014-09-06 12:09:39 JST] (INFO) irc|cb372_|結果はFileUrl |
|
[2014-09-06 12:09:48 JST] (INFO) irc|eed3si9n|ファイルの uri |
|
[2014-09-06 12:09:59 JST] (INFO) irc|cb372_|コンパイルタイムに文字列をパースして型を決める |
|
[2014-09-06 12:09:08 JST] (INFO) irc|eed3si9n|whitebox マクロを使って値の内容によって型を決定 |
|
[2014-09-06 12:09:17 JST] (INFO) irc|eed3si9n|リソースは何かを表すもの |
|
[2014-09-06 12:09:26 JST] (INFO) irc|cb372_|これらは「リソース」の例 |
|
[2014-09-06 12:09:28 JST] (INFO) irc|eed3si9n|データ、FTP URL など |
|
[2014-09-06 12:09:41 JST] (INFO) irc|eed3si9n|なんでもリソースになり得る |
|
[2014-09-06 12:09:55 JST] (INFO) irc|cb372_|Resource traitなど無い |
|
[2014-09-06 12:09:10 JST] (INFO) irc|cb372_|触ってないのに! |
|
[2014-09-06 12:09:11 JST] (INFO) irc|eed3si9n|rapture の考え方での「リソース」は何かのアクションを取れるもの |
|
[2014-09-06 12:09:24 JST] (INFO) irc|cb372_|速くやれって |
|
[2014-09-06 12:09:01 JST] (INFO) irc|eed3si9n|これでも HttpUrl を得られる、これは実行時に実現 |
|
[2014-09-06 12:09:03 JST] (INFO) twitter|tokuhirom|Netty と akka な感じか #ScalaMatsuri |
|
[2014-09-06 12:09:03 JST] (INFO) twitter|modal_soul|rapture.ioが息をしていない。。 #ScalaMatsuri |
|
[2014-09-06 12:09:03 JST] (INFO) twitter|mumoshu|2014 Xitrum 3.x、CORS標準対応か?。細かいところも作りこんである感じなのかな #ScalaMatsuri |
|
[2014-09-06 12:09:03 JST] (INFO) twitter|eiryu|rapture.io がなかなか応答しんw #ScalaMatsuri #ra |
|
[2014-09-06 12:09:03 JST] (INFO) twitter|seratch_ja|Xitrum - Async and clustered Scala web framework and HTTP(S) server - http://t.co/SYx3BuLwRE #ScalaMatsuri #rb |
|
[2014-09-06 12:09:03 JST] (INFO) twitter|jwhaco|StringContext を利用したコンパイル時の URI 生成か http://t.co/9Su5rLFwXP #ScalaMatsuri |
|
[2014-09-06 12:09:03 JST] (INFO) twitter|d2d5x|Scala祭かなんか知らねぇけどよ!? 雑魚が!! ほんとによ。俺がすべて論破してやるっつうの。かかってこいよ!! #ScalaMatsuri |
|
[2014-09-06 12:09:03 JST] (INFO) twitter|tokuhirom|xitrum のセッションみにきた #ScalaMatsuri |
|
[2014-09-06 12:09:03 JST] (INFO) twitter|halcat0x15a|コンパイルタイムにHttpに決まるのか。 |
|
#ScalaMatsuri #ra |
|
[2014-09-06 12:09:03 JST] (INFO) twitter|mumoshu|Xitrum、静的ファイルの配信でNginxと同等の速度でるとか #ScalaMatsuri |
|
[2014-09-06 12:09:12 JST] (INFO) irc|eed3si9n|「リソース」とその能力 |
|
[2014-09-06 12:09:19 JST] (INFO) irc|cb372_|リソースのアクションの例:slurp |
|
[2014-09-06 12:09:43 JST] (INFO) irc|cb372_|Pimp my Libraryパターン |
|
[2014-09-06 12:09:53 JST] (INFO) irc|eed3si9n|slurp はとにかく読み込む |
|
[2014-09-06 12:09:00 JST] (INFO) irc|cb372_|今どきEnrich my library/bedazzle my libraryという |
|
[2014-09-06 12:09:17 JST] (INFO) irc|eed3si9n|このメソッドはリソースにあるもの |
|
[2014-09-06 12:09:32 JST] (INFO) irc|eed3si9n|読み込む型はパラメータで指定 |
|
[2014-09-06 12:09:50 JST] (INFO) irc|cb372_|BytesはRapture独自の型 |
|
[2014-09-06 12:09:51 JST] (INFO) irc|eed3si9n|rapture ではByte 型を使う |
|
[2014-09-06 12:09:09 JST] (INFO) irc|cb372_|コンパイルエラーが出た |
|
[2014-09-06 12:09:16 JST] (INFO) irc|eed3si9n|Charで呼んでみる |
|
[2014-09-06 12:09:30 JST] (INFO) irc|cb372_|エラーの意味分からん |
|
[2014-09-06 12:09:13 JST] (INFO) irc|eed3si9n|このリソースに対応するimplicit のReaderが見つかりません |
|
[2014-09-06 12:09:17 JST] (INFO) irc|cb372_|文字を読むに先立ってエンコードを指定しないといけない |
|
[2014-09-06 12:09:35 JST] (INFO) irc|eed3si9n|英米では何でもアスキー文字だと思ってる |
|
[2014-09-06 12:09:23 JST] (INFO) irc|cb372_|アスキー前提のコードを海外で実行するとひどいバグが出ることがある |
|
[2014-09-06 12:09:27 JST] (INFO) irc|eed3si9n|アスキーだと思ってサーバにデプロイされると微妙なところで壊れるため、raptureではエンコーディングの指定を強制 |
|
[2014-09-06 12:09:47 JST] (INFO) irc|cb372_|このJsonサンプルをこれから使います |
|
[2014-09-06 12:09:54 JST] (INFO) irc|eed3si9n|rapture.Json から派生 |
|
[2014-09-06 12:09:07 JST] (INFO) irc|cb372_|Rapture Jsonを別プロジェクトに分けた |
|
[2014-09-06 12:09:14 JST] (INFO) irc|eed3si9n|rapture.io から派生した rapture.Json |
|
[2014-09-06 12:09:30 JST] (INFO) irc|cb372_|最新のRaptureではこう書ける |
|
[2014-09-06 12:09:57 JST] (INFO) irc|eed3si9n|rapture が読み込むことができれば何でもパースする |
|
[2014-09-06 12:09:14 JST] (INFO) irc|eed3si9n|json は今パースしたオブジェクト |
|
[2014-09-06 12:09:23 JST] (INFO) irc|cb372_|これはScala 2.9のDynamic機能を使う |
|
[2014-09-06 12:09:28 JST] (INFO) irc|eed3si9n|「candidate」はjson の型には無いもの |
|
[2014-09-06 12:09:22 JST] (INFO) irc|eed3si9n|動的型付けを使って、あたかもメソッドのようにjsonフィールドにアクセス |
|
[2014-09-06 12:09:35 JST] (INFO) irc|eed3si9n|配列のように最初の要素にアクセス |
|
[2014-09-06 12:09:04 JST] (INFO) irc|cb372_|動的なメソッド呼び出しをチェーンできる |
|
[2014-09-06 12:09:11 JST] (INFO) irc|eed3si9n|戻り型がjson ならば、これを連鎖できる |
|
[2014-09-06 12:09:25 JST] (INFO) irc|eed3si9n|json 型そのものは直接使えない |
|
[2014-09-06 12:09:31 JST] (INFO) irc|eed3si9n|ラッパーなので |
|
[2014-09-06 12:09:57 JST] (INFO) irc|eed3si9n|中の値を引き出すには .as[String] というふうにする |
|
[2014-09-06 12:09:15 JST] (INFO) irc|cb372_|Json型に対してsubstringを呼ぼうとするとしたら、substringというJsonフィールドを探して失敗してしまう |
|
[2014-09-06 12:09:21 JST] (INFO) irc|eed3si9n|この json は動的なので、失敗することもある |
|
[2014-09-06 12:09:43 JST] (INFO) irc|eed3si9n|失敗するタイミングは as の呼び出し時 |
|
[2014-09-06 12:09:55 JST] (INFO) irc|eed3si9n|as[Int] |
|
[2014-09-06 12:09:13 JST] (INFO) irc|eed3si9n|case class に引き出したい |
|
[2014-09-06 12:09:50 JST] (INFO) irc|eed3si9n|as[Candidate] |
|
[2014-09-06 12:09:05 JST] (INFO) irc|cb372_|パラメータがすべて引き出せるのであれば、case classも引き出せる |
|
[2014-09-06 12:09:18 JST] (INFO) irc|eed3si9n|これで一行でcase class に引き出し可能 |
|
[2014-09-06 12:09:34 JST] (INFO) irc|eed3si9n|エラー処理に最近こだわってる |
|
[2014-09-06 12:09:43 JST] (INFO) irc|cb372_|エラー処理を選べる |
|
[2014-09-06 12:09:04 JST] (INFO) irc|eed3si9n|カンファレンスでの質問:エラーの処理はどうするの? |
|
[2014-09-06 12:09:19 JST] (INFO) irc|eed3si9n|「失敗すれば?」と答えられたら、睨みつけられた |
|
[2014-09-06 12:09:50 JST] (INFO) irc|cb372_|デフォで例外を投げる |
|
[2014-09-06 12:09:54 JST] (INFO) irc|eed3si9n|パースや、フィールドのアクセスなど色々失敗する場面は多い |
|
[2014-09-06 12:09:19 JST] (INFO) irc|cb372_|modes.returnTryをimportすることによってそれをオーバーライドできる |
|
[2014-09-06 12:09:22 JST] (INFO) irc|eed3si9n|Try で返す |
|
[2014-09-06 12:09:48 JST] (INFO) irc|eed3si9n|Future で返すことも可能 |
|
[2014-09-06 12:09:06 JST] (INFO) irc|eed3si9n|ファイルはデカいかもしれない |
|
[2014-09-06 12:09:17 JST] (INFO) irc|eed3si9n|slurp はバックグラウンドで実行 |
|
[2014-09-06 12:09:25 JST] (INFO) irc|eed3si9n|import するだけ |
|
[2014-09-06 12:09:28 JST] (INFO) irc|cb372_|一つのimportで処理を非同期にできる |
|
[2014-09-06 12:09:02 JST] (INFO) irc|cb372_|また as を使ってリストを引き出せる |
|
[2014-09-06 12:09:05 JST] (INFO) twitter|sumito3478|見えるimplicitによって戻り値型を変えるという発想はなかった #ScalaMatsuri #ra |
|
[2014-09-06 12:09:05 JST] (INFO) twitter|moc_yuto|rapture.io良さそう! |
|
#scalaMatsuri |
|
[2014-09-06 12:09:05 JST] (INFO) twitter|k_bigwheel|playのjsonライブラリは相当イマイチなので代替がほしいのだけど、これはそういうのとはちょっと違うっぽい #ScalaMatsuri #ra |
|
[2014-09-06 12:09:05 JST] (INFO) twitter|grimrose|importするクラスで戻り値の型が変わるって判断でいいのかな、これ #ScalaMatsuri #ra |
|
[2014-09-06 12:09:05 JST] (INFO) twitter|seraphr|#scalamatsuri #ra |
|
import すると返す型かわるんか |
|
[2014-09-06 12:09:05 JST] (INFO) twitter|nakanishiyasuo|jsonの動的アクセスってどうやってるんだろ? #ScalaMatsuri #ra |
|
[2014-09-06 12:09:05 JST] (INFO) twitter|tlync|さて、会場に向かおう(遅) #ScalaMatsuri |
|
[2014-09-06 12:09:05 JST] (INFO) twitter|rinfield|Scala標準ライブラリのIO周りを追加してほしい…ちょっとしたプログラムで依存関係とか入れるのめんどいよ #ScalaMatsuri #ra |
|
[2014-09-06 12:09:05 JST] (INFO) twitter|mtgto|scala.Dynamicを使うとPHPの__callとかrubyのmethod_missingみたいなことができるのかー http://t.co/KKG21CLogB #ScalaMatsuri |
|
[2014-09-06 12:09:05 JST] (INFO) twitter|5kozawa|Rapture、case classに変換してくれるの便利そう #ScalaMatsuri |
|
[2014-09-06 12:09:05 JST] (INFO) twitter|mumoshu|単にHTTPライブラリとして使うなら、NIOベースな分RaptureよりDispatchの方使いたい気分になってる #ScalaMatsuri |
|
[2014-09-06 12:09:05 JST] (INFO) twitter|jagaximo|ああ、特定のモジュールimportしたらreturnの型変わるっぽい(?) としたら、何もないときはexception飛ぶとかかな #ScalaMatsuri #ra |
|
[2014-09-06 12:09:05 JST] (INFO) twitter|seraphr|Case classへの変換もあるのか #scalamatsuri #ra |
|
[2014-09-06 12:09:11 JST] (INFO) irc|eed3si9n|抽出可能なもののリストもまた抽出可能 |
|
[2014-09-06 12:09:33 JST] (INFO) irc|cb372_|Stack でも、ミュータブルな HashSetでも |
|
[2014-09-06 12:09:52 JST] (INFO) irc|eed3si9n|case class に全部乗せ |
|
[2014-09-06 12:09:58 JST] (INFO) irc|cb372_|ファイル全体を表現する case classを定義 |
|
[2014-09-06 12:09:25 JST] (INFO) irc|cb372_|このサンプルは政治的に危険かも |
|
[2014-09-06 12:09:37 JST] (INFO) irc|eed3si9n|オバマを使ったのは、ただの例です |
|
[2014-09-06 12:09:00 JST] (INFO) irc|cb372_|jsonをこのように生成できる |
|
[2014-09-06 12:09:14 JST] (INFO) irc|eed3si9n|変数の置換も可能 |
|
[2014-09-06 12:09:37 JST] (INFO) irc|cb372_|Jsonに変換できる型ならば何でも置換できる |
|
[2014-09-06 12:09:39 JST] (INFO) irc|eed3si9n|ここにjson, case class などを埋め込むことができる |
|
[2014-09-06 12:09:13 JST] (INFO) irc|cb372_|jsonデータの操作、更新 |
|
[2014-09-06 12:09:33 JST] (INFO) irc|eed3si9n|フィールドの追加 |
|
[2014-09-06 12:09:35 JST] (INFO) irc|cb372_|既存のjsonにyearフィールドを追加 |
|
[2014-09-06 12:09:52 JST] (INFO) irc|cb372_|このシンタックスは変に見えるかも |
|
[2014-09-06 12:09:19 JST] (INFO) irc|eed3si9n|json の場合は、ラムダでフィールドを表現 |
|
[2014-09-06 12:09:20 JST] (INFO) irc|cb372_|Mapと同様、キーと値がある |
|
[2014-09-06 12:09:58 JST] (INFO) irc|eed3si9n|これは逆方向に抽出 |
|
[2014-09-06 12:09:58 JST] (INFO) irc|cb372_|これはScala 2.10で入った機能 |
|
[2014-09-06 12:09:26 JST] (INFO) irc|eed3si9n|文字列補完子を使った、ディープなパターンマッチ |
|
[2014-09-06 12:09:51 JST] (INFO) irc|cb372_|実際のjsonをこのパターンと比較する |
|
[2014-09-06 12:09:54 JST] (INFO) irc|eed3si9n|$c で出てきた c はJson 型 |
|
[2014-09-06 12:09:09 JST] (INFO) irc|cb372_|これ通じるかな? |
|
[2014-09-06 12:09:12 JST] (INFO) irc|eed3si9n|なので、as[String] で文字列に出す |
|
[2014-09-06 12:09:26 JST] (INFO) irc|cb372_|複数の値も抽出可能 |
|
[2014-09-06 12:09:39 JST] (INFO) irc|eed3si9n|json パーサを独自に書いたと思った? |
|
[2014-09-06 12:09:48 JST] (INFO) irc|cb372_|自前のJsonパーサを使ったわけではない |
|
[2014-09-06 12:09:56 JST] (INFO) irc|eed3si9n|だけど他の人が色々良いのを書いてるよね |
|
[2014-09-06 12:09:08 JST] (INFO) irc|cb372_|パーサを選べる |
|
[2014-09-06 12:09:15 JST] (INFO) irc|cb372_|Jacksonとか |
|
[2014-09-06 12:09:56 JST] (INFO) irc|eed3si9n|import はスコープ付けされてるので、コードの一部でjackson 使うとかできる |
|
[2014-09-06 12:09:11 JST] (INFO) irc|eed3si9n|json4s, argonaut, など |
|
[2014-09-06 12:09:23 JST] (INFO) irc|cb372_|これをtype classで実現する |
|
[2014-09-06 12:09:31 JST] (INFO) irc|eed3si9n|一番速いのはjawn |
|
[2014-09-06 12:09:36 JST] (INFO) irc|eed3si9n|これがオススメ |
|
[2014-09-06 12:09:51 JST] (INFO) irc|cb372_|どのパーサを使ってもシンタックスは変わらない |
|
[2014-09-06 12:09:59 JST] (INFO) irc|eed3si9n|今まで不変 json の話をしました |
|
[2014-09-06 12:09:13 JST] (INFO) irc|cb372_|JsonBufferはミュータブル |
|
[2014-09-06 12:09:14 JST] (INFO) irc|eed3si9n|だけどたまには可変もしたい JsonBuffer |
|
[2014-09-06 12:09:32 JST] (INFO) irc|eed3si9n|life フィールドに代入可能 |
|
[2014-09-06 12:09:13 JST] (INFO) irc|eed3si9n|シリアライズ可能なcase class ならフィールドに代入することも可能 |
|
[2014-09-06 12:09:27 JST] (INFO) irc|eed3si9n|全フィールドがシリアライズ可能なら |
|
[2014-09-06 12:09:48 JST] (INFO) irc|cb372_|candidate, candidate.democratを自動的に作ってくれる |
|
[2014-09-06 12:09:17 JST] (INFO) irc|cb372_|直接ファイルのようなリソースに書き込める |
|
[2014-09-06 12:09:21 JST] (INFO) irc|eed3si9n|書き込み可能なリソースならそのまま書き込み可能 |
|
[2014-09-06 12:09:39 JST] (INFO) irc|cb372_|拡張は簡単 |
|
[2014-09-06 12:09:59 JST] (INFO) irc|cb372_|書き込み方を定義するtype classを実装するだけ |
|
[2014-09-06 12:09:12 JST] (INFO) irc|eed3si9n|コピーでも同じ |
|
[2014-09-06 12:09:21 JST] (INFO) irc|cb372_|読み込み可能リソースから書き込みリソースへのコピー |
|
[2014-09-06 12:09:57 JST] (INFO) irc|cb372_|ファイルのコピーの場合、ファイルシステムレベルでコピーする |
|
[2014-09-06 12:09:01 JST] (INFO) irc|eed3si9n|コピーの戻り値は summary |
|
[2014-09-06 12:09:44 JST] (INFO) irc|eed3si9n|s3 も書き込み先に指定可能 |
|
[2014-09-06 12:09:53 JST] (INFO) irc|cb372_|Amazon S3もサポート |
|
[2014-09-06 12:09:14 JST] (INFO) irc|eed3si9n|暗号化はちょっと飛ばします |
|
[2014-09-06 12:09:18 JST] (INFO) irc|cb372_|暗号化関連の機能も諸々 |
|
[2014-09-06 12:09:36 JST] (INFO) irc|eed3si9n|このあたりはちょっと実験的機能 |
|
[2014-09-06 12:09:10 JST] (INFO) irc|eed3si9n|json だけじゃなくても、色々パースできることに気づいた |
|
[2014-09-06 12:09:11 JST] (INFO) twitter|benzookapi|#ScalaMatsuri ライブデモって難しいよね。。 |
|
[2014-09-06 12:09:11 JST] (INFO) twitter|sumito3478|Raptureすごいなあ #ScalaMatsuri #ra |
|
[2014-09-06 12:09:11 JST] (INFO) twitter|joker1007|え、クラスパスをS3に?! #ScalaMatsuri #ra |
|
[2014-09-06 12:09:11 JST] (INFO) twitter|xuwei_k|typeclassによるライブラリの設計なんて、最近はほとんどのライブラリがやってるから、単にそれだけじゃ使う決め手にならないんだよなー #ScalaMatsuri #ra |
|
[2014-09-06 12:09:11 JST] (INFO) twitter|jagd5168|今度は URI を使って書き込んだり別の URI にコピーしたりとやっと I/O っぽくなってきた。 #ScalaMatsuri #ra |
|
[2014-09-06 12:09:11 JST] (INFO) twitter|takashabe|S3サポートよさげだ #ScalaMatsuri #ra |
|
[2014-09-06 12:09:11 JST] (INFO) twitter|iyunoriue|#ScalaMatsuri うーーーん、spray-jsonからrapture-ioに乗り換えたい・・・ |
|
[2014-09-06 12:09:11 JST] (INFO) twitter|takudo_dev|S3ええやん! |
|
#ScalaMatsuri #ra |
|
[2014-09-06 12:09:11 JST] (INFO) twitter|rinfield|Amazon S3も対応!? #ScalaMatsuri #ra |
|
[2014-09-06 12:09:11 JST] (INFO) twitter|jwhaco|こういうのが黒魔術じゃなくて汎用的な言語仕様の組み合わせで作られてるというのが Scala のすごいところだとおもう ( 信者脳 ) #ScalaMatsuri #ra |
|
[2014-09-06 12:09:11 JST] (INFO) twitter|tokuhirom|複数のアプリを同時に動かしたいとかはどうすんだろなあ #ScalaMatsuri |
|
[2014-09-06 12:09:20 JST] (INFO) irc|eed3si9n|json だけじゃなくても、色々パースできることに気づいた |
|
[2014-09-06 12:09:51 JST] (INFO) irc|eed3si9n|同じ構文で XML もアクセス可能(これはまだ実験的) |
|
[2014-09-06 12:09:53 JST] (INFO) irc|cb372_|jsonとxmlの構造は微妙に違うけど、大体json処理を再利用できる |
|
[2014-09-06 12:09:57 JST] (INFO) irc|eed3si9n|bson も |
|
[2014-09-06 12:09:19 JST] (INFO) irc|eed3si9n|一行でどこまで書けるか! |
|
[2014-09-06 12:09:38 JST] (INFO) irc|cb372_|jsonをダウンロードして、 |
|
[2014-09-06 12:09:45 JST] (INFO) irc|cb372_|passwordフィールドを追加して、 |
|
[2014-09-06 12:09:48 JST] (INFO) irc|cb372_|暗号化して、 |
|
[2014-09-06 12:09:57 JST] (INFO) irc|cb372_|ファイルに書き込む |
|
[2014-09-06 12:09:08 JST] (INFO) irc|cb372_|たった一行で |
|
[2014-09-06 12:09:13 JST] (INFO) irc|eed3si9n|多分実際にこれを一行で書くのはどうかと思いますが |
|
[2014-09-06 12:09:20 JST] (INFO) irc|eed3si9n|できるよ、ということで |
|
[2014-09-06 12:09:37 JST] (INFO) irc|cb372_|フォローをよろしく |
|
[2014-09-06 12:09:39 JST] (INFO) irc|eed3si9n|twitter でフォローしてね |
|
[2014-09-06 12:09:29 JST] (INFO) irc|eed3si9n|動的使いまくってますよね。キーに空白があったらどうするの? |
|
[2014-09-06 12:09:51 JST] (INFO) irc|cb372_|`...`を使えばいい |
|
[2014-09-06 12:09:03 JST] (INFO) irc|cb372_|それかselectDynamic()を直接呼ぶ |
|
[2014-09-06 12:09:16 JST] (INFO) irc|eed3si9n|キーにバックティックがあった場合は、selectDynamic |
|
[2014-09-06 12:09:37 JST] (INFO) irc|cb372_|例えば"as"というフィールドがあった場合、selectDynamicを呼ぶしかない |
|
[2014-09-06 12:09:35 JST] (INFO) irc|cb372_|Don't forget to write your unconference ideas on the whiteboard at the back! |
|
[2014-09-06 12:09:11 JST] (INFO) irc|cb372_|後ろにあるホワイトボードに明日のアンカンファレンスのアイディアを書いてね! |
|
[2014-09-06 13:09:12 JST] (INFO) twitter|hiroftp|SparkとStomの話を聞きに来た。#ScalaMatsuri |
|
[2014-09-06 13:09:12 JST] (INFO) twitter|toru_furuya|同僚のほぼほぼが参加してるのでタイムラインが #ScalaMatsuri |
|
[2014-09-06 13:09:12 JST] (INFO) twitter|sumito3478|ひるごはん #ScalaMatsuri #ra |
|
[2014-09-06 13:09:12 JST] (INFO) twitter|eiryu|.@todesking さん見た気がする #ScalaMatsuri #ra |
|
[2014-09-06 13:09:12 JST] (INFO) twitter|sifue|#ScalaMatsuri で、 @j5ik2o さんを見つけた。さらに痩せて服装がオシャレになっててヤバイw なんだこれwww |
|
[2014-09-06 13:09:12 JST] (INFO) twitter|eiryu|腹の中にデプロイしたい #ScalaMatsuri |
|
[2014-09-06 13:09:12 JST] (INFO) twitter|mtgto|raptureのHTTPもいろんなライブラリ使えればいいのになー。裏側はいまのところ素のhttp://t.co/QtZ6h9qYpwみたい。 https://t.co/fO2zPVNGro #ScalaMatsuri #ra |
|
[2014-09-06 13:09:12 JST] (INFO) twitter|toru_inoue|複数箇所でデプロイ中 |
|
|
|
#ScalaMatsuri |
|
[2014-09-06 13:09:34 JST] (INFO) irc|eed3si9n|service oriented architecture |
|
[2014-09-06 13:09:48 JST] (INFO) irc|eed3si9n|using RabbitMQ on the backend to communicate between services |
|
[2014-09-06 13:09:00 JST] (INFO) irc|eed3si9n|also with external services |
|
[2014-09-06 13:09:09 JST] (INFO) irc|eed3si9n|I like the term "microservice" |
|
[2014-09-06 13:09:24 JST] (INFO) irc|eed3si9n|each service can use different language, platform etc. |
|
[2014-09-06 13:09:30 JST] (INFO) irc|eed3si9n|no common storage assumption |
|
[2014-09-06 13:09:11 JST] (INFO) irc|eed3si9n|Mr. Han from CyberAgent adtech studio |
|
[2014-09-06 13:09:20 JST] (INFO) irc|eed3si9n|ad distribution |
|
[2014-09-06 13:09:33 JST] (INFO) irc|eed3si9n|some of the libraries used for distributing ads |
|
[2014-09-06 13:09:29 JST] (INFO) irc|eed3si9n|many of the usage is around hadoop/mapreduce |
|
[2014-09-06 13:09:37 JST] (INFO) irc|eed3si9n|this is used for batch reporting |
|
[2014-09-06 13:09:53 JST] (INFO) irc|eed3si9n|from there, we create the distribution list |
|
[2014-09-06 13:09:04 JST] (INFO) irc|eed3si9n|for Dynalist |
|
[2014-09-06 13:09:10 JST] (INFO) irc|eed3si9n|we use spray |
|
[2014-09-06 13:09:13 JST] (INFO) twitter|eiryu|#ScalaMatsuri https://t.co/hCcJ1FMNOw |
|
[2014-09-06 13:09:13 JST] (INFO) twitter|saka1_p|Sprayが印象的 #ScalaMatsuri |
|
[2014-09-06 13:09:13 JST] (INFO) twitter|jagaximo|Slick率たけえ #ScalaMatsuri |
|
[2014-09-06 13:09:13 JST] (INFO) twitter|kuro_m88|#ScalaMatsuri めっちゃ行きたかったけど、合宿と被ってしまって行けなくなって悲しみ。 |
|
[2014-09-06 13:09:13 JST] (INFO) twitter|teppei_tosa|LINEは複数サービスの情報収集に、Zipkinを利用 |
|
https://t.co/k3fPZ3GmXs |
|
#ScalaMatsuri |
|
[2014-09-06 13:09:13 JST] (INFO) twitter|jagaximo|.@j5ik2o さんファッションおじさんになってた #ScalaMatsuri |
|
[2014-09-06 13:09:13 JST] (INFO) twitter|g_u_nex|#ScalaMatsuri スピードを重視するゆえに最初のLTが始まる前に食べ終わってるので、ガッツリ聞いてます |
|
[2014-09-06 13:09:13 JST] (INFO) twitter|mumoshu|LineのScalaエンジニアのお仕事おもしろそう! #ScalaMatsuri |
|
[2014-09-06 13:09:13 JST] (INFO) twitter|840_|たまたま履歴書を持ち歩いていれば転職のチャンスらしい #ScalaMatsuri |
|
[2014-09-06 13:09:13 JST] (INFO) twitter|kimutansk|#scalamatsuri LINEって中はJavaばかりだったんですね。これはちょっと意外でした。 |
|
[2014-09-06 13:09:44 JST] (INFO) irc|eed3si9n|the logs generated by spray is fed to akka |
|
[2014-09-06 13:09:01 JST] (INFO) irc|eed3si9n|internal study group |
|
[2014-09-06 13:09:05 JST] (INFO) irc|eed3si9n|we use FP in Scala |
|
[2014-09-06 13:09:11 JST] (INFO) irc|eed3si9n|once a week |
|
[2014-09-06 13:09:24 JST] (INFO) irc|eed3si9n|we use Scalaz |
|
[2014-09-06 13:09:40 JST] (INFO) irc|eed3si9n|Monad and Monoids are in production for ad distribution |
|
[2014-09-06 13:09:31 JST] (INFO) irc|eed3si9n|Dwango |
|
[2014-09-06 13:09:04 JST] (INFO) irc|eed3si9n|meso on twitter |
|
[2014-09-06 13:09:19 JST] (INFO) irc|eed3si9n|i'm an engineer as well as increasing the productivity of the engineers |
|
[2014-09-06 13:09:59 JST] (INFO) irc|eed3si9n|we will be merging with Kadokawa |
|
[2014-09-06 13:09:23 JST] (INFO) irc|eed3si9n|we will be under Kadokawa Dwango |
|
[2014-09-06 13:09:40 JST] (INFO) irc|eed3si9n|we are 50:50 partners |
|
[2014-09-06 13:09:50 JST] (INFO) irc|cb372_|the new company name is kinda lame, but never mind |
|
[2014-09-06 13:09:32 JST] (INFO) irc|eed3si9n|known for niconico (video distribution), but we keep investing into various business |
|
[2014-09-06 13:09:44 JST] (INFO) irc|cb372_|Dwango has pivoted a few times, we are very adaptive to change |
|
[2014-09-06 13:09:12 JST] (INFO) irc|cb372_|using Scala for the Android app backend |
|
[2014-09-06 13:09:19 JST] (INFO) irc|cb372_|this was the first Scala project |
|
[2014-09-06 13:09:22 JST] (INFO) irc|eed3si9n|Android API was the first Scala product |
|
[2014-09-06 13:09:40 JST] (INFO) irc|eed3si9n|we are rewriting niconico live streaming from PHP |
|
[2014-09-06 13:09:44 JST] (INFO) irc|eed3si9n|in Scala |
|
[2014-09-06 13:09:50 JST] (INFO) irc|eed3si9n|we have many other projects |
|
[2014-09-06 13:09:53 JST] (INFO) irc|eed3si9n|Scalikejdbc is coming up (sera san) |
|
[2014-09-06 13:09:21 JST] (INFO) irc|eed3si9n|some famous engineers |
|
[2014-09-06 13:09:08 JST] (INFO) irc|eed3si9n|30+ Scala programmers |
|
[2014-09-06 13:09:17 JST] (INFO) irc|cb372_|(about 10% of engineers) |
|
[2014-09-06 13:09:18 JST] (INFO) irc|eed3si9n|probably 10% of all engs |
|
[2014-09-06 13:09:41 JST] (INFO) irc|eed3si9n|we'd probably on top 5 of # of the eng |
|
[2014-09-06 13:09:48 JST] (INFO) irc|cb372_|we're hiring! |
|
[2014-09-06 13:09:04 JST] (INFO) irc|eed3si9n|Mr. Oku from TIS |
|
[2014-09-06 13:09:08 JST] (INFO) irc|cb372_|we are a system integrator |
|
[2014-09-06 13:09:37 JST] (INFO) irc|eed3si9n|we are evaluating Scala |
|
[2014-09-06 13:09:37 JST] (INFO) irc|cb372_|we're currently evaluating scala |
|
[2014-09-06 13:09:20 JST] (INFO) irc|taisukeoe|Since we're not expert of Scala, we have learned via Scala Training Materials offered by Typesafe. |
|
[2014-09-06 13:09:51 JST] (INFO) irc|taisukeoe|Let me introduce its training material |
|
[2014-09-06 13:09:00 JST] (INFO) irc|illabout|You need to go to America to take some courses, but there are also courses that can be taken online. |
|
[2014-09-06 13:09:22 JST] (INFO) irc|cb372_|time difference is tough, you have to do it in the middle of the night |
|
[2014-09-06 13:09:46 JST] (INFO) irc|eed3si9n|this was surprising coming from Java |
|
[2014-09-06 13:09:55 JST] (INFO) irc|eed3si9n|there's no -> method on Int |
|
[2014-09-06 13:09:08 JST] (INFO) irc|eed3si9n|this is realized using implicits |
|
[2014-09-06 13:09:15 JST] (INFO) twitter|lsetzl|弁当2個めゲット。てへ。#ScalaMatsuri |
|
[2014-09-06 13:09:15 JST] (INFO) twitter|masanaka38|ドワンゴでは1割弱の30名くらいがScalaエンジニア #ScalaMatsuri |
|
[2014-09-06 13:09:15 JST] (INFO) twitter|lsetzl|FP in Scala気になる。あとで調べてみよう・・・読めるかどうかはさておき。#ScalaMatsuri |
|
[2014-09-06 13:09:15 JST] (INFO) twitter|mazgi|#scalamatsuri セキココないのかしら http://t.co/Z0FRxQTdDZ |
|
[2014-09-06 13:09:15 JST] (INFO) twitter|propensive|Really great to see so many people at #ScalaMatsuri in Japan! My slides are here: http://t.co/HOF97eMZe2 |
|
[2014-09-06 13:09:15 JST] (INFO) twitter|Jimisky|お弁当二個目いきます #ScalaMatsuri |
|
[2014-09-06 13:09:15 JST] (INFO) twitter|eiryu|TISさんのスポンサーLT #ScalaMatsuri |
|
[2014-09-06 13:09:15 JST] (INFO) twitter|saka1_p|研究開発部門で評価中の会社もあるのか #ScalaMatsuri |
|
[2014-09-06 13:09:15 JST] (INFO) twitter|hajimeni|お弁当余ってて2個め配布中 #ScalaMatsuri |
|
[2014-09-06 13:09:15 JST] (INFO) twitter|so_zaneli|二個目の弁当もろた。 #ScalaMatsuri |
|
[2014-09-06 13:09:18 JST] (INFO) irc|illabout|implicit conversions are created with "implicit def" |
|
[2014-09-06 13:09:53 JST] (INFO) irc|eed3si9n|any method name could be used to define implicit converter |
|
[2014-09-06 13:09:04 JST] (INFO) irc|illabout|When using implicit classes, this can be written more simply. |
|
[2014-09-06 13:09:27 JST] (INFO) irc|cb372_|CyberZ |
|
[2014-09-06 13:09:48 JST] (INFO) irc|illabout|CyberZ is on the 16th floor of this building. |
|
[2014-09-06 13:09:03 JST] (INFO) irc|cb372_|today I want to talk about IntelliJ |
|
[2014-09-06 13:09:19 JST] (INFO) irc|illabout|Do you remember last year's scala conference? |
|
[2014-09-06 13:09:25 JST] (INFO) irc|cb372_|James Roper was doing amazing live coding in IntelliJ |
|
[2014-09-06 13:09:40 JST] (INFO) irc|illabout|He uses snippets. |
|
[2014-09-06 13:09:59 JST] (INFO) irc|cb372_|press tab |
|
[2014-09-06 13:09:15 JST] (INFO) irc|cb372_|it does clever stuff like substituting variable names |
|
[2014-09-06 13:09:40 JST] (INFO) irc|cb372_|I counted how many times I type each character in code |
|
[2014-09-06 13:09:54 JST] (INFO) irc|cb372_|dot is nearly 10 percent of code! |
|
[2014-09-06 13:09:04 JST] (INFO) irc|cb372_|just a few chars account for a lot of code |
|
[2014-09-06 13:09:19 JST] (INFO) irc|illabout|The top 24 words made up 61% of all words. |
|
[2014-09-06 13:09:51 JST] (INFO) irc|cb372_|this aligns with Zipf's law, which originally described natural langs such as English |
|
[2014-09-06 13:09:28 JST] (INFO) irc|illabout|Created a live template to reduce the typing of the most common 24 words |
|
[2014-09-06 13:09:07 JST] (INFO) irc|illabout|Reduced 71% of typing with these completions. |
|
[2014-09-06 13:09:09 JST] (INFO) irc|cb372_|if you typed for 100 years, this would save you 71 years! |
|
[2014-09-06 13:09:43 JST] (INFO) irc|cb372_|in the end, saved 8% of all typing using live templates |
|
[2014-09-06 13:09:04 JST] (INFO) irc|illabout|You are able to write the snippits in Groovy. |
|
[2014-09-06 13:09:36 JST] (INFO) irc|cb372_|can generate SQL to match the above case class |
|
[2014-09-06 13:09:49 JST] (INFO) irc|cb372_|GroovyScript is very powerful |
|
[2014-09-06 13:09:57 JST] (INFO) irc|cb372_|e.g. can access the clipboard |
|
[2014-09-06 13:09:10 JST] (INFO) irc|cb372_|source is online |
|
[2014-09-06 13:09:43 JST] (INFO) irc|cb372_|Marverick |
|
[2014-09-06 13:09:14 JST] (INFO) irc|illabout|Aeromock is a lightweight application server released by CyberAgent |
|
[2014-09-06 13:09:28 JST] (INFO) irc|cb372_|want to test the frontend without waiting for Scala compiler |
|
[2014-09-06 13:09:18 JST] (INFO) twitter|bloody_snow|emacsでysnippetは使ってたけど、inteillijのコードスニペットは使ってなかったな。確かに便利そうや #ScalaMatsuri |
|
[2014-09-06 13:09:18 JST] (INFO) twitter|stormcat24|貼っとくか https://t.co/egHOdq1yGz #ScalaMatsuri |
|
[2014-09-06 13:09:18 JST] (INFO) twitter|rabitarochan|Aeromock、あとで使ってみる。 #ScalaMatsuri |
|
[2014-09-06 13:09:18 JST] (INFO) twitter|tokuhirom|ひどいときは10分こえる #ScalaMatsuri |
|
[2014-09-06 13:09:18 JST] (INFO) twitter|gomafugu|Aeromockだーw #ScalaMatsuri |
|
[2014-09-06 13:09:18 JST] (INFO) twitter|mazgi|\キャー! @chaltos さーん!!/ #scalamatsuri |
|
[2014-09-06 13:09:18 JST] (INFO) twitter|nyamadandan|LiveTemplateすごいな #ScalaMatsuri |
|
[2014-09-06 13:09:18 JST] (INFO) twitter|stormcat24|ちょwww 作者ここですwww #ScalaMatsuri |
|
[2014-09-06 13:09:18 JST] (INFO) twitter|kyo_ago|かとうさん前通ったけど一瞬だけかわからなかった #ScalaMatsuri |
|
[2014-09-06 13:09:18 JST] (INFO) twitter|ueshin|IntelliJのLive Templateに興味がわく素晴らしいLTだった。 #ScalaMatsuri |
|
[2014-09-06 13:09:44 JST] (INFO) irc|illabout|Inside the settings file, you can write things like where the html template files are, etc |
|
[2014-09-06 13:09:04 JST] (INFO) irc|illabout|I didn't use a template, so I will just explain the JSON part |
|
[2014-09-06 13:09:24 JST] (INFO) irc|illabout|Make the api directory and put the yaml file in that directory. |
|
[2014-09-06 13:09:35 JST] (INFO) irc|illabout|It will return it in json. |
|
[2014-09-06 13:09:56 JST] (INFO) irc|illabout|You can specify the parameters and HTTP status code. |
|
[2014-09-06 13:09:07 JST] (INFO) irc|cb372_|you can choose which yaml file to read, using the dataid URL param |
|
[2014-09-06 13:09:17 JST] (INFO) irc|cb372_|more complex routing is also possible |
|
[2014-09-06 13:09:33 JST] (INFO) irc|cb372_|you can write routing rules in Groovy |
|
[2014-09-06 13:09:53 JST] (INFO) irc|illabout|Match routes with regexes |
|
[2014-09-06 13:09:47 JST] (INFO) irc|cb372_|my take on Aeromock: writing huge YAML files is hard work |
|
[2014-09-06 13:09:33 JST] (INFO) irc|illabout|But it is still better than waiting for Scala's long compile times. |
|
[2014-09-06 13:09:57 JST] (INFO) irc|cb372_|Bizreach |
|
[2014-09-06 13:09:06 JST] (INFO) irc|cb372_|Today I'm going to talk about... Java |
|
[2014-09-06 13:09:27 JST] (INFO) irc|cb372_|I'll introduce our main service |
|
[2014-09-06 13:09:53 JST] (INFO) irc|cb372_|a recruitment site for high-level execs |
|
[2014-09-06 13:09:33 JST] (INFO) irc|illabout|Using scala in our new project. |
|
[2014-09-06 13:09:54 JST] (INFO) irc|cb372_|introducing some of our most famous engineers |
|
[2014-09-06 13:09:00 JST] (INFO) irc|cb372_|Takezoe-san |
|
[2014-09-06 13:09:04 JST] (INFO) irc|cb372_|Shimamoto-san |
|
[2014-09-06 13:09:10 JST] (INFO) irc|cb372_|both work on GitBucket |
|
[2014-09-06 13:09:35 JST] (INFO) irc|cb372_|we strive to create a good environment for engineers |
|
[2014-09-06 13:09:48 JST] (INFO) irc|cb372_|we have all the O'Reilly books! |
|
[2014-09-06 13:09:08 JST] (INFO) irc|cb372_|the "garden ocean" |
|
[2014-09-06 13:09:17 JST] (INFO) irc|illabout|open meeting spaces |
|
[2014-09-06 13:09:54 JST] (INFO) irc|illabout|the layout of our offices is different than most other companies |
|
[2014-09-06 14:09:02 JST] (INFO) irc|cb372_|separate quite room for when you need to concentrate |
|
[2014-09-06 14:09:06 JST] (INFO) irc|cb372_|*quiet |
|
[2014-09-06 14:09:14 JST] (INFO) irc|illabout|We have many study sessions. |
|
[2014-09-06 14:09:23 JST] (INFO) irc|illabout|Including Shibuya-Java |
|
[2014-09-06 14:09:46 JST] (INFO) irc|illabout|We are looking for Scala and Java engineers. |
|
[2014-09-06 14:09:04 JST] (INFO) irc|illabout|If you are interested, please come talk to us! |
|
[2014-09-06 14:09:19 JST] (INFO) irc|cb372_|Geisha Tokyo |
|
[2014-09-06 14:09:35 JST] (INFO) irc|cb372_|I was told to do this LT |
|
[2014-09-06 14:09:09 JST] (INFO) irc|cb372_|I do a bit of everything |
|
[2014-09-06 14:09:43 JST] (INFO) irc|cb372_|I don't like people dissing other prog langs |
|
[2014-09-06 14:09:07 JST] (INFO) irc|cb372_|want to talk about what I like about Scala |
|
[2014-09-06 14:09:22 JST] (INFO) twitter|saka1_p|芸者東京だ?!! #ScalaMatsuri |
|
[2014-09-06 14:09:22 JST] (INFO) twitter|eiryu|芸者東京さんのスポンサーLT #ScalaMatsuri |
|
[2014-09-06 14:09:22 JST] (INFO) twitter|masanaka38|開発しやすい席配置 いいなー #ScalaMatsuri |
|
[2014-09-06 14:09:22 JST] (INFO) twitter|nakanishiyasuo|やっぱりScalaエンジニアは売り手市場なんじゃ・・(再 #ScalaMatsuri |
|
[2014-09-06 14:09:22 JST] (INFO) twitter|aa7th|B会議室に電源タップが続々と到着している!!! #ScalaMatsuri |
|
[2014-09-06 14:09:22 JST] (INFO) twitter|brikis98|The slides for my #ScalaMatsuri talk "Node.js vs Play Framework": English (http://t.co/snV23BnngP), Japanese subs (http://t.co/TDxkZhmDhS) |
|
[2014-09-06 14:09:22 JST] (INFO) twitter|garbagetown|quiet room いいなー!(再々々々掲) #ScalaMatsuri |
|
[2014-09-06 14:09:30 JST] (INFO) irc|illabout|we are running a serverice call Nou Training Quest |
|
[2014-09-06 14:09:42 JST] (INFO) irc|cb372_|(Nou = brain) |
|
[2014-09-06 14:09:04 JST] (INFO) irc|cb372_|Scala is the de facto standard in our company |
|
[2014-09-06 14:09:16 JST] (INFO) irc|illabout|Recently people who have been using scala is decreasing in our company. |
|
[2014-09-06 14:09:30 JST] (INFO) irc|cb372_|architecture |
|
[2014-09-06 14:09:45 JST] (INFO) irc|cb372_|Play2 on AWS |
|
[2014-09-06 14:09:27 JST] (INFO) irc|illabout|There wasn't anything about Scala that made me especially happy. |
|
[2014-09-06 14:09:53 JST] (INFO) irc|illabout|Not that it is bad, but there wasn't anything that made it absolutely stand out among all other languages. |
|
[2014-09-06 14:09:54 JST] (INFO) irc|cb372_|but Scala is very useful for building tools |
|
[2014-09-06 14:09:14 JST] (INFO) irc|cb372_|auto-generating C++ code using a Scala tool |
|
[2014-09-06 14:09:28 JST] (INFO) irc|cb372_|Excel -> SQL converter written in Scala |
|
[2014-09-06 14:09:32 JST] (INFO) irc|cb372_|available on GitHub |
|
[2014-09-06 14:09:38 JST] (INFO) irc|cb372_|SQL diff tool |
|
[2014-09-06 14:09:22 JST] (INFO) irc|cb372_|useful for working out how the DB schema has changed, based on before and after DB dumps |
|
[2014-09-06 14:09:39 JST] (INFO) irc|illabout|We have been building our Scala know-how. |
|
[2014-09-06 14:09:13 JST] (INFO) irc|illabout|When building tools, languages like Java are annoying to use, but it can be done quickly in scala. |
|
[2014-09-06 14:09:29 JST] (INFO) irc|cb372_|we're hiring! |
|
[2014-09-06 14:09:00 JST] (INFO) irc|illabout|We are a Scala company, but we really want Engineers who want to make new services. |
|
[2014-09-06 14:09:04 JST] (INFO) irc|cb372_|feel free to drop by our office any time |
|
[2014-09-06 14:09:22 JST] (INFO) irc|cb372_|next session starts in 10 mins |
|
[2014-09-06 14:09:39 JST] (INFO) irc|cb372_|still some lunch boxes left, near the reception |
|
[2014-09-06 14:09:51 JST] (INFO) irc|cb372_|don't forget to check out the sponsor booths |
|
[2014-09-06 14:09:23 JST] (INFO) twitter|62jun26|弁当の残り具合ヤバくて心が痛い #ScalaMatsuri |
|
[2014-09-06 14:09:23 JST] (INFO) twitter|qtamaki|まさかお弁当食い放題だったとは・・・ #ScalaMatsuri |
|
[2014-09-06 14:09:23 JST] (INFO) twitter|stormcat24|Sparkだー #ScalaMatsuri |
|
[2014-09-06 14:09:23 JST] (INFO) twitter|niw|お弁当まだいっぱいあった #ScalaMatsuri |
|
[2014-09-06 14:09:23 JST] (INFO) twitter|hihihiroro|さてSpark 1個めだ #ScalaMatsuri #rb |
|
[2014-09-06 14:09:23 JST] (INFO) twitter|White_Raven777|増殖しているのではないかと錯覚するお弁当 #ScalaMatsuri |
|
[2014-09-06 14:09:23 JST] (INFO) twitter|udonsin|プログラム名がPlay Frameworkについて から Node.js vs Play Framework に変わっとる #ScalaMatsuri |
|
[2014-09-06 14:09:23 JST] (INFO) twitter|niw|Men's bathroom has a line. #ScalaMatsuri |
|
[2014-09-06 14:09:23 JST] (INFO) twitter|takeshinoda|電源が配布されてきた。素敵。電源mgmg #ScalaMatsuri |
|
[2014-09-06 14:09:23 JST] (INFO) twitter|eiryu|まだ弁当余っているらしいw #ScalaMatsuri |
|
[2014-09-06 14:09:23 JST] (INFO) twitter|tokuhirom|無限弁当 #scalamatsuri |
|
[2014-09-06 14:09:36 JST] (INFO) irc|eed3si9n|Node.js vs Play |
|
[2014-09-06 14:09:24 JST] (INFO) irc|eed3si9n|こんにちは |
|
[2014-09-06 14:09:27 JST] (INFO) irc|eed3si9n|ご招待ありがとうございます |
|
[2014-09-06 14:09:45 JST] (INFO) irc|eed3si9n|お弁当おいしかった。ハッピもかっこいい |
|
[2014-09-06 14:09:11 JST] (INFO) irc|eed3si9n|Node.js と言った時は expressの話にもなります |
|
[2014-09-06 14:09:18 JST] (INFO) irc|cb372_|5年間LinkedInで務めていた |
|
[2014-09-06 14:09:26 JST] (INFO) irc|eed3si9n|linkedin ではNode.js もPlay も使ってます |
|
[2014-09-06 14:09:33 JST] (INFO) irc|taisukeoe|LinkedIn時代はNode.jsもヘビーに使ってました |
|
[2014-09-06 14:09:41 JST] (INFO) irc|cb372_|100位上のサービス(Node.js,Play) |
|
[2014-09-06 14:09:53 JST] (INFO) irc|eed3si9n|どっちがいいのかという話が何回もあったので、今回はこういう話にしました |
|
[2014-09-06 14:09:09 JST] (INFO) irc|eed3si9n|結果じゃなくて、評価方法をご紹介します |
|
[2014-09-06 14:09:19 JST] (INFO) irc|eed3si9n|これがスコアカードです |
|
[2014-09-06 14:09:26 JST] (INFO) irc|taisukeoe|10カテゴリで、Node.jsとPlayを比較してみます |
|
[2014-09-06 14:09:36 JST] (INFO) irc|eed3si9n|学習に関して |
|
[2014-09-06 14:09:44 JST] (INFO) irc|eed3si9n|Node.js の学習は簡単 |
|
[2014-09-06 14:09:44 JST] (INFO) irc|taisukeoe|評価の数字の目安。1が酷い 5が他のフレームワークと同等 10がすごく良い |
|
[2014-09-06 14:09:49 JST] (INFO) irc|cb372_|言語やフレームワークを選ぶ際、このようなカテゴリを考えるべき |
|
[2014-09-06 14:09:05 JST] (INFO) irc|eed3si9n|6行書くだけでスタートできます |
|
[2014-09-06 14:09:20 JST] (INFO) irc|eed3si9n|すごい簡単なスタート |
|
[2014-09-06 14:09:31 JST] (INFO) irc|cb372_|express.js の場合は8行 |
|
[2014-09-06 14:09:52 JST] (INFO) irc|eed3si9n|node を実行するだけでサーバが起動 |
|
[2014-09-06 14:09:58 JST] (INFO) irc|cb372_|このGetting Startedの容易さは非常に重要 |
|
[2014-09-06 14:09:03 JST] (INFO) irc|eed3si9n|学習のリソース |
|
[2014-09-06 14:09:06 JST] (INFO) irc|eed3si9n|本もいっぱいある |
|
[2014-09-06 14:09:15 JST] (INFO) irc|eed3si9n|API のドキュメントも整備されてる |
|
[2014-09-06 14:09:23 JST] (INFO) irc|taisukeoe|[運営]Brikmanさんのスライドは、#ScalaMatsuri 上にツイートされていますのでご活用ください。 |
|
[2014-09-06 14:09:29 JST] (INFO) irc|cb372_|おすすめのStack Overflowスレッド |
|
[2014-09-06 14:09:32 JST] (INFO) irc|eed3si9n|Node.js の学習の学習曲線は緩やか |
|
[2014-09-06 14:09:43 JST] (INFO) irc|eed3si9n|10点満点 |
|
[2014-09-06 14:09:47 JST] (INFO) irc|eed3si9n|Play |
|
[2014-09-06 14:09:05 JST] (INFO) irc|cb372_|いきなり35個のファイル、フォルダー |
|
[2014-09-06 14:09:09 JST] (INFO) irc|eed3si9n|Play はファイルがいっぱい |
|
[2014-09-06 14:09:56 JST] (INFO) irc|eed3si9n|sbt がjar を色々ダウンロード |
|
[2014-09-06 14:09:02 JST] (INFO) irc|cb372_|Activatorテンプレートはサンプルコードを含む |
|
[2014-09-06 14:09:16 JST] (INFO) irc|cb372_|私のブログ |
|
[2014-09-06 14:09:19 JST] (INFO) irc|eed3si9n|Play の本もいくつかあるけど、あんまり多く無い |
|
[2014-09-06 14:09:29 JST] (INFO) irc|eed3si9n|学習曲線はNode.js に劣る |
|
[2014-09-06 14:09:47 JST] (INFO) irc|eed3si9n|発表資料は既にツイート済みです |
|
[2014-09-06 14:09:06 JST] (INFO) irc|eed3si9n|web framework の評価は総合的に行うべき |
|
[2014-09-06 14:09:15 JST] (INFO) irc|eed3si9n|routing |
|
[2014-09-06 14:09:20 JST] (INFO) irc|cb372_|Node |
|
[2014-09-06 14:09:38 JST] (INFO) irc|cb372_|NodeはURLパラメータやパスパラメータを抽出できる |
|
[2014-09-06 14:09:55 JST] (INFO) irc|eed3si9n|Play は静的型付けされてる |
|
[2014-09-06 14:09:11 JST] (INFO) irc|illabout|英語スライド:http://www.slideshare.net/brikis98/nodejs-vs-play-framework |
|
[2014-09-06 14:09:19 JST] (INFO) irc|eed3si9n|テンプレート |
|
[2014-09-06 14:09:32 JST] (INFO) irc|cb372_|NodeのテンプレートはJSへコンパイルされる |
|
[2014-09-06 14:09:37 JST] (INFO) irc|eed3si9n|Node.js のテンプレートはJavaScript にコンパイル |
|
[2014-09-06 14:09:44 JST] (INFO) irc|illabout|翻訳付きスライド:http://www.slideshare.net/brikis98/nodejs-vs-play-framework-with-japanese-subtitles |
|
[2014-09-06 14:09:56 JST] (INFO) irc|cb372_|Node:プラグインがある |
|
[2014-09-06 14:09:08 JST] (INFO) irc|eed3si9n|Play のテンプレートはScala にコンパイル |
|
[2014-09-06 14:09:16 JST] (INFO) irc|eed3si9n|form のバインディング |
|
[2014-09-06 14:09:17 JST] (INFO) irc|cb372_|Node:またプラグイン |
|
[2014-09-06 14:09:47 JST] (INFO) irc|eed3si9n|Node.js のXML 処理などはライブラリを自分で探す必要がある |
|
[2014-09-06 14:09:15 JST] (INFO) irc|eed3si9n|データ・アクセスだと、SQL だとPlay が勝ってる |
|
[2014-09-06 14:09:20 JST] (INFO) irc|cb372_|Playの方がDB系のライブラリが出来が良い |
|
[2014-09-06 14:09:30 JST] (INFO) irc|eed3si9n|NoSQL だと大体同じ感じ |
|
[2014-09-06 14:09:57 JST] (INFO) irc|eed3si9n|キャッシュに関してはNode.js はメモリ内部で行うのはオススメしない |
|
[2014-09-06 14:09:21 JST] (INFO) irc|eed3si9n|リアルタイムだとNode.js の一人勝ち |
|
[2014-09-06 14:09:25 JST] (INFO) twitter|kara_d|これをみつつで聞いてる #ScalaMatsuri 『http://t.co/AHWP8YNTd3 |
|
[2014-09-06 14:09:25 JST] (INFO) twitter|eiryu|海外ではSQLはシークェルって呼ぶのが主流なのかな #ScalaMatsuri #ra |
|
[2014-09-06 14:09:25 JST] (INFO) twitter|kimutansk|#ScalaMatsuri #rb SparkREPL流す環境がDockerというのが芸が細かい・・・ |
|
[2014-09-06 14:09:25 JST] (INFO) twitter|hihihiroro|https://t.co/gY6mjnPAVU #ScalaMatsuri |
|
[2014-09-06 14:09:25 JST] (INFO) twitter|n_rooms|#ScalaMatsuri Apache Sparkのセッションを聴講しながらニコ生でLinkeInの中の人の node.js Vs Play Frameworkのセッションを見てる。贅沢なカンファレンス。 |
|
[2014-09-06 14:09:25 JST] (INFO) twitter|toru_inoue|「HadoopのMapReduceを生で書いたことがあるかたなら、このお手軽さがわかると思います」 |
|
|
|
#ScalaMatsuri #rb |
|
[2014-09-06 14:09:25 JST] (INFO) twitter|nojima|Spark の話。Scala のコレクション API を使って MapReduce 的な処理ができるらしい。 #ScalaMatsuri |
|
[2014-09-06 14:09:29 JST] (INFO) irc|eed3si9n|socket.io は強い |
|
[2014-09-06 14:09:51 JST] (INFO) irc|eed3si9n|Play のクライアントサイドは自分で書かなきゃいけない |
|
[2014-09-06 14:09:17 JST] (INFO) irc|cb372_|Nodeは基本プラグインを揃えて使う |
|
[2014-09-06 14:09:18 JST] (INFO) irc|eed3si9n|express.js の場合プラグインを自分で探す必要がある |
|
[2014-09-06 14:09:23 JST] (INFO) irc|cb372_|Playはフルスタック |
|
[2014-09-06 14:09:38 JST] (INFO) irc|eed3si9n|play はフルスタックだけど、プラグインで自分で差し替えも可能 |
|
[2014-09-06 14:09:43 JST] (INFO) irc|eed3si9n|テスト |
|
[2014-09-06 14:09:10 JST] (INFO) irc|eed3si9n|Node.js のテストは満点 |
|
[2014-09-06 14:09:33 JST] (INFO) irc|eed3si9n|Play のテストも満点 |
|
[2014-09-06 14:09:39 JST] (INFO) irc|eed3si9n|セキュリティ |
|
[2014-09-06 14:09:47 JST] (INFO) irc|eed3si9n|production に大切 |
|
[2014-09-06 14:09:05 JST] (INFO) irc|taisukeoe|CSRF、どっちもミドルウェアある。どっちも自動的 |
|
[2014-09-06 14:09:13 JST] (INFO) irc|eed3si9n|CSRFは両者ともデフォじゃない |
|
[2014-09-06 14:09:18 JST] (INFO) irc|taisukeoe|ではない |
|
[2014-09-06 14:09:21 JST] (INFO) irc|cb372_|インジェクションは一番重要 |
|
[2014-09-06 14:09:31 JST] (INFO) irc|eed3si9n|node.js にはeval がある |
|
[2014-09-06 14:09:53 JST] (INFO) irc|cb372_|自分でevalを書かないとしても、ライブラリやプラグインが使うかも |
|
[2014-09-06 14:09:57 JST] (INFO) irc|taisukeoe|eval, setTimeout, setIntervalなど、大変致命的な脆弱性がある。 |
|
[2014-09-06 14:09:07 JST] (INFO) irc|eed3si9n|これはコードリビューで予防できるけど、脆弱性になり得る |
|
[2014-09-06 14:09:29 JST] (INFO) irc|cb372_|この間Railsにこのような問題が発生した |
|
[2014-09-06 14:09:31 JST] (INFO) irc|eed3si9n|Play ではeval 的な脆弱性は少ない |
|
[2014-09-06 14:09:52 JST] (INFO) irc|eed3si9n|Play の方が安全性では勝ち |
|
[2014-09-06 14:09:11 JST] (INFO) irc|eed3si9n|依存性管理はnpm |
|
[2014-09-06 14:09:28 JST] (INFO) irc|cb372_|コミュニティが大きい |
|
[2014-09-06 14:09:31 JST] (INFO) irc|taisukeoe|徐々に複雑な方向へシフトできる |
|
[2014-09-06 14:09:31 JST] (INFO) irc|eed3si9n|Node.js は徐々に難しいことを習っていける |
|
[2014-09-06 14:09:35 JST] (INFO) irc|taisukeoe|これは大きい。 |
|
[2014-09-06 14:09:56 JST] (INFO) irc|eed3si9n|sbt はインタラクティブなビルドツール |
|
[2014-09-06 14:09:24 JST] (INFO) irc|eed3si9n|学習曲線は急な感じ |
|
[2014-09-06 14:09:31 JST] (INFO) irc|taisukeoe|Playはビルドにsbtを使う。Learning Curveはとても険しい。 |
|
[2014-09-06 14:09:41 JST] (INFO) irc|eed3si9n|内部でivy で使っているので便利だけど、遅いことも |
|
[2014-09-06 14:09:55 JST] (INFO) irc|cb372_|Rhinoはとても遅い |
|
[2014-09-06 14:09:16 JST] (INFO) irc|eed3si9n|ビルドだとNode.js が満点 |
|
[2014-09-06 14:09:34 JST] (INFO) irc|eed3si9n|デプロイメントの話 |
|
[2014-09-06 14:09:53 JST] (INFO) irc|eed3si9n|ホスティングサービスも充実してきてる |
|
[2014-09-06 14:09:11 JST] (INFO) irc|cb372_|Nodeはシングルスレッド。マルチコアを活かすには特殊なコードが必要 |
|
[2014-09-06 14:09:15 JST] (INFO) irc|eed3si9n|Node.js は let it crash 気味なので再起動サービスは必須 |
|
[2014-09-06 14:09:41 JST] (INFO) irc|cb372_|nginxのようなサーバは必須ではないけどオススメする |
|
[2014-09-06 14:09:45 JST] (INFO) irc|eed3si9n|Node.js のデプロイメントは悪くない |
|
[2014-09-06 14:09:52 JST] (INFO) irc|cb372_|一応全部Node内でできる |
|
[2014-09-06 14:09:22 JST] (INFO) irc|eed3si9n|Play をサポートするホスティングサービスはそんなに多くない |
|
[2014-09-06 14:09:38 JST] (INFO) irc|eed3si9n|両者とも nginx などをかますのがオススメ |
|
[2014-09-06 14:09:54 JST] (INFO) irc|eed3si9n|デバッギング |
|
[2014-09-06 14:09:13 JST] (INFO) irc|eed3si9n|Node.js のデバッギングは満点 |
|
[2014-09-06 14:09:28 JST] (INFO) irc|eed3si9n|Play はブラウザ上にエラーメッセージを表示 |
|
[2014-09-06 14:09:41 JST] (INFO) irc|cb372_|エラーの場合、ソースコードがブラウザに表示される |
|
[2014-09-06 14:09:44 JST] (INFO) irc|eed3si9n|YourKit, VisualVM といった標準的なJava ツールを使える |
|
[2014-09-06 14:09:48 JST] (INFO) irc|eed3si9n|スケーリング |
|
[2014-09-06 14:09:57 JST] (INFO) irc|eed3si9n|性能的なスケーリング |
|
[2014-09-06 14:09:08 JST] (INFO) irc|eed3si9n|コード規模、チーム規模でのスケーリング |
|
[2014-09-06 14:09:12 JST] (INFO) irc|eed3si9n|まずは性能の話 |
|
[2014-09-06 14:09:45 JST] (INFO) irc|eed3si9n|TechEmpower は、公開されている中では、まずまずの性能のベンチマーク |
|
[2014-09-06 14:09:56 JST] (INFO) irc|eed3si9n|両者とも速いことが分かる |
|
[2014-09-06 14:09:26 JST] (INFO) irc|cb372_|もちろん本当のアプリケーションではこんな数値は出ない |
|
[2014-09-06 14:09:37 JST] (INFO) irc|eed3si9n|複数のデータ・アクセスの場合はNode.js が速い |
|
[2014-09-06 14:09:51 JST] (INFO) irc|eed3si9n|Node.js はデータ・アクセスライブラリも non-blocking |
|
[2014-09-06 14:09:51 JST] (INFO) irc|cb372_|両方non-blockingなデザイン |
|
[2014-09-06 14:09:59 JST] (INFO) irc|eed3si9n|JDBC でブロックしてる |
|
[2014-09-06 14:09:47 JST] (INFO) irc|cb372_|non-blocking IO であれば、PlayもNodeも速い |
|
[2014-09-06 14:09:57 JST] (INFO) irc|eed3si9n|LinkedIn の経験では、non-blocking な構造だと両者とも速い |
|
[2014-09-06 14:09:22 JST] (INFO) irc|cb372_|Playの場合、blocking I/Oを細かく制御できる |
|
[2014-09-06 14:09:27 JST] (INFO) irc|cb372_|Node.jsは苦手 |
|
[2014-09-06 14:09:31 JST] (INFO) irc|eed3si9n|Node.js は一つでも blocking な呼び出しがあれば、いきなり性能が死ぬことになる |
|
[2014-09-06 14:09:57 JST] (INFO) irc|eed3si9n|生産性のグラフ。主観的なもの |
|
[2014-09-06 14:09:14 JST] (INFO) irc|eed3si9n|Play の方が習うのに時間がかかる |
|
[2014-09-06 14:09:24 JST] (INFO) irc|eed3si9n|だけど、高い生産性を維持できる |
|
[2014-09-06 14:09:25 JST] (INFO) twitter|grimrose|NIOはどっちも得意だけど、BlockingIOだとNode.jsは不得手ってとこかな #ScalaMatsuri #ra |
|
[2014-09-06 14:09:25 JST] (INFO) twitter|rabitarochan|SchemaRDDも普通のRDDなので、SQL結果にmapとかもつなげることができる。 #ScalaMatsuri #rb |
|
[2014-09-06 14:09:25 JST] (INFO) twitter|kimutansk|#ScalaMatsuri #rb SparkSQL、確かにRDDをテーブルのように扱ってSQLが実行できる。かつFilterなどの変換関数が出てくる。かつSQL実行結果もRDDだというのも大きいですね |
|
[2014-09-06 14:09:25 JST] (INFO) twitter|xuwei_k|気づいたら小田好せんせーが自分の斜め前あたりに移動してきていて、eclipseでScala書いてる(たぶんdotty) #ScalaMatsuri #ra |
|
[2014-09-06 14:09:25 JST] (INFO) twitter|hajimeni|Debugは両方共やりやすい #ScalaMatsuri #ra |
|
[2014-09-06 14:09:25 JST] (INFO) twitter|k_bigwheel|なるほど、開発側との温度間の違いはそこかな “@xuwei_k: play2は、個人的にはフルスタックかそうじゃないか、という観点でないところに問題あると思うけどなー #ScalaMatsuri #ra” |
|
[2014-09-06 14:09:25 JST] (INFO) twitter|tokuhirom|このパフォーマンスはまあ誤差だなあ。 #scalamatsuri |
|
[2014-09-06 14:09:25 JST] (INFO) twitter|hajimeni|Deploy。NodeはCrashするから再起動サービスが必要。Hostingサービスも多い。PlayはSBTでパッケージングしてDeploy。 #ScalaMatsuri #ra |
|
[2014-09-06 14:09:25 JST] (INFO) twitter|cocoatomo|#ScalaMatsuri #rb “coalesce" は「コアレス」かな |
|
[2014-09-06 14:09:25 JST] (INFO) twitter|tacke|RoomBのハッシュタグこれかな #ScalaMatsuri #rb |
|
[2014-09-06 14:09:25 JST] (INFO) twitter|takeshinoda|node の Security が動的な言語部分をつついて 6 で、 Play の build が 7 てどうなのよそれ。 #ScalaMatsuri |
|
[2014-09-06 14:09:25 JST] (INFO) twitter|kazzna|nginxって何かを学ばなければ話についていけない。 #ScalaMatsuri #ra |
|
[2014-09-06 14:09:29 JST] (INFO) irc|cb372_|間違えてblocking I/Oを入れた時、Nodeは1,000 req/s から7 req/s まで落ちてしまった |
|
[2014-09-06 14:09:34 JST] (INFO) irc|eed3si9n|Play の方が習うのに時間がかかる |
|
[2014-09-06 14:09:36 JST] (INFO) irc|eed3si9n|だけど、高い生産性を維持できる |
|
[2014-09-06 14:09:11 JST] (INFO) irc|eed3si9n|比較で SpringMVC も入れてみた |
|
[2014-09-06 14:09:18 JST] (INFO) irc|eed3si9n|両者とも満点! |
|
[2014-09-06 14:09:30 JST] (INFO) irc|eed3si9n|メンテ性 |
|
[2014-09-06 14:09:43 JST] (INFO) irc|eed3si9n|JavaScript も関数型書けるよ |
|
[2014-09-06 14:09:56 JST] (INFO) irc|eed3si9n|JavaScript はどこにでもある |
|
[2014-09-06 14:09:05 JST] (INFO) irc|cb372_|ロボットでもJSで作れる |
|
[2014-09-06 14:09:19 JST] (INFO) irc|eed3si9n|ソースの(クライアント側と)共有も可能 |
|
[2014-09-06 14:09:32 JST] (INFO) irc|eed3si9n|Node.js のコアは安定してる |
|
[2014-09-06 14:09:51 JST] (INFO) irc|eed3si9n|「悪いパーツ」 |
|
[2014-09-06 14:09:23 JST] (INFO) irc|taisukeoe|Javascriptはメンテナンスするのが本当に苦痛 |
|
[2014-09-06 14:09:40 JST] (INFO) irc|eed3si9n|スコープのルールは壊れてる |
|
[2014-09-06 14:09:43 JST] (INFO) irc|cb372_|JSにblock scopeなんてない |
|
[2014-09-06 14:09:58 JST] (INFO) irc|eed3si9n|メンテ性は酷い |
|
[2014-09-06 14:09:06 JST] (INFO) irc|eed3si9n|this には7つの意味がある |
|
[2014-09-06 14:09:12 JST] (INFO) irc|eed3si9n|コールバック地獄 |
|
[2014-09-06 14:09:38 JST] (INFO) irc|taisukeoe|thisに違う意味が7個も割り当てられてるとか、悪夢だよ |
|
[2014-09-06 14:09:59 JST] (INFO) irc|eed3si9n|Node.js のコアは安定してるけど、ライブラリは不安定なものも多い |
|
[2014-09-06 14:09:01 JST] (INFO) irc|cb372_|自分でPromiseライブラリを使うとしても、他人のJSを読む時はコールバック地獄になる |
|
[2014-09-06 14:09:08 JST] (INFO) irc|eed3si9n|メンテ性は3 |
|
[2014-09-06 14:09:18 JST] (INFO) irc|eed3si9n|Play |
|
[2014-09-06 14:09:28 JST] (INFO) irc|eed3si9n|型システムはありがたい |
|
[2014-09-06 14:09:42 JST] (INFO) irc|cb372_|型システムはドキュメントの代わり |
|
[2014-09-06 14:09:54 JST] (INFO) irc|eed3si9n|型安全だけど、高い表現力 |
|
[2014-09-06 14:09:01 JST] (INFO) irc|cb372_|JVMはすばらしい |
|
[2014-09-06 14:09:03 JST] (INFO) irc|taisukeoe|Scalaはとても表現力豊か。case class, Implicit Conversion,,, |
|
[2014-09-06 14:09:18 JST] (INFO) irc|eed3si9n|JVMは20年走ってる最高のVM |
|
[2014-09-06 14:09:43 JST] (INFO) irc|cb372_|IDEは賢い |
|
[2014-09-06 14:09:46 JST] (INFO) irc|eed3si9n|同期か非同期かを自分で選べる |
|
[2014-09-06 14:09:55 JST] (INFO) irc|eed3si9n|「悪いパーツ」 |
|
[2014-09-06 14:09:59 JST] (INFO) irc|eed3si9n|コンパイル遅い |
|
[2014-09-06 14:09:59 JST] (INFO) irc|cb372_|コンパイラが遅い! |
|
[2014-09-06 14:09:02 JST] (INFO) irc|taisukeoe|でもScalaのコンパイラは遅い!!! |
|
[2014-09-06 14:09:18 JST] (INFO) irc|eed3si9n|sbt でインクリメンタルコンパイルできる |
|
[2014-09-06 14:09:25 JST] (INFO) irc|cb372_|Scalaは複雑 |
|
[2014-09-06 14:09:37 JST] (INFO) irc|cb372_|scalaz のコードサンプル |
|
[2014-09-06 14:09:55 JST] (INFO) irc|eed3si9n|Play は安定してる |
|
[2014-09-06 14:09:03 JST] (INFO) irc|eed3si9n|だけど、後方互換性が無い |
|
[2014-09-06 14:09:04 JST] (INFO) irc|taisukeoe|でも成熟しているとは言い難い。 |
|
[2014-09-06 14:09:42 JST] (INFO) irc|taisukeoe|Scalaはいまだにバイナリ互換性がないのがつらい |
|
[2014-09-06 14:09:50 JST] (INFO) irc|eed3si9n|Scala のバージョンが上がるとバイナリ互換性が無くなるため、ライブラリ郡も一緒に上げる必要がある |
|
[2014-09-06 14:09:20 JST] (INFO) irc|eed3si9n|コミュニティー |
|
[2014-09-06 14:09:38 JST] (INFO) irc|taisukeoe|node.jsの方がStackOverFlowの質問数が多いけど、これはnode.jsが分かりにくいのと、ユーザー数が多いの両方の理由があると思う |
|
[2014-09-06 14:09:59 JST] (INFO) irc|eed3si9n|Scala は第20位の言語 |
|
[2014-09-06 14:09:27 JST] (INFO) irc|cb372_|Typesafeの運用サポートに大満足 |
|
[2014-09-06 14:09:37 JST] (INFO) irc|eed3si9n|Play はJVMなため、java のライブラリが使える |
|
[2014-09-06 14:09:54 JST] (INFO) irc|eed3si9n|雇用数ではNode.js の勝ち |
|
[2014-09-06 15:09:27 JST] (INFO) irc|taisukeoe|山田くん、座布団ぜんぶ持って行きなさい! |
|
[2014-09-06 15:09:32 JST] (INFO) irc|taisukeoe|(from字幕) |
|
[2014-09-06 15:09:02 JST] (INFO) irc|eed3si9n|Node.js は小さいチーム向け |
|
[2014-09-06 15:09:27 JST] (INFO) irc|eed3si9n|テストを書く気が無いならNode.js はダメ |
|
[2014-09-06 15:09:29 JST] (INFO) irc|taisukeoe|JavaScript Ninjaがいたら、Node.jsは使いやすい |
|
[2014-09-06 15:09:38 JST] (INFO) irc|cb372_|テストなしのNodeは地獄 |
|
[2014-09-06 15:09:44 JST] (INFO) irc|taisukeoe|大きなチームで使うのもしんどい |
|
[2014-09-06 15:09:48 JST] (INFO) irc|eed3si9n|JVM使ってるならPlay |
|
[2014-09-06 15:09:02 JST] (INFO) irc|taisukeoe|型安全、関数型が好き |
|
[2014-09-06 15:09:10 JST] (INFO) irc|eed3si9n|大チームにもスケールする |
|
[2014-09-06 15:09:11 JST] (INFO) irc|taisukeoe|大きなチームとかはPlayがオススメ |
|
[2014-09-06 15:09:36 JST] (INFO) irc|eed3si9n|勉強する時間がない人にはPlay は向かない |
|
[2014-09-06 15:09:43 JST] (INFO) irc|taisukeoe|Play/Scala/sbtを学ぶ時間がないなら、あんまりオススメできません |
|
[2014-09-06 15:09:59 JST] (INFO) irc|eed3si9n|as per mainitainability |
|
[2014-09-06 15:09:06 JST] (INFO) irc|taisukeoe|This Questioner is wearing Node.js T-shirt! |
|
[2014-09-06 15:09:07 JST] (INFO) irc|eed3si9n|it's mostly coming from Js |
|
[2014-09-06 15:09:11 JST] (INFO) irc|eed3si9n|how about using Typescript? |
|
[2014-09-06 15:09:17 JST] (INFO) irc|eed3si9n|would your result change? |
|
[2014-09-06 15:09:21 JST] (INFO) irc|eed3si9n|like small team |
|
[2014-09-06 15:09:26 JST] (INFO) irc|eed3si9n|what's your opinion? |
|
[2014-09-06 15:09:06 JST] (INFO) irc|eed3si9n|一応問題の一部は解決するかもしれないけど |
|
[2014-09-06 15:09:12 JST] (INFO) irc|eed3si9n|大きな他の問題を背負うことになる |
|
[2014-09-06 15:09:21 JST] (INFO) irc|taisukeoe|Typescriptを使いこなすには、JavaScriptについても知識が必要 |
|
[2014-09-06 15:09:24 JST] (INFO) irc|eed3si9n|マイクロソフトが作ってる変な言語も習う人を探す必要がある |
|
[2014-09-06 15:09:27 JST] (INFO) twitter|takeshinoda|node.js vs Play 面白かった #ScalaMatsuri |
|
[2014-09-06 15:09:27 JST] (INFO) twitter|stormcat24|次はNode vs Skinnyかー #ScalaMatsuri |
|
[2014-09-06 15:09:27 JST] (INFO) twitter|takc923|面白かった。 #ScalaMatsuri #ra |
|
[2014-09-06 15:09:27 JST] (INFO) twitter|kysnm|おー、さすが meso さん / 【ニコ生視聴中(308分経過)】 Scala祭 A会場 生中継 http://t.co/06iLyRo57w #ScalaMatsuri |
|
[2014-09-06 15:09:27 JST] (INFO) twitter|kimutansk|#ScalaMatsuri 座布団・・・て、A会場で何があったんでしょうか・・・ |
|
[2014-09-06 15:09:27 JST] (INFO) twitter|hrk0619|Play負けwwwこれはお兄さまにご報告をせねばwww #ScalaMatsuri |
|
[2014-09-06 15:09:27 JST] (INFO) twitter|hajimeni|スライドの「山田くん全員の座布団持って行きなさい!」はすごい受けるwww #ScalaMatsuri #ra |
|
[2014-09-06 15:09:27 JST] (INFO) twitter|garbagetown|きょうイチ聞き易い英語だった #ScalaMatsuri |
|
[2014-09-06 15:09:43 JST] (INFO) irc|eed3si9n|デバッグなど多くの利点が失われる可能性もある |
|
[2014-09-06 15:09:55 JST] (INFO) irc|eed3si9n|マイクロソフトが作ってる変な言語も習う人を探す必要がある |
|
[2014-09-06 15:09:06 JST] (INFO) irc|eed3si9n|コンパイルというステップも必要になる |
|
[2014-09-06 15:09:19 JST] (INFO) irc|eed3si9n|bad tradeoff になります |
|
[2014-09-06 15:09:27 JST] (INFO) irc|taisukeoe|あまり割りが良くないトレードオフだと、僕は思う |
|
[2014-09-06 15:09:49 JST] (INFO) irc|eed3si9n|maybe not a question |
|
[2014-09-06 15:09:04 JST] (INFO) irc|eed3si9n|have you looked at other web frameworks ? |
|
[2014-09-06 15:09:08 JST] (INFO) irc|eed3si9n|other than Play? |
|
[2014-09-06 15:09:15 JST] (INFO) irc|taisukeoe|I'm interested in comparison with other framework |
|
[2014-09-06 15:09:45 JST] (INFO) irc|taisukeoe|ええ、この比較は拡張可能だと思います。 |
|
[2014-09-06 15:09:05 JST] (INFO) irc|eed3si9n|LinkedIn は伝統的に全部のフレームワークを評価する文化があるので |
|
[2014-09-06 15:09:10 JST] (INFO) irc|eed3si9n|全部見てます |
|
[2014-09-06 15:09:33 JST] (INFO) irc|eed3si9n|それぞれ良い所悪い所があるけど、Play の圧勝でした |
|
[2014-09-06 15:09:45 JST] (INFO) irc|cb372_|JVMならPlayに間違いない |
|
[2014-09-06 15:09:54 JST] (INFO) irc|eed3si9n|ブログも書いてます |
|
[2014-09-06 15:09:39 JST] (INFO) irc|eed3si9n|TIS というSIに勤務してる |
|
[2014-09-06 15:09:09 JST] (INFO) irc|cb372_|Scalaを検証中 |
|
[2014-09-06 15:09:14 JST] (INFO) irc|eed3si9n|京都に住んでいます |
|
[2014-09-06 15:09:51 JST] (INFO) irc|eed3si9n|甲賀忍者です |
|
[2014-09-06 15:09:45 JST] (INFO) irc|cb372_|I've written a few articles, including an intro to Play |
|
[2014-09-06 15:09:54 JST] (INFO) irc|cb372_|I also write for our tech blog |
|
[2014-09-06 15:09:33 JST] (INFO) irc|cb372_|most of our development is for large enterprises, especially finance |
|
[2014-09-06 15:09:07 JST] (INFO) irc|cb372_|we reached a productivity plateau using Java |
|
[2014-09-06 15:09:23 JST] (INFO) irc|cb372_|decided a more fundamental change was needed |
|
[2014-09-06 15:09:09 JST] (INFO) irc|cb372_|switching to Scala doesn't have an immediate effect on productivity. It takes time |
|
[2014-09-06 15:09:29 JST] (INFO) twitter|pakorepqu|聞き入ってしまうなぁ。 #ScalaMatsuri |
|
[2014-09-06 15:09:29 JST] (INFO) twitter|rinfield|まぁまだ日本でエンプラのシステムにScalaは難しいよなぁ #ScalaMatsuri #ra |
|
[2014-09-06 15:09:29 JST] (INFO) twitter|tokuhirom|Aの方から「アカンアカン!」って声聞こえた #scalamatsuri |
|
[2014-09-06 15:09:29 JST] (INFO) twitter|tokuhirom|Bは英語だし、Aは関西弁っぽい #scalamatsuri |
|
[2014-09-06 15:09:29 JST] (INFO) twitter|7to3|SSP は Velocity に似てる。 #ScalaMatsuri #rb |
|
[2014-09-06 15:09:29 JST] (INFO) twitter|hajimeni|(途中から)SIerの大規模プロジェクトで効率化を目指してScalaに辿り着いた #ScalaMatsuri #ra |
|
[2014-09-06 15:09:29 JST] (INFO) twitter|tokuhirom|アンケートが最初からおいてあるために、どこが空いてる席だかわかりづらくなってる感じがしますね #scalamatsuri |
|
[2014-09-06 15:09:29 JST] (INFO) twitter|tokuhirom|Playよりはskinnyのほうがいい感じしてる #scalamatsuri |
|
[2014-09-06 15:09:29 JST] (INFO) twitter|naoki_wada|せらさん、英語でプレゼンしとるし。B会場に翻訳者は居ない… #ScalaMatsuri #rb |
|
[2014-09-06 15:09:29 JST] (INFO) twitter|mumoshu|DB autoCommit { ... } とか DB readOnly { ... } とかsql"..." とか大変可読性高い #ScalaMatsuri |
|
[2014-09-06 15:09:29 JST] (INFO) twitter|tokuhirom|B会場に椅子が補充された #scalamatsuri |
|
[2014-09-06 15:09:30 JST] (INFO) irc|cb372_|it unlocks the potential in good devs |
|
[2014-09-06 15:09:20 JST] (INFO) irc|cb372_|productivity is not just about the size of application code |
|
[2014-09-06 15:09:53 JST] (INFO) irc|cb372_|until now we used a framework called SA Struts (famous in Japan) |
|
[2014-09-06 15:09:27 JST] (INFO) irc|cb372_|we were also using a lot of auto-generated Java code |
|
[2014-09-06 15:09:01 JST] (INFO) irc|cb372_|we need to develop a good toolchain to ensure productivity with the new Scala stack |
|
[2014-09-06 15:09:22 JST] (INFO) irc|cb372_|one of the tools we developed is a code generator |
|
[2014-09-06 15:09:39 JST] (INFO) irc|cb372_|let the developer focus on business logic |
|
[2014-09-06 15:09:14 JST] (INFO) irc|cb372_|code generator can abstract away differences between underlying frameworks |
|
[2014-09-06 15:09:31 JST] (INFO) irc|cb372_|built with Typesafe Activator, so easy to get started |
|
[2014-09-06 15:09:50 JST] (INFO) irc|cb372_|write the DB schema first, generate code from that |
|
[2014-09-06 15:09:43 JST] (INFO) irc|cb372_|use a Design Repository to manage design evolution |
|
[2014-09-06 15:09:42 JST] (INFO) irc|cb372_|define the screens of your app using the design repository UI |
|
[2014-09-06 15:09:56 JST] (INFO) irc|cb372_|no need to do any environment setup, except for installing Activator |
|
[2014-09-06 15:09:14 JST] (INFO) irc|cb372_|the code generator is called Skalholt |
|
[2014-09-06 15:09:43 JST] (INFO) irc|cb372_|demo time |
|
[2014-09-06 15:09:30 JST] (INFO) irc|illabout|First we have a blank directory. |
|
[2014-09-06 15:09:52 JST] (INFO) irc|illabout|We use the command we talked about before. |
|
[2014-09-06 15:09:17 JST] (INFO) irc|illabout|Now you have an application called matsuri. |
|
[2014-09-06 15:09:26 JST] (INFO) irc|illabout|We run activator. |
|
[2014-09-06 15:09:13 JST] (INFO) irc|illabout|There is the skaholt directory and db. |
|
[2014-09-06 15:09:31 JST] (INFO) twitter|7to3|タスクを Scala の普通の関数として書ける。メンテしやすい。 #ScalaMatsuri #rb |
|
[2014-09-06 15:09:31 JST] (INFO) twitter|7to3|そこで Skinny TaskRunner。Rake のようなシンプルなタスクランナー。書きやすいし、Scala や sbt のバージョンに影響されない。 #ScalaMatsuri #rb |
|
[2014-09-06 15:09:31 JST] (INFO) twitter|kimutansk|#ScalaMatsuri #rb SBTを改造するとその後のバージョン追従が非常に大変になるためそれは避けるべき、と。実際Skinny TaskRunnerはSBT Pluginにせずに実現していると。 |
|
[2014-09-06 15:09:31 JST] (INFO) twitter|toru_inoue|Avoid SBT Hacks |
|
|
|
たとえば難しくするのを避ける。 |
|
・オレオレプラグイン作りにハマりすぎてハマったり |
|
・なんでも書いたり |
|
#ScalaMatsuri #rb |
|
[2014-09-06 15:09:31 JST] (INFO) twitter|grimrose|SkinnyORMは、うまく隠してくれる部分が多いけど、SQLで頑張らないといけない場合にScalikeJDBCで助けてくれるから、ありがたい #ScalaMatsuri #rb |
|
[2014-09-06 15:09:31 JST] (INFO) twitter|k_bigwheel|これは金払っても聞く価値のある話だ #ScalaMatsuri #rb |
|
[2014-09-06 15:09:31 JST] (INFO) twitter|7to3|理由もなく sbt でやりすぎるのはやめよう。初心者にわかりづらいし、アップグレードの時に大変。 #ScalaMatsuri #rb |
|
[2014-09-06 15:09:31 JST] (INFO) twitter|nojima|「Avoid SBT Hacks」 #ScalaMatsuri |
|
[2014-09-06 15:09:31 JST] (INFO) twitter|kimutansk|#ScalaMatsuri #rb 過剰な抽象化はコードをわかりにくくさせてしまう、自動的にテスト可能とする、などはScalaだからではなく、汎用的な話になりつつありますね。 |
|
[2014-09-06 15:09:31 JST] (INFO) twitter|eiryu|ボイラープレート、圧力鍋のフタのイメージがある #ScalaMatsuri |
|
[2014-09-06 15:09:31 JST] (INFO) twitter|7to3|scoverage でカバレッジをとろう。 #ScalaMatsuri #rb |
|
[2014-09-06 15:09:31 JST] (INFO) twitter|toru_inoue|scoverage の紹介 |
|
|
|
#ScalaMatsuri #rb |
|
[2014-09-06 15:09:31 JST] (INFO) twitter|7to3|コンパイラだけでは、仕様に合ってるかは確認できない。 #ScalaMatsuri #rb |
|
[2014-09-06 15:09:38 JST] (INFO) irc|illabout|Let's see if it will compile. |
|
[2014-09-06 15:09:22 JST] (INFO) irc|cb372_|"skalholt" = "Scala scaffold" (sort of) |
|
[2014-09-06 15:09:59 JST] (INFO) irc|illabout|When running the application we see play's top screen. |
|
[2014-09-06 15:09:33 JST] (INFO) irc|cb372_|skalholt UI runs on port 9001 |
|
[2014-09-06 15:09:15 JST] (INFO) irc|cb372_|waiting for the generated source to compile |
|
[2014-09-06 15:09:46 JST] (INFO) irc|cb372_|here are our auto-generated screens |
|
[2014-09-06 15:09:11 JST] (INFO) irc|cb372_|we can run a search against the data in the DB |
|
[2014-09-06 15:09:36 JST] (INFO) irc|cb372_|let's change the app design and regenerate the code |
|
[2014-09-06 15:09:59 JST] (INFO) irc|cb372_|now we can try the search again |
|
[2014-09-06 15:09:17 JST] (INFO) irc|cb372_|the SQL query has changed to a LIKE condition |
|
[2014-09-06 15:09:41 JST] (INFO) irc|cb372_|the generator takes care of things like NOT NULL DB columns |
|
[2014-09-06 15:09:04 JST] (INFO) irc|cb372_|we can set validation conditions, e.g. required fields |
|
[2014-09-06 15:09:09 JST] (INFO) irc|cb372_|you saw how easy it was to generate and re-generate source code |
|
[2014-09-06 15:09:35 JST] (INFO) irc|illabout|The generator allows up to increase the amount of quality code. |
|
[2014-09-06 15:09:23 JST] (INFO) irc|cb372_|I recommend Prof Odersky's Coursera course. It was really interesting |
|
[2014-09-06 15:09:35 JST] (INFO) irc|cb372_|Skalholt is on GitHub |
|
[2014-09-06 15:09:31 JST] (INFO) irc|illabout|Q: What happens when you manually edit code that has been generated, and then run the generator once more? |
|
[2014-09-06 15:09:49 JST] (INFO) irc|taisukeoe|Q. How does it work when it's re-generated after modification? |
|
[2014-09-06 15:09:31 JST] (INFO) irc|illabout|A: If you inherit from generated classes, the code you write won't be changed. |
|
[2014-09-06 15:09:35 JST] (INFO) twitter|okapies|ようやく職場に着陣。 #ScalaMatsuri #ra |
|
[2014-09-06 15:09:35 JST] (INFO) twitter|hakobe|\キャー @mechairoi サーン/ #ScalaMatsuri #rb |
|
[2014-09-06 15:09:35 JST] (INFO) twitter|wolf20xx|またB->Aの民族大移動を予想 #ScalaMatsuri |
|
[2014-09-06 15:09:35 JST] (INFO) twitter|daiksy|\キャー @mechairoi サーン/ #ScalaMatsuri #rb |
|
[2014-09-06 15:09:35 JST] (INFO) twitter|7to3|ここは大事なことなので日本語で。楽天かw #ScalaMatsuri #rb |
|
[2014-09-06 15:09:37 JST] (INFO) irc|okapies|ご質問は日本語でも承ります! |
|
[2014-09-06 15:09:20 JST] (INFO) irc|eed3si9n|機材調整中です |
|
[2014-09-06 15:09:27 JST] (INFO) irc|eed3si9n|しばらくお待ち下さい |
|
[2014-09-06 16:09:10 JST] (INFO) irc|eed3si9n|Aaron Davidson です |
|
[2014-09-06 16:09:25 JST] (INFO) irc|eed3si9n|今日は big data の話をします |
|
[2014-09-06 16:09:56 JST] (INFO) irc|eed3si9n|大量のデータの解析をするには色々なツールがあれば便利 |
|
[2014-09-06 16:09:20 JST] (INFO) irc|eed3si9n|hadoop互換のクラスタ計算システム |
|
[2014-09-06 16:09:31 JST] (INFO) irc|eed3si9n|Apache Spark とは |
|
[2014-09-06 16:09:35 JST] (INFO) twitter|eiryu|”Javaみたいにたくさん型を書くのはつらいので型推論”w #ScalaMatsuri #rb |
|
[2014-09-06 16:09:35 JST] (INFO) twitter|moccos|英語で喋るのはいいと思いますよ。英語にすることによって著しくクオリティが落ちるなら問題で、だから質疑になって急に色々言われたわけで #ScalaMatsuri |
|
[2014-09-06 16:09:35 JST] (INFO) twitter|oreradio|はてな初のB2Bなサービスだったので過去のB2CサービスのPerl遺産の制約がなかった、と。 #ScalaMatsuri #rb |
|
[2014-09-06 16:09:35 JST] (INFO) twitter|hihihiroro|spark 2個目 #ScalaMatsuri #ra |
|
[2014-09-06 16:09:35 JST] (INFO) twitter|kmizu|Aaronさんの発表はじまた #ScalaMatsuri #ra |
|
[2014-09-06 16:09:35 JST] (INFO) twitter|eiryu|おっ、マカレルのデータストアは #PostgreSQL だって #ScalaMatsuri #rb |
|
[2014-09-06 16:09:35 JST] (INFO) twitter|White_Raven777|エージェントをGoか。C++じゃないんだ。 #scalamatsuri |
|
[2014-09-06 16:09:35 JST] (INFO) twitter|okapies|はじまりまーす。 #ScalaMatsuri #ra |
|
[2014-09-06 16:09:35 JST] (INFO) twitter|diceit|#ScalaMatsuri Skinnyの@seratch_ja からマグカップをプレゼント頂きました。日本発の便利なライブラリ&フレームワークとして世界でさらに普及して欲しいです。思いに英語力が伴わず失礼致しました(^^;; http://t.co/aZArifvcrv |
|
[2014-09-06 16:09:35 JST] (INFO) twitter|Nabetani|#川柳超自然派 |
|
「弁当の トラッシュ先は どこなんだ? 」 |
|
RT @joker1007 これ、弁当のトラッシュ先はどこなんだ? #ScalaMatsuri |
|
[2014-09-06 16:09:44 JST] (INFO) irc|eed3si9n|計算性能の工場 |
|
[2014-09-06 16:09:53 JST] (INFO) irc|eed3si9n|計算性能の向上 |
|
[2014-09-06 16:09:08 JST] (INFO) irc|eed3si9n|ユーザビリティも向上してます |
|
[2014-09-06 16:09:53 JST] (INFO) irc|eed3si9n|インメモリでプリミティブを提供することでhadoop比で大幅な性能向上を可能としました |
|
[2014-09-06 16:09:16 JST] (INFO) irc|eed3si9n|Spark は汎用スタックで、様々なプラグインを提供 |
|
[2014-09-06 16:09:33 JST] (INFO) irc|eed3si9n|今日のセッションの概要 |
|
[2014-09-06 16:09:56 JST] (INFO) irc|eed3si9n|MapReduce をリプレースするもの |
|
[2014-09-06 16:09:21 JST] (INFO) irc|eed3si9n|MapReduce はシングルパスのバッチ計算には便利 |
|
[2014-09-06 16:09:41 JST] (INFO) irc|okapies|グラフ処理、対話型処理、リアルタイム処理といったことをやりたい |
|
[2014-09-06 16:09:43 JST] (INFO) irc|eed3si9n|より複雑な計算やリアルタイムは難しい |
|
[2014-09-06 16:09:09 JST] (INFO) irc|eed3si9n|クエリ間でのデータ共有 |
|
[2014-09-06 16:09:36 JST] (INFO) irc|eed3si9n|中間データをキャッシュすることで、ネットやディスクよりも高速に計算したい |
|
[2014-09-06 16:09:48 JST] (INFO) irc|eed3si9n|Spark ならこれができる |
|
[2014-09-06 16:09:04 JST] (INFO) irc|eed3si9n|自己修復する分散データ(RDD) |
|
[2014-09-06 16:09:28 JST] (INFO) irc|eed3si9n|TB単位のデータがあっても、分散することで一つのデータのように扱える |
|
[2014-09-06 16:09:37 JST] (INFO) irc|eed3si9n|ログ解析 |
|
[2014-09-06 16:09:48 JST] (INFO) irc|eed3si9n|これがクラスタ |
|
[2014-09-06 16:09:08 JST] (INFO) irc|eed3si9n|3台でも100台でもいい |
|
[2014-09-06 16:09:28 JST] (INFO) irc|eed3si9n|普通のScala Collection のような変換ができる |
|
[2014-09-06 16:09:42 JST] (INFO) irc|eed3si9n|これは遅延評価で行われる |
|
[2014-09-06 16:09:16 JST] (INFO) irc|eed3si9n|count() がアクションなので、ここで評価が強制される |
|
[2014-09-06 16:09:24 JST] (INFO) irc|okapies|各ワーカでHDFSからデータを読み込んで計算、キャッシュする |
|
[2014-09-06 16:09:45 JST] (INFO) irc|eed3si9n|次の count() は中間データがキャッシュされてるはずなので、かなり速く戻ってくる |
|
[2014-09-06 16:09:00 JST] (INFO) irc|eed3si9n|ディスクはメモリよりもすごく遅い |
|
[2014-09-06 16:09:16 JST] (INFO) irc|eed3si9n|コミュニティ |
|
[2014-09-06 16:09:52 JST] (INFO) irc|eed3si9n|50社以上が参加したbig data 最大のライブラリ |
|
[2014-09-06 16:09:32 JST] (INFO) irc|eed3si9n|Spark SQL を使うことで構造化データにクエリを投げることができる |
|
[2014-09-06 16:09:54 JST] (INFO) irc|eed3si9n|json などにもSpark SQL のクエリを書ける |
|
[2014-09-06 16:09:06 JST] (INFO) irc|okapies|バッチと同じAPIでストリーム処理が書ける |
|
[2014-09-06 16:09:16 JST] (INFO) irc|eed3si9n|Spark Stream によってストリーム処理も可能 |
|
[2014-09-06 16:09:42 JST] (INFO) irc|eed3si9n|MLlib は機械学習用のライブラリの |
|
[2014-09-06 16:09:50 JST] (INFO) irc|eed3si9n|モジュール |
|
[2014-09-06 16:09:10 JST] (INFO) irc|eed3si9n|mapreduce は汎用的なバッチ処理システムとして始まった |
|
[2014-09-06 16:09:28 JST] (INFO) irc|okapies|しかし今日では特定用途ごとのシステムが乱立 |
|
[2014-09-06 16:09:03 JST] (INFO) irc|eed3si9n|Spark は汎用的なアプローチで統一を図る |
|
[2014-09-06 16:09:57 JST] (INFO) irc|eed3si9n|tweet の生json にSpark SQL でフィルタをかけて、それに機械学習ライブラリを適用するデモ |
|
[2014-09-06 16:09:15 JST] (INFO) irc|eed3si9n|麻植さんのマシンで実行中 |
|
[2014-09-06 16:09:15 JST] (INFO) irc|eed3si9n|これで生tweet のRDDができました |
|
[2014-09-06 16:09:24 JST] (INFO) irc|eed3si9n|最初のtweet を表示 |
|
[2014-09-06 16:09:34 JST] (INFO) irc|eed3si9n|pretty print も出来ます |
|
[2014-09-06 16:09:36 JST] (INFO) twitter|oreradio|Perlの時はSELECT * FROM hoge; --コメントでどのクラスで吐かれたクエリか書く というようにして運用エンジニアでも把握できていた。Slickにもそういう機能が入ると嬉しいとのこと。 #ScalaMatsuri #rb |
|
[2014-09-06 16:09:36 JST] (INFO) twitter|heignamerican|日本語キーボードの罠かw #ScalaMatsuri #ra |
|
[2014-09-06 16:09:36 JST] (INFO) twitter|teppei_tosa|#ra 会場ではDatabricks Cloudのデモが始まったのか。あれ衝撃的だよね。 #ScalaMatsuri |
|
[2014-09-06 16:09:36 JST] (INFO) twitter|mumoshu|Databricks Cloud使えば、デモで使ってるSpark環境すぐ再現できるのかな #ScalaMatsuri |
|
[2014-09-06 16:09:36 JST] (INFO) twitter|erukiti_|自分で用意したマシンじゃなくて、配列が… |
|
#ScalaMatsuri |
|
[2014-09-06 16:09:36 JST] (INFO) twitter|kimutansk|#ScalaMatsuri #ra DatabricksCloudの上でS3からファイルを読み込んでTweet解析。 |
|
[2014-09-06 16:09:36 JST] (INFO) twitter|hihihiroro|Dock にアイコン多いのがものすごく気になるw #ScalaMatsuri #ra |
|
[2014-09-06 16:09:36 JST] (INFO) twitter|jagd5168|日本語キーボードと日本語UIの壁が #ScalaMatsuri #ra |
|
[2014-09-06 16:09:36 JST] (INFO) twitter|NetPenguin|Slick…生成されるSQLみていると、.NET の EntityFramework を思い出す……(´・ω・`) |
|
#ScalaMatsuri |
|
[2014-09-06 16:09:36 JST] (INFO) twitter|potix2|#ScalaMatsuri databricksのデモ! |
|
[2014-09-06 16:09:36 JST] (INFO) twitter|takudo_dev|DSL怖い #ScalaMatsuri |
|
[2014-09-06 16:09:36 JST] (INFO) twitter|White_Raven777|狂気のクエリw #scalamatsuri |
|
[2014-09-06 16:09:36 JST] (INFO) twitter|satoshihirose|Databricksを使ったSparkのraw json -> sql -> MLのデモ。#ScalaMatsuri #ra |
|
[2014-09-06 16:09:36 JST] (INFO) twitter|grimrose|MapReduceからそれぞれ特化して乱立したのか… #ScalaMatsuri #ra |
|
[2014-09-06 16:09:42 JST] (INFO) irc|eed3si9n|pretty print も出来ます |
|
[2014-09-06 16:09:50 JST] (INFO) irc|okapies|たくさんネストしたデータが出てきたが、欲しいのは "text" |
|
[2014-09-06 16:09:03 JST] (INFO) irc|eed3si9n|このtweet からSQLテーブルを作る |
|
[2014-09-06 16:09:29 JST] (INFO) irc|eed3si9n|25% のデータを見てスキーマを推論 |
|
[2014-09-06 16:09:57 JST] (INFO) irc|eed3si9n|SQL のクエリを書いてみましょう |
|
[2014-09-06 16:09:47 JST] (INFO) irc|eed3si9n|各言語ごとのカウント |
|
[2014-09-06 16:09:31 JST] (INFO) irc|eed3si9n|全データの処理を行う初めてのクエリです |
|
[2014-09-06 16:09:46 JST] (INFO) irc|eed3si9n|これは結構巨大なデータを扱っています |
|
[2014-09-06 16:09:23 JST] (INFO) irc|eed3si9n|一日のうちの時間帯もクエリに加えてみます |
|
[2014-09-06 16:09:37 JST] (INFO) irc|eed3si9n|毎時tweet数 |
|
[2014-09-06 16:09:14 JST] (INFO) irc|eed3si9n|group 節を増やしてみた |
|
[2014-09-06 16:09:31 JST] (INFO) irc|eed3si9n|グラフ処理も一発 |
|
[2014-09-06 16:09:47 JST] (INFO) irc|eed3si9n|日本語は青 |
|
[2014-09-06 16:09:00 JST] (INFO) irc|eed3si9n|次は機械学習 |
|
[2014-09-06 16:09:40 JST] (INFO) irc|eed3si9n|文字列をベルトル化してK平均クラスタ計算をする |
|
[2014-09-06 16:09:57 JST] (INFO) irc|eed3si9n|指定されてないだけで、英語が多いかもしれない |
|
[2014-09-06 16:09:14 JST] (INFO) irc|eed3si9n|テキストだけのRDD を生成した |
|
[2014-09-06 16:09:54 JST] (INFO) irc|eed3si9n|これに map を呼んでストリーム化 |
|
[2014-09-06 16:09:30 JST] (INFO) irc|eed3si9n|featurize でベクトル化 |
|
[2014-09-06 16:09:08 JST] (INFO) irc|eed3si9n|このベクトルをキャッシュ化 |
|
[2014-09-06 16:09:17 JST] (INFO) irc|eed3si9n|これは瞬時に戻ってくるはずなんだけど |
|
[2014-09-06 16:09:39 JST] (INFO) irc|eed3si9n|これにカウントを呼べばメモリに入る |
|
[2014-09-06 16:09:37 JST] (INFO) irc|eed3si9n|tweet をダウンロード、テキストだけの抽出、ベクトル化して、キャッシュに入れました |
|
[2014-09-06 16:09:01 JST] (INFO) irc|eed3si9n|キャッシュの力で、二度目以降の呼び出しは瞬時に戻る |
|
[2014-09-06 16:09:14 JST] (INFO) irc|eed3si9n|機械学習のトレーニング |
|
[2014-09-06 16:09:35 JST] (INFO) irc|eed3si9n|反復処理なので、キャッシュ化しておくのは大切 |
|
[2014-09-06 16:09:28 JST] (INFO) irc|eed3si9n|クラスタごとにtweet を表示してみる |
|
[2014-09-06 16:09:06 JST] (INFO) irc|eed3si9n|ストリーム化にチャレンジ。五分でできれば |
|
[2014-09-06 16:09:07 JST] (INFO) irc|eed3si9n|ストリームの context を定義 |
|
[2014-09-06 16:09:23 JST] (INFO) irc|eed3si9n|二秒ごとにツイートを拾ってくる設定 |
|
[2014-09-06 16:09:39 JST] (INFO) twitter|tokuhirom|めっちゃ正論だ #scalaMatsuri |
|
[2014-09-06 16:09:39 JST] (INFO) twitter|stormcat24|まあポスグレ最近キテますよね #ScalaMatsuri #rb |
|
[2014-09-06 16:09:39 JST] (INFO) twitter|erukiti_|japanese グループになんかあらびあんな感じのツイーヨが混じってた気が |
|
#ScalaMatsuri |
|
[2014-09-06 16:09:39 JST] (INFO) twitter|kimutansk|#ScalaMatsuri #ra DatabricksCloud上でついに機械学習のデモ開始。KMeansクラスタリング。言語別にクラスタリングされている・・は内容見れば必然的にこうなりますか。 |
|
[2014-09-06 16:09:39 JST] (INFO) twitter|cohalz|日本語とアラビア語が同じクラスタにw #ScalaMatsuri |
|
[2014-09-06 16:09:39 JST] (INFO) twitter|shigemk2|はてなブログに投稿しました |
|
はてなにおけるScala活用事例 #ScalaMatsuri - by shigemk2 |
|
http://t.co/yi4TyZ8HMt |
|
[2014-09-06 16:09:39 JST] (INFO) twitter|benzookapi|Sparkはええな。うちでもで色々使えそうだ。 #scalamatsuri |
|
[2014-09-06 16:09:39 JST] (INFO) twitter|jagd5168|でも、お高いんでしょう? #ScalaMatsuri #ra #DATABRICKS |
|
[2014-09-06 16:09:39 JST] (INFO) twitter|ixixi|12,207,667件に対して10Groupで10iterationのk-meansが30秒。早いね #ScalaMatsuri |
|
[2014-09-06 16:09:28 JST] (INFO) irc|eed3si9n|これのクラスタ1を表示すれば日本語とアラビア語のツイートが表示 |
|
[2014-09-06 16:09:54 JST] (INFO) irc|eed3si9n|Spark すごい |
|
[2014-09-06 16:09:54 JST] (INFO) irc|eed3si9n|どんなデータソースを使ってますか |
|
[2014-09-06 16:09:16 JST] (INFO) irc|eed3si9n|Spark は汎用的にどんなデータ・ソースもサポートする |
|
[2014-09-06 16:09:32 JST] (INFO) irc|eed3si9n|これは無料のtweet service を使ってます |
|
[2014-09-06 16:09:18 JST] (INFO) irc|eed3si9n|Spark SQL looks similar to Treasure data |
|
[2014-09-06 16:09:24 JST] (INFO) irc|eed3si9n|are you interested? |
|
[2014-09-06 16:09:37 JST] (INFO) irc|eed3si9n|in terms of pushing data into Json |
|
[2014-09-06 16:09:13 JST] (INFO) irc|eed3si9n|do you know if either service is influenced by another? |
|
[2014-09-06 16:09:52 JST] (INFO) irc|eed3si9n|両者とも独立して発生してると思います |
|
[2014-09-06 16:09:08 JST] (INFO) irc|eed3si9n|Spark SQL はGoogleから来てます |
|
[2014-09-06 16:09:40 JST] (INFO) twitter|ixixi|このページにある動画が、さっきのライブデモよりもうちょっと深堀り&色々やっているので面白い。ダッシュボードまで作れるのは凄い。 http://t.co/MGtaDLPpMA #ScalaMatsuri |
|
[2014-09-06 16:09:40 JST] (INFO) twitter|ixixi|Databricks CloudのUIは素晴らしいし、大規模Spark Clusterの運用はなんだかんだで辛い(と思っている)ので、cloud環境が会社のポリシーとして使えるならかなり魅力的だなぁ。 #ScalaMatsuri |
|
[2014-09-06 16:09:40 JST] (INFO) twitter|nabedge|うん。 type safe の効果とはなにか、みたいなウラの基礎が見えた気がしなくもない。 mackerel(マカレル)あとでためす。 |
|
#ScalaMatsuri #rb |
|
[2014-09-06 16:09:40 JST] (INFO) twitter|kimutansk|#ScalaMatsuri #ra Databricks Cloudのページを見てみたら、今日のと同じようなデモがムービーで流れてました。 http://t.co/CN7NyF1bYX |
|
[2014-09-06 16:09:40 JST] (INFO) twitter|naoki_wada|糖分来たー #ScalaMatsuri |
|
[2014-09-06 16:09:40 JST] (INFO) twitter|awekuit|Sparkの処理結果がすぐさまこんなにキレイに可視化されるなんて Databricks Cloud すごいいいなぁ… #ScalaMatsuri #ra |
|
[2014-09-06 16:09:40 JST] (INFO) twitter|takuan_osho|.@OE_uia さんが英語の仲介してるのか。大変そうだ。 #ScalaMatsuri |
|
[2014-09-06 16:09:40 JST] (INFO) twitter|okapies|@OE_uia さんペラペラでほんとすごい。 #ScalaMatsuri #ra |
|
[2014-09-06 16:09:40 JST] (INFO) twitter|ueshin|グラフ描写などの UI はともかく、さっきのデモが Spark でできるのは確かです。 #ScalaMatsuri #ra |
|
[2014-09-06 17:09:41 JST] (INFO) twitter|TDU_Trend|以上■■■ |
|
秋葉■llll |
|
茶■lll |
|
報告■lll |
|
横浜■lll |
|
#ScalaMatsuri■lll |
|
[2014-09-06 17:09:41 JST] (INFO) twitter|takuan_osho|懇談会も割と面白い #ScalaMatsuri |
|
[2014-09-06 17:09:41 JST] (INFO) twitter|cohalz|今更すぎるけどMac率高すぎでは #ScalaMatsuri |
|
[2014-09-06 17:09:41 JST] (INFO) twitter|g_u_nex|#ScalaMatsuri 何か端っこで採用情報が……? |
|
[2014-09-06 17:09:41 JST] (INFO) twitter|toru_inoue|「TypeSafe社はどこでマネタイズしてるの?」 |
|
|
|
「SubscriptionとTrainingとConsul」 |
|
|
|
なるほど |
|
#ScalaMatsuri カッフィータイム |
|
[2014-09-06 17:09:41 JST] (INFO) twitter|heignamerican|Typesafe 社のマネタイズ、サブスクリプション・トレーニング・コンサルが3本柱 |
|
#ScalaMatsuri #ra |
|
[2014-09-06 17:09:41 JST] (INFO) twitter|00_4|今のところ自分が参加したすべてのセッションでコンパイル遅いって話を聞かされてる #ScalaMatsuri |
|
[2014-09-06 17:09:41 JST] (INFO) twitter|niw|ぼちぼち準備 #ScalaMatsuri |
|
[2014-09-06 17:09:41 JST] (INFO) twitter|carrotflakes|Scala祭りってのしてるのね。もっと早く知りたかった。 |
|
ScalaMatsuri http://t.co/6gVjbRNkeg #ScalaMatsuri |
|
[2014-09-06 17:09:41 JST] (INFO) twitter|eiryu|業務ユーザー座談会に潜り込んでる #ScalaMatsuri |
|
[2014-09-06 17:09:41 JST] (INFO) twitter|garbagetown|typesafeの狙いを聞きにきたはずなのに吉田さんのリソース活用について話を聞いている #ScalaMatsuri |
|
[2014-09-06 17:09:34 JST] (INFO) irc|eed3si9n|データ処理ライブラリの紹介をします |
|
[2014-09-06 17:09:42 JST] (INFO) irc|cb372_|I have a bet with Gree, who are presenting in the other room right now. I think I have a bigger audience than them |
|
[2014-09-06 17:09:10 JST] (INFO) irc|eed3si9n|please follow @niw |
|
[2014-09-06 17:09:10 JST] (INFO) irc|cb372_|follow me if you want, don't if you don't |
|
[2014-09-06 17:09:44 JST] (INFO) twitter|okumin|Twitterアーキテクチャ気になる。 #ScalaMatsuri |
|
[2014-09-06 17:09:44 JST] (INFO) twitter|kyo_ago|#ScalaMatsuri キャー @hase1031 サーン |
|
[2014-09-06 17:09:44 JST] (INFO) twitter|kyo_ago|#ScalaMatsuri キャー @wozaki サーン |
|
[2014-09-06 17:09:44 JST] (INFO) twitter|satoshihirose|Typesafe社のSubscription使えって話聞いてた。日本の市場が大きいと分かれば日本語サポートも出来るかもとのこと。LinkedInは更に別料金で高速化とか頼んでるとかなんとか。 #ScalaMatsuri |
|
[2014-09-06 17:09:44 JST] (INFO) twitter|tsuwatch|みなさん #ScalaMatsuri |
|
[2014-09-06 17:09:44 JST] (INFO) twitter|funnythingz|GREEとTwitterどっちみるかなやむー #ScalaMatsuri |
|
[2014-09-06 17:09:44 JST] (INFO) twitter|tacke|いんぐりっしゅだ #ScalaMatsuri #ra |
|
[2014-09-06 17:09:44 JST] (INFO) twitter|eiryu|.@niw さんだ #ScalaMatsuri #ra |
|
[2014-09-06 17:09:44 JST] (INFO) twitter|kimutansk|#ScalaMatsuri #ra Scalding と Storm と Summingbird で始めるScalaでデータ処理 |
|
[2014-09-06 17:09:53 JST] (INFO) irc|illabout|I make iOS applications. |
|
[2014-09-06 17:09:00 JST] (INFO) irc|eed3si9n|normally I am wrting iOS apps |
|
[2014-09-06 17:09:12 JST] (INFO) irc|okapies|Please complain me if you have any iOS version Twitter app problem |
|
[2014-09-06 17:09:13 JST] (INFO) irc|cb372_|I want to talk about Swift at tomorrow's unconf |
|
[2014-09-06 17:09:34 JST] (INFO) irc|eed3si9n|Swift talk would be on day 2! |
|
[2014-09-06 17:09:03 JST] (INFO) irc|cb372_|these are all the Twitter open source projects |
|
[2014-09-06 17:09:03 JST] (INFO) irc|taisukeoe|Thanks for preparing another interesting topic for Unconference! AWESOME! |
|
[2014-09-06 17:09:11 JST] (INFO) irc|cb372_|and these are the Scala ones |
|
[2014-09-06 17:09:15 JST] (INFO) irc|eed3si9n|twitter loves Scala |
|
[2014-09-06 17:09:49 JST] (INFO) irc|taisukeoe|In 2009, (I believe) twitter was the biggest rails application |
|
[2014-09-06 17:09:52 JST] (INFO) irc|cb372_|grep-based development |
|
[2014-09-06 17:09:56 JST] (INFO) irc|illabout|We didn't know where anything was without using grep. |
|
[2014-09-06 17:09:07 JST] (INFO) irc|eed3si9n|we were patching ruby and rails |
|
[2014-09-06 17:09:00 JST] (INFO) irc|eed3si9n|(This is a Japanese animation, in which everyone tweets one word at one scene when it's broadcasting) |
|
[2014-09-06 17:09:09 JST] (INFO) irc|taisukeoe|Bulse, which is magic command in an animation of Hayao Miyazaki "Castle in the Sky" makes huge traffic at once |
|
[2014-09-06 17:09:14 JST] (INFO) irc|cb372_|our first Scala project was Kestrel |
|
[2014-09-06 17:09:25 JST] (INFO) irc|cb372_|a queue system using Memcached protocol |
|
[2014-09-06 17:09:53 JST] (INFO) irc|eed3si9n|July 2013, no more whales |
|
[2014-09-06 17:09:19 JST] (INFO) irc|eed3si9n|apparently japanese TV channel broadcasts this movie every year |
|
[2014-09-06 17:09:21 JST] (INFO) irc|taisukeoe|Again, "Bluse" made huge topic again in 2013 |
|
[2014-09-06 17:09:22 JST] (INFO) irc|okapies|Bulse strike back again! |
|
[2014-09-06 17:09:26 JST] (INFO) irc|eed3si9n|TPS = tweets per second |
|
[2014-09-06 17:09:36 JST] (INFO) irc|taisukeoe|around 130,000 Tweets per second |
|
[2014-09-06 17:09:46 JST] (INFO) irc|cb372_|how does Twitter calculate this TPS figure? |
|
[2014-09-06 17:09:02 JST] (INFO) irc|eed3si9n|to figure out TPS... |
|
[2014-09-06 17:09:23 JST] (INFO) irc|eed3si9n|back in 2009, we patched Pig |
|
[2014-09-06 17:09:35 JST] (INFO) irc|eed3si9n|so we migrated to Scalding |
|
[2014-09-06 17:09:41 JST] (INFO) irc|eed3si9n|so what's Scalding? |
|
[2014-09-06 17:09:07 JST] (INFO) irc|eed3si9n|don't Google "scalding" you're going to see nasty pictures of burns |
|
[2014-09-06 17:09:08 JST] (INFO) irc|cb372_|don't google for "scalding" unless you want to see pictures of burnt people |
|
[2014-09-06 17:09:08 JST] (INFO) irc|taisukeoe|As we've migrated to Scala from Ruby, we're migrating to Scalding from Pig. |
|
[2014-09-06 17:09:22 JST] (INFO) irc|eed3si9n|Google "scalding hadoop" or "scalding twitter" |
|
[2014-09-06 17:09:25 JST] (INFO) irc|illabout|Scalding is a scala library for hadoop. |
|
[2014-09-06 17:09:51 JST] (INFO) irc|illabout|You almost completely don't have to look at Hadoops API because Scalding wraps it. |
|
[2014-09-06 17:09:53 JST] (INFO) irc|cb372_|demo time |
|
[2014-09-06 17:09:51 JST] (INFO) irc|eed3si9n|a simple job |
|
[2014-09-06 17:09:00 JST] (INFO) irc|taisukeoe|Here is a simple job of Scalding |
|
[2014-09-06 17:09:00 JST] (INFO) irc|cb372_|just writes whatever it reads |
|
[2014-09-06 17:09:48 JST] (INFO) irc|cb372_|useful feature of Scalding: local mode |
|
[2014-09-06 17:09:52 JST] (INFO) irc|cb372_|no need for hadoop cluster |
|
[2014-09-06 17:09:08 JST] (INFO) irc|illabout|read a text file line by line, pull out words, and count the number of words |
|
[2014-09-06 17:09:36 JST] (INFO) irc|illabout|"word count" |
|
[2014-09-06 17:09:15 JST] (INFO) irc|taisukeoe|you can write it like a Scala typical code |
|
[2014-09-06 17:09:16 JST] (INFO) irc|cb372_|but using symbols is not very Scala-like |
|
[2014-09-06 17:09:26 JST] (INFO) irc|cb372_|there's also a type-safe API |
|
[2014-09-06 17:09:40 JST] (INFO) irc|illabout|no field definition |
|
[2014-09-06 17:09:15 JST] (INFO) irc|cb372_|you can avoid silly type errors at compile time |
|
[2014-09-06 17:09:30 JST] (INFO) irc|cb372_|let's check the TPS numbers! |
|
[2014-09-06 17:09:36 JST] (INFO) irc|taisukeoe|Let's count TweetsPerSecond by Scalding! |
|
[2014-09-06 17:09:54 JST] (INFO) irc|cb372_|we're using dummy data for the demo |
|
[2014-09-06 17:09:00 JST] (INFO) irc|okapies|(I want to use real data, but it is problematic) |
|
[2014-09-06 17:09:12 JST] (INFO) irc|taisukeoe|Since timestamp is seconds-basis, I can sort and group-by created_at simply to calculate TweetsPerSecond. |
|
[2014-09-06 17:09:13 JST] (INFO) irc|okapies|here are fetched tweet data last night |
|
[2014-09-06 17:09:45 JST] (INFO) twitter|j5ik2o|パッケージ間違ってるw s/scala.util.Future/scala.conccurent.Future/ #ScalaMatsuri |
|
[2014-09-06 17:09:45 JST] (INFO) twitter|heignamerican|バルスが来た時の分析ww #ScalaMatsuri #ra |
|
[2014-09-06 17:09:45 JST] (INFO) twitter|Masahito|#ScalaMatsuri スタッフの皆さんお疲れ様です |
|
[2014-09-06 17:09:45 JST] (INFO) twitter|hihihiroro|バルス数えるとなw #ScalaMatsuri |
|
[2014-09-06 17:09:45 JST] (INFO) twitter|kyo_ago|回線軽くなった気がする #ScalaMatsuri |
|
[2014-09-06 17:09:16 JST] (INFO) irc|cb372_|the public streaming API is limited to about 50 tweets/second, so that would give us boring numbers. I've added some variation by filtering out all non-Japanese tweets |
|
[2014-09-06 17:09:47 JST] (INFO) irc|illabout|There are two apis, type-safe and non-type-safe |
|
[2014-09-06 17:09:53 JST] (INFO) irc|illabout|I recommend the type-safe api. |
|
[2014-09-06 17:09:15 JST] (INFO) irc|cb372_|internally it uses so many implicits it will kill your IDE if you try to read the source |
|
[2014-09-06 17:09:32 JST] (INFO) irc|illabout|Storm is like a real-time hadoop. |
|
[2014-09-06 17:09:52 JST] (INFO) irc|illabout|Not a library, but a platform (like hadoop) |
|
[2014-09-06 17:09:29 JST] (INFO) irc|cb372_|problem: Storm depends on ZooKeeper |
|
[2014-09-06 17:09:38 JST] (INFO) irc|cb372_|if ZK goes down, Storm goes down with it |
|
[2014-09-06 17:09:59 JST] (INFO) irc|cb372_|other than that, Storm is fault-tolerant |
|
[2014-09-06 17:09:38 JST] (INFO) irc|cb372_|you have to write quite a lot of boilerplate to submit a job to Storm |
|
[2014-09-06 17:09:48 JST] (INFO) irc|illabout|I made a job for showing tweets in real-time. |
|
[2014-09-06 17:09:01 JST] (INFO) irc|cb372_|the code is on GitHub |
|
[2014-09-06 17:09:06 JST] (INFO) irc|eed3si9n|Storm calls its job a topology |
|
[2014-09-06 17:09:29 JST] (INFO) irc|cb372_|https://github.com/niw/storm_examples |
|
[2014-09-06 17:09:11 JST] (INFO) irc|cb372_|that demo just printed out the tweets |
|
[2014-09-06 17:09:16 JST] (INFO) irc|cb372_|now let's do a word count |
|
[2014-09-06 17:09:28 JST] (INFO) irc|cb372_|this uses very low-level Storm APIs |
|
[2014-09-06 17:09:36 JST] (INFO) irc|cb372_|usually you wouldn't write the code like this |
|
[2014-09-06 17:09:52 JST] (INFO) irc|cb372_|Storm is written in Clojure, so it's not very Scala-like |
|
[2014-09-06 17:09:02 JST] (INFO) irc|illabout|scala is written in clojure, there is a java api on top of it, and the scala api is on top of that |
|
[2014-09-06 17:09:07 JST] (INFO) irc|cb372_|this time we're going to calculate TPS and store the result in memcached |
|
[2014-09-06 17:09:11 JST] (INFO) irc|okapies|if we count tweets, we need to cache these counts |
|
[2014-09-06 17:09:07 JST] (INFO) irc|cb372_|in general you can try all of these tools on your local machine, in your IDE |
|
[2014-09-06 17:09:43 JST] (INFO) irc|cb372_|here are the results. there is a lag of a few seconds |
|
[2014-09-06 17:09:21 JST] (INFO) irc|cb372_|using Storm as-is requires a lot of setup |
|
[2014-09-06 17:09:55 JST] (INFO) irc|taisukeoe|Storm terms is very different from Hadoop ones |
|
[2014-09-06 17:09:29 JST] (INFO) irc|cb372_|Summingbird is really hard to use! |
|
[2014-09-06 17:09:48 JST] (INFO) irc|taisukeoe|I can understand nobody uses Summingbird since it's very difficult to use! |
|
[2014-09-06 17:09:59 JST] (INFO) irc|illabout|Summingbird is not a platform, but a library. |
|
[2014-09-06 17:09:30 JST] (INFO) irc|illabout|You can make jobs that work for either Scalding or Storm. |
|
[2014-09-06 17:09:48 JST] (INFO) irc|cb372_|here's the TPS job in Summingbird |
|
[2014-09-06 17:09:22 JST] (INFO) irc|illabout|Take data from a source and write it to a store |
|
[2014-09-06 17:09:37 JST] (INFO) irc|cb372_|you can run this code using either Scalding or Storm |
|
[2014-09-06 17:09:46 JST] (INFO) twitter|grimrose|明日はDDDのお話が聞けるっぽい #ScalaMatsuri |
|
[2014-09-06 17:09:46 JST] (INFO) twitter|aa7th|GREEさんのScala導入のお話おもしろかった! #ScalaMatsuri |
|
[2014-09-06 17:09:46 JST] (INFO) twitter|mumoshu|明日のアンカンファレンスで、かとうじゅんいちさんという型が、DDDについて話すらしいです #ScalaMatsuri |
|
[2014-09-06 17:09:46 JST] (INFO) twitter|funnythingz|DDD!! #ScalaMatsuri |
|
[2014-09-06 17:09:46 JST] (INFO) twitter|garbagetown|「かとうじゅんいちさんという方」 #ScalaMatsuri |
|
[2014-09-06 17:09:00 JST] (INFO) irc|cb372_|decide your batch length, e.g. 1 hour |
|
[2014-09-06 17:09:49 JST] (INFO) irc|cb372_|Summingbird can add (merge) all the batch results + the realtime results |
|
[2014-09-06 17:09:19 JST] (INFO) irc|cb372_|Q: does Summingbird have a local mode? |
|
[2014-09-06 17:09:19 JST] (INFO) irc|taisukeoe|Scalding enables to write batch job in Scala! |
|
[2014-09-06 17:09:37 JST] (INFO) irc|cb372_|A: Yes |
|
[2014-09-06 17:09:57 JST] (INFO) irc|cb372_|but... it's really hard to setup |
|
[2014-09-06 17:09:41 JST] (INFO) irc|cb372_|Q: Twitter is very slow to upgrade Scala |
|
[2014-09-06 17:09:47 JST] (INFO) irc|eed3si9n|Twitter recently bumped up to 2.10 |
|
[2014-09-06 17:09:49 JST] (INFO) irc|cb372_|can you tell us about that? |
|
[2014-09-06 17:09:03 JST] (INFO) irc|eed3si9n|but there are lots of pressure on bumping to 2.11 |
|
[2014-09-06 17:09:28 JST] (INFO) irc|eed3si9n|can you share some thoughts on keeping projects open and Scala versions |
|
[2014-09-06 17:09:47 JST] (INFO) irc|eed3si9n|bumping Scala version is very hard |
|
[2014-09-06 17:09:04 JST] (INFO) irc|eed3si9n|some of the open projects have separate code base for internal and open |
|
[2014-09-06 17:09:19 JST] (INFO) irc|eed3si9n|there are time constrained on the maintainers |
|
[2014-09-06 17:09:29 JST] (INFO) irc|eed3si9n|likely 2.10 is prioritized |
|
[2014-09-06 17:09:41 JST] (INFO) irc|taisukeoe|In terms of time resources of contributers, it must be tough situation. |
|
[2014-09-06 17:09:46 JST] (INFO) irc|eed3si9n|some devs work exclusively on OSS |
|
[2014-09-06 17:09:11 JST] (INFO) irc|eed3si9n|アップグレードについて質問です |
|
[2014-09-06 17:09:47 JST] (INFO) irc|eed3si9n|バージョンが上がるにつれて、易しくなってるか傾向を教えて下さい |
|
[2014-09-06 17:09:58 JST] (INFO) irc|eed3si9n|twitter は最大のコードベースを持ってるユーザだと思うのでその辺を |
|
[2014-09-06 17:09:06 JST] (INFO) irc|eed3si9n|あとアップグレードで大変な所 |
|
[2014-09-06 17:09:27 JST] (INFO) irc|eed3si9n|the hard part is the library dependencies |
|
[2014-09-06 17:09:38 JST] (INFO) irc|eed3si9n|large dependency graph |
|
[2014-09-06 18:09:11 JST] (INFO) irc|eed3si9n|when bumping up one library, it tends to create transitive bumps |
|
[2014-09-06 18:09:22 JST] (INFO) irc|eed3si9n|it might also be JVM eco system issue |
|
[2014-09-06 18:09:32 JST] (INFO) irc|eed3si9n|not just Scala |
|
[2014-09-06 18:09:25 JST] (INFO) irc|eed3si9n|アップグレードにかかった人月など教えてくれれば参考になります |
|
[2014-09-06 18:09:47 JST] (INFO) twitter|okapies|@niw さん「依存関係のアップグレードが大変。巨大な依存関係のグラフのうち、一つを更新すると芋づる式に更新が必要になる。ただ、これは JVM エコシステムの問題で Scala 特有の問題ではない」 #ScalaMatsuri #ra |
|
[2014-09-06 18:09:47 JST] (INFO) twitter|propensive|Having your photo taken with @odersky is a big thing at #ScalaMatsuri. I've been happy to oblige with my amateur camerawork... |
|
[2014-09-06 18:09:47 JST] (INFO) twitter|kazzna|Scala 2.10 app should work with Scala 2.11 runtimes for slove dependency problems. #ScalaMatsuri #ra well, i know it's difficult. |
|
[2014-09-06 18:09:47 JST] (INFO) twitter|mazgi|B会場に移動する #ScalaMatsuri |
|
[2014-09-06 18:09:47 JST] (INFO) twitter|L4T3X|そういう意味ではJavaの執拗な後方互換性って結構重要なのかもしれない #ScalaMatsuri |
|
[2014-09-06 18:09:47 JST] (INFO) twitter|kazzna|いやいや、Scalaさんが最新のランタイムで古いの動けばいいだけかと。それが難しいんだけどね。 #ScalaMatsuri #ra |
|
[2014-09-06 18:09:47 JST] (INFO) twitter|jagd5168|. @odersky → @niw "アップグレードするのは大変だけどどういう問題があった?" #ScalaMatsuri http://t.co/2OXGKECv6A |
|
[2014-09-06 18:09:47 JST] (INFO) twitter|okapies|小田好先生「Scala の最大のコードベースを持つ企業 (Twitter) として、バージョンが上がるごとにアップグレードが易しくなってるか、何が大変か教えてください」 #ScalaMatsuri #ra |
|
[2014-09-06 18:09:47 JST] (INFO) twitter|takeshinoda|ライブラリのバージョンの依存がセンシティブで、壊れやすくなったりするのはどこも同じやね。実行時まで分からないとかよりはましだろうけど。 #ScalaMatsuri |
|
[2014-09-06 18:09:47 JST] (INFO) twitter|jagaximo|バージョンアップは結局どこも苦労する。 #ScalaMatsuri #ra |
|
[2014-09-06 18:09:29 JST] (INFO) irc|taisukeoe|I'm researching SAT in Kobe-University |
|
[2014-09-06 18:09:40 JST] (INFO) irc|cb372_|slides are available in both English and Japanese |
|
[2014-09-06 18:09:58 JST] (INFO) irc|taisukeoe|and I'm utilizing Scala to make SAT easier. |
|
[2014-09-06 18:09:12 JST] (INFO) irc|cb372_|http://kix.istc.kobe-u.ac.jp/~soh/scarab/ |
|
[2014-09-06 18:09:43 JST] (INFO) irc|taisukeoe|今回のキーワードは、SATと、SATベースの制約プログラミングシステムScarabです。 |
|
[2014-09-06 18:09:39 JST] (INFO) irc|taisukeoe|SATは、Boolean値を返す式が満たされているのかどうかを決定する問題です。 |
|
[2014-09-06 18:09:50 JST] (INFO) irc|okapies|(数学語の訳者も準備しておくべきだった…) |
|
[2014-09-06 18:09:51 JST] (INFO) irc|eed3si9n|SAT solver でNP complete な問題を解くための鍵となる |
|
[2014-09-06 18:09:56 JST] (INFO) irc|taisukeoe|SATは最初のNP完全問題を解く最初のプログラムでした。 |
|
[2014-09-06 18:09:03 JST] (INFO) irc|eed3si9n|毎年性能は向上してる |
|
[2014-09-06 18:09:51 JST] (INFO) irc|eed3si9n|これがSAT を使う流れ |
|
[2014-09-06 18:09:00 JST] (INFO) irc|eed3si9n|まず問題をモデル化 |
|
[2014-09-06 18:09:15 JST] (INFO) irc|eed3si9n|それをSATに落とす |
|
[2014-09-06 18:09:21 JST] (INFO) irc|taisukeoe|今回のスライドの日本語訳版:http://kix.istc.kobe-u.ac.jp/~soh/scarab/talk-jp.pdf |
|
[2014-09-06 18:09:41 JST] (INFO) irc|eed3si9n|SATが解決したら、それを回答にデコード |
|
[2014-09-06 18:09:14 JST] (INFO) irc|eed3si9n|どんなエンコードがいいか色々研究が進んでいる |
|
[2014-09-06 18:09:37 JST] (INFO) irc|eed3si9n|最もよく使われてるのは direct encoding |
|
[2014-09-06 18:09:18 JST] (INFO) irc|eed3si9n|CSP (制約プログラミングシステム) |
|
[2014-09-06 18:09:31 JST] (INFO) irc|eed3si9n|Sat4j がEclipse のプラグイン依存性解決に使われるなど実用的な採用例も増えてる |
|
[2014-09-06 18:09:16 JST] (INFO) irc|eed3si9n|Scarab 開発の動機 |
|
[2014-09-06 18:09:41 JST] (INFO) irc|eed3si9n|多様な問題に対応したモダンな高速SAT |
|
[2014-09-06 18:09:53 JST] (INFO) irc|okapies|Scarab は SAT ベースのシステムを開発する際のプロトタイピングツール |
|
[2014-09-06 18:09:13 JST] (INFO) irc|eed3si9n|高い表現性を実現するために DSL を提供 |
|
[2014-09-06 18:09:51 JST] (INFO) irc|okapies|最初に Scala ベースのDSL を書いてCSPオブジェクトを生成 |
|
[2014-09-06 18:09:02 JST] (INFO) irc|taisukeoe|グラフ彩色問題を、Scarabで解く |
|
[2014-09-06 18:09:24 JST] (INFO) irc|okapies|(隣接ノードを異なる色で塗る塗り方を探す) |
|
[2014-09-06 18:09:26 JST] (INFO) irc|taisukeoe|一番原始的な方法は、ランダム生成する |
|
[2014-09-06 18:09:46 JST] (INFO) irc|eed3si9n|バックトラッキングは書くのが面倒 |
|
[2014-09-06 18:09:48 JST] (INFO) twitter|white_azalea|というか話の内容は何とか日本語スライド見っければ分かるけど、正直ここまで英語セッション続くとScalaから逃げる人多そう #ScalaMatsuri |
|
[2014-09-06 18:09:48 JST] (INFO) twitter|kimutansk|#ScalaMatsuri #rb コンパイルしてから実行結果を得るのではなく、コードを書きながらどう結果を得ることができるか、これを解決するためにSilkが開発されたと。 |
|
[2014-09-06 18:09:48 JST] (INFO) twitter|komamitsu_tw|ほほう "Silkによる分散データ処理のストリーミング" http://t.co/6X7ZlHzqZ8 #ScalaMatsuri |
|
[2014-09-06 18:09:48 JST] (INFO) twitter|teppei_tosa|SilkはSparkのインタプリタ版みたいな感じなのかな #ScalaMatsuri #rb |
|
[2014-09-06 18:09:48 JST] (INFO) twitter|eiryu|マイクの音量デカイ人が苦手だな俺。。 #ScalaMatsuri #ra |
|
[2014-09-06 18:09:48 JST] (INFO) twitter|xuwei_k|.@takezoen 明日 takezoen さんが scala.js のセッションをやると聞いて! #ScalaMatsuri #ScalaMatsuri2 |
|
[2014-09-06 18:09:48 JST] (INFO) twitter|teppei_tosa|やはりSparkとは競合関係か #ScalaMatsuri #rb |
|
[2014-09-06 18:09:48 JST] (INFO) twitter|so_zaneli|すからべ #ScalaMatsuri |
|
[2014-09-06 18:09:48 JST] (INFO) twitter|m_dobashi|ピーピー音はトイレの方からで如何ともし難そうだったから奥の方に移動するといソリューションをとった #ScalaMatsuri |
|
[2014-09-06 18:09:48 JST] (INFO) twitter|kimutansk|#ScalaMatsuri #rb 同じコード(What)を書いて、そこから複数の実行基盤でどう処理するか?(How)を分離することでその先をユーザが持つクラスタで切り替えることができると。 |
|
[2014-09-06 18:09:52 JST] (INFO) irc|eed3si9n|バックトラッキングは書くのが面倒 |
|
[2014-09-06 18:09:41 JST] (INFO) irc|eed3si9n|コードは既に書いたのでそれを読み込む |
|
[2014-09-06 18:09:19 JST] (INFO) irc|eed3si9n|グラフは Seq で表現 |
|
[2014-09-06 18:09:12 JST] (INFO) irc|eed3si9n|Scala のシンボルは自動的に整数の変数扱いされる |
|
[2014-09-06 18:09:30 JST] (INFO) irc|eed3si9n|内部では Sat4j を呼び出してる |
|
[2014-09-06 18:09:00 JST] (INFO) irc|eed3si9n|最適化問題もこれで解けるか? |
|
[2014-09-06 18:09:03 JST] (INFO) irc|eed3si9n|できます |
|
[2014-09-06 18:09:55 JST] (INFO) irc|eed3si9n|'color という整数変数を定義 |
|
[2014-09-06 18:09:09 JST] (INFO) irc|eed3si9n|この整数変数を最適化したい |
|
[2014-09-06 18:09:28 JST] (INFO) irc|eed3si9n|初期値は 10にする |
|
[2014-09-06 18:09:00 JST] (INFO) irc|eed3si9n|反復的に決定問題を解くことで最適化問題も解ける |
|
[2014-09-06 18:09:28 JST] (INFO) irc|eed3si9n|(最低何色あればグラフの彩色ができるか) |
|
[2014-09-06 18:09:47 JST] (INFO) irc|eed3si9n|最適解は3色 |
|
[2014-09-06 18:09:10 JST] (INFO) irc|eed3si9n|これはグラフ彩色問題の変種 |
|
[2014-09-06 18:09:40 JST] (INFO) irc|eed3si9n|もっと難しい問題だけど、scarab なら簡単に解ける |
|
[2014-09-06 18:09:25 JST] (INFO) irc|eed3si9n|制約条件を整数の加算で表現 |
|
[2014-09-06 18:09:11 JST] (INFO) irc|eed3si9n|数独みたいなもの? |
|
[2014-09-06 18:09:30 JST] (INFO) irc|eed3si9n|各数字は各行一回だけ |
|
[2014-09-06 18:09:51 JST] (INFO) irc|eed3si9n|斜めも一回だけ |
|
[2014-09-06 18:09:14 JST] (INFO) irc|eed3si9n|35行でこの制約をエンコードできる |
|
[2014-09-06 18:09:41 JST] (INFO) irc|eed3si9n|PSLの解決方法の比較 |
|
[2014-09-06 18:09:50 JST] (INFO) twitter|wolf20xx|programer的な視点のこのあたりのblogとかがイメージつかめるかなぁ。rubyだけどw |
|
「SAT ソルバで数独を解く方法」http://t.co/Nrz4sgrfbA… |
|
#ScalaMatsuri #ra |
|
[2014-09-06 18:09:50 JST] (INFO) twitter|Kuchitama|長丁場で疲れて来たという意見がある中、ずっと翻訳をしてくださっている翻訳チームの方には頭が下がります。 #ScalaMatsuri |
|
[2014-09-06 18:09:50 JST] (INFO) twitter|quassia88|ラテン方形キタコレ。#ScalaMatsuri #ra |
|
[2014-09-06 18:09:50 JST] (INFO) twitter|_ninneko|SATのLTの人の参加者に媚びない姿勢大好き。 #ScalaMatsuri #ra |
|
[2014-09-06 18:09:50 JST] (INFO) twitter|eiryu|トイレ行ってた序盤に用途の説明あったんだろうか #ScalaMatsuri #ra |
|
[2014-09-06 18:09:50 JST] (INFO) twitter|eiryu|基礎研究にそういうの求めるのはおかしいんやろうけど #ScalaMatsuri #ra |
|
[2014-09-06 18:09:50 JST] (INFO) twitter|eiryu|なるほどわからん。何に生かせるんだろう。。 #ScalaMatsuri #ra |
|
[2014-09-06 18:09:50 JST] (INFO) twitter|benzookapi|データ分析系の話を名だたる企業のエンジニアさんから聞けてるのが、個人的には収穫。#scalamatsuri |
|
[2014-09-06 18:09:50 JST] (INFO) twitter|nisshieeorg|Silkかっけーけど、さっきのDataBricks CloudのWebインタフェースでインタラクティブに実行できて、かつcache()って呼べば途中結果が保存されるデモのインパクトがでかすぎて・・・ #ScalaMatsuri #ra |
|
[2014-09-06 18:09:50 JST] (INFO) twitter|ueshin|Macroよくわからない。ので次のセッションで勉強する! #ScalaMatsuri #rb |
|
[2014-09-06 18:09:38 JST] (INFO) irc|eed3si9n|制約モデルによって性能にバラつきがある |
|
[2014-09-06 18:09:54 JST] (INFO) irc|eed3si9n|SATソルバだけでは解決できない問題もある |
|
[2014-09-06 18:09:58 JST] (INFO) irc|eed3si9n|traveling salesman problem での性能比較 |
|
[2014-09-06 18:09:15 JST] (INFO) irc|eed3si9n|LKHは TSP に特化したソルバ |
|
[2014-09-06 18:09:40 JST] (INFO) irc|eed3si9n|まとめ |
|
[2014-09-06 18:09:46 JST] (INFO) irc|eed3si9n|高効率 |
|
[2014-09-06 18:09:58 JST] (INFO) irc|eed3si9n|移植性高い |
|
[2014-09-06 18:09:07 JST] (INFO) irc|eed3si9n|カスタマイズも可能 |
|
[2014-09-06 18:09:23 JST] (INFO) irc|eed3si9n|scarab 全部で800 行 |
|
[2014-09-06 18:09:26 JST] (INFO) irc|eed3si9n|Sat4jの他にもC言語で書かれたソルバを使うことも可能 |
|
[2014-09-06 18:09:34 JST] (INFO) irc|eed3si9n|Q: How can you tell if a particular problem can fit this model? |
|
[2014-09-06 18:09:55 JST] (INFO) irc|eed3si9n|A: We use widely accepted decent encoding called OrderEncoding |
|
[2014-09-06 18:09:03 JST] (INFO) irc|eed3si9n|but it's a difficult problem |
|
[2014-09-06 18:09:11 JST] (INFO) irc|eed3si9n|it's try-and-error to some degree |
|
[2014-09-06 18:09:45 JST] (INFO) irc|eed3si9n|Q: Why was your TSP better? |
|
[2014-09-06 18:09:14 JST] (INFO) irc|eed3si9n|A: It worked out because our model was better |
|
[2014-09-06 18:09:37 JST] (INFO) irc|eed3si9n|using Scarab and Scala, you can try-and-error quicker |
|
[2014-09-06 18:09:48 JST] (INFO) irc|eed3si9n|(comared to C) |
|
[2014-09-06 18:09:51 JST] (INFO) twitter|mazgi|自社ブースで給電を受けている #ScalaMatsuri |
|
[2014-09-06 18:09:51 JST] (INFO) twitter|eiryu|ん?蚊がいるってこと? #ScalaMatsuri |
|
[2014-09-06 18:09:51 JST] (INFO) twitter|mazgi|A会場に戻って来た #ScalaMatsuri |
|
[2014-09-06 18:09:51 JST] (INFO) twitter|ueshin|Silkも面白そうだなー。関わるには勉強不足すぎるけど。 #ScalaMatsuri #rb |
|
[2014-09-06 18:09:51 JST] (INFO) twitter|kimutansk|#ScalaMatsuri #rb Scalaのマクロに実用例から触れてみよう! Silkでマクロについて話されていたので中身が楽しみです。 |
|
[2014-09-06 18:09:51 JST] (INFO) twitter|mechairoi|はてなブログに投稿しました |
|
Scala use cases at Hatena という発表をしました。#ScalaMatsuri - *iroi* |
|
http://t.co/JYfSdVEy35 |
|
[2014-09-06 18:09:51 JST] (INFO) twitter|Elysion_Halcyon|【ニコ生視聴中】 Scala祭 A会場 生中継 http://t.co/TWWGJ2O6kW #ScalaMatsuri |
|
[2014-09-06 18:09:51 JST] (INFO) twitter|jagd5168|what と how を綺麗に分けて書けるフレームワーク/ミドルウェアは綺麗な設計になりますよね。 #ScalaMatsuri #rb |
|
[2014-09-06 18:09:56 JST] (INFO) irc|cb372_|I do a bit of everything, including programming and direction |
|
[2014-09-06 18:09:35 JST] (INFO) irc|cb372_|This is what sumo looks like |
|
[2014-09-06 18:09:45 JST] (INFO) irc|cb372_|there is sumo is Switzerland?! |
|
[2014-09-06 18:09:01 JST] (INFO) irc|taisukeoe|I'm going to talk about Sumo wrestling , Japanese traditional sports, and Scala |
|
[2014-09-06 18:09:17 JST] (INFO) irc|cb372_|Dwango developed the official sumo app |
|
[2014-09-06 18:09:20 JST] (INFO) irc|cb372_|released in Martch |
|
[2014-09-06 18:09:33 JST] (INFO) irc|cb372_|please give it 4 stars |
|
[2014-09-06 18:09:35 JST] (INFO) irc|taisukeoe|Sumo associations's official iOS / Android app is provided by Dwango. |
|
[2014-09-06 18:09:48 JST] (INFO) irc|cb372_|today's talk won't be very technical |
|
[2014-09-06 18:09:01 JST] (INFO) irc|cb372_|what we tried, what we learned |
|
[2014-09-06 18:09:10 JST] (INFO) irc|taisukeoe|I'm not gonna talk about technical topics very much. I just want to share what we focus on designs,etc. |
|
[2014-09-06 18:09:17 JST] (INFO) irc|cb372_|pretty orthodox architecture |
|
[2014-09-06 18:09:21 JST] (INFO) irc|cb372_|2 API servers |
|
[2014-09-06 18:09:31 JST] (INFO) irc|cb372_|assets servers are for video |
|
[2014-09-06 18:09:53 JST] (INFO) irc|taisukeoe|2 Play severs for API and Push |
|
[2014-09-06 18:09:59 JST] (INFO) irc|cb372_|pretty conservative middleware |
|
[2014-09-06 18:09:02 JST] (INFO) irc|cb372_|create an access token at install time |
|
[2014-09-06 18:09:11 JST] (INFO) irc|cb372_|no need for password - low barrier to entru |
|
[2014-09-06 18:09:26 JST] (INFO) irc|taisukeoe|Sumo Wrestling REST API, Video Progressive download, no password authentication, etc. |
|
[2014-09-06 18:09:46 JST] (INFO) irc|cb372_|I had Java experience |
|
[2014-09-06 18:09:54 JST] (INFO) irc|taisukeoe|Why we choose Scala? TypeSafety, LessCode, JavaExperience, SkillImprovement |
|
[2014-09-06 18:09:22 JST] (INFO) irc|cb372_|when I joined Dwango they were using a lot of php |
|
[2014-09-06 18:09:33 JST] (INFO) irc|cb372_|I wrote an app in php and it was terrible |
|
[2014-09-06 18:09:49 JST] (INFO) irc|cb372_|not just development, also ops |
|
[2014-09-06 18:09:55 JST] (INFO) irc|eed3si9n|lots of errors once it went into production during runtime with php |
|
[2014-09-06 18:09:56 JST] (INFO) irc|taisukeoe|Though I used PHP, it's a quite touch to maintain dynamic-type language... |
|
[2014-09-06 18:09:05 JST] (INFO) irc|taisukeoe|s/touch/tough/g |
|
[2014-09-06 18:09:38 JST] (INFO) irc|eed3si9n|through Scala, we leveled ourselves up |
|
[2014-09-06 18:09:59 JST] (INFO) irc|okapies|(little bit unfair example) |
|
[2014-09-06 18:09:05 JST] (INFO) irc|taisukeoe|Scala's concept, multi-paradigm aspects train us a lot |
|
[2014-09-06 18:09:10 JST] (INFO) irc|cb372_|Scala devs learn a lot of concepts that PHP devs don't |
|
[2014-09-06 18:09:47 JST] (INFO) irc|taisukeoe|Scala Programmer skills exceed PHP programmers who use PHP only their own work (in his opinion). |
|
[2014-09-06 18:09:53 JST] (INFO) irc|cb372_|we had about a month of free time, so we spent it messing around with Scala |
|
[2014-09-06 19:09:18 JST] (INFO) irc|eed3si9n|toy project: projects with no requirements on showing results |
|
[2014-09-06 19:09:22 JST] (INFO) irc|eed3si9n|book club |
|
[2014-09-06 19:09:27 JST] (INFO) irc|cb372_|we read Programming Scala every morning before work |
|
[2014-09-06 19:09:24 JST] (INFO) irc|eed3si9n|it was critical to be stable |
|
[2014-09-06 19:09:32 JST] (INFO) irc|eed3si9n|given our relationship with sumo assoc for 10 yrs |
|
[2014-09-06 19:09:37 JST] (INFO) irc|cb372_|we had a duty to maintain the reputation of the Sumo Association |
|
[2014-09-06 19:09:48 JST] (INFO) irc|eed3si9n|we can't have it crash during the tournament |
|
[2014-09-06 19:09:30 JST] (INFO) irc|cb372_|type-safe all the way from the view to the DB |
|
[2014-09-06 19:09:39 JST] (INFO) irc|taisukeoe|We prepared Full type safety environment: Scala + Play & twirl + ScalikeJDBC |
|
[2014-09-06 19:09:49 JST] (INFO) irc|cb372_|Twirl is awesome |
|
[2014-09-06 19:09:57 JST] (INFO) irc|eed3si9n|twirl doesn't have a good rep, but it's actually really good |
|
[2014-09-06 19:09:59 JST] (INFO) irc|cb372_|makes refactoring easy |
|
[2014-09-06 19:09:22 JST] (INFO) irc|eed3si9n|slow compilation |
|
[2014-09-06 19:09:29 JST] (INFO) irc|taisukeoe|EXCEPT compilation time.... |
|
[2014-09-06 19:09:38 JST] (INFO) irc|eed3si9n|still a good tradeoff thus far |
|
[2014-09-06 19:09:47 JST] (INFO) irc|cb372_|Scala doesn't really feel complex to me |
|
[2014-09-06 19:09:02 JST] (INFO) irc|eed3si9n|DDD |
|
[2014-09-06 19:09:06 JST] (INFO) irc|cb372_|sumo has a lot of concepts |
|
[2014-09-06 19:09:18 JST] (INFO) irc|cb372_|and complex rules |
|
[2014-09-06 19:09:31 JST] (INFO) irc|eed3si9n|we wanted to use the sumo terminology throughout |
|
[2014-09-06 19:09:38 JST] (INFO) irc|eed3si9n|instead of SQL |
|
[2014-09-06 19:09:53 JST] (INFO) twitter|gakuzzzz|Twirl 僕は好きです! #ScalaMatsuri #ra |
|
[2014-09-06 19:09:53 JST] (INFO) twitter|garbagetown|「運用に入って完全型安全環境のありがたさを実感しました」「ただしコンパイル時間は除く」 #ScalaMatsuri |
|
[2014-09-06 19:09:53 JST] (INFO) twitter|nojima|生産性が向上します!(※ ただしコンパイル時間は除く) #ScalaMatsuri #ra |
|
[2014-09-06 19:09:53 JST] (INFO) twitter|s_kozake|Macroはみんなの味方です!(なくなるかもしれないけど) #ScalaMatsuri |
|
[2014-09-06 19:09:53 JST] (INFO) twitter|nakanishiyasuo|Twirlは結構きにいってるかなー。 #ScalaMatsuri |
|
[2014-09-06 19:09:53 JST] (INFO) twitter|kazzna|マクロ作りとマクロ使うプロジェクトは別。つまりマクロにバグがあった場合は、、、、(ry 途中でいろんな人が変えるよりマシなのかな? #ScalaMatsuri #rb |
|
[2014-09-06 19:09:53 JST] (INFO) twitter|garbagetown|今日はじめてTwirlがほめられた! #ScalaMatsuri |
|
[2014-09-06 19:09:16 JST] (INFO) irc|eed3si9n|makes the code easier to understand/communicate |
|
[2014-09-06 19:09:24 JST] (INFO) irc|eed3si9n|since the terminology would match up |
|
[2014-09-06 19:09:46 JST] (INFO) irc|eed3si9n|we kept the Japanese terms like banzuke |
|
[2014-09-06 19:09:49 JST] (INFO) irc|okapies|use plain Japanese, instead of English |
|
[2014-09-06 19:09:51 JST] (INFO) irc|taisukeoe|Domain Driven Design for Sumo Wrestling, with Sumo terms in Japanese |
|
[2014-09-06 19:09:53 JST] (INFO) irc|cb372_|we decided not to use English in our code, because it's sumo |
|
[2014-09-06 19:09:54 JST] (INFO) irc|eed3si9n|banzuke (mean ranking) |
|
[2014-09-06 19:09:11 JST] (INFO) irc|cb372_|this is the top page of the app |
|
[2014-09-06 19:09:24 JST] (INFO) irc|cb372_|only the navigation bar is natie |
|
[2014-09-06 19:09:27 JST] (INFO) irc|cb372_|*native |
|
[2014-09-06 19:09:29 JST] (INFO) irc|eed3si9n|hybrid of native and web |
|
[2014-09-06 19:09:55 JST] (INFO) irc|eed3si9n|we kept the nav bar to be native for better usability |
|
[2014-09-06 19:09:16 JST] (INFO) irc|cb372_|web is easy to update quickly |
|
[2014-09-06 19:09:31 JST] (INFO) irc|eed3si9n|the bottom part is web, in part to correct text quickly |
|
[2014-09-06 19:09:44 JST] (INFO) irc|taisukeoe|Maintainability is quite important, since Oyakata (boss of Sumo group) ask to fix something very quickly |
|
[2014-09-06 19:09:33 JST] (INFO) irc|cb372_|we managed to isolate the sumo domain-specific code from reusable components |
|
[2014-09-06 19:09:51 JST] (INFO) irc|taisukeoe|That's why we have to maintain data in Web, not native App. |
|
[2014-09-06 19:09:18 JST] (INFO) irc|eed3si9n|we wanted to keep the data access as simple as possible |
|
[2014-09-06 19:09:28 JST] (INFO) irc|eed3si9n|this lets us write SQL |
|
[2014-09-06 19:09:46 JST] (INFO) irc|eed3si9n|not too many bad points |
|
[2014-09-06 19:09:46 JST] (INFO) irc|okapies|(because we have existing DB) |
|
[2014-09-06 19:09:27 JST] (INFO) irc|eed3si9n|we didn't want to translate existing SQL queries into Scala |
|
[2014-09-06 19:09:47 JST] (INFO) irc|eed3si9n|so no Slick for this proj |
|
[2014-09-06 19:09:00 JST] (INFO) irc|cb372_|Sera-san asked me to tell the world that Dwango is using ScalikeJDBC :) |
|
[2014-09-06 19:09:14 JST] (INFO) irc|eed3si9n|kudos Sera-san on ScalikeJDBC |
|
[2014-09-06 19:09:55 JST] (INFO) irc|cb372_|we made rules about how much Scala is ok to put into templates |
|
[2014-09-06 19:09:56 JST] (INFO) irc|taisukeoe|BTW: Sera-san is the ScalikeJDBC designer, and repo owner. |
|
[2014-09-06 19:09:57 JST] (INFO) irc|eed3si9n|Twirl's typesafety is less stressful |
|
[2014-09-06 19:09:31 JST] (INFO) irc|cb372_|we want to iterate quickly on templates, but compile is too slow |
|
[2014-09-06 19:09:41 JST] (INFO) irc|eed3si9n|as per cons, unfriendliness to designers and slow compilation |
|
[2014-09-06 19:09:05 JST] (INFO) irc|eed3si9n|Scaldi |
|
[2014-09-06 19:09:10 JST] (INFO) irc|cb372_|I think everyone is too harsh on Twirl |
|
[2014-09-06 19:09:14 JST] (INFO) irc|eed3si9n|DI container |
|
[2014-09-06 19:09:36 JST] (INFO) irc|eed3si9n|we didn't want to use cake |
|
[2014-09-06 19:09:47 JST] (INFO) irc|taisukeoe|Scaladi is a DI library which is similar with Java's one. |
|
[2014-09-06 19:09:56 JST] (INFO) irc|eed3si9n|it's a bit boilerplatey |
|
[2014-09-06 19:09:04 JST] (INFO) irc|eed3si9n|we will likely use something else for next proj |
|
[2014-09-06 19:09:14 JST] (INFO) irc|eed3si9n|ScalaTest |
|
[2014-09-06 19:09:54 JST] (INFO) irc|cb372_|Specs2 syntax is pretty perverse in my opinion |
|
[2014-09-06 19:09:55 JST] (INFO) irc|eed3si9n|Specs2's immutable DSL looked a bit odd |
|
[2014-09-06 19:09:34 JST] (INFO) irc|cb372_|with ScalaTest, you only have "describe" and "it". Less rich DSL that RSpec |
|
[2014-09-06 19:09:57 JST] (INFO) irc|eed3si9n|some of the pitfalls/gotchas |
|
[2014-09-06 19:09:05 JST] (INFO) irc|cb372_|maybe some of this stuff is obvious to you guys |
|
[2014-09-06 19:09:21 JST] (INFO) irc|eed3si9n|there are many ways to handle errors |
|
[2014-09-06 19:09:33 JST] (INFO) irc|eed3si9n|we didn't know what's the idiomatic way |
|
[2014-09-06 19:09:42 JST] (INFO) irc|eed3si9n|some of the information is stale |
|
[2014-09-06 19:09:04 JST] (INFO) irc|eed3si9n|we thought Either was the way to go |
|
[2014-09-06 19:09:27 JST] (INFO) irc|eed3si9n|now, we settled on Try |
|
[2014-09-06 19:09:57 JST] (INFO) irc|eed3si9n|when exception is used we use Try |
|
[2014-09-06 19:09:08 JST] (INFO) irc|eed3si9n|if exception is not being used we use Either |
|
[2014-09-06 19:09:14 JST] (INFO) irc|eed3si9n|i don't know much about Scalaz |
|
[2014-09-06 19:09:44 JST] (INFO) irc|cb372_|we wanted to run static analysis on Jenkins |
|
[2014-09-06 19:09:16 JST] (INFO) irc|eed3si9n|Scoverage seems to be the winner, but it's not clear which libraries are being maintained |
|
[2014-09-06 19:09:57 JST] (INFO) twitter|rinfield|2.10のマクロは型チェック後に動くからマクロで戻り型を変えられちゃうってこと? #ScalaMatsuri #rb |
|
[2014-09-06 19:09:57 JST] (INFO) twitter|mumoshu|dwangoさんのOption, try catch, Try, Eitherの使い分け。これScala使いはじめるときに知りたい系な気がする #ScalaMatsuri |
|
[2014-09-06 19:09:57 JST] (INFO) twitter|moc_yuto|マクロも聞きたかったー。 |
|
#scalaMatsuri |
|
[2014-09-06 19:09:57 JST] (INFO) twitter|nojima|「Exception を扱うときは Try を使う。 」 #ScalaMatsuri #ra |
|
[2014-09-06 19:09:57 JST] (INFO) twitter|niw|allCatch は? #ScalaMatsuri #ra |
|
[2014-09-06 19:09:57 JST] (INFO) twitter|taroleo|Type macroはどうなってるんだろう。#ScalaMatsuri |
|
[2014-09-06 19:09:57 JST] (INFO) twitter|okumin|scalaz.\/ #ScalaMatsuri |
|
[2014-09-06 19:09:57 JST] (INFO) twitter|okumin|Tryだとエラーの種類がThrowableになって結構つらい(???) #ScalaMatsuri |
|
[2014-09-06 19:09:57 JST] (INFO) twitter|mechairoi|関数の中身以外でもMacroでも生成できるのかな? #ScalaMatsuri #rb |
|
[2014-09-06 19:09:57 JST] (INFO) twitter|niw|古いけど日本語の Scalding を試すブログ記事 → http://t.co/1Lk8hjUDan #ScalaMatsuri |
|
[2014-09-06 19:09:57 JST] (INFO) twitter|okumin|例外処理 #ScalaMatsuri |
|
[2014-09-06 19:09:04 JST] (INFO) irc|eed3si9n|how to deploy play without downtime |
|
[2014-09-06 19:09:57 JST] (INFO) irc|eed3si9n|we use load balance API |
|
[2014-09-06 19:09:18 JST] (INFO) irc|eed3si9n|we use fabric |
|
[2014-09-06 19:09:51 JST] (INFO) irc|eed3si9n|we'd like to have graceful restart |
|
[2014-09-06 19:09:04 JST] (INFO) irc|cb372_|it looks like Play team isn't very interested in implementing graceful restart |
|
[2014-09-06 19:09:47 JST] (INFO) irc|cb372_|for highly synchronous, simply increase thread count |
|
[2014-09-06 19:09:39 JST] (INFO) irc|eed3si9n|For long-term projects, I can sleep better with typesafety |
|
[2014-09-06 19:09:04 JST] (INFO) irc|taisukeoe|How big is its project? |
|
[2014-09-06 19:09:24 JST] (INFO) irc|eed3si9n|12k sloc |
|
[2014-09-06 19:09:36 JST] (INFO) irc|okapies|(5 members/4 months) |
|
[2014-09-06 19:09:03 JST] (INFO) irc|eed3si9n|Static analysis |
|
[2014-09-06 19:09:23 JST] (INFO) irc|eed3si9n|Q: any problems you ran into |
|
[2014-09-06 19:09:09 JST] (INFO) irc|eed3si9n|A: Slick had connection pool issues, timing out |
|
[2014-09-06 19:09:11 JST] (INFO) irc|eed3si9n|on MySQL |
|
[2014-09-06 19:09:19 JST] (INFO) irc|eed3si9n|likely fixed in the latest Play |
|
[2014-09-06 19:09:59 JST] (INFO) irc|eed3si9n|Q: you mentioned that you've coded Scala for 1yr |
|
[2014-09-06 19:09:32 JST] (INFO) irc|eed3si9n|was there effort internally to share know-hows? |
|
[2014-09-06 19:09:51 JST] (INFO) irc|eed3si9n|many Scala experienced devs around me |
|
[2014-09-06 19:09:03 JST] (INFO) irc|eed3si9n|how did you get permission to use Scala? |
|
[2014-09-06 19:09:08 JST] (INFO) irc|taisukeoe|We have Scala supervisors in our company e.g. Yoshida-san(Scalaz comitter), Mizushima-san(ScalaMatsuri boss) |
|
[2014-09-06 19:09:17 JST] (INFO) irc|eed3si9n|I didn't need to ask for permission |
|
[2014-09-06 19:09:03 JST] (INFO) twitter|pouhiroshi|略すとSM #ScalaMatsuri |
|
[2014-09-06 19:09:03 JST] (INFO) twitter|ueshin|Spark SQLのコード生成はかなり積極的に準クォートを使ってます。 #ScalaMatsuri #rb > https://t.co/ZsnJw9xhbM |
|
[2014-09-06 19:09:03 JST] (INFO) twitter|niw|次が最後のセッション。マルチトラックをこれ以上にするのは大変だし、1.5日位に分けたほうが良かったのでは? という気もするけど。さすがに長い... #ScalaMatsuri |
|
[2014-09-06 19:09:03 JST] (INFO) twitter|shigemk2|はてなブログに投稿しました |
|
What's a macro? #ScalaMatsuri - by shigemk2 |
|
http://t.co/2TQzpghZ7n |
|
[2014-09-06 19:09:03 JST] (INFO) twitter|jagd5168|まぁマクロ書くのは API サプライヤーなのでフレームワークや共通ライブラリ実装者ですよね。Web 処理書いてるだけならマクロと言うものがあると知ってるだけで十分かな。 #ScalaMatsuri |
|
[2014-09-06 19:09:03 JST] (INFO) twitter|eiryu|ウラヤマシイハナシダナ? #ScalaMatsuri |
|
[2014-09-06 19:09:03 JST] (INFO) twitter|Kuchitama|相撲と乙女ゲーの意外な関係。その3。BoneCPのバグでハマる。 #scalamatsuri |
|
[2014-09-06 19:09:03 JST] (INFO) twitter|mumoshu|dwangoさん:「技術の選択権はリーダーにあるので、「許可を求める」みたいな機会はそんなにない」 健全!! #ScalaMatsuri |
|
[2014-09-06 19:09:25 JST] (INFO) irc|taisukeoe|こんちには! |
|
[2014-09-06 19:09:48 JST] (INFO) irc|eed3si9n|show your hand if you're a Rubyist |
|
[2014-09-06 19:09:51 JST] (INFO) irc|illabout|I have come to talk about Ruby today. |
|
[2014-09-06 19:09:18 JST] (INFO) irc|eed3si9n|this is mostly about my own personal experience coming from Ruby |
|
[2014-09-06 19:09:19 JST] (INFO) irc|illabout|I want to talk about my experiences moving from Ruby to Scala. |
|
[2014-09-06 19:09:44 JST] (INFO) irc|illabout|At maverick we are creating an advertising system. |
|
[2014-09-06 19:09:17 JST] (INFO) irc|illabout|DSP: advertising system |
|
[2014-09-06 19:09:27 JST] (INFO) irc|illabout|advertising auction |
|
[2014-09-06 19:09:28 JST] (INFO) irc|eed3si9n|on twitter and github, i am known as @todesking |
|
[2014-09-06 19:09:05 JST] (INFO) irc|eed3si9n|here's what i'm not going to talk about |
|
[2014-09-06 19:09:52 JST] (INFO) irc|cb372_|how to speed up compilation time: fix the compiler and send a pull request! |
|
[2014-09-06 19:09:56 JST] (INFO) irc|eed3si9n|each lang has pro/con |
|
[2014-09-06 19:09:40 JST] (INFO) irc|illabout|Created similar classes in each language. |
|
[2014-09-06 19:09:56 JST] (INFO) irc|illabout|easy to create anonymous functions |
|
[2014-09-06 19:09:28 JST] (INFO) irc|cb372_|Ruby and Scala are both fun to write |
|
[2014-09-06 19:09:38 JST] (INFO) irc|cb372_|I wish I could write < instead of "extends" in Scala |
|
[2014-09-06 19:09:43 JST] (INFO) irc|eed3si9n|attribute accessor can be generated by attr_reader reserved word |
|
[2014-09-06 19:09:53 JST] (INFO) irc|eed3si9n|strictly speaking it's actually not a reversed word |
|
[2014-09-06 19:09:37 JST] (INFO) irc|eed3si9n|in Scala, we actually need reserved word to define accessors |
|
[2014-09-06 19:09:18 JST] (INFO) irc|eed3si9n|with Ruby, we can generate class too |
|
[2014-09-06 19:09:34 JST] (INFO) irc|eed3si9n|Ruby can dynamically manipulate classes |
|
[2014-09-06 19:09:04 JST] (INFO) twitter|jagd5168|会場はさながら放送大学の様相 #ScalaMatsuri |
|
[2014-09-06 19:09:04 JST] (INFO) twitter|zonoise|【ニコ生視聴中(593分経過)】 Scala祭 A会場 生中継 http://t.co/rTLG9vLCjQ #ScalaMatsuri |
|
[2014-09-06 19:09:04 JST] (INFO) twitter|cactaceae|Scalaの事は知ってる前提だからRubyの話してるのか! #ScalaMatsuri |
|
[2014-09-06 19:09:04 JST] (INFO) twitter|garbagetown|淡々とルビーの説明が続いてる #ScalaMatsuri |
|
[2014-09-06 19:09:04 JST] (INFO) twitter|jagd5168|Scala も filter - map - fold のこんびねーがバシッとキマると超気持ち良いよ。 #ScalaMatsuri |
|
[2014-09-06 19:09:04 JST] (INFO) twitter|eiryu|確かに書いていて楽しいとか、宗教じゃないんだから感はある。もっとアピールするとこあるだろ的な #ScalaMatsuri |
|
[2014-09-06 19:09:04 JST] (INFO) twitter|hiroyukim|普通にRubyの話しが続いているw #ScalaMatsuri |
|
[2014-09-06 19:09:04 JST] (INFO) twitter|nakanishiyasuo|オチはあるのか? #ScalaMatsuri |
|
[2014-09-06 19:09:04 JST] (INFO) twitter|qtamaki|ここまでRubyMatsuri #ScalaMatsuri |
|
[2014-09-06 19:09:04 JST] (INFO) twitter|saka1_p|Rubyの解説になっているw #ScalaMatsuri |
|
[2014-09-06 19:09:04 JST] (INFO) twitter|moc_yuto|ほんとにRubyの話メインな感じだw |
|
#scalaMatsuri |
|
[2014-09-06 19:09:16 JST] (INFO) irc|eed3si9n|in Ruby, there's a distinction between values and functions |
|
[2014-09-06 19:09:09 JST] (INFO) irc|eed3si9n|in Scheme invoking function doesn't require special treatment |
|
[2014-09-06 19:09:23 JST] (INFO) irc|eed3si9n|Common Lisp has different namespace for func and values |
|
[2014-09-06 19:09:41 JST] (INFO) irc|eed3si9n|with Scala, just calling f is not going to return function value |
|
[2014-09-06 19:09:52 JST] (INFO) irc|eed3si9n|it requires "_" after f |
|
[2014-09-06 19:09:59 JST] (INFO) irc|eed3si9n|(c.f. Martin's talk from this morning) |
|
[2014-09-06 19:09:27 JST] (INFO) irc|eed3si9n|Scala accepts parens and curly braces |
|
[2014-09-06 19:09:49 JST] (INFO) irc|eed3si9n|placeholder syntax is pretty cool (_.toString) |
|
[2014-09-06 19:09:03 JST] (INFO) irc|illabout|In ruby you can get a method object by using method() |
|
[2014-09-06 19:09:08 JST] (INFO) irc|eed3si9n|here are how those are done in Ruby |
|
[2014-09-06 19:09:42 JST] (INFO) irc|eed3si9n|to pass a function as a block, it requires "&" prefix |
|
[2014-09-06 19:09:13 JST] (INFO) irc|eed3si9n|"&:" is equiv of "_" in Scala |
|
[2014-09-06 19:09:11 JST] (INFO) irc|eed3si9n|Ruby has array and assoc array |
|
[2014-09-06 19:09:52 JST] (INFO) irc|illabout|Scala's collections vs Ruby's |
|
[2014-09-06 19:09:17 JST] (INFO) irc|eed3si9n|Scala has specialized collction for different use case |
|
[2014-09-06 19:09:02 JST] (INFO) irc|eed3si9n|Array is a kitchen sink class in Ruby |
|
[2014-09-06 19:09:23 JST] (INFO) irc|eed3si9n|CanBuildFrom magic returns appropriate static type on transformation of collections |
|
[2014-09-06 19:09:38 JST] (INFO) irc|eed3si9n|in Ruby, one can overwrite method per object |
|
[2014-09-06 20:09:09 JST] (INFO) irc|eed3si9n|these techniques are called monkey patching |
|
[2014-09-06 20:09:41 JST] (INFO) irc|eed3si9n|rewriting existing class affects globally, so ruby added the concept of refinement to scope the change |
|
[2014-09-06 20:09:55 JST] (INFO) irc|eed3si9n|Ruby uses nil |
|
[2014-09-06 20:09:40 JST] (INFO) irc|eed3si9n|try checks if something is nil |
|
[2014-09-06 20:09:53 JST] (INFO) irc|eed3si9n|and then calls the passed in func if it's not nil |
|
[2014-09-06 20:09:44 JST] (INFO) irc|cb372_|Q: do you think there are people/teams who are well-suited to Ruby/Scala? |
|
[2014-09-06 20:09:47 JST] (INFO) irc|illabout|A: Compiled languages are safe. Ruby is more suited for environments that are very dynamic. |
|
[2014-09-06 20:09:02 JST] (INFO) irc|illabout|Scala's compilation time is also very slow. |
|
[2014-09-06 20:09:10 JST] (INFO) twitter|stormcat24|好きな言語使えばいいと思うよ #ScalaMatsuri |
|
[2014-09-06 20:09:10 JST] (INFO) twitter|wolf20xx|nodejsコードをはくscala.JSって話みたいに、rubyコードをはくscalaコードを誰か作ってたりして。 #ScalaMatsuri |
|
[2014-09-06 20:09:10 JST] (INFO) twitter|toby_net|つかTシャツ #ScalaMatsuri |
|
[2014-09-06 20:09:10 JST] (INFO) twitter|mumoshu|?RubyもScalaも好きなのでおもしろかった? #ScalaMatsuri |
|
[2014-09-06 20:09:10 JST] (INFO) twitter|white_azalea|Ruby は半分プロトタイプベースなオブジェクト指向感あるから、その差がでたなーという印象 #ScalaMatsuri |
|
[2014-09-06 20:09:10 JST] (INFO) twitter|yotchang4s|Ruby祭だ! #ScalaMatsuri |
|
[2014-09-06 20:09:10 JST] (INFO) twitter|jagd5168|100msec の話はないのかw #ScalaMatsuri |
|
[2014-09-06 20:09:10 JST] (INFO) twitter|xuwei_k|#ScalaMatsuri 弁当まだ40個くらいあまってるので、持ち帰る or 懇親会中に食べてください! |
|
[2014-09-06 20:09:10 JST] (INFO) twitter|toby_net|サンキューベリーマッチ、トデスキングサン #ScalaMatsuri |
|
[2014-09-06 20:09:35 JST] (INFO) irc|illabout|Scala's is jvm-based so the performance is very good. |
|
[2014-09-06 20:09:04 JST] (INFO) irc|illabout|Scala is better when you must use older code. |
|
[2014-09-06 20:09:10 JST] (INFO) irc|cb372_|Q: what about the differences in ecosystem between the langs? |
|
[2014-09-06 20:09:21 JST] (INFO) irc|illabout|A: The community is very important. |
|
[2014-09-06 20:09:40 JST] (INFO) irc|illabout|Ruby code doesn't have to be compiled to be distributed. |
|
[2014-09-06 20:09:54 JST] (INFO) irc|illabout|It's easier to publish ruby libraries. |
|
[2014-09-06 20:09:06 JST] (INFO) irc|eed3si9n|Ruby has less barrier to entry as OSS community |
|
[2014-09-06 20:09:32 JST] (INFO) irc|cb372_|every time you go to a Scala conference you will hear the word Monad |
|
[2014-09-06 20:09:38 JST] (INFO) irc|eed3si9n|Ruby tends to be emo, and I always hear about "monad" in Scala events |
|
[2014-09-06 20:09:48 JST] (INFO) irc|eed3si9n|not sure which is better |
|
[2014-09-06 20:09:52 JST] (INFO) irc|cb372_|Please answer the questionnaire! It really helps us to make the conference better every year. |
|
[2014-09-06 20:09:12 JST] (INFO) twitter|Kuchitama|.@tototoshi さん専用はっぴは出口付近アンケート回収場所に展示中です。(見世物じゃねーw #ScalaMatsuri http://t.co/m7Myj3A2RB |
|
[2014-09-06 20:09:12 JST] (INFO) twitter|jagd5168|ここ一年くらい勉強会や Twitter TL 上でモナドって言葉ほとんど見なくなった。 #ScalaMatsuri |
|
[2014-09-06 20:09:12 JST] (INFO) twitter|hrk0619|とりあえずお疲れ様でした! #ScalaMatsuri |
|
[2014-09-06 20:09:12 JST] (INFO) twitter|cohalz|弁当まだ残ってるw #ScalaMatsuri |
|
[2014-09-06 20:09:12 JST] (INFO) twitter|stormcat24|糖質を欲してる人は弁当持ち帰るべき #ScalaMatsuri |
|
[2014-09-06 20:09:12 JST] (INFO) twitter|yuroyoro|( ???) Scalaの人がRuby書くときにはぼくが作ったこのgemを使うといいですよ? yuroyoro/lambda_driver https://t.co/g3kX63YWcT #ScalaMatsuri |
|
[2014-09-06 20:09:19 JST] (INFO) twitter|propensive|In some part of the world it is still @odersky's birthday, so he gets a cake! #ScalaMatsuri http://t.co/cLal8xODiG |
|
[2014-09-06 20:09:19 JST] (INFO) twitter|honyacho|これが本当のCakePattern #ScalaMatsuri |
|
[2014-09-06 20:09:19 JST] (INFO) twitter|satoshihirose|Scala use cases at Hatena という発表をしました。#ScalaMatsuri - *iroi* http://t.co/Qtp61DxNBW |
|
[2014-09-06 20:09:19 JST] (INFO) twitter|jagd5168|安定のぼっち力 #ScalaMatsuri |
|
[2014-09-06 20:09:19 JST] (INFO) twitter|m_dobashi|今日モナドの話聞かなかった #ScalaMatsuri |
|
[2014-09-06 20:09:19 JST] (INFO) twitter|kijuky|首から下げてる名札にtwitter id つけて欲しい #ScalaMatsuri |
|
[2014-09-06 20:09:19 JST] (INFO) twitter|cointoss1973|いきなり放送終わった(笑) #ScalaMatsuri |
|
[2014-09-06 20:09:20 JST] (INFO) twitter|tlync|ライブオープンソースパフォーマンス新し過ぎる #ScalaMatsuri http://t.co/eZQtwni06E |
|
[2014-09-06 20:09:20 JST] (INFO) twitter|hayasshi_|#ScalaMatsuri リアルタイムOSS化!w |
|
[2014-09-06 20:09:20 JST] (INFO) twitter|toru_inoue|Octoparts、クエリどうなってるんやろ。 |
|
#ScalaMatsuri |
|
[2014-09-06 20:09:20 JST] (INFO) twitter|cohalz|リアルタイムオープンソース化w #ScalaMatsuri |
|
[2014-09-06 20:09:20 JST] (INFO) twitter|primenetwork_it|Node.js vs Play #ScalaMatsuri - by shigemk2 http://t.co/9HVnDrU1G6 |
|
[2014-09-06 20:09:20 JST] (INFO) twitter|7to3|きゃー、クリスさーん! #ScalaMatsuri #m3dev http://t.co/IAfXCYoDyL |
|
[2014-09-06 21:09:21 JST] (INFO) twitter|ryotaero3ey|LT見たかったけど、お土産とかも買って帰らないといけないので懇親会出ずに帰宅中… #ScalaMatsuri |
|
[2014-09-06 21:09:21 JST] (INFO) twitter|tototoshi|来年はPHPでトリ狙ってくんで #ScalaMatsuri |
|
[2014-09-06 21:09:21 JST] (INFO) twitter|osunu|フリューはScalaエンジニアを募集してます!! #ScalaMatsuri |
|
[2014-09-06 21:09:21 JST] (INFO) twitter|oldwave|“@meso: 今日のScala導入事例きいてると、結局JavaからScalaに移行したサービスってほとんどなくて、PHP/Ruby/PerlからScalaに移行する例がほとんどな気がするなー。 #ScalaMatsuri” そりゃそうだろうな。 |
|
[2014-09-06 21:09:23 JST] (INFO) twitter|seraphr|しかし、今年の懇親会は人多いなー… #scalamatsuri |
|
[2014-09-06 21:09:23 JST] (INFO) twitter|seraphr|立ってると足痛いわ… 足痛めて以降弱すぎる #scalamatsuri |
|
[2014-09-06 21:09:23 JST] (INFO) twitter|stormcat24|スライドまとめ神の降臨待ち #ScalaMatsuri |
|
[2014-09-06 21:09:23 JST] (INFO) twitter|toru_inoue|痛くない、怖くない、Play翻訳 |
|
|
|
#ScalaMatsuri |
|
[2014-09-06 21:09:25 JST] (INFO) twitter|to4iki|3件のコメント http://t.co/qqQpOWiDSq “Scala use cases at Hatena という発表をしました。#ScalaMatsuri - *iroi*” http://t.co/woyGT35YwJ |
|
[2014-09-06 21:09:25 JST] (INFO) twitter|ryoxydol|キャーーー!!きのこさーん!!バター焼きでいただかせてーーーッ!!! #ScalaMatsuri |
|
[2014-09-06 21:09:25 JST] (INFO) twitter|katzchang|http://t.co/eel72IoEur の話を聴いている #ScalaMatsuri |
|
[2014-09-06 21:09:25 JST] (INFO) twitter|hayasshi_|#ScalaMatsuri .@daiksy さんのLTをうけて、FPinScala購入します! |
|
[2014-09-06 21:09:25 JST] (INFO) twitter|osunu|きゃー!きのこさーーーん! #ScalaMatsuri |
|
[2014-09-06 21:09:25 JST] (INFO) twitter|osunu|ツイートできてなくて送れた #ScalaMatsuri |
|
[2014-09-06 21:09:25 JST] (INFO) twitter|mumoshu|キャー きのこサーン!!!! #ScalaMatsuri |
|
[2014-09-06 21:09:25 JST] (INFO) twitter|yashigani|いいスライド / “Scala use cases at Hatena という発表をしました。#ScalaMatsuri - *iroi*” http://t.co/CIlwfZSot4 |
|
[2014-09-06 21:09:25 JST] (INFO) twitter|numa08|#scalamatsuri 一日目おわった |
|
[2014-09-06 21:09:25 JST] (INFO) twitter|kazzna|最近中古のラップトップを買うまで家にパソコンがなかったアカウントがこちらになります。 #ScalaMatsuri |
|
[2014-09-06 21:09:25 JST] (INFO) twitter|kazzna|みんなラップトップ持ってて普通なものなのか??? #ScalaMatsuri |
|
[2014-09-06 21:09:25 JST] (INFO) twitter|teppei_tosa|#ScalaMatsuri で Spark GraphX について LT してきました |
|
Scalaエンジニアの皆さん、 GraphX で美味しい思いをしましょう?! |
|
[日本語] |
|
http://t.co/2Qxc0wGtXR |
|
[英語] |
|
http://t.co/Ws8IqWGmQJ |
|
[2014-09-06 21:09:25 JST] (INFO) twitter|erukiti_|d社民には朝九時は厳しい #ScalaMatsuri |
|
[2014-09-06 21:09:25 JST] (INFO) twitter|toru_inoue|怖くない |
|
#ScalaMatsuri |
|
[2014-09-06 22:09:26 JST] (INFO) twitter|garbagetown|本望 #ScalaMatsuri http://t.co/WK4Ukwfzh5 |
|
[2014-09-06 22:09:26 JST] (INFO) twitter|erukiti_|明日のアンカンファレンスどんな感じになるんだろ。楽しみだけどちょっと怖い |
|
#ScalaMatsuri #ScalaMatsuri2 |
|
[2014-09-06 22:09:26 JST] (INFO) twitter|hakobe|いろいろ知見載ってる / “Scala use cases at Hatena という発表をしました。#ScalaMatsuri - *iroi*” http://t.co/FZQiNnYndv |
|
[2014-09-06 22:09:26 JST] (INFO) twitter|hihihiroro|雷とな #ScalaMatsuri |
|
[2014-09-06 22:09:26 JST] (INFO) twitter|cactaceae|今日のSkaraMatsuriで機械学習を勉強したい気持ちが強くなった。数学どうやって勉強するか。。。 #ScalaMatsuri |
|
[2014-09-06 22:09:26 JST] (INFO) twitter|daiksy|小田好先生とのツーショットをゲットしたぞ!!! #ScalaMatsuri http://t.co/cuJVtb5EsH |
|
[2014-09-06 22:09:27 JST] (INFO) twitter|taroleo|Scalaを使ってみました、という発表が多かったように思う #ScalaMatsuri |
|
[2014-09-06 22:09:29 JST] (INFO) twitter|wildjcrt|From Ruby to Scala from todesking |
|
RT @todesking: Rubyの発表のスライド上げました #ScalaMatsuri http://t.co/4fjpntvX6o |
|
[2014-09-06 22:09:29 JST] (INFO) twitter|j5ik2o|#ScalaMatsuri の盛り上がり異常…。明日9時着ます。CAさんありがとうございます! |
|
[2014-09-06 22:09:29 JST] (INFO) twitter|osunu|明日も参加します。よろしくお願いします。ぜひ名刺もらってください。 #ScalaMatsuri |
|
[2014-09-06 22:09:30 JST] (INFO) twitter|osunu|私も「すからしよ??」って言えばよかった? #ScalaMatsuri |
|
[2014-09-06 22:09:30 JST] (INFO) twitter|jagd5168|明日 9:00 に行くと女子マネからお弁当がもらえるんでしょうか? #ScalaMatsuri |
|
[2014-09-06 22:09:30 JST] (INFO) twitter|niw|土砂降りなんだけど。 #ScalaMatsuri |
|
[2014-09-06 22:09:30 JST] (INFO) twitter|grimrose|お疲れ様でした。また明日 #ScalaMatsuri |
|
[2014-09-06 22:09:30 JST] (INFO) twitter|yuroyoro|#ScalaMatsuri は、todeskingの発音がトゥデェスキンだと判明したことが一番の収穫だった |
|
[2014-09-06 22:09:30 JST] (INFO) twitter|chipstar_light|#xpjug は楽しかったし、 #ScalaMatsuri も楽しそだったけど、関西は関西で、 #kansaifp みたいな楽しそうなことやってたのかー。昨日は #kansumi やし。 |
|
[2014-09-06 23:09:31 JST] (INFO) twitter|haya14busa|todeskingさんのトリの発表により、#ScalaMatsuri が RubyMatsuri になってた |
|
[2014-09-06 23:09:31 JST] (INFO) twitter|JapanTechFeeds|#ScalaMatsuri #tech #テクノロジー |
|
Node.js vs Play - by shigemk2: |
|
2014-09-06 Node.js vs Play #ScalaMatsuri LinkedIn Yev.. http://t.co/K5bAEJeBgj |
|
[2014-09-07 10:09:39 JST] (INFO) start |
|
[2014-09-07 10:09:49 JST] (INFO) irc|taisukeoe|Good Morning! |
|
[2014-09-07 10:09:04 JST] (INFO) irc|taisukeoe|You can do Hands on, Work shop, Hack-a-thons |
|
[2014-09-07 10:09:31 JST] (INFO) irc|taisukeoe|Quiz, Game and other casual events are also welcome |
|
[2014-09-07 10:09:54 JST] (INFO) irc|eed3si9n_|On post-it, we've collected a bunch of ideas |
|
[2014-09-07 10:09:10 JST] (INFO) irc|eed3si9n_|here's the Google docs timetable |
|
[2014-09-07 10:09:12 JST] (INFO) irc|taisukeoe|We're gathering ideas from you (thank you very much for tons of ideas!) |
|
[2014-09-07 10:09:28 JST] (INFO) irc|eed3si9n_|each session is 50 min long |
|
[2014-09-07 10:09:33 JST] (INFO) irc|eed3si9n_|10min for the break |
|
[2014-09-07 10:09:37 JST] (INFO) irc|taisukeoe|Now I show timetable : 50 mins + 10min break |
|
[2014-09-07 10:09:50 JST] (INFO) irc|taisukeoe|Here is draft layout |
|
[2014-09-07 10:09:20 JST] (INFO) irc|taisukeoe|We can change layouts based on your sessions |
|
[2014-09-07 10:09:24 JST] (INFO) irc|eed3si9n_|we have venue A (lecture style), B (working), C (discussion), D, E (closed type) |
|
[2014-09-07 10:09:45 JST] (INFO) irc|eed3si9n_|these are just guideline, you can use whichever venue for whatever session |
|
[2014-09-07 10:09:16 JST] (INFO) irc|taisukeoe|Venue D,E needs authentication with CyberAgent Inc. ID card. |
|
[2014-09-07 10:09:19 JST] (INFO) irc|eed3si9n_|for venue D/E would fit in 10~15ppl |
|
[2014-09-07 10:09:54 JST] (INFO) irc|taisukeoe|Let me introduce some of ideas |
|
[2014-09-07 10:09:24 JST] (INFO) irc|taisukeoe|For example: |
|
[2014-09-07 10:09:26 JST] (INFO) irc|eed3si9n_|these are not "tickets" lol |
|
[2014-09-07 10:09:58 JST] (INFO) irc|taisukeoe|DDD means: Diet Driven Development! lol |
|
[2014-09-07 10:09:20 JST] (INFO) irc|eed3si9n_|(kato san lost a lot of weight this year) |
|
[2014-09-07 10:09:28 JST] (INFO) irc|taisukeoe|(Domain is implicitly converted to Diet ... ? :p ) |
|
[2014-09-07 10:09:11 JST] (INFO) irc|taisukeoe|Play Frameworks: Iteratee, auth, CI, Something for beginners |
|
[2014-09-07 10:09:47 JST] (INFO) irc|taisukeoe|There is a request to Sera-san! |
|
[2014-09-07 10:09:59 JST] (INFO) irc|taisukeoe|SkinnyFramework, ScalikeJDBC, etc |
|
[2014-09-07 10:09:33 JST] (INFO) irc|taisukeoe|Since each session needs facilitators, we wanna assign one in this session as well |
|
[2014-09-07 10:09:12 JST] (INFO) irc|taisukeoe|Why not choose your favorite slot, Kato-san? |
|
[2014-09-07 10:09:36 JST] (INFO) irc|taisukeoe|Kato-san is DDD evangelist in Japanese Scala Community, BTW |
|
[2014-09-07 10:09:04 JST] (INFO) irc|taisukeoe|Akka Best Practice |
|
[2014-09-07 10:09:28 JST] (INFO) irc|taisukeoe|Do you want to hear Yoshida-san's talk? |
|
[2014-09-07 10:09:44 JST] (INFO) irc|taisukeoe|Yoshida-san is Scalaz,sbt committer, BTW |
|
[2014-09-07 10:09:51 JST] (INFO) irc|taisukeoe|But he will give a talk about Akka |
|
[2014-09-07 10:09:00 JST] (INFO) irc|eed3si9n_|Google doc time table: http://is.gd/3PNHIx |
|
[2014-09-07 10:09:18 JST] (INFO) irc|taisukeoe|Yoshida-san says: Oh, shall I discuss with Mizushima-san? |
|
[2014-09-07 10:09:29 JST] (INFO) irc|taisukeoe|Scala Beginners sesison: |
|
[2014-09-07 10:09:31 JST] (INFO) irc|taisukeoe|session: |
|
[2014-09-07 10:09:48 JST] (INFO) twitter|eed3si9n|#ScalaMatsuri day 2 timetable - http://t.co/jFYNfroAa3 |
|
[2014-09-07 10:09:48 JST] (INFO) twitter|makoto78sasaki|ようやくマイクが2本になった #ScalaMatsuri |
|
[2014-09-07 10:09:48 JST] (INFO) twitter|niw|? #ScalaMatsuri |
|
[2014-09-07 10:09:48 JST] (INFO) twitter|kyo_ago|現在、昨日までに出たアンカンファレンス案をまとめ中。実際のアンカンファレンスは11時開始予定。例によってお弁当はまだまだあるので朝食間に合います #ScalaMatsuri |
|
[2014-09-07 10:09:48 JST] (INFO) twitter|oretand|アンカンファレンス前に朝からビールw #ScalaMatsuri |
|
[2014-09-07 10:09:48 JST] (INFO) twitter|propensive|At the #ScalaMatsuri unconference. Lots of Japanese being spoken. Not a clue what's going on, except I just heard the words "cake pattern". |
|
[2014-09-07 10:09:48 JST] (INFO) twitter|wolf20xx|Diet-Driven-Developmentって、コードをダイエット。。。リファクタリングだったりして。。 #ScalaMatsuri |
|
[2014-09-07 10:09:48 JST] (INFO) twitter|Kuchitama|DDDはダイエット駆動開発 #ScalaMatsuri |
|
[2014-09-07 10:09:48 JST] (INFO) twitter|aa7th|タグどっちだろ? #ScalaMatsuri #ScalaMatsuri2 |
|
[2014-09-07 10:09:52 JST] (INFO) irc|eed3si9n_|we are now marking sessions with translations team |
|
[2014-09-07 10:09:25 JST] (INFO) irc|taisukeoe|Prof. Odersky may be going to come to here afternoon |
|
[2014-09-07 10:09:07 JST] (INFO) irc|taisukeoe|What topics do you want to hear?: DOT calculation or FP for beginners |
|
[2014-09-07 10:09:13 JST] (INFO) irc|taisukeoe|DOT! |
|
[2014-09-07 10:09:47 JST] (INFO) irc|eed3si9n_|we will do another round of meeting during lunch for the afternoon session |
|
[2014-09-07 10:09:00 JST] (INFO) irc|taisukeoe|from 13:00 |
|
[2014-09-07 10:09:12 JST] (INFO) irc|taisukeoe|This spreadsheet can be editted |
|
[2014-09-07 10:09:20 JST] (INFO) irc|eed3si9n_|the timetable is writable |
|
[2014-09-07 10:09:22 JST] (INFO) irc|taisukeoe|Getting Started with Spark by Mr. Aaron Davidson |
|
[2014-09-07 10:09:32 JST] (INFO) irc|taisukeoe|Discussion Topic: How can I increase number of Scala Programmers within a company? |
|
[2014-09-07 10:09:23 JST] (INFO) irc|taisukeoe|This kind of discussion is the UNCONFERENCE (OH YEAH!)! |
|
[2014-09-07 10:09:34 JST] (INFO) irc|taisukeoe|I'm sorry for not very smooth conduction. |
|
[2014-09-07 10:09:48 JST] (INFO) irc|taisukeoe|How about questionnaire session? |
|
[2014-09-07 10:09:33 JST] (INFO) irc|taisukeoe|how about panel discussion? |
|
[2014-09-07 10:09:54 JST] (INFO) irc|eed3si9n_|back stories from productino users |
|
[2014-09-07 10:09:17 JST] (INFO) irc|taisukeoe|anti-patterns of Scala |
|
[2014-09-07 10:09:49 JST] (INFO) twitter|qtamaki|アンカンファレンスのgdgd感が病みつきになった人は #rpscala にも来てね。毎回こんな感じが味わえるぞ!? #ScalaMatsuri |
|
[2014-09-07 10:09:49 JST] (INFO) twitter|cbirchall|Today's #ScalaMatsuri program spreadsheet is here https://t.co/yh4ZAc9Bs5 |
|
[2014-09-07 10:09:49 JST] (INFO) twitter|Chikuwa_black|Actor も Play Deploy もどっちも聞きたい。どうしよう #ScalaMatsuri |
|
[2014-09-07 10:09:49 JST] (INFO) twitter|m_dobashi|小田好先生のセッション参加したいけど予定があるのでそんなにいられない 残念 #ScalaMatsuri |
|
[2014-09-07 10:09:49 JST] (INFO) twitter|kawachi|Scala プログラマ向け Haskell 入門が聞きたい #ScalaMatsuri #ScalaMatsuri2 |
|
[2014-09-07 10:09:51 JST] (INFO) irc|taisukeoe|How about stupid experience sharing in Scala ( in Closed type rooms) |
|
[2014-09-07 10:09:25 JST] (INFO) irc|eed3si9n_|Google doc time table: http://is.gd/3PNHIx |
|
[2014-09-07 10:09:01 JST] (INFO) irc|taisukeoe|Something about Scala.js |
|
[2014-09-07 10:09:23 JST] (INFO) irc|taisukeoe|We may want to keep some buffer |
|
[2014-09-07 10:09:35 JST] (INFO) irc|taisukeoe|for extention |
|
[2014-09-07 10:09:34 JST] (INFO) irc|taisukeoe|We're going to make IRC channel for translation public |
|
[2014-09-07 10:09:56 JST] (INFO) irc|taisukeoe|I'm counting you to behave in IRC :-) |
|
[2014-09-07 10:09:17 JST] (INFO) irc|niw_|hi |
|
[2014-09-07 10:09:20 JST] (INFO) irc|taisukeoe|#scalamatsuri-room1 #scalamatsuri-room2 |
|
[2014-09-07 10:09:43 JST] (INFO) irc|taisukeoe|thank you very much for niwa-san! |
|
[2014-09-07 10:09:31 JST] (INFO) irc|taisukeoe|how about Twitter libraries introduction,niwa-san? |
|
[2014-09-07 10:09:39 JST] (INFO) irc|taisukeoe|Haskell for Scala programmers |
|
[2014-09-07 10:09:56 JST] (INFO) irc|taisukeoe|Alcohol coding by Top coders |
|
[2014-09-07 10:09:07 JST] (INFO) irc|niw|challenge top corders |
|
[2014-09-07 10:09:28 JST] (INFO) irc|eed3si9n_|using Top coders, the sport coding website |
|
[2014-09-07 10:09:44 JST] (INFO) irc|niw|and... if you fail, you have to take a tequila shot |
|
[2014-09-07 10:09:58 JST] (INFO) irc|eed3si9n_|or take a shot per 10 lines |
|
[2014-09-07 10:09:14 JST] (INFO) irc|taisukeoe|a compilation error takes a tequila shot |
|
[2014-09-07 10:09:50 JST] (INFO) twitter|Kuchitama|しかし、酒飲みながら協議プログラミングやるってセッションもあるな #ScalaMatsuri |
|
[2014-09-07 10:09:50 JST] (INFO) twitter|Kuchitama|15:00から「社内にScalaエンジニアを増やす方法」のファシリテーターやります。二日酔い気味なので、それまでに、残ってる昨日のお酒を抜かなければ #ScalaMatsuri |
|
[2014-09-07 10:09:50 JST] (INFO) twitter|kaorunix|#ScalaMatsuri2 RT @okapies 本日のアンカンファレンスの時間割です。 https://t.co/mYGgktwQAa #ScalaMatsuri |
|
[2014-09-07 10:09:50 JST] (INFO) twitter|okapies|freenode の #scalamatsuri-room1 が IRC の翻訳部屋です。ご自由に join してください! #scalamatsuri |
|
[2014-09-07 10:09:50 JST] (INFO) twitter|nojima|ScalaMatsuri の翻訳って IRC でやってたのか #ScalaMatsuri |
|
[2014-09-07 10:09:50 JST] (INFO) twitter|kyo_ago|ScalaJS、実行してみただけどこれから資料作る #ScalaMatsuri |
|
[2014-09-07 10:09:50 JST] (INFO) twitter|NoriakiHoriuchi|「二本足のルール」ちょっと試しに参加してみて、興味ないと思ったら席を立っても構わないのがアンカンファレンス #ScalaMatsuri |
|
[2014-09-07 10:09:50 JST] (INFO) twitter|rkyymmt|Scala.js、結構、注目ありだと。貼っておいてよかった。 #ScalaMatsuri |
|
[2014-09-07 10:09:31 JST] (INFO) irc|taisukeoe|Idea: Sbt victims complain to Yokota-san and he'll fix something within the session |
|
[2014-09-07 10:09:10 JST] (INFO) irc|brianhsu|Domain Driven Development introduction |
|
[2014-09-07 11:09:42 JST] (INFO) irc|brianhsu|Please help us transltion in IRC channel if you are able to do translation. |
|
[2014-09-07 11:09:06 JST] (INFO) irc|brianhsu|Self introduction |
|
[2014-09-07 11:09:30 JST] (INFO) irc|eed3si9n|I'm 42, but really started for reals around 37 |
|
[2014-09-07 11:09:08 JST] (INFO) irc|eed3si9n|really into DDD |
|
[2014-09-07 11:09:46 JST] (INFO) irc|eed3si9n|also into low carb diet. tend to go all the way whenever i get into something |
|
[2014-09-07 11:09:50 JST] (INFO) twitter|rabitarochan|. @j5ik2o さんによるDDD入門 #ScalaMatsuri |
|
[2014-09-07 11:09:50 JST] (INFO) twitter|AoiroAoino|DDD #ScalaMatsuri |
|
[2014-09-07 11:09:50 JST] (INFO) twitter|cactaceae|DDD初心者向けになっちゃったのでSkinnyに来てみた #ScalaMatsuri |
|
[2014-09-07 11:09:50 JST] (INFO) twitter|kimutansk|ドメイン駆動開発入門開始。DDDディスカッションもこの後あるのでやってみたことがある場合はそちらですかね。 #ScalaMatsuri |
|
[2014-09-07 11:09:50 JST] (INFO) twitter|cbirchall|もう充分我慢したのでビール飲もう #ScalaMatsuri |
|
[2014-09-07 11:09:50 JST] (INFO) twitter|NoriakiHoriuchi|今日はSandwichMatsuriなのでどんどん取っていってください #ScalaMatsuri |
|
[2014-09-07 11:09:50 JST] (INFO) twitter|jumpersons|#ScalaMatsuri 1日目より2日目の方が楽しそう! |
|
[2014-09-07 11:09:16 JST] (INFO) irc|eed3si9n|reviewed japanese translation for Evans book |
|
[2014-09-07 11:09:23 JST] (INFO) irc|eed3si9n|highly recommended read |
|
[2014-09-07 11:09:36 JST] (INFO) irc|eed3si9n|it's not super aggressive approach |
|
[2014-09-07 11:09:49 JST] (INFO) irc|eed3si9n|more of an evolution of existing approaches |
|
[2014-09-07 11:09:02 JST] (INFO) irc|okapies|maintain complexity by using OOP |
|
[2014-09-07 11:09:03 JST] (INFO) irc|eed3si9n|using OO to tackle complexity |
|
[2014-09-07 11:09:54 JST] (INFO) irc|eed3si9n|it shift the focus from the conventional approaches |
|
[2014-09-07 11:09:06 JST] (INFO) irc|eed3si9n|4 parts, but we'll keep it just 2 |
|
[2014-09-07 11:09:19 JST] (INFO) irc|eed3si9n|agenda |
|
[2014-09-07 11:09:22 JST] (INFO) irc|eed3si9n|what's an object? |
|
[2014-09-07 11:09:25 JST] (INFO) irc|eed3si9n|what's a model |
|
[2014-09-07 11:09:30 JST] (INFO) irc|eed3si9n|what's DDD? |
|
[2014-09-07 11:09:37 JST] (INFO) irc|eed3si9n|OO |
|
[2014-09-07 11:09:41 JST] (INFO) irc|taisukeoe|What's OOP? |
|
[2014-09-07 11:09:45 JST] (INFO) irc|eed3si9n|PHP |
|
[2014-09-07 11:09:57 JST] (INFO) irc|brianhsu|What is object. |
|
[2014-09-07 11:09:08 JST] (INFO) irc|brianhsu|It's to abstract to understand |
|
[2014-09-07 11:09:14 JST] (INFO) irc|eed3si9n|too abstract in a dictionary sesnse of the word |
|
[2014-09-07 11:09:21 JST] (INFO) irc|eed3si9n|is this an object? |
|
[2014-09-07 11:09:30 JST] (INFO) irc|eed3si9n|this is not exactly an object |
|
[2014-09-07 11:09:39 JST] (INFO) irc|eed3si9n|question |
|
[2014-09-07 11:09:51 JST] (INFO) irc|taisukeoe|It's not wrong, but not exactly. |
|
[2014-09-07 11:09:55 JST] (INFO) irc|brianhsu|What is a car? |
|
[2014-09-07 11:09:56 JST] (INFO) irc|eed3si9n|what'an automobile? |
|
[2014-09-07 11:09:12 JST] (INFO) irc|taisukeoe|Do you think it's automobile? |
|
[2014-09-07 11:09:28 JST] (INFO) irc|taisukeoe|(same questions to every picture) |
|
[2014-09-07 11:09:46 JST] (INFO) irc|eed3si9n|according to the Japanese traffic law |
|
[2014-09-07 11:09:55 JST] (INFO) irc|eed3si9n|here's the definition of an automobile |
|
[2014-09-07 11:09:12 JST] (INFO) irc|eed3si9n|this is included as an automobile |
|
[2014-09-07 11:09:23 JST] (INFO) irc|eed3si9n|it's actually vague, but there's a clear definitinon in law |
|
[2014-09-07 11:09:46 JST] (INFO) irc|eed3si9n|given a good definition, we can think of auto and non-auto |
|
[2014-09-07 11:09:04 JST] (INFO) irc|eed3si9n|using words, we categorize phenomena |
|
[2014-09-07 11:09:17 JST] (INFO) irc|eed3si9n|what's a "concept"? |
|
[2014-09-07 11:09:22 JST] (INFO) irc|taisukeoe|Object stands for Concept |
|
[2014-09-07 11:09:30 JST] (INFO) irc|eed3si9n|object is a way of expressing concept |
|
[2014-09-07 11:09:37 JST] (INFO) irc|eed3si9n|what's a model? |
|
[2014-09-07 11:09:52 JST] (INFO) irc|taisukeoe|fashion model |
|
[2014-09-07 11:09:06 JST] (INFO) irc|taisukeoe|is help to understand fashion image |
|
[2014-09-07 11:09:15 JST] (INFO) irc|eed3si9n|this provides an image how clothes would appear on yourself |
|
[2014-09-07 11:09:25 JST] (INFO) irc|eed3si9n|image materializes abstract concept |
|
[2014-09-07 11:09:39 JST] (INFO) irc|eed3si9n|s/image/model/ |
|
[2014-09-07 11:09:52 JST] (INFO) irc|eed3si9n|cartography |
|
[2014-09-07 11:09:01 JST] (INFO) irc|eed3si9n|what's the point of these maps? |
|
[2014-09-07 11:09:16 JST] (INFO) irc|eed3si9n|some of them are inaccurate in terms of area |
|
[2014-09-07 11:09:25 JST] (INFO) irc|eed3si9n|but these are useful for navigation on sea |
|
[2014-09-07 11:09:30 JST] (INFO) irc|taisukeoe|Mercator Expression |
|
[2014-09-07 11:09:42 JST] (INFO) irc|eed3si9n|this is the first map on DDD book |
|
[2014-09-07 11:09:47 JST] (INFO) irc|taisukeoe|Mercator Projection |
|
[2014-09-07 11:09:50 JST] (INFO) irc|eed3si9n|an ancient map from China |
|
[2014-09-07 11:09:58 JST] (INFO) irc|eed3si9n|in the center is China |
|
[2014-09-07 11:09:09 JST] (INFO) irc|eed3si9n|there was no need to think of any other counties back then |
|
[2014-09-07 11:09:22 JST] (INFO) irc|eed3si9n|so the map was ok |
|
[2014-09-07 11:09:40 JST] (INFO) irc|eed3si9n|MVC |
|
[2014-09-07 11:09:49 JST] (INFO) irc|taisukeoe|Model in MVC |
|
[2014-09-07 11:09:58 JST] (INFO) irc|eed3si9n|you are told this is what's in the model |
|
[2014-09-07 11:09:29 JST] (INFO) irc|eed3si9n|I would call this a "transaction script" instead |
|
[2014-09-07 11:09:53 JST] (INFO) irc|eed3si9n|the original intent of MVC |
|
[2014-09-07 11:09:04 JST] (INFO) irc|eed3si9n|Model is an expression of knowledge |
|
[2014-09-07 11:09:13 JST] (INFO) irc|taisukeoe|Shouldn't it be called S(Script)VC or T(Transaction)VC ? |
|
[2014-09-07 11:09:26 JST] (INFO) irc|taisukeoe|Model should be an expression of knowledge |
|
[2014-09-07 11:09:39 JST] (INFO) irc|eed3si9n|OO is about extending human mind out to computer |
|
[2014-09-07 11:09:44 JST] (INFO) irc|eed3si9n|(originally) |
|
[2014-09-07 11:09:20 JST] (INFO) irc|eed3si9n|for example, for shopping cart |
|
[2014-09-07 11:09:30 JST] (INFO) irc|eed3si9n|the same cart existing in the real world |
|
[2014-09-07 11:09:56 JST] (INFO) irc|eed3si9n|the end user's expectation is realized with shopping cart model |
|
[2014-09-07 11:09:19 JST] (INFO) irc|taisukeoe|Model is a way to project concepts |
|
[2014-09-07 11:09:20 JST] (INFO) irc|eed3si9n|model (or object) is an approach to project concepts |
|
[2014-09-07 11:09:48 JST] (INFO) irc|eed3si9n|the projection depends on the situation |
|
[2014-09-07 11:09:49 JST] (INFO) irc|taisukeoe|You should start from Concept first |
|
[2014-09-07 11:09:30 JST] (INFO) irc|eed3si9n|we shouldn't be adding things just for impl |
|
[2014-09-07 11:09:39 JST] (INFO) irc|eed3si9n|for DDD we try to do that at the different layer |
|
[2014-09-07 11:09:52 JST] (INFO) twitter|kiris|DDD実践者のディスカッションを後でやりましょう #ScalaMatsuri |
|
[2014-09-07 11:09:52 JST] (INFO) twitter|kimutansk|#ScalaMatsuri 手続きを書くところがModelか?それだとトランザクションスクリプト。Modelではなくてスクリプト。ただ、処理の流れはわかりやすいという利点はある |
|
[2014-09-07 11:09:52 JST] (INFO) twitter|qtamaki|Haskellは激しくカリー化するから、関数の定義がちょっと違うんだけどねー。 #ScalaMatsuri |
|
[2014-09-07 11:09:52 JST] (INFO) twitter|marmotte_se30|Venue D / Eは入り口内部でスタッフが待機していますので、お気軽にご参加ください。#ScalaMatsuri |
|
[2014-09-07 11:09:52 JST] (INFO) twitter|jwhaco|缶コーヒーありがてえ #ScalaMatsuri |
|
[2014-09-07 11:09:52 JST] (INFO) twitter|kxbmap|Haskell Platform https://t.co/e2UU0llAub #ScalaMatsuri |
|
[2014-09-07 11:09:52 JST] (INFO) twitter|nakanishiyasuo|オブジェクトは概念=Namedな抽象物だよね。 #ScalaMatsuri |
|
[2014-09-07 11:09:52 JST] (INFO) twitter|qtamaki|手続き型の再発見・再定義って話かな #ScalaMatsuri |
|
[2014-09-07 11:09:52 JST] (INFO) twitter|jumpersons|DDDとScalaは相性がいいんじゃないか。 #ScalaMatsuri |
|
[2014-09-07 11:09:52 JST] (INFO) twitter|qtamaki|Haskellで手続き的に書く方法!? #ScalaMatsuri |
|
[2014-09-07 11:09:59 JST] (INFO) irc|eed3si9n|what's domain driven design? |
|
[2014-09-07 11:09:24 JST] (INFO) irc|eed3si9n|for e-commerce site, normally ppl would start with E-R diagram |
|
[2014-09-07 11:09:34 JST] (INFO) irc|taisukeoe|What's Domain? |
|
[2014-09-07 11:09:54 JST] (INFO) irc|eed3si9n|you have to start with analyzing the domain |
|
[2014-09-07 11:09:02 JST] (INFO) irc|eed3si9n|here's a library |
|
[2014-09-07 11:09:10 JST] (INFO) irc|taisukeoe|Domain expresses a region of problems that computer should solve. |
|
[2014-09-07 11:09:19 JST] (INFO) irc|eed3si9n|user, staff, book, returning event, bookshelf |
|
[2014-09-07 11:09:27 JST] (INFO) irc|eed3si9n|for RPG |
|
[2014-09-07 11:09:30 JST] (INFO) irc|taisukeoe|Here is Domain Model. |
|
[2014-09-07 11:09:40 JST] (INFO) irc|eed3si9n|map, monster, quest, player, item, weapon |
|
[2014-09-07 11:09:02 JST] (INFO) irc|eed3si9n|there are various RPG, but this is typical one |
|
[2014-09-07 11:09:06 JST] (INFO) irc|taisukeoe|It's separate topic from how to implement |
|
[2014-09-07 11:09:07 JST] (INFO) irc|eed3si9n|this has nothing to do with imple |
|
[2014-09-07 11:09:30 JST] (INFO) irc|eed3si9n|i've been doing lots of chat related service |
|
[2014-09-07 11:09:41 JST] (INFO) irc|eed3si9n|message, event, user, devise, channel, group |
|
[2014-09-07 11:09:56 JST] (INFO) irc|taisukeoe|Since I'm working on making chat systems for long time, let me show an example chat system domain model |
|
[2014-09-07 11:09:05 JST] (INFO) irc|eed3si9n|domain model needs to be extracted from the domain experts |
|
[2014-09-07 11:09:26 JST] (INFO) irc|eed3si9n|for things like chat services, we tend to be the experts ourselves |
|
[2014-09-07 11:09:59 JST] (INFO) irc|eed3si9n|the origin needs to be the domain model (concept) |
|
[2014-09-07 11:09:30 JST] (INFO) irc|eed3si9n|diagram says: domain model, experts, devs, software |
|
[2014-09-07 11:09:43 JST] (INFO) irc|eed3si9n|here's the process |
|
[2014-09-07 11:09:52 JST] (INFO) irc|eed3si9n|scenario -> model -> imple |
|
[2014-09-07 11:09:53 JST] (INFO) irc|taisukeoe|How can we start DDD? |
|
[2014-09-07 11:09:18 JST] (INFO) irc|eed3si9n|imple then feeds back to scenario |
|
[2014-09-07 11:09:30 JST] (INFO) irc|taisukeoe|In Scala, you can test domain model via ScalaTest or specs2 |
|
[2014-09-07 11:09:58 JST] (INFO) irc|eed3si9n|use mock to persist models |
|
[2014-09-07 11:09:16 JST] (INFO) irc|eed3si9n|it's hard to find domain experts |
|
[2014-09-07 11:09:26 JST] (INFO) irc|eed3si9n|domain and non-domain words |
|
[2014-09-07 11:09:38 JST] (INFO) irc|taisukeoe|In reality, however, We can't always find experts |
|
[2014-09-07 11:09:58 JST] (INFO) irc|eed3si9n|imple needs and wants must be excluded |
|
[2014-09-07 11:09:05 JST] (INFO) irc|eed3si9n|buttons, history etc |
|
[2014-09-07 11:09:05 JST] (INFO) irc|taisukeoe|So we have to be an expert if needed |
|
[2014-09-07 11:09:10 JST] (INFO) irc|eed3si9n|non-domain code |
|
[2014-09-07 11:09:15 JST] (INFO) irc|eed3si9n|UI, DB, etc |
|
[2014-09-07 11:09:30 JST] (INFO) irc|eed3si9n|domain code |
|
[2014-09-07 11:09:43 JST] (INFO) irc|eed3si9n|these tend to be something we are not good at |
|
[2014-09-07 11:09:51 JST] (INFO) irc|eed3si9n|e.g. monthly summary |
|
[2014-09-07 11:09:09 JST] (INFO) irc|eed3si9n|ubiquitous language |
|
[2014-09-07 11:09:35 JST] (INFO) irc|eed3si9n|http://martinfowler.com/bliki/UbiquitousLanguage.html |
|
[2014-09-07 11:09:57 JST] (INFO) irc|eed3si9n|this is probably one of more important concept in DDD |
|
[2014-09-07 11:09:07 JST] (INFO) irc|eed3si9n|blind men touches an elephant |
|
[2014-09-07 11:09:26 JST] (INFO) irc|eed3si9n|each person reports says: wall (belly), tree, rope, etc. |
|
[2014-09-07 11:09:36 JST] (INFO) irc|taisukeoe|"It's like the blind men who touched just part of an elephant, and tried from that to describe the whole animal." |
|
[2014-09-07 11:09:50 JST] (INFO) irc|eed3si9n|for each person, the perception of the elephant is different |
|
[2014-09-07 11:09:01 JST] (INFO) irc|eed3si9n|each person's view is actually correct |
|
[2014-09-07 11:09:07 JST] (INFO) irc|eed3si9n|but we need to unify the concept |
|
[2014-09-07 11:09:13 JST] (INFO) irc|taisukeoe|One say it's a wall, but other may say it's a lope |
|
[2014-09-07 11:09:29 JST] (INFO) irc|brianhsu|s/lope/rope |
|
[2014-09-07 11:09:30 JST] (INFO) irc|eed3si9n|if we refactor using different views, it becomes very descructive |
|
[2014-09-07 11:09:42 JST] (INFO) irc|eed3si9n|the context needs to be shared across everyone |
|
[2014-09-07 11:09:57 JST] (INFO) irc|eed3si9n|each person has different image for the terminology |
|
[2014-09-07 11:09:13 JST] (INFO) irc|eed3si9n|that's called ubiquitous language |
|
[2014-09-07 11:09:23 JST] (INFO) irc|eed3si9n|(the unification of vocab, that is) |
|
[2014-09-07 11:09:36 JST] (INFO) irc|taisukeoe|Model Driven Architecture |
|
[2014-09-07 11:09:47 JST] (INFO) irc|eed3si9n|DDD is about building software by reflecting a domain model |
|
[2014-09-07 11:09:22 JST] (INFO) irc|eed3si9n|model dirven design is about building software by reflecting a domain model |
|
[2014-09-07 11:09:26 JST] (INFO) irc|taisukeoe|Domain model consists of: |
|
[2014-09-07 11:09:34 JST] (INFO) irc|brianhsu|The elements in domain model |
|
[2014-09-07 11:09:38 JST] (INFO) irc|taisukeoe|Entity, Value Object, Service, Module, Model |
|
[2014-09-07 11:09:01 JST] (INFO) irc|taisukeoe|Factory, Repository |
|
[2014-09-07 11:09:07 JST] (INFO) irc|eed3si9n|isolate domain layers |
|
[2014-09-07 11:09:25 JST] (INFO) irc|brianhsu|Domain Layer |
|
[2014-09-07 11:09:31 JST] (INFO) irc|eed3si9n|domain layer, non-domain layer (infrastructure, app/UI) |
|
[2014-09-07 11:09:43 JST] (INFO) irc|taisukeoe|At 1st step: Separate domain layer from other layers |
|
[2014-09-07 11:09:00 JST] (INFO) irc|eed3si9n|from the whole picture domain layer is just one of the layers |
|
[2014-09-07 11:09:07 JST] (INFO) irc|eed3si9n|but it needs to be clearly isolated |
|
[2014-09-07 11:09:08 JST] (INFO) irc|taisukeoe|Business Logic should be in domain layer |
|
[2014-09-07 11:09:20 JST] (INFO) irc|eed3si9n|layered architecture |
|
[2014-09-07 11:09:26 JST] (INFO) irc|eed3si9n|using DI this sometimes flips |
|
[2014-09-07 11:09:37 JST] (INFO) irc|eed3si9n|top depends on the bottom |
|
[2014-09-07 11:09:47 JST] (INFO) irc|eed3si9n|the dependencies only goes down |
|
[2014-09-07 11:09:51 JST] (INFO) irc|taisukeoe|UserInterface dependsOn Application dependsOn Domain dependsOn Infractructure |
|
[2014-09-07 11:09:57 JST] (INFO) twitter|ueshin|簡易版ゆえ、イメージのビルドに時間がかかるのでお早めに。 #ScalaMatsuri |
|
[2014-09-07 11:09:57 JST] (INFO) twitter|ueshin|Aaronさんのセッションに参加される方はSparkの環境を手元に準備しておいた方がいいと思いますが、Docker環境がある方は簡易版Dockerfileを作ってあるので使ってください。 https://t.co/fz5XWVqRec #ScalaMatsuri |
|
[2014-09-07 11:09:57 JST] (INFO) twitter|7to3|カツサンドおいしいです。 #ScalaMatsuri |
|
[2014-09-07 11:09:57 JST] (INFO) twitter|AoiroAoino|モデルを構成する言葉を適切に使える必要がある #ScalaMatsuri |
|
[2014-09-07 11:09:57 JST] (INFO) twitter|kimutansk|#ScalaMatsuri 実装の項目(実現手段)はモデルではない。概念を示したものがモデル。とはいえ、モデルでないコードの方が書きやすい。 |
|
[2014-09-07 11:09:57 JST] (INFO) twitter|shitai246_|DDD なんとなくニュアンスはわかるけど言葉で聞くと小難しい。1回実践したら腹落ちしそうな気はする。 #scalamatsuri #ra |
|
[2014-09-07 11:09:57 JST] (INFO) twitter|jumpersons|資料どこかに上がってるのかな? > @j5ik2o さんによるDDD入門 #ScalaMatsuri |
|
[2014-09-07 11:09:57 JST] (INFO) twitter|a_suenami|寝坊&準備で遅れましたが、今から #ScalaMatsuri アンカンファレンス向かいます! |
|
[2014-09-07 11:09:57 JST] (INFO) twitter|eiryu|腹減ったけど、弁当もらえるんだっけ? #ScalaMatsuri |
|
[2014-09-07 11:09:10 JST] (INFO) irc|eed3si9n|any call back up would needs visitor pattern callback |
|
[2014-09-07 11:09:26 JST] (INFO) irc|eed3si9n|thinking in layers |
|
[2014-09-07 11:09:52 JST] (INFO) irc|taisukeoe|Be conscious about layers |
|
[2014-09-07 11:09:02 JST] (INFO) irc|eed3si9n|the domain layer expresses concepts |
|
[2014-09-07 11:09:15 JST] (INFO) irc|eed3si9n|more on imple |
|
[2014-09-07 11:09:29 JST] (INFO) irc|eed3si9n|I've written spetstore |
|
[2014-09-07 11:09:34 JST] (INFO) irc|eed3si9n|as an example app |
|
[2014-09-07 11:09:51 JST] (INFO) irc|eed3si9n|this is an e-commerce site |
|
[2014-09-07 11:09:56 JST] (INFO) irc|taisukeoe|Application Layers, Domain Layers, Infrastructure Layers |
|
[2014-09-07 11:09:10 JST] (INFO) irc|eed3si9n|biz logic = domain logic |
|
[2014-09-07 11:09:40 JST] (INFO) irc|brianhsu|It's ok to use otr.her method if you colud isloate the domain laye |
|
[2014-09-07 11:09:43 JST] (INFO) irc|eed3si9n|all the way at the bottom is infrastructure layer is persistence etc |
|
[2014-09-07 11:09:51 JST] (INFO) irc|eed3si9n|like DB |
|
[2014-09-07 11:09:52 JST] (INFO) irc|brianhsu|s/otr.her/other |
|
[2014-09-07 11:09:12 JST] (INFO) irc|eed3si9n|the hexagonal architecture |
|
[2014-09-07 11:09:03 JST] (INFO) irc|brianhsu|It this a model? |
|
[2014-09-07 11:09:20 JST] (INFO) irc|eed3si9n|UI form driven is a bad pattern |
|
[2014-09-07 11:09:41 JST] (INFO) irc|eed3si9n|User object should not have save() method |
|
[2014-09-07 11:09:55 JST] (INFO) irc|eed3si9n|unless your ubiquitous lang contains "save" |
|
[2014-09-07 11:09:03 JST] (INFO) irc|eed3si9n|like you can't "save" an user |
|
[2014-09-07 11:09:12 JST] (INFO) irc|eed3si9n|so you should do it at the infra layer |
|
[2014-09-07 11:09:28 JST] (INFO) irc|eed3si9n|also using toString method to generate HTML |
|
[2014-09-07 11:09:33 JST] (INFO) irc|eed3si9n|that's a bad pattern |
|
[2014-09-07 11:09:45 JST] (INFO) irc|taisukeoe|Since they'll belong to other layers, you shouldn't mix them up |
|
[2014-09-07 11:09:57 JST] (INFO) irc|eed3si9n|model is foundation to large scale application |
|
[2014-09-07 11:09:11 JST] (INFO) irc|eed3si9n|to express models |
|
[2014-09-07 11:09:29 JST] (INFO) irc|eed3si9n|entity and relationship |
|
[2014-09-07 11:09:35 JST] (INFO) irc|taisukeoe|If you feel DDD is a kind of trouble some, you may not understand DDD correctly |
|
[2014-09-07 11:09:55 JST] (INFO) irc|taisukeoe|Limit relationship |
|
[2014-09-07 11:09:00 JST] (INFO) irc|eed3si9n|limit relationship only to the essential ones |
|
[2014-09-07 11:09:10 JST] (INFO) irc|eed3si9n|avoid mutual deps |
|
[2014-09-07 11:09:11 JST] (INFO) irc|taisukeoe|dependencies each other: |
|
[2014-09-07 11:09:34 JST] (INFO) irc|eed3si9n|bidirectional dependencies can lead to validation issue |
|
[2014-09-07 11:09:46 JST] (INFO) irc|eed3si9n|Entity |
|
[2014-09-07 11:09:58 JST] (INFO) irc|taisukeoe|To solve above problem: Use entity and repository pattern |
|
[2014-09-07 11:09:01 JST] (INFO) irc|eed3si9n|entity has an identity |
|
[2014-09-07 11:09:28 JST] (INFO) irc|eed3si9n|it can be identified without attributes |
|
[2014-09-07 11:09:36 JST] (INFO) irc|eed3si9n|this is how I used to look |
|
[2014-09-07 11:09:43 JST] (INFO) irc|eed3si9n|body weight changes |
|
[2014-09-07 11:09:02 JST] (INFO) irc|eed3si9n|what's an identity? |
|
[2014-09-07 11:09:08 JST] (INFO) irc|eed3si9n|age changes, address changes |
|
[2014-09-07 11:09:20 JST] (INFO) irc|taisukeoe|Avoid identifying with attributes that may change |
|
[2014-09-07 11:09:22 JST] (INFO) irc|eed3si9n|entity: identity |
|
[2014-09-07 11:09:29 JST] (INFO) irc|eed3si9n|value object |
|
[2014-09-07 11:09:48 JST] (INFO) irc|eed3si9n|value object is used to express attribute |
|
[2014-09-07 11:09:09 JST] (INFO) irc|eed3si9n|blue is blue when it comes to picking crayons |
|
[2014-09-07 11:09:11 JST] (INFO) irc|taisukeoe|String is a good example of value object |
|
[2014-09-07 11:09:30 JST] (INFO) irc|eed3si9n|example of value objects |
|
[2014-09-07 11:09:45 JST] (INFO) irc|eed3si9n|use case class to write value objects |
|
[2014-09-07 11:09:59 JST] (INFO) irc|brianhsu|Feature of value objects. |
|
[2014-09-07 11:09:03 JST] (INFO) irc|eed3si9n|immutable is recommended |
|
[2014-09-07 11:09:30 JST] (INFO) irc|eed3si9n|object that are shared across multiple places is recommended to be immutable |
|
[2014-09-07 11:09:35 JST] (INFO) irc|eed3si9n|Scala is great at doing this |
|
[2014-09-07 11:09:03 JST] (INFO) irc|eed3si9n|value object does not have continuality/identity |
|
[2014-09-07 11:09:14 JST] (INFO) irc|eed3si9n|service |
|
[2014-09-07 11:09:41 JST] (INFO) irc|eed3si9n|service: things that cannot be placed into Entity or Value Object |
|
[2014-09-07 11:09:07 JST] (INFO) irc|eed3si9n|service should be stateless |
|
[2014-09-07 11:09:24 JST] (INFO) irc|eed3si9n|operation name should be in the ubiquitous language |
|
[2014-09-07 11:09:41 JST] (INFO) irc|taisukeoe|I/O should be Domain Object (Entity or ValueObject) |
|
[2014-09-07 11:09:51 JST] (INFO) irc|eed3si9n|E for Entity |
|
[2014-09-07 11:09:58 JST] (INFO) irc|eed3si9n|VO for value objects |
|
[2014-09-07 11:09:08 JST] (INFO) irc|eed3si9n|skipping modules |
|
[2014-09-07 11:09:11 JST] (INFO) irc|taisukeoe|LifeCycle: |
|
[2014-09-07 11:09:53 JST] (INFO) irc|eed3si9n|life cylce treats life of objects beyond runtime, including persisence |
|
[2014-09-07 11:09:55 JST] (INFO) irc|taisukeoe|LifeCycle contains Database or File expression not only Runtime |
|
[2014-09-07 11:09:57 JST] (INFO) twitter|gakuzzzz|「My first マクロ的なハンズオンセッション」 興味あります! #ScalaMatsuri /cc @cbirchall |
|
[2014-09-07 11:09:57 JST] (INFO) twitter|niw|ghc ってどこにでもあるものだったんだ... #ScalaMatsuri |
|
[2014-09-07 11:09:57 JST] (INFO) twitter|qtamaki|シェルを走らせるサーバーには当然ghcぐらい入ってるよね? #ScalaMatsuri |
|
[2014-09-07 11:09:57 JST] (INFO) twitter|qtamaki|Shelly <- HaskellでShell Scriptが簡単に書ける!? #ScalaMatsuri |
|
[2014-09-07 11:09:57 JST] (INFO) twitter|xuwei_k|そういえば、ScalazにSTMモナドとかはないな・・・ #ScalaMatsuri |
|
[2014-09-07 11:09:57 JST] (INFO) twitter|qtamaki|Scalaz入門の色を帯びてきた・・・ #ScalaMatsuri |
|
[2014-09-07 11:09:57 JST] (INFO) twitter|eiryu|飯くらいの時間に #ScalaMatsuri 行くかなあ |
|
[2014-09-07 11:09:57 JST] (INFO) twitter|NoriakiHoriuchi|とのことです?! #ScalaMatsuri #ScalaMatsuri2 RT @jagd5168: @kiris @NoriakiHoriuchi 私も最初編集できませんでしたけど、一度 Google Docs 開いてセッションログインさせたら編集モードになりましたよ。 |
|
[2014-09-07 11:09:57 JST] (INFO) twitter|jumpersons|感心事が複雑じゃないからDDDでやらなくていいや。って思ってたら、思ってたより複雑じゃん!DDDですべきだった!とかありそう。 #ScalaMatsuri |
|
[2014-09-07 11:09:57 JST] (INFO) twitter|scala_jp|#ScalaMatsuri アンカンファレンス中。なお、本日ランチも出ます! |
|
[2014-09-07 11:09:57 JST] (INFO) twitter|qtamaki|MVarスゲエ #ScalaMatsuri |
|
[2014-09-07 11:09:59 JST] (INFO) irc|eed3si9n|repository |
|
[2014-09-07 11:09:13 JST] (INFO) irc|taisukeoe|Repository is not DAO |
|
[2014-09-07 11:09:16 JST] (INFO) irc|eed3si9n|a way of looking up objects |
|
[2014-09-07 11:09:31 JST] (INFO) irc|taisukeoe|Repository is a bit more abstract than DAO |
|
[2014-09-07 11:09:07 JST] (INFO) irc|taisukeoe|Repository controls lifecycle of Entity |
|
[2014-09-07 11:09:22 JST] (INFO) irc|eed3si9n|repository acts as a collection |
|
[2014-09-07 11:09:35 JST] (INFO) irc|taisukeoe|Since Entity must have ID, Repository gives Entity via looking up ID |
|
[2014-09-07 11:09:37 JST] (INFO) irc|eed3si9n|inside it could be implemented using db, memcache, etc |
|
[2014-09-07 11:09:31 JST] (INFO) irc|eed3si9n|this transparency is rather important to DDD |
|
[2014-09-07 11:09:11 JST] (INFO) irc|eed3si9n|sorry not too much Scala |
|
[2014-09-07 11:09:17 JST] (INFO) irc|eed3si9n|talk to me later aboutit |
|
[2014-09-07 11:09:02 JST] (INFO) irc|taisukeoe|Repository sometimes give API transparently, even if one needs 1000 times longer than others! |
|
[2014-09-07 11:09:07 JST] (INFO) irc|eed3si9n|running out of time |
|
[2014-09-07 11:09:09 JST] (INFO) irc|eed3si9n|any questions |
|
[2014-09-07 11:09:38 JST] (INFO) irc|taisukeoe|You can catch me if you have any questions later |
|
[2014-09-07 11:09:20 JST] (INFO) irc|eed3si9n|A: yes |
|
[2014-09-07 11:09:41 JST] (INFO) irc|eed3si9n|domain cannot be corrupted by implementation needs |
|
[2014-09-07 11:09:50 JST] (INFO) irc|eed3si9n|because it's shared across the experts as well |
|
[2014-09-07 11:09:01 JST] (INFO) irc|taisukeoe|Does Ubiquitous languages match with DSL? |
|
[2014-09-07 11:09:07 JST] (INFO) irc|eed3si9n|what's the relationship between DSL and ubiquitous lang? |
|
[2014-09-07 11:09:16 JST] (INFO) irc|taisukeoe|I guess that's why Scala is great for DDD |
|
[2014-09-07 11:09:17 JST] (INFO) irc|eed3si9n|would that make scala a better fit for DDD? |
|
[2014-09-07 11:09:34 JST] (INFO) irc|eed3si9n|A: it's recommended to use UL in code |
|
[2014-09-07 11:09:44 JST] (INFO) irc|eed3si9n|DSL is the ultimate way |
|
[2014-09-07 11:09:28 JST] (INFO) irc|eed3si9n|compared to Java, Scala is much better at it |
|
[2014-09-07 12:09:09 JST] (INFO) irc|taisukeoe|My sessions will be mainly live-coding |
|
[2014-09-07 12:09:36 JST] (INFO) irc|taisukeoe|Though I have only 2-3 months Actor experience, your elaboration would be welcome |
|
[2014-09-07 12:09:44 JST] (INFO) irc|taisukeoe|a/Though/Since/g |
|
[2014-09-07 12:09:59 JST] (INFO) twitter|AoiroAoino|Akkaの話聞きます #ScalaMatsuri |
|
[2014-09-07 12:09:59 JST] (INFO) twitter|kiris|急遽、E会場で続・DDDディスカッション #ScalaMatsuri |
|
[2014-09-07 12:09:59 JST] (INFO) twitter|okumin|xuweiさんがakkaの話をするとのことです。 #ScalaMatsuri |
|
[2014-09-07 12:09:59 JST] (INFO) twitter|nakanishiyasuo|オブジェクト指向は人間の頭を拡張というよりは、サブセット的な手法だと思ってる。 #ScalaMatsuri |
|
[2014-09-07 12:09:59 JST] (INFO) twitter|AoiroAoino|SparkでRDDの操作をコレクションライブラリっぽく(mapやらfilterやらで)書けるって話もそうなのかな #ScalaMatsuri |
|
[2014-09-07 12:09:59 JST] (INFO) twitter|a_suenami|#ScalaMatsuri 着いた。かとじゅんさんのDDD話聞いてる。 |
|
[2014-09-07 12:09:59 JST] (INFO) twitter|jumpersons|DAO ってRDBアクセスに限らないような名前だと思ってたんだけど、RDBアクセスに限る感じなのか。 #ScalaMatsuri |
|
[2014-09-07 12:09:59 JST] (INFO) twitter|shunjikonishi|こいつのバックエンドが全部Haskellですよ |
|
|
|
http://t.co/Nl6OCw6H8W |
|
|
|
#ScalaMatsuri |
|
[2014-09-07 12:09:19 JST] (INFO) irc|taisukeoe|I've not prepared any slides for this, let me ask questions to you first |
|
[2014-09-07 12:09:33 JST] (INFO) irc|okapies|Question: Does Any one know or use Akka? |
|
[2014-09-07 12:09:03 JST] (INFO) irc|okapies|Scala's official actor library is outdated. Use akka instead |
|
[2014-09-07 12:09:17 JST] (INFO) irc|taisukeoe|Though Scala has Actor independently, it's already deprecated and you should use Akka instead |
|
[2014-09-07 12:09:34 JST] (INFO) irc|taisukeoe|Akka is well-documented |
|
[2014-09-07 12:09:55 JST] (INFO) irc|taisukeoe|Latest Version 2.3.6 was released a couple of days ago |
|
[2014-09-07 12:09:15 JST] (INFO) irc|brianhsu|The lastest version 2.3.6, it's able to use Java to write Akka, but it's a hard work |
|
[2014-09-07 12:09:56 JST] (INFO) irc|taisukeoe|Though you can use Akka in Java, I don't recommend it since it's a kind of "new" hell |
|
[2014-09-07 12:09:30 JST] (INFO) irc|taisukeoe|Takezoe-san, did you introduce Akka in your book. "Yes" |
|
[2014-09-07 12:09:02 JST] (INFO) irc|taisukeoe|Let me refer to my blog.... |
|
[2014-09-07 12:09:28 JST] (INFO) irc|taisukeoe|Here is dependency-graph of Akka |
|
[2014-09-07 12:09:41 JST] (INFO) irc|taisukeoe|via sbt-dependency-graph sbt plugin |
|
[2014-09-07 12:09:18 JST] (INFO) irc|taisukeoe|For example, akka-persistence depends on level db |
|
[2014-09-07 12:09:47 JST] (INFO) irc|taisukeoe|akka-actor depends on only typesafe config |
|
[2014-09-07 12:09:13 JST] (INFO) irc|taisukeoe|akka-remote is a module to use actor via HTTP/TCP/UDP |
|
[2014-09-07 12:09:05 JST] (INFO) irc|taisukeoe|multi-node-testkit is implemented in a complicated way |
|
[2014-09-07 12:09:27 JST] (INFO) irc|taisukeoe|Though I ask my colleague to help my session, he refuses :( |
|
[2014-09-07 12:09:36 JST] (INFO) irc|taisukeoe|Have used any other packages than akka-actor? |
|
[2014-09-07 12:09:56 JST] (INFO) irc|taisukeoe|akka.io existed until Akka 2.2 |
|
[2014-09-07 12:09:48 JST] (INFO) irc|taisukeoe|Akka persistence helps actor to persist data in your favorite way if actor becomes down |
|
[2014-09-07 12:09:22 JST] (INFO) irc|okapies|We will have akka meeting with a comitter in Dwango |
|
[2014-09-07 12:09:23 JST] (INFO) irc|taisukeoe|BTW, we'll have a Akka seminar with inviting Akka commiter |
|
[2014-09-07 12:09:08 JST] (INFO) irc|taisukeoe|Maybe I should focus on akka-actor package rather than introducing others which you're not familiar with |
|
[2014-09-07 12:09:46 JST] (INFO) irc|taisukeoe|Akka contains activator template, though I'm not familiar with activator itself |
|
[2014-09-07 12:09:17 JST] (INFO) irc|taisukeoe|akka-samples has only 4 source files: |
|
[2014-09-07 12:09:25 JST] (INFO) irc|taisukeoe|let me run it |
|
[2014-09-07 12:09:44 JST] (INFO) irc|taisukeoe|i just cloned akka repo |
|
[2014-09-07 12:09:02 JST] (INFO) twitter|wolf20xx|akka-zaromqとかってのがあるんですね。。 #ScalaMatsuri #ScalaMatsuri2 |
|
[2014-09-07 12:09:02 JST] (INFO) twitter|diceit|#ScalaMatsuri *-experimentalは仕事では使えないかな。 |
|
[2014-09-07 12:09:02 JST] (INFO) twitter|diceit|#ScalaMatsuri Akka。akka-actorとakka-testkit, akka-remoteとakka-multi-node-testkitとかを使うことになるのかな。 |
|
[2014-09-07 12:09:02 JST] (INFO) twitter|nakanishiyasuo|SBTのSが闇に放り込まれつつある #ScalaMatsuri |
|
[2014-09-07 12:09:02 JST] (INFO) twitter|gkojax|「Play ドキュメント翻訳作業部会」 #ScalaMatsuri #rd |
|
[2014-09-07 12:09:02 JST] (INFO) twitter|gkojax|「Meetings for SBT victims」 #ScalaMatsuri #rb |
|
[2014-09-07 12:09:02 JST] (INFO) twitter|naopi|#ScalaMatsuri DDDディスカッションと聞いた慌ててE部屋へ |
|
[2014-09-07 12:09:02 JST] (INFO) twitter|gkojax|「Scala, Play Deploy 運用についてのディスカッション」 #ScalaMatsuri #rc |
|
[2014-09-07 12:09:02 JST] (INFO) twitter|ozw_sei|http://t.co/HvYw4d29d9 #ScalaMatsuri |
|
[2014-09-07 12:09:02 JST] (INFO) twitter|5kozawa|playのdeployの話きいてる #ScalaMatsuri |
|
[2014-09-07 12:09:12 JST] (INFO) irc|taisukeoe|since it has two classes which have main method, sbt asks you to choose which main method to run |
|
[2014-09-07 12:09:25 JST] (INFO) irc|taisukeoe|akka logger shows INFO log |
|
[2014-09-07 12:09:59 JST] (INFO) irc|taisukeoe|What happens? |
|
[2014-09-07 12:09:37 JST] (INFO) irc|taisukeoe|akka.Main.main requires actor name to run |
|
[2014-09-07 12:09:18 JST] (INFO) irc|taisukeoe|s/requires/accepts/g |
|
[2014-09-07 12:09:29 JST] (INFO) irc|taisukeoe|no argument is also allowed |
|
[2014-09-07 12:09:44 JST] (INFO) irc|taisukeoe|since it uses reflection, it' not typesafed |
|
[2014-09-07 12:09:20 JST] (INFO) irc|taisukeoe|actor is great since it hides raw mutli thread programming |
|
[2014-09-07 12:09:20 JST] (INFO) irc|taisukeoe|but you should watch out it's not threadsafe |
|
[2014-09-07 12:09:26 JST] (INFO) irc|taisukeoe|Any questions? |
|
[2014-09-07 12:09:33 JST] (INFO) irc|taisukeoe|OK, let me keep going on |
|
[2014-09-07 12:09:10 JST] (INFO) irc|taisukeoe|You should implement "receive" function in actor class |
|
[2014-09-07 12:09:40 JST] (INFO) irc|taisukeoe|hmm... is IDE better to show up these codes |
|
[2014-09-07 12:09:42 JST] (INFO) irc|taisukeoe|? |
|
[2014-09-07 12:09:07 JST] (INFO) irc|taisukeoe|Only "def receive" is abstract |
|
[2014-09-07 12:09:30 JST] (INFO) irc|taisukeoe|is this kind of explanation too easy? |
|
[2014-09-07 12:09:00 JST] (INFO) irc|taisukeoe|type Receive is PartialFucntion[Any,Unit] |
|
[2014-09-07 12:09:32 JST] (INFO) irc|taisukeoe|Scalaz community disregard this type since it accepts anything and it's not typesafe at all |
|
[2014-09-07 12:09:39 JST] (INFO) irc|taisukeoe|Since receive is PartialFunction, you can write "case" directly, thanks to syntax sugar |
|
[2014-09-07 12:09:27 JST] (INFO) irc|taisukeoe|This HelloActor will die just after it receive message |
|
[2014-09-07 12:09:09 JST] (INFO) irc|taisukeoe|this is a template to create new actor: context.actorOf(Props[Greeter],"greeter") |
|
[2014-09-07 12:09:28 JST] (INFO) irc|taisukeoe|What happens!? |
|
[2014-09-07 12:09:33 JST] (INFO) irc|taisukeoe|Announcement not from ScalaMatsuri event mixed up |
|
[2014-09-07 12:09:29 JST] (INFO) irc|taisukeoe|Actor has sender() method to get an instance of sender actor |
|
[2014-09-07 12:09:42 JST] (INFO) irc|taisukeoe|Since it has sender() method, it's not typesafed |
|
[2014-09-07 12:09:04 JST] (INFO) twitter|niw|無線マイクが混線してるw #ScalaMatsuri |
|
[2014-09-07 12:09:04 JST] (INFO) twitter|okapies|再掲: ハッシュタグは "#scalamatsuri OR #scalamatsuri2" で検索すると良いです。OR は大文字。 |
|
[2014-09-07 12:09:04 JST] (INFO) twitter|rabitarochan|NewRelic使ってる人おおそうだけど、オンプレミスでダッシュボードみれるものないかな。Kamon.ioはどうなんだろう。 #ScalaMatsuri |
|
[2014-09-07 12:09:04 JST] (INFO) twitter|meta_Lloyd|Couldn't make it out to the 2nd day but still enjoying my #ScalaMatsuri swag @ Ghibli Museum http://t.co/YpjOHF4iji |
|
[2014-09-07 12:09:04 JST] (INFO) twitter|wolf20xx|actorはthread処理から解放されるけど、型安全ではないんで、何でもactorではないという教訓。 #ScalaMatsuri #ScalaMatsuri2 |
|
[2014-09-07 12:09:04 JST] (INFO) twitter|AoiroAoino|「型安全が欲しい人はAkka使わない方がいい」#ScalaMatsuri |
|
[2014-09-07 12:09:04 JST] (INFO) twitter|diceit|#ScalaMatsuri Akkaを試したければhttps://t.co/DY7h3rSDTLのsampleプロジェクトで。 |
|
[2014-09-07 12:09:17 JST] (INFO) irc|taisukeoe|it's tradeoff with flexibility |
|
[2014-09-07 12:09:38 JST] (INFO) irc|taisukeoe|Syntax Highlight in Github looks broken |
|
[2014-09-07 12:09:37 JST] (INFO) irc|taisukeoe|If actor calls "!" method, it pass itself to receiver |
|
[2014-09-07 12:09:53 JST] (INFO) irc|taisukeoe|(implicit sender:ActorRef = Actor.noSender) use implicit ActorRef parameter if exists. |
|
[2014-09-07 12:09:25 JST] (INFO) irc|taisukeoe|If not exists, it uses Actor.noSender |
|
[2014-09-07 12:09:36 JST] (INFO) irc|taisukeoe|About ActorSystem: |
|
[2014-09-07 12:09:20 JST] (INFO) irc|taisukeoe|ActorSystem defines supervising relationship of Actors |
|
[2014-09-07 12:09:08 JST] (INFO) irc|taisukeoe|ActorLogging provides Logging function to Actor with mixin |
|
[2014-09-07 12:09:24 JST] (INFO) irc|taisukeoe|If context "watch" ActorRef, it receives message when the actor dies |
|
[2014-09-07 12:09:13 JST] (INFO) irc|taisukeoe|Q. As a part of "function" in web app, when should I use actor? |
|
[2014-09-07 12:09:08 JST] (INFO) irc|taisukeoe|A. When you need to do Async jobs. Big and Complicated system is recommended |
|
[2014-09-07 12:09:44 JST] (INFO) irc|taisukeoe|Q. Is there any famous project using Akka? |
|
[2014-09-07 12:09:07 JST] (INFO) irc|taisukeoe|Q. Is there any recommended project to learn Akka? |
|
[2014-09-07 12:09:42 JST] (INFO) irc|taisukeoe|A. There might be lists of project using Akka |
|
[2014-09-07 12:09:04 JST] (INFO) irc|taisukeoe|BTW, have you used Akka in your work? |
|
[2014-09-07 12:09:36 JST] (INFO) irc|taisukeoe|spray.io, websockets which receive something heavy, |
|
[2014-09-07 12:09:27 JST] (INFO) irc|taisukeoe|multiple batch processing |
|
[2014-09-07 12:09:08 JST] (INFO) twitter|misty320|もしかして: #ScalaMatsuri RT @kiris: domainモデルの変換にはfunctorが楽 #salamatsuri |
|
[2014-09-07 12:09:08 JST] (INFO) twitter|xga|E会場の続DDD話、Sprayの話出てきてドンピシャ #ScalaMatsuri |
|
[2014-09-07 12:09:08 JST] (INFO) twitter|naopi|http://t.co/PQU4o3rxHl #ScalaMatsuri |
|
[2014-09-07 12:09:08 JST] (INFO) twitter|ozw_sei|そういえば、ScalaMatsuriでAnorm使ってますって話一度も聞いてない #ScalaMatsuri |
|
[2014-09-07 12:09:08 JST] (INFO) twitter|m_dobashi|マイク混線つらい #ScalaMatsuri |
|
[2014-09-07 12:09:08 JST] (INFO) twitter|naopi|#ScalaMatsuri ピッツァとビールが届いたw |
|
[2014-09-07 12:09:08 JST] (INFO) twitter|saka1_p|Akkaのcontextは魔法に見える。やりたいことは分かるけど…… #ScalaMatsuri |
|
[2014-09-07 12:09:08 JST] (INFO) twitter|busterdayo|#ScalaMatsuri https://t.co/bSluxRvz8q Akka 2.0 - 2.1 しか対応してない |
|
[2014-09-07 12:09:10 JST] (INFO) irc|taisukeoe|local actor should initiate remote actors |
|
[2014-09-07 12:09:41 JST] (INFO) irc|taisukeoe|Any questions or comments? |
|
[2014-09-07 12:09:45 JST] (INFO) irc|taisukeoe|Are Actor and thread 1-1 relationship? "Now" |
|
[2014-09-07 12:09:48 JST] (INFO) irc|taisukeoe|No |
|
[2014-09-07 12:09:18 JST] (INFO) irc|taisukeoe|Does it change its internal thread while it's alive? |
|
[2014-09-07 12:09:22 JST] (INFO) irc|taisukeoe|"Yes" |
|
[2014-09-07 12:09:36 JST] (INFO) irc|taisukeoe|You must not "block" in receive function |
|
[2014-09-07 12:09:59 JST] (INFO) irc|taisukeoe|If you need to block something, you should not use Actors |
|
[2014-09-07 12:09:02 JST] (INFO) irc|taisukeoe|In Akka testing, we have to write "Thread.sleep(1000)" many times. |
|
[2014-09-07 12:09:25 JST] (INFO) irc|taisukeoe|That's why Test codes in Akka project needs around an hour |
|
[2014-09-07 12:09:31 JST] (INFO) irc|taisukeoe|How long should it sleep? Actor has APIs to retrieve number based on machine spec (!!) |
|
[2014-09-07 13:09:08 JST] (INFO) twitter|jumpersons|E部屋:DDDディスカッション 延長戦突入 #ScalaMatsuri になったけどスプレッドシート更新出来ない。これもできない・・・? >一度 Google Docs 開いてセッションログインさせたら編集モードになりましたよ。 |
|
[2014-09-07 13:09:08 JST] (INFO) twitter|shunjikonishi|Actorの理解だいたいあってた。そんな気はしてたけどやっぱりスレッドはころころ切り替わってたのね。#ScalaMatsuri |
|
[2014-09-07 13:09:08 JST] (INFO) twitter|kyo_ago|#ScalaMatsuri まだ見なおせてないけど、一応資料かけた。間に合ってよかった |
|
[2014-09-07 13:09:08 JST] (INFO) twitter|honyacho|軽食(寿司・ピザ) #ScalaMatsuri |
|
[2014-09-07 13:09:08 JST] (INFO) twitter|takezoen|アクターに限らないけど非同期分散処理のデバッグをスリープなしでやるにはBytemanみたいのを使うしかない気がする。 #ScalaMatsuri #ScalaMatsuri2 |
|
[2014-09-07 13:09:08 JST] (INFO) twitter|niw|sleepの倍率設定ができるテスト新しい #ScalaMatsuri |
|
[2014-09-07 13:09:08 JST] (INFO) twitter|takezoen|アクターのテストは確かにむずい。 #ScalaMatsuri #ScalaMatsuri2 |
|
[2014-09-07 13:09:08 JST] (INFO) twitter|gkojax|翻訳のルール https://t.co/NFlseYSvgy #ScalaMatsuri #rd |
|
[2014-09-07 13:09:08 JST] (INFO) twitter|wolf20xx|actorもそうなんだけど、非同期処理のテストって、なんかいい解決策ないかなあ、、と常に思っている。 #ScalaMatsuri #ScalaMatsuri2 |
|
[2014-09-07 13:09:08 JST] (INFO) twitter|takezoen|非同期分散処理のマネージメントをするのにリモートアクター使ってます。 #ScalaMatsuri #ScalaMatsuri2 |
|
[2014-09-07 13:09:08 JST] (INFO) twitter|saka1_p|Actorの中で状態を閉じ込める #ScalaMatsuri |
|
[2014-09-07 13:09:08 JST] (INFO) twitter|naopi|E部屋:DDDディスカッション 延長戦突入 #ScalaMatsuri |
|
[2014-09-07 13:09:11 JST] (INFO) twitter|cactaceae|小田好先生takipiのシャツ着てる #ScalaMatsuri |
|
[2014-09-07 13:09:11 JST] (INFO) twitter|jagd5168|sea-sue #ScalaMatsuri #ScalaMatsuri2 (FBより) http://t.co/XAYspoxN7k |
|
[2014-09-07 13:09:11 JST] (INFO) twitter|xuwei_k|.@pocketberserker そうですね。親のActorから来たメッセージを子供に送る際に、自分から来たわけではなく、親から来たという体でメッセージを受け流すというforwardという仕組みとか色々あるので、それ考えると型つけるの無理そうです #ScalaMatsuri |
|
[2014-09-07 13:09:12 JST] (INFO) twitter|naopi|小田好先生がコード書いている後ろで小学生がMBPで遊んでた(コード書いてた?) #ScalaMatsuri |
|
[2014-09-07 14:09:48 JST] (INFO) irc|eed3si9n|そろそろ時間ですね |
|
[2014-09-07 14:09:05 JST] (INFO) irc|eed3si9n|Spark の入門から始めます |
|
[2014-09-07 14:09:28 JST] (INFO) irc|eed3si9n|見た目は派手じゃないかもしれないけど、ローカルで自分で試す方法を今日は紹介 |
|
[2014-09-07 14:09:32 JST] (INFO) irc|niw|ぐぐりましょう |
|
[2014-09-07 14:09:37 JST] (INFO) irc|niw|ダウンロードします |
|
[2014-09-07 14:09:01 JST] (INFO) irc|eed3si9n|これはバイナリ |
|
[2014-09-07 14:09:44 JST] (INFO) irc|niw|bin/sparkで起動するのはlocalmodeなので |
|
[2014-09-07 14:09:44 JST] (INFO) irc|eed3si9n|シェルを使ってみる |
|
[2014-09-07 14:09:50 JST] (INFO) irc|niw|クラスターでは動いていない |
|
[2014-09-07 14:09:08 JST] (INFO) irc|niw|sc = スパークコンテキスト |
|
[2014-09-07 14:09:33 JST] (INFO) irc|eed3si9n|makeRDD でRDDを作る |
|
[2014-09-07 14:09:59 JST] (INFO) irc|eed3si9n|これは遅延データコレクション |
|
[2014-09-07 14:09:05 JST] (INFO) irc|niw|rdd.filter とかはビューを返すだけで実際には計算されない |
|
[2014-09-07 14:09:00 JST] (INFO) irc|niw|glomはなに? |
|
[2014-09-07 14:09:09 JST] (INFO) irc|eed3si9n|glom() はパーティションごとに区切る |
|
[2014-09-07 14:09:25 JST] (INFO) irc|niw|glomがないとパーティションが見えない |
|
[2014-09-07 14:09:29 JST] (INFO) irc|niw|それは普通の状態 |
|
[2014-09-07 14:09:47 JST] (INFO) irc|eed3si9n|タスクはそれぞれのパーティションで実行される |
|
[2014-09-07 14:09:04 JST] (INFO) irc|eed3si9n|changes.txt ファイルを読み込んでみる |
|
[2014-09-07 14:09:31 JST] (INFO) irc|eed3si9n|これも異なるノードに分散されてる |
|
[2014-09-07 14:09:35 JST] (INFO) irc|niw|word coundやってみよう |
|
[2014-09-07 14:09:40 JST] (INFO) irc|niw|count |
|
[2014-09-07 14:09:11 JST] (INFO) irc|eed3si9n|空文字でスプリットして文字に分ける |
|
[2014-09-07 14:09:22 JST] (INFO) irc|eed3si9n|文字じゃなくて、word か |
|
[2014-09-07 14:09:34 JST] (INFO) irc|niw|wordを(word → 1)のタプルにして... |
|
[2014-09-07 14:09:16 JST] (INFO) irc|eed3si9n|このタプルの配列を畳み込む |
|
[2014-09-07 14:09:19 JST] (INFO) irc|niw|keyごとにreduceすると |
|
[2014-09-07 14:09:54 JST] (INFO) irc|niw|トップ10が知りたいよね? |
|
[2014-09-07 14:09:58 JST] (INFO) irc|niw|その場合は... |
|
[2014-09-07 14:09:40 JST] (INFO) irc|niw|-0700がおおい |
|
[2014-09-07 14:09:50 JST] (INFO) irc|eed3si9n|-0700 が一番多い理由はこれが california のtimezone だから |
|
[2014-09-07 14:09:51 JST] (INFO) irc|niw|これはUTCにたいする西海岸時間の時差 |
|
[2014-09-07 14:09:20 JST] (INFO) irc|niw|他のファイルやってみよう |
|
[2014-09-07 14:09:31 JST] (INFO) irc|niw|いくつかサンプルのファイルが入ってます |
|
[2014-09-07 14:09:35 JST] (INFO) irc|niw|おやエラー |
|
[2014-09-07 14:09:50 JST] (INFO) irc|niw|名前と年齢がはいってるようですね |
|
[2014-09-07 14:09:00 JST] (INFO) irc|niw|じゃあcase classつくろう |
|
[2014-09-07 14:09:29 JST] (INFO) irc|niw|データよんでセミコロンいやカンマで区切ってPerson case classに変換 |
|
[2014-09-07 14:09:35 JST] (INFO) irc|eed3si9n|ここはちょっと手作業が入る |
|
[2014-09-07 14:09:47 JST] (INFO) irc|niw|# tupped つかえないのかな |
|
[2014-09-07 14:09:55 JST] (INFO) irc|niw|# 暗黙の型変換はされない? |
|
[2014-09-07 14:09:22 JST] (INFO) irc|eed3si9n|case class のRDDができた |
|
[2014-09-07 14:09:38 JST] (INFO) irc|eed3si9n|これにSQLを書いてみる |
|
[2014-09-07 14:09:53 JST] (INFO) irc|eed3si9n|3 行のbig data |
|
[2014-09-07 14:09:12 JST] (INFO) irc|eed3si9n|where age > 20 とかも動いた |
|
[2014-09-07 14:09:15 JST] (INFO) irc|niw|scalaのDSLでSQLできる |
|
[2014-09-07 14:09:52 JST] (INFO) irc|eed3si9n|だいたいこんな感じ |
|
[2014-09-07 14:09:57 JST] (INFO) irc|niw|spark summitのサイトに |
|
[2014-09-07 14:09:00 JST] (INFO) irc|niw|情報があるよ |
|
[2014-09-07 14:09:10 JST] (INFO) irc|niw|んー |
|
[2014-09-07 14:09:13 JST] (INFO) irc|niw|きっとどこかに |
|
[2014-09-07 14:09:19 JST] (INFO) irc|niw|よく探してみてw |
|
[2014-09-07 14:09:33 JST] (INFO) irc|eed3si9n|training archive に色々ある |
|
[2014-09-07 14:09:58 JST] (INFO) irc|niw|parquetFileはすげー圧縮されたデータ・フォーマット |
|
[2014-09-07 14:09:13 JST] (INFO) irc|eed3si9n|2GB のデータ |
|
[2014-09-07 14:09:31 JST] (INFO) irc|eed3si9n|Wikipedia のデータかな、これは |
|
[2014-09-07 14:09:40 JST] (INFO) irc|niw|registerAsTableしないと |
|
[2014-09-07 14:09:43 JST] (INFO) irc|niw|SQL実行できない |
|
[2014-09-07 14:09:08 JST] (INFO) irc|eed3si9n|Scala という言葉を含むwiki page |
|
[2014-09-07 14:09:29 JST] (INFO) irc|niw|Matsuriを含むもの一覧 |
|
[2014-09-07 14:09:53 JST] (INFO) irc|niw|・・っていう感じでした |
|
[2014-09-07 14:09:58 JST] (INFO) irc|eed3si9n|これで発表は終わり |
|
[2014-09-07 14:09:06 JST] (INFO) irc|eed3si9n|質問があったらしてね |
|
[2014-09-07 14:09:00 JST] (INFO) irc|eed3si9n|JOINクエリの方法 |
|
[2014-09-07 14:09:37 JST] (INFO) irc|eed3si9n|Hive バージョンならちゃんとしたSQL書ける |
|
[2014-09-07 14:09:39 JST] (INFO) irc|eed3si9n|spark.apache.org のダウンロードページへ行く |
|
[2014-09-07 14:09:39 JST] (INFO) irc|niw|最初の導入方法を教えて。 |
|
[2014-09-07 14:09:48 JST] (INFO) irc|niw|hadoop使わないんだったらどのバーションでもいいよ |
|
[2014-09-07 14:09:54 JST] (INFO) irc|niw|hadoopつかってるんだったら同じやつ選んでね |
|
[2014-09-07 14:09:34 JST] (INFO) irc|eed3si9n|step-by-step ガイドは spark-summit.org/2014/training にある |
|
[2014-09-07 14:09:19 JST] (INFO) irc|eed3si9n|we saw graph yestersday |
|
[2014-09-07 14:09:34 JST] (INFO) irc|eed3si9n|is it part of spark or databricks? |
|
[2014-09-07 14:09:48 JST] (INFO) irc|eed3si9n|any perf tips? |
|
[2014-09-07 14:09:08 JST] (INFO) irc|eed3si9n|in terms of Spark SQL |
|
[2014-09-07 14:09:11 JST] (INFO) irc|eed3si9n|SQL はランタイムから独立してるので、SQLの書き方は気にしなくてもいいはず |
|
[2014-09-07 14:09:25 JST] (INFO) irc|eed3si9n|JOIN 順とかは最適化していってます |
|
[2014-09-07 14:09:37 JST] (INFO) irc|eed3si9n|遅くなってるとしたら、バグなので報告してね |
|
[2014-09-07 14:09:05 JST] (INFO) irc|eed3si9n|Spark SQL は二ヶ月前にリリースしたので |
|
[2014-09-07 14:09:29 JST] (INFO) irc|eed3si9n|ちょっとまだコツとかは出せる時期になってない |
|
[2014-09-07 14:09:13 JST] (INFO) irc|eed3si9n|機械学習のデモ |
|
[2014-09-07 14:09:17 JST] (INFO) irc|eed3si9n|お願いします |
|
[2014-09-07 14:09:37 JST] (INFO) irc|eed3si9n|ちょっと準備してない、すいません |
|
[2014-09-07 14:09:46 JST] (INFO) irc|eed3si9n|このスライド見て |
|
[2014-09-07 14:09:28 JST] (INFO) irc|eed3si9n|Spark Stream のデモお願い |
|
[2014-09-07 14:09:56 JST] (INFO) irc|eed3si9n|ちょっとtwitter の認証とか準備してない |
|
[2014-09-07 14:09:36 JST] (INFO) irc|eed3si9n|メモリキャッシュがあるので反復処理の多い機械学習系に強い |
|
[2014-09-07 14:09:39 JST] (INFO) irc|eed3si9n|あとSQL |
|
[2014-09-07 14:09:15 JST] (INFO) irc|eed3si9n|これが他のbig dataと比較したときの強み |
|
[2014-09-07 14:09:44 JST] (INFO) irc|eed3si9n|summing bird はストリームとバッチの組み合わせが強い |
|
[2014-09-07 14:09:32 JST] (INFO) irc|eed3si9n|典型的なデータ量 |
|
[2014-09-07 14:09:47 JST] (INFO) irc|eed3si9n|ログは結構大きくなり得る |
|
[2014-09-07 14:09:52 JST] (INFO) irc|taisukeoe|big dataとはいかないまでも、中ぐらいの量のデータ、例えばlogのstreaming processingにSparkを使うことについてはどう思うか |
|
[2014-09-07 14:09:25 JST] (INFO) irc|eed3si9n|まだ値段モデルは決めてません |
|
[2014-09-07 14:09:43 JST] (INFO) irc|eed3si9n|これからclosedベータに入る予定 |
|
[2014-09-07 14:09:53 JST] (INFO) irc|eed3si9n|freemium モデルを考えてる |
|
[2014-09-07 14:09:41 JST] (INFO) irc|eed3si9n|障害耐性について |
|
[2014-09-07 14:09:10 JST] (INFO) irc|eed3si9n|一時的な障害 |
|
[2014-09-07 14:09:37 JST] (INFO) irc|okapies|あるいはワーカーノードの障害。ドライバーノードが落ちたらダメ |
|
[2014-09-07 14:09:57 JST] (INFO) irc|eed3si9n|Spark の内部ではこのような計算は2つのステージに分かれてる |
|
[2014-09-07 14:09:13 JST] (INFO) irc|eed3si9n|最初のステージはこんな感じで |
|
[2014-09-07 14:09:36 JST] (INFO) irc|eed3si9n|タスクをどんどん作っていく |
|
[2014-09-07 14:09:45 JST] (INFO) irc|taisukeoe|3つのマシンで考える。 |
|
[2014-09-07 14:09:36 JST] (INFO) irc|eed3si9n|手の空いてるクラスタがタスクをこなしていく |
|
[2014-09-07 14:09:10 JST] (INFO) irc|eed3si9n|タスクが失敗したら、再実行 |
|
[2014-09-07 14:09:32 JST] (INFO) irc|taisukeoe|タスクが失敗したとき、最初に手があいた他のマシンがそのタスクを再実行する |
|
[2014-09-07 14:09:41 JST] (INFO) irc|eed3si9n|あるタスクは以前に走ったタスクの結果を pull することもある |
|
[2014-09-07 14:09:51 JST] (INFO) irc|eed3si9n|それがさっきの赤い線 |
|
[2014-09-07 14:09:14 JST] (INFO) irc|eed3si9n|最初のクラスタが死ぬとすると |
|
[2014-09-07 14:09:27 JST] (INFO) irc|eed3si9n|そこで走ったタスクを再実行する必要がある |
|
[2014-09-07 14:09:17 JST] (INFO) irc|eed3si9n|どこか別のクラスタで(落ちた分だけ)再実行する |
|
[2014-09-07 14:09:04 JST] (INFO) irc|eed3si9n|how does fault tolerance model in streaming? |
|
[2014-09-07 14:09:07 JST] (INFO) irc|eed3si9n|work |
|
[2014-09-07 14:09:31 JST] (INFO) irc|eed3si9n|Spark Stream はデータがどう入ってくるかによる |
|
[2014-09-07 14:09:43 JST] (INFO) irc|eed3si9n|データ・ソースによっては障害耐性が無い |
|
[2014-09-07 14:09:55 JST] (INFO) irc|eed3si9n|1.2 ではその辺を改善予定 |
|
[2014-09-07 14:09:09 JST] (INFO) irc|eed3si9n|HTFSを使って保証すると、遅くなるけど安全にはなる |
|
[2014-09-07 15:09:52 JST] (INFO) irc|eed3si9n|Scala 「シンプルなパーツ」 |
|
[2014-09-07 15:09:36 JST] (INFO) irc|eed3si9n|遅刻しちゃってすいません |
|
[2014-09-07 15:09:10 JST] (INFO) irc|eed3si9n|DOT計算はちょっとホワイトボード見づらいと思うのでこれにします |
|
[2014-09-07 15:09:21 JST] (INFO) irc|taisukeoe|なんでこの話題を選んだか。僕が、より深く話せると思ったからです。 |
|
[2014-09-07 15:09:50 JST] (INFO) irc|taisukeoe|DOTについてリクエストはいただいていたんですが、ちょっとここで話すには複雑すぎるかなと思いました。 |
|
[2014-09-07 15:09:56 JST] (INFO) irc|eed3si9n|複雑さということがよく言われるので、シンプルさについて |
|
[2014-09-07 15:09:22 JST] (INFO) irc|eed3si9n|十年でコミュニティは大きく成長した |
|
[2014-09-07 15:09:58 JST] (INFO) irc|okapies|Coursera の関数プログラミングとリアクティブプログラミングのコースの受講者が合わせて20万人を超えた |
|
[2014-09-07 15:09:25 JST] (INFO) irc|eed3si9n|redmonk でも13位 |
|
[2014-09-07 15:09:02 JST] (INFO) irc|taisukeoe|それなのに、Scalaはちょっと賛否の別れるものだと思われています。なんででしょう? |
|
[2014-09-07 15:09:13 JST] (INFO) irc|taisukeoe|(他の言語より) |
|
[2014-09-07 15:09:35 JST] (INFO) irc|eed3si9n|Scala の目指すべき方向性の意見の違い |
|
[2014-09-07 15:09:53 JST] (INFO) irc|eed3si9n|色んなコミュニティから人が集まってるので |
|
[2014-09-07 15:09:11 JST] (INFO) irc|taisukeoe|コミュニティ内部で賛否が分かれているポイントとして、目指している方向がそれぞれ違っている、というものがあります。 |
|
[2014-09-07 15:09:17 JST] (INFO) irc|eed3si9n|Scala が議論の場になってるところがある |
|
[2014-09-07 15:09:37 JST] (INFO) irc|eed3si9n|Scala の型は難しいという人もいれば |
|
[2014-09-07 15:09:51 JST] (INFO) irc|eed3si9n|Scala の型は安全性に欠けているといういる人もいる |
|
[2014-09-07 15:09:54 JST] (INFO) irc|taisukeoe|コミュニティ外部で賛否が別れているところ: |
|
[2014-09-07 15:09:09 JST] (INFO) irc|taisukeoe|Scalaは学術的すぎるという人 |
|
[2014-09-07 15:09:37 JST] (INFO) irc|taisukeoe|Scalaは産業界に迎合しているという人 |
|
[2014-09-07 15:09:05 JST] (INFO) irc|okapies|C# は 4回も、C++ は 10 回もアップデート(?)してる(Scala は 3 回) |
|
[2014-09-07 15:09:16 JST] (INFO) irc|eed3si9n|今後の課題はScala は何なのかのハッキリした考えを示すべき |
|
[2014-09-07 15:09:27 JST] (INFO) irc|taisukeoe|Scalaは必要以上になんでもかんでも入れ過ぎ、という人もいる |
|
[2014-09-07 15:09:38 JST] (INFO) irc|eed3si9n|今までこの絵で説明してきた |
|
[2014-09-07 15:09:17 JST] (INFO) irc|eed3si9n|以前聞いた話ではtwitter社は 4M sloc |
|
[2014-09-07 15:09:32 JST] (INFO) irc|eed3si9n|スケーラブルって何? |
|
[2014-09-07 15:09:33 JST] (INFO) irc|taisukeoe|これは1998のときの話 |
|
[2014-09-07 15:09:53 JST] (INFO) irc|taisukeoe|最初の意味は「成長できる」ということ |
|
[2014-09-07 15:09:14 JST] (INFO) irc|eed3si9n|言語設計という視点での「成長できる」言語 |
|
[2014-09-07 15:09:29 JST] (INFO) irc|okapies|スケーラブルとは何か? 一つは(言語のエコシステムの)成長、もう一つは小さなところから大きなシステムまで使えること |
|
[2014-09-07 15:09:36 JST] (INFO) irc|taisukeoe|ライブラリを追加することによって、新しい言語になれる(DSLでも普通の言語でも) |
|
[2014-09-07 15:09:00 JST] (INFO) irc|eed3si9n|Scala は成長できる言語 |
|
[2014-09-07 15:09:10 JST] (INFO) irc|eed3si9n|柔軟な構文 |
|
[2014-09-07 15:09:14 JST] (INFO) irc|eed3si9n|柔軟な型システム |
|
[2014-09-07 15:09:23 JST] (INFO) irc|taisukeoe|2つ目の意味では、成長"させる"ことができる言語ということ |
|
[2014-09-07 15:09:23 JST] (INFO) irc|eed3si9n|ユーザ定義可能な演算子 |
|
[2014-09-07 15:09:40 JST] (INFO) irc|eed3si9n|2つ目の方は後回し |
|
[2014-09-07 15:09:05 JST] (INFO) irc|eed3si9n|言語は抽象化に徹して、ライブラリで高度な機能を実現するよ |
|
[2014-09-07 15:09:16 JST] (INFO) irc|eed3si9n|DSLは諸刃の剣(このスライドは前にも見た |
|
[2014-09-07 15:09:49 JST] (INFO) irc|eed3si9n|成長できるというだけで考えれば Lisp もそうだけど |
|
[2014-09-07 15:09:04 JST] (INFO) irc|eed3si9n|何でも自分でやるとなると、コミュニティーの分断化が起こる |
|
[2014-09-07 15:09:19 JST] (INFO) irc|taisukeoe|これは、いわゆる「Lispの呪い」 |
|
[2014-09-07 15:09:21 JST] (INFO) irc|eed3si9n|(だからバベルの塔) |
|
[2014-09-07 15:09:55 JST] (INFO) irc|taisukeoe|そもそも、万人に好かれる言語なんて存在しない |
|
[2014-09-07 15:09:07 JST] (INFO) irc|eed3si9n|スケーラブルの2つ目の意味 |
|
[2014-09-07 15:09:14 JST] (INFO) irc|eed3si9n|「成長を可能とする」言語 |
|
[2014-09-07 15:09:29 JST] (INFO) irc|eed3si9n|小さいスクリプトから |
|
[2014-09-07 15:09:39 JST] (INFO) irc|eed3si9n|大きな問題まで |
|
[2014-09-07 15:09:34 JST] (INFO) irc|eed3si9n|コンパイラの速度という意味では課題も残ってる |
|
[2014-09-07 15:09:51 JST] (INFO) irc|eed3si9n|何がこの成長を可能としてるか |
|
[2014-09-07 15:09:19 JST] (INFO) irc|taisukeoe|関数型言語の人も、オブジェクト指向の人も、お互いを嫌い合ってるようなことがある |
|
[2014-09-07 15:09:30 JST] (INFO) irc|eed3si9n|OOとFPの組み合わせの新しい名前が必要 |
|
[2014-09-07 15:09:35 JST] (INFO) irc|eed3si9n|モジュラー言語 |
|
[2014-09-07 15:09:46 JST] (INFO) irc|eed3si9n|ちょっと古いけど、これを提案したい |
|
[2014-09-07 15:09:48 JST] (INFO) irc|taisukeoe|モジュラーとはどういう意味か |
|
[2014-09-07 15:09:04 JST] (INFO) irc|okapies|「単純な」部品を組み合わせる |
|
[2014-09-07 15:09:15 JST] (INFO) irc|eed3si9n|モジュラー・プログラミング |
|
[2014-09-07 15:09:01 JST] (INFO) irc|eed3si9n|リッチヒッキーの「シンプルさの必要性」みた事ある人? |
|
[2014-09-07 15:09:02 JST] (INFO) irc|taisukeoe|モジュールは、それぞれが単純なパーツであるべき。 |
|
[2014-09-07 15:09:08 JST] (INFO) irc|taisukeoe|それらを組み合わせることで面白いものを作ることができる。 |
|
[2014-09-07 15:09:53 JST] (INFO) irc|eed3si9n|C やC++的な von-neumann モデルを採用すると同じボトルネックにハマる |
|
[2014-09-07 15:09:26 JST] (INFO) irc|eed3si9n|メモリセルは良いモデルじゃないという話 |
|
[2014-09-07 15:09:45 JST] (INFO) irc|eed3si9n|modula-2 も似たようなモデル |
|
[2014-09-07 15:09:52 JST] (INFO) irc|eed3si9n|ハードウェアに近すぎた |
|
[2014-09-07 15:09:08 JST] (INFO) irc|eed3si9n|今はもっと抽象的なモデルを作れる |
|
[2014-09-07 15:09:33 JST] (INFO) irc|eed3si9n|彼は Fortran の作者 |
|
[2014-09-07 15:09:34 JST] (INFO) irc|okapies|John Backus は FORTRAN の開発者 |
|
[2014-09-07 15:09:07 JST] (INFO) irc|eed3si9n|チューリング賞を受賞したけど、受賞時にはもうFORTRAN オワコンと言ってた |
|
[2014-09-07 15:09:46 JST] (INFO) irc|eed3si9n|メモリを一つ一つ読み込まなければいけない問題を von-neumann bottleneck と呼んだ |
|
[2014-09-07 15:09:06 JST] (INFO) irc|eed3si9n|もう一つの小田好先生が影響を受けたペーパー |
|
[2014-09-07 15:09:18 JST] (INFO) irc|eed3si9n|関数型の始祖ではと思ってる |
|
[2014-09-07 15:09:26 JST] (INFO) irc|taisukeoe|関数型プログラミングによって、モジュール同士を自由に組み合わせる事ができる。 |
|
[2014-09-07 15:09:30 JST] (INFO) irc|taisukeoe|モジュラープログラミングをに必須の概念。 |
|
[2014-09-07 15:09:38 JST] (INFO) irc|taisukeoe|s/を//g |
|
[2014-09-07 15:09:00 JST] (INFO) irc|eed3si9n|関数型だからといってそれがモジュラーだとは限らない |
|
[2014-09-07 15:09:17 JST] (INFO) irc|okapies|Haskell の型クラスはプログラム全てで単一の実装を持つ |
|
[2014-09-07 15:09:02 JST] (INFO) irc|eed3si9n|そのためモジュール性が損なわれる |
|
[2014-09-07 15:09:01 JST] (INFO) irc|okapies|OO言語は古典的なモジュラー言語の後継者だけど、常にモジュラーではない |
|
[2014-09-07 15:09:05 JST] (INFO) irc|eed3si9n|同じインターフェイスに対して、複数の実装を持つという点でOO言語はモジュール言語の後継と考えることができる |
|
[2014-09-07 15:09:58 JST] (INFO) irc|eed3si9n|simple と easy は別物 |
|
[2014-09-07 15:09:36 JST] (INFO) irc|okapies|1. 合成 |
|
[2014-09-07 15:09:41 JST] (INFO) irc|eed3si9n|# これ参照 http://eed3si9n.com/ja/simplicity-matters |
|
[2014-09-07 15:09:30 JST] (INFO) irc|eed3si9n|全ては式 (expression) |
|
[2014-09-07 15:09:36 JST] (INFO) irc|eed3si9n|if 式など |
|
[2014-09-07 15:09:01 JST] (INFO) irc|eed3si9n|構文はお互いを合成可能できるようになってる |
|
[2014-09-07 15:09:30 JST] (INFO) irc|eed3si9n|マッチは分解機能だから、合成の逆操作 |
|
[2014-09-07 15:09:24 JST] (INFO) irc|taisukeoe|シンプルで柔軟。ちょっとだけ冗長になっちゃうけどね。 |
|
[2014-09-07 15:09:47 JST] (INFO) irc|eed3si9n|シンプルにするために全ては型で表す |
|
[2014-09-07 15:09:05 JST] (INFO) irc|eed3si9n|例外はちょっとこのモデルの例外 |
|
[2014-09-07 15:09:15 JST] (INFO) irc|taisukeoe|3. グループ |
|
[2014-09-07 15:09:37 JST] (INFO) irc|eed3si9n|何でもグループ化したり入れ子にしたりできる |
|
[2014-09-07 15:09:58 JST] (INFO) irc|eed3si9n|静的なスコープが基本 |
|
[2014-09-07 15:09:20 JST] (INFO) irc|eed3si9n|古典的な手続き型言語だとループに何でもかく傾向にあるけども、Scala だと関数を書いてそれを高階関数に渡す |
|
[2014-09-07 15:09:33 JST] (INFO) irc|eed3si9n|名前を付けるの大切 |
|
[2014-09-07 15:09:48 JST] (INFO) irc|eed3si9n|一行ごとに意味のある名前を定義する!! |
|
[2014-09-07 15:09:52 JST] (INFO) irc|taisukeoe|コツとして、一つの式に色々入れすぎ無い方がいい。 |
|
[2014-09-07 15:09:59 JST] (INFO) irc|eed3si9n|これテストに出る |
|
[2014-09-07 15:09:37 JST] (INFO) irc|taisukeoe|一つの式で色々できることは驚くべきことだけど、そうしなきゃいけないということはない。 |
|
[2014-09-07 15:09:40 JST] (INFO) irc|eed3si9n|同じロジックだけど、一行ごとに意味のある名前を付けてみた |
|
[2014-09-07 15:09:15 JST] (INFO) irc|eed3si9n|一行ごとに意味のある名前を定義する。大切なことなのでもう一度 |
|
[2014-09-07 15:09:56 JST] (INFO) irc|okapies|4. 再帰 |
|
[2014-09-07 15:09:59 JST] (INFO) irc|eed3si9n|# 後で読む人のことも考えるということ |
|
[2014-09-07 15:09:46 JST] (INFO) irc|eed3si9n|コレクションとかflatMap でできるなら、それに越したことはない |
|
[2014-09-07 15:09:30 JST] (INFO) irc|okapies|flatMap では煩雑になる時は再帰で書いた方が良いことがある |
|
[2014-09-07 15:09:37 JST] (INFO) irc|eed3si9n|パターンマッチングと再帰の呼び出しは相性いい |
|
[2014-09-07 15:09:01 JST] (INFO) irc|eed3si9n|これはパフォーマンスのペナルティ無し |
|
[2014-09-07 15:09:28 JST] (INFO) irc|eed3si9n|高階関数は、ペナルティがある |
|
[2014-09-07 15:09:44 JST] (INFO) irc|eed3si9n|だからカリカリに速くしたいときは再帰が便利 |
|
[2014-09-07 15:09:06 JST] (INFO) irc|taisukeoe|再帰は任意の回数繰り返せるし、ほぼ全ての場合でloopよりすぐれている |
|
[2014-09-07 15:09:14 JST] (INFO) irc|taisukeoe|5.抽象化 |
|
[2014-09-07 15:09:15 JST] (INFO) irc|eed3si9n|だけど、ちょっとボイラープレート多め |
|
[2014-09-07 15:09:51 JST] (INFO) irc|eed3si9n|関数は抽象的な式 |
|
[2014-09-07 15:09:53 JST] (INFO) irc|taisukeoe|関数は抽象化された式。値でもある。名前をつけても、無名でもOK。 |
|
[2014-09-07 15:09:28 JST] (INFO) irc|okapies|6. 集約 |
|
[2014-09-07 15:09:31 JST] (INFO) irc|eed3si9n|Python では関数に名前を付ける必要があるけど、そっち寄りの方が正しいことが多い |
|
[2014-09-07 15:09:03 JST] (INFO) irc|eed3si9n|コレクションはデータの集約 |
|
[2014-09-07 15:09:19 JST] (INFO) irc|okapies|Spark のように、巨大なコレクションでも同じ考え方をtukaxtuteiru |
|
[2014-09-07 15:09:22 JST] (INFO) irc|okapies|使っている |
|
[2014-09-07 15:09:27 JST] (INFO) irc|eed3si9n|Scala Collection の演算数はちょっと多いんだけど |
|
[2014-09-07 15:09:45 JST] (INFO) irc|taisukeoe|Transform(変換)はCRUDの代わり。 |
|
[2014-09-07 15:09:51 JST] (INFO) irc|eed3si9n|基本的に色々再利用してるので、同じ演算には同じ名前を使ってるはず |
|
[2014-09-07 15:09:12 JST] (INFO) irc|taisukeoe|だから一つ学べば、他のところにも活用できる |
|
[2014-09-07 15:09:43 JST] (INFO) irc|eed3si9n|Scala Collection 使ってる人の多くはうまくいってると言ってるんだけど |
|
[2014-09-07 15:09:51 JST] (INFO) irc|eed3si9n|型が嘘という批判もある |
|
[2014-09-07 15:09:27 JST] (INFO) irc|eed3si9n|map の戻り型が「汚い」「嘘」 |
|
[2014-09-07 15:09:22 JST] (INFO) irc|eed3si9n|map を使う側からすると、Array[Int] という戻り型だと思ってても問題無い |
|
[2014-09-07 15:09:52 JST] (INFO) irc|eed3si9n|自分でコレクションを実装するだけが生の型を知ってる必要がある |
|
[2014-09-07 15:09:19 JST] (INFO) irc|eed3si9n|昔はそれぞれコレクションごとに実装を繰り返してた |
|
[2014-09-07 15:09:28 JST] (INFO) irc|taisukeoe|ここが複雑だからといって、言語全体が複雑だという主張はおかしい |
|
[2014-09-07 15:09:33 JST] (INFO) irc|eed3si9n|戻り型は良かったけど、実装がバラバラに |
|
[2014-09-07 15:09:52 JST] (INFO) irc|eed3si9n|CanBuildFrom の理由 |
|
[2014-09-07 15:09:18 JST] (INFO) irc|taisukeoe|なんで(CanBuildFromを使わずに)こんな風に定義しないのか? |
|
[2014-09-07 15:09:18 JST] (INFO) irc|eed3si9n|Functor をこんなふうに定義すれば? |
|
[2014-09-07 15:09:26 JST] (INFO) irc|eed3si9n|これは配列だとうまくいかない |
|
[2014-09-07 15:09:55 JST] (INFO) irc|eed3si9n|Javaの配列は言語設計者泣かせ |
|
[2014-09-07 15:09:12 JST] (INFO) irc|taisukeoe|配列を生成するにはクラスの情報(tag)が必要だから、うまくいかない |
|
[2014-09-07 15:09:51 JST] (INFO) irc|eed3si9n|集合、並び順とか、完全な抽象化だと実用的じゃないことが多い |
|
[2014-09-07 15:09:12 JST] (INFO) irc|eed3si9n|7. 可変性 |
|
[2014-09-07 15:09:38 JST] (INFO) irc|taisukeoe|可変であることは、モジュラーに反していないか? |
|
[2014-09-07 15:09:18 JST] (INFO) irc|eed3si9n|自律して使うと、可変的なコードもボイラープレートを防げることも多い |
|
[2014-09-07 15:09:45 JST] (INFO) irc|eed3si9n|効率性のため |
|
[2014-09-07 15:09:04 JST] (INFO) irc|eed3si9n|関数型の利点にキャッシュという考えがある |
|
[2014-09-07 15:09:29 JST] (INFO) irc|eed3si9n|既に同じものを計算済みならそれをメモリ化できるよね |
|
[2014-09-07 15:09:36 JST] (INFO) irc|eed3si9n|メモ化 |
|
[2014-09-07 15:09:01 JST] (INFO) irc|eed3si9n|ここで可変コレクションが効く |
|
[2014-09-07 15:09:30 JST] (INFO) irc|eed3si9n|lazy val はあるけど、これは使い道が限られている |
|
[2014-09-07 15:09:03 JST] (INFO) irc|eed3si9n|永続化 |
|
[2014-09-07 15:09:32 JST] (INFO) irc|eed3si9n|マップに何でも入れてもいいけど、やりすぎるとメモリリークになる |
|
[2014-09-07 16:09:39 JST] (INFO) irc|eed3si9n|このあたりは厳密には関数型ではなくても、モジュール性を壊さない内部実装では役立つテクニック |
|
[2014-09-07 16:09:11 JST] (INFO) irc|taisukeoe|このあたりはdotcという、新しく作っているScalaのコンパイラの実装でも使ってる |
|
[2014-09-07 16:09:26 JST] (INFO) irc|eed3si9n|コンパイラ内部でのフレッシュなシンボル名とか |
|
[2014-09-07 16:09:47 JST] (INFO) irc|taisukeoe|なんでモナドを使わないのか? |
|
[2014-09-07 16:09:22 JST] (INFO) irc|eed3si9n|モナドにも制限がある |
|
[2014-09-07 16:09:31 JST] (INFO) irc|eed3si9n|下がモナド化した例 |
|
[2014-09-07 16:09:57 JST] (INFO) irc|eed3si9n|継承関係を検査するisSubType の具体例 |
|
[2014-09-07 16:09:36 JST] (INFO) irc|eed3si9n|if 式のかわりに for 式で結果を引っ張り出す必要がある |
|
[2014-09-07 16:09:59 JST] (INFO) irc|eed3si9n|どっちがベター? |
|
[2014-09-07 16:09:02 JST] (INFO) irc|taisukeoe|場合による |
|
[2014-09-07 16:09:03 JST] (INFO) irc|eed3si9n|これは関数型原理派に反する考えかもしれないけど、私は上でいいと思ってる |
|
[2014-09-07 16:09:12 JST] (INFO) irc|eed3si9n|型付けの話 |
|
[2014-09-07 16:09:55 JST] (INFO) irc|eed3si9n|型安全性と関数型は混乱されることがあるけども、直交する話だよね? |
|
[2014-09-07 16:09:59 JST] (INFO) irc|eed3si9n|どれが正しいとも言えない。それぞれ利点・欠点のトレードオフがある |
|
[2014-09-07 16:09:07 JST] (INFO) irc|taisukeoe|ここで紹介している5つの言語に「正解」はない。全部トレードオフがある |
|
[2014-09-07 16:09:50 JST] (INFO) irc|eed3si9n|これらが私の考えるシンプルなパーツ |
|
[2014-09-07 16:09:27 JST] (INFO) irc|eed3si9n|DOTTY とOCaml の質問があります |
|
[2014-09-07 16:09:05 JST] (INFO) irc|eed3si9n|DOTTY JVM 決め打ちにしてくるのか、もっと汎用的な所を目指すのか |
|
[2014-09-07 16:09:30 JST] (INFO) irc|eed3si9n|OCaml の考えが聞きたい? |
|
[2014-09-07 16:09:08 JST] (INFO) irc|eed3si9n|JVM そのものもラムダ入ったり、進化してる |
|
[2014-09-07 16:09:43 JST] (INFO) irc|eed3si9n|そのため、汎用化に役立つこともある |
|
[2014-09-07 16:09:09 JST] (INFO) irc|eed3si9n|だけど、overloading とかJVMとの互換性で気を使う必要がある |
|
[2014-09-07 16:09:32 JST] (INFO) irc|okapies|ユーザにはうれしいけどコンパイラ作者にとっては大変 |
|
[2014-09-07 16:09:51 JST] (INFO) irc|taisukeoe|JavaScriptはoverloadingについてはパワフル |
|
[2014-09-07 16:09:17 JST] (INFO) irc|eed3si9n|overloading と型消去でだいたいやることは決まってくる |
|
[2014-09-07 16:09:25 JST] (INFO) irc|okapies|OCaml はモジュラー性について? |
|
[2014-09-07 16:09:31 JST] (INFO) irc|taisukeoe|色々制約はあるけどそれが僕らの住んでるリアルな世界だから仕方ない |
|
[2014-09-07 17:09:38 JST] (INFO) irc|taisukeoe|Scaling Scala: Panel Discussion |
|
[2014-09-07 17:09:53 JST] (INFO) irc|eed3si9n|theme: scaling Scala |
|
[2014-09-07 17:09:09 JST] (INFO) irc|eed3si9n|both in terms of perf and scaling to larger teams |
|
[2014-09-07 17:09:11 JST] (INFO) irc|taisukeoe|Let me introduce panelers |
|
[2014-09-07 17:09:47 JST] (INFO) irc|taisukeoe|Yoshida-san: I'm a committer of Scalaz,sbt,ScalikeJDBC.. and others. |
|
[2014-09-07 17:09:58 JST] (INFO) irc|eed3si9n|Dwango |
|
[2014-09-07 17:09:20 JST] (INFO) irc|eed3si9n|Cyberagent |
|
[2014-09-07 17:09:26 JST] (INFO) irc|eed3si9n|niwa san from twitter |
|
[2014-09-07 17:09:31 JST] (INFO) irc|taisukeoe|Fukuhara-san in CyberAgent |
|
[2014-09-07 17:09:23 JST] (INFO) irc|eed3si9n|kato-san worked for GREE for a while so that may be useful |
|
[2014-09-07 17:09:31 JST] (INFO) irc|taisukeoe|Kato-san from ChatWork, lead in internal chat system in GREE |
|
[2014-09-07 17:09:00 JST] (INFO) irc|eed3si9n|sera-san from M3. i've been looking into AWS lately |
|
[2014-09-07 17:09:58 JST] (INFO) irc|eed3si9n|if Scala is not a bottleneck, it's mostly about db etc |
|
[2014-09-07 17:09:36 JST] (INFO) irc|eed3si9n|for profiling we are using gatling |
|
[2014-09-07 17:09:53 JST] (INFO) irc|eed3si9n|kato: scaling separates into CPU-bound and IO-bound |
|
[2014-09-07 17:09:11 JST] (INFO) irc|eed3si9n|for CPU-bound, Scala is easy to scale |
|
[2014-09-07 17:09:21 JST] (INFO) irc|eed3si9n|the difficulty is IO-bound issues |
|
[2014-09-07 17:09:30 JST] (INFO) irc|eed3si9n|then, it's not really about Scala |
|
[2014-09-07 17:09:31 JST] (INFO) irc|eed3si9n|using Future[_] and Akka, Scala can scale CPU bound bottlenecks |
|
[2014-09-07 17:09:47 JST] (INFO) irc|eed3si9n|for IO-bound |
|
[2014-09-07 17:09:15 JST] (INFO) irc|eed3si9n|esp. for type of data that cannot be handled by a single MySQL, there are still challenges |
|
[2014-09-07 17:09:32 JST] (INFO) irc|eed3si9n|development around this area is needed |
|
[2014-09-07 17:09:41 JST] (INFO) irc|eed3si9n|maybe limited in demand |
|
[2014-09-07 17:09:57 JST] (INFO) irc|eed3si9n|Dyamo, maybe? |
|
[2014-09-07 17:09:25 JST] (INFO) irc|eed3si9n|for twitter |
|
[2014-09-07 17:09:41 JST] (INFO) irc|taisukeoe|2000 employees, 1000 engineers |
|
[2014-09-07 17:09:41 JST] (INFO) irc|eed3si9n|ppl wonder why we have so many ppl for such a simple service |
|
[2014-09-07 17:09:56 JST] (INFO) irc|eed3si9n|it would be easy if it were only 100 users |
|
[2014-09-07 17:09:07 JST] (INFO) irc|eed3si9n|the initial version of twitter used to use MySQL |
|
[2014-09-07 17:09:10 JST] (INFO) irc|eed3si9n|to scale |
|
[2014-09-07 17:09:36 JST] (INFO) irc|eed3si9n|it's about serving millions and billions of users |
|
[2014-09-07 17:09:04 JST] (INFO) irc|eed3si9n|scaling is not about scaling for traffic |
|
[2014-09-07 17:09:17 JST] (INFO) irc|eed3si9n|for the number of libraries, Scala scales good |
|
[2014-09-07 17:09:27 JST] (INFO) irc|eed3si9n|instead of Ruby, Scala has static types |
|
[2014-09-07 17:09:35 JST] (INFO) irc|eed3si9n|finagle can unify all |
|
[2014-09-07 17:09:59 JST] (INFO) irc|eed3si9n|it returns everything Future |
|
[2014-09-07 17:09:42 JST] (INFO) irc|eed3si9n|various services are called all via Future, and not evaluated as late as possible |
|
[2014-09-07 17:09:00 JST] (INFO) irc|eed3si9n|finagle helps in scaling the organization |
|
[2014-09-07 17:09:20 JST] (INFO) irc|eed3si9n|i didn't know about the term microservice |
|
[2014-09-07 17:09:31 JST] (INFO) irc|eed3si9n|to us, it's our everyday life |
|
[2014-09-07 17:09:43 JST] (INFO) irc|eed3si9n|we started with a single monolithic "twitter" |
|
[2014-09-07 17:09:50 JST] (INFO) irc|eed3si9n|the problem comes down to deployment |
|
[2014-09-07 17:09:58 JST] (INFO) irc|eed3si9n|so we split everything up |
|
[2014-09-07 17:09:35 JST] (INFO) irc|eed3si9n|sera: for us, the number of doctors are limited |
|
[2014-09-07 17:09:20 JST] (INFO) irc|eed3si9n|for Java, we needed lots of boilerplate to do async |
|
[2014-09-07 17:09:25 JST] (INFO) irc|eed3si9n|Scala makes that easier |
|
[2014-09-07 17:09:54 JST] (INFO) irc|eed3si9n|Fukuhara: we tend to use it for backend service like ad distribution |
|
[2014-09-07 17:09:20 JST] (INFO) irc|eed3si9n|when we just started, we thought parallel might work |
|
[2014-09-07 17:09:30 JST] (INFO) irc|eed3si9n|but eventually switched to Future |
|
[2014-09-07 17:09:22 JST] (INFO) irc|eed3si9n|Yoshida: i'm working on backend of niconico |
|
[2014-09-07 17:09:43 JST] (INFO) irc|eed3si9n|niconico consists of many services which needs to share data |
|
[2014-09-07 17:09:51 JST] (INFO) irc|illabout|(niconico is japanese video site like youtube) |
|
[2014-09-07 17:09:03 JST] (INFO) irc|eed3si9n|eventually we settle on communicating to each other via API |
|
[2014-09-07 17:09:25 JST] (INFO) irc|illabout|Scala is nice to use for backend services. |
|
[2014-09-07 17:09:27 JST] (INFO) irc|eed3si9n|Scala is good that doing these microservicws |
|
[2014-09-07 17:09:48 JST] (INFO) irc|illabout|Kato: we were using finagle. |
|
[2014-09-07 17:09:50 JST] (INFO) irc|eed3si9n|Kato: we also used to use finagle |
|
[2014-09-07 17:09:30 JST] (INFO) irc|eed3si9n|it's hard to convert between Scala type and twitter types |
|
[2014-09-07 17:09:50 JST] (INFO) irc|illabout|We were able to use all the server resources (such as using up all 24 cores) on backend machines by using futures |
|
[2014-09-07 17:09:31 JST] (INFO) irc|eed3si9n|Akka on the other hand assumes synchrous inside |
|
[2014-09-07 17:09:43 JST] (INFO) irc|illabout|Q: Is there any questions about scaling backend systems? |
|
[2014-09-07 17:09:32 JST] (INFO) irc|eed3si9n|how about what Scala is not good at? |
|
[2014-09-07 17:09:41 JST] (INFO) irc|eed3si9n|how would one pass around transaction context? |
|
[2014-09-07 17:09:47 JST] (INFO) irc|eed3si9n|implicits? |
|
[2014-09-07 17:09:23 JST] (INFO) irc|eed3si9n|sera: I think it's ok to use implicits here |
|
[2014-09-07 17:09:37 JST] (INFO) irc|eed3si9n|for servlets you can use thread local |
|
[2014-09-07 17:09:56 JST] (INFO) irc|eed3si9n|yoshida: I hate passing around context objects |
|
[2014-09-07 17:09:19 JST] (INFO) irc|eed3si9n|for work, i would likely do what others are doing |
|
[2014-09-07 17:09:54 JST] (INFO) irc|eed3si9n|how is twitter solving this issue? |
|
[2014-09-07 17:09:04 JST] (INFO) irc|eed3si9n|it depends on the project |
|
[2014-09-07 17:09:43 JST] (INFO) irc|eed3si9n|for some project, all methods take context object as the first arg |
|
[2014-09-07 17:09:48 JST] (INFO) irc|eed3si9n|niwa: in general, I'd say use Future, but not too many greenfield projects |
|
[2014-09-07 17:09:18 JST] (INFO) irc|eed3si9n|even though there's ideal, each project would be swayed by the legacy project that it's replacing |
|
[2014-09-07 17:09:38 JST] (INFO) irc|eed3si9n|not all projects started with best practices |
|
[2014-09-07 17:09:17 JST] (INFO) irc|eed3si9n|Fukuhara: I started out with implicit, now looking into Reader monad, but I'm not sure |
|
[2014-09-07 17:09:44 JST] (INFO) irc|eed3si9n|Yoshida: Reader is ok, but if you're not ready for monad trasformer, your situation could be worse |
|
[2014-09-07 17:09:34 JST] (INFO) irc|okapies|Scalac's implicit search is not good. |
|
[2014-09-07 17:09:14 JST] (INFO) irc|illabout|Kato: I'm not worried about long compile times caused by implicits. |
|
[2014-09-07 17:09:34 JST] (INFO) irc|eed3si9n|at Google there's a program named "Google" |
|
[2014-09-07 17:09:38 JST] (INFO) irc|eed3si9n|same as Facebook |
|
[2014-09-07 17:09:44 JST] (INFO) irc|eed3si9n|it takes hours linking C++ code |
|
[2014-09-07 17:09:53 JST] (INFO) irc|eed3si9n|even for a single line of fix it would take horus |
|
[2014-09-07 17:09:19 JST] (INFO) irc|eed3si9n|compared to that Scala's compilation speed is not as bad |
|
[2014-09-07 17:09:13 JST] (INFO) irc|eed3si9n|Yoshida: buying faster machine is better than changing code |
|
[2014-09-07 17:09:38 JST] (INFO) irc|eed3si9n|Fukuhara: I don't really think about compilation time |
|
[2014-09-07 17:09:38 JST] (INFO) irc|illabout|There is an example of using the Reader Monad from scala days. It has been posted on twitter with the #scalamatsuri hash tag. |
|
[2014-09-07 17:09:25 JST] (INFO) irc|eed3si9n|Q: IntelliJ gets slower and slower. I have 16GB of memory |
|
[2014-09-07 17:09:16 JST] (INFO) irc|eed3si9n|Yoshida: IntelliJ has issue with accuracy. I'm used to vim, so it's fine if you don't trust IntelliJ. so i don't have much complaint |
|
[2014-09-07 17:09:30 JST] (INFO) irc|eed3si9n|niwa: everyone's using IntelliJ |
|
[2014-09-07 17:09:45 JST] (INFO) irc|eed3si9n|it calls non-errors, error |
|
[2014-09-07 17:09:57 JST] (INFO) irc|eed3si9n|it tends import scala package |
|
[2014-09-07 17:09:16 JST] (INFO) irc|eed3si9n|there's a Git hook to delete that |
|
[2014-09-07 17:09:05 JST] (INFO) irc|eed3si9n|niwa: for larger code base, IntelliJ is very useful |
|
[2014-09-07 17:09:19 JST] (INFO) irc|eed3si9n|we use pants |
|
[2014-09-07 17:09:30 JST] (INFO) irc|eed3si9n|pants has IntelliJ support |
|
[2014-09-07 17:09:42 JST] (INFO) irc|eed3si9n|that's somewhat established process |
|
[2014-09-07 17:09:53 JST] (INFO) irc|eed3si9n|there are a few shortcomings but it's the current best |
|
[2014-09-07 17:09:36 JST] (INFO) irc|eed3si9n|Q: for scaling over code size and team size |
|
[2014-09-07 17:09:57 JST] (INFO) irc|eed3si9n|how do you unify design principles given mixed community |
|
[2014-09-07 17:09:21 JST] (INFO) irc|eed3si9n|kato: I try to fix the spec using traits |
|
[2014-09-07 18:09:06 JST] (INFO) irc|eed3si9n|we can pick an idea using trait, write example use cases, and ask team to review it |
|
[2014-09-07 18:09:26 JST] (INFO) irc|eed3si9n|"var is for kids" |
|
[2014-09-07 18:09:42 JST] (INFO) irc|eed3si9n|java devs want to revert back to vars |
|
[2014-09-07 18:09:05 JST] (INFO) irc|eed3si9n|you need one champion who can lead |
|
[2014-09-07 18:09:39 JST] (INFO) irc|eed3si9n|sera: I work with ppl coming from Java/Ruby |
|
[2014-09-07 18:09:49 JST] (INFO) irc|eed3si9n|sometimes it depends on one method to the other |
|
[2014-09-07 18:09:17 JST] (INFO) irc|eed3si9n|each organization needs to come up with the concensus |
|
[2014-09-07 18:09:23 JST] (INFO) irc|eed3si9n|there's no right answer |
|
[2014-09-07 18:09:34 JST] (INFO) irc|eed3si9n|niwa: twitter has lots of ex-ruby and ex-java |
|
[2014-09-07 18:09:45 JST] (INFO) irc|eed3si9n|ex-ruby tends to write better Scala |
|
[2014-09-07 18:09:53 JST] (INFO) irc|taisukeoe|Their codes are different very much |
|
[2014-09-07 18:09:03 JST] (INFO) irc|eed3si9n|code review becomes futile argument |
|
[2014-09-07 18:09:09 JST] (INFO) irc|eed3si9n|sometimes it's ok to just give up |
|
[2014-09-07 18:09:40 JST] (INFO) irc|eed3si9n|we have guidelines, but sometimes you see XXXFactory |
|
[2014-09-07 18:09:46 JST] (INFO) irc|eed3si9n|, which is questionable |
|
[2014-09-07 18:09:17 JST] (INFO) irc|eed3si9n|so it tends to depend on proj to proj |
|
[2014-09-07 18:09:40 JST] (INFO) irc|eed3si9n|I would change my style to make it blend the existing code |
|
[2014-09-07 18:09:47 JST] (INFO) irc|eed3si9n|that's the pragmatic way |
|
[2014-09-07 18:09:05 JST] (INFO) irc|eed3si9n|for greenfield, it's nice to have champions |
|
[2014-09-07 18:09:51 JST] (INFO) irc|eed3si9n|fukuhara: for greenfield, architects can lead |
|
[2014-09-07 18:09:22 JST] (INFO) irc|eed3si9n|what we do is book club for example on "FP in Scala" book |
|
[2014-09-07 18:09:45 JST] (INFO) irc|eed3si9n|even by reading a few chapters, we can share the idea on referential transparency |
|
[2014-09-07 18:09:49 JST] (INFO) irc|taisukeoe|Even in American company (Twitter), we have to pay attention to "atmosphere" e.g. repo owner intention |
|
[2014-09-07 18:09:39 JST] (INFO) irc|illabout|Thank You! |