Evernoteで情報整理 WDHA023に参加してきました。

WDHA#023に参加してきました。Evernoteで情報整理というテーマで話しつつ、生産性を高めるために最近試してみている方法やツールについても話しました。

忘れることで効率を上げる

Evernoteの素晴らしさや使い方については割愛しますが、何でもノートとして残すという使い方は、知識労働において大きな補助となってくれます。

まず情報過多の状態で、様々なことを記憶しておこうとすると、あっという間にオーバーフローを起こし、判断を誤る元になるというのは多くの人が実感していることと思います。「とりあえず残しておく」「後から見返す」という前提で、Evernoteにノートとして残したものを、記憶から外すことができるというのが最大のメリットだと感じています。

かといって、何でも残していいものではないのだなということも分かってきました。Evernoteさえ見れば安心という状態にしたかったので、ブックマークも移行しようとしたのですが、ここで問題がありました。

Evernoteで残すべきは静的な情報

動的に変更される、つまり情報が更新されて行くものについては、結局のところ現サイトを訪問しなくてはならないので、わざわざEvernteからだと手数が多くなるということです。ましてや、ブラウザを使用して、ネットワークにつながって初めて手に入れられる情報はさらに相性が悪いと感じました。

そこで、コラムやサンプルコードなど、更新されることが(ほぼ)ない情報で手元に残したいものだけをEvernoteで保存するようにしました。つまりスクラップブックとして使うということです。こうすることで、いつサイトが閉鎖して情報が得られなくなるか分からない、というブックマークゆえの不安は解消できました。

また参考にしたいWEBサイトのスクリーンショットも同様にEvernoteで残しておけるようになったのは、個人的に嬉しいことの1つでした。

ノートブックで管理する?タグで管理する?

ノートブックはいわゆるディレクトリです。これでノートを分類して行くと、慣れ親しんだ使い方にはなりますが、ノートブックをまたいで探したり、どのノートブックでも見つかるようにというのは望めません。

タグで管理すると、上記の問題は解決しますが、ルールなくつけてしまうとタグ自体を整理することに追われる可能性があります。おそらくは、ノートブック管理とタグ管理のハイブリッドが良いとは思います。

WDHAで発表した時点では、ひとつのノートブックにすべての情報を入れ、タグで管理するというものでしたが、Evernoteクライアントのパフォーマンスを低下させてしまうので、ある程度のノートブック分類をした方が快適さを保てそうです。

そこで、今はノートブックをInbox(テンポラリ、未整理)、Project(プロジェクトに関する資料)、NameCard(名刺)と大きく分けてみました。整理し終わり保存しておきたいものはArchiveに入れてしまいます。今は、記憶時間の長さで分けようかなと考えています。後回しにしているもの、その内(1ヶ月以上先)にやりたいことなど。

今後の鍵はツールの使い分け

情報整理を始めて見ると、自分が抱えている情報の性質について見直すきっかけになりました。思いの外、大事と思っていたものにも無駄が多く、静的なのか動的なのか?といった分類を始めると、どのツールにどういった情報を集約しておくべきか?というのが課題として見えてきています。「こんな時はここを見れば大丈夫」という安心感を作り、なおかつ、「ここ」という選択肢は少ない方が良いようです。ただ、1つでなんでも管理は難しいので、自分の行動範囲とPC環境を考慮してツールを選ぶ必要があります。今度はEvernote以外のツールをどう使うか、Evernoteとの棲み分けはどうするかについても、まとまったら書いてみようと思います。


Zen-Coding + Eclipse を導入する

昨夜、「Ustreamで生Zen-Codingやってみましょうか」という内容がTwitter上で賑わっていました。

Zen-Codingってなに?

HTMLとCSSを効率良く記述するためのスニペット生成マクロです。効果の程については、まずこの動画を見てもらえればわかると思います。

Zen Coding v0.5 from Sergey Chikuyonok on Vimeo.

