<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>turbogears / Drkcore</title><link>http://blog.kzfmix.com/turbogears</link><description>Programming, Music, Snowboarding</description><language>ja</language><lastBuildDate>Sun, 22 Apr 2007 22:34:51 +0919</lastBuildDate><item><title>catwalkの使い方がメインのスクリーンキャスト</title><link>http://blog.kzfmix.com/entry/1177248891</link><description>&lt;p&gt;&lt;a href="http://trac.turbogears.org/browser/site_resources/videos/"&gt;TurboGearsのTrac&lt;/a&gt;
にスクリーンキャストが幾つかあったので英語の勉強も兼ねて見てた。&lt;/p&gt;
&lt;p&gt;&lt;a href="http://trac.turbogears.org/browser/site_resources/videos/TurboTunesTutorial.mov?format=raw"&gt;TurboTunesTutorial.mov&lt;/a&gt;でCatwalkの使い方が解説されてた。&lt;/p&gt;</description><pubDate>Sun, 22 Apr 2007 22:34:51 +0919</pubDate><category>Python</category><category>turbogears</category></item><item><title>Turbogears(SQLObject)でSQLのトレース</title><link>http://blog.kzfmix.com/entry/1176465547</link><description>&lt;p&gt;DBICの場合はexport DBIC_TRACE=1でOKなんだけど、SQLObjectだと_connection.debugアトリビュートにTrueを突っ込むらしい。&lt;/p&gt;
&lt;p&gt;Personってクラスがある場合&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;Person&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;_connection&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;debug&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;True&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;これで実際に発行されるSQL文がトレースできる。&lt;/p&gt;
&lt;p&gt;が、個々のクラスでこんなことするのは結構めんどくさいので、DBICみたいに環境変数で設定できないかと調べた。&lt;/p&gt;
&lt;p&gt;&lt;a href="http://d.hatena.ne.jp/seraphy/20061202" title="seraphyの日記 - Pyhon2.5でSQLObjectを使ってみる"&gt;seraphyの日記 - Pyhon2.5でSQLObjectを使ってみる&lt;/a&gt;
&lt;blockquote&gt;コネクションのURIにパラメータとして「Debug=True」と指定しているため、実行時にSQLObjectのトレース情報がコンソール画面に表示される。&lt;/blockquote&gt;&lt;/p&gt;
&lt;p&gt;URIにパラメータ渡すようにすればいいらしいので、環境変数がセットされているかどうかでURIにパラメータ渡すかどうか決めるように設定ファイルをいじればよいみたいだ。&lt;/p&gt;</description><pubDate>Fri, 13 Apr 2007 20:59:07 +0919</pubDate><category>Python</category><category>turbogears</category></item><item><title>TurboGearsのモデルだけいじる</title><link>http://blog.kzfmix.com/entry/1176210089</link><description>&lt;p&gt;TurboGearsでなんか作ってて、とりあえずテスト用になんかデータをモデルに突っ込んでおきたい場合&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;tg&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;admin&lt;/span&gt; &lt;span class="n"&gt;shell&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;で対話的にモデルを操作できるのが便利。あとはtg-admin toolsでcatwarkとか。&lt;/p&gt;
&lt;p&gt;単純なモデルの場合はこれで十分だったりするんだけど、ちょっと複雑になるとスクリプトから操作したい。&lt;/p&gt;
&lt;p&gt;コネクションの書き方が違うみたいなので、少し悩んだ挙句、&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;from&lt;/span&gt; &lt;span class="n"&gt;turbogears&lt;/span&gt; &lt;span class="nb"&gt;import&lt;/span&gt; &lt;span class="n"&gt;update_config&lt;/span&gt;
&lt;span class="n"&gt;update_config&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;configfile&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;dev.cfg&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;modulename&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;myapp.config&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;from&lt;/span&gt; &lt;span class="n"&gt;myapp&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="nb"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;とやるといいらしいことがわかった。普通にSQLObjectだと下のように書くようだ。&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;from&lt;/span&gt; &lt;span class="n"&gt;sqlobject&lt;/span&gt; &lt;span class="nb"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;

