2010年04月30日

Google App EngineでWebサービスを作ってみての ”実際のところ”

先日、Amazonの価格をチェックしてメールでお知らせするWebサービス「マケプレ・フラグ」を公開してみた。
このWebサービスは、sinatra on GAE/JRuby という構成で作ってあるのだけど、実は4、5日程度でひととおりの機能が動作するくらいになっていた。
別にGAEバンザイと言いたい訳ではなくて、本題はここから。
GAEって制限が多くあるので、これを回避するのが結構大変。さらに「マケプレ・フラグ」は価格情報を得るためにAmazonのProduct Advertising APIを使っていて、実はこちらにも制限がある。


GAEは30秒以内にレスポンスを返さなくてはいけない

利用者が商品検索して30秒も待ってくれる訳はないので、それは問題にならない(というより30秒も待たせるならGAEに関係なく設計を見直すでしょ)。
問題は、cronで実行するようなバッチ処理も同様の制限があるということ。
「マケプレ・フラグ」では、登録されている全ての商品の価格を定期的をチェックする必要がある。当然30秒で全てチェックできない。
また、希望の割引率を上回ればメールを利用者に送る。1通だけなら問題ないけど、複数の利用者に送ることになるので、これも30秒で終わらない。

対処法

処理を分割してTaskQueueを利用する。
「マケプレ・フラグ」では、大量に価格チェックする処理があるので、商品毎に分割してTaskQueueを使ってみた。
GAE/JRubyでTaskQueueを使うには、cronと同様にURLを叩くだけ。


require 'appengine-apis/labs/taskqueue'

queue = AppEngine::Labs::TaskQueue::Queue.new
task = AppEngine::Labs::TaskQueue::Task.new(:url => '/taskqueue_sample')
queue.add task


これだけで使える。


GAEは負荷がかかっているときは10秒以内に処理しなければいけない

今回Webサービスを作るまで、30秒制限は有名なので知っていたけど、こっちは知らなかった。

"Request was aborted after waiting too long・・・"というエラーが出ている場合は、この制限に引っかかっている。
価格をチェックするためにTaskQueueを使ってAPI呼び出しを大量にしていたら、このエラーが発生していた。TaskQueueは失敗すると、勝手にリトライしてくれるので、動作自体はしているけど、リソースがもったいない。

対処法

10秒以内に処理が終わるように分割するか、負荷をかけないか、の2択を考えて、後者で対応した。
価格チェックはバッチ処理なので利用者のレスポンスには影響ないので、TaskQueueを間隔を空けて実行することにした。
TaskQueueはcountdownという引数で、その秒数分待ってから実行するように指定できる。


queue = AppEngine::Labs::TaskQueue::Queue.new

products = Product.all()
cnt = 0
for product in products
task = AppEngine::Labs::TaskQueue::Task.new(:url => '/taskqueue_sample', :countdown => cnt)
queue.add task
cnt += 3
end


今回は、このように、3秒おきに実行するようにしたら、エラーが出なくなった。


GAEのスピンアップに時間がかかる

もしかすると、GAEをpythonで利用していたり、フレームワークを挟まず利用していれば大丈夫なのかもしれない。
GAEは利用者からのアクセスがないとすぐスピンダウンする。スピンダウン後の初回アクセスはスピンアップの処理に時間がかかる。
今回、sinatra on GAE/JRubyという、JavaVM、Ruby、sinatraという3段構成で作ってしまったため、スピンアップの時間がすごいことになっている。20秒を余裕で超える。
条件が悪いと、スピンアップするだけで、先の30秒制限に引っかかるんじゃないかと思うときもあった。(sinatraでこんな状態なのにRailsで実運用できるのだろうか。)
バッチ処理のときにスピンアップするならともかく、利用者がアクセスしたタイミングでスピンアップされると、ページを表示するまで、20から25秒近く待たせる訳で、自分が利用者ならその時点で帰る。


対処法

