2009-07-11

「赤毛のアン」を多面的に楽しむ

最近、ちょっとしたきっかけで「赤毛のアン」を読み始めました。ついでだから英語の原文も照らし合わせて読もうかなーといろいろと調べてみたら、予想以上にネット上の「赤毛のアン」リソースが充実してたのでまとめてみます。

  • 日本語訳
    • 普通に書店で買うなり図書館で借りるなりしましょう。

  • 原文(英語)
    • iPhoneアプリでStanzaという電子ブックリーダがあるんですが、これの[オンラインカタログ]の[プロジェクト・グーテンベルグ]から”Anne of Green Gables”(原題)で検索すると無料でダウンロードできます。Stanza自体も無料です。

  • 朗読
    • こちらのPodcastで無料で朗読が聞けます。ちゃんと台詞のところも役作りしてくれてて面白いw これを聞きながら上の原文を読むとリスニングの練習にちょうどいいと思います。

  • 英語学習



ということで、結構いろいろなリソースがありますね。それで初めて読み始めた「赤毛のアン」ですが、アンがこれほどぶっ飛んだ性格のキャラとは知りませんでした。冒頭あたりしかまだ読んでないのですが、完全に掴まれました。


ちなみに「赤毛のアン」を読もうと思ったきっかけは書店で以下の本を見つけたから。


茂木さんは実はかなりヘビーでハードコアな「赤毛のアン」ファンらしく、上の本でもいつも通り熱く語っております。それに感化された(?)みたいで、とりあえず上の本を読む前に原本をあたってみようかなーということで読み始めたのでした。

どれぐらい茂木さんが熱いかは、最近できたらしいもぎけんPodcastの「『赤毛のアン』の二つの「奇蹟」」という回を聞いてみてください。ただし激しくネタばれ注意w



最後に関係ないですが、smart.fmのフレンド募集中です。こちらがプロフィール、どうかお気軽にフレンドリクエストしてくださいm(__)m

2009-07-09

ネコ派に転向しかけた



うちでは子供の頃から代々イヌを飼っていたので、俺はバリバリのイヌ派なのですが、上の子猫の動画を見てかなり揺さぶられました。目も開かない生まれたばかりのころから部屋の中を元気に飛び回るまで一日ごとにアップされてます。ちっくしょう! かわいいなぁもう!


ところで最近、「都会住人はネコ派、田舎住人はイヌ派」という仮説を思いつきました。実家は周り中田んぼな田舎なのですが、ここで愛犬ハンゾー氏を散歩させていると、結構な割合でイヌを飼っている家があります。そして実家周辺の野良猫は都会の猫と違って野性味あふれるワイルドキャットでありまして、ハンゾー氏など良く餌を取られています。だから子供の頃はあまり猫には良い感情を持ってませんでした。

イヌを飼うには散歩をさせる必要があるので、ある程度土地に余裕があるところでないと難しい。そしてそういうところの野良猫は生きていく上で必要な程度に凶暴である。都会というか人口密集地だとイヌは散歩させにくく飼いにくい。野良猫はゴミ捨て場などで餌を容易にとれるので性格が温和になる。

つまり
  • 田舎→イヌに親近感、ネコは凶暴
  • 都会→イヌに触れる機会が少ない、ネコは飼いやすく野良猫も人懐っこい。
ということで、田舎住人はイヌ派になりやすく、都会住人はネコ派になりやすいのではと考えたのであります。


それで、最初の動画にも戻りますが、ネット上ではどういうわけかイヌ派よりネコ派のほうが圧倒的に多い(ように思える)。これはネットが都会のほうが普及していることによるのではないかと思うのであります。


とまぁ、ごちゃごちゃと書いてしまいましたが、イヌでもネコでも赤ちゃんはかわいい。だからみんなもっと動画をあげれば良いじゃない。それでみんな癒されれば良いじゃない! では俺は上の動画をもう一回見てから寝ます。おやすみ。

2009-07-08

用心深くFirefoxを3.5にアップデート

Firefox3.5がリリースされて一週間ほど様子を見て、ブロゴスフィアからそんなに不評が出てないようなのでアップデートしてみました。ソフトウェアのアップデートには何故か不安感が伴います。今までちゃんと動いていたものを下手にアップデートして動かなくなったらどうしよう、しかもブラウザって一番使うソフトだし、ということで今まで様子見してたチキン野郎はオレでーす。

ブラウザ本体はともかく、アドオンで使えなくなるのは無いか調べてみたところ、SBMカウンタとTab Mix Plusがまだ3.5に対応してないことが判明。SBMカウンタは現在ページについたはてブやdel.icio.usのコメントを表示してくれる便利アドオン、うわー長文だー読みたくねーってときにコメントを読んで何となく読んだ気にさせてくれるものです(違?。無いと長文ページが読めなくて困る。Tab Mix PlusはFirefoxのタブ機能をこれでもか!と強化したアドオンで、これも無いと健やかにネットサーフィン(古&懐)できません。

これ二つ使えないと3.5は無理と思ってたんですが、両方とも対応させる方法が分かったのでアップデートしちゃいました。


ということでビビりつつFirefox3.5を使ってます。もうスピードとか機能とかだいたい良いから落ちないでくれればそれで良いよ。

2009-06-05

『イノベーションの神話』、世界初のモノを作るということ

『イノベーションの神話』という本を読みました。普通の人が”イノベーション”というものに持っている常識を実例を挙げて覆してくれる本です。「何か今までにない新しいものを作り出したい」と思っている人にはすごく元気づけられる内容だと思います。


いろんなイノベーションの実例を挙げているのですが、その中でもPalm Pilotの開発中のジェフ・ホーキンスの話しはちょっと感動してしまいました。

ホーキンスさんはPalm PilotというPDAを作るにあたって、最初にその製品の制約条件を考えたそうです。本の中では「問題解決よりも問題発見が大事」ということの例として書かれていました。良い制約条件を設定することは良いアイデアを出すことよりも難しい。

Palm Pilotの制約条件
・シャツのポケットの収まること
・PCとシームレスに連携できること
・すぐ、簡単に使えること
・299ドルを超えないこと
(p.153)

その後、ホーキンスさんは素早く行動を起こします。

 ホーキンスはPilotの開発において、こういった木製モデルを実際に作成しました。タフな目標を設定したことで難関の枠組みづくりを終えると早々に、彼はガレージの作業場で鋸と彫刻刀を使ってモデルを作成したのです。これは簡単なことではありませんでしたが、先に制約があったおかげで、ある種のデザインはすぐに決定できました。(中略)こうして、ガレージでの作業を初めてから数時間後、彼は翌日職場に持っていくPilotのプロトタイプを作り上げたのです。
 彼はこれを常に持ち歩き、打ち合わせではいつも、完成した製品であるかのように使用してみせました。また彼は、この機器をポケットから注意深く取り出し、「書く」という仕草をした後、またポケットにしまったりして、チームのエンジニアたちや営業たちを困惑させました。

ここの部分が一番感動しました! そうだよなぁ、世界初のモノを作るには未熟でもいいからとにかく形にして、どんどん実際に使ってみるしかないんだよ! 本当に新しいモノは自分以外には必要性が分からないものなんだよなぁ。
ホーキンスさん自身はこのことをこういう風に言っています。

新製品や新サービスを心に思い描くことは、イノベーションにおいて欠くことのできない作業である。デザインや作成といった作業を始める前に、そういったものを使い、いろいろと体験してみなければならないのだ


ここ最近、iPhoneアプリ開発のためいろいろ勉強したりプロトタイプを作ったりしてるんですが、せっかくの新しいデバイスなんだから新しくて面白いアプリを作りたいと思っています。アイデアは大事だけど、それを試作して泥臭く試行錯誤するのはもっと大切なこと。これは私が下手なだけかもしれませんが、本当に思いついたばかりのアイデアって自分にも他人にもうまく説明できません。だから私のような人間はホーキンス的プロトタイプ指向な開発をしなきゃいけないと思いました。

もっと大げさに言うと何かモノ(ソフトウェア、小説、映像など)を作り出すということは、自分の心の中にある”狂気”をさらけ出すことになるんではないかなーと。生まれたばかりのアイデアはあまりにも自分の狂気が染みこみすぎているんで上手く人に伝わらない。アイデアを試作品などに落とす過程で洗練されて角が取れて、他人にも共有可能なくらい狂気が薄まる。そのアイデアから狂気を漉し取る作業は、思いついた本人以外にはできない。
なんだかすっごくやる気が出てきました! さあ、さっさとiPhone開発の基本を覚えちまってたくさんプロトタイプを作るぞ!

この本は、「新しいモノを作り出したい」と思っている人にはおすすめです。




2009-05-28

Amazonアフィリエイトもやることにしたよ

「ああ・・・・・・・・それにしても金が欲しいっ・・・・・・・・・・!!」

大事ですね、お金・・・。無いと困りますよね。

Googleアドセンスを導入した」というエントリも先日書きましたが、今度はAmazonアフィリエイトです。あからさまに貧乏なのがバレバレです。
今までは「ブログのデザインがうるさくなりそう」「何となく金儲けってカッコ悪い」という理由でこのブログでは避けていたアドセンスとアフィリエイトですが、もうそんなこと言ってられないので取り入れてみました。

実家が農家なので飢え死にすることは(たぶん)無いのですが、ここしばらく貯金切り崩し生活が続いていてほの暗い不安感が湧いてきたところ。まだ大丈夫、だけど半年後はどうなの?って感じでな~んか対策をしなきゃなーと思い始めてきました。

ぶっちゃけ分厚い技術本を買う金が無くて、本屋で超集中モードで立ち読みして、立ち眩みで倒れそうになるのはもう嫌なのです! フラフラになりながら「意外と俺ってまだ記憶力が衰えてないのね」とか変な充実感を得るのは嫌です! っていうか本屋さんに悪くて何だか店に入りづらくなってきたよ!

そんで、「Webでお金を稼ぐにはどんな方法があるんだろう?」といろいろ調べ始めて、まずはアドセンスとアフィリエイトをやってみることにしたのでした。


うーむ、2004年からブログをやってましたがお金と絡めてブログをどうこうしようと考えたことは一度もなかったので、自分的に結構な転換点ですね。もともとはカンペキに自分の技術用メモだったんだけどなー。


最後に最近勉強しているObjective-Cの技術書を練習のためアフィリエイトで貼ってみます。とっても立ち読み・・・(ゲフンゲフン)、とっても読みやすい内容のまとまった本ですよ。別に罪悪感で貼ってるわけじゃないんだからねっ!


2009-05-25

Objective-Cのオブジェクト指向機能の練習

MacBookを買ってiPhoneアプリを作ることにした私ですが、どうやらiPhoneアプリ(というかマックアプリ)はObjective-Cという言語を使って作る必要があるようで、まずはその言語を覚えることにしました。

Objective-CはANSI Cに独自のオブジェクト指向機能を追加した言語。なので基本的にC言語なのでHello worldとかエラトステネスの篩とかお約束は省略します。オブジェクト指向機能をどんな感じで使えば良いかだけ練習してみました。本当のObjC初心者なので超初歩的内容ですので注意!

まずObamaクラスを書いてみました。

【クラスを定義してみる】
/**
* Objective-Cのオブジェクト指向機能のテスト
* 2009-05-23
*
*/

#include <stdio.h>
#include <Foundation/NSObject.h>

@interface Obama : NSObject
{
BOOL isElection;
}
-(id)init;
-(void)election: (BOOL)b;
-(void)whoAreYou;
-(void)speach;
@end

@implementation Obama
-(id)init { isElection = FALSE; }
-(void)election: (BOOL)b { isElection = b; }
-(void)whoAreYou
{
if (isElection == TRUE)
printf("I'm President Obama!\n");
else
printf("I'm Obama!\n");
}
-(void)speach { printf("Yes, we can!\n"); }
@end

int main()
{
id objObama = [[Obama alloc] init];
printf("class Obama\n");
[objObama speach];
[objObama whoAreYou];
[objObama election: TRUE];
[objObama whoAreYou];

return 0;
}


まずクラスを定義するにはFoundationというフレームワークのNSObjectというのを継承しなければいけないようです。FoundationはWinプログラムでいうMFCみたいなものかな? 
で、@interface ... @endまでがクラス定義。最初の{}にクラス変数を書いて、あとはメンバ関数の宣言。メンバ関数の実装は@implementation ... @endで記述する。「なんでメンバ関数の先頭にハイフン付けるんだろう?」とか「引数を:のあとに書くのは違和感あるなあ」とかいろいろ思うところはありますが、とりあえずこれでクラスは作れた。

ちなみにここまでの作業はTerminal.appを立ち上げてemacsで書きました。Windowsと違ってCygwinを入れなくても素でUNIXなのは楽ですねー。上のプログラム、本当は@interface部をヘッダーファイル(.h)、@implementationをプログラムファイル(.m)に書いてmain.mにインクルードするのが王道でジャスティスみたいなのですが、ここではめんどいので1ファイルに全部書いてます(ファイル名はclass_test.mとしときます)

クラス定義まではC++をやったことある人なら、何となく分かるでしょう。でもその後のmain関数の中のインスタンス作成、メッセージ送信はちょっと見慣れない書式です。要するに関数呼び出しのことをメッセージ送信と呼んでいるみたいです。オブジェクト指向のモデルがSmalltalk的で、むしろC++よりこっちのほうが王道かもしれないっすね。
まずはallocでインスタンス作成、初期化したいときはinit関数を作るとだけ覚えておけば大丈夫そう。

あとはコンパイル。GCCを使います。
gcc class_test.m -framework Foundation

これでカレントディレクトリにa.outという実行ファイルができます。ちなみに実行するとこうなります。

class Obama
Yes, we can!
I'm Obama!
I'm President Obama!




【Obamaクラスを継承して多態性を試す】

さっきのObamaクラスを継承してNocchiクラスを作ってみます(ネタが古いとか突っ込みはガン無視の方向で)。

/**
* Objective-Cのオブジェクト指向機能のテスト
* 2009-05-23
*
*/


#include <stdio.h>
#include <Foundation/NSObject.h>

@interface Obama : NSObject
{
BOOL isElection;
}
-(id)init;
-(void)election: (BOOL)b;
-(void)whoAreYou;
-(void)speach;
@end

@implementation Obama
-(id)init { isElection = FALSE; }
-(void)election: (BOOL)b { isElection = b; }
-(void)whoAreYou
{
if (isElection == TRUE)
printf("I'm President Obama!\n");
else
printf("I'm Obama!\n");
}
-(void)speach { printf("Yes, we can!\n"); }
@end

@interface Nocchi : Obama {}
-(void)speach;
-(void)sayJoke;
@end

@implementation Nocchi
-(void)speach { printf("イエス、ウィ キャン!\n"); }
-(void)sayJoke { printf("のっちで〜す!\n"); }
@end

int main()
{
id objObama = [[Obama alloc] init];
printf("class Obama\n");
[objObama speach];
[objObama whoAreYou];
[objObama election: TRUE];
[objObama whoAreYou];

id objNocchi = [[Nocchi alloc] init];
printf("class Nocchi\n");
[objNocchi speach];
[objNocchi sayJoke];

return 0;
}


これの実行結果は以下。

class Obama
Yes, we can!
I'm Obama!
I'm President Obama!
class Nocchi
イエス、ウィ キャン!
のっちで〜す!


うむ、speach関数のところがちゃんと上書きされておる。これでとりあえずクラスの定義、インスタンスの生成、クラスの継承まで一通りできました。超初歩的な内容ですが、自分の備忘録として記事にしてみました。


あとはまだまだ疑問点があります。また調べて記事にしてみよう。
  • allocでインスタンス生成をしたあとにメモリ解放はしなくていいのか?(malloc/free的なノリで)
  • メッセージは変数化できないのか? C言語の関数ポインタみたいに使えるとメタなプログラミングができて面白そう。

しかし新しい言語を勉強するのは久しぶりですが、やっぱり楽しいですね〜。ざっと解説本を眺めてみましたけど、C++よりは簡単そうでほっとしてます。さあ、いろいろ試すぞ!

2009-05-17

AdSenseを導入してみた

Bloggerを使ってると「AdSenseを導入してみませんか?」というメッセージがことあるごとに出てきます。親会社がGoogleだからかなー?

ちょっと設定をいじってみたら意外と簡単に導入できそうだったのでやってみました。これまではブログのデザインがうるさくなりそうだったんで嫌だったんですが、実際やってみるとレイアウトも選べるみたいだし。

AdSenseで一番気になるのは、「マウス操作の間違い以外でクリックする人がいるのか?」ってこと。自分自身が間違って押しちゃったことしかないので役に立つって実感が無いんですよね~。そういう実験的な意味も込めてしばらく貼っておきます。しばらく反応が無かったら止めちゃおうかな。