きょこみのーと

技術に関係ないほうのブログ

golang

goa v3をそろそろ検証してみる

はじめに github.com 今回は以下について とりあえず触ってみた & 感想 Middlewareについて調査 Panic時の挙動とPanicをMiddlewareでハンドリングする とりあえずGetting Startedを参考に触ってみた https://goa.design/learn/getting-started/ 見ながらやっ…

Go言語による並行処理

Go言語による並行処理作者: Katherine Cox-Buday,山口能迪出版社/メーカー: オライリージャパン発売日: 2018/10/26メディア: 単行本(ソフトカバー)この商品を含むブログを見る 感想だけシュッと書きます。 今までなんとなく使ってたgoroutineやcontextのCa…

goa勉強会 in 六本木一丁目でLTしてきましたので内容の補足など

istyle.connpass.com LTしてきました。色々学びあって楽しかったです。 会場提供のistyleさんありがとうございました。 少しだけ補足説明とexampleコードを書いたので紹介しようと思います。 LTした資料 speakerdeck.com 注意点 goとgoaについてすでにある程…

gormのCallbackをつかってexplain結果をログ出力する

はじめに explainは基本的に実装時に自分で叩いてると思いますが、dev環境とかそこそこデータとか利用頻度が高い環境で雑に垂れ流したいなーと思ってgormのDebug実装を眺めていたらCallbackという仕組みがあったので、それを使ってみました。 作ったもの git…

esaのAlfred WorkflowをGoで作りました

作ったもの github.com とりあえずtokenとチーム名を登録して記事を検索できるだけです。 注意点 ちなみに、esaのAPIは利用制限があるので検索しすぎにご注意ください https://docs.esa.io/posts/102#2-3-0 現時点では、ユーザ毎に15分間に75リクエストまで…

昔作ったgaego-initをglide対応した

github.com gaego-initとは以下のように、GAE/Goの開発環境をコマンド一発でgenerateするやつです。 $ gaego-init -app hoge-app $ tree hoge-app/ hoge-app/ ├── Makefile ├── README.md ├── appengine │ ├── app.yaml │ └── init.go └── circle.yml 1 dire…

Arukasを使って無料でGo製のslackbotを運用する

はじめに SlackbotをHerokuで一日中動かすと課金が発生するので色々ハックが必要となったりするので、なんとかしたくArukasに出会いました。 今回は、自分が作ったgo製のslackbotを元につくったbotをgithubにpushしてWercker経由でdockerImageを作ってArukas…

CircleCI上でdynamodb-localを使ったgo testを実行する

はじめに 本当は、dynamodbを呼び出す箇所をinterface化してgolang/mockとかでmockしてtestするほうが良い思います。 ただ、そうもいかない状況とかもあるのでdynamodb-localでtest用のregionを使ってtestする方法を紹介したいと思います。 例)とあるテーブ…

Goのslackbotを改良したのと、プラグイン増やしたので紹介

以前のGoCon 2015 SummerでLTしたkyokomi/slackbotですが、 かなりリニューアルしたので、改めて紹介しようかと思います。 github.com 大きな変更点 x/net/contextの依存をやめた 魔法みたいになんでも出てくる感じで分かりづらかったので importするだけの…

Twitterでお気に入りした画像をランダムで返すGAE/Goアプリをつくった

ランダムで返す部分が雑にキャッシュしてるのはご愛嬌・・・ https://koha-api.appspot.com/v1/api/image 画像はこちらを利用させていただきました。(経験値先生最高です!さっちん絵がほしかった・・・) というわけでお蔵入りじゃから、ツイッター画像と…

Goでlotteryという抽選ライブラリを作った

単なるmath/randのラッパーですが。 もしかしたら他にも似たようなやつあるかもしれませんが、見つからなかったので作りました。 kyokomi/lotterygithub.com 指定した確率 20%の確率で〜みたいな処理をしたいときです。 lot := lottery.New(rand.New(rand.Ne…

docomo APIのGoライブラリ(go-docomo)を作った

docomoのAPIを利用する目的で作ったGo製のライブラリです。 各API叩いてるだけなので、特別なにかやってるとかはないです。 kyokomi/go-docomo kyokomi/go-docomo · GitHub 今のところ以下のAPIに対応しています。 雑談対話 知識Q&A トレンド記事抽出 ライブ…

Go言語でのInterfaceの可視性について

ちょっとハマったのでメモがてらまとめました。 Interfaceも通常のstruct等と同じく先頭が小文字で始まる場合に別パッケージで参照できないという点についてです。 ディレクトリ構成 example ├── factory1 │ └── factory.go ├── factory2 │ └── factory.go ├…