golang

A collection of 9 posts

Search my blog posts with Alfred
alfred

Search my blog posts with Alfred

自分のブログ記事を検索する Alfred ワークフローを作った。 GitHub - lorentzca/alfred-myblog-workflow: Search blog posts. 「前困った MySQL ログインのあれなんだっけ」「Terraform のあれなんだっけ」みたいに以前自分で調べたことを改めて参照したいことがちょくちょくあるので作りました。 ブログ内にも検索用の固定ページはありますが、 Alfred のほうがブラウザを開くまでもなくシュッと使えるのでワークフローにしました。 私のブログは Algolia にインデックスを作っていて、 API で全文検索できるようにしているので、それを叩いている感じです。 Go の Algolia 公式クライアントを使っています。 GitHub

Alfred CircleCI Workflow
alfred

Alfred CircleCI Workflow

CiecleCI のビルドステータス(直近30個)を検索して表示する Alfred ワークフローを作りました。 GitHub - lorentzca/alfred-circleci-workflow: Search and show CircleCI build status. こんな感じで、リポジトリ名やブランチ名、ユーザ名、ビルドステータスで検索できます。まだ and 検索には対応していません…。 アイコンがビルドステータスによって変わります。また、実行ユーザ名、開始時間、ビルド時間も小さく出しています。 選択すると該当のビルド番号の CircleCI

Alfred Mackerel hosts Status Workflow
alfred

Alfred Mackerel hosts Status Workflow

Mackerel に登録してあるホストとホストのステータスをインクリメンタルに検索して表示する Alfred ワークフローを作りました。 GitHub - lorentzca/alfred-mackerel-hosts-status-workflow: Search Mackerel hosts and show host's status. こんな感じで見れます。アイコンの色もステータスによって変わります。選択すると該当ホストのページに飛びます。 似たような Mackerel ワークフローは既にあったのですが、自分の Go の練習のためとホストのステータスをさらっと見れるようにしたい事情があったので作りました。 Mackerel の API は Go のクライアントから叩いています。

Tips of Create Alfred Workflow
alfred

Tips of Create Alfred Workflow

何かしらの API を使ってインタラクティブに結果を返すかっこいい Alfred ワークフローを作るために最低限必要なことを学んだのでまとめます。 API キーを使うとき API を叩くたびに API キーを入力するのは面倒なのでどこかに永続化したいです。 Keyword オブジェクトで文字列を受取り、それを Write Text File オブジェクトでファイルに書き込むことで永続化出来ます。 参照する際は各オブジェクトで $(cat /path/to/apikey) するなり好きに参照すればよさげ。 重要なのは Write Text File の設定項目でどのパスにファイルを置くか決めることです。選べるパスは

Delete Go Map entry and rename Go Map key
golang

Delete Go Map entry and rename Go Map key

Mapの操作を色々する機会があったのでまとめてみます。 The Go Programming Language Specification - Map_types それぞれのセクションごとに動作するコードのリンクがあります。play.golang.org上にあるので、その場で実行することができます。 ゴール pathみたいに/区切りの文字列をキーとして持っているMapに対し、特定の条件を持つキーを削除したり、キー名を変更する。 普通はそんなこと意識しないようにMap作っていくと思うんだけど人生は長い。Mapのキーをごにょごにょしたいときもある。 Mapの作成 いくつか作成方法はありますが今回は以下のように作成。このMapをごにょごにょしていきます。 func defineMap() map[string]int { m

Search Algolia index data with Golang client
golang

Search Algolia index data with Golang client

このブログの記事検索にAlgoliaを使っています。 algolia - ゆるふわキャンパー Algoliaはjsonでデータをクラウドにアップロードし、APIで検索したいキーワードを投げて結果を得ることの出来るサービスです。 AlgoliaはREST API以外にも一通り有名どころの言語のライブラリを提供しています。今回はGolangのライブラリを使用して、私のブログの記事を検索してjsonで結果を得るところまでやってみます。 準備としてとりあえずalgoliasearchをインストールしておきます。 go get github.com/algolia/algoliasearch-client-go/algoliasearch 簡単なことからやってみる まずはQuick Startに従ってサンプルデータの検索をやってみます。 Quick Startではデータを登録する例から始まっていますが、今回はサンプルデータを手で直接Algoliaに登録しちゃいます。 contactsという名前でIndexを作成します。 早速登録したデータに対して検索を実行するコードを書いてみます。 search.go ドキュメントのままではエラーになるので(最低限の説明のみなので)

Trying out golang BigQuery client library
bigquery

Trying out golang BigQuery client library

GCPのbillingをbigqueryにエクスポートしてre:dashで可視化してみました。 Export GCP Billing data to Google BigQuery Visualize GCP Billing Data 次はmackerelにbillingの情報を送ってメトリクスとして記録してみたいので、まずはgolangからbigqueryに対し何かしらのクエリを叩くところまでやってみます。 以下のドキュメントを見ながら試してみます。 BigQuery クライアント ライブラリ 準備 ライブラリのインストール。 go get cloud.google.com/go/bigquery go get