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 - algolia/algoliasearch-client-go:

  • Lorentzca
    Lorentzca
1 min read
Alfred CircleCI Workflow
alfred

Alfred CircleCI Workflow

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

  • Lorentzca
    Lorentzca
1 min read
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 のクライアントから叩いています。 Go の Mackerel

  • Lorentzca
    Lorentzca
1 min read
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 の設定項目でどのパスにファイルを置くか決めることです。選べるパスは workflow's data folder

  • Lorentzca
    Lorentzca
5 min read
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 := map[string]int{

  • Lorentzca
    Lorentzca
2 min read
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 ドキュメントのままではエラーになるので(最低限の説明のみなので)多少コードが異なる アプリIDとAPIキーはAlgoliaの管理画面から確認できる 結果をfmt.

  • Lorentzca
    Lorentzca
4 min read
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 google.golang.org/

  • Lorentzca
    Lorentzca
2 min read
Rewrite check_mailgun.sh to golang
mackerel

Rewrite check_mailgun.sh to golang

以前mailgunのステータスをmackerelで監視するシェルスクリプトを書きました。 Check maingun status on mackerel これをようやくGoで書き直して、一応使える状態にはなったのでうp。 GitHub - Lorentzca/check-mailgun: WIP デモ。 $ ./build/darwin_amd64_check-mailgun -p key-xxxx -d ghost.ponpokopon.me State OK: ghost.ponpokopon.me is active あんまりよくわかってないまま書いたので後で復習が必要。特に以下。

  • Lorentzca
    Lorentzca
1 min read