[Gmail][Postfix] GmailのSMTPサーバの認証局証明書の警告

引越先で新しく契約したプロバイダではメールサーバオプションなしなので,自宅サーバPostfixからのメール送信をGmailSMTPサーバ(smtp.gmail.com)を使ってすることにしました.

こちらの記事を参考にメール送信できるようになったけれど,ログに

certificate verification failed for smtp.gmail.com: num=20:unable to get local issuer certificate
certificate verification failed for smtp.gmail.com: num=21:unable to verify the first certificate
...

という警告が出ました.

GmailSMTPサーバがTLSセッション張るときに渡してくる証明書をPostfixが検証できていないということだろうか.

こちらのMLログによると
「しかるべきCA証明書をダウンロードしてPostfixにインストールせよ」とのこと.

こちらのページからroots.zipをダウンロードして,CentOSのCA証明書貯めっぽいところ(/etc/pki/CA)にコピーして

# cp Root\ Download\ Package/Thawte\ Roots/Thawte\ Server\ Roots/ThawteServerCA.cer /etc/pki/CA

/etc/postfix/main.cf に下の一行を追加して(参考:http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/postfix-jp/postfix-doc/html-jp/TLS_README.html?rev=1.2#client_tls

smtp_tls_CApath = /etc/pki/CA

その場所を知らせてやると,Postfix再起動後に証明書の警告は無事に消えた.

[Java][JavaScript] env.jsでHTTPのPOSTメソッドが実装されていない?

env.jsRhinoで利用できるwindowオブジェクトの実装.

とても便利に使わせていただいているのですが,どうもXmlHttpRequestのsend関数でHTTPのPOSTメソッドが実装されていない様子.

なので,POSTの部分だけとりあえず実装追加.
Rhinoでprotoype.js - みずぴー日記で変更された状態のenv.jsに対するdiffの形で

@@ -613,6 +613,11 @@
           for (var header in self.headers)
             connection.addRequestProperty(header, self.headers[header]);

+          if(self.method == "POST") {
+            connection.setDoOutput(true);
+            var ps = new java.io.PrintStream(connection.getOutputStream());
+            ps.print(new java.lang.String( data || "" ));
+          }
           connection.connect();

           // Stick the response headers into responseHeaders

こんな風にしてとりあえず動くようになった.

後でもう少し調べて報告しておこうかな.

ところで,env.jsで`file://`スキームのURLにPUTするとファイル書き込みができるって仕様はちょっと面白かった.

[Ubuntu] Canon BJ S330 のcupsドライバインストールメモ

BJ S300用の3つのrpmをとってきて,

  • bjfiltercups-ppd-1.0-0.i386.rpm (rpm.pbone.net から DL)
  • bjfiltercups-1.0-0.i386.rpm (rpm.pbone.net から DL)
  • bjfilterbjs300-2.1-1.i386.rpm (キヤノンのサイトから DL)

debに変換してインストール

$ fakeroot alien *.rpm
$ sudo dpkg --install *.deb

した後,cupsのコンソール https://localhost:631/ の管理メニューで検出されているUSBプリンタに

/usr/share/cups/model/canonbjs300.ppd

のPPDファイルを指定してインストール.

bjfilterで使うもので足りないライブラリがあるようなので,せっせと追加

$ bjfilterbjs300
bjfilterbjs300: error while loading shared libraries: libtiff.so.3: cannot open shared object file: No such file or directory
$ cd /usr/lib
$ sudo ln -s libtiff.so.4 libtiff.so.3
$ bjfilterbjs300
bjfilterbjs300: error while loading shared libraries: libpng.so.2: cannot open shared object file: No such file or directory
$ sudo apt-get install libpng3
$ sudo ln -s libpng.so.3 libpng.so.2

グレースケールの印刷をしたい場合はどうしたらいいんだろう.

参考:
キヤノン:ソフトウエアダウンロード | インクジェットプリンター
http://members.jcom.home.ne.jp/tanitsu/2004-07-27.html
http://search.luky.org/vine-users.7/msg01403.html

サーバがクラッシュ

自宅サーバpyxisさん(Sizka機)がクラッシュした.

ハードディスクの故障かな.

保冷材をのせていたりはしたけれど,夏場になって結構熱がやばかったので,それが故障の一因かもしれない.
Googleによると、ハードディスクは温度や使用頻度に関係なく故障する - GIGAZINE

今は急遽ノートパソコンにhttps/svnサーバを立て,レポジトリをバックアップから復元してしのぎ中.

他のPCの/etc/hostsを書き換えてレポジトリの場所をだませば,割と不自由はしない様子.

ということでここ数日は どうでもいいWikiと,あまりどうでもよくないTomcat/Active BPELサービスなどが停止したまんまになりそう.

じゃらん to Googleマップ

確か1年以上前にはもうお見かけしていたと思いますがじゃらんWebサービスとGoogle Maps APIでそれっぽいものつくってみた。じゃらんAPIGoogle Maps APIマッシュアップするアプリが紹介されています。

今回はこれに似たようなものをPatchService上で作る手順です。ただしちょっと簡略化(都道府県単位のみ)。
↓は動画へのリンクです(3分32秒)

続きを読む

じゃらん宿表示APIライトの結果をKMLに変換するXSL

XSLのソースは記事末尾に.

変換の要点は

宿表示API-> ->KML
名前空間 jws http://earth.google.com/kml/2.1
要素 / kml
要素 Results Document
要素 Hotel Placemark

です.名前つきテンプレート(サブルーチンのように使う)はそれぞれ

lat_and_lng(lt, ln)
座標変換して結果をタグで返す
coordinates(lt, ln)
座標変換して結果をタグで返す
newline
改行(<br />)

というものです.座標変換部が冗長なのはご愛嬌.

そしてマッチしなかった残りの要素はすべて無視します:

<xsl:template match="@*|node()">
</xsl:template>
続きを読む