2009年07月13日

T4

日本語版がそろそろ終わってしまいそうなので、いってきた。
いやー、よかった。
スカイネットへのアクセスがもうウラヤマシス。
公開がそろそろ終わってしまうので、まだ観てない方はぜひぜひ。
















DVD種類大杉。
ここから好きなのえらんでくれ。
posted by koteitan at 14:48| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2009年07月02日

Windowsで別ユーザー実行

linuxで言うところのsudoであり、aixで言うところの
su -c 。

windowsでは runas コマンド


http://www.atmarkit.co.jp/fwin2k/win2ktips/758runascmd/runascmd.html
posted by koteitan at 16:41| Comment(0) | TrackBack(0) | その他備忘録 | このブログの読者になる | 更新情報をチェックする

[C#]アクセス修飾子のオーバーライド

Javaではprivate>無印>protected>publicの方向にのみ
上書きできる。(ゆるくなる方向)

C#は出来ないが、newで流れを止めればできる。
C++はやりたい放題。

うん、(´・ω・`) 同僚に聞かれただけなんだ。
最近会話に代名詞が増えてきたからココにメモしておいてやるお。(^ω^)

さらにつっこむと継承してるのに流れを止めるってのはどうなのさ、
と思う。委譲にして分離度上げた方がいいんじゃね?

なんてな。


参考リンク
 http://ja.wikipedia.org/wiki/%E7%B6%99%E6%89%BF
 http://wisdom.sakura.ne.jp/programming/cs/cs27.html
 仮想関数のアクセス指定子
  http://d.hatena.ne.jp/eagle_raptor/20090502/1241219906
 http://msdn.microsoft.com/ja-jp/library/ebca9ah3.aspx
 http://msdn.microsoft.com/ja-jp/library/435f1dw2.aspx
posted by koteitan at 16:38| Comment(0) | TrackBack(0) | C# | このブログの読者になる | 更新情報をチェックする

2009年06月29日

[Java]JNI memo

すげぇ久しぶりにJNIのコードなんかを書いた。
やりたかったことは大昔のシステムのDLLの関数と
それをリファインしたjavaのライブラリとの動作のチェックなんだけどね。

(1)旧DLLを単体で呼び出し、動作確認 (C++)
(2)ラッパーDLLを作成し、サンプルJavaから呼び出し(C++,java)
(3)javaのライブラリをサンプルjavaから呼び出し(java)
(4)比較ロジックを作成、呼び出し部はスタブにて実行(java)

ココまでは順調だった。

(5)パッケージ分けし、JNIコールも組み込み、DLL内処理に
 printfデバッグを仕込んでおき作動させる -> NG

( ゚Д゚)ハァ?

(6)DLLを単体で呼び出してみる -> OK

例外はUnsatisfiedLinkError 。
System.loadLibraryは成功しているので、これは関数が見つからない
という意味。調べると、javah -jniの使い方に問題があった模様。

・パッケージ名を持っている場合は、そのクラス階層で直接javahしてはダメ。
JNIメソッド名には完全修飾名であるので、呼び出したときにUnsatisfiedLinkErrorになる。

WEB上にたくさんあるサンプルではほとんどが無名パッケージなので、非常に気づきにくい。
javahのヘルプメッセージを凝視すると、


>javah
使い方: javah [options] classes

[options] には次のものがあります。

-help ヘルプメッセージを表示して終了する
-classpath path クラスをロードするバス
-bootclasspath path ブートストラップクラスをロードするパス
-d dir 出力ディレクトリ
-o file 出力ファイル (-d か -o のどちらか一方を使用する)
-jni JNI 形式のヘッダファイルを生成する (デフォルト)
-old JDK1.0 形式のヘッダファイルを生成する
-stubs スタブファイルを生成する
-version バージョン情報を表示する
-verbose 詳細な出力を行う
-force 常に出力ファイルを書き込む

classes は完全指定の名前で指定します (java.lang.Object など)

しっかり書いてある ('A`)ウボア


例えば、jp.hoge.TestJni だった場合、cd jp/hoge/ javah -jni TestJni ではNG
javah -classpath ./ -jni jp.hoge.TestJni とやらないと完全修飾名でヘッダが作成されない。

(7)でもUnsatisfiedLinkError。(;´Д`)ハァハァ

(8)試しにパッケージを取り払って、ヘッダも作り直してみる
  → OK

( ゚д゚)??
やりたいことは検証のみで、時間も迫っていたため
妥協したが、どうも納得いかない。
同様の事例も見あたらないし、メソッド名も間違い無い。
DependencyWalkerで公開関数を見てみたが、ちゃんと公開できてる。
うーむ・・。また折りをみて確認しよう。

参考リンク
posted by koteitan at 16:50| Comment(0) | TrackBack(0) | Java | このブログの読者になる | 更新情報をチェックする

[java]恐怖文字コード

javaでもっとも怖がられているものが文字コード。
初心者キラーでもあり、見えない悪魔となって熟練者にも襲いかかる。

面白い事象を発見した。
SJISのbyteデータをStringコンストラクタを使ってデコード時、
未割当のコードポイントを使うと動作が( ゚Д゚)ハァ?

前提知識として、
 ・"SJIS" エイリアスは Shift_JISにマップしなおされた
  (JDK1.4〜)
 ・普段使っているコードはMS932(windows)、これは
  Windows-31Jからマップされている。
 
 http://www.ingrid.org/java/i18n/encoding/shift_jis.html

 ・Shift_JISの2バイトコードの空間は、
  第1バイトが81-9FならびにE0-FC、
  第2バイトが40-7Eならびに80-FCである。

 http://ja.wikipedia.org/wiki/Shift_JIS

これらをふまえた上で、コードポイントの外の文字を変換してみる。
例えば8B7F。MS932でも未割当である。
http://www.microsoft.com/globaldev/reference/dbcs/932/932_8B.mspx

しかし、結果はおぞましいことになる。
code1.jpg

エイリアスがShift_JISに相当してしまうとマトモな文字になる( ゚д゚)
しかもこれは次のコード(8B80 朽)

もっとおぞましいこともある。
上図はSunJDKだが、
code1_java.jpg

これを、IBMJDKで実行すると・・・
code2_java.jpg
code2.jpg


(´Д` )イェァイェァイェァイェァスーン( ゚д゚)ハッ!
HPとかのでも試してみたいが環境が無い。
てゆーかね、このSunの挙動はバグっぽくないか?

環境お持ちの方は続きにソースを貼り付けしておくので
その目でお確かめくださいな。

 ソースコード
posted by koteitan at 14:58| Comment(0) | TrackBack(0) | Java | このブログの読者になる | 更新情報をチェックする

2009年06月24日

[DB2]runstatsがメモリ不足

db2にて大量のレコード(1000万件以上)あるテーブル
普通にrunstatsすると

SQL2310N The utility could not generate statistics. Error "-930" was returned

diagにはOSERR : ENOMEM (12) "Not enough space"とかあるし。
物理メモリは笑える数字ぐらい積んでるのにね。何十GBだぜ。
空きも一杯ある。

いろいろ調べてはみたんだが、
・ulimitのOS制限じゃね?
→ 全て-1の無制限
・4ktempの容量じゃね?
→何百GB空いてる

sampledを付けて実行すれば問題無く完了するので、それで急場は
凌いだのだけれども。
原因がわからんとモヤットボールが貯まる。

DB2の設定の何かの制限にはまってそう。
考えられるものはUTIL_HEAP。しかし、これだとメッセージが違うはず。

海外のBBSやblogからstat_heap_szだよって記事はあったけど
これだとSQL2312N じゃないの?(´-ω-`)

sampledで実行したあとはもう出なくなるし検証できん。
更新する内容が変わったのかな。

再現しなくなったし、もうヽ(`Д´)ノ モヤットモヤットモヤットモヤット

http://db2forum.jp/viewtopic.php?p=6414&sid=f6f928f7ad23ae1308001206909264ba
http://www-01.ibm.com/support/docview.wss?uid=std35119d73eeac791d6492573440004742c
http://www.channeldb2.com/profiles/blogs/runstats-sql2310n-the-utility
http://database.ittoolbox.com/groups/technical-functional/db2-l/runstats-problems-2455931?cv=expanded
http://www.lazydba.com/db2/2__16785.html

posted by koteitan at 18:49| Comment(0) | TrackBack(0) | DB2 | このブログの読者になる | 更新情報をチェックする

レジストリ破損から復活するには

いつものようにwindowsの電源をいれてら、

次のファイルが存在しないかまたは壊れているため、Windows を起動できませんでした: \WINDOWS\SYSTEM32\CONFIG\SYSTEM

というメッセージと共に懐かしいDOS画面が出てきて
ガ━━(゚Д゚;)━━━ン!! とかなった人も居るだろう。

まぁ、賢いみんなはバックアップからシステム戻して終了。
データなんて別保管だから痛くもかゆくも無いはずだよネ。

後学のために、強引に治す方法は
・回復コンソールで頑張る
 Repairフォルダからバックアップを戻す方法
http://www.e-joy.co.jp/supp/faq/winxp/00014.htm
http://support.microsoft.com/kb/307545/ja
http://qanda.rakuten.ne.jp/qa3506122.html

などだが、プリインストール機などで、Repairフォルダにバックアップなんか
ねーよ!!な場合、(*.bakはあるかもしれない)
さらに酷いことになりかねない。(コンソールすら無理になったり)

そんなことになっても、我らがknoppix様ならなんとかなったりする。
 knoppixでシステムドライブマウントし、System Volume Informationから最新のバックアップを戻す方法

「System Volume Information」に感謝。
http://ymch.jp/blog/?mode=all&no=2380
http://totoro0306-lj.hp.infoseek.co.jp/60/VAIO.htm
KNOPPIXでsystemファイルを修復
http://mogg.blog.ocn.ne.jp/mogg/2008/08/knoppixsystem_0ae7.html
http://www.rcis.aist.go.jp/project/knoppix/
http://pasokoma.jp/44/lg447999.html

こっちの方法がGUIでサクサクとパスワードもなんにも無しで
できてしまうので、っていいのかそれ・・(;´Д`)

こういう方法でダメなら物理破損を疑ったほうがいい。
それよりknoppix超便利だけど、怖い。windowsセキュリティが
まったく役に立っていない。最近のものはUSBメモリからもブートできるし、
そのUSBメモリの容量も16GBとかあるのでぶっこぬきもできてしまう。

対策として考えられることは物理的にデバイスをロックしておく、
BIOSパスワードをかけておき、外部ブートできなくする、
HDDを暗号化する、などなど。

しかし、これを施すと逆に今回のような症状のときに治せないという
ことになるので、バックアップは大事ですぜ。


posted by koteitan at 18:31| Comment(0) | TrackBack(0) | セキュリティ | このブログの読者になる | 更新情報をチェックする

2009年06月23日

ファイルコピー

同僚がファイルコピーについて、

同「File.AppendTextで3行で書けたぜ」
同「TextReader.ReadToEnd Method一気に読み込んでケツに追記したぜ」


      ィ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;゙t,
     彡;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ヽ
     イ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;r''ソ~ヾ:;;;;;;゙i,
     t;;;;;;;リ~`゙ヾ、;;;;;;;;;;;;;;;;;;;;ノ    i,;;;;;;!
     ゙i,;;;;t    ヾ-‐''"~´_,,.ィ"゙  ヾ;;f^!   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     ト.;;;;;》  =ニー-彡ニ''"~´,,...,,.  レ')l. < おまえは何を言っているんだ
     t゙ヾ;l   __,, .. ,,_   ,.テ:ro=r''"゙ !.f'l.   \____________
      ヽ.ヽ ー=rtσフ= ;  ('"^'=''′  リノ  
    ,,.. -‐ゝ.>、 `゙゙゙゙´ ,'  ヽ   . : :! /
 ~´ : : : : : `ヽ:.    ,rf :. . :.: j 、 . : : ト、.、
 : : : : : : : : : : ヽ、  /. .゙ー:、_,.r'゙: :ヽ. : :/ ヽ\、 
  :f: r: : : : : : : : !丶  r-、=一=''チ^  ,/   !:: : :`丶、_
  : /: : : : : : : : :! ヽ、  ゙ ''' ''¨´  /   ,i: : : l!: : : : :`ヽ、
 〃: :j: : : : : : : ゙i   `ヽ、..,,__,, :ィ"::   ,ノ:: : : : : : : : : : : :\
 ノ: : : : : : : : : : :丶   : : ::::::::: : : :   /: : : : : : : : : : : : : : : :\

俺「ファイルが1GBだったらどうするんだ?」
俺「ファイルがバイナリだったらどうするんだ?」
と、煽ると

同「じゃあ、どう書くんだよ、3行で書けよ」

とか言う。(^ω^#ピキピキ




3年ぶりぐらいに書いた
posted by koteitan at 18:10| Comment(0) | TrackBack(0) | C# | このブログの読者になる | 更新情報をチェックする

2009年06月15日

プロレスの三沢光晴さん、リングで頭強打し死亡

三沢さん・・・。・゚・(ノД`)・゚・。

http://www.yomiuri.co.jp/sports/news/20090613-OYT1T01053.htm

ジャンボ鶴田さんとの二強時代が大好きでした。

ご冥福をお祈り致します。合掌。


posted by koteitan at 11:09| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2009年06月12日

ナウでヤングな・・

以下の会話をよく考えて下さい。

hoge「あいつ煮詰まっとるなぁ・・」
fuga「うーむ、あの案件はあいつにでは役不足だったか・・」
hoge「そうですねぇ・・」

違和感を感じなかった場合、黄色信号。
posted by koteitan at 15:34| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする