Skip to content

Instantly share code, notes, and snippets.

@june29
Created November 10, 2012 12:42
Show Gist options
  • Save june29/4050965 to your computer and use it in GitHub Desktop.
Save june29/4050965 to your computer and use it in GitHub Desktop.
sprk2012 IRC logs
[2012-09-14 06:19:12](june29) hi
[2012-09-14 06:19:36](june29) 年々、参加者が IRC でやりとりすることは減っていますね、、
[2012-09-14 07:46:08](shyouhei) おはようございます
[2012-09-14 07:52:46](shyouhei) てかめっちゃ晴れてるんすけど
[2012-09-14 07:52:55](shyouhei) 本当に雨降るの?
[2012-09-14 12:16:26](jiikko) てst
[2012-09-14 12:29:23](mohya) テストです。
[2012-09-14 12:29:33](shyouhei) はい。
[2012-09-14 12:29:37](volpe_hd28v) テストです。
[2012-09-14 12:58:57](willnet) hi
[2012-09-14 12:59:01](okkez_) #kaigi がチャンネル一覧に出ないっぽい
[2012-09-14 12:59:23](okkez_) つないだら出るようになった
[2012-09-14 13:03:12](mongrelP) Hello!
[2012-09-14 13:03:24](mongrelP) 何とか通りました
[2012-09-14 13:15:27](okkez_) ここは前には出ないのかー
[2012-09-14 13:17:36](mongrelP) ですね。
[2012-09-14 13:27:01](muryoimpl) $B$3$s$K$A$O(B
[2012-09-14 13:27:31](znz_) muryoimpl: use utf-8
[2012-09-14 13:32:20](znz_) 13:30を過ぎた?
[2012-09-14 13:48:30](okkez_) pivotaltracker!!
[2012-09-14 14:11:36](okkez_) m17n の方はまじめにやってるみたいなので発言しづらい
[2012-09-14 14:55:30](june29) hi
[2012-09-14 14:55:43](kakutani) june29: hi
[2012-09-14 14:56:16](ryopeko) hi
[2012-09-14 14:56:16](june29) kakutani: hi
[2012-09-14 15:26:52](znz_) Bは一部中継が途切れたところがあったのが気になる。
[2012-09-14 15:27:36](mongrelP) 安定のC
[2012-09-14 16:24:42](webgyo) てすと
[2012-09-15 11:10:16](mongrelP) 無線LAN(b)が死にかけてる件
[2012-09-15 11:11:17](shyouhei) とは?
[2012-09-15 11:11:39](shyouhei) B部屋微妙ですか
[2012-09-15 11:14:04](lchin) 翻訳的なことは、backupしかしませんね
[2012-09-15 11:14:16](shyouhei) ああはい。
[2012-09-15 11:14:27](shyouhei) まあ、ヤバそうと思ったら助けてください
[2012-09-16 09:15:36](mongrelP) 開場は9:30でしたよね
[2012-09-16 11:19:31](sora_h) taxi
[2012-09-16 11:19:43](sora_h) タクシー便利…。。。
[2012-09-16 11:20:20](mongrelP) oh taxi
[2012-09-16 11:20:29](sora_h) ついた
[2012-09-16 15:00:26](mongrelP) そういえばこのサーバって生き残るの?
[2012-09-14 10:09:05](hokkai7go) hi
[2012-09-14 10:50:48](mohya) hi
[2012-09-14 12:19:04](shyouhei) hello.
[2012-09-14 12:19:30](onodes) hello.
[2012-09-14 12:20:24](shyouhei) よろしくおねがいします
[2012-09-14 12:20:37](jiikko) hi
[2012-09-14 12:23:55](shyouhei) IRC翻訳班がですねえ、人がちょっと足りてないくてですねえ
[2012-09-14 12:24:14](shyouhei) とくに日→英がちょっと
[2012-09-14 12:24:23](shyouhei) Hi Mikho
[2012-09-14 12:24:31](Mikho^) Hi
[2012-09-14 12:25:44](shyouhei) ちょっと助けてくれる人がいるといいなあ。
[2012-09-14 12:26:14](volpe_hd28v) $B%F%9%H$G$9!#(B
[2012-09-14 12:26:53](shyouhei) volpe_hd28v: UTF-8 here.
[2012-09-14 12:27:02](shyouhei) volpe_hd28v: mojibake shiteruyo-
[2012-09-14 12:52:18](elim_) hi
[2012-09-14 12:52:50](elim_) 若者の IRC 離れ
[2012-09-14 12:56:08](quicy) ここにいるのはオッサンだけですと!
[2012-09-14 13:01:47](niku) 知っている人達が会話している
[2012-09-14 13:12:08](quicy) みなさん、Heroku弁当食べられたんですか。
[2012-09-14 13:12:59](mongrelP) yes!
[2012-09-14 13:14:53](shyouhei) さっき余ってるって聞きましたけど。
[2012-09-14 13:16:38](quicy) レッドブルと、ヘロク弁当、それぞれ完売なるツイートを見ました!
[2012-09-14 13:17:22](mongrelP) レッドブルあったのか(ガラナでいいが(ぉぃ
[2012-09-14 13:18:53](shyouhei) Herokuののぼりがきた
[2012-09-14 13:18:59](niku) 道民のソウルドリンク・ガラナ
[2012-09-14 13:19:05](niku) カツゲン
[2012-09-14 13:19:17](shyouhei) レッドブルは俺の知る感じだと午前中にはもう売りきれていました
[2012-09-14 13:19:32](shyouhei) 明日はダイエーで大人買いするしかないです。
[2012-09-14 13:20:03](quicy) 売り切れているということは、高額で売れるという (ry
[2012-09-14 13:22:25](mohya) テスト☃
[2012-09-14 13:23:00](tenderlove) :-)
[2012-09-14 13:38:46](mongrelP) IRC
[2012-09-14 13:43:09](quicy) 888888
[2012-09-14 13:45:41](shyouhei) 俺、なんか、すいません…
[2012-09-14 13:48:25](quicy) 「お金ではないスポンサー」素敵
[2012-09-14 13:50:18](quicy) 88888888
[2012-09-14 13:53:58](quicy) Ustより、翻訳が先に届く、エスパー感
[2012-09-14 13:55:13](agrimm) What does "weeding glass" mean, if anything?
[2012-09-14 13:56:57](quicy) ちょっと読みきれないw
[2012-09-14 14:19:24](quicy) 88888
[2012-09-15 10:30:42](mongrelP) bitbucket...
[2012-09-15 11:16:50](quicy) 888888
[2012-09-15 11:20:04](webgyo) $B$L$3$+$o$o$$$$(B
[2012-09-15 11:37:55](shyouhei) webgyo: UTF-8
[2012-09-15 11:42:46](quicy) Ustが死んだ。終了したのかな?
[2012-09-15 11:44:28](quicy) Ustきました
[2012-09-15 11:44:47](noplans) ネットワーク復帰したっぽい
[2012-09-16 09:11:40](mongrelP) というかこっちでいいのでは
[2012-09-16 10:50:13](soraher_) 寝坊
[2012-09-16 10:51:15](mongrelP) 起きたのか。おはよう。もうmrknさんはじまってるよ
[2012-09-16 10:51:39](soraher_) mrknさんの聞いてますねー
[2012-09-16 10:52:00](soraher_) そろそろ出ないとdrbrainのに間に合わないな…
[2012-09-16 10:52:34](drbrain) soraher_: hi, I am staying cool in the charging room
[2012-09-16 10:53:13](soraher_) drbrain: I woke up now
[2012-09-16 10:53:28](drbrain) :D
[2012-09-16 10:53:43](soraher_) drbrain: still in the hotel, will go the venue (to attend your talk
[2012-09-16 10:54:14](drbrain) \o/
[2012-09-16 11:30:22](znz_) 注意書きがWiFiじゃなくてMiFi routerになってる。
[2012-09-16 11:34:45](noplans) znz_: oops. ありがとうございます。対応します
[2012-09-16 11:36:37](noplans) mobile routerのことみたいです > MiFi router
[2012-09-16 16:04:33](drbrain) Salami System!
[2012-09-14 02:48:50](Mikho) 文字エンコーディングは大丈夫かな
[2012-09-14 06:19:47](june29) hi
[2012-09-14 06:20:07](june29) @Mikho I can read your message!
[2012-09-14 10:15:17](Mikho) good
[2012-09-14 10:30:11](june29) hi
[2012-09-14 11:26:31](noplans) ひ
[2012-09-14 11:28:22](noplans) どうもどうも
[2012-09-14 11:30:14](noplans) ひ
[2012-09-14 11:30:23](noplans) てすとーーー
[2012-09-14 11:31:18](shyouhei) どうですかね
[2012-09-14 11:31:38](shyouhei) 名前そんな大きくなくていいのでは
[2012-09-14 11:32:10](shyouhei) いいかんじですね
[2012-09-14 11:32:27](shyouhei) OK
[2012-09-14 12:19:00](yokolet) hello!
[2012-09-14 12:19:14](shyouhei) hello!
[2012-09-14 12:51:11](pwim) Hello
[2012-09-14 13:15:47](yokolet) hello
[2012-09-14 13:16:50](Mikho^) テスト
[2012-09-14 13:17:58](shyouhei) このスクリーンには #kaigi1-m17n が見えていますのでぜひご参加ください
[2012-09-14 13:18:12](shyouhei) (というか助けて)
[2012-09-14 13:20:20](shyouhei) @ayumin is checking projector…
[2012-09-14 13:20:29](quicy) ここは翻訳専用ROMチャネルでしょうか
[2012-09-14 13:20:52](shyouhei) ROMじゃないですよ
[2012-09-14 13:21:06](shyouhei) ご自由に翻訳してください
[2012-09-14 13:21:42](znz_) テスト☃
[2012-09-14 13:22:09](h_hiro_) :-)
[2012-09-14 13:22:15](quicy) RubyコードをJavaに翻訳...
[2012-09-14 13:23:49](sora_h) hello?
[2012-09-14 13:23:51](sora_h) hi
[2012-09-14 13:23:55](shyouhei) hi
[2012-09-14 13:24:05](sora_h) UTF-8ですかね
[2012-09-14 13:24:08](sora_h) でしたね
[2012-09-14 13:24:10](shyouhei) ええまあ
[2012-09-14 13:24:30](tenderlove) 🍔
[2012-09-14 13:24:57](sora_h) 🍘
[2012-09-14 13:27:33](shyouhei) :trollface:
[2012-09-14 13:27:42](shyouhei) 絵文字は実装されてないか…
[2012-09-14 13:33:04](shyouhei) Well, …
[2012-09-14 13:33:17](shyouhei) almost the time.
[2012-09-14 13:33:43](shyouhei) we start when people finished writing their namecards.
[2012-09-14 13:34:31](shyouhei) OK, so
[2012-09-14 13:34:34](shyouhei) welcome.
[2012-09-14 13:34:47](shyouhei) first
[2012-09-14 13:34:53](shyouhei) some notices.
[2012-09-14 13:35:31](shyouhei) 1) no eating please. dringing is OK though
[2012-09-14 13:35:55](shyouhei) 2) belongings. manage at your own
[2012-09-14 13:36:21](pwim) There is space in the back which you can use for stuff, but leave at your own risk.
[2012-09-14 13:36:31](shyouhei) 3) smoking places are there, see the floor guide.
[2012-09-14 13:36:32](sora_h) 3) there're smoking rooms, written "S" mark in the floor guide
[2012-09-14 13:36:57](pwim) Wear your nametag at all times.
[2012-09-14 13:37:06](shyouhei) 4) (写真の話)
[2012-09-14 13:37:13](shyouhei) 5) ware your namecards
[2012-09-14 13:37:23](sora_h) 4) Name card are used to recognize as attendee, wear your nametag at all times
[2012-09-14 13:37:25](pwim) There aren't many seats available
[2012-09-14 13:37:31](pwim) so make room for everyone
[2012-09-14 13:37:32](shyouhei) 6) seats. almost full
[2012-09-14 13:37:43](shyouhei) 7) WiFi. See the guide.
[2012-09-14 13:37:53](sora_h) 6) Wi-Fi is available (SSID is written on the guide)
[2012-09-14 13:38:15](sora_h) 6) Please use sprk2012a, if your device can.
[2012-09-14 13:38:27](pwim) Please be careful when using the network as it is shared.
[2012-09-14 13:38:35](pwim) So don't use high bandwith things
[2012-09-14 13:38:39](sora_h) 6) Network bandwidth are shared with all attendees
[2012-09-14 13:38:41](pwim) such as video streaming
[2012-09-14 13:38:42](shyouhei) do not use streaming sites like youtube
[2012-09-14 13:38:51](shyouhei) skype, dropbox, etc.
[2012-09-14 13:38:51](pwim) also, avoid things that leave open a connection
[2012-09-14 13:39:21](pwim) If you find any lost stuff, bring to reception desk.
[2012-09-14 13:39:32](shyouhei) no flamables.
[2012-09-14 13:39:44](shyouhei) the venue:
[2012-09-14 13:40:05](pwim) For today, we have one track in this room, called A.
[2012-09-14 13:40:18](pwim) And we'll have another one across the hall called B.
[2012-09-14 13:40:39](pwim) Tomorrow, there will be another room in the other building.
[2012-09-14 13:41:13](h_hiro_) Today, the room B is in the same building, while tomorrow and after it is in another room.
[2012-09-14 13:41:17](pwim) An announcement about the last session in B.
[2012-09-14 13:41:23](pwim) About Rubot
[2012-09-14 13:41:29](pwim) The speaker couldn't come to Japan
[2012-09-14 13:41:29](shyouhei) Ruboto session 5:45-6;15 was cancelled.
[2012-09-14 13:41:34](sora_h) Today's the last session in room B "Ruboto", cancelled.
[2012-09-14 13:41:52](pwim) But we'll stream the session that takes place here in that room
[2012-09-14 13:41:54](shyouhei) because the speaker could not come Japan :-(
[2012-09-14 13:42:03](pwim) Tomorrow, there is a party.
[2012-09-14 13:42:09](shyouhei) Konshinkai party:
[2012-09-14 13:42:23](pwim) If you've registered for it, please go to the table at the back.
[2012-09-14 13:42:27](sora_h) Registration of tomorrow's party are already started
[2012-09-14 13:42:33](pwim) You will be asked to pay if you haven't yet.
[2012-09-14 13:43:00](shyouhei) Welcome speech from Shimada-san
[2012-09-14 13:43:16](sora_h) みなさん、こんにちは
[2012-09-14 13:43:32](shyouhei) than you to attend sprk 2012
[2012-09-14 13:43:40](pwim) (Shimada is the lead organizer)
[2012-09-14 13:44:01](shyouhei) I think most of you are here for the first time.
[2012-09-14 13:44:13](shyouhei) this is THE rubykaigi's regional branch.
[2012-09-14 13:44:16](pwim) The RubyKaigi is an international conference.
[2012-09-14 13:44:26](sora_h) the first Sapporo RubyKaigi held in 2008,
[2012-09-14 13:44:28](shyouhei) SPRK is held since 2008
[2012-09-14 13:44:35](pwim) So there is people from around the world at this one.
[2012-09-14 13:44:55](shyouhei) and the last sprk03 had 150+ attendee.
[2012-09-14 13:44:56](pwim) Up till now, usually about 100 participants
[2012-09-14 13:45:17](pwim) There is a world map in the back
[2012-09-14 13:45:24](sora_h) sprk2012 is the first 3-day conference, and many attendees & comes from many countries
[2012-09-14 13:45:25](pwim) Please add where you are from to it
[2012-09-14 13:45:34](pwim) About 10% of people are from overseas.
[2012-09-14 13:45:57](sora_h) Sponsors
[2012-09-14 13:45:58](shyouhei) Sponsors:
[2012-09-14 13:46:09](pwim) Ruby Sponsor: Salesforce, Cookpad, Microsoft
[2012-09-14 13:46:10](sora_h) Ruby sponsor: Salesforce, cookpad, microsoft, thank you
[2012-09-14 13:46:33](sora_h) (Enishi-tech is Shimada-san's company)
[2012-09-14 13:47:23](pwim) (See http://sapporo.rubykaigi.org/2012/en/sponsors.html for complete list of sponsors)
[2012-09-14 13:47:26](shyouhei) ("masuidrive" is individual)
[2012-09-14 13:48:15](shyouhei) doorkeepr
[2012-09-14 13:48:17](pwim) Some sponsors helped us by donating their services
[2012-09-14 13:48:23](shyouhei) pivotal tracker
[2012-09-14 13:48:30](pwim) Doorkeeper helped with the registration for this event.
[2012-09-14 13:48:43](shyouhei) marion internet (ISP)
[2012-09-14 13:49:01](shyouhei) allied telesys (appliances)
[2012-09-14 13:49:10](pwim) These helped with network.
[2012-09-14 13:49:23](shyouhei) ruby-no-kai, local
[2012-09-14 13:49:48](shyouhei) matz
[2012-09-14 13:49:49](sora_h) thanks Matz
[2012-09-14 13:49:52](pwim) Thanks to keynote speakers
[2012-09-14 13:49:53](shyouhei) aaron
[2012-09-14 13:49:59](sora_h) thanks Aaron (@tenderlove), welcome to sapporo
[2012-09-14 13:50:05](shyouhei) drbrain
[2012-09-14 13:50:09](sora_h) thanks Eric (@drbrain), welcome
[2012-09-14 13:50:20](drbrain) hello!
[2012-09-14 13:50:22](sora_h) hi!
[2012-09-14 13:50:24](shyouhei) hi.
[2012-09-14 13:50:24](darashi) hello!
[2012-09-14 13:50:38](niku) hello!
[2012-09-14 13:50:54](pwim) There were a lot more applications than we anticipated.
[2012-09-14 13:51:06](pwim) Thank you to everyone who applied.
[2012-09-14 13:51:55](pwim) The theme is ... we code
[2012-09-14 13:52:01](sora_h) To spend great time at the conference, staffs have prepared for 9 months.
[2012-09-14 13:52:19](pwim) We are going to examine with whom you write code, why you write code, and how code is written. We hope that this conference will be a place that the attendees can share various thoughts about their own "coding" activities.
[2012-09-14 13:52:30](shyouhei) relationships between us and codes.
[2012-09-14 13:52:49](shyouhei) Enjoy!
[2012-09-14 13:52:51](darashi) 札幌Ruby会議2012はじまります!
[2012-09-14 13:53:03](shyouhei) ================
[2012-09-14 13:53:14](shyouhei) "Heroku" by Ayumu Aizawa
[2012-09-14 13:53:25](sora_h) こんにちはみなさん
[2012-09-14 13:53:33](pwim) I'm Aizawa.
[2012-09-14 13:53:35](sora_h) I'm Aizawa
[2012-09-14 13:53:36](shyouhei) heroku bento
[2012-09-14 13:53:40](pwim) Who ate the bento?
[2012-09-14 13:53:44](pwim) Almost everyone.
[2012-09-14 13:53:45](sora_h) Did you have this Heroku bento?
[2012-09-14 13:54:05](shyouhei) Thank you all.
[2012-09-14 13:54:16](sora_h) This is me at RubyKaigi2011
[2012-09-14 13:54:16](shyouhei) Introduce myself
[2012-09-14 13:54:20](pwim) This is my picture from last rubykaigi
[2012-09-14 13:54:21](sora_h) good picture.
[2012-09-14 13:54:31](pwim) Salesforce bought Heroku
[2012-09-14 13:54:39](shyouhei) Developer Marketing at heroku.
[2012-09-14 13:55:10](pwim) I'm introducing Heroku to Salesforces customers
[2012-09-14 13:55:12](sora_h) I'm @ayumin at twitter
[2012-09-14 13:55:16](pwim) My handle is ayumin
[2012-09-14 13:55:19](sora_h) also, CRuby committers
[2012-09-14 13:55:29](shyouhei) "@ayumin is not contributing to Ruby" says kosaki
[2012-09-14 13:55:40](sora_h) "recently @ayumin doesn't contribute to CRuby" by @kosaki55tea
[2012-09-14 13:55:40](pwim) This is a ranking of committers
[2012-09-14 13:55:49](pwim) Nobu is #1, but couldn't come
[2012-09-14 13:55:50](sora_h) 4 ruby committers in heroku
[2012-09-14 13:56:03](pwim) I'm just at the end of the ranking
[2012-09-14 13:56:06](pwim) No Matz?
[2012-09-14 13:56:16](shyouhei) DISCLIMINAR!
[2012-09-14 13:56:27](shyouhei) (please read)
[2012-09-14 13:56:38](pwim) This isn't a promise about what will happen in the future.
[2012-09-14 13:56:50](pwim) Do you know heroku?
[2012-09-14 13:56:53](pwim) Almost everyone
[2012-09-14 13:57:24](shyouhei) quotes from "SPRK report"
[2012-09-14 13:58:25](pwim) This includes hello world apps.
[2012-09-14 13:58:53](shyouhei) salesforce and heroku are relative in multi-tenanted origin.
[2012-09-14 13:59:07](shyouhei) equal platform for all customers
[2012-09-14 13:59:17](pwim) Who knows this web page?
[2012-09-14 13:59:17](sorah_) Do you know this web page?
[2012-09-14 13:59:32](sorah_) 12 best practices to make good web apps
[2012-09-14 13:59:32](shyouhei) 12 best practices for good web app.
[2012-09-14 13:59:34](pwim) Contains best practices written by heroku cto
[2012-09-14 13:59:44](sorah_) written by heroku cto
[2012-09-14 13:59:45](shyouhei) what to do for a modern application
[2012-09-14 13:59:53](shyouhei) theoretical
[2012-09-14 14:00:00](shyouhei) and is implemented in Heroku.
[2012-09-14 14:00:27](sorah_) Happy developers have high productivity,
[2012-09-14 14:01:01](pwim) To increase happiness, we support the community by hosting workshops, drinkups, etc
[2012-09-14 14:01:13](shyouhei) Q2.
[2012-09-14 14:01:23](pwim) Almost everyone has used it.
[2012-09-14 14:01:37](sorah_) to use heroku, we have to `gem install heroku` at first
[2012-09-14 14:01:39](shyouhei) "gem install heroku" is legacy!
[2012-09-14 14:01:57](sorah_) Heroku toolbelt is here. includes Heroku client, foreman, git.
[2012-09-14 14:02:04](sorah_) Available for OS X, Windows, Debian/Ubuntu
[2012-09-14 14:02:05](shyouhei) git, foreman, and gems are included in toolbelt
[2012-09-14 14:02:23](sorah_) Heroku can deploy apps via git
[2012-09-14 14:02:50](shyouhei) git won't preent your work flow
[2012-09-14 14:02:56](darashi) This subscreen app works on heroku!
[2012-09-14 14:03:00](sorah_) Developers can deploy app in same flow to commit
[2012-09-14 14:03:00](shyouhei) easy to scale out
[2012-09-14 14:03:25](sorah_) Database
[2012-09-14 14:03:38](pwim) There are DB plans that go from cheap to expensive.
[2012-09-14 14:04:09](pwim) Each plan has 1TB
[2012-09-14 14:04:18](shyouhei) they differ in memory sizes
[2012-09-14 14:04:18](sorah_) difference is cache size
[2012-09-14 14:04:32](shyouhei) so easy to upgrade
[2012-09-14 14:04:34](sorah_) Many people recognized heroku as Ruby platform
[2012-09-14 14:04:38](pwim) The default stack is now cedar
[2012-09-14 14:04:46](pwim) It supports other languages than ruby
[2012-09-14 14:05:02](sorah_) But recently, cedar stack is default, it allows to run any languages in heroku.
[2012-09-14 14:05:14](pwim) OpenCobol is also supported
[2012-09-14 14:05:15](shyouhei) (ceder stack is awesone. shyouhei loves it)
[2012-09-14 14:05:20](sorah_) I'm running OpenCobol in cedar stack
[2012-09-14 14:05:23](shyouhei) add-ons.
[2012-09-14 14:05:25](sorah_) Addons
[2012-09-14 14:05:44](pwim) for example, there are other options for DB
[2012-09-14 14:05:45](sorah_) default databases is postgres, but you can use NoSQL DBs by adding addons
[2012-09-14 14:05:51](pwim) or things like sending email
[2012-09-14 14:06:10](sorah_) Facebook integration
[2012-09-14 14:06:17](pwim) who has made FB application?
[2012-09-14 14:06:21](pwim) not many people
[2012-09-14 14:06:37](shyouhei) facebook application is on heroku by default.
[2012-09-14 14:07:00](sorah_) Dev Center has many documents
[2012-09-14 14:07:13](sorah_) Updated often, hard to translate…
[2012-09-14 14:07:44](sorah_) mixi API integration
[2012-09-14 14:07:51](shyouhei) mixi is a Japanese local SNS.
[2012-09-14 14:07:52](sorah_) (mixi is major SNS in Japan)
[2012-09-14 14:08:02](pwim) (there is an official translation project for heroku docs: https://github.com/herokaijp/devcenter/wiki)
[2012-09-14 14:08:10](pwim) *unofficial
[2012-09-14 14:08:22](pwim) Bimonthly meetup in tokyo
[2012-09-14 14:08:32](pwim) We also support other events
[2012-09-14 14:08:42](shyouhei) Q3
[2012-09-14 14:08:44](pwim) Such as RailsGirls which was last weekend
[2012-09-14 14:08:58](pwim) About 1/3rd
[2012-09-14 14:09:03](sorah_) success stories
[2012-09-14 14:09:13](sorah_) in US, many great apps are running on heroku
[2012-09-14 14:09:22](shyouhei) NY city marathon
[2012-09-14 14:10:05](pwim) do is a salesforce project that is hosted on heroku
[2012-09-14 14:10:25](pwim) this is something like line (a popular chat app in Japan)
[2012-09-14 14:10:39](sorah_) many success stories are up at success.heroku.com
[2012-09-14 14:10:52](pwim) this is example of japanese companies using heroku
[2012-09-14 14:10:58](sorah_) QA@IT is also running on Heroku
[2012-09-14 14:11:00](shyouhei) many success also in japan
[2012-09-14 14:11:12](sorah_) (QA@IT is a site like stackoverflow, localized version for Japan)
[2012-09-14 14:11:58](pwim) These people are from heroku
[2012-09-14 14:12:01](pwim) 10 people!
[2012-09-14 14:12:05](pwim) One is matz
[2012-09-14 14:12:11](pwim) He gave out bentos before
[2012-09-14 14:12:12](sorah_) 10 heroku people is attending to sprk2012
[2012-09-14 14:12:16](sorah_) matz
[2012-09-14 14:12:19](shyouhei) please remember him
[2012-09-14 14:12:20](pwim) Everyone please remember his face and name
[2012-09-14 14:12:35](pwim) The guy with a hat is Terence Lee
[2012-09-14 14:12:53](sorah_) managing ruby environment of heroku
[2012-09-14 14:13:23](pwim) The next is dane
[2012-09-14 14:13:27](pwim) Then we have ko1
[2012-09-14 14:13:41](shyouhei) 5min left
[2012-09-14 14:13:55](sorah_) Questions after FAQ
[2012-09-14 14:13:55](pwim) Were always asked this...
[2012-09-14 14:14:05](shyouhei) no plan
[2012-09-14 14:14:12](sorah_) Q. Tokyo region? A. Technically can, but no plans now
[2012-09-14 14:14:48](pwim) But there might be a chance in the future...
[2012-09-14 14:15:21](pwim) So far, we've been relying on community for Japanese documentation.
[2012-09-14 14:15:30](sorah_) Thanks to Japanese users' blog
[2012-09-14 14:15:48](pwim) We're giving out japanese information through this twitter account
[2012-09-14 14:15:54](sorah_) @herokujp tweets useful information and answering to questions in Japanese
[2012-09-14 14:16:01](pwim) It's part of my job to support you through this account
[2012-09-14 14:16:14](sorah_) Please like herokujp page in Facebook
[2012-09-14 14:16:16](pwim) Facebook likes is his KPI
[2012-09-14 14:16:46](pwim) So far, we have 3 people developing ruby in Japan
[2012-09-14 14:16:53](pwim) One on the business side
[2012-09-14 14:18:56](sorah_) Q. Hiring in Japan? A. Yes!
[2012-09-14 14:19:11](sorah_) please ask to heroku people
[2012-09-14 14:19:19](sorah_) Thank you
[2012-09-14 14:19:56](pwim) Any questions?
[2012-09-14 14:19:57](sorah_) 1 question
[2012-09-14 14:20:03](pwim) People from hokkaido are shy?
[2012-09-14 14:20:04](sorah_) Hokkaido people are shy…
[2012-09-14 14:20:51](sorah_) Break time, next session will start at 14:30
[2012-09-14 14:20:53](sorah_) 10 minutes
[2012-09-14 14:20:53](shyouhei) next speech starts 2:30.
[2012-09-14 14:30:05](shyouhei) ================
[2012-09-14 14:30:29](shyouhei) "Microsoft's Openness Vision and Strategy. MS <3 Ruby and Linux!" by Kazunori Hirano
[2012-09-14 14:32:36](sorah) hi
[2012-09-14 14:32:53](sorah) ok
[2012-09-14 14:34:24](sorah) Hi, I'm Hirano from Microsoft
[2012-09-14 14:35:13](sorah) Using Windows machine at surrounded with many Macs
[2012-09-14 14:36:15](shyouhei) cloud platform
[2012-09-14 14:36:35](sorah) 3 microsoft people are attending
[2012-09-14 14:36:35](pwim_) There isn't much information about ruby on azure
[2012-09-14 14:36:50](sorah) We're an unofficial team
[2012-09-14 14:36:59](pwim_) Who has heard of Azure?
[2012-09-14 14:37:13](pwim_) I think more of you know about cloudia
[2012-09-14 14:37:20](pwim_) (the mascot for azure)
[2012-09-14 14:37:54](shyouhei) kinda like version 3 now
[2012-09-14 14:38:13](shyouhei) much relative to hypervisor innovation
[2012-09-14 14:38:33](shyouhei) Microsoft products are said to be productive since version 3 :)
[2012-09-14 14:38:40](pwim_) There are three things i want to focus on
[2012-09-14 14:38:56](pwim_) We support linux
[2012-09-14 14:39:19](pwim_) We support these languages officially
[2012-09-14 14:39:32](pwim_) I made the ruby red
[2012-09-14 14:40:47](shyouhei) PaaS support for php/node.js
[2012-09-14 14:41:39](shyouhei) how microsoft interacts with open source communities
[2012-09-14 14:42:01](shyouhei) windows application garelly -> web platform installer
[2012-09-14 14:42:20](shyouhei) flexibility (language)
[2012-09-14 14:42:31](shyouhei) provided as SDK
[2012-09-14 14:42:55](pwim_) We have command line tools for mac and linux
[2012-09-14 14:43:01](shyouhei) Rails.
[2012-09-14 14:43:29](pwim_) IIS was the main thing preventing Rails from running.
[2012-09-14 14:43:42](pwim_) So arton made his own server
[2012-09-14 14:43:44](sorah) Nougakudo (made by arton-san), HTTP server (app server) for rails
[2012-09-14 14:43:51](shyouhei) nougakudo = thin web server + application container
[2012-09-14 14:44:07](sorah) Demo
[2012-09-14 14:44:09](shyouhei) this works (also) on Azure
[2012-09-14 14:44:43](shyouhei) Seems
[2012-09-14 14:44:51](shyouhei) he brings a tablet PC
[2012-09-14 14:45:11](Mikho^) I'll show some things you can do
[2012-09-14 14:45:20](pwim_) This is me
[2012-09-14 14:45:42](sorah) I'm @satonaoki, Azure evangelist at Microsoft
[2012-09-14 14:45:47](shyouhei) about nogakudo, and how to use it on Azure
[2012-09-14 14:46:13](shyouhei) nogakudo components
[2012-09-14 14:46:30](sorah) activerecord adapter for SQL Server
[2012-09-14 14:48:04](shyouhei) multi-process model
[2012-09-14 14:48:41](sorah_) This is azure's management console
[2012-09-14 14:49:27](sorah_) demo: Create VM on Azure
[2012-09-14 14:49:38](sorah_) Linux distros are available as Guest
[2012-09-14 14:49:42](shyouhei) Partner OS images
[2012-09-14 14:50:18](shyouhei) about 5 min to boot a new VM.
[2012-09-14 14:50:24](Mikho^) creating this takes 5 mins, but I don't have that, so instead I'm using the one I prepared
[2012-09-14 14:50:34](sorah_) VM will up in 5 minutes, but we can't wait 5 minutes now, I've already created VM for demo today
[2012-09-14 14:50:36](shyouhei) Lets connect.
[2012-09-14 14:51:00](sorah_) connected
[2012-09-14 14:51:07](sorah_) Linux!
[2012-09-14 14:51:12](Mikho^) returning to the speech
[2012-09-14 14:51:32](shyouhei) that was IaaS style usage.
[2012-09-14 14:51:54](pwim) For the PaaS version, MS takes care of OS and below
[2012-09-14 14:52:05](pwim) So you can focus on application
[2012-09-14 14:52:21](pwim) This allows you to develop in an agile fashion
[2012-09-14 14:52:38](shyouhei) other services
[2012-09-14 14:52:43](pwim) Besides this, we also have a bunch of cloud services
[2012-09-14 14:53:09](shyouhei) ClearDB is a MySQL compat DB service
[2012-09-14 14:53:39](shyouhei) other services are also usable.
[2012-09-14 14:53:47](shyouhei) Nougakudo companion:
[2012-09-14 14:53:59](shyouhei) VM is already up,
[2012-09-14 14:54:09](shyouhei) deploys rails only
[2012-09-14 14:54:47](pwim) On windows, connect over remote desktop
[2012-09-14 14:56:08](sorah_) simple launcher of NouGakuDo
[2012-09-14 14:57:04](pwim) This is IIS error
[2012-09-14 14:57:16](sorah_) IIS and Ennou are working parallel
[2012-09-14 14:58:52](sorah_) 90 days free trial is available
[2012-09-14 14:59:16](pwim) There are only 5 of these
[2012-09-14 14:59:31](pwim) At the back, you can do rock-paper-scissors for it
[2012-09-14 14:59:39](pwim) Thank you
[2012-09-14 14:59:59](pwim) Sorry, no time for questions
[2012-09-14 14:59:59](sorah_) Ask directly for questions
[2012-09-14 15:00:22](shyouhei) Short announce:
[2012-09-14 15:00:36](pwim) If this room is too hot, there are two other rooms that are streaming
[2012-09-14 15:00:46](pwim) One of them has power outlets
[2012-09-14 15:00:48](sorah_) satellite room is available: B and C
[2012-09-14 15:00:50](shyouhei) B has power supply, C is cooler.
[2012-09-14 15:01:09](sorah_) ==Announce end==
[2012-09-14 15:01:22](darashi) C has power supply. B is not.
[2012-09-14 15:01:40](sorah_) Additional Annoucement:
[2012-09-14 15:01:50](sorah_) 1) please do registration of the party
[2012-09-14 15:01:51](darashi) 電源があるのはCです。あまり多くはないので
[2012-09-14 15:01:56](darashi) 譲りあってご利用ください
[2012-09-14 15:01:57](pwim) Speakers can receive tshirts
[2012-09-14 15:02:05](sorah_) 2) speakers can receive special t-shirts!
[2012-09-14 15:02:12](pwim) If you haven't got one yet, please go to reception
[2012-09-14 15:02:22](shyouhei) ================
[2012-09-14 15:02:23](shyouhei) "Social Coding, It's Not Unusual in ESM" by Kenichi TAKAHASHI
[2012-09-14 15:02:27](pwim) Hello
[2012-09-14 15:02:33](pwim) I'm Takahashi
[2012-09-14 15:02:46](shyouhei) esm logo.
[2012-09-14 15:02:54](sorah_) this talk is powered by ESM
[2012-09-14 15:03:23](pwim) We started facebook recently
[2012-09-14 15:03:36](pwim) We have announcements on the page
[2012-09-14 15:03:43](pwim) About seminars, books, etc
[2012-09-14 15:03:53](pwim) All these people have come from our company
[2012-09-14 15:04:02](pwim) 4 others have given talks
[2012-09-14 15:04:05](pwim) 1 LT
[2012-09-14 15:04:12](pwim) 1 staff
[2012-09-14 15:04:23](shyouhei) important thing
[2012-09-14 15:04:42](shyouhei) we hire.
[2012-09-14 15:04:44](pwim) This is a sponsor session
[2012-09-14 15:04:49](pwim) So we came here looking to hire
[2012-09-14 15:05:01](pwim) So you can talk to any of the 11 people we brought here
[2012-09-14 15:05:06](Mikho^) moving to the contents of the speech
[2012-09-14 15:05:15](pwim) We are in the middle
[2012-09-14 15:05:24](shyouhei) our "normal" social coding at one sight
[2012-09-14 15:05:25](Mikho^) the green in the middle are us, the programmers
[2012-09-14 15:05:27](pwim) The person in the suits is the client
[2012-09-14 15:05:48](shyouhei) what we don't speak today
[2012-09-14 15:06:01](Mikho^) how to start projects
[2012-09-14 15:06:03](shyouhei) please read agile samurai instead
[2012-09-14 15:06:35](shyouhei) "what's a well-written inception deck"
[2012-09-14 15:06:49](pwim) These are good presentations you can read
[2012-09-14 15:06:54](shyouhei) "basics of basics of agile development"
[2012-09-14 15:06:55](sorah_) How to start projects: speakerdeck.com/u/nawoto/good-example-of-inception-deck
[2012-09-14 15:07:06](sorah_) http://speakerdeck.com/u/nawoto/basic-of-basics-of-agile-development
[2012-09-14 15:07:09](pwim) So we'll talk about how we develop
[2012-09-14 15:07:26](Mikho^) first we have to decide what we want to create
[2012-09-14 15:07:28](shyouhei) assume we already started a project.
[2012-09-14 15:07:35](pwim) We use pivotal tracker for this
[2012-09-14 15:07:46](sorah_) First, "Start" the most important story on pivotal tracker
[2012-09-14 15:08:00](shyouhei) how a code is written
[2012-09-14 15:08:03](pwim) We use Cucumber for end-to-end tests
[2012-09-14 15:08:08](pwim) Rspec for unit tests
[2012-09-14 15:08:24](pwim) This is a presentation one of our staff is doing
[2012-09-14 15:08:40](shyouhei) more detailed daily testing speech is done in Sunday by @moro
[2012-09-14 15:08:45](sorah_) about TDD, recommend to attend Morohashi-san's session on Sunday
[2012-09-14 15:09:05](pwim) This is an example from an application we developed
[2012-09-14 15:09:30](shyouhei) approx. 100 mon-month
[2012-09-14 15:09:58](shyouhei) this is one of an oldest project we have.
[2012-09-14 15:10:19](pwim) This is a crm we developed in about 15 man months
[2012-09-14 15:10:29](pwim) Test ratio is low
[2012-09-14 15:10:32](shyouhei) controller specs decreasing. cule features are rich
[2012-09-14 15:10:51](pwim) 30 man month project
[2012-09-14 15:11:14](shyouhei) look at the code / test LOC ratio
[2012-09-14 15:11:31](pwim) EC Mall
[2012-09-14 15:11:37](pwim) We developed with another company
[2012-09-14 15:11:41](shyouhei) this is big.
[2012-09-14 15:11:41](pwim) over 200 man months
[2012-09-14 15:12:12](pwim) Library is especially big
[2012-09-14 15:12:21](sorah_) QA@IT (running at Heroku)
[2012-09-14 15:12:41](sorah_) many request & activity specs
[2012-09-14 15:12:54](sorah_) = Sending pull request
[2012-09-14 15:13:01](sorah_) reviewing at each pull requests
[2012-09-14 15:13:10](Mikho^) do you know pull request?
[2012-09-14 15:13:15](sorah_) "This code is suitable for master branch?"
[2012-09-14 15:13:25](sorah_) this is the longest pull request
[2012-09-14 15:13:54](sorah_) comments for outdated diff are recently hidden
[2012-09-14 15:14:18](shyouhei) the comment is "I need a new line here."
[2012-09-14 15:14:30](pwim) we use emoji!
[2012-09-14 15:14:32](sorah_) Using emoji
[2012-09-14 15:14:45](pwim) Recently these pictures
[2012-09-14 15:14:49](sorah_) using Misawa of hell
[2012-09-14 15:15:00](pwim) (part of japanese internet subculture)
[2012-09-14 15:15:06](Mikho^) we are doing reviews in different ways
[2012-09-14 15:15:14](shyouhei) takkanm talks about misawa.
[2012-09-14 15:15:27](pwim) Who knows travis?
[2012-09-14 15:15:30](shyouhei) Travis CI
[2012-09-14 15:15:45](pwim) We are using organization
[2012-09-14 15:15:48](pwim) not enterprise
[2012-09-14 15:15:55](pwim) with a private repo
[2012-09-14 15:15:58](sorah_) We're using github.com paid organization account
[2012-09-14 15:15:59](sorah_) not GHE
[2012-09-14 15:16:14](pwim) We are the first travis pro user!
[2012-09-14 15:16:14](shyouhei) esm is the travis pro's launch customer
[2012-09-14 15:16:14](sorah_) We're the first Travis Pro user
[2012-09-14 15:16:28](shyouhei) and of course a sponsor
[2012-09-14 15:16:44](pwim) As we use, there are problems
[2012-09-14 15:16:47](sorah) also, contributing to travis-ci
[2012-09-14 15:16:49](pwim) so we contribute fixes
[2012-09-14 15:16:51](sorah) with the code
[2012-09-14 15:16:59](pwim) here's a related lt
[2012-09-14 15:17:03](shyouhei) hibariya will talk in detail in LT.
[2012-09-14 15:17:18](sorah) 4. Merge and finish the story
[2012-09-14 15:17:34](sorah) after the code improved
[2012-09-14 15:17:55](pwim) For production/staging, we use heroku
[2012-09-14 15:18:37](pwim) We show software to customer
[2012-09-14 15:18:43](pwim) Customer confirms functionality
[2012-09-14 15:18:51](pwim) This is our social coding
[2012-09-14 15:19:07](pwim) We use all these tools to make software our customer can see
[2012-09-14 15:19:28](sorah) Stories
[2012-09-14 15:19:32](pwim) (The translation of agile samurai is also by ESM employee - @kakutani)
[2012-09-14 15:19:38](sorah) QA@IT
[2012-09-14 15:20:05](sorah) stand up team of QA@IT
[2012-09-14 15:20:16](sorah) s/team/team member/
[2012-09-14 15:20:41](sorah) project eiwakun
[2012-09-14 15:20:43](Mikho^) this is something new
[2012-09-14 15:20:44](pwim) this is new project
[2012-09-14 15:20:47](sorah) we're wokring on
[2012-09-14 15:21:21](sorah) development without restriction
[2012-09-14 15:21:42](sorah) Can we make daily-tools for developers?
[2012-09-14 15:21:43](pwim) We wonder if we can develop something like these great tools
[2012-09-14 15:21:59](pwim) Something we want to use everyday
[2012-09-14 15:22:14](shyouhei) we = esm
[2012-09-14 15:22:14](sorah) and we want to talk about the tool at the conference
[2012-09-14 15:22:32](pwim) This is a service we made
[2012-09-14 15:22:47](sorah) named "Copipedential"
[2012-09-14 15:22:53](Mikho^) there's a speech on 3rd day with more details about this
[2012-09-14 15:22:56](pwim) This is another service we are making
[2012-09-14 15:23:06](pwim) This is a screenshot
[2012-09-14 15:23:10](sorah) another one, "Idobata," we can't show yet
[2012-09-14 15:23:35](shyouhei) ursm will talk in detail abot the knowledge we have.
[2012-09-14 15:23:42](shyouhei) also kakutani.
[2012-09-14 15:23:53](shyouhei) in short:
[2012-09-14 15:24:03](pwim) We're searching for people
[2012-09-14 15:24:05](shyouhei) we hire someone who want to do this
[2012-09-14 15:24:06](sorah) conclusion: Finding member to do our social coding
[2012-09-14 15:24:09](shyouhei) with us.
[2012-09-14 15:24:18](Mikho^) we want rubyists
[2012-09-14 15:24:19](pwim) We look for Rubyist
[2012-09-14 15:24:23](sorah) Rubyist or Agile Designer
[2012-09-14 15:24:28](sorah) s/or/and
[2012-09-14 15:24:40](pwim) or just like our page!
[2012-09-14 15:24:44](sorah) Please like our FB page
[2012-09-14 15:24:46](Mikho^) please take a look at our FB page even if not interested
[2012-09-14 15:25:30](sorah) Let's start social coding like ours, if you want to do but you can't come to us.
[2012-09-14 15:25:32](sorah) thank you
[2012-09-14 15:25:34](sorah) Questions?
[2012-09-14 15:25:54](sorah) Q. What's activity spec?
[2012-09-14 15:26:23](shyouhei) A: QA@IT specific
[2012-09-14 15:26:31](sorah) A. In QA@IT, user's minimal activity (logined, posted
[2012-09-14 15:26:53](shyouhei) atomic CRUD
[2012-09-14 15:27:11](shyouhei) Q: why you moved them from normal specs?
[2012-09-14 15:27:13](sorah) Q. why not existing spec type?
[2012-09-14 15:27:21](shyouhei) A:
[2012-09-14 15:27:22](sorah) A. Come my (@ursm) talk
[2012-09-14 15:27:31](sorah) A. Come my (@kakutani) talk
[2012-09-14 15:27:44](shyouhei) Q: I'm takai.
[2012-09-14 15:27:54](pwim) Request specs are very slow
[2012-09-14 15:27:55](shyouhei) request spec isn't slow?
[2012-09-14 15:27:58](pwim) any advice?
[2012-09-14 15:28:02](shyouhei) A. Yes.
[2012-09-14 15:28:06](shyouhei) Yes....
[2012-09-14 15:28:08](sorah) A. Doing nothing
[2012-09-14 15:28:12](sorah) A. Yes, slow
[2012-09-14 15:28:26](shyouhei) "throw tests away"
[2012-09-14 15:28:42](sorah) A. dropping unneed tests
[2012-09-14 15:28:44](pwim) We write tests that help us develop, then throw away if not needed.
[2012-09-14 15:28:52](shyouhei) Q: mrkn will talk about it
[2012-09-14 15:28:57](sorah) Q. Come my co-worker @mrkn talk
[2012-09-14 15:29:12](sorah) (@mrkn's talk is named "Distributed RSpec")
[2012-09-14 15:29:29](shyouhei) Q. about pull request.
[2012-09-14 15:29:39](sorah) Q. pull request from other team
[2012-09-14 15:29:45](sorah) Q. are about to accept?
[2012-09-14 15:30:19](shyouhei) A. reviews are done, but pull requests are not so frequent
[2012-09-14 15:30:46](sorah) Q. 英語を喋ります
[2012-09-14 15:31:04](sorah) Waiting translation
[2012-09-14 15:31:06](shyouhei) Q.計測
[2012-09-14 15:31:13](pwim) (matz helping out)
[2012-09-14 15:31:20](shyouhei) Q.機能をどう計測するか?
[2012-09-14 15:31:21](sorah) (通訳のmatz / matz the translator
[2012-09-14 15:31:56](pwim) We use process like described in agile samurai.
[2012-09-14 15:32:16](shyouhei) A. We follow Agile texts
[2012-09-14 15:32:43](sorah) Break time
[2012-09-14 15:32:48](shyouhei) next 3:45
[2012-09-14 15:32:49](sorah) next session starts at 3:45pm
[2012-09-14 15:33:02](sorah) - announcement -
[2012-09-14 15:33:14](sorah) Blue seats will be moved to room C
[2012-09-14 15:33:26](sorah) because room C is trend now
[2012-09-14 15:33:35](sorah) - announcement end -
[2012-09-14 15:39:44](shyouhei) ================
[2012-09-14 15:39:45](shyouhei) "How to create COOKPAD" by Masahiro Ihara
[2012-09-14 15:46:01](shyouhei) This is Ihara of Cookpad
[2012-09-14 15:46:08](shyouhei) today's menu
[2012-09-14 15:46:22](shyouhei) no talk about ruby :)
[2012-09-14 15:47:13](pwim) What is cookpad?
[2012-09-14 15:47:14](shyouhei) abut cookpad
[2012-09-14 15:47:14](sorah) I was an manager but I'm now engineer
[2012-09-14 15:47:25](pwim) Our mission is to make everyday more fun through cooking.
[2012-09-14 15:47:33](sorah) http://cookpad.com/ Recipe sharing service
[2012-09-14 15:47:33](pwim) You can share recipes.
[2012-09-14 15:47:53](pwim) Half of women in their 20s and 30s use it
[2012-09-14 15:48:36](pwim) Really creative community for cooking
[2012-09-14 15:48:45](Mikho^) recipe sharing service
[2012-09-14 15:48:45](Mikho^) over 1200000 recipes
[2012-09-14 15:49:11](sorah) make all staffs know about technology
[2012-09-14 15:49:15](sorah) because it reduces cost
[2012-09-14 15:49:51](shyouhei) concept
[2012-09-14 15:51:11](sorah) staffs have to read Lean Startup
[2012-09-14 15:51:13](pwim) these books are given to new employees of cookpad
[2012-09-14 15:52:18](sorah) Don't use your talent to waste things
[2012-09-14 15:52:51](sorah) Engineers have to read the art of readable code
[2012-09-14 15:53:18](pwim) What you want to do
[2012-09-14 15:53:25](pwim) What you are good at
[2012-09-14 15:53:33](pwim) What you should do
[2012-09-14 15:53:35](sorah) 3 circles: Want to do, I'm good at, Should do
[2012-09-14 15:53:55](pwim) This middle we should focus on.
[2012-09-14 15:54:32](Mikho^) don't waste talent on useless things
[2012-09-14 15:54:40](pwim) This is an online course
[2012-09-14 15:56:11](yokolet) independent/distribution/collaboration
[2012-09-14 15:56:38](sorah) Facebook's graph
[2012-09-14 15:56:39](pwim) We think we are close to Facebook
[2012-09-14 15:56:41](sorah) oh, Microsoft……
[2012-09-14 15:56:49](sorah) Want to ask the microsoft
[2012-09-14 15:56:55](sorah) A. Right!!
[2012-09-14 15:56:59](pwim) It's correct - from MS
[2012-09-14 15:57:18](sorah) Technology is a tool to solve a problem
[2012-09-14 15:57:32](Mikho^) summary from 2chan
[2012-09-14 15:58:12](yokolet) technology is to solve user's problem
[2012-09-14 15:58:13](sorah) Don't make a feature, solve user's problem
[2012-09-14 15:59:35](sorah) COOKPAD's development is user based
[2012-09-14 15:59:43](pwim) We make MVP, get feedback from users
[2012-09-14 16:00:12](sorah) user exists over a line of log
[2012-09-14 16:00:33](shyouhei) "one line of log was issued by one end user"
[2012-09-14 16:00:36](sorah) 500 means we delivered one unhappy experience to user
[2012-09-14 16:00:44](sorah) (HTTP 500)
[2012-09-14 16:00:48](pwim) This is my blog
[2012-09-14 16:01:04](pwim) This is our staff
[2012-09-14 16:01:15](pwim) Head of development
[2012-09-14 16:01:29](pwim) He'll have a session tomorrow
[2012-09-14 16:01:37](sorah) s/tomorrow/next session/
[2012-09-14 16:01:45](pwim) We want to recruit engineers from all over the world
[2012-09-14 16:03:08](pwim) This is our office
[2012-09-14 16:03:25](sorah) Engineer is really engine of groth
[2012-09-14 16:03:51](pwim) A people want to hire A+ people
[2012-09-14 16:04:01](pwim) This allows everyone to grow
[2012-09-14 16:04:28](pwim) We try to get ever better people
[2012-09-14 16:04:37](pwim) Sexy resume
[2012-09-14 16:04:48](sorah) See GitHub, products, code
[2012-09-14 16:05:07](sorah) Be Win-Win
[2012-09-14 16:05:11](yokolet) we want to see what they made rather than resume
[2012-09-14 16:05:24](sorah) Do the best
[2012-09-14 16:05:59](pwim) We host events
[2012-09-14 16:06:18](pwim) You can release open source as individual or company
[2012-09-14 16:06:19](sorah) GitHub Organization Account available, but you can publish code on your account
[2012-09-14 16:06:28](sorah) but don't publish business logic
[2012-09-14 16:06:30](pwim) We encourage to write blogs and articles
[2012-09-14 16:07:13](sorah) Be a sponsor as possible, support the community
[2012-09-14 16:07:44](pwim) Matsuda isn't staff
[2012-09-14 16:07:47](sorah) (me)
[2012-09-14 16:08:16](pwim) Famous/Not Famous, Japanese/International people
[2012-09-14 16:09:23](sorah) Do you want to do
[2012-09-14 16:09:46](pwim) Do what you want to do!
[2012-09-14 16:10:00](sorah) Thank you
[2012-09-14 16:10:03](sorah) Sapporo <3
[2012-09-14 16:10:25](sorah) Questions?
[2012-09-14 16:11:26](shyouhei) Q. what to do if i'm not 100 point?
[2012-09-14 16:11:34](shyouhei) A. Work hard?
[2012-09-14 16:11:48](shyouhei) Q. tatsuo sakurai will talk in detail in Sunday.
[2012-09-14 16:12:08](sorah) - Break time -
[2012-09-14 16:12:15](sorah) next session starts at 4:30pm
[2012-09-14 16:29:40](Mikho^) session starting, please return to your seats
[2012-09-14 16:30:17](sorah) =================
[2012-09-14 16:30:57](sorah) Hello, I'm Tateno from COOKPAD.
[2012-09-14 16:30:57](pwim) I'm from cookpad
[2012-09-14 16:31:12](pwim) This is my github account
[2012-09-14 16:31:21](sorah) a.k.a. id:secondlife, hotchpotch
[2012-09-14 16:31:26](pwim) I love these
[2012-09-14 16:31:34](sorah) I like idol group BiS
[2012-09-14 16:31:38](pwim) I love this group
[2012-09-14 16:31:43](sorah) I've bought a box of CD
[2012-09-14 16:31:50](sorah) Please remember the idol group BiS exists
[2012-09-14 16:31:51](pwim) as part of a promotion I bought lots of their CDs
[2012-09-14 16:32:10](pwim) What changed in cookpad in the last year?
[2012-09-14 16:32:13](sorah) what's happened between 2011 to 2012
[2012-09-14 16:32:15](pwim) From a dev perspective
[2012-09-14 16:32:27](sorah) see previous talk at RubyKaigi 2011 for before
[2012-09-14 16:32:28](pwim) This is the biggest change
[2012-09-14 16:32:30](Mikho^) 2012: updated rails version
[2012-09-14 16:32:44](pwim) Talking about the process of upgrading
[2012-09-14 16:32:45](sorah) Upgraded Rails 3.0 in 2012
[2012-09-14 16:32:51](sorah) How upgraded
[2012-09-14 16:33:00](sorah) Q. Do we have to upgrade?
[2012-09-14 16:33:02](Mikho^) how did we upgrade this largescale application
[2012-09-14 16:33:13](pwim) We need to use libraries
[2012-09-14 16:33:19](pwim) Which use new version
[2012-09-14 16:33:29](pwim) So if we don't upgrade, we can't use
[2012-09-14 16:33:46](sorah) Ride on new rails (y/n)
[2012-09-14 16:33:51](sorah) y!
[2012-09-14 16:34:02](pwim) How did we do it?
[2012-09-14 16:34:03](Mikho^) so how did we upgrade
[2012-09-14 16:34:04](sorah) How we did
[2012-09-14 16:34:11](sorah) upgrade gems
[2012-09-14 16:34:25](pwim) First getting all the specs to pass
[2012-09-14 16:34:25](sorah) then, make spec can run
[2012-09-14 16:34:30](pwim) This was at the beginning
[2012-09-14 16:34:30](sorah) yeah, Many failures
[2012-09-14 16:34:56](sorah) Fix the failures steady.
[2012-09-14 16:35:09](sorah) Very Puzzley
[2012-09-14 16:35:11](pwim) Like wacking moles
[2012-09-14 16:35:13](sorah) like a puzzle
[2012-09-14 16:35:20](pwim) Fix one, another breaks
[2012-09-14 16:35:39](pwim) We made an Rspec team
[2012-09-14 16:35:55](pwim) I was working on auto escaping html
[2012-09-14 16:36:04](pwim) This is an example of it
[2012-09-14 16:36:17](sorah) Did a fix to correspond auto html escape feature
[2012-09-14 16:36:58](sorah) rails_xss plugin to make Rails 2.3 to same behavior (auto html escape enabled)
[2012-09-14 16:37:14](pwim) Sashimi
[2012-09-14 16:37:18](sorah) No problem with Rails 2.3 + rails_xss = No problem with Rails 3.0?
[2012-09-14 16:38:37](sorah) Want to know differnce of html escape
[2012-09-14 16:38:54](sorah) other difference: id, timestamp, etc…
[2012-09-14 16:39:04](sorah) Use word-diff
[2012-09-14 16:40:08](pwim) So, then we got specs to like this
[2012-09-14 16:40:19](sorah) try in production
[2012-09-14 16:40:32](pwim) The next challenge was performance
[2012-09-14 16:41:26](yokolet) performance measure tools: ab and JMeter
[2012-09-14 16:41:29](sorah) Ruby 1.8.7: 200% slow
[2012-09-14 16:41:37](sorah) REE 1.8.7 (without tcmalloc): 180% slow
[2012-09-14 16:41:53](pwim) Not fast enough!
[2012-09-14 16:41:56](pwim) Can't relase
[2012-09-14 16:42:03](yokolet) it's time to profile
[2012-09-14 16:42:04](Mikho^) not enough speed, time to profile
[2012-09-14 16:42:26](pwim) Everytime, the bottle neck was somewhere else
[2012-09-14 16:42:28](Mikho^) the slowest part changes all the time
[2012-09-14 16:42:35](pwim) So Garbage Collector?
[2012-09-14 16:42:36](sorah) Maybe GC?
[2012-09-14 16:42:55](pwim) We switched from passenger to unicorn
[2012-09-14 16:43:30](sorah) graceful restart is useful, but unicorn doesn't make changes to performance
[2012-09-14 16:43:43](yokolet) OobGC implementation is interesting
[2012-09-14 16:44:06](sorah) GC during request happens often
[2012-09-14 16:44:14](Mikho^) do gc only after completing the user request
[2012-09-14 16:45:06](pwim) The above is without patch
[2012-09-14 16:45:09](pwim) Below with
[2012-09-14 16:45:24](pwim) So this is an eample of how things changes
[2012-09-14 16:45:29](sorah) response time become faster
[2012-09-14 16:45:34](pwim) So even faster than rails 2.3
[2012-09-14 16:45:35](sorah) performance problem is solved
[2012-09-14 16:45:36](Mikho^) this solved the performance issue
[2012-09-14 16:45:43](pwim) We wrote an article in here
[2012-09-14 16:46:01](sorah) my co-worker writes about performance at WEB+DB PRESS Vol.70
[2012-09-14 16:46:02](pwim) Almost ready to release
[2012-09-14 16:46:11](sorah) - Final check
[2012-09-14 16:46:25](sorah) How to solve problems can't find in test
[2012-09-14 16:46:57](sorah) Throw requests in production to Rails 3.2 server
[2012-09-14 16:47:03](pwim) We used em-proxy
[2012-09-14 16:47:18](pwim) so requests went to both versions
[2012-09-14 16:47:22](sorah) s/3.2/3.0
[2012-09-14 16:47:34](pwim) but result was only returned from 2.3
[2012-09-14 16:48:03](sorah) Make rails 3.0 server readonly, because rails 3.0 server maybe make a problem on DB
[2012-09-14 16:48:03](pwim) Looked for errors
[2012-09-14 16:48:21](pwim) so all tests are passing
[2012-09-14 16:48:21](sorah) rake spec is now passed!
[2012-09-14 16:48:32](pwim) We made a demo server for users
[2012-09-14 16:49:17](pwim) So we let some percentage of the users use Rails 3
[2012-09-14 16:49:32](pwim) Problem
[2012-09-14 16:49:35](sorah) then we saw unexpected behavior
[2012-09-14 16:49:41](pwim) Serializing is different between versions
[2012-09-14 16:49:56](pwim) Strange errors with MySql
[2012-09-14 16:50:03](sorah) difference of serialization, strange queries to MySQL master, Javascript errors
[2012-09-14 16:50:05](pwim) JS errors popped up
[2012-09-14 16:50:23](pwim) Now we were ready to release
[2012-09-14 16:50:30](pwim) We use EC2
[2012-09-14 16:50:34](sorah) we're in AWS then, so
[2012-09-14 16:50:42](pwim) So were able to create a duplicate cloud of servers
[2012-09-14 16:50:48](pwim) just needed to change the proxy
[2012-09-14 16:50:51](pwim) no downtime
[2012-09-14 16:50:55](sorah) prepare many rails 3.0 servers,
[2012-09-14 16:51:00](pwim) this lets us rollbakc instantly
[2012-09-14 16:51:08](pwim) We released a year ago
[2012-09-14 16:51:11](sorah) if we found big problem, switch back to old servers
[2012-09-14 16:51:12](pwim) No big problem!
[2012-09-14 16:51:22](pwim) That was my birthday!
[2012-09-14 16:51:30](sorah) Release date is my birthday
[2012-09-14 16:51:44](pwim) Created a strong memory for his 30th birthday
[2012-09-14 16:52:00](sorah) Recommend to release something at birthday, it'll be memory
[2012-09-14 16:52:11](pwim) (Sara = plate in japanese)
[2012-09-14 16:52:18](sorah) Q. Sara Framework?
[2012-09-14 16:52:22](pwim) Like twitter bootstrap
[2012-09-14 16:52:29](pwim) Why not just use bootstrap?
[2012-09-14 16:52:39](sorah) Q. why reimplement?
[2012-09-14 16:53:12](sorah) A. COOKPAD specific design
[2012-09-14 16:53:31](pwim) Ikeda joined our company
[2012-09-14 16:53:32](sorah) Ikeda-san made sara framework (joined this year)
[2012-09-14 16:53:44](pwim) Design is like cookpad
[2012-09-14 16:54:17](sorah) engineers now can use COOKPAD design easily by applying simple CSS
[2012-09-14 16:54:33](pwim) We released android apli
[2012-09-14 16:54:40](pwim) from native to html5
[2012-09-14 16:54:49](pwim) why html?
[2012-09-14 16:54:52](Mikho^) doesn't look so different
[2012-09-14 16:55:07](sorah) A. Rails engineers can work on Android
[2012-09-14 16:55:20](pwim) we use js bridge for native functions
[2012-09-14 16:55:23](sorah) A. Same feature on smartphone web
[2012-09-14 16:55:57](pwim) there are merits to both approaches
[2012-09-14 16:56:07](sorah) fluentd
[2012-09-14 16:56:08](pwim) but for cookpad, we think html was the right choice
[2012-09-14 16:56:32](sorah) Collect all Rails app servers by few lines of ruby
[2012-09-14 16:56:40](pwim) this is my presentation about flentd
[2012-09-14 16:56:45](pwim) also wrote an article
[2012-09-14 16:56:47](sorah) See my past talk / Software Design for detail
[2012-09-14 16:56:54](pwim) We started using git hub enterprise
[2012-09-14 16:57:01](pwim) every month, 350 pull requests
[2012-09-14 16:57:01](sorah) GitHub:Enterprise
[2012-09-14 16:57:13](pwim) lots of ruby committers in our pull requests
[2012-09-14 16:57:27](pwim) more code review because of GH
[2012-09-14 16:57:39](pwim) There will be a LT about it tomorrow
[2012-09-14 16:57:56](pwim) Tests were taking longer and longer
[2012-09-14 16:58:20](sorah) @mrkn talks about Distributed CI in Sunday
[2012-09-14 16:58:33](pwim) We presented chanko last year
[2012-09-14 16:58:50](sorah) No time to describe these things
[2012-09-14 16:59:01](sorah) Many changes between 2011 to 2012
[2012-09-14 16:59:10](pwim) We will soon be upgrading to 3.2
[2012-09-14 16:59:17](sorah) Thank you
[2012-09-14 16:59:30](sorah) 1 question accepted
[2012-09-14 16:59:32](sorah) Question?
[2012-09-14 17:00:09](pwim) It took 2 months to upgrade from 2.3 to 3.0
[2012-09-14 17:00:14](sorah) Q. How long take to upgrade 2.3 → 3.0; A. 2 months
[2012-09-14 17:01:01](sorah) ========
[2012-09-14 17:01:15](sorah) Break time - next session starts at 5:15pm
[2012-09-14 17:01:20](sorah) ANNOUNCEMENT
[2012-09-14 17:01:38](sorah) Registration of the party will close at the end of this break time
[2012-09-14 17:01:38](Mikho^) registration for the konshinkai is taking a break
[2012-09-14 17:01:50](sorah) LAST CHANCE to REGISTER THE PARTY
[2012-09-14 17:02:08](sorah) Last session in Room B about Ruboto is cancelled,
[2012-09-14 17:02:21](sorah) Masui-san will extend his talk.
[2012-09-14 17:02:37](sorah) -- ANNOUNCEMENT END --
[2012-09-14 17:02:48](sorah) Break time: Next session starts at 5:15pm
[2012-09-14 17:14:08](sorah) ================
[2012-09-14 17:15:18](Mikho^) 声はきこえますか?
[2012-09-14 17:15:30](Mikho^) みなさんこんにちは
[2012-09-14 17:15:31](sorah) こんにちはみなさん
[2012-09-14 17:15:49](Mikho^) これからある秘密について話します
[2012-09-14 17:16:17](Mikho^) この三つのことはつながっています
[2012-09-14 17:16:59](Mikho^) 竹の教訓
[2012-09-14 17:17:18](Mikho^) 弱く見えるものは実は強い
[2012-09-14 17:17:45](sorah) github.com を使うことができない人がいる、セキュリティポリシーとか…
[2012-09-14 17:18:22](Mikho^) githubをどこでもインストールしたいが・・
[2012-09-14 17:18:59](Mikho^) 開発者やレポシトリーがない
[2012-09-14 17:19:31](shyouhei) 一種のVM
[2012-09-14 17:19:42](shyouhei) なんだけど
[2012-09-14 17:19:53](shyouhei) 究極的にはただtarを展開してるだけ
[2012-09-14 17:20:01](shyouhei) なのでreplicateが容易
[2012-09-14 17:20:37](shyouhei) デプロイにはhubotを使っている
[2012-09-14 17:20:51](Mikho^) その仮想マシーンは起動したら毎回同じ
[2012-09-14 17:20:53](shyouhei) なので、お客さんのマシンにsshしたりしないよ
[2012-09-14 17:21:32](shyouhei) githubライセンス+githubパッケージ
[2012-09-14 17:21:55](shyouhei) バージョンアップするときの話ですね
[2012-09-14 17:22:03](shyouhei) githubパッケージだけ更新すればいい
[2012-09-14 17:22:16](shyouhei) なのでサーバ止めなくていい
[2012-09-14 17:22:49](shyouhei) これもhubotでやりますよ
[2012-09-14 17:23:44](shyouhei) (卜部はhubotに詳しくないが、hubouっていうのがGithub enterpriseのサーバで動いていて、それがgithubの最新のコードを引っ張ってくるのだろうと思われる)
[2012-09-14 17:24:13](shyouhei) Github enterpriseは
[2012-09-14 17:24:19](Mikho^) 例
[2012-09-14 17:24:27](shyouhei) ブラックボックスじゃなくて
[2012-09-14 17:24:34](shyouhei) もうすこしグレー
[2012-09-14 17:24:39](shyouhei) たとえばログ
[2012-09-14 17:24:46](shyouhei) rsyslog
[2012-09-14 17:24:51](shyouhei) で転送できる
[2012-09-14 17:25:15](shyouhei) snmpで監視することもできる
[2012-09-14 17:25:52](shyouhei) VMにログインしなくても監視はできるけど
[2012-09-14 17:26:04](shyouhei) 作業が必要なら、
[2012-09-14 17:26:05](Mikho^) 必要なことはすべてVMの外から手に入れる
[2012-09-14 17:26:10](shyouhei) adminユーザーもある
[2012-09-14 17:26:36](shyouhei) exportとかの作業はadminで行う
[2012-09-14 17:26:48](sorah) ghe-export / ghe-import コマンドで全部エクスポートしたりインポートしたりできる
[2012-09-14 17:27:34](shyouhei) install-vm-toolsはroot権限をとらなくてもいいようにかな
[2012-09-14 17:27:41](shyouhei) git系コマンドもある。
[2012-09-14 17:28:38](shyouhei) まあenterprizeなのでサポートもありますよ
[2012-09-14 17:28:59](shyouhei) で、サポートに必要なメトリクスを取得する
[2012-09-14 17:29:07](shyouhei) ということもできる
[2012-09-14 17:29:42](shyouhei) たとえば政府系機関などのセンシティブな機関の場合
[2012-09-14 17:29:50](shyouhei) こういう情報は出せないけど
[2012-09-14 17:29:53](shyouhei) まあ難しいけど
[2012-09-14 17:29:56](shyouhei) がんばります…
[2012-09-14 17:31:34](shyouhei) github enterpriseは
[2012-09-14 17:31:38](shyouhei) 今は
[2012-09-14 17:31:46](shyouhei) 同じコードで動いている。
[2012-09-14 17:31:54](shyouhei) 同じインフラ
[2012-09-14 17:32:15](shyouhei) 同じものからgithubとgithub enterpriseができる
[2012-09-14 17:32:34](shyouhei) どちらかからcherry-pickしているのではなく。
[2012-09-14 17:32:53](shyouhei) ただ、機能面で、どちらかでは必要ではないものが
[2012-09-14 17:33:00](shyouhei) あるかもしれないので、そこはフラグで
[2012-09-14 17:33:18](shyouhei) gravatar
[2012-09-14 17:33:33](shyouhei) github.comでは使っているが
[2012-09-14 17:33:39](shyouhei) enterpriseでは
[2012-09-14 17:33:54](shyouhei) firewallのうらなのでつかえない(?)
[2012-09-14 17:34:01](shyouhei) なのでgravatarなし
[2012-09-14 17:34:05](sorah) gravatarをgithub.comでは使ってるけど、enterprise では使えないケースもあるから、
[2012-09-14 17:34:05](Mikho^) 多くのgithug enterpriseを使う人はfirewallのせいでインターネットにつなげない
[2012-09-14 17:34:09](shyouhei) 課金
[2012-09-14 17:34:12](sorah) disableできる
[2012-09-14 17:34:34](shyouhei) github.comは有料ユーザーがあるけどenterpriseはユーザー単位の課金ではない
[2012-09-14 17:34:52](Mikho^) どのfeatureでもオフにできる
[2012-09-14 17:34:55](shyouhei) github.comでは無効な機能としてはLDAP
[2012-09-14 17:35:12](shyouhei) LDAPでユーザー管理したいというニーズ
[2012-09-14 17:36:16](shyouhei) スタッフはdevelopmentモードではenterpriseに切り替えれるバーが見える
[2012-09-14 17:36:32](shyouhei) unicorn? で実現している?
[2012-09-14 17:36:52](sorah) enterpriseモードにしてunicornをrestartする(?)
[2012-09-14 17:36:57](Mikho^) モードを簡単にかえることができる
[2012-09-14 17:37:25](sorah) github.com, enteprise 両方のモードでCI(?)している
[2012-09-14 17:37:57](Mikho^) もう一つ主義がある
[2012-09-14 17:38:36](shyouhei) ユーザーにはバージョンコントロールより重要なことがあるから
[2012-09-14 17:38:46](shyouhei) VCSはgithubに任せて
[2012-09-14 17:38:58](shyouhei) 重要なことをやりましょう、だたとおもう
[2012-09-14 17:39:58](sorah) next speaker has not tested video connection yet, so wait a moment
[2012-09-14 17:40:00](sorah) =====
[2012-09-14 17:43:23](shyouhei) さっきのやつ、hubotまわりは俺の無理解により嘘訳になってた可能性がありますので
[2012-09-14 17:43:27](shyouhei) うのみにしないでね
[2012-09-14 17:44:57](Mikho^) 早くて、ひんぱんにリリースして
[2012-09-14 17:45:12](Mikho^) 私はJosh Lane
[2012-09-14 17:45:18](shyouhei) EYの人です
[2012-09-14 17:45:25](Mikho^) Engine yardで働いている
[2012-09-14 17:45:32](shyouhei) SFの写真
[2012-09-14 17:45:53](yokolet) 勘違いしがち
[2012-09-14 17:45:54](shyouhei) デプロイに限らない
[2012-09-14 17:45:54](Mikho^) San fransiscoで住んでいるが、出身ではない
[2012-09-14 17:46:14](shyouhei) 開発全般のflictionをへらす話
[2012-09-14 17:46:23](Mikho^) 新しいタスクを始める
[2012-09-14 17:46:29](Mikho^) のにYoutrackを使う
[2012-09-14 17:46:38](yokolet) YouTrackをおもに使っている
[2012-09-14 17:46:41](shyouhei) (youtrackはITSのようですね)
[2012-09-14 17:47:06](shyouhei) feature branchを作る
[2012-09-14 17:47:24](shyouhei) コミットメッセージにはチケット番号
[2012-09-14 17:47:28](Mikho^) プログラミングはペアで行う
[2012-09-14 17:47:36](shyouhei) ぺあぷろの写真
[2012-09-14 17:47:41](shyouhei) この姿勢
[2012-09-14 17:47:41](yokolet) 他の人が見える配置
[2012-09-14 17:47:42](Mikho^) とても便利な働き方
[2012-09-14 17:47:44](shyouhei) ななめ
[2012-09-14 17:48:07](shyouhei) テスト
[2012-09-14 17:48:50](yokolet) CIシステム
[2012-09-14 17:48:51](Mikho^) これはCIシステム
[2012-09-14 17:48:57](sorah) ensembleと呼ばれているCIシステム
[2012-09-14 17:48:59](shyouhei) featureブランチは全部はテストしない(多すぎるから)、と言ってた気がする
[2012-09-14 17:49:12](shyouhei) CIに任せてるのかもしれません
[2012-09-14 17:49:26](Mikho^) 三つ目のコミットがパスできた
[2012-09-14 17:49:39](Mikho^) これはBotチャンネル
[2012-09-14 17:49:40](sorah) これはbot
[2012-09-14 17:49:47](shyouhei) 読めん。
[2012-09-14 17:50:00](Mikho^) EyBotはCool
[2012-09-14 17:50:05](sorah) EyBotはクール、シンプル
[2012-09-14 17:50:42](Mikho^) ちょっと見づらいけど
[2012-09-14 17:50:43](yokolet) EyBot メッセージをパースする
[2012-09-14 17:51:34](shyouhei) まあでもなにか色々通知してくれるようですね
[2012-09-14 17:51:34](Mikho^) Imageview
[2012-09-14 17:51:46](sorah) image meコマンド、あとinstagram機能もあるよ
[2012-09-14 17:51:54](yokolet) instgramインテグレーション
[2012-09-14 17:51:59](shyouhei) 継続的インテグレーション
[2012-09-14 17:52:38](shyouhei) eybotに向かってreleaseと言うとeybotがリリースする(手動の場合)
[2012-09-14 17:52:51](shyouhei) mason
[2012-09-14 17:52:56](sorah) CIがこけてると怒られる(?
[2012-09-14 17:53:15](Mikho^) Masonはスクリプトを送られたら実行する
[2012-09-14 17:53:21](shyouhei) devidのコミットはgreenだった
[2012-09-14 17:53:51](shyouhei) 自動的にチケットを閉じる
[2012-09-14 17:54:06](shyouhei) で、自動的にedgeにデプロイする
[2012-09-14 17:54:34](shyouhei) 非常に頻繁に行う
[2012-09-14 17:54:45](sorah) 404回、一つのアプリで9月にデプロイされた回数
[2012-09-14 17:55:01](sorah) 2-9回、1日にproductionにデプロイする。
[2012-09-14 17:55:14](shyouhei) releaseコマンドのないよう
[2012-09-14 17:55:28](sorah) release番号をつけてtagを打つ
[2012-09-14 17:55:29](shyouhei) masterが緑色なのを確認してタグをうつ
[2012-09-14 17:55:45](shyouhei) deployブランチにpush
[2012-09-14 17:55:58](sorah) mergeされたチケットをrelease番号に結びつける(?
[2012-09-14 17:56:25](sorah) deployブランチがproductionにデプロイされ、結びついたチケットが閉じられる
[2012-09-14 17:56:29](shyouhei) deployブランチはともかくそこになにかmergeされたら全自動でリリースされる
[2012-09-14 17:57:07](shyouhei) いまは通知の話
[2012-09-14 17:57:34](sorah) masonはシンプルなjob runner
[2012-09-14 17:57:39](shyouhei) メールは重要(マーケの人とかも読んでくれる)
[2012-09-14 17:58:09](shyouhei) deployの詳細
[2012-09-14 17:58:44](shyouhei) unicornだとダウンタイムなしで切り替えれますよという話
[2012-09-14 17:59:41](Mikho^) Columnの削除はそんなに変わらない
[2012-09-14 17:59:42](shyouhei) ダウンタイムないけどスキーマ変えたときどうするのという話だったとおもうけどどうするのかよくわかりませんでした
[2012-09-14 17:59:52](yokolet) コラムの名前を変えるのは問題
[2012-09-14 18:02:09](Mikho^) 質問?
[2012-09-14 18:03:13](shyouhei) Q. we do not deploy automatially because
[2012-09-14 18:03:34](shyouhei) we want to let desinger deploy things
[2012-09-14 18:03:49](shyouhei) and they don't use CLI
[2012-09-14 18:04:30](shyouhei) designers are not used to git branches
[2012-09-14 18:04:38](shyouhei) so they might break things.
[2012-09-14 18:04:49](shyouhei) we want to allow those changes
[2012-09-14 18:06:55](yokolet) ステージングするとみんながみえるようになっている
[2012-09-14 18:09:04](shyouhei) DB migration process
[2012-09-14 18:10:04](yokolet) インタラクティブなrebaseが重要(??)
[2012-09-14 18:10:10](shyouhei) マージしたらmigrationが壊れるんじゃないの的話だったと思います。
[2012-09-14 18:10:31](Mikho^) on the last slide it was written "we are hiring", but
[2012-09-14 18:10:32](shyouhei) で、壊れるかどうかはrebase -iで確認
[2012-09-14 18:10:37](Mikho^) what kind of people are you looking for
[2012-09-14 18:11:00](Mikho^) デサイナーも開発者も必要
[2012-09-14 18:11:11](yokolet) 英語がいいけれど、他は話し次第
[2012-09-14 18:11:15](Mikho^) 英語が優先だけど
[2012-09-14 18:12:28](yokolet) if you've lost something, go to the desk
[2012-09-14 18:12:37](yokolet) registration desk
[2012-09-14 18:12:50](shyouhei) Today's session is over, see you tomorrow morning.
[2012-09-14 18:13:13](yokolet) please get out of the building as soon as possible
[2012-09-15 09:49:08](shyouhei) morning everyone.
[2012-09-15 09:49:42](shyouhei) きょう も よろしく おねがい します 。
[2012-09-15 09:54:08](pwim) Good morning!
[2012-09-15 09:57:57](pwim) Instructions about Sapporo Ruby Kaigi: there is an english guide
[2012-09-15 09:59:53](sorah) test
[2012-09-15 09:59:59](sorah) hi
[2012-09-15 10:01:10](pwim) (for the first presentation, I have received the slides in advance)
[2012-09-15 10:01:13](sora_h) test
[2012-09-15 10:01:27](pwim) (I have done a rough translation based on them)
[2012-09-15 10:01:36](pwim) (I will be writing here)
[2012-09-15 10:01:51](sorah) pwim: If you doesn't have mine slide, I'll give you, sorry for late slides
[2012-09-15 10:01:54](sorah) oops
[2012-09-15 10:02:14](sorah) =======
[2012-09-15 10:02:48](sorah) good morning
[2012-09-15 10:02:58](sorah) I'm Sato Ryunosuke from Ruby Sapporo
[2012-09-15 10:02:59](pwim) sorah: i see them, but i didnt have time to translate
[2012-09-15 10:03:12](pwim) (Many of the organisers of Sapporo Ruby Kaigi are from Enishi Tech)
[2012-09-15 10:03:25](pwim) I'm also staff
[2012-09-15 10:03:30](pwim) my github account
[2012-09-15 10:03:39](pwim) I'm also developing this
[2012-09-15 10:03:41](sorah) I'm developing webapp named nothub
[2012-09-15 10:03:46](pwim) NotHub is a Chrome plugin that lets you receive GitHub notifications in real tim
[2012-09-15 10:03:51](sorah) s/webapp/chrome ext/
[2012-09-15 10:03:55](pwim) The theme
[2012-09-15 10:04:08](pwim) What I want to talk about today
[2012-09-15 10:04:18](pwim) From the beginning of my programming experience, I've been overwhelmed by the fun of it.
[2012-09-15 10:04:18](pwim) I've participated in RubySapporo, and joined Enishi Tech. I've become accustomed to developing with other people.
[2012-09-15 10:04:18](pwim) Today I will talk about my journey.
[2012-09-15 10:04:36](pwim) When I first started programming, I only enjoyed writing code by myself.
[2012-09-15 10:04:48](pwim) At that time, I was doing stuff like developing a small part of a humungous system and writing incredibly long documentation.
[2012-09-15 10:04:58](pwim) I didn't have any connection to the OSS community.
[2012-09-15 10:05:10](pwim) I wanted to write more code
[2012-09-15 10:05:10](pwim) I wanted to develop something
[2012-09-15 10:05:10](pwim) I wanted to do meaningful work
[2012-09-15 10:05:19](pwim) With those feelings, I joined enishi tech.
[2012-09-15 10:05:25](pwim) New environment:
[2012-09-15 10:05:31](pwim) Examples: Mac OS, command line git
[2012-09-15 10:05:43](pwim) I had a chance to use open source products
[2012-09-15 10:06:08](pwim) This looks like fun! I started watching GitHub's time line.
[2012-09-15 10:06:44](pwim) When you are doing development using an open source product, normally you find some bugs.
[2012-09-15 10:06:44](pwim) When you fix a bug, you want to send it back to the author.
[2012-09-15 10:06:53](pwim) Even though I knew about pull requests…
[2012-09-15 10:07:03](pwim) I was nervous about making a pull request
[2012-09-15 10:07:10](pwim) I felt: Scared, Shy, Awkward
[2012-09-15 10:07:28](pwim) So what's someone without confidence to do?
[2012-09-15 10:07:34](pwim) Until my lack of confidence went away, I further investigated the bug.
[2012-09-15 10:07:44](pwim) What is really a bug?
[2012-09-15 10:07:44](pwim) I checked the commit log.
[2012-09-15 10:07:44](pwim) I discussed n the commit log.
[2012-09-15 10:07:45](pwim) I confirmed whether or not there was a test.
[2012-09-15 10:07:47](pwim) Maybe it was not a bug, but by design
[2012-09-15 10:08:09](pwim) My first accepted patch.
[2012-09-15 10:08:32](pwim) Even though it was a very simple fix, I was able to add a patch to something everyone uses.
[2012-09-15 10:08:32](pwim) I was able to resolve the issue for people like me.
[2012-09-15 10:09:03](pwim) Developing with others
[2012-09-15 10:09:11](pwim) I was happy, wanted to write more
[2012-09-15 10:09:30](pwim) I'll introduce several pull requests I made
[2012-09-15 10:10:15](pwim) The japanese was a bit strange
[2012-09-15 10:10:21](pwim) To literally translated
[2012-09-15 10:10:26](pwim) using google translate
[2012-09-15 10:10:37](pwim) For capybara
[2012-09-15 10:11:00](pwim) I was able to get some good feedback
[2012-09-15 10:11:22](pwim) This isn't to say every patch i sent was good.
[2012-09-15 10:11:22](pwim) But there was times I was able to learn from the author.
[2012-09-15 10:11:54](pwim) Despite being rejected, I was told thanks
[2012-09-15 10:12:22](pwim) Stuff I was taught: author intent, goals, way of thinking
[2012-09-15 10:12:38](pwim) As I increased the number of pull requests…
[2012-09-15 10:12:39](pwim) I started to care more about getting feedback
[2012-09-15 10:12:39](pwim) I got interested in what my favourite hackers were up to
[2012-09-15 10:12:40](pwim) I fell in love with the github timeline!
[2012-09-15 10:13:01](pwim) I was always looking at the time line, but I couldn't see the info I wanted to.
[2012-09-15 10:13:15](pwim) Because there was nothing, I thought I'd make it myself!
[2012-09-15 10:13:25](pwim) NotHub: Realtime Github event notification chrome extension
[2012-09-15 10:13:33](pwim) Quickly see the status of my pull requests
[2012-09-15 10:13:33](pwim) Watch the hackers I'm interested in
[2012-09-15 10:13:33](pwim) See the status of my favourite projects
[2012-09-15 10:13:55](pwim) Through the development, I had the opportunity to use many libraries I hadn't before. This was my opportunity to improve libraries for other people.
[2012-09-15 10:14:11](pwim) The pull requests I made through the development of NotHub
[2012-09-15 10:14:19](pwim) Furthermore…for my first project, I had other people who were interested in it.
[2012-09-15 10:14:34](pwim) Writing code with other people is very fun!
[2012-09-15 10:14:53](pwim) Wait a minute…Isn't it better to send pull requests.
[2012-09-15 10:15:02](pwim) Code isn't the only way to communicate.
[2012-09-15 10:15:22](pwim) It's better to communicate in person, rather than just using text.
[2012-09-15 10:15:34](pwim) For me, it's Ruby Sapporo where I do this
[2012-09-15 10:15:42](pwim) Does everyone have a place like this around them?
[2012-09-15 10:15:54](pwim) You don't have anywhere?
[2012-09-15 10:16:00](pwim) Then make it yourself!
[2012-09-15 10:16:10](pwim) I like JS, but there wasn't any place in Sapporo to do so.
[2012-09-15 10:16:19](pwim) I made it because I was interested in JS, but other people joined me.
[2012-09-15 10:16:36](pwim) I met people that I didn't know
[2012-09-15 10:16:45](pwim) just because they were interested in js they came
[2012-09-15 10:16:54](pwim) so we could code together
[2012-09-15 10:16:55](pwim) Conclusion
[2012-09-15 10:17:01](pwim) Even though there is pull requests, meet with the people around you
[2012-09-15 10:17:08](pwim) From there you can…
[2012-09-15 10:17:17](pwim) Learn how others thing
[2012-09-15 10:17:17](pwim) Learn product culture
[2012-09-15 10:17:17](pwim) Write code with others
[2012-09-15 10:17:26](pwim) from this
[2012-09-15 10:17:27](pwim) You'll get more motivation to code
[2012-09-15 10:17:35](pwim) Sapporo Ruby Kaigi might be a good place as well.
[2012-09-15 10:18:07](pwim) I'll be happy if people can take the spirt of we code with them
[2012-09-15 10:18:22](pwim) Questions/
[2012-09-15 10:18:54](pwim) Was there any tough parts of organizing sapporo js?
[2012-09-15 10:19:02](pwim) find a place to host it
[2012-09-15 10:19:13](pwim) how did you first find people?
[2012-09-15 10:19:17](pwim) over twitter
[2012-09-15 10:19:31](pwim) people i knew from ruby sapporo also recommended others to join
[2012-09-15 10:20:03](pwim) Will there be a sapporo js conference?
[2012-09-15 10:20:12](pwim) I'm thinking about it in maybe half a year
[2012-09-15 10:21:05](pwim) When you started coding, you were alone, but what different that makes coding together more fun?
[2012-09-15 10:21:14](pwim) I'll show you something
[2012-09-15 10:21:22](pwim) This feeling
[2012-09-15 10:21:27](pwim) I'm not alone
[2012-09-15 10:21:33](pwim) i get ideas from others
[2012-09-15 10:21:42](pwim) does that answer it?
[2012-09-15 10:22:02](pwim) so receiving feedback from others is the main thing?
[2012-09-15 10:22:05](pwim) yeah...
[2012-09-15 10:22:14](pwim) that picture looks very fun
[2012-09-15 10:22:17](pwim) thanks
[2012-09-15 10:23:11](pwim) about pull requests, can you tell me about the ratio of good to bad experiences from pull requests?
[2012-09-15 10:23:19](pwim) 100% positive
[2012-09-15 10:23:36](pwim) what are you doing in this picture?
[2012-09-15 10:23:43](pwim) playing around on the command line
[2012-09-15 10:24:29](pwim) i looked at a lot of examples, and you were using english a lot. I thought wow. English is tough for me. What should i do?
[2012-09-15 10:24:35](pwim) its tough for me
[2012-09-15 10:24:51](pwim) for that rvm patch: 2 seconds fixing it, 30 minutes writing the english
[2012-09-15 10:24:57](pwim) one last question?
[2012-09-15 10:25:01](pwim) anyone?
[2012-09-15 10:25:53](pwim) when your doing a pull request, if you make a minor change, do you need tests?
[2012-09-15 10:26:02](pwim) as much as possible, i write tests
[2012-09-15 10:26:14](pwim) this presentation is now over
[2012-09-15 10:26:37](pwim) -----
[2012-09-15 10:27:04](pwim) the material for this presentation is very similar
[2012-09-15 10:28:03](pwim) Hello
[2012-09-15 10:28:30](pwim) This presentations material seems to be covered by the last presentation
[2012-09-15 10:28:47](pwim) I'm a ruby committer
[2012-09-15 10:28:52](pwim) in middle school
[2012-09-15 10:29:17](pwim) almost everyone
[2012-09-15 10:29:35](pwim) lots of you
[2012-09-15 10:29:51](pwim) only a few
[2012-09-15 10:30:06](pwim) github is famous
[2012-09-15 10:30:52](pwim) social coding = fork & pull request
[2012-09-15 10:31:16](pwim) cases when you might fork
[2012-09-15 10:31:25](pwim) patch is very important
[2012-09-15 10:31:49](pwim) you can make a pull request from a topic branch
[2012-09-15 10:31:53](pwim) i'll talk about that later
[2012-09-15 10:32:18](pwim) very easy
[2012-09-15 10:32:37](pwim) github doesn't let you disable the pull request functionality
[2012-09-15 10:32:43](pwim) even though you can for issues
[2012-09-15 10:32:55](pwim) it's part of the terms of the use
[2012-09-15 10:33:07](pwim) if you don't want forks, make it private and pay github
[2012-09-15 10:33:46](pwim) ruby is a good example of somewhere that accepts patches elsewhere
[2012-09-15 10:34:09](pwim) In the start, you find a bug or want a feature
[2012-09-15 10:34:21](pwim) if you think you can fix it, you will
[2012-09-15 10:34:27](pwim) same with feature
[2012-09-15 10:35:07](pwim) master -> master: you can do, but it makes things inconvenient
[2012-09-15 10:35:14](pwim) like if you have multiple patches
[2012-09-15 10:36:23](pwim) lets you search incrementally
[2012-09-15 10:37:00](pwim) example: if you add a method, just mention you've done so
[2012-09-15 10:37:20](pwim) be as specific as possible
[2012-09-15 10:37:33](pwim) don't just say I have a bug somewhere in my rails app
[2012-09-15 10:38:11](pwim) give examples of why the feature is useful
[2012-09-15 10:38:42](pwim) often you'll see in the readme that if you don't have tests, the patch will be rejected
[2012-09-15 10:38:57](pwim) you can use markdown
[2012-09-15 10:39:06](pwim) so make your description pretty
[2012-09-15 10:39:10](pwim) mostly for japanese
[2012-09-15 10:39:34](pwim) you can write in Japanese, but then others can't understand
[2012-09-15 10:39:44](pwim) simple english is better than none
[2012-09-15 10:40:31](pwim) examples that i did
[2012-09-15 10:40:38](pwim) this is a ruby cms
[2012-09-15 10:40:57](pwim) (japanese ruby project)
[2012-09-15 10:41:08](pwim) (based on sinatra / data mapper)
[2012-09-15 10:41:19](pwim) (most people are japanese)
[2012-09-15 10:41:31](pwim) I wrote pull request in english
[2012-09-15 10:43:07](pwim) this is php
[2012-09-15 10:43:15](pwim) but i'll give an example
[2012-09-15 10:43:24](pwim) not used so much now
[2012-09-15 10:43:38](pwim) capistrano repo was private
[2012-09-15 10:43:58](pwim) there was a release manager who merged things to master
[2012-09-15 10:44:07](pwim) this was the actual flow
[2012-09-15 10:44:18](pwim) because the main issues were using redmine
[2012-09-15 10:44:38](pwim) they used redmine because they wanted to let normal people report bugs
[2012-09-15 10:45:30](pwim) this is a great site
[2012-09-15 10:45:33](pwim) for seeing emoji
[2012-09-15 10:46:02](pwim) if you pay, you can use private
[2012-09-15 10:46:29](pwim) even if you upgrade your plan, you can still get a discount as student
[2012-09-15 10:46:50](pwim) this is command line tool
[2012-09-15 10:46:55](pwim) who knows it?
[2012-09-15 10:46:57](pwim) not so many
[2012-09-15 10:47:10](pwim) for example, you can make a pull request from command line
[2012-09-15 10:47:15](pwim) very convenient
[2012-09-15 10:48:16](pwim) send pull requests
[2012-09-15 10:50:54](pwim) is ruby anti-social coding?
[2012-09-15 10:51:02](pwim) matz is over there?
[2012-09-15 10:51:27](pwim) part of it is because someone doesn't what to use svn
[2012-09-15 10:51:38](pwim) but also because svn tools are part of our workflow
[2012-09-15 10:51:56](pwim) there isn't just one way to do social coding
[2012-09-15 10:52:02](pwim) github is a popular way right now
[2012-09-15 10:52:20](pwim) but ML is also a social coding
[2012-09-15 10:54:07](pwim) this isn't a serious question. but there was something with linus and github earlier. where he got angry about the web interface. git also has a sign off feature. some people want this. what do you think about this?
[2012-09-15 10:54:44](pwim) (didn't really get the answer)
[2012-09-15 10:56:36](pwim_) we'll only have this room
[2012-09-15 10:56:43](pwim_) its quite hot
[2012-09-15 10:56:51](pwim_) but were already blasting the AC at full
[2012-09-15 10:57:03](pwim_) we'll stream from other rooms
[2012-09-15 10:57:07](pwim_) so you can try them
[2012-09-15 11:09:38](pwim) There is power and better AC in the other room
[2012-09-15 11:09:47](pwim) So you can enjoy the streaming from there
[2012-09-15 11:10:04](shyouhei) (I'm at room A)
[2012-09-15 11:10:05](pwim) Also, we have icepacks available to cool you down
[2012-09-15 11:10:18](Mikho^) テスト
[2012-09-15 11:10:21](shyouhei) the one Aaron wares is "hiyaron"
[2012-09-15 11:12:17](sorah) テスト
[2012-09-15 11:12:19](sorah) ok
[2012-09-15 11:12:22](shyouhei) ok
[2012-09-15 11:12:32](yokolet) テスト
[2012-09-15 11:13:32](shyouhei) [ANN] IT IS COOLER IN OTHER ROOMS, we have streamings there
[2012-09-15 11:13:33](lchin) "Hiyaron" ice packs: http://www.amazon.co.jp/dp/B007VWUJKG
[2012-09-15 11:14:03](shyouhei) @各位 他の部屋は涼しい上に電源もある上にこの部屋のustもあるよ
[2012-09-15 11:15:15](pwim) hello
[2012-09-15 11:15:23](pwim) this session
[2012-09-15 11:15:26](pwim) is before lunch
[2012-09-15 11:15:42](Mikho^) if I speak too fast, nobody will understand
[2012-09-15 11:15:52](Mikho^) thank you for inviting me
[2012-09-15 11:15:53](sorah) Thank you for inviting me
[2012-09-15 11:16:09](lchin) Fortunately, I'm the last session before lunch, so no one will get angry if I finish too fast
[2012-09-15 11:16:10](pwim) every ruby conf, these people do speech in english
[2012-09-15 11:16:19](pwim) so this time
[2012-09-15 11:16:24](lchin) After seeing matz and other Japanese rubyists speak in English
[2012-09-15 11:16:32](lchin) I thought it was about time for me to try speaking in Japanese
[2012-09-15 11:16:33](sorah) Seeing English talk by ko1-san, mrkn-san and nari-san, I wanted to speak in Japanese
[2012-09-15 11:16:37](sorah) おれのターン
[2012-09-15 11:16:46](lchin) I've been studying Japanese for 6 years now
[2012-09-15 11:16:52](Mikho^) After all, I have studied japanese for 6 years, so I will try to speak only in japanese
[2012-09-15 11:17:01](yokolet) I'll speak slowly
[2012-09-15 11:17:03](shyouhei) ok.
[2012-09-15 11:17:04](sorah) @translators don't translate my mistakes
[2012-09-15 11:17:14](lchin) If I make a mistake, it's embarassing, so please leave them out
[2012-09-15 11:17:25](sorah) Japanese only account: @takoyakikamen
[2012-09-15 11:17:26](yokolet) @tenderlove is for English
[2012-09-15 11:17:27](lchin) @takoyakikamen is my Japanese account
[2012-09-15 11:17:30](sorah) joke only
[2012-09-15 11:17:32](lchin) I only do jokes and puns there
[2012-09-15 11:17:48](shyouhei) @tenderlove is in English, @takoyakimane is Japanese, but joke only
[2012-09-15 11:18:03](shyouhei) public speaker
[2012-09-15 11:18:14](yokolet) i'm always nervous when I make speach
[2012-09-15 11:18:17](lchin) I always get nervous when speaking, so I asked a friend what I should do
[2012-09-15 11:18:18](Mikho^) WWFMD = What Would Freddie Mercury Do
[2012-09-15 11:18:24](lchin) And he told me WWFMD
[2012-09-15 11:18:48](shyouhei) anyway
[2012-09-15 11:18:57](Mikho^) (Freddie mercury was the lead singer of the rock band Queen)
[2012-09-15 11:18:59](pwim) My cat's name is...
[2012-09-15 11:18:59](lchin) But this time i'm in Japan, so I thought it woulb be better to think "What Would Shima Kousaku Do?"
[2012-09-15 11:19:06](shyouhei) my cat
[2012-09-15 11:19:11](shyouhei) Gorby
[2012-09-15 11:19:21](lchin) Gorby say's: "Hello. I'm the CEO"
[2012-09-15 11:19:45](shyouhei) theme of this speech
[2012-09-15 11:19:53](lchin) The title of todays talk is from SPRK's theme:
[2012-09-15 11:20:02](lchin) These are the things I love doing
[2012-09-15 11:20:03](shyouhei) activities with my friends
[2012-09-15 11:20:09](lchin) I'll talk about them in order
[2012-09-15 11:20:14](pwim) eating is fun, but it is more fun to make food with others
[2012-09-15 11:20:21](sorah) Eating is fun, eating foods cooked with friends is more fun
[2012-09-15 11:20:25](shyouhei) eating is fun, but with friends is much more fun.
[2012-09-15 11:20:35](sorah) Dangers makes more fun
[2012-09-15 11:20:44](shyouhei) Salami
[2012-09-15 11:20:52](Mikho^) I don't want to lose friends to food poisoning
[2012-09-15 11:21:04](shyouhei) I researched
[2012-09-15 11:21:13](pwim) when making salami, food safety is important
[2012-09-15 11:21:22](pwim) you need good bacteria
[2012-09-15 11:21:25](Mikho^) you need to insert good bacteria to the food
[2012-09-15 11:21:35](shyouhei) you need to contaminate GOOD bacterias
[2012-09-15 11:21:45](lchin) Encourage good bacteria, discourage bad bacteria
[2012-09-15 11:21:47](shyouhei) 0.012%
[2012-09-15 11:21:55](lchin) Ratios
[2012-09-15 11:21:58](Mikho^) these bacterias eat the sugar in the food, affecting the taste of the salami
[2012-09-15 11:22:00](sorah) Include good bacterias, don't include bad bacterias
[2012-09-15 11:22:10](shyouhei) for instance 5kg pork -> 0.6g bacteria
[2012-09-15 11:22:20](lchin) Sometimes, bad bacteria spreads before good bacteria
[2012-09-15 11:22:24](shyouhei) to prevent BAD ones
[2012-09-15 11:22:28](sorah) Use salt to avoid growth of bad bacterias
[2012-09-15 11:22:28](lchin) So we add salt first to get rid of the bad bacteria
[2012-09-15 11:22:28](shyouhei) need salt
[2012-09-15 11:22:38](lchin) Next up, nitrate
[2012-09-15 11:22:40](shyouhei) and nitrite
[2012-09-15 11:22:44](shyouhei) 0.014%
[2012-09-15 11:22:58](sorah) Nitrite defends from botulinums
[2012-09-15 11:23:00](pwim) (very specific instructions)
[2012-09-15 11:23:00](sorah) Too hot…
[2012-09-15 11:23:01](shyouhei) 5kg pork -> 0.75g nitrite
[2012-09-15 11:23:20](Mikho^) finally, the temperature
[2012-09-15 11:23:20](pwim) last temperature
[2012-09-15 11:23:32](shyouhei) 33 days to take to make salami
[2012-09-15 11:23:52](lchin) MY modified fridge
[2012-09-15 11:23:56](Mikho^) for this I used my customized fridge
[2012-09-15 11:23:57](shyouhei) 21℃ 3days, later 15℃
[2012-09-15 11:23:58](lchin) Before/After
[2012-09-15 11:24:14](shyouhei) definitely changes color
[2012-09-15 11:24:15](sorah) Below pic is after 24h
[2012-09-15 11:24:18](Mikho^) you can see the color of the salami has changed
[2012-09-15 11:24:19](lchin) You can clearly see the difference ;)
[2012-09-15 11:24:19](pwim) japanese is hard
[2012-09-15 11:24:21](sorah) Japanese is hard
[2012-09-15 11:24:36](sorah) Be careful to make mistakes
[2012-09-15 11:24:43](Mikho^) temperature and moisture monitor
[2012-09-15 11:24:48](shyouhei) Temparture / Humidity monitor
[2012-09-15 11:24:53](sorah) Temperture and Humidity are important, so made monitor
[2012-09-15 11:25:05](pwim) from the monitor, I thought it would be fun to measure the data
[2012-09-15 11:25:06](sorah) Analyzing temperture and humidity seems fun
[2012-09-15 11:25:08](shyouhei) it seemd fun to analyze the monitored data
[2012-09-15 11:25:20](Mikho^) I don't know anything about DSP
[2012-09-15 11:25:46](Mikho^) this is the temperature data collected from the fridge
[2012-09-15 11:25:47](shyouhei) this is the raw data of temparture
[2012-09-15 11:25:48](sorah) This is graph of temperture in Sausage Box
[2012-09-15 11:25:54](sorah) (raw data)
[2012-09-15 11:26:03](shyouhei) we analyze that frequency
[2012-09-15 11:26:13](shyouhei) 1. regularization
[2012-09-15 11:26:14](lchin) Higher frequencies mean reduced efficiency
[2012-09-15 11:26:17](Mikho^) step 1: normalization
[2012-09-15 11:26:17](yokolet) normalized graph
[2012-09-15 11:26:34](shyouhei) done by R
[2012-09-15 11:26:34](lchin) So let's calculate the frequency
[2012-09-15 11:26:36](shyouhei) (simple)
[2012-09-15 11:26:37](Mikho^) you can normalize easily with this code
[2012-09-15 11:26:44](sorah) Normalization is easy, using R language
[2012-09-15 11:26:46](lchin) NExt is spectral density
[2012-09-15 11:26:48](Mikho^) 2. spectrum density
[2012-09-15 11:26:49](shyouhei) FFT
[2012-09-15 11:27:03](shyouhei) imaginary
[2012-09-15 11:27:14](shyouhei) imaginary part is not needed
[2012-09-15 11:27:17](sorah) Making graph with this function
[2012-09-15 11:27:33](lchin) I'll be releasing the slides later
[2012-09-15 11:27:39](shyouhei) green line is the max point
[2012-09-15 11:27:40](Mikho^) 3. find the maximum
[2012-09-15 11:27:50](shyouhei) then,
[2012-09-15 11:27:59](shyouhei) you can find the freq.
[2012-09-15 11:28:06](shyouhei) by this equation
[2012-09-15 11:28:06](lchin) Finally, this function derives the frequency of the temperature
[2012-09-15 11:28:33](sorah) Let's make monitoring system
[2012-09-15 11:28:34](shyouhei) lets make a monitoring system
[2012-09-15 11:28:36](Mikho^) so, the answer: one cycle takes 17 minutes
[2012-09-15 11:28:44](sorah) This is last section
[2012-09-15 11:28:47](shyouhei) share the salami data
[2012-09-15 11:28:48](Mikho^) so let's share the salami data
[2012-09-15 11:28:49](sorah) Share salami data
[2012-09-15 11:28:55](lchin) Share your salami (data)
[2012-09-15 11:28:57](shyouhei) Rails 4
[2012-09-15 11:28:58](lchin) With rails 4
[2012-09-15 11:29:00](sorah) Realtime system is available on Rails 4
[2012-09-15 11:29:08](Mikho^) in rails 4 (爆笑)
[2012-09-15 11:29:13](lchin) "Building realtime systems with Rails 4"
[2012-09-15 11:29:16](shyouhei) how to build a real-time system with rails
[2012-09-15 11:29:24](sorah) You can build realtime system using Input and Output object
[2012-09-15 11:29:28](sorah) Let's use pipe
[2012-09-15 11:29:32](shyouhei) pipe / thread impl
[2012-09-15 11:29:39](sorah) producer thread sends data into pipe
[2012-09-15 11:29:45](sorah) consumer thread reads data immediately
[2012-09-15 11:29:45](Mikho^) producer thread writes "hello world" in the pipe every second
[2012-09-15 11:29:52](shyouhei) producer writes to pipe every sec, consumer reads immediately
[2012-09-15 11:29:54](sorah) this is the easiest realtime system I think
[2012-09-15 11:29:54](yokolet) simplest realtime system
[2012-09-15 11:29:56](lchin) This is probably the simpleest implementatino of a real time system
[2012-09-15 11:29:58](sorah) simplest
[2012-09-15 11:30:03](lchin) But this is hard to read, so don't use it
[2012-09-15 11:30:07](shyouhei) do not use the one below
[2012-09-15 11:30:11](sorah) Don't use these not readable code
[2012-09-15 11:30:19](lchin) I will hunt you down if you use this code
[2012-09-15 11:30:20](sorah) I'll catch you if you use this
[2012-09-15 11:31:02](yokolet) I want rails to work pipe
[2012-09-15 11:31:03](sorah) インターネットはPipeの集合 (?)
[2012-09-15 11:31:04](lchin) In ameraica, they say "The cloud is a series of tubes". BUt I think that it should be "The cloud is a series of pipes"
[2012-09-15 11:31:09](shyouhei) ActionController::Live makes Rails a Pipe
[2012-09-15 11:31:25](shyouhei) PubSub
[2012-09-15 11:31:31](Mikho^) look at this structure
[2012-09-15 11:31:35](lchin) Salami PubSub
[2012-09-15 11:31:38](Mikho^) SSE = Server Sent Events
[2012-09-15 11:31:51](sorah) Let's use SSE
[2012-09-15 11:32:02](shyouhei) this is how SSE works
[2012-09-15 11:32:11](sorah) Browser fires received event
[2012-09-15 11:32:17](shyouhei) define event listener as this
[2012-09-15 11:32:20](Mikho^) event listener can be defined like this
[2012-09-15 11:32:25](sorah) This code add listener for events
[2012-09-15 11:32:33](lchin) sorah:「 クラウドはチューブでできてる」といわれてるけど、私は「クラウドはパイプでできている」と思ってる
[2012-09-15 11:32:35](sorah) Sorry, No IE
[2012-09-15 11:32:37](Mikho^) unfortunately cannot be used in IE
[2012-09-15 11:32:41](sorah) lchin: なるほど
[2012-09-15 11:32:52](shyouhei) server side
[2012-09-15 11:33:11](Mikho^) in controller we write data to the io object
[2012-09-15 11:33:11](lchin) Write to IO in the controller
[2012-09-15 11:33:27](sorah) Realtime system built with salami data
[2012-09-15 11:33:28](Mikho^) this is the structure of the salami system
[2012-09-15 11:33:31](shyouhei) Salami system overview
[2012-09-15 11:33:44](shyouhei) This bus is shared among threads
[2012-09-15 11:33:48](Mikho^) this bus is shared within threads
[2012-09-15 11:33:57](sorah) publish data to BUS
[2012-09-15 11:34:15](Mikho^) subscriber can subscribe to events anytime
[2012-09-15 11:34:24](shyouhei) (def indexは中でループして戻ってこないのがポイントです。)
[2012-09-15 11:34:31](yokolet) needs feedback
[2012-09-15 11:34:41](Mikho^) if this system does not have feedback, it's really difficult to understand what is going on
[2012-09-15 11:34:51](sorah) just few lines of javascript
[2012-09-15 11:35:08](lchin) This graphs is displaing the data in realtime
[2012-09-15 11:35:11](lchin) it's a little slow
[2012-09-15 11:35:14](pwim) a bit slow...
[2012-09-15 11:35:16](sorah) Finally updating immediately
[2012-09-15 11:35:28](sorah) Done, oops, not yet.
[2012-09-15 11:35:41](sorah) Salami's temperture.
[2012-09-15 11:35:41](Mikho^) the temperature of the salami
[2012-09-15 11:35:51](sorah) Blue: Humidity, Red: Temperture
[2012-09-15 11:36:02](pwim) we made a real time system
[2012-09-15 11:36:11](sorah) Yeah our realtime system is working!
[2012-09-15 11:36:14](shyouhei) we code.
[2012-09-15 11:36:18](shyouhei) ok
[2012-09-15 11:36:19](pwim) this is the limit of my japanese
[2012-09-15 11:36:19](sorah) Done Japanese part
[2012-09-15 11:36:20](shyouhei) で
[2012-09-15 11:36:20](lchin) This is the limit of my Japanese, so I'll switch to English
[2012-09-15 11:36:40](pwim) シェアのため、作りました
[2012-09-15 11:36:43](yokolet) スライドは公開します。
[2012-09-15 11:36:46](lchin) 最後に、このプレゼンはこの会議のテーマを表現したものだ
[2012-09-15 11:36:47](Mikho^) このスライドに書いたことを、すべてみんなとシェアできるために書いた
[2012-09-15 11:36:52](lchin) そのためにつくりました。
[2012-09-15 11:37:00](Mikho^) WE部分が大事
[2012-09-15 11:37:01](pwim) Weが一番大切!
[2012-09-15 11:37:08](lchin) 今日お願いしたいことは
[2012-09-15 11:37:17](pwim) 知らない人と話しましょう
[2012-09-15 11:37:20](lchin) 皆さんに、新しい出会いをつくりましょう
[2012-09-15 11:37:22](sorah) 挨拶してくれたら、ステッカーあげるよ
[2012-09-15 11:37:24](sorah) Thank you
[2012-09-15 11:37:31](lchin) 一緒に、何かをつくって管さい
[2012-09-15 11:37:34](sorah) Any questions?
[2012-09-15 11:37:35](lchin) つくってください
[2012-09-15 11:37:39](pwim) 声かけたら、シールもらえるよ
[2012-09-15 11:37:45](lchin) if there aren't any questions, we'll have a bonus round
[2012-09-15 11:37:47](Mikho^) if no questions, let's do a bonus round
[2012-09-15 11:37:56](sorah) I'm available for salami questions
[2012-09-15 11:37:57](Mikho^) Qサラミをもってきた?
[2012-09-15 11:37:58](lchin) ”サラミもってきましたか?”
[2012-09-15 11:38:11](lchin) ”すみません、日本に持ち込むのは違法なので…”
[2012-09-15 11:38:12](shyouhei) 検疫のため
[2012-09-15 11:38:15](shyouhei) もってこれない
[2012-09-15 11:38:17](yokolet) サラミをもって国境をこえられない
[2012-09-15 11:38:26](sorah) Sorry for japanese
[2012-09-15 11:38:32](shyouhei) A. sure
[2012-09-15 11:38:34](pwim) 頑張っている!
[2012-09-15 11:38:51](sorah) Waiting for translator
[2012-09-15 11:42:50](sorah_) back
[2012-09-15 11:43:04](sorah_) うーんサブスクリーンのIRC接続もしんでますね
[2012-09-15 11:43:25](sorah_) translation stopped due to network down, dead subscreen,
[2012-09-15 11:43:28](sorah_) :(
[2012-09-15 11:43:39](quicy) Ustも><
[2012-09-15 11:44:12](sorah_) hello?
[2012-09-15 11:44:16](pwim) (net was down)
[2012-09-15 11:44:25](yokolet) アクティビティモニター
[2012-09-15 11:44:29](sorah_) subscreen irc connection also dead now
[2012-09-15 11:44:33](sorah_) please restart it
[2012-09-15 11:44:53](sorah_) (ネットワークの問題で翻訳が止まってました)
[2012-09-15 11:44:55](pwim) (please check what apps you are running and close anything not necessary)
[2012-09-15 11:45:05](Mikho^) これは模擬メールサーバー
[2012-09-15 11:45:08](pwim) (skype, dropbox, etc)
[2012-09-15 11:45:12](shyouhei) (ここまでのまとめ)並列性には二種類あって、CPU boundのとIO boundのがあるよ
[2012-09-15 11:45:13](lchin) *especially* dropbox
[2012-09-15 11:45:32](sorah_) (繰り返しのお願いとなりますが、DropboxやSkypeは止めてください)
[2012-09-15 11:45:33](shyouhei) (ここまでのまとめ)GVLがあるのでCPUが一個しか使えないけど
[2012-09-15 11:45:37](shyouhei) (ここまでのまとめ)IOでは
[2012-09-15 11:46:02](shyouhei) スピードアップしてますね
[2012-09-15 11:46:06](shyouhei) さっきのとなにがちがうか
[2012-09-15 11:46:21](shyouhei) MRIではIOしようとするときにはGVLをはずす
[2012-09-15 11:46:33](shyouhei) で、データがきたらロック取り直す
[2012-09-15 11:46:47](shyouhei) ここで興味深いのは、
[2012-09-15 11:46:56](yokolet) おもしろいのはこれは単なるクライアントではないことです。
[2012-09-15 11:47:02](shyouhei) これはサーバでも有効
[2012-09-15 11:47:07](shyouhei) webサーバとか。
[2012-09-15 11:47:15](Mikho^) サーバーのスピードアップにも使える
[2012-09-15 11:47:17](shyouhei) IOするものならなんでもよい
[2012-09-15 11:47:20](shyouhei) データベースとか
[2012-09-15 11:47:37](shyouhei) あと
[2012-09-15 11:47:42](shyouhei) トリックを共有したい
[2012-09-15 11:47:56](shyouhei) RSA Keyの生成
[2012-09-15 11:48:03](sorah) このコードはRSA Keyを5回作る
[2012-09-15 11:48:04](Mikho^) このコードはRSA Keyを作っている
[2012-09-15 11:48:05](shyouhei) よくやるけど
[2012-09-15 11:48:20](shyouhei) これはCPU intensitive
[2012-09-15 11:48:33](shyouhei) これをスピードアップしたい
[2012-09-15 11:48:40](sorah) 5つつくるけど、1個ずつの生成処理をスレッドに分ける
[2012-09-15 11:48:41](yokolet) キー生成を速くしたい
[2012-09-15 11:48:46](Mikho^) 前の例もあったし、CPUは96%で動いているのは意外じゃない
[2012-09-15 11:49:10](shyouhei) Threadでくるむと速い
[2012-09-15 11:49:25](shyouhei) OpenSSL格調ライブラリを作った人は
[2012-09-15 11:49:32](shyouhei) GVLを外すように作ってる
[2012-09-15 11:49:40](shyouhei) まとめ。
[2012-09-15 11:49:47](shyouhei) 並列性には種類がある
[2012-09-15 11:49:51](shyouhei) CPU, IO
[2012-09-15 11:50:00](shyouhei) どの種類の並列性を使うかを
[2012-09-15 11:50:08](shyouhei) よくかんがえましょう
[2012-09-15 11:50:19](shyouhei) スレッド重要。MRIでも重要
[2012-09-15 11:50:44](sorah) bonus sectionをおわります
[2012-09-15 11:50:51](sorah) ありがとうございました。
[2012-09-15 11:50:59](Mikho^) MRIがあっても、スレッドがこれからより大切になるでしょう
[2012-09-15 11:51:08](lchin) 英語練習したい人、ぜひ声をかけてください!
[2012-09-15 11:51:21](sorah) ===
[2012-09-15 11:51:27](pwim) end of morning sessions
[2012-09-15 11:51:30](pwim) next session
[2012-09-15 11:51:32](pwim) matz keynote
[2012-09-15 11:51:34](sorah) Next session starts at 1:30pm
[2012-09-15 11:51:40](sorah) take a lunch!
[2012-09-15 14:05:27](lchin) so the removed String
[2012-09-15 14:05:29](lchin) and the Array!
[2012-09-15 14:05:30](sorah) finally, mruby works on mindstorm!
[2012-09-15 14:05:38](Mikho^) got it down to 60k
[2012-09-15 14:05:40](lchin) another crazy variation
[2012-09-15 14:05:45](yokolet_) mruby is on github
[2012-09-15 14:06:03](sorah) no web site for mruby yet
[2012-09-15 14:06:07](lchin) mruby got popular on github real quick
[2012-09-15 14:06:17](lchin) but unfortunately we haven't gotten around to building a website for it.
[2012-09-15 14:06:25](sorah) Full syntax (1.9)
[2012-09-15 14:06:28](Mikho^) mruby is on github, please take a look if you have time
[2012-09-15 14:06:41](sorah) less builtin libraries: eval, Regexp, IO, Process, system, fork
[2012-09-15 14:06:44](sorah) no versioning
[2012-09-15 14:07:08](sorah) s/less builtin libraries/some builtin libraries are unavailable/
[2012-09-15 14:07:09](lchin) mruby-uv uses libuv
[2012-09-15 14:07:15](lchin) which is behind nodejs
[2012-09-15 14:07:25](lchin) as the cross-platform eventing system (based on libev)
[2012-09-15 14:07:52](lchin) Lots of interesting experiments too, such as people running mruby on Rasperry Pi
[2012-09-15 14:08:09](sorah) thank you
[2012-09-15 14:08:21](lchin) In the spirit of "We Code"
[2012-09-15 14:08:22](sorah) Powered by Ruby Association
[2012-09-15 14:08:24](lchin) code and be happy
[2012-09-15 14:08:33](sorah) Heroku, Salesforce, Groovenauts, NaCl
[2012-09-15 14:08:47](Mikho^) Questions?
[2012-09-15 14:08:53](sorah) I'm available on nuRuby room
[2012-09-15 14:09:20](sorah) Q. What's presentation software are you using
[2012-09-15 14:09:21](pwim) (he made it)
[2012-09-15 14:09:24](sorah) A. Rabbit
[2012-09-15 14:09:40](sorah) (question from Rabbit author)
[2012-09-15 14:10:06](shyouhei) Q. motivation
[2012-09-15 14:10:14](yokolet_) What is matz' motivation?
[2012-09-15 14:10:17](sorah) Q. when your motivation is getting down, how you recover it
[2012-09-15 14:10:22](shyouhei) what will you do when your motivation gets down?
[2012-09-15 14:10:23](sorah) A. No plan
[2012-09-15 14:11:28](sorah) Q. プログラム書いてる間ははっぴーっていったけど、その間でもどこが一番たのしい?
[2012-09-15 14:11:40](sorah) A. 新機能つくってるときでそれが動いたとき
[2012-09-15 14:11:53](sorah) Anyone?
[2012-09-15 14:12:15](sorah) Q. why are you using Rabbit 1.0.4 (there are new version available)
[2012-09-15 14:12:21](sorah) Q. Compatibility?
[2012-09-15 14:12:31](sorah) A. Ubuntu package is still 1.0.4
[2012-09-15 14:28:13](sorah) Q. You don't like rubygem?
[2012-09-15 14:28:13](sorah) A. still my `gem install` installs into 1.8 (?)
[2012-09-15 14:28:13](sorah) Q. oh, you're not using trunk…
[2012-09-15 14:28:13](sorah) A. no problem, use `./ruby` to testing
[2012-09-15 14:28:13](sorah) A. `ruby` is still 1.9 (1.8?)
[2012-09-15 14:28:13](sorah) more 1 question
[2012-09-15 14:28:13](sorah) anyone?
[2012-09-15 14:28:13](sorah) thank you
[2012-09-15 14:28:13](Mikho^) Rabbit is really popular, maybe I should have made it a rabbit session
[2012-09-15 14:28:13](sorah) =============
[2012-09-15 14:28:13](sorah) Next session starts at 2:30pm
[2012-09-15 14:28:13](sorah) @speakers please check video before your talk starts
[2012-09-15 14:45:02](lchin) 他のメンテーナーをチームに取り込むこともおすすめします。
[2012-09-15 14:45:09](shyouhei) メンテナーを探す。燃え尽きるってのはあるので、そこで一人で抱え込まないで、メンテナーを迎え入れることができるとよい
[2012-09-15 14:45:39](lchin) 例えば、個人ユーザアカウントから組織アカウントに以降することで、個人への依存を減らすこともできる
[2012-09-15 14:46:33](lchin) 私が便利だ感じたこつとしては、githubのissueに難易度のランク付けをすることで、新しいcontributerのレベルにあわせて貢献するチャンスをつくることができます
[2012-09-15 14:46:53](lchin) お互いにexcellentに接しましょう
[2012-09-15 14:47:08](lchin) (完)
[2012-09-15 14:47:47](shyouhei) Q. 実際にはすでに放棄されてるっていうプロジェクトあるよね
[2012-09-15 14:47:54](lchin) 質問:プロジェクト放棄の問題について、プロジェクトの放棄を説明することがメンテーナーの責任ですが、
[2012-09-15 14:48:02](lchin) そうじゃないケースの法がよい
[2012-09-15 14:48:33](lchin) 誰も知らずにプロジェクトが放棄する場合、githubで、それを対策するようなことで何かしていますか?
[2012-09-15 14:49:10](lchin) A: githubでいろいろ検討している。例えば、検索でカバーする:どっちのフォークがアクティブなのか、など
[2012-09-15 14:49:14](shyouhei) たとえばぐぐってみてメンテナが変わってそうならなにか通知を送ってみるとか、そういうことができればいいと
[2012-09-15 14:49:21](lchin) いつリリースするかはわからないけど、問題としては意識しています。
[2012-09-15 14:49:24](shyouhei) 思って、動いてもいるけど、今この瞬間に
[2012-09-15 14:49:32](shyouhei) なにかアナウンスできるものではない
[2012-09-15 15:03:14](shyouhei) A. IssueがStackOverflowで解決することも多いのですが、SOとかと連携したりできないですかね
[2012-09-15 15:03:14](shyouhei) Q.だった
[2012-09-15 15:03:14](lchin) Q: 新しいプロジェクトを使う際に出会った問題について、githubだけで解決方法を見つからないことが多く、結局StackOverflowなどの他コミュニティにたどり着くことがおおい。これをgithubで対策しないか?
[2012-09-15 15:03:14](lchin) A: 他のコミュニティへ影響したくないし、結構難しい問題です。メンテーナーの姿勢としては、そのコミュニティで参加して、ユーザの問い合わせに対してどの手段でやりとりしたほうが都合がよいかを教えたりするとよいでしょう。
[2012-09-15 15:03:43](lchin) From a Perl perspective, Ruby is a great, clean language
[2012-09-15 15:03:53](lchin) This article is a bit old, from 2006
[2012-09-15 15:04:24](lchin) It took the good parts from Perl, but maybe a bit more than that
[2012-09-15 15:04:58](lchin) ARGF is also from perl.
[2012-09-15 15:05:02](lchin) its basically the <> in perl
[2012-09-15 15:05:11](pwim) also quations are from perl
[2012-09-15 15:05:11](lchin) but I'm glad Ruby didn't important the perl syntax of <>
[2012-09-15 15:05:22](lchin) % quotations are also from Perl
[2012-09-15 15:05:34](pwim) begin/end comments also
[2012-09-15 15:05:35](lchin) as well as backticks
[2012-09-15 15:05:56](pwim) these are from perl
[2012-09-15 15:05:58](lchin) the $ variables are also from perl
[2012-09-15 15:06:04](lchin) but they're quite unreadable
[2012-09-15 15:06:13](lchin) fortunately, in ruby there is English.rb
[2012-09-15 15:06:13](pwim) because of these are hard, there is this library to make it easier
[2012-09-15 15:06:18](lchin) probably from Perl's english.pm
[2012-09-15 15:06:26](lchin) useful to make syntax more readable
[2012-09-15 15:06:41](pwim) mostly stuff you guys don't like come from perl
[2012-09-15 15:06:42](lchin) In summary, the stuff you don't like about ruby is probably from Perl
[2012-09-15 15:07:05](lchin) The mechanize gem
[2012-09-15 15:07:08](lchin) used for web scraping
[2012-09-15 15:07:12](shyouhei) good part inherited from perl
[2012-09-15 15:07:15](lchin) was actually originally a port from Perl
[2012-09-15 15:07:27](lchin) mime-types, another popular (dependency) gem
[2012-09-15 15:07:28](pwim) mimetypes also from perl
[2012-09-15 15:07:46](lchin) it's a dependency of rack, so lost of downloads
[2012-09-15 15:07:49](lchin) but also a port from Perl
[2012-09-15 15:08:00](pwim) rails is the biggest example
[2012-09-15 15:08:02](lchin) The flip side, Ruby's influence on other languages
[2012-09-15 15:08:05](pwim) DRy
[2012-09-15 15:08:10](shyouhei) CoC
[2012-09-15 15:08:13](lchin) Rails and it's DRY and CoC have been influential
[2012-09-15 15:08:23](lchin) and also the minimal framework Sinatra
[2012-09-15 15:08:30](pwim) on the other hand, sinatra have also influenced perl
[2012-09-15 15:08:30](lchin) has inspired a legion of micro frameworks
[2012-09-15 15:08:53](lchin) The concept of DSLs and metaprogramming are famously popular in Ruby
[2012-09-15 15:09:17](lchin) Rake is a popular example
[2012-09-15 15:09:32](lchin) Due to its dynamic runtime, DSLs are easy to implement in Ruby
[2012-09-15 15:09:35](lchin) this is harder in Perl
[2012-09-15 15:09:40](shyouhei) many ::DSL libs in CPAN
[2012-09-15 15:09:47](lchin) but nonetheless, there are many DSL libraries in CPAN
[2012-09-15 15:09:59](lchin) there are also interesting Ruby modules in CPAN
[2012-09-15 15:10:07](shyouhei) CPAN search for ruby
[2012-09-15 15:10:11](lchin) I found 13 entries
[2012-09-15 15:10:16](lchin) they're pretty interesting
[2012-09-15 15:10:17](pwim) mostly made by japanese
[2012-09-15 15:10:45](lchin) A great exapmle is the Eruby module
[2012-09-15 15:10:51](lchin) which parses eruby templates in Perl
[2012-09-15 15:10:56](pwim) calling druby over perl
[2012-09-15 15:11:08](lchin) the druby one was built by a Cookpad guy
[2012-09-15 15:11:15](pwim) rvm in perl
[2012-09-15 15:11:19](lchin) then there is RVM... which is a clone of RVM in clone
[2012-09-15 15:11:27](shyouhei) who benefits?
[2012-09-15 15:11:27](lchin) No idea who benefits from that one ;0
[2012-09-15 15:11:42](lchin) Here are a few examples from me.
[2012-09-15 15:11:49](lchin) First, Planck/PSGI
[2012-09-15 15:12:00](shyouhei) Rack / WSGI counterpart
[2012-09-15 15:12:06](lchin) inspired from Rack, and WSGI before that
[2012-09-15 15:12:17](lchin) They look farily similar
[2012-09-15 15:12:43](lchin) Almost indistinguishable
[2012-09-15 15:12:47](lchin) here's a git diff
[2012-09-15 15:13:04](lchin) The python document for WSGI is nice an comprehensive
[2012-09-15 15:13:09](lchin) but a bit overbearing
[2012-09-15 15:13:12](lchin) the Rack one is much simpler
[2012-09-15 15:30:00](lchin) I basically copied the Rack Spec when writing PSGI
[2012-09-15 15:30:00](lchin) HEre is a classical Perl web framework architecture
[2012-09-15 15:30:00](lchin) from the world before PSGI
[2012-09-15 15:30:00](lchin) By introducing Pack/PSGI, it looks nice and conceptually clean
[2012-09-15 15:30:00](lchin) We Rack over WSGI?
[2012-09-15 15:30:00](lchin) It was newer and easier
[2012-09-15 15:30:00](lchin) An interesting aside
[2012-09-15 15:30:00](lchin) My Plack/PSGI spec was pure copy-paste
[2012-09-15 15:30:00](lchin) but interestingly, it included a mistake we didn't notice for 1.5 yrs
[2012-09-15 15:30:00](lchin) One nitpick was that Rack and WSGI are both the Spec and the implementation
[2012-09-15 15:30:00](lchin) I don't like that, so I separated them in PSGI/Plack
[2012-09-15 15:30:00](lchin) PSGI is the spec, Plack is the implementation
[2012-09-15 15:30:00](lchin) Plack/PSGI were really late to the party compared to python/ruby
[2012-09-15 15:30:00](lchin) but that turns out to be a good thing
[2012-09-15 15:30:00](pwim) It's best to arrive late to the party and enjoy the food that's already been made
[2012-09-15 15:30:29](lchin) times up
[2012-09-15 16:04:33](sorah) Caching relation
[2012-09-15 16:04:33](sorah) pass block to has_many
[2012-09-15 16:04:33](sorah) `loaded?` switch use SQL or not
[2012-09-15 16:04:33](pwim) I'm Matsuda's friend Moro
[2012-09-15 16:04:33](sorah) I'm @moro, friend of a_matsuda
[2012-09-15 16:04:33](sorah) Recipe 003: Avoid N+1 problem of polymorphic association
[2012-09-15 16:04:33](sorah) I'm working at ESM, have a talk tomorrow
[2012-09-15 16:04:33](pwim) I'm one of these people
[2012-09-15 16:04:33](pwim) This is a service we made
[2012-09-15 16:04:33](sorah) made copipedential
[2012-09-15 16:04:33](sorah) www.copi.pe
[2012-09-15 16:04:34](sorah) N+1 problem, can't eager loading
[2012-09-15 16:38:38](pwim) I'm one of these people
[2012-09-15 16:38:38](chibicode) say hi to us
[2012-09-15 16:38:38](sorah) these are ESM people
[2012-09-15 16:38:38](yokolet) I work for Eiwa System management
[2012-09-15 16:38:38](pwim) the title is "the bad parts"
[2012-09-15 16:38:38](sorah) Rails is great framework I think,
[2012-09-15 16:38:38](sorah) "Ride on rail"
[2012-09-15 16:38:38](pwim) But will it keep getting better?
[2012-09-15 16:38:38](sorah) what happens when continue to ride
[2012-09-15 16:38:38](pwim) this is reality
[2012-09-15 16:38:38](chibicode) after a few months - you find code that you don't want to even touch
[2012-09-15 16:38:38](pwim) it's not enough just to write tests
[2012-09-15 16:38:38](chibicode) is rails at fault?
[2012-09-15 16:38:38](sorah) sorry rails, you're awesome
[2012-09-15 16:38:40](yokolet) tests doesn't help to write good code
[2012-09-15 16:38:40](sorah) QA@IT
[2012-09-15 16:38:40](pwim) i got this job to make this service
[2012-09-15 16:38:40](sorah) Product Owner @knsmr
[2012-09-15 16:38:40](pwim) is nishimura (the product owner) here?
[2012-09-15 16:38:40](pwim) he wanted to make a stack-overflow like site
[2012-09-15 16:38:40](sorah) (QA@IT is web site like stackoverflow)
[2012-09-15 16:38:40](chibicode) difficult job b/c no one understood requirements
[2012-09-15 16:38:40](yokolet) nobody knew the goal of QA site
[2012-09-15 16:38:40](chibicode) analyzed my dead rails projects
[2012-09-15 16:38:40](sorah) 3 reasons to dead
[2012-09-15 16:39:01](sorah) how to use this cell
[2012-09-15 16:39:16](sorah) use `render_cell :cell_name, :action_name`
[2012-09-15 16:55:39](sorah) this is real code from QA@IT
[2012-09-15 16:55:39](sorah) to show answers to question
[2012-09-15 16:55:39](sorah) -- Chapter 3 --
[2012-09-15 16:55:39](pwim) This is real code
[2012-09-15 16:55:39](sorah) sorry for can't show, this is real code of model over 500 lines
[2012-09-15 16:55:39](pwim) but if i look closely, its not so bad
[2012-09-15 16:55:39](pwim) there isn't any particular smelly stuff in here
[2012-09-15 16:55:39](sorah) this is normally on the rails way
[2012-09-15 16:55:39](sorah) thin controller, fat model…
[2012-09-15 17:00:03](sorah) can't be more cooler, sorry
[2012-09-15 17:00:18](sorah) go other rooms, satellite stream available
[2012-09-15 17:00:23](sorah) thank you
[2012-09-15 17:03:20](igaiga) hi
[2012-09-15 17:05:04](igaiga) I'll display this ch. in timer.
[2012-09-15 17:05:57](sorah) additional announcement about the party
[2012-09-15 17:06:06](sorah) we'll go to sapporo grand hotel,
[2012-09-15 17:06:22](sorah) two venues
[2012-09-15 17:06:46](sorah) please ask to staff where you should go
[2012-09-15 17:11:55](shyouhei) あついですね
[2012-09-15 17:12:12](shyouhei) Red 1にいくといですよ
[2012-09-15 17:26:22](sorah) hi
[2012-09-15 17:26:22](drbrain) ⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡
[2012-09-15 17:26:22](shyouhei) mojibake
[2012-09-15 17:26:22](sorah) kaminari emojis
[2012-09-15 17:26:22](drbrain) :(
[2012-09-15 17:26:22](sorah) :)
[2012-09-15 17:26:22](znz_) ☃
[2012-09-15 17:26:22](sorah) (๑╹◡╹๑)
[2012-09-15 17:26:22](pwim) hello
[2012-09-15 17:26:23](sorah_) hello
[2012-09-15 17:26:23](soraher) Hello everyone, LT will start soon
[2012-09-15 17:26:23](yokolet) speakers have just 5 mins
[2012-09-15 17:26:50](soraher) Seki products are too simple API, but hard to use
[2012-09-15 17:27:00](soraher) This book includes how to use and tips
[2012-09-15 17:27:16](soraher) The dRuby Book is one of few documents of ERB
[2012-09-15 17:27:20](soraher) title should be include ERB?
[2012-09-15 17:27:52](soraher) this book describes my expected usage of ERB
[2012-09-15 17:28:59](soraher) please directly invest to me
[2012-09-15 17:29:00](soraher) ---
[2012-09-15 17:29:19](soraher) こんにちは、5分は短いのでさっさといきます
[2012-09-15 17:29:22](soraher) シアトルからきました
[2012-09-15 17:29:41](soraher) Axlsx っていう gem を紹介します
[2012-09-15 17:30:18](soraher) CSVを使う人、間違ってるよ。
[2012-09-15 17:30:39](soraher) えっ、ユーザーがCSVを使ってると思ってるの…
[2012-09-15 17:30:56](soraher) プログラマが楽、イエーイ
[2012-09-15 17:31:08](pwim) PCより古い
[2012-09-15 17:31:32](soraher) axlsx ならみんな幸せになるし問題が解決するよ
[2012-09-15 17:32:16](soraher) Packageを作って、worksheetを作って、rowを追加する
[2012-09-15 17:32:25](soraher) するとこんなxlsxファイルができる
[2012-09-15 17:32:32](pwim) ひどい
[2012-09-15 17:32:43](soraher) はっぴーなAPIを
[2012-09-15 17:32:44](pwim) ユーザからフィードバック
[2012-09-15 17:32:54](yokolet) スタイルをつけられる
[2012-09-15 17:32:57](soraher) Style にも対応してます、色とか文字揃えとか
[2012-09-15 17:33:06](soraher) こんな感じになりました
[2012-09-15 17:33:11](soraher) 画像も追加できます
[2012-09-15 17:33:55](soraher) グラフの生成
[2012-09-15 17:34:35](soraher) randym/axlsx
[2012-09-15 17:34:35](soraher) ---------------
[2012-09-15 17:35:36](darashi) test.
[2012-09-15 17:35:45](soraher) common problems of enterpriser
[2012-09-15 17:36:02](yokolet) Do you know ThinReports?
[2012-09-15 17:36:25](yokolet) It doesn't look like Ruby
[2012-09-15 17:36:56](soraher) use in controller…
[2012-09-15 17:36:57](yokolet) want to write in view
[2012-09-15 17:37:59](pwim) please tweet about it
[2012-09-15 17:38:04](pwim) so i can make a report of tweets
[2012-09-15 17:39:09](soraher) story of rename
[2012-09-15 17:39:25](soraher) first, I developed this as "thinreports-handler" (template handler) because
[2012-09-15 17:39:41](soraher) thinreports-rails exists at the next of ofifical
[2012-09-15 17:40:01](soraher) but, thinreports author asked me to "release this as thinreports-rails?," that's it.
[2012-09-15 17:40:10](soraher) ------------
[2012-09-15 17:40:41](soraher) I'm from okinawa.rb, and its founder.
[2012-09-15 17:40:55](pwim) We're going to have a rails hackathon in okinawa
[2012-09-15 17:40:57](soraher) what's okinawa.rb
[2012-09-15 17:41:06](soraher) bring machine to the beach
[2012-09-15 17:41:10](pwim) we code every week
[2012-09-15 17:41:11](soraher) then hack
[2012-09-15 17:41:21](soraher) every Wednesday
[2012-09-15 17:41:32](soraher) joint event with Minami.rb, shibuya
[2012-09-15 17:41:42](soraher) schedule is up on web
[2012-09-15 17:41:51](yokolet) November 23
[2012-09-15 17:41:54](soraher) ideathon, then hackathon (venue for about 60 people)
[2012-09-15 17:41:54](pwim) we have space for about 100 people
[2012-09-15 17:42:06](soraher) Nov 24, talk about result
[2012-09-15 17:42:20](pwim) on sunday, you just enjoy yourself
[2012-09-15 17:42:21](soraher) Nov 25, no event, use it free
[2012-09-15 17:42:24](soraher) enjoy
[2012-09-15 17:42:42](soraher) How to enjoy hackathon
[2012-09-15 17:42:55](soraher) list of what I wanna make
[2012-09-15 17:43:11](soraher) make my own Hubot…
[2012-09-15 17:43:18](soraher) make iOS app with Mobiruby…
[2012-09-15 17:43:42](yokolet) WebPay's code is interesting
[2012-09-15 17:43:43](soraher) make payment using webapp with webpay…
[2012-09-15 17:44:17](soraher) webpay's api is compatible to stripe
[2012-09-15 17:44:20](soraher) ?
[2012-09-15 17:44:40](soraher) you can make payment at short term, like hackathon
[2012-09-15 17:44:46](soraher) s/at/in a/
[2012-09-15 17:44:54](soraher) for detail, see this page
[2012-09-15 17:45:27](soraher) I have okinawa.rb t-shirt, ask me
[2012-09-15 17:45:29](yokolet) I have two Okinawa.rb T-shirt
[2012-09-15 17:45:36](soraher) -----------
[2012-09-15 17:46:07](Mikho^) in case you are willing to wear it everyday :)
[2012-09-15 17:46:57](pwim) How to Write Ruby in Non-Ruby Company
[2012-09-15 17:46:59](soraher) 5 ways to bring Ruby to non-Ruby company
[2012-09-15 17:47:14](soraher) I'm id:antipop, work for Paperboy & co
[2012-09-15 17:47:17](shyouhei) not all of you are working with ruby, right?
[2012-09-15 17:47:19](pwim) i've used perl for a long time
[2012-09-15 17:47:21](soraher) @miyagawa as god
[2012-09-15 17:47:31](pwim) but i ended up somehow doing php
[2012-09-15 17:47:35](yokolet) Now I work for PHP company
[2012-09-15 17:47:40](soraher) but @miyagawa went Ruby company, I moved to PHP company
[2012-09-15 17:47:51](pwim) paperboy has a lot of different services
[2012-09-15 17:47:58](soraher) suddenly, rubyized
[2012-09-15 17:48:01](pwim) mostly in php
[2012-09-15 17:48:05](soraher) many existing service written in php
[2012-09-15 17:48:33](soraher) I can't write PHP, and I want to write a Ruby, let's find a way to write Ruby
[2012-09-15 17:48:39](pwim) internal sns
[2012-09-15 17:48:41](yokolet) promote communication in a company
[2012-09-15 17:48:56](soraher) automate deploy
[2012-09-15 17:48:57](pwim) automate deploy
[2012-09-15 17:49:00](soraher) use capistrano
[2012-09-15 17:49:09](pwim) cap can deploy php
[2012-09-15 17:49:18](soraher) kentaro/webistrano
[2012-09-15 17:49:21](pwim) web interface for cap
[2012-09-15 17:49:21](soraher) web ui of capistrano
[2012-09-15 17:49:39](soraher) automate server environment manage
[2012-09-15 17:49:46](soraher) by puppet, chef
[2012-09-15 17:50:00](pwim) if you want to write ruby, i recommend puppet
[2012-09-15 17:50:14](yokolet) fight over legacy code
[2012-09-15 17:50:20](soraher) external test is a fight with legacy code
[2012-09-15 17:50:23](pwim) external test
[2012-09-15 17:50:33](soraher) implementation language (like PHP) is hard to write unit test
[2012-09-15 17:50:42](soraher) Ruby has capybara and some useful tools
[2012-09-15 17:50:48](soraher) fluentd plugins
[2012-09-15 17:50:49](pwim) fluentd plugins
[2012-09-15 17:50:51](yokolet) won't give up to improve legacy code
[2012-09-15 17:51:01](soraher) fluentd: log collector using JSON
[2012-09-15 17:51:03](pwim) response time graph
[2012-09-15 17:51:34](yokolet) Main service is written in other languages, but
[2012-09-15 17:51:52](soraher) writing ruby can become a job
[2012-09-15 17:51:54](soraher) thank you
[2012-09-15 17:51:55](soraher) ----
[2012-09-15 17:52:07](soraher) hello
[2012-09-15 17:52:14](soraher) I'm Takai, from COOKPAD
[2012-09-15 17:52:14](pwim) i work at cookpa
[2012-09-15 17:52:20](shyouhei) なにこのテンション
[2012-09-15 17:52:21](soraher) Important thing
[2012-09-15 17:52:22](pwim) lots of good talks today
[2012-09-15 17:52:38](soraher) LT: conclusion first
[2012-09-15 17:52:45](soraher) Let's subscribe our premium service
[2012-09-15 17:52:55](soraher) Doing code review?
[2012-09-15 17:52:59](pwim) do code review?
[2012-09-15 17:53:03](soraher) Okay, I don't have to talk
[2012-09-15 17:53:13](soraher) Background, we have a problem around quality
[2012-09-15 17:53:14](pwim) we are growing a lot
[2012-09-15 17:53:21](pwim) java, perl,python
[2012-09-15 17:53:24](pwim) ux
[2012-09-15 17:53:28](pwim) server side
[2012-09-15 17:53:44](pwim) lots of languages and dialects
[2012-09-15 17:53:55](soraher) keep code readable
[2012-09-15 17:53:57](soraher) and simple
[2012-09-15 17:54:09](yokolet) mixing various stuff tends to go complicated
[2012-09-15 17:54:10](pwim) 4 months ago we started using GHE
[2012-09-15 17:54:11](soraher) 4 months ago, we started use GitHub:enterprise
[2012-09-15 17:54:20](pwim) about 20$ per dev
[2012-09-15 17:54:25](soraher) GitHub:enterprise seems expensive, but GHE is 20USD/user/month
[2012-09-15 17:54:27](pwim) so not as expensive as people say
[2012-09-15 17:54:40](soraher) company Still saying expensive, …
[2012-09-15 17:55:01](soraher) in 4 months, 2000 pull requests sent, and 12000 (review) comments sent
[2012-09-15 17:55:09](soraher) review in team
[2012-09-15 17:55:18](soraher) but comments from other team are welcomed
[2012-09-15 18:10:16](soraher) モヒカン
[2012-09-15 18:10:16](soraher) code review is not test and inspection,
[2012-09-15 18:10:16](soraher) focus on readability
[2012-09-15 18:10:16](soraher) we're using :+1: :sushi:
[2012-09-15 18:10:16](soraher) for accept
[2012-09-15 18:10:16](soraher) ぷきゃー
[2012-09-15 18:10:16](soraher) good code review: where's not good, why, how to improve
[2012-09-15 18:10:16](soraher) code review keeps code readable and simple
[2012-09-15 18:10:16](soraher) ---GONG---
[2012-09-15 18:10:16](soraher) starting
[2012-09-15 18:10:16](soraher) about IRC
[2012-09-15 19:19:45](darashi) :+1:
[2012-09-16 09:02:56](june29) はい
[2012-09-16 09:03:08](june29) :sushi:
[2012-09-16 09:03:57](june29) :sushi:
[2012-09-16 09:04:17](june29) :sushi: :sushi:
[2012-09-16 09:06:42](june29) :sushi:
[2012-09-16 09:06:58](june29) :sushi: :+1:
[2012-09-16 09:09:39](june29) :sushi:
[2012-09-16 09:10:06](june29) :a
[2012-09-16 09:10:08](june29) hi
[2012-09-16 09:10:20](june29) hi
[2012-09-16 09:10:30](june29) :sushi:
[2012-09-16 09:10:49](june29) :sushi: :+1:
[2012-09-16 09:11:13](mongrelP) :sushi
[2012-09-16 09:11:48](h_hiro_) :sushi
[2012-09-16 09:12:05](h_hiro_) :sushi.class # => Symbol
[2012-09-16 09:17:20](pwim) :sushi:
[2012-09-16 09:52:57](pwim) Hello
[2012-09-16 09:53:56](pwim) subscreenは絵文字対応になった! :+1:
[2012-09-16 09:53:58](darashi) Now github compatible emojis are supported :sushi:
[2012-09-16 09:55:32](june29) Let's enjoy emoji!!! :sushi:
[2012-09-16 09:55:37](shyouhei) :+1:
[2012-09-16 09:57:05](pwim) Please don't eat in here.
[2012-09-16 09:57:08](pwim) Drinking is fine.
[2012-09-16 09:57:17](pwim) Make sure to finish your drink
[2012-09-16 09:57:23](pwim) or pour it out in the sink
[2012-09-16 09:57:27](pwim) before throwing out
[2012-09-16 09:57:37](pwim) Please take care of your own belongings
[2012-09-16 09:57:50](pwim) There is space at the back of the room where you can leave stuff
[2012-09-16 09:57:57](pwim) but we take no responsibility for it
[2012-09-16 09:58:07](pwim) Please only smoke in designated areas
[2012-09-16 09:58:19](pwim) You are free to take photos
[2012-09-16 09:58:32](pwim) Wear your name tag at all times
[2012-09-16 09:58:57](ryopeko) つ :octocat:
[2012-09-16 09:59:03](pwim) We don't have many seats, so please make room for everyone
[2012-09-16 09:59:09](spring_aki) :sushi: :+1:
[2012-09-16 09:59:31](pwim) Make sure to not download big files
[2012-09-16 09:59:35](pwim) Or stream videos
[2012-09-16 09:59:57](june29) :octocat: :octocat: :octocat: :octocat: :octocat:
[2012-09-16 09:59:58](pwim) If you are running dropbox or skype, please close it
[2012-09-16 10:00:10](june29) :+1:
[2012-09-16 10:00:10](pwim) If you find any lost stuff, give to staff
[2012-09-16 10:00:12](znz_) 🍣👍
[2012-09-16 10:00:24](pwim) There are announcements on this screen up at the top
[2012-09-16 10:00:42](pwim) Good morning everyone
[2012-09-16 10:00:48](pwim) This is the last day of sprk2012
[2012-09-16 10:01:04](pwim) Everyone who has participated from the first day must be tired
[2012-09-16 10:01:13](pwim) especially because of this issues with the heating
[2012-09-16 10:01:23](pwim) so please make sure to not get to hot
[2012-09-16 10:01:25](znz_) :zzz:
[2012-09-16 10:01:38](pwim) or if you are feeling tired, feel free to use the lobby
[2012-09-16 10:01:42](pwim) to relax
[2012-09-16 10:01:54](pwim) now we will start with shibata
[2012-09-16 10:02:02](pwim) good morning
[2012-09-16 10:02:13](pwim) about myself
[2012-09-16 10:02:21](pwim) i use this icon all over the place
[2012-09-16 10:02:32](pwim) this is the handle i use
[2012-09-16 10:03:03](pwim) i stayed in sapporo 4 years ago and received this ruby from shimada
[2012-09-16 10:03:09](pwim) i'm a member of asakusa.rb
[2012-09-16 10:03:14](pwim) we meet on tuesday
[2012-09-16 10:03:19](pwim) normally dont talk much
[2012-09-16 10:03:22](pwim) but this is great
[2012-09-16 10:03:36](pwim) because there is people like amatsuda - author of kaminari
[2012-09-16 10:03:48](pwim) so we can talk to real people
[2012-09-16 10:03:55](pwim) we will do oedo ruby kaigi
[2012-09-16 10:04:02](pwim) but we are in the red right now
[2012-09-16 10:04:05](pwim) so please join us
[2012-09-16 10:04:12](pwim) i'm developing tdiary
[2012-09-16 10:04:23](pwim) we made a fb page
[2012-09-16 10:04:29](pwim) but i won't ask you to like it
[2012-09-16 10:04:57](pwim) i worked at esm before, but now i work here
[2012-09-16 10:05:24](pwim) our philosophy is to do more interesting stuff
[2012-09-16 10:05:33](pwim) i work with this great perl hacker
[2012-09-16 10:05:47](pwim) he already uploaded his lt, so check it out
[2012-09-16 10:05:55](pwim) we recently launched this service
[2012-09-16 10:06:05](pwim) before i used heroku a lot
[2012-09-16 10:06:23](pwim) but now I'm using my experience from this to help improve sqale
[2012-09-16 10:06:31](pwim) everything is written in ruby
[2012-09-16 10:06:40](pwim) here's an article about sqale
[2012-09-16 10:06:57](pwim) this is a photo service we made
[2012-09-16 10:07:12](pwim) the main difference is it focuses on albums of photos
[2012-09-16 10:07:36](pwim) my colleague will be giving a presentation about it
[2012-09-16 10:07:42](pwim) taking a bit of a break
[2012-09-16 10:07:51](pwim) this place is great for crab!
[2012-09-16 10:07:55](pwim) only 700 yen
[2012-09-16 10:08:00](pwim) so you should go tomorrow
[2012-09-16 10:08:36](pwim) who knows this?
[2012-09-16 10:08:44](pwim) so its from the agile manifesto
[2012-09-16 10:08:51](pwim) written right up at the top
[2012-09-16 10:08:56](pwim) the most important thing
[2012-09-16 10:09:02](pwim) agile is kind of a buzzword
[2012-09-16 10:09:30](pwim) but i agree with this saying
[2012-09-16 10:09:43](pwim) so focusing on continuous delivery
[2012-09-16 10:09:53](pwim) so there is this book
[2012-09-16 10:10:21](pwim) i recommend it
[2012-09-16 10:10:34](pwim) its been getting a lot of buzz
[2012-09-16 10:10:38](pwim) about 500 pages
[2012-09-16 10:10:47](pwim) so i read it all, but it was very tiring
[2012-09-16 10:11:00](pwim) i'll try and introduce the essense of it
[2012-09-16 10:11:14](pwim) first you need to write tests
[2012-09-16 10:11:20](pwim) there is rspec, cucumber
[2012-09-16 10:11:27](pwim) write tests first
[2012-09-16 10:11:34](pwim) every naturally does this
[2012-09-16 10:11:42](pwim) *everyone
[2012-09-16 10:12:02](pwim) so testing is an iterative process
[2012-09-16 10:12:18](pwim) using stuff like guard you can automate this process
[2012-09-16 10:12:30](pwim) jenkins is another thing you can use
[2012-09-16 10:12:33](pwim) so is travis
[2012-09-16 10:13:49](pwim) in scrum there is "sprint 0"
[2012-09-16 10:13:59](pwim) before you start dev
[2012-09-16 10:14:08](yokolet) when is the best time to introduce CI
[2012-09-16 10:14:08](pwim) you should do stuff like setup jenkins
[2012-09-16 10:14:31](yokolet) quality comes from software itself
[2012-09-16 10:14:54](yokolet) improve quality step by step
[2012-09-16 10:15:33](yokolet) like growing plant, software grows by day to day effort
[2012-09-16 10:15:55](pwim) in rails tutorial, there is the file in public that you can check to make sure everything is running properly
[2012-09-16 10:16:16](pwim) similarly, i recommend you make a basic test case so you can see that your ci is wokring properly
[2012-09-16 10:16:27](pwim) next introduction
[2012-09-16 10:16:33](pwim) about 300km from here
[2012-09-16 10:16:43](pwim) this place is like KFC
[2012-09-16 10:16:50](pwim) but you can eat outside
[2012-09-16 10:16:57](yokolet) from here to yakumo-cho about 300km
[2012-09-16 10:17:31](yokolet) when test fails, we all should be aware that
[2012-09-16 10:18:09](yokolet) build pipeline is very improtant
[2012-09-16 10:18:38](pwim) build pipeline => test -> provision -> deploy -> post deploy test
[2012-09-16 10:19:17](pwim) you need to test outside your app aswell
[2012-09-16 10:19:30](pwim) because there might be a problem with middle ware like nginx
[2012-09-16 10:19:36](yokolet) everything except test should work automatcally
[2012-09-16 10:20:02](pwim) you should use something like chef or puppet to deploy
[2012-09-16 10:20:24](pwim) we are using webistrano
[2012-09-16 10:20:32](pwim) that gives us a history
[2012-09-16 10:20:39](yokolet) we use webistrano because we need history
[2012-09-16 10:21:09](pwim) the problem is if webistrano fails, you can't deploy
[2012-09-16 10:22:18](pwim) especially for applications that are out side of rails
[2012-09-16 10:22:27](pwim) many people are modifying the db directly
[2012-09-16 10:22:41](pwim) but you need to do this in the code instead
[2012-09-16 10:22:53](pwim) there is this jenkins plugin
[2012-09-16 10:23:04](yokolet) jenkins build pipeline
[2012-09-16 10:23:11](pwim) which allows you to define steps in the build pipeline
[2012-09-16 10:23:14](pwim) i recommend it
[2012-09-16 10:23:31](pwim) another great place
[2012-09-16 10:23:39](yokolet) soba in shintoku is very good
[2012-09-16 10:23:45](pwim) so if you've got this far, we are mostly done
[2012-09-16 10:23:59](yokolet) cycle time
[2012-09-16 10:24:21](pwim) developer -> ops -> qa -> outside PL -> user
[2012-09-16 10:24:37](yokolet) how we cut down cycle time
[2012-09-16 10:25:19](yokolet) we have commit branch of git
[2012-09-16 10:25:26](pwim) this is a project we are working on
[2012-09-16 10:25:31](pwim) user stories
[2012-09-16 10:25:39](pwim) we divide them according to role
[2012-09-16 10:25:46](pwim) user, admin, etc
[2012-09-16 10:25:59](pwim) we make topic branches according to user stories
[2012-09-16 10:26:16](pwim) these are all important for user stories
[2012-09-16 10:27:24](pwim) so if you just make a login form but not the submit, the user can't do anything, so it isn't complete. you need to go all the way and let him log in before the story is complete.
[2012-09-16 10:27:38](pwim) another jenkins plugin
[2012-09-16 10:28:10](pwim) allows you to start the deploy process based on a build
[2012-09-16 10:28:19](pwim) another way to shorten cycle time
[2012-09-16 10:28:26](yokolet) how to speed up
[2012-09-16 10:28:30](pwim) this is feedback system
[2012-09-16 10:28:35](pwim) everyone uses irc
[2012-09-16 10:28:38](pwim) even the ceo!
[2012-09-16 10:28:43](yokolet) feedback everything
[2012-09-16 10:28:48](pwim) theres lots of bots in here too
[2012-09-16 10:28:54](pwim) for instead staging errors
[2012-09-16 10:29:05](pwim) you can see the build pipeline here
[2012-09-16 10:29:20](pwim) so you can quickly fix something if it goes wrong
[2012-09-16 10:29:35](pwim) this allows you to cut down the cycle time
[2012-09-16 10:29:43](pwim) and continuously fix things
[2012-09-16 10:29:43](yokolet) we easily know where in build pipeline is wrong
[2012-09-16 10:30:08](pwim) migrations are the biggest wall from automating deployment now
[2012-09-16 10:30:12](pwim) in rails that is
[2012-09-16 10:30:31](pwim) i want to here what peoples strategies are for automatic deployment with migrations
[2012-09-16 10:30:40](pwim) another restaurant, only 1000 yen
[2012-09-16 10:31:13](pwim) deploy automatically with confidence
[2012-09-16 10:31:14](yokolet) another restaurant, naruto in otaru
[2012-09-16 10:31:42](pwim) see what you can automate
[2012-09-16 10:31:48](pwim) create feedback systems
[2012-09-16 10:32:02](pwim) everyday focus on improving cycle time
[2012-09-16 10:32:11](pwim) end of presentation
[2012-09-16 10:32:18](ryopeko) :+1: :+1: :+1: :+1: :+1: :+1:
[2012-09-16 10:32:32](pwim) questions?
[2012-09-16 10:32:32](yokolet) questions?
[2012-09-16 10:35:53](pwim) q: what to do about legacy systems? a: in our company, we have a lot of php apps without many tests. start with stuff like testing the top page and login. that at least gives you confidence that part is working.
[2012-09-16 10:36:06](pwim) -------
[2012-09-16 10:37:06](pwim) in red1, linda is talking about rails girls, so I'd recommend you check it out
[2012-09-16 10:37:19](pwim) i work for cookpad
[2012-09-16 10:37:43](pwim) my company has staff photos in the lounge
[2012-09-16 10:37:52](pwim) everyone was going to take a new photo
[2012-09-16 10:38:08](pwim) and came in this tshirt
[2012-09-16 10:38:18](yokolet) わたしが個人的におこなっているのは弁当ぼっくすモデル
[2012-09-16 10:38:30](yokolet) さまざまな用語を分類するものです
[2012-09-16 10:39:39](pwim) these are my teammates
[2012-09-16 10:40:22](pwim) all except one came to sprk2012
[2012-09-16 10:40:31](pwim) lets start
[2012-09-16 10:40:58](pwim) cookpad is trying to make every day more fun through cooking
[2012-09-16 10:41:04](pwim) it lets you share recipes
[2012-09-16 10:41:17](pwim) also stuff like selling vegetables
[2012-09-16 10:41:40](pwim) very large rails app
[2012-09-16 10:41:47](pwim) these are our stats
[2012-09-16 10:41:51](pwim) 861 models!
[2012-09-16 10:42:09](pwim) too many integration specs
[2012-09-16 10:42:21](pwim) we have a os plugin called chanko
[2012-09-16 10:42:32](pwim) that allows you to selectively release new features
[2012-09-16 10:42:37](pwim) lots of tests here too
[2012-09-16 10:42:59](pwim) so i want to introduce chanko a bit
[2012-09-16 10:43:08](pwim) i did it already at rails conf
[2012-09-16 10:43:13](pwim) for details watch the video
[2012-09-16 10:43:18](pwim) or look at speakerdeck
[2012-09-16 10:44:00](pwim) so we can release to a limited audience
[2012-09-16 10:44:10](pwim) like just cookpad staff, or a selection of 20 users
[2012-09-16 10:45:29](pwim) when doing limited release, we don't write tests
[2012-09-16 10:45:45](pwim) once we release to over a hundred people, we make sure there are good tests
[2012-09-16 10:46:08](pwim) this allows us to focus on iterating as fast as possible
[2012-09-16 10:46:44](pwim) if we don't execute all tests, we can't deploy
[2012-09-16 10:47:03](pwim) in a day we deploy on average 3 times
[2012-09-16 10:47:09](pwim) at mosts, 10 times
[2012-09-16 10:47:33](pwim) ci takes 10 minutes to run
[2012-09-16 10:47:45](pwim) so if we push twice
[2012-09-16 10:47:53](pwim) then it would take 20 minutes
[2012-09-16 10:48:45](pwim) this is the most deploys we can do
[2012-09-16 10:49:07](pwim) so if we want to do 40 deploys, an individual deploy needs to take 6 minutes
[2012-09-16 10:49:18](pwim) so we need to make the build as fast as possible
[2012-09-16 10:50:39](pwim) in addition to these, there is also the number of tests
[2012-09-16 10:50:55](pwim) especially integration tests seem to build up
[2012-09-16 10:51:19](pwim) because we have so many features
[2012-09-16 10:51:32](pwim) you need to make sure to remove unnecessary tests
[2012-09-16 10:52:22](pwim) i havent looked in detail why the number of the tests decreased in july
[2012-09-16 10:52:31](pwim) but we see they are really increasing now
[2012-09-16 10:52:38](pwim) getting pretty bad
[2012-09-16 10:53:24](pwim) so i revise this with an additional condition: tests should be fast
[2012-09-16 10:58:31](pwim) single rspec = single machine running rspec normally
[2012-09-16 10:58:42](pwim) this was the graph before
[2012-09-16 10:59:00](pwim) i add in the running time of specs
[2012-09-16 10:59:17](pwim) the time varies a lot depending on server load
[2012-09-16 10:59:55](pwim) every time we clear the mysql and solr database
[2012-09-16 11:00:44](pwim) from about sept 5th, we increased the number of rspec servers to 14
[2012-09-16 11:00:55](pwim) so we can scale just by adding servers
[2012-09-16 11:01:17](pwim) looking at individual servers
[2012-09-16 11:01:21](pwim) it varies a lot
[2012-09-16 11:04:14](pwim) druby is very convenient for doing this
[2012-09-16 11:07:35](pwim) i wanted to release it as a gem, but not enough time
[2012-09-16 11:08:01](pwim) :clap: :clap:
[2012-09-16 11:08:22](pwim) sorry but no time for questions
[2012-09-16 11:08:44](pwim) next up: keynote from 11:15
[2012-09-16 11:12:25](june29) :clap: :clap: :clap:
[2012-09-16 11:15:27](pwim) time for the keynote
[2012-09-16 11:15:49](lchin) 人生初めてのキーノートです
[2012-09-16 11:15:50](Alex) 初めてのキーノートなので、光栄に思っています
[2012-09-16 11:16:34](Alex) 家でもプログラムを書いています
[2012-09-16 11:17:11](lchin) 今日は趣味でやっているプロジェクトについて話します
[2012-09-16 11:17:35](Alex) このプロジェクトは役に立つというよりは勉強になるプロジェクトです
[2012-09-16 11:17:46](lchin) Rdocブラウザは自分が欲しかったものでもあって、cursesを勉強する機会としてもとらえた
[2012-09-16 11:18:28](shyouhei) RDocをCursesのコマンドに変換するコンパイラの実装について
[2012-09-16 11:18:44](shyouhei) Visitorパターン
[2012-09-16 11:19:03](shyouhei) headingを処理する部分
[2012-09-16 11:20:08](Alex) 全画面を書き直すが不要になるように
[2012-09-16 11:20:13](yokolet) ドキュメントが何で名前が何か
[2012-09-16 11:20:15](lchin) 全体を再描画したくないから、リンクだけ特別扱い
[2012-09-16 11:20:44](lchin) displayはcursesを継承していて、それに便利メソッドを追加した
[2012-09-16 11:21:29](Alex) ここでスクロールの問題が
[2012-09-16 11:21:42](lchin) 描画後、ユーザがリンクを選択したら選択中のリンクにスタイルを適用し再描画する
[2012-09-16 11:22:07](Alex) いろんなチュートリアルなど調べて対策を探しました
[2012-09-16 11:22:11](lchin) cursesにwindow以外に、Padという便利なものがあって、スクロールで役に立つ
[2012-09-16 11:22:32](lchin) その導入で自由にスクロールできるようになった
[2012-09-16 11:22:45](shyouhei) Curses padはRuby 2.0に入った
[2012-09-16 11:22:56](lchin) その結果、cursesの勉強もできたし、Ruby 2.0に向けてCurses Padを対応するパッチを送った
[2012-09-16 11:23:00](yokolet) 高校生の頃に遊んだゲーム
[2012-09-16 11:23:32](lchin) 楽しいゲームをつくるのは難しそうだった
[2012-09-16 11:23:59](lchin) ナノで、代わりにsimulationをつくって、勝手に遊んでくれるようなものをつくった
[2012-09-16 11:24:50](lchin) 最初に書いたアニメーション
[2012-09-16 11:24:57](lchin) あまりスムーズじゃなかった
[2012-09-16 11:25:04](shyouhei) なめらかに動かしたい
[2012-09-16 11:25:05](lchin) 最初の移動処理
[2012-09-16 11:25:11](soraher) 徐々に加速して、徐々に減速
[2012-09-16 11:25:12](Alex) 動きが一定のスピードだったので
[2012-09-16 11:25:37](shyouhei) 初期実装だとこううごく
[2012-09-16 11:25:46](lchin) 本当は、加速と減速を実現したい
[2012-09-16 11:25:54](shyouhei) 改良後
[2012-09-16 11:25:59](lchin) そうすると、よりリアルな宇宙船な動きになる
[2012-09-16 11:26:22](shyouhei) ばくはつ
[2012-09-16 11:26:23](yokolet) 動きをスムースにするためにcosine関数を使った
[2012-09-16 11:26:52](shyouhei) 四角く爆発するコード
[2012-09-16 11:27:07](Alex) 四角で爆発するだと変なので、丸くしました
[2012-09-16 11:27:32](shyouhei) 極座標変換
[2012-09-16 11:28:02](shyouhei) AIについて
[2012-09-16 11:28:17](shyouhei) 表示の裏でAIが走っている
[2012-09-16 11:28:32](Alex) そこでAIを別のスレッドにすると、シンクしない
[2012-09-16 11:29:15](shyouhei) 攻撃する敵をえらんで、そこでロックをとる必要がある
[2012-09-16 11:29:36](shyouhei) AIの状態遷移機械
[2012-09-16 11:31:03](yokolet) アクションは動く打つなど
[2012-09-16 11:31:08](shyouhei) 描画スレッドの概要
[2012-09-16 11:32:11](shyouhei) またべつの話
[2012-09-16 11:32:18](Alex) このプロジェクトは一番好きです
[2012-09-16 11:32:21](shyouhei) サラミに触発されて
[2012-09-16 11:32:49](Alex) 家中の電気などを遠隔操作するアプリです
[2012-09-16 11:33:01](shyouhei) サーモスタットを監視して
[2012-09-16 11:33:01](yokolet) 家の街頭はくらくなると点灯して明るくなると消えるようにしています。
[2012-09-16 11:33:26](yokolet) 暖炉の制御
[2012-09-16 11:33:40](shyouhei) Xbee
[2012-09-16 11:34:02](shyouhei) 白いのがセンサー
[2012-09-16 11:34:07](shyouhei) 青いのがArduino
[2012-09-16 11:34:07](yokolet) arvinoセンサー
[2012-09-16 11:34:16](soraher) Arduino側のコード
[2012-09-16 11:34:40](soraher) (Sketch = Arduino向けコードの言い方)
[2012-09-16 11:34:46](Alex) C言語でループするスクリプト
[2012-09-16 11:35:01](shyouhei) 初期実装はテキストで温度を
[2012-09-16 11:35:07](soraher) Ruby側でテキストをパースする
[2012-09-16 11:35:10](soraher) 小数点がない
[2012-09-16 11:35:19](yokolet) 234C - 温度
[2012-09-16 11:35:24](soraher) なんでかというとArduinoにはprintfで%fが使えないから
[2012-09-16 11:35:26](shyouhei) arduinoは浮動小数点数をサポートしてない
[2012-09-16 11:35:43](Alex) 簡単すぎたのでもう少しチャレンジしました
[2012-09-16 11:35:57](shyouhei) snprintfはちょっと高級すぎる
[2012-09-16 11:36:08](shyouhei) のでバイナリ
[2012-09-16 11:36:18](shyouhei) をunpack
[2012-09-16 11:36:23](Alex) 非同期
[2012-09-16 11:36:50](soraher) 非同期なのでときどき壊れる
[2012-09-16 11:36:58](Alex) パケットの途中に読み始めるとcorrupt
[2012-09-16 11:37:03](shyouhei) だらだら流れてるだけなので
[2012-09-16 11:37:29](Alex) そして同期するための仕組み
[2012-09-16 11:37:40](Alex) 同期するポイントを探す
[2012-09-16 11:37:46](soraher) sync パケットでどこから読み始めるかを探す
[2012-09-16 11:37:59](shyouhei) PIDコントロール
[2012-09-16 11:38:32](shyouhei) みためがむずそうなので
[2012-09-16 11:38:37](shyouhei) もっと単純な
[2012-09-16 11:38:45](shyouhei) 線形のコントロールで
[2012-09-16 11:38:47](Alex) これら全部は必要ないので、Proportionalだけを導入しました
[2012-09-16 11:39:28](Alex) 暖房はon/offだけ
[2012-09-16 11:39:32](yokolet) 家の外と中の温度
[2012-09-16 11:40:03](Alex) 上がリビングの温度
[2012-09-16 11:40:22](shyouhei) (会場の皆様へ: Ericはシアトルに住んでいます、という前庭をご理解いただいたほうがいいかもしれません。)
[2012-09-16 11:40:28](sora_h) Rでグラフをつくる
[2012-09-16 11:40:36](lchin) 0.5度以内に適温をキープできた
[2012-09-16 11:40:41](shyouhei) (会場の皆様へ: シアトルはほとんどカナダに近いような土地です)
[2012-09-16 11:41:28](sora_h) Thermostatにはさまざまな技術が関わっている (?)
[2012-09-16 11:41:37](Alex) 最後のプロジェクトですが
[2012-09-16 11:41:54](shyouhei) 木工
[2012-09-16 11:42:26](lchin) (ベッドの先頭に置くヘッドボードですよ)
[2012-09-16 11:42:54](Alex) とにかく楽しむためにやりました
[2012-09-16 11:43:21](sora_h) Questions?
[2012-09-16 13:29:59](Alex) Please write comments on the board outside
[2012-09-16 13:30:48](sora_h) test
[2012-09-16 13:30:49](pwim) ---
[2012-09-16 13:30:54](shyouhei) RubyKaja
[2012-09-16 13:31:01](pwim) ---
[2012-09-16 13:31:30](sora_h) hi
[2012-09-16 13:31:33](shyouhei) whats kaja
[2012-09-16 13:31:36](pwim) first i want to explain about kaja
[2012-09-16 13:31:41](pwim) japanese rubyists are shy
[2012-09-16 13:31:43](soraher) most Japanese rubysits are shy
[2012-09-16 13:32:00](pwim) so we want to recognize the menbers of our community more
[2012-09-16 13:32:00](shyouhei) we want to shed lights to them
[2012-09-16 13:32:12](shyouhei) @nagachika
[2012-09-16 13:32:25](shyouhei) made this idea
[2012-09-16 13:32:29](soraher) with nihon-ruby-no-kai
[2012-09-16 13:32:31](pwim) the way we decided
[2012-09-16 13:32:39](soraher) call for communities
[2012-09-16 13:32:41](pwim) was ask communities to choose one kaja
[2012-09-16 13:32:51](pwim) 14 communities participated
[2012-09-16 13:32:56](pwim) so we have 14 kaja
[2012-09-16 13:33:17](pwim) kaja will get sticker + tshirt
[2012-09-16 13:33:20](soraher) kaja from Okinawa.rb
[2012-09-16 13:33:22](pwim) first up okinawa.rb
[2012-09-16 13:33:31](pwim) held once a week
[2012-09-16 13:33:49](soraher) vote at facebook group
[2012-09-16 13:33:51](pwim) this was decided by facebook group
[2012-09-16 13:33:56](pwim) higa was selected
[2012-09-16 13:34:13](soraher) okinawa.rb's kaja: Higa-san @hanachin_
[2012-09-16 13:34:22](soraher) Okayama Ruby, Ruby on Rails workshop
[2012-09-16 13:34:36](pwim) they held there first regional ruby kaigi this year
[2012-09-16 13:34:51](pwim) yamaguchi was selected
[2012-09-16 13:34:56](soraher) okayama ruby's kaja: @gutch_jp
[2012-09-16 13:35:06](pwim) he was one of the organizers of okayama ruby kaigi
[2012-09-16 13:35:18](soraher) Ruby Sapporo
[2012-09-16 13:35:47](soraher) choosing by writing code
[2012-09-16 13:35:56](soraher) rubysapporo's kaja: @volpe_hd28v
[2012-09-16 13:36:06](soraher) he born and grow up at Sapporo
[2012-09-16 13:36:11](pwim) works on kanban-list
[2012-09-16 13:36:28](pwim) rubima community
[2012-09-16 13:36:31](soraher) Rubyma Editors community
[2012-09-16 13:36:37](pwim) famous japanese ruby magazine
[2012-09-16 13:36:42](soraher) Rubyma is calling for articles
[2012-09-16 13:37:03](soraher) kaja from rubyma: @sunaot
[2012-09-16 13:37:22](soraher) he's working hard on rubyma, many contributions
[2012-09-16 13:37:26](soraher) guRuby
[2012-09-16 13:37:30](Alex) guRuby - Gunma Ruby
[2012-09-16 13:37:48](soraher) choosing from past attendees, by vote
[2012-09-16 13:37:54](soraher) guRuby's kaja: @track8
[2012-09-16 13:38:13](soraher) toRuby - tochigi ruby
[2012-09-16 13:38:27](soraher) meetup with book
[2012-09-16 13:38:38](pwim) they'll have a regional ruby kaigi
[2012-09-16 13:38:54](soraher) toRuby's kaja: @awazeki
[2012-09-16 13:39:02](soraher) contribution by accounting
[2012-09-16 13:39:21](soraher) Tokyo Rubyist Meetup
[2012-09-16 13:39:41](soraher) bridge foreigner and Japanese
[2012-09-16 13:39:59](soraher) internationalize ruby community
[2012-09-16 13:40:06](soraher) tokyo rubyist meetup's kaja: @iwhurtalfy
[2012-09-16 13:40:23](soraher) supported @pwim at the last RubyKaigi by translation project
[2012-09-16 13:40:31](soraher) Rails workshop @ Tokyo
[2012-09-16 13:41:01](soraher) chosen by Group discussion
[2012-09-16 13:41:07](pwim) mimura
[2012-09-16 13:41:15](soraher) Rails workshop's kaja: @takkanm
[2012-09-16 13:41:23](soraher) he'll have a talk from 5pm
[2012-09-16 13:41:32](soraher) famous doorman at asakusa.rb
[2012-09-16 13:41:41](pwim) sendagaya.rb meets every monday
[2012-09-16 13:42:04](soraher) sendagaya.rb's kaja: @iR3
[2012-09-16 13:42:17](Alex) helped create Ruby @ Kansai
[2012-09-16 13:42:47](soraher) Shibuya.rb's kaja: @tyabe
[2012-09-16 13:42:51](pwim) (him)
[2012-09-16 13:42:54](soraher) (him)
[2012-09-16 13:43:22](soraher) Shinkuku.rb's kaja:@shishi4tw
[2012-09-16 13:43:33](soraher) organizing TDDBC
[2012-09-16 13:43:37](soraher) TDD Bootcamp
[2012-09-16 13:43:42](soraher) Asakusa.rb
[2012-09-16 13:43:49](soraher) meetup at every Tuesday
[2012-09-16 13:44:05](soraher) asakusa.rb have a regional rubykaigi, OedoRubyKaigi, will hold next week(?)
[2012-09-16 13:44:12](soraher) asakusa.rb's kaja: @n0kada
[2012-09-16 13:44:18](soraher) nobu, the patch monster
[2012-09-16 13:44:31](soraher) ruby-core
[2012-09-16 13:44:46](soraher) voting at mailing list
[2012-09-16 13:44:52](soraher) Naruse-san (@nalsh)
[2012-09-16 13:45:02](soraher) Ruby 1.9.3 release management, etc
[2012-09-16 13:45:11](soraher) Yokohama.rb
[2012-09-16 13:45:35](soraher) @1syo
[2012-09-16 13:45:44](soraher) MinatoRubyKaigi01 organizer
[2012-09-16 13:45:48](soraher) lead organizer
[2012-09-16 13:45:53](pwim) organized ruby end of year party
[2012-09-16 13:46:03](soraher) that's all
[2012-09-16 13:46:07](pwim) we'll publish these on the site
[2012-09-16 13:46:24](soraher) announcement of next kaja from kakutani from ruby-no-kai
[2012-09-16 13:47:04](soraher) wanting help
[2012-09-16 13:47:28](soraher) thank you for supporting
[2012-09-16 13:47:46](soraher) ----
[2012-09-16 13:48:46](shyouhei) ================
[2012-09-16 13:48:46](shyouhei) "User Oriented Service Design" by Koichiro Eto
[2012-09-16 13:49:30](shyouhei) founder of nikoniko gakkai β
[2012-09-16 13:49:44](shyouhei) agenda
[2012-09-16 13:49:57](shyouhei) what's user-oriented servise design
[2012-09-16 13:50:05](shyouhei) qwikweb
[2012-09-16 13:50:16](shyouhei) wiki + mailing list
[2012-09-16 13:50:44](shyouhei) posted mails are converted as wiki pages
[2012-09-16 13:50:53](shyouhei) and used as wiki.
[2012-09-16 13:51:05](shyouhei) developed 2003
[2012-09-16 13:51:22](shyouhei) why wiki: accelerate collaboration
[2012-09-16 13:51:34](shyouhei) but why accelerates collaboration?
[2012-09-16 13:51:37](shyouhei) research
[2012-09-16 13:52:02](shyouhei) pattern language -> WikiWikiWeb -> Agile software development
[2012-09-16 13:52:25](shyouhei) the way to get interactoin from _users_
[2012-09-16 13:52:46](shyouhei) eg: full text search
[2012-09-16 13:53:04](shyouhei) sites vary in their structures
[2012-09-16 13:53:15](shyouhei) so one size does not fit all
[2012-09-16 13:53:42](shyouhei) proposed solution: let users specify where the essense
[2012-09-16 13:54:01](shyouhei) called "used-oriented sevice"
[2012-09-16 13:54:06](Alex) the user designs the service
[2012-09-16 13:54:17](shyouhei) autopagerize
[2012-09-16 13:54:22](shyouhei) browser extension
[2012-09-16 13:54:39](Alex) automatically loads the links
[2012-09-16 13:54:41](shyouhei) automatically downloads the "next" link
[2012-09-16 13:54:58](Alex) the position of this link "next" is important
[2012-09-16 13:55:24](Alex) we have to specify where the link is on each page
[2012-09-16 13:55:28](shyouhei) each pages are designed so "next" button is not always at the same position
[2012-09-16 13:55:44](shyouhei) when user scrolls down,
[2012-09-16 13:55:58](shyouhei) loads what "next" points,
[2012-09-16 13:56:07](shyouhei) and add the content after.
[2012-09-16 13:56:18](Alex) it finds that link, then loads what it decides is the next page's data, and adds it
[2012-09-16 13:56:19](shyouhei) the info neesed for autopagerize
[2012-09-16 13:56:22](shyouhei) schema
[2012-09-16 13:56:50](shyouhei) we need this for all the web sites around the world
[2012-09-16 13:56:58](shyouhei) we have 3,057 kinds
[2012-09-16 13:57:13](Alex) making each of them individually is too much work
[2012-09-16 13:57:45](shyouhei) google itself updates, so the schema have to follow up
[2012-09-16 13:57:45](Alex) for example, Google's page design changes, and we have to account for the changes
[2012-09-16 13:57:58](shyouhei) to serve the schema: wedata
[2012-09-16 13:58:08](shyouhei) data wiki: wiki to store data
[2012-09-16 13:58:11](Alex) wedata is a data collection used for this purpose
[2012-09-16 13:58:23](Alex) for example,
[2012-09-16 13:58:27](shyouhei) outsource the storage
[2012-09-16 13:59:03](Alex) by GETting this json, you get the information needed to analyze the page
[2012-09-16 13:59:19](shyouhei) wedata history
[2012-09-16 13:59:29](shyouhei) autopagerize was created 2007,
[2012-09-16 13:59:39](shyouhei) 2008 wedata
[2012-09-16 13:59:46](Alex) unique ip visits
[2012-09-16 13:59:51](shyouhei) wedata is not only for autopagerize
[2012-09-16 14:00:24](shyouhei) other services also use wedata as backend
[2012-09-16 14:00:45](Alex) Green - items
[2012-09-16 14:00:54](shyouhei) wedata has various usage
[2012-09-16 14:00:57](Alex) blue - shared items
[2012-09-16 14:01:02](Alex) purple - editors
[2012-09-16 14:02:00](Alex) items created through collaborative editing
[2012-09-16 14:02:27](shyouhei) blue line is collaborated
[2012-09-16 14:02:31](Alex) we wanted to check how many items were being created by only one person
[2012-09-16 14:02:44](shyouhei) not so faint amount.
[2012-09-16 14:03:12](Alex) about 1000 users involved in editing AutoPagerize
[2012-09-16 14:03:15](shyouhei) LDRize example
[2012-09-16 14:03:37](Alex) approx 320,000 users
[2012-09-16 14:03:53](shyouhei) LDRize is a browser UI extension to let browsers behave like Livedoor Reader
[2012-09-16 14:04:05](shyouhei) HatenaBookmark User Count
[2012-09-16 14:04:41](shyouhei) many users
[2012-09-16 14:04:41](Alex) counts how many other people have bookmarked a page with HatenaBookmark
[2012-09-16 14:04:50](shyouhei) but only 6 entries
[2012-09-16 14:05:25](shyouhei) the bookmarklet utilized LDRize data
[2012-09-16 14:05:39](Alex) Twitter client Tween
[2012-09-16 14:05:44](shyouhei) Tween twitter account
[2012-09-16 14:05:52](Alex) 1,800,000 users
[2012-09-16 14:06:08](shyouhei) they quit using wedata
[2012-09-16 14:06:18](Alex) Twitter page design doesn't change
[2012-09-16 14:06:47](Alex) therefore, using only one page for data is not beneficial
[2012-09-16 14:06:54](shyouhei) why wedata was successed:
[2012-09-16 14:07:25](shyouhei) browser extension authors need flexibility, users can share the configuration
[2012-09-16 14:08:24](shyouhei) the ideal. programmers might be small amount, but if users can edit the data, non-programmers can also contribute
[2012-09-16 14:08:33](shyouhei) discussion:
[2012-09-16 14:08:47](shyouhei) not all usages are applicable
[2012-09-16 14:09:02](shyouhei) eg. security consideration
[2012-09-16 14:09:16](Alex) only useful for non-sensitive data
[2012-09-16 14:09:51](shyouhei) people tend to modify their environment, but not for others.
[2012-09-16 14:10:19](shyouhei) comparison to Github
[2012-09-16 14:10:27](Alex) wedata - Mar 2008
[2012-09-16 14:10:34](Alex) GitHub - Apr 2008
[2012-09-16 14:10:37](shyouhei) some similar aspect
[2012-09-16 14:10:49](shyouhei) github is more sophiscated
[2012-09-16 14:11:05](shyouhei) each one have individual data, + pull request
[2012-09-16 14:11:23](shyouhei) while wedata is for data only
[2012-09-16 14:11:24](Alex) can share sensitive data and code
[2012-09-16 14:11:45](shyouhei) wedata pros: easy to starat. immediate share
[2012-09-16 14:12:36](Alex) questions
[2012-09-16 14:14:10](Alex) Q. Editing requires some skill and can be difficult. How to increase contributors?
[2012-09-16 14:15:21](Alex) A. We are concerned about this. Some possible solutions are better explanations, provide extra plug-ins to assist editing...
[2012-09-16 14:16:32](shyouhei) (next: 14:30)
[2012-09-16 14:30:47](pwim) hello
[2012-09-16 14:31:25](yokolet) let me introduce myself
[2012-09-16 14:31:29](pwim) My name is tasuo sakurai
[2012-09-16 14:31:33](pwim) i normally use that icon
[2012-09-16 14:31:39](pwim) i work as a rails engineer
[2012-09-16 14:31:53](pwim) recently i've been helping aiming with social game dev
[2012-09-16 14:32:14](pwim) these are all the communities i participate it
[2012-09-16 14:32:18](pwim) *in
[2012-09-16 14:32:30](pwim) i helped write this book
[2012-09-16 14:32:37](pwim) with 3 others
[2012-09-16 14:32:40](pwim) pictured here
[2012-09-16 14:33:01](pwim) 20% programmer?
[2012-09-16 14:33:15](pwim) 120%?
[2012-09-16 14:33:46](pwim) i started at a 20% dev
[2012-09-16 14:34:15](pwim) i wanted to make stuff that was useful for people
[2012-09-16 14:34:34](pwim) this was 7-8 years ago
[2012-09-16 14:34:54](pwim) my ex-coworkers didn't want to write programs
[2012-09-16 14:35:02](pwim) they were always complaining I hate my job
[2012-09-16 14:35:07](pwim) i don't want to work
[2012-09-16 14:35:18](pwim) even my boss was like this
[2012-09-16 14:35:45](pwim) my image of what a dev should be, and the reality i faced was different
[2012-09-16 14:35:50](pwim) so it wasn't fun at all
[2012-09-16 14:35:58](pwim) because no teamwork, no communication
[2012-09-16 14:37:20](pwim) everyone was negative
[2012-09-16 14:37:53](yokolet) I wanted to prevent death march
[2012-09-16 14:38:10](yokolet) I hated that team
[2012-09-16 14:38:18](pwim) to much focus on who made a mistake
[2012-09-16 14:38:23](pwim) that was a waste of time
[2012-09-16 14:38:31](pwim) we should cooperate more
[2012-09-16 14:39:01](yokolet) I should have created for user, but it turned out not
[2012-09-16 14:39:38](yokolet) I thought what was the ideal job
[2012-09-16 14:40:25](pwim) we can grow together as a team i thought
[2012-09-16 14:40:56](pwim) i heard about agile and pairing
[2012-09-16 14:41:04](pwim) and was very interested
[2012-09-16 14:41:06](yokolet) I've firstly heard agile/pair programming
[2012-09-16 14:41:17](pwim) i realized there were people who matched how i wanted to work
[2012-09-16 14:41:26](pwim) but all the books were from outside of japan
[2012-09-16 14:41:51](pwim) i tried to look for an opportunity in Japan
[2012-09-16 14:41:56](pwim) my requirements for a job:
[2012-09-16 14:42:03](pwim) agile development, pair programming
[2012-09-16 14:42:21](pwim) a place where people can communicate freely
[2012-09-16 14:43:03](pwim) i didn't want to work for someone who just chose the latest hot technology, but didn't know anything about why. so i wanted a programmer ceo
[2012-09-16 14:43:09](yokolet) everyleaf was perfect
[2012-09-16 14:43:21](pwim) thanks to this great company, i entered the world of ruby
[2012-09-16 14:43:32](pwim) i began to develop rails apps
[2012-09-16 14:43:44](pwim) i need to remember all theses technologies
[2012-09-16 14:43:50](yokolet) so many technologies are there
[2012-09-16 14:44:19](pwim) these are the main three ways to remember
[2012-09-16 14:44:34](pwim) type out examples you see in a book
[2012-09-16 14:44:45](pwim) type the same thing multiple times
[2012-09-16 14:44:53](pwim) this is like how we studied kanji
[2012-09-16 14:45:12](pwim) there was lots of great ruby books
[2012-09-16 14:45:15](pwim) not just these 4
[2012-09-16 14:45:27](pwim) startup ruby is another great book
[2012-09-16 14:45:32](yokolet) you should choose a book fit to you among many for copying code
[2012-09-16 14:45:35](pwim) railscasts is another great resource
[2012-09-16 14:45:45](pwim) which should i study first?
[2012-09-16 14:45:56](pwim) the correct answer is ruby
[2012-09-16 14:46:06](pwim) but at that time i wondered which
[2012-09-16 14:46:40](pwim) there is now certification available for ruby devs
[2012-09-16 14:46:42](pwim) i recommend it
[2012-09-16 14:46:56](pwim) with pair programming, you can teach and learn alot
[2012-09-16 14:47:01](yokolet) I like pair programming
[2012-09-16 14:47:11](pwim) from a vetran, you can learn history, how to think
[2012-09-16 14:47:35](pwim) depending on your level, you can learn different things
[2012-09-16 14:47:46](pwim) these are some things to be careful about
[2012-09-16 14:48:03](pwim) when you see other great devs, its tempting to give up, but don't
[2012-09-16 14:48:23](pwim) just focus on becoming better
[2012-09-16 14:48:40](pwim) otherwise your motivation will spiral
[2012-09-16 14:48:51](pwim) praise each other
[2012-09-16 14:48:59](pwim) it really helps with motivation
[2012-09-16 14:49:10](pwim) high fiving gave me a lot of motivation
[2012-09-16 14:49:30](pwim) the first event i participated in was Rails study group
[2012-09-16 14:49:36](yokolet) I was afraid at first
[2012-09-16 14:49:36](pwim) at first it was very intimidating
[2012-09-16 14:49:43](pwim) because i had no experience
[2012-09-16 14:49:53](pwim) but everyone was kind and helped me out a lot
[2012-09-16 14:50:11](pwim) tokyu.rb was also frightenning because i didn't know anything about them
[2012-09-16 14:50:19](yokolet) tokyu.rb was the first community I went
[2012-09-16 14:50:25](pwim) but it turned out they loved to drink, and was able to get along great
[2012-09-16 14:50:36](pwim) then i became staff at ruby kaigi
[2012-09-16 14:50:51](pwim) this was my first experience to be staff
[2012-09-16 14:51:07](yokolet) regional rubykaigi in tokyo
[2012-09-16 14:51:08](pwim) i was able to meet lots of rubyists
[2012-09-16 14:51:14](pwim) i also came here as staff
[2012-09-16 14:51:33](pwim) because i was able to make good friends with sapporo people at ruby kaigi
[2012-09-16 14:52:10](pwim) you don't need to be nervous because we are all rubyists
[2012-09-16 14:52:28](pwim) i don't think he remembers saying it though
[2012-09-16 14:53:32](pwim) i joined other groups as well
[2012-09-16 14:53:40](pwim) the group has grown a lot
[2012-09-16 14:53:50](pwim) we develop together, go bouldering, then drink
[2012-09-16 14:54:17](pwim) similar event with js focus
[2012-09-16 14:54:33](pwim) i'm writing coffeescript a lot recently, and was able to learn from the group members
[2012-09-16 14:54:50](pwim) this event happend recently
[2012-09-16 14:54:55](pwim) i was a coach at it
[2012-09-16 14:55:39](pwim) to all the beginners out there: its your turn to step up
[2012-09-16 14:55:54](pwim) this could be a great opportunity
[2012-09-16 14:56:34](pwim) meeting rubyists was a lifechanging event
[2012-09-16 14:56:38](pwim) ruby is fun!
[2012-09-16 14:56:44](pwim) :clap: :clap:
[2012-09-16 14:56:54](pwim) questions?
[2012-09-16 14:58:05](pwim) there must still be times when you are discouraged, what do you do then?
[2012-09-16 14:58:22](pwim) i made the decision to not be discouraged
[2012-09-16 15:00:23](yokolet) what is your future plan?
[2012-09-16 15:00:41](yokolet) I want to make community bigger
[2012-09-16 15:01:21](yokolet) would you give me example of fun programming
[2012-09-16 15:01:59](yokolet) I don't have specific one. Always fun
[2012-09-16 15:06:18](pwim) i'm from esm
[2012-09-16 15:06:29](pwim) has everyone heard of them?
[2012-09-16 15:06:38](pwim) this is our coderwall
[2012-09-16 15:06:54](pwim) these rubyists came to sapporo ruby kaigi
[2012-09-16 15:07:08](pwim) i've been here for 3-4 years
[2012-09-16 15:07:37](pwim) there was a change in our workplace over the last year
[2012-09-16 15:07:42](pwim) we introduced github
[2012-09-16 15:07:50](pwim) because we wanted to do code reviews
[2012-09-16 15:08:03](pwim) we also got bigger projects (> 4 members)
[2012-09-16 15:08:15](pwim) our chief programmer also wanted to review code
[2012-09-16 15:08:38](pwim) before it was chaos
[2012-09-16 15:08:55](pwim) we now use github
[2012-09-16 15:09:16](pwim) we think it was a great success
[2012-09-16 15:09:25](pwim) it allows us to review via pull request
[2012-09-16 15:09:29](pwim) much better flow
[2012-09-16 15:09:49](pwim) you can easily create a private repo
[2012-09-16 15:10:05](pwim) so if you make a tool you want, you can easily put it in a repo
[2012-09-16 15:10:13](pwim) this allows for easy sharing
[2012-09-16 15:10:32](pwim) github became like an sns for our company
[2012-09-16 15:10:45](pwim) we could see everyones code
[2012-09-16 15:10:58](pwim) so even people not directly involved could give feedback
[2012-09-16 15:11:22](pwim) this is what happend
[2012-09-16 15:11:37](pwim) too much to fit on one slide
[2012-09-16 15:11:49](pwim) this one pull request
[2012-09-16 15:12:22](pwim) comments increased
[2012-09-16 15:14:19](pwim) our company has many great members
[2012-09-16 15:15:08](pwim) programmers will give up if they get negative feedback
[2012-09-16 15:15:34](pwim) we wanted to keep master free of strange code
[2012-09-16 15:16:46](pwim) why is there space here?
[2012-09-16 15:17:08](pwim) if the code looks bad, the reviewer will focus on those minor details
[2012-09-16 15:17:24](pwim) so first step is to make it beautiful so the reviewer won't be distracted
[2012-09-16 15:18:02](pwim) theres lots of coding guidelines available on the net
[2012-09-16 15:18:23](pwim) write code that explains itself
[2012-09-16 15:18:42](pwim) this metaprogramming might feel great
[2012-09-16 15:18:44](pwim) but
[2012-09-16 15:18:49](pwim) "i can't understand it"
[2012-09-16 15:19:10](pwim) its important not just that it works, but also that it is understandable
[2012-09-16 15:19:26](pwim) use good method names, consult others on them
[2012-09-16 15:19:36](pwim) look at others code and learn from it
[2012-09-16 15:19:42](pwim) rewrite a lot
[2012-09-16 15:19:55](pwim) 3. know your tools
[2012-09-16 15:20:14](pwim) File.read
[2012-09-16 15:20:28](pwim) "pathname is a better way"
[2012-09-16 15:20:49](pwim) "how about using this gem"
[2012-09-16 15:23:35](pwim) good places to get involved on the web: coderwall, qatmarkit (japnese stack overflow)
[2012-09-16 15:23:47](pwim) get involved in the community
[2012-09-16 15:24:00](pwim) of course, you can talk to people here
[2012-09-16 15:27:06](pwim) questions?
[2012-09-16 15:27:43](pwim) do you compliment code when you review it?
[2012-09-16 15:27:55](pwim) occasionally.
[2012-09-16 15:28:11](pwim) i don't think japanese are good at complimenting.
[2012-09-16 15:28:24](pwim) if there are few comments, it means its good
[2012-09-16 15:44:35](sorah) ---
[2012-09-16 15:45:32](sorah) raise your hand if you sleepy
[2012-09-16 15:45:34](sorah) are you ok?
[2012-09-16 15:45:43](sorah) I'm sleepy
[2012-09-16 15:46:02](sorah) I'm Yutaka Hara, ruby programmer in Matsue, Japan
[2012-09-16 15:46:10](shyouhei) slides english, speak japanese
[2012-09-16 15:46:39](sorah) BiwaScheme, Scheme implementation in Javascript
[2012-09-16 15:46:45](shyouhei) my ruby projects are all tiny scripts.
[2012-09-16 15:46:46](sorah) No relation for Ruby
[2012-09-16 15:46:58](sorah) few years ago I introduced RailsStation
[2012-09-16 15:47:03](sorah) but it's now discontinued
[2012-09-16 15:47:14](sorah) (mentioned in the report
[2012-09-16 15:50:15](sorah) We're programmer, so we can code
[2012-09-16 15:50:29](sorah) make life-changing softwares
[2012-09-16 15:52:12](shyouhei) 100 to 1,000 lines
[2012-09-16 15:55:08](sorah) making CLI app is easy
[2012-09-16 15:55:39](sorah) I've made for game, suggestion to equip
[2012-09-16 15:55:56](sorah) and score calculator of Puyo Puyo 2
[2012-09-16 15:56:04](sorah) Raise your hand if you think this useful
[2012-09-16 15:56:48](sorah) not so many, but I think this useful, that's enough
[2012-09-16 15:57:01](sorah) tool for development
[2012-09-16 15:57:13](sorah) repeating "git "
[2012-09-16 15:57:21](sorah) alias g=git
[2012-09-16 15:57:32](sorah) I think this is waste too
[2012-09-16 15:57:49](sorah) so, "reposh". prompt that "git" typed already
[2012-09-16 15:57:56](sorah) - Desktop app
[2012-09-16 15:58:04](sorah) many kind of libraries to build GUI
[2012-09-16 15:58:35](sorah) but I build web app as desktop app. Launch server in locally, and open it on your browser
[2012-09-16 15:58:48](sorah) example: afpray
[2012-09-16 15:59:05](sorah) OS X has `afplay` command to play sound
[2012-09-16 15:59:14](sorah) this is gui wrapper of it
[2012-09-16 15:59:20](sorah) example: nicoshifts
[2012-09-16 15:59:31](sorah) Lists available recorded videos on live.nicovideo.jp
[2012-09-16 15:59:50](sorah) I can't remember port numbers of local apps
[2012-09-16 15:59:57](sorah) so I made RubyStation, but
[2012-09-16 16:00:21](sorah) Pow changed the world, we can use hostname, so I discontinued RubyStation
[2012-09-16 16:01:15](pwim) seeing a visulization helps to understand
[2012-09-16 16:01:17](sorah) = Web app
[2012-09-16 16:01:27](sorah) Skipping because I think you know already
[2012-09-16 16:01:29](sorah) = Mobile
[2012-09-16 16:01:47](sorah) Use from browser or run native
[2012-09-16 16:01:59](sorah) iOS can use MobiRuby, RubyMotion
[2012-09-16 16:02:02](sorah) Android can use Ruboto
[2012-09-16 16:03:22](pwim) records when you sleep/wake up
[2012-09-16 16:03:32](pwim) save to sdcard
[2012-09-16 16:03:49](sorah) = Web API client
[2012-09-16 16:03:56](sorah) there're many APIs
[2012-09-16 16:04:05](sorah) I made flickr API client
[2012-09-16 16:04:11](pwim) flickr has a gui
[2012-09-16 16:04:19](pwim) but when you're dealing with lots of files
[2012-09-16 16:04:19](sorah) Many GUI uploaders, but it's too confused
[2012-09-16 16:04:22](pwim) its a pain
[2012-09-16 16:04:26](sorah) so I made CLI uploader
[2012-09-16 16:04:47](sorah) = Library
[2012-09-16 16:04:52](sorah) ruby-toolbox
[2012-09-16 16:05:07](sorah) useful to find popular library
[2012-09-16 16:07:01](sorah) = Step of hack
[2012-09-16 16:07:27](sorah) 1. List up features of software what want to make
[2012-09-16 16:07:31](sorah) 2. Trash it
[2012-09-16 16:07:40](sorah) Pro tip: set nearly goal
[2012-09-16 16:07:49](sorah) many features make goal far
[2012-09-16 16:08:25](pwim) sometimes my ideas suck
[2012-09-16 16:09:16](sorah) record says "I've eaten a dinner on the river"
[2012-09-16 16:10:13](sorah) think: what do you think if you noticed the idea sucks when after prepared rich authentication system?
[2012-09-16 16:10:41](sorah) this is a reason to recommend set nearly goal, implement minimal required features first
[2012-09-16 16:11:00](sorah) ---
[2012-09-16 16:11:15](sorah) Software & Library grows
[2012-09-16 16:11:24](sorah) Write test to upgrade
[2012-09-16 16:11:37](sorah) test helps upgrading for big apps
[2012-09-16 16:12:32](sorah) let's push to GitHub
[2012-09-16 16:12:44](pwim) sometimes non-japanese see it, so publish in english
[2012-09-16 16:13:00](pwim) don't hope to much that someone will use it
[2012-09-16 16:13:06](sorah) sometimes non-japanese see it, so write README in English
[2012-09-16 16:13:11](pwim) think of it as a cloud backup services
[2012-09-16 16:13:23](sorah) That's all
[2012-09-16 16:13:34](pwim) i'll be happy if people were inspired to make something
[2012-09-16 16:13:43](sorah) thank you
[2012-09-16 16:13:44](sorah)
[2012-09-16 16:13:48](sorah) question?
[2012-09-16 16:14:13](sorah) Q. I'm doing DIY programming now, and writing Desktop app with Rails 3
[2012-09-16 16:14:48](sorah) Q. Rails 3 starts up so slow, do you make starting up faster?
[2012-09-16 16:15:00](sorah) A. run in production may make faster
[2012-09-16 16:15:03](sorah)
[2012-09-16 16:15:05](sorah) more one question
[2012-09-16 16:15:14](sorah) thank you
[2012-09-16 16:15:23](sorah) -----------
[2012-09-16 16:16:22](sorah) こんにちはみなさん
[2012-09-16 16:16:32](sorah) おやすみシャワーからきた しだらようじ です
[2012-09-16 16:16:37](sorah) だいじなことばをつたえます
[2012-09-16 16:16:41](sorah) おやすみ ってことばしってますか?
[2012-09-16 16:16:43](sorah) Oyasumi
[2012-09-16 16:16:49](sorah) おやすみ は good night のことです
[2012-09-16 16:16:55](sorah) 今日寝るときにつかってみてください
[2012-09-16 16:17:05](sorah) きょうは おやすみシャワー ができるまでについて
[2012-09-16 16:17:15](sorah) I'm from team Oyasumi#end_of_the_day
[2012-09-16 16:17:19](sorah) Returning to Japanese
[2012-09-16 16:19:52](sorah) Who you spend night with?
[2012-09-16 16:20:16](sorah) Delivering best oyasumi experiment
[2012-09-16 16:20:28](sorah) Shower of Oyasumi will hear from app
[2012-09-16 16:20:41](sorah) and talk "Oyasumi" for next shower of Oyasumi for another person
[2012-09-16 16:20:43](pwim) how did we make it?
[2012-09-16 16:20:50](sorah) 9am - 9pm
[2012-09-16 16:21:13](sorah) How we spend a time during contest
[2012-09-16 16:21:26](sorah) (sorry 9am - 9am is correct)
[2012-09-16 16:21:50](sorah) this is our team
[2012-09-16 16:21:57](pwim) two people are here
[2012-09-16 16:22:27](sorah) Have to ride on the train
[2012-09-16 16:22:45](sorah) (noise?)
[2012-09-16 16:24:01](sorah) think about tech
[2012-09-16 16:25:04](sorah) is that site using text fun? yes, not
[2012-09-16 16:31:33](sorah) Record: Kamata
[2012-09-16 16:31:37](sorah) Edit: Oomori
[2012-09-16 16:31:40](sorah) Upload: Sapporo
[2012-09-16 16:36:01](sorah) conclusion
[2012-09-16 16:39:15](sorah) because we're programmers
[2012-09-16 16:39:16](sorah)
[2012-09-16 16:39:21](sorah) Questions?
[2012-09-16 16:40:17](sorah) Q. if the deadline is a hour or a week, will your method change?
[2012-09-16 16:40:19](sorah) A. yes
[2012-09-16 16:41:16](sorah) Q. Are you connected communication tool at all time?
[2012-09-16 16:41:19](sorah) A. yes
[2012-09-16 16:42:01](sorah) Q. Your app has tested by team only?
[2012-09-16 16:42:05](sorah) A. yes
[2012-09-16 16:42:13](sorah) A. Using testflight to distribute
[2012-09-16 16:42:56](sorah) Q. Do you have any recommendation of communication tool?
[2012-09-16 16:43:13](sorah) A. First, why I choosed PS3. It doesn't take monitor or machine resource.
[2012-09-16 16:43:23](sorah) Q. At the PC?
[2012-09-16 16:43:32](sorah) Q. Google hangout or some…
[2012-09-16 16:43:43](sorah) A. for me hangout doesn't fit.
[2012-09-16 16:43:48](sorah) thank you
[2012-09-16 16:44:53](pwim) next session starts at 5:15
[2012-09-16 16:52:51](june29) :octocat:
[2012-09-16 17:09:11](shyouhei) ================
[2012-09-16 17:09:12](shyouhei) "Finding True Love in Legacy Software" by Dane Harrigan
[2012-09-16 17:09:49](shyouhei) 「いきいきといたレガシーコードとの暮らし」からtDiary成分を抜いた感じと予想します。
[2012-09-16 17:15:12](pwim) ----
[2012-09-16 17:15:27](shyouhei) こんにちわ
[2012-09-16 17:15:28](sorah) こんにちはみなさん、
[2012-09-16 17:15:29](sorah) きこえますか
[2012-09-16 17:15:39](sorah) ましになった? いいね、OK
[2012-09-16 17:15:45](shyouhei) ごめんねー
[2012-09-16 17:15:54](sorah) ごめん、レガシーコードのレビューはつらいんだよ
[2012-09-16 17:16:07](sorah) レガシーコードとはまだ一緒にやってるけどさ
[2012-09-16 17:16:37](sorah) 適応能力
[2012-09-16 17:16:50](sorah) レガシーコードと一緒でも幸せになる方法
[2012-09-16 17:17:04](shyouhei) コードをどう読んでそこからなにかをどう学ぶか
[2012-09-16 17:17:06](sorah) ここからが本番
[2012-09-16 17:17:11](sorah) ヘロクで働いています
[2012-09-16 17:17:14](sorah) API
[2012-09-16 17:17:23](shyouhei) CLIとか
[2012-09-16 17:17:23](sorah) herokuコマンドもAPIを使っています
[2012-09-16 17:17:38](shyouhei) レガシーコードのことで皆さん集まってますね
[2012-09-16 17:17:52](shyouhei) 他の人から継承したか
[2012-09-16 17:17:55](shyouhei) テストがないか
[2012-09-16 17:18:00](sorah) テストされてない、よめねえ、メンテとか無理
[2012-09-16 17:18:01](shyouhei) 理解が難しいか
[2012-09-16 17:18:07](sorah) 哀れ
[2012-09-16 17:18:11](shyouhei) まあだれも望んでない
[2012-09-16 17:18:17](sorah) レガシーコード愛
[2012-09-16 17:18:20](shyouhei) それをどのように
[2012-09-16 17:18:24](shyouhei) 愛するか
[2012-09-16 17:18:57](shyouhei) 新たにアプリケーションを書くなら、たとえば会社名をアプリケーション名にしてはいけない
[2012-09-16 17:19:01](shyouhei) 意味不明やから。
[2012-09-16 17:19:14](sorah) コアって名前はよくないね
[2012-09-16 17:19:27](sorah) Herokuはコアって名前のアプリケーションがある
[2012-09-16 17:19:30](sorah) サーバーのインスタンスを管理する
[2012-09-16 17:19:35](sorah) 決済も
[2012-09-16 17:19:45](sorah) アドオンとかドメインとかAPIとか
[2012-09-16 17:19:47](shyouhei) サーバインスタンス管理から決済、色々
[2012-09-16 17:19:52](sorah) Coreはすべてやる
[2012-09-16 17:19:53](shyouhei) ようするに全部
[2012-09-16 17:19:59](shyouhei) それはよくないので
[2012-09-16 17:20:03](sorah) 1アプリには1つの事を
[2012-09-16 17:20:05](shyouhei) 単一の責任を
[2012-09-16 17:20:10](sorah) Core は Public API に
[2012-09-16 17:20:14](shyouhei) そこで選ばれたのがAPI
[2012-09-16 17:20:21](sorah) いらないものを消したい
[2012-09-16 17:20:40](shyouhei) それらは新しいアプリに
[2012-09-16 17:21:08](shyouhei) 課金はコアのデータが必要だがそれはAPI経由で取得できる
[2012-09-16 17:21:16](shyouhei) 他も同様
[2012-09-16 17:21:34](shyouhei) HTMLってのはようするにダッシュボード
[2012-09-16 17:21:41](sorah) CoreはAPIだけやればいい、それ以外はいらない
[2012-09-16 17:21:44](sorah) という風にしたい
[2012-09-16 17:22:10](shyouhei) 一番簡単なのはDBを共有することだが
[2012-09-16 17:22:15](shyouhei) 同時に最悪でもある
[2012-09-16 17:22:25](shyouhei) かわりにAPIを航海しましょう
[2012-09-16 17:22:28](shyouhei) 公開
[2012-09-16 17:23:01](sorah) Core DB が持つ必要がない情報
[2012-09-16 17:23:04](sorah) DBを分ける
[2012-09-16 17:23:09](shyouhei) 課金は、それ自体にDBがある(クレカ番号とか)
[2012-09-16 17:23:12](sorah) 他でも同様 (プロセス管理)
[2012-09-16 17:23:46](shyouhei) プロセス管理はコアDBからは読むだけだかbgでいける
[2012-09-16 17:23:52](sorah) この変更には何ヶ月もかかる
[2012-09-16 17:23:57](sorah) でも使いやすくなる
[2012-09-16 17:24:04](sorah) つまりこのコードを愛せるようになる
[2012-09-16 17:24:35](shyouhei) 単一のアプリケーションは単一の用途、
[2012-09-16 17:24:47](shyouhei) でそれらが互いに参照しあう
[2012-09-16 17:25:05](shyouhei) 本当にエッセンシャルなものだけ残すように
[2012-09-16 17:25:16](sorah) CoreはAPIになりました
[2012-09-16 17:25:33](shyouhei) まあまだレガシーコードは残ってるんだが
[2012-09-16 17:25:37](shyouhei) それでもだいぶ小さい
[2012-09-16 17:25:54](sorah) @daneharriganでした
[2012-09-16 17:26:12](sorah) 時間を余らせたことは謝るよ
[2012-09-16 17:26:15](sorah) たくさんの質問を
[2012-09-16 17:26:40](shyouhei) Q. アプリケーション間の通信はどうやってるの
[2012-09-16 17:27:16](shyouhei) A. APIを呼ぶとデータが返ってくる。(HTTP APIかな?)
[2012-09-16 17:28:25](shyouhei) Q. APIの詳細は? JSON?
[2012-09-16 17:28:35](shyouhei) A. 全部JSONでhttprequest
[2012-09-16 17:28:47](sorah) Q. REST?
[2012-09-16 17:28:59](sorah) A. 頑張ってる
[2012-09-16 17:29:10](shyouhei) A. いまv2だけどv3でもっとRESTfulにしたい
[2012-09-16 17:30:02](shyouhei) A. 課金システムはそれを知る必要は必ずしもないよね。
[2012-09-16 17:30:33](shyouhei) A. 課金はライブラリになってるのでカプセル化してあるといえる
[2012-09-16 17:30:46](sorah) Q. セキュリティについて
[2012-09-16 17:30:47](shyouhei) Q. 通信の秘匿は?
[2012-09-16 17:30:50](shyouhei) A. SSL
[2012-09-16 17:31:08](sorah) Q. 認証
[2012-09-16 17:31:15](shyouhei) Q. にんしょうは?
[2012-09-16 17:31:16](sorah) A. BASIC auth
[2012-09-16 17:31:41](sorah) A. カードとかの情報はそのアプリ特有の情報だからそのアプリのDBに直接書き込んでいます
[2012-09-16 17:32:31](shyouhei) (認証はGithubのもとからある認証(oauth)で認証したらその情報が使いまわされる感じの模様です)
[2012-09-16 17:33:56](shyouhei) Q. コアをこのように分解するのに必要だった期間は
[2012-09-16 17:35:02](shyouhei) A. 前からやってることではあるので一概には言いづらいが、この一年で数個の機能が分解されたし、数年単位じゃないか
[2012-09-16 17:36:22](shyouhei) Q. この分解はいっきにdeployされるの?
[2012-09-16 17:36:59](shyouhei) A. ユーザーごとにフラグがあって、それが立ってる人だけ移行する。徐々に使ってるユーザーが増える。
[2012-09-16 17:37:42](shyouhei) Q. APIを呼ぶオーバーヘッドがあるのでは? それはどう対策している?
[2012-09-16 17:38:33](shyouhei) A. cacheはやりたくないので、API自体を速くしたいのだけれど、
[2012-09-16 17:39:10](shyouhei) A. 不可避な所ではlast-modifiedをつけてキャッシュする感じ
[2012-09-16 17:39:46](shyouhei) Q. 仕事でまさに同じことをしようとしているのだが、
[2012-09-16 17:39:58](shyouhei) こういう作業をするのに手助けになるgemとかないかね
[2012-09-16 17:40:06](shyouhei) A. ないねえ…
[2012-09-16 17:40:34](shyouhei) ライブラリを足せばよいというはなしではないので
[2012-09-16 17:40:59](shyouhei) Q. これRails?
[2012-09-16 17:41:20](shyouhei) A. Rails 3.2 -> 将来的にはSinatraに移行したい
[2012-09-16 17:42:10](shyouhei) Q. 最初にcoreを書いたのは誰よ
[2012-09-16 17:42:20](shyouhei) A. svnを見れば分かるけど
[2012-09-16 17:42:52](shyouhei) Q. その人は今なにやってるの
[2012-09-16 17:43:10](shyouhei) A. まあ結婚してセミリタイヤしたりとか、管理職になったりとか
[2012-09-16 17:44:31](shyouhei) Q. モノリシックな構成は簡単ではあるから最初始めるときには悪くないチョイスね。で、それを分割するタイミングがいつくるべき?
[2012-09-16 17:44:51](shyouhei) A. 「あーこれは別の独立した機能じゃないかな」と思ったら、かな
[2012-09-16 17:44:52](sorah) Next session will be the last
[2012-09-16 17:44:56](sorah) s/session/question
[2012-09-16 17:45:06](sorah) Q. テスト
[2012-09-16 17:45:12](shyouhei) A. yes
[2012-09-16 17:45:22](sorah) Q. プラットフォーム全体のテストがあります
[2012-09-16 17:45:25](shyouhei) full integration test yes
[2012-09-16 17:45:25](sorah) s/Q./A.
[2012-09-16 17:45:35](shyouhei) time
[2012-09-16 17:45:40](shyouhei) Q. how long?
[2012-09-16 17:45:47](shyouhei) A. might be 5-6 min.
[2012-09-16 17:46:57](pwim) mayuco made this
[2012-09-16 17:47:05](pwim) but I'm the only one who uses it
[2012-09-16 17:47:11](pwim) kind of sad... :(
[2012-09-16 17:47:14](shyouhei) "How to make clear code" by Kouhei Sutou
[2012-09-16 17:47:34](sorah) Have fun until the kaigi ends
[2012-09-16 17:47:48](pwim) this is always kakutani's time
[2012-09-16 17:47:56](pwim) but it seems like it will be me today
[2012-09-16 17:48:49](pwim) what do you think makes clear code?
[2012-09-16 17:48:59](pwim) for me, it's natural code
[2012-09-16 17:49:25](shyouhei) (speaker uses WiFi controller but its kinda laggy)
[2012-09-16 17:49:40](pwim) for instance, when reading source code, you can sometimes find cool or amazing code, but that's not clear
[2012-09-16 17:49:55](pwim) rather clear code is code that when you read it, you understand it
[2012-09-16 17:50:35](shyouhei) joyful is a keyword,
[2012-09-16 17:50:37](pwim) the ruby community always uses the word "joyful"
[2012-09-16 17:50:44](shyouhei) but also "keep".
[2012-09-16 17:50:56](pwim) do you like programming?
[2012-09-16 17:51:07](sorah) I think you're loving programming
[2012-09-16 17:51:14](sorah) development is fun
[2012-09-16 17:51:20](pwim) regardless of language, development is fun
[2012-09-16 17:51:37](sorah) touching with dirty code is not fun
[2012-09-16 17:51:41](sorah) ok
[2012-09-16 17:51:48](pwim) you've see horrible ruby code
[2012-09-16 17:51:49](sorah) Always fun? not.
[2012-09-16 17:51:54](shyouhei) are you seriously happy with dirty ruby code?
[2012-09-16 17:52:56](sorah) Dirty code always added
[2012-09-16 17:53:15](sorah) no enough time to clean
[2012-09-16 17:53:42](shyouhei) Id like to write various codes, and thats not doable by someone alone
[2012-09-16 17:53:53](pwim) i want everyone to write clear code
[2012-09-16 17:53:54](sorah) All team member should write clear code
[2012-09-16 17:53:54](shyouhei) so Id like you to write clear code
[2012-09-16 17:54:10](sorah) You guys handclaped, I think that's not lie,
[2012-09-16 17:54:32](sorah) s/think/beleive
[2012-09-16 17:55:41](shyouhei) "we" code.
[2012-09-16 17:55:48](shyouhei) not only me.
[2012-09-16 17:56:16](shyouhei) do you know "readable code" by O'reilly
[2012-09-16 17:56:50](shyouhei) I wrote comment for its Japanese version
[2012-09-16 17:57:10](shyouhei) and there is essential part of this speech in it.
[2012-09-16 17:57:18](shyouhei) the first thing is
[2012-09-16 17:57:35](shyouhei) 1) do write a readable/clear code.
[2012-09-16 17:58:22](shyouhei) then 2) let other project members write clear codes.
[2012-09-16 17:58:36](shyouhei) by creating "readable code" culture
[2012-09-16 17:58:49](shyouhei) last, this is important,
[2012-09-16 17:59:18](sorah) new team member knows nothing, who tells, code.
[2012-09-16 17:59:23](shyouhei) someone occasionaly gets involved with your project
[2012-09-16 17:59:34](shyouhei) and influence those new comer.
[2012-09-16 18:00:10](shyouhei) how to acheve this three step.
[2012-09-16 18:00:26](shyouhei) 1. is done by writing codes.
[2012-09-16 18:00:51](shyouhei) at step 2 not only writing but also reading codes are essential.
[2012-09-16 18:01:05](shyouhei) and last step needs to write codes once again.
[2012-09-16 18:01:41](sorah) you should do, if you want to change something
[2012-09-16 18:03:09](shyouhei) once you know what a clear code is, that is not copy&paste ready.
[2012-09-16 18:03:16](shyouhei) do write it.
[2012-09-16 18:04:00](sorah) "other members are writing dirty code" can't be a reason to allow writing dirty code
[2012-09-16 18:06:09](sorah) Read all commits in your project if you want to write clear code
[2012-09-16 18:06:35](sorah) our project sends mail at each commit
[2012-09-16 18:07:59](sorah) reading codes should be fun, shouldn't it?
[2012-09-16 18:09:45](shyouhei) evangelize someone by writing code
[2012-09-16 18:14:06](sorah) That's all
[2012-09-16 18:14:11](pwim) thank you to the organizers
[2012-09-16 18:14:19](pwim) it was a long three days
[2012-09-16 18:14:49](sorah) questions
[2012-09-16 18:15:30](shyouhei) Q. awesome speech
[2012-09-16 18:15:55](shyouhei) Q. why you released your slides BEFORE you speak?
[2012-09-16 18:16:17](shyouhei) A. the URL inside was long to look at one sight
[2012-09-16 18:17:00](sorah) ------------------------
[2012-09-16 18:17:01](sorah) Closing
[2012-09-16 18:17:24](sorah) Give me a time to sync with another room
[2012-09-16 18:17:26](pwim) lost stuff
[2012-09-16 18:17:28](sorah) Announcement
[2012-09-16 18:17:32](shyouhei) (syncing with the another room)
[2012-09-16 18:17:34](pwim) umbrella
[2012-09-16 18:17:34](sorah) Lost & found
[2012-09-16 18:18:16](sorah) COOKPAD bag in 2F smoking room, including CD, battery,
[2012-09-16 18:18:17](pwim) bag in found in the smoking room
[2012-09-16 18:18:56](pwim) mac vga cable cap
[2012-09-16 18:18:58](pwim) old style
[2012-09-16 18:19:01](sorah) VGA adapter's cap (MiniDVI?)
[2012-09-16 18:19:45](pwim) subway card
[2012-09-16 18:20:18](pwim) black shirt
[2012-09-16 18:20:45](pwim) we'll leave these at reception
[2012-09-16 18:20:53](sorah) will be up on github issues
[2012-09-16 18:21:05](sorah) all lost & found things will become our issues
[2012-09-16 18:21:47](pwim) i think everyone is tired, but until you arrive home, sprk2012 isn't over, so stay safe
[2012-09-16 18:22:06](sorah) ------------
[2012-09-16 18:22:07](sorah) Closing
[2012-09-16 18:22:15](pwim) thank you for joining us over 3 days
[2012-09-16 18:22:20](pwim) did you have fun?
[2012-09-16 18:22:22](sorah) Have fun?
[2012-09-16 18:22:34](pwim) i saw many different people
[2012-09-16 18:22:36](pwim) speakers
[2012-09-16 18:22:51](pwim) people working in the other rooms
[2012-09-16 18:23:00](pwim) i was very glad to have you all
[2012-09-16 18:23:16](sorah) Ruby sponsors
[2012-09-16 18:23:28](pwim) i want to thank the sponsors again
[2012-09-16 18:23:32](sorah) salesforces, COOKPAD, Microsoft Japan
[2012-09-16 18:23:39](sorah) Platinum sponsors
[2012-09-16 18:23:53](sorah) ESM, Paperboy & co, Enishi-tech
[2012-09-16 18:23:58](sorah) (enishi-tech is his company)
[2012-09-16 18:28:43](sorah) SPRK2012 is over
[2012-09-16 18:29:06](pwim) thanks to everyone who attended
[2012-09-16 18:29:10](sorah) thank you all, we're believing meet at other places
[2012-09-14 12:55:12](okkez) hi
[2012-09-14 12:56:18](h_hiro_) hi
[2012-09-14 17:13:06](znz_) 後でmrubyの話もありそう。
[2012-09-15 10:06:25](znz_) サブスクリーンは前に座ってる人がいると上の赤い辺りしか見えない。
[2012-09-15 10:07:04](shyouhei) 2ですか
[2012-09-15 10:07:44](znz_) 2です
[2012-09-15 10:09:01](shyouhei) これはもうこれ以上高くなれないすね
[2012-09-15 10:11:40](shyouhei) 床置きタイプなので
[2012-09-16 10:40:04](agrimm) yokolet: わたしが個人的におこなっているのは弁当ぼっくすモデル
[2012-09-16 10:40:04](agrimm) [10:38am] yokolet: さまざまな用語を分類するものです
[2012-09-16 14:58:03](quicy) やはり時間的に、DCIが登場したところで終わりか...
[2012-09-16 14:58:43](quicy) ちょっと前フリが長過ぎたんでは...
[2012-09-16 15:03:32](quicy) RubyのDCIパターンでは、Interactionの織り込みを、Context内で明示的に行う方法や、CoCで暗黙的に行う方法などあると思うけど、角谷さんのところではどんなやりかたでやってるのかしら。
[2012-09-16 15:04:48](quicy) とか聞きたかったけど、残念。
[2012-09-16 15:05:02](shyouhei) まあ30分ではねー
[2012-09-16 15:05:34](shyouhei) 30分というのは発表としてはなかなか難しいのですよ
[2012-09-16 15:05:55](shyouhei) 大学の卒論発表と大差ない長さですからね
[2012-09-16 15:06:07](shyouhei) あまり詳細には踏み込めないです
[2012-09-16 15:11:57](sorah) shyouhei どこいった
[2012-09-14 12:19:16](yokolet) hello!!
[2012-09-14 16:20:26](june29) test
[2012-09-14 16:20:31](june29) good
[2012-09-14 16:21:00](june29) 翻訳チャンネルです!
[2012-09-14 16:21:53](shyouhei) はい
[2012-09-14 16:22:00](shyouhei) すいませんね遅くなって
[2012-09-14 16:22:06](shyouhei) いけてそうですね
[2012-09-14 16:22:09](june29) いえいえ!
[2012-09-14 16:22:12](june29) とんでもnil
[2012-09-14 16:22:23](june29) よろしくお願いします!
[2012-09-14 16:23:36](shyouhei) ================
[2012-09-14 16:23:37](shyouhei) "Inside Sqale's Backend" by Gosuke Miyashita
[2012-09-14 16:30:11](shyouhei) OK lets start
[2012-09-14 16:30:29](shyouhei) sqale is a PaaS
[2012-09-14 16:30:42](shyouhei) i'll talk about is core, backend
[2012-09-14 16:30:53](shyouhei) not that ruby related sorry :P
[2012-09-14 16:33:00](shyouhei) I have 5 children
[2012-09-14 16:33:28](shyouhei) I ware YAPC t-shirt
[2012-09-14 16:33:48](shyouhei) architect of sqale
[2012-09-14 16:34:23](shyouhei) facebook page is fashon here so I created this page an hour ago
[2012-09-14 16:34:52](shyouhei) bit lower layer than ruby
[2012-09-14 16:35:01](shyouhei) if you would talk ruby-related
[2012-09-14 16:35:10](shyouhei) another session is good.
[2012-09-14 16:35:26](shyouhei) sqale is targeted for lighter users
[2012-09-14 16:35:52](shyouhei) heroku people, please be tender
[2012-09-14 16:36:04](shyouhei) service at a glance
[2012-09-14 16:36:11](shyouhei) AWS, tokyo region
[2012-09-14 16:36:33](shyouhei) SSH router is what a developer would use
[2012-09-14 16:36:42](shyouhei) Web proxy is for end users.
[2012-09-14 16:36:57](shyouhei) lower ones are background
[2012-09-14 16:37:09](shyouhei) containers are virtual environments
[2012-09-14 16:37:16](shyouhei) where an application runs
[2012-09-14 16:37:42](shyouhei) I heard dotcloud also uses lxc
[2012-09-14 16:38:37](shyouhei) OSes.
[2012-09-14 16:38:51](shyouhei) all components run on Linux
[2012-09-14 16:39:54](shyouhei) this original patch is to handle something grsecurity cannot handle
[2012-09-14 16:40:01](shyouhei) very simple
[2012-09-14 16:40:38](shyouhei) cgroup = process group
[2012-09-14 16:41:25](shyouhei) ELB front, routes to nginx, then to containers.
[2012-09-14 16:41:53](shyouhei) use of nginx modules
[2012-09-14 16:42:17](shyouhei) redis serves which URL maps to which container
[2012-09-14 16:42:42](shyouhei) then nginx routes to that container
[2012-09-14 16:43:07](shyouhei) look at the code
[2012-09-14 16:43:30](shyouhei) lua code is in separate file (for simplicity)
[2012-09-14 16:44:27](shyouhei) this is where we extract random one container from the containers returned from redis.
[2012-09-14 16:45:24](shyouhei) this is conf to fail-over
[2012-09-14 16:46:10](shyouhei) it assigns downed_containers variale.
[2012-09-14 16:46:52](shyouhei) this is same as the normal path (avoid downed ones)
[2012-09-14 16:47:09](shyouhei) 503 is returned only when no container is left
[2012-09-14 16:47:45](shyouhei) the bitly URL is a blog about it
[2012-09-14 16:47:59](shyouhei) SSH router overview
[2012-09-14 16:48:27](shyouhei) git access toutes to File repo, SFTP to another, ...
[2012-09-14 16:48:30](shyouhei) routing.
[2012-09-14 16:48:56](shyouhei) AuthorizedKeysScript instead of AuthorisedKeysFile
[2012-09-14 16:49:09](shyouhei) the script returns a key
[2012-09-14 16:49:29](darashi) https://github.com/mizzy/openssh-script-auth
[2012-09-14 16:49:34](shyouhei) who to do routing
[2012-09-14 16:49:45](shyouhei) first ruby code in the slide!
[2012-09-14 16:49:55](shyouhei) simple match
[2012-09-14 16:50:30](shyouhei) when git access comes,
[2012-09-14 16:50:37](shyouhei) the script runs,
[2012-09-14 16:50:50](shyouhei) then it searches MySQL DB,
[2012-09-14 16:51:08](shyouhei) to know where to access.
[2012-09-14 16:51:42](shyouhei) the script returns a key line with command= modified.
[2012-09-14 16:51:51](shyouhei) simple.
[2012-09-14 16:54:10](shyouhei) this is a screenshot
[2012-09-14 16:54:16](shyouhei) of actual connection
[2012-09-14 16:54:37](shyouhei) it's hard to talk deeply
[2012-09-14 16:55:52](shyouhei) I have to return to tokyo because I'm a student
[2012-09-14 16:56:13](shyouhei) I take a class there.
[2012-09-14 16:56:33](shyouhei) so please ask me now if you have questions.
[2012-09-14 16:56:50](shyouhei) Q. nginx fallback
[2012-09-14 16:57:05](shyouhei) how do you watch container health?
[2012-09-14 16:57:13](shyouhei) A. we do not now.
[2012-09-14 16:57:20](shyouhei) we would like to.
[2012-09-14 16:57:53](shyouhei) Thank you.
[2012-09-14 16:58:02](shyouhei) ==== Next 5:15 ====
[2012-09-14 17:13:59](pwim) Hello
[2012-09-14 17:15:10](pwim) Welcome
[2012-09-14 17:15:31](pwim) I will talk about writing iphone apps using ruby
[2012-09-14 17:15:35](pwim) with a new framework
[2012-09-14 17:15:43](pwim) my nickname is masuidrive
[2012-09-14 17:15:46](pwim) my hobby is OSS
[2012-09-14 17:16:19](pwim) I made a movie about using rails
[2012-09-14 17:16:35](pwim) I write code in the bath
[2012-09-14 17:16:50](pwim) who has downloaded?
[2012-09-14 17:16:50](pwim) no one
[2012-09-14 17:16:58](pwim) i released this week
[2012-09-14 17:17:07](pwim) using mruby
[2012-09-14 17:17:18](pwim) we can use native features directly
[2012-09-14 17:17:22](pwim) such as 3d
[2012-09-14 17:17:44](pwim) I released a demo app to the app store
[2012-09-14 17:17:49](pwim) this is my iphone
[2012-09-14 17:18:02](pwim) the framerate is a bit slow
[2012-09-14 17:18:08](pwim) but I released this game
[2012-09-14 17:18:17](pwim) if you have interest in it, search for mobi ruby
[2012-09-14 17:18:25](pwim) there is a memory leak
[2012-09-14 17:18:32](pwim) i didn't have time to fix it
[2012-09-14 17:18:48](pwim) who has made an iphone app?
[2012-09-14 17:18:48](pwim) android?
[2012-09-14 17:19:58](pwim) with AR, you can query DB even if you don't know SQL so well
[2012-09-14 17:20:08](pwim) the goal was similar with mobiruby
[2012-09-14 17:20:18](pwim) even if you don't know so much details about how native stuff works
[2012-09-14 17:20:29](pwim) you should still be able to write an app with mobiruby
[2012-09-14 17:20:53](pwim) who uses mac?
[2012-09-14 17:20:56](pwim) almost everyone
[2012-09-14 17:21:00](pwim) so you can try it
[2012-09-14 17:21:17](pwim) i'm looking for people to help out
[2012-09-14 17:21:28](pwim) i just released
[2012-09-14 17:21:33](pwim) this is really alpha
[2012-09-14 17:22:00](pwim) you need to know about GC + iphone
[2012-09-14 17:22:09](pwim) so maybe its challenging
[2012-09-14 17:22:23](pwim) who knows mruby
[2012-09-14 17:22:23](pwim) used ruby
[2012-09-14 17:22:31](pwim) some people who made it raised their hands
[2012-09-14 17:22:41](pwim) remade ruby from scratch
[2012-09-14 17:22:52](pwim) with a focus on devices without much memory of CPU
[2012-09-14 17:23:18](pwim) focus on being simple
[2012-09-14 17:23:32](pwim) there are lots of features that you are used to that are missing
[2012-09-14 17:24:36](pwim) kept asking about release of ritvm
[2012-09-14 17:25:18](pwim) my company makes something for translating js to native
[2012-09-14 17:25:50](pwim) i wanted to do ruby to native
[2012-09-14 17:25:50](pwim) most companies would say i couldn't do this
[2012-09-14 17:25:50](pwim) but my company let me
[2012-09-14 17:30:34](pwim_) The most difficult part - memory management
[2012-09-14 17:30:42](pwim_) I want to show the source fcode
[2012-09-14 17:31:14](pwim_) Can people see?
[2012-09-14 17:31:55](pwim_) This is like objective c
[2012-09-14 17:32:14](pwim_) We are using reflection to automatically delegate
[2012-09-14 17:33:26](pwim_) If you begin with underscore, you can call an objective c method
[2012-09-14 17:34:38](pwim_) you can't use any of this if you don't know both ruby + ios
[2012-09-14 17:37:07](pwim_) There is no plan to implement threads in mobiruby
[2012-09-14 17:38:53](pwim_) includes wrapping classes to make it more like writing ruby
[2012-09-14 17:40:48](pwim_) file operations, random number generation, etc will be shared
[2012-09-14 17:42:07](pwim) I write github commits mostly in english
[2012-09-14 17:43:26](znz_) s/commit/issue/ ?
[2012-09-14 17:43:43](pwim) @znz yes
[2012-09-14 17:44:06](pwim) i wanted to release a schedule application for this conference
[2012-09-14 17:44:13](pwim) unfortunately there wasn't enough time
[2012-09-14 17:44:42](pwim) i don't write tests much
[2012-09-14 17:44:49](pwim) so i need people to help out with this
[2012-09-14 17:44:58](pwim) i know its bad...
[2012-09-14 17:46:31](pwim) rubymotion has been getting a lot of buzz recently
[2012-09-14 17:47:17](pwim) i spent about half a year on this
[2012-09-14 17:47:29](pwim) despite this its quite compact
[2012-09-14 17:48:06](pwim) mruby has a lot less source code then ruby
[2012-09-14 17:48:10](pwim) so easier to get involved
[2012-09-14 17:48:45](pwim) you can't do a stack trace
[2012-09-14 17:52:56](pwim) uses objective c 2.0
[2012-09-14 17:53:21](pwim) i've mostly been working on this on my own
[2012-09-14 17:53:26](pwim) well at first it was private
[2012-09-14 17:53:30](pwim) but now I've opened it up
[2012-09-14 17:53:49](pwim) I'm also trying to get people from overseas involved
[2012-09-14 17:53:49](pwim) Matz is working on mruby
[2012-09-14 17:54:00](pwim) so there's a good chance this will succeed
[2012-09-14 17:54:41](pwim) i made this because i though mruby was interesting
[2012-09-14 17:54:45](pwim) and through my job, i had been working on something similar
[2012-09-14 17:55:29](pwim) the logo was made by this person from france
[2012-09-14 17:55:41](pwim) i want you all to like my fb page!
[2012-09-14 17:55:50](pwim) thank you
[2012-09-14 17:57:16](pwim) there is some ios stuff that hasn't been released as open source, how do you use it?
[2012-09-14 17:57:24](pwim) there are ways to inspect the runtime
[2012-09-14 17:58:14](pwim) i would recommend against using mobi ruby if speed is important
[2012-09-14 17:58:42](pwim) i don't like html based interfaces
[2012-09-14 17:58:47](pwim) i prefer native
[2012-09-14 17:59:03](pwim) i'll be at the after party
[2012-09-14 17:59:11](pwim) so feel free to talk to me there
[2012-09-14 18:00:14](hokkai7go) だれか、にほんご、たのむ
[2012-09-14 18:00:46](pwim) who has interest in mruby?
[2012-09-14 18:01:16](pwim) matz/matsuidrive question time
[2012-09-14 18:02:37](pwim) let's talk about the plan for mruby
[2012-09-14 18:02:50](pwim) more than adding new features, i'd rather focus on refining what is there
[2012-09-14 18:03:06](pwim) i want fibers
[2012-09-14 18:03:09](pwim) useful for games
[2012-09-14 18:03:31](pwim) more than threads, I want fibers
[2012-09-14 18:03:40](pwim) in games, the characters could work well as fibers
[2012-09-14 18:03:51](pwim) threads are too heavy
[2012-09-14 18:03:51](pwim) event driven is hard to write
[2012-09-14 18:04:16](pwim) so i want fibers
[2012-09-14 18:04:16](pwim) masui wants debugging features
[2012-09-14 18:05:07](pwim) masui wants something like be able to connect via nw and debug
[2012-09-14 18:15:24](pwim_) The sessions for the day are over
[2012-09-15 09:23:38](shyouhei) morning eveyone.
[2012-09-15 09:24:39](shyouhei) テスト中です
[2012-09-15 09:31:13](shyouhei) still testing…
[2012-09-15 09:41:38](shyouhei) yet another test
[2012-09-15 09:48:16](shyouhei) ================
[2012-09-15 09:48:16](shyouhei) "Purely functional programming in Ruby" by Shugo Maeda
[2012-09-15 09:48:38](shyouhei) (starts 10:00)
[2012-09-15 10:03:22](shyouhei) I'm a CRuby committer
[2012-09-15 10:03:36](shyouhei) NaCl executive, and so on.
[2012-09-15 10:03:42](shyouhei) I like fishing.
[2012-09-15 10:04:00](shyouhei) I fished today since 4am
[2012-09-15 10:04:29](shyouhei) but got nothing today :(
[2012-09-15 10:04:39](shyouhei) we also hire
[2012-09-15 10:04:43](shyouhei) anyway,
[2012-09-15 10:04:46](shyouhei) functional
[2012-09-15 10:05:06](shyouhei) = no side effect
[2012-09-15 10:05:21](shyouhei) but ruby is not purly functional
[2012-09-15 10:05:43](shyouhei) for instance, we do not try functional IOs today
[2012-09-15 10:05:58](shyouhei) no reassingment of variable
[2012-09-15 10:06:05](shyouhei) no object modification
[2012-09-15 10:06:08](shyouhei) and IOs
[2012-09-15 10:06:30](shyouhei) main reason is "it's cool
[2012-09-15 10:06:32](shyouhei) "
[2012-09-15 10:07:22](shyouhei) ruby is LIKE functional
[2012-09-15 10:07:31](shyouhei) but basically it's not.
[2012-09-15 10:07:53](shyouhei) ex. use of inject
[2012-09-15 10:08:02](shyouhei) it's cool, but
[2012-09-15 10:08:09](shyouhei) the middle example is BAD
[2012-09-15 10:08:22](shyouhei) because it uses side effect
[2012-09-15 10:09:22](shyouhei) use #each_with_object instead
[2012-09-15 10:09:55](shyouhei) data structures that hold old data
[2012-09-15 10:10:00](shyouhei) = persistent
[2012-09-15 10:10:17](shyouhei) functional style makes this natural.
[2012-09-15 10:10:26](shyouhei) unused persistent data are GCed
[2012-09-15 10:10:54](shyouhei) map seems to be functional, but in practice it uses side effect
[2012-09-15 10:11:05](shyouhei) so we introduce List here
[2012-09-15 10:11:55](shyouhei) blue squares are called cons cells.
[2012-09-15 10:12:57](shyouhei) (read the impl.)
[2012-09-15 10:13:15](shyouhei) note the attr_reader here
[2012-09-15 10:13:25](shyouhei) they are read-only
[2012-09-15 10:13:47](shyouhei) List's constructor needs to construct in reverse order
[2012-09-15 10:14:05](shyouhei) If story
[2012-09-15 10:14:29](shyouhei) If directive seems not Object Oriented
[2012-09-15 10:15:22](shyouhei) instead of using if keyword, use dynamic dispatches
[2012-09-15 10:15:39](shyouhei) it is extensible
[2012-09-15 10:16:05](shyouhei) but dynamic dispatching is less flexible than pattern matching
[2012-09-15 10:16:29](shyouhei) we do not use if at all here
[2012-09-15 10:17:02](shyouhei) while always needs side effects so
[2012-09-15 10:17:13](shyouhei) in functional style we use recursion
[2012-09-15 10:17:45](shyouhei) but using recursion introduces stack error
[2012-09-15 10:18:10](shyouhei) this example is not tail-recursive
[2012-09-15 10:18:27](shyouhei) tihs is.
[2012-09-15 10:18:55](shyouhei) tail recursion can have room to avoid stack overflow
[2012-09-15 10:19:07](shyouhei) in ruby, you have to set compile option
[2012-09-15 10:19:13](shyouhei) by hand
[2012-09-15 10:19:48](shyouhei) ko1 says it'ill be default on in 2.0
[2012-09-15 10:19:55](shyouhei) map
[2012-09-15 10:20:02](shyouhei) this is not tail recursive
[2012-09-15 10:20:59](shyouhei) correct map impl
[2012-09-15 10:21:18](shyouhei) space / time trade-off
[2012-09-15 10:21:45](shyouhei) tail recursive ones are good for large inputs, not for small ones
[2012-09-15 10:22:20](shyouhei) no time so skip foldl/foldr stories
[2012-09-15 10:23:57](shyouhei) lazy evaluation.
[2012-09-15 10:24:09](shyouhei) (this is included in "immutable" gem)
[2012-09-15 10:24:32](shyouhei) it introduces delay/force like scheme
[2012-09-15 10:24:46](shyouhei) promise is memoized unlike proc
[2012-09-15 10:24:53](shyouhei) for efficiency
[2012-09-15 10:25:10](shyouhei) lazy method
[2012-09-15 10:25:42](shyouhei) delay {x} == (delay (force x))
[2012-09-15 10:25:53](shyouhei) what's good
[2012-09-15 10:26:15](shyouhei) lists that are delayed
[2012-09-15 10:26:37](shyouhei) @tail is a promise
[2012-09-15 10:26:54](shyouhei) it's cool
[2012-09-15 10:27:01](shyouhei) feel it!
[2012-09-15 10:27:44](shyouhei) speed
[2012-09-15 10:27:50](shyouhei) 57.4 times slower
[2012-09-15 10:28:00](shyouhei) conclusion:
[2012-09-15 10:28:06](shyouhei) it's cool
[2012-09-15 10:28:15](shyouhei) but not for production :)
[2012-09-15 10:28:47](shyouhei) Q. multi-thread support?
[2012-09-15 10:28:57](shyouhei) A. no.
[2012-09-15 10:31:43](shyouhei) ================
[2012-09-15 10:31:47](shyouhei) "Pattern Matching in Ruby"
[2012-09-15 10:31:53](shyouhei) by Kazuki Tsujimoto
[2012-09-15 10:33:26](shyouhei) I propose here to introduce pattern matching for future ruby
[2012-09-15 10:35:10](shyouhei) d is nil and no error (bad situation)
[2012-09-15 10:35:45](shyouhei) a bit abstract rephrasing
[2012-09-15 10:36:07](shyouhei) those 3 things are what pattern matching solves
[2012-09-15 10:36:57](shyouhei) static typed functional languages suport, but scheme and scala also have.
[2012-09-15 10:37:14](shyouhei) scala case is good example for OOPL
[2012-09-15 10:38:40](shyouhei) the string object is deconstructed as an email address
[2012-09-15 10:39:06](shyouhei) how deconstrucion works in scala
[2012-09-15 10:39:18](shyouhei) #unapply method is called
[2012-09-15 10:39:40](shyouhei) EMail#unapply impl
[2012-09-15 10:40:00](shyouhei) simple matching
[2012-09-15 10:40:36](shyouhei) unapply can be used as instance method, not class method
[2012-09-15 10:40:40](shyouhei) eg. regexp
[2012-09-15 10:41:09](shyouhei) first one do not match
[2012-09-15 10:41:31](shyouhei) middle one is wrong type
[2012-09-15 10:41:39](shyouhei) last one, 0 is not 1.
[2012-09-15 10:42:14](shyouhei) that "d@" assigns the array to var d
[2012-09-15 10:42:26](shyouhei) haskell calls this "as pattern"
[2012-09-15 10:42:45](shyouhei) I wrote "pattern-match" gem
[2012-09-15 10:43:16](shyouhei) almost identical to scala one, except require line
[2012-09-15 10:43:36](shyouhei) _[..] is a shortcut for array decomposing
[2012-09-15 10:44:39](shyouhei) you need to include "Deconstructable" module to target class where you want to deconstruct
[2012-09-15 10:44:46](shyouhei) then define #deconstruct method.
[2012-09-15 10:45:37](shyouhei) Array.deconstruct may be called with other class than Array
[2012-09-15 10:45:48](shyouhei) so you have to check that first
[2012-09-15 10:46:20](shyouhei) matching is done like scala
[2012-09-15 10:46:47](shyouhei) object comparisons are done with hash identity
[2012-09-15 10:47:01](shyouhei) ___ (three _s)
[2012-09-15 10:48:39](shyouhei) #6414 is ruby's bug #
[2012-09-15 10:49:04](shyouhei) hash deconstruction is requested often
[2012-09-15 10:49:38](shyouhei) pattern match is much related to types
[2012-09-15 10:49:47](shyouhei) but ruby is not that typed
[2012-09-15 10:49:53](shyouhei) so this matcher
[2012-09-15 10:50:08](shyouhei) it matches if object has to_i and to_s
[2012-09-15 10:52:06](shyouhei) both examples are quite simple
[2012-09-15 10:52:40](shyouhei) node processing is quite useful when in browser native client.
[2012-09-15 10:52:49](shyouhei) future
[2012-09-15 10:53:02](shyouhei) (to extend ruby core)
[2012-09-15 11:00:07](shyouhei) Q. syntax
[2012-09-15 11:00:55](shyouhei) how about math to be an object method
[2012-09-15 11:01:28](shyouhei) A. current impl uses method_missing and other black magic
[2012-09-15 11:01:56](shyouhei) so I need to integrate it into core to reroute them
[2012-09-15 11:02:10](shyouhei) ====
[2012-09-15 11:02:12](shyouhei) break
[2012-09-15 11:02:22](shyouhei) next session is keynote.
[2012-09-15 11:02:46](shyouhei) this room plays ustream of it
[2012-09-15 11:02:54](shyouhei) (starts 11:15)
[2012-09-15 14:44:55](sorah) Let's take the very first step, going to US
[2012-09-15 14:45:07](Mikho^) going to conferences outside japan changes your life
[2012-09-15 14:45:07](sorah) And talk each other
[2012-09-15 14:45:35](sorah) But… US is too far, I can't do English so much
[2012-09-15 14:46:06](sorah) vvv: the people saying like this don't know benefits of attending conference
[2012-09-15 14:46:07](Mikho^) there are lot of people who take vacation from work to go to conference
[2012-09-15 14:46:21](sorah) "CHANGE YOUR LIFE"
[2012-09-15 14:46:27](Mikho^) but what if you don't have money
[2012-09-15 14:46:36](Mikho^) there are some ways to go cheaply
[2012-09-15 14:47:17](Mikho^) there are some people offering lodging at their house
[2012-09-15 14:47:28](sorah) US hotel charges at each room (not person), sharing make cost cheaper
[2012-09-15 14:47:36](sorah) Wait a moment
[2012-09-15 14:47:56](Mikho^) you can make friends with people you stay with
[2012-09-15 14:47:57](sorah) English problem
[2012-09-15 14:48:05](sorah) You have to talk English when are you in US
[2012-09-15 14:48:19](sorah) × I don't go because I can't talk English
[2012-09-15 14:48:23](Mikho^) it's a mistake to think that I don't go, because can't speak english
[2012-09-15 14:48:32](Mikho^) you must try to talk
[2012-09-15 14:48:36](sorah) You can't talk English until you go to US
[2012-09-15 14:48:41](sorah) English is a tool
[2012-09-15 14:48:55](sorah) Make occasion to use English
[2012-09-15 14:48:57](Mikho^) if you don't speak, you'll never get better
[2012-09-15 14:49:03](Mikho^) (in english)
[2012-09-15 14:49:22](sorah) Tomorrow I'll organize try(:english), sorry may be no remaining slots
[2012-09-15 14:49:36](Mikho^) so let's go to american conferences
[2012-09-15 14:49:37](sorah) Conclusion, let's go to US confernce.
[2012-09-15 14:49:39](sorah) Thank you
[2012-09-15 15:03:14](sorah) Have a lot of time to question
[2012-09-15 15:03:14](sorah) Anyone?
[2012-09-15 15:03:14](Mikho^) thanks for the encouraging talk
[2012-09-15 15:03:14](sorah) Q. you're working on open source products, means
[2012-09-15 15:03:14](sorah) you can say "I'm nokogiri developer" or some,
[2012-09-15 15:03:14](Mikho^) what if you cannot say that
[2012-09-15 15:03:14](sorah) A. Say what's you're working on
[2012-09-15 15:03:14](Mikho^) A: I also got some uninterested reactions when I said I was working on JRuby
[2012-09-15 15:03:14](Mikho^) A: but on third time got more interested reactions
[2012-09-15 15:03:14](sorah) Anyone?
[2012-09-15 15:03:14](sorah) Q. Do you have any conference to recommend?
[2012-09-15 15:03:14](sorah) A. All conferences are good, but I recommend Railsconf
[2012-09-15 15:03:46](Mikho^) これはなんですか
[2012-09-15 15:03:54](Mikho^) これは?
[2012-09-15 15:04:31](Mikho^) 文法は言語の一部
[2012-09-15 15:04:45](Mikho^) 日本語の文法の方が簡単と思う
[2012-09-15 15:05:16](Mikho^) 英語でいくつかのやらなければならないことをいくつか日本語の場合、しなくてもいい
[2012-09-15 15:05:41](Mikho^) 日本語の文章はSOV構造
[2012-09-15 15:07:05](Mikho^) 文章を質問にするのに、言葉じゅんばんをかえなくてもいい
[2012-09-15 15:07:19](Mikho^) 英語は順番が変わる
[2012-09-15 15:08:23](Mikho^) 日本語の書き方が入門者にとって非常に目立つ
[2012-09-15 15:11:27](Mikho^) これは英語と異なっている
[2012-09-15 15:13:01](yokolet) 違う母音、違い子音
[2012-09-15 15:30:00](yokolet) 日本を旅したときに見たひらがな
[2012-09-15 15:30:00](yokolet) カタカナは違う目的でつかう
[2012-09-15 15:30:00](onodes) カタカナは直線だが,ひらがなは曲線で作られている
[2012-09-15 15:30:00](yokolet) カタカナは直線と角がひらがなより多い
[2012-09-15 15:30:00](Mikho^) 日本語では面白いと思ったことについて話します
[2012-09-15 15:48:18](Mikho^) ひらがなとかたかなは見たときに発音し方はすぐ分かることはすばらしい
[2012-09-15 15:48:18](Mikho^) 日本語は雲のようにソフトな言語だと思います
[2012-09-15 16:04:33](shyouhei) important dates
[2012-09-15 16:04:33](shyouhei) big feature freeze
[2012-09-15 16:04:33](shyouhei) is delay
[2012-09-15 16:04:33](shyouhei) release policy
[2012-09-15 16:04:33](shyouhei) not like ruby!
[2012-09-15 16:04:33](lchin) 1.9 threw away a lot of compatibility, which lead to complaints
[2012-09-15 16:04:33](shyouhei) emphasis on compatibility
[2012-09-15 16:04:33](lchin) so this time we're focusing on compatibility
[2012-09-15 16:04:33](lchin) matz is claiming 100% compatibility with 1.9.x
[2012-09-15 16:04:33](lchin) except bug compatibility ;)
[2012-09-15 16:04:33](shyouhei) 100% is theoretically impossible but we try at leasr
[2012-09-15 16:04:33](shyouhei) least
[2012-09-15 16:04:33](lchin) I'd like to introduce some of my completed work
[2012-09-15 16:04:33](shyouhei) some new features:
[2012-09-15 16:04:34](shyouhei) prepending a feature
[2012-09-15 16:04:34](shyouhei) when someone calls a method that method will be searched
[2012-09-15 16:04:34](shyouhei) and the search is done along "search path"
[2012-09-15 16:38:38](lchin) REE's EOL announcement
[2012-09-15 16:38:38](lchin) why? 2.0 is including many of REE's optimizations
[2012-09-15 16:38:38](lchin) back to the main topic
[2012-09-15 16:38:38](lchin) Writing GC in Ruby
[2012-09-15 16:38:38](shyouhei) today I talk how to write GC in ruby
[2012-09-15 16:38:38](lchin) Motivation
[2012-09-15 16:38:38](shyouhei) motivation
[2012-09-15 16:38:38](lchin) I practice RubyKaigi Driven Development
[2012-09-15 16:38:38](lchin) I've been writing new GC implementations
[2012-09-15 16:38:38](Mikho^) I couldn't guess there would be this many interested in GC
[2012-09-15 16:38:38](lchin) for every RubyKaigi
[2012-09-15 16:38:38](shyouhei) all C talks
[2012-09-15 16:38:38](lchin) surprised at the attendance!
[2012-09-15 16:38:38](shyouhei) "C should die"
[2012-09-15 16:38:38](lchin) shyouhei's article, in which he concludes "C should die"
[2012-09-15 16:38:38](shyouhei) but almost all GCs are written in C...
[2012-09-15 16:38:38](lchin) but most GCs are built in C/C__
[2012-09-15 16:38:38](lchin) C++
[2012-09-15 16:38:38](lchin) Is there any real reason for writing in C?
[2012-09-15 16:38:38](lchin) Sounds like a challenge
[2012-09-15 16:38:40](shyouhei) so I tried to write GC in ruby.
[2012-09-15 16:38:40](lchin) So, let's write a GC in ruby!
[2012-09-15 16:38:40](shyouhei) simple approach
[2012-09-15 16:38:40](lchin) Good practice of GC algorithms
[2012-09-15 16:38:40](shyouhei) good for learning GC algorithms
[2012-09-15 16:38:40](shyouhei) I did this 2 years ago
[2012-09-15 16:38:40](shyouhei) and saw no meaning
[2012-09-15 16:38:40](lchin) Diagram: 2 layered GC (Ruby layer handles objcets, C layer handles Memory)
[2012-09-15 16:38:40](shyouhei) two GC are too complicated for one language
[2012-09-15 16:38:40](lchin) however, its a waste to have 2 in a simple language
[2012-09-15 16:38:40](lchin) so thought of another approach
[2012-09-15 16:38:40](shyouhei) SICP
[2012-09-15 16:38:40](lchin) "metacircular" comes from SICP
[2012-09-15 16:39:01](shyouhei) I use RedBridge (awesome)
[2012-09-15 16:39:27](shyouhei) downside:
[2012-09-15 16:55:39](shyouhei) you need to have a real VM but I'm not interested in VM...
[2012-09-15 16:55:39](shyouhei) affected by Java's GC
[2012-09-15 16:55:39](shyouhei) What I originally wanted to do was to swap GC, but that is not yet achieved.
[2012-09-15 16:55:39](shyouhei) good part:
[2012-09-15 16:55:39](shyouhei) whole language interpreter can be designed
[2012-09-15 16:55:39](shyouhei) all necessary things are doable in ruby
[2012-09-15 16:55:39](shyouhei) comparable to other preset GCs
[2012-09-15 16:55:39](shyouhei) future:
[2012-09-15 16:55:39](shyouhei) GC is a C-written-in-Ruby
[2012-09-15 16:55:39](shyouhei) hard to debug, for instance.
[2012-09-15 16:55:39](shyouhei) GC specific mini DSL might be interesting
[2012-09-15 16:55:39](shyouhei) conclusion:
[2012-09-16 09:11:37](june29) :sushi:
[2012-09-16 09:18:56](shyouhei) 3日目のテスト
[2012-09-16 09:57:27](Alex) Please don't eat in this room.
[2012-09-16 09:57:36](Alex) Drinking is fine
[2012-09-16 09:57:57](Alex) Make sure to finish your drink or pour it out in the sink before throwing it out
[2012-09-16 09:58:09](Alex) Please take care of your own belongings
[2012-09-16 09:58:27](Alex) You may take photos, but please exercise common sense
[2012-09-16 09:58:48](Alex) Make sure to have your name tags visible at all times
[2012-09-16 09:59:17](Alex) Please make room for visitors that join later on
[2012-09-16 09:59:35](Alex) The wifi networks are freely available for use
[2012-09-16 09:59:56](Alex) however, please refrain from using data-heavy applications
[2012-09-16 10:00:03](Alex) downloads, video sites, et
[2012-09-16 10:00:33](Alex) if you find any lost belongings, bring it to the marked "lost and found"
[2012-09-16 10:00:35](june29) :octocat: :octocat: :octocat: :octocat: :octocat:
[2012-09-16 10:00:40](shyouhei) ================
[2012-09-16 10:00:42](shyouhei) "What We Talk About When We Talk About Code" by Jonathan Mukai-Heidt
[2012-09-16 10:01:23](shyouhei) ================
[2012-09-16 10:01:34](Alex) If you feel ill or tired, please talk to one of the staff members for assistance
[2012-09-16 10:01:49](Alex) You may also use the lobby
[2012-09-16 10:01:55](shyouhei) ================
[2012-09-16 10:05:27](shyouhei) 日本語ここまで
[2012-09-16 10:05:34](shyouhei) で
[2012-09-16 10:05:36](shyouhei) 十件です
[2012-09-16 10:05:42](shyouhei) 実験
[2012-09-16 10:05:59](Alex) 人類学を勉強してきましたが
[2012-09-16 10:06:35](Alex) もし人類学者がプログラマーを研究したらどうなるか
[2012-09-16 10:06:42](shyouhei) まず、人類学とは
[2012-09-16 10:07:10](Alex) そしてなぜプログラマーに人類学が関係あるか
[2012-09-16 10:07:12](shyouhei) そして人類学から見たコードとは
[2012-09-16 10:07:27](shyouhei) 人類学はカルチャーを研究する学門ですが
[2012-09-16 10:07:32](shyouhei) そもそもカルチャーって何よ
[2012-09-16 10:07:49](Alex) 英語では文化という単語に込めた意味とは
[2012-09-16 10:07:57](Alex) 人と人の違い
[2012-09-16 10:08:06](shyouhei) タイラーによる
[2012-09-16 10:08:50](shyouhei) 「社会」の一員が持つさまざまな知識や信仰…
[2012-09-16 10:08:56](Alex) とにかくあまり深く考えないように
[2012-09-16 10:09:03](Alex) 社会とか
[2012-09-16 10:09:18](shyouhei) 文化とはわれらのコンテクストだと
[2012-09-16 10:09:39](shyouhei) プログラマにとってコンテクストが重要なのは
[2012-09-16 10:09:41](Alex) ツールも違えばアプローチも違う
[2012-09-16 10:09:42](shyouhei) あきらかですよね
[2012-09-16 10:09:59](shyouhei) 「JavaScriptで書けるアプリケーションというものは、たまたまJavaScriptで書けるというものだろう」
[2012-09-16 10:10:11](shyouhei) コンテクストの一面をよくあらわしています
[2012-09-16 10:10:51](Alex) コンテキストは世界観をカエル
[2012-09-16 10:10:55](Alex) w
[2012-09-16 10:11:30](shyouhei) 世界をどのように需要したかがコンテキスト
[2012-09-16 10:11:35](shyouhei) 受容
[2012-09-16 10:11:38](Alex) ロシア語には同じ青でも違う「青」がある
[2012-09-16 10:11:59](Alex) 身体にまで影響する
[2012-09-16 10:12:08](shyouhei) WW1
[2012-09-16 10:12:48](shyouhei) フランスと英国の軍隊は一緒に行進できなかった
[2012-09-16 10:12:55](shyouhei) 歩き方が違いすぎるので
[2012-09-16 10:13:18](Alex) 人は自分のコンテキストをつくる
[2012-09-16 10:13:26](shyouhei) 文化とは、コンテキストとは、人々のこと(この点には後でまた戻ってくる)
[2012-09-16 10:13:27](Alex) ついてきてね
[2012-09-16 10:13:57](shyouhei) コンテキストは我々を形作るが我々もコンテキストを形作っている
[2012-09-16 10:14:08](shyouhei) そこで、Rubyの場合ですが
[2012-09-16 10:14:12](shyouhei) Rubyとは何か
[2012-09-16 10:14:53](Alex) Rubyでプログラムを書くからRubyがある
[2012-09-16 10:15:09](shyouhei) プログラムがRubyでかかれているからRubyがある
[2012-09-16 10:15:12](Alex) 話す言葉と同じ
[2012-09-16 10:15:26](shyouhei) 仕様の問題じゃない
[2012-09-16 10:16:24](Alex) コードと文化の似ているところ
[2012-09-16 10:16:41](Alex) コードは文化の一種
[2012-09-16 10:16:47](shyouhei) コードはコンテキストを形に落としているわけで
[2012-09-16 10:17:03](shyouhei) ハイレベルでは言語とかシステムとか
[2012-09-16 10:17:17](shyouhei) 低レベルではサブルーチンとか
[2012-09-16 10:17:25](shyouhei) コードには歴史があり、
[2012-09-16 10:17:36](shyouhei) たとえば初心者に教えようとすると
[2012-09-16 10:18:02](Alex) プログラマーのための仕組みなどがたくさん入っている
[2012-09-16 10:18:09](shyouhei) 我々はもう長らくRubyで考えているので
[2012-09-16 10:18:25](shyouhei) 自然に思えるものも
[2012-09-16 10:18:32](shyouhei) 初心者にとってはそうではないですね
[2012-09-16 10:19:08](Alex) 脳とPCの橋
[2012-09-16 10:19:16](shyouhei) 一人じゃなくてコードをかいていれば
[2012-09-16 10:19:16](Alex) 人と人の橋
[2012-09-16 10:19:48](Alex) プログラマーとエンドユーザとの橋
[2012-09-16 10:20:04](shyouhei) コードはコンピュータにたいする指示というより、コミュニケーションの道具であることがわかるでしょう
[2012-09-16 10:21:05](shyouhei) …といった理由で人類学者がコードを語るわけです
[2012-09-16 10:21:43](shyouhei) 私たちは言語を選びますね、これは明示的に選択ですが
[2012-09-16 10:21:44](Alex) 言語を選びますし、使い方も選ぶ
[2012-09-16 10:21:53](shyouhei) その言語でなにをするかも選んでいる
[2012-09-16 10:22:55](Alex) コンセプトに名前を与えると物として捉えられる
[2012-09-16 10:23:07](shyouhei) 我々が文化を作っていることを思い出すと
[2012-09-16 10:23:26](shyouhei) 人類学者は何を見いだしたの?または「コード」について話すとき、本当は何を話しているの?
[2012-09-16 10:23:32](Alex) 真ん中の人です
[2012-09-16 10:23:35](shyouhei) ブロニスラウ・マリノウスキ
[2012-09-16 10:23:40](shyouhei) オーストリア人
[2012-09-16 10:24:00](shyouhei) トロブリアンド諸島でフィールドワークをした人
[2012-09-16 10:24:10](Alex) 以前では、いきなり村に入って
[2012-09-16 10:24:28](Alex) この人とあなたの関係は?と聞いてチャートを作った
[2012-09-16 10:24:33](shyouhei) 以前はききとり調査が主体だったところを
[2012-09-16 10:24:42](shyouhei) 実際に現地で住んでみるという調査方法を
[2012-09-16 10:24:47](shyouhei) はじめてやった人
[2012-09-16 10:25:14](shyouhei) Kula貿易
[2012-09-16 10:25:26](shyouhei) という文化がトロブリアンド諸島にあって
[2012-09-16 10:25:44](shyouhei) (wikipeよんでね)
[2012-09-16 10:26:15](shyouhei) 交易なんだけど、儀式的というか
[2012-09-16 10:26:33](shyouhei) コードの話に戻ると
[2012-09-16 10:26:44](Alex) 自分の価値観を伝える
[2012-09-16 10:27:14](Alex) コードは大事じゃない
[2012-09-16 10:27:15](shyouhei) 我々の価値は、コミュニティで共有して、それが文化を作り
[2012-09-16 10:27:21](Alex) コンテキストが大事
[2012-09-16 10:27:42](Alex) コードは今、人は永久
[2012-09-16 10:28:09](Alex) 3, 4 min
[2012-09-16 10:28:28](Alex) 面白いですね
[2012-09-16 10:29:04](Alex) なぜプログラマになったか
[2012-09-16 10:29:15](Alex) 学校に入る前にやってました
[2012-09-16 10:29:29](Alex) コード書くのが好きです
[2012-09-16 10:30:04](Alex) 卒論になるんですか?
[2012-09-16 10:30:17](shyouhei) Q. コミュニティのなかの権力機構について調査したことは?
[2012-09-16 10:30:17](shyouhei) A. 興味深いとは思っているがやったことはない
[2012-09-16 10:30:28](shyouhei) Q. いつからプログラマに転向したの?
[2012-09-16 10:30:46](shyouhei) A. 最初からプログラマで、おもしろそうだから人類学を勉強した
[2012-09-16 10:32:51](shyouhei) ================
[2012-09-16 10:32:52](shyouhei) "The First Cut is Deepest" by Linda Liukas and Terence Lee
[2012-09-16 10:33:41](Alex) 初心者の気持ちを伝えます
[2012-09-16 10:34:13](shyouhei) これ全部フィンランド製
[2012-09-16 10:34:16](Alex) 全部男性が作ったもの
[2012-09-16 10:34:38](Alex) 12歳からコードはじめた
[2012-09-16 10:35:08](Alex) 若い女性こそ一番ネットに強いグループ
[2012-09-16 10:35:35](Alex) コンテンツを作るより評価させている
[2012-09-16 10:35:41](shyouhei) 初心者はキュレーターにはなれるんだけど
[2012-09-16 10:35:52](Alex) 最初は国際的になるとは
[2012-09-16 10:36:00](shyouhei) そこでRailsGirlsを始めた
[2012-09-16 10:36:14](Alex) 今週だけでも
[2012-09-16 10:36:24](Alex) 4都市同時に
[2012-09-16 10:37:02](Alex) イベントのやり方すべてを提案している
[2012-09-16 10:37:05](shyouhei) スポンサーの探し方からはじめて詳細な
[2012-09-16 10:37:21](Alex) こういうものを作ります
[2012-09-16 10:37:57](Alex) 同じシンプルなアップでも個性を与えてた
[2012-09-16 10:38:15](Alex) 略語とかが多すぎるので
[2012-09-16 10:38:19](shyouhei) 省略多すぎて初心者には辛い
[2012-09-16 10:38:22](shyouhei) のでbento box
[2012-09-16 10:38:31](Alex) 必要なものだけ
[2012-09-16 10:38:56](shyouhei) 必要なものをはじめからリストアップしておいて、
[2012-09-16 10:39:07](yokolet) このような台紙に用語をこのように分類します。
[2012-09-16 10:39:07](shyouhei) はこにつめていく
[2012-09-16 10:39:50](yokolet) ほとんどの人は「あ〜」と思います。
[2012-09-16 10:39:57](Alex) つまりこういうことがいいたいんだと
[2012-09-16 10:40:20](Alex) 最後のこういうクイズを与えます
[2012-09-16 10:40:37](yokolet) ほとんどの人はまったく始めて聞く言葉です。
[2012-09-16 10:40:54](shyouhei) nginxはinfraなのね!って分かればいいのであって、nginxの詳細とかとりあえずしらなくてOK
[2012-09-16 10:41:43](Alex) あなたの経験について
[2012-09-16 10:41:58](yokolet) コーチをした経験を話してください
[2012-09-16 10:42:04](shyouhei) ここからはコミュニティの側から見た初心者を受容することについて
[2012-09-16 10:42:20](Alex) 覚え損ねること
[2012-09-16 10:42:23](shyouhei) 初心者だったころの
[2012-09-16 10:42:29](shyouhei) 思い
[2012-09-16 10:42:34](shyouhei) とかあまり覚えてない
[2012-09-16 10:43:07](shyouhei) ので初心者とふれあうのがeye-opening
[2012-09-16 10:43:17](Alex) おすすめです
[2012-09-16 10:43:23](yokolet) 5つのRails Girlsイベントにいきました
[2012-09-16 10:43:29](Alex) 初日はインストールフェスタ
[2012-09-16 10:43:47](yokolet) いろいろなPCが持ち込まれます
[2012-09-16 10:43:49](shyouhei) windowsとかめちゃ古いmacとか
[2012-09-16 10:44:02](shyouhei) で、railsをセットアップしないと
[2012-09-16 10:44:35](shyouhei) 古いOSXでRailsをセットアップするのは思いのほか難しい
[2012-09-16 10:44:41](shyouhei) (拡張ライブラリとか)
[2012-09-16 10:44:48](shyouhei) tokaido
[2012-09-16 10:44:51](Alex) だれか教えてくれないと初心者はあきらめかねない
[2012-09-16 10:44:56](shyouhei) 配布セット
[2012-09-16 10:45:02](yokolet) Rails Girls は Tokaidoを使って環境をインストールします
[2012-09-16 10:45:11](shyouhei) コンパイル済みのRubyとか一式
[2012-09-16 10:45:36](shyouhei) gemとか。
[2012-09-16 10:46:10](Alex) インストールに必要な知識を最小限に
[2012-09-16 10:46:43](yokolet) Rails GirlsやRais Bridgeはそのようにして環境をインストールしています
[2012-09-16 10:46:59](Alex) G+に載ってます
[2012-09-16 10:48:04](Alex) プログラミングの生徒だけでなくただプログラミングを習いたい人
[2012-09-16 10:48:17](shyouhei) 対象者
[2012-09-16 10:48:18](yokolet) dependencyを心配する必要はありません
[2012-09-16 10:48:22](Alex) 言語を取得することに専念できる
[2012-09-16 10:48:43](Alex) 無駄な時間を省く
[2012-09-16 10:48:51](yokolet) インストールのために時間を無駄にしたくありません
[2012-09-16 10:48:55](shyouhei) (教えるほうにも利点があるのは重要ですよね実際。)
[2012-09-16 10:49:16](Alex) よくみることは
[2012-09-16 10:49:18](shyouhei) Railsのエラー
[2012-09-16 10:49:23](shyouhei) わからん。
[2012-09-16 10:49:41](Alex) ガイドの通りに進みながらエラーにぶつかる
[2012-09-16 10:49:50](shyouhei) どう対処していいかわからない
[2012-09-16 10:50:05](Alex) エラーメッセージが不透明
[2012-09-16 10:50:29](Alex) 同僚が作ってくれたパッチ
[2012-09-16 10:50:42](shyouhei) pending migrationは何がいけないのか分かる
[2012-09-16 10:50:47](Alex) ユーザを誘導してくれる
[2012-09-16 10:50:48](shyouhei) よいメッセージ
[2012-09-16 10:50:49](yokolet) エラーがでたときのインストラクション
[2012-09-16 10:51:18](Alex) 塵を積もれば・・・
[2012-09-16 10:52:04](Alex) 小さな問題が初心者のやる気を少しづつ削っていく
[2012-09-16 10:52:40](Alex) そしてどうやってコミュニティーに入っていけるかを教えます
[2012-09-16 10:52:57](yokolet) 新しいプロジェクト
[2012-09-16 10:53:01](shyouhei) markdownファイル
[2012-09-16 10:53:18](shyouhei) を、プロジェクトに置きましょうというプロジェクト
[2012-09-16 10:53:36](Alex) 初心者にもできることがある
[2012-09-16 10:53:47](shyouhei) ビギナーがどこから手をつけていいかを書いておく
[2012-09-16 10:54:02](shyouhei) ガイドライン
[2012-09-16 10:54:12](Alex) 入るハードルを下げる
[2012-09-16 10:55:38](Alex) まとめると
[2012-09-16 10:55:56](yokolet) 多様化は重要
[2012-09-16 10:56:36](Alex) 開発者でない私たちがはじめたプロジェクトだからこそユニーク
[2012-09-16 11:05:27](shyouhei) Q. 他のイベントとコラボしたりしますか
[2012-09-16 11:06:14](shyouhei) A. 社内の人にも声はかけたんだけど、私たちの対象はスーパービギナーなので対象がそこまでかぶらないんだよね
[2012-09-16 11:06:51](shyouhei) Q. RailsGirlsSapporoがやりたくなったのですが
[2012-09-16 11:07:19](shyouhei) A. LindaかYokoに声をかけてください
[2012-09-16 11:07:36](shyouhei) Q. 東京で教える側がたりないのですが
[2012-09-16 11:08:30](shyouhei) A. MLとかでよびかけるとか、あと他のイベントに日程をぶつけると、教える側はついでに集まってくれたりする
[2012-09-16 13:50:34](soraher) hello
[2012-09-16 13:50:53](sorah) hello
[2012-09-16 13:51:16](sorah) Hello everyone
[2012-09-16 13:51:27](sorah) Did you have a lunch?
[2012-09-16 13:51:48](sorah) I'm @kei_s
[2012-09-16 13:51:54](sorah) born in Sapporo!
[2012-09-16 13:52:06](sorah) I'll talk about web app development
[2012-09-16 13:52:18](sorah) built e-commerce service in 3 months with Spree
[2012-09-16 13:52:27](sorah) developing OhMyGlasses
[2012-09-16 13:52:36](sorah) selling Glasses
[2012-09-16 13:52:41](sorah) coupon code: sprk2012
[2012-09-16 13:52:45](sorah) This is not my KPI
[2012-09-16 13:53:31](sorah) surprised to many people
[2012-09-16 13:53:43](sorah) This is still startup, 4 members
[2012-09-16 13:53:50](sorah) twice on TV
[2012-09-16 13:54:06](sorah) in closed beta, PHP + Magento (e-commerce framework)
[2012-09-16 13:54:17](sorah) No engineers
[2012-09-16 13:54:46](pwim_) Our core question
[2012-09-16 13:54:47](sorah) Lean startup, as mentioned day-1 sponsor talk by COOKPAD
[2012-09-16 13:55:09](sorah) to check able to sell glasses on the web
[2012-09-16 13:55:10](pwim_) Where are we going to get customers?
[2012-09-16 13:55:28](sorah) I think no problem at having no engineers
[2012-09-16 13:56:23](pwim) i think people who have read both of these can understand this concept
[2012-09-16 13:56:26](pwim) lean: business
[2012-09-16 13:56:34](pwim) agile samurai: development
[2012-09-16 13:56:39](pwim) so its good to read both
[2012-09-16 13:56:42](sorah) Lean Startup focuses management, Agile Samurai focus on engineer side
[2012-09-16 13:56:59](sorah) when I joined
[2012-09-16 13:57:15](sorah) I have to choose: continue with PHP framework, rewrite with Rails
[2012-09-16 13:57:17](sorah) I found Spree
[2012-09-16 13:57:21](pwim) this is a sample site
[2012-09-16 13:57:33](sorah) plugin to built e-commerce site with Rails
[2012-09-16 13:57:34](pwim) so you can add to cart and check out
[2012-09-16 13:57:41](sorah) management console is also available
[2012-09-16 13:57:41](pwim) this is built in
[2012-09-16 13:57:48](sorah) at out of the box
[2012-09-16 13:57:58](sorah) -- Why Ruby/Rails
[2012-09-16 13:58:35](sorah) I like ruby, and I can run iteration faster with ruby
[2012-09-16 13:58:51](sorah) first experience at E-commerce
[2012-09-16 13:58:57](pwim) i was worried about checkout experience
[2012-09-16 13:59:04](sorah) I was careful for cart & order management
[2012-09-16 13:59:07](pwim) if i got that wrong, the service would fail
[2012-09-16 13:59:12](sorah) Spree helped me
[2012-09-16 13:59:24](sorah) Standing on the sholders of giant
[2012-09-16 13:59:39](sorah) Goal: success of our sice
[2012-09-16 13:59:40](sorah) site
[2012-09-16 13:59:42](pwim) you can make everything yourself, but it is better if you can leverage existing solutions
[2012-09-16 13:59:55](sorah) we don't have reimplement
[2012-09-16 14:00:07](pwim) a bit about that giant
[2012-09-16 14:00:11](sorah) use already developed useful thing
[2012-09-16 14:00:32](pwim) spree uses rails engines
[2012-09-16 14:00:45](pwim) api promo etc are different engines
[2012-09-16 14:00:45](sorah) works on Rails' engine (remember a_matsuda mentioned yesterday?)
[2012-09-16 14:00:56](pwim) the blue part is spree
[2012-09-16 14:01:01](pwim) these are what i chose to use
[2012-09-16 14:01:15](sorah) choose features (you can choose like without api, dashboard, etc)
[2012-09-16 14:01:27](pwim) spree also uses a bunch of gems
[2012-09-16 14:01:36](sorah) This is Spree model diagram
[2012-09-16 14:01:58](pwim) these are the main models
[2012-09-16 14:02:00](sorah) almost groupable by User, Cart & Payment, Product
[2012-09-16 14:02:22](pwim) i wont talk in detail about it
[2012-09-16 14:02:40](sorah) Know the detail of giants is important to build site
[2012-09-16 14:02:50](sorah) (In this case giant = spree)
[2012-09-16 14:03:01](sorah) No explain of code in document
[2012-09-16 14:03:11](sorah) only usage is in doc
[2012-09-16 14:03:14](sorah) Tips of reading code
[2012-09-16 14:03:15](pwim) how to use it is well documented, but not an explanation of how it actually works
[2012-09-16 14:03:33](sorah) write debug code (like kernel#p) in the gem
[2012-09-16 14:03:47](sorah) this is a method in spree,
[2012-09-16 14:04:01](sorah) what's variable source and reponse?
[2012-09-16 14:04:05](sorah) esminc/tapp
[2012-09-16 14:04:13](sorah) Object#tapp
[2012-09-16 14:04:18](sorah) tap {|x| p(x) }
[2012-09-16 14:05:03](sorah) And finally I know what these objects are
[2012-09-16 14:05:25](pwim) i worried about staying focused
[2012-09-16 14:05:26](ursm) https://github.com/esminc/tapp
[2012-09-16 14:05:32](sorah) moving from PHP
[2012-09-16 14:05:40](pwim) the php system was working
[2012-09-16 14:06:11](sorah) Focused on implement same features in Ruby, we implemented with PHP
[2012-09-16 14:06:35](sorah) This is lens selection of my site,
[2012-09-16 14:07:08](pwim) three options: lens, sunglass lens, just frame
[2012-09-16 14:07:26](sorah) then, app will put selected glass into user's cart
[2012-09-16 14:07:38](sorah) we have to insert additinal step before add product in cart,
[2012-09-16 14:08:20](sorah) we implemented when Spree is 1.1.x, but it's more easier at Spree 1.2, so skip talking about
[2012-09-16 14:08:30](pwim) order is the cart object
[2012-09-16 14:08:41](pwim) line_items are product in the cart
[2012-09-16 14:08:57](sorah) Order must have adjustment
[2012-09-16 14:09:00](sorah) veach
[2012-09-16 14:09:10](pwim) adjustments are stuff like shipping or coupon
[2012-09-16 14:09:13](sorah) Shipping, Taxes, Coupons
[2012-09-16 14:09:19](sorah) shipping cost
[2012-09-16 14:09:29](sorah) this is spree's feature
[2012-09-16 14:09:34](pwim) so we wanted to add a lens adjustment
[2012-09-16 14:09:46](sorah) and we want add lens adjustment cost, so we added
[2012-09-16 14:10:05](sorah) (Sorry, "added lens cost as adjustment" is correct)
[2012-09-16 14:10:23](sorah) Ride on exists feature (in this case, adjustment feature of Spree)
[2012-09-16 14:11:01](sorah) Inspect to used libraries (giant) is important, you will know useful hidden features
[2012-09-16 14:11:15](sorah) Finally we've re written with Rails
[2012-09-16 14:11:42](sorah) Spree: Good at cart/payment
[2012-09-16 14:11:58](sorah) I think Product model should be optional
[2012-09-16 14:12:28](sorah) because "product" will change by users' product. I have some troubles around that……
[2012-09-16 14:12:35](pwim) admin is easy to use by non-engineers
[2012-09-16 14:12:44](sorah) Nice admin interface in out of the box
[2012-09-16 14:12:59](pwim) i think an admin interface is important for any application, even if not beautiful
[2012-09-16 14:13:14](sorah) Goal: Selling glasses with happiness
[2012-09-16 14:13:20](sorah) Simple.
[2012-09-16 14:13:40](sorah) In the startup, have a lot of todos
[2012-09-16 14:13:43](pwim) better than building an ad supported site because you don't need to get in your users way
[2012-09-16 14:14:09](sorah) Choosing my way by myself is great
[2012-09-16 14:14:14](sorah) Conclution
[2012-09-16 14:14:23](sorah) (my way = where I should do)
[2012-09-16 14:14:41](sorah) giants = Ruby, Rails, Spree
[2012-09-16 14:14:49](sorah) Know the giants
[2012-09-16 14:15:22](sorah) We can't do many things at once, so focusing on right things what we should do is important
[2012-09-16 14:15:24](sorah) thank you
[2012-09-16 14:15:27](sorah) Questions?
[2012-09-16 14:15:53](sorah) Q. Framework on Rails, How about testing?
[2012-09-16 14:16:15](sorah) A. Hard to test, I don't know all what's happening in models
[2012-09-16 14:16:18](sorah) A. Use integration test
[2012-09-16 14:16:36](sorah) Anyone?
[2012-09-16 14:16:53](sorah) Q. How about working with Designers
[2012-09-16 14:17:08](sorah) A. our designer machida-san, in front of you
[2012-09-16 14:17:18](sorah) A. Know the technologies about rails
[2012-09-16 14:17:41](sorah) A. He writes and knows Haml, commit directly, use pull request
[2012-09-16 14:17:47](sorah)
[2012-09-16 14:18:04](sorah) Q. Spree, how about its performance
[2012-09-16 14:18:33](sorah) A. This is just rails app, We're using AWS.
[2012-09-16 14:18:47](sorah) A. Currently bottleneck parts are developed by us
[2012-09-16 14:18:51](sorah)
[2012-09-16 14:19:36](sorah) Q. Will Spree become a bottleneck of development? May takes cost?
[2012-09-16 14:19:47](sorah) A. Exactly right,
[2012-09-16 14:19:56](sorah) A. Sometimes Spree takes too cost
[2012-09-16 14:20:12](sorah) A. But, we have to fix
[2012-09-16 14:20:42](sorah) A. We're leaving from Spree at some features, about Product (as I mentioned at slide
[2012-09-16 14:20:47](sorah) Thank you!
[2012-09-16 14:20:49](sorah) ----
[2012-09-16 14:20:55](sorah) 10 minutes to break
[2012-09-16 14:21:09](sorah) kakutani's session starts at 2:30pm
[2012-09-16 14:21:48](sorah) Please come nearly of screen
[2012-09-16 14:30:17](sorah) ---
[2012-09-16 14:30:19](sorah) Starttting
[2012-09-16 14:30:24](sorah) やあおまえら
[2012-09-16 14:30:28](sorah) returning Japanese
[2012-09-16 14:30:48](shyouhei) first I introduce
[2012-09-16 14:30:51](sorah) Good article at report on gihyo
[2012-09-16 14:30:57](sorah) Great introduce of me
[2012-09-16 14:31:23](shyouhei) DCI complements MVC
[2012-09-16 14:32:09](sorah) I'll talk as same as this.
[2012-09-16 14:32:33](sorah) アジャイルサムライのほんやくに関わりました
[2012-09-16 14:32:44](sorah) 原作者はさむらいに
[2012-09-16 14:32:57](shyouhei) to Hokkaido people,
[2012-09-16 14:33:16](sorah) I'll hold class of agile development
[2012-09-16 14:33:29](shyouhei) Agile training
[2012-09-16 14:33:31](sorah) Pricing: Feee!
[2012-09-16 14:33:37](sorah) Free
[2012-09-16 14:34:11](shyouhei) GOOS translated into Japanese
[2012-09-16 14:34:19](sorah) That's preface
[2012-09-16 14:34:38](sorah) my recommendation comment included
[2012-09-16 14:34:43](Alex) Please buy this book here
[2012-09-16 14:34:46](shyouhei) fairly good book
[2012-09-16 14:35:02](sorah) I wanna talk about that, but I talk same as gihyo report
[2012-09-16 14:35:33](shyouhei) esm develops ohmsha's web comerce site
[2012-09-16 14:35:42](sorah) working on Ohmsha's ebook site, the site selling cosplay book and excel book and so on, you can learn many things by this site
[2012-09-16 14:35:51](shyouhei) about coderwall
[2012-09-16 14:36:13](sorah) COOKPAD is 20th, top in Japanese company
[2012-09-16 14:36:23](sorah) ESM is 40th
[2012-09-16 14:36:33](sorah) We're hiring
[2012-09-16 14:36:38](shyouhei) many esm people here today
[2012-09-16 14:36:46](shyouhei) pleas ask
[2012-09-16 14:37:01](shyouhei) and also a ruby-no-kai member.
[2012-09-16 14:37:27](shyouhei) kakutani organizes THE rubykaigi
[2012-09-16 14:37:27](sorah) I reboot rubykaigi
[2012-09-16 14:37:43](sorah) May 30 - June 1 2013, in Tokyo
[2012-09-16 14:37:46](shyouhei) ----
[2012-09-16 14:37:52](shyouhei) DCI
[2012-09-16 14:38:02](shyouhei) J.Coplien
[2012-09-16 14:38:20](shyouhei) J.Coplien taught kakuani about DCI
[2012-09-16 14:38:31](sorah) I wanna introduce DCI to Japanese people, so I'm talking this in Japanese
[2012-09-16 14:38:54](shyouhei) many DCI resources are already there on the web
[2012-09-16 14:40:27](sorah) DCI's simple introduction is available on rubysource
[2012-09-16 14:40:32](sorah) dci-in-ruby.info
[2012-09-16 14:41:31](sorah) I don't write and talk about code because I don't code so many
[2012-09-16 14:42:18](Alex) Where is Software?
[2012-09-16 14:42:42](sorah) Code?
[2012-09-16 14:42:58](sorah) Specification written in Excel isn't software of course,
[2012-09-16 14:43:01](Alex) software is in your head
[2012-09-16 14:43:01](shyouhei) main question: "where is a software? in code? in Excel worksheet?"
[2012-09-16 14:43:23](shyouhei) software should be in a user minf
[2012-09-16 14:43:26](shyouhei) mind
[2012-09-16 14:43:50](sorah) represent users' mind as code
[2012-09-16 14:44:25](Alex) improve it little by little
[2012-09-16 14:44:28](shyouhei) a code is a realization of how a user accepts a software.
[2012-09-16 14:44:35](sorah) run the cycle to grow up the software: use → develop → use …
[2012-09-16 14:44:46](sorah) little by little
[2012-09-16 14:45:32](Alex) First you create it in your mind, then make something concrete, use it, and understand and improve it from there
[2012-09-16 14:46:41](sorah) TDD
[2012-09-16 14:46:47](shyouhei) the iterative process is nothing different from agile process
[2012-09-16 14:47:24](shyouhei) tests are mandatory to check if the code fits user's mind
[2012-09-16 14:48:21](Alex) Properly named code put in a proper place
[2012-09-16 14:49:16](shyouhei) (so whats DCI in short? i'm not still sure)
[2012-09-16 14:49:33](sorah) Returning back to the report, what I talk next…
[2012-09-16 14:49:41](sorah) Rails!
[2012-09-16 14:50:01](sorah) Rails is MVC framework
[2012-09-16 14:50:06](sorah) described at rails guide
[2012-09-16 14:50:53](Alex) http - send text to server, get text back
[2012-09-16 14:51:00](Alex) change that text into Ruby objects
[2012-09-16 14:52:21](shyouhei) MVC won't save your application itself. it's just a framwwork.
[2012-09-16 14:52:35](Alex) what you do from there is up to you
[2012-09-16 14:52:49](sorah) recap common pitfalls of Rails app as @ursm talked yesterday
[2012-09-16 14:53:16](sorah) Summary of the talk, I'll talk about "too fat to be a model"
[2012-09-16 14:53:26](sorah) too fat Model can't be a Model
[2012-09-16 14:53:31](sorah) 500 lines
[2012-09-16 14:53:40](sorah) v over
[2012-09-16 14:53:42](shyouhei) hundreds of lines of model
[2012-09-16 14:53:50](shyouhei) is it properly modeled?
[2012-09-16 14:54:05](sorah) So, DCI
[2012-09-16 14:54:10](sorah) Data-Context-Interaction
[2012-09-16 14:54:22](Alex) how to make your own application
[2012-09-16 14:54:23](shyouhei) is how to design an application
[2012-09-16 14:54:52](sorah) Data is data like in DB
[2012-09-16 14:56:23](shyouhei) DCI isn't that complicated.
[2012-09-16 14:56:37](shyouhei) split MVC'c M into context/data/role.
[2012-09-16 14:56:56](shyouhei) quite rough description though
[2012-09-16 14:57:26](sorah) check yesterday's @ursm talk for example
[2012-09-16 14:57:46](sorah) this is QA@IT, our site
[2012-09-16 14:57:52](sorah) no time
[2012-09-16 14:58:03](sorah) 3minutes left
[2012-09-16 14:59:39](sorah) get object, and pass to activity
[2012-09-16 14:59:49](sorah) controller does nothing, activity does
[2012-09-16 15:03:30](sorah) thank you
[2012-09-16 15:03:45](sorah) no time to question, let's ask directly
[2012-09-16 15:07:36](sorah) -------------------
[2012-09-16 15:11:59](Alex) 2次会に行った人
[2012-09-16 15:12:12](Alex) OOPはいいことです
[2012-09-16 15:13:35](Alex) 問題はRailsだとdependencyが多すぎるクラスを作りがち
[2012-09-16 15:13:53](chibicode) 「railsは
[2012-09-16 15:14:08](chibicode) decoupledなアプリケーションをつくることを推奨してないから」
[2012-09-16 15:14:40](Alex) リファクタリングを推進しています
[2012-09-16 15:15:04](chibicode) タオルを肩にかけることは日本では格好いいらしいですね
[2012-09-16 15:15:05](Alex) こういうのが流行りでしょう
[2012-09-16 15:15:11](sorah) なんかこういう風にするのはやってるよね(タオルを肩にしながら
[2012-09-16 15:15:18](sorah) (たぶん万葉手ぬぐいですかね)
[2012-09-16 15:15:45](chibicode) まずデータベースの話
[2012-09-16 15:15:51](Alex) まずはpersistance layer
[2012-09-16 15:16:05](chibicode) Railsはビジネスロジックと永続性を一緒にしている
[2012-09-16 15:16:39](Alex) なんか飲むか、Steve?
[2012-09-16 15:16:43](Alex) いいね
[2012-09-16 15:17:13](Alex) plain old Ruby object
[2012-09-16 15:17:14](chibicode) こういうの作るのにはまずRailsプログラマーはデータベースからはじめる
[2012-09-16 15:17:30](chibicode) しかしデータベースまでいきなりいくひつようはない
[2012-09-16 15:17:44](chibicode) ただのRubyオブジェクトで充分、OpenStructとかで
[2012-09-16 15:17:50](chibicode) まかなえる
[2012-09-16 15:18:17](sorah) このリモコンタイマーとかレーザーポインタついてて超便利、おすすめ!
[2012-09-16 15:18:42](sorah) Cowboy クラスにsayメソッドを実装
[2012-09-16 15:18:55](sorah) Messageオブジェクトを作る、ただメッセージの中身をとっておくだけ
[2012-09-16 15:19:06](sorah) 返信
[2012-09-16 15:19:11](sorah) respondメソッドを実装
[2012-09-16 15:19:12](Alex) 返信も同じく
[2012-09-16 15:19:24](sorah) こんどはResponseオブジェクト
[2012-09-16 15:19:36](sorah) Response は Messageを継承
[2012-09-16 15:20:01](chibicode) モデルやコントローラをつかわずに問題を解決した
[2012-09-16 15:20:08](chibicode) テストもマイクロ秒で走る
[2012-09-16 15:20:52](chibicode) 次はView
[2012-09-16 15:21:31](chibicode) Jimは左、Steveは右
[2012-09-16 15:21:37](chibicode) UIはこんなかんじ
[2012-09-16 15:21:57](chibicode) UIには「これに対する返信…」というのも表示
[2012-09-16 15:22:33](chibicode) 返信してなかったらフォームを表示、返信したら返信を表示
[2012-09-16 15:22:49](Alex) partialを使うよりはViewComponentにしよう
[2012-09-16 15:23:38](chibicode) View Inheritanceをつかう
[2012-09-16 15:23:38](Alex) View継承
[2012-09-16 15:23:46](chibicode) RailsがCellsから盗んだ
[2012-09-16 15:24:13](chibicode) まずchildディレクトリを探し、mommyを探す
[2012-09-16 15:24:25](chibicode) (継承における親のディレクトリ)
[2012-09-16 15:24:28](Alex) 新しいviewを作る
[2012-09-16 15:25:42](chibicode) 喉がかわいた、きのう飲み過ぎた
[2012-09-16 15:25:50](Alex) 昨日はちょっと飲み過ぎた
[2012-09-16 15:26:02](Alex) 最初
[2012-09-16 15:26:22](Alex) キャッシュヘルパー
[2012-09-16 15:26:24](chibicode) ふつうはcacheヘルパーをつかいますが、これは気に入らない
[2012-09-16 15:26:35](chibicode) Viewはキャッシュのことを考えるべきではない
[2012-09-16 15:26:35](Alex) キャッシュはViewの仕事じゃない
[2012-09-16 15:26:49](chibicode) cellがやる。messageがkeyとなる
[2012-09-16 15:26:53](chibicode) unit testも簡単
[2012-09-16 15:27:21](chibicode) Cellは1つのコントローラがすべてのpageをレンダリングするのではなく
[2012-09-16 15:27:34](chibicode) 1つのViewのなかにたくさんのミニコントローラーをつくる
[2012-09-16 15:27:48](chibicode) 残り5分?なんとかなるさ
[2012-09-16 15:27:55](Alex) コントローラーの話
[2012-09-16 15:28:04](Alex) UIを見せるため
[2012-09-16 15:28:17](Alex) RESTAPIを作ろう
[2012-09-16 15:28:35](chibicode) あたらしいRESTの仕様でLinksをつかう
[2012-09-16 15:28:43](Alex) もう少しチャレンジして、JSONにURLを入れる
[2012-09-16 15:29:24](chibicode) JSON APIを作るライブラリはよくつかわれるが、私はこれはtemplateとおなじだとおもう
[2012-09-16 15:29:29](Alex) ドキュメントをレンダリングする
[2012-09-16 15:29:44](chibicode) Representerはもうすこし踏み込む
[2012-09-16 15:30:01](chibicode) モデルとJSONの間に入る
[2012-09-16 15:30:02](Alex) to_jsonはRepresenterから
[2012-09-16 15:30:18](Alex) 新しいメッセージを生成して
[2012-09-16 15:30:24](chibicode) Jsonのパージングもおなじようにできる
[2012-09-16 15:30:43](chibicode) Modelをかこむ
[2012-09-16 15:30:56](Alex) xmlもyamlもサポートしてます
[2012-09-16 15:31:20](chibicode) Modelを何個もかこえる
[2012-09-16 15:32:02](chibicode) Rails用のDSL represents もつかえる
[2012-09-16 15:32:08](chibicode) respond_withが自動で判断してくれる
[2012-09-16 15:32:40](chibicode) consume!はjsonをとりこみ、新しいmessageオブジェクトをつくることを全部担当してくれる
[2012-09-16 15:32:49](chibicode) これで全部
[2012-09-16 15:33:15](Alex) 楽しんでくれたといいんですね
[2012-09-16 15:33:20](chibicode) 質問などないよね?
[2012-09-16 15:33:57](Alex) 1545 is next
[2012-09-16 15:45:26](Alex) -----
[2012-09-16 15:45:38](Alex) First, self introduction
[2012-09-16 15:45:45](Alex) I'm okkez
[2012-09-16 15:45:53](Alex) Using Ruby for about 8 years
[2012-09-16 15:46:36](Alex) Hiki - wiki clone
[2012-09-16 15:46:57](Alex) CRuby - hoping to release soon
[2012-09-16 15:47:21](Alex) I became a committer due to a certain bug that I will talk about later
[2012-09-16 15:47:59](Alex) At work, using Ruby and C/C++, etc
[2012-09-16 15:48:04](Alex) married in April
[2012-09-16 15:48:11](Alex) left my wife at home to come here
[2012-09-16 15:48:47](Alex) will talk about dealing with bugs in programs we're not familiar with
[2012-09-16 15:48:53](Alex) fixing bugs
[2012-09-16 15:48:58](Alex) 1. Find the bug
[2012-09-16 15:49:08](Alex) 2. Duplication method
[2012-09-16 15:49:15](Alex) 3. Determine problem area
[2012-09-16 15:49:34](Alex) With Duplication methods,
[2012-09-16 15:49:41](Alex) 1. make a test program
[2012-09-16 15:49:57](Alex) 2. record input
[2012-09-16 15:50:07](Alex) especially for GUI applications
[2012-09-16 15:50:25](Alex) for web applications, Capybara is good, for example
[2012-09-16 15:50:44](Alex) 3. make data that reproduces the bug
[2012-09-16 15:51:31](Alex) - How to determine the problem area
[2012-09-16 15:51:51](Alex) When you know the program well, just look for suspicious areas
[2012-09-16 15:51:58](Alex) When you don't?
[2012-09-16 15:52:28](Alex) Change the program little by little...
[2012-09-16 15:52:49](Alex) if the bug is reproduced, confirm the method
[2012-09-16 15:53:00](Alex) otherwise, change the program a little more and try again
[2012-09-16 15:53:36](Alex) what's important is "moving towards a solution by changing the program little by little"
[2012-09-16 15:54:01](Alex) also, "what should I watch with regard to this particular change?"
[2012-09-16 15:54:31](Alex) there are many different kinds of bugs, of course
[2012-09-16 15:54:57](Alex) once you have found the bug, reproduced it, and corrected it, you are finished
[2012-09-16 15:55:23](Alex) if the problem reoccurs, that means the correction wasn't complete
[2012-09-16 15:55:33](Alex) here are some real examples
[2012-09-16 15:55:40](Alex) Ruby memory leak
[2012-09-16 15:55:59](Alex) fixed Dec 2011
[2012-09-16 15:57:55](Alex) the problem was repeatedly doing fork{ exit! } would cause a memory leak
[2012-09-16 15:58:13](Alex) VSZ and RSS are gradually increasing
[2012-09-16 15:58:19](Alex) the goal is to prevent this
[2012-09-16 15:58:57](Alex) first check the definition of the rb_b_fork
[2012-09-16 15:59:04](Alex) rb_f_fork
[2012-09-16 15:59:47](Alex) first, I realized that "spawn" was causing a memory leak
[2012-09-16 16:00:14](Alex) fork and spawn are both reading rb_fork_error
[2012-09-16 16:00:54](Alex) first, it does preparation for fork
[2012-09-16 16:00:58](Alex) before_fork
[2012-09-16 16:01:21](Alex) this is for because sometimes fork fails, so it continues until successful
[2012-09-16 16:01:54](Alex) finally, after fork
[2012-09-16 16:02:38](Alex) solution: at the beginning of r_fork_error, return -1
[2012-09-16 16:02:58](Alex) to check if the problem is before r_fork_error or not
[2012-09-16 16:05:46](Alex) this fork here is a system call, so it can't have a memory leak
[2012-09-16 16:06:16](Alex) again, change it a little by returning -1 here
[2012-09-16 16:08:07](Alex) next, return pid at this point
[2012-09-16 16:08:46](Alex) sorry, it's not working as rehearsed...
[2012-09-16 16:08:59](Alex) let's assume it worked as planned
[2012-09-16 16:09:17](Alex) after_fork is reading after_exec
[2012-09-16 16:09:21](Alex) checking that,
[2012-09-16 16:10:06](Alex) we have rb_thread_reset_timer_thread
[2012-09-16 16:11:48](Alex) in reality, this took a long time to fix
[2012-09-16 16:13:29](Alex) we use a workaround that doesn't use attr
[2012-09-16 16:14:52](Alex) what should have happened was
[2012-09-16 16:15:06](Alex) the memory usage doesn't increase
[2012-09-16 16:15:23](Alex) so we find that attr was causing the problem
[2012-09-16 16:18:23](Alex) Thank yo
[2012-09-16 16:20:28](Alex) Hello!
[2012-09-16 16:20:41](Alex) TDD
[2012-09-16 16:21:05](Alex) Thank you for the opportunity to present this
[2012-09-16 16:21:39](Alex) ESM Inc has many nice people
[2012-09-16 16:23:20](Alex) designed by maicco
[2012-09-16 16:24:29](onodes) designed by mayuco
[2012-09-16 16:26:04](Alex) this is one way to develop
[2012-09-16 16:28:30](Alex) checking constantly by eye is tiresome
[2012-09-16 16:32:31](Alex) adding the test makes it easier to execute -> helps development
[2012-09-16 16:34:50](Alex) implementation is like this
[2012-09-16 16:36:45](Alex) this idea came while writing the tests
[2012-09-16 16:38:44](Alex) afterwards, worry about the next test, test case, etc
[2012-09-16 16:39:42](Alex) for the next step, consider what kind of application you want to make, etc
[2012-09-16 16:40:39](Alex) with this function, you can include all the data needed for the test at once
[2012-09-16 16:41:22](Alex) how much should you test?
[2012-09-16 16:41:30](Alex) until you get where you want to go
[2012-09-16 16:46:35](Alex) you want to run your code? let the test drive it
[2012-09-16 16:47:42](Alex) you can choose the method afterwards
[2012-09-16 16:48:01](Alex) choose by API, start with the result and work backwards
[2012-09-16 16:48:04](Alex) etc
[2012-09-16 16:49:12](Alex) I hope that tests will help drive your development
[2012-09-16 16:49:14](Alex) thank you
[2012-09-16 16:49:26](Alex) 1 minute
[2012-09-16 16:49:59](Alex) Q. When will we be able to get rid of tests?
[2012-09-16 16:51:26](Alex) A. When using a larger test, the smaller tests will become unnecessary. Also, don't write tests that aren't needed or that you don't want to
[2012-09-16 16:51:48](Alex) Thank you
[2012-09-16 16:52:08](Alex) Next session - 5:15
[2012-09-16 16:52:20](Alex) Water is left over by the way, please help yourself
[2012-09-16 17:15:00](Alex) -----
[2012-09-16 17:15:14](Alex) Hello
[2012-09-16 17:15:35](Alex) Why talk about a bitter story?
[2012-09-16 17:16:24](Alex) When looking for help, I found personal experiences of others to be the most useful
[2012-09-16 17:16:46](Alex) First, introduction
[2012-09-16 17:16:56](Alex) I am Sashimi Boomerang
[2012-09-16 17:17:16](Alex) My company is paperboy&co.
[2012-09-16 17:17:36](Alex) a service to support the promotion of information
[2012-09-16 17:17:59](Alex) many Rubyists have joined over the last year
[2012-09-16 17:18:38](Alex) We are now finally in the black
[2012-09-16 17:19:10](Alex) He's the one responsible
[2012-09-16 17:19:33](Alex) it was 2.1.2 during this whole time
[2012-09-16 17:20:07](Alex) the errors weren't easy to find
[2012-09-16 17:20:20](Alex) like "the top page won't load", etc
[2012-09-16 17:21:01](Alex) I'm sure you understand this feeling
[2012-09-16 17:21:32](Alex) Stub and Mock are very helpful, as you might know
[2012-09-16 17:22:05](Alex) Stub pretends to call a method
[2012-09-16 17:23:06](Alex) Mock assumes that a method was called
[2012-09-16 17:24:11](Alex) If you haven't tried stub and mock yet, please try them
[2012-09-16 17:24:33](Alex) Of course, legacy code is working... so why test it?
[2012-09-16 17:24:41](Alex) Of course, it's going to pass
[2012-09-16 17:24:57](Alex) I read this book, and was moved
[2012-09-16 17:25:43](Alex) It's almost like the reverse of TDD
[2012-09-16 17:25:50](Alex) Why do this?
[2012-09-16 17:26:06](Alex) Provide insurance for something that may break in the future
[2012-09-16 17:26:26](Alex) This is a perfectly valid method
[2012-09-16 17:26:53](Alex) This is pretty useless, but we can see that it is sorting
[2012-09-16 17:27:39](Alex) This shows that there is meaning in doing the tests
[2012-09-16 17:27:46](Alex) my cat
[2012-09-16 17:27:52](Alex) great picture, isn't it?
[2012-09-16 17:28:10](Alex) technical debt - have you heard of this before?
[2012-09-16 17:29:03](Alex) this was a plugin that does asynchronous work
[2012-09-16 17:29:38](Alex) then, we changed to DelayedJob
[2012-09-16 17:30:01](Alex) that didn't work
[2012-09-16 17:31:51](Alex) instead of deleting from the database, add a flag to show it is deleted
[2012-09-16 17:33:47](Alex) true story
[2012-09-16 17:35:12](Alex) my cat again
[2012-09-16 17:36:44](Alex) fixing the problem with code challenging and interesting, but sometimes there is another way
[2012-09-16 17:37:27](Alex) there are many things to strive for
[2012-09-16 17:37:40](Alex) method naming, white space, anything
[2012-09-16 17:37:59](Alex) This is a very good book
[2012-09-16 17:38:43](Alex) We don't want young developers to have to suffer like we did
[2012-09-16 17:39:10](Alex) We have to be strong
[2012-09-16 17:40:31](Alex) Some problems can't be solved with money, though
[2012-09-16 17:40:42](Alex) And, don't overdo it
[2012-09-16 17:41:14](Alex) Thank you
[2012-09-16 17:41:23](Alex) 3 minutes
[2012-09-16 17:41:54](Alex) Q. Did you upgrade to 2.3?
[2012-09-16 17:42:31](Alex) A. We're waiting for Ruby
[2012-09-16 17:43:55](Alex) Q. Have you made an estimate on the hard risks? (?)
[2012-09-16 17:44:36](Alex) A. Not at the moment.
[2012-09-16 17:45:16](Alex) Q. Rails moves very quickly...
[2012-09-16 17:47:33](Alex) Q. When adding new features, it slows development. How do you handle that?
[2012-09-16 17:47:59](Alex) A. Focus on smaller features, etc
[2012-09-16 17:48:20](Alex) Q. SVN or Git?
[2012-09-16 17:48:39](Alex) A. We prefer Git.
[2012-09-16 17:52:24](Alex) プログラムは複雑なスキル
[2012-09-16 17:52:40](Alex) 野球も
[2012-09-16 17:52:58](Alex) 野球ができても、プロとは違う
[2012-09-16 17:53:07](Alex) 武術も
[2012-09-16 17:53:30](Alex) 必要なのは才能?
[2012-09-16 17:53:38](Alex) 違います!
[2012-09-16 17:54:18](Alex) そうですか
[2012-09-16 17:54:26](Alex) みんなよくやってますね
[2012-09-16 17:54:52](Alex) I wanted to be a game programmer
[2012-09-16 17:55:15](Alex) I started working for applicake 3 years ago
[2012-09-16 17:55:35](Alex) sometimes, I was in the kitchen
[2012-09-16 17:55:42](Alex) it's an interesting
[2012-09-16 17:55:44](Alex) company
[2012-09-16 17:56:00](Alex) it's a special convention
[2012-09-16 17:56:11](Alex) it was fun
[2012-09-16 17:56:14](Alex) very fun
[2012-09-16 17:56:33](Alex) now, back to English
[2012-09-16 17:56:57](Alex) みんなまじめです
[2012-09-16 17:57:31](Alex) 仕事以外でも経験が必要だと感じた
[2012-09-16 17:57:37](Alex) そこでprogramming workout
[2012-09-16 17:57:51](Alex) マスターへの道
[2012-09-16 17:58:06](Alex) いろんな妨げがあります
[2012-09-16 17:58:15](Alex) 一番いい道を
[2012-09-16 17:58:49](Alex) 肉体的な運動をprogrammingに持っていく
[2012-09-16 17:59:00](Alex) そして大勢の人でやる
[2012-09-16 17:59:09](Alex) 500人も登録しました
[2012-09-16 17:59:21](Alex) まずはじめ方を教えます
[2012-09-16 17:59:28](Alex) 最初は初心者
[2012-09-16 17:59:37](Alex) 何をしているかわからない
[2012-09-16 17:59:48](Alex) だけど進歩が早い
[2012-09-16 18:00:23](Alex) ゴールでなくウィッシュ
[2012-09-16 18:00:41](Alex) そして簡単な運動を選ぶ
[2012-09-16 18:00:58](Alex) とにかく毎日やる
[2012-09-16 18:01:03](Alex) たとえば
[2012-09-16 18:01:17](Alex) 毎日違うことやってもいいが
[2012-09-16 18:01:26](Alex) 間をあけないこと
[2012-09-16 18:01:48](Alex) そしてレベルアップするのに、習慣にする
[2012-09-16 18:02:19](Alex) たとえば毎日歯磨きしますね
[2012-09-16 18:03:18](Alex) 小さな喜びに注目する
[2012-09-16 18:03:28](Alex) だが失敗を恐れない
[2012-09-16 18:03:57](Alex) ゴールは
[2012-09-16 18:04:07](Alex) S 具体的
[2012-09-16 18:04:20](Alex) M 測定できる
[2012-09-16 18:04:51](Alex) A チャレンジングだけど無理ではない
[2012-09-16 18:05:04](Alex) R 関連性がある
[2012-09-16 18:05:42](Alex) それは人それぞれ
[2012-09-16 18:06:00](Alex) 自分にあったゴール
[2012-09-16 18:06:22](Alex) 先生は人でもサイトでも
[2012-09-16 18:06:57](Alex) 他のことに気をとられないこと
[2012-09-16 18:07:42](Alex) 他のことにも適応できます
[2012-09-16 18:08:06](Alex) 頑張り続ける
[2012-09-16 18:08:34](Alex) Adeptな人はできることを把握している
[2012-09-16 18:09:01](Alex) 実験したり工夫したりできます
[2012-09-16 18:10:39](Alex) スキルによっては他のスキルと連動したりも
[2012-09-16 18:11:44](Alex) シンプルな問題を解くコードを書いて→コードを消して→書き直す
[2012-09-16 18:12:07](Alex) 繰り返すことで弱点が発覚します
[2012-09-16 18:12:53](Alex) その弱点にあった対策を練って克服する
[2012-09-16 18:13:40](Alex) 少し余裕を持てますがパターンを大事に
[2012-09-16 18:14:21](Alex) この時点ではだいぶ進んでいるはず
[2012-09-16 18:14:48](Alex) ここで体験談を共有する
[2012-09-16 18:15:19](Alex) マスターは自分がマスターだと自覚するのでなく、マスターだと言われる
[2012-09-16 18:16:25](Alex) 大事なのは初心に戻る、そして初心者を教える
[2012-09-16 18:17:05](Alex) Coderetreatへ行ったことは?
[2012-09-16 18:17:48](Alex) ここでペアプログラミングをいろんな人とやります
[2012-09-16 18:18:13](Alex) 興味がある人は聞いてね
[2012-09-16 18:18:43](Alex) ありがとうございます
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment