今日覚えたこと

プランナの操作方法

あんまり本番環境で使える機能ではないが、 set XXXX to on set XXXX to offでプランナを操作できる。 PostgreSQLが納得いかないプランを吐くときに、setコマンドで結合方式を無理やり変えて実行してみると、 プランナが正しい判断をしていることを思い知る…

Wordの目次のページ番号を振り直す

Wordドキュメントのページを追加削除すると、目次のページ番号がずれてしまう(ハイパーリンクは維持されたままだが)。 目次のページ番号を右クリックして「フィールドの更新」を選択 「ページ番号だけを更新する」をチェックしてOKを押す と操作すると、ペ…

直送

仕入先から(自社倉庫を経由しないで)直接顧客に納品すること。

shutdown -h now でシステムが終了しない時どうする

Red Hat Enterprise Linux WS 3.0をリモートから落とそうと思って # shutdown -h now しても、何でかしらないけど落ちない。 syslog見ても "shutting down for system halt" とか書いてあるだけで、原因が分からない。 代わりに # poweroff したら落ちた。 s…

実査

実査とは「現金や有価証券など、資産の現物を実際に数えて確かめること」。 これこそが経理の目的。経理の全ての仕事は、最後に実査することで完結する。 実査をしないなら、それまでのやった仕事の意味は全て吹き飛ぶ。...という考え方がある。

はてなブックマークのタイトル入力欄は編集しちゃダメ

いろんな人に迷惑をかけていたようだ...

Googleで過去の検索結果を取り出す

daterange:オプションにユリウス通日なるもので日付の範囲を指定すると、その期間の検索結果を返してくれる。 こんな感じ: daterange:2451545-2453857西暦をユリウス通日に変換する方法は、知らない。

どのテーブルでも "oid" 列の検索ができる

PostgreSQLの場合、どのテーブルも oid 列を持っていて、selectで oid 列にアクセスできる。 select oid from xxxxoidを使えば重複行の一方だけ更新したり、削除したりできる。

String#replaceFirst より StringUtils#replace を使う

DAO層で発行しているSQLのトレースをしているのだが、パラメータが "?" のまま出力されると不便なので、"?"をバインドされるパラメータに置換してからSQL文を出力するデバッグルーチンを書いたら、 java.lang.IllegalArgumentException: Illegal group ref…

EUC-JPのつもりで開いたファイルがShift_JISだった時、文字化けを直す

この呪文みたいなので変換してくれる。 :e ++enc=cp932

重複行があり得ないクエリに付加した distinct にもコストがかかる

C.J.Dateに倣って、重複行があろうとなかろうと、selectには常に distinct を付けるというやり方でイケルのかどうか、試してみた。 動的にSQL文を組み立てる場合、必要な時だけ distinct を付加するのが面倒くさいので、付けっぱなしにできるとありがたいの…

SQLの集約関数はnullの列を無視する

sum(), avg(), max(), min(), count(列名) は、nullの列を無視する。 特にavg()に注意。引数の列にnullがありえる場合は、合計の除数が期待しているものと違ってしまわないか注意する。 (ありがとうございました>ss2004さん)

Excelが出力するCSVのフォーマット

CSVのデファクトスタンダード、Excelが出力するCSVの作り方。 通常の項目は単純にカンマで区切る aa,bb,cc カンマや改行が含まれている場合は、項目を "" でくくる 例:bとbの間にカンマが含まれている aa,"b,b",cc 例:bとbの間に改行が含まれている aa,"b …

Redhat Linuxのバージョンを調べる

/etc/redhat-release に書いてある。 $ cat /etc/redhat-release CentOS release 4.1 (Final)

一つのプロセスが一時に開けるファイル数の上限を見る

$ ulimit -n 1024意外と少なくて、RHELでもデフォルト1024。

あるプロセスが開いているファイルのリストを見る

# lsof -p あと、指定したプロセスがつかんでいるport番号も分かる。 root 以外で実行しても、何も言わずに終了するだけ。

空のファイルを作成する。もし同名のファイルがあれば、ファイルを空にする

リダイレクト演算子でできる。 $ >aaa.txt

