技術の勉強よりまず、英語の勉強をするべきなんじゃないか、俺は。

確かに、オライリー本とか、日本語に翻訳されているドキュメントはいっぱいある。オープンソースのコミュニティを日本語に翻訳して紹介してくる人もいっぱいある。だから、私が知りたいことが日本語で勉強できる、といえばできる。

でもね、ハマったときにエラーコードをグーグルにコピペして検索したときにヒットするのは、たいてい英語のサイト。それは何かのリファレンスかもしれないし、メーリングリストの過去ログかもしれないけど、日本語のページがヒットするのはまれ。ハマってる時間が短いほど技術力が高いって基準なら、技術について学ぶより英語の勉強をして、そのサイトを読めるようになることを目指す方が効率がいい。

ってことで iKnow! をやってる。 TOEFL Reading Advanced のコースを、今日終わらせた。 18 日間で合計 8 時間 46 分やって、 200 単語を覚えた。平均すると 1 日 30 分ぐらいで 1 日約 11 単語のペースだ。最初は難しすぎて無理だと思ったけれど、やっているとだんだん覚えてきて、どんどんペースが上がった。この調子でがんばりたい。

ところで、一緒に iKnow! やりませんか?あ、いや、別に一緒じゃなくてもいいですけど、英語の勉強するのに、 iKnow! って結構使えますよ。参考までに。

2008.01.31 Thu l 英語 l COM(0) TB(0) l top ▲
何かを得るために、何かを賭ける。
勝てば何かを得て、負ければ何かを失う。
それがギャンブルだ。

ギャンブルというのは失うリスクが必ずあるが、そのリスクを減らすことはできる。
両方に賭ければいい。そうすれば得られない分、失わない。

ところがギャンブルにはだいたい参加料が必要で、参加料を払って両方にかけている人は
長い目で見れば必ず損をする。だが、損をするのが怖い人ほど、両方に賭けたがる。
損をするのが怖いなら降りればいいのに、中途半端な欲がそれをさせない。


ところで、失うのが一番怖いのは時間だ。お金よりも時間が貴重だ。
失うのが怖い人にとって、時間を賭けるのが一番怖い。

たとえばお金を得るために、小説を書くという行為に時間を使うというのは、
「小説を書けばお金が得られるという信念」に対して「時間」を賭けているといえる。
このギャンブルに勝てばお金が得られるが、そうでなければただ時間を失う。
このギャンブルに勝てる見込みがどれだけあるかは、人による。
その勝率の分析は重要だ。私だと、たぶん勝てない。

だが、勝率の分析よりもっと重要なことがある。それは賭けることだ。
賭けないと勝てない。あれもこれも、といろんな信念に賭けている人はもっと勝てない。
人生というギャンブルでは、降りることはできない。

高度経済成長の時代とか戦争やってるような時代の人生だったら、
「何でもいいから愚直に一生懸命やれば報われる」という信念に賭ければ、たぶん勝てた。
学生の間は「とにかく勉強する」という信念に賭ければ勝てた。

これから俺はどんな信念に賭ければ勝てるんだろう。分からない。
でも、賭けない人は負ける。降りることはできない。
2008.01.30 Wed l 未分類 l COM(0) TB(0) l top ▲

大したことじゃないと思われるかもしれないけれど、私にとってこれは大きな問題だ。でも、汚いシモの話だから、読みたくない人は読まないでほしい。

たとえば大学のトイレなどに入って、そのとき個室の便座が上がっていると、それを見ただけで具合が悪くなってしまう。便座が上がっていると、「このトイレを前に使った人は、二日酔いが苦しくて吐いたのかなぁ。あぁ、二日酔いってしんどいもんなぁ。わかるわかる。こんな感じだろ?」とつい直感的に二日酔いのむかつきを思い出してしまうからだ。

でもそのままだと気持ちよく用が足せないから、なんとか「いや、このトイレはさっき掃除されたところなんだ。ありがとう。おかげでキレイなトイレで用が足せます。」と思いなおすことにしている。でも、いったん思い出してしまった二日酔いのむかつきは消えない。おなかがスッキリしても、胃がむかつき出す。

だから何があっても便座は下げておいてほしい。吐いた後でも、掃除をした後でも。もしかしたら同じように思っている人がいるかも、と思って、思い切って普段思っていることを書いてみた。汚い話ですみません。

2008.01.24 Thu l 未分類 l COM(0) TB(0) l top ▲

Japan and its GDP というエントリーを読む。 2050 年といえば、私はもう 70 代。年金は大丈夫かなぁ。

