携帯向けのmail_to

とりあえずRailsで3キャリア対応のサイト作ったりしてるんだけど、携帯端末のメーラに題名や本文を渡して立ち上げさせるのがちょっと面倒。
mailtoだと認識してくれないのでaタグのhrefに"mailto:hogehoge"と書かないといけない。

そんときにパラメータでsubjectやbodyにエスケープされた日本語文字列を渡せばちゃんと題名や本文が入った状態でメーラが立ち上がってくれる。
んだけど、最近のソフトバンク端末はutf8、それ以外はsjisの日本語文字列を渡さないとどっかのキャリアで文字化けしちゃう。


そんなわけでapplication_helper内にmobile_mail_toみたいなのを用意。jpmobileを使ってる前提です。

def mobile_mail_to(email_address, name, html_options = {})
  html_options = html_options.stringify_keys
  subject, body = html_options.delete("subject"), html_options.delete("body")
  
  # subjectとbodyをエンコード
  encoded_subject = mailto_string subject
  encoded_body    = mailto_string body
  
  "<a href=mailto:#{email_address}?subject=#{encoded_subject}&body=#{encoded_body}>#{name}</a>"
end

# mailto用文字エンコード変更
def mailto_string(strings)
  return "" unless strings
  result_string =""

  # ソフトバンクの以外はsjis化、ソフトバンクはutf8化してからエスケープをかける。
  unless request.mobile.is_a?(Jpmobile::Mobile::Softbank)
    result_string = CGI.escape(strings.tosjis)
  else
    result_string = CGI.escape(strings.toutf8)
  end

  result_string
end

これで

mobile_mail_to 'info@hoge.com',
               '会員登録',
               :subject => 'このまま送ってね',
               :body => '会員登録用のメールでーす'

みたいにすれば"会員登録"という文字にmailto用のリンクを張ってくれて、クリックするとメーラに題名と本文も入れてくれる。

もう少しやるなら、mail_to自体をオーバーライドしちゃって携帯端末じゃなければ普通のmailtoで出力して、携帯端末ならこのmobile_mail_toに渡すのがよさそうですね。

imodeのdivタグで左寄せ

メモメモ

<div style="text-align:center;">
  <!-- 中略 -->
  <div align="left">
    hogehoge
  </div>
</div>

って書くとhogehogeはセンタリングされて表示されるのかな。

<div style="text-align:center;">
  <!-- 中略 -->
  <div style="text-align:left;">
    hogehoge
  </div>
</div>

こうやったら左寄せになった。携帯はようわかりゃん。

つまりあれだalignやりたいならstyle内でやれと。

またつまらぬことを書いてしまった

easy peasy使うよりもUbuntu Netbook Remix

以前はeeePC901でeasy peasyを使ってたんだけどUbuntu9.04出たし、Netbook Remixも出てたしインストールしてみたら見た目も使い勝手もeasy peasyとどう違うのかわからないくらいのものになってるんですね。

てなわけでコミュニティやプロダクトチームも強力そうなUbuntu本体の方に移行しました。
快適に使えてるし、起動画面がかっこよくなってたりして満足です。

でも、Ubuntuが進めてるクラウドコンピューティングとかそういうのはよくわからない^^;

Xmarks for safariを使ったら保存してるパスワード消えた

題名のままで終わりなんだけど、firefoxと共有どころかsafari4では保存してるパスワードが消えてしまいました。
ざんねんな気分です。


えーっと。mixiのIDとpassはなんだったっけな。
ブラウザに保存させるなんて常識的に考えてほにゃらほにゃ。

Ubuntuで使うエディタGeany!

以前、Ubuntuで使うエディタ - マグネシウムライトというエントリを書いてそれからずいぶん経ったのですが、Bluefishを推しておきながらやっぱりgeditでいいやとちょっとしたことはgedit他はeclipseでプログラム書きという落ち着き方をしてました。
大きめのWebアプリを開発してばっかだったのでこれで事足りてしまってたんです。

でも、それだとちょっとsnippet 的なものを書く意欲も沸かないしよくないよなーとぼんやり思ってました。


そしたら昨日、通りすがりの方からコメントが!

LinuxならGeanyなんかもおすすめですよ!

おお!?

早速Geany : Home Pageへ。
なんだか良さそうなのでインストールしてみました。ついさっき入れたばっかであまり使ってないけど良さそうです。
僕のではアプリケーション>追加と削除ではいけなかったんですが、パッケージマネージャ(apt-get)で簡単にインストールされました。
メニューもアプリケーション>プログラミングのなかに入ってくれました。


とりあえずパッと見で日本語化がばっちりされてるのにびっくり。
そして下のタブから「端末」を選ぶとコンソールが開いて普通にコマンドが打てるのにも感動!こういうのが出来るとEmacsにも負けないもん!って気持ちになれますw
小さくなっちゃったけどこんな感じ。

いーなーこれ。
たまに日本語入力がインラインで出来ないものもあったりするんですが、それも大丈夫。うれしいうれしい。
どなたか知りませんが教えてくれてありがとうございます。


