2011-12-19

railsでconfirm画面を表示する

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
今どきなシステムだと、あんまり確認画面って感じではないとは思うのですが、
登録前に確認画面を出して欲しい
と言われることが、まぁあります。

railsでconfirm画面を表示する方法はいろいろあるようなのですが、
とりあえず以下のようにしてみました。
使うアクションとviewは一つずつにしてみています。
まずはコントローラーは以下のような感じです。
class AaaController < ApplicationController

  def aaa
    #最初の表示
    unless params[:commit]
      params.delete(:confirm)
      return
    end
    #postされたら、まずはvalidateする
    @err = Hash.new
    @err[:val] = 1 if params[:val].blank?
    #validateでエラーがあったら返す
    unless @err.size == 0
      flash.now[:error] = "validate error"
      return
    end
    #確認画面表示
    unless params[:confirm]
      params[:confirm] = 'confirm'
      return
    end
    #確認後の登録処理をこれ以降に書く
    params.delete(:confirm)
    flash[:notice] = "登録したよ[#{params[:val]}]"
  end

end

そしてviewは以下のような感じです。
<% if params[:confirm] %>
  <h1>確認</h1>
<% else %>
  <h1>登録</h1>
<% end %>
<%= form_tag(:action => "aaa") %>
  <%= label_tag(:val, "val") %>:
  <% if params[:confirm] %>
    <%= params[:val] %>
    <%= hidden_field_tag :val,params[:val] %>
  <% else %>
    <%= text_field_tag("val",params[:val]) %>
  <% end %>
  <br />
  <p class="form-footer">
  <% if params[:confirm] %>
    <%= hidden_field_tag :confirm %>
    <%= submit_tag '作成', :class => "submit" %>
    <%= submit_tag 'キャンセル', :name => "cancel" ,:class => "submit" %>
  <% else %>
    <%= submit_tag '確認', :class => "submit" %>
  <% end %>
  </p>
</form>

通常入力用と確認用のテンプレートを用意するのでもよいと思います。

実際に表示させると以下のような感じです。

validateで失敗すると以下のような感じ。

以下のようにちゃんと入力して「登録」をクリックすると

以下のような確認画面になります。

「キャンセル」をクリックすると確認前の画面に戻って、「作成」をクリックすると以下のように登録完了になります。


切削加工機iModela iM-01がキニナルのです

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
iModela iM-01(切削加工機)
iModela iM-01(切削加工機)
価格:78,750円(税込、送料別)

その気になれば手が出せる値段のiModela iM-01がキニナルのです。
3Dプリンタ(?)と呼ばれるものの一種で3次元のものを作り出すのです。
3Dプリンタ(?)だけど、これは削って加工するもののようです。

実物を一度見たのですが、思ったよりも小さいです。
欲しいけど、衝動で買ったら邪魔になるサイズかも・・・・
とか思ったけど、コレくらいのサイズならありかもとか思ったりしました。

詳しくは以下
http://www.rolanddg.co.jp/news/2011nr1005_imodela.html

同じ会社が出している金属に模様を彫るメタルプリンターというものもキニナルのですが、こちらはお値段お高めなので買えません。

2011-12-17

railsでselect_tagで事前に選んだ項目でselectedさせる

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
railsでselectボックスを利用している場合で
validateとかに失敗して、画面を再表示させたいときに、
事前に選択していた項目をselectedにしたい場合です。

こうしてみました。

<%= select_tag(“aaa”, options_for_select([['あああ',1],['いいい',2],['ううう',3]], params['aaa'] )) %>

でも、前回選んでおいたものがselectedにならなかったのです。


<%= select_tag(“aaa”, options_for_select([['あああ',1],['いいい',2],['ううう',3]], params['aaa'].to_i )) %>


こうする必要がありました。

ちゃんちゃん。

2011-12-15

rubyで和暦を使いたいとき

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
あまり和暦は使いたくないのですが、どうしても使わないといけないこともあります。

まずは和暦を読み取るときです。
H23.12.15
のような形式であれば、

require 'date'  
d = Date.parse("H23.12.15")
puts d.to_s #2011-12-15  
という感じで読み取ることができます。

平成とか漢字とかも使いたい場合は、
http://d.hatena.ne.jp/glpgsinc/20110502/1304332167
を参考にするのがよいかなぁと思います。


逆に、和暦出力したい場合は、
http://fistfvck.sakura.ne.jp/w/ruby/reverserecipe/048_%E6%97%A5%E6%99%82%E3%82%92%E5%92%8C%E6%9A%A6%E8%A1%A8%E8%A8%98%E3%81%A7%E5%87%BA%E5%8A%9B%E3%81%97%E3%81%9F%E3%81%84
で紹介されている手段を使うのがよいかなぁと思います。

wget http://svn.coderepos.org/share/platform/tdiary/plugin/jyear.rb
でtdiaryで使っているjyearというのを取得して使う感じです。
これで%Kという和暦用の変換コードが使えるようになります。
こんな感じです。

t = Time.now
t.strftime("%Y-%m-%d")      # "2009-07-23"
t.strftime("%K年%m月%d日")  # "平成23年12月15日"
これで西暦と和暦の相互変換ができる感じです。

2011-12-14

バーコードからtwitできるBARCOTTERをバージョンアップしました

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
バーコードを読み取って、本のタイトルなどを判別してtwitができるBARCOTTERをバージョンアップしました。

BARCOTTERに関して詳しいことは、
http://kingyo-bachi.blogspot.com/2011/11/barcotter.html
をご覧ください。

バージョンアップ内容としては、バグフィックスです。

たまに
java.lang.IllegalArgumentException: View not attached to window manager
という感じのエラーが発生していたのですが、
どうもProgressDialogが表示されている最中に画面を回転させると出るようです。

対処としては、ProgressDialogを利用するのをやめました。
ProgressDialogを利用したかったのは、バーコード読取後にそれが何かを通信して確認しているのですが、その間に他の作業をしてもらいたくないなぁということでした。
BARCOTTERには、そんなにボタンがないのですべてのボタンを通信中は利用不可にすることでProgressDialogと同じように通信中に作業できない感じにしてみました。

他の変更点として、AmazonアソシエイトIDを設定できるようにしてみました。

今回、修正の際にAndroidでの非同期処理には、AsyncTaskというのがあるということを知ったのでこれを使うようにもしてみました。
今までは、
http://magpad.jugem.jp/?eid=109
で紹介されているような方法でやっていたりしました。
置き換えは、
Runnable
に書いていたことを
doInBackground
に移して
Handler
に書いていたことを
onPostExecute
に移した感じです。


