プログラミング所感 - 前へ 目次 次へ


12/01/05(木)

サモアは2011/12/30が存在しなかったそうだ。つまり、29日の次が31日だそうだ。 これは日付変更線を変えたために起こったことのようだ。

12/01/19(木)

標本の必要なサイズについて。
国民の意識をアンケートで確認しようとしたときに、全国民にアンケートを答えてもらう必要はない。 ごく一部の人だけでよい。では何人か?統計では、全国民を母集合、アンケートに答える人を標本集合とみなす。
問題を、次のようにする。「ある母集合の平均値を小数点以下 N 桁で求めたい。 このとき必要な標本数はいくつか? ただし、標本は無作為に得られるものとし、信頼度は95%とする。」
これを確かめるプログラムは、下記のようになる。
for (int i = 1; i <= 3; ++i)
  Console.WriteLine("{0} {1}", i, CalcN(10, i, 0.95));

static int CalcN(double v, int dec, double rel)
{
  var t = DistributionFunction.NormInverseCDF(1 - (1 - rel) / 2);
  var x = 2 * t / Math.Pow(10, -dec);
  return (int)Math.Round(v * x * x);
}
まず、必要な標本数は、一般にある程度大きい(10以上)。 このとき、標本は無作為なので、平均の分布は大数の法則からほぼ正規分布となる。 従って、信頼区間はスチューデント分布から計算できるが、同じく標本数が十分大きい(1000以上)と 仮定するならば、正規分布を用いてもよい。
また、正確に小数点以下N桁とすると、平均の値により必要標本数がばらつく。 (例えば、3桁欲しいときに、母集合の平均が100.1230と100.1235では何倍もの差になる)
そこで、ここでは信頼区間の幅がN桁目が1の値以下ということにする。 例えば、3桁ならば、信頼区間が 0.001 以下でよいとする。 これは、N桁目に誤差が1あってもよいということである。
こうすると必要標本数は、約「1.54×10^(N*2+1)*母集団の分散」である。 例えば、母集団の分散が10の時に信頼度95%の信頼区間を0.1以下にしたいなら約15400個の無作為な標本が必要となる。 通常母集団の分散は不明であるが、十分大きな標本集合の不偏分散を使えばいいだろう。

12/01/31(火)

DataGridViewで はまったこと。任意のクラスをDataGridViewの行に結びつけて、 クラス定義で表に表示するしないを属性で指定していたら、 うまくいくときと行かないときがあった。 具体的には、DataGridViewのDataSource(BindingSource)のCurrentから該当クラスの型を 取り出していたが、表が空だとCurrentも空となり失敗していた。 そこで、Genericsでコレクションの型(Type)を取り出し、GetGenericArgumentsで内容物の型を取り出すようにした。

12/02/01(水)

日本語音声での読み実行。 .NetFramework3.0から音声合成、音声認識ができるが標準で日本語が入っていない。有料で買うのもできるが、無料でもMicrosoftから出ている。 以上の準備後、.NetFramework3.0以上で、System.Speechを参照追加し、下記のようにできる。
var syn = new System.Speech.Synthesis.SpeechSynthesizer();
syn.SelectVoice("Microsoft Server Speech Text to Speech Voice (ja-JP, Haruka)");
syn.Speak("こんにちは");

12/02/16(木)

VS2010のTIPS。 複数タブのなかに複数表をsplitContainerで作成していると、 あとから、表を追加すると大変なことになる。VSのバグなんだろうけど、回避方法を見つけた。
これまでは、splitContainer1, ...2, ...3と名前をつけてたが、 splitContainer1_1, ...1_2, ...2_1, ...2_2とタブ毎にサフィックスをつけたらうまくいった。 ようするに、名前の変更をしないようにしたらうまくいった。

12/03/01(木)

突然ネットワークが不調に なったが、ハブのポートを変えたら直った。 昨日、納品3つ終わった。3月に学会等の発表が5件あるが、どれも発表資料は準備していない。2つは、スピーカーではないが。

12/03/14(水)

熟々と。 YAGNIで検索して出てくるブログを読むと、自分の考えと結構違う。 YGANIもKISSも保守性を重視していると思うからだ。 絶対保守しないんだったら、(バグさえなければ)複雑だろうが機能てんこ盛りだろうが関係ない。

