2011-09-29

rspecの実行を早くする

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
テストをいっぱい書くと
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-28

IDEA*IDEAさんで紹介していたカードサイズスタンドがよさげ。なので他にもカードサイズのものを探してみた

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
IDEA*IDEAさんで紹介していた
イマジヴァ スマートフォン・スタンド
というカードサイズのスタンドがよさげでキニナルのです。

以下で紹介されています。
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を使うので、なかなかよさげな感じです。

ただ残念なことに度なしのものしかないようです。

度ありのものが出てもらいたいなぁと思ったりしてみました。

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を変えられました。


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
の話があるようなので、ありがたく参加させていただくことにしました。

2011-09-19

ハムでチャーシューっぽいものを作る

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
家でラーメンを作る時に、チャーシューが欲しいけど、薄切りハムしかないよ~~

って時のレシピです。

薄切りハムを一枚一枚はがさないで四等分します。

切ったハムをアルミホイルの上に重ならないように並べます。

そしてハムの上に適当な量、みりんと醤油をかけます。

ハムを乗せたアルミホイルごとオーブントースターに入れて、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

コードは以下のような感じにしてみました。


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をインストールしてみました。

以下のような感じでサクっとインストールできます。

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
の話があるといいなぁと思っています。

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日)
見つかりませんでした