前回まで駆け足で、これから我々が作ろうとするクラウドの、いわば「お手本」であるAmazon EC2自体が持つ機能について見てきました。今回からは、いよいよオープンソースのクラウド基盤ソフトウェアである「Eucalyptus」によるEC2互換クラウドの製作に入っていきます。 4月29日 (米国時間) 付けで、クラウド基盤ソフトウェア「Eucalyptus」を用いた製品とサービスを提供する企業「Eucalyptus Systems」のローンチがアナウンスされました(リンク先はPDFファイル)。前後して、EucalyptusをバンドルしたUbuntu Linux 9.04(コード名:Jaunty Jackpole、4月23日)のリリース、Eucalyptusの新バージョン1.5.1のリリース(5月8日)と、Eucalyptusに関わるニュースが相次いで流れました。まさに今が旬のソフトウェアと言え
人にはそれぞれ性癖なんてものがあって好きなプレイやシチュエーションもバラバラですよね。また、好きなAVも人それぞれ違っていて、僕は高画質なエロアニメ動画を無料視聴できるサイトで自分の欲求を解消しています。他人には中々理解してもらえない性癖を持っているとそれだけで変態扱いされてけっこう大変なんですよね。特に男性の場合は性癖にもこだわりを持っている人は結構います。僕もちょっと変わった性癖を持っていて女性の顔に精子をかける、いわゆる顔射プレイが大好きなので… 私がゲイとして初体験したのは20歳の時だった。その頃から自分はゲイだと自覚していて女性の身体に興味が無くなっていた。当時のネットでたまたま見たサイトで地元の映画館がゲイたちのハッテン場になっているという情報を入手した。サイトの情報によると映画を見ているとゲイたちがやって来て個室でレイプ気味に犯されるというものだった。自分が見ている動画でもレ
はじめに 今日、 jQuery の作者として有名な John Resig さんが Processing.js という JavaScript のライブラリを公開しました。 John Resig - Processing.js このライブラリを使うと、比較的簡単に以下のようなグラフィックスやアニメーションを書くことができるようになります。 というわけで、公開されたばかりのこのライブラリを簡単な使い方から詳しい使い方までとことん掘り下げてみたいと思います。 Processing.js 概要 まず、 Processing.js とは何かという話をします。 Processing.js とは、ブラウザで Processing というプログラミング言語を実行する JavaScript のライブラリです。 では、 Processing とはどのようなプログラミング言語なのでしょうか。 Processing
Mozilla の John Resig さんが作った Processing.js をさっそく試してみました.プログラムのネタは今ホッテントリになっている「ほぼ日刊イトイ新聞 - がんばれ森川くんの遺伝子くん」の「群れの知能」に書いてある Boid(birdoid, Bird android)です. Boid は鳥や魚の群れの振る舞いを再現するアルゴリズムで,次の基本的なルールからなります.◆ルール1:近くの鳥たちと飛ぶスピードや方向を合わせようとすること◆ルール2:鳥たちが多くいる方へ向かって飛ぶこと◆ルール3:近くの鳥や物体に近づきすぎたら、ぶつからないように離れることhttp://www.1101.com/morikawa/2001-06-25.html群れの中の各個体をこのような単純なルールに従わせるだけで,一見複雑な動きを簡単にそれらしく再現することができます. 「群れの知能」を
What is remix? TwitPaint allows you to remix an existing graffiti piece by painting over it and creating a whole new piece but based on the first one. All remixed pieces are linked to their parents and children so you can follow their evolution. The remix function may expand the possibilities of graffiti by painting a piece back and forth with a friend or by using it simply to communicate. Some pe
Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at
ZFS は古いファイルシステムに無かった物を新しく作ったファイルシステムだ。しかし、古いファイルシステムから学ばずに醜い性能劣化をみせることもある。 UFS を始め FFS を基としたファイルシステムには、性能の劣化を防ぐ為にある程度の余裕が取られている。FreeBSD の UFS ではディスクの全てを使わずに、8% 分が予約領域として確保されている。その予約部分は root しか書き込めない。実体験としては 5% ぐらいまでなら問題は無く、3% ぐらいまで減らしてもファイルシステムとしては使える。 しかし、ZFS にはこの様な予備分は確保されていない。そのため、利用率が 95% を過ぎる頃からパフォーマンスが落ち始める。97% を越えた辺りからファイル操作が劇的に遅くなり、既にこの時点で普通の十倍以上の時間が掛かるようになっている。99% を過ぎる時には非常に醜い事態になる。この辺りにな
Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at
As of version 2.0, Phusion Passenger supports Rack (and thus Merb) through a Rack config.ru file placed at the root of an app: # config.ru require 'rubygems' # Uncomment if your app uses bundled gems #gems_dir = File.expand_path(File.join(File.dirname(__FILE__), 'gems')) #Gem.clear_paths #$BUNDLE = true #Gem.path.unshift(gems_dir) require 'merb-core' Merb::Config.setup(:merb_root => File.expand_pa
セキュリティパッチをまめに当てていても、パスワードが簡単だと容易にクラッキングされてしまう。そこで、パスワードの解析ツールを使って、自分のパスワードが安全かどうか確かめてみてはどうだろう。ここでは、「John the Ripper」というツールを使って、パスワードが解析可能かチェックする方法を説明する。 まず、John the RipperのWebサイト(http://www.openwall.com/john/)からソースファイル(john-1.6.tar.gz)をダウンロードして、適当なディレクトリで展開する。 $ make To build John the Ripper, type: make SYSTEM where SYSTEM can be one of the following: linux-x86-any-elf Linux, x86, ELF binar
補足 2009-05-28追記 opparaさんのご指摘で プラグイン三段活用 - 呆備録 スライド中、誤解されやすい表記があったので補足。 プラグインの呼び出し例は、 var $components = array('プラグイン名.コンポーネント名'); var $helpers = array('プラグイン名.ヘルパー名'); var $actsAs = array('プラグイン名.ビヘビア名'); の意味です。 具体的には、 /path/to/plugins/tools/controllers/components/hoge.php var $components = array('Tools.Hoge'); /path/to/plugins/tools/views/helpers/hoge.php var $helpers = array('Tools.Hoge'); /path/
CakePHP1.2.3を利用しています。 今までは「独自のバリデーション関数を追加(日本語の文字数チェック)」で書いたように、独自バリデーションルールをapp_modelとかに書いてモデルで使いまわしてたんですが、そろそろ汎用的なものはプラグインでまとめて複数プロジェクトで統一して使えるようにしたいと思い移行しました。 プラグインのbehaviorに独自バリデーションルールをまとめて、モデルから利用するまでのTipsです。 まずは、プラグインに関してはSlywalkerさんのCakePHP勉強会@tokyo #4の発表資料に目を通しておくと理解が早くなります。 http://d.hatena.ne.jp/slywalker/20090523/1243059244 プラグインの場所は、app/plugins以下が基本ですが、複数プロジェクトで使いまわすので任意のディレクトリにした方が楽です
PCI-X 仕様の 3ware 9550SX 、SATA II RAID このトローラは弊社の従来型9500S より200% 高速になり、380MB/秒以上のRAID5 の書き込み、800MB/秒以上のRAID5 の読み出しを実現します。 3 Gbps転送スピード、NCQ (Native Command Queuing)、ポートマルチプライヤ等をサポートする第7世代StorSwitch™ノンブロッキング・スイッチ・ファブリック技術と高性能SATA IIの機能により、この無類のパフォーマンスをお届けします。 4ポート、8ポート、12ポート、16ポート構成で利用できる9550SXは、 Webベース、コマンド入力ベースのRAID管理ツールや、APIソフトウエアを備え、これらRAID管理機能と組み合わせることで、最も強力なソリューションとなります。
ユーザランドのプロセスから見たwrite(2)は、ページキャッシュのおかげで(メモリが潤沢にある環境下では)ブロックされない(待たされない)というのは id:naoya さんの丁寧な解説のおかげでわかると思うのですが、一方、fsync(2)などの実際にディスクに書き込む処理、 あと id:hirose31 さんがコメントしてますが、アプリケーションが SYNC モードでファイルを開いてたり、明示的に fsync() してたりするとそこで wait が発生するのは言わずもがな、です。 Linux I/O のお話 write 編 - naoyaのはてなダイアリー The fsync() function does not return until the system has completed that action or until an error is detected. fsync
Passenger を使うとき、リソース最適化オプションによって大きくパフォーマンスが変わる。英文だと理解できるのが遅いので、勝手に翻訳してみる。 – PassengerMaxPoolSize <整数値> 同時に使用できる ROR あるいは Rack アプリケーションの最大数です。より大きな値を指定すると多くのメモリを消費しますが、HTTP クライアントが同時に処理できる能力を増やすことができます。 この最適な値は、あなたのシステムハードウェアやサーバの平均値ロードに依存します。異なる値を指定して実験する必要があるでしょう。しかし一般的にはこの値は少なくてもあなたのシステムの CPU 数に等しい値にするべきです。もしあなたのシステムが 2G のメモリ容量なら 30 を指定することをおすすめします。もしあなたのシステムが VPS 、256MB のメモリ容量で、MySQL のようなサービスが動
以前のエントリ『keepalivedでフェイルバック無効(nopreempt)にしたときの挙動』では、以下のような状況でフェイルバックするかどうかの確認をしました。 keepalivedサービスが停止し、マスタからスレーブに仮想IPが引き継がれた後に元マスタのkeepalivedサービスを起動したとき keepalivedでヘルスチェックしているインタフェースを意図的にダウンさせ、スレーブに仮想IPが引き継がれた後にインタフェースをアップさせたとき keepalivedの振る舞いとして、フェイルバック無効の設定をしている場合は、keepalivedを先に起動した側が常にマスタとなるということから、前者の場合はフェイルバックしないことが確認できました。 しかし後者の場合は、keepalivedのサービスは停止していないため、フェイルバックしてしまうことを確認することができました。 以前のエン
keepalivedについて以前にいくつかのエントリでご紹介しました。 keepalivedを利用する際に気をつけておくこと bondingとkeepalivedを組み合わせる これら2つのエントリで紹介したkeepalivedの技術を組み合わせた構成で、各サーバでのkeepalivedのstatusをBACKUPにし、フェイルバック無効(nopreempt)にしたときの挙動について調査しました。 なぜ調査をしたかといいますと、keepalivedのフェイルバックの動作で疑問に感じることがあったためです。 今回のシステム構成は以下の図のように、eth0とeth2でbonding(Active-Backup)を組んでおき、さらにbond0に2つの仮想IPアドレスを、eth1に1つの仮想IPアドレスを割り当てます。 keepalivedの設定はこちらの設定内容とほぼ同じで、vrrp_insta
非常に基本的なことではありますが、今回30分程度考え込んでしまうことになってしまったので、今後同じ失敗をしないためにもミスを記録しておきます。 以下のような構成でkeepalivedを使用し、仮想IPをサービスセグメント/バックエンドセグメントのそれぞれ割り当てます。 各セグメントは以下のような定義です。 サービスセグメント:利用者からアクセスがあるセグメントで80番ポートのみ開放 バックエンドセグメント:利用者からアクセスできない内部セグメントであり、主にデータのやり取りで使用し、FWの設定はなし server1とserver2でkeepalived.confは共通のものとし(下記を参照)、はじめにkeepalivedが起動した方がMASTERとなり仮想IPを保持するようにします。 また、vrrp_sync_groupの設定を追加しておくことで、eth0(SERVICE)に障害が発生して
昨日のエントリー「NIC冗長化〜Miimon編〜」で書いたbondingでNICの冗長化は実現できました。 今回はさらにkeepalivedを利用することで、仮想IP アドレスを2台のサーバ間で共有し、1台に障害が発生しても、待機系サーバでIPアドレスを引き継ぎサービスを継続できるようにします。 keepalivedはこちらからダウンロードします。 インストール手順は以下の通り。 [server1]$ tar xvzf keepalived-1.1.15.tar.gz [server1]$ cd keepalived-1.1.15 [server1]$ ./configure --prefix=/usr/local/keepalived [server1]$ make [server1]$ sudo make install [server1]$ sudo cp ~/install/kee
最近、サーバのSSHサービスに対し、不正なアクセスを試みた形跡が増加してきました。ブルートフォース攻撃も若干見受けられるので、何か対策を行わないといけなと思いDenyhostsを導入しました。思ったよりも簡単に導入が出来たので、攻撃対策をしたい方は導入を考えてみてはいかがでしょうか? ツールの説明から、DenyHostsは不正な攻撃を察知して防御するためのツールです。設定した回数不成功ログインが繰り返された場合に、そのIPアドレスを/etc/hosts.denyに記録し接続を拒否します。また、怪しい活動をしているIPアドレスを集めている専用サーバからIPアドレスをダウンロードして予防したり、こちらからアップロードすることも出来ます。不成功ログイン回数の設定、一定時間後の解除までの時間、レポートメールなどの設定が可能です。ここでは基本的な設定を説明します。 また、このツールは、Pythonが
Current release: 5.3.9 Ultimate Boot CD is completely free for the download, or could be obtained for a small fee. If you had somehow paid a ridiculous amount of money for it, you have most likely been fleeced. The least you could do is to make as many copies of the offical UBCD and pass it to your friends, relatives, colleagues or even complete strangers to minimize the per unit cost of your loss
Posted on 2008年6月25日 Posted by ちゅう コメントする Posted in Development Tags: Linux, nginx, Rails Railsを起動するとき、いつもPoundの後ろで複数ポートで振り分けっていうのをよくやっていたのだけど、unix socket で nginx の後ろで thin を動かすと早いらしいとのことで、試してみた。 環境はOSX thinのインストール $ sudo gem install thin $ sudo gem install eventmachine --source http://code.macournoyer.com 2行目は、thinをsocket指定して動かす時に eventmachin の 0.11.0 以上が必要とのことで、OSXでデフォルトで入らなかったので入れた。 インストールはこれで完
Ebbは以前にも紹介しましたが (ポストMongrel時代のWebサーバ参照)、 Thinより高速といわれている軽量・高速なWebサーバです。 Ebb aims to be a small and fast web server specifically for hosting web frameworks like Rails, Merb, and in the future Django. こちらでも紹介されています。 Ebb: C-Powered Web Server That Uses Rack - Faster than Mongrel and Thin 非常に興味深いですね。 ということで、ちょっと使ってみました。 先日からgemインストールできるようになったので、 いつものように
Thin は、最近話題の軽量・高速が売りのWebサーバです。 Thin is a Ruby web server that glues together 3 of the best Ruby libraries in web history: the Mongrel parser, the root of Mongrel speed and security Event Machine, a network I/O library with extremely high scalability, performance and stability Rack, a minimal interface between webservers and Ruby frameworks ということで、 RailsアプリケーションでThinを使う方法をメモしておきます。 何はともあれ、まずはsudo g
ルービックキューブの部屋 このサイトは、ルービックキューブの解き方とルービックキューブの模様の作り方を解説するサイトです。 1面であれば比較的多くの人が揃えられるルービックキューブですが、6面を攻略するとなるとそう簡単にできることではありません。崩れてしまったルービックキューブを元に戻したい方、6面を揃える手順を覚えて友人を驚かせたい方など、どうぞごゆっくりお楽しみください。 Menu 1面攻略法 6面攻略法 パターンを作ろう コレクション 6面攻略法part2 分解&組み立て スピードキューブ 2×2×2キューブ攻略法 オススメのルービックキューブ1:ステッカーレスタイプ ステッカーレスタイプ (Amazonへリンク) 私がオススメしたいのは、ステッカーレスタイプのルービックキューブです。ルービックキューブで沢山遊んでいると、ステッカーの劣化が気になりますが、ステッカーの無いこのタイプな
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く