追記 2011/12/24
上記変更で落ちることはなくなったのですが、画面を回転させるとdisableにしたはずのボタンがenableになってしまう状態でした。
以下のサイトで紹介されていた
http://d.hatena.ne.jp/hyoromo/20090712/1247385249
AndroidManifest.xml ファイルに android:configChanges 属性を追記すると問題なくなりました。
紹介されているように
 orientation|keyboardHidden
と設定するとよい感じでした。
keyboardHidden
があった方がよさげな動作をしました。理由はよくわからないのですけどね。

2011-12-01

WBS「トレたま」で放送された商品をAmazonで検索してみた(201111放送分)

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
WBSのコーナーの「トレたま」で放送された商品をAmazonで検索してみました。

1台で3役こなす! (放送:11月30日)
見つかりませんでした

フラッシュ☆カバー (放送:11月29日)
見つかりませんでした

自転車でエコ充電♪ (放送:11月28日)
見つかりませんでした

余白手帳 (放送:11月24日)
amazonにありました


指圧力センサー (放送:11月23日)
見つかりませんでした

卓上会議システム (放送:11月22日)
見つかりませんでした

世界初 音声リモコン (放送:11月21日)
amazonにありました


帯電でミスト (放送:11月18日)
見つかりませんでした

スマホでカラオケ (放送:11月17日)
見つかりませんでした

新感覚電子楽器 (放送:11月16日)
見つかりませんでした

おしゃれな段ボール椅子 (放送:11月15日)
見つかりませんでした

水電池懐中電灯 (放送:11月14日)
見つかりませんでした

寝相“改善”枕 (放送:11月11日)
見つかりませんでした

家庭用野菜洗浄機 (放送:11月10日)
見つかりませんでした

電子書籍を“出版” (放送:11月9日)
見つかりませんでした

盲導犬型ロボット (放送:11月8日)
見つかりませんでした

“粘着”名刺入れ (放送:11月7日)
見つかりませんでした

頭脳を持ったシューズ! (放送:11月4日)
見つかりませんでした

赤外線で見守る! (放送:11月3日)
見つかりませんでした

超小型電話! (放送:11月2日)
見つかりませんでした

次世代オフィス! (放送:11月1日)
見つかりませんでした

2011-11-21

MySQLでUnknown table engine 'InnoDB'ってエラーが出たよ

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
MySQLでInnoDBのテーブルにクエリーを発行したら

Unknown table engine 'InnoDB'
ってエラーが出ました。

ログにメモリ割り当て失敗のメッセージが出ていたので
my.cnf

innodb_buffer_pool_size
のサイズを小さくすることで解決しました。

今まで別に問題なかったのですが、ある日突然エラーになりました。

私のところでは、毎日1回mysqlを止めてコールドバックアップを取っているのですが、ある日再起動の際にメモリが割り当てられなくなったようです。

どうやらmysqlとはまったく関係ない実験的に回していた別のプログラムでメモリリークしてしまったようで、そのプロセスが大量にメモリを確保してしまったせいでMySQLがメモリが確保できなかったようなのでした。

プロセスをkillした後は、無事にinnodb_buffer_pool_sizeを元のサイズに戻すことができました。

2011-11-14

「ポメラ」 DM100がキニナル

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク



テキストをお手軽に入力できるガジェットのポメラの新しいモデルであるDM100がキニナルのです。

形としては、以前のキーボードを折り畳んでいる形の方がちょっとキニナルですが、
以前の形だと
・フタを開く
・キーボードを開く
の2アクションだったものが、新しいモデルのDM100ではフタを開くだけの1アクションで済むので、合理的だとは思うのです。

ポメラは、前からキニナル存在ではあったのですが、
デスクワーク中心の人なので、使う機会がない!
ということで、キニナルだけで済ましていました。

しかし、新しいモデルでは
Bluetoothでスマホのキーボードになる。
やら
電子辞書が利用できる
やらの機能が新しくキニナルのです。

デスクワーク中心ということで、やっぱり使う機会はないような気がするのですが、
キニナル商品ではあるのです。

2011-11-03

WBS「トレたま」で放送された商品をAmazonで検索してみた(201110放送分)

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
WBSのコーナーの「トレたま」で放送された商品をAmazonで検索してみました。

プルンプルンせっけん! (放送:10月31日)
見つかりませんでした

簡単ドアモニター (放送:10月28日)
見つかりませんでした

余熱保温シート (放送:10月27日)
見つかりませんでした

寝返り簡単マットレス (放送:10月26日)
見つかりませんでした

電動紙飛行機 (放送:10月25日)
amazonにありました
紙ひこうき電動プロペラキット 「 ダ・ヴィンチ」 よく飛ぶ紙飛行機 ペーパーグライダー モーターパワーアップキット

水で作る除菌消臭剤 (放送:10月24日)
amazonにありました
おうちでつくれるAg+

手巻きラクラク開封 (放送:10月21日)
見つかりませんでした

らくらく抱っこひも (放送:10月20日)
見つかりませんでした

いびき防止ベルト (放送:10月19日)
amazonにありました
いびき防止 バンパーベルト 予約販売(ご注文後2~3週間で発送)
【いきび防止ベルト】Rematee バンパーベルト(Bumper Belt) - TGA認可の夜の間起きることなく横向きで眠れる、単純、快適で、安価な装置です。

貧血チェッカー (放送:10月18日)
見つかりませんでした

スイッチで合図 (放送:10月17日)
見つかりませんでした

どこでも炊き出し (放送:10月14日)
見つかりませんでした

紙焼き写真をITで贈る (放送:10月13日)
見つかりませんでした

アイデアを形に! (放送:10月12日)
見つかりませんでした

動画を撮れる双眼鏡 (放送:10月11日)
amazonにありました
ソニー デジタル録画双眼鏡 DEV-3 DEV-3

屋根の角度も測定 (放送:10月10日)
見つかりませんでした

ハイテク・アクセサリー (放送:10月7日)
見つかりませんでした

いるのは時計だけ!? (放送:10月6日)
見つかりませんでした

愛犬の散歩にわん歩計 (放送:10月5日)
見つかりませんでした

光反応サンバイザー (放送:10月4日)
amazonにありました
オート サンバイザー アルファ【予約受付中 11月中旬出荷予定】

究極のペン完成 (放送:10月3日)
見つかりませんでした

2011-11-01

BARCOTTERの説明

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
バーコードを商品名に変換して、お手軽にtwitterやevernoteに共有できるアプリBARCOTTERの説明です。

