メモの日々


2000年11月27日(月) DoPaセミナ

  • 先週m Step3 の打ち上げがTホテルであった。大黒さんがノートパソコン当たった。
  • DoPaのセミナを受講した。なかなかよろしい。
  • ヨドバシカメラでCLIEを購入。\57540だった。液晶が見づらい。

2001年11月27日(火) むだい

会社

  • 9:25 今日から寒くなるらしい。天気は晴れ。やる気は少しなし。
  • 10:20 高本さん居るといろいろ言われるなあ。これからバックアップの資料を作る。

テレビ

  • ヘイヘイヘイ。2時間スペシャルなので録画する時間帯が難しい。パフィーのトークは見れず。小柳ゆきとaikoを見た。

2002年11月27日(水)

[dev] 電子商取引における電子メールに関するセキュリティ上の課題

電子メイルのセキュリティの話。SSLを検索していたら見つけた。

Cプロジェクト

  • 10:00〜10:45 ***の太田さん秋元さんを吉田さん兒玉くんと迎えた。***も大変だ。ビジネスとは嫌なものだと嫌気がさした。
  • 午後 全体の構成と自動生成のクラス構成を考えた。進まない。

2003年11月27日(木)

生活

  • 打ち合わせ。
  • 頭が痛いので早退。後頭部の痛み。眠ってみるが改善せず。セブンイレブンの野菜カレーを食べたらよくなった。頭痛にはカレーが効く(かも)。

2004年11月27日(土)

  • ボボボーボ・ボーボボを少し見た。落とし穴が深くて驚く敵。
  • 今日も土曜日だけど出勤。
  • が、英辞郎 on the Web がメンテ中で使用できず不便。
  • 5000円の新札をやっと入手。ファミリーマートのお釣りで。樋口一葉のっぺりし過ぎ。
  • ER8を見た。カーターとルイスかよ。

[fs] 1390位 時価総額13億5040万

13節は82fpで順位アップ。トップとの差は205fpで1だけ縮まった。鈴木がよくて期待の吉田がまたまた駄目だった。

明日がJリーグ最終節でファンタジーサッカーも終わる。1000位以内に入れたらいいなあ。

GK楢崎 正剛名古屋8380万楢崎ボーナス多いと知らなかった
DF波戸 康広3250万レイソルも使うよ。加地に負けるな
DF中澤 佑二横浜FM7850万なんだか久しぶり
DFドゥトラ横浜FM3850万かなり久しぶり
DFネネ浦和6070万レッズは負けるような気もする
MF奥 大介横浜FM9970万途中交代しそう
MF阿部 勇樹市原3050万ジュビロは強敵だ
MF遠藤 保仁(C)G大阪9840万無難に
MF鈴木 慎吾新潟5840万好調
MF太田 圭輔清水2380万勝って終わろう
FW玉田 圭司3100万逆境に強いとみた

やること

  • プリンタ処分
  • リンク元のスリム化
  • ナンバーアナウンス解約
  • スーツをクリーニングへ
  • tDiaryバージョンアップ
  • FSWikiバージョンアップ
  • AVGバージョンアップ
  • バックアップ
  • JREバージョンアップ

2008年11月27日(木)

  • 腰が痛いのはもう治った。

[shell][unix][howto] シェルスクリプトファイル自身の格納ディレクトリの絶対パスを得る

毎回同じことを調べている。

#!/bin/sh
cd `dirname $0`
d=`pwd`
echo $d

で大体うまくいくが、パス中にシンボリックリンクがあったりファイル自身がシンボリックリンクだと、リンク先ファイルとは異なる絶対パスが得られてしまい困ることがある。格納ディレクトリからの相対パスで別のファイルを探したい時とか。

これを解決する簡単でポータブルな方法はなさそうだが、最近のLinuxだと readlink というコマンドがあるようで、これを使うと簡単に絶対パスを取得できた。

readlink は -f オプションを使うと

% ln -s /usr/bin/gcc link
% readlink -f link
/usr/bin/gcc
% readlink -f /usr/bin/gcc
/usr/bin/gcc

のようにリンクがあろうとなかろうと絶対パスを出力してくれるようなので、

#!/bin/sh
my_path=`readlink -f $0`
cd `dirname $my_path`
d=`pwd`
echo $d

のようにすればよさそう。

(追記)

今見ると上のスクリプトはおかしい。readlinkが絶対パスを出力してくれるならcdやpwdをする必要はなくて

#!/bin/sh
my_path=`readlink -f $0`
d=`dirname $my_path`
echo $d

でいいはず。

(追記2)

少なくともbashでは、スクリプト起動直後の $_ にコマンドの絶対パスが設定されていることを知った。

