劇的ビフォーアフター on LLTV




fortuneとRubyの邂逅
Command "fortune" meets Ruby

劇的ビフォーアフター
LLTV 2009-08-29

高野光弘 / @takano32 <tak@no32.tk>
日本{UNIXユーザ,Rubyの}会

自己紹介

takano32 / 高野光弘

(混沌な)(Rubyの)匠






混沌なRubyの匠

混沌な匠






かんたん■■なRubyの匠

fortuneコマンド

whatis fortune
print a random, hopefully interesting, adage
ランダムにありがたいお言葉を授けてくれるコマンド

fortuneコマンド

実行例
$ fortune
The hardest thing in the world to understand is the income tax.
		-- Albert Einstein

fortuneコマンド

fortune LLTV 劇的ビフォーアフター メモ より

匠の思惑

DSLって何?

ドメイン固有言語(Domain-Specific Language、DSL)とは、特定のタスク向けに設計されたプログラミング言語を意味する。ドメイン特化言語あるいはドメイン固有プログラミング言語とも。C言語やJavaのような汎用プログラミング言語やUMLのような汎用モデリング言語と対照的な用語である。
ヨクワカンネ・・・

匠のDSL定義






{:DSL => :Symbol}

{:DSL => :Symbol}

匠の方針

改造のポイント
  1. すでにある素材を活かす!
    メンドクサイ
  2. ユニバーサルデザイン!
    なんか言葉がかっこいいし、匠っぽい
  3. 若者も使えるコマンドに改造!
    ナウいfortuneにする

ユニバーサルデザイン!

ユニバーサルデザイン(Universal Design、UDと略記することもある)とは、文化・言語・国籍の違い、老若男女といった差異、障害・能力の如何を問わずに利用することができる施設・製品・情報の設計(デザイン)をいう。
-- フリー百科事典『ウィキペディア(Wikipedia)』

ユニバーサルデザインとは?

一部抜粋
文化・言語・国籍の違いを問わずに利用することができる
とりあえず国際化にしようか?

国際化とは?

Internationalization => i18n
国際化はソフトウェアに技術的な変更を加えることなく多様な言語や地域に適合できるようにする、ソフトウェア設計の工程である。
-- フリー百科事典『ウィキペディア(Wikipedia)』
国際化してよう => 多言語での出力

実装

ユニバーサルデザイン実装 i18nっぽいカンジがする!

具体的な実装

某サイトの翻訳機能を利用

デモ

若者も使えるコマンドに改造!

fortuneのイケてないところ 新世紀fortuneが必要!

新世紀fortune

刹那的なインターネット世代のfortune う、占いカウントダウン・・・とか!?

占いカウントダウン

めざまし占いカウントダウンとは 探したらWebページがあった!!

新世紀fortune実装

めざまし占いカウントダウンのサイト 切り出せたデータも妥当じゃない・・・

実装のコツ

ものすごくやっつけっぽいけどできた

デモ

Rubyによるビフォーアフター

まとめ

提供



日本UNIXユーザ会