- blogs:
- cles::blog
PoptopでPPTPサーバーを立ててみた
networking せっかく専用サーバーを借りているので、Windowsからも接続設定が簡単なPPTPサーバーを立ててみました。
よくあるVPNサービスとか使わなくても十分実用になりそう。
Poptop is an open source implementation of a PPTP server. Running under x86 or embedded Motorola ColdFire architectures Poptop provides full interoperability with the Microsoft PPTP VPN client.
構築方法を調べたらカーネルにモジュールを追加したりしないといけないみたいなので中々敷居が高いなぁと思っていたんですが、結論から言うとrpmでインストールすればほとんど何もしなくても起動させることができました。大まかな流れとしてはこのページからrpmを落としてインストール。その後/etc/pptpd.confと/etc/ppp/以下のファイルをちょっといじるという感じでした。
[PoptopでPPTPサーバーを立ててみた の続きを読む]
鍵をなくした
出かけようと思ったらいつも使っているキーケースが見当たらないことに気づきました。
がんばって1時間くらい探したのですが、見つかりません。とりあえず家の中だったのが不幸中の幸いです。自室の鍵はスペアキーでしのげるのでいいのですが、職場の鍵が使えないのは参ったな。明日から職場、どうしよう。
[鍵をなくした の続きを読む]
ペットボトルの分別収集開始@文京区
家の前のゴミ集積所に何か張り紙がしてあったので読んでみたら、文京区でもペットボトルの分別収集が始まるようです。
文京区 平成19年10月から、ペットボトルの集積所回収がはじまります!
現行の古紙・びん・缶に加えて、集積所の資源回収日に平成19年10月1日(月)よりペットボトルを回収します。9月最後の資源回収日に各集積所にペットボトル回収用のコンテナまたはネット袋を配布します。黄色(びん用)と青色(缶用)のコンテナと併せて管理をお願いします。なお、スーパーマーケット、コンビニエンスストア及び酒店等でのペットボトル店頭回収は引き続き行います。
これまでは近くのコンビニとかスーパーまで持っていってくれというものだったので、結局不燃ごみとして出してました*1が、これで分別して出しやすくなりますね。ちょっと遅すぎるような気がしなくもないですが、前進したことはよしとしましょう。
- *1: うちの近く(徒歩5分圏内)にはコンビニがないので。
いろいろCVSにアップ
正式にパッケージングしたりドキュメントを整備いる暇がないのでNP_BBAuthとNP_MetaTags /w AsyncHTTPは僕のプライベートリポジトリからNucleusCMS JapanのCVSに移しておきました。
興味のある方はCVSから落としてみてください。
続・PHPでマルチタスク?
先日のPHPでselect()を使う方法についてはもうちょっと色々調べてみたら、英語だけどこっちのエントリの方が詳しく載っていました。さらに、PHP4でうまく動かす方法も解説されています。
Guru - Multiplexing - Evil, as in Dr.
IBMの記事を読んだときにはstream_select()やsocket_select()がPHP4.3以上対応なので、PHP5でないといけない理由がいまひとつ良くわからなかったんですが、上記エントリのnon_blocking_connect()の実装を見るとPHP4には接続時にソケットに対して非同期接続を指定する方法が標準では用意されていないということなんですね。この例ではソケットをノンブロッキングモード*1にしてから接続して、接続中*2というエラーを無視するようにしているみたいで、なかなかトリッキーなコードになっています。
[続・PHPでマルチタスク? の続きを読む]
rootでrm -rf /をするとどうなるか(理論編)
rootユーザーでやってしまうと悲劇としか言いようがないのが「rm -rf /」。
幸いにも僕はまだやってしまったことはないのですが、この挙動を分析しているサイトを見つけました。
UNIX で root が "/bin/rm -rf /" をした場合の結末として、以下のようになるという主張を実際に見たり聞いたりしたことがあるのですが、全て明らかに誤りです。信じてはいけません。
* /bin/rm が消えた時点で、rm のプロセス自体が異常終了する。(なんでやねん! ...まあ、SVR2, 4.1BSD では /bin/rmdir が消えたら止まると思うけど。)
* dynamic library が消えた後に rm のプロセスや動作中のコマンドが異常終了する。(なんでやねん!)
* それまで動いていたコマンド(デーモン類)が、コマンドファイルが消えた後に終了する。(なんでやねん!)
* カーネルが unlink(2) された時点で、システムがクラッシュする。(なんでやねん!)
* open されたファイルを unlink すると、ファイルの内容を参照できるのは sync(2) されるまでであり、updated(8) と競争することになる。(なんでやねん!)
* rm コマンドのファイル「だけ」が残る。(rm が残る環境はあり得るが、そこでは他にも沢山のものが残らなければ変。)
このページの目的は、具体的な実験例で "rm -rf /" の結末を示すことで、 UNIX カーネルの semantics (振舞い)を確認し、デマを払拭することにあります。
自分もrm -rf /をしてしまうとすぐにシステムがクラッシュするんではないかと思いましたが、そういえばUNIXでは開いているファイルは消えない*1んでしたね。確かこれを応用してファイルをopen()してからそのファイルをすぐにunlink()すると他のプロセスから触れないtmpファイルが作れる(しかも、プロセスが終了すると一緒に消えてなくなる)っていうテクニックがあったはずです。
それと同じように現在使っているプログラムは閉じない限り消えないわけですね。やっぱりカーネルは奥が深いなぁ。
- *1: inodeの参照が0にならないから。
twitterの負荷対策
twitter 先日のmixiの負荷対策に続いて、こちらは英語ですがtwitterの負荷対策。
Scaling Twitter: Making Twitter 10000 Percent Faster | High Scalability
The Stats
- Hundreds of thousands of users. The actual numbers are as always, very super super top secret.
- 600 requests per second.
- Average 200-300 connections per second. Spiking to 800 connections per second.
- MySQL handled 2,400 requests per second.
- 180 Rails instances. Uses Mongrel as the "web" server.
- 1 MySQL Server (one big 8 core box) and 1 slave. Slave is read only for statistics and reporting.
- 30+ processes for handling odd jobs.
- 8 Sun X4100s.
- Process a request in 200 milliseconds in Rails.
- Average time spent in the database is 50-100 milliseconds.
- Over 16 GB of memcached.
16GBのmemcachedを使っているというのはちょっと驚きですが、潤沢なキャッシュのせいかMySQLの秒間処理クエリが2,400件というのは思ったより少ない感じがします。1リクエスト200ミリ秒で処理できているというのは良くできていると思います。アーキテクチャなどの話もかなりあるので内容としてはこちらの方が参考になりますね。
[twitterの負荷対策 の続きを読む]
PHPでマルチタスク?
PHPにはスレッドがないので、WebAPIなどを呼ぶときには平行してリクエストを投げる方法がないので時間がかかるのは仕方がないと思っていたんですが、stream_select()/socket_select()という関数を使えばselect() システムコールを使った並行処理ができるみたいです。
IBM PHP V5 でマルチタスク動作のアプリケーションを開発する - Japan
PHP はスレッド動作をサポートしていません。それにもかかわらず、また私が話をした大部分の PHP 開発者が信じていることとは大いに異なり、PHP アプリケーションはマルチタスク動作を行えるのです。まず、PHP プログラミングで「マルチタスク動作」と「スレッド動作」が何を意味するのかを、できるだけ明確にすることから始めましょう。
PHP5でないと使えないような記述がありますが、マニュアルの対応表記は(PHP 4 >= 4.3.0, PHP 5)となっているのでPHP4.3以降であれば利用可能なようです。これを使うとNP_MetaTagsとかNP_Moblogは結構高速化できたりするかもしれません。まぁ、NP_Moblogはこれを利用することを前提にかなり書き換えなければならないとは思いますが、時間ができたら挑戦してみようかなと思います。
サイトのチューニングに YSlow for Firebug
firefox
tuning USのYahoo! Developer NetworkにYSlow for FirebugというFirefoxの機能拡張が公開されていました。Firebugに機能を追加してウェブサイトのチューニングについてアドバイスをしてくれるようです。
YSlow analyzes web pages and tells you why they're slow based on the rules for high performance web sites. YSlow is a Firefox add-on integrated with the popular Firebug web development tool.
なかなか面白いですね。アドバイスの中にはUse a CDNのように「それはちょっと・・・・」というものもあれば、Add an Expires headerやGzip componentsのようにすぐに対応できるものもあります。決して高度な指摘をしてくれるわけではないですが、サイト改善のヒントとしては十分活用できると思います。
SeesaaにSpam報告してみる
antispam あまりにもspamがうっとおしいので、送信元のSeesaaにクレームを入れることにしました。
Seesaaももうちょっとspamブログの撲滅に本腰を入れてくれるといいんですけど。
Seesaaサービス サポートのご案内: 利用規約違反等に関するお問い合わせ(通報)
トラックバックスパム・コメントスパム・アダルトサイト等の利用規約違反に抵触する可能性のあるもの以外の通報については、以下フォーマットをご利用頂き、お問い合わせフォームからご連絡ください。
Seesaaの報告フォームはトップページからはかなりたどり着きにくい場所にありました。フォームだけでなく、報告用のテンプレートが用意されているのは楽でいいですね。どれくらいで反応があるのか楽しみです。
[SeesaaにSpam報告してみる の続きを読む]- 換気口に風よけカバーを設置 (2)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(1404)
3 . シャープの空気清浄加湿器のキュルキュル音対策は PTFE テープで(1257)
4 . GitHub が全ての公開リポジトリへのシークレットスキャンを有効に(1130)
5 . 国分生協病院のランサムウェア被害は認証がない RDP が原因?(1087)
Academic[574]
Book[155]
Diary[522]
Disaster[101]
Foodlogue[1425]
Game[284]
Goods[805]
Healthcare[341]
Hobby[32]
IT[1195]
Military[343]
misc.[1570]
Mobile[510]
Music[38]
Neta[106]
News[95]
Photo[391]
RealEstate[120]
Security[1178]
SEO Contest[36]
Software[634]
Tips[1886]
Travelogue[1238]
Web[675]
Work[193]