サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
iPhone 16
blog.stanaka.org
「Webエンジニアのためのデータベース技術実践入門」を献本いただきました。著者の松信さんはMySQLの専門家で、これまでも数々の良書を執筆されています。ここ1,2年でデータベースの設計や運用の考え方は大きく進化したのですが、そのあたりが分かり易く解説されており、期待を裏切らない良本でした。 Webエンジニアのための データベース技術[実践]入門 (Software Design plus) 作者: 松信嘉範出版社/メーカー: 技術評論社発売日: 2012/03/09メディア: 単行本(ソフトカバー)購入: 20人 クリック: 480回この商品を含むブログを見る 目次は松信さんのブログエントリにありますが、データベース技術の背景にある考え方から、具体的な概念、MySQLでの実践的な運用、データベースに適したハードウェアの特性まで記述されており、Webアプリケーションエンジニアはこの一冊を読ん
出張やちょっとした旅行に行った時のホテルや、週末の誰もいないオフィスで音楽が聞きたいなと思った時は、誰もいないのにわざわざイヤホンを使ったりしていたのですが、最近JAMBOXを買ってから、期待以上に気軽かつ良い音で音楽を楽しむことができて、Life Chaging感があるので、それを紹介します。これはいいガジェットですよ! 【国内正規品】 JAWBONE ポータブル Bluetooth ワイヤレス スピーカー Jawbone JAMBOX レッドドット ALP-JAM-RD 出版社/メーカー: Aliph発売日: 2011/02/17メディア: エレクトロニクス購入: 1人 クリック: 25回この商品を含むブログ (2件) を見る JAMBOXはざっくり言うと「Bluetoothによるワイヤレスポータブルスピーカー」なのですが、コンパクトさ、デザイン、使い勝手、音質が極めて高い次元でバラン
こんばんは、stanakaです。 はてなユーザーの皆さんもご存知の通り、はてなIDには大文字小文字の区別があります。それは僕が2001年頃、はてなのユーザーデータを保存するテータ定義を最初に書いた時にCase-sensitive(大文字小文字を区別する)にしてしまった、という歴史的経緯によるものです。おかげで、悲喜こもごもあった/あるわけですが、負けずに今後ともネットならではの面白さ/楽しさを各方面で追求していこうと思います。 さて、はてなと言えば、充実したまかない。充実したまかないと言えば、体重増。ゆえにはてなに入ると体重増、という三段論法が成り立つわけですが、今年はあえて、それに反例を突き付けるべく、体重減に勤しんでおりました。 結果を言えば、約12kg減を果たし、今も順調に減らしてます。減量ペースも月1kg減を維持していて、理想に近いんじゃないかな、と思います。減量に成功した!などと
3/24に発売された「オンラインゲームを支える技術」は、ウェブエンジニアも必読の本だと思います。(しばらくAmazonでも在庫切れになっていたようですが、今は復活しているようです。) オンラインゲームを支える技術 ??壮大なプレイ空間の舞台裏 (WEB+DB PRESS plus) 作者: 中嶋謙互出版社/メーカー: 技術評論社発売日: 2011/03/24メディア: 単行本(ソフトカバー)購入: 32人 クリック: 1,693回この商品を含むブログ (48件) を見る 本書で扱う領域は、目次を一瞥するだけで分るように非常に多岐に渡っています。主な項目として、「オンラインゲームの企画で考えるべきこと」から「実際のアーキテチャや使うべき技術」「プロトコルの設計と改善方法」「インフラの選択・構築方法」「必要となるエンジニアのリソースの見積りや共同開発手法」までカバーされており、まさにオンライ
本日9月1日付けで、はてなのCTOを引き継ぐことになりました。 この2年半は主にはてなのインフラを見てきましたが、これからは、はてなの技術全般を見ていくことになります。 昨日の退職エントリでも書かれていた通り、「はてな」という会社は、プレイヤーの個人技を中心とした属人的な体制から、チームプレイによる組織的な体制に徐々に移りつつあります。この変化には良い面、悪い面の両面がありますが、はてなのサービスをより拡大させるために必要なことだと考えています。また、個人の働き方としても、一定の役割りが固定的に与えられ、それを何年も続けるよりは、流動性と多様性を確保したほうが、会社としても個人としても幸せになれると思います。 昨日、id:naoyaが退職し、今日、id:ShigeakiYazakiが入社しました。このようにサービスを担う人は徐々に代わりつつも、「T型コミュニケーションを促進する」というはて
先週後半ぐらいから、Cassandra関連で色々動きがあったので、まとめておきます。 一番注目されるTwitterのCassandraへの方針ですが、Twitterのエンジニアリングブログの記事で明らかにされています。 We're using Cassandra in production for a bunch of things at Twitter. A few examples: Our geo team uses it to store and query their database of places of interest. The research team uses it to store the results of data mining done over our entire user base. Those results then feed into thi
「Web開発者のための大規模サービス技術入門」をid:naoyaと共著で書きました。執筆の経緯については既に書かれていますので、そちらも参照してみてください。 「Web開発者のための大規模サービス技術入門」という本を書きました - naoyaのはてなダイアリー この本は、はてなのインターンの講義内容を一冊にまとめたものです。はてなのインターンは、前半ではてなのエンジニア陣による講義でWeb技術全体を俯瞰し、後半で実際にコードを書きながらサービス開発に携わる、という構成になっています。本書は、その前半の講義を、さらに濃く凝縮した内容となっています。 インターンでの講義内容は、Perlの基本、シンプルなウェブサービスを作成するところから、はてな規模のサービスの構築・実装方法までを網羅しています。これらの技術は、アプリケーションエンジニアからインフラエンジニアまでWebサービスに関わる全てのエン
先週、ダイアリーがリニューアルされました。今回のリニューアルはダイアリーの応答時間の改善が目玉の一つとなっており、そのために1週間リリースを延ばし、改善の時間を確保していました。今回は、この改善について記しておきます。 はてなでは「推測するな、計測せよ」の原則にしたがって、ダイアリーのユーザーページの全アクセスの応答時間を解析し、ヒストグラムを作っています。また、特定の閾値(1秒、2秒とか)以内に何%のリクエストを返却できている割合をグラフ化しています。 このグラフを見ると、応答時間時間は時間とともに劣化することが一目瞭然です。実際に今年初めの値と比較すると10%〜20%程度の悪化が確認されました。あとは、これをひたすら改善していくのみです。今回実施した主な対策は、以下の通りです。 ネットワーク パケットロスが発生しているようなトラフィック経路上のボトルネックの解消(L2スイッチの置換、物
シンガポールにAWSがやってきました。Amazon EC2、S3だけではなく、Amazon RDSなど、VPCを除いた、ほぼフルセットとなっているようです。 We've just opened up an AWS Region in Singapore, with two Availability Zones. The new region supports Amazon EC2 (including Elastic IP Addresses, Amazon CloudWatch, Elastic Block Storage, Elastic Load Balancing, and Auto Scaling), Amazon S3, Amazon SimpleDB, the Amazon Relational Database Service, the Amazon Simple Queu
先日のエントリで書いた通り、最近はAmazon EC2を本格的に使うために色々試しているところです。Amazon EC2でのノウハウも溜りつつあり、世の中的にも事例が徐々に出てきていますが、すこし前に26台まとめて吹き飛ぶといった、クラウドのデメリットも徐々に表に出てきつつあります。 この手のデメリットはクラウドを使う以上は本質的に避けがたいのですが、その時のためにもAmazonの奮起に期待するとか、なんとかバッドノウハウでカバーする、というだけではなく、そもそも別のクラウド事業者をいざという時の選択肢として確保しておきたいところです。 選択肢となりえるクラウドサービスは、国内でもいくつか登場してきていますが、今回は、ちょっと伏兵的なWindows Azureの可能性を試してみました。(Google App Engineは、さすがに環境が特殊すぎるので過去の資産がある立場としては、選択する
EC2上では、仮想IPアドレスなどのIPレベルの機能が制限されているため、仮想IPアドレスを使用した冗長化は基本的には使用できません。が、DNSを使用することで、VIPほどの精度は高くないもののMySQL Multi-master構成を構築することができました。 今回は、MySQL Multi-masterの切り替え用の支援ツールとして、Multi-Master Replication Manager for MySQLを使用します。このツールでは、MySQLの死活監視と仮想IPアドレスの切り替えを行ってくれます。 もちろん、EC2上では仮想IPアドレスは使えないので、そのままではうまく動作しません。ここで、このツールに含まれるns_agentを使用することで仮想IPアドレスではなく、DNSによる切り替えができるようになり、EC2上でMulti-masterを構築することができます。 今回
昨晩、自作サーバカンファレンスを開催しました。その時のオープニングプレゼンを公開します。(オープニングなので短かいものですが) Original Server ConferenceView more presentations from Shinji Tanaka. カンファレンスの内容については、id:rx7さんのエントリとBB watchさんの記事があがっておりますので、それらをご参照ください。id:rx7さんのエントリには、Ustreamの録画もありますので、是非、ご覧ください。 他のスピーカーの方にも資料公開をお願いしております。公開され次第、リンクを追加していきたいと思います。 来年もネタが溜まれば、是非開催したいと思いますので、今後ともよろしくお願いします。
先日、Hadoop ConferenceでScala on Hadoopというタイトルで発表してきました。スライドを以下に置いておきます。 Scala on HadoopView more presentations from Shinji Tanaka. ダイジェストとして、ScalaをHadoopで動かすための方法を書いておきます。 まず、Hadoop上でScalaを実行させるためには、JavaとScalaを接続するライブラリが必要となります。ここでは、SHadoop( http://code.google.com/p/jweslley/source/browse/#svn/trunk/scala/shadoop )を使用します。SHadoopは、型変換を行うシンプルなライブラリです。 よくあるWordCountのサンプル、WordCount.scala (http://blog.jo
KOF2009にて、「ウェブサービスのパフォーマンスとスケーラビリティ」と題して発表してきました。発表資料を以下に置いておきます。 Performance and Scalability of Web ServiceView more presentations from Shinji Tanaka. 概要は、「ウェブサービスのパフォーマンスを向上させスケーラビリティを高めるために、はてなでは様々な取組みを行っています。本セッションでは、はてなで採用している具体的な技術、ノウハウ、可視化手法と、それらの効果について紹介します。」というものです。 最近の、Interopやカーネル読書会あたりで話した内容をまとめつつ、レスポンスタイムの可視化という最近の取り組みについて話しました。 最近、レスポンスタイムについては、以下のようなグラフを使っています。 x軸がレスポンス時間、y軸がその時間内に収
概要 Perlの非同期処理システムとしてTheSchwartz / Gearmanを非常に便利に使っているのですが、いい感じにワーカープロセスを管理したかったので、WorkerManagerなるものを作ってみました。作ったのは実は1年以上前なのですが、ようやくの公開です。 基本は、Apacheのpreforkモデルを踏襲しています。特徴は、 子プロセスを複数起動させて、ジョブを並列実行 一定回数のジョブを実行したら、子プロセスを再作成 クラスを定義するのみでジョブを実行 TheSchwartz / Gearmanの切り替えを最低限の変更で実現 ワーカープロセスの安全な停止(プロセス停止の際に、実行中のジョブの終了後に終了) ジョブの実行時のタイムスタンプをジョブ投入からの遅延をログに保存 というあたりです。preforkモデルなので、あまりモダンな設計ではないですが、gdbでのデバッグの容
少し前にmizzyさんに そういえば、まっさらなサーバを30分で本番投入できるようにする で stanaka さんが「CPANの依存関係を解析してrpm化する手製スクリプトで、CPANモジュールのrpm化が、ほぼ自動化されています」と書いてるんだけど、これって公開してくれないのかなー。 HowToRpmizeCpanModules - mizzy.org - Trac と突かれたので、githubで公開してみます。 http://github.com/stanaka/cpan-dependency/tree/master 突かれたついでにmizzyさんに軽く動作確認してもらったところ、それなりに動いているようです。また、はてなでは、このスクリプトを利用して、日々それなりの数のCPANモジュールのrpm化を行っていますので、だいたいうまく動くのではないかと思います。 CentOSやFedor
先週、AMD主催のセミナーで「はてなでの仮想化技術の使い方」という発表をしてきました。 はてなでは、1年半ほど前から仮想化技術に取り込んでおり、現在では300台以上のサーバが仮想化されています。仮想化技術には、様々なメリットがありますが、はてなではサーバリソース利用率の向上と、システムの安定化の二つの利点を重視しています。サーバを仮想化していく際に、どのようなポリシーで一つの物理的なサーバに仮想化ホストを積み重ねているか、とか、実際どれぐらい効率を上げられているか、とか、あとAMDさんのセミナーなので、消費電力的にはOpteronが実測結果からは10〜20%程度効率がいい(負荷時にOpteron 1.82A, Xeon 2.17A)、というあたりの話をしてきました。 How to use Virtualization Technology in HatenaView more presen
日本語が亡びるとき を読みました。普段は、あまり書評らしいものは書かないのですが、いろいろ確信が得られたので、熱が逃げない内に記します。 日本語が亡びるとき―英語の世紀の中で 作者: 水村美苗出版社/メーカー: 筑摩書房発売日: 2008/11/05メディア: 単行本購入: 169人 クリック: 12,641回この商品を含むブログ (456件) を見る この本で論じられている「日本語はこのままだと亡びる可能性がある」ということは、僕にとっては、若干背を向けたかった現実だったりします。僕は、英語が完璧にはほど遠いエンジニアの常として、なんだかんだ言って日本語をベースとした活動としています。「日本語が亡びる」ということは、それらの活動が将来的に無になってしまうことと、ほぼ同義です。 技術、特に情報科学・技術を専門としている身としては、英語が普遍語である、というのは、この本に教えられるまでもなく
先週の金曜にサーバ/インフラ Tech Meetingで「はてなのインフラ、いまむかし」という発表をさせていただきました。先日発売された「サーバ/インフラを支える技術」の新刊記念のイベントです。 [24時間365日] サーバ/インフラを支える技術 ?スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ) 作者: 安井真伸,横川和哉,ひろせまさあき,伊藤直也,田中慎司,勝見祐己出版社/メーカー: 技術評論社発売日: 2008/08/07メディア: 単行本(ソフトカバー)購入: 132人 クリック: 2,246回この商品を含むブログ (283件) を見る 発表内容は、OSC 2008 Kansai in Kyotoでid:naoyaが発表したはてなのインフラの歴史の抜粋に加えて、今後、発展させようしている方向性について話させていただきました。ちょっと30
先日のShibuya.pm #9のLightening Talkで「gdbでXS on mod_perlをデバッグ」という話をしてきました。XSを使い出すと、従来のPerl的デバッグだけでは不十分なのでgdbをうまく使って、効率的にデバッグしましょう、という話です。実は、はてな社内では1年近く前に勉強で話したネタだったのですが、ようやく公開することができました。 Shibuya.pmでは5分という枠があったのでショートver.でしたが、ここでは制限はないので、本来のロングバージョンの資料をアップします。ちょっと公開できない情報が混っていたので、xxxで隠していますが、ご了承ください。 ちなみに、Rubyとかでも似た感じでデバッグできると思うので、そちらの人も参考にしてください。長いよ!という人は、最後の「これは設定しておけ的gdb初期化マクロ」だけでもどうぞ。かなり便利です。 (資料公開が
最近、「Introduction to Information Retrieval」というStanfordの大学院向け教科書のドラフトを読んでいます。id:naoyaあたりが勉強会で読んでいる教科書です。この教科書には、効率のいい全文検索システムを作るにはどうすればいいか、という(まさに)教科書的手法が網羅的に書いてあり、そのあたりに興味がある人には、非常に興味深く読めるお勧めの本です。 ただ、面白い面白いと言っているだけでは、エンジニアとしては価値半減ですので、GW中にrubyで一日かけて実装してみました。 さすがに実装は、一日で作ったものですから、非常に素朴です。マルチバイト文字はbi-gramで、シングルバイトはスペースなどの区切り記号で認識しています。インデックスは、rubyの処理系のHashやArrayで保持しており、外部にMarshallで書き出す、というものです。検索エンジン
今年もMySQL Conference 2008に行ってきました。社内向けの報告資料と雑多なメモですが、よろしければ参考にしてください。 *1 概要 MySQLがSunに買収されて始めてのConference 8セッション並列で、OSCONの規模にだいぶ近い MySQLが扱うトラフィック量・データ量がどんどん大きくなってきており、それにどう追従するか、という観点の話が多い 買収の話とか "MySQL、新機能追加は有償版の「MySQL Enterprise」だけを対象に"というのは、かなりミスリーディングな記事 実体は一部のセキュリティ形の機能やnative storage engine-specific driverをMySQL Enterpriseとして出す、という話 Backup機能や、Falcon, Mariaといったストレージエンジンの開発では、Community ServerとE
前に自前DCは没になったという話を書いたのですが、自前DCというのは、けっこう悪くない選択肢です。 自分達でできないことは基本的に外部に頼むしかないのですが、そのノウハウをある程度以上の期間、必要とされる場合には、最終的には自分達でやったほうが、コストも抑えることができるし、ノウハウも蓄積することができます。 例えば、VPN一つ張るにしても、外部にお願いすると、初期費用がうんぬん、保守費用が月でうんぬん、と言うことになります。ですが、OpenVPNあたりを使って自前で構築してしまえば、最初は安定させるのに苦労するものの、人件費以外のコストは相当に抑えられます。 この手のものを自前で構築した場合に問題となりがちなことは、障害が発生した場合の対応ですが、はてなの場合、もともとサーバの保守はしているので、そこに監視対象が一つ増えただけ、と思えば、差分は誤差のようなものです。 そういうわけで、基本
はてなの京都移転話も、もうはや周回遅れ気味ですが、あまり気にせずにいきます。ちなみに、今回のエントリの結論はタイトルそのままで、データセンターは京都に移転しません、ということです。 これまで、はてなはデータセンターの移転を二度経験しています。一回目は、京都から東京で1日半ほどサービスが停止しました。その後、鉢山からさくらインターネットのiDCへ1年ほどかけて徐々に移転しました。この時は、各サービスが最大半日程度停止しました。 今回の京都移転を計画していた時もid:jkondoはいつもの調子で、自前サーバからさらに自前DCなんてどうどう?、などと言うのですが、300台程度の規模では自前DC建設の初期コストは賄えないし、また移転のために長い時間サービスを止めれられる状況でもないでしょう、ということで(幸いなことに)没になりました。やれやれ。 id:naoyaもはてなのインフラの仕事から卒業して
先日に引き続き、Wanderlust + Gmail IMAPのお勧め設定です。.wlに追記することで、動作するようになります。 WanderlustからSPAM判定 Spam指定は、%[Gmail]/Spamフォルダへの移動、ということなので、Gmailのショートカットと同じく"!"でSpam指定できるようにしてみました。"!"は、もともと未読に戻るという機能だったのですが、それはM-uに移動させてみています。 (defun st-wl-summary-refile-spam () (interactive) (wl-summary-refile (wl-summary-message-number) "%[Gmail]/Spam") (wl-summary-next)) (define-key wl-summary-mode-map "!" 'st-wl-summary-refile-
ついに、Gmailで待望のIMAPサポートが追加されました!もう何年もGmailにIMAPサポートがあればなぁ、と待ち望んでいたので、極めてうれしいです。 これで、 普段は、Gmailの安定したバックエンド + フロントエンドの軽快なメーラ 出先や他のPCを使う時は、GmailのウェブUI という理想的な使い分けができるようになります。いかにGmailのUIが素晴しくても、ローカルクライアントの軽快さにはかなわないですからね。 ここで、IMAPクライアントとしてどのメーラがいいか?という話になるのですが、オールドタイプのEmacs厨としては、Wanderlustが一押しです。Thunderbirdなんて軟弱者向けです。mewも悪くはないですが、IMAPでのソートをサポートしていないのが致命的です。 というわけで、Gmail向けのWanderlustの設定をまとめてみました。Emacs信者の
一年ほど前に「ConsolasをIE( or putty or gVim et al.)で使う」という記事を書いたのですが、同じ方法でVistaではFont Linkによる日本語フォントの割当てがうまくいかなかったので、Vista対応のレジストリ(MSゴシック版)を作ってみました。Vistaでは、ファイル名を入れるレジストリの型を「REG_MULTI_SZ」にしないといけないようです。エキスポートの形式もhexとなってます。 puttyでのスクリーンショットです(使い周しですが) ついでに以前の記事のレジストリファイルのリンクが切れていたので、再調整しました(過去記事のリンクも修正してます)。 ConsolasMSGothicForVista.reg (Vistaの人用) ConsolasMSGothicForXP.reg (XPの人用) これでVistaでも快適なConsolasライフを
以前、keepalivedのinclude対応パッチを本家MLに投げたのですが、今日リリースされたv1.1.14に取り込まれていました。 * keepalived-1.1.14 released. * Shinji Tanaka, extended parsing framework to support "include" directives. ... やはり、自分のパッチが認められて、取り込まれるのは、うれしいものですね。v1.1.14では、他にも、「error logging while parsing configuration file.」とか「vrrp_script logging.」とかが含まれていて、なかなか有用なアップデートとなっています。 ただ、include対応パッチには、実はバグが残っていたりするので(手元では解決済み)、パッチを投げてみました。他にも取り込み漏れ
もう旬は遥か前に去っている気がしますが、あまり気にせずにOSCON2007のレポートです。去年のOSCON2006、先日のMySQL conferenceに続いて、3回目のO'Reilly系Conferenceです。 いつものごとく、面白かったセッションを三つほど紹介します。あまりしっかりと整形してないので、メモっぽいところも残っていますが、ご了承ください。 Subversion: Powerful New Toys Subversionのコミッタによるセッションです。今のSubversionで不満なところ(マージがすごい面倒なところとか)が次の1.5で解消されそうで、けっこう期待です。 ここ最近の改善はWebDAV系への機能追加が多い Auto-versioning, binaryファイルの扱いの効率化など Repository replication from svn 1.4 svns
次のページ
このページを最初にブックマークしてみませんか?
『stanaka's blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く