こういう手法はEmacs使いの人には馴染み深い物と思います。過去にはRuby on RailsのデモがTextMateを使って、上記のようなコーディング動画を配信されていました。私もその当時、TextMateいいな!と思って導入しましたが、日本語対応がうまくできず、EclipseベースのIDEに戻りコード補完をガシガシ使ってコーディングしてきました。

Zen-Codingはどうやって使うの?

現在ですと、Aptana, NetBeans, Coda, Espresso, TextMate, VisualStudio, Dreamweaver CS4とクロスプラットフォームで使用できます。これは素晴らしいことですね。私は現在、Eclipse + PDT + Aptanaという開発環境で諸々の言語を使用していますので、今回はEclipseで使うための方法について補足したいと思います。

前提として、EclipseMonkeyというプラグインが必要になります。これはEclipse上で動かせるマクロを作成するためのプラグインです。マクロは標準ではJavaScriptで記述することになっており、Rubyで書いたりもできるようです。Zen-CodingはJavaScriptで記述されています。

Zen-Codingを導入する前の準備

公式サイトにてインストール方法が紹介されています。まずは、Installingの手順に従ってAptanaのインストールとEclipseの再起動までを行いましょう。インストール時に依存関係を追って、一通りのツールがインストールされます。

その後、Zen Coding for Aptana v0.6 をダウンロードし、中のファイルすべてを以下の画像のように配置します。

image

新規プロジェクトで一般のプロジェクトを作成した後、scripts/libというディレクトリを作成しています。すると、メニューのスクリプトに「Zen Coding」という項目が現れます。早速、デモのように適当なHTMLファイルを作って試しましょう!Expand Abbreviation という項目がスニペット展開を行ってくれます。快適です。

Zen-Codingのショートカットキーをカスタマイズ

image

ショートカットキーをカスタマイズするには、まず該当するマクロのファイルを開きます。5行目にKeyという内容があるので、そこを編集します。M3って何だ?と思うかと思いますが、以下のような対応になっています。

  • M1->コマンド(Mac)
  • M2->Ctrl
  • M3->Alt or Option(Mac)
  • M4->Ctrl(Mac) 上記画像の設定だと Alt + E で Expand Abbreviation が実行されるということになります。

    ショートカットキーが動かない?

    Eclipseデフォルトのショートカットキーと競合している可能性があります。ウィンドウ->設定->一般->キーで競合しているショートカットキーを探し、別なショートカットキーを割り当てるか、コマンドのアンバインドで削除します。ちなみにフィルターのところで Ctrl+Shift などと入力するとCtrl+Shiftから始まるショートカットキーを探すことができて便利です。

ここまでできれば、快適なコーディングライフの歩みを一歩進めることができるでしょう。逆にZen-Codingの内容を参考にして、よく使うスニペットマクロを作成して行くと、楽しみが広がってくると思います。


操作フィーリングを構成する3つの要素

自覚的デザインシリーズで継続しているデザインプロセスの言語化について、ルック&フィールのうち、特にフィールについて思うところがあった。自分向けのメモを兼ねて残す。

車両用の信号は点滅した方が安全ではないのか?

そもそも、車を運転している時に困ることが1つある。青信号から黄色の信号に変わるタイミングが分かりにくいということだ。自分の視野に青信号が入ってから、自分が通り過ぎるまでに黄色に変わるかもしれないという予測は以下の要素から成り立っている。

  1. 信号に近づくまでの経過時間
  2. 現在の走行速度
  3. 道路状態(雪が降っていると特に余裕を持たなくてはならない)
  4. 歩行者用の信号の状態

ここで最も簡単に気づくのは、周辺の歩行者用の信号が点滅しているかどうかである。すでに点滅が始まっており、通過するはずの信号までの距離が遠いのであれば減速を始める。これは歩行者用の信号が赤色に変わって間もなく、車両用の信号は黄色になるからだ。

