投稿

4月, 2012の投稿を表示しています

Windows 8 - Windows Developer Days

イメージ
@ats 先生のご紹介で Windows Developer Days に参加させて頂きました。ありがとうございます!Microsoft のイベントは 10 年振りぐらいですかね。前回行ったパシフィコ横浜の時に比べると、こじんまりした会場で、人口密度がかなり高く、装飾が派手でした。Windows 8 は他の OS に負けない UI ! という意気込みを感じます。 セッションもメトロスタイルなアプリのデザイニングに関するものが厚めでした。MS 社のイベントでこれだけデザインの話がでるというのも新鮮です。今んとこ開発予定はないですが、メモ Windows 8 RC 版を 6 月 1 週にリリース スタートボタンから Metro UI へ (デスクトップモードもちゃんとある) USB で持ち歩ける -> Windows To Go (抜いたら停止、挿したら再開、抜いて 60s 経ったらシャットダウンし、データも消える) 新しく Metro スタイルアプリが追加 Metro style Apps MVC は HTML/CSS/JavaScript or silverlight で ネイティブリソースにアクセスする場合は WinRT or WinJS MS の方曰く、IE で動くものは基本的に移植可能 白石先生 (html5j.org) 曰く、html5 アプリがそのまま動けばいいけど、制限があるため Metro アプリケーション用に改修が必要とのこと ※ iframe なら可 配布は基本的に Windows Store のみ デザインガイド その他 Hadoop の Windows ディストリを公開予定 Hive や Pig 等の主要プラグインもパッケージング Server 版と Azure 版を提供予定 (Azure 先行) すべて javascript で制御可能 rails アプリケーションを Azure で動かす Intel Ivy bridge は省電力とのこと Intel の  Tick-Tock  戦略の Tock Intel Parallel Studio は面白かった! パフォーマンス分析、チューニングが出来る プロファイルとか最適化さ

実践 Qt4 プログラミング - O'Reilly

O'Reilly 様から " 実践 Qt4 プログラミング " をご献本頂きました。 有難うございます !!初めての献本ということで小躍りしました。この本は入門書ではないので、今から Qt4 を触りたいという方は " 入門 Qt4プログラミング - O'Reilly" もあります。 中身をどこまで書いていいのかわかりませんが (w、各章で Web アプリケーションクライアント、メディアプレイヤー、データ・モデルビュアー、エディタ等々 幅広い デスクトップアプリについて解説されています。データ・モデルビュアーが厚めです。その各章にアプリケーションの作例 (25 ちょい) があり、 丁寧にコードリーディングしていくことができます 。サンプルコード量約 2 万行w 読み応え十二分です。Qt は (この本がカバーしてる Ver.4.6 ) 800 近いクラス からなっているので、そんなもんなんでしょうね。 クラスの API リファレンスは公式ドキュメントを読むとして、この本の素敵なところはコードリーディングをしていくうちに Qt4 の重要な機能を理解できる ことと、 デスクトップアプリケーションを作る際に気を付けるべきことが勉強できる ことだと思いました。まさに実践向きですね。あと、プラットフォームごとの差異、非推奨の機能、デスクトップアプリを作成する際に注意すべきことが各所で紹介されています。これも嬉しいですね。クロスプラットフォームなデスクトップアプリにご興味がある方は必読だと思います。 >>> PySide/PyQt の参考書としては? 十分使えます 。量バインディング共によく出来ていて、クラス名やプロパティはそのまま、c++ で書かれているロジックを Python に置き換えれば動きます。ただし、マクロは Python に書き換える必要があるのと、シグナル・スロットの書き方、各クラスが属しているモジュール (QtCore, QtCore.Qt, QtGui...) は調べる必要があります。 アプリケーションを起動する main 関数 int main(int argc, char *argv[]) { QApplication app(argc, argv);

Pinterest のスケール

V 先生から 教えて頂いたので、Instagram 同様 Django/AWS 構成の Pinterest のスケールをメモ。 Pinterest はいつものアカウント名が初めて 先取 されたサービスなので、今後使わないと思います 。 本題に入る前に、Python には The Zen of Python ( 日本語 ) という思想があります。私はこの思想を Python でのプログラミングだけでなく、インフラの構築の際も意識するように心がけています。" Simple is better than complex " です。Instagram や Pinterest のスケールを見て、この思想がもっと好きになりました。 Instagram はよりシンプルなインフラに更改していくことで、ただスケールするだけでなく、運用や変更のコストも最小限になるように最適化していると思います。結果的に Android アプリ公開等のサービス拡大時にも少ないエンジニアリングで柔軟に対応できたのかと。これはあくまでもイメージでしかありませんが、AWS 上でスケールアップできるところまでスケールアップし、限界が見えたところでスケールアウトで最小限のエンジニアリングコストをかける。インフラで解決できるところはインフラで解決しているというイメージです。Pinterest のスライドでは、インフラをシンプルに更改した過程が紹介されています。 >>> インフラの遷移 2010/05: 創設 RackSpace 小規模な Web Engine × 1 小規模な MySQL DB × 1 2011/01: AWS へ フロントに nginx を立て垂直分割、MySQL をマスタースレーブ構成に垂直分割、ヘビーな処理をタスクキューに分割、MongoDB を導入。 Amazon EC2 + S3 + CloudFront nginx × 1 Web Engine × 4 MySQL: Master × 1 / Slave × 1 Task Queue × 1 / Task Processors × 2 MongoDB × 1 2011 年後半: ターニングポイント LB, Web サーバを増加、MySQL をシャー

Instagram のスケール正攻法

Instagram がどこに買収されたとかは他のニュースサイトにお任せして、 Django アプリケーションを正攻法でスケールして "成功" してるのがとても興味深いです。現時点で Instagram Engineering で紹介されていることと TechCrunch にも掲載 された スライド から個人的なメモとしてまとめてみました。 Instagram の哲学は シンプル であること オペレーション負荷を最小化 すること すべて装備 とのこと。 Instagram は以下の OSS, サービスで構築されているようです。 >>> OS / ホスティング Ubuntu Linux 11.04 を Amazon EC2 にホスティング。以前のバージョンは高トラフィックになると固まる問題があったようです。運用は 3 人。EC2 にホスティングしている理由は、調査結果によるものではなく、" まだ進化途中だから " だそうです。 ハードウェアの選定、導入、セットアップの手間も省けますし、パッケージ管理等の運用も軽そうですね。 >>> ロードバランサ Amazon ELB を利用。もともとは DNS ラウンドロビン + nginx のロードバランサでバランシングしてたらしいですが、DNS の更新が遅いので止めたとのこと。nginx の負荷を軽減するために SSL も ELB までで、あとは HTTP。ELB はほんと素敵なサービスだと思います。DNS も Amazon Route 53 を利用。GUI での管理が素敵とのことです。 >>> アプリケーションサーバ Django アプリケーションを EC2 の High-CPU Extra-Large インスタンスで実行。2012 年開始ぐらいでは約 25 インスタンスと書かれています。Android アプリを公開して 10 日で 1000 万ユーザ (20 時間で 100 万ユーザ) を獲得したようなので、今はもっと多いでしょうね。こういうサービスの拡大に柔軟に対応できるのも EC2 を含むクラウドの魅力だと思います。High-CPU にしている理由はおそらく PIL を多用するからでしょう