おまぬけ活動日誌

最近のツッコまれどころ

この日誌から Google してもらう


2003年02月01日(Sat) 天気予報では雪、実際は快晴

いろいろ買い出しの後、家でアイロンがけ等。娘はもうMiles Davis先生では眠ってくれない。この前はもの珍しさがあったのか。


2005年02月01日(Tue) また雪だって

そして僕は寝坊…

[memo] 巷のWWWブラウザには実在証明のないSSL証明書を認証するルート証明書がすでに入っている

先日、yamk日記で、セキュリティ証明書を無償で発行する認証機関、CAcert.orgの証明書を巷のブラウザのルート証明書として入れてほしい、という話題がありました。 サービスを提供する側としては、既存の認証機関から高い証明書を買う必要がない、というのはうれしいことなのだけれど、例えばクレジットカードを入力する時に実在証明の無いWWWサイトに入力するのは避けたいので、利用者の面からはあまりいい加減な認証機関の証明書は入れてほしくないな、と思ってました。

ところが、tachのアレゲ日記より、SSL証明書には既に簡易証明書と実在証明もついた証明書があるという指摘。確かに、 https://www.valinux.co.jp/のSSL証明書とhttps://sourceforge.jp/の証明書には違いがありました。

まず、https://www.valinux.co.jpの証明書には、Subjectとして、

CN = www.valinux.co.jp
O = VA Linux Systems Japan K.K.
L = Chiyoda-ku
ST = Tokyo
C = JP

と書いてあります。ふむふむVA Linux Systems Japan K.K.は千代田区にあるのか。

一方、sourceforge.jpはどこにあるかというと、

CN = sourceforge.jp
OU = Domain Control Validated
OU = See www.geotrust.com/quickssl/cps (c)04
OU = https://services.choicepoint.net/get.jsp?2936769041
O = sourceforge.jp
C = JP

どこにもなーい。どちらの証明書も、Issuerは、

OU = Equifax Secure Certificate Authority
O = Equifax
C = US

でした。

僕のFirefoxにはこの認証機関の証明書が入っているので、上のページはどちらも警告のダイアログを見ることなしに閲覧することができます。

ということは。現時点ですでに、httpsの通信先が実在する企業である保証は、サイトの証明書を詳しく見ない限り、無いわけですね。これは知らなかった。オンラインショッピングなどをする場合には、httpsでつながっていることを確認するだけでは不十分(意図したホストに暗号化された通信路でデータを送信していることはわかっても、そのホストが意図した企業によって運営されているか確認できない)で、サイト証明書をちゃんと見た方がいいみたいですね。

勉強になった。オンラインショッピングなんてしないけど。

(追記)tachのアレゲ日記でとりあげていただきました。「これ(実在証明のない SSL サーバ証明書)自体は価値がないわけでなく,」とのこと。その通りだと思います。sourceforge.jp/orgは僕もよく利用させていただいてるし、通信路が暗号化されているので安心です。気になったのは、サイトの証明書の詳細を見ないと、そのサイトが、クレジットカード情報を送るに値するちゃんとした会社なのか、ネットワーク上だけの存在なのかわからない、ということです。


2006年02月01日(Wed) ひさびさ自転車通勤

[tDiary] 予定多すぎ

職場内tDiaryが今日の日記を表示しなくなった。将来の予定が多すぎて「最新」から漏れてしまうようになったため。

本当はtdiary.rbを改造して、「最新」のカウントをその日の日記から始めるようにしたいところなのだけれどかなり複雑なことをやっていそうで理解できなかったので、とりあえず下記を.htaccessに書いてお茶を濁した。

RewriteRule ^today(-[0-9]+)?\.html %{TIME_YEAR}%{TIME_MON}%{TIME_DAY}$1.html [L]

today.htmlでその日の日記を閲覧できるようになる。一つのURLが日によって別の内容を指すのは良くないような気もするのだけれど、「最新」のURLも著者が日記を書くにつれて別の内容になっていくのだし、まあいいか。

本当は、today+7.htmlとかで一週間の予定を見たいところ。でもtdiary.rbの改造が必要なのでやらない。

[tDiary] 予定多すぎ(2)

上の行は、RewriteRuleの最初に書いておけば[L]を無くして一度のスキャンでdate=…の形式まで持っていけることに気づいた。ついでに一週間先の予定まで表示するようにしてしまった。むちゃくちゃいい加減なパッチ。日付に付け加える「-n」と「+n」の意味が違うところがなさけない。-nだとn日分だけれど+nだと予定の有無に関わらずn日先、ということになる。

