golangのレポジトリを眺めていてたらカーニハンが1972年にコミットしてた。

プログラミング言語を作りたいのでgolangやらswiftのレポジトリで言語の始まりかたを調べていたら、
golangのレポジトリの始まりが下のログだった

commit 7d7c6a97f815e9279d08cfaea7d5efb5e90695a8
Author: Brian Kernighan <bwk>
Date:   Tue Jul 18 19:05:45 1972 -0500

    hello, world
    
    R=ken
    DELTA=7  (7 added, 0 deleted, 0 changed)

なんとカーニハンさん1972年にコミットしています。

まあ実際の始まりは以下のコミットだと思うんですが、

commit 18c5b488a3b2e218c0e0cf2a7d4820d9da93a554
Author: Robert Griesemer <gri@golang.org>
Date:   Sun Mar 2 20:47:34 2008 -0800

    Go spec starting point.
    
    SVN=111041

わざわざgitのログをこうなるように編集したのかなと想像すると遊び心を感じて面白いですね。

マイナンバーのせいでパソコンが修理できない

マイナンバーが記憶装置に入っている場合修理できないそうです[*1]。

  1. モンテカルロ法で計算したところ[*3]ランダムに生成した12桁の番号がマイナンバーっぽい番号になるのは約8.1%の確率です。
  2. またマイナンバーは11桁つまり100億の範囲を表せます。
    1. 日本の人口が約1億なので上記マイナンバーっぽい番号の約1%が実在の人物のマイナンバーになります。
  3. さてパソコンでは様々なデータを扱っていることから、記憶されるデータはランダムと仮定できます。
    1. マイナンバーは40bitで表せ、そのため100GByteのハードディスクには200億個マイナンバーが記憶できます。

以上のことから一般PCに実在の人物っぽいマイナンバーが1個たりとも入っていない確率は...
(1-0.081*0.01)^200億=0.000....
限りなく0です。


#ヤベー修理できねー

[*1]「マイナンバーが記録されているPCの修理はできない」ということで各社の規約が続々と更新中
http://gigazine.net/news/20160524-my-number-data-pc-attention/

[*2]下記を作る際の参考にした
http://qiita.com/qube81/items/fa6ef94d3c8615b0ce64

[*3]
https://github.com/bottlenome/tiny_utils/blob/master/mynumber/mynumber.py

Open Dynamics Engineを簡素化するC++ラッパ

Open Dynamics Engine通称ODEを簡素化するラッパみたいの書いたよ。

https://github.com/bottlenome/easyODE

ボールを落とすだけだけでも↓のサンプルだと
http://demura.net/tutorials/ode6
94行もあるけれど

easyode.hをインクルードするだけで
これだけ

#include "easyode.h"

int main (int argc, char **argv)
{
  Simulator& sim = Simulator::getInstance();
  sim.regist("Sphere", Sphere::create(0.0, 0.0, 1.0, 1.0, 0.2));  
  sim.simulate(argc, argv, 400, 300);

  return 0;
}

で同じことができる!
ちょっと便利
ぼちぼち機能追加していくつもり

eclipsecoderが動かなくて困っている人へ

最新のarena-client-7.0.x.jarを持ってきてarena-client-7.0.0.jarにリネームして入れれば直ります

arena-client-7.0.x.jarの場所
http://www.topcoder.com/contest/classes/7.0/arena-client-7.0.x.jar

現在の最新
http://www.topcoder.com/contest/classes/7.0/arena-client-7.0.3.jar


入れる場所
windows:
C:\Users\<ユーザ名>\.eclipsecoder
mac,linux:
~/.eclipsecoder

参考:
http://apps.topcoder.com/forums/?module=Thread&threadID=515433&start=60&mc=61

テストケース保存

pythonでhtmlをはくようなコードのテストケースを作るのが面倒でこんなコードを書いてみた。

1回目の出力を正解として2回目以降は出力を保存する

inspect.currentframe().f_back.f_code.co_name
とかやると呼び出し関数名を取ってくれるから
testCase01とかいうファイルができる

一般的にはどうやるのだろう?
フレームワーク使ってないから一般的なとこわかりません!

import unittest
import os.path
import inspect

def resultTest(instance, html):
  path = "./testResult/" + inspect.currentframe().f_back.f_code.co_name
  if os.path.exists(path):
    result = open(path).read()
    instance.assertEqual(html, result)
  else:
    open(path, 'w').write(html)
    print "create file " + path