まぁ年金はともかく、日本の将来の経済がこんな風になるって予想されている。そんな日本にいる私は、これから具体的にどうやってサバイバルしていけばいいのだろう。

It's really no wonder we're having a hard time getting attention in Japan. With an aging population and a less-than-competitive economy, there are ways to manage, but you don't get there by denying the facts and continuing to beat you chest IMHO.

って言われてもなぁ。

2008.01.23 Wed l ちょっと前に読んだもの l COM(0) TB(0) l top ▲

LLSpirits の Language Update で 柴田さん が、「Python は 2.4 → 2.5 → 2.6 → 3.0 → 3.1 って追いかけていけばいいよ」って話されていたのを思い出した。(参考)

で、今日、Python 2.6 のドキュメント(英語) が出てるのに気づいた。

What’s New in Python 2.6 をざっと眺めてみたら、

  • 2.6 でも今までの 2.5 のコードはちゃんと動く。
  • __complex__() が使える
  • except TypeError as exc. ←なにこれ。
  • reduce() の代わりに functools.reduce() が使える
  • -3 オプションをつけて実行すると、 3.0 に移行したら使えなくなるところを警告してくれる
  • ドキュメントが reStrucuturedText で書かれるようになった。
  • ‘with’ statement が使える
  • その他 'with' statement を使ったいろいろ

とか、他にもいっぱい書いてあるけれど、もう眠すぎるから寝る。見つけたタイミングが悪すぎた。後でちゃんと読もう。あ、あと、ここもあわせて読みたい。

2008.01.22 Tue l Python l COM(1) TB(0) l top ▲

手作りは何が良いのか - MORI LOG ACADEMY を読んで思ったこと。

 実は、手作りが有利な点はほとんどない。人件費がかかって高くなるし、ばらつきが大きくなり品質が安定しない。作る人間が交代すると同じものができなくなる。

まるでソフトウェアの話みたい。そういえば「IT 企業のビジネスを IT 化しよう!」って話をどこかで聞いて目から鱗だった気がするけど、どこで聞いたんだろう?思い出せない。

手作りの有利さとして、一つだけいえることは、作っているときにフィードバックがあることだ。作り手にそれを受け止める才能があれば、さらに良いものが作られる可能性が生まれる。したがって、手作りされた製品それ自体の価値というよりは、将来の製品への期待が持てる。

それとも、 IT ビジネスを製造業として見たとき、IT 業界はまだまだ IT 化する段階まで来ていないのだろうか。

2008.01.21 Mon l ちょっと前に読んだもの l COM(0) TB(0) l top ▲

NHK 職員によるインサイダー取引の事件について、私が思ったことが 2 つあったので、それをまとめる。

1つめ。インサイダー情報を知ることができる人が、それをもとに株取引をして利益を上げるという行為は、犯罪だが、起こりうることだ。というか現に起こっている。この事件について「だからマスコミは信用できない」とか「モラルハザードだ」とか言っても、何にもならない。私たちはにできるのは、まず「インサイダー取引をする人が株式市場にいる」ということを受け入れて、それについてどうしようか考えることだけだ。

何もしないで嘆くなんて無意味だ。「本当にけしからん」と思う人は、偉い政治家さんになんとか働きかけて厳罰にしてもらうとか(できるのかどうか知らないけど)すればいい。「NHKはモラルが崩壊している」と思うのなら、勝手に NHKに行ってコンプライアンスの研修サービスを売り込んでくればいい。

2つめ。「インサイダー取引をする人が株式市場にいる」株式市場でどうすれば一般投資家は利益があげられるのかについて。インサイダー取引は確実に儲かるが、それは情報が公開されて株価が上がる前に、安く株を大量に仕込んでおけた場合だけだ。その株は市場を通じてしか仕込めない。(いや、他に方法があるのかもしれないけれど、なんとか割り当て増資とか)なら、インサイダーがいつ仕込んでいるかを知ることができれば、インサイダー情報をしらなくても、インサイダーに乗っかって合法的に儲けられるのではないだろうか。

この 3 人のインサイダー取引が、なぜ露見したのだろうか。もし「株の値動きと出来高が不自然だったから」という理由なら、午後 3 時までにその不自然さに気づくことができていれば、彼らと同じように儲けられたのではないか、と思う。そうすれば、このぐらいの小悪党に憤る必要もなくなる。

そんなことを思っていたときに、ちょうど ゆきのぶさんの 「1000人スピーカプロジェクト 第1回カンファレンス」のプレゼン資料 を見た。インスパイアされて、市場のデータのログ集めをやりたくなった。 1000speakers 行きたかったな〜。