「動けばいい」は確かによくないが、「動かない」プログラムは、もはやプログラムではない。動いてナンボ。

見積りは、価値と費用で決まる。開発の大きな費用は作業時間だ。 プログラム開発の作業時間を予測する検証を、多くの課題で実際に時間を計ってやってみた。 課題の難しさと作業時間は相関があるが、それだけで十分な予測はできない。 最も相関が高いのは、バグの数である。しかし、バグの数を予測するのは難しい。 同じ課題を同じ人がやっても大きく変動する。


12/03/16(金)

ダークソウルで、 4人の公王が鬼畜の強さなんだが、1週目をソウルレベル(SL)1で、2週目をSL6で、3週目をSL8で倒した。 SL8では、技量を12に記憶を16にしているが、技量は攻略用なので、公王にはいらない。記憶は、大力+大発火3のため。 やり方は、宵闇+吠える+大力+大発火だ。ちなみに2週目までなら数回倒している。

12/03/21(水)

ダークソウルで、 全防具を最大強化した。大量の楔石の塊を使った。

12/03/22(木)

k-shortest pathで、 MPS法というのがある。ノードを複製していくときに、アークは増やさない実装とアークを増やす実装をしたら、 アークを増やす方が早かった。ちなみに、格子状の100万ノードで10本求めるのに5秒くらいだ。 普通に実装するとループの経路がみつかる。もっといい方法があるのかも。

12/04/06(金)

プログラミング歴 30年に。システム開発よりはアルゴリズム構築に興味がうつりつつある。 仕事でソルバ使う機会も増えたし、ソルバを使わずにやることも多い。 大学の研究と違うのは、ビジネスで効果が出ることが目的となることだ。

12/04/10(火)

ブログから。
http://brevis.exblog.jp/17732971/
プロジェクトは不安定なもので、よくなる一方か悪くなる一方かというもの。 これが正しいならば、悪いと思われるプロジェクトは、速やかに手を引くか過剰気味に手当をした方がいいということになる。 私は主に中小規模案件(数百万〜数千万)を百以上やったが、中間のも、両者を振れるのもあったと思うが、対応策としてはいいかも。

12/04/17(火)

クルーグマン教授の経済入門を読めば、 今、政府が何をすべきかわかる。この記事も正論でわかりやすい。
http://agora-web.jp/archives/1448601.html

12/05/11(金)

Press Enterの話が面白い。 コメントも白熱している。私の意見と違う意見も多い。開発案件を開発側からしたことがないと、淵上氏のマイナス面を理解していないと思われる。

12/05/31(木)

プログラマの仕事について。 世界のことはよく知らないが、日本では、プロのプログラマは減っていると思う。 プロのプログラマは言いにくいので、単にプログラマと呼ぼう。プロでないプログラマはアマグラマと呼ぼう。 アマグラマは増えているかもしれない。プログラマは減っている。昔のプログラマの作品と今のアマグラマの作品は、 見栄えだけみても見分けは難しいかもしれない。 プログラマは、専門知識が必要であり工芸家だ。アマグラマも作品は作れるが、作品の品質は高いとは限らず、 作品作成で使われるフレームワークの開発はできない。
何度も言うが、プログラマは高給であるべきだし、そのためには、頼む方がわかりやすいしくみがいるのかもしれない。

12/06/06(水)

大学のプログラミング演習の 課題を見つけた。
http://www.swlab.cs.okayama-u.ac.jp/~nom/lect/p2/
3ヶ月以上かけてやるらしい。試しにやってみたら9分だった。
他の大学の応用プログラミング演習の課題が「Hello world!」だった。
今日から出張。

12/06/26(火)

時間経つのが早い。 休みもとれない。忙しいのに全然儲かっていない。

PressEnter「冷たい方程式」。下請け切りのためにマイクロマネジメントしてたとは気づかなかった。


12/06/29(金)

年度終わり。 ダークソウルで、SL1で2週目公王撃破。フレに手伝ってもらったが。

12/08/14(火)

PC変えた。 リーダブルコードを読んでいる。 ほとんど、当たり前のことだが、当たり前のことを文書化するのがいいのだろう。

12/08/27(月)

Git勉強中
https://github.com/Tsutomu-KKE

