2009年1月26日月曜日

ThinkingRockを使ってGTDを初めてみました


  • 最近はタスクが多すぎる!!
  • Remember The Milkだけではもう限界!サブプロジェクトすら作れないし・・・リストにはいつもタスクがあふれている!
  • そこでGTDを本格的にやってみる
  • でもOmniFocusは高くて躊躇
  • と思ってたら救世主登場、その名はThinkingRock
  • Javaなのでマルチプラットフォームなのもいい感じ
ThinkingRockというJava製のGTDアプリケーションを最近使い始めました。
同時並行で5つぐらいのプロジェクトを抱えており、さすがにRemember The Milkだけでは仕事を背負いきれなくなってきたのが始めたきっかけです。

このアプリの特徴を一言で表現するなら、

超本格的、でも簡単

これです。

実は私、GTDについてはウェブで聞きかじった程度の知識しかありません。
しかしこのThinkingRock、
「思考を集めるための画面」
「集めた思考を仕分けするための画面」
「仕分けした思考をプロジェクトやアクションとして管理するための画面」
が明示的に分離されており、
何を入力すればよいかもはっきりと決まっているので、後はヘルプを見ながらそれに従って項目を入力したりタスクを仕分けしていけば厳格にGTDに乗っ取ったタスク管理が自動的にできてしまうといった作りになっています。


このように、GTD全体の構成を表したOverviewが用意されております。

ヘルプにもGTD関連の情報が満載で、
わからないことがあれば頼りになります。
(たいていこういうツールのヘルプって頼りにならないので、驚きでした)

ヘルプ画面はこんな感じです。英語ばっかりで難しいですが・・・読めないことはないです!

サブプロジェクトとかも作成でき、コンテキストも作れて高性能でいい感じです。
気に入ったので職場のWindowsマシンにも導入しました。

2009年1月24日土曜日

route-meでタッチイベントを扱いたい

  • タッチイベントを扱うときはRMMapViewDelegateプロトコルを採用する
  • シングルタッチ、ダブルタッチを感知したり、マーカー上のタッチやドラッグを感知したり、地図の移動およびズームを感知したりできる
  • 現状、マップのドラッグやズームを使用不可能にするための手段は用意されていない。Delegateの返り値による操作もできない。
  • UIMapViewにenableDraggingおよびenableZoomというインスタンス変数が用意されているが、mapView->enableDraggingのようにしてアクセスしようとするとコンパイルエラーになってしまう。

route-me上でタッチイベントを取得してみました。

こんな感じで、画面上のタップした点を取得することができます。

タッチイベントの取得方法は、
まずRMMapViewDelegateプロトコルを任意のクラスに適合させて、
@interface MapViewController : UIViewController  {
/* 中略 */
- (void) singleTapOnMap: (RMMapView*) map At: (CGPoint) point
{
NSString *message = [NSString stringWithFormat:@"(%f, %f)", point.x, point.y];
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"singleTapOnMap"
message:message
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertView show];
}
/* 後略 */

適合させたクラスのオブジェクトをRMMapViewのdelegateプロパティにセットします。
RMMapView *mapView = [[[RMMapView alloc]
initWithFrame:[UIScreen mainScreen].applicationFrame WithLocation:initialLocation.coordinate]
autorelease];
mapView.delegate = self;

普通のUIViewとほとんど同じですね。

しかしこの方法では画面上の座標がとれるだけで、緯度経度を取ることができませんので、
RMMapViewのメソッドを用いて、緯度経度に変換します。
@interface MapViewController : UIViewController  {
/* 中略 */
- (void) singleTapOnMap: (RMMapView*) map At: (CGPoint) point
{
//ポイントをLatLongに変換して表示する
CLLocationCoordinate2D coordinate = [map pixelToLatLong:point];
NSString *message = [NSString stringWithFormat:@"(%f, %f)", coordinate.latitude, coordinate.longitude];
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"singleTapOnMap"
message:message
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertView show];
}
/* 後略 */

