タグ

ブックマーク / lestrrat.ldblog.jp (3)

  • Automating peco releases via Docker : D-7 <altijd in beweging>

    「なんか外部CIサービスだるいなー」「リリースとかもうローカルの環境でやりたいなー」「マシン取っ替えてもすぐ環境作れるようにしたいなー」などなどの欲求があったのと、go1.4がリリースされたのもあってDockerで全部自動化してみた。 戦略としては Travis CIとかの連携は残すけど、手元でいつでも同様のテストを走らせられるようにしておくリリースは手元でバージョン指定すれば基的に一発で通るようにしておく実装は単純で、ubuntuベースのイメージに必要なgoのバージョンとツール類(goxcとghr)を展開しておいて、pecoのディレクトリは後からdocker run -vでマウントできるようにしておく。 使う時は先にイメージを作成しておく(キャッシュ使ってるから当然素早く走りますね!)

    Automating peco releases via Docker : D-7 <altijd in beweging>
    ryshinoz
    ryshinoz 2014/12/18
  • Goroutine Synchronization : D-7 <altijd in beweging>

    (以下はgo 1.2.x時点での話です。将来的に仕様がかわるかどうかはわかりません) これを読んでいて、こういうの気にしてない人多いんだろうなーと思って、書いてみます。元のポストはdeferの挙動について語っているように見受けられるけれども、これは要は複数スレッドで実行されるコードについて、プログラム終了時に同期とか取りたくない、という話だと思ったので、このポストのdeferを正しく動かすには…というところからどういう形でgoroutine同士で同期を取る方法があるのか、一例を書き出していきます。 TL;DR; goでいくらgoroutineが気軽にかけるからと言って、複数スレッドで処理が行われているので同期はキチンとやらないとダメですよ。 deferの基 goではLLのノリでコードを書けるのが売りの一つですが、メモリ管理はしてくれるものの、様々なリソース解放も全て自動というわけではあり

    Goroutine Synchronization : D-7 <altijd in beweging>
    ryshinoz
    ryshinoz 2014/05/28
  • 最近いれたでっかい変更とか : D-7 <altijd in beweging>

    現時点ではあんまり具体的に何をしたか書けないけどブログにでっけぇ変更を入れた。システム全体の根的な部分なので一発でキレイにとはいかなかったが、まぁ変更の規模に対して考えると妥当な感じだろう。番化には1週間かかった。なので大分開放感がある。 具体的な事はもっと後になったら言えるが、とりあえず今の段階では Apacheモジュールを殺し、1000行近いRewriteRuleを殺し、PSGI側でミドルウェアを9個作成してPSGI側でApacheが今までやってたことを全て吸収した。 (追記 8/23 12:20)あとログがltsvになったよ!その先の事はモリス先生がやってるよ!このログもプロキシ側でログを取るのにアプリ側からの情報を組み込むとかしなきゃいけんかったので地味に面倒くさかった。わかってしまえば簡単だったけど。 パフォーマンスは正直言って、Apache版と比べて色々追加でやってることも

    最近いれたでっかい変更とか : D-7 <altijd in beweging>
    ryshinoz
    ryshinoz 2013/08/23
  • 1