メモの日々


2002年11月11日(月) 眠い日

Cプロジェクト

  • 14:50 noonにSSL証明書を発行してみた。が、まだ動かない。なぜだ。
  • 15:00〜17:00 高本吉田水野兒玉板敷と打ち合わせ。進捗報告など。皆思い思いに仕事を進めている。これでまとまるのだろうか。
  • 17:30〜19:00 やっとSSL使えるようになった。ポートを443以外に変更したら動いたのだ。443は規定のウェブサイトに予約されているってことか?意味が分からん。無駄な時間を過ごしてしまった。
  • 19:15 SharePoint Team Servicesと繋がらなくなった。もう帰る。

Kプロジェクト

  • 13:00〜14:30 佐藤目黒佐藤清水高本牧野浅海と打ち合わせ。九州どうするか運用どうするかバージョンアップどうするか。誰も何も見積もれない。プロシキじゃないですよー。

その他

  • 7:00 うーん、全然眠れない。
  • 8:30〜9:30 部会とプロジェクト会議。ボーナス2.5ヶ月とか。SCSIボードを買うのは問題無いようだ。
  • 10:00〜12:00 月例部会。Cプロジェクトとクプロジェクトの紹介と保守について話し合い。Cプロジェクトは...。クプロジェクトは高本さんばっか質問してて高本さんのためにデモしたみたいになってた。

2003年11月11日(火)

生活

  • 10:10 出社。電車の中ではすぐに眠れる。電車は巨大な揺り籠ですね。
  • なんだかHDDが忙しそうなので調べたら、McShield.exeというプロセスが忙しそうにしている。これってVirusScanのプロセスだよね。ちゃんと自動インストールされてたみたい。へー。
  • イベントビューアを見ると、たった今インストールされたようだ。エージェントとかいうのをインストールしたのは半月前だぞ。なんなんだ、このタイムラグは。
  • 11:30〜12:10 Mさんと打ち合わせ。
  • 20:50 うーん、忙しくなってきたなあ。はかどらない。退社。

2004年11月11日(木)

  • 黒革の手帖を少し見た。米倉涼子が吉岡美穂を柳葉敏郎の元に送り込み対決するんだけど反撃されてすごい顔で睨んでいるところ。
  • ダウンタウンDXを見た。華原朋美は皆で家出をして紙を食べたことがあり、その経験によると黒い所は甘くて色のついたやつは美味いとのこと。

[howto] SSHによるポートフォワーディング

初めて利用してみた。まだちゃんと理解していないのだけれどメモ。

ホストA ----- ホストB ----- ホストC

のようにホストAとホストCがホストBを介して繋がっているとする。

ホストAからホストCへ直接ログイン

ホストAにて

% ssh -L 10022:ホストC:22 ホストB

を実行してホストBにログインしておくと、その後ホストAから

% ssh -p 10022 localhost

とすればホストCのSSHサービスへ直接ログインできるようになった。

ホストAからホストCのCVSリポジトリへアクセス

ホストAにて

% ssh -L 2401:ホストC:2401 ホストB

を実行してホストBにログインしておくと、その後ホストAから

% cvs -d :pserver:localhost:CVSリポジトリのパス login
% cvs -d :pserver:localhost:CVSリポジトリのパス checkout

などとしてホストC上のCVSリポジトリへアクセスできた。

バックグラウンドで実行

ホストAにて

% ssh -C -N -f -L ホストAのポート:ホストC:ホストCのポート ホストB

のようにしておくと、sshがバックグラウンドで実行され、ホストCへのトンネルがずっと維持されるみたい。「-C」はデータ圧縮の有効化、「-N」はリモートコマンドを実行しないようにする、「-f」はバックグラウンドで実行の意味。

(追記)

sshの-Rオプションを使ったフォワーディングも試してみた

[unix] Xで日本語フォントが汚いのに対処

FreeBSD4.9でportsからGNOME2をインストールするとすぐ日本語表示できたが、フォントが汚かった。portsから、japanese/sazanami-ttf をインストールしたらそれだけで綺麗なフォントになった。ついでに各ウィンドウのタイトルバーなどが細くなりスマートになった。

使えるフォントは「fc-list」コマンドで分かる。

やること

  • プリンタ処分
  • リンク元のスリム化
  • ナンバーアナウンス解約

2007年11月11日(日)

[tdiary] 外部のリンクから辿ってきたときエラーになっていた

500 Internal Server Error

premature end of regular expression: /[url=/ (RegexpError)

/virtual/ogawa/public_html/tdiary/tdiary/filter/spam.rb:157:in `update_config'
/virtual/ogawa/public_html/tdiary/tdiary/filter/spam.rb:157:in `collect'
/virtual/ogawa/public_html/tdiary/tdiary/filter/spam.rb:157:in `update_config'
/virtual/ogawa/public_html/tdiary/tdiary/filter/spam.rb:380:in `referer_filter'
/virtual/ogawa/public_html/tdiary/tdiary.rb:1170:in `referer_filter'
/virtual/ogawa/public_html/tdiary/tdiary.rb:1169:in `each'
/virtual/ogawa/public_html/tdiary/tdiary.rb:1169:in `referer_filter'
/virtual/ogawa/public_html/tdiary/tdiary.rb:1549:in `initialize'
/virtual/ogawa/public_html/tdiary/tdiary.rb:1628:in `initialize'
/virtual/ogawa/public_html/tdiary/index.cgi:37:in `new'
/virtual/ogawa/public_html/tdiary/index.cgi:37

というエラー。ちょっと前に、spamフィルターの設定画面の「ツッコミ本文」の欄に「[url=」を追加していたのが原因。あー、ここには正規表現を書くのか。

設定画面に、正規表現エラーかどうかをチェックする機能を付けたらいいかもな。

あと、ツッコミしてるわけじゃないのに「ツッコミ本文」のフィルターが動いているというのは無駄だなあ。

[xrea] rubylibディレクトリがあった

rubylibというディレクトリがあるのに気付いた。amritaとかが入っている。なんだこれ。覚えがないけど、自分で置いたのかなあ。日付は2003年5月だ。

[book] 海辺のカフカ (村上春樹)

海辺のカフカ〈上〉(村上 春樹) 海辺のカフカ〈下〉(村上 春樹)

読んだ。15歳の田村カフカが家出して四国に行く話と、猫と喋れる老人ナカタさんの話が交互に描かれる。ジョニーウォーカーやカーネルサンダーズが出てくるナカタさんの話は楽しい。で、最後の方はよく分からない話になってきて、結局なんだったのか分からぬまま終わった。3.5点。

[dream] コップが飛ぶ夢

実家の台所のテーブルにて、水の入ったコップを両手で持ち、手を離すとコップがビューンと上に飛んでいくことに気付いた。なんだこの現象は。父親もいたので、この現象の原因が(1)おれの超能力(2)この場所の不思議な力(3)コップのせい(4)水が特別、などの何なのかを調べるためにちょっと父ちゃんも試してみてくれと頼むが、コップは手にしているのに関係ない話をしたりして全然調査の役に立たず苛々する。そんな夢。その後場面が変わってどこかへ行ったりしたがそのへんは忘れてしまった。

なんで夢って覚えていられないのかなあ。

やること

  • 免許
  • 請書

2011年11月11日(金)

[life] 歯医者へ行く 2回目

結局、今回も検査をされただけで治療行為はなし。

歯周ポケットの深さを、全歯について調べられた。所によりわりと痛い。衛生士さんがマイクで機械に「次」「戻れ」「3」などど指示しながら記録を録っていた。奥歯の方に深い歯周ポケットがある。

最後にレントゲン。メリーゴーランドのような音楽と共に機械が顔の回りをぐるぐる回っていた。

院長先生は不在なようで、若い先生が少しだけ顔を出してくれた。料金は3600円。


2012年11月11日(日)

[c][dev] x86での浮動小数点演算

x86上のGCCでコンパイルしたプログラムの動作が、x64上のそれと異なっていた。調べると、両者の浮動小数点演算のデフォルトの振る舞いが違うみたい。gccのmanに次のようにある。

       -mfpmath=unit
           選択されたユニット unit のための浮動小数点演算を生成します。unit た
           めの選択は次の通りです:

           387 チップの大多数に存在する標準の 387 浮動小数点コプロセッサを使用
               し、そのほかは、エミュレートされます。このオプションつきでコン
               パイルされたコードは、ほとんどすべての点で動作します。一時的な
               結果は、他のチップの大部分と比べて、わずかに異なった結果をもた
               らすタイプによって指定された精度の代わりに 80 ビットの精度で計
               算されます。より詳細な記述については -ffloat-store を参照してく
               ださい。

               これは i386 コンパイラのためのデフォルトの選択です。

           sse SSE 命令セットに存在するスカラ浮動小数点命令を使用します。この
               命令セットは Pentium3 以降、Athlon-4, Athlon-xp と Athlon-mp
               チップによる AMD 系列でサポートされます。SSE 命令セットの初期の
               バージョンは、単精度演算のみをサポートし、そのため、倍精度と拡
               張精度演算は、まだ 387 を使用して行われます。後のバージョン、
               Pentium4 でのみ存在し、将来の AMD x86-64 チップは、倍精度演算も
               サポートしています。

               i386 コンパイラに関して、利用者は、SSE 拡張を有効にして、このオ
               プションが効果があるようにするために、-march=cpu-type, -msse ま
               たは -msse2 スイッチを使用する必要があります。x86-64 コンパイラ
               について、これらの拡張はデフォルトで有効にされています。

               結果のコードは、大多数の場合にかなり速くなり、387 コードの数値
               不安定性問題を避けるべきですが、一時的なものを 80 ビットと期待
               するいくつかの既存のコードを壊すかもしれません。

               これは x86-64 コンパイラのためのデフォルトの選択です。

なので、x86上だとデフォルトで「80 ビットの精度で計算」され、x64上だと80ビットでは計算されないようだ。80ビットでの計算のついてはBinary HacksのHACK#98「x86が持つ浮動小数点演算命令の特殊性」でも触れられていた。

上の引用を参考に、x86上でのコンパイル時に「-mfpmath=sse -msse2」というオプションを付けるようにしたらx64と同じ振る舞いになるようになった。以下サンプルコード。

同一引数の関数呼び出し結果が不一致

次のプログラムをx86上のGCC 4.6.3でオプションなしでコンパイルすると、「not equal」が出力される。えー。

「-mfpmath=sse -msse2」オプションを付ければめでたく「equal」と出力され、これはx64上での動作と一致する。

#include <stdio.h>

double f(double d) { return d + 1.0; }

int main() {
    if (f(0.1) == f(0.1)) {
        printf("equal\n");
    } else {
        printf("not equal\n");
    }
    return 0;
}

doubleからintへのキャスト

次のプログラムをx86上のGCC 4.6.3でオプションなしでコンパイルすると

0 1 2 2 4 5 5 6 8 9

と出力され残念な感じ。「-mfpmath=sse -msse2」オプションを付けると

0 1 2 3 4 5 6 7 8 9

と出力される。

#include <stdio.h>

int main() {
    int i;
    for (i = 0; i < 10; ++i) {
        double d = i / 10.0;
        int j = d * 10.0;
        printf("%i ", j);
    }
    printf("\n");
    return 0;
}

2013年11月11日(月)

[python][java] JythonをScriptEngine経由で使うとdatetimeモジュールが正しく動かない

Javaのスプリクティング機能Jython 2.5.3を使ってJavaから次のPythonスクリプト

import datetime

d = datetime.date.today()
print d
print d.year
print d.min

を実行すると、

2013-11-11
113
AttributeError: 'java.sql.Date' object has no attribute 'min' in <script> at line number 6

と出力される(Java側のコードは省略)。'java.sql.Date' だと?!

試しにスプリクティング機能を使わず、

% java -jar jython-standalone-2.5.3.jar script.py

のようにスクリプトを実行すると、

2013-11-11
2013
0001-01-01

と正しく動作した。

検索すると、

というJythonのissueが見つかった。2年以上前に報告されているけれど未だに直らないみたい。

このissueにあるように「del datetime.date.__tojava__」という行をPythonスクリプトに追加してからJavaのスクリプティング機能を使って実行すると、

datetime.date(2013, 11, 11)
2013
datetime.date(1, 1, 1)

と出力されるようになった。