2008-08

すばらしいプレゼンテーション

 

 まったく同じ悩み(上達しない、MLこわい、etc...)を抱えながら毎日を過ごしているので、とてもとてもとても勇気づけられた。噂には聞いていたけれど、なんて温かいプレゼンテーションなんだろう。スティーブ・ジョブズ的神懸かり系プレゼンテーションとはまた異なる種類の感動、異なる種類の発見のあるすばらしいプレゼンテーションだと思った。俺もがんばろう!!

Ruby で UTF-8 の全角文字列を Shift_JIS に変換する方法

 Windows 環境下で全角文字列を処理していて、ちょっと詰まったのでメモ。

■ソース
require 'nkf'
puts "ああああ"
puts NKF.nkf("-sm0W8x", "ああああ")


■実行結果
縺ゅ≠縺ゅ≠
ああああ


 Windows のコマンドプロンプトやら何やらは Shift_JIS で、Meadow さんは UTF-8 なので、素の全角文字列そのまま puts すると化ける。なので、NKF を使って Shift_JIS に変換してから puts してあげる。恥ずかしながらnkfを使ったことがなかったのでオプションを特定するまでに手こずった。これで Excel だとか CSV に DB の内容をはき出すような処理も大丈夫。

■参考にさせていただいたURL
・nkf - Rubyリファレンスマニュアル
http://www.ruby-lang.org/ja/man/html/nkf.html
よく読むと必要なことは(多分)すべてここに書いてあるけど、リファレンスなので読み解くのが少し面倒。

・UTF-8で書かれたファイルをshift-jisに変換したい -OKWave
http://okwave.jp/qa3357525.html
なので、Ruby の NKF.nkf でなく、普通の nkf で UTF-8 → Shift_JIS 変換するケースを調べたら見つかったので、ここからオプションの指定方法(-sm0W8x)をいただきました。

・Life with Cygwin 5 (5.4 nkf コマンド)
http://www.okisoft.co.jp/esc/cygwin-5.html
文字列単位でなく、ファイル単位でよければ nkf や iconv を外部コマンドとして使う方法のほうが簡単かもしれない。

■その他
以前、Windows から DVD-R 経由で Ubuntu に MP3 ファイルをコピーしたときにファイル名がことごとく文字化けしたときは convmv を使った。ファイル名の変換であれば、外部コマンドで convmv を使ったほうがずっと簡単だと思う。

Windows Server で rails アプリケーションを動かす方法とかその他独り言

 ここ半年くらいRuby on Railsで地道に作っていたWebアプリケーションがそろそろリリースできそうなので、どういう環境で動かすかをちょこっと検討。社内システムなので既存のWindowsのサーバを使わなくてはならず、そうするとmod_railsは(簡単に調べてみたらWindowsでの動作実績が少ないので)使いづらそうだなーということで、 MONNGIFTさんで知ったWindows Rails App launcherを使うことにした。これからいくつかの機能を実装して7月末に完了予定。

 しかし、こういうときWindowsは不便だなぁと思う。日常的な用途も含めてぜんぶ一台で済ませるならUbuntu、開発に特化するならDebianかなと。便利そうな開発ツールのインストール方法をググると大抵はDebianでapt-get installしているように見受けられます。先日、Ubuntu 8.04を使ったらMP3の再生やDVDの再生も以前ほど難しくなかったし、今後はLinuxメインに切り替えていったほうがいいのかもなぁ。…いや、Visual Web Developerを使えばよかっただけか。MicrosoftやIDEを毛嫌いして上手に使い分けられないところが問題なんだ。

 しかしながら、いやはや、昼間は昼間でお客さんの仕事をしながら別のソフトウェアをそれなりに動く状態まで作り込むのは自分には大変な作業でした。普段使っているフリーソフトウェアの開発者や参考にさせてもらっているブロガーの方々は本当にすごいなーと思いました。一時は考え込みすぎて精神的に参ったりしていた。そんな状態で「志田さん毎日楽しそうですよねー」とか言われると少々イライラしたりもした。仕事もプライベートも楽しいけど人並みに苦労はあるし、それを楽しむための努力をしているから楽しいわけで。簡単に楽しそうだねだのと言われるのはあまり気分のよいものではない。Shut the fuck up and write some code 羨んだり妬んだりする資格を得られるのは、そのあとだよ。

 8月からは10月の国家試験にそなえて勉強+Ubuntuの常用にチャレンジしていきたい。仕事には役立たなそうだけど。

 20080714.jpeg

 ぜんぜん関係のない話になるけど、川に行って鮎を手づかみしたり、刺身や塩焼きや炊き込みご飯を食ったりしてきました。写真はその川の周辺の民家のご家族であるところのお犬様。女の子ですが、水の流れのなかで勇ましく立っております。人懐っこくて超かわいかった。びしょぬれで身体を押しつけてくるのでこちらもびしょぬれになったけど。やなに少しゴミが漂着していてかなしい気持ちになった。川や海や山にゴミを捨てることはするまいと思った。晩飯代わりにしたんだけど、腹が減ってモスバーガーでカレー味のトルティーヤを食した。トルティーヤもうまかった。

