このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

ハマリ所

stricmp問題

<string.h>をインクルードしても、sricmp関数が使えない(見えない)。知らなかったが、ANSIではstricmp, strcmpi関数は廃止されたようだ。次のように __STRICT_ANSI__ 定数を無効化してからインクルードするとstricmpが宣言される。 #ifdef __STRICT_ANSI__ #undef __</string.h>…

GetCurrentTime問題

https://msdn.microsoft.com/ja-jp/library/cc429748.aspx : GetCurrentTimeこの関数は使われなくなりました。Win32 アプリケーションでは、GetTickCount 関数、または、レジストリの HKEY_PERFORMANCE_DATA 内にあるカウンタを使ってください。ただし、過去…

MSVCとgcc新旧のtime

まずはMSVC2010: #include <time.h> #include <stdio.h> int _tmain(int argc, _TCHAR* argv[]) { printf("sizeof(int):%d\n", sizeof(int)); printf("sizeof(long):%d\n", sizeof(long)); printf("sizeof(time_t):%d\n", sizeof(time_t)); return 0; } sizeof(int):4 sizeof</stdio.h></time.h>…

ロクでもないハマリどころ

複数のルールからのレシピが競合すると負けたレシピは消滅する。警告はある。 暗黙の組み込みルールが予期せぬ所で使われる。極めて発見しにくい。-r で対処。[追記].outは組み込みの暗黙ルールにある。ハマった。[/追記] 組み込みルールの利用/非利用を細…

deep代入は誤解しがち

http://www.is.titech.ac.jp/~mase/Rtips.html#item53 とか見ると、永続付値=deep代入を.GlobalEnvへの代入と記述している。それだと、.libPaths()のコードは理解できない。 > .libPaths function (new) { if (!missing(new)) { new <- Sys.glob(path.expan…

new.env()のイヤーなデフォルト値(誤解だった)

[追記]これは誤解[/追記] > new.env function (hash = TRUE, parent = parent.frame(), size = 29L) .Internal(new.env(hash, parent, size)) > 関数内で、new.env()すると、親スコープが親フレームになる。これはオカシイだろうよ。.GlobalEnvのparent.fram…

エクスポーターは名前空間ではない

isNamespace(x) でTRUEが返るものを(狭義の)名前空間と呼ぶなら。パッケージが提供するエクスポーターオブジェクト(環境名は package:パッケージ名)は名前空間ではない。名前空間はgetNamespace(名前空間名) で得られたものだけである。

seq_alongを使う。

for (i in 1:length(x)) something(i) とすると、xが空列のときにエライことになる。for (i in seq_along(x)) something(i) とする。

リストへの要素値を設定

lis[[i]] lis[i]

rsyncの謎のエラー

rsyncで使うアカウントの.bashrcが余分な出力を出すと、rsyncが "protocol version mismatch - is your shell clean?" と言う。.bashrc で echo とかしてはいけない。

vsftpdの設定はどうかしている

/etc/vsftpd.user_list の冒頭 # vsftpd userlist # If userlist_deny=NO, only allow users in this file # If userlist_deny=YES (default), never allow users in this file, and # do not even prompt for a password. # Note that the default vsftpd p…