2004年01月03日(土) [長年日記]
2004年01月05日(月) [長年日記]
■ [xrea] namazu
XREAでのnamazuについては、去年末にXREAの掲示板にてwebmasterからのコメントがついてました。目新しいことは書かれていませんが。
■ 生活
- 定期券を購入した。郵便番号とか入力させられたけれど、何に使うのだろうか。
- 今日から仕事。久しぶりの職場。遅い出社。
- 遅い退社。
2004年01月06日(火) [長年日記]
■ [unix][howto] カレントディレクトリから再帰的に辿って文字列の検索をする
定番だけれどすぐ忘れるのでメモしておく。find を覚えられないんだよな。
grep -r 文字列 .
が一番簡単。ただ、検索対象のファイルを絞り込めないのでカレント以下にファイルがたくさんある場合は不便。また、-r オプションがサポートされていない場合もある。
find . -name '*.c' -print | xargs grep 文字列
のようにすれば検索対象のファイルを絞り込める。find で検索対象を絞り込み、その結果を xargs を使って grep に渡している。手元の環境では「-print」を書かなくても動いた。
find . -name '*.c' -exec grep 文字列 {} \; -print
のようにすれば xargs がない場合でもOK。が、「{} \;」のようなおまじないが必要になるので覚えにくい。この場合は「-print」を書かないとだめ(ファイル名が表示されない。grepの実装に依存するのだろうが)。
■ [c] …
プログラムが動かなくて ずーーーーーーーーーーーーーーーーーーーーーっと調べていた。結局、
malloc(size);
とすべき所を
malloc(sizeof size);
と書き間違えていたのが原因だった。何度も何度も何度もソースを見直したのに何故に気付かないのだ。もーーー。
何を教訓とすればいいのだろうか。gdbでステップ実行しているときに気付いたので、はまったらステップ実行せよ、ということか。普通だ。
■ [c][howto] gdb
せっかくなのでこれまたすぐ忘れるgdbの使い方をメモ。
gdb 実行プログラム
でgdb起動。起動したら
(gdb) break 関数名
でブレイクポイントを設定。
(gdb) run 引数
でプログラム開始。ブレイクポイントを設定してあればそこで止まる。
(gdb) step
でステップ実行。これは関数の中に入っていく。関数の中に入りたくないときは
(gdb) next
とする。
(gdb) print 変数名
で変数の内容を表示できる。
(gdb) list
で周辺のソースを表示できる。
(gdb) continue
で次のブレークポイントまで一気に進む。
(gdb) quit
でgdb終了。
とりあえずこれくらいしか使わなかった。
■ 生活
- おや、Googleのデザインが変わっている。
2004年01月07日(水) [長年日記]
■ [windows] Office クリップボードを無効にする方法 (マイクロソフト)
MS Officeがクリップボードを管理するおせっかい機能を無効にする方法を見つけたのでメモ。
Office 2000 アプリケーションでコピーを行うと、Office クリップボード ツール バーが自動で表示されます。
Office クリップボード ツール バーの自動表示を無効にするには、レジストリを変更する必要があります。
うむむ…
Office2000のOfficeクリップボードは馬鹿(クリップボードが一杯になるとダイアログが表示される)だが、OfficeXPのOfficeクリップボードでは改善されているようだ。
■ [link] 市バスの運転手は儲かる
という話がはてなにあった。ここからリンクされている横浜市市営交通事業あり方検討委員会 第9回会議 議事録から引用。
特に横浜の場合、ざっと見せていただきましたけれども、何しろ運転手1,616人のうち1,000万円を超える人が15%の245人という異常な状態で、これは民間会社なら完全に破産しています。しかも、最高は1,300万ということで、普通の民間会社の取締役クラスの給料です。
それから、先ほど座長のほうから年収1,000万円というお話がございましたが、確かに私どもの職員で1,000万を超えている職員がおります。なぜ1, 000万円を超えるかと申しますと、平均賃金で最高の賃金が大体800万円ですが、そこから先は、例えば1,300万円の人は、500万円がいわゆる超勤でございます。例えば休みもとらずに働いているというのが実態でございまして、1,100万円の55歳の職員のモデルでいきますと、基本給が800万円。超過勤務が300万円。そのうち大体月に16時間超勤をして、11の公休のうち4日出勤をしている。それで300万円稼いで1,100万円になっているということでございます。
それから、これはちょっと先ほどお話ししなかったんですけれども、私どものほうは、平成14年度の予算で見ますと、大体2,200人ぐらいが正規職員で、一方、嘱託職員が460人です。嘱託職員につきましては、平均賃金が約400万、正規職員の賃金が約800万でございます。ですから、今1,000万円を超えていますのは、そういう他の職種との関連や、平均年齢が上がるなどで、年功序列的になっているものです。それから、どうしてもいろいろな事情の中で、年輩の方のほうが、休みも出て超勤を選択してくれるというふうなこともありまして、ある意味ではそういった年収の高い方に超勤がオンされ、超勤の価格が高くなっています。ただ、これも従前に比べまして、かなり少なくなっていまして、従前、平成10年前後は、36%ぐらいの方が1,000万円を超えていたわけですけれども、それが今、先ほど座長がおっしゃったような十数パーセントまで落ちてきたということでございます。
へー。
2004年01月08日(木) [長年日記]
■ 生活
- やっとメッセージキューにメッセージを送りそれを受信することができるようになった。プログラムが動くと楽しい。でもこのペースじゃいかんな。
- 久ーしぶりに会社の同期が集まって飲み会。他人の子供にはあまり興味湧かない。自分の子供は溺愛してみせましょう。
■ やること
- 靴紐を買う
2004年01月09日(金) [長年日記]
■ 生活
- 午後、Mくんも入って皆で打ち合わせ。
- makefileをうまく書けずに四苦八苦。こんな暗号書式、もう忘れてるよ。
- ファイル読み込み処理をうまく書けず四苦八苦。scanfを忘れている。空白があると区切られてしまうのだな。
- 今日の行数:989
■ やること
- 靴紐を買う
2004年01月12日(月) 成人の日 [長年日記]
■ 生活
- 今日は祝日。昼間は元気がでず眠ってしまった。
- 今日の行数:1008
- 2001年1月の日記を補完。21世紀の始まり。高校サッカーで大久保が活躍。
- 今年は同じ国見高校の平山が活躍。
■ やること
- 靴紐を買う
- 単4乾電池を買う
- みずほで記帳
2004年01月13日(火) [長年日記]
■ [unix] 実行時ライブラリ検索パスの指定
コンパイル時に、実行時のライブラリ検索パスを指定したい場合は ld の -rpath オプションを利用すればよい。
で、gcc から ld へオプションを渡すには -Wl オプション を利用する。だからこんな感じに書けばよいはず。
gcc -Wl,-rpath=dir -Ldir -lhoge foo.c bar.c
参考:
■ 生活
- 起動時のシーケンスを変更したのでそれへの対応のみで手一杯。全然進まん。
- 設計書もちょこっと書いてみた。目次含めて4ページ。
- 今日の行数:1212
- はてなが全面的にInternal Server Errorだ。何もできぬのでもう寝よう。
■ やること
- 靴紐を買う
単4乾電池を買うみずほで記帳
2004年01月14日(水) [長年日記]
■ [link] 賃貸住宅に入るとき・出るとき (山崎はるかのメモ)
Mirage Towerより。山崎はるかさんが大家に対抗した実例が色々と。なかなか真似できそうにないけど。後半からちと引用してメモ。
- クロスの染み・キッチンの油性の汚れ・畳の変色など「故意でない着色」は、大筋で、入居者に その修復義務はない
- タバコのヤニなど「故意ともとれる着色」は、大筋で、大家と入居者で折半である
- 網戸の破れ・ガラスの熱割れなど「建具系」も、大筋で、入居者に修復義務はない
- そこに もともとあった家電製品(照明・エアコン)などが「故障」「切れた」場合も、入居者に修復義務はまったくない ※割った場合は別
- ただし、多くの場合「曲がる」「折れる」「削る」「割る」タイプの「変形」が室内にあった場合は、入居者が修繕費用を負担しなければならない
- 入居時に「あったもの」が、退居時に「なくなっている」場合も、入居者が修繕費用を負担しなければならない
いずれの場合も、原状回復とは「入居時に戻す」という意味ではないことに留意する。 カーペットやクロスなど、償却期間が6年〜8年で「財産価値がゼロ」になってしまうものを、借りた人が全額負担する義務は どこにもないのである。
すなわち、畳・カーペット・クロスは、あきらかに建物の一部であり、その所有権は「大家」に帰属するものである。 その損耗修繕費用は 家賃にすでに組み込まれていなければならない。 つまり 入居者に修繕義務は 本来ないのである。
税法上、その建物の「評価」は、それら「設備」を含んで計上されている。 そして その償却における評価損を、大家は毎年、家賃の一部で補填している。 すでに 大家は税制上の優遇を受けているのだ。 その償却部分を入居者が家賃とは別に負担するというのは、もとより おかしいことなのだ。
引っ越したいなあ。でも来月契約更新。
■ 生活
- sizeof 回りでプチはまり。とほほ。
- 今日の行数:1692
■ やること
- 靴紐を買う
● tito [- で始まる文字列を検索するときは grep -e "->"のように -e を付けるとよいです。たぶん。 grep関..]
2004年01月15日(木) [長年日記]
■ [java] http://cvs.picocontainer.codehaus.org/viewcvs.cgi/site/presentations/?root=picocontainer (リンク切れ)
→ http://picocontainer.codehaus.org/JavaPolis+2003+Slideshow
アガテナより。PicoContainer紹介のpptファイルの日本語訳が置いてある。IoCとか言われてもサッパリ分かっていないので修行しないとな。
■ [java] The Java Developers Almanac 1.4
とめども日誌より。色々なサンプルコードを検索することができる。便利かも。
コードは書籍からの抜粋なのかな。
So, if you find the content useful, please support this site by buying a copy of the book.
だそうな。
■ 生活
- Yさんが来て、Cが動かない問題について相談された。DLLが見つからないというエラーになっていたが、原因は不明。
- 皆で打ち合わせ。スケジュールめためた。発言したらおれの担当範囲が広がってしまったが仕方がない。
- ドキュメントを一段落させた。まだ数ページ程度。
- 今日はリファクタリングしかしていない。うーむ。
- 今日の行数:1790
■ やること
- 靴紐を買う
- 電球を買う
2004年01月18日(日) [長年日記]
■ [javascript] Mozilla JavaScript Debugger (HIRO345)
Mozillaに付属するJavaScript Debuggerの使い方の簡単な説明。以前に使おうとして使い方がよく分からなかった記憶があるのでメモ。
Mozillaは1.6が出ているけれども、アップグレードしたくなるような新機能などはなさそう。
■ やること
- 靴紐を買う
- 電球を買う
- WindowsUpdate(職場)
2004年01月19日(月) [長年日記]
■ 生活
- セマフォのプログラミング。イヤーって感じ。
- 今日の行数:2124
■ やること
- 靴紐を買う
電球を買うWindowsUpdate(職場)
2004年01月20日(火) [長年日記]
■ [c][soft] CCUnit ドキュメント
C用のユニットテストツールは色々あるようだが、これは日本で開発されているみたいなので要チェックや。
あとはこの辺。どれも最近は更新されていないようだ。
違いが分からん。
(追記)
CCUnitを使ってみた。
(追記2)
CUnit for Mr.Andoというのもあったのでメモ。
(追記3)
Test Funnelというのもあった。
■ [unix] VineLinux 起動しないとき
VineLinuxが起動しなかった。普段はディスプレイを繋いでいないのだが、原因を調べるために繋いだ。
グラフィカルなカーネル選択画面で止まっていた。この画面でキーボードを操作するとここで止まってしまうようだ。キーボードの上に物が乗っていたのがいけなかった。
次回からはディスプレイを繋がなくても次のようにすれば復旧できるはずである。
- 慌てず騒がずキーボードに乗っている物をどける。
- カーソルキーの上矢印ボタンを連打する。
- Enterキーを押す。
■ 生活
- セマフォは動くようになったようだ。明日はタイマーだ。
- 今日の行数:2326
- そうそう、毎日脛腿腰肩腕が痒いのです。どうしたらいいのか。
■ やること
- 靴紐を買う
2004年01月21日(水) [長年日記]
■ [c] <sys/queue.h>
sys/queue.h にある LIST を使ってみたので忘れないようソースをメモ。
#include <stdio.h> #include <sys/queue.h> /* LISTに含める要素の型 */ struct list_element { LIST_ENTRY(list_element) connector; /* LISTの前後の要素の情報を 格納するフィールド */ int value; }; /* list_elementを要素に持つLISTを表す構造体my_listの宣言 */ LIST_HEAD(my_list, list_element); void print_list(struct my_list *list_head); int main() { struct my_list list_head; struct list_element a, b, c; a.value = 1; b.value = 2; c.value = 3; LIST_INIT(&list_head); LIST_INSERT_HEAD(&list_head, &a, connector); LIST_INSERT_AFTER(&a, &b, connector); LIST_INSERT_AFTER(&b, &c, connector); print_list(&list_head); LIST_REMOVE(&b, connector); print_list(&list_head); } void print_list(struct my_list *list_head) { struct list_element *p; p = LIST_FIRST(list_head); while (p != NULL) { printf("%d -> ", p->value); p = LIST_NEXT(p, connector); } printf("\n"); }
出力結果:
1 -> 2 -> 3 -> 1 -> 3 ->
LIST は末尾への要素追加が簡単にはできないので、FIFO を使いたいときは TAILQ を使うようだ。
(追記)
参考:http://vimrc.hp.infoseek.co.jp/diary/2002-08.html#2002-08-28-2 (vimrc diary)
■ [c] <sys/time.h>
sys/time.h には timerclear, timerisset, timercmp, timeradd, timersub というマクロが定義されている。
■ 生活
- 朝一番の作業はDeleteキー連打によるspamの削除。
- 家から職場の自分宛に出しておいたメイルをspamと間違え削除してしまった。ゴミ箱に残っていたからいいんだけど。間違えないようにsubjectには日本語を含めた方がよい。
- 「鍋が熱いので気をつけてください」という台詞を鍋触りながら言う店員。特殊な訓練を受けているのか。
- タイマーのプログラムやっとこさ作った。が、テストファーストではないのでまだテストできていない。どのようにテストしたものか。
- 今日の行数:2476
■ やること
- 靴紐を買う
2004年01月22日(木) [長年日記]
■ [link] CRTディスプレイのしくみ (情報機器と情報社会のしくみ素材集)
UNIX USER 2月号より。CRTの仕組みを説明した短い動画を見られる。見たのでメモ。
この仕組みを考えた人は偉い。CRTを発明したのはドイツのブラウンさんで、だからブラウン管と言うのだそうな。
■ [xrea] メイル使えない
XREAのメイルアドレスが使えなくなっていることに気付いた。昨日の朝まではメイル届いていたのだけれど。今XREAのメイルアドレス宛にメイルを出してみたら、「no mailbox here by that name.」というエラーメイルが返ってきてしまった。
とりあえず管理画面から「POPメールボックスを初期化(全てのメールを破棄)」というのを実行してみた。反映には一時間掛かるそうな。んー。
一時間後、復活した。使えなくなった原因はなんなんだよー。
■ 生活
- タイマーはうまく動いている感じ。
- ユーティリティ類は大体揃ったので、やっと本質的な処理を書き始める。が、色々と悩ましく進まない。
- 今日の行数:2673
- Guevaraは名前がVaraTermに変わっていた。そんでもって有償化かー。
■ やること
- 靴紐を買う
2004年01月25日(日) [長年日記]
■ [c][soft][dev] CCUnit の使い方
CCUnitを使ってみたので忘れないようメモ。
テストのために自分で作成しなければいけないファイルは、テストプログラムのメインファイル(1つ)とテストコードを書いたファイル(必要な数だけ)の2種類。テストコードを書いたら、ccunit_makeSuite ツールを使って「スイート」のコードを自動生成する。で、テスト用のファイルと自動生成されたスイート、テストしたいファイルをコンパイルすればOK。
テストプログラムのメインファイルはこう。ccunit_suite の引数に何を指定すればいいのか分からない。
#include <ccunit/CCUnitTestRunner.h> #include <ccunit/CCUnitTestSuite.h> int main() { CCUnitTestRunner *runner; CCUnitTestSuite *suite; runner = ccunit_newTestRunner(stdout); suite = ccunit_suite("ここには何を書けばいいのかな"); return ccunit_runTestRunner(runner, suite); }
テストコードはこんな感じ。ccunit_makeSuite のためにJavadoc形式のコメントを書いておく。setUp_xxx と tearDown_xxx は各テストの前後に実行される(JUnitと同じ)。実行結果のチェックにはここにあるマクロを使用する。
#include <ccunit/CCUnitAssert.h> /** test case: ここにも何を書けばいいのか分からない */ #include "foo.h" void setUp_foo() { } void tearDown_foo() { } /** * 足し算のテスト * ここに書いたことはテストに失敗すると表示される */ void test_add() { int a; a = foo_add(5, 5); CCUNIT_ASSERT_EQ_INT(10, a); } /** * 引き算のテスト */ void test_sub() { int a; a = foo_sub(6, 5); CCUNIT_ASSERT_EQ_INT(1, a); } /** end test case */
スイートの自動生成はこんな感じ。これで test_foo.c と test_bar.c を元にして my_suite.c が自動生成される。
$ ccunit_makeSuite -o my_suite.c test_foo.c test_bar.c
コンパイルして出来上がった実行ファイルの出力結果はこう。
.F.. Time: 0.000189 sec FAILURES!!! Test Results: Run 3, Failures 1 There was 1 failure: test_foo.c:23: 足し算のテスト: 10 == a expect: 10 actual: 11
やはりユニットテストツールが使えるととても便利だ。
■ [life] 図書館へ行く
- 煙か土か食い物 (舞城王太郎)
- 立花隆秘書日記 (佐々木千賀子)
- サッカーマガジン 2003.12.2 「磐田が来た!」
を借りた。帰りに本屋でJavaWorld 3月号を購入。
■ [life] お見舞い
部屋の契約更新があるので、保証人の印を押してもらおうと実家へ行った。そうしたら、骨折で入院中の祖母のお見舞いに行くことになった。
祖母にはもう何年も会っていなかった。今は目がよく見えないということだったが、おれを見たらすぐにおれだと分かってくれた。会話もちゃんとでき、思っていたよりしっかりしていた。早く退院できますように。
■ 生活
- 朝起きたら背中が痛かった。なんなんだ。今は夜だがまだ痛い。
■ やること
- 靴紐を買う
- 家賃
- 保険料
- 決算
- 不動産屋
● 山川 [CCUnitの使用方法に付いて、もう少し詳細に教えていただけないでしょうか。 ソースファイルのディレクトリ構造(ツー..]
2004年01月27日(火) [長年日記]
■ [java] T-Struts (仮称)
色々なところより。
T-Struts (仮称) とは、エンタープライズ・システムにStrutsを適用することを目標として、Strutsの機能を拡張するプロジェクトです。
このサイトはMozillaで見るとレイアウトがおかしい。
Strutsはもう忘れている。
■ 生活
- ウィルスメイル来ただけで大騒ぎするかなあ。普段フィルタリングしているから耐性がないのだな。
- 足が痒くて仕事にならない。水虫じゃないよ。
- 今日の行数:3711
- 今日もリファクタリングのみ。明日こそ進むはず。
- 靴紐は65cmの「ガス丸」というのを買った。靴紐にはガス丸だとかロー引だとか変な名前が付いているのだ。
- とにかく痒い。足や腕や背中やお腹。乾燥もしているが、軽くプクーともなっている。アレルギーかな。
■ やること
靴紐を買う- 家賃
- 保険料
- 決算
- 不動産屋
● しみず [あのー、病院に行ったほうがいいのでは?皮膚科]
2004年01月28日(水) [長年日記]
■ 生活
- 今日の行数:3921
- 今日はあまり痒くない。
- /tdiary/update.cgi へのアクセス失敗が257回記録されていた。なんだろ。
■ やること
- 家賃
保険料- 決算
- 不動産屋
2004年01月29日(木) [長年日記]
■ [link] プロに聞く家計相談 (NTTイフ)
保険などお金に関する質問に対するアドバイスを読める。他のページも勉強になりそう。保険を扱っている会社のサイトだということには気をつける必要があるのかも。
国民年金基金に加入しようかなあ。
■ [windows][security] 「フォルダ」に見せかけ任意のファイルを実行――Windows XPを狙う手口に警告 (セキュリティホール memo)
実行ファイルをフォルダに見せかける攻撃手法。危険だ。騙されてしまいそうなのでレジストリいじった。職場のPCでもやっておけ。
■ 生活
- httpでxmlを開いたときのIEのおかしな挙動を調べたり。
- 今日の行数:4131
- 今日はそこそこ痒い。
- VirusScanは設定をサーバ側で勝手に制御されてしまうのかな。ウィルス騒ぎのせいか、チェックが厳しくなったようでPCがやたら重い。ローカルで設定を変えてもいつの間にか元に戻っていた。困るな。
- む、小杉って安いの?
■ やること
家賃- 決算
- 不動産屋
2004年01月30日(金) [長年日記]
■ [c][howto] gdb (2)
gdbのコマンドをもう一度メモ。メモすると覚えるのだ。
break 関数名 | 関数にブレイクポイントを設定する。 |
break ファイル名:行番号 | 指定行にブレイクポイントを設定する。 |
info break | ブレイクポイントの一覧を表示する。 |
delete ブレイクポイント番号 | ブレイクポイントを削除する。 |
delete | 全てのブレイクポイントを削除する。 |
run 引数 | プログラム開始。ブレイクポイントを設定してあればそこで止まる。 |
step | ステップ実行。これは関数の中に入っていく。 |
next | ステップ実行。これは関数の中に入っていかない。 |
until 行番号 | 行番号まで進む。 |
finish | 関数から抜ける。 |
where | スタックの情報を表示する。 |
up | 上のスタックへ移動する。 |
down | 下のスタックへ移動する。 |
print 変数名 | 変数の内容を表示できる。 |
list | 周辺のソースを表示できる。 |
continue | 次のブレークポイントまで一気に進む。 |
quit | gdb 終了。 |
マニュアルの翻訳はこことか。
■ やること
- 決算
- 不動産屋
- 定期券を買う
● tito [「grep 文字列 aFile」 と 「grep -h 文字列 someFiles」 と 「grep 文字列 a..]
● 小川 [/dev/null を書く理由はファイル名を表示させるためなのですね。なるほど。]