トップ «前の日記(2008-06-22) 最新 次の日記(2008-06-24)» 編集

Route 477



2008-06-23

[ruby] RTaskがうまく動かない

RTaskがとても便利そうなので使ってみたのですが:

/Users/yhara/proj/reposh % rtask -r
gemify -I
WARNING:  RDoc will not be generated (has_rdoc == false)
  Successfully built RubyGem
  Name: reposh
  Version: 0.1.6
  File: reposh-0.1.6.gem
tar -T Manifest.txt -c -z -f reposh-0.1.6.tgz
rake aborted!
no <group_id> configured for <reposh>
/opt/local/lib/ruby/gems/1.8/gems/rubyforge-1.0.0/lib/rubyforge.rb:394:in `lookup'
(See full trace by running task with --trace)

むー。rubyforgeわからん。

[hiki] tDiaryのbq.rbをHikiに移植してみた

Greenbear Laboratory - ICFP contest 2007 感想リンク集 にリンク張ってもらったので久々に見てみたらbq.rbがバグってて涙目www

という感じだったのでソースを見てみた。あー、tDiaryのbq.rbのバージョンが上がって内容をサニタイズするようになった*1 からHikiで動かなくなったんだな。

以下、適当に修正してみたもの。Hikiのプラグインディレクトリにbq.rbという名前で保存してください。

def bq( src, title = nil, url = nil )
  if url then
    result = %Q[<blockquote cite="#{url.unescapeHTML}" title="#{title.unescapeHTML}">\n]
  elsif title
    result = %Q[<blockquote title="#{title.unescapeHTML}">\n]
  else
    result = %Q[<blockquote>\n]
  end
  result << %Q[<p>#{src.unescapeHTML.gsub( /\n/, "</p>\n<p>" )}</p>\n].sub( %r[<p></p>], '' )
  result << %Q[</blockquote>\n]
  if url then          
    cite = %Q[<cite><a href="#{url.unescapeHTML}" title="from #{title.unescapeHTML}">#{title.unescapeHTML}</a></cite>]
    result << %Q[<p class="source">[from #{cite.unescapeHTML}]</p>\n]                       
  elsif title                                                                               
    cite = %Q[<cite>#{title.unescapeHTML}</cite>]
    result << %Q[<p class="source">[from #{cite.unescapeHTML}]</p>\n]
  end
  result
end

*1 あと「◯◯から引用」のメッセージが多言語対応したっぽい。

[ruby][event] jRubyのCharles Nutterとピザを食うなどした

jRuby開発者のCharles Nutter氏が島根大学での講義を行うとのことで、その夜に開催された「Charles Nutterを囲んでピザを食べる会」に参加してきました。(島根++)

以下、覚えてる話とか。

  • 将棋がfavorite game
    • 7才の息子さんと囲碁を打ってるとか
  • 最近、Dubyという言語を作っている (Duke + Ruby)
    • 一言で言うと、「オプショナルな型指定つきのRuby」らしい。最初はJVM上に実装していたが、今はC版もあるとのこと。
class Foo
  def fib(n)
    {n => java.lang.Integer::TYPE, :return => java.lang.Integer::TYPE}
    if (n < 2)
      n
    else
      fib(n - 2) + fib(n - 1)
    end
  end
end
  • 型指定とか
    • 最近 def fib(n => :integer) みたいに、"cute"なシンタックスで書けるようにした
    • 関数の返り値を指定する方法はない(?)。型推論できるから。
      • 「数値も文字列も返す可能性がある」場合は単に Object と推論
    • 「型付きRuby」というとRubyKaigiでも発表があったtrubyを思い出すけど、また違ったアプローチで面白いなぁ
      • tRubyは安全性を、Dubyはパフォーマンスを指向しているっぽい
  • GCの話
    • id:authorNariのターン(笑)
    • jRubyの実装で、GCについて気をつけていることはありますか?→ない。JVMに任せている
    • GCは好きですか?→「うーん、とてもチャレンジングなテーマだと思うし、だからこそ自分でやらなくて済むことに感謝しているよ:-)」(みたいな)
    • 確かにJVMのGCはすげーたくさんの人が研究してるしなぁ
  • 開発とマーケティング
    • 開発も重要だけど、それをたくさんの人に知ってもらうことも重要。
    • So I'm here
  • 第1回JVM言語カンファレンス
    • なるものが開催されるらしいw
  • jRubyから使えるJavaのライブラリで、「これはRubyではできないぞ!」ってやつとかない?
    • →「Rubyではできない」っていうのはないと思うが、Javaのがより良い、っていうのはあるかもね。例えば XMLのライブラリ、POI、swingなど。
    • POI は JavaからWordやExcelのドキュメントを扱うためのライブラリらしい。

感想

とても気さくな人だった。技術の話なら何時間でもできそうなかんじ。MacBook Proだった。

普通の英会話は全然できないけど、技術的な話ならなんとなく言ってることがわかる(気がする)ので素晴らしいですね。

リンク

本日のツッコミ(全3件) [ツッコミを入れる]
walf443 (2008-06-28 02:41)

その設定はrubyforgeの設定ができてないときに出るもののような気がします。コマンドラインでrubyforge configというコマンドを実行するとアカウント情報と今まで登録しているgemが紐づけられてreposhのproject_idが勝手に設定されるのでその後はうまく動くようになるはずです。<br><br>もう日数がたっているのですでに解決されているかもしれませんが。

walf443 (2008-06-28 02:41)

> no <group_id> configured for <reposh><br><br>これのことでした。

yhara (2008-07-01 15:05)

情報ありがとうございます。rubyforge configはやった気がするんだけど、やり忘れてたかな…。<br><br>次にgemを公開するときは試してみます。