メモの日々


2002年08月19日(月) 台風だ

会社

  • 10:10 朝家を出るとものすごい雨。あっという間に靴の中まで水浸し。駅へ辿り着くまでひどくつらかった。が、会社に来てみるとしょぼい雨。なんだよ、損したな。局所的な大雨だったのかあの時間だけすごかったのか。なんにしても少し待ってから来ればよかった。
  • 13:05〜13:15 大黒さんにKが使っているネットワークのことを聞かれた。
  • 13:55 えー、ミスド閉店しちゃったの?一度しか行けなかった...。
  • 17:30〜17:45 SFAが動かなくなったと山本くんから電話。結局、フォルダのアクセス権を変更してしまっていたのが原因だった。everyoneへのアクセス権限を削除してしまったようだ。

[windows] netstatでリッスンしているプロセスを特定する

Windowsでのnetstatの使い方。PCDN News Letterより。Windows XPではnetstat -oとやるとプロセスIDが表示されるそうです。

[java] 第4回 Webアプリケーションの高速化実験

Javaのチューニングの話。PCDN News Letterより。

[net] Use telnet

telnetを使って色々やるやり方が載っている。太田の日記より。勉強になるかも。

[dev] オーケイ通信事務所 技術ドキュメント

色々なTipsが載っている。fj.comp.announceより。fj.comp.announceに会社のウェブサイト紹介の記事を投稿するのは珍しい気がする。

Iプロジェクト

  • 板敷さんが未決トレイに何もでないと言っている。そんなことあるのかな。なにか設定を間違えているのかも。が、思いつかない。
  • 13:20 これから板敷さんのやつ調べる。
  • 13:40 板敷さんのやつを調べ、メイルを書いた。普通に動いている。板敷さんはJavaアプレットを使わないよう設定してしまっているのかもしれない。
  • 15:00〜16:15 みんなで打ち合わせ。@@@とオムロンを調べないといけなくなっている。

Kプロジェクト

  • 9:00 Kでエラーが発生するとの連絡。Windowsにログインしてエクスプローラを起動しようとしても起動せずイベントビューワも開かない。おかしいのでリブート。なんなんだ。
  • 10:35 今度はログイン画面が出ないといわれIISを再起動。なんなんだ。
  • 10:50 IIS再起動で直ったと思ったがまたログイン画面が出ない。直ったと思ったときはプロキシのキャッシュを見ていた可能性もある。pcAnywhereも動かないしほかのサイトも動かないのでプロバイダ側がおかしいのではないかとも考えられる。でもマイクロソフトのサイトは動いてるんだよなあ。
  • 〜11:30 Kのサーバはちゃんと動いているようだ。がほかのサーバは断続的にpingが通らなくなる。情報インフラ室にメイルを出してみたぞ。
  • 16:30〜17:15 フォルダにドキュメントを登録しようとするとエラーになるというお客のことを調べた。Javascriptのエラーが出ているようなのでJavascriptの書き方が悪いのかなあ。
  • 17:30〜18:30 監視していた。エラーが色々あったので調べた。そしたらまた急にネットワークがおかしくなりアクセスできなくなってしまった。残りは明日やるよ。

2003年08月19日(火)

[xrea] namazu.cgi動いた

yoshimiさんのツッコミを参考にして設定したら動くようになりました。ありがとうございます。

でも今やソースを読んだpnamazuの方に愛着が…。しばらくはpnamazuを使い続けることにします。

[life] 眼科へ行く

ついに行った。生まれて初めて。先生

目の疲れと充血を訴えたが、やったのは視力検査だけだったかな。眼鏡の度があまり合っていないというだけ。検査の過程でコンタクトレンズを久しぶりに着けた。着けていいのか。目薬を二つ貰って2260円。また週末に行く予定。

[soft] AVG(3)

ちゅき猿の掲示板を見たら、日本語化パッチは再度適用すればOKという情報があったのでやってみたらうまくいった。またウィルスデータファイルのアップデートが失敗するのはサーバに繋がりにくくなっているだけだという情報もあった。未だに何度試しても失敗してしまう。

[windows] 第2回 ネットワーク・モニタのフィルタ機能を使う (@IT)

