今日覚えたこと

バイナリファイルの中の文字列を見る

strings コマンドを使う。 $ strings httpd |head /lib/ld-linux.so.2 libm.so.6 modf _Jv_RegisterClasses __gmon_start__ libcrypt.so.1 crypt libc.so.6 strcpy regexec

UNIXのワイルドカードは、コマンドに渡される前に展開されている

なので、 $ echo * を実行すると、'*'がエコーするのではなくて、カレントディレクトリにあるファイルが全部リストされる。 $ echo * ABOUT_APACHE cgi-bin conf config.layout config.status configure htdocs icons INSTALL LICENSE logs Makefile Makefil…

エイリアスを一覧する

$ alias -p

ワイド文字・ワイド文字列のリテラル

頭にLをつけるとワイド文字になる。 L'\0' // ワイド文字 L"ABC" // ワイド文字列

Subversionでパスワードのキャッシュを止める

~/.subversion/configの以下をコメントイン store-passwords = no store-auth-creds = no パスワードのキャッシュを消去 $ rm ~/.subversion/auth/svn.simple/* これで、毎回のcommitでユーザ名/パスワードを求められるようになる。

Korn Shellで直前のコマンドを再実行する

kshでbashの "!!" に相当するコマンドは "r"。 $ r これで直前のコマンドが再実行できる。 bash の "!cat" みたいなことをやりたいなら、こうする: $ r cat

SQL Server 2005 Developer Edition のリモート接続許可手順

やり方が http://support.microsoft.com/kb/914277/ に書いてあるが、機械翻訳があまりにも強烈なので意味が取りにくい。 1) TCP/IPでの接続を許可する スタートメニューから SQL Server−構成ツール−SQL Serverセキュリティ構成を開く 「サービスと接続のセ…

except all 演算子

union all の except 版。 重複する行が、引かれる方の集合に2行、引くほうの集合に1行あったら、演算結果に1行残す。

intを2桁の数字にフォーマットする

int.ToString()のオーバーロードでできる。 for (int i = 1; i <= 10; i++) { Console.WriteLine(i.ToString("00")); }

文字列がnullまたは空文字列かを判定する

String に IsNullOrEmpty() というstaticメンバがある。

1ヶ月前の日付を取得する

DateTime.AddMonths(-1) で算出できる。 3/31に AddMonths(-1) すると、ちゃんと2/28になる。

log4netのWebアプリへの導入手順

Visual Studio.NET 2005 で ASP.NET2.0 のアプリにlog4netを組み込む手順。 1. DLL追加 ソリューションエクスプローラでプロジェクトを右クリックして ASP.NETフォルダの追加−Bin を選択し、Binフォルダを作成する。 そこにlog4net.dllを入れるとプログラム…

賃率

時間あたりの労務費のこと。 要するに時給のこと。

付保する

保険を掛けること。

exprコマンドで掛け算しようとしたらsyntax error

'*'がシェルの特種記号なのでバックスラッシュでエスケープしなくてはならない。 $ expr 8 * 2 expr: syntax error $ expr 8 \* 2 16

dateコマンド: 今日は何曜日かを取得する

%a か %A フラグを使う。 $ date +%a Thu $ date +%A Thursday

dateコマンド: 今日の日付を yyyymmdd 形式で取得する

%Y %m %d フラグを使う。 $ date +%Y%m%d 20070512Yだけ大文字なのに注意。

Excelの式には論理演算子がない

Excelの計算式には && や || みたいな論理演算子は使えない。 代わりに AND関数 OR関数 NOT関数 で書く。 例: =IF(AND(A1>=70,B1>=70),"OK") =IF(OR(A1>=70,B1>=70),"OK") =IF(NOT(A1>100),"OK")

Visual C# 2005 Express Editionで、Debug/Releaseビルドを切り替える

インストール直後の状態だと、Debug/Releaseを切り替えるメニューがない。 何で、わざわざそんなんなっているのか、意味が分からない。 そこでこうする: [ツール]−[オプション]のダイアログの左下隅の「すべての設定を表示」をチェック 「プロジェクトおよび…

SQL Serverで数値の 9 を文字列 '09' にフォーマットする

Transact-SQL にはこれをする関数がないらしい。 なので、RIGHTとCONVERTを組み合わせるのだそうだ。 select right('00' + convert(varchar, 9), 2)

Cygwin の xhost コマンドが xhost: unable to open display "" と言って失敗する

xhostコマンドであるホストからの接続を許可しようとしたらこんなエラーが出る。 xhost: unable to open display "" これは、Xサーバ側(自端末側)に環境変数 DISPLAY が定義されていないことが原因。 DISPLAY変数に :. を設定すれば解消する。 例: $ export …

Cygwin の mount コマンドが Invalid argument になる

こんなエラーが出る理由は、 $ mount C:\temp ~/work mount:/home/hoge/work: Invalid argument Cygwin上では、\はエスケープ文字だから。 \ではなく\\と書かなくてはならない。 $ mount C:\\temp ~/work

double の値が NaN かどうかは == 演算子ではチェックできない

double の変数が NaN かどうかは、Double#isNaN() でチェックする。 double の変数と Double.NaN を == で比較したら、常にfalseになってしまう。 double d = Double.NaN; if (d == Double.NaN) { // ここは通らない } if (Double.isNaN(d)) { // ここは通る…

カーソル位置にある変数が強調表示されなくなった時、どうやって強調表示の設定に戻すか

エディタを右クリックして、 [設定]−[Java]−[エディタ]−[エディタ出現箇所のマーク]−[現行ファイルの選択されたエレメントの出現箇所にマークをつける] をチェックする。

あいまいなオーバーロードの解決はコンパイル時に行われる

フヒヒヒヒすいません! Java使いはじめて4年経つけど、ずーっと勘違いしていた。 あいまいなオーバーロードの解決は、実行時ではなくコンパイル時に行われる。 こんなのがあったら public class OverloadTest { public static void test(Object o) { Syste…

PostgreSQLで MySQLの show processlist みたいなことをする

select * from pg_stat_activity;postgresql.conf の show_statement_stats を true にしておくと実行中のクエリも参照できる。

CVSパースペクティブで、Ctrl+Shift+R などのショートカットが無効になっているのを直す

CVSパースペクティブを開いた状態で [ウィンドウ]−[パースペクティブのカスタマイズ]−「コマンド」タブ を開き、で、「リソース・ナビゲーション」をチェックする。

junitタスクが実行できないのはANT_HOME/lib に junit.jarがないから

マシンを買い換える度に間違うのだけど、Antのjunitタスクを実行しようとするとこう言って怒られる。 BUILD FAILED Could not create task or type of type: junit. Ant could not find the task or a class this task relies upon. This is common and has …

クラスパスを画面にechoする

タスクが見ている classpath の内容を見たい場合どうするか。 "compile.classpath"というidでクラスパスを定義しているとして、 <path id="compile.classpath"> : </path>その内容は以下のようにして標準出力に表示できる。 <property name="cp" refid="compile.classpath"/> <echo message="${cp}"/></echo></property>

検索とかF3(「宣言を開く」)とかでジャンプした後で、元の位置に戻りたい

ブラウザと同じで、Alt + ← で戻れる。 また、Alt + → で進める。