Just another Ruby porter,

〜2004年8月下旬〜


<Prev(,) | Next(.)> | Recent(/)>> | RDF

2004-08-21 (Sat)

[Soft] OpenSSH 3.9p1

更新。

[Cygwin] Updated: gcc-3.3.3-3

なんかよくわからんが、3がいっぱい並んだ記念に。

In this release the option '-fschedule-insns2' was disabled for '-O2' or greater optimization because there are some problems when compiling with this option as Corinna reported me. I.e. cygserver & openssh should build ok now when '-fschedule-insns2' is disabled.


2004-08-22 (Sun)

[Ruby] ruby-talk 110000

いつのまにか110000を越えていた。 10000からは3ヶ月ちょっと

[Ruby] BlueCloth

BlueClothを試してみた。使いかたは簡単なRDocよりもさらに簡単。

require 'bluecloth'
puts BlueCloth.new(input_string).to_html

詳しくは本家 Markdownsyntaxを参照。

Markdown is a text-to-HTML conversion tool for web writers. Markdown allows you to write using an easy-to-read, easy-to-write plain text format, then convert it to structurally valid XHTML (or HTML).

とここまでをMarkdownで書いてみると

### \[Ruby\] [BlueCloth][]
[BlueCloth][]を試してみた。使いかたはRDocよりもさらに簡単:

    require 'bluecloth'
    puts BlueCloth::new(input_string).to_html

詳しくは本家[Markdown][]の
[syntax][]を参照。

> Markdown is a text-to-HTML conversion tool for web writers. Markdown
allows you to write using an easy-to-read, easy-to-write plain text
format, then convert it to structurally valid XHTML (or HTML).

[BlueCloth]: http://raa.ruby-lang.org/project/bluecloth/
[Markdown]: http://daringfireball.net/projects/markdown/
[syntax]: http://daringfireball.net/projects/markdown/syntax/

という感じ。linkはinlineじゃなくてreferenceを使ってみた。 この形式のほうが見易くていいな。

引用はメールと同じで> なんだけど、 最初の行だけ書けば後は省略してもいいってのも面白い仕様だ。 しかしcode blockはcolonが必要ってことになかなか気づかなかった。

[Ruby] RedCloth

RedClothは本家の Textileを見ると、なんか中途半端な印象が否めないので試すのをやめた。


2004-08-23 (Mon)

[Soft] sudo 1.6.8

Changes:

Major changes include support for storing sudoers info in LDAP, a new "sudoedit" command to allow users to safely edit files with the editor of their choice, support for disabling execve(2) in dynamic executables run by sudo, and a new -i option to simulate initial login.

[Ruby] RDocでhyperlink

SM::ToHtmlだけではhyperlinkにならないことが判明。 rdoc/READMEに書いてある仕様にするには、 rdoc/generators/html_generator.rbのようにhandle_special_HYPERLINKを定義してadd_specialしないといけない。ちょっと面倒だなあ。


2004-08-24 (Tue)

[Ruby] RDocのテンプレート

あまり知られていないが、RDocにもテンプレートがある。 RDoc自身がなぜかriのデータ対象になってないのでri RDocしてもヒットしないが、

% rdoc -1 -q /usr/local/lib/ruby/1.9/rdoc/template.rb > template.html

と実行すればドキュメントを見ることができる。

require 'rdoc/template'

values = {"a" => "1", "b" => "2"}
template = TemplatePage.new(<<'EOT')
a = %a%
b = %b%
EOT
res = ''
p template.write_html_on(res, values)

結果は"a = 1\nb = 2"となる。なぜか最終行の改行がない。

さっき作ったtemplate.htmlも確認してみると確かにない。

% tail -1 template.html |od -tx1z
0000000 3c 2f 68 74 6d 6c 3e                             ></html><
0000007

まあ、HTMLならいいのか。


2004-08-25 (Wed)

[Ruby] CVSspam 0.2.10

cvsとspamにいったいどんな関係があるのか? と思ったら、単にcommit mailをHTMLで色づけして送るからそういう名前になったらしい。 たしかにそんなもんが送られてきたら高い確率でspamと判定される。