&lt;span class="n"&gt;connection_string&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;sqlite:///home/kzfm/myapp/devdata.sqlite&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;connection&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;connectionForURI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;connection_string&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;sqlhub&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;processConnection&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;connection&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;これで、&lt;a href="http://www.feedparser.org/"&gt;feedparser&lt;/a&gt;を使ってRSSをとってきてテストデータを作ってみた。&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;from&lt;/span&gt; &lt;span class="n"&gt;turbogears&lt;/span&gt; &lt;span class="nb"&gt;import&lt;/span&gt; &lt;span class="n"&gt;update_config&lt;/span&gt;
&lt;span class="n"&gt;update_config&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;configfile&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;dev.cfg&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;modulename&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;pectin.config&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;from&lt;/span&gt; &lt;span class="n"&gt;pectin&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="nb"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;
&lt;span class="nb"&gt;import&lt;/span&gt; &lt;span class="n"&gt;feedparser&lt;/span&gt;

&lt;span class="n"&gt;rss_sites&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;/index.rss10&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;\&lt;/span&gt;
            &lt;span class="s"&gt;&amp;#39;http://kzfm.vox.com/library/posts/atom.xml&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;rss&lt;/span&gt; &lt;span class="n"&gt;in&lt;/span&gt; &lt;span class="n"&gt;rss_sites:&lt;/span&gt;
   &lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;feedparser&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;rss&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
   &lt;span class="n"&gt;newfeed&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Feed&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;rss&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;link&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;feed&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;link&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;\&lt;/span&gt;
        &lt;span class="n"&gt;title&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;feed&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;title&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;description&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;feed&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;subtitle&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

   &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt; &lt;span class="n"&gt;in&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;entries:&lt;/span&gt;
       &lt;span class="n"&gt;newentry&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Entry&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;read&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;link&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;link&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;title&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;title&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;\&lt;/span&gt;
                        &lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;feed&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;newfeed&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

   &lt;span class="n"&gt;hub&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;commit&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;なんかeがエラーキャッチみたいだけどentryってことで。あと、feedparserはatomとかrssとか考えなくてもいいみたいで便利。&lt;/p&gt;
