忘れたときに備えた記録

トップ 最新 追記
2005|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|11|12|
2009|01|02|03|04|05|06|10|12|
2010|06|07|08|12|
2011|07|09|
2012|09|11|
2013|02|03|09|
2015|10|11|
2016|01|08|11|
2017|02|08|10|
2018|11|

2006-03-07(Tuesday)

Hiki のプレビューで、SVG 画像が編集フォームに食い込むのを防ぐ

例えば、以下のような文をHikiで書くとする。

{{svg 'files/trackback.svg', 'trackback', 640,480, 'left'}}
*align: left; となるようにSVGプラグインのパラメータで指定している
*何も対策を採らずにプレビューすると、編集フォームに図形が食い込む

ある程度の大きさのSVGファイルを用意しておき、回り込みをleftで指定して、その右側に来る文を書くのがポイント。

これを、何もせずにプレビューすると、以下のようにSVGが編集フォームに食い込んでくる(厳密には「SVGが」ではなく「編集フォームの文字列がSVG画像の右側に回りこんでくる」だ)。

SVGが編集フォームに食い込んでいる

これを回避するためには、編集フォームの部分で回り込みが解除されるようにすれば良い。 具体的には、append_cssプラグインで次のようなCSSを用意する。

div.form {
 clear: both;
}

これで、プレビューするときにも編集フォームにSVGが食い込んでこない。

http://www.hinet.mydns.jp/~hiraku/hiki/hiki.cgi?PresenSample-100

で[編集]ボタンを押せば、実際に対策した場合の様子が見られる。

Tags: SVG

2006-03-10(Friday)

本日のリンク元が熱い(個人的に)

アドレスが72.14.207.104なGoogleキャッシュから飛んでくるリンク元を正しく表示されなくて、ここ数日いろいろといじっていた。

実は開発版では既に対応されていたり、安定版でも対応されてるのに気づかなかったり等色々とあって、開発版での対応を安定版にももってくるパッチなんて作ってみた。

で、自分のページのリンク元が随分ごちゃごちゃしているのが気になりだして、メーリングリストの保存庫やらWikiやらのリンク元が置換されるように設定をいじって確認したりしていると、時々思いもよらないページからリンクが張られていて、リンクに飛びまくるのが随分楽しかった。

