zope
Up one level日付インデックスの持ち方を変更
内部に,カレンダー表示などに利用している日付のインデックスを持っています。
今までは,年,月,日を数値になおした(20030905みたいな)だけ,というとてもダサいリストだったのを,年,月,日という階層を持ったリストに変更。というか,数値にならしたベタなリストだと,月ごとのリストが生成しにくい。
- The URL to Trackback this entry is:
- http://coreblog.org/ats/20/tbping
ソースコードの行数を数えみました
COREBlogのソースコードの行数を数えてみた所,Pythonのコード部分だけですでに約2,500行ありました。Squishdot
1.5.0が1,760行なので,行数ベースではもう越えてますね。ま,長けりゃいい,ってものではありませんが。私はlambdaとかmapとか嫌いな人なので,その分若干コードは長くなっているかもしれません。Squishdotはメンテナーが変わってからダイエット路線になっていて,その点もコード量を少なくしている要因なのかもしれない。
ZopeのProductとしては,そこそこの規模になるのではないかと。本当はもう少しサックリと作るつもりだったんですが,いろいろ欲張っているうちにこうなってしまいました。moblog機能とかいろいろつけると,最終的には3000行くらいになるのかな,というのが目下の予想です。
- The URL to Trackback this entry is:
- http://coreblog.org/ats/29/tbping
zope.orgでProductを公開する
zope.orgでProductを公開する方法に関する覚え書き。
ちゃんとワークフローが設定されていて,メンテナンスチームの査読を受けてから,公開されるようになっています。
- まず,zope.org上にアカウントを作ります
- My Folder(自分のフォルダ)に,Software
Packageというオブジェクトを作ります。このオブジェクトが,Productリリース用の「入れ物」になります
- Software
Packageの中身を記述します。ライセンス,メタデータなどの情報も,この中で設定します。必要なら,スクリーンショット画像などを追加します
- 配布用のファイルのために,Software Releaseというオブジェクトを,Software
Packageの中に追加します。バージョンが上がったら,さらに別のSoftware Releaseを追加します
- 一通り編集が終わったら,すべてのオブジェクトのState(状態)を公開準備状態(Pending)に変えます。Folder
Contentsを見ている状態で,上部に表示されるStateリンクをクリック,Change
Stateの下にある項目からSubmitを選択,Saveします。この状態で,オブジェクトは公開準備状態になり,編集ができなくなります
- もし間違いが見つかり,直したくなったら,StateをRetractにして,修正します。編集が終わったら,5)
の手順で再度「公開準備状態」に戻します
- あとは,「査読」が終わるまで待ちます。(たぶん)メンテナンスチームからなんらかのメールが届くはずです。問題があれば,その旨指摘されます。問題がなければ,公開されます:-)。
以前,ZGogooleというProductを公開したことがありました。この時はまだzope.orgがCMF化される前でしたが,同様のワークフローがありました。
- Category(s)
- zope
- The URL to Trackback this entry is:
- http://coreblog.org/ats/43/tbping
BlogFace
Jean told me about BlogFace(thanks!) -
tiny,but nifty Weblog product for Zope.
COREBlogがzope.orgのNewsに上がっています。海外からのアクセスがたくさ?ん。効果デカイね。
何通か英文のメールをいただいたのですが,やりとりの中で,「BlogFaceもいいよ!」と教えていただきました。数カ月前,一度試してみたのだけど,うまくオブジェクトが作れなかったので放置しておりました。
深町さんによると「WikiとBlogを統合」とある。再度試してみようと思い,ソースを覗いてみると,ファイルのパスの生成で失敗してオブジェクトが作れないようだ。簡単に直せそうなので,時間ができたらトライしてみるつもり。
開発は終了しているとのことで,多分最近のZopeでは動かなくなっているみたいだけど,激しくもったいないと思いました。
- Category(s)
- zope
- The URL to Trackback this entry is:
- http://coreblog.org/ats/45/tbping
Re: BlogFace
Looking good!
Re: BlogFace
Nah! It looks crappy compared to COREBlog.
Re: BlogFace
>Albert - san
>znek - san
Thank you for your comment!
I think its contept - blog and wiki integration - is nice ;-).
Integration with Epoz
EpozというProductとインテグレーションしてみました。EpozをCOREBlogと同じZopeインスタンスに入れておくと,Entryの編集中にリッチテキストエディターが使えるようになります。インストールしていない場合は,普通のフォームが表示される。また,EpozのWidgetをカスタマイズ,ツールバーはSettingのAllowd Tagに連動して必要なツールしか表示されないようになってます。
最初,Epoz化されたフォームの中で改行ができないのでびっくりしましたが,使っていたノートのキーボードにはEnterキーしかなかったのが原因のよう。CRしか効かないみたいです。Control + Mで改行(というか新しいパラグラフ作成)。pタグのマージンが空きすぎなのはまずいなあ,調整しないと。
- Category(s)
- COREBlogの使い方
- zope
- The URL to Trackback this entry is:
- http://coreblog.org/ats/50/tbping
直メール
Ploneをインストールすると一番下のCopyrightの筆頭に名前が出てくるAlexander Limiさんからメールをいただきました。かいつまんでいうとPloneはBlogツールを持ってるんだけどちょっとアレなので,COREBlogをナニしてくれればPloneの公式Blogツールにしてあげるよ,というお話。
んー,なかなか難しいですね。。。
まず直々にメールをいただいたことに関しては正直うれしいです。慣れない英語でささやかなサイトを開いたりリリースを書いたりしたかいがありました:-)。
Ploneはすばらしいとは思うんだけど,やっぱりインストールとか運用とかカスタマイズにはそこそこのスキルを要求されるような気がしています。そうでなくてもZopeは十分に毛深いので,COREBlogはもうちょっと手軽なツールであることを意識して作って行きたい,と思っています。
PloneやCMFの開発にリソースを集中することが,多分,Zope界全体の発展に貢献することになるんだろうなあ,とは思ってはいるんです。なので,そのうちPlone用の別のBlogツールをフルスクラッチで作ることになるんだろうな,と個人的には予測しています。つーかCOREBlogをPlone対応にしたりできるのかな? ちょっといろいろホゲってみよう。。。
さて,というようなことを英語で書いて,お返事をしなければならないわけですが。明日にしよう,明日にね。。。(^^;
- The URL to Trackback this entry is:
- http://coreblog.org/ats/55/tbping
Re: 直メール
COREblog の何が好きかって言うと「手軽さ」です。
柴田さんの会社のほうの「経緯」に書いてある、PABlog を指して「毛深すぎ。CMF ベースで
立ち上げるのが面倒」という言葉、なかなか気に入っていまして、この言葉は手軽さとともに
COREblog を使う理由でもあります。
(Plone や CMF が嫌いなわけではないです。Plone は会社のポータルサイトに使っちゃおうかと
思うくらい好きです。)
柴田さんも言っているように、Plone の上モノになると利用者(設置者?)へ要されるスキルが
とたんに上がってしまいますね。これから Zope を理解していこうとしている自分には、
超えなければならないハードルが増えてた感じです。
しかしちょっと考えてみると COREblog 以前に Zope を安定運用していくことがすでに
それなりのスキルが必要な気がするので、ハードルが一つや二つ増えたところで、
たいした事は無いのかな、なんて思ったりもします。
うーん、なにが言いたいんだろう(笑)。えと、ユーザの勝手な言い草として *COREblog* は
「手軽さ」は捨てて欲しくないなあ、ということです。
ZWiki のようにそれだけでも使えるし、Plone の上モノにもなるってのは大変なんでしょうか?
# limi さんってハンサムですよね(笑)。
Re: 直メール
>NuNyaさん
ただですねえ,ある時点でPloneのようなものがZope自体の手軽さを追い抜いてしまうようなことはありえると思っているんですよ。たとえば,最新のPloneはWebインターフェースからProductをインストールできるようになっているようですし。なので,今後の動向は要チェックだとは思っています;-)。
あと,Zopeの安定運用のためには
・ログは(当然)rotateする
・THREAD数を8〜16に設定
・運用環境には不要なProductは極力インストールしない
・思いロジックを作り付けない
・可能ならApacheのReverseProxyやSquidなどでキャッシュを行う
くらいを守っていれば,まずまず安定して運用できるんじゃないでしょうか。
これ以上のノウハウは,むしろ運用というよりパフォーマンスチューニングのたぐいになるような気がしています。
COREBlogのPINGサーバー
KOF-2003の会場はLANが通っていて,ブース番の合間に作りかけのものをごにょごにょと改造していた。で,なんとか受け口はできた。あとは,PINGを打たれたあとにBlogまで出かけて言って,PermalinkとかタイトルとかExcerptなんかを取得するようにする予定。で,最新のもの数十件を表示する,と。
しかししまったな,ちゃんとPINGを打つ時にUserAgentなんかを出すようにしておけば,相手がCOREBlogかどうか判別できたのに。。。PermalinkのURLのパターンから判別するかな。
さて,名前はどうしよう。たぶんインターナショナルなサービスになると思うので,それっぽい名前をつけたいなあ。
- Category(s)
- zope
- The URL to Trackback this entry is:
- http://coreblog.org/ats/104/tbping
PINGサーバーちと改良
いや,もともとだめな仕様だったんですが,更新報告用のPINGサーバー,以下ちょっと改良しました。
- タイムアウトを追加。urllibってなんでタイムアウトないんだろうなあ(ブツブツ)
- 一度PINGを受けてblogにRDFを読みに行くスクリプトに排他制御追加
というわけで,より安定して動くようになった(ハズ)。でも,あんまりイジめないでね。PINGサービスももっとプロモーションして使ってもらわないとなあ。
- Category(s)
- zope
- The URL to Trackback this entry is:
- http://coreblog.org/ats/110/tbping
タイムアウトならhttplib
httplibのgetresponse()が使えると思います。
タイムアウトなら408が帰ってくると思います。
たまたま,リンク切れを自動検出する外部メソッドを作っていたので,タイムリーな話題でした。
参考までに
プログラムは我流ですので,アドバイスなどいただけたら有難いです。
import httplib
from string import split
Host = split(URL, '/')[2]
Path = '/' + split(URL,'/',maxsplit=3)[3]
conn = httplib.HTTPConnection(Host)
conn.request("GET", Path)
res = conn.getresponse()
conn.close()
return res
Re: PINGサーバーちと改良
>maloさん
私が困っていたのは応答しないホストに対するタイムアウトでして,せっかくいただいたサンプルは役立てそうにありません(スイマセン)。つまり,conn.request()の時点で応答が帰って来ない/時間がかかる場合に困ったな,ということなのでした。
www.python.jp/Zope/PyLog/1065766088/index_html
失礼しました
HTTPConnectionからrequestの間ですね。
なるほど。try文を工夫してタイムアウトが検出できるのかな〜?
urlparse便利ですね。これいただきます。
Re: PINGサーバーちと改良
応答がない相手に対しては,urllibとかは延々応答を待つので,スッドレなんかを使って時間を区切るですよ。
mooyaさんが幕張でZopeCMSのプレゼン
岩田さんのBlogですでに御案内のようでご存じの方も多いとおもいますが,Cube de Zopeを運営されているmooyaさんが,幕張の展示会でCMSに関してプレゼンされるこのこと。がんばってください:-)。
日時は来週金曜日の21日。Zopeで実際に大規模サイトを構築/運営されている方のお話を聞ける機会はなかなかないですよん。
- Category(s)
- zope
- The URL to Trackback this entry is:
- http://coreblog.org/ats/124/tbping
Re: mooyaさんが幕張でZopeCMSのプレゼン
お久しぶりです。
トラックバックありがとうございます。
プレゼンは久しぶりなのでとても心配です。発表は一般の人にもわかるような話が中心なので、、つまらないものになりそうです。
Gogooleも復活してたんですね、、私は歳なのかチャット系はとても疲れるようになりましたが、ちょこちょこ見に来ますね!
Re: mooyaさんが幕張でZopeCMSのプレゼン
>mooyaさん
>お久しぶりです
ホントですね,お久しぶりです
私も時間の都合をつけて聞きにゆきます


