Webをキャプチャしたい
2006年05月30日(火) 14:11
はいはい。ちょびっとだけ調べてみました。Webのページをキャプチャ。
GUIベースならいくらでもあるんだけど、サーバサイド(CUI)でやりたい。
ImageMagick+html2psで一応出来ます。
orz...
フルパスで書いてあるにもかかわらず、CSSを処理していないようです。日本語も化けています(ImageMagic6.1.8.8、html2psは今日直にDLしたもの)。
日本語はまだしも(OSの設定いじらないじらないといけないとかありそうだし)、CSSは致命的。
どうもCUIでやるっていうネタを探しても殆ど探しきれないと思ったら、こんなことか。。
結局PyKDE+KHTMLが一番素敵なレンダリング結果が得られそうな感じだ。でもC++で記述しなきゃいけないっぽい+レンタルVPSにKDEのインストールはないでしょ。。いや、もちろん仮想Displayを使うにしてもさ。
業務用なら、OSX使うとApple ScriptでもJavaでも簡単にSafariのレンダラが使えるはずだから一番楽&間違いなく現状では出力も一番美しいんだけど。業務じゃないし、お金無いなぁ。
はてなはどうやってるんだろう。HTML+CSSのレンダラが書ける人がいるとは思えないし。
GUIベースならいくらでもあるんだけど、サーバサイド(CUI)でやりたい。
ImageMagick+html2psで一応出来ます。
- 一度wgetでhttp使ってhtmlを保存します。
- $ convert test.html test.png
orz...
フルパスで書いてあるにもかかわらず、CSSを処理していないようです。日本語も化けています(ImageMagic6.1.8.8、html2psは今日直にDLしたもの)。
日本語はまだしも(OSの設定いじらないじらないといけないとかありそうだし)、CSSは致命的。
どうもCUIでやるっていうネタを探しても殆ど探しきれないと思ったら、こんなことか。。
結局PyKDE+KHTMLが一番素敵なレンダリング結果が得られそうな感じだ。でもC++で記述しなきゃいけないっぽい+レンタルVPSにKDEのインストールはないでしょ。。いや、もちろん仮想Displayを使うにしてもさ。
業務用なら、OSX使うとApple ScriptでもJavaでも簡単にSafariのレンダラが使えるはずだから一番楽&間違いなく現状では出力も一番美しいんだけど。業務じゃないし、お金無いなぁ。
はてなはどうやってるんだろう。HTML+CSSのレンダラが書ける人がいるとは思えないし。
新聞に生き残りの道はあるか、日本にdjangoの生きる道はあるか
2006年05月28日(日) 06:55
「新聞に生き残りの道はあるか 新聞社サイト、アクセス伸びず」という記事がITMediaに。
「新聞がネットで生き残る」為のキーとして、記事の後半に記述された欧米の例が「英BBCのサイトは、同社以外のコンテンツを広く集めたポータルとなり、集客力を高めた。米NewYork Timesはこのほど、About.comを買収。サイトを充実させ、UUを増やした。」というもの。
しかし、本当に成功しているメディアは、コンテンツを広く集めたポータルとなるよりも、もっと幅広いコンテンツの種類を扱うメディアじゃないか?
djangoの開発基盤となったLawrenceのやっているサイトは賞を受賞したりしてイケイケらしいし。
当然そういったことはdjangoが得意とする分野で(いや流れが逆なんだけどね)、そういった用途用CMSのEllington(当然djangoの上に作られてるよ)が欧米でバシバシ売れているのはそういうことだったのではないか。世界中、ネットが普及しつつある国の新聞社なんて似たような状況だろうしさ。
で、djangoのメーリングリストを見ているとdjangoの求人が結構ある(そういえばdjangoで動いていることを公言しているサイトがかなり増えている)ね。日本でも新聞社系に浸食していけばいいけど、誰も売り込みをする人が見あたらないな。。。
浸食しそうになっても、djangoをいじれる開発者も日本では片手で十分なくらいしかいないか。
やっぱり、日本のdjango使いは英語を学んでアメリカかイギリスに流れるべき!?
しかし、本当に成功しているメディアは、コンテンツを広く集めたポータルとなるよりも、もっと幅広いコンテンツの種類を扱うメディアじゃないか?
djangoの開発基盤となったLawrenceのやっているサイトは賞を受賞したりしてイケイケらしいし。
当然そういったことはdjangoが得意とする分野で(いや流れが逆なんだけどね)、そういった用途用CMSのEllington(当然djangoの上に作られてるよ)が欧米でバシバシ売れているのはそういうことだったのではないか。世界中、ネットが普及しつつある国の新聞社なんて似たような状況だろうしさ。
で、djangoのメーリングリストを見ているとdjangoの求人が結構ある(そういえばdjangoで動いていることを公言しているサイトがかなり増えている)ね。日本でも新聞社系に浸食していけばいいけど、誰も売り込みをする人が見あたらないな。。。
浸食しそうになっても、djangoをいじれる開発者も日本では片手で十分なくらいしかいないか。
やっぱり、日本のdjango使いは英語を学んでアメリカかイギリスに流れるべき!?
pymagnolia 0.1 released
2006年05月23日(火) 08:32
So, I released pymagnolia.
pymagnolia is python wrapper for ma.gnolia.com's API version 1
see pymagnolia section
pymagnolia is python wrapper for ma.gnolia.com's API version 1
see pymagnolia section
magnoliaのpythonラッパー出来た
2006年05月23日(火) 06:36
オンラインブックマークサービスの「ma.gnolia.com」で公開されているAPIをラップしたpymagnoliaのテストがヤット通った。
なぜなかなかテストが通らなかったかというと、APIのドキュメントがバグっていたから。動かないって(ネットに書く前に通知してくれと書いてあったし)報告したら、1週間以上かかったけどドキュメントが直った(まだ一部バグってるけど)。
ドキュメントをちろっと書いて公開しよう。
ma.gnoliaの何がいいって、ブックマークしたサイトのサムネイルを使用できるところ&ソーシャルブックマークサービスにしては見た目が派手&グループっていう概念がすてき、ブックマークしたタイミングのキャッシュが見られる(ブックマークした人専用)とかいろいろ。
del.icio.usのブックマークを日付で切って前の日のブックマークを自動的にエントリするようにしたところ、同僚からブログにノイズが混ざってうざいとの指摘を受けたので、jeff croftの真似をしてブログとは別のWebアプリケーション化することを検討中(だから作ったわけだけど)。
なぜなかなかテストが通らなかったかというと、APIのドキュメントがバグっていたから。動かないって(ネットに書く前に通知してくれと書いてあったし)報告したら、1週間以上かかったけどドキュメントが直った(まだ一部バグってるけど)。
ドキュメントをちろっと書いて公開しよう。
ma.gnoliaの何がいいって、ブックマークしたサイトのサムネイルを使用できるところ&ソーシャルブックマークサービスにしては見た目が派手&グループっていう概念がすてき、ブックマークしたタイミングのキャッシュが見られる(ブックマークした人専用)とかいろいろ。
del.icio.usのブックマークを日付で切って前の日のブックマークを自動的にエントリするようにしたところ、同僚からブログにノイズが混ざってうざいとの指摘を受けたので、jeff croftの真似をしてブログとは別のWebアプリケーション化することを検討中(だから作ったわけだけど)。
pymagnolia
2006年05月23日(火) 00:00
Description
This python scripts helps you to use ma.gnolia's bookmark.
Implements ma.gnolia.com's API except 'echo' and 'getKey'.
Installation
Download pymagnolia-0.1.zip .
unzip pymagnolia-0.1.zip and run :
python setup.py install
20人の優秀な技術者
2006年05月11日(木) 01:22
シブヤで働く社長のblogでサイバーエージェントが20人の技術者を雇うと。
Danさんのエントリ経由で知ったわけだけど、Danさんの「待遇を求めろ」に賛成。
個人的には「拉致る」とか「頭数」とかにいちいち反応している人たちにはぐっと来ない。そりゃぁ20人の優秀な技術者を2ヶ月で採用するって目標だったら「拉致」りたい気分だろうよ。数少ない経験からすると、「この人(同じ職場に)欲しいなぁ」と思う人は殆どがベンチャーの役員とか社長とかやっている人たちだし。
「9~17時の勤務態勢」とか「生き残るサービスは展開スピードか最も優れた物といっている割に募集がJava(個人的には展開スピードにビハインドがあると思っている)」とかちょっとひっかかるけど、このエントリの主なる目的はそこじゃないから放置。
主なる目的は20人も優秀な技術者が集まったら何が出来るのか!?だ。
いや、だって優秀な技術者20人ですよ!想像しただけで・・・何が出来るのか想像できないでしょ!
フレームワークを考えてみても、RailsはDHH一人だし、Rhacoもlifree一人だし、Djangoだって確か3人くらいでしょ。(Seasaaは・・?)。
サービス考えてみたってBaseCampが確かコード書きが1人にデザイナーが2人くらいだっけ?
20人の優秀な技術者が集まると、1つのイメージから20種類のアプリケーションを20人が別々に凄い勢いで作るに一票!
・・・誰か、20人の優秀な技術者が集まると何が出来るのかを教えてください・・・
Danさんのエントリ経由で知ったわけだけど、Danさんの「待遇を求めろ」に賛成。
個人的には「拉致る」とか「頭数」とかにいちいち反応している人たちにはぐっと来ない。そりゃぁ20人の優秀な技術者を2ヶ月で採用するって目標だったら「拉致」りたい気分だろうよ。数少ない経験からすると、「この人(同じ職場に)欲しいなぁ」と思う人は殆どがベンチャーの役員とか社長とかやっている人たちだし。
「9~17時の勤務態勢」とか「生き残るサービスは展開スピードか最も優れた物といっている割に募集がJava(個人的には展開スピードにビハインドがあると思っている)」とかちょっとひっかかるけど、このエントリの主なる目的はそこじゃないから放置。
主なる目的は20人も優秀な技術者が集まったら何が出来るのか!?だ。
いや、だって優秀な技術者20人ですよ!想像しただけで・・・何が出来るのか想像できないでしょ!
フレームワークを考えてみても、RailsはDHH一人だし、Rhacoもlifree一人だし、Djangoだって確か3人くらいでしょ。(Seasaaは・・?)。
サービス考えてみたってBaseCampが確かコード書きが1人にデザイナーが2人くらいだっけ?
20人の優秀な技術者が集まると、1つのイメージから20種類のアプリケーションを20人が別々に凄い勢いで作るに一票!
・・・誰か、20人の優秀な技術者が集まると何が出来るのかを教えてください・・・
テンプレートの継承とプロトタイプ
2006年05月09日(火) 13:41
djangoラブなので、最近はテンプレートの継承ができないとストレスがたまって仕方ありません。
phpのframeworkでrhacoというのがあるのですが、私がいろいろ五月蠅く言うので、継承に似た仕組みが用意されています。
この似た仕組みというのが結構面白いです。
djangoは継承なのですが、rhacoの作者はdjangoをよく知らないので(知っていてもそうしたかもしれませんが)継承というよりはプロトタイプ的なものになっています。
継承もプロトタイプも甲乙つけがたく、是非両方を味わってみて欲しい所です。
以下、図で説明します。