Index: index.rb
===================================================================
RCS file: /cvsroot/tdiary/core/index.rb,v
retrieving revision 1.30
diff -u -r1.30 index.rb
--- index.rb    13 Jun 2005 05:05:11 -0000      1.30
+++ index.rb    1 Feb 2006 23:22:21 -0000
@@ -1,4 +1,4 @@
-#!/usr/bin/env ruby
+#!/usr/bin/ruby
 #
 # index.rb $Revision: 1.30 $
 #
@@ -33,6 +33,11 @@
                        date = @cgi.params['date'][0]
                        if /^\d{8}-\d+$/ =~ date then
                                tdiary = TDiary::TDiaryLatest::new( @cgi, "latest.rhtml", conf )
+                       elsif /^(\d{8}) (\d+)$/ =~ date then
+                               days = $2
+                               startdate = Time.local(*($1.scan(/(\d{4})(\d\d)(\d\d)/)[0])) + 3600*24*days.to_i
+                               @cgi.params['date'][0] = "#{startdate.strftime('%Y%m%d')}-#{days}"
+                               tdiary = TDiary::TDiaryLatest::new( @cgi, "latest.rhtml", conf )
                        elsif /^\d{8}$/ =~ date
                                tdiary = TDiary::TDiaryDay::new( @cgi, "day.rhtml", conf )
                        elsif /^\d{6}$/ =~ date then

「today+7.html」というURLのプラス記号はスペースに変換されることを忘れていてすこし悩んだ。

[run] CSO延長 28分29秒

最短コース時点での時間は25分12秒。最短コースを5kmとするとCSO延長コースは5.6km。


2007年02月01日(Thu) おなかがいたいよ

[DocoMomo] /etc最小版のinitrd

昨日作った リストを見て、 ファイルとディレクトリを下記にしぼったinitrdを作ってみました。

/sbin /bin /lib /etc/sysconfig/keyboard /etc/sysconfig/init /etc/mtab /etc/ld.so.cache /etc/termcap /etc/security/console.perms.d/50-default.perms /etc/security/console.perms.d/60-libnjb.perms /etc/security/console.perms /etc/inittab /etc/dev.d/default /etc/rc.sysinit /etc/init.d /etc/rc?.d /etc/localtime /etc/cpuspeed.conf /etc/profile /etc/rc /etc/selinux/config /etc/nsswitch.conf /etc/passwd /etc/fstab /etc/blkid/blkid.tab /etc/inputrc /etc/rc.local /etc/momonga-release /etc/redhat-release

とりあえずはハードディスクの/bootにコピーしてgrubから選択して run level 1に起動できるか試してみました。こういう時にファイルだけ 置いておけば後から選べるgrubは便利です。 起動には無事成功して、rootのシェルが使えました。

で、initrdのイメージ(cpioアーカイブをgzip -9で圧縮したもの)の 大きさは、docomomo-0.9.4の29890893バイトに対して/etcをしぼったもの が28872983バイト。これだけ苦労して3.4%の減量。またこれか…。 とは言え、実メモリの使用量はこの差1Mバイト程度は減るわけで、それ はそれでうれしいのかもしれません。

一方、etcをext2のイメージとして持つ場合には、およそ6メガバイト のファイルになります。つまり/etcを後から変えられないDocoMomoに対 して、USBメモリに入るファイルの大きさは合計5メガバイト増える計算。 …まあ許容範囲かなあ。

いまのところ、上のリストにもあるように、/sbin /bin /lib以下の ファイルは全てinitrdに入れるようにしています。これはrun level 1で そこそこの作業ができるようにしたい、と思っているからです。ここで、 /libの内容は、/binにあるファイルからリンクされているものと 昨日のリストにあるものに 限ると、まだまだ減量できるかもしれないですね。そのかわり、/libの 内容もSquashFSにして別のファイルとして持つことになります。あぁ、 unionfsにできるといいのにな。でも、unionfsは、Momongaのカーネルが対応す るまではおあずけです。

(追記) あー。/etc/passwd消し忘れてました。

[DocoMomo] /lib最小版のinitrd

次に、/etc/passwdを消したあとに、/libにはinitrdに行くコマンドからリンクされているライブラリと、/lib/modulesと、/lib/kbd以下の必要なファイルだけを入れたinitrdを作ってみました。gzip -9したイメージは25068170バイト。これは効く。