&lt;p&gt;ちなみに、今はイントラで使う用にちょっとしたRSSリーダーを作ろうとしている。会社では&lt;a href="http://feedonfeeds.com/"&gt;feed on feeds&lt;/a&gt;使ってるんだけど、LDRに慣れてしまうと、ストレスが溜まりまくってどうしようもない。せめて、キー操作が欲しいのそれぐらいやれそうな簡易なやつを作ってみることにした。&lt;/p&gt;
&lt;p&gt;ではじめて使ったRSSリーダーである&lt;a href="http://glucose.jp/"&gt;glucose&lt;/a&gt;にちなんでペクチンという名前にしてみた。&lt;/p&gt;
&lt;p&gt;ベタすぎ。&lt;/p&gt;</description><pubDate>Tue, 10 Apr 2007 22:01:29 +0919</pubDate><category>Python</category><category>turbogears</category></item><item><title>Better Web Application Framework</title><link>http://blog.kzfmix.com/entry/1175432461</link><description>&lt;p&gt;英語強化年間ということで、Googleの&lt;a href="http://video.google.com/videosearch?q=Google+techtalks&amp;amp;so=0"&gt;TechTalks&lt;/a&gt;を見るようにしているが、実際に見てみると面白いのが結構あるし、なによりスライドが読みやすくて、かなりよいかもな感じ。めぼしいものはローカルに落としてGoogle Video Playerで見てます。&lt;/p&gt;
&lt;p&gt;で、Google TechTalksじゃないけど今日見たWebAppの話は面白かった。Rails,Zope,TG,Djangoの比較をしているのだけどわかりやすい。&lt;/p&gt;
&lt;p&gt;&lt;a href="http://video.google.com/videoplay?docid=6297126166376226181"&gt;Better Web Application Framework&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;ただしこのプレゼンいつ撮ったのかわからないんだけど、最後のスライドに関しては、現在のTurbogearsはauthもi18nも対応していると思うし、本も出てるのでそこそこいい位置にいるのではなかろうか?と思った。&lt;/p&gt;
&lt;p&gt;あと、RoRはレガシーのシステム(特にプライマリーキーがなかったり、無駄に複合キーだったりとやたら奇抜なDB)とインテグレートしにくいよとかいってたけど、RoRでシステム構築する人達は、現実的にはそこらへんどうやって解決してるんでしょ？&lt;/p&gt;</description><pubDate>Sun, 01 Apr 2007 22:01:01 +0919</pubDate><category>turbogears</category></item><item><title>病理組織画像のflickrみたいなもんをつくる</title><link>http://blog.kzfmix.com/entry/1175267915</link><description>&lt;p&gt;ふと、毒性評価のチームが「病理とかの画像にタグつけて管理したいなぁ」とのたまうので、&lt;/p&gt;
&lt;p&gt;ほう、それは&lt;strong&gt;イントラflickrクローンみたいなものに落書き機能をつけてタグとコメントで管理できる洒落たツール&lt;/strong&gt;が欲しいということか？&lt;/p&gt;
&lt;p&gt;それいいじゃん!ということでいけそうか試してみた。&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.thesamet.com/blog/2007/02/20/making-a-flickr-killer-with-turbogears-part-2-a-flickr-clone-in-37-minutes-flat/"&gt;Making a Flickr Killer With TurboGears&lt;/a&gt;を参考に喜久酔ひっかけながらもそもそと手を動かすこと30分。&lt;/p&gt;
&lt;p&gt;おーCRUDくらいまでできた。&lt;/p&gt;
&lt;p&gt;&lt;img alt="tflickr" src="http://www.kzfmix.com/images/blosxom/tgal.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;SQLiteのText型ってBLOB突っ込めんの知らんかったが、実際はバイナリはデータベースに突っ込むよりはファイル管理のほうがいいのかな。タグ付けは自分で書いてもいいし、&lt;a href="http://microapps.sourceforge.net/tasty/index.html"&gt;Tasty&lt;/a&gt;にお任せしてもいい気がする。&lt;/p&gt;
&lt;p&gt;落書き機能(病理画像に着目ポイントを書き込む機能)はAjaxかAS3でつくる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://nanto.asablo.jp/blog/2005/09/27/89628"&gt;http://nanto.asablo.jp/blog/2005/09/27/89628&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://josephlabrecque.com/archives/17"&gt;http://josephlabrecque.com/archives/17&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.jamesward.org/wordpress/?p=66"&gt;http://www.jamesward.org/wordpress/?p=66&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;gimpとかphotoshopのレイヤーみたいに重ねる感じにすればいいと思うんだけど。そのうち、まとまった時間をとってやる。&lt;/p&gt;</description><pubDate>Sat, 31 Mar 2007 00:18:35 +0919</pubDate><category>bioinformatics</category><category>turbogears</category></item><item><title>TurboGearsでpdfを出力する</title><link>http://blog.kzfmix.com/entry/1174088877</link><description>&lt;p&gt;&lt;a href="http://achievewith.us/public/articles/2007/02/21/produce-pdf-pages-with-turbogears-cheetah-and-reportlab"&gt;Produce PDF Pages with TurboGears, Cheetah, and ReportLab&lt;/a&gt;
を見つけたので早速やってみた。&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.reportlab.org/index.html"&gt;ReportLab&lt;/a&gt;はpdfを生成するライブラリらしい。ドキュメント読むと面白そうなんだけど、グラフ作成とかの部分はちょっと使いにくそうかナァ。むしろ&lt;a href="http://matplotlib.sourceforge.net/"&gt;matplotlib&lt;/a&gt;か&lt;a href="http://rpy.sourceforge.net/"&gt;Rpy&lt;/a&gt;にグラフ作成は任せて、できた画像を入れ込むほうが使いやすいかな。&lt;/p&gt;
&lt;p&gt;それから、tg-admin infoして気付いたけど、&lt;a href="http://www.cheetahtemplate.org/"&gt;Cheetah&lt;/a&gt;はTGの標準モジュールだった。&lt;/p&gt;
&lt;p&gt;プレゼン資料作成用に&lt;a href="http://www.reportlab.org/python_point.html"&gt;PythonPoint&lt;/a&gt;というXMLからpdfのスライドを作成するライブラリも一緒に入ってた。XMLじゃなくてYAMLから生成できるともっと便利に使えそう。&lt;a href="http://search.cpan.org/~ingy/Spork-0.20/lib/Spork.pm"&gt;Spork&lt;/a&gt;のテキストファイルをpdfにできるようにしてもいいかもしれん。&lt;/p&gt;</description><pubDate>Sat, 17 Mar 2007 08:47:57 +0919</pubDate><category>Python</category><category>turbogears</category><category>reportlab</category></item><item><title>flex2でswfなど作ってみたり</title><link>http://blog.kzfmix.com/entry/1173273118</link><description>&lt;p&gt;最近、イントラで使っているシステムのUIに関して考えさせられるような事が立て続けに起きて、創薬系のシステムはAjaxとかのwebだけの枠組み以上のものがやっぱ必要なのかナァと感じている。&lt;/p&gt;
&lt;p&gt;で、いつものようにリーダーチェックしてたら、&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.adobe.com/devnet/flex/articles/eckel_video.html"&gt;Creating a Flex application using the TurboGears framework&lt;/a&gt;なんつーものをみっけた。&lt;/p&gt;
&lt;p&gt;flex2とturbogearsで簡単な住所録を作るっていうチュートリアルで、JSON使ったCRUDの過程を追えておもしろい。こんな感じでCatalystとFlexを連携させても面白いんじゃなかろうかと思ったし、これだとflashなので表現に幅がでて色々できて楽しいかもんと。&lt;/p&gt;
&lt;p&gt;早速適当に流し読みして放ってあった、WEB+DB PRESS Vol.37のflex2の章なんかを見ながらflex2の勉強などはじめてみた。&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4774130419/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/513RcCoJaGL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;WEB+DB PRESS Vol.37&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    &lt;br /&gt;
    技術評論社 / ?円 ( 2007-02-23 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;以下のリンクも参考にした。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://blog.hide-k.net/archives/2007/02/fedora_core_6fl.php"&gt;http://blog.hide-k.net/archives/2007/02/fedora_core_6fl.php&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://d.hatena.ne.jp/secondlife/20070211/1171173690"&gt;http://d.hatena.ne.jp/secondlife/20070211/1171173690&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.hide-k.net/archives/2007/03/flex2fileref.php"&gt;http://blog.hide-k.net/archives/2007/03/flex2fileref.php&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;週末集中してなんか作ってみよう。&lt;/p&gt;</description><pubDate>Wed, 07 Mar 2007 22:11:58 +0919</pubDate><category>flex2</category><category>turbogears</category></item><item><title>kidってなかなかいいかも</title><link>http://blog.kzfmix.com/entry/1171894874</link><description>&lt;p&gt;TurboGearsのテンプレートエンジンのKidって使いやすい感じだなぁ思ったので、週末何でかなーってジムの自転車漕ぎながら考えてた。&lt;/p&gt;
&lt;p&gt;&lt;a href="http://nagosui.org/Nagosui/Misc/Turbogears/turbogears-about-kid" title="TurboGears: Kid Template System — nagosui.org"&gt;TurboGears: Kid Template System — nagosui.org&lt;/a&gt;
&lt;blockquote&gt;多くのテンプレートシステムでは、タグをミスマッチな状態にしておくことが可能になっています。KidにおいてはあなたのテンプレートはvalidなXMLになります。つまりあなたは、ミスマッチなタグが存在しないことを保証されているのです。&lt;/blockquote&gt;&lt;/p&gt;
&lt;p&gt;CatalystのTTなんかはブロックでくみ上げるイメージになるのでブロック内でif-elseとかごちゃごちゃやりだすと手が付けられなくなってくるけど、KidはXMLだからDOMTreeみたいな思考パターンになって処理のイメージがしやすいのかナァってのが今の結論。つまり、TTは面構造(PROCESSとか)なのに対し、Kidは木構造(defとか)だと。&lt;/p&gt;
&lt;p&gt;Kidも使い込んでいくと、嫌なとことか目についてくるだろうからまた変わるかもしれんけど。&lt;/p&gt;</description><pubDate>Mon, 19 Feb 2007 23:21:14 +0919</pubDate><category>Python</category><category>turbogears</category></item><item><title>SQLObjectとSQLAlchemyの違い</title><link>http://blog.kzfmix.com/entry/1171629715</link><description>&lt;p&gt;相変わらず、暇を見つけてはTurboGearsで。メジャーなO/Rマッパーが二つあるみたいなのでちょっと調べた。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://d.hatena.ne.jp/tokuhirom/20060430/1146403580"&gt;http://d.hatena.ne.jp/tokuhirom/20060430/1146403580&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://docs.turbogears.org/1.0/SQLObjectVsSQLAlchemy"&gt;http://docs.turbogears.org/1.0/SQLObjectVsSQLAlchemy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://groups.google.com/group/turbogears-ja"&gt;turbogears-ja&lt;/a&gt;にも資料があった。&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;SQLObject&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;CDBI&lt;/span&gt;
&lt;span class="n"&gt;SQLAlchemy&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;DBIC&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;というイメージでよいのかな。てかCDBIがアクティブレコードパターンだっていう記述を見た事がないので、さらに追っかけてみると&lt;a href="http://d.hatena.ne.jp/keyword/Class%3a%3aDBI"&gt;ActiveRecord パターンに近い実装&lt;/a&gt;らしい。じゃぁActiveRecordパターンに足りない部分はなんなの？が知りたくなったので更に調べてみた。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://d.hatena.ne.jp/naoya/20051024/1130146687"&gt;http://d.hatena.ne.jp/naoya/20051024/1130146687&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://naoya.g.hatena.ne.jp/naoya/20060718/1153226717"&gt;http://naoya.g.hatena.ne.jp/naoya/20060718/1153226717&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://naoya.g.hatena.ne.jp/naoya/20060603/1149301517"&gt;http://naoya.g.hatena.ne.jp/naoya/20060603/1149301517&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mt.kmtz.net/archives/2006/07/swatch_iptables_sshd_brute_for.html"&gt;http://mt.kmtz.net/archives/2006/07/swatch_iptables_sshd_brute_for.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;うーん微妙に掴めきれてない気が。&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4798105538/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/51TVM1CFHKL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;エンタープライズ アプリケーションアーキテクチャパターン (Object Oriented Selection)&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    マーチン・ファウラー&lt;br /&gt;
    翔泳社 / 6090円 ( 2005-04-21 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;ちゃんと読んでみようか。&lt;/p&gt;</description><pubDate>Fri, 16 Feb 2007 21:41:55 +0919</pubDate><category>Python</category><category>turbogears</category></item><item><title>CBlogをいじってます</title><link>http://blog.kzfmix.com/entry/1171459527</link><description>&lt;p&gt;&lt;a href="http://www.turbogears.org/"&gt;TurboGears&lt;/a&gt;のシンプルブログツールとして紹介されている&lt;a href="http://cheeseshop.python.org/pypi/CBlog/0.1a"&gt;CBlog&lt;/a&gt;をいれてみた。&lt;/p&gt;
&lt;p&gt;このツールは、Development modeとProduction modeに分かれているのだけど、Production modeでは何故か動かなかった。ていうかエラーもでなかったのでちょっと原因不明。&lt;/p&gt;
&lt;p&gt;Development modeで起動すると、&lt;a href="http://paddyland.serveblog.net/"&gt;こんな感じの&lt;/a&gt;blogっぽいテンプレートが出てきて、あとはwebからユーザーの設定とかすればすぐに使えそうだ。roleとか設定できるので多人数での書き込みも考慮されているっぽい。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;いいとこ&lt;/li&gt;
&lt;li&gt;カテゴリの部分がタグなんで階層型の区分けでないのが楽&lt;/li&gt;
&lt;li&gt;マルチユーザー対応なので職ブロ(職場ブログ)とか便利かも&lt;/li&gt;
&lt;li&gt;いまいちなとこ&lt;/li&gt;
&lt;li&gt;マルチユーザー対応なとこ。blosxom代替品としての僕のニーズ的にはloginとか必要ないかも&lt;/li&gt;
&lt;li&gt;ちょっとjavascriptのポップアップ多すぎ&lt;/li&gt;
&lt;li&gt;下書き保存機能がない。僕は書きぱなしの駄文が多いのでこれはつらい&lt;/li&gt;
&lt;li&gt;devモードだとlocalhostでアクセスしないとあかん。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;という感触だけど、色々と勉強になりそうなのでコード読んでみる。&lt;/p&gt;</description><pubDate>Wed, 14 Feb 2007 22:25:27 +0919</pubDate><category>turbogears</category></item></channel></rss>