メモの日々


2001年01月16日(火) 勤務評価システム

勤務評価システムの脆弱性は実は解消されていなかったようだ。とほほ。

年賀状のお年玉くじは切手シートしか当たっていなかった。切手シートなど要らないぞ。

[web][java] Enhydra 日本語ドキュメント

Javaで記述されたオープンソースのアプリケーションサーバEnhydraの資料

[dev] マルチブート関連

マルチブートについて説明されているページ

[windows] 公開オンラインソフト一覧

NT版UNIX-like toolsがあるページ。ほかにもduコマンドとか便利そう。今自分がdu代わりに使っているのはAble for Win32 というソフト。GUIでいいのだけれど、サイズ順にソートしたときの動作がちょっと怪しい。


2002年01月16日(水) 今日も暖かい

会社

  • 8:30 まあ早起き。やる気はある。
  • ふーん、IEには「HTTPエラーメッセージを簡易表示する」なんてオプションがあったのか。なるほどー。セキュリティホールmemo MLより。
  • うお、おれはもうxmopera@のメンバーではなかったようだ。
  • 9:50 OOOOの件でメイルを書いた。早くもやる気なくなる。
  • 11:20 Wineプログラムの実装スケジュールを考えた。ほんとに作れるのだろうか。こればっか。とりあえずこれから全画面の雛型を作るなり。

[dev] Internet Week 2001 チュートリアルプレゼンテーション資料

Internet Week 2001の資料もあった。セキュリティホールmemoより。

テレビ/本

  • ジャンクスポーツ。石井が「ぶたろう」とやじられた話とか。
  • UML Pressを少し。デザインパターンのところ。

2003年01月16日(木) え、エムボマ東京ベルディ入団かよ

会社

  • 9:05 出社。ポットにお湯を入れメイルを読む。
  • 10:00〜11:00 作りかけのプログラムをデモする羽目に。動いてほっ。
  • 13:20〜14:20 IISに「アプリケーションのマッピング」のエントリを追加したいのだができないのでずっといろいろ調べていた。「アプリケーションの拡張子マッピングの追加/編集」ダイアログでOKボタンがグレーアウトしていて押せないのだ。何をどうしても駄目だしGoogleなどで検索しても何も情報見つからない。
  • やりたかったのは拡張子asmxへのマッピングの追加だったのだが、.NET Frameworkをインストールしなおしたら自動的に追加されなんとかなった。手動での追加は未だにできない。
  • コーディングを進める。
  • 20:30 コンタクトレンズを外すときに見失い焦る。結局目の横の方にくっついていた。それもなかなか取れなかったがコンタクト用のスポイトを使ったらあっさり取れた。便利だ。
  • 20:40 退出。

[java] Poco Cafe

Java関連の雑誌記事を読める。JavaHouse Brewers MLより。

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

kazu [もう一度カーソルを実行ファイルのテキストボックスに合わせればグレーアウトは解除される模様。バグか?]

小川 [手元の環境(XP Pro)で試しましたが、どうやってもグレーアウトしたままです。「もう一度」というのはどういう操作を..]

ヨッシー [参考リンクを貼ります。こちらで確認して下さい。 http://support.microsoft.com/defau..]

小川 [URLの紹介をありがとうございます。OKボタンを押せるようになりました。 http://ogawa.s18.xrea..]


2009年01月16日(金)

  • 病気は完治した。
  • 初めてマスクを買ったが、なんだかもったいなくて使えない。

[dev][howto] autotoolsを使った

autotoolsを使っている既存のツールをカスタマイズする機会があり、autotoolsを少し理解できるようになった。ちょっとだけメモ。

Makefileを修正したいとき

  1. Makefile.am を修正する。
  2. automakeコマンドを実行する。これにより、修正の反映された Makefile.in が生成される。

これで、次にconfigureを実行したときに修正の反映されたMakefileが生成されるようになる。

config.hを修正したいとき

config.hはconfigureの実行により生成されるファイルで、ビルド環境の状態を反映した定数定義などがされている。これを修正したい時は、

  1. configure.ac を修正する。
  2. autoheaderコマンドを実行する。これにより、修正の反映された config.h.in が生成される。
  3. autoconfコマンドを実行する。これにより、修正の反映された configure が生成される。

これで、次にconfigureを実行したときに修正の反映されたconfig.hが生成されるようになる。

[追記] 以下に書いた方法は不完全でした。後日の日記も合わせて参照してください。 [追記ここまで]

configure.ac の書き方はまだ理解しきれていないが、AC_DEFINE または AC_DEFINE_UNQUOTED マクロを使うと新しい定数をconfig.hに追加することができた。例えば、

AC_DEFINE_UNQUOTED([PREFIX_DIR], ["$prefix"], [install directory])

という行を追加してからautoheaderを実行すると、config.h.inに

/* install directory */
#undef PREFIX_DIR

という行が追加され、その後でautoconfコマンドを実行して生成されたconfigureを「./configure --prefix=/home/oreore/test」などと実行すると、config.hに

/* install directory */
#define PREFIX_DIR "/home/oreore/test"

という行が追加される。

[c][howto] Cで実行ファイル自身の絶対パスを得る

同じようなことをバッチファイルで実現する方法はこの間メモしたが、Cではどうやるんだっけ。既にメモしていた気もしていたが見当たらない。

まず思いつくのは argv[0] を使う方法だが、色々なケースを考えるとここから絶対パスを得るのは面倒くさい。

別のアプローチは、上に書いたように autotools などを使ってインストールディレクトリのパスをソースコードへ埋め込む方法。これだと実行ファイル自身のパスを得ていることにはならない(コピーされたら駄目)けれど、用途によっては機能する。Unix Programming Frequently Asked Questions 日本語訳にそのような話が書かれていた。

BINARY HACKSの項目64には /proc から読み取る方法が書かれていた。Linuxなら「/proc/self/exe」、FreeBSDなら「/proc/curproc/file」をreadlinkで読み込めばいいとのこと。使えるならこれが便利かな。


2013年01月16日(水)

[dev][howto] git-svnで空ディレクトリを削除

gitリポジトリ上でディレクトリを削除しても、git svn dcommit した先のsubversionリポジトリではディレクトリが削除されなかった。

% git svn dcommit --rmdir

と--rmdirオプションを付ければ削除されるみたい。git-svn(1) Manual Pageから引用。

--rmdir

Only used with the dcommit, set-tree and commit-diff commands.

Remove directories from the SVN tree if there are no files left behind. SVN can version empty directories, and they are not removed by default if there are no files left in them. git cannot version empty directories. Enabling this flag will make the commit to SVN act like git.

config key: svn.rmdir


2022年01月16日(日)

[c#] WPFのコントロールの継承構造

WPFのコントロールがどのようなクラスを継承しているかをメモ。ObjectからControlに到るまでは次のクラスを継承している。

  1. System.Object
  2. System.Windows.Threading.DispatcherObject
  3. System.Windows.DependencyObject
  4. System.Windows.Media.Visual
  5. System.Windows.UIElement
  6. System.Windows.FrameworkElement
  7. System.Windows.Controls.Control

それぞれのクラスの役割については次のページで説明されていて参考になる。