<NHK株不正取引>カッパ株売買、3人で3分の1占める 1月20日2時32分配信 毎日新聞  インサイダー取引を行ったとされるNHKの記者ら3人が、カッパ・クリエイト社を巡るスクープ記事が閲覧可能になった昨年3月8日午後2時38分から大引けの午後3時までに、市場で売買された同社株1万5250株の3分の1を占める株式を買い付けていたことが毎日新聞の入手した文書で分かった。株価は22分間で13円も上昇しており、証券取引等監視委員会は3人の集中購入が証券市場に重大な影響を与えたとみている模様だ。  文書は昨年3月8日の東京証券取引所におけるカッパ社株の全約定を記載したもの。売買者名は分からないが約定の成立した時間、株価、売買株数が記載されている。  文書によると、午後2時38分の株価は1707円。その後いったん1703円に下げたほかは、ほぼ一本調子で上昇。大引けの午後3時、この日最高値の1720円をつけた。  この22分間でカッパ社株は75回売買され、総売買株数は1万5250株。このうち、勤務先から自宅に戻るなどして3人が買い付けた株は5000株を超えていたことが分かっており、全体の約3分の1を占めた。  午後2時37分までの22分間も株価は上昇したが、上げ幅は3円。総取引回数も37回、総売買株数も5850株にとどまっており、集中購入の与えた影響が浮き彫りになった。  株価は翌日1774円まで上昇。3人は保有株を売り抜け、10万〜40万円の利益を得たことが分かっている。【堀文彦】  ◇ニュース放送前の株価と売買株数◇    時 間         株価の推移    売買数                 (円)     (株) 13時52分〜14時14分 1706→1701 14650 14時15分〜14時37分 1704→1707 5850 14時38分〜15時00分 1707→1720 15250 ※昨年3月8日。比較のため22分ごとに集計
2008.01.21 Mon l ちょっと前に読んだもの l COM(0) TB(0) l top ▲

昨日と今日で私が調べた英単語のリストを作ってみた。保存したログファイルを cat logfile | sort | uniq -c | sort -r した結果は、このようになった。

      3	bot
      2	全体
      2	umm
      2	truism
      2	supervision
      2	skepticism
      2	obedient
      2	flourish
      2	eminent
      2	catalyst
      2	banal
      2	arrogant
      1	魅力的な
      1	超える
      1	相当する
      1	日本語
      1	大腸菌
      1	多数決
      1	外
      1	収束
      1	以外
      1	人類学
      1	久し振り
      1	パスタ
      1	ほうじ茶
      1	ひさしぶり
      1	yes
      1	worship
      1	wipe
      1	wept
      1	weep
      1	vulnerable
      1	vowe
      1	vow
      1	veteran
      1	tidy
      1	this
      1	temper
      1	tectonics
      1	tactonics
      1	swept
      1	superversion
      1	suitor
      1	suck
      1	stem from
      1	stem
      1	squadron
      1	speculative
      1	something
      1	solicit
      1	smuggling
      1	smith
      1	slimy
      1	shepherd
      1	senator
      1	segmentation
      1	roaring
      1	retrieve
      1	resurrection
      1	region
      1	regime
      1	rectangular
      1	rectanglar
      1	rancher
      1	pupal
      1	pupa
      1	progress
      1	profile
      1	prima donna
      1	pride
      1	premute
      1	pottery
      1	portfolio
      1	populous
      1	plausibility
      1	perrmute
      1	permute
      1	perish
      1	perhaps
      1	pedetory
      1	pedestrial
      1	passionate
      1	passable
      1	particle
      1	overarching
      1	orchid
      1	open fashion
      1	obsess
      1	oblige
      1	nothing
      1	nobility
      1	no
      1	nitrogen
      1	mould
      1	minuscule
      1	midst
      1	mids
      1	metamorphosis
      1	lurk
      1	living
      1	lewd
      1	invoice
      1	intermarriage
      1	inhale
      1	impose
      1	immense
      1	immature
      1	huge
      1	graze
      1	gone
      1	fun
      1	fossilized
      1	fossilize
      1	fend
      1	fascinating
      1	fascinate
      1	facinating
      1	fabric
      1	extracurricular
      1	eventual
      1	evaporate
      1	domesticate
      1	deity
      1	crust
      1	cramp
      1	copper
      1	converge
      1	contract
      1	contagious
      1	confine
      1	collapse
      1	claim
      1	caterpillar
      1	buy and forget
      1	bravery
      1	blazing
      1	balinese
      1	bail out
      1	bail
      1	athrot
      1	athrologist
      1	athro
      1	aristocracy
      1	archaic
      1	archaeology
      1	arbiter
      1	aquisition
      1	antiquity
      1	antibodies
      1	antarctic
      1	alimy
      1	ago
      1	adopt
      1	acres
      1	accurately
      1	accompany
      1	abolitionist