重量級のフレームワークを使わないというのも対処法だけど今回はすでに時遅し。
「マケプレ・フラグ」では、仕方無く1、2分おきにcronで何もしないダミーのURLにアクセスすることで、スピンダウンしないようにしている。ただ、この方法はできればやらないで欲しいということらしい。
でも、他に回避策がないので、今のところはこのままで。


GAEの無料リソースだとメールを1分に8通までの送信にしないといけない

GAEを無料リソース内で利用する場合、メール送信は1分に8通までという制限がある。AmazonのAPIは1秒に1回以上のアクセスを多少しても大丈夫だったりするけど、GAEは速攻で例外になるので注意。


対処法

Memcacheに最後に送信した時刻を保持。メールを送信するときに、その時刻を確認して、8秒程度の間隔より短かい場合に待つようにする。
TaskQueueは並列処理なのでMemcacheを使うときに排他制御しておかないといけない。

Memcacheでスピンロックを実装してTask Queue処理結果を集約してみるテスト

排他制御は上記サイトのようにmutexを実装したacquireLockと、releaseLockを利用。


acquireLock('mail_lock')
last_send = memcache.get('last_sendmail')
if not last_send.nil? then
sleep(8 - (Time.now - last_send))
end
memcache.set('last_sendmail', Time.now, 8)
releaseLock('mail_lock')


こんな感じでMemcacheの有効期間を8秒でセットして、Memcacheに時刻が保持されていた場合に、その時刻から8秒過ぎるまで待つようにした。


Product Advertising APIは、1秒に1回以上リクエストしてはいけない

APIを呼びだしたら、1秒待つように作ればいいという訳じゃない。Webサービス全体で1秒に1回以上リクエストしてはいけないというところがポイント。
「マケプレ・フラグ」では、利用者が商品検索する、商品ページを表示するときやcronで定期的に価格をチェックするときにAPIを呼び出す。
例えば違うユーザが同時に商品を検索すれば、1秒に1回の制限に引っかかる可能性がある。cronで商品の価格をチェックしている最中にユーザがページにアクセスすれば、かなりの確率で引っかかるだろう。


対処法

Memcacheに最後にAPIでアクセスした時刻を保持。1秒以内の連続呼び出しの場合に待つようにする。
これは上記のメール送信と同様の仕組みなので以下省略。



まとめ

このように、結局、回避する設計を考えたり、変更するのに、さらに4日程度かかった。
GAEは簡単にサービスを作れるのだけど、こういう制約を回避しつつ、ユーザが不便にならないように設計するのは、実は大変という、そういう話。

これらの制限の内、解消される予定のものがあるので、期待している。

Google App Engineのロードマップ。半年以内に30秒制限もスピンアップ待ちも撤廃?

posted by cuckoo at 19:36 | Comment(0) | TrackBack(0) | プログラミング

2010年04月19日

sinatra on GAE/JRubyでAmazonの価格チェッカーを作ってみた

以前、アカウントだけ取って放置したあったGoogle App Engineで、Amazonの価格を定期的にチェックする仕組みをサービス化してみた。

私はよくAmazonのマーケットプレイスで本を買っているけど、もう少し価格が下ったら買おうと思ったものは、ことごとく忘れてしまって、後で後悔したりする。
価格チェッカーの類いを調べてみても、会員登録が面倒だったり、せどり用なものが多くて、気軽に使えるものがなく、結局自分用に作ってみた。
もともと自分用だったけど、周囲の評判も良いので、デザインを再設計して公開してみることにした。

マケプレ・フラグ

検索ボックスで商品を検索して、商品ページを開き、メールアドレスを入力して希望の割引率を選ぶだけ。
一度利用すればメールアドレスは入力済みになっているので、商品ページを開いて割引率を選ぶだけの2ステップで登録できる。
ブックマークレットも用意してAmazonの商品詳細ページからも一発で利用できるようにした。

ちなみに、このサービスはsinatra on GAE/JRubyという構成で作ってみた。
GAEはしょっちゅうスピンダウンされてしまうため、スピンアップの時間がばかにならない。
Rubyで作りたいってだけで余分なフレームワークを挟んでしまったのを後悔したのは秘密。