Windowsに付属するネットワークモニタの使い方解説の連載。大変使いにくいソフトだった記憶があるので解説のページは役に立つであろう。

[life] 目薬

眼科で貰った目薬はムコファジンフルオロメトロン。わー、副作用とかあるのかよ、怖くなってきた。

それは、目薬の全身的な影響です。目薬は涙管を通ると鼻の粘膜から吸収され全身にまわります。たかが目薬と思われるかもしれませんが、中にはその効果を上げるために非常に高濃度な目薬もあります。特に緑内障の薬の中には心臓や呼吸器系などに重篤な副作用を起こすものもありますので、回数はきちんと守ることが大切です。

眼科より。うー。

目薬のさし方も調べた。

まばたきをすると涙は目を潤すと同時に、目から鼻へと流れでてしまいます。目薬をさしてすぐにまばたきをすると、薬が涙と一緒に目から流れ出てしまい、効き目が下がってしまいます。目薬をさしたら、しばらくは目をつぶって、目頭を押さえているのが効果的です。

間違っていませんか 目薬編より。まばたきをしてはいけないのだ。鼻へ流れ出たら全身にまわって副作用を及ぼすのだ。怖ー。薬は苦手だ。

やること

  • 電気カミソリを買う
  • トイレットペーパー、歯磨き粉を買う

2004年08月19日(木)

  • 生活のリズムが滅茶苦茶になってる。
  • Mさんの尽力により、職場フロアのネットワークが遅い現象が解決したようだ。ハブが馬鹿なことが原因らしい。リモートログイン時にストレスを感じていたので、解決して助かりました。
  • コーディング中だが詰まってばかりで進まない。

[windows] 「文書作成時または保存時に"録音された音声認識入力や・・・"メッセージが表示される」 (Microsoft Word 豆知識&トラブル脱出)

以前はこのエラーよく出ていた。PCの性能が上がったからか最近は出ていないが、一応メモ。はてなより。

(追記)

マイクロソフトのサポート技術情報もメモ。

やること

  • プリンタ処分
  • リンク元のスリム化
  • 蛍光灯を買う
  • 電球を買う

2007年08月19日(日)

[book] 半島を出よ (村上龍)

半島を出よ(村上竜/著)半島を出よ(村上竜/著)

読んだ。2011年、経済が崩壊し弱体化した日本に、ハン・スンジン率いる9人の北朝鮮特殊戦部隊が潜入し九州制圧を目論む10日間くらいの話。登場人物多く、9人のコマンドとイシハラグループの名前を把握するのに一苦労。北朝鮮の話は面白いが少年達の記述の冗舌さはやや退屈。4点。

[life] 図書館へ行く

  • 昭和歌謡大全集 (村上龍)
  • 千円札は拾うな (安田佳生)
  • サッカーマガジン 2007.7.3 「J緊急補強&緊急移籍」

を借りた。暑いなー。


2011年08月19日(金)

[dev][howto] Gitでブランチ間の差分を表示

Gitでブランチ「branch」をブランチ「master」へマージするときに、確認のため差分を表示したい。このケースでは、masterからbranchまでの差分を表示したいので、

% git diff master branch

または

% git diff master..branch

とすればよい。マニュアルによればどちらでも同じみたい。

で、マージをする直前はカレントのブランチはmasterになっているはずで、そのとき上は

% git diff ..branch

と書けるようだ。これを使うのがいいと思った。

[link][dev][service] 英語のオンライン類語・反対語辞典

encartaの類語辞典のサイトは復活しそうにないので、別のサイトをいくつかメモ。どれがいいかまだわからない。

Thesaurus.com
機能がencartaの辞典と似てていいのだけど、画面が見難い。
Wordsmyth
こちらの方が検索結果が見やすくていいかなあ。
Synonym.com
画面がシンプルでいいのだけど、検索結果が少ない。

2012年08月19日(日)

  • 古江が大企業の幹部になっている夢をみた。

[java] JNIを使う