自分の馬鹿さ加減に腹が立つくらい、どれも覚えていない。

2008.01.20 Sun l 英語 l COM(0) TB(0) l top ▲

Python で関数が書けるエクセルみたいなもの。それは Resolver One っていうソフト。もちろんエクセルじゃなくて、別な表計算ソフト。

この スクリーンキャストを見ると、大体わかるんだけど、Resolver One の特徴は、

  • 表計算で使う関数を Python で書ける
  • もちろん従来の方法でも関数を書ける
  • ウェブインタフェースを簡単に作れる
  • Google SpreadSheet のデータと変換できる。
  • 非商用利用なら無料 (無制限版は 99 ドル)
  • って感じ。すごすぐる。

2008.01.18 Fri l ちょっと前に読んだもの l COM(0) TB(0) l top ▲

Do you use a python code analyzer? という記事を見て、Pylint / PyChecker / Pyflakes / PythonTidy というものがあるのを知った。

こういうのを使えば、くだらないバグがあったせいで最初から実行し直したりしなくて済むってことか…。もっと早く知りたかった……。

2008.01.18 Fri l Python l COM(0) TB(0) l top ▲

先日、Python の xmpppy というパッケージを使えば、簡単に bot が作れるよーという記事を書いたけれど、そのサーバの方はどうなっているのかと調べてみたら、やっぱりありました。

Jabberサーバーをクラスタリングしてみました。 - DSAS開発者の部屋

なるほど…。xmpppy + Python の向こう側にこのシステムがあるおかげで、しかもそのサーバにタダでアクセスさせてもらえているおかげで、私でも簡単に bot を作って遊べるんですね。ありがとうございます!

そういえば、これは前から思っていたことなんだけど、オープンソースのすごいソフトウェアや、あるいは気前がいいすごい人が運営しているサービスを、私はタダで使わせてもらっている。なのに、そんなすばらしい社会に恩返しも何もできないのは悔しい。もっと勉強しなきゃ!

2008.01.17 Thu l Python l COM(0) TB(0) l top ▲

いちいち考えないでマイルールにしたがう、という戦略はアリかもしれない。と思った話。

今月いっぱいは忙しいのですが、それでも淡々と iKnow! を続けています。ついでに読書もしまくっています。これだけ書くと、どこが忙しいんだ?と思われるでしょう。でもね、忙しい忙しいと言っても、細切れの時間なら意外とあるものです。その細切れの時間を逃さないように、いくつかマイルールを決めています。今のところ決めているのは、

  • 「休憩に入るときは 1 回だけ iKnow! をやってから休憩する。」
  • 「電車の中では必ず本を読む」
  • 布団に入ったら眠くなるまで本を読む

の 3 つです。このルールは意外と効果があって、 iKnow! も読書も、予想以上のペースで進んでいます。このペースでいけば、今年中に TOEIC 800 点…はともかく、読書 100 冊は、楽にクリアできそうな勢いです。

そんな自分の様子を観察して思ったことを、このエントリーの 1 行めに書きました。普段は、いちいち考えないでマイルールにしたがう。で、たまにブログを書きながら、そのルールについて考える。という戦略。

「いちいち考える」というのは賢いようで、実は悪い習慣だ。例えば iKnow! を 4, 5 レッスンやったぐらいでは、成長した実感は得られない。得られないけれども、じゃぁ iKnow! はやらない方がいいかというと、そんなことはない。絶対にやったほうがいい。そう、絶対やったほうがいい。結論は出ている。なのに「いちいち考える」というのは、明らかに無駄だ。考えたところで思い浮かぶのは、サボる口実だけだ。だから、普段は「いろいろ考えない」で、ひたすらルールにしたがってやる。

そして、その評価と新しいルールの作成は、月に 1 回とかのペースでたまにやる。その時にはじっくり考える。このときに、新しい勉強法を検討したりして、ルールの改正を行う。この繰り返しで、自分のルールをレベルアップさせていけば、ルールの成長に合わせて自分も成長できる。

