9月
13
2009
0

Ruby World Conference 2009 2日目

なんと “ruby world conference” でググると公式サイトを差し置いて,このサイトがトップに!?

今は修正?されてますが,びっくりした〜

で,2日目
2日目はTech Day?でテクニカルな話題中心でした

朝はまつもとさんの基調講演「未来へのRuby」
まつもとさんが子供の頃にお父さんから与えられた肥後守を例に,
「人間は信頼されるから伸びる」
「Rubyはユーザを信頼する言語です」
そして某G調査機関によると,他の言語に比べてRubyを愛していると書いているブログ?はかなり多いのだとか
日本語で言うのは恥ずかしいとのことでしたが,「Rubyは愛され言語 (beloved)」「Rubyは愛である」「愛は未来をつくる」 とのこと
本当にいい話でした
あと50年はRubyを作り続けたいとのことなので,当分Rubyは安泰ですね

つづいては,Jeremy Kemperの「Rails3:Convergent evolution」
なんでもRails3 on 1.9はこれまでの3倍以上の高速化が期待できるようでとても楽しみ!!
Railsも結構変化が激しくて,たまにRailsな人にはついてくのが大変なフレームワークだが,着々と進化している
Q&Aで誰かが,「これからもRubyは変わって行くと思うけどなんか言いたいことある?」的な質問をされていたが,「どんどんやればいい,問題があればRailsを修正するだけ」だってw
スライドがとても印象的でした〜

rwc2009_2_1 rwc2009_2_2 rwc2009_2_3

お昼から
笹田先生が登場するも,なんか時間が30分しかなくて技術的な話はかなり省かれてました・・・
セミコルーチンなんかはバッサリとw
それから・・・笹田研にはRuby使いがいないそうで
恐れ多くてなかなかRuby使ってますって言えないんでは?

続いて頃末和義氏によるIronRuby
JRubyはJavaの資産を活用できるというところに存在意義がある気がするけど,IronRubyの存在価値って何なんだろう?
mono上でも動きますとか言われても,monoを使うような環境なら普通にMRIでよくないか?
その辺がもっと聞きたかったなぁ〜
まぁMSとして話せないのかも知れないが・・・

次は,Charles NutterとThomas Enebo
がっ!?ここでトラブル発生!!
プロジェクターにつながらない
結局は変換コネクタが故障していた模様
Macの変換コネクタはどんどんチャチくなって壊れやすくなってる
突然ねこび〜んが登場したり,JRuby on Androidのデモがあったりとてもおもしろかった
以前福岡に来た時にカネウチさんがサインをプレゼントしてたが,Thomasは本当にねこび〜んが好きなようだ
Q&AでJRuby on Androidのリリース日が決まったのは爆笑

rwc2009_2_4 rwc2009_2_5 rwc2009_2_6

そしてRubiniusのEvan Phoenix
llvmやJITを利用してって話だったと思います・・・
もっと英語を勉強せんといかんね〜
Ruby on Rubyにチャレンジなんてすごいなぁ

最後はB会場に移動
クックパッドの橋本さん
「ベストなコトをみつけるための3つの輪」
「ユーザの要求に基づいたゴール設計」
「スケジュール決定における3分割の法則」
「ものづくり3原則」
などなど,クックパッドでのサービス企画・開発を中心とした話でした
Ruby的な話は最後の「Railsに乗る」くらいかなぁw

Written by h2 in: ひとりごと | タグ: , ,
9月
11
2009
0

Ruby World Conference 2009 初日

「一生に一度は島根に行こう!!」というスローガンのもと
Rubyの聖地でRuby World Conferenceが開催されるという

ということで人生初の松江の地に自分も馳せ参じることに

今回のお目当てはなんと言ってもTim Brayの基調講演

タイトルは “What is Ruby For?” でしたが,関数型言語やらパラレル,コンカレンシーなどを踏まえてプログラミング言語の今後の進化,プロフェッショナルであることの意義などなど,非常にバラエティに富んだ内容でした

