2013年秋 Web開発最前線テックトークに行ってきた #webdev_now
2013年秋 Web開発最前線テックトークにWeb開発のトレンドを聞ける感があったのでいってみた。
Ruby, node.js, Scala, JavaScript フロントエンド という内容での登壇で、全く知らないこともありつつ、
何も知らなすぎて、手を付けられない感じだったのを、今回の発表をきくことで、はやりのFWや、パッケージ、を知ることができたし、
どのバージョンを使えばよいのかや、ハマりどころなどを聞けてよかった。
あと、もう好き嫌いを言ってる場合じゃない感じになってきてるので、JavaScriptをちゃんと勉強しようと改めて思い直した。
登壇のみなさま、主催のじげんさま、ありがとうございました!
ISUCON予選に出た #isucon
ISUCON2013の予選にでた。
事前準備は、あまりできなかったので、ほぼぶっつけ本番で1日目の予選に参加した。
当日 9:30 に 相方のid:urapico とオンラインで待ち合わせ。*1
google hangout と IRCでコミュニケーションをとった。
10:00開始で、運営から発表さらたAMIをもとにAWSのコンソールから指定のm3.xlargeでEC2インスタンスを起動。
urapico にざっくり内容を見てもらいつつ、サーバへの接続環境を整えつつ*2、bitbucketにつくったgitのレポジトリに対象のwebapp をまるっとpushした。
対象のwebapp は memoアプリでsignin/signout があるものだったので、PHP の実装をみて、手をいれるところを探った。
改修したらbenchmark を流すということをすすめて、実際のボトルネックになってるのは、mysqlのcpuが効いてるところまで把握。
また、php のデフォルトの状態でもbenchmarkツールがfailを吐くので、それをコードベースで治そうということして、urapico には、そこを追ってもらうことにした。自分は、mysqlとか、apacheとかphpとかのconfig周りを適宜いじった。
あと、netstat で 通常のmemcacheが握ってる11211 port をmysqlが握ってるのを見つけたけど、特に対策せず。*3
そうこうしていて、お昼になったところで、urapico が奥様の体調不良と、1歳になったばかりの息子の世話で離脱。。
その後、一人ですすめることになった。
結局、やったことは、mysqlのslowqueryを握りつぶすために、適切なindexを張ったのと、memos tableにusername を入れることにしてその事前準備用の仕込みと、phpコード内での、改修にとどまった。
事前準備用の仕込みは、benchmarkツールがベンチをとるたびにmysqlのデータを初期化するので、benchmarkツールのオプションで渡せるinit スクリプトに mysql のalter文、update文を作成。これが微妙に時間が取られてしまった。
終了間際で、benchmarkツールの--workload をあげてみたら、デフォルトの状態からでてたfailがあまりでなくなることがわかったので、apache等が死なないぎりぎりのラインまであげて、計測をまわした。
最終スコアは、3027 でトップの足元にも及ばない結果に終わって残念だった。トップの方々はおそらくmysqlをそうそうに捨てて、オンメモリのものに入れ替えたんだろうと予測できるけど、8時間の限られた時間の中での実装力が求められるので技術と経験が必要だろうなとおもった。
反省点
- オンラインでやるのは、ちょっと厳しかった(どこかにあつまってやるべきだった)
- ボトルネックの把握と、その対応をどうするかを時間の換算をしながらやるべきだった
- 時間がなくてもcommit logはちゃんと書く
- 前日に飲みに行かない
時間がなくてできなかったこと
- countをcacheする
- nginxにいれかえる
まだ、予選がおわっただけなので、本戦はこれからですが、運営の皆様、出題のkayacの方々、ありがとうございました!!
また、来年開催されれば、今回の反省点を踏まえてのぞみたいと思います!
ISUCON予選参加登録した
id:urapico を口説けたので、ISUCON予選に参加登録した。
@urapico 10.5 いかがですか?
— ʞzuʞʇ (@tknzk) 2013, 9月 18
@urapico are u sure want to entry ISUCON of 10.5 ?
— ʞzuʞʇ (@tknzk) 2013, 9月 20
@urapico いぇあ!
— ʞzuʞʇ (@tknzk) 2013, 9月 20
— ʞzuʞʇ (@tknzk) 2013, 9月 20
@urapico entry done. id:59 team:jindaiz
— ʞzuʞʇ (@tknzk) 2013, 9月 20
ISUCON予選でるぞい
— ʞzuʞʇ (@tknzk) 2013, 9月 20
Bitbucket ミートアップ東京 に行ってきた #BitbucketJ
Bitbucket ミートアップ東京に行ってきた。
PyConで来日していた、Bitbucketの開発者のErik氏の講演をメインにピザとビールをいただきながら聞いてきた。
Erik氏の講演は、BitbucketチームでどのようにBitbucketが使われているかという話と、Bitbucketの中身の話でした。
スライド中にあったスクリーンショットのBranchの機能が今使っているものにないなーと思っていたら、QAコーナーで話題になり新機能で数週間以内にリリースされるだろうという機能ということがわかった。ナチュラルにステージング環境のスクリーンショットを見れて面白かった。
社内ですでにBitbucketをメインにつかってるので、稟議の通し方とかBitbucket Teamsの使い方とかは、なるほどと思いつつ、使い方は間違いなさそうだということを得られてよかった。
あと、開場着くなり、Tシャツ頂いて、ビール頂いて、ピザいただいた。いいプロモーションだよなーと思いつつ、ありがたくいただきました!
主催のAtlassianのみなさま、登壇された皆様、ありがとうございました!
ISUCON予選に出たい
Iikanjini SpeedUp Contest 2013 に出たいのでメンバーを募集しています。
- 予定
PHPだと予選突破できそうにないので、なんとか1ヶ月でgolangをためして、golangでチャレンジしようと思ってます。
- 現状
id:urapico を口説いていますが、なかなか説得できない次第。
あと、ランサーズで探すのがいいのかなーと一瞬思ったけど、なんか違う感がただよったので、やめました。
Get Great Git #1 by Qiita に行ってきた #get_greate_git
Qiita主催のGitの勉強会に行ってきた。
先日転職して、いい機会だったので、subversionからgitへの移行を行ったので、
勉強会のターゲット層にあたってたっぽくてよかった。
以下、感想
息をするようにgit status をして、息を吐くようにgit branch をする
というのは、まだまだ、そこまでいけてないのでその域に達したいとおもった。
また、細かいコマンドのオプションも参考になった。
git [cmd] help 大事。
PullRequest開発フローは、いいことはわかってるけど
なかなか、導入までは、踏み切れないし、現状、メインのプロダクトのコードを書いてるのが一人*1だったりもするのでむずかしい。でも、コードレビューの観点からみると、絶対に導入しなければいけないな。
ともあれ、知らないことも多かったし、とても勉強になりました。
主催のQiitaさん、登壇者の皆さん、会場提供のmixiさん、ありがとうございました!
Get Great Git #1 by Qiita : ATND
*1:複数人で開発してるプロダクトもあるけど、開発範囲を分けてたりするし。
データサイエンスの始め方・データ分析のデザインパターンに行ってきた #ds2013
データサイエンスの始め方・データ分析のデザインパターンに行ってきた。
参考になったところ
- データ neq 情報 neq 知識 neq 理解 neq 知恵 neq ビジネスの成功
- ログは取れるだけ取得する
- 1イベント 1レコードになるようにする(webアプリケーションの場合:アクセス)
- 基本的なスキーマを決める
- アプリケーションの知りうる属性を非正規化して集める
- sessoin_id, user_id, gender, age, device ...
- 非正規化することのメリット:JOINせずに解析できる
- user_id, session_id : hash化しておく
- 楽天の商品ページの最長は20mある
- 楽天の商品ページは感情に訴えるための構成になっている
- 万が一のためのセキュリティ担保のために個人情報に関わる部分はhash化するのは大前提。
開場提供のリクルートさん、主催のTresureDataの皆さん、ありがとうございました!