ブログ

草稿のプレビューが表示されない

カテゴリ: WordPress試行錯誤 — iwata @ 2006.11.20(月) 4:14:43

WordPress で記事を書くときは,こまめに “保存” するよう心がけています.その時点でのプレビューも表示されるので,一石二鳥です(?).

そんなプレビューが,前回の記事を書いているあたりから “該当する記事はみつかりませんでした.” と,表示されなくなってしまいました.

先日,2.0.4 から 2.0.5 へバージョンアップしたのを知り,早速アップグレードしたのが原因か?と思って WordPress Japan フォーラム を覗いてみたものの,そんな現象の記事は見当たりません.

投稿ページのソースの,プレビューを呼び出すあたりを眺めてみると,

  <iframe src="http://blog.meganelab.net/?p={草稿記事ID}...

となっています.

index.php がおかしいのかな,と,そのソースファイルを開こうと思ったそのとき,ちょっと前に .htaccess をいじっていたのを思い出しました.

現在,当サイトの本コンテンツをまだ制作できていないため,トップページは,metaタグでこのブログへ移動させる記述がなされているだけです.それを,.htaccess 内で RedirectRewrite を使って直接リダイレクトさせよう,とか id:sakudo と話してました,そういえば.

さっそく .htaccess の該当部分を元に戻してみました.

プレビューが表示されました.ドキュメントルートのディレクトリと WordPress のインストールディレクトリ,それぞれの .htaccess の記述内容が干渉してしまっていたようです.

なにはともあれ,めでたしめでたし...WordPress,試行錯誤してませんね.

説明会

カテゴリ: メガネな日常 — iwata @ 2006.11.18(土) 0:52:28

本日夕方,進行中の一プロジェクトの準備説明会に出てきました.まぁ “会” といっても,いつものミーティング+α な人数でしたが.

内容は,プロジェクトの構想に関する話とシステムのデモ.

我々が担当しているのはシステム部分,本日のために数日前からいくらか調整しとりました.その甲斐あってかなくてかはどうでもいいことですが,特にトラブルもなく済んだのでホッとしてます.

デモの様子.やっぱプロジェクタが欲しいところ.

デモの様子.やっぱプロジェクタが欲しいところ.

しかし,やるべきこと,要求されていることはまだまだたくさんあります.着実にこなしていかねば.

MVCで行こう

カテゴリ: 備忘録 — sakudo @ 2006.11.9(木) 5:33:10

ミーティング(本文とあんまり関係ナシ)

StrutsやらRoRやらCatalystなんかはMVCパターン(MVC:Model View Controller) に基づいて作られているらしいんですが、そもそもMVCって何なんだ?ってことで、ちょっと調べてみました。なんで、記憶が新しいうちにメモメモ。

MVCパターンって?

簡単な話、役割分担の1つの方法ってこと。「システムを実装する際、役割M、役割V、役割Cにしっかりと分けて実装しましょう。そうすれば、お互いの依存度が低くなって色々御利益がありますよ」というわけ。

MとVとCって何だ?

M、V、Cはそれぞれ、Model、View、Controllerに当る。まあ、それだけじゃよくワカランので、さらに詳しく書くと、

Model:
情報担当。ひたすら受身。自分からアクションは起こさない内気な性格。
システムの内部状態を保持。また、その内部状態を操作するメソッドを持つ。

View:
見てくれ担当。ユーザのための見てくれをこさえる。

Controller:
事務担当。お客さまの要望に答える
ユーザから情報を受け取り、その情報を適切に処理する。

ってことらしい(僕なりの勝手な解釈)。MVCパターンでは、システムに必要な機能を、これら3つに分類して実装する。次節以降で具体例をば。

MVCパターンの具体例

例として、「名前」と「コメント」を残せる簡単な掲示板システムを、MVCパターンを用いて実装する場合を考えてみる。まず、掲示板の動作は下図みたいなイメージで。

サンプル掲示板

次に、図の(1)~(4)のそれぞれの場合において、M、V、Cがどのような働きをするか考えてみる。

(1)「ユーザが掲示板にアクセス 」

ではまず、ユーザが掲示板のページを開く時の流れを、箇条書きで示してみる。

  1. ブラウザ(=ユーザ)がサーバ上のシステムに「掲示板のHTMLデータをクレクレ!」と言ってくる
  2. システムは、これまでの投稿データを、データベースやファイルから取得する
  3. 取得したデータをブラウザが解釈できる形(HTML形式)に整形
  4. HTMLをブラウザに渡す

この流れをMVCパターンに基づいて役割分担すると、下図のようになると思う。

ユーザが掲示板にアクセス

くどくどと解説すると、a.で「HTMLクレクレ」とブラウザは要求し、それに対してシステム側では「見てくれ担当」のVが動作する。このV自体は情報を持ってないので、Vは「情報担当」のMに問い合わせて、書き込みデータを貰う(b.)。ちなみに、この時M内部ではデータベースなどに問い合わせて、今までの投稿データを得ている。データを貰ったVはそれをブラウザが解釈できる形に整形して(c.)、それをブラウザに渡す(d.)。

MVCパターンを用いると、こんな感じで動作する・・・ハズ

(2)「掲示板に投稿」&(3)「投稿完了を通知」

