すごいHASKELLたのしく学ぼう!とLearn You a Haskell for Great Good!

KindleですごいHASKELLたのしく学ぼう!が売っていたので買った.
日本語訳である.

私が持っているAndroid tabletはioPad6Lといういわゆる中華パッドで,そのせいか乗数やその他の数学記号がうまく処理できず文字化けの豆腐が表示されている.
iPhone版のKindleアプリではちゃんと表示されているし,まぁフォントとかそのへんだと思う.

そんなこともあり英語版のLearn You a Haskell for Great Good!を読むこととなった.
実は英語版は公開されている.
http://learnyouahaskell.com/

英語版と日本語訳を読むと日本語訳は訳注が追加されていることに気づく.
例えば以下のページの末尾,直角三角形の三辺の長さを求める問題.
http://learnyouahaskell.com/starting-out

We'll also modify this function by taking into consideration that side b isn't larger than the hypothenuse and that side a isn't larger than side b.

と正しい直角三角形の性質について説明されている.
ここが日本語訳では

次に,ピタゴラスの定理(a^2+b^2==c^2)が成り立つかを調べる叙述を追加して,直角三角形でないものをフィルタしましょう.また,aが斜辺cを超えないように,bがaを超えないように,それぞれ変更を加えます.

ここでコードを挟み以下に続く.以下は英語版では無い.

リストのレンジをどんなふうに変更したかに注目してください.bが斜辺より長いような不要なトリプルを調べないような変更をしています(正しい直角三角形は必ず斜辺が一番長いのです).
また,辺bが辺aを超えないようにしています.このように変更しても問題ありません.なぜならば,

以下2ページ位続く.

こんなかんじで日本語訳のほうが比較的親切である.
無料で公開してるのが2800円するの…と思ったが日本語訳買って損はしないんじゃないかなぁと思う.

#豆腐で表示されるしiPad買うか〜

BitbucketからCloudBeesのJenkinsのビルドを実行する

BitbicketのプロジェクトにpushにしたらCloudBeesのJekinsをBuildを実行する設定.

  • CloudBees側の設定

各プロジェクトの「設定」を選択
「ビルド・トリガ」の「リモートからビルド」にチェックを入れます.
認証トークンに好きな文字を入れます.
f:id:YuK_Ota:20121209005032p:plain
保存します.

  • Bitbucket側の設定

設定を選択
f:id:YuK_Ota:20121209010032p:plain

「Select a service...」からJenkinsを選択,追加します.
Tokenはビルド・トリガに設定した認証トークンを入力します.
Project nameはJenkinsのプロジェクト名です
EndPointはhttps://your-email:your-password@username.ci.cloudbees.comです

CloudBeesのJenkinsプロジェクトのurlが以下の時
https://hoge.ci.cloudbees.com/job/fuga/
Project nameがfuga
EndPointはhttps://your-email:your-password@hoge.ci.cloudbees.com
になります.
your-emailの@は%40に置き換えてください.
f:id:YuK_Ota:20121209010747p:plain
Saveします.

後はpushすればbuildが走るはず.

CloudBeesのwikiだとEndPointのusernameはapitoken使えと書いてあるがこれだと認証で蹴られる.
http://wiki.cloudbees.com/bin/view/DEV/Bitbucket

最小二乗法による線形回帰

Scipyを使った最小二乗法による線形回帰
datasetは[(second,value),…,(second,value)]
な形式

seconds =[]
works = []
for datum in dataset:
    seconds.append(datum[0])
    works.append(datum[1])

#1次式でフィッティングする.フィッティングしたい式を書く            
fitfunc = lambda p, x: p[0] * x + p[1]
errfunc = lambda p,x,y: fitfunc(p,x)-y
#初期値.なんでも良い.
p0 = [0,0]
self._p1,success = scipy.optimize.leastsq(errfunc,p0,args=(array(seconds),array(works)))        

fitfunc(self._p1,x)が得られた式.

Tidy

HTMLのフォーマッタにtidyを使う.
tidyからfolkしたtidypが新しいらしい.
といっても最新が2010年.
HTML5には対応してません.
http://www.tidyp.com/

tidypをbrewからインストールする.

sudo brew install tidyp

いちいちコマンドラインからtidyを打ち込むのはだるいのでvimと連携させる.
.vimrcに以下を追記する.

autocmd FileType html :map ty <esc> :!tidyp -i -quiet -raw -modify "%"<CR>

これでvimのコマンドモード中でtyと打つとコードが自動整形される.
たとえばこれが

<html>
<head>
<title>Dipint</title>
</head>
<body>
test
</body>
</html>

こうなる

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">

<html>
<head>
  <meta name="generator" content=
  "tidyp for Mac OS X (v1.04), see www.w3.org">

  <title>Dipint</title>
</head>

<body>
  test
</body>
</html>

tidyとかジジイすぎwwwwwナゥなヤングはこれ使ってるぜってのがあったら教えて下さい.

Robocup 3Dシミュレーション シミュレータmake on MaxOSX Lion

MaxOSX LionにRobocup シミュレーション3Dの環境を入れる.
とりあえずmakeが通るとこまで.

Simsparkのインストール
まず必要なライブラリをインストールする
boost

sudo brew install boost


ode

sudo brew install ode

DevIL(OpenIL)
brewからではILUT_LIBRARIESが入らないのでmakeする.
そういうわけでmakeする.
http://openil.sourceforge.net/
makeする前にソースをいじる.
/src-ILU/ilur/ilur.c
include部分のmalloc.cを

include<malloc/malloc.c>

に書き換える.

./configure --enable-ILU --enable-ILUT
make
sudo make install


wxWidgets
wxMac 2.6.4ダウンロード
SDKs/MacOS10.7.sdkだとうまくいかなかった.

../configure CFLAGS="$arch_flags" CXXFLAGS="$arch_flags" CPPFLAGS="$arch_flags" LDFLAGS="$arch_flags" OBJCFLAGS="$arch_flags" OBJCXXFLAGS="$arch_flags" --enable-unicode --enable-debug --disable-sharedmake -with-macosx-sdk=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.6.sdk
make
sudo make install


FMOD
FMODの公式からFMOD Ex Programmers APIのMac版をダウンロードする.
http://www.fmod.org/index.html
解凍後,パスを通す.
パスは解凍したディレクトリにあわせてください.

export FMOD_INCLUDEDIR=/Users/hoge/bin/FMOD\ Programmers\ API/api/inc


SDL

sudo brew install sdl


Simsparkをダウンロードする.
http://sourceforge.net/projects/simspark/
現時点のバージョンは0.2.2

適当なところで解凍する.
回答したフォルダ内(simspark-0.2.2)で作業

mkdir
cmake ..