gist41201c4579d17253b7bd26e699c6dccb
といったことを行うスクリプトです。
session の current directory がリポジトリのルートに設定されるので、別のシェルを使いたいときは tmux new-window
などで新しい端末を開けば cd する必要もありません。
作業リポジトリを切り替えたいときも、このスクリプトを起動して選ぶだけで、以前の session があれば記憶とともに蘇ることでしょう。
gist41201c4579d17253b7bd26e699c6dccb
といったことを行うスクリプトです。
session の current directory がリポジトリのルートに設定されるので、別のシェルを使いたいときは tmux new-window
などで新しい端末を開けば cd する必要もありません。
作業リポジトリを切り替えたいときも、このスクリプトを起動して選ぶだけで、以前の session があれば記憶とともに蘇ることでしょう。
こんにちは。アプリケーションエンジニアの id:mechairoi です。
この記事は はてなエンジニアアドベントカレンダー2014 の10日目です。
昨日は id:hatz48 さんの Mackerel と fluentd でサービスの状態を可視化する - Hatena Developer Blog でした。
今日は Wikipedia の作り方について紹介します。
スチロール半球 450m/m【ディスプレイ用品・デコレーション】
なんとたった7ステップで完成です。
450mmの半球が届くと想像より大きくてテンションがあがってしまいますが落ち着きます。輪っかにしたセロテープで2つの半球を貼りあわせて球にします。あとで剥がすのでさらっと貼るとよいでしょう。
くっつけた球にやわらかい鉛筆で補助線をひきます。
Wikimedia official marks/About the official Marks - Wikimedia Foundation のいろんな方向からみたWikipediaの様子が参考になります。
「W」と「И」の間を通っている線(上図の赤線)が赤道だとすると、南極と北極を結ぶ線を等間隔に10本ひいてから、赤道に平行な線を北半球と南半球に3本づつひきましょう。半球のつなぎ目(上図の青線)と赤道を直交させるとよいでしょう。
やわらかいメジャーやIKEAでもらえる紙の定規があると捗ります。
スチロールカッターで切断する線を下書きします。
ステップ2と同じように Wikimedia official marks/About the official Marks - Wikimedia Foundation をみながら手で雑に書いていきます。ついでにピースに対応する文字も書いておきます。リンク先は各方向から見た様子と展開後とで文字の配置が微妙の異なるので嵌らないように気をつけましょう。
もちろんピースが無いところは自由に想像を膨らませて書きます。
仮止めしたセロテープを剥がし、スチロールカッターで切ります。
一定のペースでカッターを動かすとなめらかに仕上がります。下書きから多少ずれても問題ありません。球の中心から出るレーザーで切るようなイメージでカッターを動かすとやりやすいかもしれません。スチロールの厚みでピースの噛み合わせがうまくいかないところもあるので断面の内側を削って調整します。削り過ぎると安定しなくなるのでほどほどに。半球の境界と重なったピースはセロテープでくっつけます。
ここまでくればパズルを組み立てて遊ぶのもよいでしょう。
下書きで汚れたピースの表面を塗料で白く塗って綺麗にします。塗る前にピースの裏に対応する文字を書いておくと後で楽です。
Wikimedia official marks/About the official Marks - Wikimedia Foundation にある文字のSVGを Inkscape とかで適当に並べて印刷します。印刷した文字をはさみで切ってのりで浮かないように貼ります。文字のまわりに白い部分が残ってもほとんど目立たないのでシュッとやるとよいでしょう。
かぶって仮装パーティに向かうもよし、分解してコンパクトなまま持ち込んで現地で組み立てるもよしです。お気に入りのTシャツとコーディネートするのもオススメです。
はてなでは、パーティを一緒に盛り上げてくれる方やScalaエンジニアも募集しています。
Wikipedia への寄付もお願いします。
Ways to Give - Wikimedia Foundation
明日は id:shimobayashi さんの予定です。よろしくお願いします!
Wikipedia の作り方 - *iroi*塗装の塗料なにつかったんだろう。ポスカ?
2014/12/10 13:40
最初は
のマット ホワイトつや消しでやってたんですが、量が足りなかったので2年前に使った
の残りを使いました!
カーソル位置とかリージョンで選んだ範囲をブラウザで開けるやつです。
C-u
つけると --rev
になるのがおしゃれポイントです。
以上です。
mechairoi/slick-for-update-sample · GitHub
Slcik の lifted embedding で 無理やり FOR UPDATE
できようにするサンプル
slick-for-update-sample/Driver.scala at master · mechairoi/slick-for-update-sample · GitHub
みたいに PostgresDriver を継承した MyPostgresDriver を作って,
import MyPostgresDriver.simple._ class CoffeesForUpdate(tag: Tag) extends Coffees(tag) with ForUpdateTable val coffeesForUpdate = TableQuery[CoffeesForUpdate]
val q = for { c <- coffeesForUpdate if c.price < 9.0 s <- suppliers if s.id === c.supID } yield (c.name, s.name) q.list
のように書くと
select x2."COF_NAME", x3."SUP_NAME" from "COFFEES" x2, "SUPPLIERS" x3 where (x2."PRICE" < 9.0) and (x3."SUP_ID" = x2."SUP_ID") for update of x2
みたいにちゃんとFOR UPDATE
するクエリが吐かれる。
FOR UPDATE
は DBMS によって文法が結構違うのでリポジトリのは PostgreSQL でしか使えない。
Heroku で Haskell を動かす方法は http://daimatz.hateblo.jp/entry/2013/02/09/164531 のように buildpack を使うとデプロイ時に Heroku のホストでビルドできて便利です。しかしビルド時間が15分までで Yesod などを使っていると間に合わず、手元で Ubuntu 10.04 向けのバイナリを作って push などする必要があります。Ubuntu 10.04 で開発してる人はもうあまりいないと思いますので、最近流行っている Docker を使って cedar stack 向けにビルドできるようにしてみました。
ビルドに使う Docker image は cedar 用のものに ghc と cabal-install をインストールして作りました。
サンプルプロジェクトは
にあります。デプロイするには READMEに書いてある通り、docker
とか heroku
コマンドをインストールして、リポジトリをクローンして
git clone https://github.com/mechairoi/docker-heroku-cedar-ghc.git
Heroku の アプリケーションを作って、
heroku create --stack=cedar
ビルドしてpush すれば
make build git checkout -b deploy git add -f dist/build/heroku-haskell/heroku-haskell git commit -m "build" git push heroku deploy:master
デプロイできると思います。Yesod でも deploy/Procfile に従って package.json などを配置して Makefile を修正すれば動くはずです。
make build の中身は
sudo docker run -v ${PWD}:/workspace -t mechairoi/heroku-cedar-ghc /bin/bash -xc 'cd /workspace/ \ && cabal --sandbox-config-file=./heroku.cabal.sandbox.config sandbox --sandbox=/workspace/.heroku-cabal-sandbox init \ && cabal --sandbox-config-file=./heroku.cabal.sandbox.config install --dependencies-only \ && cabal --sandbox-config-file=./heroku.cabal.sandbox.config configure \ && cabal --sandbox-config-file=./heroku.cabal.sandbox.config build --builddir=./dist-heroku \ && strip --strip-unneeded ./dist-heroku/build/heroku-haskell/heroku-haskell'
のようになっていて、Docker のホスト側をマウントして cabal sandbox を作ってるので2回目からはパッケージのダウンロードもなくビルドできます。Vagrant と違って起動も早いし Docker 便利ですね。