tracのgoogle sitemaps

2005年08月31日(水) 10:58 この記事をクリップ!

 

tracの0.8.4が出てるみたい。
edgewallのTicketによれば、googlesitemapsに対応していると思われるんだけど、果たしてどうなんだろう。
こことかで必要なんで、ハックしようかなと思っていた矢先。BSDのportsにはいつ頃入るのかなぁ。

 php4とPostgreSQLでPreparedStatement

2005年08月29日(月) 12:59 この記事をクリップ!

 

hibernateがTorqueに比べて勝っている点は、唯一PreparedStatementを利用している点だ。
という職場でのやりとりから、rhacoのO/RはPreparedStatementを使用してみようと調査。

PreparedStatementを利用する利点は、主に二つ(あとは知らない)
  • SQL Injectionに対して強くなる
  • 同じ文のプロパティ違いSQLは劇的に速くなる(可能性がある)
php5ではphpの機能としてPreparedStatementが導入された模様ですが、php5を使う理由はどこにもない(だって、phpの利点は大抵のレンタルサーバで使えることでしょ?interfaceが欲しい?リフレクションが欲しい?php5は自分でインストールするから?=>他の言語を検討すれば?)

php4にはPreparedStatementの機能がないので、自分で実装するしかない。
PostgreSQLのSQL文でPREPAREという物があるので、これが使えそう。
PREPARE plan_name [ (datatype [, ...] ) ] AS statement
EXECUTE plan_name [ (parameter [, ...] ) ]
pg_execを二回投げて一つのSQL文が実行できるというもの。
次のような特徴があるため、名前の管理が必要になる。
  • 1セッションの間 PREPARE は有効。
  • ただし、plan_nameは1セッションの間に重複して宣言することは出来ない。
  • DEALLOCATEでplan_nameを解放することは出来るが、宣言していない物を解放しようとするとエラーとなる。
また、PREPAREでdatatypeを指定する必要があるので、JavaのPreparedStatementと同様に、ps->setInt(1, $value);のような型を指定するようなメソッドが無いとつらそう。
つまり、PreaparedStatementというクラスを作成して、SQL文とplan_nameと各引数となる値のhashオブジェクトを持たせることになる。
はたして、ここまでコストをかけて速くなるのだろうか?

簡単なテーブルにデータを1万行インサートしてみた所、案の定下記のようになった。
#planの生成にコストのかかるSQLに効果的なのはわかっるけど・・・
  • PreparedStatementを利用した物 => 28秒
  • sprintfしたSQLを投げまくった物 => 24秒
もう少し様々な条件でのテストと、PreparedStatementクラスのリファクタリングに励んでみよう。
以下、テストのガワ。

<?
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以前のモデルの記述方法では動かなくなっています。


今回の変更に関する記述
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リーダを知らない人たちがいるっぽいからね。

 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 この記事をクリップ!

 

以前、高木浩光大先生のブログに「マスゴミ」という言葉が出てきて喜んだのですが、結構よくあることのようです(それだけ、最近のマスコミはゴミになって しまったということでしょう。マスコミが好印象になってしまったことで、優等生の就職先となってしまったことが原因でしょうか。金融・マスコミはヤクザと して見られていた時代は過ぎ去りました)。

郵政民営化法案についても分かり易く書いてあるマーク・ダーシーの日記(造反組が造反した理由の一部についてですが)へのリンク。

 DjangoコミュニティのRSS

2005年08月09日(火) 02:34 この記事をクリップ!

 

Djangoコミュニティにコミュニティ自体のRSSが追加されました。
様々なTipsを読みこぼさずに済みそう。

 郵政選挙は選択が難しい

2005年08月08日(月) 21:58 この記事をクリップ!

 

マスコミが正しいつっこみを出来ない(あえてしない?)為に、郵政民営化反対派の旧態依然の反対理由があまりはっきりしてこなかった。
結局反対派は何故反対しているのかを明らかにしていない気がする。
過疎地のお年寄りのため?バカイワンでください。だったら都市部の家賃を国が補助してください。生活にかかるコストを同じにしてください。
こんなばかげたこと無いでしょ?

だいたい、自民党のマニフェストに郵政民営化ってなかったっけ?反対派(自民造反組)は詐欺師と言ってもいいくらいでしょ。
民主党のマニフェストもとっておけば良かったと思っている。
とにかく与党に反対するという形式であったとすれば、元気な頃の社会党と同じことしかできないことを露呈しているはず。
民主党はそもそもが自民党なので政策にたいした違いはないはずだし、政策を作ることも出来る人たちがいるはずなのに。

今回は小選挙区から共産党が出ないという話もあるし、民主党がさらに躍進する可能性もある。
造反組を全て自民党から追い出したとすると(旧態依然筆頭(ただし道路の)の青木議員は参議院なので一部は残るが)自民党も魅力的と思う(こんな人(リンク)こんな人(リンク))若い人が多い気もするし、でもやっぱり選挙に行く人は少なくて宗教政党ががんばっちゃう気もする。
民主党が岡田じゃなくって壊し屋小沢だったりするとまたひと味違うんだろうけどなぁ。
とにもかくにも今回も選挙は面白そう(そして、結果にうんざりするのだ)。

 実はDjangoはRailsのPythonコピーではない

2005年08月08日(月) 10:35 この記事をクリップ!

 

django-users groupより
  Djangoは2年以上密かに使われていて、Railsのコピーではない(先んじていた)(リンク)