しかし、歩行者用の信号が常にあるとは限らない。であれば、車両用の信号自体、色が変わる前に点滅した方が、突然の急ブレーキとなる確率は下がるのではないか?赤か青に変わるときに点滅すると、フライングスタートする人がいそうで、危険な気もするが。

前置きはともかく、操作フィーリングについて上記の話から、「予兆」「経過」「完了」3つの要素に分けられると仮定した。しかし、能動なのか受動なのかで内容が多少変わってくる。

能動の場合

予兆
自分の意志でアクションを起こそうとしているので、その時点で不要。ルックとしてはアクションのトリガーだと認識できる状態にしておくのが好ましい。
経過
自分が起こしたアクションについて、正常に対象が作動して進行していることを示す。ローディング画面や拡大・縮小などの途中経過を表わすフィール。自分が今どこの段階にいるかを表示するナビゲーションも同様の意義を持つ。 長い時間を要するものほど、注意をはらうべき。瞬時に終わる場合は、むしろ不要だろう。
完了
アクションが終了したことを示す。ポップアップ通知や画面遷移など、それぞれの動作後に正常に終わったのか、異常があったのかを明示的に示す必要がある。特に異常時には再試行についての説明、導線が必要。どこの箇所に異常があったか表示、やり直しへの導くリンクなど。

受動の場合

予兆
考える時間、次のアクションに入るまでの猶予を与える。次のアクションまでに残されている時間、注意書きなどによる告知。ポップアップなどの通知は基本、突発的に発生るものだが、最初の段階でどういった周期で通知されるのかなどが把握できていれば、なお良い。
経過
予定された処理が進んでいるという安心を与えるもの。インジケーターなどは能動の場合と同じであるが、受動の場合はそれ自体を意識からはずすことを期待しているので、経過を見せないでおくのも一つの手。
完了
これについては能動と同じが良いと思われる。ただ、経過を見えなくしていた場合、経過中に何が起きていたのかを詳細に知るすべを残しておく必要性はより高い。ログの表示や閲覧の方法など。ログがあると、情報のギャップを早期に埋めることができる。
見直してみると、ソフトウェア設計の基礎とも言うべき内容が多分に盛り込まれている。情報過多になりがちな現代人にとって「気づかずに流れる」という状況が増え、確保出来る時間が細切れのため、即効性のある結果を求めている。

流れては困る情報や自分の行動の結果がどうだったかを適切に通知する設計がされているものは、「解りやすい」という評価を得られていると思う。


個人力を高める6つのメソッド WDHA #022 New Year Special

今年最初のWDHAは森田雄さんをゲストに迎え、特別版として開催されました。地元からの対バンという形で指名を受け、僭越ながらスピーカーを担当です。

事前に、チームマネジメントに関する内容を森田さんは発表するつもりだと伺い、であれば新年1発目だし、個人事業主として活動してきた経験の棚卸しにしようと考え、タイトルの内容としました。

個人というより、私の場合はクライアントとの折衝から開発・保守までを一通りこなすことになりますし、そのような関わり方を自分のスタイルとしています。会社員として働いた時期もありますが、独立してからは特に環境の違いを比較できるようになりました。その上で自分なりの思考法であったり、行動指針を6つにまとめてみたのが今回の内容です。

これといって目から鱗のような話ではないと思いますが、聞きに来てくれた人たちが、明日から前向きな気持ちで働くことができるようにというテーマで内容を練りました。

見方を変えて考える

これから登場するメソッドのベースとなる行動指針です。問題をソフトウェアで解決するというのが私の主な仕事ですが、そのアプローチは千差万別で、これが正解というのは常にありません。つまり一方向からだけ問題を見ていても、選択肢は少なく、より良い方法に気づかずに終わります。自身の視点を変え、仮想的に立場を入れ替えて想像する力というのは、様々な場所で役立ちます。

浅く広く学ぶ

