メモの日々


2001年06月14日(木) さらに寒いな

情報センタのウェブページで注文していた「達人プログラマー」という本が届いた。達人になれるといいなー。

なんか読まなきゃいけない本が溜まってきてしまった。速読支援システムのようなものは作れないものか。

[security][web] クロスサイトスクリプティング

昨日はネットフロンティア2001に行ったわけですが、パネルディスカッションで原田さんと共に高木さんも登場。おお。クロスサイトスクリプティング問題などについて語った後に、一人だけ途中で退席。どこぞへ出張で飛行機の時間が迫っていたらしい。この話でやっと http://java-house.etl.go.jp/ml/archive/j-h-b/041183.html#body の意味が分かった。なるほど。

で、明日はJavaWorld DAYに行き高木さんのセッションを聞くのだ。昨日と同じ話なのかも。

[security][mobile] i-mode不具合

よく分かってないけど、i-mode端末のセキュリティホールの話。セキュリティホールメモMLより。i-modeメイルを開いただけで勝手にメイルを出さされてしまうとかみたい。

[link] 真・技術系メーリングリスト FAQ

メイリングリストを快適に使うためのノウハウ。 セキュリティホールメモ より。

クロスサイトスクリプティング(2)

クロスサイトスクリプティングを利用してCookieを盗むページを作ろうとしたのだけれど、分からなくなってしまった。JavaScriptは別のサイトの情報にはアクセスできないようにガードがかかっているらしい(試してはいない)。盗めないじゃん。でも盗む方法はあるはずなのだ。