以下はBARCOTTERを起動すると以下の画面になります。

基本的な動作は、バーコードの値を入力または読取して共有を実行します。

それぞれの説明です。


①JANコードまたはISBNの値を入力します。共有を実行すると変換された商品名などが表示されます。JANコードと認識できない数値を入力すると共有の歳にエラーになります。JANコード以外に普通に文字を入力すると何も変換せずにその文字の共有を行います。

②共有を実行する際に変換した商品名の前に追加する文字列を指定します。一例としてその商品の評価などを入力するのもよいと思います。起動時には前回利用した値がセットされます。

③今まで利用した②で記載した内容を多い順に10件表示します。


④共有を実行する際に変換した商品名の後に追加する文字列を指定します。一例としてハッシュタグなどを入力するのもよいと思います。起動時には前回利用した値がセットされます。

⑤今まで利用した④で記載した内容を多い順に10件表示します。

QRコードスキャナーがインストールされていると利用可能になります。①でJANコードを入力する代わりにカメラでバーコードを入力することができます。読取を実行するとデフォルトでは自動的に共有を実行します。

⑦ バーコード記入後に押すと商品名の変換を行い他のインストールされているtwitterクライアントやEvernoteなどのアプリにデータを渡します。共有を行うメッセージは「②のメッセージ + ①から変換された商品名など + ④のメッセージ」になります。

⑧①に入力されている内容を消去します。


twitterクライアントに共有を実行すると以下のようになります。
この例では、バーコードから「1Q84 BOOK 1」に変換を行い、商品名の前に「★5」を追加して、商品名の後に「#読んだ」を追加しています。



メニューボタンを押すと以下のように設定メニューが表示されます。

設定画面では、以下の項目が設定可能です。

URLを追加:バーコードから商品名に変換した際にAmazonへのURLをあわせて追加します。ここのチェックをはずすと商品名だけが追加されます。

読取後すぐ共有:QRコードスキャナーでバーコードの読取を実行したら、自動的に共有を実行します。チェックをはずすと読取後に自分で共有を実行する必要があります。

前にテキストを追加:共有の際にバーコードから変換した商品名などの前にテキストを追加して共有を行います。チェックをはずすと入力欄自体表示されなくなります。

後にテキストを追加:共有の際にバーコードから変換した商品名などの後にテキストを追加して共有を行います。チェックをはずすと入力欄自体表示されなくなります。

AmazonアソシエイトID:AmazonへのURLにここで指定したAmazonアソシエイトIDを設定することができます。



以下のように前にテキストを追加、後にテキストテキストを追加のチェックをはずすと入力欄自体表示されなくなります。



twitterを利用している方は、
後にテキストを追加する際にハッシュタグを利用して、さらに
twilog
をあわせて利用するとtwitterで読書録をお手軽に作成できます。

以下は読書録の例です。
http://twilog.org/vivahiraj/hashtags-%E8%AA%AD%E3%82%93%E3%81%A0

はじめてのAndroidアプリBarcotterを公開してみました

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
はじめてのAndroidアプリ「BARCOTTER」を公開してみました。

BARCOTTERでは、JANコードもしくはISBNを入力すると、その商品名とamazonへのurlを取得します。
取得した商品名をtwitterなどにお手軽に共有することができます。

JANコードは、QRコードスキャナーがインストールされていればカメラで取得することもできます。

利用イメージは、以下のような感じです。



赤で囲まれたテキストボックスにJANコードまたはISBNを記入するか、読取ボタンをクリックしてバーコードを読み込んで共有を実行すると以下のような感じでバーコードから商品名を変換して共有することができます。以下は、twitterクライアントに共有した例です。


ハッシュタグをつけてtwitlogを利用するとお手軽に読書録などを作成することができます。

以下は、私の読書録です。
http://twilog.org/vivahiraj/hashtags-%E8%AA%AD%E3%82%93%E3%81%A0

BARCOTTERに関するもうちょっと詳細な説明は以下をご覧ください。
http://kingyo-bachi.blogspot.com/2011/11/barcotter.html

2011-10-29

ペンプリンターがキニナルのです

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
http://www.kikuchi-mfg.co.jp/popM204N.html

菊池製作所さんでペン型のインクジェットプリンターがあることを知りました。
なかなかキニナル製品です。
思わずほしくなっているのですが、
どこで売っているのかはよくわかりません。

そして実際に手に入れたとして何に使えばよいのかもわからないのですが
キニナルのです。


おうちでスタンプが作れる「EZスタンプ 匠」がキニナルのです

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク


おうちでオリジナルスタンプが作れるということでキニナルのです。
消しゴムはんこも楽しいのですが、不器用なもんで細かい図柄はうまく彫れそうもないのですが、これならば心配ない気がします。

2011-10-28

intentで「常にこの操作で使用」を出したり出さなかったり

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
AndroidでIntentを利用する際に、通常は受け取れるリストが出てきて下の方に
常にこの操作で使用
と表示されて常に使うアプリを選択できるわけです。
以下のような感じで利用します。

Intent intent = new Intent(android.content.Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, "ぎょぎょ");
try {
    startActivity(intent);
 } catch(android.content.ActivityNotFoundException e) {
    Log.d( "intent_test", "cant send" );
}

常にこの操作で使用
を表示させないで常になんらかのアプリを選択させたい場合は、

startActivity(intent);
の部分を
startActivity(Intent.createChooser(intent, "Select"));
に変更すればOKです。

Intentを実装する際に参照したサイトで

startActivity(Intent.createChooser(intent, "Select"));
が紹介されていてので何も考えずに、こちらを使っていて
なんで
常にこの操作で使用
のチェックが出ないのだろう・・・
としばらく悩んでみたというお話です。


Androidで共有をする時に常にこの操作で使用をチェックしたけど解除したい

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
Androidアプリで共有とかすると他のアプリの選択画面が表示されます。
毎回選ぶの面倒だなぁと思ったら、
常にこの操作で使用
にチェックを入れておけば、次から選択画面がでないで指定したアプリが起動します。

やっぱり、起動するアプリを変えたいなぁと思ったら
[設定]>[アプリケーション]>[アプリケーションの管理]
でインストールされているアプリが出てくるわけです。

この後にアプリを選択するわけですが、
AからBを起動するようにしていた場合は
選ぶアプリは
B
の方になります。

ここの初期設定で起動とかデフォルトでどうのこのう
とかの部分の
初期設定に戻す
とかを押せばOKです。