ただし、readlinkのようにシンボリックリンクを辿ってはくれない。また、$_ に絶対パスが設定されているのはスクリプトの起動直後だけだということに注意が必要。

$ cat myname.sh
#!/bin/bash
echo '  $_      :' $_
echo '  $0      :' $0
echo '  readlink:' `readlink -f $0`
echo aaa > /dev/null
echo '  $_      :' $_

$ ln -s myname.sh oreore.sh

$ ./myname.sh
  $_      : /home/kenichi/tmp/./myname.sh
  $0      : ./myname.sh
  readlink: /home/kenichi/tmp/myname.sh
  $_      : aaa

$ ./oreore.sh
  $_      : /home/kenichi/tmp/./oreore.sh
  $0      : ./oreore.sh
  readlink: /home/kenichi/tmp/myname.sh
  $_      : aaa

[shell][unix][howto] パイプの途中で行を追加する

パイプを使ってテキストを変換していくとき、途中で新しい行を追加したくなった。が、やり方をなかなか思いつかない。

awkのENDを使えばできた。

% echo "ore\nboku" | sort | awk '{print} END {print "omae"}'
boku
ore
omae

awk便利だな。awk使うならパイプ使わず全部awkで処理すればいいじゃない、それならperlでもいいじゃんか、という話になる。うーむ。

ところで、「man awk」だと英語のマニュアルが表示されるが「man gawk」とすると日本語訳(左はリンク切れ。こっちへ移行したみたい。)を読めることに気づいた。

[ruby] JRubyが実行できなかった

JRubyを使おうとここからダウンロードして展開したが、

% jruby
Exception in thread "main" java.lang.NoClassDefFoundError: org/jruby/Main
Caused by: java.lang.ClassNotFoundException: org.jruby.Main
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)

のようになり実行できなかった。

色々調べた結果、libディレクトリにあるべき jruby.jar というファイルが無いのが原因の模様。何故無いのか。

その原因は、おれのダウンロードしたファイルが jruby-src-1.1.5.tar.gz だったため。これだと、srcなので自分でビルドしないといけないみたい。jruby-bin-1.1.5.tar.gz というファイルをダウンロードし直したら、libに jruby.jar が存在し普通に実行できた。

配布ディレクトリにファイルが多すぎて、どれをダウンロードすればいいのかが分かりにくいのだ。気を付けろ。

やること

  • お香典
  • 洗顔
  • O2ケア
  • 5000円
本日のツッコミ(全2件) [ツッコミを入れる]

tito [行を追加ですが別解で echo hoge | ( cat -; echo fuga ) の方が軽いと思います。]

小川 [なるほど、このようにする方がよさそうです。ありがとうございます。 これはbashのマニュアルに「Compound C..]


2013年11月27日(水)

[java] try-with-resource文での処理順序

次のプログラムがどういう出力をするのか。

public class TryWithResoruce implements AutoCloseable {
    public TryWithResoruce() {
        System.out.println("TryWithResoruce");
    }

    @Override
    public void close() {
        System.out.println("close");
    }

    public static void main(String[] args) {
        try (TryWithResoruce twr = new TryWithResoruce()) {
            throw new RuntimeException();
        } catch (RuntimeException ex) {
            System.out.println("catch");
        } finally {
            System.out.println("finally");
        }
    }
}

注: 通常の try 文と同様に、try-with-resources 文には catch ブロックと finally ブロックを含めることができます。try-with-resources 文内の catch または finally ブロックは、宣言されているリソースが閉じられたあとで実行されます。

とある通り、

TryWithResoruce
close
catch
finally

となったことをメモ。先にクローズされちゃうのかー。

[life] 再検査を受けに行った

健康診断の結果が出て、肝機能のALT(GTP)という検査項目の値が基準値を超えていた。再検査が必要とのこと。健診で再検査になるのって初めて。肝臓に問題があるなんて考えたこともなかった。酒飲まないのに。

それで、病院を予約して今日行ってみた。内科を受診する。先生の部屋の入口に今何時予約の人を診察しているかという情報が表示されていて、1時間前に予約した人が受診中だった。というわけで、1時間近く待たされた。

やっと自分の番。座るといくつか質問される。先生は答えを聞くとPCに文章を打ち込んでいた。今日は採血をして、超音波検査の予約を取るとのこと。超音波の検査は後日になっちゃうのか。最後に思い出したようにお腹を診ると言われ、ベッドに横になって腹を押された。それで問診終了で、部屋の外で待つように言われる。まだ採血はしていない。

部屋の外で随分待つ。40分くらいか。やっと呼ばれて、超音波検査の予約の手続きをした。超音波の予約は混んでいるとのことで、受けるのは来週になった。それが終わったら採血室に行って採血。これはほとんど待たずにできた。会計をして終了。全部で2時間くらいかかった。