2004年06月14日(月)

  • 朝3:30に起きてユーロのフランスvsイングランドを観戦。眠すぎる。オーウェンアンリの活躍をもっと見たいんだけど。ジダンはフィーゴとは格が違うな。
  • Perl他人の作った部分のバグ取り。全然分からなくて困っていたんだけど、「if ($a == undef) {」となっていた所を「unless (defined $a) {」に直したら動いた。
  • あわわわわ、「==」を半角で書くと取り消し線になってしまう。どう書けばいいのかな?
  • 皆で打ち合わせ。もっとサクサク進まないものか。皆少しずつ違うことを話していて微妙にすれ違いが発生し長引いている感じ。
  • ドキュメント修正できた。気に入らない部分があっても気にしないタフさが重要だ。

[java] ObserveEclipse

Eclipseの開発情報が色々。JFaceのサンプルも少しある。Java 高速GUI SWT 2より。

やること

  • プリンタ処分
本日のツッコミ(全1件) [ツッコミを入れる]

にしうら [ねむいでしょうけど、会社にきてください。 まってまーす。]


2009年06月14日(日)

  • マウス左手継続中。まだ慣れない。

[c++][c][dev] C++用Makefileのサンプル

GNU makeは奥が深すぎて嫌になるな。今日考えた、C++のプログラムをビルドするためのGNU make用のMakefileをメモ。Cでも同様のはず。おかしな所があったら教えてください。

ソースファイルとMakefileの構成は次のようになっているとする。Makefileは1つだけ。

.
|-- Makefile
`-- src
    |-- aaa
    |   |-- a.cpp
    |   |-- a.h
    |   `-- ccc
    |       |-- c.cpp
    |       `-- c.h
    |-- bbb
    |   |-- b.cpp
    |   `-- b.h
    `-- main.cpp

これを make すると次のようになる。build ディレクトリが作られそこに *.o と *.d と実行ファイルsampleが作られる。

.
|-- Makefile
|-- build
|   |-- sample
|   `-- src
|       |-- aaa
|       |   |-- a.o
|       |   |-- a.o.d
|       |   `-- ccc
|       |       |-- c.o
|       |       `-- c.o.d
|       |-- bbb
|       |   |-- b.o
|       |   `-- b.o.d
|       |-- main.o
|       `-- main.o.d
`-- src
    | (src以下は変わらないので省略)

次にメモとMakefileを示す。

  • *.dはヘッダファイルも考慮した依存関係を記述したファイル。GNU makeのマニュアルに説明がある。そこに書いてあるよりもシンプルな処理にしたけど。
  • ビルド対象とするディレクトリをMakefileに列挙する必要がある。ここを自動化することもできると思うけど、列挙する方が便利なこともある。
  • ソースファイルは自動で見つける。拡張子が cpp のファイルは全てビルド対象とみなす。
  • ターゲットは all と clean しか作ってない。
# GNU make 用です
build_base_dir = build
program = $(build_base_dir)/sample

# ここにビルド対象とするディレクトリを全て書く
src_dirs = src
src_dirs += src/aaa
src_dirs += src/aaa/ccc
src_dirs += src/bbb

CPPFLAGS = -I src
CXXFLAGS = -Wall -g

sources = $(wildcard $(addsuffix /*.cpp, $(src_dirs)))
objects = $(sources:%.cpp=$(build_base_dir)/%.o)
depends = $(addsuffix .d, $(objects))
build_dirs = $(addprefix $(build_base_dir)/, $(src_dirs))

.PHONY: all
all: $(build_dirs) $(program)

.PHONY: clean
clean:
	rm -rf $(build_base_dir)

$(program): $(objects)
	$(CXX) $(LDFLAGS) -o $@ $^

$(build_base_dir)/%.o: %.cpp
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<
	$(CXX) $(CPPFLAGS) -MM $< \
	    | sed 's|^\([^\.]*\)\.o|$(@D)/\1\.o|' > $@.d

$(build_dirs):
	mkdir -p $@

-include $(depends)

実行すると手元の環境では次のように表示された。

$ make --version
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
これはフリーソフトウェアです. 利用許諾についてはソースを
ご覧ください.
商業性や特定の目的への適合性の如何に関わらず, 無保証です.

This program built for i486-pc-linux-gnu

$ make
mkdir -p build/src
mkdir -p build/src/aaa
mkdir -p build/src/aaa/ccc
mkdir -p build/src/bbb
g++ -I src -Wall -g -c -o build/src/main.o src/main.cpp
g++ -I src -MM src/main.cpp \
            | sed 's|^\([^\.]*\)\.o|build/src/\1\.o|' > build/src/main.o.d
g++ -I src -Wall -g -c -o build/src/aaa/a.o src/aaa/a.cpp
g++ -I src -MM src/aaa/a.cpp \
            | sed 's|^\([^\.]*\)\.o|build/src/aaa/\1\.o|' > build/src/aaa/a.o.d
g++ -I src -Wall -g -c -o build/src/aaa/ccc/c.o src/aaa/ccc/c.cpp
g++ -I src -MM src/aaa/ccc/c.cpp \
            | sed 's|^\([^\.]*\)\.o|build/src/aaa/ccc/\1\.o|' > build/src/aaa/ccc/c.o.d
g++ -I src -Wall -g -c -o build/src/bbb/b.o src/bbb/b.cpp
g++ -I src -MM src/bbb/b.cpp \
            | sed 's|^\([^\.]*\)\.o|build/src/bbb/\1\.o|' > build/src/bbb/b.o.d
g++  -o build/sample build/src/main.o build/src/aaa/a.o build/src/aaa/ccc/c.o build/src/bbb/b.o

[dev] GNU makeの参考資料

GNU make(Mecklenburg,Robert/著 Mecklenburg,RobertWilliam/著 ほか) オライリーの GNU Make 第3版 が一番参考になると思うけど、持ってない。立ち読みはした。

ウェブ上のリソースをメモ。

GNU `make' (GNU)
本家にあるマニュアル。
GNU make 日本語訳(Coop編) (ecoop.net)
上のマニュアルの日本語訳。とても役に立つが少し古い。
GNU Make の使い方 (みねこあ)
オライリー本にあるテクニックが紹介されていたので参考にした。結局あまり難しいことはしなかったけれど。

2010年06月14日(月)

[サッカー] ワールドカップ 日本vsカメルーン (ブルームフォンテーン)

始まった!テストマッチの出来は散々だった日本、どうなる。日本の先発は

 大久保  本田  松井
   遠藤  阿部 長谷部
長友 闘莉王 中澤 駒野
         川島

カメルーンはエトーとか。エトーが右に張っている形で助かる。静かな前半。カメルーンは全く迫力がない。日本もいつもの通り迫力なし。

目立っていたのは松井。ミスもあったがドリブルやキープで起点となっていた。日本の攻めは右サイドばかり。大久保も走っていたけどボールがこなかった。本田は体の強さでチームを助けていた。やけに唇が赤かったのはジェネラルルージュ?遠藤は活躍できず。もっと積極的なパスをして欲しい。阿部は危なっかしかった。長友はエトーと対面し守備重視。闘莉王も攻め上がることはなかった。

交代は松井→岡崎、大久保→矢野、長谷部→稲本で俊輔出番なし。後半の後半はカメルーンのパワープレーにヒヤヒヤ。アブネーの連続。解説の山本さんは嫌いだったが慣れてきたのか今回は心地よかった。

やること

  • クリーニング

2011年06月14日(火)

  • 最新ページからAmazonプラグインを追い出してもたいして負荷は下がらなかった。負荷の低い日もあるし、原因は別の所にありそう。

[etc] 書けなかった漢字

比較の「較」を書けなかった。正解を見てもピンとこない。こんな字だったか。

比も較も「くらべる」と読むだって。


2016年06月14日(火)

[windows][howto] Windows 8.1で「コンピューターの管理」を管理者として実行する

Windows 8.1で「コンピューターの管理」を管理者として実行するいい方法がわからない。自分で苦労して編み出したのは次の手順。

  1. まず非管理者で「コンピューターの管理」を起動する。スタートボタンを右クリックして「コンピューターの管理」を選択すればよい。
  2. タスクバーに今起動した「コンピューターの管理」がいるのでそれを右クリックし、そこに現れる「コンピューターの管理」を更に右クリックする。すると「管理者として実行」という選択肢が現れるのでそれを選択する。

ダミーで一回起動しないといけないのはおかしいよなあ。