しかし、いまだに「linux使うのにえくりぷすぅー?」と言われそうな気がしてびくびくしちゃう。Vimとかemacsだろと言われそうなのは気のせい?まあ、チキンで被害者妄想的なところあるんでw気にしない気にしない

lazy-ssh-agentはとても便利なんじゃね?

最近sshを使って作業することが多いんですが、なにしろwebサーバ数台、dbサーバ数台に入るので認証エージェントの転送をしないとめんどくさいのです。

んで、ここらへんはよく分かってないんですが、毎回

eval `ssh-agent`
ssh-add

ってやるのはさらにめんどくさいです。
eval `ssh-agent`については毎回やらなくても出来る方法あるのかもしれないけど、サーバの完全なadminではないし微妙に自分のサーバじゃないという事情もあって、とにかく上記の操作を毎回やらないで済む方法を探してました。

そしたら教えてもらったのが
http://nanabit.net/softwares/shell-script/lazy-ssh-agent.html
lazu-ssh-agent!!!
これを書いてらっしゃる方も同じ事でめんどくさい思いをしてたらしい。


なにが素晴らしいってこれを.bashrcに入れておけばssh,scp,sftpを使うときに忘れずにeval `ssh-agent`を打たなくて済むようになる!
あの、ssh-agent動かすの忘れてssh打ったりcapistrano動かしたりして、「おまえ誰だ?パスフレーズ入れろ」とか言われなくなる。

なにも気にせず、

ssh -A hoge

って打てばssh-agentが立ち上がってくれるざます。

で、ちゃんと.bash_logoutでcleanをしておけば安心。今のところ気分良く使わせてもらってます。ありがとうございます。


ただ作者さんも言ってるけど、セキュリティホールってどうなんだろう?通信ものって苦手で良く分からない。。。やってることはssh-agentを立ち上げてssh接続とかなんでそんなにかわらなそうだと思うけど。

Ubuntuで使うエディタ

まだEeePCでどんくらいプログラムを書くことになるか分からないけど、小さいマシンでちょびちょびコードを書くというのはかなり好きな行為なのでやっぱりエディタをどうしようかということになる。

EmacsだろとかVimだろとかいやいやeclipseだとかそういう話になりがちなところだけど、EmacsとかVimとかコマンド憶えなきゃコピペも出来ないようなエディタに用はないです。僕はね。
だって、2003年に初めて就職したときの研修がViでCを書き続けるもので、Viの操作が心の底まで染み込んで家でWindowsのメモ帳を操作するときもViのキーバインドで操作しようとしてむやみに"i"を打ち込んだりしちゃってたけど、会社辞めて一月もしない間にキーバインドは忘れてしまった。
でもコピペはどのOSでもCtrl+c→Ctrl+vだ。*1

で、eclipseはいいんだけど、"エディタ"と呼ぶには少し抵抗がある。
"プロジェクト開発環境"って感じがする。とりあえずプロジェクトだのなんだの関係なく突然コードを書き始めるとか出来ないのはめんどい。プロジェクトやるぞ!って気分とか仕事では大好きなんで使ってますけどね。eclipseIDEであってエディタではないというかなんというか。
あと、eclipseはやっぱEeePCにはちょっときつい(笑
解像度的にも処理能力的にも。

EmacsでもVimでもeclipseでもないエディタ

"linux エディタ"って検索するとEmacsのページとViのページがぞろぞろと出てきて代替のエディタが見つからない。こりゃ困難の道だ。

gedit

とりあえずUbuntuにはgeditが入ってたけど、これはまあ"メモ帳"ですかね。これはこれで大事。だけど足りないかな。


なんかいろいろ見てるうちにHtmlエディタから進歩したエディタが良さそうな気がしてきた。こんな感じの記事も発見したし。
レビュー:3つのLinux用HTMLエディタ | OSDN Magazine
個人的にはこの二つがいい具合。

Bluefish

HtmlエディタなんだけどRubyのカラーテーマも入ってるし、デフォルトで左側にディレクトリツリーが表示されててこれがTextMateを彷彿とさせる。
まだ少ししか使ってないけど軽いしまさしくエディタ。
アイコンがたくさん表示されて、でも難しくなさそうな外観。
補完とかは今のところ見当たらない。

Quanta plus

見た感じBluefishよりHtml関連の操作が充実してるみたい。
外観はBluefishより本格的。言い方を変えれば複雑な印象。そしてその分重めかもしれない。
きっとHtmlをごりごり書くにはいいんだろうな。

とりあえずBluefish

とりあえずのところBluefishがしっくりきた。
カラーはちゃんとRubyに対応してるし、ディレクトリツリーの使い方でさっとTextMateっぽい見た目になった。補完は全然できないっぽいけど、まあRubyだし。
変なキーバインドないし、僕みたいなにわとり並の記憶力の人間でも使えます。

*1:まあ、いろんなOSがあるけど僕が使うようなOSはね