テスト。
9月のpostにコメントつけてもいいでしょうか?
闘病日記として使わせていただこうと思っているのですが、その場合、過去の日付でpostしたくなることがあります。
投稿時に日付を入力、あるいは後で日付を変更、なんてことをするのは難しいんでしょうか?
ソースを少しながめてみたのですが、DTMLだけで簡単に変更するのはできなさそうだったので、自分でやるのはあきらめました。
それに、こちらのpostの内容からすると、いろいろありそうですね。
日付を変更するような使い方は、皆さんあまりしないのかな?
# 要望や質問はどちらに書けばいいか迷ったので、こちらに書いてしまいました。
Entryというクラスの__init__では,日付を渡せるようになっているのですが,COREBlog.pyのmanage_addEntryでは日付を渡せないので,おっしゃる通りDTMLだけでは,現状は無理です
とはいえ,COREBlog.pyのmanage_addEntryにオプションで日付を渡すように拡張するのは簡単なので,ちょっとトライしてみますね
#というかそもそも,SquishdotやMovableTypeから過去のEntryをインポートするには
#そういうことができないとならないんですよね。。。
ご病気,でしょうか。。。
ありがとうございます。オプション拡張、期待しております。
子供が9月から入院中で、その闘病記を作成中です。最初はPCの日付設定を変えながら日記を入力し(^_^;)、早く公開したいと思っています。