クックパッド主催 第2回「開発コンテスト24」に参加しました!
クックパッドさんが主催する開発コンテスト24に参加しました!
コンテストの概要は下記
21時にお題が発表されて24時間以内に開発を行い成果を投稿するいわゆるHackathonでした。
肝心のお題は
『(普段の生活で)半径3m以内にいる人が困っていることを解決する 』
前々日ぐらいに社内の若手のエンジニアに声をかけて参加表明をしてくれた
@cutmailと@araiguma47とインターン生で会社にこもり開発を開始しました。
タイムテーブル
- 21:00-22:00 環境構築
- 22:00-01:00 ブレスト
- 01:00-07:00 設計:開発開始
- 07:00-10:00 仮眠
- 10:00-20:00 実装
始まった最初は人数が多い中、環境のことをほとんど考えていなかったので
全員が入れるサーバ、ドキュメントルート、DBの設定などあわただしく始まりました
この辺がサクサク作れるようになったのでインフラやっててよかったーと思いました。
そのあと全員であーでもない、こーでもない、これいんじゃなね?
みたいな感じで2時間ほどブレスト大会
0時を回りはじめてそろそろ開発に着手しないとやばいってことで
出てきた案の中で思い思いのものをチーム毎に作ることにしました。
今回は仕事でまったく絡みの無い後輩二人と一緒に作ったのですが
役割分担が比較的明確にでき、案がでてからは
ほとんど実装に費やすことができたのが非常によかったです。
設計の様子
作ったものはandroidアプリで
着る服や自分のコーディネートに自信の無い人がtwitterで繋がっている
友達に自分の服装を写真で送り寸評をもらえるcoorde friendsというアプリです。
開発中
設計をしながら機能は増えていき24時間で作れるか結構心配でした(汗)
役割分担
@yutadayo
- twitter連携
- codeigniterを使った認証まわり
- ユーザーの寸評投稿部分
@cutmail
- 写真投稿
- アプリ部分全て
@araiguma47
- DBまわり
- 画像処理
- 寸評確認画面
アプリ
@araiguma47が前日のまどか☆マギカを見ていてほとんど寝ていない
@cutmailが仮眠に行ったまま帰ってこない
初めてアプリとwebまわりの連携ができたのが朝の10時で
全ての機能が実装できたのが7時とけっこうギリギリな感じで進んだ開発ですが
それぞれが仕事で学んだこと、得意な分野を活かして開発し
納得のいくものが作れたのは非常によい経験でした。
結果受賞することはできませんでしたが
合宿みたいにこもって皆で開発できたことはとても楽しく
各々の技術の共有ができたのでとても有意義でした。
これからもこういったイベントには積極的に参加していきたいと思います!
最後に開催してくださったクックパッドさんと開発を共にした後輩達に感謝です!
来年も参加するぜーー!
Twitterでイベントを共有するサービス『eventap』を作りました。
eventapというTwitterで友達とイベント(予定)を共有できるサービス「eventap(イベンタップ)」をつくりました。
以前にもmapu(マプー)というTwitter関連のモバイルサービスを
作ったのですが、あんまり流行らなかったので、その時に培ったノウハウを活かして作りました。
作ったのはいつものメンバー
メンバーでモンハンを一緒にやりたかったので作ろうと思ったのがキッカケだったりします。
Develop
- @yutadayo
- @taiga1002
Design
- @tekejune
Direction
- @shota
詳細な使い方はnanapiに投稿してあるので、
もしよければ使っていただければと思います。
技術的にはそんなに難しいことはしていないのですが、工夫・チャレンジしたのは下記のような所
- フレームワークにCodeigniterを採用、自前でつくったtwitterのライブラリと連動
- memcacheを使ってtwitterからのデータをキャッシュ
- jQueryを使ってのスマートフォン最適化
利用シーンをスマートフォンに想定していたので
最適化、特にデザインにも力を入れて作成しました。
まだまだ追加したい機能がたくさんあるので
追加開発を行ってより便利なサービスにしていきたいと思います!
『24時間365日 サーバ/インフラを支える技術』
読んだ。
インフラ(メインはサーバー)エンジニアになったので勉強にと思って一回サラっと読んでみたんだけど
本に書かれていた技術に触れる機会があったので、もう一度ちゃんと読んでみました。
やっぱり実際に自分で触れて、いじってみた方がよく理解できた。
本の中ででてきた技術で実際に使ったのは下記など
ロードバランサ
※NATとDSR両方で実装しました。
リバースプロキシ
- Apache mod_proxy_balancer
DB
※LVMによるスナップショットでバックアップをとってます。
ネットワーク
- Bonding
※結構簡単にできた。
apache
apacheの下記あたりのパラメータを色々チューニングしてメモリの使用率など、負荷を下げれれました。目に見えて効果があり、とても勉強になりました。
- StartServers
- MaxRequestsPerChild
- MaxClients
その他
- DRBD
- puppet
puppetはかなり詳しくなりました。今はpuppetのマニフェストを変えるだけで機能別にサーバを素早く構築できるようになっています。
その他にもPXEブートをcobblerでやったり
開発機、ステージング機の構築はKVMを使って筐体の節約に努めたり
監視はHobbitを使ったりと、この半年間で色々と成長できました。
はじめてのtokyocabinet
mixiさんのエンジニアブログに載っていた
下記の記事に触発されてtokyocabinetを使ってみたのでその手順のメモ
オレオレ検索窓を設置しよう - mixi engineer blog
まずはインストールからしなくてはいけないので
ネットで調べてyumで必要なパッケージをインストール。
yum -y install bzip2-devel zlib-devel
次にtokyocabinetをwgetで拾ってきてinstall
僕が見たときは最新のバージョンが1.4.45だった。
参考:http://fallabs.com/tokyocabinet/
wget http://fallabs.com/tokyocabinet/tokyocabinet-1.4.45.tar.gz
tar xzvf tokyocabinet-1.4.45.tar.gz
cd tokyocabinet-1.4.45
./configure
make
make check
make install
無事インストールが完了!
tokyocabinetの起動、動いてるっぽい。
tctmgr version Tokyo Cabinet version 1.4.45 (908:1.0) for Linux Copyright (C) 2006-2010 Mikio Hirabayashi
あと、mixiのブログに載っていた手順でindexの作成
折角なのでクロール先はこのブログにしてみる。
ruby wgettsv -allow 'http://d\.hatena\.ne\.jp/yutadayo' \ -max 10000 'http://d.hatena.ne.jp/yutadayo/' > intra.tsv
10分くらいでクロールが完了。わりとかかったな。
コマンドを打ってインデックスの作成を試みる。
tctmgr importtsv tctsearch.tct intra.tsv tctmgr setindex -it qgram tctsearch.tct title tctmgr setindex -it qgram tctsearch.tct body
ここは数秒で完了。
検索UIもtokyocabinetに入っていたやつを使わせてもらった。
exampleディレクトリからコピーしてcgiが動くディレクトリに持ってくる。
exampleディレクトリでmakeしてできるtctsearch.cgi と tctsearch.tmplというファイルね。
先ほど作ったインデックスファイル(tctsearch.tct)も同じディレクトリに移動させておく。
cd tokyocabinet-1.4.45/example make cp tctsearch.cgi tctsearch.tmpl ~yutadayo/work/tokyocabinet mv ~yutadayo/tokyocabinet/tctsearch.tct ~yutadayo/work/tokyocabinet
ブラウザでtctsearch.cgiにアクセスしてみる!
.cgi You don't have permission to access /
怒られてしまた。。。
cgiの許可してなかった。
http.confに下記を追加してapacheを再起動
ScriptAlias /cgi-bin/ /home/yutadayo/work/tokyocabinet <Directory /home/yutadayo/work/tokyocabinet> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory>
もう一度アクセス!
動いた。
導入までは結構簡単でした。
『ソフトウェア開発で伸びる人、伸びない人』
ソフトウェア開発 で伸びる人、伸びない人 (技評SE新書002)
- 作者:荒井 玲子
- 発売日: 2006/01/19
- メディア: 新書
読んだ。
日々エンジニアとして気をつけることが書いてあった。
・わからいことは素直にわからないと聞く
・素直であれ
・普段から分かりやすい言葉を意識して使う
・常に能動的でポシティブであれ
・底まで落ちたらあとは這い上がるだけ