とかやってたらえらく時間をつぶしてしまって、発表の準備する予定で家にこもってたのに全然作業が進んでいなかったりヽ(´ー`)丿

Tags: tDiary

Webalizerのグラフの文字化け

アクセスログの解析にwebalizerを使っているが、グラフのラベルで日本語を描画しようとして文字化けしている。

ググったら [debian-users:38325] Re: Webalizer日本語化について でTrueTypeフォントに対応させたパッケージが公開されているのを見つけた。

/etc/apt/sources.listに

deb http://ftp.arege.jp/debian-arege stable webalizer

と追記して、バージョン 2.01.10-26.0+ttf2 なwebalizerをインストール。

次に、ttf-kochi-gothic がインストールされているのを確認したうえで、/etc/webalizer.confに

TrueTypeFont /usr/share/fonts/truetype/kochi/kochi-gothic.ttf

を追記。

これで

# webalizer

とやると、まだ文字化け。そこで試しに

# LANG=ja_JP.UTF-8 webalizer

とすると、うまく日本語化されたグラフが表示されるようになった。

普段は /etc/cron.daily/webalizer で自動的に動いているようなので、明日にでももう一度グラフを確認して、文字化けしているようならこのファイルも修正しよう。

Tags: メモ

2006-03-11(Saturday)

リンク元

リンク元置換リストをいじり倒してみた。

  • 明らかに何らかの誤りで飛んできてしまったと思われるリンク元を除外するようにした
  • リンク元ページのページ名を確認して、置換リストに追加しまくった

こういうのを自動化する仕組みってないもんかな。

Tags: tDiary

webalizerのグラフの文字化け

やはり /etc/cron.dairy/webalizer による実行では、何も指定しないと文字化けしたままになる。

てなわけで、

export LANG=ja_JP.UTF-8

を/etc/cron.dairy/webalizerの先頭に追加。exportは要らないかもしれないけど念のため。


2006-03-12(Sunday)

奇怪な現象

大学のWebサーバの自分のディレクトリにHikiをインストールし、hikiconf.rb.sampleを編集して以下の変更を行う。

  • data_pathを設定
  • base_urlを設定
  • styleを設定

この状態で、新しいページを作り、ページ名を'Test'として保存すると、表示する段階で

uninitialized constant Hiki::Messages_ja (NameError)
/home/euler/s033010/public_html/test/hiki/config.rb:265:in `const_get'
/home/euler/s033010/public_html/test/hiki/config.rb:265:in `load_messages'
/home/euler/s033010/public_html/test/hiki/config.rb:262:in `each'
/home/euler/s033010/public_html/test/hiki/config.rb:262:in `load_messages'
/home/euler/s033010/public_html/test/hiki/config.rb:20:in `initialize'
hiki.cgi:20:in `new'
hiki.cgi:20

そして、ここからが奇怪なところなのだけれど、設定ファイルhikiconf.rbで、例えば

@use_wikiname    = true

の行をコメントアウトすると、このエラーは出なくなる。コメントアウトするのは、動作に差支えがない行なら多分どこでも良い。 また逆に、コメントアウトされている設定行を、コメント解除して有効にしても良い。

また、エラーが出る状態に戻した上で、hiki/config.rbの265行目前後を以下のように書き換える。

          require "messages/#{lang}"
#          extend(Hiki::const_get("Messages_#{lang}"))
          extend(Hiki::const_get(Hiki::constants))

すると、当然次のようなエラーになる

["Plugin", "Util", "PluginError", "Session", "Page", "AliasWiki", "PluginException", "Command", "Config", "Messages_ja", "PermissionError", "PATH"] is not a symbol (TypeError)
/home/euler/s033010/public_html/test/hiki/config.rb:266:in `const_get'
/home/euler/s033010/public_html/test/hiki/config.rb:266:in `load_messages'
/home/euler/s033010/public_html/test/hiki/config.rb:262:in `each'
/home/euler/s033010/public_html/test/hiki/config.rb:262:in `load_messages'
/home/euler/s033010/public_html/test/hiki/config.rb:20:in `initialize'
hiki.cgi:20:in `new'
hiki.cgi:20

さらにここからまた奇怪な話だが、hikiconf.rbで、コメントアウトされてる行のコメントを解除する。例えば

#@cgi_name        = 'hiki.cgi'

の行頭の'#'を削除する。すると、エラーメッセージは以下のように変化する。

["Plugin", "Util", "PluginError", "Session", "Page", "AliasWiki", "PluginException", "Command", "Config", "PermissionError", "PATH"] is not a symbol (TypeError)
/home/euler/s033010/public_html/test/hiki/config.rb:266:in `const_get'
/home/euler/s033010/public_html/test/hiki/config.rb:266:in `load_messages'
/home/euler/s033010/public_html/test/hiki/config.rb:262:in `each'
/home/euler/s033010/public_html/test/hiki/config.rb:262:in `load_messages'
/home/euler/s033010/public_html/test/hiki/config.rb:20:in `initialize'
hiki.cgi:20:in `new'
hiki.cgi:20

何が奇怪かというと、Hiki::constantsからMessage_jaが消えている。

試しに、hiki/config.rbを以下のように書き換えると

#          extend(Hiki::const_get("Messages_#{lang}"))
#          extend(Hiki::const_get(Hiki::constants))
          extend(Hiki::const_get($$"))

出力されるエラーメッセージは次のようになる。

["hiki/config.rb", "cgi.rb", "English.rb", "delegate.rb", "hiki/command.rb", "hiki/page.rb", "nkf.so", "erb.rb", "strscan.so", "hiki/util.rb", "hiki/plugin.rb", "hiki/aliaswiki.rb", "hiki/session.rb"] is not a symbol (TypeError)
/home/euler/s033010/public_html/test/hiki/config.rb:267:in `const_get'
/home/euler/s033010/public_html/test/hiki/config.rb:267:in `load_messages'
/home/euler/s033010/public_html/test/hiki/config.rb:262:in `each'
/home/euler/s033010/public_html/test/hiki/config.rb:262:in `load_messages'
/home/euler/s033010/public_html/test/hiki/config.rb:20:in `initialize'
hiki.cgi:20:in `new'
hiki.cgi:20

直前でrequireしているはずの"messages/ja.rb"がrequireされているリストに追加されていない(設定ファイルのコメントの有無を調整して、message/ja.rbが追加された状態にすることも出来る)。

命令行の増減で挙動が変わっていて、この場合は直前の

  require "messages/#{lang}"

が実行されていなくなっているようだ。

原因はなんだろう?


2006-03-16(Thursday)

整数のモジュロ演算

C言語で言うところの

10 % 3;

あるいはPascalで言うところの

10 mod 3

Rubyでは、

10 / 3

では、実数扱いでの計算はどうなるのか、テスト。

#!/usr/bin/ruby
puts 10 / 3
puts 10.0 / 3
puts 10 / 3.0
puts 10.0 / 3.0

結果

3
3.33333333333333
3.33333333333333
3.33333333333333

どちらか一方が実数だと、演算結果も実数。両方がFixnumで初めて演算結果もFixnumになる。

Tags: Ruby