続き

 まずは無邪気に

def save
debugger
account_id = Account.find(:first (以下略)
:
:

 みたいに書いてみたら

undefined local variable or method `debugger' for #

 と言われてしまった。

 どこかでgem installしたruby-debugをrequireしてやらないとdebuggerが見つからないんだろうけど、どこに書くのがいいだろうとまたググッたらRuby On Rails ピチカート街道でdevelopment.rb の末尾に追加するといいと書いてあるのを見つけましたので、無邪気に真似してみましたら、止まりました。list, p 変数名など一通り試してみてにっこり。これすごい便利ですね。

 GoogleとBlogのおかげでだいぶん助かりました。ありがとうございました。自分も早く発信する側に立って恩返しできるようにがんばりたい。

Rails のデバッグ

 しばらく時間が取れず進んでいなかったrailsの練習をした。Railsでデバッグをする7つの方法の2と3でがんばっていた(Modelはscript/consoleで対話的に実行してメソッド単位で手動デバッグし、Controllerはlogger.debugでprintデバッグ)のですけれど…、Controllerのデバッグに無理を感じてきたので、5(Controllerにブレークポイントを仕込む)ができるようになろうと思った。

 そいでgem install ruby-debugを実行したらInvalid URIとかそういうエラーが出て、Proxyがうまく効いてないのかなとgem install ruby-debug --http-proxy http://proxy:portとしたら、今度はこんなエラーが出た。

ERROR: While executing gem ... (NoMethodError)
undefined method `[]=' for #

 gem関連のソースは

ruby/lib/ruby/site_ruby/1.8/rubygems.rb
ruby/lib/ruby/site_ruby/1.8/ubygems.rb
ruby/lib/ruby/site_ruby/1.8/rubygems/*.rb

 あたりに見つけられたので、コード読むかぁと思ったんだけど、ググッたらProxy経由のgem installがあっさり見つかったので助かりました。

set http_proxy=http://proxy.example.com:PORT
gem install ruby-debug --include-dependencies

 依存するgemを入れて欲しいので--include-dependenciesを指定、複数の候補があるときは無難に1. xxxxxxx (mswin32) を選んで進めましたら無事にinstallできました。これから試してみます。

«  | HOME |  »

プロフィール

志田

Author:志田
どこにでもいるIT土方です。
詳細はこちらを。

最近の記事

最近のコメント

最近のトラックバック

月別アーカイブ

カテゴリー

ブログ内検索

RSSフィード

リンク

このブログをリンクに追加する

By FC2ブログ

今すぐブログを作ろう!

Powered By FC2ブログ

ブロとも申請フォーム

この人とブロともになる

QRコード

QRコード