この方法がうまくいく根拠はない。根拠はないけれど、今年はこれでやってみようと思っています。

2008.01.16 Wed l 英語 l COM(0) TB(0) l top ▲

っていうか作ったよ。っていう話。それから日本語の情報が全くなくて苦労したから、ここにメモっておくよっていう話。

xmpppy とは、 XMPP のプロトコルを Python から使うためのパッケージのこと。http://xmpppy.sourceforge.net/ に詳しく書いてある。

XMPP とは、 Jabber っていう会社が作った仕様がオープンなプロトコルのこと。チャットとかメールとか、メッセージを交換するために使うためのプロトコル。 SMTP が何かに置き換わるとしたら、たぶんこれに置き換わる。っていうか置き換わってほしい。 XMPP は、有名なところでは Google Talk とか Pidgin がサポートしている。つまり XMPP のプロトコルでしゃべる bot を作れば、その bot と Google Talk を使ってお話できる!!そのボットのアドレスを twitter に登録しておけば、 bot が twitter を使ってしゃべってくれる。まぁ twitter は API があるから、それを定期的に動かせば済むけどね。

XMPP の詳しい仕様はXMPP RFCsに全部書いてある。でも、チャットする bot を作るだけだったら、RFC3921を見れば、だいたい大丈夫。その bot を xmpppy を使って書くんだったら、このエントリを見るだけでだいたい大丈夫。

まず、このプロトコルは C/S になってるから、サーバを決める必要がある。Google にアカウントを作ってもいいし、www.jabber.jpで作っても OK。ちなみに jabber.jp を管理してくれているのは、あの有名な KLab 株式会社 さんです。ありがとう!

アカウントを作ったら、次は xmpppy をインストールしよう。xmpppy を使うには pydns も必要だから、先に pydns をインストールする。インストールはいつもの python setup.py install でやってくれる。

インストールしたら、さっそく bot のスクリプトを書く。

import xmpp, sys
user = 'ユーザ名' # @gmail.com, @jabber.jp
pwd   = 'パスワード'
cnx = xmpp.Client('ドメイン名', debug=[])
cnx.connect( server=('サーバ名',5222) )

def presenceCB(con, prs):
    """Called when a presence is recieved"""
    who = str(prs.getFrom())
    type = prs.getType()
    if type == None: type = 'available'

    # subscription request: 
    # - accept their subscription
    # - send request for subscription to their presence
    if type == 'subscribe':
        con.send(xmpp.protocol.Presence(to=who, typ='subscribed'))
        con.send(xmpp.protocol.Presence(to=who, typ='subscribe'))
        
    # unsubscription request: 
    # - accept their unsubscription
    # - send request for unsubscription to their presence
    elif type == 'unsubscribe':
        con.send(xmpp.protocol.Presence(to=who, typ='unsubscribed'))
        con.send(xmpp.protocol.Presence(to=who, typ='unsubscribe'))

def messageCB(con, mess):
     txt = mess.getBody()
     reply = mess.buildReply(txt)
     con.send(reply)

cnx.RegisterHandler("presence", presenceCB)
cnx.RegisterHandler("message", messageCB)
cnx.sendInitPresence()

while 1:
    try:
        cnx.Process(1)
    except:
        cnx.send(xmpp.protocol.Presence(typ="unavailable"))
        cnx.disconnect()
        sys.exit()

これがひな形。XMPP の RFC で MUST になっている部分は、これで満たしている(はず)。このスクリプトは、起動するとサーバに接続する。他のアカウントから話しかけられると、オウム返しする。スクリプトを止めるときは C-c する。

bot として使うためには、messageCB を適当な関数に置き換える。たとえば、 messageCB

from urllib import urlopen, quote_plus
from lxml import etree
import xmpp, re

rename = {"euc":"eucjp"}

def urlread(url):
    import re, codecs
    page = urlopen(url)
    charset = re.search("charset=(\w+)", page.info().getheader("Content-Type"))
    if charset:
        charset = charset.group(1)
        return codecs.getdecoder(charset)(urlopen(url).read())[0]
    else:
        parser = etree.HTMLParser(remove_comments=True, remove_blank_text=True)
        html_page = etree.parse(urlopen(url), parser)
        root = html_page.getroot()
        meta = root.xpath('.//meta[@http-equiv="Content-Type"]')
        charset = re.search("charset=(\w+)", meta[0].attrib["content"])
        if charset:
            charset = charset.group(1)
            if charset in rename.keys():
                charset = rename[charset]
                return codecs.getdecoder(charset)(urlopen(url).read())[0]
            else:
                return urlopen(url).read()