(2)と(3)は一連の動作なので、一緒に考えていく。この(2)、(3)での動作の流れを書き出していくと、

  1. ユーザが投稿ボタンを押す
  2. ブラウザがシステムにデータ(「名前」と「コメント」)を送る
  3. システム側は送られてきたデータを保存する
  4. 完了を通知するHTMLをこさえる
  5. そのHTMLをブラウザに渡す

となる。そして、先程と同様、これをMVCパターンを用いて図示すると、下図のようになる。

掲示板に投稿&投稿完了を通知

ハイ、ここで問題発生。何が問題かって言うと、M、V、C各々が動作するには、自分以外から呼んでもらうことが必要となる。例えば、(1)「ユーザが掲示板にアクセス 」でVが動作するのも、(2)「掲示板に投稿」でCが動作するのも、ブラウザの呼びかけがトリガになっている。だから、上図において、Vは誰が呼ぶんだ?ってことになる。

アイツ呼んだの誰だよ!

前節の続き。Vは誰かが呼ばないといけない。じゃあ誰が呼ぶ?V以外の登場人物を挙げると、M、C、ユーザってことになる。でもユーザは除外。システム上での投稿処理について何も知らないユーザが、自分で「投稿完了♪」ってメッセージを表示するのは明らかにおかしい。となると、MかC。

で、実際の所はMでもCでもいいらしい。そして、MがVを呼ぶパターンをMVC0パターン、CがVを呼ぶパターンをMVC2パターンと呼ぶ、たぶん。Web用のフレームワークではもっぱらMVC2パターンが使われるようなので、今回は右に習えで、MVC2で行く。

MVC2パターンで

MVC2パターン、つまりCがVを呼んだ場合、先の図は以下のようになる。

掲示板に投稿&投稿完了を通知(改)

「C’ 保存終わったから後はヨロシク」という動作が追加されている。つまり、Controllerはc. の動作が終わった後に、Viewを呼ぶ。これでOK。問題解決なり。

えぴろーぐ

掲示板の動作の「(4)再び掲示板にアクセス 」は(1)と同じ動作なので、割愛。

ということで、MVCパターンを用いた掲示板はこんな感じで動作する。 うーん、、なんか、あんまり上手くまとめれなかった感が。にしても、ちょっとし備忘録のつもりが、結構な量になってしまった・・・。あぁ、眠い。

何でも変換してやるぞー!

カテゴリ: tips — sakudo @ 2006.10.25(水) 20:10:05

pptを変換したい

きょうは必要に迫られて、ppt(パワーポイントのファイル)から他形式(htmlとかflashとかpdfとか)へ変換を行うlinux用のツールがないか調べていました。

googleセンセに聞いてみたたところ、有料&Windows用なソフトは幾つか出てきたのですが、貧乏人には買えない上、linux用じゃないし。。

で、やっと見つかったのが、 「ppthtml」というツール。でも、これはpptからテキストを抽出するだけみたいなので、イマイチ。

ppthtml http://www.atmarkit.co.jp/flinux/rensai/linuxtips/949ppthtml.html

その後、どうやらOpenOfficeの機能をAPIとして利用できるということが分かり、いろいろ調べてみたところ、「 JOOConverter 」なるステキなツールを見つけました。

JOOConverter http://jooreports.sourceforge.net/?q=jooconverter

JOOConverterの使い方

JOOConverterの使い方ですが、きょうはWindows環境でテストしたので、その手順をば。

1. OpenOfficeをサーバとして起動させる。

コマンドプロンプトでOpenOfficeのプログラムがインストールされているパスに移動し(通常、C:\Program Files\OpenOffice.org 2.0\program だと思う)、そこで

soffice -accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager

として、OpenOfficeをローカルホストの8100番ポートで待機させる。

2. 変換を行う

コマンドプロンプトでJOOConverter(今回はver2.1rc2を使用)を解凍したディレクトリに移り 、

java -jar jooconverter-2.1rc2.jar [in file] [out file]

を実行する。すると、サーバとして動いているOpenOfficeに接続し、変換をしてくれる。[in file]として指定できるのはpptなどの形式。また、[out file]として指定できるのは、試してみたところでは、html, swf, pdfが可能みたい。また、変換前や変換後の形式の判定は、多分拡張子でやってるので、別途指定する必要はないようです。

以上、こんな感じでできちゃいます。お手軽です。JOOConverterは、この他にMS WordやMS Excelのファイルも変換できちゃうんで、かなりgood。今回はWindows上で試しましたが、Linux上でも同様にできるようです。

参考:http://oooug.jp/mirror/documents/tips/java_sample.html

作業環境セットアップ

カテゴリ: メガネな工房 — iwata @ 2006.10.13(金) 3:19:17

本日は...

id:sakudo の自宅から作業PC等荷物を運び込んだり,持ち寄った技術書を分類して本棚に並べたり,近くの定職屋さんで常連としての第一歩を踏み出したり,仮眠で横になれるようなスペースを作るためのユニット畳を買いに出たり,その途中で寄った店でプレイヤもないのにLDを衝動買いしたり,安物スピーカを天井に吊るしたり,ファイルサーバに外付けUSB音源を認識させて mp3 を再生できるようにしたり,設定を間違えて再生できなくなったり,でもなんとか再生できるようになったり,id:sakudo が終電で帰ったり...

そんな一日でした.

おかげで,だんだんと作業できる環境も整ってきました.

作業道具もほぼ最低限持ち寄られてきました.

作業道具もほぼ最低限持ち寄られてきました.

本日の反省: 行動はできるだけ計画的にとりたいものです.

« 前のページ次のページ »