おふくろさまより愛をこめて

mmmpa ふとしです。誠実なプログラミングを心がけたい。

golang entries

2018/08/29 05:37:39

並行コンピューティング技法という本をやり終えました。

夏季休暇中 (8/11 - 8/19) の課題としてはじめた 並行コンピューティング技法 ―実践マルチコア/マルチスレッドプログラミング という本を、先日ようやくやり終えました。 久しぶりに技術書的な本を一冊やりおえたので、本の紹介や思い出日記を書きます。 今回の学習について なぜやろうと思ったか。なぜわたしに必要だと思ったか。 仕事では Ruby、JavaScript

2017/10/21 06:21:37

goroutine と channel を復習する

いろいろ考えて golang を第 2 言語として全振りすることに決めたのでちゃんとやっていこうと思います。 わたしは web application をつくるのがナリワイなので非同期処理を並列に行うことが多い。したがって goroutine を使う場合も終了タイミングが読めない非同期処理を扱う場合が多いので、それを想定して goroutine の使い方を復習します。 参考 以

2017/10/15 09:46:39

手元に The Go Playground 的な環境を用意しておく

The Go Playground https://play.golang.org/ は便利ですが、IDE の補完に頼り切りのわたしにとっては逆に挙動の確認に時間がかかる手段となっています。 そこで fsnotify で保存ごとに実行してくれる main.go を用意してシュッと確認できる環境を用意しています。これを走らせた上で同 directory 上にファイルを配置すると勝手に走らせ

2016/12/12 05:47:02

top コマンドで得られる結果をどう見ていけばいいのかわからないので、とりあえず視覚化した

もともと一つの処理であるとか、一つのメソッドであるとかの処理時間には興味があって、測定などをしていました。ActiveRecord を使うにあたって発行クエリを抑えることにより、本当に早くなるのか確かめたりするのがすきです。 全体的なパフォーマンスを測定し、改善に繋げる知識がない そういう局所的なものは何度もまわして処理時間を取って、という方法でなんとなく測定をできるのですが、Web

2016/12/03 05:35:13

Go 言語でつくったもののメモリとかをなんとなく見れるようにする

pprof を用いた詳細な情報を得る方法はさんざん紹介されており、しかしその詳細の情報のどこを見ればいいのかわからないので、とにかく簡単に見れるような施策を打ってみました。 これは社の Slack で動いてるボットの一つの強制停止画面ですが、ボットは継続して動いているので、メモリリークなどが気になるところです。ということで、グラフかつ、前後の増減がスッと把握できるようにしました。(

2016/11/24 04:28:48

Go 言語で struct を url.Values に展開した

現在勉強用に作っているボットでは、Slack の API を使います。勉強用なので、ライブラリを使わず、独自に実装しています。API ではエンドポイント毎にさまざまな要求パラメーターがあって、その引数を自由な形式にすると間違いのもとになるので、専用の struct を用意して間違いが起こらないようにしています。 func (a *API) ChatPostMessages(p ChatPo

2016/11/23 20:13:24

Go 言語でつくったボットを GitHub -> CircleCI -> Bluemix と自動デプロイできるようにした

Golang でのボット作成では、1 個目は自 PC で動かすことしか考えていませんでしたが、2 個目はきちんとどこかにデプロイすることを目標に作成していましたので、ついでに自動でやれるようにしました。 Heroku では 24 時間稼働のボット用途には不向きだと思われたので、IBM Bluemix にデプロイ先に選びました。Bluemix もデフォルトで Golang をサポートしていま

2016/11/20 15:02:08

Slack で動いてるボットの処理が長い場合、フィードバックとしてインジケーターを出すということをやった

いま golang の練習用に作成しているボットには、URL をわたすと、そのサイトのキャプチャを撮影する機能があります。諸事情からボットのいるマシンとは別の場所、Heroku に設置していますが、起動が遅かったり、キャプチャ自体が遅かったりするので、ちゃんとやっていってるのかわかりません。そこで、ローディングインジケーターを出すことにしました。 できあがり 「こはる」とは社