1月 2006

センター試験やってみた

新聞に掲載された大学入試センター試験。英語の問題だけやってみました。結果172/200。確かこの試験って基礎学力を測るものですよね。こんなに間違えちゃだめぽ、ですね。苦手の語順問題や後半の長文読解については良くできたんだけど、第3問にある象さんの奴と新型マイクの奴が壊滅。
いろいろ問題になったリスニング試験は新聞じゃぁなぁって思ってたら、読売新聞のページにmp3を発見。やってみました。音声が二回流れるんですね。TOEICの様に1回かと思ってたから楽勝じゃん。でも結果は44/50。やっぱりだめぽ。まだまだですね。勉強します。

値幅制限って

今日もストップしたライブドア(4753)。3日連続でストップ安だと値幅制限が二倍になるんじゃなかったっけ?。今日も通常の値幅でしたね。明日からかな?。値幅制限を二倍にして値が付いたら、もの凄い取引数になって東証がパンクするのを恐れているの?でもいつかは値が付きますよね。ひょっとして値が付く前に特例的緊急上場廃止?

Ploneの情報源

インタネットから

大抵の情報はインタネットから収集可能。私が頻繁に訪れるサイトたち。

  1. plone.org
    本家本元。ページ右上の検索フィールドにキーワードを入れて検索可能。(これ、ちょくちょくやってます。)
  2. zope.org
    zopeの本家。英語が読めるなら、ここのDocumentにあるTheZopeBookを読みましょう。
  3. python.org
    pythonの本家。pythonのリファレンスはマニュアルここにある。日本語訳はpython.jpで。
  4. CENTRAL CORE さん
    COREBlogの開発元。Plone上でBlogをするとすれば、これを使うのが良いでしょう。
    上の”DevCamp”リンクから合宿(ZopeDevelopersCamp)の資料が見られる。
  5. takanory.net さん
    ploneのカスタマイズ法がかなり詳細。
  6. Emerge Technology さん
    ここにもPloneの情報が沢山。

書籍から

小さいテクニックはWebから検索すれば大抵分かるけど、体系的に概念や思想を学ぶには書籍が良いと思う。実際に私が傍らに置いている本は以下の3冊。

  1. 開発のプロが教える標準Plone完全解説
    ISBN4756146090 Amazonはここ
    Plone2.0に関する解説本。今のところ日本語で読めるのこれだけ。
    元の英文のドキュメントはこれ
  2. Zopeガイド
    ISBN4839907900 Amazonはここ
    2002年出版と、ちょっと古いんだけど、訳本ではなく日本人が書いているのが良いところ。
  3. 初めてのPython(第2版)
    ISBN4873112109 Amazonはここ。オライリーの動物シリーズ。表紙はモリネズミ。
    Pythonの入門書です。Pythonでコードを書くなら、ちょっと分厚いけど通読することをオススメします。リストやディクショナリの使い方、クラス、例外など一通りのことが学べる。
    リファレンス本はバージョンが古くなるから買ってない。

テンプレートの基本

Ploneではテンプレート機能があって(ZoptPageTemplate)、テンプレート中ではいろんな函数が使える。
様々の函数が名前空間という分類で分けることが出来る。代表的なのはTAL,METAL,I18Nの三つ。

TAL(Template Attribute Language)

  1. attributes 属性を付け替える
    <a href=”hoge” tal:attributes=”href context/absolute_url”>
    → <a href=”http://shonan-maguro/thispageurl”>
    hogeがabsolute_urlの値に書き換えられる。”hoge”は失われる。
  2. content 中身をすげ替える
    <li tal:content=”context/title_or_id”>hogehoge</li>
    → <li>テンプレートの基本</li>
    要素liの中身がhogehogeからtitle_or_idの値に置き換えられる。
  3. replace タグを削除して置き換え
    <li tal:replace=”context/title_or_id”>hogehoge</li>
    → テンプレートの基本
    タグliは失われる。
  4. condition 条件判断
    <div tal:condition=”request/hoge”>ほげ</div>
    request/hogeが真→ <div>ほげ</div>
    request/hogeが偽→ (何も出ません。divすら無くなる)
    真の場合にはそのタブの内容が出力される。
  5. define 変数定義
    <ul tal:define=”results here/getResults”>hoge</ul>
    → <ul>hoge<ul>
    変数resultsにgetResultsの内容が入れられる。”;”で区切ることで複数の代入が可能。
    “a here/tako ; b here/ika” → aにtako,bにikaが代入される。
  6. repeat 繰り返し
    <li tal:repeat=”result results”><span tal:replace=”result/Title”>hoge</span></li>
    → <li>タイトル1</li> <li>タイトル2</li> …..
    resultsにはあらかじめTitleを属性に持つ何かのリストを入れておく。その何かが一つずつresultに入れられループする。
    pythonの for result in results: みたいな感じ。

