2012年9月30日日曜日

RailsのI18nをちょっと便利にする方法

RailsのI18nを使っていて不満だったのが、
新規登録画面や、編集画面のような、フォームの中であれば、
<%= f.label :family_name %>
のように、フォームのラベルメソッドを利用するだけで、
自動でI18nのロケールファイルを利用してくれるのに、
参照画面や一覧画面のような、フォーム外の場所だと、
いちいち、
<%= t activerecord.attributes.person.family_name %>
のように、長いキーを指定しないといけないところでした。
これをちょっと改善する、コードを書いてみました。

ActiveRecodeの拡張

以下の内容のrubyファイルを、config/initializersに配置する。
class ActiveRecord::Base  
  # class methods
  class << self
    # ロケールファイルに定義された、モデルや属性の表示名を取得する。
    # 引数は属性名の文字列かシンボル。引数を省略するとモデル名を取得できます。
    def label(field=nil)
      key = "activerecord."
      if field
        key << "attributes." << self.name.underscore << "." << field.to_s
      else
        key << "models." << self.name.underscore
      end
      return I18n.t key
    end   
  end  
end

使い方

Personというモデルに、family_nameという属性がある場合の例。labelメソッドの引数は属性名を表す文字列かシンボル。引数を省略すると、モデル名が取得できます。
<%= Person.label :family_name %>

わざわざ、ActiveRecord::Baseのメソッドにしなくても、 普通にApplicationHelperに、t_modelメソッドみたいなものを作れば良かっただけの話だな、 と後から気づいたものの、せっかく書いたのでアップします。。

2012年4月13日金曜日

Pixelmator 逆引きメモ

Pixelmatorを使っていると、いつも同じところでやり方を忘れている気がするのでメモ。

回転

レイヤーの回転:メニューバー -> 編集 -> 中段あたり
キャンバスの回転:メニューバー -> イメージ -> キャンバスの回転 

2012年2月4日土曜日

オススメMacアプリ--常に更新予定--

家ではMacです。気に入っているアプリを紹介します。

プログラミング用エディタ:Fraise
TextMateは有料なので、こっちにしました。
これで十分かと思っていましたが、
プログラミングするには、ディレクトリー・ツリーを表示するような機能が欲くなり、最近はあまり使っていません。
Sublime Textで決まり!でも、github製のatomも気になる。。

プログラミング用IDE:Aptana Studio
Rails用IDE。数年前に最初にWindows版で試したときは、重くてすぐ固まっていたので、使っていませんでしたが、最近また使い始めました。
マシンスペックがよくなったからか、Aptanaがよくなったせいか分かりませんが、最近はあまりストレス感じません。

スマホアプリ開発用ツール:iOSシュミレーター
xcode付属のiOSシュミレーター。
xcodeをインストールしてからでないと、インストールできないが、
xcodeとは別アプリなので、単体でも動かせます。
僕はiOSシュミレーターだけドックに登録して、
単体で使うようにしてます。

写真・画像編集:Pixelmator
App Storeで買いました。この価格でこの機能とは!
Ado某のソフトは高いから、、

YouTubeから曲やビデオを落とす:FastestFreeYouTubeDownloader
そのまんまの名前ですね、、

動画再生ソフト:VLC
これに再生できない動画はないと思わせてくれる。

DVD作成ソフト:Burn
iDVDやToastといった有償ソフトが有名らしいですが、こちらは無料です。
一般のDVDプレーヤーで再生可能なDVD-videoフォーマットでDVDを焼くことができます。
ディスク名を日本語にしてしまうと、再生不可能なDVDが出来てしまうので、
ディスク名は必ず半角英数でつけるように注意。
PAL/NTSCは、NTSCを選択すること。

ウィルス対策ソフト:avast!
無料のアンチウイルスソフト。
今までずっとMacにはウィルス対策は不要と、何もしてこなかった訳ですが、
Macが攻撃されない理由はどこにも無い訳で。。
avast!は、無料で、かつ動作が軽快な点が気に入って、Windowsマシンで長年愛用してきたのですが、Mac版もあると知って、さっそく入れてみました。
今までMacでウィルス感染したことがないので、avast!のウィルス対策の効果のほどは分からないのですが、少なくとも、avast!が常駐していることで、動作が重くなったり、他のソフトの妨げになるようなことはないので、満足しています。


2012年1月21日土曜日

Amazon Linux で Node.jsを動かす手順

Amazon EC2 で、Node.jsサーバをたててみたので、手順をメモします。
マシンイメージは、無料枠で使える、amazon-linux-amiを使っています。
Node.jsのインストールには、naveというNodeのビルドツールを使いました。

1)
naveツールが内部で使用しているコンパイラをインストールする。
ついでに、OpenSSLのデベロッパーツールも入れます。
(入れないと手順4でnodeのコンパイルに失敗します。)
yum install gcc gcc-c++
yum install make
yum install openssl-devel

2)
gitのインストール(naveをgithtubから落とすため。)
yum install git-core

3)
naveをgithubから落とす。
git clone git://github.com/isaacs/nave.git

4)
naveを使って、最新のnodeをコンパイル。(時間がかかります。)
cd nave
nave.sh install latest

5)naveコマンドで最新のnodeを使うように指定する。
nave.sh use latest

以上で、nodeコマンドで、Node.jsが使えるようになります。

以下を参考にさせていただきました。ありがとうございました。
# というか、ほとんど、丸写しですね。
Amazon Linuxでも同じ手順でOKだったと検証したということで。(^^;



2012年1月7日土曜日

JavaでString.splitのセパレータを|(パイプ)にしてはいけない?

なぜか、セパレータを|(パイプ)にしたら、一文字ごと分割されたString[]が返されたのでメモ。
内部で|を使っているのか?

2011年12月29日木曜日

Androidアプリ公開しました!

ラジオで流れている曲の曲名を確認するためのとても簡単なアプリです。
「NowOnAir Tokyo」という名前です。
内容の軽いアプリなので、見た目の印象も軽くなるようにこだわりました。

web接続部分のバックグラウンド処理化や、Tweet機能の追加など、
まだやれてない部分も多いのですが、よかったら触ってみてください。

https://market.android.com/details?id=jp.gr.java_conf.daisuke6810.nowonair

初めてAndroid Marketで公開しました。
本当にほとんど無審査なんですね。
作成者側としては楽ですが、利用者としては注意しないと。

2011年12月28日水曜日

HTMLのエスケープとアンエスケープ@Android



アンエスケープの例)

import android.text.Html;
String unescapedStr = Html.fromHtml(escapedStr).toString();

自分で文字列をreplaceとかしなくて良し。