秒速でLGTMするコマンド
LGTM するときはよさげなアニメーション GIF を探し出してきて lgtm.herokuapp.comにかけるのがデファクト[要出典]だけどこの「よさげなアニメーション GIF を探し出す」というのがくせ者で、大量のアニメーション GIF をブラウザで開くと CPU パワーを浪費するし選択にかける人的な労力もばかにならない。エコではない。そこで Tumblr のランダムな画像を LGTM...
View Articleオレ流 Pull Request 作業フロー
チームで作業する同じリポジトリの中で Pull Request を送り合うのではなく、オープンソースプロジェクトに外部から PR がやってくる場合の話です。最近のフロー送られてきた PR...
View Articlego-cli: ドキュメントとともにコマンドラインツールを作る
hub-prを作るとき、(ghqなどで使っていた)codegangsta/cliではなく新しいライブラリを試してみようと思って mitchellh/cliを使ってみたけど、何かしっくりこないものがあったので、せっかくだし、と自作してみた。今回の要件は以下のとおり。(goや gitのように)サブコマンドがあるコマンドラインオプションの解析には標準の...
View Article2015年のタスク管理
今年に入ってからタスク整理のしかたを考えなおして、とりあえず数ヶ月続けてみた結果、現時点で維持はできていて悪くはないと思ってるやり方をまとめておきます。大方針: 「やりたいこと」と「やらなければいけないこと」を分けるこれまでは Remember The Milkなり Google...
View Articleコマンドラインでカラーコードの計算・操作ができるツール
何かしら画面を作らなければいけないときには色のことを考える必要があって、たとえばこの色を少し暗くした色が欲しい! と思ったときに、素人としては頼れる方法を持っていないのが問題なのです。ウェブサイトであれば Scssなり Lessなりの CSS...
View ArticlePolymer エレメントの開発ツールと CI
先日の Google I/O 2015にあわせて Polymer 1.0 がリリースされました。めでたい。そこで表題のように、自分で Polymer エレメント(コンポーネント)を作るときの構成の話。始めるにあたっては PolymerLabs/seed-elementをベースにすると便利で、この中には以下のような標準的な構成が示されています。bower...
View ArticleDropbox のファイル選択/保存ダイアログを表示できる Polymer エレメントを書いた
デモを動かしてみるとこんな感じです。概要dropbox/dropbox-jsを利用してファイル選択/保存ダイアログを表示するコンポーネントです。基本的にフォルダ内のファイルの一覧を行うだけで、それ以上のことはコンポーネントのユーザに委ねているので、ユーザは dropbox-js の API を使って実際のファイルの読み書きを行う必要があります。使い方bower でインストールして、bower...
View ArticleGoogle Apps Script の TypeScript 型定義ファイルを作った
2015-12-08 追記TypeScript の型定義ファイルリポジトリのデファクト・スタンダードであるところの DefinitelyTypedに無事 Pull Request が取り込まれましたので、今後は DefinitelyTyped のほうを参照していただければと思います!Google Apps Scriptは JavaScript っぽい言語で Google...
View ArticleGo Conference 2015 Summer で Go の REPL gore の話をしてきました & gore 0.2.1
去年からこちら Go の話をしたり聞いたりする機会があればぜひ言ってみたいと思っていたのですが、このたび Go Conferecne 2015 Summerの話を聞きつけて、うまいことスピーカー枠に入ることができたので、前に作った Go の REPL(正確には違うんだけど)である motemen/goreの話をしてきました。speakerdeck.comgore の紹介は過去のエントリ...
View ArticleMackerel + peco + zsh でコマンドラインにホスト名を補完する
複数のサーバが関わっている環境では、ホストに人間が分かる名前を関連付けなければ運用がスケールしなくなるものです。その名前はホスト名だったり、ロールやタグのようなものだったりすると思いますが、仮にホスト名を利用するなら、DNS を用いて名前とホスト(の IP アドレス)の対応をつけるようなこともできるでしょう。DNS...
View Articlegobump で Go プロジェクトのバージョニングをおこなう
Go に限らず、公開しているプロジェクトのバージョニングは必要だけれど面倒なタスクのひとつで、プロジェクトのメンテナンスを続けていくつもりがあるのなら、ほぼ必ず通らなければならない道でしょう。ここで話題にしているのは Git などによるソースコードのバージョン管理ではなく、たとえばバージョン 3.1.4...
View Articleシェルスクリプトで Go の簡易ベンダリング
Heroku で Go がサポートされたのは良いニュースだったけど godepを使わなきゃいけないのが気に入らないところで、Go で Heroku に乗せたい Web アプリケーションを作る時は Docker を使うことにした(参考)。その際にも Docker コンテナ中で go...
View Articleghq v0.7 をリリースしました
2015-08-11 追記@kyannyさんに指摘いただいた、ghq.root 配下にシンボリックリンクが存在すると ghq listなどが不完全になる不具合を修正した バージョン 0.7.1をリリースしています。最新版はこちらをご利用ください。Release v0.7.1: Fixed symlink issue of v0.7 · motemen/ghq · GitHubghq v0.7...
View ArticleGo で SOCKS5 プロキシを利用する
検索すると golang - net/httpでSOCKS proxyを扱う - Qiitaという記事が見つかったけれど、今なら net/proxyパッケージを使えばよさそうだ。雑な例だとこんな感じ。import ( "net/http""golang.org/x/net/proxy" ) func main() { p, err := proxy.SOCKS5("tcp",...
View ArticleGo プロジェクトのバージョニングとリリースを CI で自動化する
gobump で Go プロジェクトのバージョニングをおこなうの続き。すっかり書くのが遅くなってしまったけれど、別にもったいぶるような特別なことはないです。ここでは、Pull Request のマージを契機に、バージョンを進めるコミットをし、push して、GitHub のリリースを進める……ということを CI...
View ArticleGit config から struct に読みこむ Go パッケージを書いた
Git や GitHub にまつわるツールは gitconfig に値を格納することにしておくのがユーザにも便利で、よく使っているし広く使われているとおもう。いっぽう YAML とか JSON とか設定ファイルによく使われるフォーマットは構造体に値をまとめて読みこむのが普通でもある。そういうわけで表題のようなものを書いた。以下の例を見れば分かるとおり gitconfig...
View ArticleGo のシンプルかつ明快な SQL クエリビルダ go-sqlf
Go でリレーショナルデータベースを利用したアプリケーションを書いているとき、動的に SQL を組み立てたい場合には、いくつかの方法が考えられます:クエリビルダを使う。世の中にすでにいろいろ存在します。(そのためのライブラリなので)動的に生成するにはもってこいですが、この場合、それぞれのライブラリに合わせた書き方をしなければならないので読み手にもある程度負荷がある点、また、Go...
View ArticleElectron で AdSense のレポートをメニューバーから確認できるアプリを書いた
ぼくはその日を善く生きたかどうかは AdSense の収益で決まると思っているので、以前にも AdSense のレポートを CLI で確認できるツールを書き、この記事にもあるように tmux のステータスバーに収益を表示していつでも確認できるようにカスタマイズしている。これは具合がよくてずっと使っていたのだけど、最近 tmux.conf...
View Article