ずっとAのアプリを選んでいて
ぜんぜん解除できなくて悩んでしまいました。

2011-10-27

紙ヒコーキを電動にしちゃう「 ダ・ヴィンチ」がキニナルのです

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク


紙ヒコーキにつけるプロペラなのです。
充電して使うようなのです。
なんか楽しそうな気がしてキニナルのです。

2011-10-22

お手頃なソーラーパネルと蓄電池がキニナルのです

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
バイオレッタ ソーラーギア VS12
というソーラーパネルと蓄電池がセットになっているものがありキニナルのです。
http://www.violetta.com/japanese/seihin/seihin_vs12.html

なんとなく電気も電力会社に頼っているだけではいかん気がするのです。
となると一般家庭で出来そうな発電は、
ガスで発電するエネファーム
太陽光発電
風力発電
ぐらいしか思いつかないのですが、全部戸建でないと使えないかなぁとか思ってしまったりします。


バイオレッタ ソーラーギア VS12
がっつり発電というわけにはいかないのでしょうが、マンションのベランダにもおくことができそうな気がして、ちょっとはおうち発電ができそうな気がします。

もうちょっとお安くなるとうれしいのですけどねぇ。


陶器なのに透明な部分がある丹心窯の水晶彫りというのがステキな感じです

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

陶器なんですが、透明っぽい部分があるのがキニナルのです。
丹心窯という工房で作っている水晶彫りというものだそうです。
他で見たことがないので贈り物とかによさげな気がするのです。

以下で他のもいろいろ見れるのです。
http://www.tanshingama.com/

パナマハットがなんとなく欲しくなってみた

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク




雑誌を見ていてふとパナマハットがキニナル感じだったのです。
そのうち買おうかなぁと思ってメモ的エントリなのです。

2011-10-12

カセットテープをデータ化できるものがあるらしい

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク


カセットテープをPCに取り込むことができるものということでキニナルのです。
正直、これを買って取り込むほどカセットテープがあるわけでないのだけど、ちょっと借りて数本ぐらいは取り込んでみたいかもとか思ってしまいます。
VHSのビデオテープでも似たような感じでお手軽に取り込めるものもあるとよいかもしれないと思ったりしてみました。

2011-10-11

アイロン台と脚立が一つになったものがキニナルのです

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク


アイロン台と脚立が一つになったものなのです。
アイロン台も脚立も利用頻度はそんなに高くないけど、
ないのも困るというわけで一つになってしまったというのが、
なるほどという感じでキニナルのです。

2011-10-07

ノスタルジックなお道具箱がキニナルのです

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク


100円ショップで収納グッツを買うことが多いのですが、こんな感じのノスタルジックな感じがするお道具箱もいいなぁとか思ってキニナルのです。

楽譜の五線が一気にひけるペンがキニナルのです

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク


ペン先が五本並んでいます。なので楽譜が一気にかけるようなのです。
インパクトがあってキニナルのです。

ギターはひかないけどギターピックパンチはキニナルのです

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク


いらないカードとかを使ってギターのピックを作ってしまうパンチなのです。
ギターはひきません。でもいらないカードは何枚かあります。
そんなカードを再利用できるのでキニナルのです。

ギターをひかないとピックを作っても再利用にならないかもしれませんが。

自由にいろいろとめられるGRID-IT!がキニナルのです

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク


ゴムが張り巡らされている感じのもので、自由にいろいろとめられる感じがキニナル「GRID-IT!」なのです。

自由にいろいろとめられるという意味では、以下のデザインする手帳は、さらにキニナルのです。
http://superclassic.jp/?pid=35274720

持ち運べるホワイトボード hum orator がキニナルのです

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク


持ち運べるホワイトボード hum oratorがよさげでキニナルのです。
白だけでないのが、またよさげです。

以下のような感じで使えるようです。
http://stylestore.allabout.co.jp/mojo/ProductInfo/sku/CE050-00-0001-0149/

よさげです。

幅広のテプラがキニナルのです

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク


幅が広いラベルを印字できるテプラです。
でかいものが印刷できる方が使い道がいろいろありそうな気がします。
ちょっとキニナル商品です。

金墨汁がキニナルのです

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
 

金色の墨汁です。キニナルのです。
使い道は正直、思いつきません。
でも、ちょっと欲しいと思ってしまったのです。

2011-10-04

長さを簡単に調節できるカメラストラップがキニナルのです

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク


親指でしゅーっとするだけで、長さが調節できるカメラストラップがキニナルのです。

どんな仕組みになっているかも実物をみてみたい感じです。

カメラ以外でも便利に使えることがありそうな気がします。
思いつかないのですが・・・

実際に調節している感じは、以下のサイトで確認できます。
http://www.aaa-shop.jp/fs/aaa01/g5b/ACAM-E25

WBS「トレたま」で放送された商品をAmazonで検索してみた(201109放送分)

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
WBSのコーナーの「トレたま」で放送された商品をAmazonで検索してみました。

道路がしゃべる? (放送:9月30日)

見つかりませんでした
簡単に本格レコーディング (放送:9月29日)
見つかりませんでした

太陽光発電ガラス (放送:9月28日)
見つかりませんでした

ゴムの無いパンツ (放送:9月27日)
見つかりませんでした

ボートに変わるベンチ (放送:9月26日)
見つかりませんでした

団体行動する洗濯物! (放送:9月23日)
amazonにありました
「ありがとう」シリーズ 片手でできる! 1度に外せる! 【いちどにありがとう16】 グリーン ICA003-001-16G
「ありがとう」シリーズ 片手でできる! 1度に外せる! 洗濯ハンガー 【一度にありがとう4】 グリーン ICA002-001-04G
「ありがとう」シリーズ 片手でできる! 1度に外せる! 【いちどにありがとう16】 ホワイト ICA003-001-16W

進化したデジタルペン! (放送:9月22日)
見つかりませんでした

そっくり生レバー! (放送:9月21日)
見つかりませんでした

光る歯ブラシ! (放送:9月20日)
見つかりませんでした

合体・分離するハンコ! (放送:9月19日)
見つかりませんでした

悪臭使った新消臭布 (放送:9月16日)
見つかりませんでした

次世代型貯金箱 (放送:9月15日)
amazonにありました
ダイワトーイ 超次世代型貯金箱 タッチパネルATMバンク
大和玩具(ダイワトーイ) ダイワトーイ 超次世代型貯金箱 タッチパネルATMバンク 794297

ワイパーいらず! (放送:9月14日)
見つかりませんでした