で、ブートしてみてわかたことは、rc.sysinitが実行する/sbin/pam_console_applyなどがlibnss_files.so.2を必要とするが、lddでは見つけれられない(nsswitch.confを見てからロードするライブラリを決めるのかな)、また、rc.sysinitは他にもchownやchgrpを実行して、/etc/passwdにrootの行が、/etc/groupに root utmp floppy disk uucp の行が必要、ということでした。

そろそろ、これまでにわかったことをDocoMomoのMakefileに反映して、run level 3まで行く試験をしたいところです。

ruby-entity-reference-0.1.6をリリースしました

ruby-entity-referenceは、ISO-8859-1あるいはUTF-8の文字列のうち、ヨーロッパ言語の一部の文字を実体参照に変換します。多言語のwwwページの文字コードの変換などの際にお使いください。

リリース0.1.6では、ドキュメントを整備しました。使用例や、APIドキュメントもあります。通常使うAPIは、EntityReference.referenciate(string, encoding, charset)だけなのですが。


2008年02月01日(Fri) 出張復路

寒いなか、オープンツーシーターで日暮里まで送ってもらった。スーツケースがトランクに入るか心配だったが何とかなった。それにしても気持ちいいぞ!どうもありがとう。

NRT-HNL B747 LR SUD(たぶん)

古い機材。個人用のテレビが無かったが、あったとしても夜なので見ない。このごろのJALはメニューを座席のポケットに入れなくなったんだね。人件費の節約かな。スチュワーデスさんによると今晩のメニューはハンバーグかパスタとのこと。どういう選択肢やねん。おまけにパスタを選んだたら「あるかどうか見てきます」だって。

HNL-ITO B717

となりのおばさんが携帯電話をとりだして通じないなあ、と悩んでる。えーと、そりゃ電波届かないっしょ。いつも電波の届くところに居ると、どこでも電波が届くと思いこんじゃうんだよね、きっと。


2009年02月01日(Sun) なぜか早起き

もう2月!

[Ruby] ruby-1.9.1-p0を作ってみた

働けども働けどもハックできず。ぢっと手を見る…って働きすぎだよねー

というわけで、やっと、下記のような環境で

$ uname -srm
Linux 2.6.23-48m.mo4 x86_64
$ gcc -V
Using built-in specs.
Target: x86_64-momonga-linux
コンフィグオプション: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-languages=c,c++,objc,obj-c++,fortran,java --enable-java-awt=gtk --disable-dssi --enable-plugin --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-cpu=generic --host=x86_64-momonga-linux
スレッドモデル: posix
gcc バージョン 4.1.2 20070626 (Momonga Linux 4 4.1.2-12m.mo4)

ruby-1.9.1-p0を作りはじめて、

$ ../ruby-1.9.1-p0/configure --program-suffix=-1.9.1-x86_64 --prefix=$HOME/local/bin
$ make

(追記) configureの--prefixオプションは$HOME/local/bin じゃなくて$HOME/localにするべきだよね。

ぼーっと眺めてたら下記のような警告が出てました:

../ruby-1.9.1-p0/gc.c: In function ‘garbage_collect_with_gvl’:
../ruby-1.9.1-p0/gc.c:596: 警告: キャストによってポインタから異なるサイズの整数となります

「…となります」ってのがいいよね。「にくじゃがになります」っていう感じ。

テストの結果は下記の通り:

$ make install
$ make test-all
 (中略)
Finished in 426.679802 seconds.

  1) Failure:
test_handle_special_CROSSREF_no_underscore(TestRDocMarkupToHtmlCrossref) [/home/zunda/local/src/ruby-1.9.1-p0/test/rdoc/test_rdoc_markup_to_html_crossref.rb:87]:
Expected "<p> <a href=\"../files/home/zunda/local/src/ruby-1_9_1-p0/test/rdoc/rdoc_markup_to_html_crossref_reference_rb.html\">/home/zunda/local/src/ruby-1.9.1-p0/test/rdoc/rdoc_markup_to_html_crossref_reference.rb</a> </p> ", not "<p> /home/zunda/local/src/ruby-1.9.1-p0/test/rdoc/rdoc_markup_to_html_crossref_reference.rb </p> ".

5717 tests, 2837061 assertions, 1 failures, 0 errors, 0 skips
make: *** [test-all] エラー 1

昔も見たかな?それにしても1F0Eってのはすごい。ありがとうございます。

あう。prefix間違いた。やりなおし。


2010年02月01日(Mon) 久しぶりに良い天気で雨

良い天気というのはVogが薄いという意味ですー。

[pda] Androidで複数のFromを使ってメールを出す