Ustreamでも配信していたので松江まで行かなくてもよかったのかも知れないが,十分元は取れた

そうそう,Timといえばカウボーイハット!!
でも,郷に入ってはなのか?会議中はお行儀よく帽子を脱いでおられました

IMG_1812 IMG_1819 IMG_1818

Written by h2 in: ひとりごと | タグ:
6月
24
2009
0

Merbのインストール

Merbは使ったことなかったんやけど,土曜の勉強会でやるらしいのでインストールしてみた

まずgemを最新にしてから,Merbをインストール

% sudo gem install rubygems-update
% sudo update_rubygems
% sudo gem install merb

ここからは,チュートリアルを見ながらアプリを作ってみる

% merb-gen app my-first-app

次は,リソースの作成(スペースを入れてはいけないので注意)

% merb-gen resource article title:string,content:text

なんかdata_objectのgemがないと怒られる

Loading init file from /Volumes/Home/h2/Merb/my-first-app/config/init.rb
Loading /Volumes/Home/h2/Merb/my-first-app/config/environments/development.rb
 ~
 ~ FATAL: The gem data_objects (= 0.9.11, runtime), [] was not found
 ~

調べてみると確かにインストールされてるのは,0.9.12だった

% gem search data_objects -l
*** LOCAL GEMS ***
data_objects (0.9.12)

ので,config/dependencies.rb の4行目を編集してやる

do_gems_version   = "0.9.11"
=>
do_gems_version   = "0.9.12"

再度リソースを作成するとうまくいったので,DBのマイグレート

% rake db:automigrate

最後にサーバの起動

% merb &

ブラウザで /articles にアクセスして確認
このままだとドキュメントルートにアクセスするとエラーになるのでリダイレクトされるようにしてみる
config/router.rb の最後を変更

match('/').to(:controller => 'whatever', :action =>'index')
=>
match('/').to(:controller => 'articles', :action =>'index')

変更を保存したらサーバを再起動しなくても反映されているので確認

ってな感じで,ぱっと見た感じでは多少コマンドが違うもののほとんどRailsと同じだった

Written by h2 in: PC | タグ: ,
1月
24
2009
0

Growl4Becky

言わずと知れた軽量&高機能メーラーBecky!
10年以上使っているとなかなか他のソフトに乗り換えるのは難しく,Becky!だけのためにVMWare Fusionを買ってWindowsを走らせてます
(まぁ組込み系の開発ツールやVMWare Infrastructureの管理ツールとかWindowsがないとどうにもならないことも多いので,助かってるけど・・・)

VMWare Fusionではご存じユニティモード(ParallelsでいうCoherence)が使えるので,WindowsのアプリをまるでMacのアプリのように扱うことができます
バージョン2からはURLの共有という超便利な機能が追加されて,メール内のURLをクリックするとMac側のSafariとかFirefoxで開くことができるようになり,もっとも不満だった点が解消されました

となると残りの大きな不満点は,「新着メールの通知」機能!!

普通のWindows環境ならタスクトレイのアイコンで着信に気づくことができるんですが,ユニティモードでタスクバーを隠しているとメールの着信が分からない・・・

ちょうど先日Beckrbを入れてみたので,Rubyスクリプトで適当にでっち上げてみました

require 'ruby-growl'
require 'rbuconv'

class Growl4Becky

	def initialize(ipaddr, pass)
		@g = Growl.new(ipaddr, 'Becky!', ['New Mail Landing'],
			 nil, pass)
	end

	def on_retrieve(message, mail)
		subject = mail.headers.slice(/^Subject: (.*)/, 1)
		from = mail.headers.slice(/^From: (.*)/, 1)
		@g.notify('New Mail Landing', Uconv.sjistou8(from.chomp),
			 Uconv.sjistou8(subject.chomp))
	end

