2008年7月29日火曜日

意識的にトレーニングを続ける方法

英語のお勉強をしようと意気込んだものの、状況はあまりよくない。

興味を失ったわけでも、必要性を疑ったわけでもないのだが、やはりおいらは天性の三日坊ジスト(造語)なので生活パターンに取り込まなければ続かないのだ。(個人的には、「この本さえ読めば実践で使える」みたいな即効性の高いものの方が好き)

といいつつ、せっかく一歩踏み出したのにこのまま止まるのはもったいないので、「具体的に何時から何時までに何をするか」を考えてみよう。

まずは自分の生活を振り返ってみる。

  • 朝8時ごろ起床
  • 9時ごろまでぼけーとしながらチビと飯をもぐもぐ
  • 9時ごろからPCに向かうことが多い。本当はここでiKnowとか英語の教科書をやろうと思ってたんだけど、ノートPC開いてまずはメールを確認すると、次に購読しているニュースを読んでしまって、始業時間である10時になってしまうことが多い。
  • 19時までお仕事。途中飯を食いながらブログなどかきかき。
  • 19時を過ぎると、犬の散歩してから家族と飯食ってチビを風呂に入れる。
  • 21時頃チビを寝かす。おいらとかーちゃんが居ないと寝てくれないので、一緒に横になっていると、そのまま寝てしまうこと多数。
  • 運良く目が覚める(または寝てはいけない理由がある)と、22時過ぎぐらいからのそのそ起き出して、趣味のプログラミングか、趣味の調べ物か、見逃していたニュースサイト巡回。
  • 1時か2時くらいになったら眠くてなむー。または、起き出さずに21時頃からそのままなむー。

まとめると、8時前(早起きする)か9時〜10時にかけてを毎日行うか、毎日ではないけど22時〜2時ぐらいかの3パターンの時間が取れそうだなぁ。 

次に、自分の興味をまとめてみる。

  • ニュースサイト巡回。これをやらないと取り残されるので、仕事柄必要。数日なら放置しても後で追える。(でもそれで失敗したことも…情報戦では不利になるのでやはり毎日追う方がよい)
  • 趣味のプログラミング。仕事柄絶対に必要なんだけど、なかなか取りかかれない。詳しくは別記事で。
  • 最近自宅で仕事してるので体重が気になる。てか適度に運動必要だと思うので、筋トレとウォーキングでもしようかと。筋トレしないとお腹がヤバイ。
  • 調べ物。サーチエンジンモノ(特に意味推定モノ)とか位置情報モノをWikiPediaとかググってブログで調べたりとか。まぁ、頻繁にやるモノではないね。
  • 調べ物。RailsのプラグインやGemは仕事に直結するので、優先度が高い。
  • 学習モノ。英語は毎日ちょっとづつ続けないと学習効果が低そう。これができないと壁が越えれない気がするので優先的に。
  • 学習モノ。統計学は本格的に学ぶ気がない(実用的な表層のみ)ので、入門本を読んでみる程度かな。
  • ブログやwikiを書く。自分で調べたモノのアウトプット(自分のためのメモ)として。書くことでまとまったり、足りない部分が見える。

自分の性格を鑑みるに、「何かを行う動機付け」になるモノはなるべく頻繁にした方が良いと思われる。そして、動機付けされたモノに対して枝道にそれていくのは時間的制約が来るまで邪魔しないのが粒度的に良い気がする。

たとえば、趣味でプログラムを作る課程で調べ物をする必要があれば、そのままプログラムは置いておいて調べ物を続けるとか。(プログラムは完成しないかもしれないけど、知識は広範囲に実用的なモノが揃う気がする)

あと、本を読めば実用的な知識が手に入るモノは、スケジューリングせずに本を買って休日にまとめて読むとか。

で、枝道にそれることを前提に意識的に行わなければならないモノのみ、時間の有効活用をするため組み合わせ可能なモノを整理し、優先順位(上位が上)と時間配分をつけると…

  • ウォーキングと英語学習/毎日30分。歩きながらipodで英語を聞く&瞬間英作文など。(体と頭を使うので、目覚めに良さそう)
  • iKnowと英文法のおさらい/毎日30分。
  • ブログなどを書く/毎日1時間(ぐらい? 調べ物の目的達成時点で、その場で書くのが良いかも)
  • 筋トレ/10分(時間的には暇なんだけど、酸素を使うので考える系の作業を平行するのは無理。超回復を待つ必要があるので毎日行う必要はない)
  • ニュースサイト巡回/毎日15分(くらい? 枝道に入らなければ。ただ、枝道にはいるのは良いことだと思うので枝道に入っても良い時間帯に行う)
  • 趣味のプログラミング/2時間超(学習の必要性の動機付けになるので、これは優先度が高い。逆にここから枝道にそれるのはアリ。同じく枝道に入っても良い時間帯に行う。まとまった時間を意図的に用意しないと進まない)

さて、これを毎日の生活パターンに入れてみよう。

  • 朝7時半ごろ起床。そのまま犬の散歩しながらウォーキングと英語学習。
  • 8時〜9時ごろまでチビと飯をもぐもぐ。ウォーキングしてるなら頭は冴えてると思うので、9時には勉強を始めたい。(できないことも多いだろうが)
  • 9時〜10時。まずメールは見ない。ニュースも見ない。まずiKnowやって、あとは文法を時間までやる。(9時ジャストから勉強できるわけではないので文法で調整)
  • 10時〜19時までお仕事。途中飯を食いながらブログなどかきかき。
  • 19時を過ぎると、犬の散歩してから家族と飯食ってチビを風呂に入れる。
  • 21時頃チビを寝かす。おいらとかーちゃんが居ないと寝てくれないので、一緒に横になっていると、そのまま寝てしまうこと多数。
  • 運良く目が覚める(または寝てはいけない理由がある)と、22時過ぎぐらいからのそのそ起き出して、先日筋トレしてなかったら筋トレ後シャワー(これで30分ぐらい経過)。次にニュースサイト巡回。興味のあるモノがなければ趣味のプログラミング。
  • 1時か2時くらいになったら眠くてなむー。または、起き出さずに21時頃からそのままなむー。
  • 2週間に1日ぐらいの割合で読書の日を作る。読む本が無ければ開発の日でもいいや。

こんな感じで、毎日時間を確保しやすいけど後ろに延ばせない朝の時間と、毎日はしないけど後ろに延ばせる夜の時間と、一回行えばそれで良い休日をうまく配置しておいて、これを頭に入れつつ、あまりこれに囚われずにいれば、長続きするのかなと。少なくとも、優先順位を整理しただけでも意味はあるかなと。

あと、犬の散歩みたいに「他人の都合で毎日行わなければならないもの」は、続きやすいかも。

2008年7月23日水曜日

Balsamiq Mockupsを使ってみた

Mockupsとは画面設計専用のソフトです。ペーパープロトタイピング風のデザイン作業をPC上で行うソフトになります。

手書き風のモックアップ画面がさくさく作れる『Balsamiq Mockups』 でその存在は知ってたんだけど、実際使ってみたら、日本語(マルチバイト全般)が通らなくてゲンナリ。

せっかく良いソフトがもったいないので、作者に「日本語フォント入れてよ。じゃないと日本のユーザは使えないよ?」ってメールを送っておいたら「じゃあシステムフォントを使うようにしようか」みたいな返事が来て好感触。

ほどなく対応版がリリースされたので、実際に使ってみました。

実際にこのブログのモックを作ってみたのがコレです。

mockups with Japanese

