アイデアを実体化する力がほしい

嫌いです。linux。好きです。windows。でも会社でやってみたいアイデアlamp構成のものが多い。つらい。ってことで自分にもlinux環境を入れることにしました。でもそのためにサーバ用意するのもねぇ、、、ってことでいろいろ探していたら、見つけました。

http://tech.x-neon.com/show/2

PC内部で仮想ネットがあるからC/Sなシステムも作れるし、なんといっても楽チン。
早速試さねば。

自習室だって。

薬院をあるいてたら、なんか変なもの見つけた。

不動産・建設業を手掛ける八千代建設(薬院3)は5月8日、西鉄薬院駅の隣の八千代ビルYA55−2階に会員制の自習室「雨奇晴好(うきせいこう)」(渡辺通2、TEL 080-5210-8055)をオープンした。

 同施設は同社にとって新業態で、図書館やファストフード店で勉強している学生やビジネスマンなどを見かけた同社社長が学習室の需要があると見込み出店した。

・・・

料金は、最初の1時間が300円で、以後1時間毎に200円が追加される。
営業時間は、月〜金=8時〜19時、土・日・祝日=9時〜20時。

だって。面白いね。

cronでJAVAのプログラムが動かない。

なんでなんでと調べて1時間程度。理由判明。cron実行時の環境変数はとても貧困。だからシェルを別途作成して、
環境変数設定
2実行
ってしてあげないといけない。

cronで起動されるプロセスでは、
PATH=/usr/bin:/bin
HOME=/root
LOGNAME=root
SHELL=/bin/sh
PWD=/root
程度しか環境変数が設定されません。

必要な環境変数は、起動されるプロセス内で定義するか、crontabファイル内に書く必要があります。この場合は、crontabファイルの先頭に、
PATH=...
JAVAHOME=...
CLASSPATH=...
と書けばいいです。

http://oshiete.nikkeibp.co.jp/kotaeru.php3?qid=2617009より抜粋)

いまさら浮動小数点の意味がわかった。

まず。

<?php
print floor( (0.1 + 0.7) *10 );
?> 

の結果は7になります。

今更だけど、実数をプログラムで使うということ。

当たり前ながら、実数というのは桁が無限大です。そりゃそうだ、1/3が20桁で終了するわけありません。πもそうですよね。
それを馬鹿正直にプログラム内部で使おうとすると、変数の初期化だけでメモリがパンクします。つまりプログラム内部で実数を扱うことは不可能です。だったらどうするのか。十分小さい数値部分を誤差として近似表現をして、実数を扱います。

0.7は本当に0.7?

あくまで近似でしかない数値ですから、もしかしたら0.7の実情は0.6999999999...かもしれないし、0.70000000001かもしれません。つまり最初のプログラムは

0.699999+0.1000000=0.7.99999999
0.7.99999999*10=7.99999999
floor(7.99999999)=7

こんなことになっていたんですね。

まとめ

実数はプログラム上では信用しちゃだめ。ソフ開もってますが、所詮こんなもん。資格はあてにならない証拠ですね。

c#でアドレスを意識するとき

サンプルのソースをみていて、GCHandle.Allocというのが出てきて面食らいました。いったい何をやっているんだろう?そこで色々調べてびっくり。
C#ではGCなどの働きにより、アドレスは絶えず変動してる様なのです。これではポインタとっても仕方が無い。
そこでGCHandleを使います。と、引き続き調べて書こうとしましたが、
ぬるり。
VarPtr, StrPtr, ObjPtr関数の代わりになるものは? - .NET Tips (VB.NET,C#...)
より詳しく分り易くすべてかかれています。とっても参考になります。

まず、できればunsafeは避けたいものです。アセンブリごとunsafeになっちゃうし。

へぇ×5(古い)

c# vs Mysql

select * from xxxx;

で取得しようとするとエラーでる。

select a from xxxx;

だと大丈夫。なぜ?と思って調べたらなんと、c#mysqlのdatatime型のフォーマットが違い、変換できずにエラーになるらしい。何じゃそりゃ、、、、