JNIを使ってみたので手順をメモ。Windows上で、MinGW-w64を使ってネイティブコードの実装を行う。

  1. ネイティブメソッドを持つクラスの作成 (Java)
  2. ヘッダファイルの生成 (Java)
  3. ネイティブメソッドの実装 (C++)
  4. 共有ライブラリの作成 (C++)
  5. 実行 (Java)

ネイティブメソッドを持つクラスの作成 (Java)

package sample;

public class NativeCounter {
    private int value = 0;
    public native int add(int i); // これをC++で実装する。

    public static void main(String[] args){
        NativeCounter counter = new NativeCounter();
        counter.add(100);
        System.out.println(counter.add(100));
    }

    // ライブラリのロード処理。
    static {
        System.loadLibrary("counter");
    }
}

add()がネイティブメソッド。native修飾子を付けて、実装はなしにする。

ネイティブメソッドを使えるようにするには後で作成する共有ライブラリをロードする必要があるので、System.loadLibrary()によりそれも行っている。

ヘッダファイルの生成 (Java)

javahコマンドを使うと、ネイティブメソッドの実装に必要なヘッダファイルを生成できる。

> javah -cp . sample.NativeCounter

これでカレントディレクトリに sample_NativeCounter.h が生成された。なお、javahの -stubs オプションは機能しないみたい。

ネイティブメソッドの実装 (C++)

生成された sample_NativeCounter.h に合わせて sample_NativeCounter.cpp を次のように書いてみる。

#include "sample_NativeCounter.h"

JNIEXPORT jint JNICALL Java_sample_NativeCounter_add(
        JNIEnv *env,
        jobject obj, // JavaのNativeCounterオブジェクトを指す
        jint i) {
    // NativeCounter#valueフィールドを取得
    jclass objClass = env->GetObjectClass(obj);
    jfieldID valueField = env->GetFieldID(objClass, "value", "I");

    // フィールドを取得できない場合は例外が投げられているはず。速やかに
    // returnするとJava側では戻り値ではなく例外を受け取る。
    if (!valueField) return 0;

    // NativeCounter#valueフィールドの値の取得と更新
    jint v = env->GetIntField(obj, valueField);
    jint result = v + i;
    env->SetIntField(obj, valueField, result);

    return result;
}

ネイティブコード内でのJavaとのやりとりはJNIEnvクラスが持つメンバ関数を介して行える。使える関数はここで分かる。

手元の環境だとjint型はlongのtypedefだった。

共有ライブラリの作成 (C++)

上述の通り、MinGW-w64のg++を使って共有ライブラリを作成する。MinGW-w64ではなくMinGWの方のウェブサイトにJNI-MinGW-DLLというページがあったので、ここに従って

> g++ -Wall -D_JNI_IMPLEMENTATION_ -Wl,--kill-at ^
  -I"%JAVA_HOME%\include" -I"%JAVA_HOME%\include\win32" ^
  -shared -o counter.dll sample_NativeCounter.cpp

とした(コマンドプロンプトで実行)。_JNI_IMPLEMENTATION_ の定義の必要性は理解していない。jni.h内で使われているが、定義しなくても動作した。-Wl,--kill-at は必要で、これがないとJavaからDLL内の関数を見つけられなかった。

実行 (Java)

作成したNativeCounterクラスの実行時には、上で作った counter.dll をロードできるようにする必要がある。実行時にシステムプロパティの java.library.path に counter.dll が置かれているディレクトリを指定するのが一つの方法。

> java -cp . -Djava.library.path=lib sample.NativeCounter
200

2019年08月19日(月)

[dev] SubversionでE160043エラー

久々にSubversionを使わなければならなくなってしまった。

svn checkoutを実行しようとすると、

Expected FS format between '1' and '7'; found format '8'

というエラーでチェックアウトできない。調べると、format 8というのはSubversionのバージョン1.10で導入された模様。

The default filesystem format is now version 8, introduced in 1.10.

Ubuntu 18.04のSubversionのパッケージのバージョンは1.9.7なのでエラーになってしまう。

なんとかならないか調べたところ、

WANdiscoへのリンクがあって、ここでUbuntu 18.04用のSubversion 1.11を配布していた。なので、ここのURLをsources.listに指定してSubversion 1.11を使えるようにした(やり方は正しく理解していないのでここには書かない)。