def extractDefinition(data):
    from StringIO import StringIO
    from lxml import etree
    parser = etree.HTMLParser()
    root = etree.parse(StringIO(data), parser).getroot()
    resultList = root.xpath('//table[@id="resultList"]/tr/td/ul/li')
    if len(resultList) < 10:
        resultList = resultList[:-1]
    else:
        resultList = resultList[:10]
    rtag = re.compile(u"<.*?>")
    rspace = re.compile(u"(\s)+")

    def rep(s):
        return rspace.sub(r"\1", rtag.sub(" ", s))
    res = []
    for e in resultList:
        res.append( rep( etree.tostring(e, encoding="utf-8")))
    res = " ".join(res)
    return res

def messageCB(conn, msg):
    try:
        txt  = msg.getBody()
        user  = msg.getFrom()
        if txt:
            txt = quote_plus(txt.encode("utf-8"))
            reply_msg = extractDefinition(urlread("http://eow.alc.co.jp/"+txt+"/UTF-8/"))
            if len(reply_msg) > 0:
                reply = msg.buildReply(reply_msg)
            else:
                reply = msg.buildReply('"'+txt+'"'+u'っていう単語は辞書にないよ。「もしかして機能」はまだ無いんだ。ごめんね。')
            conn.send(reply)
    except:
        pass

こんなスクリプトを書いたら、話しかけられた単語を英辞郎で検索して、ヒットした単語を上から 10 個を答える bot になる。

私はこのスクリプトにログ機能を持たせた bot を動かしている。これを使って自分専用の「最近調べた単語リスト」を作って、で、あとでログをcat logfile | sort | uniq して眺めてみて、忘れてしまった単語があったらもう1度調べる。ってことをしばらくやった後で単語の出現頻度を調べると、「よく出てくるんだけど覚えられない単語」が浮かび上がってくる、という仕組み。これをウェブサービスにしようと思ってたけれど、今は忙しくてそれどころじゃないのでメモだけ書いて公開しておく。2月になって落ち着いたら作る予定。 Enjoy!

2008.01.15 Tue l Python l COM(0) TB(0) l top ▲

英語の単語を覚えるときにも、w と m と n を区別して覚えるよりも、w, m, n は同じと見なしてしまって、他にも b と h の組みや f と t の組み、v と r の組みなど、フォントが小さくなると見分けにくくなる文字をグループ化して、それらは全部同じと見なして覚える方が、読解で使える覚え方になるのではないか。

英語のブログを読んでいていつも思うのは、「なぜ英語のブログのフォントは小さいのか」ということ。日本語のブログの文字の大きさに比べて、英語のブログの文字は明らかに小さい。

理由としては、まず (1)英語は文字の種類が少ないから1文字1文字が小さくても判別ができる、ということが考えられる。でも、判別できるからと言って小さくする必要はない。だからこの理由だけでは弱い。だから加えて、(2)英語は1文字あたりの情報量が少ないから、文字を小さくすることによって視界に入る情報量を増やしている、という理由もあるのではないか。ついでに言えば、(3)1文字1文字が判断できなくても、判断しやすい文字だけ読めば単語が特定できる、という理由もあるのかもしれない。

私はこの中では、とくに3つ目の理由が有力なんじゃないかと思っている。たとえばフォントが小さくなって区別しにくいのは、小文字の w, n, m だ。区別しにくい原因は英語力ではなく、単に文字の小ささと類似によるものだから、たぶん英語がネイティブな人にとっても他の組み合わせに比べて区別しにくいはず。でも、英語がネイティブな人ならスラスラ読める。ということは、これらの文字は多くの場合、区別する必要がないということなのではないだろうか。ということは、英語の単語を覚えるときにも、w と m と n を区別して覚えるよりも、w, m, n は同じと見なしてしまって、他にも b と h の組みや f と t の組み、v と r の組みなど、フォントが小さくなると見分けにくくなる文字をグループ化して、それらは全部同じと見なして覚える方が、読解で使える覚え方になるのではないか。と思った。

正しいスペルはそのうち覚えればいい。というか、フォントによっては、書き間違っても気づかれない。

2008.01.14 Mon l 英語 l COM(0) TB(0) l top ▲
今年 1 年間の目標。
  • 本を 100 冊以上読む
  • ビールを 100 リットル以内に抑える
  • TOEICで 800点以上を取る
  • 英語でブログを 50 エントリー以上書く
  • 10000 PV/day なサイトを作る
