djblogkit改良中
2006年12月31日(日) 02:50
djblogkitにAjaxで関連コンテンツを操作できる機能を付けています。
2006年最後の状況をスクリーンキャストで公開します。なんとなく、無駄にAjaxです。
ムービーをみてもらってもわからないと思いますが、結構めんどうなバリデータを使っています。
ストラテクト研究所におけるOSX定番アプリ
2006年12月28日(木) 21:53
といわけで、ストラテクト研究所の開発チーム(戦略情報技術部と名前がついています)のメインマシンがmacbook pro 17inchになりました。
欲しいねぇ、と言っていたらマジでcinemaディスプレイも来ました:-0
私は昨晩、OSXに入れるアプリケーションの一覧を作っておきました。
Javaな同僚(WorkStyleの仕様を作っているのはこの同僚)も日頃からOSXに入れるアプリケーションの一覧を作っていました。
phpなrhacoな同僚は、TrueStudioとEclipseとMySQLくらいしか入れないので、一覧はありませんでした。
若い(といってももう23?。来た時は20だったのにねぇ)な同僚は、これで必要なものを漁ったのかも知れないけれど、整理に問題がある気がしますw
Javaな同僚の定番で、よく知らなかったものかつ良さげなものを紹介してみる
- uApp
- アプリを綺麗にアンインストールする。OSXってアプリをゴミ箱に入れて終わりなんだけど、実はいろんなファイルが残っちゃってる。有料のものは知ってるのがあるけど、無料でできるのは知らなかった。
- Mouse Locator
- 秘密だけど、家でもデュアルディスプレイしているのでマウスポインタを見失うことがあります。このアプリは、特定の操作をするとマウスの周りに目印を出してくれます。好きな画像が使えるっぽいです。同僚にはいらんと言いましたが、やっぱり素敵でした。
- Perian
- QuickTimeで様々な形式の動画を見られるようにするツールです。いつもチコチコとコーデックを入れていましたが、これでいいのかな?
- KDiff
- 自分の作っているものは、基本的に全て自前subversionに突っ込むので、snv diffで事足りると言えば事足りるのですが、GUIで見比べられるものもあると便利かも知れません。
一応、元ネタ。
JavaなOSX定番
Python好きなOSX定番
私の定番にJava関連が入っていないのは秘密だ…
TurboGears勉強会
2006年12月28日(木) 00:00
「参加ご希望の方は、MLに参加表明していただくか、当日直接来場していただいても結構です。」とのこと。
WebFactionのクリスマスプレゼント
2006年12月25日(月) 00:53
webfactionからクリスマスプレゼントがありました。
TurboGearsのホスティングサービスを探してここに迷い込んでくる人には朗報かもしれません。
今までのwebfactionは、年間$150位払わなければDjangoやTurboGearsは使えなかったんですが、年間$100強で使えるようになりました。$150だと80MBの物理メモリ、$100だと40MBの物理メモリを利用できます。
今のところ、djangoproject.jpもwebfactionでホストしています。さすがにmod_pythonなだけあって、動作はそこそこのスピードです。
オープンソースのプロジェクトには、tracとsubversionを無料で貸してくれます。独自ドメインは利用できませんが。
一応、WebFactionで経験したことをあげておきます。
- 使えるメモリが少ない
- 40MBだと、apacheのプロセス3つが限界です。これは同時アクセスが2でも困ったことになる場合があります。オーバーすると、WebFactionの監視ツールが自動でチケットを切ってきます。対処して、サポート宛に何をしたか説明しなければなりません。djangoproject.jpはオープンソースソフトウェアのユーザ会みたいなものだ、と善処を要求したらメモリを倍にしてくれましたが。
- expatのバージョンが・・・
- あくまで、djangoproject.jpが2006/02に使おうとした瞬間だけかもしれませんが。Pythonとosのライブラリ間のexpatのバージョンが、あわず、Djangoのコードにあったexpatのimport文をコメントアウトしています。2006/02の頃は、Python-Hostingという名前だったんだけど?
- スクリプトにくる時点で、サーバ名がはぎ取られている
- 一つのロングランニングプロセスで、サブドメインを切り替えようとすると出来ません。スクリプトにくる時点でローカルIPアドレスを目指してきてしまいます。かなり頑張ると何とかなるらしいのですが、サポートに聞いてください。
mod_pythonにはひかれる
けど、もの凄い自由度という点で、DreamHostを継続しよう(このブログのホスト先)。
第19回PHP勉強会
2006年12月23日(土) 23:40
第19回PHP勉強会にお邪魔してきました。
なぜ急にPHP勉強会なのかというと、EthnaコミッタのhaltさんがDjangoの紹介を行うという告知がdjango-jaメーリングリストに流れたからです。
嫁の顔色を気にしながら、娘の「行かないでー」攻撃に耐えながら、渋谷はウノウ株式会社へ。
フォト蔵(お、俺の番号若いw)のAPIをおいしく使う方法とか面白げな話を聞いた後、おもむろにDjangoの紹介が!
Djangoについて
Djangoに興味を持ったのは、Mauraカワユすが理由。というのはネタ
この間EthnaのCSRF対策エントリにトラックバックを打ったのもきっかけにはなったみたいだけど、実際は日本語のPythonドキュメントと、日本語のDjangoドキュメントが充実していたのが足を踏み入れた一番大きな理由だったみたい。ということで、やはり日本Djangoの神は増田さんだ。
私と同じく、Railsは挫折したとのこと。逆にDjangoに挫折しなかったのは前述のドキュメントに加え、Python自体の読みやすさとか、そもそも内容を追わなくて済むDjangoのドキュメントのおかげだったらしい。まとめられたドキュメント重要。特にデザイナ向けのドキュメントが存在していることに驚いていた。
EthnaとDjangoの比較について。
EthnaにもURLバリデータとかあるみたいで、素敵。
Pluginが利用できるらしいんだけど、どこに刺さるんだろう。Djangoだとmiddlewareがプラグイン代わりになってるんだけど、middlewareじゃやりにくいこともあるので興味がある。
URLHandlerっていうURLConfみたいのも搭載されているとのこと。
haltさんのDjango紹介後、数人からDjangoについて質問を受ける。いきなりインストールをして管理画面を日本語化する方法を聞いたりする人もいて、のりの良さにびっくり。かなりDjangoに興味を持っていただいた模様。haltさんのもくろみとして、「いろんな人がいろんなフレームワークを見て良いところをEthnaにEthnaっぽく取り込む」ということらしい。
Rhacoについても
随所で宣伝をしたけど、ドキュメントが無いんだよねぇ。
それでもhaltさんは「時間があったら是非触ってみたい」と。
PHPよく分からないけど、一応Rhacoコミッタなのでw、喜ばしい。
あ、天皇誕生日の今日、Rhacoの1.0と1.0対応のサンプルアプリケーション(www.goesby.comとprhagger)がリリースされています。
歴史の関係で、リリースはsourceforge.jpとsourceforge.netで行われていますが、subversionを利用しているsourceforge.netが第一次配布場所ということで。
不明点はrhaco-ja google groupsで質問すると、素早く答えるかも
Hibernateはこちら
2006年12月22日(金) 00:40
相変わらず、Hibernateで検索してくる人の比率が多いのですが!?
最近(もう一年くらい)は、Djangoネタだらけなんですが、多いです。Hibernateで困っている様子が見受けられる方々。
なぜこんなことを言い出したかというと、最近mybloglog.comを使いだしまして、『Hibernateについての困った感じの検索クエリでやってきてkoichikさんの所に抜けていく人』が毎日何人もいることに気づいたという次第です。
かわいそうなので、Hibernateの特徴について少し書いておきます。
- O/Rマッパーとしてとらえないこと
- HibernateはDatabaseプロキシと呼ぶべきものです。理由は、プログラマの指示と無関係にデータベースに対してのアクションタイミングを制御するからです。このあたりの間隔がとらえられないようであれば、避けた方が無難です。
- データベースに仕掛けを持たないこと
- 前述した理由から、Hibernateはプログラマの指示した順番とは違う順番でデータベースにアクションを起こすことがあります。トリガーで書き換えた値を、先に保存の指示を出したデータが上書きすることがあります。
- listした結果が0件の場合は、設定を確認すること
- 必要な設定が無くても、hibernateはエラーにならず、単に0件のデータを返してくるパターンがあります。起動時に行われている設定のロードは格好付けですので信用してはなりません。
- アクセサを書き換えないこと
- Hibernateは、データベースから取得した値が書き換えられたことの確認にアクセサを利用します。ゲッターで値を変更して出力するようなことをしたい場合には、POJOに値をコピーしてから行いましょう。表示層にDAOを持っていくことを許してはなりません。
- 5ガッツ消費すること
- Oracleデータベースのインストールを「1ガッツ」とカウントした場合、Hibernateをまともに使うためには「5ガッツ」必要だといわれています。安直に薦めている記事や風評に騙されず、きちんと検証を行いましょう。CRUDだけ出来ても油断してはなりません。
- 発信すること
- 特徴ではありませんが、Hibernateはそれ自体の噂と比べると個人の発信が非常に少ない気がします。
koichikさんのブログは分量的にも試していること的にも素晴らしいのですが、ブログという特性上。ねぇ(しかもはてなのタイトルは・・・)。
きちんと良いとか悪いとか、良いと思ったなら貢献として何がどう良いのかを発信してください(これはRails使いにも言いたい。secondlifeさん/masuidriveさんくらいしかまともに発信してなくね?あ、くまくまの人もいた)。
なんだか冗長なことになりそうだな、と思ったらDjangoにトライしてみましょう。
DAOを表示層に持っていくななんていいませんよ。表示層から破壊的メソッドを呼ぶには設定をしなければなりませんから。ずっと素敵な形だと思いませんか?
ただし、Hibernateほど細かく操作は出来ません。もちろん難しい部分だけSQLを使えば良いのですが。
忘れてましたが、Middlegenideを使うのに辟易しているのであれば、声をかけてください。Oracleのデータベース情報から、hbmとPOJO用のbeanクラスをリバース生成するAntタスクを実装して持ってますので。VIEWにも対応していますよ。
DreamHost復旧かも
2006年12月21日(木) 23:50
DreamHostで発生していたfastcgiのzombie&imcomplete header問題は、fastcgiのファイル名をdispatch.fcgiにすることで回避できているような気がします。
もうしばらく様子を見なければいけないような気もしますが、なんどかプロセスの状態をチェックした限りではzombieプロセスが残っている感じはありません。
駄目かも駄目かもと連呼したので、DreamHostに惚れている理由をいくつか
- Djangoが使える
- 非公式ですが、fastcgiでDjangoが使えます。ちなみにRailsは公式に使えます。
- ホストするドメイン無制限
- ドメイン無制限と書きつつ、全てのドメインが同じサービスをさすものや、パーキングのみのレンタルサーバが多い中、本当にイメージ通りの無制限です。
- Managed
- 保証はしていませんが、デイリーバックアップをとってくれています。たまにディスクが壊れた、とかいう告知がありますが、復旧したという告知なので大丈夫なのでしょう。
- 容量・転送量の制限が半端じゃない
- ハードディスクの基本容量は200GB。GMailの様に毎週増えます(毎週1GBだったかな?)
- ユーザがたくさん作れる
- 75アカウントまで、shellログイン可能なユーザが作れる。グループは同じになるけど、いろいろできる。
- 結構速い
- fastcgiはよく寝ているのでスピードが感じられませんが、静的ファイルの配信やsubversion(svn+ssh)の転送速度はなかなかのスピード。500kbyteは出るみたい。
- すげーユーザがいる
- メインはgypsyだろうけど、jeffcroftもdreamhostを使ってる(phpと静的ファイル用かも?)
関連コンテンツにあるDreamhostへのリンクを使ってDreamhostを借りると、初年度安く借りられますよ(私も少し潤いますっ)。97日間はキャンセルするとお金が返ってくるので(ドメインを無料レジストしちゃうとその分は却ってこない)、実際にどんな感じか動かして判断してください:-)
DreamsHostのDjango問題解決法
2006年12月19日(火) 11:27
2006/11中旬過ぎから、DreamHostでホストしているDjangoアプリの動作がおかしいという症状が多発していました。
DreamHostのfastcgiサポートの仕方は、各ユーザがfastcgiプロセスを起動してWebサーバからのリクエストを待つ、というものではありません。
Webサーバにアクセスがあると、動的にfastcgiプロセスを起動し、プロセスがスリープいているとKillされるというものです。
発生している症状は、zombieプロセスが増え続け、incomplete headers (0 bytes) received from serverを多発しつつ応答不能となるものです。
「スパムとか」もPythonを入れなおしたりと、いろいろ試してはみたものの、症状が改善しなかったため一時的にmod_python運用に逃げています。DreamHostのために言っておくと、staticファイルの配信等はDreamHostのままなのですが、非常に快適です。まだ正式にはDjangoサポートはしていません(Django本家のWikiに書き込んだのは中の人じゃないのかな?)。
今のところ上がっている解決法は、2つ
起動するfcgiの名前をdispatch.fcgiにする
threadじゃなくってprefolkで起動する
prefolkにするのは試したと思うから、fcgiの名前をdispatch.fcgiに変えるってのを試してみようかな。
だって、DreamHostは本当に夢のようなんで。Djangoが使えなくても魅力的なくらい。
多重継承はすんなり出来そう
2006年12月19日(火) 02:42
Modelの継承の話だと思った人はごめんなさい。
models.Modelと別のニュースタイルクラスを多重継承して、実際のModelクラスを作るというだけの話。
職業Javaプログラマだから多重継承慣れしていないのです。
Djangoで手軽にCSRF対策する
2006年12月14日(木) 12:52
武蔵流プログラマへの道で、「Ethnaで手軽にCSRF対策する」というエントリが上がっていたので、「Djangoで手軽にCSRF対策する」というまねっ子エントリ。
#LLRingではお世話になりました
settings.pyのMIDDLEWARE_CLASSESに以下の行を追加します。
'django.contrib.csrf.middleware.CsrfMiddleware'
なんだよっ!Djangoの機能じゃねーかっ!
注意点は、SessionMiddlewareより前に入れる、GZipMiddlewareより後ろに入れる。ということがドキュメントに書いてあります(日本語訳)。
CSRFってのはCross Site Request Forgeriesのことで、まぁWebアプリ脆弱性の一つですね。
あ、あとこの方法は今のところいいとされている対策方法で、完璧なものではありません。
:-o
Webデザイナーに捧ぐDjango礼賛
2006年12月13日(水) 15:18
Mauraさんというかわいい感じの女性Webデザイナ?がMovableTypeからDjangoで自作したCMSに移った顛末(常山さんの定期巡回から)。
ちょー受けるのは「自分にとってDjangoはRailsより5498345098345倍簡単」とか「MovableTypeでリビルドしたらデータベーステーブルが45098345個できた」とかいうDHHを笑うかのような数字。
DjangoはMauraさんが読めと薦めているよなデザイナによるDjango礼賛の記事があるように、デザイナがよってくるフレームワークでもあります。
ただし、Webデザイナといっても海外のWebデザイナはXHTMLもCSSもvalidatorを通るものを書ける人、のことをいうようです。日本ではどうなのか知りません。
テンプレートはDWでタグが崩れないように、デザイナが表示ロジックを破壊しないように、という論調は、少なくともアメリカでは、既にナンセンスなのでしょう。
Djangoを使っているデザイナはテンプレートの継承も使いこなしています(CSSを理解してれば継承くらい理解できるはずですからね)。
ちなみに、Djangoのドキュメントはデザイナ向けテンプレートドキュメントとプログラマ向けテンプレートドキュメントとが分かれています。しかもデザイナ向けが先。表示ロジックはデザイナの責任範囲としています。
関係ないですが、Mauraさんの撮ったカエル
デザイナの方もdjango-jaで質問を気軽にどうぞ。モデル定義を一緒にしてくれる仲間も見つけられるかも(Model定義は簡単なPythonスクリプトを書かなければなりませんし、実行環境やサーバ周りの知識はプログラマに聞いた方が早いでしょう)
djangoproject.jpの作りなおしに協力してくれるデザイナの方も探してたりします
sourceforge.netでsvn copyが403な件
2006年12月13日(水) 01:54
自分ではした経験があるので「出来るはずだ、Eclipseなんかに頼るのがいけないんだ」と言ってsvnクライアントからコマンド打ってやってみました。できませんでした。。。
やったことがあるので、出来るのは確かです。検索しても、http(s)だとそうなることがあるとか、どうでも良い情報しか出てこないようです。いや、そうじゃなくてsourceforge.netのtipsは日本語のページを検索しても駄目なんだってば。
ということで、メモ(是非日本語でメモしろと要求されたので)。
sourceforge.netのプロジェクトページに書かれているURL
・https://svn.sourceforge.net/svnroot/PROJECT
svn copyする際に利用するURL
・https://PROJECT.svn.sourceforge.net/svnroot/PROJECT
以上。はじめにCheckoutするときから後者のURL使っとけ。ってかこれってドキュメントに書いてある?
例
svn copy https://PROJECT.svn.sourceforge.net/svnroot/PROJECT/trunk https://PROJECT.svn.sourceforge.net/svnroot/PROJECT/tags/0_96 --username someone -m 'description here'
コメントフォームの質問と答を実装してる人を見つけた!
2006年12月07日(木) 11:28
質問が算数になっているので、ちょっと考えが違うのですが、できることは同じ。
ただ、算数では強度が弱いし、自動生成だとするとコメントにかかる苦労をコメントする人に押し付けている感が。
PythonWorkshop04
2006年12月07日(木) 02:02
追記: 閉じてないタグがあるとエラーにはならないけど取れないらしい(rhaco)
思いのほか溝口が遠くてちょびっと遅刻しましたが、中居さんのDjangoAndAjaxプレゼンが始まる前に会場に着きました。間に合ったうれしさのあまり、一目散に前の方の席を目指したところ、偉い人たちに挨拶をしそこないました;-)。
中居さんのDjangoプレゼンで、INSTALLED_APPSにはプロジェクト名を含めなくても動作することを学んだり、JavaScriptはやっぱり嫌だなぁと思ったり。。。
今日学んだもので面白そうだな、と思ったのはBeautifulSoupというHTML/XMLパーサー。かなりいい加減なHTMLもパースできるとのことでした。Rhacoのパーサーもいい加減なHTMLをパースできます。今度対決させてみようと思います。
参加者にあの「かずひこ」さんがいらしてたのが驚きでした。Pythonはもうアウェーじゃないよ、ということのようです。また、今回は4,5名の女性陣により会場が少し華やいでいた気がします。
Django勉強会にからめてTurboGears勉強会もしたら楽しいのではないかとか、冬合宿は?とかPyConは?とかいう懇親会でした。FM-Townsの話も出たりしました。
あぁあと、肝はダラス!
hugoが忙しくって・・・
2006年12月05日(火) 18:37
確かに、始めのころは言葉が増えるとアナウンスメールがi18nメーリングリストに流れたんだけど、もう数ヶ月間アナウンスメールはない。他の国の言語ファイルはそのころから更新されていないものがあるのはそのためだ。
日本語の言語ファイルも、しばらくの間更新していなかったけど、気づいてから一度二度の更新をしました。
#日本語の言語ファイルで不出来な部分や翻訳されていない部分があったら通知ください。
パッチの管理を行う人を募集しているようにも見える。だれが手を挙げるかな?
とりあえず復旧
2006年12月02日(土) 23:32
はっきりした原因は不明ですが、結局python2.4に自分で入れたライブラリを全て削除して、入れ直したところ動作しだしました。
2.5に切り替えた時と同じ状況のはずですが、2.4のsite-packagesをだれかが見続けていたのかもしれません。
あるいは、本当にCPU時間を使い果たしていて、12月に入ったから復旧したのかもしれません。
defunctなzombieプロセスも、出来たとたんに消えているようなのでとりあえず問題のない状態に戻りました。
しかし、mod_pythonでdedicatedなサーバからfastcgiでsharedなサーバに戻ると、やはり遅さが・・・。

