2004-01-01から1年間の記事一覧
残念ながらver.1.5では、主キーについて次のような制限がある。 カラム数が多くとも5カラム 1カラムの場合、最大サイズが250バイト。複数カラムの場合、200バイト未満になることもある。 http://www.volny.cz/iprenosil/interbase/ip_ib_indexcalculator.htm…
setup.rbとかextconf.rbが付いていると一見楽そうなのだが、こいつらはruby本体がビルドされたときの情報を元にヘッダやら何やらを探そうとするので、まず > ruby -r rbconfig -e "cf=Config.CONFIG;cf.keys.sort.each{|key| print key, ' -> ', cf[key], %Q…
Webアプリから直接Class.forName()してドライバをロードするような場合は$CATALINA_HOME/shared/libに置けばいいが、Tomcatのコネクションプーリングを使うような場合は、$CATALINA_HOME/common/libに置かないとTomcatがJDBCドライバをロードできないので要…
ORDER BY指定した列にNULLが含まれる場合、 Access、SQL Server NULLは最小値扱い Oracle、DB2 NULLは最大値扱い となる。(PostgreSQLとかは調べてない) なお、MAX/MINを取る場合はNULLは排除されるのでこの話は当てはまらない。念のため。
ppmでは入らない。CPANから取ってくれば、win_install.plファイルがあるので、これを実行すればよい。(
OSによっててんでばらばら(そもそも、.soファイルがWindowsのDLLのように扱われるという保証からしてない)だが、 AIX $LIBPATHのどこか Soralis $LD_LIBRARY_PATHのどこか に入れるそうな。(LinuxとかBSD系は調べてない) よほどひねくれてない限り、これらの…
上書き動作はエラー。NT系であれば、MoveFileEx()で上書き移動も可能。
指定されたiniファイル、セクション、キーがない時は引数nDefaultに指定した値が返ってくるが、キーに対する値が数値でなかった場合決め打ちで0が返ってくる。sigh.
Win32 APIでもっとも長い日付を持てる型はFILETIME(64ビット)。 Win32ではDWORD x 2の構造体でそのままでは64ビット演算はできないが、ULARGE_INTEGER(DWORD x 2の構造体とULONGLONGのunion)に放り込めば64ビット演算可能。 SYSTEMTIMEとの間で相互変換でき…
http://www.dodgson.co.jp/books/lab/hat/reference.html に議論があるが、つまり 「呼び出しコードを見たとき、値渡しと区別がつかない」 ということだそうな。(「猫でも〜」にもそのような記述あり。) とはいえ、「C++ FAQ」に言わせると、「区別がつかな…
バンドルが実行時ロードモジュールの場合、アプリケーションメインのinfo.plistでなくバンドル内部のinfo.plistにアクセスしたいときがある。こういう場合、バンドルのprincipalクラスで [NSBundle bundleForClass: [self class]]とやると「自分自身」のNSBu…
C/C++では、 int* a, b; のときbはintだが、 Javaの場合 int a, b; のとき、bもint。
stringをresize(0)してからc_str()を取ると、ちゃんと"\0"からなる領域を指すポインタが帰ってくるので、心配せずに使える。(VC++6.0 SP5で確認)
型付けされた変数であれば、signed/unsignedによるオーバーロードは可能。 また、int/charでオーバーロードしているとき、文字リテラルを引数に渡すと charの方が呼ばれる。(VC++6.0 SP5で確認)
1. 1023まではroot用なので使っちゃダメ。 2. RFC1700に主要なプロトコルのポート割り当て一覧がある。これに載ってるのも×。 3. 1024(一般にreserved)、6000-6063(X window systemで使用)ほか、著名なものを避ける。
ほっとくと溜まる一方なので、rotatelogツールを使うと良いらしい。
[n,m)で、「n以上m未満」を表す。
実はantにはデフォルト除外集合というものがある。特定のファイルパスパターンだが、これに該当するファイル/ディレクトリは黙って処理対象から外される。 ……で、それが<Delete>でも効いてしまうので、*~を消すタスクを作ってもそのままでは何もしてくれない。FileSe</delete>…
C++の例外を、Win32の構造化例外処理機構(SEH)で扱う際の 内部コード。例外をcatchし忘れると唐突に出るので 慌てないこと。 後で見たときにはもう古いかも知れないが一応URL。 http://support.microsoft.com/default.aspx?scid=kb;en-us;185294
C++で hoge* piyo; は hoge *piyo; と同じだが、 hoge* piyo, muni; だとmuniはhoge*でなくhoge。
OOPな話でたまに見かけるこの記法。 methodがclassのインスタンスメソッドの時「class#method」 methodがclassのクラスメソッドなら「class.method」 と書くらしい。 ……なんか以前、逆のような記述を見た気もするんだが……
コンテナが空のとき、いきなり itr = hoge.rbegin(); で*itrを操作しようとすると、itrがNULL同様なのか、落ちる。 ちなみにgcc、bcc32では同等の処理をやっても落ちない。 VC++7.0以降では未検証。
いわゆるパスデリミタはseparatorCharの方。 pathSeparatorCharは、環境変数に複数のファイルパスを設定するような場合に使われる区切り文字。 (UN*Xなら「:」だけど、DOS/Windowsは「:」をドライブレター指示文字(?)として使ってるから「;」、とかゆー話)
渡されたパスをpathとして、 new File(path).getPath() で、プラットフォームに適したパスを得ることが出来る。
UN*Xのshだと「\」で改行をエスケープできるが、似た感じで「^」で改行のエスケープのようなことが出来る。 コマンドラインでjavacを手入力しないといけないような場合は多少便利、かも。 (2014/09/04 追記) これにとんでもねえ罠があった。「^」は本来cmd.e…