golang

GolangでHTTPサーバのモックを使ってテストを実行する。

GolangでHTTPリクエストを投げるクライアントを実装した場合に、任意のレスポンスを返すサーバのモックを利用してテストを実行したい。 Golangの標準パッケージのnet/http/httptestを使うと、任意のレスポンスを返すモックを定義できる。 net/http/httptest…

Golangでクロスコンパイルをする。

Golangでクロスコンパイルを試した時のメモ。 OSXでLinux64bitのバイナリをクロスコンパイルした。 クロスコンパイルできることは知っていたけれど、実際に動作すると感動する。 環境や方法は@Jxck_さんの記事がわかりやすかった。 Go のクロスコンパイル環…

Golangでバンディットアルゴリズムを実装した。

以下の書籍を参考にGolangでバンディットアルゴリズムを実装してみた。 書籍に載っているEpsilon-Greedy、Softmax、UCB1を実装してから、Epsilon-GreedyとSoftmaxはAnnealingを追加してみた。 書籍ではPythonでtsvファイルを生成してからRで可視化しているけ…

GolangでRSSをパースする。

以下のライブラリを使ってGolangでお手軽にRSSをパースすることができた。 jteeuwen/go-pkg-rss RSSのChannelとItem用のコールバック関数を渡すだけでOK。 本家のサンプルだとデーモンの用に動くけれど、Fetchを呼び出すだけでも大丈夫だった。

GolangでMeCabを使う。

以下の記事を参考にGolangからMeCabを呼び出してみた。 Go言語から mecab を使う - Qiita オリジナル版だとMeCabの解析結果が1行ずつstringで返ってくるので、表層形などをメンバに持つ構造体を定義して結果を格納するようにした。 yukihir0/mecab-go 名詞の…

GolangでSVMを実装した。

パーセプトロンに続き、SVMを実装した。 書籍を参考に劣勾配法とFOBOSの2つを試してみた。 ただ、書籍の更新式のとおりに実装するとうまく分離できなかったので、更新式を変えている。 学習数や学習率などのパラメータをいじるとうまく分離できないこともあ…

Golangでパーセプトロンを実装した。

Golangでパーセプトロンを実装してみた。 だいぶ大雑把だけれど、うまく動いている様子。 機械学習の理論は複雑だけれど、プログラム的には更新式が肝なのがよくわかった。 効率よく計算させるアルゴリズムも他にあるのだとは思うけれど、単純なものでも自分…

本文抽出モジュールExtractContentのGolang版を作った。

HTMLから本文抽出をするときにはExtractContentが便利でよく使っています。 Rubyのバージョンが1.9になったときにオリジナルは動かなくなっていて、Ruby1.9に対応したものを公開されている方がいたので、それを使うことが多いです。 今回、ExtractContentの…

GolangでネストしたMapを使う。

GolangでネストしたMapを使おうとしたけれど、ちょっと手間取ったのでメモ。 結果的には以下のようにして使うことができた。 data["hoge"]["fuga"] = 1のように代入したい場合は、あらかじめdata["hoge"]を初期化しておかないとエラーになる。 data["hoge"] =…

Golangで作ったWebアプリをHerokuにデプロイする。

Golangで作ったWebアプリをHerokuにデプロイする方法を調べたので、自分用メモとして残しておきます。 @deeeetさんのブログ記事がわかりやすかったです。 HerokuのBuildpackを使うだけでよいのでお手軽でした。 つまづいたところとして、Godepで依存関係を保…