PostgreSQL/MySQLで、テーブル一覧を取得する

PostgreSQL psqlでログインして、システムテーブル pg_tables を読む。 システムテーブルは pg_xxxx という名前なので、それを除けて読む。# select * from pg_tables where not tablename like 'pg%' order by tablename; psqlでログインして、\dt。 ありが…

PostgreSQL/MySQLで、クエリの結果をファイルに出力する

PostgreSQL psqlでログインして、\o を使う。 # \o employees.txt # select * from employees; # \q MySQL mysqlコマンドをファイルにリダイレクトすると、クエリ入力モードに遷移してくれる。 $ mysql -u alphacrt -p royce > employees.txt SELECT * FROM …

String#matches() に渡す正規表現の書き方

String#matches()は、部分一致ができない。 「数字じゃないものを含むか?」をチェックしようとして if (s.matches("\\D")) { ... }と書くと、「頭から最後まで数字じゃないもの」だけがmatchする。 Perlみたいに部分一致させたかったら if (s.matches(".*\\…

稼動中のMySQLに対して、クエリキャッシュサイズを設定する

my.cnfに設定しなくても、set global文でクエリキャッシュサイズを設定できる。 なので、mysqldを止めなくても、クエリキャッシュを有効にできる。 > set global query_cache_size=16777216;ここ参照: http://dev.mysql.com/doc/refman/4.1/ja/set-option.h…

PostgreSQL/MySQLで、実行したクエリをログに取る

PostgreSQL postgresql.conf の以下をtrueにしてコメントを外す #log_statement = falsesyslog使って出力するので、出力先は/etc/syslogd.conf の設定次第。 MySQL mysqld 起動時に --log を付加する。 my.cnfでは、設定できない。 # safe_mysqld --datadir=…

MySQLのGROUP BYは特殊

今再構築している販売管理システムの現行のコードに、どう見ても実行不可能なSQLが埋まっていた。 SELECT * FROM 受注 INNER JOIN 受注オプション ON 受注.受注ID=受注オプション.受注ID GROUP BY 受注.受注ID 受注オプションというのは、商品に手提げ袋を添…

PostgreSQL/MySQLで、クエリの結果をタテ表示にする

PostgrreSQL psqlコマンドの、\pset x オプションを使う # \pset x # select * from users where login_id='aaa'; -[ RECORD 1 ]-----+----------- user_id | 944 login_id | aaa login_password | aaa9876 MySQL mysqlコマンドの、\G オプションを使う mysq…

MySQLの show status / show variables の結果から、必要な行だけを抽出する

show status / show variables には、LIKE句を付加することができる。 mysql> show status like 'Com_select'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | Com_select | 93903 | +---------------+-------+ 1 row in…

Eclipseショートカット

Ctrl + T フォーカスしているメソッドについて、実装者の型階層を表示する。 今日まで知らなかった。アウアウアー... Ctrl + O メンバ一覧を表示。知らなかった...

C# Tips

C#:文字列を数値にする int.Parse("100"); "int"はInt32型のエイリアスなのかな。 C#:今日の日付をYYYY/MM/DDで取得 DateTime構造体を使う。 string s = DateTime.Today.ToString("yyyy/MM/dd"); こういうのを言語ごとに一覧にした「言語乗り換えガイド」…

MRP vs. 製番管理

よく対立概念のように取り上げられる理由は、 MRP:まとめて作るからオーダーとロットが対応しない 製番管理:オーダーごとに作るからオーダーとロットが対応する という点にある。だが、現実の工場では見込み生産と受注生産が交錯するので、ふつうに両方や…

C# Tips

数値の3ケタごとにカンマを入れる方法 long/int/decimalキーワードの背景型=Int32構造体とか、Decimal構造体というものは、ToString()をオーバーロードしている。 引数に書式指定文字列を渡せる。 l.ToString("#,#") とすると、3桁ごとにカンマを入れてく…

C# Tips

params はC#のキーワード 可変長個数のパラメータを取るメソッドであることを示すキーワード。 paramsという変数名は使えない。 value もC#のキーワード setterプロパティメソッドの中で、「新しい値」を示す。 set {} に引数はないから、これが必要になる。