以前、専門と専業は違うというテーマについて書きました。
おそらく職人芸というものに憧れる人は多いと思うのですが、一朝一夕でその領域に辿りつけるわけではありません。何かを深めるという過程に置いて、成長を実感できない、思うように習得できないという行き詰まりを感じることがあると思います。その時に必要なのは、周辺知識の習得、基礎知識の見直しなどによる地盤固めです。

ひとつの穴を掘り続けると、いずれ掘り返した土が自分に降り注ぎます。深く掘り進むためには、掘り返した土をよけておく広いスペースが必要です。

手を動かし続ける

頭で解っているつもりでも、実地では予想と違う結果というのはよくあるケースです。来るべき時に備え、ほんの少しでも自分の手で動かす、作るという行為を続けることは、大きなリターンと発想につながります。

そして、手を動かして学んだものは、不思議と忘れません。特にものづくりの現場に置いて、管理職であろうが、社長であろうが、良し悪しを判断して実行するためには、自分の手で確認するという行為なくして最適解は選べないと思います。

過去を現在へつなげる

過去は財産です。もしあなたに過去の失敗があったとして、後悔したまま、失敗の状態で放置しているのであれば、それが失敗です。 過去は取り返せませんが、どこかで役立てよう、活かそうと頭の片隅に とどめておけば、日の目をみる時が来るでしょう。

そのためには、過去の経験を定期的に振り返り、教訓を現在へ適用するというのは効果があります。過去あっての現在であり、過去を分析し、現在できることを積み重ねることで将来につながると考えれば、過去の失敗も見つめ直しやすくなると思います。

風通しを良くする

似た境遇の人間に仲間意識を持ち、そこからできるコミュニティは様々な活力を与えてくれます。しかし、新しいアイディアや発見が生まれるのは、自分が日々過ごす領域の外と交わる時ということがよくあります。

自分と違う業種の人との交流や、違う発想や視点を持った人の考えや意見は宝の山です。そういった機会を大事にし、積極的に取り入れ、歩み寄ることは後々の発展につながります。

パートナーになる

個人に焦点をあてようとするほど、その背景には多くの人との関わりが見えてきます。分かりやすい例で言えばクライアントになります。 契約の主従関係は現実問題ありますが、それでもパートナーのように振舞うというのが良好な結果を残すために肝要だと思います。 アドバイザーであり、実現者であり、片腕であり。そういった人が、今、求められている人材像だと感じています。

どれかできれば良いというものでもなく、6つのメソッドはそれぞれが相互関係にあると 自分では実感しています。この先、新たにメソッドが追加されるのか、何かに集約されるのか、それはわかりませんが、しばらくはこの行動指針で活動して行くと思います。


[Rhaco]時間がない人のためのアプリケーション日本語化メモ

Rhacoは国際化機能も持っています。
setup画面のi18nメニューから自分で用意したテンプレートを利用することも可能なようです。

とはいえ、Viewsを拡張して作った部分をとりあえず日本語化したい人(というか自分)へのメモ。
これでvalidate後のメッセージなども日本語化されます。
以下の手順はRhaco本体をローカルに取得済みとします。

・Rhaco本体のresources/setup/po/message-ja.potをアプリケーション側のsetup/poに配置
・Rhaco本体のresources/locale/messages/message-ja.phpをアプリケーション側の同ディレクトリに配置
・アプリケーション側のindex.phpで以下の2行を追加

Rhaco::import("resources.Message");
Message::loadMessages("ja");

試しにconfirmedCreateで作成したフォームや一覧などで英語表記だった部分が日本語になっていればOKです。本当にとりあえずなので、エラーメッセージのカスタマイズ時の手順は、

POTファイル編集->setupのi18nからPHPファイル生成

となります。あまりにあっけなく終わりましたが、こういうのが嬉しかったりします。


[OSX]NetBeansからsvn+sshでリポジトリにアクセス

ここに手順はありますが、解りづらいので自分でググって辿っていきました。

まずコマンドベースでsvn+sshできるところまで

さくらインターネットの場合、SSHログインの際に$PATHに読み込まれるパスにユーザ制限がかけられるそうです。
よって、任意に配置したプログラムについては、 $HOME/bin へシンボリックリンクを貼っておく事で
問題を解決できます。
私の場合は、svn関連のコマンドは $HOME/local/bin に配置されていますので、以下の手順になりました。


% ln -s $HOME/local/bin $HOME/bin

続いて、リポジトリの初期化を行います。Berkeley DBは使用していないので、ファイルシステムにFSFSを
利用することとします。


% mkdir -p $HOME/svn/repos
% svnadmin create $HOME/svn/repos --fs-type fsfs

クライアント側で鍵認証のための手続きを行っていきます。
公開鍵を作成し、サーバ側に配置。その後、パスフレーズのスキップまでをついでに行います。
初期ディレクトリは /Users/ とします。


$ ssh-keygen -t rsa #パスフレーズを聞かれるので、入力しておきます。
$ scp .ssh/id_rsa.pub  @.sakura.ne.jp:.ssh/id_rsa.pub

#続いて、サーバにSSHログイン
% cd .ssh
% cat id_rsa.pub >> authorized_keys
% chmod 600 authorized_keys
% rm id_rsa.pub

#ここからクライアント側
$ ssh-agent bash
$ ssh-add
$ ssh -l username username.sakura.ne.jp

これでパスフレーズの入力なしでログインできたらOKです。

NetBeansからsvn+sshでリポジトリにアクセスする

NetBeansのバージョンは6.7です。まずはローカルのsvnクライアントについて設定を加えます。
/Users//.subversion/config を編集。
[tunnels]の項目で

ssh = ssh -l username

を追加。
NetBeansからのインポート、コミット時などのメッセージで日本語があるとエラーが表示されるので、
/Applications/NetBeans/NetBeans 6.7.1.app/Contents/Resources/NetBeans/etc/netbeans.conf
を編集し、netbeans_default_optionsの最後尾に以下を追加。

-J-Dfile.encoding=UTF-8

次に、
/Users//.subversion/config を編集。
[miscellany]の項目で

log-encoding = utf-8

と編集。

その後、NetBeansを再起動。
[チーム] -> [Subversion] -> [リポジトリにインポート]

リポジトリURLの項目に

svn+ssh://username.sakura.ne.jp/home/username/svn/repos
トンネルコマンドの項目に

ssh -l username

これでリポジトリにプロジェクトがインポートされます。
他に注意するのは、日本語のファイル名を持つファイルです。
ファイル名自体がUTF-8となっていないと、コミット時にエラーとなります。

私はDreamweaverを使ってないのですが、これでDreamweaverからもリポジトリにアクセス
できるはずなので、協業の際には役立ちそうです。
#Dreamweaver CS4からsvnクライアントの機能があり、svn+sshにも対応しています。

参考

  • [ssh] さくらサーバでsvn+sshを利用する方法(Linux/Mac)

さくらインターネットで今更subversionをインストール

すでにgitでプロジェクトのソースを運用していましたが、以下の理由でsubversion(以下、svn)を
インストールすることに。

  • 個人かつ一人での開発がほとんど
  • デザイナーにバージョン管理を進めたいのだけど、IDEに統合されてるのはsvnが主流

というわけで、さくらインターネットのサーバにインストール。
今回インストールするバージョンは最新の1.6.6。以下、注意点。

  • deps(依存関係にあるパッケージをまとめたもの)を解凍するとsvnのソースディレクトリ内に展開されるので、面倒が少なくなる。
  • svnのバージョンが1.4.xあたりだと、自分でaprなどのパッケージをインストールしていかないといけない模様。
  • また、その場合はaprのバージョンが0.9.xか1.xかでも分かれる。

  • httpでリポジトリにアクセスするためにserfかneonのどちらか一方が必要だが、今のsvnはdefaultでneon。
    configure時に--without-serfを今回はつけた。
  • configure時にBerkeley DBが入ってないと警告がでるけど、そもそもオプションのパッケージなので無視でOK。
  • 結局のところ、各詳細はINSTALLを読めばOK。(英語やだとか言うんじゃありません)

インストールまでのコマンド


% wget http://subversion.tigris.org/downloads/subversion-1.6.6.tar.gz
% wget http://subversion.tigris.org/downloads/subversion-deps-1.6.6.tar.gz
% tar xvfz subversion-1.6.6.tar.gz
% tar xvfz subversion-deps-1.6.6.tar.gz
% cd subversion-1.6.6
% ./configure --prefix=$HOME/local --with-ssl --without-serf
% make all install clean

参考


Shadowbox.jsをAjax.Updaterと併用する

Lightbox系のライブラリとして任意のJavaScriptライブラリを使ってもOKなShadowbox.js。
非常に便利でおすすめ。私はprototype.jsをよく使うのでそれと併せています。jQuery対応のものばかりで肩身が狭いですが。

Shadowbox.jsの仕様として、下記のようにheadタグ内のscriptタグで初期化する必要があります。

//日本語表示、画像とHTMLをレンダリング対象とする
Shadowbox.init({language : "ja", player: ["img", "html"]});

このためAjax.Updaterなどで部分的に反映された要素はShadowbox.jsのイベントハンドラ登録が行われていない状態です。

そこで、下記の要領でAjax.Updaterを使用後に再度イベントハンドラ登録を行うと要素の更新後もShadowbox.jsを利用できます。

私の場合はForm.EventObserverと併用しているので、その中でcallしているAjax.Updater内に記述しています。

new Ajax.Updater(id, 
	url,
	{
		asynchronous:true,
		evalScripts:true,
		onComplete:function(request){
			//その他の処理
			//最後にイベントハンドラの登録をし直す
			Shadowbox.setup();
		}, 
		onLoading:function(request){
			//その他の処理
			//現在のイベントハンドラをすべてクリア
			Shadowbox.clearCache();
		},
		parameters:value
	})

prototype.js以外のライブラリを使用している場合も、同様にonCompleteやonLoadingに相当するイベントにフックさせれば大丈夫だと思います。

参考:

Shadowbox.js API

追記 2010.01.04

IE6, IE7の場合、Shadowbox.clearCache()を呼ばず、Shadowbox.setup()のみ呼び出すと
正常に動きます。原因はソースを追ってみないとわかりませんが、とりあえず。

また、Shadowbox.setup()の呼び出しタイミングはCGIから返されるHTMLの末尾でscriptタグ内に記述した方が良いです。
DOMのロードとJavaScript実行のタイミングを調整するためです。


第2回 Webマーケティングセミナーに参加しました

10/2(金) 青森国際ホテルで青森県庁主催のWebマーケティングセミナーの第2回目に参加してきました。
今回の講師はdct-design代表 蝦名晶子さんInternet Strategy代表 角掛健志さんのお二人。

特に角掛さんとはCSS-Nite in Aomori 2009以来で、色々な意味で相変わらずのようで安心しました。
それぞれの内容について概要と雑感を。

第1部 設置方法、見方、活用方法等がわかる『アクセス解析のキホン:ユーザの動向を知る!』
講演者:蝦名さん

概要:

アクセス解析の必須ツールであるGoogle Analyticsの設置、利用方法を具体的に紹介。
サンプルとして青森県庁のアクセス分析の結果を利用。
製作発注者、Web管理者向けに基本的なGoogle Analyticsの使い方、アクセス解析に置いて注目するべきポイントを解説。

雑感:

アクセス解析を使いこなしていると言える製作発注者、Web管理者はどれだけいるでしょうか?
製作者からすれば既知の内容かもしれませんが、製作者自身、Google Analyticsの導入を提案したとして、基本的な使い方だけでなく、クライアントの性質に合わせた適切な解析項目の洗い出し、運用のガイドラインを提供できているかどうか等、今一度、振り返ってみることが必要と思いました。
ページビューやユニークユーザ数といった分かりやすい項目に比べ、サイト滞在時間をはじめ、目標値の設定方法と言ったところまで、提案した製作者が指導して行かないと宝の持ち腐れになるでしょう。

