ウェブインターフェースデザインに関するスライド

これはいい。ウェブのボタンやフォームの配置等についてのティップスがつまったプレゼン。元Yahoo.comのAjaxエヴァンジェリスト、現NetflixのUIエンジニアBill Scottさんの作によるものです。

UIの話で図がいっぱい入ってるから英語読まなくてもなんとなくわかるし。

Yahoo.comの映画レビューで使われているUIは僕も好きだなあ。グレード評価なので日本にそのまま使えるわけではないけど、レビューサイトとか作るとしたらぜひああいうの入れたいと思います。

Javascriptでその場でいろいろする場合にも、マウスの移動距離を考えよ、ってのを見てはっとしました。あんまり考えて無かったかもしれません。

327ページのスライドというのがすごいですね。新刊(↓)の宣伝とはいえ、ここまで出してしまうとは。

[am]0596516258[/am]

今回のプレゼンとは違いますけど、一昨年にこのBill ScottさんがリッチUIについて講義したときのビデオも発見しました。同じUIパーツの話とか出てくるところもあります。

[symfony] プラグインを簡単に作るためのプラグインsfTaskExtraPlugin

symfonyのプラグインはPEARのパッケージシステムを使っているのですけど、PEARのパッケージングって結構面倒で、僕はあまり好きではありません。PEARにもパッケージを作るためのツールがあるのですが、PHPのスクリプトを書くことになります。

symfony1.2には、symfonyのパッケージを作ることに特化したタスクがsfTaskExtraPluginという名前で提供されています

まだalpha版なので、alphaを明に指定してインストールします


$ symfony plugin:install -s alpha sfTaskExtraPlugin

このプラグインの中のパッケージ作成コマンドを呼ぶと、plugins/ディレクトリの下にある特定のプラグインを、PEARパッケージにしてそこに作ってくれます。


$ symfony plugin:package sfFaqPlugin

これだけで、plugins/sfFaqPlugin/sfFaqPlugin-1.1.0.tgz ができます。(プラグイン名やバージョン番号はサンプル)

プラグインになっていれば、symfonyコマンドでinstall/uninstallを管理できます。


$ symfony plugin:install /sandbox12/plugins/sfFaqPlugin/sfFaqPlugin-1.1.0.tgz

そこにあるpackage.xmlを使ってパッキングしてくれるので、xmlを開いて適度に編集することでバージョンや含むファイルを変えることができます。package.xmlが無い場合は、対話形式でpluginの説明や開発者の名前などが尋ねられるので、順番に入れていくとpackage.xmlも作成してくれます。

なので、たとえば、symfony1.0でしか動かないとpackage.xmlに書いてあるせい「だけで」symfony1.2にインストールできないpluginがあったとしたら、それをtarでplugins以下に展開して、package.xmlのrequire versionだけ1.3未満までオッケーにし、このタスクでパックすれば、1.2対応のpluginができるということです。

もしそういう風に1.2非対応のプラグインを1.2で使って、実績もあるなら、前のエントリで書いたように開発者になって公式サイトにアップするのもいいでしょう。

sfTaskExtraPluginには他に、pluginsの下に一からプラグインを作るためのgenerate:plugin、pluginの中にmoduleを追加するgenerate:plugin-moduleがあります。これらで生成したスケルトンには、テストコードの枠組みも最初からついてきます。

[symfony] 既存プラグインの書き換えを手伝うには

symfony公式サイトの”Plugins”に行くと、数百個のプラグインが提供されています。これらは、インストールするだけでsymfony製のサイトに新しい機能を付け加えるものです。

プラグインを作って登録したり、既にあるプラグインの開発に参加したり、バグ報告をするには、まずsymfony-projectサイトのユーザ登録をする必要があります。メールアドレスだけあれば、右サイドバーの”Create an account”から誰でもユーザ登録ができます。

ログインした状態でプラグインの個別ページ(例 sfFaqPlugin )へ行くと、”Contribute(貢献する)”というタブがあります。ここで、

  • developer: svnにアクセスできる開発者
  • packager: developerに加えて、プラグインの新バージョンをリリースできる開発者
  • leader: 全権限を持つプラグイン開発のリーダー

のどれになりたいかを選び、下のコメント欄には「何をどう直したいか」を書き込んで送信すると、既存の開発者に連絡が行きます。

symfony1.0でしか動かないプラグインは、元の開発者がメンテナンスを止めている場合もあるので、パッケージの1.2対応をしたいと思ったら、ここからどんどん申請して開発チームに入ることができるようです。

[symfony] admin generatorでデザインがあたらないとき

symfony1.2の管理画面自動生成機能を使うと、

$ symfony propel:generate-admin backend Post

だけで、Postクラスのオブジェクトを一覧して追加表示更新削除する画面を作ってくれますが、なぜか画面にデフォルトの管理画面のデザインが適用されず、アイコン類も出ないというのでつまりました。

呼べていない画像に/sfPropelPlugin/というパスがついてるので、それで検索をかけたら、同じ問題ではまってる人が公式フォーラムに。しかし、二人居て二人ともすぐに自己解決してます。

「脚注じゃなくて本文に書いてよ」とボヤかれていたので、マニュアルを見返したら、ちゃんとマニュアルに書いてありました。

$ symfony plugin:publish-assets

これを呼ばないと、generatorで作られた管理画面から呼ばれるCSSや画像ファイルがアプリの/web以下にコピーされないんですね。プラグインに含まれているCSS, 画像, Javascriptなんかを見える場所に移してくれるのがこのコマンドでした。