2007-01-01から1年間の記事一覧

移転のお知らせ

最近まったく更新していないのになんですが、自分でブログをいろいろカスタマイズしてみるのも面白そうかなと思い、自分の環境に移転することにしました。飽きたら戻ってくるかもしれませんが…そんなわけで、今後の更新は以下のサイトで行っています。 http:…

ミャンマーについて

9月に二週間ほどミャンマーという国に行ってきました。このブログの内容にそぐいませんが、ニュースでついに流血の事態が報じられており個人的にとても悲しいので、旅行したときに私が持った印象を簡単に箇条書きにしておきます。読み捨ててください。でも…

malloc(1)

第1章から第4章まではUNIXの基礎知識、Cの基礎知識やソースの概要なので、第5章から読み進めていくことにします。まず、straceをしているときに見かけたことがある気がするmallocとmfreeです。メモリの取得や開放のための関数です。 いきなり疑問点がひと…

Lions' Commentary on UNIX

c

最近C言語をまた少しずつ勉強しはじめてます。 インターネットの仕事をしていると、普段お世話になっているLinuxのカーネルやら Apacheやらが動いている仕組みについてどうしても興味を持ってしまいます。そのソースは大概Cで書かれているのですが、私はCの…

OpenVZの使い道

OpenVZのようなパーティショニングの技術はどういった場面に役に立つのだろう、とちょっと考えてみました。 まず、HSP各社がサービスしているようなホスティングサービスが思い浮かびます。VEのroot権限を直で渡してVPS・VDSと呼ばれるサービスをするのもよ…

Puppetを導入してみました

仕事でサーバの初期構築や運用方法を見直す機会があったので、Puppetというシステム自動管理ツールを導入してみました。これまでのシステム管理というと、初期構築時はサービス・サーバごとに構築用スクリプトを作成し、運用時に設定ファイルの変更があればe…

オプティミストはなぜ成功するか

「オプティミストはなぜ成功するか」(マーティン・セリグマン)は先日の13項目の「情熱」(モチベーション)を保つのに役にたつ本です。 著者セリグマンは高名な心理学者で学習性無力感という理論を発表しています。セリグマンの無力に関する実験は以下のペー…

読書の記録も書くことにしました

実は今まで読書の感想などを書くときは別のアカウントを使っていたのですが、できるだけ情報は一箇所に集めたいので、これから技術的な内容以外もこのブログに書いていくことにしました。ちなみに本のリンクはアソシエイトです。さっそく先月の読書のまとめ…

perlsh

最近Rubyでスクリプトを書くことが多くなっている理由を考えたところ、新しい言語のせいか文法的にしっくりくることもあって頭に入りやすいというのもあるんですが、irb(railsではruby script/console)を使って対話的にメソッドの挙動を確かめられるのが効率…

PerlとRubyを混同してきた…

備忘メモ。 perlshであやふやなところをごちゃごちゃごちゃ。 main[100]$ @array = (1, 2, {"a" => "3", "b" => "4"}, [5, 6, 7]) 1 2 HASH(0x78ae70) ARRAY(0x78b530) main[101]$ $array[2]{a} 3 4 main[103]$ $array[3][0] 5 main[104]$ $array[3][1] 6以…

WebServiceX.net

翻訳APIを提供しているWebサービスを探していたら、「WebServiceX.net」というサービスに行き当たりました。Rubyでちょっとだけ試してみました。http://www.webservicex.net/WS/WSDetails.aspx?WSID=63 irb(main):001:0> require 'soap/wsdlDriver' => truei…

64bitマシンでyum

CentOS5のx86_64を64bitマシンにインストールしたらi386のパッケージもインストールされてしまいました。 [root@test ~]# for f in `rpm -qa`; do rpm -q --queryformat '%{name} %{arch}\n' $f; done|grep i386 zlib i386 popt i386 zlib i386 libSM i386 n…

optimistic lockとpessimistic lock

railsでselectの結果によって更新するデータを変更する条件分岐を書いていて、selectしてデータを更新するまでの間に他のプロセスによってデータが更新される可能性があることに気づきます。たとえば以下のようなプログラムだと、 1 user = User.find(1) 2 3…

Per-VE I/O priority support

昨日リリースのstableカーネルで、待ち望んでいた機能が実装されたようです。 http://openvz.org/news/updates/devel-kernel-2.6.18-028stab021.1 VPSを運用していく上でネックだったのが、特定のVEで巨大なファイルの書き込みを発生させた場合、そのプロセ…

OpenVZのネットワーク(3) veth + vlan + bridge

異なるネットワークのVEをひとつのHNで共存させる際には、VZのデフォルトのネットワークインターフェースであるvenetではなくvethを使用します。実際には、既存のリアルサーバを仮想環境に集約するという場面があると思います。以下のような条件の場合を取り…

リソース制限

/etc/sysconfig/vz-scripts配下にあるリソース制限設定ファイルについて調べてみたときのメモです。自分なりにCでせこせこプログラムを書いて検証してみましたが、なにぶん勉強不足なので意味のわからない記述があるかもしれません。調査中となっているとこ…

ロックファイル

情報をまとめてからだと、いつまでたっても更新できないようなので、小出しに更新していきます。 久々にOpenVZで気づいたことメモ。先日vzctrlでstop/startを繰り返したところ、いつまでたってもVEが起動できないことがありあました。 調べてみると、vzctrl…

Rubyでスクリーンショットサーバ(2)

Mozshotさんがベースにしたという、このソースを読んでみることにします。 ハッシュのリファレンスがわかるくらいC->しばらく使ってないとポインタを忘れるRuby->いきなりrailsに手を出して四苦八苦という感じです。オブジェクト指向もよくわかっていません…

Rubyでスクリーンショットサーバ(1)

最近リンク先のページを小さく表示しているサイトをよく見かけるのですが、興味があったので実装する方法を調べていました。私はてっきりクライアントのブラウザでレンダリングをさせているのだと思っていたのですが(すいません無知で)、スクリーンショッ…