これまでできないと思っていた、Androidで複数からFromを選んでメールを送る方法をみつけたのでまとめておきます。

前提条件。GMailのアカウントを持っていること、また、選ばれるFromが、そのアカウントのwwwインターフェースでメールを書く時に選べること。後者については条件にあてはまらないときにどうなるのか確認していませんが、wwwインターフェースからFromを選べる時に確認されることから考えて、Androidから出す場合にも確認されたFromから出せないと考えるのが自然だと思います。

準備。AndroidでEmailアプリケーション(Gmailアプリケーションではなく)を起動する。メニューボタンからAdd accountを選ぶ。Add accountのメールアドレスにFromとして選びたいものを入力し、PasswordにはGMailのアカウントのものを入力する。Manual setupを選ぶ。What type of account is this?にはIMAPを選ぶと良いと思う。UsernameにはGMailのアカウントのものに、「+(プラス)」とAccountごとに異なる適当な文字列を追加したものを使う。PasswordはGMailのアカウントのもの、IMAPについての設定はGMailの標準のものを設定する。Outgoing server settingsについても同様。これを、選びたいFrom分だけ繰り返す。EMailアプリケーションは、それぞれのAccountのUsernameが重複していないか確認するが、GmailのアカウントのUsernameに「+」と適当な文字列を追加することでこの確認を回避できる。

メールへの返信あるいは作成。EMailを起動したら必要に応じて左矢印のボタンを押しAccountsを選ぶ画面を表示する。Fromに使いたいAccountを選び、表示されたメールに返信する、あるいは、メニューボタンからComposeを選び、メールを作成する。

僕は届いたメールの一部をPDA用に作ったアカウントに転送して、閲覧しています。PDAに届いたメールに返信する時にはPDA用のメールアドレスではなく、書いているのはPDAの上でも元々届いたメールアドレスから返信したい。届いたメールの情報がアカウントの数の分だけ重複するのが気持ち悪いですが、これでNexus Oneがだいぶ実用に使えるようになりました。

Emailアプリケーションには、Gmailアプリケーションでは見つけられなかった差出人のメールアドレスを確認する機能などもあり、活用したいところです。ただ、GMailとの同期についてはGmailプリケーションの方がずっと速く(きっと専用のプロトコルを使ってるのでしょう)、Gmailアプリケーションを手放すわけにもいかないところです。


2011年02月01日(Tue) 体調回復中

AndroidにHIDデバイスを接続する

CyanogenModの入ったG1 (Android Dev Phone 1) を譲り受けたわけですが、なんとそのままHIDプロファイルのBluetoothキーボードが使えるのを発見しました。(ここまでG1で書いた)

ふと検索して発見した「My Apple Wireless Keyboard can connect to my Google Nexus One | The Rice Cooker 電飯煲」というページを見ると「Using CyanogenMod (currently in version 6, RC2), I can now connect an Apple Wireless Keyboard to my Google Nexus One phone. This works “out of the box”...」とあるではないですかっ!

さっそくG1 (CyanogenMod-6-01132011-NIGHTLY-D5) でやってみました。設定-無線とネットワーク-Bluetooth設定-デバイスのスキャン。Apple Wireless Keyboard側は電源を何度か切りなおすとペアリングをするモード(LEDが2回ずつ点滅する)になってくれるので、それを近くに持っていき、G1でApple Wireless Keyboardをタップ、G1からPINを入力しOKを押してから、Apple Wireless Keyboard側でその数字をタイプしてreturnを押す。一度でうまくいかない場合は何度か挑戦すると、「HIDデバイスに接続」と表示されます!

Apple Wireless KeyboardからG1に文字を入力している

これだけ!文字を入力できる場所にフォーカスするとSimejiのキーボードが開きつつApple Wireless Keyboardからの入力をローマ字かな変換してくれるよ!

G1ではちょーっと処理が遅いとか、矢印キーのバインディングが変(たぶんトラックボールの動作になってる、というか、トラックボールが矢印キーのイベントを作るんだろう)とか、細かいことはいろいろあるけれど、Nexus Oneなら十分実用になりそうです。やっぱりカスタムROM必須かなー。正規版でHIDプロファイル入れといてくれたらいいのにな。

[Walk] 徒歩36分50秒

脈拍平均102 BPM。久しぶりの歩き始めは脈拍が低く、2周目に入ってからいつも通りになってきた感じ。


作り手とその取り巻きだけが楽しんでる間は本物じゃない。その中身が理解できない人々の生活を変えてこそ本物だ


zunda <zunda at freeshell.org>