アップル専用放射線測定器 (放送:9月13日)
amazonにありました
RDTX pro - Portable Radiation Detector for iPod and iPhone [J] [輸入品]
RDTX pro - Portable Radiation Detector for iPod and iPhone - SCO-IRAD-PRO
SCOSCHE iPhone iPodtouch対応放射能カウンター 白 SCO-RDTX-PRO

なんでも絵文字 (放送:9月12日)
見つかりませんでした

ソフトなぬいぐるみロボット (放送:9月8日)
見つかりませんでした

「液体レンズ」メガネ (放送:9月7日)
見つかりませんでした

温かガラスベンチ (放送:9月6日)
見つかりませんでした

定点観測専用カメラ (放送:9月5日)
見つかりませんでした

唾液で体調チェック! (放送:9月2日)
見つかりませんでした

発熱する靴! (放送:9月1日)
見つかりませんでした

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

2011-08-30

rubyで出力のバッファリングをやめる

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
rubyで以下のような感じのコードを書きます。

print "xxx"
sleep 2
print "yyy"
sleep 2
print "zzz"

xxxと出てからyyyと出てzzzと出てくるのを期待したりするのですが、このように出力されないで
実際は、しばらく待って一気にxxxyyyzzzと出力されることになります。

これは標準出力する際に、バッファに一時的にためていてある程度たまってから出力しているせいなわけで
これを期待するように動かすには、
STDOUT.sync = true
print "xxx"
sleep 2
print "yyy"
sleep 2
print "zzz"

のように
STDOUT.sync = true
を追加すればOKです。

バッファリングされるのは標準出力だけでなく自分で書き込み用に作成したファイルへの書き込みでも同様な感じになります。
動作ログをファイルに取っている場合とかは、バッファリングせずにすぐに書き出してもらいたいわけです。
そんな時は、以下のような感じにファイルハンドラに
fw.sync = true
のような感じのものを追加すればOKです。
fw = File.open("eeee.txt",'w')
fw.sync = true
fw.puts 'aaa'
sleep 2
fw.puts 'bbb'
sleep 2
fw.puts 'ccc'

2011-08-22

自動水やり器を試す

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
ちょっとしばらく家をあけたのですが、その際に鉢植えに水を自動でやる方法はないかと探してみました。
すると
http://www.geocities.jp/babulunooya/sub1.htm#mizu
を見つけて試してみました。

しかし、うちでは日当たりがいまいちなせいか、あまり水が出ていない気配です。 

なのでポンプを使って自動水やり器を作ってみようと思ったわけです。
電池で動くポンプが欲しかったのですが、安いものが見つからず。
そして見つけたのが以下の灯油ポンプです。

   

こちらは自動で止まる機能も付いています。
これを買って試してみたところ水でも動きました。
おまけに水を出す方の先端が水にぬれると自動で止まる機能もついています。

これでいいのでは? と思ったのですが、
一度水にぬれて自動で止まってしまうと、スイッチを入れなおさないと再度スイッチを入れなおさないと動きませんでした。

それでは改造だ!と思ったわけです。
しかし電子工作の知識が全然なのです。
そもそもモーターを動かすこともろくに出来ずに出かける時間になってしまいました。

結局、キャップをしめた2リットルペットボトルの底に穴を開けて植木鉢の上におきっぱなしにするだけで出かけてしまいました。
結果は、何個かはすっからかんになって草も枯れかけていたのですが、いくつかは水が残っていたりしました。

穴の数とかをうまく調整すれば
数日ぐらいならば、これでよかったのかも・・・
という感じです。

だけど今度は買ってしまった灯油ポンプを改造してみようと思ったりしたのでした。

2011-08-21

腹筋月間、挫折!

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
今月は、何回でもいいから腹筋をするぜ! とか宣言しましたが、挫折です。 ちょっと泊りがけのお出かけやら遅くまでの飲みとかが続き途絶えてしまいました。 一度、途絶えるとやる気がでない~~~ いかんですね。

2011-08-12

rubyでpdf出力したときのspec

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
rubyでThinReportsを使ったりとかしてpdfを出力する機能を作った場合のテスト方法です。

PDF::Readerを利用します。
なので以下のようにgemでインストール。
gem install pdf-reader

今の段階でインストールされるPDF::Readerのバージョンは、
0.10.0
のようです。

0.10.0を使っているときの方法です。
(0.11.0alphaが最新のようですが、0.11.0ではやり方が違う感じになりそうです)

テストではrspecを使っているとして以下のようなテストケースを書けばよさげです。

require 'spec_helper'

describe OtamesiController do
  it "PDFに想定したデータが埋め込まれる" do
    require 'pdf/reader'
    #以下の結果がpdfを出力しているとします
    get 'otameshi', :id => 1
    output = ""
    receiver = PDF::Reader::TextReceiver.new(output)
    PDF::Reader.string(response.body,receiver)
    output.should match(/埋め込みデータ1/)
    output.should match(/埋め込みデータ2/)
  end
end
これで確認できるのは、想定したデータがPDFのどっかに埋め込まれていることの確認にすぎないので
PDFで出力された値の文字サイズとかは上記ではわかりません。
receiverを変えたらひょっとしたらサイズとかも取れる可能性はあります。


2011-08-09

ActiveScaffoldで削除の時のメッセージをカスタマイズする

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
ActiveScaffoldで削除の際に出る確認メッセージをカスタマイズする方法です。 単純にメッセージを変えるのであれば以下のような感じでよいです。
config.delete.link.confirm = "削除してもいいのかい?ホントにいいのかい?"
単純な変更ならば、上記でよいのですが どうせならば何を削除するのかを、ちゃんとメッセージしたい場合は、以下のような感じになります。 例えばusersテーブルの情報を削除する場合です。 削除メッセージに削除対象のnameカラムの内容を表示するようにします。
config.delete.link.confirm = nil
config.delete.link.dhtml_confirm = UserConfirm.new
上記で指定したUserConfirmを以下のように定義します。
class UserConfirm < DHTMLConfirm
  def onclick_handler(controller, link_id)
    code = ""
    if link_id =~ /delete-([0-9]+)-link/
      name = User.find($1).name
    end
    script = <<-END
if (confirm("「#{name}」を削除していいのかい?ホントにいいのかい?")) window.gFireModalLink();
END
  end 
end
このUserConfirmクラスを app/controller/users_controller.rb のコントローラーのクラスの上にでも書いておけばOKです。 (他の場所の方がよいかもしれないですが・・・)

2011-08-02