METAL(Macro Expansion Template Attribute Language)

TALのマクロ拡張版って感じ。

  1. define-macro マクロの定義
    <div metal:define-macro=”getResult”> </div>
    → 空っぽ。
    マクロの定義が行われて、HTML出力としては何も出ない。
  2. use-macro マクロの使用
    <div metal:use-macro=”dokoka/getResult”></div>
    → マクロの実行結果
    上 のmacro-defineで定義されたマクロが実行され、その出力が出てくる。getResultは他のテンプレート上に存在しても良いので、 “dokoka”に使いたいマクロが定義されたテンプレートの場所を書く。同じフォルダにあるテンプレート(tako)の場合は “here/tako/macros/getResult”。同じファイル中にあるなら”template/macros/getResult”。
  3. define-slot スロットを定義する
    ス ロットとは差し込み口のこと。何かを入れるための容器を用意する感じ。Ploneのページは沢山のスロットにいろんなコンテンツをはめ込むことで実現され ている。ZMIのプローンサイト→portal_skins→plone_template→main_templateを見ると沢山のスロットがあるの が分かる。例えば、このページの左側にある「ナビゲーション」を表示しているところがleft-slotsだったりする。
    <div metal:define-macro=”time”>
    <div metal:define-slot=”msg”>hogehoge</div>
    </div>
    define-slotはどこかのマクロに含まれていなければいけない。データを差し込むのはfill-slotを使う。
  4. fill-slot スロットにデータを入れる
    <div metal:use-macro=”template/macros/time”>  ←  同じファイルにマクロが定義されている場合
    <div metal:fill-slot=”メッセージだよん”></div>
    </div>
    → <div><div>メッセージだよん</div></div>

I18N(Internationalization)

国際化。INTERNATIONALIZATION=”I-18文字-N”だから一般にI18Nと略される。ちなみにLOCALIZATIONはL10N。
ま、ぶっちゃけ「いろんな言語に対応できるよ」ってこと。
<p i18n:translate=”XXX”>Welcome to Plone.</p> のように使うらしい。詳しくはここ
すみません、まだ良く理解してないです。分かるようになったら追記します。

アメリカ人口3億

アメリカ合衆国の人口が本年中に3億になる見込みだという。強いアメリカはまだまだこれからって感じ。昨日の日本の、これからで増税の話しになってましたが、経済が先細りどんどん厳しくなる現状をどうするのか?年金や健保は破綻しないのか?など心配事ばかり。ほんとに金を持っていたら外国に逃げたいところですね。
昨日NHK教育テレビでやった「とっさのひとこと大特集」を見た。10年近く前に出張で行ったサンフランシスコの町並みがなつかしかった。あの辺ってものすごく気候が良くって、とっても住みやすい。逃げるならやっぱりシスコが良いなぁ。でも、どうやって逃げよう。。。う~ん。

IPアドレスに応じて表示を変える

LAN内からのアクセスと、外部からのアクセスを判定しコンテンツを表示したり隠したり出来る。例えば広告を内部からアクセスされたときは表示しないようにしたいなど。

書籍ZopeガイドにはDTMLを使って行う方法が紹介されているが、ここではZPTを使って制御する方法を示す。

  1. 表示制御したい内容を囲む要素を見つける
    大抵はdivとかspanで囲まれているでしょう。隠したいものを囲む一番外側のdivを見つける。
    divで囲まれていなかったら、<div>隠したいもの</div>とか<span>隠したいもの</span>の様に囲ってください。
  2. 先頭の<div>を以下のように追加する。
    <div tal:condition=”python:request.REMOTE_ADDR != ‘192.168.1.100′”>
    IPアドレスの部分は内部のマシンのアドレスを書いてください。

以上で完了。この特定のIPアドレスからのリクエストに対しては「隠したいもの」が出力されなくなる。

トラックバック出来ない?

この自宅鯖のアクセスログに時々”GET ……/tbping…… 503″ってのがある。このブログのトラックバック用のURLへのGET要求。503はサーバエラー。ひょっとしてトラックバックに失敗してるの?と思って私の他のブログからトラックバックしてみた。”POST …./tbping 200″とログられて、トラックバックは成功した。とりあえず安心。
ググったら、トラックバックはPOSTメッセージを飛ばすことになったらしい。最近のMovableTypeでもPOST形式のトラックバックしか受け付けないそうだ。では、この古い形式のトラックバック要求は何だ?トラックバックスパムって奴なのか?

今日は朝から雪。この地方では珍しく5cmくらい積もっている。今日一日降るらしい。

« Prev - Next »