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

Vert.xで複数種類のverticleを動かす

1つのVert.xプロセス内で複数種類のverticleを起動するには、それらを起動する専用のverticleを作成し、 そのstartメソッド内で各verticleを起動する。 package com.mycompany.myproject; import org.vertx.java.platform.Verticle; public class EventVerti…

Vert.xアプリをEclipseからデバッグする

手順概略 アプリをデバッグモードで実行する Eclipseからプロセスにアタッチする アプリをデバッグモードで実行する JVMの起動オプションを変更する gradlewのDEFAULT_JVM_OPTSを修正する。 DEFAULT_JVM_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,addres…

EclipseでVert.xのプロジェクトを開始する

手順概略 Vert.x謹製のGradleプロジェクトのテンプレートを取得する Eclipseのプロジェクトファイルを生成する Eclipseのワークスペースにプロジェクトをインポートする Vert.x謹製のGradleプロジェクトのテンプレートを取得する $ git clone https://github…

即席Webサーバ

前提 ~/binディレクトリが存在して、パスが通っている スクリプトを作成 $ vim ~/bin/rhttpd スクリプトの中身 ruby -run -e httpd -- --port 8000 . 実行権限をつける $ chmod u+x ~/bin/rhttpd 起動する $ rhttpd 以上で、例えばhttp://localhost:8000/ind…

ChromeでデバッグしてるとjQuery内でいちいち停止する

という問題がいつの間にやら起きるようになり、地味につらさが募っていた。 Webで検索すると下記のページを見つけて原因を把握した。 http://stackoverflow.com/questions/8399567/chrome-developer-tools-pauses-the-initialization-of-jquery-1-7 要するに…

HTML要素の画面上の座標を取得する

jQueryで選択した要素の画面上の座標を取得したいと思ったが、jQueryが提供しているoffset()関数が返すのはページ上の座標であって、画面に表示されている範囲での座標を返すものが見当たらなかった。 それで、自作した。 $.fn.extend({ viewportOffset: fun…

RubyMineの使用メモリを増やす

RubyMineが更新されるたびにググってる感じなので、備忘録として記しておく。 /Applications/RubyMine.app/bin/idea.vmoptions を ~/Library/Preferences/RubyMine50/ の下にコピーして、その中身を編集する。 例えばこんな感じ。 -Xms256m -Xmx1024m -XX:Ma…

Applicative Programming

Functional JavaScriptという本を読んでると、Applicative Programmingという言葉が出てきた。 定義の文章を読んでも何を指している言葉なのかよくわからなかったが、 _.map _.reduce _.filter などのunderscore.jsの関数ように、引数に関数を与え、内部でそ…

Macのファインダからターミナルを開く

ちょっと前に購入したMacをまだファインダからターミナルを開けるようにしてなかった。 これまでは「cdto(https://code.google.com/p/cdto/)」というアプリを使っていた。 今回もそれをインストールしようと検索したところ、別の手段を見つけた。 それは、「…

Rubyのコードを書く際のルール

引き続きコード改善系の記事 http://robots.thoughtbot.com/post/50655960596/sandi-metz-rules-for-developers クラスは100行まで メソッドの中身は5行以内 メソッドのパラメータは4つまで コントローラがインスタンス化するオブジェクトは1つだけ 4つ目の…

膨れ上がったモデルから機能を分離する切り口

Railsのモデルにちょびちょびと処理を追加していると、いつの間にかサイズが膨れ上がってしまっていたりする。 Railsでロジックを書く場所として与えられている場所はコントローラかモデルなので、「コントローラは単純にしなさい」という教えに従うと、必然…

京都インディーズゲームセミナー Unity入門講座に行ってきた

先日「第2回 京都インディーズゲームセミナー Unity入門講座」という催しに参加してきた。 ぼくはこれまでスーファミ、N64、GC、Wii、Wii U、GBA、NDS、3DS、PS2、PS3、PSP、PS Vitaを購入してきた程度にはゲームを嗜んでいるが、どちらかというとゲームより…

Railsのモデルの更新系メソッドをどう書くか

Railsでアプリを作っていて、モデルの更新系メソッドをどう定義するのが良いのだろうかと試行錯誤していたのだが、もうこれでいいんじゃないかな、というパターンが固まってきたのでメモっておく。 処理とエラーチェックの分離 メソッド定義内ではエラーチェ…

ActiveRecordでカウンター

呼ばれるたびに前回返した値から+1したものを返すカウンターのクラスを書いたものの、出番がなくなったが、今後同じようなものを書きそうなのでメモ。 動作はMySQLで試した。 テーブルの定義 class CreateCounters < ActiveRecord::Migration def change cre…

Railsでモデルデータのクラスをサブクラスに変更する

Single Table Inheritanceで親子関係にある二つのクラスHoge, Fugaがあるとする。 class Hoge < ActiveRecord::Base end class Fuga < Hoge end このときHogeクラスのオブジェクトaがあったとしてそれをFugaクラスに変換したいとする。 そもそもそういう状況…

Working with Unix Processes メモ

プロセスが持っているもの ID Process.pid 用途 シグナルを送る ログファイル内でプロセスを識別 親 Process.ppid ファイルディスクリプタ passwd = File.open('/etc/passwd') puts passwd.fileno 扱えるリソースの限度 Process.getrlimit(:NOFILE) # => [25…

経済的価値がある理由を考える切り口

The Personal MBAの中で、おなじみマズローの欲求段階のお話などとともに、Core Human Drivesというのを紹介している。 The Drive to Acquire The Drive to Bond The Drive to Learn The Drive to Defend The Drive to Feel 物が欲しい、愛されたい、知りた…

ビジネスが提供する価値の形

引き続きThe Personal MBAから。 この本の中で、ビジネスが提供する価値の典型的な形として12個挙げられている。 1. Product 車とかコンピュータなどの「モノ」を提供する。 複製(大量生産)可能な価値であることが良いところ。 2. Service お金をとって…

ビジネスについて学びはじめる

ちょっと前からThe Personal MBAという本をちょびちょびと読んでいる。 著者は大学のMBAコースを、大金払って現場では役に立たない知識を教えるところと批判し、自分で勉強したほうがいいという意見を持っている。 本の構成は、大きく「ビジネス」「人」「シ…

POP before SMTPで認証するメールサーバをAction Mailerで使う

Railsアプリからさくらのメールボックス経由でメールを送信しようとするとエラーメッセージが返された。 メールを送るにはまず受信しろ、という内容のものだった。 POP before SMTP これはさくらのサーバがPOP before SMTPという認証方式を採っているためで…

Vagrantを使ってみた

きっかけはChef-Solo サーバのセットアップの手間を削減すべく、伊藤直也さん著のChef-Soloの本http://tatsu-zine.com/books/chef-soloを読み始めた。 Chef-Soloは以前少し使ったことがあるので、どういう道具なのかはなんとなく把握しているのだが、試行錯…

最新でないマイグレーションを単独で実行する

Railsで複数人開発をしていると、他の人のコミットにマイグレーションファイルが含まれていることがある。 そのマイグレーションのバージョン(タイムスタンプ)が手元にあるマイグレーションのうち最新であれば、ただrake db:migrateを実行すればデータベー…