git subtreeで強制的にpushする

rebase filter-branch など歴史の書き換えを行った後にリモートリポジトリにpushすると整合性が取れないため失敗します。
こんな時は git push -f で強制的にpushを行いますが、 困ったことに git subtree push には強制的にpushするオプションがありません。

h2o をビルド

mruby.handler が使いたかったので最新版をビルドしてみました。
プラットフォームは ubuntu:wily です

手順

Let's Encrypt で SSL証明書を取得する

Let's Encrypt を使うと無料でSSL証明書を取得できます。
このブログのHTTPS化をするにあたり、「Let's Encrypt」でSSL証明書を取得してみました。

インストール

ubuntu:wily に php7.0 をインストール

apt-add-repository ppa:ondrej/php を追加。
apt-add-repository が無い場合には apt-get install -y software-properties-common しておく必要があります。

$ LANG=C.UTF-8 apt-add-repository -y ppa:ondrej/php
gpg: keyring `/tmp/tmpos25t6ks/secring.gpg' created
gpg: keyring `/tmp/tmpos25t6ks/pubring.gpg' created
gpg: requesting key E5267A6C from hkp server keyserver.ubuntu.com
gpg: /tmp/tmpos25t6ks/trustdb.gpg: trustdb created
gpg: key E5267A6C: public key "Launchpad PPA for Ondřej Surý" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)
OK

Sass+CompassでiPhoneのRetina用CSSスプライトを用意する

Sass+CompassはCSSスプライトを自動で作ってくれるので便利ですが、Retina用の画像は2倍の大きさの画像を半分のサイズに指定するので位置がずれてしまいます。
画像のサイズを半分の大きさに指定して、ポジションも半分の位置にするミックスインを書いてみました。

$map:                sprite-map("sprite/*.png")
$retina-sprite-path: sprite-path($map)
$retina-sprite-url:  image-url($retina-sprite-path)
$retina-sprite-size: (image-width($retina-sprite-path) / 2) (image-height($retina-sprite-path) / 2)
@mixin retina-sprite($name)
  $position: sprite-position($map, $name)
  $image:    sprite-file($map, $name)
  display:   block
  width:     image-width($image) / 2
  height:    image-height($image) / 2
  background:
    repeat:   no-repeat
    image:    $retina-sprite-url
    size:     $retina-sprite-size
    position: 0 (nth($position, 2) / 2)