機能の詳細はIDEA*IDEAさんを見てもらうとして、使ってみた感触がこちら。

  • 基本英語です。まぁ、英語アレルギーがある人以外は大丈夫です。(おいらが使えるんだし)
  • ViewメニューのUse System FontsをONにする事。これ重要。むしろデフォルトONにしてください。
  • 現状ではオンライン版は日本語表示できません。デスクトップ(AIR)版とソースがちょっと違うのかも!?
  • デスクトップ版は使用フォントをシステムフォントに直す事で、ちゃんと日本語も使えます。
  • 習得は容易。1時間程度で結構使えるようになりました。もちろんマニュアルなんて読んでません。(そもそもマニュアルはあるのか?)
  • 手書き風なので、細部にこだわらず本質的なデザインに集中できるので、ユーザーインターフェイスの設計などにはぴったりかも
  • また、手書き風+(紙ではなく)デジタルデータなので、一度作ったものを消す抵抗が少なく、ブラッシュアップにも良いのかも
  • 使ってみればわかりますが、結構完成度は高いです。十分実用的です。
  • 用意されているコンポーネントの種類などを見ると、純粋なHTMLベースのシステムだと、手を余します。AjexベースもしくはFlex、windows/MacネイティブアプリのUI設計に向いているんでしょうね。そういう意味で、HTMLベース用のフィルタ機能があると、コンポーネントを探し易いんだけどなぁ。
  • まだちょっと不安定なところが見受けられました。おいらはMacOSX 10.5.4にAirランタイム1.1で動かしてたんだけど、途中でCPU負荷が以上に高くなったりしました。Mockupsを再起動したら直ったので、イベント処理で詰まったか、Airランタイムの問題なのかなぁと思いました。
  • あと、コンポーネントを配置したら、ドロップしたところじゃなくて、画面左上に配置されるようなバグも見受けられました。これもMockupsを再起動(もしくはAuto-SizeをON)したら直りましたが。
  • 現状のコンポーネントのアイコンって、右下切れてない? なんか違和感が…
  • UI的に、コンポーネントは上じゃなくて、左にグルーピングして配置した方が使い易いと思うなぁ。まぁ、アイコンで選ぶなら今の様に上の方がいいんだろうけど、スクロールが多いので使い辛い面もあるなぁ。Flex的には面倒な処理じゃないので、切り替え機能付けてくれないかなぁ。
  • ペーパープロトタイピングの良さである、「その辺に居た人にささっと見せる」とか「継ぎはぎして動作を再現する」という部分は薄れてしまうんだけど、実際そこまでしているプロジェクトは少数だろうし、プロジェクトメンバー間でレビューしてから、ユーザテスト用の表層だけHTMLベースで作っちゃう方が実際に近いかなぁ、と個人的には思いました
  • データファイルがXMLなので、コンバータ作ればMXMLとかに転用できちゃうかも
  • Flashアプリ/Airアプリの二本立てで、Windows/Mac/Linux問わず使えるのがいいですね
  • さくさく作れるので、たぶん次回からシステム設計はこれを使うと思います。
  • ここまで引っ張っておいて、実はこのアプリは商用ソフトです。$79なので、日本円で8000円ぐらいかな。
  • ブロガーとかオープンソース関係者は無料でライセンスをくれるので、おいらはライセンスを持っているのですが、いち企業が画面設計のためにコレを買うか?となったら、8000円は微妙ですね。iPhoneの1ヶ月の維持費と同じですもん(例としても微妙)。完成度は高いので、開発者側としては8000円は欲しいところなんでしょうけど。個人的には、3000円で会社が買ってくれるなら使いたい(すぐに購入申請上げる)と思います。だって、8000円もすると「パワポで作れ」で終わってしまう気がするでしょお?

今まではPowerPointとかExcelでコツコツ作っていたものが、これを使うとわかりやすいものがささっと作れてしまうので、一気に流行る気がしています(無料ならね)。少なくとも、おいらはコイツを愛してやみません。(←なんだこの締め!?)


2008年7月22日火曜日

今からPHPを始めるデザイナーへ贈るお金をかけないベストプラクティス

最近知り合ったデザイナーから、「PHP覚えようと思ってるんだけど、どうしたらいいの?」みたいな相談を受けまして、そういや前の会社ではこういう方針で教育してたなぁ、と思い出したのが以下の内容です。

この内容はプログラマー養成を目的としているので、プログラムも出来るデザイナ向けとして実践するなら、もうちょっと自分に甘くて良いかと思います。

完全に趣味の世界なので、突っ込みもあるでしょうけど、なにかありましたらコメントにどうぞ。

学習方針

おいらはPHPのイロハから初めて、大体のものは一人で作れるようになったのですが、その過程で「とりあえずコレやったらいんじゃない?」 とか「この本、サイトみてみたらいんじゃない?」みたいな学習過程におけるノウハウみたいなものもが溜まってきました。

で、これを元にした実際にプログラミングが得意ではない新入社員が入ったときのトレーニングコースは、以下のような感じでした。

基本方針としては、「効率を上げるためにお金を払う対象は、本だけにする。それ以外は無料で何でも揃うので時間だけかける」です。

PHPを覚える過程で、教科書の1ページ目から始めるのか、いきなりCakePHPやsmartyを使ったものから始めた方がいいのか迷ってらっしゃる方がいらっしゃいますが、おいらは素のPHPを覚えてからがいいと思います。

おいらも仕事でPHPを使う場合、ごく小規模(目安として10ベージ以内のもの)ならフレームワークを使いません。逆に面倒になるので。

プログラミングに関して言えば、完全に積み上げ構造の上で成り立っているので、基本がわかっていないと、フレームワークも使えないと思います。

デザインも出来るプログラマーとして、システムをガシガシ作って行きたいのか、プログラムも(調整程度なら)できるデザイナーとして行きたいのかにもよりますが、デザイナーと比較して、プログラマーは知識量勝負の面が強いです。

Webプログラマーが覚えなければならない知識の裾野はとても広いので、システムガシガシコースだと、内容の濃い本を20冊ぐらいは読んでおかないとまともに動くものは作れないと思った方が良いです。(プログラミングのミスの場合、システムに侵入されてしまうので、それなりにスキルが上がってからじゃないと公開できるものにはならないと思います)

同様の理由で、システムガシガシでなければ、フレームワークそのものは必要ないと思います。(フレームワークという考え方を理解するのは必要だと思いますが)

プログラムの作り方や考え方だけでも覚えておけば、これから自分でシステムを本格的に作る事になっても、システム部分だけ外注に出す事になっても、仕事はやりやすくなるんじゃないかなぁと思います。特に分業がきっちりしているところだと、プログラマサイドからみても、プログラミングし易いようなHTML/CSSを作れるのは非常に効率が良いです。

また、おいら的には、逆引き系の本は嫌いです。取っ掛かりとしては良いと思うので最初は使いますが、それに頼ると伸びません。それより、基本的な文法と、全機能の目次や概要などを押さえている人の方が伸びます。

よって、以下は「環境を作って」「文法を押さえて」「便利機能も押さえて」「あとはひたすら書く!」みたいなノリで進みます。

プログラミング環境関係

まず、コーディングはWindows上でかまいませんが、PHPをWindows環境で実行しようと思わないこと。できないことや、設定が面倒な事が多すぎます。

また、できるだけ手元のPCだけで開発を進めるのではなく、本番サーバと同じ環境で動かしながら作った方が、システムは出来たけど、本番サーバで動かしたらライブラリやバージョンが足りなくて目眩がした、とかって悲劇を避けられます。共用サーバだと越えられない壁は結構あります。

可能なら、空いているPCにLinuxを自分でインストールして、そこで実行するのが、以下の面で良いと思います。

  • 壊れても自分で直せる環境を用意する事。いろんなことにチャレンジし易いです。モノを覚えるときには、これが一番大事です
  • 安価で済む事。必要なときだけ起動すれば良いので、レンタルサーバのように契約する必要が無い
  • 足りない機能を簡単に付け加えられる事。レンタルサーバなどでは、出来ない事だらけだと思った方が良いです。自分でLinuxをインストールした場合ならば、簡単に追加できます
  • 予備知識が吸収できる事。Web(特にHTMLベースシステム)の世界はLinuxを中心に回っています。WindowsはLinuxから規格などを吸収しているので、後発な分使い易いですが、応用が利きません。

Linuxディストリビューション(Linuxの種類)は、基本的に会社で使っているものと合わすべきでしょうけど、わからないならCentOS

version 5で良いと思います。CentOSはRedhatの無料版(正確にはちょっと違うけど)です。

http://www.centos.org/

以下はCentOSの解説サイトですが、かなり詳しく書いているので、ただプログラミング環境を揃えるだけならapacheとmysqlさえ動けばそれでよいかと思います。

http://centossrv.com/

パソコンが余ってなくて、自分のPCがハイスペックなら、VMServerを使うのが安価で使い勝手も良いです。

http://www.vmware.com/jp/products/server/

Linuxをインストールして組み上げると、動くまでが苦しくて、その分知識は付きますが、そこまで時間がないならばWindows上でXAMPPを使うのが手っ取り早いです。(ただし、やはりwindows上で動かすので実行環境としてはいまいちです。壊れるときはwindowsごと壊れそうですし)

http://www.apachefriends.org/jp/xampp-windows.html

コーディングは、Eclipse+PDTプラグインを使うのが良いと思います。

PDTのバージョンは上がっているので適宜読み替えてください。

EclipseはJava用のIDEですが、PDTプラグインを使うとPHPの開発環境にもなります。

http://liosk.blog103.fc2.com/blog-entry-13.html

※慣れてきたら、subversionかMercurialでバージョン管理を行った方が良いです。新機能の追加に失敗して、元に戻したいときなどに必要です。

PHPプログラミング関係

以下のサイトからPHP4のバイブル本のPDF版が無料でダウンロードできるので、第三部以外を読む。

関数リファレンスはPHPのオンラインマニュアルを使うので読まなくてよい。(このPDFは内容が古いので読むと混乱するかも)

現在はPHP5(PHP version 5)への移行がだいぶ進んでますが、まだまだ有名系オープンソースもののシステムはPHP4(PHP version 4)で動く事を基本としているものが多いです。なので、PHP4でも作れるようになった方が良いです。(基礎部分なので無駄にはならないですし)

http://www.net-newbie.com/support/pdf2/

もしPHP5を使いたければ、上記PDFの内容を理解してから、以下のPHP4から5への以降注意点を読めば良いと思います。

http://www.php.net/manual/ja/language.oop5.php

http://www.php.net/manual/ja/migration5.php

上記を読んで全体像を掴んだら、以下のPHP本家サイトで全目次を読む(本文は必要なときに読む)

http://www.php.net/manual/ja/

PHP本家サイトで全関数を一ページずつ開いて、どんなことができるのかを把握する(詳細は必要なときに読む)

たとえ今は書いてある事がわからなくても、読んでおいた方が後ほど使える事が多い

http://www.php.net/manual/ja/funcref.php

PEAR本家マニュアルの全パッケージを一ページずつ開いて、どんなことができるのかを把握する(詳細は必要なときに読む)

たとえ今は書いてある事がわからなくても、読んでおいた方が後ほど使える事が多い

PEARとはPHP用のライブラリ集です。

http://pear.php.net/manual/ja/packages.php

※最初に全関数や全パッケージの内容を把握するのは、一見難しそうに思えても、用意された関数やパッケージを使えば、実は簡単な事が多いからです。逆に、簡単そうな機能でも、関数やパッケージが無ければ、自分で作らなければならないので結構難しいです。

※PHP4からPHP5にバージョンアップする過程で、文法が結構変わったので、PHP4系で行くか、PHP5系で行くかが迷いどころになります。PHP4はもうあまり長くはサポートされないので、今から覚えるならPHP5で良いと思いますが、オープンソースの多くはPHP4で書かれていますので、改造を主にするならPHP4で覚えるのも手です。まぁ、基本部分あまりかわりません。レンタルサーバなどでは、PHP5も多くはなってきましたが、PHP4しかサポートしてないところもまだあります。

実践

重要な事は、自分でたくさんプログラムを作ってみる事です。

読むだけではある程度までしかスキルアップしないので、(プログラムを)書く事が必要です。

流れを掴むまで、以下のサイトをベースに改造してみると、流れを掴み易いかもしれません。

http://phpspot.net/php/sample.html

smartyは、ある程度の規模のシステムを、フレームワーク無しで作るなら必須ですが、フレームワークを使ってシステムを作るなら、無くてもあまり困らないかもしれません。ただ、大抵のフレームワークはsmartyにも対応しているので、覚えても無駄にはならないとは思います。が、個人的にsmartyは「ものすごーく便利」だとは思いません。癖が強いので。

ただ、smartyなどを使っても、使わなくてもPHPのコード(MVCのCとM)の部分と、HTML(Vの部分)は分けた方が良いです。

Vだけでも分かれていると、ドリームウェーバーなどで編集できるからです。(あぁ、ライトにPHPを使うならドリームウェーバー上で作ってもいいかもしれませんね)

デザイナ→プログラマだと、デザインの施したHTMLの、どの部分をループさせるかとか、どうやったらどういう機能が作れるか、といったところが重要になりそうですね。

その他

昨今のシステムではデータベースを使う事が大半ですが、これも慣れるまでに非常に時間がかかります。

習得に時間のかかる具体例を挙げると、SQLの文法や、検索(SELECT文)の書き方、テーブルの設計、データベースの運用方法など。

このうち、SQLの文法と検索(SELECT文)の書き方は、PHPのフレームワークを使うと覚えなくても済む(覚えた方が効率的なプログラムが書けるが、必須ではない)ので、新規でシステムを作るならCakePHPなどを使った方が楽を出来ます。

データベースの種類で迷うなら、MySQLにしておくのが、Webや書籍にノウハウの蓄積があるという意味、および有名系のオープンソースではほとんど対応しているという意味で、オススメです。

かなり決め打ちで、「コレやってコレやって」って感じですが、これだけあればPHPを覚えるための方針として迷う事は無いと思うので、細部でハマったらメールでもください。

2008年7月20日日曜日

hostingrails.comを使ってみた

個人プロジェクトのために、railsとsubversionなどのホスティングが出来るサービスを探していたのですが、よさそうなところを見つけたのでまとめます。

まず、探したサービスの条件は

  • Ruby on Railsのアプリケーションがホスティングできる。できるなら複数のアプリを使いたい。
  • PHPを使えた方が何かと便利(絶対条件ではないけど、phpMyAdminを捨てると管理は面倒)
  • Subversionのプライベートリポジトリが持てる
  • Gitのプライベートリポジトリが持てる
  • ドメインは複数割り当てれる(ドメイン自体は他のサービスで取る)
  • ストレージ容量がケチケチしてないほうが精神衛生上よい
  • 月々500円以下で使いたい。がんばっても月々1000円以内は絶対条件
  • できるなら、passengerを使える方が楽で良い(mogrel clusterでもいいけど、configがめんどくさい)

という条件だったんですが、日本のホスティングサービスは月々500円じゃあ、まともに使えるところは無い(サービスはあるけどまともに使えるとは思えない)し、そもそもsubversionやgitはまずもって入ってない。入っててもクライアントだけで、リポジトリは使えない。

で、いいところないかなーと探していたら、hostingrails.comがビッタリはまってました。

冠だけあってRailsを使う分には問題ないような構成になっているし、svnもgitもインストール済み。リポジトリを作る分にも問題無しみたい。(機能一覧と価格表による)

周りを見ても、あまり悪い事が書いてないので、ためしにbeginnerプランを契約してみました。

契約→実際に使えるまでをまとめると、

  • サイトを見ればわかるけど、普通に英語サイト、英語対応。でもまぁ、おいら(他の記事の英語レベル参照)でもなんとかなる。今のところ。
  • 月々いくらみたいな表示がされているけど、申し込みは1年または2年分前払いとなる。
  • beginnerプランなら4000円強/年ぐらいか? 国内と比べても価格は最低レベルに入ると思う。$3.59(¥380ぐらい?)/月だし。
  • begginerプランは共用サーバだよ。他にも仮想サーバとか専用サーバがあるけど、共用でもあまり困らないよ。(困るようならEC2を検討すれば?)
  • 支払い方法はクレジットカードのみ(?)
  • beginnerプランなら、申し込み後、数分で使える(24x7のサポート人員がいるのかも?) えらく早い
  • 申し込みの最後に、自分の技術レベルをサポート時の参考のために入力するようなフォームがあるんだけど、「おいら英語苦手っス」ぐらいに書いておくと、以後のメールがシンプル&ショートになる気がする。(いや、おいら宛に届くメールがそうなんだけど)
  • 申し込み時に、デフォルトのドメインを入力するんだけど、これは適当もしくは自分の名前を仮に当てるだけでも全然問題ない(後で説明する) てか、これを元にlinuxユーザ名を決められるので、ドメイン関係なく、ここはこだわるべき
  • ドメインの管理用ソフトとしてcPanelを採用している。これはちょっと癖があるけど、GUIが日本語対応しているので、使えなくはない。てか、英語だけだったら必死に使い方を勉強したんだろうけど、他の管理ソフト(CobaltとかPleskとか)を使った事がある人なら普通に使える。
  • beginnerプランはpassenger上で1つのrailsアプリを実行できる。実際には、Railsアプリを配置して、(railsapp)/publicのシンボリックリンクをバーチャルホストのドキュメントルートに当てるの設定が済んだところ(この時点ではまだrailsは動かない)で、運営側にメールで「こんな風に作ったから変更してプリーズ」と流せば間もなく変えてくれる。(このあたりはアナログ)
  • beginnerプランではpassenger上では1つのrailsアプリしか動かせないけど、FastCGIでなら何個でも動かせるみたいだよ。メモリが足りるかわかんないけど。(この場合はむしろpassengerが痛い)
  • 複数ドメインをcPanel上から自由に使えるんだけど、バーチャルホストがらみの考え方に癖が強い。サブドメインはすぐわかるとして、パークドドメインとかアドインドメインってナニ?って突っ込みたくなる。まぁ、一つのアカウントで複数のドメインを管理する方法に名前をつけただけで、このFAQを読めばなーんだと思うんだけど。
  • パークドドメインとかアドインを使えば簡単に複数ドメインを管理できるので、申し込み時に伝えたドメイン名はあまり重要ではない。逆に、当初伝えたドメイン名を変更してもらうときの方が面倒かも。(自分では変更できないっぽい)
  • ホスティングさせるドメインはcPanel上のDNSで管理しても、外部のDNSを使っても良い。cPanelではMXがらみが細かく設定できないっぼいので、おいらはvaluedomainを使っている。(偏見かもしれないけど)

で、実際の使い勝手は

  • Gemはある程度共用できるものが入っているし、プライベートディレクトリ(gemのインストール先を環境変数を使って変える)に好きなgemを好きなだけインストールする事も出来る。ここを見るべし
  • subversionはストレージ容量内で自由にリポジトリを作る事が出来る。svn+ssh(svnserve?)でもhttp(mod_svn)もOK
  • Gitは最初からインストール済みで自由にリポジトリを作る事が出来る。ssh経由とhttpでアクセスできる。git://は使えない(?)
  • beginnerプランでは、svnもgitもシングルユーザのみアクセス可能なんだけど、まぁ、自分の遊び場って用途なら全然問題ない。
  • sshは公開鍵をホスト側に入れておけばRSA認証でも使える。svn+ssh://でsvnとか、ssh://でgitでも使えるってことだ
  • アドインドメインとか、癖のあるあたりを理解してしまえば、capistranoとかで配置できるし、結構らくちん
  • 共用サーバだから、負荷とか巻き添えもあり得んだろうけど、あまり使い込んでないのでよくわからん
  • ネットワーク的にはアメリカだからちょっと遠いんだけど、あまり気にならない。むしろEC2よりは快適かもしれない(sshで繋いだときのレスポンスの感触から)
  • Railsを使わなくても、PHPだけでも400円弱/月なら安いかも。(まぁ、それなら日本にもあるか…)
  • beginnerプランに満足できなくなったら(mongrelやpassengerでRailsアプリを複数使いたいとか)、上位プランにすぐ変更できるよ。この場合は、日割り計算して差額を払えば良い。もちろんクレジットカード。

なにより、自宅サーバで2000円/月とか電気代払って、コケただのメンテだのと考えるより、精神的に楽で安い。

トラブったときに英語なのが辛いけど、まぁ、4000円ちょい/年ならいいんじゃない?

自宅サーバ運用できるような人なら、あまり障害にはならないと思うよ。

hostingrails.comの共用サーバ内からAmazon S3にバックアップかけれたらいいんだけど、シークレットパスワードを共用サーバ保存するのはちょっと危険かなぁ。まぁ、自分のPCからssh経由でバックアップスクリプト叩いて、引数にシークレットパスワードを渡すようにすれば良いかな?(実際に動いたら追って公開する)

てな感じで、今のところhostingrails.comのサービスには満足できます。満足できるようなサービスしてるのに、英語圏だからって使わないのはもったいないなーと思っての紹介でした。

2008年7月18日金曜日

勉強前にTOEICで何点取れるかテストしてみた

いきなり結果。満点1000点中290点。

勉強前の状態を計るためなのでTOEICを実際に受験したわけじゃなく、下記の模擬問題を使って点数を予想しただけなんだけど、まぁ、当然の如く玉砕な訳で。

"TOEICテスト新・最強トリプル模試 3" (中村 紳一郎, Susan Anderton, 神崎 正哉, 小林 美和)

「ギリギリ落第点」とか「普通の日本人の平均」とか言ってはならない。

4択または3択のマークシート形式なので、完全ランダムの場合の平均値は260点付近。

よって、この点数は100点満点中5点ぐらいの意味しか無い。

やったよ、久々に人に自慢できるいい点数取ったよw

かぁちゃんには見せられないなw

感想

  • じぇんじぇんまったくわかりません
  • 苦痛苦痛苦痛
  • (英語のチラシとか英語での会話しかない)この生活環境に突然放り込まれたら泣く
  • 聞き取れないので、まったくやる気が出ない。問題を聞く気もない。
  • 全然まったく問題を覚えてない(聞き取れてない)ので、この問題は後でもう一度使えるなと思ったw
  • この使い方(文法)見た事ある、ぐらいの問題はあった
  • たぶんこの文法はおかしいぐらいの判断はできるものがあった(消去法が使えるものがあった) でも、意味はわからない
  • 基本的に、考え込む時間は無いので、聞いてすぐ答えがわからないとダメ
  • なので、500点ってのは少なくて、300点とか800点以上が多いのかなぁと思った
  • これかな?と思ってマークしたものより、わかんないから適当にマークしたものの方が当たっている気がする…

まぁ伸び代がたくさんあると思ってがんばって勉強するぞー (超ポジ

2008年7月17日木曜日

勝手にGemCast 〜adminpage_scaffold_generator編〜

GemCastsの人が面白くて、悔しいので自分でも作ってみましたw

(ホントのところは技術の紹介の取っ掛かりとしてはビデオという形が最適だと思うので、自作ものにはこれを付けようと思っていたけど、作った事ねーし、実際どーよ?と思って作ってみた次第です)

adminpage_scaffold_generator公式HP(RubyForge上のアレ)の方には、海外の方向けのYoutube版も載せました。まぁ、ビデオそのものは日本語なので、雰囲気しかわからないでしょうけど。

画像が荒いですねぇ。キレイに撮るにはどうすればいいんでしょう?

こうやって動画を作っておいて、後でGem情報の集約サイトができたときに、動画ぺたぺただけで、そこそこコンテンツが揃えばいいなぁと勝手に思っていたりします。

2008年7月15日火曜日

RubyGemでadminpage_scaffold_generatorをリリースしました

みなさんは管理画面のデザインをどうやって起こしていますか?

おいらはよくお客さんから、「エンドユーザが見る部分はデザインにこだわりたいけど、運営側しか見ない管理画面は(予算を落とすために)素っ気ない形で良いよ」と言われます。

まぁ、たしかにその通りなんですが、デザイナーを挟まないで自分でメニュー構造を作るような感じだと、それはもう、すっばらしく素っ気ない訳で、せっかくシステムとしてはなかなかのモノが出来ても、見た目で「たいしたことねーな」的な烙印を押されてしまいます。るるー。

まぁ、逆に言えば、見た目さえキレイなら、多少機能が落ちてもお客さんのウケは良いわけで…

そんなこんなしてる時に、管理画面用のフリーテンプレートが公開されている という記事を見つけました。(今見直したら、generator作ったら?ぐらい言ってますね)

実物はFree Admin Template For Web Applicationsデモですが、よく見ると質の高さがわかります。

「こりゃあいい、そのうち使おう」とブックマークだけしておいたのですが、そのうち個人プロジェクトで使う機会がありまして、作りながら「これならデフォルトのScaffoldに置き換えれるかも?」と思ってその時の成果を元に作ってみたのが、adminpage_scaffold_generatorです。(ちなみに、その個人プロジェクトの方はまだリリースしてません)

adminpage_scaffold_generatorの使いどころ

まとめてみると、こんな感じでしょうか。

  • 管理画面。なぜなら元になるテンプレートが管理画面を想定したものだから
  • ActiveScaffoldではちょっと用途が違ってて、そのままは使えないような場合の改造元
  • 各種マスタ類のメンテ画面で、そのまま使いたい場合
  • どっちみちコードや見た目には手を入れるにしても、管理画面のためにデザインを起こすまでもない場合の、改造元として

で、基本的にデフォルトのScaffoldに対して見た目だけ変えたものなので、適用範囲や機能もそれに準じています。

  • 生成されるコードは、デフォルトのものとまったく同じはずです
  • デフォルトのScaffoldの性質上、controller毎にlayoutファイルが生成されますが、実際のところはlayoutは1枚にして、ヘッダーや左サイドメニューの内容を動的に入れ替えるような感じになると思います。(この部分は何もしていないので、自分で作る必要があります)

まぁ、デフォルトのscaffold使って管理画面を作るよりは、格段に楽になると思います。

ほとんどの場合(自分の案件は全て?)このscaffoldを使って作ったものをベースにしていいんじゃないでしょうか?

注意事項

ライセンス上の制約があります。

  • 元になっているデフォルトのscaffold_generator(railsに添付)がRubyライセンスなので、Gemの主体となっているMITライセンスを採用できませんでした。よってGPL ver3としています。まぁ、これはadminpage_scaffold_generatorのコードに対するライセンスなので、ジェネレータを使って作った管理画面の元ソースには影響はないでしょう。よってあまり重要ではありません。
  • ジェネレータを使って作った管理画面の元ソースに使われているアイコン(16x16の小さい方)は、FAMFAMFAMさんがリリースされているもので、クリエイティブ・コモン・ライセンスver2.5になります。(なんだよ2.5って)
  • よって、生成される管理画面の下部にクレジットが入りますが、これを取る事はできません。(必要ならFAMFAMFAMさんに問い合わせてください。相談に乗る旨はあった気がします)
  • 中くらい(32x32)のアイコンと、テンプレート(HTMLやCSS)はFreeライセンスのようです。テンプレートの作者に問い合わせると、「自分が作ったと言って配布しなければ、あとは自由にして良いよ」とのこと。
  • クリエイティブ・コモン・ライセンスの縛りから抜けるには、16x16のアイコンを使わないように変更するか、他のものに差し替えればよろしいかと。
  • その他、配布物のLicenseというテキストファイルにまとめてあるので、気になる方はご確認ください。

adminpage_scaffold_generatorの使い方

長くなってしまったので、手短に。(と言っても複雑ではないのですが)

1. gemのインストール

gem install adminpage_scaffold_generator

でgemをインストールする。

2.Railsアプリのルートに移動  

rails newapp

とか  

cd (APP_ROOT)

とかですね。

3.管理画面を生成する

script/generator adminpage_scaffold (モデル名) [(カラム名:型) [(カラム名:型)....]]

みたいな感じでしょうか。

一応おさらいとしては

  • 元にしているデフォルトのscaffoldと機能はまったく同じなので、オプションなども同じように使えます
  • モデル名は末尾にsは付きません。(○:testmodel ×:testmodels)
  • rails ver2.0からカラム名と型名が必要になったんでしたけ?(うろ覚え)

ここで、うまく動かない人は以下の事を確認してください

$ gem list

$ adminpage_scaffold_generator

が表示されているか?(インストールされているか?)  

(APP_ROOT) $ script/generate

Installed Generators  

Rubygems: adminpage_scaffold, install_rubigen_scripts

Builtin: controller, integration_test, mailer, migration, model, observer, plugin, resource, scaffold, session_migration

みたいに、generatorとして認識されているか?

(APP_ROOT) $ script/generate adminpage_scaffold

とか

(APP_ROOT) $ script/generate adminpage_scaffold hoge --help

とかして、オプションは正しいか?

プラグインバージョン

実は、gemを使わなくても、railsのpluginとしても動作するようにしてあります。(内容はほぼ変わらないので)

(APP_ROOT) $ script/plugin install http://adminpage.rubyforge.org/svn/trunk/plugins

でインストールできます。使い方も同じです。お試しにどうぞ。

(上記はtrunkを使っているのでたまに不安定になるかもです。嫌な方はtagsの中のものをどうぞ)

サポートなど

一応サポートフォーラムは作っておきました。

あとは、RubyForgeのプロジェクトページや、英語版マニュアルページや(ちゃんと書いてないけど)rdocも参照してください。

前回のGemCastが面白かったので、今回は自分で録画してyoutubeとニコニコ動画にアップしようかと思っています。

be動詞の疑問形を作れなかった男がTOEICで600点を目指すまで(その2)

具体的な勉強方法などをまとめてみました。

なるべく楽に、ライトに、気負わないでやりたいと思います。

レベル1のプランニング

おいらのレベルでは、Web版英語上達完全マップの通り、音読パッケージと単文暗唱=瞬間英作文から初めるのはちょっと非効率で、最初に中学英語の勉強をし直すのがいいみたい。まぁ、そりゃそうだ。何も覚えちゃいないんだから。

具体的には、この標準ケース を参考に以下のように内容と教材を選んでみた。

0.文法(ゼロて)

おいらの場合、英語の基礎がダメダメなので、まずは教えに従い、中学文法の勉強し直しから。Amazonではこのテキストの評判がすこぶる良いので、これで行こうかと。

時間配分はどうしようかなぁ。1日1時間程度かな。音読+サイクル法中心に、文法を1つ1つやっつけて行こう。(そうしないと、他のタスクが回らないし)


"くもんの中学英文法―中学1~3年 基礎から受験まで (スーパーステップ) (スーパーステップ)" (くもん出版)

上記は、ちょっと練習問題が少ないと感じたので、「出題範囲が同じで安くて問題数が多い」という理由で以下も同時に購入。


"新Aクラス英語基本文型問題集" (昇龍堂出版)

お。これひとつ古いやつだね。おいらが買ったのは同じものの新装版らしい。価格は同じ。中身は知らない。

1.音読パッケージ

iKnowを使用するので、正確には、パッケージでもなんでもないね。要はネイティブの発音を聞けて音読できれば、細部は良いかと。

本当は中学文法を進めてからじゃないと効果が薄いみたいだけど、既に始めているし、取っ付き易くて楽しいので、途中で終わるよりは発声的要素をアレンジして続けた方がよいかなぁと。

Coreチャンネル:ゼロから基礎英語ステップ1~9をとりあえずの目標にする。

ボキャビルには早すぎることを承知で、iKnow二回とBrainSpeed一回とDictation一回を毎日やります。時間は30分ぐらいかな。

なぜって? ゲーム感覚で楽しいから。

今までと使い方が異なるところは、音声が流れるところでは、声を出してリピートもしくはシャドーを行うことかな。

あと、iKnowの場合、問題毎の画像でイメージ付けするのも重要なのかなと思いました。繰り返し回数はiKnowに任せても良いかもしれませんね。(覚えられなければ、もう一度同じコースをやればいいか)

2.単文暗唱=瞬間英作文

これもAmazonで、すこぶる評判が良いので、この教材に決定。

英語上達完全マップの著者でもあるので、レベル1の要素には完全マッチするようです。

付属のCDも、iPodで聞くのにちょうど良いみたい。慣れてきたらウォーキングしながら暗唱しようかと思っています。

ウォーキングを続けるための理由付けと、その方が時間を確保し易いので。


"どんどん話すための瞬間英作文トレーニング (CD BOOK)" (森沢 洋介)

3.精読

まだ早い。今手を出すときっと嫌になる。

4.文法

こちらは次のステップ(高校文法)のための文法トレーニング内容なんだけど、山口英文法抗議の実況中継上下巻を既に購入済みなので、これを使おうかと。しっかりと下調べすればよかったかなぁ。

着手はまだまだ先だなぁ。

三日坊主にならないように

学習の理由付けというか、やらなきゃならないように自分を仕向けます。

  • このブログで勉強を宣言して退路を断つ
  • ダイエットと兼ねて、毎朝ウォーキング中にiPodで単文暗唱=瞬間英作文やリスニングを行う(体重減ればサイコー)
  • iKnowは楽しいので、効率云々は考えずに毎日続ける
  • (最初は飽き飽きとしていたけど)iKnow上のSNSに積極的に参加して友達を見つける
  • 必要にかられた英語マニュアルをちょっと読んでみる
  • ブログなどを介して英語圏の人とメールをやり取りする

なので、このブログにも英語の学習過程を書いたり、iKnowのSNSにこのブログをコヒペしたりするかもしれねっす。

まずは、波に乗るまで

  • 文法1日1項目以上。(30分程度)
  • 毎日iKnow二回とBrainSpeed一回とDictation一回(計15分)
  • 本を見ながら瞬間英作文のための第一ステージの第一サイクル目を3ページ分づづ進める(30分)
  • 基礎スキルが足りないのでウォーキングしながらの瞬間英作文は出来ないと自己判断。実際ダメダメだった(0分)

波に乗れたら

  • 文法復習。または本を見ながらの瞬間英作文第一サイクル目を進める(30分)
  • 毎日iKnow二回とBrainSpeed一回とDictation一回(計15分)
  • 晴れていればウォーキング+iPodで瞬間英作文+リピート(30分)

が目標かな。


2008年7月14日月曜日

be動詞の疑問形を作れなかった男がTOEICで600点を目指すまで(その1)

英語を本格的に勉強する事にしました。

目標は、なるべく「がんばらない」事です。三日坊主なおいらは、なるべく気負わず、なんらかの合理的理由をつけないと、長く続かないのが目に見えているからです。

なので、一日の勉強時間は1時間から1.5時間程度で、楽しい事(iKnowとか)を優先します。

なにをおいても学習理論の体系付けから

英語上達完全マップと言う本がありまして、このWeb版で全文を読めるのですが、これを参考に学習理論やトレーニング内容を検討しました。


"英語上達完全マップ―初級からTOEIC900点レベルまでの効果的勉強法" (森沢 洋介)

まず目標と目的

おいらはWebプログラマーなので、その視点で英語を勉強する事の目標や目的は以下のように設定しました。

  • 英語圏の各種Webサービスや利用規約を容易に理解できる事
  • 英語のニュースサイトやブログを容易に読める事
  • Railsやgitなど、比較的新しかったり、開発が継続しているアプリケーションなどの英文マニュアルを容易に読める事
  • 上記3つはFireFoxのマウスオーバー辞書程度の使用はOK(実用的な速度と理解度を保てるので)
  • メールやバグトラッキングシステムで、英語を使ってバグ報告を行える事。特に、自分が作った英文が文法的に正しいか(極端に言えば意味が通るか)を心配しなくて済む程度になる事。
  • IRCなどの文字ベースチャットで英語圏の人とコミニュケーションが容易に取れる事
  • 海外旅行や出張などで困らない程度の英会話が出来る事

書き出すとこんな感じなんだけど、重複要素があったり、レベルがまちまちだったりしてるね。

実用度が高いのは、英語圏のブログやアプリのマニュアルが読める事(特に新しい技術は日本語に翻訳されるまでタイムラグがあり、これは将来においても解消されないと思う)と、IRCなどで積極的に質問が出来るようになる事かな。

これをTOEICの点数換算すると、ボキャブラリさえあれば600点ちょっとぐらいなんじゃないかと思う(素人考え)。なので、具体的目標はTOEICで600点で、学習結果のベンチマークとして、定期的にTOEICを受ける事にする。

もしTOEICで600点取れたときは、そのまま続けるか必要ないかを判断する事にする。今のところ、英語ペラペラが目的じゃないし、極端な話、英語を学習する時間を他の事に当てれば、もっと収入が増えたり、プログラングスキルが上がったりするかもしれない。けど、現状でもっと上に行くには、英語が障害になっているなーと感じるので、まずはこの障害を突破する事を目標に据えるべきかなと。

もちろん、TOEICで600点とれても、上記目的が達成できなければ意味が無いので、学習は続けるだろうが。

方針付け

現在31歳。自宅で仕事しているので、時間配分は結構自由。休日は不定だけど、平均して週に2日は取るつもり。

元々自分への投資として、月1万円ぐらいを書籍代や知り合いとの飲み代に当てているので、参考書を買ったり受験したりするのに多少お金がかかるのは、あまり気にならない。

逆に、やりたい事や仕事があるので、時間優先。

テキストを買って時間を節約できるなら、そうする。

(実際、今回は初期投資として5000円強かかっている)

現状の自分を客観的に判断する

ええと、中学の英語のテストで(100点満点で)9点を取った事があったな。

最近まで、be動詞の疑問形の作り方を忘れていたな。(我ながらスゲーな)

最近仕事でタイ人と打ち合わせを行う必要があって、かなり適当ながらも、なんとかコミュニケーションは取れるようになった。5W1H文とか基本的な(中学1年レベル?)の英語は使えるようになった気がする。でも、タイ人が日本語で話せるようになってきたので、また英語を使わなくなってきて、勉強も身が入らなくなってきたな。てなことをしていたら、会社を辞めたし。

でも、タイ人と話さなきゃならない状況になったときに、急激に伸びた感(ゼロからちょっと上に登ったという程度)は感じたので、英語に興味は沸いた。

iKnowもおもしろいからたまにやってる。

ruby絡みは(特にrails絡みは)英語が出来ないと辛いので、必要性も感じている。

で、ちょうどWeb版英語上達完全マップをどこかのブログで知って、いい機会だからちゃんと勉強しようかという気になった。というのが今の状況。

最初にすること

せっかく勉強するんだったら、目に見える形で実力を知りたい。

Web版英語上達完全マップではTOEICをベンチマーク的に使う事を進めているので、おいらもこれに従う事にする。

で、せっかくなので、まずは何もしていない現在の状態で何点取れるかを計りたいんだけど、TOEICって2ヶ月おきぐらいに試験をやってて、受験料 6615円もするのね。今からじゃ9月の試験が最速なんだけど、それまで勉強しないってのもなんだしなー。(せっかくやる気になったのに)

受かるための受験じゃなく点数を知りたいだけなので、少なくとも初回や最初の数回は、実際に受験するんじゃなく、模擬試験で点数を計測する事にする。

このへんにしようかと。模擬試験3回分(それぞれ別冊)+予想点数+解説付きで1890円なんだから、そこそこパフォーマンスはよいかと。


"TOEICテスト新・最強トリプル模試 3" (中村 紳一郎, Susan Anderton, 神崎 正哉, 小林 美和)

どれだけ低得点が出るか、とても楽しみ(苦笑

長くなったので、その2に続きます。



iPhone在庫情報

札幌ヨドバシは在庫切れで、次回入荷の予定もわからないんだって。

そんな中で、昨日知り合いがiPhoneを買ったって言ったんで、どこで買ったか聞いたら、北海道滝川市のヤマダ電機らしい。

なるほど、田舎にも当然在庫は回るけど、この商品を求める人は少ないよね。

まだ在庫があるようなので、欲しい人は走れ。(少なくとも、田舎の電気屋に電話しまくれ)

ちなみに、昨日iPhoneをその店で買った人は、その知り合い一人だけらしい。

おいら的にiPhoneは購入に値するか?

で、ヨドバシのiPhoneデモ機を触ってきたけど、結構良いね。

気になった点は…

  • 思ったより薄くて、ちいさくて、軽い。平べったいので、ズボンのポケットにいれるには、ちょっとしんどいか?
  • やはり日本語入力は弱い感触。Appleのビデオでは、QWERTYソフトキーボードモードで、横にするとキーボードが打ち易そうに見えたんだけど、付属のメモアプリケーションを使う限りは、横にしても何も変わらない(縦使いのまま)だった。
  • 新採用のモーションモード(なを上にドラッグすると「ぬ」など。正式名称しらね)の入力方法も、イマイチ動作が緩慢で、使いづらかった。あれではブラインドタッチ的には使えないなぁ。思考が妨げられるなぁ。(デモ機なのでちょっとソフトが古いのかもしれないけど)
  • アプリケーション起動時に3秒ぐらい待たされる事がある。まぁ、しょうがないと言えばしょうがないんだろうけど。
  • アドレス帳とか写真の管理は便利そう。特に写真は、ディスプレイの大きさとUIのすばらしさが相まって、これだけで買う価値はあるなと思った。きっと、アーリーアダプタ層以外には、こことiPodとしての機能が一番の売りなんだと思う。
  • なんでテキストをコピペできないの? 本当に理由がわからない。
  • iPhone経由でPCに繋がるならいいのにねぇ。(プログラミング環境があるから、じきに出来るようになるかもしれないけど)
  • 実質最低支払額8200円/月ちょい? 高い。しかも、3Gでこの価格だから、モデルチェンジしてもこれよりは下がらないよね。
  • AppStoreには、外国製のアプリがズラーっと並んでた。EverNote用クライアントアプリがあったので、使いたいなぁとは思った。
  • デモ機なので、ネットやメールの操作性がわからなかったのは残念
  • おいらgoogle房なので、gmailやgoogleカレンダーと同期できるアプリが出てから買うかな
  • 初期ロットは絶対バグがあるぞ(初代iPodNanoの時に購入直後にメーカー送りにするはめになった苦いおもひでが…)
  • 札幌ヨドバシでは、iPhoneだけじゃなく、iPhone用ドック(縦に刺せるスタンド)も在庫切れらしい。いくらするのか聞いたら、しばらく待たされたあげくAppleStore行けばわかると思うんですけどねぇと言われた。(やる気ある?)
  • i.softbank.ne.jp以外のメールのチェック間隔(pull間隔)最短5分って、実際問題どうなのかなぁ? 実用になるの? たぶん友達通しでメール送り合うようなときには使えないよね? このへんもアプリが出来てくるのかな?
  • 結局、MNP使ってiPhoneに行く場合、元の携帯のアドレス帳とかデータ類は移るの? 移らないの?
  • たしかOS的にシングルタスク(うろおぼえ。アプリの同時起動するが1個なだけかも)なので、GPS系アプリを立ち上げっぱなしにして位置情報を掴むとか、遅延無しでメールチェックする(数秒間隔でpull)ような使い方はできないのかなぁ?
  • てか、アップルはiPhoneSDKの利用規約を改正して、もっとプログラミングノウハウを共有できるようにすべき!! じゃないと、先行メリットをしっかり享受できないと思うんだが。
  • SDKの中身見てないけど、今時のSDKならHTTPアクセス用のライブラリぐらいあるんだろうね。Rubyプログラマなおいらには、C++の世界は堅苦しく感じるんだけど、オモローな事が出来るなら、何か作ってみたいねぇ。

きっと詳しいレポートはke-tai.orgさんがしてくれるはずなので、おいらはしばらく様子見することにする。


2008年7月11日金曜日

ペルソナを使った企画・設計における実践的な問題点の判断基準や時間や費用

実際にペルソナ/シナリオを使って検討を進める中で感じた疑問や情報をまとめてみます。

費用と時間をかけてペルソナを作るためのインタビューを行う必要があるかどうかの判断基準は?

「ペルソナの特徴が詳細に書けるか?」

時間や費用をかけたインタビューを元にした「事実」を元にするのか、時間や費用がもったいない(おそらくその効果を鑑みれば、対価として「もったいない」範囲ではないと思うが、やはり新しい手法は懐疑的?)と思って、周りの人や自分の経験を元にペルソナを作るのかの判断基準は、ここにある気がする。

特徴をかけないと、そこを足がかりに心理面まで踏み込めない。より明確に心理を推測するには、たくさんの特徴が必要になる。心理面まで踏み込めないと、「このサービスって便利かも!?」という風な心に残るようなサービスを実現する事は出来ない。心に残らないと、友達に勧めたり、自分自身がリピーターとなる事も無い。

調査を元にした事実を元にするのではなく、想像や仮説を元にした特徴を使って心理面を予想したとして、それが失敗した時の事まで考えて「こんな特徴を持っているはず!」と言い切れるか?

たとえば、「このペルソナは、多少値が張っても、自分のこだわりのあるところにはお金をかける」特徴があると言い切れるか?

普通の間隔の持ち主なら言い切れるはずが無いので、無難で平凡なペルソナしか作成できず、特徴の無いものから有意義な心理を引き出す事は出来ない。苦心して心理を見抜いたとしても、それが本当に正しいと自信を持ってビジネスの根拠に使えますか?

一方、多少癖があるなぁと思っても、実際のインタビューを元にした「事実」であれば、疑いようの無いものだし、あまりにもミスマッチならば無視すれば良い(ペルソナの特徴として取り込まなければ良い)だけの事。

ということで、インタビューを元にしなければならない理由は、こんな所にあるのかなぁと思った。

ペルソナを使って設計すると、対象ユーザを狭めてしまう事になるのか?

本には「対象ユーザを狭める事にはならない」とあるけど、いまいちピンとこないので、ちょっと考えてみた。

インタビューを元にして、対象者から特徴を抜き出し、それを統合したペルソナを創るという事は、平均という考え方ではなくて、和(足し算)という考え方になるから、対象ユーザを狭める事にはならない、という事だと思う。

たとえば、調査対象者から特徴を抜き出した集合体であるペルソナが喜ぶように、サービス上に10個の仕掛けを仕掛けておいた場合、ペルソナに近い人の方が全部引っかかってくれる確立は高いけど、まぁまぁ近いという人でもそれなりに引っかかってくれる、と言う事なのかな。

特定の人向けに作った仕掛けが、違う人には嫌だと感じる時もあるだろうから、一概には言えないんだろうけど、仕掛けに引っかかった時の効果が高いから、結果的に気に入った人の数が多いのは、ペルソナを使った時の方が多いという事なんだと思う。

ペルソナの特徴を創るときにやっちゃダメなこと

事実を元にしたのではなく、年齢や職業から「こういう風に考えているはず」と特徴を追加する事。例えば、あまり根拠が無いままにペルソナは公務員だとして「公務員だから形式張った事や数字にこだわる」はず、と連想して特徴付けするのは、意味の無いものから意味の無いもの(または意味の薄いもの)を創る事になるのでやめた方が良い。

ペルソナ/シナリオのためのインタビュー調査に要す費用と時間

インタビューをするなら、条件に合う人の抽出(リクルート)を調査会社にお願いしなくちゃならないんだけど、知り合いのところに頼んだら、(必要サンプル数は在籍する前提で)発注からインタビューする日まで2週間ぐらい時間は必要らしい(根拠不明)。

そのあと、各種図表を埋めて、ペルソナを作って、シナリオを考えてというと、3週間ぐらいかかるかもね。

大半はインタビューを行うまでの待ち時間。知り合いに該当者が居れば良いんだけどねぇ。(その場合も無理は言えないのでスケジュールを調整したら結構時間かかるか…)

費用については、インタビュー対象者5人で、インタビューアーは自分がやるとして、記録用機材レンタル代(動画データまたはMP3に出力可能)や会場代も含めて20万弱だった。札幌だけどね。

業界を知らないので、これが安いのか高いのかわかんない。

結果測定のための定量調査(アンケート)に要す費用と時間

ペルソナを創るのはインタビューが必要だと思うんだけど、ペルソナ/シナリオができて検討や設計が進んだときに、効果測定を行う場合は、アンケートで良いのかもしれない。

こういう用途で手軽に使うならやはりヤフーリサーチかなぁ(素人考え)と思って調べてみた。

ヤフーリサーチの料金表

サービスや商品に対するアンケートの時、普通は事前にアンケート対象者を絞り込む(スクリーニング)をしてから、該当者だけにアンケートをするだろうから、Yahoo!リサーチ PLUSがいいのかなぁ。

サンプル数によって値段がわかるんだけど、素人にはよくわからなかったので、必要サンプル数について調べてみた。

サンプル数の決定-OKWave

統計学のサンプル数2000の根拠は? -OKWave

標本数はどの程度あればよいのですか?

世論調査におけるサンプリング数の決定 ※数値の計算結果のみ参考にする事

自分は統計学を学んでいないので、はっきりした事は言えないんだけど、調べてわかった事は、

  • 調査方法によって計算式自体が変わるので、「この式なら何でもOK」というものは無いらしい
  • Yes/Noの二択で一般的な条件(根拠不明)で、母集団(日本人全体などのサンプルの元になる集団)の数が10万未満だったら、必要サンプル数は変化するけど、10万以上だと1537付近から変化しない。よっていつも2000もあれば正確ということになるらしい。式の性質上、そういうものであるということ。
  • サンプル数より、質問の仕方(アンケートの作り方)の方が、結果に与える影響は大きいらしい。

結局よくわからない。まぁ、値段から見るに10万円〜100万円の範囲内には収まるよね。時間も設問さえ決まっていれば1週間以内だろうし。

よくわからなかったのでYahooリサーチに問い合わせしたところ、

  • (根拠は教えてくれなかったけど)回答が30以上であれば、信頼に足るものだと判断できる
  • 有効回答総数が何個でも、それ以内であれば好きなサンプル数分だけ購入できる。たとえば、総数1000個の回答があったとして、100個だけ購入すると、10万円ちょっとになるよね。
  • 上記の場合、回答を受け付けた先着100個を購入することになる。
  • ただし、取引は法人間で行うので、おいらみたいなフリーランスはだめぽと言われました(設問の調整は良いが、発注は法人格を持っている企業からとなるので、必要であればクライアントからの発注とする必要がある)

だってさ。まぁ、スクリーニング(オプション料金)もするなら15万ぐらいになるのかな。(前もってスクリーニングしておくのと、Yahoo!リサーチ PLUSを使ってスクリーニングと本調査を一緒にするのが、どういう意味を持つのかはよくわからないけど)



2008年7月10日木曜日

PostgreSQL CE 8.0 Silver試験に合格しました

先日ブログで書いたオープンソースカンファレンス2008北海道(OSC2008Hokkaido)の、イベントの一つとして参加したPostgreSQL CE 8.0 Silver試験だけど、先ほど合格通知がメールで届きました。

この試験、自分が何点だったか教えてくれるんだけど、結果を見ると、66点。たしか合格ラインが64点だから、ギリギリじゃん。ってちょっと自分で笑った。

一応この試験を狙っている人向けに思った事を書き留めておくと、

  • 業務でPostgreSQLを使っている人が、何も勉強しない状態で受けると、40点ぐらいだと思う。だから、あと26取れるだけの勉強をすればいい。(それをおいらは地で行った訳だw)
  • おいらのスキルは、いつもはMySQLばかり使っていて、趣味でPostGISが使いたいから1度だけPostgreSQLを使ったことがある、という程度。おそらく、生涯でPostgreSQLをいじったと思える時間は、数時間程度だと思う。
  • でも、試験の内、SQL文の一般知識としては、MySQLを使っていればわかるレベル(というか、どんなDBでも共通しているようなレベル)で十分のように感じた。
  • 試験の規約上、試験内容に付いては書けないんだけど、試験のレベルはだんだん難しくなってきているみたい。実際、事前にやっていた模擬試験問題より、ずいぶん難しくて、時間一杯かかって解いた。
  • 試験勉強は、PostgreSQL CE 8 Silverの受験勉強をしてみるの通り、一夜漬けでPC UNIXユーザのためのPostgreSQL完全攻略ガイドを読み切った程度。この本はPostgreSQL8.2の時代の本だけど、よく突っ込んで書いてあるので、試験範囲は網羅されている感じ。オススメ。

合格すると、PDFで証明書が届くのと、専用サイトでPostgreSQL CE 8.0 Silver試験のロゴが入ったPDFをダウンロードできて、Webサイトや名刺などで使う事が出来る。名刺が切れたら次のやつには盛り込もうかなぁ。

PostgreSQL CE 8.0 GoldじゃなくてSilverだから、業務としてどのぐらい誇れるものかわからない(というか、普通の人はナニソレふーんレベルだと思うけど)んだけど、たとえば面接時に「あぁSilver持っているならいきなりプロジェクトに入れても大丈夫だな」とか、もっと現実的に試験勉強で覚えたツールや機能が実務に役に立つとか、資格として持っていると何かと役立つ事もあるんだろうと思う。

ここ一年間知り合いに見せびらかして、来年同じような試験イベントがあったなら、ガンガン人が押し掛けるように後押ししておきますぜ。

2008年7月9日水曜日

GainerのActionScript3用ライブラリをアップデートしました

FlashやProssesingなどから、Gainerモジュールというハードウェア(IC)を通して、基盤上に電流を流したり、読み取ったり(AI/AO/DI/DO)できるライブラリ(というかチップというか)に、Gainerというものがあります。

これ、光センサーや傾きセンサー(加速度センサー)やxxセンサーなど、色々組み合わせて面白いものが簡単に作れて、かつFlashなどの上位レイヤーから簡単に制御できる優れものです。そういうのが好きな人にはぜひ。オススメ。

本も出てます。(私の名前もちょっと載ってます)

"+GAINER―PHYSICAL COMPUTING WITH GAINER" (GainerBook Labo, くるくる研究室)

ちょうどAdobeがActionScript3をリリースし始めた頃にGainerと出会いまして、使ってみようと思ったらActionScript2用のライブラリしかなかったので、開発者に連絡を取りましてSourceForgeのコミッター権限をもらい、ActionScript3用のGainerライブラリを作りました。というのが、たしか2007年7月、ちょうど1年前の話。

当時はFlex2の勉強をしてまして、ActionScript3はおろか、ActionScript自体を書く事が初めてだったので、Adobeのオンラインマニュアルをじーっくり読んでいた記憶があります。(ちょうど仕事でも使うところだったので)

んで、ActionScript2で書かれたライブラリを、勢いで一晩かけてActionScript3に書き直して(といっても、ちょこちょこ直しただけで動いたのですが)、てやーって動かしたらなんとなく動いたので、そのままコミットしてました。

こんな感じなので、バグはあるだろうなぁと思っていたら、やっぱりあったみたいで、先日メールで修正依頼があったので、さっき直してtrunkにコミットしておきました。

内容は、GainerクラスにonFinishedイベント用のハンドラがあるはずなんだけど、動かない(無名関数などを登録できない)というもので、もしこれに困っていた人が居るなら、SourceForge.netGainerリポジトリからチェックアウトして使ってください。

2008年7月8日火曜日

Webサイトの企画にペルソナを使ってみた(その2)

先にWebサイトの企画にペルソナを使ってみたを紹介していましたが、実際にはもう1冊の本を購入していました。

(おいらは新しい事を始めるときに、「考え方を説明している本」と「リファレンス系の本」の2冊を合わせて買う事が多いです)

"ペルソナ作って、それからどうするの? ユーザー中心デザインで作るWebサイト" (棚橋 弘季)と比較してみると、ぞれぞれ特徴的だったので、まとめてみます。

まず、もう1冊の方の本がコレ。


"最強のWebコミュニケーションシナリオ お客さまとの絆をつくるインサイトマーケティング" (濱川 智)

まずこの本の感想。

  • 商品やサービスに対する「ニーズ(必要性)」と「インサイト(動機などの心理)」を分けて考え、ペルソナを使う事でインサイトを効率的に理解しようと言う論法で進みますが、構成がうまいのか250ページ強の本を一気に読めてしまいました。
  • 私は読むのが遅い方ですが、1日ぐらいで読めました。
  • ペルソナ作って、それからどうするの? と比較すると、具体的な調査方法やペルソナやシナリオを作るときの具体的手法の話は省かれているのですが、その分「どうしてインサイトが必要なのか」「ペルソナからどうやってインサイトを見つけ出すのか」「見つけたインサイトをどうやって活かすのか」については厚く語られ、数個の具体例からもイメージや理解がし易かったです。
  • 逆にペルソナ作って、それからどうするの? はリファレンス的に実践に役立つ本だという事も理解できました。
  • Amazon上での評価も高かったので購入したのですが、なるほどその通り、という感じでした。

上記にもある通り、使い分けとしては

さて、実務の方でうまく使いこなせればいいのですが…



2008年7月6日日曜日

Webサイトの企画にペルソナを使ってみた

正確には、ペルソナを使って企画をしてみようとしていて、そのために本を読んで勉強しているところ、といった感じ。

読んだのはコレ。


"ペルソナ作って、それからどうするの? ユーザー中心デザインで作るWebサイト" (棚橋 弘季)

まず、ペルソナを使って企画を進めるって、どういう事なのかをまとめてみる。

  1. 企画の目的や目標・課題・おおよそのターゲットユーザを決め、プロジェクトの方針付けをする
  2. 情報収集を行う。具体的には、ターゲットユーザになりそうな複数の人に実際に弟子入りする形で過去の事例などについてインタビューを行い、ユーザの実体験を吸収する。(これは「ユーザはこうだろうなぁ」という仮説ではなく、事実を収集できる)
  3. 複数のユーザの行動を分析し、それを統合する事でペルソナを作り、実体験をミックスさせた行動シナリオも作る。これはターゲット層毎に複数居ても良い。
  4. こられペルソナに気に入ってもらえるように、行動シナリオに沿った形で企画、Webサイトの設計、デザイン、広告、機能追加などを行う。
  5. 必要に応じて、早期に企画や設計に反映させるためのユーザテストを行う。

今までの方法だと、企業側の思考でユーザ像を捉えていたので、どうしてもご都合主義になってしまったり、真剣に考えようとしても「こういうユーザなはず」という「想像」からユーザ像を捉えていた事が多かったのですが、ユーザの声をまず聞いて、想像ではなく事実を元にして、それを統合させたユーザ像(これがペルソナ)を作る事で、気持ち動機なども含めたリアリティのあるユーザ像を対象に設計や戦略的判断が出来る事は、大きいんじゃないかなぁと思った。

やっぱり、システムを設計していて、どちらが良いか迷う事があるんだけど、そういう時の指針となるので、全体として統一されたシステムやサイトができるんじゃないでしょうか。

で、実際に読んでみて思ったこと。

  • タイトルの「ペルソナ作ってそれからどうするの?」とは裏腹に、この本はペルソナを作る前から読むべき本です。勘違いしやすいかも。
  • 具体的には、 上記1〜5の範囲について、ノウハウや具体例まできっちり説明しています。
  • 購入時点に置いては「Webサイト設計のためのペルソナ手法の教科書 ~ペルソナ活用によるユーザ中心ウェブサイト実践構築ガイド~」と目次レベルで比較検討して、「大企業の中で企画を通す」という流れより、「よりWebサイトを使いやすくする」という実践的な方として、「ペルソナ作って、それからどうするの? ユーザー中心デザインで作るWebサイト" (棚橋 弘季)」に決めました。他の本は、学問的な見地から抜け出せておらず、実践で使える本としては上記2つぐらいかなという印象です。
  • 実際には400ページ弱のこの本のうち、半分は概要編であり、話があちこちに飛んで読みづらく、あまり役に立たないなと感じた。1ページ目から順に読んで行くのであれば、途中で読むのが嫌になると思う。(てか嫌になった)
  • この分ページ数減らして、値段を下げてくれ。
  • 前半は概要編としてあまり魅力が無いのだが、後半は実践編としてとても役に立った。特にノウハウとしてではなく、「各項目はどんなことに留意しなければならないのか、なぜこういうことをするのか」といった考え方の部分まで示してあり、ユーザテスト当日のために用意した方が良い持ち物リストまで明記されている。ケーススタディも用意されているので、最後にこれを読むとまとめとなって、より理解が深まった。
  • ペルソナという外来の概念を、日本風にアレンジすることを目標にしているらしく、古来のお茶会や千利休の話も出てきますが、これが実践編でどう絡んできたのか、いまいち読み取れません。(他の本と比較すればわかるのかな?)

実践本として、とても役に立つ事は間違いないので、これをうまく使って企画を進めようと思います。

ただし、今進めている企画は、メンバーや予算や期間がかなり限られているので、上のフローをすべて適用する事は出来ないと思います。具体的にはインタビュー調査とユーザテストを省いて、経験や想像からペルソナを作るような形で進めようと思っています。

間違っても、メンバーでブレストだけでユーザー像を作り上げるべきではない」と言っている人もいるし、ユーザ中心デザインの良いところはかなり薄れてしまうのは覚悟していますが、それでもメリットは大きいと思います。うまく行くようであれば、このブログにまとめ直すかもしれません。まぁ、1人か2人ぐらいにインタビュー(というか雑談?)はしたいですけどね。最低。

ちなみに、「ユーザ中心デザイン」というこの概念、アジャイル開発と相性が良いみたい。スモールスタートと振り返りながらの反復開発をする予定ならば、検討をオススメします。

なんだかんだ言っても、この本はお薦めできます。


2008年7月2日水曜日

OSC2008Hokkaidoに参加してきました

先日OSC2008Hokkaidoというオーブンソースモノのお祭りに参加してきました。

当日はRuby札幌コミュニティブースの店番もしていたので、セミナーなどはあまり聞けなかったんだけど、感想などを少し。

  • おそらくこれからゲートボールをしに行くであろう姿のじぃちゃんばぁちゃん3人組などが迷い込んでいたようでした。
  • コミュニティブース用のルームが非常に広くて、電気や無線LANなどの設備も揃っていて快適でした。
  • Ruby札幌は動画配信をよくしているんだけど、配信用の回線が無い(無線LANを使っちゃ行けない理由がよくわからないけど)ようで、WILLCOM回線でブロードキャストしてた。これだとあまり画質や音声が良くないと思う。来年にはiPhoneやAndroidなどで状況は変わるのかもしれないけど、今年はちょと残念。
  • せっかくセミナーするんだから全セミナーブロードキャスト、全プレゼン資料をオンライン配布ぐらいにしたらいいのに。
  • 来場者数250人弱ぐらい(うろ覚え)のうち、約半数の100人超の方が打ち上げに参加されました。みんなジンギスカン食べたかったんだね。(いや違
  • 打ち上げのジンギスカンというのは定番でいいかも。去年までの立食は、料理が出されてすぐ無くなるような感じで、落ち着けなかったし。
  • PostgreSQL CE シルバー試験の受験者6人。なんだそりゃ。しかもほぼ身内らしい。絶対すぐ埋まると思ったのになぁ。みんなこういう実用系って好きじゃないのかなぁ。このセミナーだけは事前予約が必要だったのに、飛び入りが居たりなど、やはり広報がうまく機能していなかったのかな。もったいない。
  • PostgreSQL CE シルバー試験、実は年々レベルが上がってるかも。模擬問題より実際の試験問題方が難しかった。コマンドラインのオプション引数の意味まで覚えさせるのって意味があるんだろうか?
  • ライトニングトークは相変わらず面白いね。でも、ちょっと過去と未来の振り返り(?)の企画は長かったね。
  • ポストイットを使った年表があまり有効活用されてなくて、もったいなかったね。

毎年楽しいけど、今年も楽しかったです。

店番していた関係でRuby札幌のセミナーとか、Gitのセミナーが見れなかったけど、ブロードキャストしていたようなので、後でRuby札幌のHPにリンクが上がる事を祈りつつ。