2004-08-26 (Thu)

[GNU] gawk 3.1.4

NEWSから気になった機能を。

2. Gawk now supports the ' flag in printf. E.g., %'d in a locale with thousands separators includes the thousands separator in the value, e.g. 12,345.

3桁毎に","で区切る。これは便利だ。

This has one problem; the ' flag is next to impossible to use on the command line, without major quoting games. Oh well, TANSTAAFL.

たしかにその通り。試そうとしてちょっと悩んだ。

% gawk 'BEGIN{printf "%'"'"'d\n", 12345}'
12,345

どうせなら %,dにすればいいのにと思ったり。


2004-08-27 (Fri)

[Mail] Thunderbirdの訓練

今回は非常によいこに育っているようだ。前回育てそこねた原因はなんなのか理由を考えてみた。 違いはというと、とある通知メールがspam扱いになるので思い切り学習させたくらいだ。 ってそれか。

[TV] タモリ倶楽部

フェーン現象の仕組み。そうだったのか。ってぐぐればちゃんと書いてあるな。


2004-08-28 (Sat)

[Ruby] id

YAMLとERBでテンプレートエンジンもどきを作ったはいいが、idという名前が出てきて困った。

% ruby -e 'p id'
538098892

なのでmethod_missingが呼ばれない。 MyTemplateにidというメソッドを追加したところで、 printだのselectだの出てきたら切りがない。 やっぱ無名のmoduleか何かの中でメソッドを定義するか。 いやevalを使えって。

[TV] 鳥人間

再放送かという内容が続いてどうしたんだと思ったら途中で中止になった。 この時期に台風が来るなんてあまり考えられないもんなあ。残念。


2004-08-29 (Sun)

[Ruby] 無名moduleをextend

昨日の続き。結局evalを使わずにmethodを定義してみた。

require 'yaml'
require 'erb'

module MyTemplate
  def self.define_vars(vars)
    Module.new do
      vars.each do |name, val|
        define_method name do val end
      end
    end
  end
  def self.emit(template, vars)
    extend define_vars(vars)
    ERB.new(template).result(binding)
  end
end

vars = YAML.load(<<-'end')
  ---
  a: 1
  b: 2
  id: 3
end
print MyTemplate.emit(<<'end', vars)
a = <%=a%>
b = <%=b%>
id = <%=id%>
end

でも2回目以降に問題があるな。YAMLにidがなくても3のままだ。

module MyTemplate
  def self.emit(template, vars)
    Module.new do
      vars.each do |name, val|
        define_method name do val end
      end
      extend self
      return ERB.new(template).result(binding)
    end
  end
end

とするか。


2004-08-30 (Mon)

[Ruby] Gentooで--enable-install-docがコメントアウトされてる理由

つまりsyckが不安定だからか。 ってことは1.8のデフォルトを--enable-install-docにすると、 逆にGentooは--disable-install-docになってしまいそうな予感。

[Ruby] template

それにしても RAAtemplateを検索するといっぱい出てくる。 今のおいらの用途だとERBを使わなくても TextTemplateで十分か。 まあ、でもERBだとRuby 1.8以降ならついてくるというのは大きい。


2004-08-31 (Tue)

[Ruby] BlueCloth 1.0.0fc3

今週末に1.0.0が出る予定らしい。 fcって何かと思ったらfinal candidateらしい。

Markdownでは

# Within tags, encode * and _ so they don't conflict
# with their use in Markdown for italics and strong.
# We're replacing each such character with its
# corresponding MD5 checksum value; this is likely
# overkill, but it should prevent us from colliding
# with the escape values by accident.

というコメントにもあるように、 MD5を使って過剰とも言えるエスケープをしている。 BlueClothはどうかなと確認してみると、やはり同じようにMD5を使ってる。 そこまで真似しなくてもという気はする。


<Prev(,) | Next(.)> | Recent(/)>> | RDF


WWW を検索 jarp.does.notwork.org を検索

わたなべひろふみ
Key fingerprint = C456 1350 085F A320 C6C8 8A36 0F15 9B2E EB12 3885
Valid HTML 4.01!