<< 久しぶりの自家焙煎 : main : スクランブル >>

RubyとPythonでクライアント・サーバ

最近必要があってハードディスクの再圧縮をするソフトを作っている.zipファイルを7-zipの7z形式で圧縮し直すと,サイズが30%~65%削減できることを利用したものだ.

クライアント(ワーキングタスク)をRuby,サーバをPythonで作成.Ruby, Python, Databaseとすべて不慣れな中ようやく分散処理として動けるところまでたどり着いたところで振り返ってみたい.
データ量が大きいので複数のPCで分散処理できないかと作り始めたのが2週間ほど前.実際の処理部をRubyでまず作り,単体でおおむね動いたら稼働を開始しつつ,管理サーバ側をPythonでDjangoを使って作っている.

DjangoはPython用のMVCフレームワークで,Ruby on Railsみたいなものだ.処理部として(得意なPerlではなく)Rubyを選択したのには理由がある.ExerbというrubyをEXEにまとめるソフトを使うと500KBそこそこのバイナリにまとめることができるので,複数のPCに入れる際にわざわざrubyをインストールしなくてよくなるとのもくろみである.

そして,なぜ管理サーバ側もRubyで作らないのかというと,Ruby on Railsは経験が無いが,Djangoは以前試したことがあること,そしてそのとき完成に至らなかった経緯があるので,もうすこしDjangoに取り組んでみたいという至極個人的な理由も含んでいる.



以下は今回感じたこと.

Rubyのブロック構文に感動した.net/httpとかパイプの処理とかをコマンド直後のブロックに「安全に」記述できるものだが,Dir.chdir()でも同様に使えるのがうれしい.
Dir.chdir(new_dir){ 処理 }
すると,中の処理をnew_dirで行った後で元のディレクトリに戻ってくれる.これは便利.


Rubyの問い合わせ系メソッドで最後に?がついているのはよく忘れる.そこまで名前の一部なので覚えるしかないのだが.


Rubyのモジュールジャンプが使えなくて編集がやりづらかったのは単にサクラエディタがRubyのアウトラインをサポートしていないというだけの理由.


Python(というよりDjangoは)HttpResponseなどの処理を使うたびに個別にimportしないといけないのが面倒くさい.マニュアル見る→記述→実行→存在しないメソッドとエラー→どのモジュールにあるのか調べる→ファイルの先頭に戻って記述.けっこういらいらする.1つ指定すれば関連ファイルをすべてインポートするまとめモジュールみたいなものを作ることも可能なのだが,そうはなっていない.

ただ,この点はDjangoが発展途上でマニュアル整備が貧弱なせいもあるだろう.メソッドの使い方についてはマニュアルがあるが当該箇所を見つけるのが結構大変である.メソッドの説明とincludeが必要なモジュールを併せて記述したリファレンスがあれば解消できるだろう.


PythonとRubyを交互に編集していると混乱する.特に文字列.

Ruby: "fileName #{file} Size: #{size}"
Python: "fileName %s Size: %d" % (file, size)

やっぱり全部Rubyに統一した方がいいかもね.


Djangoで画面を作るのが大変.出力用テンプレートについてはサンプルが無いので,簡単なものを一から作った.流行のWeb 2.0風グラデーションとは無縁な状態.Djangoはテンプレートの継承ができるので,スタイルテンプレート集があればうれしい.


サーバとクライアントの通信はJSON.Djangoにはdjango.utils.simplejson というのが入っているので,simplejson.loads(), simplejson.dumps()でエンコード・デコードが可能.Rubyではこのページのライブラリを使った.今回は両方向でJSONによるデータ交換を行っている.


Ruby, Python両方に言えることだが,例外への考慮が難しい.例外が出る可能性のある位置と型がわかっていないと怖い感じがする.動的片付け言語ではメソッド定義を見ても実際に渡されるオブジェクトの型はわからないのsで,追いかけるのが大変だ.
コンピュータ > ソフトウェア : comments (286) : trackbacks (0)

Comments

