タグ

ブックマーク / blog.kyanny.me (46)

  • Working with UNIX Processes を読んだ - @kyanny's blog

    Working With Unix Processes というを読んだ。 Thin の作者からの「時期バージョンを作るとき参考にする」というメッセージ*1が添えられていたのに惹かれて買った。著者のサイトで直販しているが、 Kindle Store からも購入できる。 このは一言でいうと、 UNIX 系 OS のプロセスについてのだ。プロセスとは何か、という導入部から始まって、プロセス ID やプロセス名、終了コードへと言及し、 fork(2) やソンビプロセス、シグナル、そしてデーモンプロセスの説明あたりまで編中で説明している。 UNIX プログラミングに関する類書は 1000 ページを超えるものが多いなかで、このはわずか 100 ページほどしかなく容易く読める*2。しかしページ数が少ないぶん、あまり踏み込んだ内容とは言えず、全体的にやや浅い印象を受けた。すでに UNIX, Li

  • APIs: A Strategy Guide を読んだ - @kyanny's blog

    APIs: A Strategy Guide を読んだ。 このAPI の設計や実装に関するではない。もっと大局的な、 API を取り巻くエコシステム全体のあり方を論じるだった。要するに、開発者視点では得るものが少なかった。とはいえ一ヶ月半近くかけて主に通勤中に、最後のほうはすっとばしながら、無理やり読んだので章ごとのざっくりしたまとめと感想を書く。 Chapter 1 The API Opportunity そもそもなんで API があると良いのかについてビジネス的な視点で触れている。スマートフォンのようなリッチなモバイル端末が世界中で爆発的に普及しているのでさまざまなデバイス向けに素早くコンテンツを提供できるかどうかが重要になる、そこで API ですよ、という流れ。 あと一般に API というと一般に公開してサードパーティの開発者に利用してもらう public API を想像し

    APIs: A Strategy Guide を読んだ - @kyanny's blog
    yuiseki
    yuiseki 2012/02/26
  • highscalability.com の Tumblr のアーキテクチャについての記事を読んだ - @kyanny's blog

    High Scalability - High Scalability - Tumblr Architecture - 15 Billion Page Views a Month and Harder to Scale than Twitter を読んだ。すごく面白かった。 Kindle で引用したところを中心にメモ。 Tumblr のソーシャルグラフの特徴 The graph for Tumblr users has hundreds of followers. This is different than any other social network and is what makes Tumblr so challenging to scale. Tumblr だと follower が数百人いるユーザーはザラにいる。 follower の多いユーザーの post は多くのユーザ

    highscalability.com の Tumblr のアーキテクチャについての記事を読んだ - @kyanny's blog
  • fluentd のソースを読む (1) - @kyanny's blog

    fluentd のソースを読み始めました。単なる趣味です。 経緯: fluentd の exec buffered output plugin を試してみたらflush_interval を短くしても USR1 シグナルを送ってもバッファが flush されず command が実行されなくて悩んでいたらTimeSlicedOutput はスライスの時間が経過しないとバッファから出てこないと教えてもらい、ソースを読んでちゃんと理解したいと思ったため、です。 とはいえ plugin/out_exec.rb をいきなり読んでもさっぱりわからなかったので、順を追って読んでみることにします。 まずは bin/fluentd を実行すると fluend が起動するところまで。 bin/fluend は fluend/command/fluentd.rb を実行してるだけ fluent/command

    fluentd のソースを読む (1) - @kyanny's blog
  • Backbone.Router - @kyanny's blog

    Backbone.Router を読んだ。ざっと眺めただけ。 http://documentcloud.github.com/backbone/docs/backbone.html そもそも Router とはなんぞや?というと、クライアントサイドでもサーバサイド同様に URL でもって処理変えましょうね、という。 History API が使えれば pushState を使い、でなければ hash fragment を使う。そこのところを透過的に扱える機能を提供、ということ。 route : function(route, name, callback) { Backbone.history || (Backbone.history = new Backbone.History); if (!_.isRegExp(route)) route = this._routeToRegExp(r

    Backbone.Router - @kyanny's blog
    yuiseki
    yuiseki 2011/12/26
  • 30days Album は画像の URL にもアクセス認証を入れています - @kyanny's blog

    Facebook にアップロードした画像の URL に直接アクセスすると非公開設定でも閲覧できるという話題が議論を呼んでいますが、 30days Album は画像の URL にもアクセス制限を入れています。 30days Album で作ったアルバムには、閲覧するための「合言葉」を設定できます。アルバム固有のパスワードみたいなものです。パスワードありのアルバムにはアクセス制限がかかっているので、この「合言葉」でログインしていないとアルバムは閲覧できません。さらに、アルバムにアップロードされた画像の URL にも同じアクセス制限がかかっており、画像に直リンクしても表示されません。 http://30d.jp/img/kyanny/66/469_large.jpg プライベートな写真の共有には、プライバシーにより配慮した 30days Album をぜひご利用ください。 追記 技術者・専門家

    yuiseki
    yuiseki 2011/12/08
  • 30days Album はどのようにして画像にアクセス認証をかけているか - @kyanny's blog

    30days Album は画像の URL にもアクセス認証を入れています - 刺身☆ブーメランのはてなダイアリー の技術的な解説。基的に 関西オープンソース 2008 30days Albumの裏側 のとおり。 ミドルウェアはこのスライドのときと比べてけっこう様変わりしている。 Perlbal は相変わらず使ってるけど。 リバースプロキシは nginx バックエンドに Apache (Passenger) と Perlbal 静的ファイルは nginx が配信 画像の URL は Perlbal にプロキシ 画像認証用の Perlbal Plugin がセッションストレージの Kyoto Tycoon に認証情報があるか問い合わせ それ以外にも提携している外部サービスのために特定の IP アドレスは素通りさせたりしている 画像ストレージは MogileFS なので X-REPROXY-

    yuiseki
    yuiseki 2011/12/08
  • The Art of Readable Code - @kyanny's blog

    The Art of Readable Code を読んだ。 このは「読みやすいコード」についてのだ。著者は文中で繰り返し「コードは読んで理解しやすく、誰かが読んだとき短時間で理解できるように書かれるべきだ」と述べている。そういうコードを書くために何に気をつければいいのか、その指針をいくつかの段階に分けて示している。 Surface-Level Improvements ―コードの「見た目」を良くする Simplifying Loops and Logic ―ループとロジックを単純化する Reorganizing Your Code ―こんがらがったコードを建てなおす Selected Topics ―その他の話題 なかでも一番の見どころは Surface-Level Improvements について書かれた章だ。これらの章では変数や関数の名前やコードのコメント、そして aesth

    The Art of Readable Code - @kyanny's blog
    yuiseki
    yuiseki 2011/11/27
  • Turntable.fm のチャットメッセージを Growl で通知する - @kyanny's blog

    Turntable.fm 面白いですね。特にチャットがいい。「ピコン」って音が鳴ると気になってしょうがない。けどそのたびにみにいくのはめんどいので Growl で通知させてみた。 https://github.com/kyanny/turntablefm-growl-notify Firefox, Greasemonkey, Plack そして Growl と Cocoa::Growl が必要です。チャット欄を監視してメッセージが増えたら localhost:5000 に投げて、 Cocoa::Growl 経由で通知してる。最初 growlnotify(1) を使ってたけどやめました。*1 もっと簡単に(必要なものをすくなく)やりたいけど、とりあえず使えるものを、ということで。 *1:チャットメッセージをそのままシェルに渡すと任意のコマンドが実行可能でたいへんあぶなかったのと growln

    Turntable.fm のチャットメッセージを Growl で通知する - @kyanny's blog
    yuiseki
    yuiseki 2011/06/12
  • 非同期ジョブキューのアーキテクチャ設計、どうしてますか? - @kyanny's blog

    Gearman のメーリングリストに興味深いポストがあった。僕も色々な意見を聞いてみたいと思ったので、多くの人の目に触れることを期待して紹介する。 Google グループ ウェブサイトに画像をアップロードすると、異なるバックエンドサーバが画像を処理する。まずリサイズし、それから顔認識をする。 一つ目の要求として、処理結果が期待通りかどうかユーザーに確認させたい。顔認識が不要であればリサイズした画像を、顔認識が必要ならばその処理が施された画像を、確認画面に表示したい。つまり、アップロード操作の完了には一つまたは二つのステップを踏む必要がある。 この要求を満たすために同期処理も検討したが、バックエンドサーバがダウンするとウェブアプリケーションサーバも巻き添えをうため採用したくない。 ウェブアプリケーションのプロセスは Gearman にリサイズ処理を非同期ジョブとして送信し、リサイズ処理のワ

    非同期ジョブキューのアーキテクチャ設計、どうしてますか? - @kyanny's blog
    yuiseki
    yuiseki 2010/10/28
  • MySQLのインデックスを学ぶ (1) - 刺身☆ブーメランのはてなダイアリー

    実践ハイパフォーマンスMySQL 第2版とLinux-DBシステム構築運用入門を読んで、 MySQL のインデックスについて勉強しなおしている。理解が曖昧だった部分の知識を深められたり、自分の間違いに気づけたりして、とても収穫が多い。 フルテーブルスキャンとフルインデックススキャン Linux-DBシステム構築運用入門 P185 に書いてあるケース。インデックスを利用してても対象レコード数が多いとランダムI/Oが大量に発生して遅くなる。読むべきレコード数が多いのならばフルテーブルスキャンのほうがI/O一回で多くのブロックを読み込めるので速い。 IGNORE INDEX ヒントを与えてパフォーマンスを改善するという例があった。 マルチカラムインデックスと範囲検索 SELECT * FROM users WHERE a = ? AND b >= ? and (c IS NULL OR c >=

    MySQLのインデックスを学ぶ (1) - 刺身☆ブーメランのはてなダイアリー
    yuiseki
    yuiseki 2010/09/22
  • Nobody should not assert his/her rights by donation. (寄付は権利を主張するためのものではない) - @kyanny's blog

    Tetsuya Kitahata wrote an article about trademark of Perl in Japan. He said: I often donated to TPF and other major Open Source Software projects. I was angered by people who say to me "you are unrelated to TPF" and "you are selfish". Have you an experience donation? It's you who are unrelated! http://tetsuya99.wordpress.com/2010/06/23/perl%E3%81%AE%E3%81%AF%E3%81%AA%E3%81%97-by-%E5%8C%97%E7%95%A0

    Nobody should not assert his/her rights by donation. (寄付は権利を主張するためのものではない) - @kyanny's blog
    yuiseki
    yuiseki 2010/06/24
  • HTML5 の file API と jQuery でブラウザにファイルをドラッグ&ドロップしてアップロードするサンプルを作った - @kyanny's blog

    GitHub - kyanny/html5_file_api_ajax_upload_sample: HTML5 file API + ajax file upload sample HTML5 の file API というのが面白そうなのでちょっといじってみた。 デモを動かすには Plack と JSON と Path::Class が必要です。このブログ読んでる人ならどれも ready for use ですよね。もしまだのひとは cpan -i Plack JSON Path::Class でよろしく。 git clone して plackup して Firefox 3.6.x 以降で開いてください。 複数ファイルをドロップしたときになんかうまく動いてない気がするとか、 app.psgi の書き方がだいぶいい加減とか、微妙なところはたくさんあるけどとりあえず動くところまでいけたので公開

    HTML5 の file API と jQuery でブラウザにファイルをドラッグ&ドロップしてアップロードするサンプルを作った - @kyanny's blog
    yuiseki
    yuiseki 2010/04/11
  • linode.com で VPS を借りて、ついに tiarra を使い始めた - @kyanny's blog

    SSD Cloud Hosting & Linux Servers - Linode で VPS なサーバを借りて、ついに tiarra を使い始めた。 さくらインターネットの 500 円レンタルサーバを借りていたんだけど(今も借りてる)、デーモンは起動できないし root 権限もないので不自由していた。かといって、専用サーバを借りるのはお金がかかる。 VPS だとその中間くらいで、前から気になっていていろいろ調べていたが、 linode.com はスペックと価格を見比べて、妥当だ(払える)と思ったので借りてみた。 linode.com 導入までの手順は、Linode - 自由度が高い VPS サービス - ボンノウドットコム Wiki が詳しい。地理的に日に近いカリフォルニアのサーバを借りて Debian lenny をインストールした。 ping が 150ms を超えるので、やっぱ

    linode.com で VPS を借りて、ついに tiarra を使い始めた - @kyanny's blog
    yuiseki
    yuiseki 2010/03/22
    月 29 ドル
  • 株式会社paperboy&co.に入社しました - @kyanny's blog

    二月一日付で、株式会社paperboy&co.に入社しました。写真共有・保存サービスの 30days Album™の開発に携わります。 ずっと残せる PRO プランがふえた 30days Album™ ともども、今後ともどうぞよろしくお願いいたします。 入社に至る経緯 YAPC::Asia 2009 で mizzy さんが「勤怠管理システムが必要になったので自前で作りました」といっていたのを聞いて、当時 IE6 or 7 でしか動かない安普請の勤怠管理パッケージの扱いにうんざりしていた苦労していた僕は「これや!ワイが求めとったんはこれだったんやー!」と一目惚れしてしまいました。 というのは半分冗談で、 30days Album™ のことはローンチしたときから「カッコイイなぁ、特にトップページの写真がすごくいいなぁ、結婚式の写真めちゃめちゃいいわぁ」と思っていました。また技術的な面でも Ra

    yuiseki
    yuiseki 2010/02/04
  • やっとわかった、リバースプロキシの設定の意味 - @kyanny's blog

    いままでリバースプロキシの設定がよくわかっていなくて、すでに動いているサーバの設定を見よう見まねで使い回してきた。ちゃんと理解しようと思って、マニュアルを読み直したらやっとわかった。設定の方法 (How) がわかったこと以上に、なぜそう書く必要があるかという理由 (Why) を理解できたのが嬉しい。久しぶりに「わかった!」と叫びたくなった。感動を忘れないうちに、思い出せるように、書いておく。 mod_proxy - Apache HTTP サーバ バージョン 2.2 が Apache のプロキシ関連のマニュアル。 mod_proxy を使うことになる。 大事なディレクティブは、 ProxyPass と ProxyPassReverse のふたつ。 ProxyPass これがリバースプロキシをする上でのほとんどすべてのことをやってくれる。実は見慣れた (コピペし慣れた) 設定ではこのディレク

    やっとわかった、リバースプロキシの設定の意味 - @kyanny's blog
    yuiseki
    yuiseki 2009/10/17
  • はじめての Arduino - @kyanny's blog

    Arduino を買ってみた。自分の書いたプログラムコードでハードウェアを制御するのはたぶんうまれてはじめて。電子工作の類もほとんど経験がないので、ゴツゴツした基盤を触ってるだけでなんだか新鮮な気持ち。 嬉しいのでデジカメで動画を撮って YouTube にアップロードしてみた。 YouTube へアップロードするのもこれがはじめて。 Google アカウントと YouTube アカウントのひもづけとかもさっきやったばかり。ちなみに動画二つあるけどどっちもスケッチは同じもの。片方は露出を最低まで落として LED の点滅が見えやすいようにしてみた。 Arduino IDE のほうは、最新版は arduino-0017 がダウンロードできたのだけど、起動すると Arduino cannot run because it could not create a folder to store you

    はじめての Arduino - @kyanny's blog
    yuiseki
    yuiseki 2009/09/02
  • 「4Gbpsを超えるWebサービス構築術」という本が出ます - @kyanny's blog

    ソフトバンククリエイティブから「4Gbpsを超えるWebサービス構築術」というが出ます。詳細はlivedoorディレクターブログをごらんください。 4Gbpsを超えるWebサービス構築術 作者: 伊勢幸一,池邉智洋,栗原由樹,山下拓也,谷口公一,井原郁央出版社/メーカー: ソフトバンククリエイティブ発売日: 2009/08/21メディア: 単行購入: 44人 クリック: 857回この商品を含むブログ (51件) を見る 注意・・・するまでもないですが、僕は書いてません・・・。「が出るらしい」って噂を初めて聞いたのも二週間くらい前だし・・・。 内容についても全く知らないので、章のタイトルと担当者をみて「どんなことが書いてあるのかなーあの人だからこういうことかもなー」と想像を巡らせています。たぶんおすすめは「Chapter 6 入出力パフォーマンス」と「Chapter 7 分散ストレージ

    「4Gbpsを超えるWebサービス構築術」という本が出ます - @kyanny's blog
    yuiseki
    yuiseki 2009/08/14
  • jQuery と jTemplates - @kyanny's blog

    を、使ったので、メモ。 jQuery.postJSON = function(url, data, callback) { jQuery.post(url, data, callback, "json"); }; jQuery のリファレンスマニュアルに載っていた例。 var $jtemplates = jQuery.createTemplateURL("http://example.com/js/jquery/templates/sample.txt", null, {}); jQuery('#hoge').html($jtemplates.get(data, null, window); createTemplate の引数はなんだろう。しらべていない。 $jtemplates が Template ってやつで、 get というメソッドで data を与えるとテンプレートを proce

    jQuery と jTemplates - @kyanny's blog
    yuiseki
    yuiseki 2009/06/24
  • Cyan を作った高校生のインタビュー記事を読んだ - @kyanny's blog

    すでに旧聞といっていい話題なのだろうけど気にせず感想を書こう。 五ヶ月で五つのプログラミング言語を覚えたことについて、文法だけ勉強して理解できちゃうってのがすごいと思った。センスがいい、とかいうのはこういうことを言うのかもなあと。 あと、インタビュアーの東大教授の「ウェブなんて上っ面だけだからわざわざ勉強する価値ナシですよ」は、多少はショックを感じたけども、そんなもんかもな、とも思った。オペレーティングシステムもプログラム言語もウェブサーバもデータベースサーバも、何もかも最初からあって、それの使い方を覚えてただ接ぎ木をしたり糊付けをしたりしているだけ。その糊にあたるウェブアプリケーションフレームワークにしたってすでにあるものを使っているわけで。 でもすごい人らを特別扱いしてしまうと自分の限界を低くしてしまう気がするのでそれはやめようと思った。自分とはすごく差があるけど、絶対に届かない領域で

    Cyan を作った高校生のインタビュー記事を読んだ - @kyanny's blog
    yuiseki
    yuiseki 2009/01/19