がんばるぞー!
2008.01.14 Mon l 未分類 l COM(0) TB(0) l top ▲

私の場合、プレッシャーがない状態を作らないと、ダメだ。私はプレッシャーに弱い。そこでプレッシャーから逃れられる簡単な方法を考えついた。

それは、「前もってやる」ということ。

締め切りよりも前に、自分で勝手に決めた「マイ締め切り」を作る。そしてそれに向けてスケジュールを組んで仕事を進める。マイ締め切りと本当の締め切りの間にバッファがあるので、そのバッファの範囲内だったらマイ締め切りを守れなくても問題ない。問題ないけれども、マイ締め切りでとりあえず完成させることを目指す。

これは一種のゲームでだ。このゲームを、安易だけれど「マイ締め切りゲーム」と命名する。このゲームは、失敗しても(本当の締め切りに間に合えば)何も起こらない。失敗しても大丈夫だ。失敗しても大丈夫なゲームには、プレッシャーなしで取り組める。もし成功したら、当然だけれど、仕事が片付いた状態になる。それに加えて達成感を味わえる。もしかしたら仕事ができるヤツと思われるかもしれない。ノーリスクハイリターンだ。素敵だ。リスクがあるとすれば、この「マイ締め切り」のせいで、仕事自体のスケールが小さくなってしまうかもしれない点だ。このリスクの評価は、ゲームを始める前に済ませておこう。

仕事が片付いて、このゲームが終了したとする。この後は、さらに手を加えてさらに完成度を高めてもよい。これによってゲームのリスクを減らせる。しかもこの過程では、仕事はもう一応完成形になっているので、プレッシャーは小さくなる。

あるいは、別の仕事に対して新たな「マイ締め切りゲーム」を始めてもよい。この場合は本当のスケジュールより予定をさらに前倒しで進めることになるので、さらにプレッシャーがない状態で仕事ができる。

プレッシャーがない状態で結果が出せなかったら、それは実力不足の証拠だ。実力不足なら、努力し続けて実力をつけるか、諦めるしかない。

というようなことを考えながら、プレッシャーがない状態で TOEIC を受けてきました。努力し続けて実力をつけるほうを選ぼうと思いました。

2008.01.13 Sun l 未分類 l COM(0) TB(0) l top ▲

明日は TOEIC なので、改めて Steve Jobs のスピーチを聞いてモチベーションを高める。このスピーチは、まず翻訳された台本を読むという形で触れた。そして感動してその後すぐに Youtube で動画を見て、全然聞き取れなくて凹んだ。でも、今聞いてみたら、だいぶ聞き取れるようになった気がする。自分の成長を感じた。うれしい。

私の英語のレベルアップは、すべて、Steve Jobs と後輩の女の子と、英語漬けと iKnow! とのおかげだ。ありがとう。これからも英語を頑張ろう。

2008.01.12 Sat l 未分類 l COM(0) TB(0) l top ▲

このエントリーは、私のような新しいものを作る能力がない人は、何をどう頑張ればいいのか、ということについて書こうと思ってから挫折するまでの私の5分間の思考を記録したものです。

自分に新しいものを作る能力がないなぁと思ったら、積極的にパクればいい。その振る舞いは非難されるかもしれない。でも、新しいものを作れない人が生き残るには、パクるしかない。それも、積極的に、どんどんパクっていくしかない。そうでなければ、自分以外の新しいものを作る能力がない人にも置いていかれる。新しいものを作る人たちがオリジナリティで勝負するように、新しいものを作らない人はパクリで勝負しなければならない。

パクリで勝負する人たちは、いかに早く、価値があるものを、正確にパクれるか、という点で評価が決まる。早くパクれば、オリジナルが独占するはずだった何かを横取りできる。横取りできる価値は、オリジナルの価値に比例して大きくなる。ただし、劣化版を作っていてはオリジナルの価値を横取りできない。パクリで勝負する人たちの価値をマップする空間の次元は、早さとパクり元の価値と正確さの3次元。これはオリジナリティで勝負する人たちに比べて極端に次元が少ない評価空間になるが、それはしかたがない。それを増やすためには、新しい価値観を作る能力が必要になるからだ。そんな能力があれば、わざわざパクリで勝負する土俵で戦う必要はない。

パクりの勝負で勝つための能力とは、誰よりも早くパクるための素早い情報収集能力とか、価値があるものを見極めるための鋭いセンスとか、正確にコピーするための技術力などだ。パクリで勝負する人は、日々これらを磨いて、パクるためのトレーニングをしておかなければならない。