「い」というベースになるテンプレートにブロックと呼ばれるマーカーで切り替わる部分を指定します(A/B/C)。
ベースのテンプレート「い」と違う部分を表現したい時には「ろ」のようにブロックを定義したテンプレートで親テンプレートに「い」を指定します(実際はテンプレートに継承のタグを記述します)。
「ろ」をレンダリングすると「は」ができあがります。
「は」と少し違う表現をしたい時には「に」テンプレートで親テンプレートに「ろ」を指定します。継承のカスケードです。できあがりは「へ」になります。

「い」というベースのテンプレートにブロックと呼ばれるマーカーで切り替わる部分を指定します(A/B/C)。
ベースのテンプレート「い」と違う部分を表現したいときには「ろ」のようにブロックを定義したテンプレートをブロック追加します(実際はロジックでテンプレートのレンダリングをする前にaddBlockTemplateというメソッドでブロックテンプレートを挿入します)。
「ろ」をブロック追加した後に「い」のテンプレートをレンダリングすると「は」ができあがります。
「は」と少し違う表現をしたいときには「い」に対して「ろ」と「に」をブロック追加します。ブロックの動的付け替えです。できあがりは「へ」になります。
方法は違いますが、テンプレートの記述量や全体のイメージの変更のしやすさはほぼ同等です。
jeff croftのように(djangoのように?)基本的にはコードを書かない(actionを書かない)場合には継承の力が、コードを書く他のフレームワークではプロトタイプの馴染みやすさが、受けるのかもしれません。
phpを使わざるを得ないときは、rhacoがいいです。あ、「ほ」が無いことに何の意味もありません。
phpのframeworkでrhacoというのがあるのですが、私がいろいろ五月蠅く言うので、継承に似た仕組みが用意されています。
この似た仕組みというのが結構面白いです。
djangoは継承なのですが、rhacoの作者はdjangoをよく知らないので(知っていてもそうしたかもしれませんが)継承というよりはプロトタイプ的なものになっています。
継承もプロトタイプも甲乙つけがたく、是非両方を味わってみて欲しい所です。
以下、図で説明します。
djangoの場合はテンプレートの継承

