yo_waka's blog

418 I'm a teapot

2013-01-01から1年間の記事一覧

2013年の振り返り

あっというまに過ぎた2013年だったので振り返り。 スタートアップに転職した 今年はなんといっても6月からfreeeという会計サービスのスタートアップで働き始めたのが一番大きな出来事だった。 3月にサービスがベータ公開されたのをTechCrunchかなにかのニュ…

ActiveRecordのマイグレーションでMySQLのunsignedな数値タイプを指定できるGemライブラリ作った

今の会社でRailsを使うようになって、いわゆるマイグレーションの仕組み超便利。 なんですが、MySQLを使っているのにidや数値にunsignedを指定できないのどうなんだろう。 他のDBはサポートしてないからいらないよねっていうのも分かるんですが、せっかくア…

WEB+DB PRESS Vol.76にWeb Componentsの記事を書きました

うう、発売されてからだいぶ経ってしまった。。。 WEB+DB PRESSのJavaScript連載の第9回目にWeb Componentsについての記事を書かせていただきました。 WEB+DB PRESS Vol.76作者: 五十嵐啓人,伊野亘輝,近藤宇智朗,渡邊恵太,須藤耕平,中島聡,A-Listers,はまち…

Nginx1.3でWebsocketをリバースプロキシするメモ

Nginx1.3(2013/04/10時点では開発版)からWebsocketのリバースプロキシを通せるようになったということで、Socket.IOへリバースプロキシさせようとしたけどけどなかなか上手くいかなくて、ようやく上手く動いたのでメモっておく。 Nginxのバージョンは1.3.1…

RailsアプリのJavaScriptをkonachaを使ってCLI上でテストする

前回のでアプリケーションのテストがMiniTest::Specで実行できるようになったので、今度はJavaScriptのユニットテストをコマンドラインから実行できるようにする。 慣れてるMochaを使ってテストが書けるkonachaと、konachaが使用するCapybaraのPhantomJSドラ…

Rails4で書いたアプリをMiniTest::Specでテストする

Rails4からはActiveSupport::TestCaseがTest::UnitからMiniTest::Unit::TestCaseのサブクラスに変わっている。 MiniTestはSpecなDSLをサポートしているので、RSpecを入れずともBDDスタイルでテストが書けるようになる。 ということで、いろいろtest_helper.r…

ActiveRecordで日付の範囲指定

ActiveSupportのコア拡張を使うとめちゃ綺麗に書けて感動した。 今日 from = Time.now.at_beginning_of_day to = from + 1.day items = Item.where(created_at: from...to).order(created_at: :desc) 今月 from = Time.now.at_beginning_of_month to = from …

RailsのセッションをJSONで

Railsのセッション情報はこちらの記事にあるように、RubyのMarshalでシリアライズされ、Base64エンコードされたものがクッキーなどに保存される。 ただ、Ruby以外では復元が難しいため、Node.jsなど別言語で書かれたサーバーアプリケーションとセッションを…

Railsでセレクトボックスの出力

selectとかselect_tagとかcollection_selectとかいろいろあってオプションの指定も微妙に違ってたり分かりにくい。 ActiveRecordの配列と普通の配列を同じように扱えて、name属性を自由に定義したい。 いろいろ試してみたところ、select_tagとoptions_for_se…

デザイン変えた

テーマストア見てたらなんか意欲が湧いてきたのでデザインを弄ってみた。 ブログのテーマデザインを弄くるのは楽しい。 まだプログラムの勉強やり始めてまもない頃、バイトでMTのテーマとかプラグインやら作ってたのを思い出す。 そういえばあのころ、ブログ…

vagrantとknife-soloで開発環境構築を自動化するやつ

dev

最近vagrantとknife-soloで、ってのが流行ってるみたいなのでやってみた。 waka/auto-dev-env ベースBoxは、vagrantbox.esからUbuntu12.10 server minimalってのを落とせるけど、knife-soloはOmibus Chef Packagingのものをインストールしてくれるのでchefは…

Google Closure LibraryのユニットテストをPhantomJSで実行するやつ

を2年前くらいに作ったのだけど、久々にGoogle Closure Libraryを使いたくなって、そうなるとテストも書かないとなので引っ張りだして使おうと思ったのですが、なにせ2年前に作ったものなので、ソースコードはレガシー感が漂ってて、使ってるPhantomJSのAPI…

bowlというNode.jsのcluster管理モジュールを作った

cluster周りのコードを書いていて、ワーカー周りの死活監視やエラー処理などいつも同じようなこと書いてるのでモジュール化してみました。 bowl GitHubにソースコードもあげてあります。 安心のテストコード付き! waka/node-bowl できること コマンドライン…

Node.jsアプリで結果が非同期になる箇所はコールバックを渡せるようにした方がいい

既存のNodeアプリのテストを書いていて思ったことをメモ。 書いてるうちに別にNode.jsに限った話じゃなくて、JavaScript全般に言える話じゃんと思ったけどまいっか。 Node.jsで書くアプリは中の処理で非同期API使われてると、テストを書くのがとても難しいと…

Node.jsのcluster.disconnectの挙動とGracefulリスタート

clusterモジュールを使ってサーバアプリ管理ツールを作ってるのだけど、cluster.disconnectのコールバックが実行されてもワーカープロセスが死なないことがある。 Chromeでサーバにアクセスすると、cluster.disconnectしてもワーカーの'exit'イベントが発火…

あけまして

明日から仕事始まる、、、ウワーン・゚・(Pд`q。)・゚ もう6日ですが、あけましておめでとうございます。 今年はもうちょっと個人でもいろいろアウトプットできるようにしていきたいなー。 特にぜんぜん広まる気配のないGoogleClosureLibraryがもうちょっと使われ…