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]。
- モンテカルロ法で計算したところ[*3]ランダムに生成した12桁の番号がマイナンバーっぽい番号になるのは約8.1%の確率です。
- またマイナンバーは11桁つまり100億の範囲を表せます。
- さてパソコンでは様々なデータを扱っていることから、記憶されるデータはランダムと仮定できます。
以上のことから一般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
動的に言語仕様が変わるプログラミング言語Morpの公開
動的に言語仕様が変わるプログラミング言語Morpを公開しました! http://mcmp.dip.jp/morp.html