「い」というベースになるテンプレートにブロックと呼ばれるマーカーで切り替わる部分を指定します(A/B/C)。
ベースのテンプレート「い」と違う部分を表現したい時には「ろ」のようにブロックを定義したテンプレートで親テンプレートに「い」を指定します(実際はテンプレートに継承のタグを記述します)。
「ろ」をレンダリングすると「は」ができあがります。
「は」と少し違う表現をしたい時には「に」テンプレートで親テンプレートに「ろ」を指定します。継承のカスケードです。できあがりは「へ」になります。
rhacoの場合はテンプレートに対してブロックを重ねる

「い」というベースのテンプレートにブロックと呼ばれるマーカーで切り替わる部分を指定します(A/B/C)。
ベースのテンプレート「い」と違う部分を表現したいときには「ろ」のようにブロックを定義したテンプレートをブロック追加します(実際はロジックでテンプレートのレンダリングをする前にaddBlockTemplateというメソッドでブロックテンプレートを挿入します)。
「ろ」をブロック追加した後に「い」のテンプレートをレンダリングすると「は」ができあがります。
「は」と少し違う表現をしたいときには「い」に対して「ろ」と「に」をブロック追加します。ブロックの動的付け替えです。できあがりは「へ」になります。
方法は違いますが、テンプレートの記述量や全体のイメージの変更のしやすさはほぼ同等です。
jeff croftのように(djangoのように?)基本的にはコードを書かない(actionを書かない)場合には継承の力が、コードを書く他のフレームワークではプロトタイプの馴染みやすさが、受けるのかもしれません。
phpを使わざるを得ないときは、rhacoがいいです。あ、「ほ」が無いことに何の意味もありません。
Djangoが湯気を出しながら進撃中
2006年05月07日(日) 06:12
Guido van RossumがDjangoが湯気を出していると紹介。
- webデザイナjeffcroftが非プログラマに向けてdjangoの素敵さを説く。
www2.jeffcroft.com 、格好良すぎ。ブログとフォトアルバムで構成されてるんだけど、このウェブアプリ欲しいなぁ。
非プログラマがこんなサイトを作れてしまうところがdjangoの凄いところって感じかな。
djangoのキラーアプリか?とGuidoに紹介されているんだけど、djangoがPythonのキラーなんじゃ?というコメントのつっこみは正しいのか否か難しい所。
ちなみに、今別のフレームワーク上で動くアプリ用にHTMLのモックアップを作っているんだけど、djangoのテンプレートシステムじゃないことにかなりストレスを感じている。
これは今のところ別のフレームワーク(rhaco)が悪いんじゃ無くってワークフローの問題。どんなワークフローになっているかというと「モックアップを作る」「ロジックを作る」が時間的にも作業者的にもわかれているということ。
このワークフローである場合はdjangoの継承ベースのテンプレートシステムを利用しても、スタティックなHTMLの段階で動作するモックアップを作成する必要があるわけだから、やることは一緒だ。
djangoのテンプレートシステムをうまく生かすには、モックアップを作りながらロジックとあわせていくようなワークフローが・・・必要ない、blockとextendsタグ以外はスタティックに書いておけばいいんだね。
extendsってもう動くんだっけ? > rhaco
- djangoの開発者 Jacob の講演映像。
djangoももうじき0.95になるし(0.92は0.91のメンテナンスリリースになるみたい)、きっとまもなくgoogleでも使われるに違いないな。Snakes and Rubiesが底本となっていそうな内容。
あれ?google主催だったのかな?
googleの中の人もdjangoに熱い模様でいくつか質問をしているとか。
MagicRemovalがtrunkにマージされた
2006年05月01日(月) 22:55
MagicRemovalブランチがtrunkにマージされました。
djangoを始めようという方はリリース版の0.91ではなく、trunkから最新版を取得して利用することをおすすめします(0.91に付属する日本語化ファイルにはバグがありますし)。
「Djangoと日本の仲間たち」からドキュメントとしてリンクされているymasudaさんの翻訳ドキュメントもMagicRemovalがベースとなっています。
マージのチェンジセット(非常にページサイズが大きいので注意)
http://code.djangoproject.com/changeset/2809
MagicRemovalの0.91からの変更ページ
http://code.djangoproject.com/wiki/RemovingTheMagic
MagicRemovalBranchの取得の仕方で示されているURLもtrunkになった。
djangoを始めようという方はリリース版の0.91ではなく、trunkから最新版を取得して利用することをおすすめします(0.91に付属する日本語化ファイルにはバグがありますし)。
「Djangoと日本の仲間たち」からドキュメントとしてリンクされているymasudaさんの翻訳ドキュメントもMagicRemovalがベースとなっています。
マージのチェンジセット(非常にページサイズが大きいので注意)
http://code.djangoproject.com/changeset/2809
MagicRemovalの0.91からの変更ページ
http://code.djangoproject.com/wiki/RemovingTheMagic
MagicRemovalBranchの取得の仕方で示されているURLもtrunkになった。