的確な現状分析あってこそ次の一手が生きるという意味では、分析手法とクライアントの業態をどう結びつけるのか?結びつけてどう測定するのか?測定結果から何を導きだすのか?といった過程を製作者は分かりやすく説明できるようにならなければと思います。
自分も見直しが必要です。

第2部 サイトリニューアルは利益を追求する!
講演者:角掛さん

概要:

サイトリニューアルの定義と進める上でのポイントについて解説。
参加者に向けて事例を利用してのワークショップを行い、グループごとに結果を発表。
それに対する評価と実際のリニューアル結果を公開、解説。

雑感:

CSS-Nite in Aomori 2009でのセッションでは、リニューアルの持って行き方として、そんなアプローチも考えられるのかと、いつの間にか自分の凝り固まっていた考え方をほぐされる感覚でした。今回もそれを期待していましたが、予想よりずっと楽しく、のめり込むことができました。

目的の達成が大事なのであって、手段のために目的を選んではならないというのは、その通りだと思います。
また、リニューアルという言葉の定義は「問題の解決」であるとしたのは共感できました。全面的なデザイン、コンテンツの入れ替えをリニューアルと捉えるのではなく、マイナス要素となっているポイントを的確に解決すること、少し改善して、また計測して、分析してまた改善してというサイクルを繰り返すのだという話は、システム開発も一緒だと思うばかりでした。

個人的に印象に残ったのは、報酬についての考え方です。時間給などで考えるのではなく、発生する作業を投資と考え、回収する利益から適切な金額を導きだすというアプローチです。システム開発の業界で人月という悪しき習慣が有るのですが、結局の所、自分たちの開発内容についてその投資効果と、システム導入先においてどれだけの利益をあげることになるのか、計測できていないために人月という時給計算もどきのどんぶり勘定になっているのだと再確認させられました。

日々の業務から、どれだけのコストが発生し、システムでどれだけ「儲けさせられるのか?」という側面をおざなりにしてきた報いなのだろうと思います。計測作業というのは思いのほか大事で、組織の大小に関わらず、日々の計測ができている組織は少ないと思います。個人も然り。
今後のクライアントとの折衝で、そういった視点を押さえて行きたいですね。

今回のワークショップは、角掛さん曰く「相当いじわる」ということでしたが、蓋をあけてみると思いのほか角掛さんの答えと近いものが多く、角掛さん自身も驚かれたようでした。
といっても、お題に対する現状分析が非常に的確なものなので、考える側も取っ付きやすかったというのが本当だと思います。
要求の聞き取り精度が高いかどうかでその後は決まってしまうので、そういう意味では角掛さんの手の平の上だったかと。
角掛さんは「企画」という言い方、私は「要件」という言い方をしますが、どちらも本質は一緒です。

改めて自分が今後、学ぶべき知識の指標もできたので、非常に有意義でした。


[Rhaco]viewでPHPコード埋め込みがうまく動かない場合がある

相変わらずRhacoで現プロジェクトの開発をぼちぼち進めている。

Rhacoのレンタルサーバでも大丈夫!というポリシーは素晴らしい。
専用サーバやVPSを提案しなくとも良いので、運用費がコストダウン。

今、開発で困っているのがviewへのPHP埋め込み。
下記のような状況でだけ、うまく動いたり動かなかったりする。

<a href="<?php H::linkTo('hoge') ?>">どっかにリンク</a>

Hはhtmlヘルパークラスへのショートカットで、linkToメソッドは引数を受け取って、各アクションへのURLを生成する。

ググっても、なかなか情報がない。after railsならフレームワークだとしたら、上記のような書き方は真っ先に試しそうなものなのだけど、そうでもないのだろうか?