end

# Edit ip address and password
Becky.add_callback Growl4Becky.new('192.168.46.1', 'password')

Becky!がメールを受信すると,Growlでお知らせしてくれます

使い方ですが,Beckrbが必要です
上記のRubyのスクリプトを作成して, scripts\startup フォルダにぶち込んでください
(コピペがめんどいって人はコレを保存してください)

Rubyのライブラリとしてruby-growlrbuconvを使っています
Growlへの通知はUTF-8で行う必要があるのですが,Ruby 1.8.1でUnicodeに変換するのはちょっと面倒です
システムにはできるだけ手を入れたくなかったので,ピュアRuby版Uconvのrbuconvを使いました
なので,これらのライブラリをDLして,Beckrbの lib\ruby\1.8 フォルダの中にぶち込んでください

あと,ネットワーク通知を使うので「システム環境設定」の「Growl」で「リモートアプリケーション登録を許可」しておく必要があります
パスワードも設定しておいた方がよいでしょう

あとは,スクリプトの最終行のIPアドレスと,パスワードを適宜変更するだけです

Becky!を再起動するとGrowlに登録されるので,お好みに応じて「システム環境設定」の「Growl」でBecky!からの通知に対して,表示スタイルやスティッキーなどを変更できます

VMware FusionとかParallelsを使ってて不便やなぁ・・・と思ってる方はぜひお試しください

#IMAPでの受信はうまく通知されません(Becky! APIの仕様と思われます)

Written by h2 in: PC | タグ: , ,
1月
21
2009
1

Beckrb

RubyでBecky!の機能を拡張することができるラッパープラグインBeckrb

先日たまたま見つけたが,もっと早く知ってれば・・・

ただRubyのバージョンは1.8.1

Unicodeの扱いなどを考えると1.8.2の壁は小さくないが,残念ながら最後の更新が2004年の5月なのでもうメンテナンスされていないみたい

とりあえずインストール方法をまとめておく

まず次の3点をダウンロード

Beckrbのインストール先は,

  • 全ユーザ共有のインストールディレクトリ
  • 各ユーザ専用のデータフォルダ

のどちらかを選ぶことができる

データフォルダさえ移せば簡単に環境が移せるのもBecky!のよいところなので,今回はデータフォルダにインストール

  1. beckrb-0.9.7.zip を展開して beckrb.dll(プラグインローダ) と bekrb.so(プラグイン本体) を Plugins フォルダにコピーする
  2. ruby-1.8.1-20040218_vc71.zip を展開して msvcrt-ruby18.dll(Rubyインタプリンタ) と lib フォルダ(Rubyライブラリ)をデータフォルダ直下にコピー
  3. msvcr71.zip を展開して msvcp71.dll(VC++ランタイムライブラリ) と msvcr71.dll(VC++ランタイムライブラリ) をデータフォルダ直下にコピー(システムディレクトリ C:\Windows\System32 などに置くのもアリ)
  4. Becky!を再起動してプラグインを組込む

メニューに「スクリプト」という項目が増えていれば成功