あまりよくないことだが、cronで定期的にurlを叩いてスピンダウンしないようにしている。

さて、次は何を作ろうかな。
posted by cuckoo at 20:53 | Comment(0) | TrackBack(0) | プログラミング

2010年02月02日

iPhone OSにFlashが載らない訳

先日、iPadが発表されたが、あれだけユーザ体験にこだわるAppleが「ウェブを体験する最高の方法」とまで言って、Flashは載せないという。
Flashを使っているWebページはごまんとあるので、さすがに無理があると思うなあ。

ここまで頑なにFlashを拒否しつづけるのだから、明確な理由があるはずだが、そんなに難しい話ではないのかもしれない。

iPhoneは、App Storeを中心にしたエコシステムがあるからこそ、成功したと思っているのだが、ブラウザにFlashが載ってしまうと、Flash上で自由にゲームやアプリケーションを作り、配布することができる。

つまり、Flashが載るということは、脱獄(JailBreak)と同様に、Appleのコントール下から離れてしまうことになり、それは彼らの危惧していることだろう。

実は、それだけなんじゃないだろうか。
posted by cuckoo at 14:10 | Comment(0) | TrackBack(0) | 雑記

2007年05月06日

コンテキストを共有するTwitterをもっと便利に使う

最近、盛り上がりを見せているTwitter。耐え切れなくなって始めてみた

Twitterは、「今何している?」という質問に気が向いたときに答えていればいいというサービス。その独り言をみんなで共有するものなのだが、なんとなく「つながっている」感があるのがいい。

昔、ICQが流行ったときにチャットをしていたが、そのときは、パソコンの電源を入れたとたんに、いろんな人からメッセージが来て困ったりした。やりたいことがあるのに返事をしなくてはという状態に疲れてやめてしまった。
Twitterはあくまで独り言なので、必ず返事をしないといけないということはなく、好きなときに書いて、気になったらメッセージを送ればいい。

面白いのは、そういう何気ない独り言を普段から読んでいると、その人がどんな人なのかが何となく分かってくることだ。
最近、社内SNSがナレッジマネジメントに役立つとか言われているけど、コンテキスト共有という観点からすると、blogやSNSよりもTwitterの方が合っているのかも。

※ 実際にやってみた人を発見。

社内Twitterおもろいかも


ここからは、Twitter関連で自分が使っているツールを紹介。

モバトゥイッター


Twitterを携帯電話から見たり書き込んだりできる。
Twitterを始めてみると分かるが、気楽にいつでも読み書きできる携帯は、相性がいい。公式のモバイル版も公開されたが、使い勝手からすると、モバトゥイッターがよかった。
X01HT+NetFrontで使っているが、モバトゥイッター、公式版ともに、VFJPのアクセスポイントからでも問題なく使えた。

tweetbar


tweetbar.png
普段のブラウザはFirefoxなので、サイドバーにTwitterを表示できるtweetbarをインストール。

自動更新もされるし、見た目も好み。
ただ、問題がひとつある。表示・非表示を切り替えられるショートカットがControl+Shift+Tに割り当てられているのだが、これがFirefoxの前に閉じたタブを開くショートカットとぶつかっている。

MUDAI - ファイル置き場

ここにFirefox 2に対応しているkeyconfigがあるので、タブを開くショートカットを、Control+Shift+TからControl+Shift+Uに変更した。

twitterを快適にするGreasemonkeyスクリプト


Twitterで”@(user)”を入力補完してくれるGreasemonkeyスクリプト

twitter_gm1.png

"@(user)"はよく使うが、ユーザ名を入力するのは面倒だし、打ち間違えが気になる。このGreasemonkeyを使うと"@"を入力したときに、自分のFriendsのリストが表示されて、そこから選択できる。


[Greasemonkey]ver.0.1.0 Twitter Followers Manager - Followers から Friend 追加・削除とか

twitter_gm2.png

Twitterでは、Followersのページからは、全員をaddしかできないが、個人を選択してaddできるようになる。枠で囲った部分が追加された部分。


Twitter で add を快適にする Greasemonkey スクリプト

