タグ

ブックマーク / unknownplace.org (4)

  • Dockerを使ったGolang開発環境 - unknownplace.org

    しばらくiOSアプリのクライアントサイドばかり開発していてサーバサイドプログラムにご無沙汰だったのだけど、 最近またGoでアプリのサーバサイドを書くようになった。 ちょうど xhyve が話題になっているのもあって、OS X の仮想環境がアツい感じだったので、 ひさしぶりに Docker で開発してみよう、と思いたち、Dockerを使ったアプリ開発をやってみている。 docker-compose を使って依存ミドルウェアも一緒に立ち上げる docker-compose [1] というのを使うと、複数のコンテナを同時に立てられ、それぞれにリンクも良い感じにやってくれる。 開発環境を作るにはもってこいのツールだ。 GoのWebアプリ サンプルとして以下のようなアプリを考える。 // main.go package main import ( "fmt" "log" "net/http" "gi

  • TwilioのRedisによる決済サービスの障害、2つの原因 - unknownplace.org

    Twilio というサービスで決済サービスの障害があったらしいが、恐しいことにこのサービス、 決済情報をRedisで管理していたらしい、というのをRedis作者、antirez氏のblogで知った。 Twilio incident and Redis - Antirez weblog この件に関しては、Twilio自体も 調査報告 を出している。簡単にまとめるとこういう感じだ: TwilioではRedisを single-master, multi-slave なレプリケーション環境で使用している ネットワーク障害で一時的に master-slave 間の接続が切れたことにより、master-slave間のデータの再同期が発生 この再同期がすべてのslaveに対して同時に発生したため、masterの負荷が高くなり、結果決済サービスの障害が発生 この負荷を解決するためmasterを再起動する

  • git-svn 作業フロー unknownplace.org - 2008/02/19

    plagger レポジトリで作業するとする。svkとの比較つき。 まず git レポジトリ作成 git svn init -s http://svn.bulknews.net/repos/plagger/ plagger これで、plaggerってディレクトリにgitレポジトリができる。svk mirror的なものですね 次にsvnとデータをsyncさせる。 cd plagger git svn fetch これは svk sync 的なもので対象の変更をすべてtrackしてmerge情報とかを記録する。なので重い。体感では svk sync 以上。 ちなみに最初の init の代わりに clone とすると一気に fetch までしてくれる。 trunk で作業するよ (ここからが通常のワークフロー) git checkout trunk で trunk に移動。 svn が変更されてる

  • CLON - 2006/12/09 - JSコンソールにログをはくActionScript

    いままではLocalConnection使うロガーをつかってたんだけど、JSと同じところで見れたほうが楽かなと思って作ってみた。 import flash.external.ExternalInterface; class Logger { public static function trace(msg) { return ExternalInterface.call("window.console.log", msg) || ExternalInterface.call("opera.postError", msg) || ExternalInterface.call("printfire", msg) || ExternalInterface.call("Debug.writeln", msg) || ExternalInterface.call("debug.trace", msg

  • 1