とのこと。リンク先のムービー(これ自体おもしろい)でもDjangoはRailsのコピーじゃないんだ!というようなことを言っているようだけど、詳細はよく聞いていない(聞けていない)ので、不明。
まぁ、Railsと似たような物は確かに前からあったはずだよな。Railsが決定的に違うのはなんなんだろう。

教えて!Rubyのえろゐひと!

 湘南同盟

2005年08月08日(月) 05:23 この記事をクリップ!

 

とくになんの意味もないけど、湘南同盟に参加。
入ることに意義がある?

 カテゴリ別RSS

2005年08月07日(日) 10:13 この記事をクリップ!

 

結局、Django関連ブログのfeed一覧に、日本語で問題なければ追加してもらえるように依頼してみた。
ただ、現状のままだと流石に問題がある(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回小田原酒匂川花火大会」)
きっと天気が良ければ大島の花火大会も見えるに違いない。
蚊も飛んでこないし、いい感じだ。

 あっれー?zornなにさー

2005年08月06日(土) 03:16 この記事をクリップ!

 


via thebadtiming.com
「Flex サーバーがなくても、Zorn を使って、Flex アプリケーションが開発できるだけでなく、それをデプロイ、運用することができると明言」
おいおい。あんな使えない開発環境(Flex Builderね)、とへぼサポートのFlexを150万で売っておきながら、今度はEclipseで使える(値段は知らんけど)サーバいらずってどういうことさ!?
とはいいながら、もうveloStrutsには戻りたくないけどさぁ。

zornには密かに期待。。。してるけど、Flashである限り業務用としては仕様が適当なのは変わらないか。

 Rails製Trac

2005年08月04日(木) 22:00 この記事をクリップ!

 

Tracに触発されてRuby on Railsで作ったというソースコードマネージメントツールが登場しました(してました)。
collaboa.org
rubyistの作るWebアプリケーションは「影舞」に代表されるように見た目があれなんですが、これはTracに触発されたというだけあってなかなか良いです。
うらやましいのは、Wikiと思われる部分にもRSS出力がついていることかな。
ただ、自分的に欲しいのは、Tracの見た目を持った簡単にインストールできるWikiにRSS出力がついた物なんですが。。。
Tracはsubversionが必須だったりして、インストールの敷居が高いのです。
アプリケーションの目的としてsubversionが必須なのは当然ですけどね。

日本では、純粋なphp(こんふぃぎゃーし直さずに済むことが必須要件)で出来た見た目・使い方の美しいWikiが出たら、ブレイクするのではないかと。。。

 iTMS!おいおい

2005年08月04日(木) 10:45 この記事をクリップ!

 

DjangoついでにDjango でも買ってやろうと思ったんだけど、
おいおい、どういうこっちゃ!?

この値段ておかしくない?

↓これは?

 powered by django

2005年08月04日(木) 10:16 この記事をクリップ!

 

CategoryにRailsがあるのはおいておいて、Djangoで作られたblog。
もともとDjangoは新聞のWebサイト編集フレームワークとして作成・使用されていたとのことなので、blogシステムとかは非常に簡易にできるのかもしれない。

「スパムとか」はお気に入りなCOREBlogを使っているので、Djangoで自作し直すことは考えていませんが。
#サーバでZopeが禁止されたら検討するしかないけど。。。

 iTunes Music Store Japan

2005年08月04日(木) 01:31 この記事をクリップ!

 

iTunes Music Store Japan

いつの間にかオープンしてる!
#邦楽は買わないけどさ

 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による家計簿アプリケーション

2005年08月02日(火) 01:59 この記事をクリップ!

 

ずっと作ろう作ろうと思っていた家計簿を、せっかくだからDjangoで作ってみた。

作ろうと思うたびに、モデリングとフレームワークの選定でお腹いっぱいになってしまっていたので、Djangoのチュートリアル2まででできる内容を作ってみた(データベースにデータさえ入れれば、あとはどうにでもなるし)。

 ご無沙汰してます。

2005年08月01日(月) 01:15 この記事をクリップ!

 

差出アドレスとされているもの:disney_mariecyan1@yahoo.co.jp
届いた時間:2005年7月31日13時58分

件名:
ご無沙汰してます。
本文:
私ね、たまには連絡しようと思って久しぶりにメールしたんです。一時的に(3~4日程)携帯を修 理に出すので、その間はPCアドのほうにお願いします♪携帯のほうに返信されても修理に出して る間は受信できないようにしてあるので確認できません(;_;)修理から戻ったら新しいアドレス 送ります^^
 フリーメールだけど仕事でも使用してるので、一応私にとってはメインのPCアドです^^; disney_mariecyan1@yahoo.co.jp     千恵美
引用ここまで:

久々にvodafoneのスパムフィルターをくぐり抜けてきたスパム。
ブログのタイトルは「スパムとか」なのにURLが含まれるメールを受信しない設定にしたら数ヶ月間スパムがこなかったのさ(PC向けには山ほどスパムくる)。
しかし、「千恵美」なのに、mariecyanとはこれいかに?

メールアドレス収集スパムと推測されるけど、詰めが甘いというか。。。
もう少しメジャーな名前にするとか、なんかあるでしょう。
#連作スパムとかがきてる人がいて、ちょっとうらやましい。

 
ponybadge

Powered by

Feedbacks

Tweets

Tags

Calendar