mbt technology にょろぷにらん | 観客が役者を育てる from ガラスの仮面
mbt shoe clearance sales...2013/11/25 12:08 PM
hermes birkin 42 replica にょろぷにらん | RubyとPythonでクライアント・サーバ
replica hermes bags hong kong...2013/11/25 07:08 AM
best replica birkin bags にょろぷにらん | RubyとPythonでクライアント・サーバ
fake hermes ipad 2 case...2013/11/24 09:20 PM
replica gucci belt bags にょろぷにらん | RubyとPythonでクライアント・サーバ
replica gucci ipad mini case...2013/11/24 12:18 AM
fake gucci 114 にょろぷにらん | RubyとPythonでクライアント・サーバ
replica gucci eyewear...2013/11/22 06:06 PM
fake gucci in bangkok にょろぷにらん | RubyとPythonでクライアント・サーバ
replica gucci belt usa...2013/11/22 05:26 PM
hermes birkin knockoff ebay にょろぷにらん | RubyとPythonでクライアント・サーバ
hermes birkin bag tasche 30 togo gold palladium handtasche...2013/11/22 01:54 PM
hermes replica bags dubai にょろぷにらん | RubyとPythonでクライアント・サーバ
replica hermes china...2013/11/21 08:59 PM
mbt shoes usa にょろぷにらん | RubyとPythonでクライアント・サーバ
mbt ari outlet...2013/11/21 10:11 AM
cheap hermes replica bags にょろぷにらん | RubyとPythonでクライアント・サーバ
replica hermes h bangle...2013/11/20 10:52 PM
hermes birkin replica us にょろぷにらん | RubyとPythonでクライアント・サーバ
hermes replica ebay...2013/11/18 03:04 PM
hermes handbags replica uk にょろぷにらん | RubyとPythonでクライアント・サーバ
replica hermes orange box...2013/11/17 10:27 PM
fake hermes tag にょろぷにらん | RubyとPythonでクライアント・サーバ
malas hermes replicas...2013/11/16 01:54 AM
replicas de pulseras hermes にょろぷにらん | RubyとPythonでクライアント・サーバ
replica hermes ipad cover...2013/11/14 11:56 AM
fake gucci dust bags にょろぷにらん | RubyとPythonでクライアント・サーバ
replica gucci digital...2013/11/14 08:23 AM
replica gucci belts for cheap にょろぷにらん | RubyとPythonでクライアント・サーバ
replica gucci ursula sandal...2013/11/14 04:51 AM
replica gucci clothes にょろぷにらん | RubyとPythonでクライアント・サーバ
replica gucci 1627...2013/11/13 01:45 PM
fake gucci messenger bag にょろぷにらん | RubyとPythonでクライアント・サーバ
how much are fake gucci bags...2013/11/12 11:51 PM
hermes replica birkin にょろぷにらん | RubyとPythonでクライアント・サーバ
hermes enamel bracelet replica uk...2013/11/12 10:36 PM
high end replica gucci handbags にょろぷにらん | RubyとPythonでクライアント・サーバ
replica gucci hobo...2013/11/12 10:34 PM
cheap gucci backpack にょろぷにらん | RubyとPythonでクライアント・サーバ
fake gucci cosmetic bag...2013/11/11 07:04 AM
replica gucci 1970 bag にょろぷにらん | RubyとPythonでクライアント・サーバ
replica gucci hong kong...2013/11/10 01:26 PM
hermes birkin replica aaa にょろぷにらん | RubyとPythonでクライアント・サーバ
hermes birkin fake bags...2013/11/10 09:10 AM
cheap fake hermes handbags にょろぷにらん | RubyとPythonでクライアント・サーバ
fake hermes t shirt...2013/11/10 07:03 AM
bethenny frankel fake hermes にょろぷにらん | RubyとPythonでクライアント・サーバ
hermes birkin vs fake...2013/11/09 01:32 PM
replica in hermes にょろぷにらん | RubyとPythonでクライアント・サーバ
hermes replica handbag malaysia...2013/11/09 11:35 AM
fake gucci wallets on ebay にょろぷにらん | RubyとPythonでクライアント・サーバ
replica gucci bags...2013/11/09 08:17 AM
replica gucci uk にょろぷにらん | RubyとPythonでクライアント・サーバ
chinatown fake gucci...2013/11/07 08:40 PM
fake gucci goggles にょろぷにらん | RubyとPythonでクライアント・サーバ
replica gucci 2011 bags...2013/11/06 09:25 PM
fake gucci mens jacket にょろぷにらん | RubyとPythonでクライアント・サーバ
gucci replica leather bags...2013/11/06 12:53 PM
hermes birkin 30 replica にょろぷにらん | RubyとPythonでクライアント・サーバ
hermes replica ipad...2013/11/05 01:18 PM
louis vuitton damier azur speedy 35 replica にょろぷにらん | RubyとPythonでクライアント・サーバ
louis vuitton replica...2013/11/05 06:38 AM
replicas hermes birkin にょろぷにらん | RubyとPythonでクライアント・サーバ
hermes birkin replica korea...2013/11/04 10:05 PM
louis vuitton heart coin purse replica にょろぷにらん | RubyとPythonでクライアント・サーバ
replica louis vuitton...2013/11/04 09:45 PM
tui hermes fake 2 にょろぷにらん | RubyとPythonでクライアント・サーバ
replica designer handbags from china wholesale...2013/11/04 01:30 PM
hermes wholesale china にょろぷにらん | RubyとPythonでクライアント・サーバ
best quality replica hermes...2013/11/04 10:55 AM
louis vuitton epi briefcase replica にょろぷにらん | RubyとPythonでクライアント・サーバ
louis vuitton replica...2013/11/04 10:52 AM
hermes kelly picnic bag replica にょろぷにらん | RubyとPythonでクライアント・サーバ
hermes birkin bags amazon...2013/11/03 07:50 PM
fake gucci handbags sale にょろぷにらん | RubyとPythonでクライアント・サーバ
discount gucci mens wallets...2013/11/03 05:30 PM
hermes jige clutch replica にょろぷにらん | RubyとPythonでクライアント・サーバ
fake hermes birkin bags nyc...2013/11/03 12:13 PM
fake hermes picotin bag にょろぷにらん | RubyとPythonでクライアント・サーバ
replica hermes kelly bag...2013/11/03 05:05 AM
fake gucci wholesale にょろぷにらん | RubyとPythonでクライアント・サーバ
replica gucci canvas handbags...2013/11/02 03:19 PM
replica hermes cuff にょろぷにらん | RubyとPythonでクライアント・サーバ
hermes birkin bags amazon...2013/11/02 11:23 AM
cheap gucci purses online にょろぷにらん | RubyとPythonでクライアント・サーバ
replica gucci 1622...2013/11/02 06:18 AM
hermes replica slippers にょろぷにらん | RubyとPythonでクライアント・サーバ
hermes fake 1...2013/11/01 08:38 PM
fake gucci crossbody bags にょろぷにらん | RubyとPythonでクライアント・サーバ
fake gucci flip flops men...2013/11/01 08:36 PM
louis vuitton replica luggage にょろぷにらん | RubyとPythonでクライアント・サーバ
replica louis vuitton...2013/11/01 01:15 PM
replica hermes cufflinks にょろぷにらん | RubyとPythonでクライアント・サーバ
replica hermes jumping boots...2013/10/31 09:30 AM
cheap louis vuitton wallets replicas にょろぷにらん | RubyとPythonでクライアント・サーバ
replica louis vuitton...2013/10/26 03:21 AM
louis vuitton monogram vernis alma replica にょろぷにらん | RubyとPythonでクライアント・サーバ
replica louis vuitton...2013/10/26 02:21 AM
replica gucci indy bag にょろぷにらん | RubyとPythonでクライアント・サーバ
fake gucci shades for men...2013/10/25 05:38 PM
cheapest replica gucci handbags にょろぷにらん | RubyとPythonでクライアント・サーバ
replica gucci gloves...2013/10/25 09:25 AM
louis vuitton and gucci replica handbags にょろぷにらん | RubyとPythonでクライアント・サーバ
fake gucci rucksack...2013/10/25 08:59 AM
hermes knock off ties にょろぷにらん | RubyとPythonでクライアント・サーバ
replica hermes handbags cheap...2013/10/24 04:16 PM
hermes outlet store online にょろぷにらん | RubyとPythonでクライアント・サーバ
hermes enamel bangle replica...2013/10/24 04:02 PM
top quality replica gucci handbags にょろぷにらん | RubyとPythonでクライアント・サーバ
fake gucci book bags for sale...2013/10/24 12:45 PM
womens footjoy golf shoes にょろぷにらん | RubyとPythonでクライアント・サーバ
mbt shoes...2013/10/24 07:04 AM
gucci purse replica cheap にょろぷにらん | RubyとPythonでクライアント・サーバ
replica gucci crossbody bag...2013/10/23 06:15 PM
louis vuitton jewellery case replica にょろぷにらん | RubyとPythonでクライアント・サーバ
louis vuitton replica...2013/10/23 05:18 PM
fake hermes stamp にょろぷにらん | RubyとPythonでクライアント・サーバ
top replica hermes bracelet...2013/10/23 04:05 PM
fake hermes scarves にょろぷにらん | RubyとPythonでクライアント・サーバ
hermes birkin kelly replica...2013/10/23 03:56 PM
fake gucci vest にょろぷにらん | RubyとPythonでクライアント・サーバ
replica gucci bum bag...2013/10/23 03:30 AM
louis vuitton wallet replica cheap にょろぷにらん | RubyとPythonでクライアント・サーバ
louis vuitton replica...2013/10/23 02:18 AM
womens ecco shoes にょろぷにらん | RubyとPythonでクライアント・サーバ
mbt shoes women 2013...2013/10/23 01:54 AM
replica louis vuitton monogram bags にょろぷにらん | RubyとPythonでクライアント・サーバ
cheap louis vuitton backpack replica...2013/10/23 01:33 AM
cheap louis vuitton replica bags uk にょろぷにらん | RubyとPythonでクライアント・サーバ
louis vuitton replica...2013/10/22 10:42 PM
replica gucci gloves にょろぷにらん | RubyとPythonでクライアント・サーバ
fake gucci purses for sale...2013/10/22 11:05 AM
gucci twirl watch sale にょろぷにらん | RubyとPythonでクライアント・サーバ
gucci outlet...2013/10/21 10:18 PM
louis vuitton replica nyc にょろぷにらん | RubyとPythonでクライアント・サーバ
Louis Vuitton bags for cheap...2013/10/21 09:12 PM
louis vuitton replica best site にょろぷにらん | RubyとPythonでクライアント・サーバ
louis vuitton replica paypal payment...2013/10/21 02:05 PM
how to patina replica louis vuitton にょろぷにらん | RubyとPythonでクライアント・サーバ
louis vuitton replica...2013/10/21 12:20 PM
fake hermes collier de chien にょろぷにらん | RubyとPythonでクライアント・サーバ
hermes outlet...2013/10/20 12:25 PM
louis vuitton epi alma replica にょろぷにらん | RubyとPythonでクライアント・サーバ
louis vuitton replica...2013/10/19 11:11 PM
louis vuitton replica garment bag にょろぷにらん | RubyとPythonでクライアント・サーバ
louis vuitton replica...2013/10/19 09:28 PM
best replica louis vuitton handbags にょろぷにらん | RubyとPythonでクライアント・サーバ
louis vuitton replica uk handbags...2013/10/19 06:04 PM
louis vuitton replica jewelry wholesale にょろぷにらん | RubyとPythonでクライアント・サーバ
louis vuitton replica...2013/10/19 11:51 AM
replica hermes picotin handbag にょろぷにらん | RubyとPythonでクライアント・サーバ
hermes jypsiere replicas...2013/10/19 01:38 AM
louis vuitton replica charms にょろぷにらん | RubyとPythonでクライアント・サーバ
hermes fake...2013/10/18 08:39 AM

Comment Form

  

Trackbacks

Trackback url
Latest Entries
Categories
Recent Comments
Recent Trackback
Archives
Profile
Other
RECOMMEND