twitter_gm3.png

Friendのアイコンにカーソルをあわせるとプロフィールを表示してくれる。

Mii Editor


Twitterだからという訳ではないのだが、プロフィール画像は結構困る。
海外だとそのまま自分の写真を貼ることが多いみたいだが、私のように、それはちょっとと思う人には、似顔絵を使ってみるというのはどうだろうか。

miieditor.png

Mii Editorは、Wiiの似顔絵チャンネルのような似顔絵が簡単に作れるツールで、出来上がった似顔絵はjpg形式の画像で保存できる。

ちなみに、私が作った自分の似顔絵はこうなった。

mii.jpg

似ているかは不明。

JavaScript Badges


Twitter公式にblogに自分のステータスを貼り付けるパーツが公開されている。このblogのサイドバーにある「what am i doing?」というパーツがそれだ。
このJavaScriptは、最新のステータスをひとつだけ表示するもので、物足りなく感じたので、新しいものから3つ表示するように変更して貼り付けてある。
HTMLソースを覗くとすぐ分かるが、修正が適当すぎるので参考にしないように。

おまけ


このエントリを書いていたときに、Twitterがメンテナンス中になった。

twitter_upgrade.png

Twitterは猫がアップデートしてくれているそうで =)

posted by cuckoo at 22:05 | Comment(0) | TrackBack(1) | blog

2007年02月12日

X01HTのBluetoothで気分良く音楽を聴く

先日、「X01HTでお気に入りのイヤホンを使う」という記事の中でも触れたが、X01HTはカスタマイズさえすれば、Bluetoothで音楽を聴くことができる。
動画を見るときなどは、コマ落ちが激しくなるので、Bluetoothは使わないのだが、音楽を聴きながらブラウザを使うくらいなら、Bluetoothでも問題ない。

X01HTとBT620s

一度、完全ワイヤレスの快適さを味わってしまうと、使える場合ならBluetoothでと思ってしまう。
動いてもコードが目障りにならないし、この時期だと、ちょっとマフラーや上着を脱いだりしても、コードが絡んだりしないし。

ということで、その設定を以下で紹介する。

A2DPを有効化


xda-developersの次のスレッドから、

http://forum.xda-developers.com/showthread.php?p=931819#275999

a2dp_hack.cabをダウンロードしてインストールして再起動。(要登録)

音質改善のためにレジストリ変更


TRE」などのレジストリエディタを使って、以下のようにレジストリ値を変更する。

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Bluetooth\A2DP\Settings]
"MaxSupportedBitPool" 値削除
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Bluetooth\A2DP\Settings]
"BitPool"=dword:00000000(0)
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Bluetooth\A2DP\Settings]
"UseJointStereo"=dword:00000000(0)
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Bluetooth\AudioGateway]
"Capability"=dword:00000400(1024)
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Bluetooth\AudioGateway]
"SupportCLI"=dword:00000001(1)
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\BtA2dpSnd]
"Priority256"= dword:0000003C(60) 値追加


ヘッドフォンとペアリング


Bluetooth接続のデバイス設定でBluetoothデバイスを検索して、ペアリングする。

ペアリング画面


認識されたら、設定画面で「Wireless Stereo(ワイヤレス ステレオ)」にチェックをつける。

ワイヤレス ステレオ設定画面


これでヘッドフォンから音が出るようになっているはずだ。

MortPlayerのインストール


標準のMediaPlayerを使う場合には必須ではないが、私の場合には、こちらを使っていると音飛びがなかった。

MortPlayer beta 3.31RC6」をダウンロードしてインストール。バージョン3.2だと、ヘッドフォン側の操作に対応していないので注意。

MortPlayer画面

デフォルトのスキンは正直どうなのよ、という感じなので、スクリーンショットのスキンは「qVista QVGA」に変更してある。

ヘッドフォンの相性


どうもヘッドフォンによっては、音飛びが直らないものもあるらしい。
私の場合は、BT620sを使っていて、上記の設定をした後は、音飛びはまったくなく快適に音楽を聴いている。