Beckrbは起動時に,インストールフォルダ直下の scripts/startup/*.rb,データフォルダ直下の scripts/startup/*.rb を順に実行するので,コールバックを利用するスクリプトはココに置いておく

とりあえず前から作ろうと思っていたプラグインを作ってみた

ソースも公開されているので最新版のRubyに対応させてみるのもおもしろいかもしれない

なんかJava版のBkJavaというものもあるみたい

Written by h2 in: PC | タグ: ,
1月
15
2009
0

winmail.datがウザい件

Outlook 2007(X-Mailer: Microsoft Office Outlook 12.0)とかを使っている人から,winmail.datとかいう謎の添付ファイルがついたファイルが届きませんか?

winmail.datはMicrosoftの独自仕様のリッチテキストデータですが,メールはMIMEマルチパート形式になっていてプレインテキストもついてくるので何とか中身を読むことは可能です

ただ,添付ファイルがwinmail.datにまとめられてしまって,Outlook以外のメーラーでは開けないというクソ仕様です
しかもデフォルトでそういう設定になっている?ようで,HTMLメールの数倍ウザい存在です

Winowsではfentun.exe,MacだとTNEF’s Enoughなどの解凍ツールが有名ですが,ファイル名に漢字などのマルチバイト文字が含まれているとうまく解凍できないようです
これまでだとここであきらめて送り直してもらっていたのですが,筑波大学の新城氏が書かれたwinmail.rbというスクリプトを見つけました
このスクリプトは漢字OKで,先頭の設定を適当に修正することで,EUCな環境にも対応できるとのことです
RubyなのでOSを選ばないのもGood

winmail.rbはRuby TNEF libraryを使用します
ダウンロードしてきて適当な場所において,winmail.rbのrequire文を適宜修正すればOKなのですが,29Jan2004版では下記のような警告がでます

/Volumes/Home/h2/bin/tnef.rb:498: warning: parenthesize argument(s) for future version
/Volumes/Home/h2/bin/tnef.rb:574: warning: parenthesize argument(s) for future version
/Volumes/Home/h2/bin/tnef.rb:575: warning: parenthesize argument(s) for future version
/Volumes/Home/h2/bin/tnef.rb:576: warning: parenthesize argument(s) for future version
/Volumes/Home/h2/bin/tnef.rb:579: warning: don't put space before argument parentheses

要するに括弧を付けておいたほうがよいとかスペースを入れるなって話なので,修正しておきましょう

498c498
< debug sprintf '## Unknown attribute name %4.4x',attribute.name
---
> debug sprintf('## Unknown attribute name %4.4x',attribute.name)
574,576c574,576
< debug sprintf '## Unknown MAPI type 0x%4.4x',attr_type
< debug sprintf "attr_type: 0x%4.4x",attr_type
< debug sprintf "attr_name: 0x%4.4x",attr_name
---
> debug sprintf('## Unknown MAPI type 0x%4.4x',attr_type)
> debug sprintf("attr_type: 0x%4.4x",attr_type)
> debug sprintf("attr_name: 0x%4.4x",attr_name)
579c579
< attr = TNEFMAPI_Attribute.new ( attr_type, attr_name, attr_data)
---
> attr = TNEFMAPI_Attribute.new( attr_type, attr_name, attr_data)

パスの通った場所において,chmod a+xとかしとけば,

$ winmail.rb winmail.dat ls
$ winmail.rb winmail.dat extract

するだけでOKです

TNEFなんてさっさと消えてくれればいいんですが・・・

Written by h2 in: PC | タグ:
9月
29
2008
0

Processing on JRuby

先日行われたRBC (Ruby Business Commons) の勉強会に行ってきました

テーマはProcessing on JRuby

ProcessingはMITで開発されている言語で,FLASHのようなビジュアルコンテンツを作ったり,インタラクティブなコンテンツ作りに向いている言語です
ちょっと調べたところ,カメラやマイクなどの外部機器と連携した大がかりなアートなども作られているみたいです

取っつきやすいので,プログラマ以外のデザイナーさんとかでも使えそうです
Javaベースなこともあって,個人的にはActionScriptよりもずっと馴染みやすい
勉強会ではJRubyを使うことで,よりカンタンにProcessingを使うことができました

以下は勉強会で作ったコンテンツの一部です

マウスの動きに反応するインタラクティブアートもOK

残念ながら自分にはアートの才能はありませんが,デモとかのコンテンツ作りに使えそう
楽しい言語なので是非チャレンジしてみてください !!

最後になりましたが,スタッフの皆さん,ありがとうございました

Written by h2 in: PC | タグ:

TheBuckmaker WordPress Themes Webhosting, MP3, AAC & Co