これで緯度経度になりました。

ところで、地図のスクロールやズームを制限して利用したいというときがあると思います。
たとえば日本向けのアプリなのにアルゼンチンの地図をスクロールして表示されたら困るという場合です。

早速地図のスクロールを制限する方法を調べてみたところ、
RMMapViewにいかにもそれらしいメンバー変数を発見。
@interface RMMapView : UIView
{
RMMapContents *contents;
id delegate;
BOOL enableDragging;
BOOL enableZoom;
RMGestureDetails lastGesture;
float decelerationFactor;
}

しかしながらこのメンバー変数、プロパティも操作するためのメソッドもなく、外部から操作することができません。
ためしに無理矢理以下のようなコードを書いてアクセスしてみたところ、コンパイルではねられました。
RMMapView *mapView = [[[RMMapView alloc]
initWithFrame:[UIScreen mainScreen].applicationFrame WithLocation:initialLocation.coordinate]
autorelease];
//以下の行でエラー。アクセスできません
mapView->enableDragging = NO;

残念ながらまだこの機能は現在のバージョンのroute-meでは利用できないみたいです。

その他、delegateメソッドの返り値をNOにしたらスクロールしなくなるとかそういう機能がないか調べてみましたがやはりなさそうで、今のところ地図のスクロールおよびズームを制限するのは難しそうです。今後のバージョンアップに期待ですね。

2009年1月19日月曜日

英語の発音を練習するアプリ「iはつおん」をAppBank様から頂戴いたしました

  • こちらのキャンペーンに応募→http://www.appbank.net/2009/01/13/iphone-application/6376.php
  • 見事当選!(AppBank様ありがとうございます)
  • 数ある英語の発音23種類を、お手本を聞きながら実際に自分で発音して練習できるアプリ
  • 「録音」機能がついていて、自分の発音を録音し、お手本と聞き比べられるのがすごくよい
  • 一音単位だけではなくて、単語単位での発音練習も可能
  • バージョン1.1現在、'U'の発音方法の説明がバグっていて、'Z'のものになっている
  • 単語単位だけではなくて、実際の文章単位での発音練習もできるようにして欲しい
毎日欠かさずチェックしている、iPhoneアプリレビューサイトのAppBank様。そのAppBank様の「英語発音練習iPhoneアプリ「iはつおん」無料プレゼントキャンペーンのお知らせ。」を見て、まさにこれぞチャンス!と思い速攻で申し込んだところ、なんと当選してしまいました。

当選してアプリとiTunes Store (US)のアカウントという飛び切りのお年玉をいただくことになりました。本当にありがとうございます。
受かったからには気合いを入れてレビューを書かねば!

まず最初に1点だけバグが見つかったので、その報告だけ。

なるほど、Aの発音はお腹から「ズッ」っと発声すればいいのかー・・・って違うわ!


【2009/01/22】
iはつおんの機能のレビューにつきましてはこちらを参考にしていただくとして、
ここでは、私の英語学習体験とiはつおんによる英語学習を照らし合わせたレビューをしてみます。