rubyで帳票を作るのに便利そうなThinReportsがバージョンアップしていた

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
一度、Rubyで帳票を作るのに便利そうな
ThinkReports
を以下で紹介させていただきました。
rubyで帳票

そのThinkReportsがバージョンアップしてpreview3になった模様です。
preview3ではpdfの出力ができるようになったようで、かなり便利そうです。
また画像もレポートに入れることが出来るようになった模様です。

以前のpreview2とはかなり変わっているようですので試してみました。

利用するには以下の2つが必要なようです。
・ThinReports Editor:帳票デザインツール
・ThinReports Generator for Ruby:帳票作成環境

インストール方法は、
http://osc.matsukei.net/projects/thinreports/wiki/Installation_Guide
を見ればよいのですが、それぞれ以下のような感じです。

・ThinReports Editorのインストール
Windows環境で作業を行います。
http://www.thinreports.org/download/
から最新版をダウンロードしてインストールする。

・ThinReports Generator for Rubyのインストール
linux環境で実行します。
su -
gem install thinreports --pre


で使い方です。

まずは帳票のデザインをします。
http://osc.matsukei.net/projects/thinreports/wiki/Getting_Started
こちらを見ればなんとなく使い方がわかります。
データを当てはめるところにしっかり名前をつけておけばよい感じです。
以下のような感じのを作ってみました。
日本語を使う場合は、IPAフォントを以下から取得してインストールする必要があります。
http://ossipedia.ipa.go.jp/ipafont/index.html

preview2で作ったものは、preview3では使えなくなっていました。
今回は大きく変わっているようなので仕方がないとは思いますが、正式リリース時にはpreview3で作ったものも利用できるようになってもらいたいです。
そうでないと、導入するのに躊躇しちゃいますからねぇ。

デザインしたものにデータをはめ込み、pdfを作成するのは以下のような感じです。
ちなみにThinReportsではruby1.9.2を推奨しているようですが、都合により1.8.7で試しています。
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-

require 'rubygems'
require 'thinreports'

report = ThinReports::Report.new :layout => 'test_test.tlf'
report.start_new_page do |page|
  page.item(:aaa).value('おらおら')
  list = page.list(:test_list)
  data = [['コード1','おなまえ1','バルバル'],
          ['コード22','おなまえ12','バルバルバル'],
          ['コード22333','おなまえ12345','バルバルバル場るバルバル'],
          ['コード2233344455555','おなまえ1234567890','バルバルバル場るバルバルバリバリバリバリ'],
          ['コード2233344455555667788','おなまえ1234567890なまえ~~~~','バルバルバル場るバルバルバリバリバリバリバロバロバロ'],
         ]
  data.each do |d|
    list.add_row do |row|
      row.item(:code).value(d[0])
      row.item(:name).value(d[1])
      row.item(:valval).value(d[2])
    end
  end
end

report.start_new_page do |page|
  page.item(:aaa).value('オラオラオラオラオラオラオラオラオラオラオラオラオロオラオラオラオラオラオラオラオラララララララララララララ')
  list = page.list(:test_list)
  for i in 0..50
    list.add_row do |row|
      row.item(:code).value('code' + i.to_s)
      row.item(:name).value('name' + i.to_s)
      row.item(:valval).value('valval' + i.to_s)
    end
  end
end

File.open('test_out.pdf', 'w') do |f|
   f.puts report.generate(:pdf)
end

puts 'Done'

上記のレポートレイアウトファイルとレポート出力サンプルプログラムをいかにおいておきました。
https://github.com/vivahiraj/thinreports_sample

このプログラムで作成されたPDFファイルは以下のようになります。
https://docs.google.com/viewer?a=v&pid=explorer&chrome=true&srcid=0Bx24kLioozIcMjk3MTRlNzMtNjQxYy00N2I4LTg3MzItODZhMmFmM2MwY2Ri&hl=ja

なかなかよさげです。
本番リリースでは、preview3で使ったものが、そのまま(もしくは若干の修正で)使えるようになっているとうれしいですね。





2011-08-01

WBS「トレたま」で放送された商品をAmazonで検索してみた(201107放送分)

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
WBSのコーナーの「トレたま」で放送された商品をAmazonで検索してみました。

自宅で簡単フォトブック (放送:7月29日)
 見つかりませんでした

携帯バイブがパワーアップ (放送:7月28日)
 amazonにありました
 パワーアップ携帯電話バイブ

好きな声ナビ (放送:7月27日)
 見つかりませんでした

ジッパー式イヤホン (放送:7月26日)
 amazonにありました
 ジップアップ インナータイプ イヤフォン「Zipbuds(ジップバズ)」 ピンク
 Zipbuds(ジップバズ) / Tangle-Resistant Earbuds (Black with Pink) - イヤホン - 【直輸入】
 Zipbuds(ジップバズ) / Tangle-Resistant Earbuds (Pink with White) - イヤホン - 【直輸入】

ツイッターが新聞に (放送:7月25日)
 見つかりませんでした

寝てても安心! (放送:7月22日)
 amazonにありました
 快眠防災まくら

自動ブレーカー切断装置 (放送:7月21日)
 amazonにありました
 スイッチ断ボール ※地震時に自動的にブレーカーを落とし、通電火災を防ぎます!
 スイッチ断ボール ※地震時に自動的にブレーカーを落とし、通電火災を防ぎます!
 スイッチ断ボール ※通電火災防止グッズ!低コストで登場!

球体掃除機! (放送:7月20日)
 amazonにありました
 BLACK&DECKER orb(オーブ) 【CD1枚程のスペースに収まる】 充電式ハンディクリーナー パールマジェンタ ORB48PM
 BLACK&DECKER orb(オーブ) 【掃除機に見えない球体デザイン】 充電式ハンディクリーナー ホワイト ORB48W
 BLACK&DECKER orb(オーブ) 【掃除機に見えない球体デザイン】 充電式ハンディクリーナー ブラック ORB48B

貼って作る名画! (放送:7月19日)
 見つかりませんでした

天気で変わる水やり機 (放送:7月18日)
 見つかりませんでした

