tracのgoogle sitemaps
2005年08月31日(水) 10:58
tracの0.8.4が出てるみたい。
edgewallのTicketによれば、googlesitemapsに対応していると思われるんだけど、果たしてどうなんだろう。
こことかで必要なんで、ハックしようかなと思っていた矢先。BSDのportsにはいつ頃入るのかなぁ。
edgewallのTicketによれば、googlesitemapsに対応していると思われるんだけど、果たしてどうなんだろう。
こことかで必要なんで、ハックしようかなと思っていた矢先。BSDのportsにはいつ頃入るのかなぁ。
php4とPostgreSQLでPreparedStatement
2005年08月29日(月) 12:59
hibernateがTorqueに比べて勝っている点は、唯一PreparedStatementを利用している点だ。
という職場でのやりとりから、rhacoのO/RはPreparedStatementを使用してみようと調査。
PreparedStatementを利用する利点は、主に二つ(あとは知らない)
php4にはPreparedStatementの機能がないので、自分で実装するしかない。
PostgreSQLのSQL文でPREPAREという物があるので、これが使えそう。
次のような特徴があるため、名前の管理が必要になる。
つまり、PreaparedStatementというクラスを作成して、SQL文とplan_nameと各引数となる値のhashオブジェクトを持たせることになる。
はたして、ここまでコストをかけて速くなるのだろうか?
簡単なテーブルにデータを1万行インサートしてみた所、案の定下記のようになった。
#planの生成にコストのかかるSQLに効果的なのはわかっるけど・・・
以下、テストのガワ。
という職場でのやりとりから、rhacoのO/RはPreparedStatementを使用してみようと調査。
PreparedStatementを利用する利点は、主に二つ(あとは知らない)
- SQL Injectionに対して強くなる
- 同じ文のプロパティ違いSQLは劇的に速くなる(可能性がある)
php4にはPreparedStatementの機能がないので、自分で実装するしかない。
PostgreSQLのSQL文でPREPAREという物があるので、これが使えそう。
PREPARE plan_name [ (datatype [, ...] ) ] AS statementpg_execを二回投げて一つのSQL文が実行できるというもの。
EXECUTE plan_name [ (parameter [, ...] ) ]
次のような特徴があるため、名前の管理が必要になる。
- 1セッションの間 PREPARE は有効。
- ただし、plan_nameは1セッションの間に重複して宣言することは出来ない。
- DEALLOCATEでplan_nameを解放することは出来るが、宣言していない物を解放しようとするとエラーとなる。
つまり、PreaparedStatementというクラスを作成して、SQL文とplan_nameと各引数となる値のhashオブジェクトを持たせることになる。
はたして、ここまでコストをかけて速くなるのだろうか?
簡単なテーブルにデータを1万行インサートしてみた所、案の定下記のようになった。
#planの生成にコストのかかるSQLに効果的なのはわかっるけど・・・
- PreparedStatementを利用した物 => 28秒
- sprintfしたSQLを投げまくった物 => 24秒
以下、テストのガワ。
<?
require_once("config.php");
require_once("RhacoModel/RDBConnection.php");
require_once("test/UnitBench.php");
class Test4 extends UnitBench {
var $db;
var $sql;
var $name;
var $ps;
function benchPreparedStatement() {
$this->db = RDBConnection::getConnection();
$this->sql = "INSERT INTO pre_test (no, memo) values ($1, $2) ;";
$this->name = "insert_pre_test";
$this->ps = $this->db->createStatement($this->name, $this->sql);
for($i = 0;$i < 10000;$i++) {
$this->ps->clear(); //値のhashのみクリア
$this->ps->setInt(1, $i);
$this->ps->setText(2, sprintf("test(%s)", $i));
$this->ps->executeQuery(); //初回のみPREPARE文の組み立てと実行
}
}
function benchRawSql() {
$this->db = RDBConnection::getConnection();
for($i = 0;$i < 10000;$i++) {
$memo = sprintf("test(%s)", $i); //見やすいようにばらしてあります
$rawSql = sprintf("INSERT INTO pre_test (no, memo) values (%s, '%s') ;", $i, $memo);
$this->db->executeQuery($rawSql); //ただ実行するのみ!
}
}
}
$test = new Test4();
?>
pandora
2005年08月26日(金) 02:24
Discover New Music (http://www.pandora.com/)
自分の好きなミュージシャンや曲名を入れると、自動リコメンドされた音楽が配信されてくるというサービス。
J-Popは無いけど、「そんなもんいらん」っていう人にはなかなかいいサービス。
現在流れている曲のジャケットが表示されたり、iTunesやamazon.comでCDを買うことができたりします。
そのうち有料化されるので、試してみたい人はお早めに。
ちなみに、私が作ってみたラジオステーションはSt Germainというミュージシャンで作ったもの。
かなりいい!
#ちょいとflashなのが。macでも使えそうなのはいいけど、ブラウザ邪魔。。
普段聞いている音楽は、近場に同じようなものを聴いている人がいないし、関連でリコメンドしてくれるのは、かなりいいっす。
あーてぃすとじゃねーんじゃ、ぼげー!
Djangoのモデルシンタックス変更
2005年08月26日(金) 01:39
djangoのModelシンタックスが、revision549から変更になったようです。
#549以前のモデルの記述方法では動かなくなっています。
今回の変更に関する記述
python臭さが薄れ、構造的には美しくなったような気がします。
リリースバージョン(1.0)の後は後方互換性を保つようにするとの事です。
#549以前のモデルの記述方法では動かなくなっています。
今回の変更に関する記述
http://www.djangoproject.com/weblog/2005/aug/25/modelsyntax/
http://code.djangoproject.com/wiki/ModelSyntaxChangeInstructions
python臭さが薄れ、構造的には美しくなったような気がします。
リリースバージョン(1.0)の後は後方互換性を保つようにするとの事です。
古いシンタックス
class Foo(meta.Model):
fields = (
meta.CharField('first_name', "The person's first name", maxlength=30),
meta.CharField('last_name', maxlength=30),
meta.ForeignKey(Bar),
meta.ManyToManyField(Sites),
)
ordering = ('-bar_id',)
admin = meta.Admin(
fields = (
(None, {'fields': ('first_name', 'last_name', 'bar_id', 'sites')}),
),
)
def __repr__(self):
return self.first_name
新しいシンタックス
class Foo(meta.Model):
first_name = meta.CharField("The person's first name", maxlength=30)
last_name = meta.CharField(maxlength=30)
bar = meta.ForeignKey(Bar)
sites = meta.ManyToManyField(Sites)
class META:
ordering = ('-bar',)
admin = meta.Admin(
fields = (
(None, {'fields': ('first_name', 'last_name', 'bar', 'sites')}),
),
)
def __repr__(self):
return self.first_name
サイボウズがRSSリーダとblogのサービスを提供
2005年08月22日(月) 22:33
http://info_cybozu.typepad.jp/blog/2005/08/post_176b.html
あのサイボウズがRSSリーダとブログのサービスを提供開始。
ただし、招待制らしい。何故かは謎。
現時点でフィードされているサイトはメジャー系だけっぽい。
RSSリーダなら、http://www.bloglines.com/とかhttp://feedbringer.net/とか日本語のメニューのあるサービスが既にたくさんあるし、簡単に登録も出来る(bloglinesなんかはユーザ数が多いからソーシャル的に広がりを享受するのに最適)。
やはり、招待制は謎だ。
このサービス提供の意義はRSSというものを一般に広めることだけかなぁ。
未だ技術屋でさえRSSやRSSリーダを知らない人たちがいるっぽいからね。
あのサイボウズがRSSリーダとブログのサービスを提供開始。
ただし、招待制らしい。何故かは謎。
現時点でフィードされているサイトはメジャー系だけっぽい。
RSSリーダなら、http://www.bloglines.com/とかhttp://feedbringer.net/とか日本語のメニューのあるサービスが既にたくさんあるし、簡単に登録も出来る(bloglinesなんかはユーザ数が多いからソーシャル的に広がりを享受するのに最適)。
やはり、招待制は謎だ。
このサービス提供の意義はRSSというものを一般に広めることだけかなぁ。
未だ技術屋でさえRSSやRSSリーダを知らない人たちがいるっぽいからね。
Djangoチュートリアルその4
2005年08月22日(月) 10:15
Djangoチュートリアル4の日本語訳完成
(http://www.everes.net/cgi-bin/trac.cgi/wiki/DjangoTutorialFour)他のプロジェクトに頭をとられていて放置していたDjangoのチュートリアル4の日本語訳。
リクエストパラメータの取得の仕方と、「送信されたデータの取得と、テンプレートの処理」部分を設定のみですませるというチュートリアル。
Djangoはやっぱりおもしろいっす。Pythonじゃなきゃねぇ、日本でも普及するかもしれないと思うくらいおもしろい。
というわけで、phpのフレームワークプロジェクトに戻る。
最近のマスコミをマスゴミというのはよくあることらしい
2005年08月10日(水) 12:12
以前、高木浩光大先生のブログに「マスゴミ」という言葉が出てきて喜んだのですが、結構よくあることのようです(それだけ、最近のマスコミはゴミになって
しまったということでしょう。マスコミが好印象になってしまったことで、優等生の就職先となってしまったことが原因でしょうか。金融・マスコミはヤクザと
して見られていた時代は過ぎ去りました)。
郵政民営化法案についても分かり易く書いてあるマーク・ダーシーの日記(造反組が造反した理由の一部についてですが)へのリンク。
郵政民営化法案についても分かり易く書いてあるマーク・ダーシーの日記(造反組が造反した理由の一部についてですが)へのリンク。
郵政選挙は選択が難しい
2005年08月08日(月) 21:58
マスコミが正しいつっこみを出来ない(あえてしない?)為に、郵政民営化反対派の旧態依然の反対理由があまりはっきりしてこなかった。
結局反対派は何故反対しているのかを明らかにしていない気がする。
過疎地のお年寄りのため?バカイワンでください。だったら都市部の家賃を国が補助してください。生活にかかるコストを同じにしてください。
こんなばかげたこと無いでしょ?
だいたい、自民党のマニフェストに郵政民営化ってなかったっけ?反対派(自民造反組)は詐欺師と言ってもいいくらいでしょ。
民主党のマニフェストもとっておけば良かったと思っている。
とにかく与党に反対するという形式であったとすれば、元気な頃の社会党と同じことしかできないことを露呈しているはず。
民主党はそもそもが自民党なので政策にたいした違いはないはずだし、政策を作ることも出来る人たちがいるはずなのに。
今回は小選挙区から共産党が出ないという話もあるし、民主党がさらに躍進する可能性もある。
造反組を全て自民党から追い出したとすると(旧態依然筆頭(ただし道路の)の青木議員は参議院なので一部は残るが)自民党も魅力的と思う(こんな人(リンク)やこんな人(リンク))若い人が多い気もするし、でもやっぱり選挙に行く人は少なくて宗教政党ががんばっちゃう気もする。
民主党が岡田じゃなくって壊し屋小沢だったりするとまたひと味違うんだろうけどなぁ。
とにもかくにも今回も選挙は面白そう(そして、結果にうんざりするのだ)。
結局反対派は何故反対しているのかを明らかにしていない気がする。
過疎地のお年寄りのため?バカイワンでください。だったら都市部の家賃を国が補助してください。生活にかかるコストを同じにしてください。
こんなばかげたこと無いでしょ?
だいたい、自民党のマニフェストに郵政民営化ってなかったっけ?反対派(自民造反組)は詐欺師と言ってもいいくらいでしょ。
民主党のマニフェストもとっておけば良かったと思っている。
とにかく与党に反対するという形式であったとすれば、元気な頃の社会党と同じことしかできないことを露呈しているはず。
民主党はそもそもが自民党なので政策にたいした違いはないはずだし、政策を作ることも出来る人たちがいるはずなのに。
今回は小選挙区から共産党が出ないという話もあるし、民主党がさらに躍進する可能性もある。
造反組を全て自民党から追い出したとすると(旧態依然筆頭(ただし道路の)の青木議員は参議院なので一部は残るが)自民党も魅力的と思う(こんな人(リンク)やこんな人(リンク))若い人が多い気もするし、でもやっぱり選挙に行く人は少なくて宗教政党ががんばっちゃう気もする。
民主党が岡田じゃなくって壊し屋小沢だったりするとまたひと味違うんだろうけどなぁ。
とにもかくにも今回も選挙は面白そう(そして、結果にうんざりするのだ)。
実はDjangoはRailsのPythonコピーではない
2005年08月08日(月) 10:35
django-users groupより
Djangoは2年以上密かに使われていて、Railsのコピーではない(先んじていた)(リンク)
とのこと。リンク先のムービー(これ自体おもしろい)でもDjangoはRailsのコピーじゃないんだ!というようなことを言っているようだけど、詳細はよく聞いていない(聞けていない)ので、不明。
まぁ、Railsと似たような物は確かに前からあったはずだよな。Railsが決定的に違うのはなんなんだろう。
Djangoは2年以上密かに使われていて、Railsのコピーではない(先んじていた)(リンク)
とのこと。リンク先のムービー(これ自体おもしろい)でもDjangoはRailsのコピーじゃないんだ!というようなことを言っているようだけど、詳細はよく聞いていない(聞けていない)ので、不明。
まぁ、Railsと似たような物は確かに前からあったはずだよな。Railsが決定的に違うのはなんなんだろう。
教えて!Rubyのえろゐひと!
カテゴリ別RSS
2005年08月07日(日) 10:13
結局、Django関連ブログのfeed一覧に、日本語で問題なければ追加してもらえるように依頼してみた。
ただ、現状のままだと流石に問題がある(djangoなんてほんの一部しか登場しないでしょ)ので、カテゴリ別RSSのdtmlを作って(もともとある?発見できず)、登録の依頼をした。
依頼をしたURLは下記:
一応、wikiにCOREBlogのカテゴリー別RSSのコードをメモした。
RSSのコードをコピペして書いただけだけど、気になる人→「これ(リンク)」です。
さて、登録されるか?
ただ、現状のままだと流石に問題がある(djangoなんてほんの一部しか登場しないでしょ)ので、カテゴリ別RSSのdtmlを作って(もともとある?発見できず)、登録の依頼をした。
依頼をしたURLは下記:
- http://www.everes.net/category_rdf10_xml?cat_id=18
一応、wikiにCOREBlogのカテゴリー別RSSのコードをメモした。
RSSのコードをコピペして書いただけだけど、気になる人→「これ(リンク)」です。
さて、登録されるか?
Djangoコミュニティ
2005年08月07日(日) 08:47
DjangoプロジェクトでDjangoコミュニティが開始されたようです。
未だリリースが無く、使えるようになってから1月しかたっていないにもかかわらず、結構な人気のようです。Planet系みたいなものを作ったらどうかという提案によって、Djangoについて書かれたブログのRSSをフィードしてくれるものを作った模様。
登録依頼はメールでDjangoメンバーにするようなのですが、日本語だし滅多に書かないし思案中。
RSSのフィード&リストと別にwikiにドキュメントを今トリビュートすることもできるみたい。
DjangoもTracだし、コピペで日本語チュートリアルがはっつけられるけど。。。
サザンビーチちがさき花火大会
2005年08月06日(土) 08:01
今夜はベランダから、茅ヶ崎の花火大会が見えた。
何となく、離れた二カ所であがっているのが見えたので、小さな方は小田原の花火大会かもしれない。
流石に遠かったけど、音も聞こえたしなかなかご機嫌(娘と海で遊んだ後でご機嫌なのもある)。
今年の夏、ベランダから見えた花火大会は、「海の日花火(江ノ島)」「江ノ島花火大会」「サザンビーチ茅ヶ崎花火大会」(もしかすると「第16回小田原酒匂川花火大会」)
きっと天気が良ければ大島の花火大会も見えるに違いない。
蚊も飛んでこないし、いい感じだ。
何となく、離れた二カ所であがっているのが見えたので、小さな方は小田原の花火大会かもしれない。
流石に遠かったけど、音も聞こえたしなかなかご機嫌(娘と海で遊んだ後でご機嫌なのもある)。
今年の夏、ベランダから見えた花火大会は、「海の日花火(江ノ島)」「江ノ島花火大会」「サザンビーチ茅ヶ崎花火大会」(もしかすると「第16回小田原酒匂川花火大会」)
きっと天気が良ければ大島の花火大会も見えるに違いない。
蚊も飛んでこないし、いい感じだ。
あっれー?zornなにさー
2005年08月06日(土) 03:16
via thebadtiming.comおいおい。あんな使えない開発環境(Flex Builderね)、とへぼサポートのFlexを150万で売っておきながら、今度はEclipseで使える(値段は知らんけど)サーバいらずってどういうことさ!?
「Flex サーバーがなくても、Zorn を使って、Flex アプリケーションが開発できるだけでなく、それをデプロイ、運用することができると明言」
とはいいながら、もうveloStrutsには戻りたくないけどさぁ。
zornには密かに期待。。。してるけど、Flashである限り業務用としては仕様が適当なのは変わらないか。
Rails製Trac
2005年08月04日(木) 22:00
Tracに触発されてRuby on Railsで作ったというソースコードマネージメントツールが登場しました(してました)。
Tracはsubversionが必須だったりして、インストールの敷居が高いのです。
アプリケーションの目的としてsubversionが必須なのは当然ですけどね。
日本では、純粋なphp(こんふぃぎゃーし直さずに済むことが必須要件)で出来た見た目・使い方の美しいWikiが出たら、ブレイクするのではないかと。。。
collaboa.orgただ、自分的に欲しいのは、Tracの見た目を持った簡単にインストールできるWikiにRSS出力がついた物なんですが。。。
rubyistの作るWebアプリケーションは「影舞」に代表されるように見た目があれなんですが、これはTracに触発されたというだけあってなかなか良いです。
うらやましいのは、Wikiと思われる部分にもRSS出力がついていることかな。
Tracはsubversionが必須だったりして、インストールの敷居が高いのです。
アプリケーションの目的としてsubversionが必須なのは当然ですけどね。
日本では、純粋なphp(こんふぃぎゃーし直さずに済むことが必須要件)で出来た見た目・使い方の美しいWikiが出たら、ブレイクするのではないかと。。。
powered by django
2005年08月04日(木) 10:16
CategoryにRailsがあるのはおいておいて、Djangoで作られたblog。
もともとDjangoは新聞のWebサイト編集フレームワークとして作成・使用されていたとのことなので、blogシステムとかは非常に簡易にできるのかもしれない。
「スパムとか」はお気に入りなCOREBlogを使っているので、Djangoで自作し直すことは考えていませんが。
#サーバでZopeが禁止されたら検討するしかないけど。。。
もともとDjangoは新聞のWebサイト編集フレームワークとして作成・使用されていたとのことなので、blogシステムとかは非常に簡易にできるのかもしれない。
「スパムとか」はお気に入りなCOREBlogを使っているので、Djangoで自作し直すことは考えていませんが。
#サーバでZopeが禁止されたら検討するしかないけど。。。
Djangoチュートリアルその3訳完了
2005年08月03日(水) 11:10
Djangoチュートリアルその3の日本語訳完成(リンク)
結局チュートリアル3は、URLのPythonコードへのマッピングの話や、テンプレートの使い方とかで、つっこんだO/Rの使い方とかは無し(だから、使い方が間違ってるって)。気になるのは、Comming Soonってことになっている「RSSフレームワークの使い方」。
関係ないけど、別で気になっていること。RSSフレームワークってなんだ!?
アップルの多ボタンマウスネタが今日一日そこら中のブログに登場。
思いの外マカー多いなぁ。IT関連の人がマカーだと、その周りの一般人にも波及しそう。
VISTA対Intel OSXの戦いが来年末に繰り広げられるのが楽しみだ。
OSX万歳!
Djangoを使った場合の集計とか
2005年08月03日(水) 01:58
#Djangoカテゴリは、Pythonカテゴリに変更。DjangoはPythonのアプリケーションフレームワークですよー。ってば
Djangoを使って、数字の絡むアプリケーションを作った際に、集計はどうしようと悩んでいると「O/Rを使っているのに、SQLを使って集計しようというのが既に過ち」と同僚に諭された。
#Djangoは今のところトップダウン式O/Rのみの対応。つまりVIEWは使えない。
確かに!そうなんだけどさ。
オブジェクトを全部持ってきて足し込んでいくってのはどうなのさ。
実用的なのか?それは?
特にDjangoのアプリケーションの作り方的には、次のような思想になっているから、集計用のVIEW(データベースのビュー)を使うってのはおかしいのかもしれないけどさ。
まずは、チュートリアル3を訳してやってみようか。
Djangoを使って、数字の絡むアプリケーションを作った際に、集計はどうしようと悩んでいると「O/Rを使っているのに、SQLを使って集計しようというのが既に過ち」と同僚に諭された。
#Djangoは今のところトップダウン式O/Rのみの対応。つまりVIEWは使えない。
確かに!そうなんだけどさ。
オブジェクトを全部持ってきて足し込んでいくってのはどうなのさ。
実用的なのか?それは?
特にDjangoのアプリケーションの作り方的には、次のような思想になっているから、集計用のVIEW(データベースのビュー)を使うってのはおかしいのかもしれないけどさ。
- モデルを考える
- モデルを書く
- モデルの関連をモデルに書く
- 簡単!
まずは、チュートリアル3を訳してやってみようか。
Djangoによる家計簿アプリケーション
2005年08月02日(火) 01:59
ずっと作ろう作ろうと思っていた家計簿を、せっかくだからDjangoで作ってみた。
作ろうと思うたびに、モデリングとフレームワークの選定でお腹いっぱいになってしまっていたので、Djangoのチュートリアル2まででできる内容を作ってみた(データベースにデータさえ入れれば、あとはどうにでもなるし)。ご無沙汰してます。
2005年08月01日(月) 01:15
差出アドレスとされているもの:disney_mariecyan1@yahoo.co.jp
届いた時間:2005年7月31日13時58分
件名:
久々にvodafoneのスパムフィルターをくぐり抜けてきたスパム。
ブログのタイトルは「スパムとか」なのにURLが含まれるメールを受信しない設定にしたら数ヶ月間スパムがこなかったのさ(PC向けには山ほどスパムくる)。
しかし、「千恵美」なのに、mariecyanとはこれいかに?
メールアドレス収集スパムと推測されるけど、詰めが甘いというか。。。
もう少しメジャーな名前にするとか、なんかあるでしょう。
#連作スパムとかがきてる人がいて、ちょっとうらやましい。
届いた時間:2005年7月31日13時58分
件名:
ご無沙汰してます。本文:
私ね、たまには連絡しようと思って久しぶりにメールしたんです。一時的に(3~4日程)携帯を修 理に出すので、その間はPCアドのほうにお願いします♪携帯のほうに返信されても修理に出して る間は受信できないようにしてあるので確認できません(;_;)修理から戻ったら新しいアドレス 送ります^^引用ここまで:
フリーメールだけど仕事でも使用してるので、一応私にとってはメインのPCアドです^^; disney_mariecyan1@yahoo.co.jp 千恵美
久々にvodafoneのスパムフィルターをくぐり抜けてきたスパム。
ブログのタイトルは「スパムとか」なのにURLが含まれるメールを受信しない設定にしたら数ヶ月間スパムがこなかったのさ(PC向けには山ほどスパムくる)。
しかし、「千恵美」なのに、mariecyanとはこれいかに?
メールアドレス収集スパムと推測されるけど、詰めが甘いというか。。。
もう少しメジャーな名前にするとか、なんかあるでしょう。
#連作スパムとかがきてる人がいて、ちょっとうらやましい。

