メモの日々


2002年01月20日(日) 資料作りの日

会社

  • 16:25 メイルも読み終わり資料作りをはじめるところ。
  • 20:05 資料は作り終えた。そもそも何を考えればいいのかがよく分からなかったので散発的な資料になった。高本さんの文章って絶対変だ。
  • みんつさんの資料NTTデータセキュリティの資料 がそっくりなのだ。
  • 20:30 金曜日に作ったプログラムは間違えていなかったようなのでもう帰ろう。疲れた。

テレビ/本

  • 王様のブランチ。助さんと格さんがでていたがかっこよすぎ。

2003年01月20日(月) 貴乃花引退

会社

  • 午前休暇を取る。
  • 11:40 出社。
  • JavaHz MLは日下部さん登場で盛り上がった。文字コードの話題に変化するし。素晴らしい。
  • 眠いので半分眠りながらちょっとずつ修正。3階建てにすると動かない。
  • 17:00 部長とお話。水曜日にまた話そうと言われる。
  • 19:40 だいたい出来上がり。あとはテンプレートの作成と事務所対応とテストだ。帰ります。
  • 20:05 といいつつだらだら残ってしまった。今度こそ帰る。

[java] JavaTM Servlet 仕様書 v2.2 邦訳版

株式会社クレスというところによる翻訳。他にも技術資料いくつかある。


2004年01月20日(火)

[service] 設定ガイド: 電子メールソフトの設定 [APOP] (ASAHIネット)

ASAHIネットが今日からAPOPに対応。お知らせのメイルが来た。試したらあっさり受信できた。

[java] 005 : Bold Font (Trial and Error in Java)

Swingのボールドフォントについて色々調べられている。

[c][soft] CCUnit ドキュメント

C用のユニットテストツールは色々あるようだが、これは日本で開発されているみたいなので要チェックや。

あとはこの辺。どれも最近は更新されていないようだ。

違いが分からん。

(追記)

CCUnitを使ってみた

(追記2)

CUnit for Mr.Andoというのもあったのでメモ。

(追記3)

Test Funnelというのもあった。

[unix] VineLinux 起動しないとき

VineLinuxが起動しなかった。普段はディスプレイを繋いでいないのだが、原因を調べるために繋いだ。

グラフィカルなカーネル選択画面で止まっていた。この画面でキーボードを操作するとここで止まってしまうようだ。キーボードの上に物が乗っていたのがいけなかった。

次回からはディスプレイを繋がなくても次のようにすれば復旧できるはずである。

  • 慌てず騒がずキーボードに乗っている物をどける。
  • カーソルキーの上矢印ボタンを連打する。
  • Enterキーを押す。

生活

  • セマフォは動くようになったようだ。明日はタイマーだ。
  • 今日の行数:2326
  • そうそう、毎日脛腿腰肩腕が痒いのです。どうしたらいいのか。

やること

  • 靴紐を買う
本日のツッコミ(全3件) [ツッコミを入れる]

しみず [お元気?痒い原因にもよるけど、保湿ローションとか塗ってみたらどうでしょうか?]

小川 [保湿ローションて男らしくないので却下です :-)]

しみず [へ?保湿に男も女もあるの?知らなかった・・・。(笑)]


2005年01月20日(木)

  • 今日は頭が痛い。後頭部。

[security] 「個人情報保護」 (経済産業省)

「個人情報の保護に関する法律についての経済産業分野を対象とするガイドライン」が置いてある。個人情報保護法に対処するときは読んでおけとUNIX MAGAZINEの2月号に書いてあったのでなんとなくメモ。

あと、久〜しぶりにPGP使ってみようと思った。

[net] 「SHISA」

UNIX MAGAZINEより。WIDEプロジェクトが開発している新しいモバイルIPv6プロトコルスタック。ユーザランドで動作しNEMOもサポートしているみたい。既にKAMEにマージされ、KAMEにあった今までのモバイルIPv6のコードは取り除かれてしまったようだ。うーむ。

KAMEのサイトにも告知があった

Seasarと紛らわしいかも。

[net] 「Port Knocking」

UNIX MAGAZINEにポートノッキングが紹介されていて、ポートノッキングのポータルみたいなサイトがあったのでなんとなくメモ。

というのもあった。

やること

  • プリンタ処分
  • リンク元のスリム化
  • ナンバーアナウンス解約
  • tDiaryバージョンアップ
  • FSWikiバージョンアップ
  • 2004年分決算
  • オーブンレンジ用べんり棚
  • 確定申告書作成

2006年01月20日(金)

[vim] Vimでタブを見えるようにする

Tabを明示的に表示させる(vim users guide)に説明があるけど自分でもメモ。

まず、

:set list

とやらないと見えるようにならない。こうすると改行なども表示されるようになってしまうが、

:set listchars=tab:xy

のように指定すると改行は表示されなくなる。この場合タブは「xyyy」のようにxの後にyが連続して表示されるようになる。xやyにスペースを使用したい場合は「\ 」(\の後にスペース)と書けばよい。詳しくは「:help listchars」を見よ。

色を表示できる環境の場合は、

:highlight SpecialKey ctermfg=1
:highlight SpecialKey ctermbg=7

のようにしてタブを着色して表示できる。詳しくは「:help ctermfg」を見よ。

GUI版の場合は

:highlight SpecialKey guifg=orange
:highlight SpecialKey guibg=#012345

などのようにして色々な色を付けられる。詳しくは「:help guifg」を見よ。

やること

  • 歯ブラシ買う