B000GHJCFQ
JABRA Bluetoothステレオヘッドフォン BT620S


このBT620sは、Bluetoothヘッドフォンの中ではいい音がしている方だと思う。少々低音が強調されるような感じがあるが、全体的に素直な音だと感じる。
また、Bluetoothでワイヤレスになっても、「紐付き」なのは結構多いので、完全に「紐」がなくなるのも、なんとなくうれしい。

使い勝手もなかなかだ。電話が来ると、自動的にプレイヤーの再生が一時停止してくれる。電話を受けるのも、左耳のボタンを押せばいい。電話を切るときも、左耳のボタンを押す。電話が切れると自動的に音楽が再生される。

X01HTとBT620sとの組み合わせでは、再生、一時停止、曲送り、曲戻し、音量調節など、一通りの操作がMediaPlayer、MortPlayerともに、ヘッドフォン側でできた。

一応、不満な点も書いておこう。

まず、ヘッドフォンとの再接続の手順が少し面倒だ。
Bluetooth接続の設定画面から、デバイス名を長くタップして「ワイヤレス ステレオに設定」を選ぶ必要がある。

ワイヤレス ステレオ再設定

ワンボタンで簡単にとか、音楽を流すと自動的にといきたいところだが、今のところこれ以上簡単にできる方法は知らない。
知っている方がいれば、ぜひ教えてほしい。

あと、BT620sの問題だが、このヘッドフォン、耳に当てる部分のリングが結構派手に青く光る。
ボタンを長押しするとLEDをオフにできるのだが、この設定が保存されないため、電源を入れるたびに自分でオフにする必要がある。
青く光らせながら街中を歩く度胸があればいいのだろうが、残念ながら私には無理だった。


最後に豆知識。
「Wireless Stereo」のとこだけ英語になるのが嫌な人は、

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Bluetooth\Services\0000110B-0000-1000-8000-00805F9B34FB]
@="Wireless Stereo"


を「ワイヤレス ステレオ」などに書き換えるといい。
posted by cuckoo at 23:42 | Comment(15) | TrackBack(4) | モバイル

2007年01月23日

ミヤビックスの液晶保護シート、BrilliantとPlusはどう違う?

液晶保護シートでは、評価の高いミヤビックスの製品を2種類、試してみた。

B000JWE06Y
OverLay Brilliant for hTc Z/X01HT


光線透過率90%以上ということらしいのが、理屈はともかく実際に張っているか分からないほどの透明感。
X01HT以前にもzaurusなどで使って満足していたので、今回もこれを選択するつもりだったのだが、知らない間に別シリーズが出ていた。

B000JWBWGK
OverLay Plus for hTc Z/X01HT


こちらは、低反射タイプということで、エンボス加工されており、外で使うにはいいような感じで説明してある。


迷った末、両方を試してみることにした。

OverLay比較

残念ながら、X01HT用のOverLay Brilliantが地元では見つからなかったのだが、W-ZERO3[es]用のものがサイズが同じと聞いていたので、それを購入した。
確かにサイズはぴったりで問題ない。

やわな保護シートだと、スタイラスで書きまくっていると細かい傷がついてくるのだが、このシートはその辺も優秀である。
実際に、貼ってから2ヶ月は経っているが、まだ傷がついている様子はない。さすが評判どおり。

さて、OverLay Plusの方はというと、色のにじみが予想よりも激しく、個人的には耐えられなかった。
エンボス加工なのだから、曇って見えるのは分かっていたのだが、色がにじむのは予想外だった。
液晶に水滴が付くと、白を表示していても赤とかの色が混じって見えたりするが、そんな感じである。
点描画のイメージというと伝わるだろうか。

もちろん、見れないほど酷いわけではないが、太陽の真下で使うことが多いわけではないので、低反射を選ばなくてもいいかと、結局OverLay Brilliantを使うことにした。

こうしてみると、OverLay Plusの方にいいところがないように見えてしまうが、指タップで指紋が付きにくい、付いても目立たないという利点があった。
指タップを駆使する人にはいいかもしれない。