まずは私自身の英語学習歴から簡単にご説明。
  • 12歳で塾(公文式だったかな)に通い始めて、そこで英語を覚える。たいしたことはしていないけれども、「英語は日本語じゃないから日本語とは違うようにしゃべろう」と決心したことだけは覚えている。おかげで変な日本人発音だけはしないようになりました。
  • 13歳で中学に入る。中1の英語のセンセイがとてもよい女性の先生だったためめきめき覚える。ちなみに2年3年のころのセンセイは大変生徒から不評であった。
  • 14歳でウルティマオンラインを始める。当時のUOはAsukaとかYamatoとか日本人向けサーバーができはじめてはいたが、まだNPCは平気で英語をしゃべったりしていた。そのため必然的に英語を取得。"vender buy bank guards i ban thee"などといった日常ではあまり使わないであろう単語を中心に読み書きできるようになりました。
  • 15歳ぐらいでInfantryという神ゲーに出会う。こちら英語版しかなく、音声も画面メッセージもすべて英語。味方も敵も外人。必然的に英語で"n00b lamers you can't even stop my single assault =P"などとののしりあうことができるようになりました。
  • 16歳ぐらいでDiablo2という宇宙最強のRPGに出会う。こちら英語版しか(ry)・・・なのですが、Diablo2はInfantryと違ってRPGであったため、キャラが英語でストーリーをしゃべってくれます。おかげである程度英語が聴けるようになりました。
  • 17歳ぐらいで世界遺産級のRTSゲームことWarcraft3に出会う。こちら今でもプレイしていますが、これまたキャラが英語でしゃべるので(ry)。またこのゲーム、キャラの台詞がいちいちカッコイイ(例:これとか)ので、ついつい口ずさんでしまう。端から見るとただのキモいオタクでしたが、この実際に声に出したところが後々の英語力として残ったのではないかと思ってます。
  • その他World of Warcraftなどプレイして今に至る。
ごらんの通り、英語は完全にPCゲームから覚えています。
まともに発音記号の読み方がわかるようになったのは大学に入ってからだったり、英単語帳とか大学受験の年になって慌てて買ったというような具合ですので、
いわゆる「英語学習」というような型にはめる勉強法をほとんどしていないのです。

そんな私がiはつおん、早速試してみました。



私が見つけたiはつおんの最大のメリットは、「正しい発声方法」の「イラスト」と「解説」と「お手本発声」と「自分へのフィードバック(録音)」の4点セットが1画面で提供されていることでした。
普通の英語教材って、
  • CDだったら音はありますが発声方法がない
  • 本だと発声方法はあるけど音がない
  • そもそも自分の発音が正しいのか聴くことができない、テープレコーダーとか大げさで面倒すぎる
などなど、この4点を同時にまとめてカバーしてくれる教材なんて皆無だったのです。
ところがiはつおんなら、発声方法を見ながら、正しい音を同時に聞きつつ、さらに自分で同時に発声して練習もでき、再生ボタンを押せばすぐにフィードバックが返ってきます。
この4つの機能が1画面にまとまっている!というのは他にないアドバンテージですね。



逆に、問題点として以下の2点が浮かびました。
  • 文章単位での練習ができない。せいぜい単語単位までの音の流れしかつかめず、単語同士の接続の流れ(極端に言えばan appleがあんあっぷるじゃなくてあなぽーになる)が身につかないのではないか
  • やればやるほど目に見えて増える項目がないので達成感がない、楽しくない、したがって続かないのではないか
私の経験と照らし合わせると、
  • 聴く内容は文章、またはストーリー
  • 楽しいので毎日毎日朝から晩までやっていた
という要素があり、これが学習効果としてすごくよかったのではないのかと今になって思うからです。

また、例となる単語の数がそれほど多くない(1発音記号につき12個しかない)ので、やはり継続性に欠けると思います。
現在の私は、もっぱらiはつおんを発音方法のリファレンスにしながら、YouTubeの英語の動画の台詞をまねして発音してみたりという勉強方法にシフトしており、iはつおん単品での学習は行っていません。

現在のままでも発音方法のリファレンスとして使う分には100点満点クラスのアプリだと思いますが、せっかくならやはりよい学習コンテンツと組み合わせていただきたい!と感じてます。

そこでもしiはつおん2を出す予定がおありなら、是非ストーリー形式で文章を読み上げていくような形にして欲しいです。
英単語帳にDUOというシリーズがありますが、まさにこのシリーズをiはつおんのシステムでやれば、これまでの英語学習教材にはない学習体験が得られるかも!と考えているのですが、いかがでしょう?

RakuRaku Technologies さん、どうですか!?次はDUOでやっていただけませんか!?