きょこみのーと

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

Go

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…

alfred-esa-workflowに検索結果から正規表現で文字列を抽出するコマンドを追加した

github.com 昔作ったこれに久しぶりに機能を追加しました。 何故作ったか? 日報に 良かったこと/悪かったこと/所感 などを毎日書いていて、2週間ごとの振り返りで漁ったりしてたんですが、いい感じに抽出したいな〜というモチベーションから機能追加しまし…

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…

werckerでprivate repositoryを含むglide installする方法

手順 glide.ymlでsshのURLを指定する wercker上でApplication Environmentか Organization settings Environmentで + Generate SSH Keys してssh keyを環境変数に登録する 「2.」で登録したssh keyをgithub上の Settingsの SSH keys で登録する wercker.yml…

Webラジオのm3u8をdownloadしてffmpegでmp3に変換するツールをGoで書いた

2016/12/15 23:06 追記: ちなみにffmpegでm3u8 -> mp3変換はできますが、実行時間が20分以上かかって待ってられなかったのでBulkDownloadが含まれてます。 あとm3u8のURLが推測難しく、いちいちブラウザ開いてplaylistをダウンロードして中身のmedia playlis…

Amazon Lambdaにデフォルトでインストールされているライブラリを最新にして使う方法の1つ

業務でAmazonLambda上でPDFを画像に分割処理を実装したのですが、その時ghostscriptのVersionが古くて、 特定のPDF変換でエラーになるという現象でハマったのでその時調べたことと、 対応策を紹介したいと思います。 前提 Apex (Go)で動かしてます ImageMagi…

Lambda x Apexで、Goで書いたラムダ関数を楽に動かす

業務でAmazonLambdaを使う機会があり、Apex(Go)を試していい感じだったのでその紹介とハマりポイントを幾つか紹介しようかと。 github.com 導入 すごく簡単で、 https://github.com/apex/apex#installation に書いてある通りインストールして apex init で…

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…

GoConでGoで作った拡張しやすいSlack botについてLTしてきた

拡張しやすいはず・・・ 最初はkyokomi/gomaの話にしようかなと思ったけど、LT駆動開発キメたろうと思って、slack bot作ることにした。 LTであまり時間無く、ざくっと概要とデモ見せる感じで終わったので、exampleとか詳細を書こうと思います。 実際に実行す…

GWにGo言語で作ったMeetAppというサービスの開発記録

GWに2〜3日くらい本気だして、MeetAppというサービスをリリースしました。 フロントエンド&企画をやっていただいた@tejitakさんのブログに大体の概要が書いてありますので、こちらを併せてご覧いただければと。 GWハッカソンでMeetAppという趣味アプリ開発…

CircleCI上でMySQLとPostgreSQLを扱ったtestを行う

先日Gunosy.go#12でLTしたkyokomi/gomaですが、 CircleCI上でDBを利用してgo generateとtestの実行を行っています。 kyokomi/gomagithub.com たぶん公式ドキュメント見ればわかると思いますが、 サクッとやりたい人向けにCircleCI上でMySQLとPostgreSQLを利…

React.jsのチュートリアルをGoで動かしてみた

React.js入門しました。とりあえず動かしてみたレベル。 (とりあえず触る&ソース読んでよくわからない点とかメモってから、概要とか読む派なので。。。) 公式(英語) http://facebook.github.io/react/ チュートリアル(英語) https://github.com/reactj…

Goのテンプレート言語egoを使ってみた

golangのtext/template最近ようやく慣れてきたけど、 やっぱり{{}}が増えてくると辛いので、他のパッケージに手をだしてみました。 egoが触った中で一番しっくりきたのと、一通り色々なことができそうな気配を感じたので気に入りました。 benbjohnson/ego be…

go-bindataをgo:generateで実行する

この手の生成ツールはgo:generateで、まとめて実行するようにすればMakefileとか書かなくていいので幸せになれそうです。 go-bindataの使い方とかは以下などを参考にしていただければと。 アセット的なアレを実行バイナリ内に入れる話。 アセット的なアレを…

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 ├…

golangでjson用のstructを生成するGo製ツール(gojson)

Go

Goでjsonのデータを扱う機会は多いのですが、 その度にjson:"hogehoge"を書くのがめんどくさいなーと思ってました。 jsonのI/Fが決まってるならそこからgoのコード生成すればいいかなと思い、作る前に類似ツールがないか調べていたら、すでに丁度いいのがあ…

Go lang勉強会に参加した感想

http://connpass.com/event/7814/ はじめに Goはまだ入門して1〜2ヶ月くらいで、まだまだ初心者な感じで参加して大丈夫かなーと思ってましたが、とてもためにな話をたくさん聞けて参加できてよかったです。 場所や軽食などをご提供頂いたHDE様にも感謝です!…

golangでLevelDBを使う

golangでDBを扱うついでに、まだ触ったことがなかったLevelDBについでに触れてみました。 LevelDBについては、こちらの記事がとてもわかりやすかったです。 勉強になります(T_T) LevelDB入門 (基本編) - from scratch ライブラリ LevelDBのクライアントは、…

Go言語で絵文字のパッケージつくった

Go

最近Go言語はじめたのですが、とりあえずみんな大好きな絵文字で遊ぼうと思ってGoDocとかGoWalkerを漁ってみても見つからないので、自分で作りました。 emoji - GitHub emoji - GoDoc emoji - Go Walker 最初は、ビールとピザとプリンしか対応してなくて(マ…

Intellij IDEAでGo言語使うとき

色々ハマったので残しておく。 GOPATHとGOROOTが無いと怒られる Ideaでgoのプロジェクト起動したときにGOPATHとかGOROOTが無いとか言われたら以下の通りにsetenvやれば解決する。 https://github.com/go-lang-plugin-org/go-lang-idea-plugin/blob/master/Mi…