最後に豆知識。
液晶保護シートを貼るときに、埃が入ってしまうという話を聞くが、湿らせた風呂場だと埃が舞うことがないので、多少もたもたしても大丈夫だったりする。

posted by cuckoo at 12:59 | Comment(0) | TrackBack(0) | モバイル

2007年01月21日

X01HTでお気に入りのイヤホンを使う

普段の通勤で音楽を聴くときには、SHURE E2Cを使っているのだが、このイヤホンをX01HTでも使えるように、変換アダプターを購入した。

B000M1M096

ステレオ オーディオアダプター for hTc Z/X01HT MFSA-EnMU35


実はX01HTでは、Bluetoothのヘッドフォンを使っていたのだが、動画を見るときにはBluetoothの処理が負荷になって、動画のコマ落ちが激しくなる。
音質の方はレジストリをいじることで、聴けるレベルになったのだが、処理速度が足りないのが原因だと限界がある。
それなら、いっそのこと直接イヤホンを挿したほうがいいとは思っていた。

X01HTを購入した当初は、ミニUSBからステレオミニジャックに変換するアダプターは見かけなかったのだが、ようやく買えるようになったので、早速購入。

ステレオオーディオアダプター

いやあ、はじめから変換アダプターをつかっておけばよかった。
当然ながらコマ落ちはしないし、音質も綺麗なものだ。まあ、E2Cを使って聴くほどの物ではないと思うが。

ところで、X01HTでBluetoothのヘッドフォンを使うときの音質は、レジストリの設定で、面白いほど大きく改善される。
X01HT方式でいきましょう。」さんで紹介されている設定値にすると、音質の面では問題ないくらいになった。

以下に、再構築するときのために設定値をメモしておく。(hermerさん、ありがとうございます。)

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Bluetooth\A2DP\Settings]
"MaxSupportedBitPool" 値削除
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Bluetooth\A2DP\Settings]
"BitPool"=dword:00000000(0)
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Bluetooth\A2DP\Settings]
"UseJointStereo"=dword:00000000(0)
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Bluetooth\AudioGateway]
"Capability"=dword:00000400(1024)
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Bluetooth\AudioGateway]
"SupportCLI"=dword:00000001(1)

posted by cuckoo at 12:46 | Comment(2) | TrackBack(0) | モバイル

2007年01月20日

X01HTで絵文字を不自由なく使えるようにする方法

X01HTでは、標準で絵文字を利用することができない。
自分で使うことがなくても、受け取ったメールに絵文字が使われていると、意味が分からなくて困ることがある。

そのため、外字フォントを利用して絵文字を表示する方法が編み出されており、私もその方法で絵文字を表示できるようにしている。
見づらい絵文字もあるが、使っていて支障はない。問題は入力である。

絵文字を外字フォントとして使っているので、外字をIME辞書に登録しておいて、変換候補に出てくるようにして入力するのだが、これが非常に使いにくい。

そこで、一般の携帯電話のように、絵文字が並んでいる画面から選べるように工夫してみた。


まずは、絵文字の表示からだ。

「Pocketの手」のインストール


設定に使う「Pocketの手」をインストールする。ダウンロードしたPocketHand-182b.zipに含まれるファイルを、\Program Filesの下にフォルダを作ってコピーする。(別に好きなところでかまわない)

外字フォントのインストール


ボビーのデジモノ日記」さんのとこで、絵文字の外字フォントを公開してくださっているので、ダウンロード。sbemoji.zipに含まれる「EUDC.TTE」を\Windowsフォルダにコピーする。

先ほどコピーしたPocketHand.exeを実行して、メニュー - フォント - フォントから、「外字ファイルを指定する」をチェックする。
参照ボタンを押して、先ほどコピーした外字ファイル(\Windows\EUDC.TTE)を指定する。

フォント設定画面

設定を保存して終了してソフトリセット(電源長押しで終了、電源オンでもいい)すると、絵文字の表示ができるようになる。


次に、絵文字の入力。

「MCHAR」のインストール


MCHAR」をインストールする。ダウンロードしたMCHAR130-1.lzhに含まれるファイルを、\Program Filesの下にフォルダを作ってコピーする。