家電を操る魔法のつえ (放送:7月15日)
 amazonにありました
 WAND 13種類のジェスチャーを記憶させられる杖型学習リモコン カイミラ魔法の杖 KYMERA WRC10209
 WAND 13種類のジェスチャーを記憶させられる杖型学習リモコン KYMERA WRC10209
 WAND カイミラ魔法の杖 13種類のジェスチャーを記憶させられる杖型学習リモコン KYMERA WRC10209
 WAND カイミラ魔法の杖 13種類のジェスチャーを記憶させられる杖型学習リモコン KYMERA WRC10209【並行輸入品】
 WAND カイミラ魔法の杖 13種類のジェスチャーを記憶させられる杖型学習リモコン KYMERA WRC10209
 学習リモコン【KYMERA WAND BEARER カイミラの魔法の杖 WRC10209】【正規品】
 WAND 魔法の杖 KANDELA LEDマジックキャンドル
 カンデラの魔法の杖 Kandela Wand & Candle pack ※カイミラの魔法の杖の第2弾!キャンドルをつけたり消したり自由自在!
 カイミラの魔法の杖 KYMERA WAND BEARER ※イギリス生まれの魔法の杖の形をした学習リモコン!
 カイミラの魔法の杖 KYMERA WAND BEARER ※イギリス生まれの魔法の杖の形をした学習リモコン!

火花が消える (放送:7月14日)
 見つかりませんでした

自分を抱きしめるウエア (放送:7月13日)
 見つかりませんでした

ちっちゃ~いトイデジカメ (放送:7月12日)
 amazonにありました
 CHOBi CAM ONE HD【ちょビッカム ワン HD】
 CHOBi CAM ONE ちょビッカム ワン
 防水 CHOBi CAM WP シルバー ちょビッカムWP

エアタッチシステム (放送:7月11日)
 見つかりませんでした

クール寝袋 (放送:7月8日)
 見つかりませんでした

“ショットガン”虫取り機 (放送:7月7日)
 amazonにありました
 【虫捕りグッズ】虫ハンター Mushi Hunter (Fly-GoodBye)
 虫ハンター Fly-GoodBye 2個セット ※電池、薬剤不要!強力な吸引力で一気に虫を吸い獲る!

手書き電子メモ帳 (放送:7月6日)
 amazonにありました
 KING JIM ハンディメモ「マメモ」 ブラック×ブラック TM2クロ

音声認識エレベーター (放送:7月5日)
 見つかりませんでした

2役こなす水筒 (放送:7月4日)
 amazonにありました
 マックマー Twin Cap Bottle ティーフリー グリーン 500ml AA0026
 マックマー Twin Cap Bottle ティーフリー ブラウン 500ml AA0025
 マックマー Twin Cap Bottle ティーフリー ブラック 500ml AA0024

楽々測定 健診スキャナー (放送:7月1日)
 見つかりませんでした

今月は毎日、腹筋をしてみよう月間にしてみる

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
ぽっこりお腹がキニナル今日この頃です。

なので今月は、毎日10回でも20回でも、ちょっとでもいいから腹筋をしてみようと思ってみました。

さてさて続けられるでしょうか?

2011-07-31

今月は毎日、ブログを更新してみた

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
今月は、とりあえず毎日ブログを更新しようと思ってみて、なんとか毎日ブログを更新することが出来ました。

とりあえず一月続けてみて、
毎日続けている人はすごいなぁ
とつくづく思いました。

毎日となると時間がない日があることを踏まえて
書くことのストックをしておかないと続かないです。
多いときで5個ぐらいストックしてみました。

続けてみて、
いずれやろうと思ってほったらかしていたことをやれた
ことが良かった点です。
記事にするために、もうちょっとで終わるのに
という状態のものがいくつかあったのですが、それを片付けることが出来ました。

一方、ブログ書くことに時間を取られて
まだ始めたばかりのことに対して時間をあんまり割り当てることができない感じでした。

毎日続けるためには、記事を書くためのネタ作りの仕組みが必要だなぁと思いました。
あまり人が見ていない情報をウォッチしていて、それをわかりやすく加工して提供する

みたいなフローを作っておくと良い感じです。
技術ネタで書くには、毎日相当いろいろいじってないとネタがすぐ尽きてしまいます。

とりあえず私の場合、このペースを維持するのはかなりしんどいので
普通のペースに戻ることにします。
前よりかは更新の頻度はあがるような気はします。

ちなみにアクセス数は、日に170ぐらいに一応あがっているようです。


2011-07-30

rubyでAndroidアプリが作れるRhodesをインストールしてみる

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
rubyでAndroidアプリが作れるRhodesというものがあると知り試しにインストールしてみました。
Rhodesは同じソースでAndroidアプリだけでなくiOSアプリも作れるそうです。
http://rhomobile.com/products/rhodes/

インストール方法は以下のような感じです。

以下が済んでいることが前提です。
・JDKインストール済み
・rubyインストール済み
ちなみにこの手順はWindows環境で試しました。他の環境でも同じようにできるとは思います。
・Android-SDKインストール済み
C:\android-sdk
にインストールしています。
そしてAndroid3.0系はインストールしないようにします。
・Android-NDKインストール済み
C:\android-ndk
にインストールしています。
android-ndk-r5bをインストールします。

rhodesのインストールは
gem install rhodes
でOKです。

インストール後にrhodesの設定をします。
コマンドプロンプトで
rhodes-setup
を実行。
いろいろ聞かれますが、以下以外は空白でOKです。
-----------------------
We will ask you a few questions below about your dev environment.

JDK path (required) (C:/Program Files/Java/jdk1.6.0_24):
Android SDK path (blank to skip) (): C:/android-sdk
Android NDK path (blank to skip) (): C:/android-ndk
-----------------------

これでOKです。

これで以下で紹介されているものを試します。
http://www.kouboum.co.jp/rhodes/02_make_rhodes_application.html
ファイルの文字コードはUTF-8で保存しましょう。

rake run:android
したときに、
Error!!! Wrong Android API version
みたいなエラーが出て実効できなかったときは、
rhodesが対応していないandorid-sdkのバージョンが入っていることが原因の模様です。
現在、3.1はサポートされていないようです。
なので面倒なので3系は削除しておきます。
(インストールしておいても設定でなんとかなるのかもしれませんが・・・)

上記のエラーの他に
Can't detect NDK toolchain path (corrupted NDK installation?)
みたいなエラーが出たときは
対応していないandorid-ndkのバージョンが入っていることが原因の可能性があります。
android-ndk-r5b
ならダイジョブのようです。

rhodesでどこまでできるのかわからないですが、rubyでandroidアプリが作れるということでたまにいじってみようかなぁとか思っています。



2011-07-29

暑くて寝苦しい夜はATEX エアコンマット「SOYO(そよ)」がキニナルのです

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
暑く寝苦しい日が続きますね。
今年はクーラーとか使うのはちょっとためらわれます。

しかし暑いのです。
というわけで
ATEX エアコンマット「SOYO(そよ)」
がキニナルのです。



これを敷いて寝るとマットに風が送られて朝までサラッとした布団で眠れるようです。
涼しくなるというよりも、じめっと寝苦しくならないという感じのようです。

気持ちよく眠れることが目的なので涼しくなくてもいいのかなとか思います。

ジェル状マットみたいのも売っているようですが、最初はよいけど時間がたつと体温であったまっていまいちみたいなことを聞きます。

シングルならば上半身だけなんとかなればよいと思うのでハーフで十分そうですね。
お値段もお手頃ですしね。

うちではダブルを使っているので、普通サイズでないとダメそうなのですが、普通サイズは少々お高めなのですよねぇ・・・

2011-07-28

windows環境にrubyをインストール。ついでにexerbもインストール

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
windows環境にrubyをインストールする手順です。

http://rubyinstaller.org/downloads
からRubyInstallerを取得します。
ここでは
rubyinstaller-1.9.2-p290.exe
をダウンロードしたと仮定して話を進めます。

rubyinstaller-1.9.2-p290.exeをダブルクリックします。
インストール場所をc:\rubyにして、PATHを通すとかは全部とりあえずチェックします。
rubyはこれで完了です。

このままだとgemでインストールするときにmakeされるようなものは、うまくインストールできません。

なのでgemでいろいろインストールするときに困らないようにするために
http://rubyinstaller.org/downloads
からDevelopment Kitもダウンロードしてインストールします。 c:\ruby\DevKit というディレクトリを作成します。
ここでは
DevKit-tdm-32-4.5.2-20110712-1620-sfx.exe
をダウンロードしたと仮定します。

c:\ruby\DevKit
に
DevKit-tdm-32-4.5.2-20110712-1620-sfx.exe
を配置してダブルクリックしてファイルを解凍します。

コマンドプロンプトで
ファイルを配置したディレクトリに移動してから
cd c:\ruby\DevKit
以下を実行
ruby dk.rb init

これで
config.ymlが作成されるので内容を確認します。
rubyがインストールされている
- C:/Ruby
が記載されていることが確認できればOKです。

そしてもう一度コマンドプロンプトで
ruby dk.rb install
を実行すればOKです。

あんまり使うことなさそうですが、いざというときに
便利そうな気がするrubyスクリプトをexe化するツールexerbもインストールしておきます。
http://exerb.sourceforge.jp/
からファイルを取得します。
ここでは
exerb-5.3.0.zip
をダウンロードしたと仮定します。

exerb-5.3.0.zipを解凍して
作成されたディレクトリの中の
bin/post-setup.rb
の6行目を
if /mswin32|mingw32/ =~ RUBY_PLATFORM
のように変更します。
これはWindows環境にRubyInstallerでRubyをインストールした場合、
exerbのbatファイルがうまく作成されないので修正をしています。

そして
setup.rb
をダブルクリックして実行すればインストール終了です。





2011-07-27

Androidアプリに自前のアイコンを設定する

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
まだ
Hello Android!
も試していないのですが
アプリのアイコンを自前のものに変更する方法です。

独自アプリのアイコンはPNGで作成してサイズは
72×72
48×48
36×36
の三種類用意すると良いようです。
サイズは上記の感じですが、ぎちぎちに絵を描いてはいけないようです。

(追記2011-11-09:Android Marketに出すならば512×512もあった方がよいです)


詳しくは、以下が参考になります。
http://blog.asial.co.jp/693

で作ったアイコンですが、icon.pngという名前で以下のフォルダにそれぞれ置くとよいようです。
res/drawable-hdpi
 72×72のもの
res/drawable-mdpi
 48×48のもの
res/drawable-ldpi
 36×36のもの

drawable-*dpiが存在しない場合は作っておけばOKです。

以下のサイトを参考にさせていただきました。

さてHello Android!をやってみなくては!





2011-07-26

sshとapacheの認証でActiveDirectoryと連携する

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
CentOSの環境でsshでログインする際に
Windows環境のドメインネットワークがあって、
そこのパスワードを利用してログインできるようにする方法です。

よくあるのはLDAPでの連携のようなのですが、なんかLDAP側でもなんかしなくてはいけない気配です。
なのでケルベロス認証の方で連携を行います。

ActiveDirectoryの構築に関しては特に説明はなしです。

rootユーザで実行します。
su

pam_krb5をインストール
yum -y install pam_krb5

連携する設定
authconfig-tui
---------------------
ユーザ情報:
認証:
「MD5 パスワードを使用」にチェック
「シャドウパスワードを使用」にチェック
「Kerberos 5 を使用」にチェック
「次」
レルム:MY_DOMAIN ← 利用するWindowsドメイン名
KDC:pdc.xxx.jp:88 ← プライマリードメインサーバ
管理サーバ:pdc.xxx.jp:749 ←プライマリードメインサーバ
DNS を使用してレルムのホストを解決する:チェック
DNS を使用してレルム用の KDC を見付ける:チェック
「OK」
---------------------

authconfig-tuiで設定を行うと以下のファイルに設定内容が反映されます。
/etc/krb5.conf
/etc/pam.d/system-auth

CentOS上にWindowsドメインネットワーク上のユーザと同名のユーザを作成
パスワードの設定は不要です。
useradd -m user1

とりあえずローカルホストに接続して連携できているかを確認
ssh localhost -l user1


接続がうまくいかない時などはdebug情報を出すには
/etc/pam.d/system-auth
を編集して以下のようにdebugを追加すると
---------------------------
auth sufficient pam_ldap.so use_first_pass debug
---------------------------
/var/log/secure
に出力されます。


ついでにapacheでも連携する方法です。
mod_auth_kerbを利用します。

apacheインストールの説明は別途検索してください。
また上記のsshの設定が済んでいることが前提です。

mod_auth_kerbをインストール
yum -y install mod_auth_kerb

設定
vi /etc/httpd/conf.d/auth_kerb.conf
以下のような感じで設定
-----------------------------
<location /test_krb_auth>
AuthType Kerberos
AuthName "Kerberos Login"
KrbAuthRealms MY_DOMAIN ← 利用するWindowsドメイン。sshで指定したのと同じ
KrbVerifyKDC Off
KrbMethodNegotiate Off
require valid-user
</Location>
-----------------------------

これでREMOTE_USERに
username@my_domain
のようにrealm付きでセットされるようになります。

ちなみにmod_auth_kerbのversionが5.4以上ならば
KrbLocalUserMapping On
とすることで上記の@以降のrealmが除去される模様です。