タグ

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

  • 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

  • Google認証なリバースプロクシ&静的コンテンツ配信サーバー「gate」 - unknownplace.org

    Kibana や Grafana を使う時に、これらはjsのツールなので、 Erasticsearch や InfluxDB といったバックエンドサービスにjsからアクセスできるようにする必要がある。 そのためには、 普通にバックエンドサービスのportを開放 nginxとかでリバースプロクシ とかする必要があり、めんどくさい。 さらにセキュリティのことを考えると、2の方法のうえに、nginxでSSL+Basic認証なんかにする必要があってよりめんどくさい。 さらに、僕はBasic認証が嫌いだ。 昔は Firefox + 1Password で良い感じにBasic認証の入力が行えたが、いまはだめになってしまったし、 Basic認証だとアカウントの管理もめんどくさい。 なので、Google認証なhttpdでリバースプロクシもできる、gateというツールを作った。 https://github

  • 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を再起動する

  • yokohama.pm tech talk #5 - unknownplace.org

    OpenSocial なモバイルアプリを書く場合、アプリ単体でテストできるようにしてくれる Moxy の OpenSocial プラグインの話と、外部 API 呼び出しを専用に行う非同期なプロクシサーバーの話をしました。 資料はこちら: OpenSocial mobile application development 前者に関しては、個人的には OpenSocial モバイルアプリ開発には必須なツールなので良い感じにしていきたいところ。 &してくれるひと募集。 後者のプロクシサーバーは「あんまり頭よくない」だけれども、現在のウェブアプリケーションの構成で、API呼び出しの待ち時間をうまく使おうとするときにはこうなるのかなぁと思った。同じようなことをしているところもあるらしい! 個人的にはそれ〜でできるよ!ってのがないかなーと思っていたのだけど、ないっぽいのかなー。 nginx でおしいと

  • A simple chat server in AnyEvent - unknownplace.org

    Node.js でつくってるやつ をみて同じくらいで書けそうだなと思ったので試しに AnyEvent で書き直してみた。 #!/usr/bin/perl use strict; use warnings; use AnyEvent::Socket; use AnyEvent::Handle; my @clients; tcp_server undef, 7000, sub { my ($fh) = @_ or die $!; my $h = AnyEvent::Handle->new( fh => $fh ); my $leave = sub { my $client = delete $clients[ fileno($fh) ]; for my $c (grep { defined } @clients) { $c->{handle}->push_write("$client->{na

  • 2009/07/02 - memo - unknownplace.org

    なんと jesse のプロジェクトだったらしい。パッケージ名でなんか見たことあるなーって思ってたんだけど、気がつかなかったなぁ。世間せまい! コミット権もらったのでこれからもなんかあったら貢献しよう。 GDP1 で android のメールアプリが Connection error と言うエラーで新しいメールをまったく受信してくれない状態になってしまった。GDDフォンだとこの問題はいまのところ出たことはない。 昔、 brad のブログで k9mail というのを見たのを思い出したのでそれを入れてみたのだが、ヘッダーのエンコード処理がされておらず日語の件名などをつかうと化け化けになってしまう。 機能的には k9mail のほうが優れていて、このエンコード問題さえ解決できれば使えそうだなーと思ったのでいっちょパッチを書いてみた。 diff --git a/src/com/android/em

  • unknownplace.org - 2009/06/17 - lighttpd だけで多言語サイトを作る方法

    lighttpd 1.4.21 以上では $HTTP["language"] という新しい変数(?)が設定の中で使えるようになり、これを使用するとクライアントの Accept-Language に応じて lighttpd の設定を変えることが可能になります。 これを利用して多言語化しているサイトとしては opensource.kayac.com が有名です。 このサイトは以下のような設定で動作しております。 $HTTP["url"] !~ "^/(?:(?:css|js|img|images?|static|tmp)/|[^/]+\.[^/]+$)" { $HTTP["url"] !~ "^/(en|ja)(?:$|/)" { $HTTP["language"] =~ "(en|ja)" { url.redirect = ( "^/(.*)" => "/%1/$1" ) } $HTTP["

  • unknownplace.org

    VLCってたしかYouTube動画の再生に対応してたよなーと思いだして試してみたけど、 現在の最新バージョンの2.0.5でも今のYouTubeの仕様に対応できてないのか、YouTube動画の URL を開こうとしてもエラーになってしまう。 ためしにナイトリービルドでためしてみたらOKだった。 けど、ナイトリービルドを常用するのも嫌だ。しかし、このYouTubeのハンドリングはどうもluaの拡張でやっているだけみたいなので、 その拡張ファイルだけバックポートするだけでいけそうだということで、やってみたらちゃんと動いた。 具体的には、 VLC.app/Contents/MacOS/share/lua/playlist/youtube.luacVLC.app/Contents/MacOS/share/lua/playlist/youtube_homepage.luac の2ファイルを上書きしてあ

    Fivestar
    Fivestar 2008/10/29
    typestarさん
  • 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 が変更されてる

  • 1