タグ

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

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

  • Basic認証対応のMac用Gyazoクライアントを作った - unknownplace.org

    今頃なにを言っているのかという感じだが、Basic認証ごしにGyazoクローンに画像アップロードしたいという要求があったので、ちょろっと書いてみた。 https://github.com/typester/Gyazo-Mac Downloads からバイナリも落とせるようにしておいた。 初回起動、もしくはOption押しながらの起動で設定画面が出るので、適当に情報を入力して閉じたら、あとは普通のGyazoクライアントと同じように使える。 誰かいかしたアイコンつくってください。

  • Sub::Rateと言うのを書いた - unknownplace.org

    Sub::Rate - Rate based sub dispatcher generator - metacpan.org 確率に応じて処理を振り分けたいというような要件をカジュアルにクリアできる感じになっております。 たとえばいわゆるガチャ的なものを考えたときに、 my $rate = Sub::Rate->new( max_rate => 100 ); $rate->add( 0.1, sub { say 'Super rare' }); # 0.1 % $rate->add( 3, sub { say 'Rare' }); # 3 % $rate->add( default => sub { 'Normal' }); # 残り my $func = $rate->generate; みたいな感じで関数を生成できて、この生成した $func は呼ぶと確率に応じて登録された関数を呼び出

    aki77
    aki77 2013/02/21
  • Redis布教活動報告 ISUCON 編 - unknownplace.org

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

    aki77
    aki77 2012/11/08
  • flymakeのタイムアウト設定 - unknownplace.org

    flymakeで読んでいるシンタックスチェックコマンドが無限ループに陥って困り、@fujiwaraに相談したところ。daemontoolsについてくるsoftlimitコマンドでタイムアウトするようにするといいと教えてもらった fujiwara++ $ softlimit -t 1 perl -e 'while(1){}' zsh: cpu limit exceeded softlimit -t 1 perl -e 'while(1){}' 便利ですね。とりあえずperlのflymake設定を (defun flymake-perl-init () (let* ((temp-file (flymake-init-create-temp-buffer-copy 'flymake-create-temp-inplace)) (local-file (file-relative-name tem

  • 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

  • nginx で lighttpd のようにユーザーをトラッキングする方法 - unknownplace.org

    lighttpd では mod_fastcgi や mod_proxy 経由でアプリケーションが、 X-Lighttpd-Hogehoge: foobar のような X-Lighttpd- ではじまるヘッダーを返してもそれをクライアントに送り返さないという仕組みがあり、 たとえばそれを利用してアプリからユーザーIDを返してあげたりすると、それをクライアントに送ることなく lighttpd のアクセスログにだけ記録する、といったようなことが出来て便利なのですが、 同じようなことを nginx でやりたかったのでしらべてみた。 アプリから X-MyApp-User: foobar みたいなのを返してそれをクライアントに送ることなくアクセスログに記録したい場合、まずクライアントに送らないように、 proxy_hide_header X-MyApp-User; とし、さらに accesslog

  • MacBook Air セットアップメモ - unknownplace.org

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

  • OSX で tmpfs 的なことをする方法 - unknownplace.org

    MacBook Air 上で Test::mysqld なテストを走らせていると SSD の寿命縮めそうだなーとおもって tmpfs 的なものが OS X にもないものかと検索したら hdid(8) でできるとのこと。 man の一番下のほうに例が載っている。 $ hdid -nomount ram://128000 /dev/disk1 これでメモリから128000セクタ(1セクタ512バイトなので62.5MB)分とって仮想ディスクをつくり、 $ newfs_hfs /dev/disk1 Initialized /dev/rdisk1 as a 63 MB HFS Plus volume HFSで初期化して、あとは普通に $ mkdir /tmp/mnt $ mount -t hfs /dev/disk1 /tmp/mnt でマウントすればOK。 作ったディスクの破棄には $ hdidu

  • GNU screen の裏にいる Window で完了したコマンドを Growl 通知したい - unknownplace.org

    というようなことをつぶやいていたら、 Twitter / hchbaw: @typester 最近になって screen -Q windows とできるようになってますね。 と教えていただいた。 -Q コマンドというのは -X と同じようなものだけど、コマンド結果を screen 内のステータス領域ではなく標準出力で得ることができる。また、-X はつねに実行時にそれ自体がアクティブな screen セッションになるのに対し -Q はアクティブなセッションにクエリを投げる感じで、セッションが切り替わらない。(この辺は理解が怪しいので突っ込み歓迎) それでそれを使うと screen -Q windows と実行することで :windows で echo されるのとおなじ文字列を標準出力で得ることができる。その出力をパースすれば、自分が screen の裏にいるかどうか判断することができるという

  • フルスクリーン Cocoa Emacs - unknownplace.org

    emacs23 が正式にリリースされ、ちまたではウィンドウシステムが Cocoa になったぞ、とか 64bit 対応だぞ、とか multitty だぞ、と盛り上がっていますが、 個人的にほとんど興味のないまま今日まできました。というのも CocoaEmacs はフルスクリーンにできないという僕にとっては致命的な問題があったからです。 というのも最近は Emacs をフルスクリーンにし縦二分割で使ういわゆる imakado スタイルを実践しているため、それができない CocoaEmacs は眼中になかったのでした。 そんなわけでずっと CarbonEmacs を使ってきたのですが、 Snow Leopard に移行したのを機に CocoaEmacs に移行し、さらについでにフルスクリーン化できるようにしてみています。 github でやってます。 typester's emacs at ma

  • 無線APによって自動でhostsを変える方法 - unknownplace.org

    OSX の LaunchAgents には特定のパスを監視して更新があったらプログラムを起動すると言うことが出来ます。例えば以下のような設定を書いてみると: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>org.unknownplace.wifi_switch</string> <key>ProgramArguments</key> <array> <string>/usr/bin/zsh</string> <string>-c</

    aki77
    aki77 2009/12/03
    OSX の無線ネットワーク設定を監視して、更新されたらhosts を書き換えるスクリプトを起動。
  • Remember The Milk で IME を自動で ON/OFF する greasemonkey スクリプト

    Remember The Milk はサービス開始当初少し触っただけでまったく使っていなかったのだけど、最近周りの人が結構使っているのでちょっと見てみたらすごい進化していて、これは便利そうってことで使ってみている。 それで、キーボードショートカットだけでいろいろな操作ができるようになっていてすごく便利になっているのだけど、IMEがONの状態だと動かない。 タスクは日語で入力することが多いので、いちいちIMEの状態を気にしなくてはいけなくて面倒。 ってことで、テキストフィールドにフォーカスがあるときは自動でIMEをONにし、フォーカスが外れるとOFFにするスクリプトを書いてみた。 rememberthemilkime.user.js スクリプトと同じ階層にある IME.swf というのも読み込むようになっていて、IMEのON/OFFはそれでやってる。無駄にAS3で書いたため、Flash P

  • 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