サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
iPhone 16e
surgo.jp
遅くなったけど続編。前回 TODO にしてたスケールアウトのオートメーションあたり。AWS のオートスケールについては、 本家ドキュメント に一通り書いてあります。その機能を大まかにまとめると、 スケールアウト、バランシングが自動化できる 複数のゾーン (Availability Zone) にまたがっていても一元管理できる (AZRebalance ELB を指定してインスタンスを追加できる 不健全なインスタンスを自動的に入れ替えれる >>> オートスケールの設定 大きく分けると 3 つのステップ CPU やメモリ等のリソースを識別する CloudWatch に各リソースをモニタリングするためのメトリクスを作成する デフォルトでモニタリング可能なリソースが用意されている ( デフォルトで用意されているリソース EC2 の CPU 負荷、ディスク I/O、ネットワーク I/O ELB のホ
こんにちは。サーバの標準エディタを emacs にしたあげく vi を emacs のシンボリックリンクにした方とは、それ依頼お話していない vimmer です (嘘。今もっすご興奮しています。1 年ぶりに vimfiles の中身が更新されましたよ! 複数ファイルを同時に編集するときはバッファーを一覧表示したり、簡単に切り替えたりするバッファーマネージャ系プラグインがかかせませぬ。今までは QuickBuf というプラグインを使っていました。ただ、QuickBuf は表示できる行数を計算し、その行数を超えるファイル数を開くと "No room to display buffer list..." っていうエラーが発生する難点がありました。脳内メモリが少なすぎてファイル名が覚えられないし、バッファー内から補完もしたい。 args *.py で 50 ファイルぐらい軽く開いちゃう人なのでそれ
やり直し。2010 年の Django Con のスライドより。 Disqus は多くのサイトに組み込まれているサービスのため、メンテナンスによる停止が難しい。 >>> サーバの構成 エッジロードバランサーに HAProxy: heartbeat 構成。レポートが素敵。 HTTP ゲートウェイキャッシュに Varnish Django サーバとして Apache + mod_wsgi: 30 台ぐらい。メモリリークを防ぐために maximum-requests をセット。Ganglia で監視 キャッシュに memcached: 25 台ぐらい PostgreSQL ロードバランサーに HAProxy/PgBouncer: コネクションプール用。 PostgreSQL: 10 台ぐらい。Slony-I で非同期レプリケーションとフェイルオーバー。 ログは syslog-ng: pgFoui
私が把握してる限り Django で一番大きなサービス Disqus のスケール (執筆時点ではサービスダウンしてる)。元ネタは Scaling Django to 8 Billion Page Views です。月間80億PV、45k req/s のほぼすべてのトラフィックを Django で処理しているとのこと。抄訳になるかな。 WAF は高速開発とパフォーマンス、新しい人が入ってすぐに開発に参加できることとカスタマイズ等のトレードオフがあります。この記事ではそのトレードオフである高速開発とパフォーマンスをどう両立させるか、Disqus のノウハウが紹介されています。 >>> なぜ WAF (Web Application Framework) は遅いのか 最初に思い浮かぶのは、アプリケーションに必要ではないボイラープレート (django.contrib とか?) や不要なコードがあ
ちょうど 1 年前にリリースされてた機能だけど、恥ずかしながら知らなかった。@t2y 先生が紹介していらっしゃって、後で試してみようと思ってたのですが...。virtualenvwrapper ってインストール時にグローバルな site-packages に放り込んで、後は。。。って感じ。あんま見直したことなかったのですが、プロジェクト管理以外にも結構色んな機能が追加されてるんですね。mkvirtualenv, workon だけじゃない! ドキュメントを和訳してくださっている @t2y さんに多謝。基本的な機能やコマンド (と思いこんでいた mkvirtualenv, workon, etc...) についてはvirtualenv, virtualenvwrapper, pip を使う方法 by @IanMLewis さん, Pythonを取り巻く開発環境 (PyCon JP 2012資
PySpa がどんなイベントかは既に紹介されつくした感じですね。そもそも勉強会は "特定のテーマを共有し理解を深める" という目的のものが多いと思っています。PySpa は、それより "勉強したくなるようなテーマを発見する" ってのが大きいと個人的に思っています。私は 勉強したいテーマを見つける 童心に返って技術を楽しむ 煙草エリアのベンチを温める ために行っています。与えられてばかり、お世話になってばかりです。モチベーションしかり、趣味しかり、仕事しかり。 きっかけ 初参加は、5 年前ですかね?当時はフリーで主に某官公庁と某第三セクターの仕事をしていました。その前は九州の某移動体通信会社。仕事は設計とか、ドキュメンテーションとか、ベンダーコントロール (笑) とかがほとんど。ちょっとだけ Java とか Perl とか書いたりしてました。職業プログラマー。知識がないと仕事出来ないと思って
Hython 部の方から来ました。こんにちは。今回は Python ボルダリング部 (通称 #kabepy) のアドベントカレンダーにお邪魔させて頂きます。もともと Hython 部は Pythonista が廃村に行くとかいうノリで始まったんですが、廃村が山奥にあることが多く、いつの間にかワンダーフォーゲル部になってしまいました。昔の日本は林業大国だったんですね。 今年 (2012年) の登山成果は、 谷川岳 - 一ノ倉 - 茂倉岳縦走 富士登山 槍ヶ岳縦走 浅間山縦走 丹沢縦走 です。#kabepy のアドベントカレンダーなので "ロッククライミングのメッカ" と言われている谷川岳について書かせて頂きます。 谷川岳について 谷川岳 - Wikipedia に詳しく書かれていますが、 剣岳、穂高岳と共に日本三大岩場のひとつ 日本三大急登 (高低差) がある 遭難による死者数が世界一 (ギ
Django-ja の方からきました。こんにちわ。さて、昨日の Ian 先生のブログにも書いてある通り、ついに Django にも本格的に Python 3 の足音が近づいてきました。ただし現在 alpha 版が公開されている 1.5 では "実験的" なサポートで、1.6 以降で正式にサポートする予定となっています。あくまでも "実験的" であり、プロダクションでの利用は "非推奨" となっています。Django コミュニティでは、この 1.5 でサポートをテストしてもらい、そのフィードバックを呼びかけています。なのでプロダクションでの利用は 1.6 まで待ちでしょうね。また Python 3 サポートと同時に、Django 1.4 では Python 2.4 がサポートから外れ、1.5 では Python 2.5 がサポートから外れます。これで 1.7 以降から django.util
現在日本でサービスを提供していないため目にすることは少ないですが、AWS のベストプラクティスと呼び名が高い Netflix のスケールをメモ。ベストプラクティスと言われるだけあって、記事も解説も豊富です。まー規模が桁違い過ぎるので読み飛ばしていたってのが正直なところですが、V 先生ドリブンで資料を読み直しました。AWS の How-to 記事は日本語でも山ほどあったので、自社データセンターから AWS へ移行した過程を中心に書きたいと思います。Netflix のテクノロジーについては以下を参考にしました。 The Netflix Tech Blog @ slideshare @ github >>> サービスの規模 Netflix は主に北米で VOD と DVD 郵送レンタルサービスを提供している会社です。ほとんど VOD で、今後 DVD 郵送レンタルは縮小するらしい。AWS の資料
遅くなったけど続編。前回 TODO にしてたスケールアウトのオートメーションあたり。AWS のオートスケールについては、本家ドキュメントに一通り書いてあります。その機能を大まかにまとめると、 スケールアウト、バランシングが自動化できる 複数のゾーン (Availability Zone) にまたがっていても一元管理できる (AZRebalance ELB を指定してインスタンスを追加できる 不健全なインスタンスを自動的に入れ替えれる >>> オートスケールの設定 大きく分けると 3 つのステップ CPU やメモリ等のリソースを識別する CloudWatch に各リソースをモニタリングするためのメトリクスを作成する デフォルトでモニタリング可能なリソースが用意されている (デフォルトで用意されているリソース EC2 の CPU 負荷、ディスク I/O、ネットワーク I/O ELB のホスト数
現在日本でサービスを提供していないため目にすることは少ないですが、AWS のベストプラクティスと呼び名が高い Netflix のスケールをメモ。ベストプラクティスと言われるだけあって、記事も解説も豊富です。まー規模が桁違い過ぎるので読み飛ばしていたってのが正直なところですが、V 先生ドリブンで資料を読み直しました。AWS の How-to 記事は日本語でも山ほどあったので、自社データセンターから AWS へ移行した過程を中心に書きたいと思います。Netflix のテクノロジーについては以下を参考にしました。 The Netflix Tech Blog @slideshare @github >>> サービスの規模 Netflix は主に北米で VOD と DVD 郵送レンタルサービスを提供している会社です。ほとんど VOD で、今後 DVD 郵送レンタルは縮小するらしい。AWS の資料も
Python なサービス みんな大好き Dropbox のスケールとかメモ。以下のページ辺りからピックアップ。Parted? みたいなので、続編がでたら追記するかも。 Scaling lessons learned at Dropbox, part 1 (comment) Dropbox - Startup Lessons Learned (slideshare) Dropbox -Yコンビネーターが生んだスタートアップの軌跡と未来 - スケール関係ないですが、2006 年当時はオンラインストレージサービスがいっぱいあったようで、VC から資金調達したときのやり取りがおもしろい VC "クラウドストレージサービスなんて腐るほどある" Drew "なにか使ってるのありますか?" VC "NO" Drew "..." 完璧で、スケーラブルで、クロスプラットフォームなクラウドストレージ!当時、プ
前回書いた記事のアップデート。jetty をよく理解してなかった orz。シンプルに dotCloud に jenkins.war をデプロイするだけでいけますね。 プロジェクト作成 プロジェクト名を jenkins として作っています。 $ dotcloud create jenkins $ mkdir jenkins ディレクトリ階層は以下のように。jenkins.war は jenkins-co.org からダウンロード。 $ tree jenkins/ jenkins/ ├── dotcloud.yml └── webapps └── jenkins.war dotcloud.yml の内容 $ cat jenkins/dotcloud.yml www: type: java approot: webapps まんまデプロイ。 $ dotcloud push jenkins jen
Win32 API から印刷をするためには、プリンタデバイスコンテキスト (Printer DC) を利用します。具体的には以下のような順序で印刷します。 プリンタドライバからハンドルを取得する プリンタドライバのステータス API から印刷可能か同かを取得する プリンタデバイスコンテキストを作成する ドキュメントを開始する 必要であればフォント等を設定し、印字、改ページ処理などをする ドキュメントを終了する (この時点でプリンタスプールサービスに登録されるようです) プリンタデバイスコンテキストを開放する プリンタドライバのステータス API を監視し、印刷が正常に終了したかを取得する プリンタドライバのハンドルを解放する 太字の手順 (3 - 7) は Win32 API で共通ですが、それ以外の手順 (1, 2, 8, 9) はプリンタドライバに依存しているため、Python から制
Instagram がどこに買収されたとかは他のニュースサイトにお任せして、 Django アプリケーションを正攻法でスケールして "成功" してるのがとても興味深いです。現時点で Instagram Engineering で紹介されていることと TechCrunch にも掲載 された スライド から個人的なメモとしてまとめてみました。 Instagram の哲学は シンプル であること オペレーション負荷を最小化 すること すべて装備 とのこと。 Instagram は以下の OSS, サービスで構築されているようです。 >>> OS / ホスティング Ubuntu Linux 11.04 を Amazon EC2 にホスティング。以前のバージョンは高トラフィックになると固まる問題があったようです。運用は 3 人。EC2 にホスティングしている理由は、調査結果によるものではなく、" ま
O'Reilly 様から "実践 Qt4 プログラミング" をご献本頂きました。有難うございます!!初めての献本ということで小躍りしました。この本は入門書ではないので、今から Qt4 を触りたいという方は "入門 Qt4プログラミング - O'Reilly" もあります。 中身をどこまで書いていいのかわかりませんが (w、各章で Web アプリケーションクライアント、メディアプレイヤー、データ・モデルビュアー、エディタ等々幅広いデスクトップアプリについて解説されています。データ・モデルビュアーが厚めです。その各章にアプリケーションの作例 (25 ちょい) があり、丁寧にコードリーディングしていくことができます。サンプルコード量約 2 万行w 読み応え十二分です。Qt は (この本がカバーしてる Ver.4.6) 800 近いクラスからなっているので、そんなもんなんでしょうね。 クラスの A
V 先生から教えて頂いたので、Instagram 同様 Django/AWS 構成の Pinterest のスケールをメモ。Pinterest はいつものアカウント名が初めて 先取 されたサービスなので、今後使わないと思います。 本題に入る前に、Python には The Zen of Python (日本語) という思想があります。私はこの思想を Python でのプログラミングだけでなく、インフラの構築の際も意識するように心がけています。"Simple is better than complex" です。Instagram や Pinterest のスケールを見て、この思想がもっと好きになりました。 Instagram はよりシンプルなインフラに更改していくことで、ただスケールするだけでなく、運用や変更のコストも最小限になるように最適化していると思います。結果的に Android ア
やり直し。2010 年の Django Con のスライド より。 Disqus は多くのサイトに組み込まれているサービスのため、メンテナンスによる停止が難しい。 >>> サーバの構成 エッジロードバランサーに HAProxy: heartbeat 構成。レポートが素敵。 HTTP ゲートウェイキャッシュに Varnish Django サーバとして Apache + mod_wsgi: 30 台ぐらい。メモリリークを防ぐために maximum-requests をセット。Ganglia で監視 キャッシュに memcached: 25 台ぐらい PostgreSQL ロードバランサーに HAProxy/ PgBouncer : コネクションプール用。 PostgreSQL: 10 台ぐらい。 Slony-I で非同期レプリケーションとフェイルオーバー。 ログは syslog-ng: pg
Instagram がどこに買収されたとかは他のニュースサイトにお任せして、Django アプリケーションを正攻法でスケールして "成功" してるのがとても興味深いです。現時点で Instagram Engineering で紹介されていることと TechCrunch にも掲載されたスライドから個人的なメモとしてまとめてみました。 Instagram の哲学は シンプルであること オペレーション負荷を最小化すること すべて装備 とのこと。 Instagram は以下の OSS, サービスで構築されているようです。 >>> OS / ホスティング Ubuntu Linux 11.04 を Amazon EC2 にホスティング。以前のバージョンは高トラフィックになると固まる問題があったようです。運用は 3 人。EC2 にホスティングしている理由は、調査結果によるものではなく、"まだ進化途中だか
メリークリスマス!でしたね。今年のクリスマスは ruby を書いて過ごしました。えぇ。ついに ruby デビューです。 作ってたのは Redmine のリポジトリ全文検索プラグインです。会社のプロジェクト管理サイトを Trac から乗り換えるにあたり、これ!ってのが見つけられなかった情弱です。 Trac では、full-text サーチエンジンに Hyper Estraier を使う TracRepoSearch という素晴らしいプラグインを使ってました。ということで、便乗して redmine_reposearch というプラグインを作って見ました。バックエンドも同じく Hyper Estraier です。 個人的に欲しかった機能は、 インストールステップが簡単 プロジェクト、サブプロジェクト、全プロジェクト間で検索できる Redmine のアクセス権管理に対応する MIME タイプを限定
これは Python3 Advent Calendar の記事です。夢はテストエンジニアです!ということでユニットテストについて書きます。 Python3 縛りとのことですが、この新ユニットテストフレームワークは Python 3.2 以降と 2.7 以降が対象です。これ以前のバージョンでこの新ユニットテストフレームワークを利用したい場合は、それぞれ unittest2py3k (3 系)、 unittest2 (2 系) というバックポートが用意されています。新ユニットテストは mock や IronPython 等の開発者としても知られている Michael Foord 氏を中心に開発されました。 >>> Python とユニットテストの歴史 Python のユニットテストは、1999 年 xUnit ファミリーの PyUnit として開発され、2001 年に公開された Python
これは PyPy Advent Calendar の記事です。PyPyのコアディベロッパーである "Maciej Fijalkowski" 氏のブログ "Analysing python's performance under PyPy" の抄訳+αです。 Python の一般的なパフォーマン解析のモデルは、"プロファイラを実行して、ボトルネックを探し出し、それを最適化するか C で書き直す" ことです。しかし PyPy ではこのアプローチだけでは不十分です。なぜなら、 多くの大規模アプリケーションで、プロファイラはフラットです: PyPy のトランスレーションツールチェーン、Twisted、モダンな Web サーバ等が良い例です ボトルネックを発見したとしても、それが特定の関数内でのみ遅いのか、複数の関数が関係しているのか明確になるわけではありません。どうすれば遅くて、どうすれば速くなる
今年も Advent Calendar の季節が始まりました。この記事は Python を高速化するソリューション PyPy の Advent Calendar の記事です。最初なので、簡単に PyPy の概要と PyPy-ja のご紹介をしたいと思います。 >>>> PyPy ってなんなの? @nati nati ueno PyPyは日本語で、おっぱいの意味なんだよ ってUSのpythonやってるエンジニアに教えたら「今日ほどいい日はない!って大喜びしてた」 Oct 06 via webFavoriteRetweetReply PyPy は Python 2.7.1 互換の高速な処理系です。現在、着々と py3k 対応の開発も進んでいます。Python 標準処理系である CPython と比較して以下のような特徴があります。 速度: とにかく速いです。JIT パワーです。CPython
ここ 2 ヶ月ほど PySide でお仕事してました。もともと PyQt で動いてたアプリケーションだったのですが、けっこう仕様変更が大きかったこともあり、どうせなので PySide で作り直してみることにしました。両フレームワークの差異はこのページにまとまっています (id:doloopwhile さんが翻訳されています)。大きくは、 モジュール名が PyQt から PySide に PyQt の API は QString や QVariants 等 Qt が提供する型と、unicode 等 Python のデータ型の両方をサポートしていましたが、PySide では Python のデータ型のみをサポート 画像等のリソースファイルをバイナリに変換したりするツール類の名称がそれぞれ変更 pyuic4 -> pyside-uic pyrcc4 -> pyside-rcc4 pylupdat
ここ何ヶ月かデスクトップアプリケーションにどっぷりな感じです。パッケージングをもっと簡単にしたい!ということで色々と試行錯誤しておりました。linux, mac はいい感じですが、Windows は・・・ py2exe でフリージングのみしかしていませんでした。配布とインストールは自動解凍書庫、アップデート、アンインストールは・・・。そこで今回 (やっと) 覚えたのが Inno Setup や WiX といった Windows 用のパッケージビルダです。備忘録がてら、Python でのパッケージングをまとめてみました。 パッケージングについて 大きく 2 つのフェーズに分かれています。 フリージング: Python バンドルや他の必要なライブラリーを寄せ集め、実行可能形式にまとめます。 Windows と OS X については以下のライブラリでフリージングします。 Windows 用: p
引き続き dotcloud。環境の私的覚書など。途中 (必要になったら書くかも)。 CPU Intel(R) Xeon(R) CPU - X5550 @ 2.67GHz * 4 (/proc/cpuinfo) メモリ 35031888 kB (/proc/meminfo) ディスク Filesystem 1K-blocks Used Available Use% Mounted on rootfs 1056888712 66780428 936421464 7% / none 1056888712 66780428 936421464 7% / /dev/sdh1 1056888712 66780428 936421464 7% /home/dotcloud varrun 4096 32 4064 1% /var/run varlock 1024 0 1024 0% /var/lock s
2012/05/11 更新: こっちの方が簡単 プライベートなコードは github, bitbucket などなどのオンライン VCS にホスティングしてますが、CI もホスティングできないかなーと。そこで dotcloud ですよ!しばらく招待待ちでしたけど、今は普通に signup できるようになってます (beta から cli が結構変わってる...) 。 cli のセットアップとかは本家ドキュメントに載ってるし、いろんなブログに載ってます。ただファイル転送が rsync ベースなので win ユーザは cygwin いれたりちょっとめんどい。speier さんが win 用 cli のインストーラを github に公開されてる (多謝) ので使うといいと思います。でも動かないので、パッチを当ててコンパイルしたのを dropbox 上においてます。speier さんのやつをイン
環境構築 Python 2.6 系 (2.6.6 - 2011-05-31 現在) をインストール ※ Windows の場合 pywin32 をインストール Visual C++ 2008 Express Edition をインストールし、Path に"C:\Program Files\Microsoft Visual Studio 9.0\VC" を追加する distribute をインストール # Linux curl -O http://python-distribute.org/distribute_setup.py python distribute_setup.py 必要であれば ipython 等共通にしておきたいライブラリをインストール easy_install -U ipython PyReadline 参考: ipython と virtualenv を同時に使う方法
次のページ
このページを最初にブックマークしてみませんか?
『Kosei Kitahara's Blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く