




カテゴリ一覧:Browser | Monology | Movie | Music | Network | News | OS | Security | Web
mixiプレミアムにしても、HTMLによる拡張がそこまでできなさそうだし、やっぱり自分で組み立てた方がおもしろいかなぁ、って思った。
いろいろプラグインを試してみて、前の日記を移行する方法を考えないとね。
rubyのインストール
# cd /usr/ports/lang/ruby18
# make install clean
tDiaryのインストール
# cd /usr/ports/japanese/tdiary
# make install clean
tDiaryの設置(`~/www/diary'というディレクトリ以下に設置する場合)
% /usr/local/bin/ruby /usr/local/share/examples/tdiary/tdiaryinst.rb --suexec --httpdir=www --diarydir=diary
tDiary管理者パスワードの設定*1
% /usr/local/sbin/htpasswd -c /home/yskhashi/.htpasswd yskhashi
あとは、http://key.plala.jp/~yskhashi/diary/にアクセスして設定する。
テーマは`~/www/diary/theme'、プラグインは`~/www/diary/misc/plugin'以下に設置し、設定で変更や追加をする。
文字コードをUTF-8で出力するためにuconvライブラリをインストール
uconvライブラリの導入 # cd /usr/ports/japanese/ruby-uconv # make install clean
mixi対策:ツッコミをRSSに反映しないように
--- misc/plugin/makerss.rb.orig Fri Mar 11 16:45:23 2005 +++ misc/plugin/makerss.rb Wed Sep 6 02:05:49 2006 @@ -98,8 +98,12 @@ if rdfsec.section.respond_to?( :visible? ) and !rdfsec.section.visible? item_max += 1 else - seq << makerss_seq( uri, rdfsec ) - body << makerss_body( uri, rdfsec ) + if rdfsec.section.respond_to?( :body_to_html ) + seq << makerss_seq( uri, rdfsec ) + body << makerss_body( uri, rdfsec ) + else + item_max += 1 + end end elsif idx > 50 cache.delete( rdfsec.id )
ImageMagick(convert)の導入 # cd /usr/ports/graphics/ImageMagick/ # make install clean
image_ex.rbを`misc/plugin'に、image_size.rbをupdate.rbのあるディレクトリに入れる。(以下のパッチを当てる)
--- misc/plugin/image_ex.rb.orig Thu Jun 24 16:01:46 2004
+++ misc/plugin/image_ex.rb Wed Sep 6 04:02:02 2006
@@ -117,10 +117,10 @@
end
if id2
- %Q[<a href="#{image_url}#{list[id.to_i]}"><img class="#{place}" src="#{image_url}#{list[id2.to_i]}" alt="#{alt}"></a>]
+ %Q[<a href="#{image_url}#{list[id.to_i]}" rel="lightbox"><img class="#{place}" src="#{image_url}#{list[id2.to_i]}" alt="#{alt}"></a>]
else
if slist[id.to_i]
- %Q[<a href="#{image_url}#{list[id.to_i]}"><img src="#{image_url}#{slist[id.to_i]}" alt="#{alt}" #{width_tag} class="#{place}"></a>]
+ %Q[<a href="#{image_url}#{list[id.to_i]}" rel="lightbox"><img src="#{image_url}#{slist[id.to_i]}" alt="#{alt}" #{width_tag} class="#{place}"></a>]
else
if list[id.to_i]
# %Q[<a href="#{image_url}#{list[id.to_i]}"><img src="#{image_url}#{list[id.to_i]}" alt="#{alt}" #{width_tag} class="#{place}"></a>]
@@ -452,4 +452,9 @@
<input type="hidden" name="date" value="#{date.strftime( '%Y%m%d' )}">
<input type="submit" name="plugin" value="画像の追加">
</form></div>]
+end
+
+add_header_proc do
+ %Q|\t<script type="text/javascript" src="./js/lightbox_plus.js"></script>\n
+ \t<link rel="stylesheet" href="./js/lightbox.css" type="text/css" media="all">\n|
end
以下をtdiary.confに追加する。
@options['image.dir'] = './images/' @options['image.url'] = 'images/' @options['image_ex.previewsize'] = 120 @options['image_ex.yearlydir'] = 0 @options['image_ex.useresize'] = 1 @options['image_ex.converttype'] = 0 @options['image_ex.thresholdsize'] = 160 @options['image_ex.convertedwidth'] = 160 @options['image_ex.convertedheight'] = 120 @options['image_ex.convertpath'] = "convert"
`~/www/diary/js'等のディレクトリを作って以下をその中に入れる。
lightbox_plus.js (以下のパッチを適用済み)lightbox.css blank.gif overlay.png close.gif shrink.gif expand.gif loading.gif zzoop.gif
--- js/lightbox_plus.js.orig Tue Jan 31 04:52:58 2006
+++ js/lightbox_plus.js Wed Sep 6 00:20:39 2006
@@ -415,12 +415,12 @@
// === main ===
addEvent(window,"load",function() {
var lightbox = new LightBox({
- loadingimg:'loading.gif',
- expandimg:'expand.gif',
- shrinkimg:'shrink.gif',
- effectimg:'zzoop.gif',
+ loadingimg:'./js/loading.gif',
+ expandimg:'./js/expand.gif',
+ shrinkimg:'./js/shrink.gif',
+ effectimg:'./js/zzoop.gif',
effectpos:{x:-40,y:-20},
effectclass:'effectable',
- closeimg:'close.gif'
+ closeimg:'./js/close.gif'
});
});
こんな日記で使う機会があるのかは微妙だが。。

![\[\int F(x)\mathrm{d}x=\sum_{k=0}^{n}\frac{a_{k}}{k+1}x^{k+1}\] \[\int F(x)\mathrm{d}x=\sum_{k=0}^{n}\frac{a_{k}}{k+1}x^{k+1}\]](images/tex/31268ef403a0428e42fb9e93db1d8aaf.png)
日本語LaTeX(platex,dvips)環境の導入を済ませ、tex.rbを落として、以下のパッチを当てる(標準ではファイル名置換に%を用いており、そのままではconvertコマンドの引数として%サイズ指定ができなかったので、$に置き換えたもの)。
--- ./misc/plugin/tex.rb.orig Mon Aug 23 21:50:39 2004
+++ ./misc/plugin/tex.rb Mon Sep 18 13:03:29 2006
@@ -179,7 +179,7 @@
filename = MD5.md5(str)
str_html = CGI.escapeHTML(str)
- opts = %Q[title="#{str_html}" class="tex" align="middle"]
+ opts = %Q[title="#{str_html}" class="tex" style="vertical-align:middle"]
html = %Q[<img src="#{workdir}/#{filename}.png" alt="#{str_html}" #{opts}>]
if File.exist?("#{workdir}/#{filename}.png") and ! @options['tex.recompile']
@@ -197,9 +197,9 @@
f.puts '\end{document}'
end
- latex = @options['tex.latex'] || 'platex %.tex'
- dvips = @options['tex.dvips'] || 'dvips %.dvi'
- pstoimg = @options['tex.pstoimg'] || 'pstoimg -antialias -transparent -crop a %.ps'
+ latex = @options['tex.latex'] || 'platex $.tex'
+ dvips = @options['tex.dvips'] || 'dvips $.dvi'
+ pstoimg = @options['tex.pstoimg'] || 'pstoimg -antialias -transparent -crop a $.ps'
begin
if @options['tex.log']
@@ -209,7 +209,7 @@
end
[ latex, dvips, pstoimg ].each do |cmd|
- run = cmd.gsub('%') { filename }
+ run = cmd.gsub('$') { filename }
raise unless system("cd #{workdir}; #{run} #{log}")
end
`~/www/diary/images/tex'のディレクトリを作り、以下をtdiary.confに追加する。*2
@options['tex.pointsize'] = '12pt' @options['tex.documentclass'] = 'jarticle' @options['tex.latex'] = 'platex $.tex' @options['tex.dvips'] = 'dvips $.dvi -o $.ps' @options['tex.pstoimg'] = 'convert -trim -transparent white -antialias -density 288 -geometry 40% $.ps $.png' @options['tex.recompile'] = false @options['tex.dir'] = 'images/tex' @options['tex.log'] = true
移行までしようと考えてたんだけど、手軽にできるツールはまだないみたい。とりあえず、いぬビームさんの所でbackup_mixiというrubyスクリプトがあったので、ありがたく使わさせていただき、今までの日記をバックアップ。暇ができたら、このデータをtDiary形式に変換しよう。
http://key.plala.jp/~yskhashi/mixi/
見直してみたら、もう1年以上経ってたんだなぁ。。
世の中に数多く存在する、「IE専用」とか威張って言う変なサイトに対応するための拡張らしい。デザイン崩れないのはうれしいがね。
W3C勧告にどれほど準拠しているかをチェックするAcid2ですが、手元にあるいくつかの主要ブラウザで試してみました。
まぁ、結果なんてすでに一覧したページにあるし、やるまでもなかったんだけど。Internet Explorer 系は血の海地獄で顔にもなってないな。Firefoxは目にモザイクがかけられ、口にガムテープが……(^^; Opera, Safari, iCabは完璧。鼻の回りにカーソル持って行くと、青色に変わります。IE7でCSSサポートがかなり改善されるって聞いてたんだけど、これ見せられるとやっぱり微妙……
しかし,MicrosoftはWaSPと意見が異なるようだ。「Acid2は,適合性テストとしては不適当です」とWilson氏は,Acid2のWeb サイトに書いてある内容と逆のことを述べている。「Acid2は『ウィッシュ・リスト』のようなものであり,われわれのチームにとって真に重要かつ有用ではあるのですが,私の理解では,IE 7.0の優先リストとするには,ふさわしくないと思われます」とWilson氏は述べている。しかし,他のブラウザ開発者は,Acid2に適合するように非常に努力している。
Microsoftは,Web標準において下位互換性の問題が解決されていないことを批判している。簡潔に言うと,Microsoftは今後も独自の道を歩み続けるだろうし,Microsoftはこれからも非標準のWeb技術を使用するたくさんの開発者をサポートし続けなくてはならない。その理由とは, IEをWeb標準に完全に準拠させたら,既存のIEに特化したWebサイトの半数以上で問題が発生する――ということが起きかねないためだ。
[IE 7.0の技術仕様が不便を招くより引用]
じゃあ、そのIEに特化したWebサイトを生み出させたのはどこのどいつよ。。なんか、さもIEは悪くないんですよ、って言ってるね。確かにユーザサポートは大切だよ。問題が起きるのを顧客は嫌うし。でも元はといえば、自分達でまいた種でしょ。起こしたことは仕方ないとして、今から開発するようなWeb技術者に対してもWeb標準へ進ませないつもり?MSのような大企業が、Acid2を無視するって言うのは、言わばWeb開発者への恐喝に値するよ。
関係ないけど、http://www.ie7.com/にアクセスすると……
高木氏の日記:高度に発展したユビキタス社会ではアクセス制御機能が電気通信回線を通じたものか見分けがつかない
私、ほんと最近まで不正アクセス禁止法がスタンドアローン環境においては適用されないことを知りませんでした……恥ずかしい限り。。
ってことはこの法律で処罰するためには、計算機はネットワーク認証(AcriveDirectory,NIS,LDAPなど)するしかないってことか。ローカルのAdministratorパスワードは何回チャレンジしてもOKなのだな♪(ぇ
ところでADはシングルサインオン(Kerberos認証)だから、ソフトウェアが資格情報(Credential)を勝手に使うよな(SSOなんだから当り前)。
高木氏の日記:ログアウトし忘れのブラウザをそうと知りつつ操作するのは不正アクセス行為に該当するか
のセッション関連で上げられてる点とおんなじような感じだと思うけど、例えばブラウザを起動した最初のページが資格情報を使うページとかだと、意図せずに不正アクセスとなるのかなぁ。。いや、その時点では故意ではなかったからそのまま閉じればOKなのか?そもそもOS操作は大丈夫なのか?
ちなみにこんなことがあった。後輩が私のPCでmixiへのログインをしてたんだけど、どうやらパスワードの保存にチェックをつけたままにしていたようで、次に私がログインするときは、後輩のアカウントで入ってしまった。でも私自身パスワードを保存していたので、すぐログインできることになんの違和感も持たず、しかも、最初のページもその後輩の「トップ」を押したときに出るページそのものであり、違和感すら感じなかった。その後輩の日記(ようするに現時点では自分自身)にコメントし、すぐにブラウザを閉じた。しばらくして、後輩から「何した!?」って言われるまで、なんのことかわからなかったものだ。ちなみにまったく故意はなかった。
「すべてのWebサイトがパスワードを確実に守ってくれるとは言い難い。そのため、Webサイトごとに異なるパスワードを使うことが極めて重要。それに加えて、辞書に載っている短い単語をパスワードにするのではなく、犯罪者に勘ぐられないようなパスワードをWebサイトごとに設定すべき」(Graham Cluley上級技術コンサルタント)。
[パスワードの使い回しで犯罪者の餌食に、Sophosが注意より引用]
確かにその通りなのだが、言う方は簡単でさ。。ランダムパスワードをサービス数だけ覚えろってのも酷な話よねぇ。だいたいそんなことしたら、あんまり使わないサービスを使うときに、「これだっけ、こっちだったっけ」って何回も打ってしまって、結局危険であることに変わりはない。*1
現実的な解としては、
などのグループ・階層単位で別々にパスワードを付けることだろう。下に行くほど、パスワードの強度は強い方がいい。もう、この際、金銭的被害のないサービスは、状況次第では突破されると考えるべきだ。HotmailやYahoo、mixiなどがこれらにあたるが、標準ではSSLログインなどの措置は取っていないため、よほど気を付けてないと、一度や二度平文でネットワーク上を流してしまうことになる。そもそもメッセンジャーサービスは暗号化してない気がする。
あとは、Windowsマシンのログオンに14文字以下のパスワードを付けている場合も、わずか5分程度ですべて解析されるから、過信しない方がいい。これは、ランダムであってもわかりやすい単語であっても関係ないので注意。もちろん、Windows Updateしてなかったり、ウィルス対策ソフト入れてなかったり、入れてるけど定義ファイルのアップデートしてなかったり、とか言うマシンは論外。
理想はパスワードだけでなく、生体認証や鍵認証と併用する方式だろうけど、新たなデバイスがいるからなぁ。やっとATMのような専用マシンで実現されてきはじめて、規格とかもバラバラだろうから、一般のPCではあと10年くらいはかかるかなぁ。
9時現在、日本語版iTunesはまだないみたい。
http://journal.mycom.co.jp/news/2006/09/13/100.html
New in iTunes
Movies
Buy Disney films from the iTunes Store and go to the movies without leaving your comfy chair.
Cover Flow
With Cover Flow, you can flip through your digital music and video collection just as you would CDs.
iPod Games
Just $4.99 in the iTunes Store, iPod games give you hours of fun.
Download Manager
Make the most of your time by telling iTunes in what order to download content from the iTunes Store.
MoviPod Summaryies
Get at-a-glance information about everything on your iPod.
[Apple iTunes7より引用]
追記:13時現在、日本語版も発表されました。
http://journal.mycom.co.jp/news/2006/09/13/101.html
全体的にさらにメタリック調になってます。左側のナビゲーションが行間をあけてアクセスし易いように、また映画配信にも手を出したためか、iTunes Music StoreがiTunes Storeになってます。今度からiTSが略語になるのかな?テレビ番組という項目がありますが、どう使うのかまだわかりません。放送業界と連携する必要があるなら、日本でのサービス提供ができるかが微妙ですね。
内部的な仕様であるネットワーク音楽共有(DAAP)には、6から大きな変化はないようで、mt-daapdなどは特に修正もなくいけるようです。
さらに追記:Windows版にはApple Software Updateと呼ばれるものが付属、これで通知だけでなくダウンロードも自動でやってインストーラーを立ち上げてくれるのですかな。
私はWindows版にはMulti-Plugin入れて、Macっぽくします。これ入れると、フォントも変更できるしね。7対応のPreview版が出てるけど(はやい……)、まだ安定してないらしいので正式版が出るまでは我慢しよう。
http://journal.mycom.co.jp/news/2006/09/19/343.html
http://spreadfirefox.jp/foxkeh/
個人的には↓が欲しいかも。

7000名の応募の中から抽選で1000名に当たるって。何か応募しておけばよかったな。
ちなみにmixiのFirefoxコミュニティのスレッドではかなりの酷評である。
私がいつの頃からか、バトンをことごとく無視するようになった理由を含め、ちょうどよい記事(筆者の結論とは全く関係ないのだが)があったので追従してみる。
この「バトン」については、いろいろな意見がある。友人同士でつながって楽しいし、ブログのネタにもなるからいいという人もいれば、勝手に回されても困るという否定派もいる。特に、バトンの最後に回す人を複数指名することが多いことから、スパムの一種であるチェーンメールとどう違うのか? という意見もある。
[本音を引き出す「バトンマーケティング」 (1/2)より引用]
はじめに思った疑問はそれだ。「バトン」というのだから、たいていはリレーを思い浮かべるように次の人へ橋渡しするのが役目であるはず。ならば、5人に回せ、とか言ってバトンを増やすのは変ではないか、という疑問である。そしてこの性質は、メールでは御法度となっているチェーンメールの性質とよく似ているということ。違うとすれば、必ず自分の返答(質問の回答)を付け加えることである。しかし、やはりバトンと言われる以上、一人ずつ回っていくのが妥当ではないか、と思う。
しかし、バトンに回答したことがある197人に、バトンについてどう思うのかを問うと、いちばん多かったのは「バトンのテーマによっては楽しいものもあれば、不愉快なものもある」の127人だった。確かに、バトンというのは千差万別であり、数多くの種類がある。趣味をテーマにしたものから、地域に根ざしたローカルバトン、そして恋愛バトンに至るまで、あらゆるジャンルを包括しているのが特徴だ。「楽しい」と答える人も42人いたが、「不愉快」も11人を数えた。
[(1/2)バトンは受け入れられているのかより引用]
前述の妥当な事がなぜされないのかと言えば、これが原因だろう。「不愉快」と取る人が出て、そこでバトンを止めてしまわないかという問題。
しかし、チェーンメールと違ってバトンの場合は回ってきても、そのバトン内容が自分のブログの趣旨にそぐわない場合などは、答えなかったり、ほかの人に回さなかったりすることも多いのは、先のアンケート結果からも明らかだ。そこがチェーンメールと違うところだ。
[(2/2)バトンとスパムはどう違う?より引用]
答えなければ回せないのだから、ある程度数が減ることは予想しうることである。長い質問だったり、回答に困るような質問は必然的に回されにくくなる。また、チェーンメールにおいては、相手の不安を煽る(例:不幸の手紙)、同情を引く(例:献血募集)と言った感じで、ある種の強制力がある。最近バトンにおいては、ここまでではないが、「強制バトン」「見たらやらなければいけないバトン」と言うのが増えてきた。あくまでアンケートだと言うのであれば、これは止めた方がいいであろう。バトンの内容にそうかかれているのであれば削除するか、コメントとしてやらなくてもいいことを明記するのがよい。
バトンマーケティングといっても別に、企業がマーケティングのためにバトンを開始する、ということではない。もちろん、そのようなことも不可能ではないだろう。実際に、誰かがマーケティングのために仕掛けたのではないか、というバトンが幾つか回っているようだ。しかし、仕掛けが成功し、最後まで全うされた場合はよいかもしれないが、否定が連鎖すると、ほかのブログマーケティング同様に失敗する恐れがある。
[(2/2)既存のバトンを活用した本音マーケティングより引用]
そう、最大の謎は、いったい誰が何の目的で開始しているか、という問題である。Webなどであれば、ある程度の割合で発信者のURLを張られるので、オリジナルへたどり着けるはずであり、その意図も理解しやすい。バトンの中には、明らかに個人のプライベートを対象とした質問が多い。果たして発信者は500世代目の回答者の答えに興味があるのだろうか。2世代目以降、発信者の特定はそうとう難しくなる。いや、発信者さえ「拾ってきました」と発言すれば、それが事実であるかどうかなんて確かめることはできない。性格柄、この構図はまさしくソーシャルハッキングに打って付けではないかと考えてしまう。
いったい、バトンはどこから来るのか。その謎が解けないと、下手に隣人が探りを入れているのではないかと勘ぐってしまう。
たまに見かけてたんだけど、どうやって作るのかな、と思ってた。試しにいっぱい作ってみた。





画像にしておけばスパマーに収集されにくくはなるね(ALT属性に含んでしまったら意味はないけど)。もちろん、画像を@より前と以降に分解して解析するって言う方法はできなくはないかな。
こんな感じで、任意のドメインに飾り付けをして画像に出力してくれるところ、ないだろうか?
FirefoxはBrowser に mixi, tDiaryはWebに統合かな。OtherはMonologyに変更。変更した際、RSSの日付を変えない方法(本当はあんまりよくないが)ないかな。
現在研究室で使用してるMac miniは、標準では256MBのメモリですが、オプションにより512MBに変更してるようでした。しかし、アプリケーションを最大限活用する私に取っては、これでもたびたびフリーズするような重さに悩まされていました。
そこで、これからも十分に遊べる研究に励めるようにコソッとメモリを交換してみました。参考までに付属のマニュアルには、「Apple正規サービスプロバイダのみ分解できます」って書いてありますので、バレたらたぶん保証は効きません(分解の参考ページ)。最大では1GBまで積めるようなので、家のWindowsマシンの2GBから一本持ってきました。さすがにあの小さい筐体(CDより二回りぐらい大きい)ですからスロットは1本しかありませんでした。
交換してからは特に異常もなく起動できました。
OSが起動して、アクティビティモニタでのメモリ使用量を見てみました。
おそらく利用するであろうアプリケーションをすべて同時に動かしたのですが、ギリギリ空きが12MBだけできました(緑)。まぁ現在非使用中が300MBほどある(青)ので、かなりのアプリケーションが余計にとっているのでしょう。問題は固定中(赤)と現在使用中(黄)で合計700MBほど。要するに512MBだったころには常にスワップが発生している状態。。そりゃハードディスクのアクセスはひどくなるし、2倍も3倍も時間かかります。そんなわけで、体感速度はかなり改善しました。あとCPU利用率も眺めてたんですが、どれも100%は使わないですね。メモリやHDDのI/Oのほうがネックになってるようです。
これくらいのDashboardで初回起動に10秒くらいかかります。今までは20〜30秒かかりましたので、まぁまぁですね。これでどうにかIntel Macまでのつなぎにはなりそうです。
Macを扱ってると、なんてネットワーク利用がしやすいように設計されているのだろう、と思う反面、WindowsやUNIXが混在するネットワークでは、極端に利用が制限されるものがあります。
それがBonjour(旧称:Rendevous)です。Bonjourはゼロコンフィギュレーションと呼ばれるネットワーク規格に属します。文字通り、“設定いらず”なんです。私が初めてこれを知ったのは、iTunesのネットワーク共有機能です。とても重宝しています。これはIETFのZeroconfワーキンググループにより検討されており、要求は3つあります。
実はWindowsにも1番と2番の機能が備わっています。1番に関しては、XPだと「制限されたネットワークに接続しています」などと言われたことはあるんじゃないでしょうか。この時は、DHCPサーバがない、もしくは通信障害により、リンクローカルアドレス(169.254/16)が割り当てられています。2番はマイネットワークを開けば、LAN内のコンピュータ一覧がでることです。ただ、これでできることはファイルの共有だけです。例えば、リモートデスクトップなどを使用したいと思った際には、「そのコンピュータでリモートデスクトップが利用できることをすでに知っていて、名前がわかる」という前提条件があります。
3番が加わるとどうなるかと言うと、あるホストが「リモートデスクトップを有効にしている人、応答して」って言うと、有効にしているLAN内のコンピュータが応答して一覧ができあがるわけです。そして「〜を有効にしている人」と言うのは、アプリケーションになります。つまりアプリケーションが起動した瞬間にそういうやりとりがされるので、あとは選ぶだけです。FTPクライアントであればFTPを探せばいいですし、ブラウザであればHTTP、ターミナルであればTelnetやSSHと言った具合にです。この結果、ホスト名の入力さえ必要ありません。学校の研究室でも、サーバが複数ありサービスも様々です。その中で、このサーバはこのサービスとこのサービス、このサービスはこのサーバに移動します、など、利用が変化する中で利用者は戸惑うことが多くなります。名前もうろ覚えの人が多いです。しかし、うろ覚えでも、一覧から選ぶ方式のほうが、入力する方式よりも確実なのは確かです。
で、現実問題として、Bonjourで完璧に運用できるMacで全部構成できたら問題ないのですが、ほとんどの企業・利用者はOSを選ぶわけではなく、アプリケーションを選び、それを使うからこのOS、という流れになるため、LAN内に複数のOSが混在することは珍しくありません。となると、WindowsやUNIXをBonjourに対応させたいという欲望が生まれるわけですねぇ。まぁ幸いなことにAppleは標準技術の採用やオープンソース活動にも積極的なので、私はプログラムをがりがり書くことはしなくてよさそうですw。私のやることはゼロコンフィギュレーションには絶対なりません。まぁそこは趣味なのでゼロだと面白みがないのですが。
ま、それで実装の勉強をしながらいろいろ実験してるんですけど、うまくいかないことが多いですね。既存のDNSと組み合わせれば、複数のサブネットをBonjourで解決できるらしいのです。まぁ気長にやっていこうかと思います。
ここ最近の活動時間と睡眠時間をグラフにしてみる。
我ながら、なんちゅー不規則な。でも睡眠時間は特に減ってるわけではないんだけどな(今日を除けば)。
そうそう、2007 Officeのβ2を試用してみたんだが、上のはExcel 2007で書いたグラフ。割と思ったことがやれて、見た目も結構いじれる。新たなユーザインターフェースである「リボン」も直観的で悪くない。
少なくとも、今までの「ファイル」「編集」ってな感じで、結局どこに入ってるのかわからないよりはいい。ま、今までのインターフェースに切り替えることも出来ないので、それで慣れていたユーザは多少覚えなおさなければいけないが。
便利なのは、グラフなどの飾り付けをしているときに、いちいち適用させずに、マウスオーバーで自動的にプレビューが表示される点だ。これなら生産性は向上しそうだ。プレゼンテーションではやはり見た目というのは重要なので、利用していこうかな。
でも、Mac OS X版はいつになるのかなぁ。。前回も1年ぐらい差があったからな。ちゃんとAppleと契約してるんだから同時発売できないもんかな。卒業までに発売してくれないと大学のボリュームライセンス受けられないではないか。
世界のWebは、Web2.0と呼ばれる新たな表現方法に向けて移行しつつあります。AjaxやRSSなんかがその代表例です。このtDiaryもRSS配信をサポートしており、実は完全準拠RSSリーダーさえあれば、日記は全て読めてしまいます。
さて、先頃Firefox2.0のRelease Candidate 1が発表されたので、もうそろそろ乗り換えることも前提で簡単にレポートを。
まず始めに言っておきますが、レンダリングエンジンGeckoは今回のバージョンアップでは大きく変更されていません。そのためページの見た目が変わることは、まずないでしょう。今回のアップデートの位置づけは、UIの変更による操作性の向上です。そのため、特別な理由がない限り1.5のユーザは移行することが望まれます。
まず、見た目ですが、ボタンの配置こそ変わっていないもののアイコンに若干の変更があります。また、ブックマークツールバーやタブと言った描画方法が変更されています。
左が1.5、右が2.0です。まぁこの辺は人によってはどうでもいいかもしれませんが、私は全体的にひきしまった感じがしていいと思います。また、Mac版は今まで、ブックマーク一覧にサイトごとのアイコンがなかったのでちょっと不便だったのですが、2.0からは追加されました。プラットホーム依存をなくす目的で、今回の描画方法の変更をしたのでしょう。
私が今回いいなと思ったのは、RSSリーダの選択ができるようになったこと。今までFxにはライブブックマークとよばれる、簡易的なRSSリーダーしかなく、せいぜいタイトル一覧を取得するぐらいにしか使えませんでした。まぁ、本格的に使いたかった人は、拡張機能のSageなんかをいれていたと思います。
今までと同じようにURL右のオレンジアイコンを押すと、上のような感じになります。選べるリーダーは`My Yahoo!', `Google', `Bloglines', `はてなRSS', `livedoor Reader', `goo RSS リーダー'、そして、アプリケーション全般です。試しにGoogleを選んでみると、こんな感じ。
Ajaxの利用でとても軽快に見ることが出来ます。
まぁ乗り換えるかどうかは、拡張機能の対応具合による、という人もいるでしょう。私の拡張機能の8割は、まだ2.0に対応していないそうです。動いているのは、Adblock Plusぐらい。Tab Mix PlusとSageが必要なくなったとしても、All-in-One Gestures, FireDictionary, Foxmarks Bookmark Synchronizerは私にとって必要です。まぁたぶん今回のRCで対応してくれるでしょうし、正式版のころには使えるようになるでしょう。
ああ、ここ数日は落ちることが多かったです。気づいたら寝てるという。しかも21時とか22時に。まぁ、朝6時に起きるのは健康的かなぁ。冬になってくると、比較的睡眠時間が長くなりますね。ただ布団から出たくないだけかもしれない。
先日できなかったのは、ひとつ上のルータ(NAPT)がきちんと再帰検索しなかったのが原因っぽい。ということで、DNSはその再帰検索先を直接指定することにした。
さて、ネットワーク状況を整理すると以下のようになる。
WindowsにはすべてBonjour for Windowsを導入済みだ。やりたかったことは、NAPT箱を挟んでBonjourによるサービス・名前解決を行いたかったわけだ。研究室のWindowsマシンはセキュリティ上の理由からNAPT箱の内側にいる。この内側だけであれば特に設定は必要ないのだが、NAPT箱の外側にあるサーバに対して、WebやSSHでアクセスすることはままある、というか私がよくする。研究室だけでCクラスをもらってるのだから、すべてにグローバルを割り振ることも全然不可能ではないのだが。。そういう状況で、NAPTは逃げな気がする。
で、参考は前回挙げたDNS-SDである。例えば、ここでWebサーバをサービス解決したいとしよう。131.206.173.0/24を管理するDNSサーバに以下のような記述を追加する。
; Bonjour Browse
b._dns-sd._udp IN PTR @ ; b = browse domain
lb._dns-sd._udp IN PTR @ ; lb = legacy browse domain
; Server List
_http._tcp 10 PTR Oonishino\ LAB._http._tcp
; Server Text
Oonishino\ LAB._http._tcp 10 SRV 01 00 80 www.smile.kyutech.ac.jp.
TXT path=/
Bonjour Browseのところが大切で、これでどのドメインを解決するのかを決定する。今回はこのドメインなので、@を指定。次にTCPでのHTTPを解決するためには、_http._tcpを定義し、これを[名前]._http._tcpのポインタにする。最後に、[名前]._http._tcpにSRVレコードとTXTレコードを追加する。SRVレコードは「順番」「優先度」「ポート番号」と並び、TXTレコードにホスト名以下のURLを表している。よってこれらから http://www.smile.kyutech.ac.jp:80/ という記述ができあがる。SRVレコードの詳細は@IT参照。
次にクライアントの設定をやる。これには2種類ほどやり方がある。一つはConfiguring clients to use Wide-Area BonjourでBonjour専用クライアントを入れる。
上のように検索したいドメインを追加していけばOK。もう一つはDNSのサフィックスにドメインを登録すること。これは本来FQDNでの指定からドメインを省略するのに使われる。
Bonjour Browserで閲覧した際に、local以外にもlabやsmile.kyutech.ac.jpが追加されているのが分かる。labはDHCPサーバからサフィックスとして追加するよう指示を出しているため、Bonjourクライアントの設定には入れていない。
例えばもう一つWebサーバが加わったとして、SSHサーバを追加したい場合はServer ListとServer Textは次のようになる。
; Server List
_http._tcp 10 PTR Oonishino\ LAB._http._tcp
_http._tcp 10 PTR SquirrelMail._http._tcp
_ssh._tcp 10 PTR Gateway\ Server._ssh._tcp
; Server Text
SquirrelMail._http._tcp 10 SRV 01 00 80 www
TXT path=/webmail/
Oonishino\ LAB._http._tcp 10 SRV 01 00 80 www
TXT path=/
Gateway\ Server._ssh._tcp 10 SRV 01 00 22 gw
はずなのだが……なぜかSSHクライアントのリストに表示されないのだ。さっきのBonjour Browserで見てみたら、HTTP以外の項目だけIPアドレスの情報が見えない。Safariでは問題なく見えてアクセスできる。
結局違いはTXTレコードしかないため、適当に情報を追加してみた。
Gateway\ Server._ssh._tcp 10 SRV 01 00 22 gw
TXT hoge
すると、今度は問題なく現れた。SSHやTelnetは別にTXTレコードを利用する場面はないのだが、とりあえず何か文字列を入れておかないと解決できないようだ。この辺は検証の余地あり。
全体的に注意すべき事は、DNSの構造をよく理解しておくこと。特にTTL等をあんまりに長くすると、シリアルを上げていっても外部からはすぐに反映されない。また、ユニキャストDNSによるサービス解決をするタイミングは、アプリケーションが起動時した時である(localドメインのマルチキャストDNSは即座に反映される)。だから、DNSを変更したときにはアプリケーションの再起動が必要だ。まぁもしかしたら一定時間でリロードするかもしれないが、そこまで検証していない。そして、検索するサービス名は、それぞれのアプリケーションが自分に関係あるものをする。例えばiTermなら_ssh._tcp, _telnet._tcp, _ftp._tcp、Safariなら_http._tcpといった具合にだ。どうもSafariは_https._tcpなどは検索していないらしく、反応がなかった。そのためSSLを使いたい場合などは、_http._tcpで定義してアクセスした後に、Apacheなどでリダイレクトさせるしか方法がない。これはなんとも不便なので、是非改善を望みたいところだ。まぁHTTP over TLSが一般になれば、必要なくなるという判断かもしれないが……世の中はその方向だしね。
追記(29日): DNS SRV (RFC 2782) Service Typesによると、sshにはユーザ名やパスワードを含めることが出来るらしい。anonymousシェルサーバは危険すぎるぞ。
それとBonjour Browserで見てたら、以下を定義しないと表示されないものがある。
; Service List _services._dns-sd._udp 10 IN PTR _http._tcp _services._dns-sd._udp 10 IN PTR _ftp._tcp _services._dns-sd._udp 10 IN PTR _ssh._tcp _services._dns-sd._udp 10 IN PTR _telnet._tcp _services._dns-sd._udp 10 IN PTR _kerberos._tcp _services._dns-sd._udp 10 IN PTR _kpasswd._tcp _services._dns-sd._udp 10 IN PTR _kerberos-adm._tcp
Service Discoveryとして定義するのはどこかで見たのだが、Bonjourでは必要ないかと思っていた。これがなくてもHTTP, FTP, SSH, Telnetなどは問題なかった。記述するのが正しいのかもしれない。
_ ゆーすけ [やっぱ凝り出すとすごい時間かかるな。。 今までこういうのをやらなかったのは、それが原因の一つでもあるんだけど、まぁボ..]
_ ゆーすけ [バイト。眠い……。]