だから新しいものが作れない人は、パクるトレーニングをしよう!パクるトレーニングをしていくうちに、そのうち、オリジナリティがあるものが作れるようになる…という結論にしたかったんだけど、この流れじゃ明らかに論理が飛躍しているなぁ。どうしよう。ぐだぐだ。

2008.01.11 Fri l 未分類 l COM(0) TB(0) l top ▲
小飼さんのエントリにトラックバックするためのエントリ。
ネット上の売買で、「パソコン一台一円」や「一株一円で売り」といった価格の入力まちがいが起こります。
こうした値段の打ち間違いを防ぐ方法を考えてください。
また、本当に一円で売りたい場合、あなたの考えた方法で対処できますか?
に関する私なりの答え。
  • 入力された値のログを取っておく
  • それらの平均や分散を調べておく
  • 値を入力する時には、その値にした理由も入力しなければならないシステムにしておく
  • ただし、平均に近いデータを入力するときは、理由の入力をスキップできる。
というシステムにしたらいいんじゃないかと思う。そうすれば
  • 「本当に一円で売りたい場合」にも対処できる
  • 「本当に一円で売りたい場合」以外は簡単に入力できる
  • 1円で売ったときのログを見れば、それが入力ミスだったのかどうか、後で判断できる
ので、単純なミスを防ぎつつ、普段の作業は簡単で、あとでミスがなかったかどうか調べることができるシステムになる。さ、紀伊國屋に寄り道してから学校へ行こっと。
2008.01.09 Wed l 未分類 l COM(0) TB(0) l top ▲

いまさらながら、 Twitter を始めてみました。同じラボの友人と。ここでしゃべってます。これ以上どうしたらいいのか分かんなくて困ってます。followする人を見つけるにはどうしたらいいんだろう。

っていうか、そんなことより論文書かなきゃ…。

2008.01.06 Sun l 未分類 l COM(0) TB(0) l top ▲

ちょっと遅くなりましたが、あけましておめでとうございます。

年末年始は Wii リモコンを使って遊ぼうと思っていたのですが、以前に積読したライフハック系の本を読んでいるうちに、何もしないまま過ぎ去ってしまいました。私の年末年始は、だいたい毎年こんな感じです。

どうしてライフハックの本を読んでいるのに、なかなか実行できないのでしょうか。いわゆる、「わかっているのに、できない、やらない」という状態になってしまうと、これ以上いくらライフハックの本を読んでも意味がありません。この状態を打開するための、ライフハックのさらに上の次元のライフハック、すなわち「ライフハックを実行するためのライフハック」とはどういうものでしょうか。

私が年末年始に考えた末の結論では、「ライフハックを実行するためのライフハック」=「宗教」です。日本以外の国の歴史では、重大な出来事には何かと宗教がからんできます。たとえば十字軍、たとえばピューリタン革命、などなど。そんな、人を戦争へ駆り立てることもできる宗教の力を使えば、仕事へのやる気を出すぐらい簡単にできるはずです。

というわけで、宗教の力を使って簡単にやる気を出すための考え方を、私が調べた範囲でまとめます。

やる気を出すための、キリスト教(プロテスタント)的な考え方
人間は神が作ったモノにすぎないので、人間に自由意思なんてありません。人の信仰心の有無も、やる気の有無も、神がそのように仕向けたというだけにすぎません。だから、自堕落な生活をしている人は、神から自堕落な生活をするように仕向けられた人であり、また神からの救いを受けられない人です。
ところで、あなたが神から救われるのかどうかは別として、自堕落な生活をしていると、周りから「神から見放された人」だと思われてしまいますよ。そうなってしまっては、仕事にも障るんじゃないですか?ちなみに、職業に貴賤はありません。自分の仕事を天職だと思って全うしなさい。

やる気を出すための、浄土真宗的な考え方
あなたがどんな生活をしていても、お釈迦様が必ずあなたを救ってくれます。そのためにお釈迦様は、今でもどこかであなたのために修行をしています。だから、あなたはきっと極楽浄土へ行けます。
でも、あなたは本当に何もしないままで極楽浄土へ行くつもりですか?お釈迦様は、あなたがあなたなりに尊い生き方をすることを望んでいます。

やる気を出すための、禅宗的な考え方
坐禅をするのが悟りを開くための近道です。でも、日頃の生活も同じように修行だと思ってやりなさい。

あとはカトリックとイスラムについて調べたいなぁ。

2008.01.05 Sat l ちょっと前に読んだもの l COM(0) TB(0) l top ▲