私用のソフトのソースをDropBoxに置くようにした。 家でも会社でも同一ソースで更新ができる。
蔵書管理データをDropBoxに置くようにした。家でも会社でも同じように使える。 ただしバックアップはDropBoxではなくローカルにしてある。 家で更新すると家のPCにバックアップが、会社で更新すると会社のPCにバックアップができる。 (つまり3カ所にデータがある) スケジュール、ToDoをDropBoxに置くようにした。以下略。


12/09/20(木)

反日デモ は、政府に踊らされている気がする。そういう政府の相手をする気がしないのは私だけだろうか。

12/09/24(月)

一息ついた。 今週、4日間学会だ。

12/09/26(水)

Tポイントカードは、 違法のように思える。
http://takagi-hiromitsu.jp/diary/20120923.html

岡崎市立中央図書館事件で、市と県警は謝罪すべきだと思う。名誉毀損で訴えたら勝てるんじゃないだろうか。


12/10/01(月)

Excelのマクロ (C#)で「Border クラスの LineStyle プロパティを設定できません」とでることがある。 これは、LineStyleより先に、ColorIndexを0(黒)に設定すれば出ない。ちょっと調べてみたが、同じ結論の人はいなかった。

12/10/04(木)

プログラミング歴は 30年を超えるが、現役だ。趣味でも仕事でも書いている。 「プログラミングを職業にするのは、原価的に難しい」という話もあるが、 私の場合、営業から保守までやっていてプログラミングだけしているわけではない。心はプログラマだが。
仕様通りのコーディングだけでクリエイティブでないという話もあるが、 私の場合、営業から入るので十分クリエイティブだ。 さらに、給料をもらいつつ、業務に関係しそうなことを好き勝手にプログラミングしている。 成果は、6.3万行あり会社で販売している。

http://d.hatena.ne.jp/Kazzz/20121002
http://el.jibun.atmarkit.co.jp/career/2012/10/214-it-67e9.html
http://www4.kke.co.jp/orsim/ORTOOLBOX_library.html

過去メールの容量が大きくなるのが嫌いだ。 ファイルを添付するのではなく、DropBoxのpublicに入れてリンクを送ってくれればいいのにと思っている。 でも、メーラで複数メールの添付ファイルを一括して削除する方法を見つけたので、とりあえず容量削減はできている。


12/10/23(火)

私のいる部署は、 専門知識を利用した高付加価値ビジネスだが、この専門知識は入社時に持っている必要はない。 実際、ほとんどの配属された新入社員は持っていない。
新入社員のかなりの割合は、ドロップアウトして他部所や他社に行ってしまうが、専門知識を持って入社したかどうかはあまり関係ないと思われる。
以前は、好奇心の有無による差だと思っていたが、もっとはっきり関係があるものに気づいた。
それは、能動的か受動的かである。入社時に専門知識を持っていないのだから、身につける必要がある。 このとき、会社が教えてくれるのが当然と思っている人は、絶対、伸びない。 自ら積極的に調べて実践する人でなければ、この部署で必要な専門知識は身につかない。 業務に必要な知識体系、習得方法は会社が整備すべきであるが、完璧にはほど遠い。 自分で身につけるのが会社の常識とは言わないが、実質上、受け身のままでは仕事はできないままとなる。

12/11/12(月)

確率の話
クレオパトラの最後の吐息の一部を今あなたが吸い込む確率に驚くべき
http://readingmonkey.blog45.fc2.com/blog-entry-632.html
話としては面白いが、仮定(ある分子が選ばれるかどうかは、分子ごとに独立)が間違っている。

12/11/13(火)

Tangram 作った。
http://plaza.harmonix.ne.jp/~fakira/turedure/Tangram.zip

12/12/03(月)

VS2010にPython Toolsを 入れて Python をやっているが、なかなか楽しい

12/12/06(木)

lenovoの G580を買ったが、安くて早い(Core i5-3210M)
http://www.amazon.co.jp/dp/B0088QXT92/

12/12/13(木)

Galaxy S2を Android4.0.3にしたのだが、何もアプリ起動していないのに発熱してバッテリがすぐなくなることが、2回起きた。 おそらくOSのどこかで無限ループになっているのだろう。リリースしてはいけないレベルの不具合だと思う。

プログラミング所感 - 前へ 目次 次へ