テストをいっぱい書くと
rake spec
が終わるのに時間がかかるようになります。
これを早める方法として
parallel_tests
を利用するという方法があります。
テストを並行実行することでスピードをあげるようです。
以下で紹介されていました。
http://subtech.g.hatena.ne.jp/secondlife/20100819/1282226971
rails 2系を利用している場合の導入手順は、以下の通りです。
・インストール
gem install parallel
gem install parallel_tests
・設定
parallel_testsを導入するプロジェクトごとに以下を設定します。
config/environment.rb
のRails::Initializer.runブロック内に以下を追加
config.gem "parallel"
Rakefile
の一番下に以下を追加
begin; require 'parallel_tests/tasks'; rescue LoadError; end
・テスト用DBの準備
rake parallel:create
rake parallel:prepare
これだけでOKです。
作成済みのテストは特にいじる必要はないようです。
これで
rake parallel:spec
とすることでテストを並行実行できます。
ちなみ2CPUの私の環境では、テスト時間がだいたい2/3になりました。
parallel_testsを導入しても、普通に
rake spec
も実行できます。
導入しておいて損はない感じのparallel_testsです。
ちなみに私の環境はlinuxですのでwindows環境では動かないかもしれません。
2011-09-29
2011-09-28
IDEA*IDEAさんで紹介していたカードサイズスタンドがよさげ。なので他にもカードサイズのものを探してみた
IDEA*IDEAさんで紹介していた
イマジヴァ スマートフォン・スタンド
というカードサイズのスタンドがよさげでキニナルのです。
以下で紹介されています。
http://www.ideaxidea.com/archives/2011/09/f-12c_stand.html
紹介されているものはこれです。
ついでにカードサイズのものって他にどんなのがあるかなぁと思ってみました。
・ノート
イマジヴァ スマートフォン・スタンド
というカードサイズのスタンドがよさげでキニナルのです。
以下で紹介されています。
http://www.ideaxidea.com/archives/2011/09/f-12c_stand.html
紹介されているものはこれです。
ついでにカードサイズのものって他にどんなのがあるかなぁと思ってみました。
・ノート
・鏡
・多機能定規
・ルーペ
・はさみ
・ノギス
・いろいろセット
まだいろいろありそうですが、探すのにあきたのでこの辺で。
・多機能定規
・ルーペ
・はさみ
・ノギス
・いろいろセット
まだいろいろありそうですが、探すのにあきたのでこの辺で。
2011-09-27
PLANEXの小型無線LANルータがキニナルのです
手のひらサイズの無線LANルータがキニナルのです。
正確には、無線LANルータ/アクセスポイント/コンバータだそうです。
無線LANルータは、おうちにあるので間に合ってますという感じなのですが、
一台でアクセスポイントとコンバータになるのが便利そうです。
アクセスポイント、コンバータがどんな動きをするかは、
http://www.planex.co.jp/product/router/mzk-mf300n/point.shtml
がわかりやすいです。
普段は、おうちでコンバータとして利用してテレビと接続しておいて、いざ出張の際には、もっていってホテルでアクセスポイントとして使うとかがステキそうです。
出張することは、めったにないのですけどね。
2011-09-25
J!NS PCというメガネがキニナル
PCを使っていて目が疲れにくいというメガネがあるようです。
J!NS PCというものです。キニナルのです。
http://www.jins-jp.com/functional/pc.html
結構長時間PCを使うので、なかなかよさげな感じです。
ただ残念なことに度なしのものしかないようです。
度ありのものが出てもらいたいなぁと思ったりしてみました。
J!NS PCというものです。キニナルのです。
http://www.jins-jp.com/functional/pc.html
結構長時間PCを使うので、なかなかよさげな感じです。
ただ残念なことに度なしのものしかないようです。
度ありのものが出てもらいたいなぁと思ったりしてみました。
2011-09-24
Androidアプリの開発途中でAPI levelを変更する
Androidで遊び始めましたので、アプリもちょっと作ってみようと思っていじり始めました。
最初のプロジェクトを適当に作ったため、API levelが3でAndroid 1.5相当のものを利用していましたが、ちょっといじり始めたら、
このレベルではちょっと・・・
という感じになりました。
なので途中でAPI levelを変更する方法です。
Eclipseで開発していることが前提ですが、
API levelを変更しようとしているAndroidプロジェクトのトップレベルで右クリックして
プロパティ
をクリックします。
そこで
Android
を選択して
Project Build Target
を変更します。
AndroidManifest.xml
の
uses-sdk
の
android:minSdkVersion
を変更したAPI levelを記述しなおします。
これで途中でAPI levelを変えられました。
最初のプロジェクトを適当に作ったため、API levelが3でAndroid 1.5相当のものを利用していましたが、ちょっといじり始めたら、
このレベルではちょっと・・・
という感じになりました。
なので途中でAPI levelを変更する方法です。
Eclipseで開発していることが前提ですが、
API levelを変更しようとしているAndroidプロジェクトのトップレベルで右クリックして
プロパティ
をクリックします。
そこで
Android
を選択して
Project Build Target
を変更します。
AndroidManifest.xml
の
uses-sdk
の
android:minSdkVersion
を変更したAPI levelを記述しなおします。
これで途中でAPI levelを変えられました。
2011-09-20
Google Developer Dayに参加できるようになりました
Google Developer Day 2011
への参加ができることになりました。
大変ありがたい話なのですが、どんな内容の講演をあるのかを早く知りたいなぁと思っていたところ、
Google Developer DayのAndroidアプリがあり、こちらに講演が紹介されていることを教えていただきました。
https://market.android.com/details?id=gdd11.app
期待していた
Android Open Accessory
の話があるようなので、ありがたく参加させていただくことにしました。
への参加ができることになりました。
大変ありがたい話なのですが、どんな内容の講演をあるのかを早く知りたいなぁと思っていたところ、
Google Developer DayのAndroidアプリがあり、こちらに講演が紹介されていることを教えていただきました。
https://market.android.com/details?id=gdd11.app
期待していた
Android Open Accessory
の話があるようなので、ありがたく参加させていただくことにしました。
2011-09-19
ハムでチャーシューっぽいものを作る
家でラーメンを作る時に、チャーシューが欲しいけど、薄切りハムしかないよ~~
って時のレシピです。
薄切りハムを一枚一枚はがさないで四等分します。
切ったハムをアルミホイルの上に重ならないように並べます。
そしてハムの上に適当な量、みりんと醤油をかけます。
ハムを乗せたアルミホイルごとオーブントースターに入れて、7分ぐらいやきます。
焼きあがったハムをラーメンの上に乗せて、チャーシューだと思い込んで食べます!
って時のレシピです。
薄切りハムを一枚一枚はがさないで四等分します。
切ったハムをアルミホイルの上に重ならないように並べます。
そしてハムの上に適当な量、みりんと醤油をかけます。
ハムを乗せたアルミホイルごとオーブントースターに入れて、7分ぐらいやきます。
焼きあがったハムをラーメンの上に乗せて、チャーシューだと思い込んで食べます!
2011-09-17
rubyで文字列の似てるっぷりをチェックする
rubyで2つの文字列が似ているかどうかを判別してみます。
文字列の似てるっぷりの判別にレーベンシュタイ距離(編集距離)というのを使います。
詳しくは
http://ja.wikipedia.org/wiki/%E3%83%AC%E3%83%BC%E3%83%99%E3%83%B3%E3%82%B7%E3%83%A5%E3%82%BF%E3%82%A4%E3%83%B3%E8%B7%9D%E9%9B%A2
を見てもらうとよいです。
簡単に言ってしまえば、何回文字を変更したり追加したり削除すれば同じ文字列になるかを数値化したものです。なのでレーベンシュタイ距離が0の場合、完全に一致していることになります。
でrubyで似てるっぷりの判別です。
Levenshteinモジュールを使うのでgemでまずインストールです。
gem install levenshtein
コードは以下のような感じにしてみました。
とりあえず、1文字か2文字違うだけであれば似てるのでは?
としてみました。
さらに、文字列の長い方の文字列長とレーベンシュタイ距離の比が一定以下であっても似ているとしています。
ここいら辺は、好みで調整がいると思います。
本当であれば、二つの文字列を、全角に統一とか空白を事前に除去とかするともっとよいのだろうなぁと思ったりもします。
ざっくり似た感じの判別には、上のやり方でもいけるかなぁとか思ったりしています。
文字列の似てるっぷりの判別にレーベンシュタイ距離(編集距離)というのを使います。
詳しくは
http://ja.wikipedia.org/wiki/%E3%83%AC%E3%83%BC%E3%83%99%E3%83%B3%E3%82%B7%E3%83%A5%E3%82%BF%E3%82%A4%E3%83%B3%E8%B7%9D%E9%9B%A2
を見てもらうとよいです。
簡単に言ってしまえば、何回文字を変更したり追加したり削除すれば同じ文字列になるかを数値化したものです。なのでレーベンシュタイ距離が0の場合、完全に一致していることになります。
でrubyで似てるっぷりの判別です。
Levenshteinモジュールを使うのでgemでまずインストールです。
gem install levenshtein
コードは以下のような感じにしてみました。
require 'levenshtein'
def similar(a,b)
lev = Levenshtein.distance(a,b)
return true if lev == 1 or lev == 2
if a.size > b.size
len = a.size
else
len = b.size
end
return true if lev.to_f/len < 0.2
return false
end
とりあえず、1文字か2文字違うだけであれば似てるのでは?
としてみました。
さらに、文字列の長い方の文字列長とレーベンシュタイ距離の比が一定以下であっても似ているとしています。
ここいら辺は、好みで調整がいると思います。
本当であれば、二つの文字列を、全角に統一とか空白を事前に除去とかするともっとよいのだろうなぁと思ったりもします。
ざっくり似た感じの判別には、上のやり方でもいけるかなぁとか思ったりしています。
2011-09-16
Mysql Clusterを使っていてalter tableしたらerrno: 136が出た
Mysql Clusterを利用しているテーブルに変更を加えようとしたら、
Can't create table 'xxx.#sql-47_29' (errno: 136)
とエラーが出て変更ができませんでした。
エラーが出た直後に
show warnings
とすると
Got error 904 'Out of fragment records (increase MaxNoOfOrderedIndexes)' from NDB Can't create table 'xxx.#sql-47_29' (errno: 136)
と言われましたので、MaxNoOfOrderedIndexesを増やすことにしました。
MaxNoOfOrderedIndexesを記述する場所は、config.iniです。
私の環境では
/var/lib/mysql-cluster/config.ini
にあります。
[NDBD default]エントリに
MaxNoOfOrderedIndexes=1024
を追加しました。
その後、ndb_mgmdを再起動するわけですが、以下のように--initialをつけないと設定が反映されませんでした。
service ndb_mgmd stop ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial
念のためndbdも以下のような感じで再起動しておきました。
service ndbd stop service ndbd start
これでエラーがちゃんと消えましたのです。
2011-09-15
CentOS5にRMagickをサクっとインストールする
CentOS5.4にRMagickをインストールしてみました。
以下のような感じでサクっとインストールできます。
RedmineでRMagickを使うようなので入れてみたのでした。
以下のような感じでサクっとインストールできます。
yum install ImageMagick yum install ImageMagick-devel wget http://elders.princeton.edu/data/puias/unsupported/5/i386/msttcorefonts-2.0-1.noarch.rpm rpm -ivh msttcorefonts-2.0-1.noarch.rpm ln -s /usr/share/fonts/msttcorefonts /usr/share/fonts/default/TrueType gem install rmagick -v 1.15.13
RedmineでRMagickを使うようなので入れてみたのでした。
2011-09-12
Google Developer Day 2011 のDevQuizに挑戦して112.5点で終わりました #gdd11jp
Google Developer Day 2011のDevQuizに挑戦してみました。
結果は、112.5点となったので、今の情報を見る限り参加は出来そうかなぁと思っています。
今年は行くのどうしようかなぁと思っていて、
どんな話が聞けるのかを見てから挑戦するのを決めようと思ったのですが、
DevQuizの締め切りの方が先だったので、とりあえず挑戦しておくことにしました。
今年のクイズは、毎日挑戦者がどれくらいの点数を取ったかを確認できるようになっていたせいか
前回のDevQuizよりかはハードルが上がったような気がします。
最初、ウォームアップクイズで一問間違ってしまい、さらにやり直せることに気づいていなかったので
チャレンジクイズで取り返さなくては!
と思っていたのですが、すごく遅いか、もしくはちっとも解けないかのどちらかで 困っていました。
でも、ウォームアップクイズがやり直せることを知ってから
なんとかなりそうだなぁと思ってからは、アルゴリズムの改良をやめてしまいました。
やっぱり今年のクイズも時間をそれなりに取られたなぁと思ったりもしてみたので Google Developer Day 2011がステキなイベントになることを期待しています。
個人的には
Android Open Accessory
の話があるといいなぁと思っています。
結果は、112.5点となったので、今の情報を見る限り参加は出来そうかなぁと思っています。
今年は行くのどうしようかなぁと思っていて、
どんな話が聞けるのかを見てから挑戦するのを決めようと思ったのですが、
DevQuizの締め切りの方が先だったので、とりあえず挑戦しておくことにしました。
今年のクイズは、毎日挑戦者がどれくらいの点数を取ったかを確認できるようになっていたせいか
前回のDevQuizよりかはハードルが上がったような気がします。
最初、ウォームアップクイズで一問間違ってしまい、さらにやり直せることに気づいていなかったので
チャレンジクイズで取り返さなくては!
と思っていたのですが、すごく遅いか、もしくはちっとも解けないかのどちらかで 困っていました。
でも、ウォームアップクイズがやり直せることを知ってから
なんとかなりそうだなぁと思ってからは、アルゴリズムの改良をやめてしまいました。
やっぱり今年のクイズも時間をそれなりに取られたなぁと思ったりもしてみたので Google Developer Day 2011がステキなイベントになることを期待しています。
個人的には
Android Open Accessory
の話があるといいなぁと思っています。
2011-09-11
WBS「トレたま」で放送された商品をAmazonで検索してみた(201108放送分)
WBSのコーナーの「トレたま」で放送された商品をAmazonで検索してみました。
でも、今月は一つも見つけられませんでした。
変色するUV! (放送:8月31日)
見つかりませんでした
空回りで止める! (放送:8月30日)
見つかりませんでした
エクササイズで移動! (放送:8月29日)
見つかりませんでした
保湿する眼鏡 (放送:8月26日)
見つかりませんでした
引出“本” (放送:8月25日)
見つかりませんでした
拭けるTシャツ (放送:8月24日)
見つかりませんでした
1つで2役のリモコン (放送:8月23日)
見つかりませんでした
ガラス蓄電タイル (放送:8月22日)
見つかりませんでした
ソーラーパラソル (放送:8月19日)
見つかりませんでした
蚊とりガン (放送:8月18日)
見つかりませんでした
足用のマウス (放送:8月17日)
見つかりませんでした
テロリストを探せ (放送:8月16日)
見つかりませんでした
レーザーキーボード (放送:8月15日)
見つかりませんでした
世界に一つの紋章 (放送:8月12日)
見つかりませんでした
「光る」未来のセンサー (放送:8月11日)
見つかりませんでした
目指せ!育毛SNS (放送:8月10日)
見つかりませんでした
「運ぶ」を変えるハコ (放送:8月9日)
見つかりませんでした
消費電力が「見える」タップ (放送:8月8日)
見つかりませんでした
鍋で携帯充電 (放送:8月5日)
見つかりませんでした
接客ロボット (放送:8月4日)
見つかりませんでした
ビニール傘で発電 (放送:8月3日)
見つかりませんでした
安眠リモコン (放送:8月2日)
見つかりませんでした
有機ELライト (放送:8月1日)
見つかりませんでした
でも、今月は一つも見つけられませんでした。
変色するUV! (放送:8月31日)
見つかりませんでした
空回りで止める! (放送:8月30日)
見つかりませんでした
エクササイズで移動! (放送:8月29日)
見つかりませんでした
保湿する眼鏡 (放送:8月26日)
見つかりませんでした
引出“本” (放送:8月25日)
見つかりませんでした
拭けるTシャツ (放送:8月24日)
見つかりませんでした
1つで2役のリモコン (放送:8月23日)
見つかりませんでした
ガラス蓄電タイル (放送:8月22日)
見つかりませんでした
ソーラーパラソル (放送:8月19日)
見つかりませんでした
蚊とりガン (放送:8月18日)
見つかりませんでした
足用のマウス (放送:8月17日)
見つかりませんでした
テロリストを探せ (放送:8月16日)
見つかりませんでした
レーザーキーボード (放送:8月15日)
見つかりませんでした
世界に一つの紋章 (放送:8月12日)
見つかりませんでした
「光る」未来のセンサー (放送:8月11日)
見つかりませんでした
目指せ!育毛SNS (放送:8月10日)
見つかりませんでした
「運ぶ」を変えるハコ (放送:8月9日)
見つかりませんでした
消費電力が「見える」タップ (放送:8月8日)
見つかりませんでした
鍋で携帯充電 (放送:8月5日)
見つかりませんでした
接客ロボット (放送:8月4日)
見つかりませんでした
ビニール傘で発電 (放送:8月3日)
見つかりませんでした
安眠リモコン (放送:8月2日)
見つかりませんでした
有機ELライト (放送:8月1日)
見つかりませんでした