MANA-DOT

PIXEL ART, PROGRAMING, ETC.

Hubotでasync functionを使う

Hubotでasync functionを使う

最近(と言っても一ヶ月前ですが・・・)node7.6.0がリリースされ--harmony-async-await をつけなくても async/await が利用可能となりました。 これにより、非同期処理を行うスクリプティングがより行いやすくなった(スクリプティング以上の用途ならばどうせ babel を使うためそこまで影響はない)と感じています。

hubotなどのbotプログラミングも 定常タスクを楽にするためのスクリプティングの一種であり、用途上連携サービスのAPIをたくさん叩くため、 恩寵を存分に得ることができます。この記事ではhubotで async/await を使う例を紹介します。

続きを読む

すべてのリポジトリでGithubのpull requestをfetchする設定

すべてのリポジトリでgithubのpull requestをfetchする設定

githubのプルリクエストのコミットをローカルにfetchする方法はよく知らてていますが (知らない人は是非設定をオススメします。特にコードレビューでレビュー相手がfork先からプルリクエストを出している場合でも対象コミットを取得できるため便利です)、 この方法はリポジトリごとに毎回設定する必要があり多少面倒です。

そこでこの設定を、

git config --global --add remote.origin.fetch '+refs/pull/*:refs/remotes/pr/*'

としてグローバルに設定してみたところ、普通に動きすべてのローカルリポジトリでプルリクエストをfetchしてくれるようになりました。

便利です。

気になること

remoteの設定をglobalに記述するのはあまり聞いたことがなく若干の不安はあります。 この状態でリポジトリの remote.origin.fetch の値を取ると、

>> git config --get-all remote.origin.fetch
+refs/pull/*:refs/remotes/pr/*
+refs/heads/*:refs/remotes/origin/*

となっており、リポジトリのconfigに記述した時と同じになっているため、問題ないのかな?とは思います。 今のところはGithub以外のリポジトリへのfetchも問題なく快適です。

もし詳しい方がいれば、補足していただけると助かります。

参考リンク

文字列置換により20行程度で実装する倉庫番ゲームのミニマム実装

文字列置換により20行程度で実装する倉庫番ゲームのミニマム実装

先日、Slack上でインタラクティブに倉庫番を遊べるhubot-slack-soukobanを作ったにてSlack上で遊べる倉庫番の紹介を行いました。 このhubotスクリプトでは文字列置換による実装を駆使して倉庫番のゲームロジック部分が20行程度で実装されており、今回はその実装について解説をします。

※このエントリは倉庫番というゲームのルールを知っている前提で書かれていますので、予めご了承ください。

続きを読む

レスポンシブなCSSスプライト

レスポンシブなCSSスプライト

よく知られたCSSスプライトはボックスの幅・高さをスプライト画像と同じに指定し、background-position をずらすことで複数のスプライト画像を含むスプライトシートの中から対象画像だけを表示します。 この方法だと表示できる画像のサイズは固定なのですが、 background-sizeとbackground-positionを % で指定し、ボックスの幅によって可変サイズな (レスポンシブ、あるいはフレキシブルな)CSSスプライトの表示法を紹介します。

続きを読む