絵文字用の設定ファイルを上書き


絵文字用の設定ファイルを作ったので、mchar.chrファイルをダウンロード(右クリックから「対象をファイルに保存」)して、インストールしたフォルダに上書きコピーする。

MCHARインストール

これでMCHAR.exeを実行すると絵文字一覧が表示されるので、そこから絵文字を選択すれば入力できるようになる。

MCHARで絵文字

実際に使うときには、MCHARの起動をハードウェアボタンに割り当てておくと便利だ。
PQzIIなどのボタン割り当てができるアプリケーションを使うと、より柔軟に割り当てができるのでお勧めする。

X01HTで絵文字を使えるように試行錯誤された先人の方々や、便利なソフトウェアを公開されている方々に感謝である。
posted by cuckoo at 18:11 | Comment(11) | TrackBack(1) | モバイル

2006年12月22日

マトリクスで整理しただけで満足してはいけない

マトリクスをつかって、物事を整理することは良くやると思うが、それを発展させるときには、マトリクスをかけ合わせると発想を得られやすくなる。

IDEA HACKS!」を読んでいたら、そんな話と共にSWOT分析での例が載っていた。私もマトリクスを使うときにはよくやるHackなのでご紹介。

SWOT分析は、「強み」、「弱み」、「機会」、「脅威」という切り口で、状況を整理していく手法なのだが、ここから得られるのは、整理されてはいるが事実の列挙だけである。

それだけでは意味が無いので、整理された情報を見ながら考えていくことになるのだが、思いついたことを書く場所を用意することで、漠然とではなく、考える手順に組み込んでしまおうという話である。

どうするのかというと、2×2のマトリクスなら、3×3に広げてそれぞれの切り口をかけ合わせる場所を用意するだけだ。

SWOTのマトリクス

普通にSWOTで整理した後、


掛け算のSWOT

こう広げると、かけ合わせる場所ができる。


そうすると、そこに列挙されている情報がクロスされて、発想を刺激してくれる。以前このブログでも、アイデアは組み合わせから生まれるという話に触れたことがあるが、ここでもその法則が生きている。

また、3×3のマトリクスの真ん中に、考えたいことを書き、その周辺の空いているマスに発想されることを埋めていくマンダラートという思考ツールがあるが、これは空いているマスが発想を刺激してくれる仕組みだそうだ。

マトリクスを広げるやり方は、この仕組みに通じる部分もあるので、マンダラートと同じ効果も期待できるかもしれない。

ここでは、例としてSWOT分析をあげているが、マトリクスを使って情報をまとめたとき全般に使えるHackである。

物事の整理によく使われるマトリクスだが、使い方しだいで発想するツールとしても役立てることができる。


4492042598

IDEA HACKS! 今日スグ役立つ仕事のコツと習慣
原尻 淳一 小山 龍介

SWOT分析の話以外にも色々役立つHackが盛りだくさん。


4270000759

メディチ・インパクト
フランス・ヨハンソン 幾島 幸子

イノベーションはアイデアの交差点から生まれるという話。


4484032058

考具―考えるための道具、持っていますか?
加藤 昌治

役に立つ思考ツールを色々紹介している。マンダラートの紹介もある。
posted by cuckoo at 09:54 | Comment(0) | TrackBack(1) | lifehacks

2006年11月06日

「YouTubeにダウンロードリンクを追加するGreasemonkeyが動かないので作ってみた」が動かない

以前、「YouTubeにダウンロードリンクを追加するGreasemonkeyが動かないので作ってみた」というエントリで公開したGreasemonkeyが動かなくなっていた。

なんだか、動いているのか動いていないのか、よく分からないタイトルになってしまった =p

という訳で、修正版。

https://yadorigi.up.seesaa.net/script/saveyoutubeasfile.user.js

戯壇徒然日記さんでも修正していただいたようなので、お好きなほうをご利用ください。
posted by cuckoo at 12:06 | Comment(0) | TrackBack(0) | 雑記
タグクラウド

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。