2009年01月20日(火)

[unix][net][howto] ipコマンドでの経路の設定方法

CentOSにおける静的ルーティングの設定方法を以前にメモしたが、ファイルに書くのではなく直接ipコマンドを使って一時的に経路を設定する方法をメモ。ipコマンド難しー。

# /sbin/ip route add 172.32.0.0/12 via 192.168.254.10 dev eth0

を実行すると

$ netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
172.32.0.0      192.168.254.10  255.240.0.0     UG        0 0          0 eth0
0.0.0.0         192.168.254.2   0.0.0.0         UG        0 0          0 eth0

てな感じで経路が追加された。

ipコマンドのマニュアルは見難いと思っていたら、コマンドラインのヘルプでも詳しい情報が表示されることを知った。

$ /sbin/ip help
Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }
       ip [ -force ] [-batch filename
where  OBJECT := { link | addr | route | rule | neigh | ntable | tunnel |
                   maddr | mroute | monitor | xfrm }
       OPTIONS := { -V[ersion] | -s[tatistics] | -r[esolve] |
                    -f[amily] { inet | inet6 | ipx | dnet | link } |
                    -o[neline] | -t[imestamp] }

$ /sbin/ip route help
Usage: ip route { list | flush } SELECTOR
       ip route get ADDRESS [ from ADDRESS iif STRING ]
                            [ oif STRING ]  [ tos TOS ]
       ip route { add | del | change | append | replace | monitor } ROUTE
SELECTOR := [ root PREFIX ] [ match PREFIX ] [ exact PREFIX ]
            [ table TABLE_ID ] [ proto RTPROTO ]
            [ type TYPE ] [ scope SCOPE ]
ROUTE := NODE_SPEC [ INFO_SPEC ]
NODE_SPEC := [ TYPE ] PREFIX [ tos TOS ]
             [ table TABLE_ID ] [ proto RTPROTO ]
             [ scope SCOPE ] [ metric METRIC ]
             [ mpath MP_ALGO ]
INFO_SPEC := NH OPTIONS FLAGS [ nexthop NH ]...
NH := [ via ADDRESS ] [ dev STRING ] [ weight NUMBER ] NHFLAGS
OPTIONS := FLAGS [ mtu NUMBER ] [ advmss NUMBER ]
           [ rtt NUMBER ] [ rttvar NUMBER ]
           [ window NUMBER] [ cwnd NUMBER ] [ initcwnd NUMBER ]
           [ ssthresh NUMBER ] [ realms REALM ]
TYPE := [ unicast | local | broadcast | multicast | throw |
          unreachable | prohibit | blackhole | nat ]
TABLE_ID := [ local | main | default | all | NUMBER ]
SCOPE := [ host | link | global | NUMBER ]
FLAGS := [ equalize ]
MP_ALGO := { rr | drr | random | wrandom }
NHFLAGS := [ onlink | pervasive ]
RTPROTO := [ kernel | boot | static | NUMBER ]

見難いのは変わりないか。

[dev][howto] autotoolsでprefixの値をプログラムに静的に組み込む

先週メモした、config.hにインストール先ディレクトリパスを埋め込む方法には問題があることが分かった。configure実行時に--prefixオプションを指定すれば動くが、指定しないと定数の値が "NONE" に設定されてしまう。

configureスクリプトを読むと、#defineの行を出力した後で変数prefixにデフォルト値(/usr/local)を代入しており、このアプローチではうまくいきそうにない。どうすればいいのか。

autoconfのマニュアルに、

というFAQが書かれていた。読んでもよく分からなかったのだけれど、単純にAC_DEFINE_UNQUOTEDを使うのではダメだということが書かれているのだと思う。

なので、次のようにした。

  • 前に書いたAC_DEFINE_UNQUOTEDの指定は削除。
  • Makefile.am 内に AM_CPPFLAGS という行があったので、ここに「-DPREFIX_DIR='"@prefix@"'」というような記述を追加。

これでautomake, autoconfをやり直すと、configure実行時に--prefixを指定してもしなくても、PREFIX_DIRにprefixの値が設定されるようになった。

本日のツッコミ(全2件) [ツッコミを入れる]

ef [小さなことですが 172.32.0.0/12 は private net ではありません。]

小川 [そのようですね。ご指摘ありがとうございます。 当時なぜこのネットワークアドレスを採用したのか思い出せませんが、次か..]


2014年01月20日(月)

[c++] 依存名に修飾された型名は推論されない

大した話ではないけれど分かっていなかったのでメモ。

C++のテンプレート引数の推論は、A<T>::B のような依存名に修飾された型名(言葉の使い方がこれで正しいかよく分からない)に対しては行われないみたい。C++テンプレート完全ガイドの「11.2 文脈の推論」に

だが、文脈が推論されない構造もいくつかある。

  • 修飾された型名。例えば、Q<T>::X のような型名はテンプレートパラメータ T を推論するのに使われることはない。

とあるのが該当しそう。

これにより次のコードはコンパイルエラーになる。

#include <iostream>

template<typename T>
struct A {
  struct B {
    T t;
  };
};

template<typename T>
T f(const typename A<T>::B& b) { return b.t; }

int main() {
  A<int>::B b;
  std::cout << f<int>(b) << std::endl;  // OK
  std::cout << f(b) << std::endl;       // エラー
}

g++ 4.4.7が出力するエラーメッセージは次の通り。

sample.cpp: In function ‘int main()’:
sample.cpp:16: error: no matching function for call to ‘f(A<int>::B&)’