タグ

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

  • 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

    Ashizawa
    Ashizawa 2015/08/13
    しばらくiOSアプリのクライアントサイドばかり開発していてサーバサイドプログラムにご無沙汰だったのだけど、 最近またGoでアプリのサーバサイドを書くようになった。
  • 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

    Ashizawa
    Ashizawa 2014/08/15
  • 独立しました - unknownplace.org

    2013年8月末で面白法人カヤックを退職し、新しく会社を設立しました。 カヤックには約9年間お世話になり、とても多くのことを学ばせてもらいました。 とくにクリエーターとしての自分の考え方は、ほぼカヤックで養われたと言っても過言ではないでしょう。 そういう意味でカヤックは僕の第二の親のような存在であり、鎌倉方面には足を向けて寝られません。 当にありがとうございました。 カヤックは面白法人とか名乗っていますが、実は非常にまじめな集団です。 たとえば、経営理念についても、とても真摯に向かいあっています。 経営理念とはただの飾りではなく、まさに会社の存在意義であり、社員全員がそれを意識して仕事をしなければ意味がない。 そんなことから半年に一度、全社員で経営理念について考えるための全員社長合宿、というものをやっていたりします。 そんな環境で、自分も個人としての理念を磨いてきました。 昔のカヤックス

    Ashizawa
    Ashizawa 2013/10/01
  • 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を再起動する

    Ashizawa
    Ashizawa 2013/07/25
  • このサイトのBlosxomの構成 - unknownplace.org

    このサイトでは org-modeで書いた原稿をBlosxomを使って表示している と前に書いたが、 その環境もだいぶ落ち着いてきたので、ここにまとめておく。 手元で試してみる このサイトの構成をまるっとそのまま githubにあげてある ので、 だれでもすぐに試してみることができる。 git cloneと依存ライブラリのインストール まず、 git clone して、 # git clone git clone https://github.com/typester/unknownplace.org.git cd unknownplace.org cpanm を使ってPerlの依存ライブラリをインストール # 依存ライブラリをインストール cpanm --installdeps . 実行 plackupで簡単に動作させられるように app.psgi を同封してあるので BLOSXOM_CO

    Ashizawa
    Ashizawa 2013/06/20
    BLOSXOM_CONFIG_FILE=$PWD/config.pl plackup
  • Goはクロスコンパイルが簡単 - unknownplace.org

    homebrew の Go用のレシピ を見た人は、その中にこんなオプションが定義されているのに気がついたかもしれない: option 'cross-compile-all', "Build the cross-compilers and runtime support for all supported platforms" option 'cross-compile-common', "Build the cross-compilers and runtime support for darwin, linux and windows" Goはクロスコンパイルが可能なようにビルドしておけば、簡単に他の環境で動くバイナリを作ることができるようになっているらしい。 Goがダイナミックライブラリに依存しない実行バイナリを作るという特徴と併せて考えると非常におもしろい(そして、使える)機能だと思

    Ashizawa
    Ashizawa 2013/06/14
  • Redis布教活動報告 ISUCON 編 - unknownplace.org

    最近 Test::RedisServer とかもろもろつくっててばれてるかもしれませんが、だいぶ Redis 期にありまして、最近の趣味は?っていう問いにはだいたいRedisのソースを読むことですってなくらいなのですが、 memcached とかシンプルな KVS と比べるとだいぶ機能が豊富なので使い方を迷ったりとかそういう事例もあり、周りにもう少し使える人を増やさなければ僕の書いたコードが属人化しててつらい感じになるなーっていうわけで、 布教活動をおこなっておりまして、その一環として ISUCON2 に参加してきましたのでその報告です。 livedoor Techブログ : #isucon2 リアルタイムフォトレポート 更新終了 前回の優勝チームに混ぜてもらった感じでだいぶついてる感じもしますが、見事連覇を果たせ、懇親会でも redis redis と連呼してきたのでだいぶ興味持った方も

    Ashizawa
    Ashizawa 2012/11/07
  • 最近の Module::Install で Travis るときの注意ポイント - unknownplace.org

    Travis は Github 連携の CI サービスで、結構前に Perl にも対応しているので最近更新したレポジトリには基的に .travis.yml を置いて便利に使わせていただいていたのですが、 いままで使っていた設定だとtravis上でうまくテストが通らなくなってしまった。 今まで使っていた方法は、まず gfx 考案の Makefile.PL をベースに Makefile.PL をこんなかんじで書く: use strict; use warnings; BEGIN { my @devmods = qw( Module::Install::AuthorTests Module::Install::ReadmeFromPod Module::Install::Repository ); my @not_available; eval qq{use inc::Module::Inst

    Ashizawa
    Ashizawa 2012/09/01
  • tmux + irssi + canything で Anything 風チャンネル切り替えする - unknownplace.org

    irssi 環境を prgmr.com からさくら VPS に移行したついでに irssi のプラグインを見直していて、そのときに nicklist.pl というのをいれたわけですが、これがなかなか hackish な実装になっており(笑)、named pipe なファイルつくってそれを cat しておくと irssi がそこに nicklist を書き込むというような感じになってて、基的に GNU screen などの縦分割と一緒に使うように設計されている。 で、僕はリモートサーバー上の GNU screen 上で irssi を動かしているので、それをつかうために縦分割をためしてみたわけですが、window 分割したときにでる caption を GNU screen では消すことができず、ローカルで使っている screen の hardstatus の上に、リモート screen

    Ashizawa
    Ashizawa 2012/03/29
  • libuv の Perl バインディング - unknownplace.org

    気分転換プロジェクトとして、libuvのPerlバインディングを書いている。 typester/p5-UV - GitHub 現状、timerとtcp周りを一通り実装したところ。 実装は愚直にlibuvの関数とperlの関数を1:1に(uv_tcp_init(...)をUV::tcp_init(...)というような形で)マッピングしている。 この実装はlow level APIと位置づけ、その上に使いやすい高レベルなインタフェースをPerl上で用意したいつもり。 このlow level APIをつかったTCP echo serverはこんな感じになる: use strict; use warnings; use UV; my $server = UV::tcp_init(); UV::tcp_bind($server, '0.0.0.0', 3000) && die 'bind error

    Ashizawa
    Ashizawa 2011/12/01
  • MacBook Air セットアップメモ - unknownplace.org

    11インチのやつ、買いましたよ。よくあるセットアップメモを残す。 SSDの容量が心許ないので、バックアップからの復元はしないで新規で設定した。 OS 再インストール まずやっぱ最初はこれ。目的は大文字小文字を区別するファイルシステムでパーティションを切りなおすということのみ。 デフォルトのファイルシステムではWindowsなどとおなじように大文字小文字を区別しない。そういう環境ではたとえば #include <STDIO.h> とか言うコードも通ってしまう。そういう気がつかないうちに仕込まれる各種トラブルの種は気持ち悪いよね。 注意点としてはAdobe製のソフトはそういうトラブルの種を抱えたコーディングをされているらしいものが多いようで、このファイルシステムにすると動作しないものが結構あるらしい。たとえばPhotoshopは最新版でもうごかないみたい。 (Lightroomは大丈夫) ソフ

    Ashizawa
    Ashizawa 2011/01/20
    patchのURL覚えておこう
  • 2009/06/08 - memo - unknownplace.org

    やっと引っ越し先のネット環境が整ったのでまたここを更新できるようになった。 ネットがない間は自分のメモを Google Cache 経由で読むという謎の状況になっていた。つらい。

    Ashizawa
    Ashizawa 2009/06/08
    待ってました
  • 2009/04/08 - memo - unknownplace.org

    昨日のやつに言及いただいた。 midnight.el で毎日 0 時に古いバッファを削除する - (rubikitch loves (Emacs Ruby CUI)) 標準添付の midnight.el とかどうだろうか。 まさにこれがやりたかった。ありがとうございます! で、設定ファイル書かなくても全部 customize だけでできるみたい。 customize-group midnight して midnight-mode を on にすれば OK。ノーマルバッファの削除間隔はデフォルトだと3日だが、ちょっと短いのでそこも 7 とかに変更した。 あとはまぁデフォルトで良いかな。

    Ashizawa
    Ashizawa 2009/04/08
    midnight
  • unknownplace.org - 2009/04/07 - 古いバッファを自動で消したい!!

    気がつくとemacsのバッファがすごい数になっていて補完などが重くなるのである程度たまったら自動で古い物(しばらくvisitしてない物)を自動的に削除するようなものが欲しい。 とりあえずぼくのelisp力ではあんまり難しいことはできないので (defun kill-old-buffers () (interactive) (let ((count 0)) (dolist (b (buffer-list)) (incf count) (if (> count 100) (or (buffer-modified-p b) (kill-buffer b)))))) とかいうのを書いてとりあえずはしのぐことにした。これは最後に使ったバッファ100個のこし、それ以前のバッファで修正フラグがたってないものを全部殺すというもの。 (buffer-list) でとれるリストは anything などのよう

    Ashizawa
    Ashizawa 2009/04/07
    save にフックしておいて auto-save しておくと幸せになれそう
  • 2009/01/20 - memo - unknownplace.org

    Kamaitachi入門(その4) - ダウンロードたけし(寅年)の日記 なのでconnectについてはKamaitachi側ではon_connectとon_invoke_connectの2つをdispatchしていることになりますね。なんで2重に待ち構えるような構成にしてるんだろ?なにか意味があるような気がしますが、よくわかりません。 on_connect はTCP接続確立時のハンドラ、on_invoke_connect は他の関数呼び出しと同様 Flash Player から connect 関数がよばれたときに呼ばれるハンドラです。 RTMP は正直なんでこうなんだろーっていう理解不能な仕様が結構ありますのでサーバー実装だけみてると結構混乱すると思います。 クライアント側も参照すると多少マシになります。 いまは Flex SDK を使用すればフリーで as3 な swf をつくること

    Ashizawa
    Ashizawa 2009/01/20
    tell application で戻る
  • memo - unknownplace.org

    SKK導入してて思ったのは、新しい情報がまったくない、ということだ。 まぁ2013年にもなってSKK導入しようなんて変なやつはいないってのもあるだろうけど、こういうの最近はみんなtwitterとかに流しておわっちゃうっていうパターンが多いからだと思う。 なのでやっぱりこのようにいろいろ作業したことを残すことは重要だなーと思いなおして、先日からやたらエントリが多いわけですw それでまぁもっと細目にclmemoつけていくかなーと思ったわけだけど、いま使ってる clmemo.el は、1つのメモファイルしかサポートしていない。 個人的に使うだけだったらそれで十分なんだけど、僕みたいにclmemoをこうして公開してしまっている場合、プライベートなメモもつけられると良い。 ので、 (defun clmemo-with-file (memofile) (interactive "Fclmemo fil

  • 2008/11/10 - memo - unknownplace.org

    昼飯時に京極夏彦の狂骨の夢の続きを読んでいたんだけど、そこに 京極堂は実に冷たくそう云った。木場はどうも常日頃この古屋やあの探偵の、そこの小説家に対する態度は冷たすぎると思っている。しかしそう思っている癖に口を開けば小説家を罵倒している自分にも善く気がつくのだ。どうやら関口とはそう云う男なのである。褒め甲斐はないが貶し甲斐はある。 という一節があった。 なるほど、まさに xcezx のことである。

    Ashizawa
    Ashizawa 2008/12/13
  • 2008/11/06 - memo - unknownplace.org

    昨日のエントリで CarbonEmacs を使えばいいのかもと思ってちょっとためしてみようと思ったのだけど、どうせなら MultiTTY 使いたいなーなどという気持ちが出てきてしまった。 それで emacs23 ベースな CarbonEmacs 的なのがないかと探してみたら、いまの CVS の emacs は普通に Emacs.app を作ることができるみたい。 cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/emacs co emacs とかで co してきて ./configure --with-ns make make install で nextstep ディレクトリに Emacs.app ができている。 CLI で起動したい場合は Emacs.app/Contents/MacOS/Emacs -nw でおk。e

    Ashizawa
    Ashizawa 2008/12/13
  • OSXターミナル事情 - unknownplace.org - 2008/11/05

    KeyRemap4MacBook に remap.app_term_commandL2optionL という設定があって、これを使うと Terminal.app でのみ左コマンドキーと左オプションキーを入れ替える左コマンドキーを左オプションキーにすることができる。 これを iTerm でも使いたかったので設定を追加しようと思ってソースを見てたら実はこのオプションは iTerm でも効くようにつくられているのだが、そのアプリケーション名の指定が間違っているだけだということがわかった。 diff --git a/src/core/server/server.cpp b/src/core/server/server.cpp index d4695fe..40d1715 100644 --- a/src/core/server/server.cpp +++ b/src/core/server/se

    Ashizawa
    Ashizawa 2008/12/13
  • 2008/07/23 - memo - unknownplace.org

    master にコミットしちゃったのが微妙だけど branch に保存して残しておきたいとき - 8時40分が超えられない - subtech これ便利だなー branch 切らずに master に直接いれちゃえいう時が良くありますね(ブランチ切れよ)。んであとから見直したら微妙だはずしたい、というとき。push してなければ git branch bimyou_branch git reset --hard modositai_tokorono_sha1 だけで master は元に戻るし、branch には残ってるしでばっちり。git おてがるー。(こまめにブランチは切りましょう) いいね! git++ ただ「pushしてなければ」っていうのを見逃してかわいそうなことになる人がいるかもしれないので強調しておく。push しちゃってたらやっちゃだめよ!

    Ashizawa
    Ashizawa 2008/12/13