タグ

ブックマーク / r7kamura.github.io (5)

  • Golang Reverse Proxy - r7km/s

    単一ホスト用のリバースプロキシを実装する net/http/httputilで、HTTP用のReverse Proxyを実装するためのライブラリが提供されている。 下記のコードで、http://127.0.0.1:3000 から http://127.0.0.1:9292 にHTTPリクエストを委譲するReverse Proxyが動作する。 httputil.NewSingleHostReverseProxyはhttputil.ReverseProxyのインスタンスを返す。 このインスタンスはhttp.Server互換の (.ServeHTTPメソッドに呼応できる) オブジェクトであるため、 http.Serverを利用してHTTPサーバを動作させられる。 // main.go package main import( "net/http" "net/http/httputil" "net

  • Slugbuilder - r7km/s

    ここで言っている実行可能な形式とは、Heroku上で slug と呼ばれているもので、ソースコード・依存ライブラリ・実行環境をtar形式にまとめてGzip圧縮したものである。 使われ方 flynnでは、コンテナで実行させたいアプリがgit pushされたときにslugbuilderが実行され、 アプリ用のslugが生成され、shelfと呼ばれるファイルサーバ経由で配布され、sluglunnerで実行される。 discoverd & flynn-host を使ってコンテナを動かすホスト群のクラスタが形成される gitreceived を使ってGitサーバが git-push(1) を待ち受ける gitreceived が git-push(1) に呼応してflynn-receiveを実行する flynn-receive が slugbuilder を利用してslugを作成する slugrun

  • SQL Translator - r7km/s

    SQL::Translator という、 SQLの構文解析器 + これを利用した便利なツール群を読んだ。 SQL::Translatorの使い方 とりあえずSQL Translatorの使い方を知らないことにはどうにもならないので、 使い方を調べて小さな動くコードを書くことに。 まず手元にbefore.sqlとafter.sqlという2つのSQLのファイルを用意した。 before.sqlでusersテーブルを作成し、更にafter.sqlitemsテーブルを作成している。 $ cat before.sql CREATE TABLE `users` ( `id` integer(10) unsigned NOT NULL AUTO_INCREMENT, `name` char(16) NOT NULL, PRIMARY KEY (`id`) ); $ cat after.sql CREA

  • Gitreceived - r7km/s

    git pushに対応することに特化したSSHサーバ Gitreceived を読んだところ、幾つかの知見が得られた。 git-shell Git付属のシェル git-shell がGitreceivedで利用されている。 git-shellはGitに関する作業しかできない制限付きのシェルである。 GitreceivedはSSH経由で入力された任意のコマンドを外部コマンドとして実行しようとするが、 このとき外部コマンドはgit-shellを利用して実行される。 つまり、任意のコマンドと言えどGitに関する作業しか実行できないように制限されている。 git push クライアントでgit push origin masterが実行されたとしよう。 このときGitは、サーバへのSSH接続を開始する send-pack プロセスを実行する。 サーバ側では、以下のようなSSHの呼出を介してコマンド

    mapk0y
    mapk0y 2014/07/04
  • Sitespec - r7kamura blog

    [Sitespec](https://github.com/r7kamura/sitespec)という静的サイト生成ツールを作り、このブログを移行した。 ## Sitespec Sitespecは、Webアプリとテストから静的サイトを生成するためのツール。 WebアプリにはRackを、テストにはRSpecを使う。 Rackを使った適当なWebアプリを用意し、 RSpecでHTTPリクエストを発行するように記述したテストを実行すると、 レスポンスの内容から静的ファイルが生成されるという仕組みになっている。 参考までに紹介しておくと、静的サイト生成ツールには他に [Middleman](http://middlemanapp.com/)や[Octopress](http://octopress.org/)、[Movable Type](http://www.movabletype.jp/) な

  • 1