flickrの上限いったのでどうしようかと悩んでいる

flickrにパスタの写真を置いたら200枚超えた。これ以上は有料らしい。うーん別にproアカウントにしてもいいんだけど、サーバー立ててるからそっちで管理するようにしてもいいんだよなー(blosxom使ってたときみたいに)。

で、なぜflickr使ってたんだろかって思い返してみると、flickr uploaderはドラッグドロップするだけでいいから便利だったんだと。

つまり、ドラッグドロップできるクライアントを書けばいいんじゃないかってことだ。wxpythonかAIRでやってみれっていう神のお告げに違いない!早速flex3を入れてみたらfcshが同梱されていた。

さらに、ここはひとつCatalyst::Controller::Atompubと組み合わせるべきかもな気がしてきた。

とぅるっとぅー(だっけ?今朝の目覚ましでやってたのは)

といってもDrkcoreにはCatalyst::Plugin::AtomServerを使っていたのだった。

さてこれもどうしようかなぁ。

Catalystでrobots.txt

アクセスログをみてたらDrkcoreのrobots.txtへのアクセスが404なのが気になったので、Catalystでrobots.txtを扱う場合にはどうすればいいんじゃろかと調べた。

単にroot以下に配置すればいいらしい。

早速設定した。

drkcoreにタグのサジェスト機能を入れた

suggest.js - 入力補完ライブラリを使って編集時のタグを候補から選択できるようにした。

これで編集するのは結構楽になった。

あとコメント機能はどうするかなぁ、、、、悩む。個人的にはこんな風に考えていて、特に問題ないだろと考えていたんだけど、、、、これは、プログラマー的な視点というか、多少なりともWebAPIを使う側のかなり一方的な視点なんじゃないかと思わされる出来事が続いた。

なんつーか、Mosaicの頃から全体のリテラシーとしては対して変わってなくて一部だけがのっぺりと。イノベータとアーリーアダプタだけがどんどん先に行ってて、対数正規分布みたいな形になってんのかなぁ。

結局、コメントも実装しといたほうがいいのかなぁ。その場合はhttp://blog.kzfmix.com/comment/1192876427みたいに名前空間きっといてJSON返すようするかなぁ。うーん、commentもモデルとして捉えればいいかな。

オレオレamazon記法

Amazonのアフィリエイトにも対応した。

[ASIN : 4873112028]

という記法で、

ProductName Perlクックブック〈VOLUME1〉
トム クリスチャンセン,ネイザン トーキントン
オライリージャパン / ¥ 5,145 (2004-09)
通常24時間以内に発送

みたいな感じに。

オレオレ記法を用意した

CPANは良く引用するので。

[CPAN : DBIx::Class]

でperldocにリンクが張れる。

あとAmazonのやつはJSONプロキシみたいなの用意してMochikitでDOM組み立てしようとしたのだけど、なんか微妙だったので、これまた記法を用意したが、文字化けしたりとか著者とかArtistのタイトルのとことかいろいろ直さないと駄目。

drkcore todo

やることリスト

  • trackback ping打てるようにしとく
  • Tagのサジェスト機能をつける
  • 二重投稿を防ぐ

Catalystでamazonアフィリエイト

blosxomでいうところのawsxomみたいなのが欲しいんだけど、コントローラーからNet::Amazonを使ってASIN:XXXXXXっていう部分を直接書き換えるようにするのがいいのか、それともCatalyst::Model::Net::AmazonのModelと適当なクラス名を用意して、Javascript+JSONで扱ったほうがよいのだろうかと考えていた。

後者だとMochikitでいろいろやれそうな感じになってよさげな気がするが、後で試してみよう。

はてなスターつけたヨ

個別のエントリのページでタイトルがエントリータイトルでなくDrkcoreとなっている部分を修正。あと、新規投稿をCtrl-.に変更。ちなみにDrkcoreはDrum'n'Bassのダークコアからとったわけですなこれが。

今回さらに、ピコピコ押す感がちょっと楽しげなはてなスター付けてみた。

はてなスター日記みながら、

Hatena.Star.headerTagAndClassName = ['h2','entry-title'];

で上書きかませばいいらしいんだけど、なんか上書きされてナイっぽい。

ので、Hatena.Star.EntryLoader.loadEntriesを上書きしたらOK。というより、サンプルちょこちょこといじって済ませた。かなりやっつけ。

Hatena.Star.Entry.Drkcore = new Ten.Class({
    initialize: function(doc) {
        this.doc = doc;
        var h2 = doc.getElementsByTagName('h2','title')[0];
        this.title = Ten.DOM.scrapeText(h2);
        var widget = \ 
        Ten.DOM.getElementsByTagAndClassName('div','widget_bottom',doc)[0];
        this.uri = widget.getElementsByTagName('a')[0].href;
        this.comment_container = \
        Hatena.Star.EntryLoader.createCommentContainer();
        h2.appendChild(this.comment_container);
        this.star_container = Hatena.Star.EntryLoader.createStarContainer();
        h2.appendChild(this.star_container);
    }
});

ただ、comment_conteinarとstar_conteinarをDOMの好きなところにぶら下げれば別にタイトルの隣じゃないところに持っていくことができるな(コメント欄とか)。

drkcore

個別のエントリのタイトルのとこが変だ。

あとで直す。

あと、Ctrl-cで新規入力はコピペがしにくくなるので駄目だった。キーの割り当てを変える。