September 2009 Archives

新製品の開発中にペアプログラミングにてコーディングを行ったので、やり方や効果や感想を書きます。

ミッション:
・開発中プログラムのメモリ使用率の削減と処理速度向上を行う。

やり方:
・1名がタイピング(いわゆるドライバー)、1名が確認(いわゆるナビゲーター)を担当。役割変更はなし。
・あらかじめ単体テストツールの整備や性能評価の方法を決めておく。
・流れは以下の通り
1.修正方針検討
2.修正
3.単体テスト・性能評価(Devel::NYTProf等を使用)
4.考えられる限り2と3を繰り返し、最も良さそうな性能をだしたコードを採用

続いて効果と感想を書きます。
HDEラボの桜井です。
だいぶ涼しくなりました。

そういえば、9/10にFacebookがPython用Webサーバーフレームワーク「Tornado」をリリースしました。
FriendFeedの基盤となっていて、スケーラブルでノンブロッキングなWebサーバーだとか。

早速ですが、インストールして試してみました。
まず、ここからソースをダウンロードします。
ちなみに、Python2.5、2.6でしか動かないようです。CentOS5.3のPython2.4では文法エラーでビルドに失敗してました。
下記のように導入します。
# tar tornado-0.1.tar.gz
# cd tornado-0.1
# python setup.py install

さっそく、チュートリアルらしきものにしたがってプログラミング。
8888/TCPで待ち受けて、「HELO」と返すだけです。
面倒なのでPythonシェルで。
$ python
Python 2.6.1 (r261:67515, Mar 26 2009, 15:57:10)
[GCC 4.1.2 20071124 (Red Hat 4.1.2-42)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tornado.httpserver
>>> import tornado.ioloop
>>> import tornado.web
>>>
>>> class MainHandler(tornado.web.RequestHandler):
...   def get(self):
...     self.write("HELO\n")
...
>>> application = tornado.web.Application([(r"/", MainHandler),])
>>>
>>> http_server = tornado.httpserver.HTTPServer(application)
>>> http_server.listen(8888)
>>> tornado.ioloop.IOLoop.instance().start()

別のターミナルを立ち上げてアクセス。
$ telnet localhost 8888
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
GET / HTTP/1.0

HTTP/1.0 200 OK
Content-Length: 4
Etag: "50d7c437b1b17589574e811d5085ed34a4b22340"
Content-Type: text/html; charset=UTF-8
Server: TornadoServer/0.1

HELO
Connection closed by foreign host.


感想としては...
  • Googleのwebappやweb.pyに似ている(と書いてあるし、その通り)
  • applicationを定義してる辺りはTwistedみたい
  • RESTやるならいいんじゃない?
ってところでしょうか?

もうちょっと細かいところを見てみないとわかりませんが、ちょっと楽しみなやつです。
ちなみに、ApacheLicenseです!!

Devel::NYTProfを使ってみた。

| | Comments (0) | TrackBacks (0)
perlライブラリのDevel::NYTProfを使ってみたので紹介します。

こんにちは、しのはら です。

Linuxでコマンドの結果をパースするとき、言語を統一して取り扱いたい。
そんなときは、コマンドの先頭に「LANG=C」と書けば、コマンドの結果を英語で出力できます。


例)

・日本語
# df -k
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/mapper/VolGroup00-LogVol00
                     147282220  45936656  93743388  33% /
/dev/sda1               101086     13429     82438  15% /boot
tmpfs                   901640         0    901640   0% /dev/shm
none                    901552       176    901376   1% /var/lib/xenstored

・英語
# LANG=C df -k
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                     147282220  45936660  93743384  33% /
/dev/sda1               101086     13429     82438  15% /boot
tmpfs                   901640         0    901640   0% /dev/shm
none                    901552       176    901376   1% /var/lib/xenstored

(環境はCentOS5.3です)


でも、そんな「LANG=C」でもコマンドの結果を英語で出力できないコマンドを発見したので、ご紹介します。

HDEラボの桜井です。
台風の動向が気になります。

そういえば、お盆に血迷ってメーリングリスト配送システムを作ってしまったので、
GoogleCodeで公開します。
名前はmaidodomoです。
http://code.google.com/p/maidodomo/

全部Perlで書かれており、aliasesを使うMTAであれば使えます。
できることは、
  • 当然ですが、メーリングリストを作れます
  • 言うまでもありませんが、メーリングリストのメンバーにメールを配送します
  • 当たり前すぎですが、件名にメーリングリスト名と通し番号を付与します
です。
気が向いたら、気になるところをテコ入れします。

言い忘れてましたが、ライセンスはApacheLicense2.0です。
HDEラボの桜井です。
もう9月なんですね。早いもんです。

なんと、懐かしい Linux ディストリビューションの Slackware が、13.0を8/27にリリースしてました。
特徴的なところでは、Slackwareでは初の64bit(x86_64)対応だそうです。

興味のある方はぜひ。

About this Archive

This page is an archive of entries from September 2009 listed from newest to oldest.

August 2009 is the previous archive.

October 2009 is the next archive.

Find recent content on the main index or look in the archives to find all content.