It is good for programmers to understand what goes on inside a processor. The CPU is at the heart of our career. What goes on inside the CPU? How long does it take for one instruction to run? What does it mean when a new CPU has a 12-stage pipeline, or 18-stage pipeline, or even a "deep" 31-stage pipeline? Programs generally treat the CPU as a black box. Instructions go into the box in order, inst
If you ever wrote production multi-threaded server in Java you know how it is difficult to implement load balancing between worker threads. You need to fight many issues to have good load balancer: You need to limit somehow the number of worker threads, because with unlimited thread pool you can have memory exhausted. You need to implement sophisticated procedure for clean worker shutdown. If you
Ruby developers need to stop using EventMachine. It's the wrong direction. Lost in the "Threads vs Event Driven vs Process Spawning" debate is that you can combine them! Learn how Celluloid is improving thread programming by abstracting them using a higher level framework called Celluloid, how you can use Celluloid::IO to throw a reactor pattern into a thread. Using this approach, you can take adv
By Ilya Grigorik on September 03, 2010 Berkeley Sockets (BSD) are the de facto API for all network communication. With roots from the early 1980's, it is the original implementation of the TCP/IP suite, and arguably one of the most widely supported and critical components of any operating system today. BSD sockets that most of us are familiar with are peer-to-peer connections, which require explic
Mongrel2は各種の外部リクエストをZeroMQに変換することにより、均一なインターフェースを提供し言語ニュートラルな分散型のシステム構築を可能にしてる。 http://sheddingbikes.com/posts/1276761301.html 「まだ君は気がついていないかもしれないけど、このデザインはウェブアプリケーションのアーキテクチャーと稼働形態を変えるものにる可能性がある」 "It may not dawn on you quite yet, but I think this design has a verygood chance of changing how we architect and deploy web applications." 大口を叩くので有名なZedがまた何か叫んでいる。聞いてみようではないか。 全ての言語を愛するサーバ mongrel(バージョン
ZeroMQ http://zguide.zeromq.org/page:all JeroMQ https://github.com/zeromq/jeromq ZeroMQはシンプルで高速なプロセス間通信を実現する C/C++のライブラリ。ライブラリのラッパーは対応言語が豊富。 キューは永続化はされない。メモリで処理されるので高速。 ライセンスはLGPL。 こちらのエントリが詳しい ØMQ(zeromq)について調査する。 JeroMQはZeroMQがC/C++で書かれてるのに対してJavaで書かれている。 libzmq 3.2.2に基づいた0.3.0-SNAPSHOTを今回は使用する。 ZeroMQと違いJava実装なのでJVMとjarがあれば動いてしまう手軽さが良い。 またパフォーマンスも頑張っている。ライセンスはLGPL。 では上記のような Client REQUEST <-> R
ちょっと内緒にしたいような気がしますが、知っていたら確実に得をするAWS EC2のチップスがスポットインスタンスの活用です。まずスポットインスタンスとは?AWSのインスタンススポットのページを読むと大体解りますが、簡単に説明するとAmazonで余剰のEC2のインスタンスを入札制で大幅に安い値段でを利用する仕組みです。デメリットとしては、スポットインスタンスのインスタンス価格が入札価格を上回った場合、情け容赦なくインスタンスがストップされることです。ということで、Amazonの推奨としては以下のように、通常のインスタンスを補完するような位置づけとなっています。 オプションのタスク 遅延可能なタスク コンピューティング能力を追加することで高速化できるタスク 他の方法ではアクセスできない大量のコンピューティングインスタンスが必要になるタスク しかし、制約があるものの圧倒的に安いです。オンデマンド
皆さん、お久しぶりです。長らくブログの更新が止まっていたのは、少し大きな仕事をしていたためです。ジョー・セルコ『プログラマのためのSQL 第4版』の翻訳。これに集中するため、ブログもやらずTwitterもやらず(こっちはちょっとやってしまった)頑張っておりました。 長かった。 本当に長かった。 原著が800ページ以上あるうえ内容も簡単ではないので、もともと楽な仕事とは思っていませんでしたが、いや大変でした。ですが無事今月刊行とあいなりました。すでにAmazonはじめオンラインショップでも予約受付を開始しています。あらかじめ言っておきますが「表紙のおっさん誰?」という質問は私にはしないように。私も答えられないので(笑)。 さて、本書の内容を紹介する代わりに、少し長くなりますが訳者前書きを引用します。購入するか判断の参考にしていただければと思います。なお、実行環境としては前書きでも書いています
○モデル 従来のDBMSではデータの書き込み、牽引、問合せ、計算処理、結果の出力の流れとなっており、短い期間に数千のデータイベントを受信する場合ではこのデータベース駆動型アーキテクチャではデータストリームに対応が出来ない。 In-MemoryDBでも同じ。In-Memoryでは書き込みコストはなくなるが、インバウンドイベントの牽引、問合せ、トランザクションの完全性優位などにより、データストリーム対応は困難。 そこで、イベント駆動型アーキテクチャのストリーム処理エンジンが登場。 データ到着すると、即座に問合せ、計算処理を行い結果を出力し、データベースへの書き込みは必要なものだけをデータ処理と並行もしくは結果出力後行われる。これにより、real-time処理が出来る。 このモデル(アーキテクチャ)のために、スケジューラ、プロファイラ、オプティマイザ、エグゼキュータ、ロードシェダー、メモリマネー
外部サイトのJSファイルを読み込むときに、こういう書き方するのはやめましょう。 <script src="http://example.com/js/jquery.js"></script> 理由 あなたのサイトが、いつの日かSSLに対応することになったとき、そのscriptタグがバグの原因になります。 ご覧のとおり、HTTPSページの中でHTTP要素を読み込もうとすると、ブラウザによっては安全装置が働いて読み込んでくれないのです。 上の例ではjQueryの読み込みに失敗していますが、エラーメッセージ「Uncaught ReferenceError: jQuery is not defined 」を見てもHTTPS/HTTPのプロトコルが原因だとはすぐ気づかないので、わかりにくいバグになってしまいます。 結論 JSファイル(とかCSSとか画像とか)を読み込むときは、"http:"の部分を省
Steve Souders氏は最近獲得したブラウザのパフォーマンス改善に関して注目されるいくつかのテクニックを5回シリーズのブログで公開した。Steve Souders氏はGoogleのエンジニア。Googleに務める以前はYahoo!でYSlowの開発に従事。Webページの高速化に関する開発に携わっており、特にHTMLやHTTP、JavaScript関連の高速化技術に定評がある。 シリーズの1回目であるHigh Performance Web Sites :: 5a Missing schema double downloadでは、IEでCSSファイルが2回ダウンロードされるケースがあることが紹介されている。同内容をRobert Nyman氏もCSS files downloaded twice in Internet Explorer with protocol relative UR
By Ilya Grigorik on May 27, 2011 The growth of both the types and the amount of data generated by servers, users, and applications have resulted in a number of recent trends and innovations: NoSQL, rise of popularity of Hadoop, and dozens of higher-level map-reduce frameworks. However, the batch-processing model imposed by map-reduce style of processing is not always a great fit either, especially
We published our first ever UI-focused post on Top JavaScript Dynamic Table Libraries the other day and got some valuable feedback – thanks! We are back to talking about the backend again. Our Search Analytics and Scalable Performance Monitoring services/products accept, process, and store huge amounts of data. One thing both of these services do is process a stream of events in real-time (and b
3. こんな感じ select count(*) from accesslog:win(30sec ) group by path having count(*) > 5 output input { { count(*): 20, host: 10.1.1.1, path “/index.html” path : “/index.html”, } code: 200 { } count(*):6, path “/favicon.ico” } 5. Data Flow Query Registration Proces Compone Client(ruby) s nt RPC Client msgpack-RPC fluentd (ruby) Subscriber(java) query input 0mq publish 0mq Esper RPC output msgpack sub
eXo Cloud IDEからCodenvyへ Codenvyは、もともとクラウドサービスを提供するeXoで開発されていたeXo Cloud IDEからスピンオフして設立された企業で、様々な言語やクラウドプラットフォームに対応したWeb IDEを提供している。 Codenavyは無償で使用できるが、利用にはメールアドレスの登録が必要だ。また、非公開のプロジェクトの作成や、専用VMによるビルド、チームマネージメントなどの機能を利用可能な有償版、さらにイントラネット内に設置して利用可能なCopdenvy Enterpriseも用意されている。 Codenvyがサポートしているプラットフォーム CodenvyはPaaS上で動作するWebアプリケーションの開発に主眼が置かれており、以下の言語とPaaSがサポートされており、プロジェクトの作成時に選択できる。 プログラミング言語 Java JavaS
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く