tag:blogger.com,1999:blog-140180962024-03-13T14:56:44.671+09:00Leo's ChronicleUnknownnoreply@blogger.comBlogger386125tag:blogger.com,1999:blog-14018096.post-90801263852867066662015-09-09T15:04:00.000+09:002015-09-09T16:12:15.114+09:00良いプログラマになるための5つのコツ先日「<a href="http://leoclock.blogspot.com/2015/09/blog-post.html">プログラマの履歴書</a>」という記事で「コンピューターを使って世の中をほんの少し便利にすようとする」ことが良いプログラマになるきっかけと書きました。先日「どうしたらプログラミングができるようなるか」という質問を受けたので、参考になればと思いもう少し掘り下げてみることにします。<br />
<br />
1. 「どの言語を学べば良いか」という問いから離れる<br />
<a href="http://www.amazon.co.jp/gp/product/4422400207/ref=as_li_ss_il?ie=UTF8&camp=247&creative=7399&creativeASIN=4422400207&linkCode=as2&tag=leosclock-22"><img align="right" border="0" src="http://ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=4422400207&Format=_SL110_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=leosclock-22" /></a><br />
「<a href="http://www.amazon.co.jp/gp/product/4422400207/ref=as_li_ss_il?ie=UTF8&camp=247&creative=7399&creativeASIN=4422400207&linkCode=as2&tag=leosclock-22">ノーベル賞はこうして決まる</a>」という本には、セレンディピティ(serendipity: 偶然から生まれる偉大なる発見)という言葉が頻繁に登場します。ノーベル賞は狙って取るものではなく、科学への貢献に邁進するなかで生まれてくるものだと。<br />
<br />
その一方、「Serendipity favors the prepared mind (偉大な発見は、準備ができている頭脳を好む)」とも言われます。プログラミングを始めるにあたってどんな言語を学べば良いかという問いに対しては「何が将来役に立つかはわからない」というのが正直な答えで、何も学ばなければ偶然による成果も生まれません。今は亡きスティーブジョブスがたまたま<a href="http://news.stanford.edu/news/2005/june15/jobs-061505.html">Calligraphyのコースを大学時代にとっていた</a>おかげで、現在のMac OSの美しいフォントの誕生につながったという例もあります。<br />
<br />
したがって「どの言語を学べば良いか」という問いは本来「どの言語が効率的に◯◯を実現できるか」という形であるべきで、この◯◯に当たるプログラミングでできることを知る為には、プログラミングを学ばなくてはいけない、という鶏と卵の関係にあります。問題に適したコードを書くには、それまで慣れ親しんだ言語を元に考えることになるので「準備」が必須です。<br />
<br />
将来どんなことがプログラミングで実現できるかを予想するのは難しく、学び始めたばかりのころは動機付けが十分ではありません。そのためプログラミングを勉強するというのはあまり楽しい作業ではないはずです。一度1つのプログラミング言語を学んでからは比較対象ができるので他の言語を学ぶのは容易になってきます。Scala, Python, Rubyなど比較的新しい言語は、昔の言語の悪い面を改善しているので使いやすいのですが、C++を学ぶと、なぜこれらの新しい言語がよくできているのかより一層わかってくるという具合です。<br />
<br />
2.「プログラミングをする環境に身を置く」<br />
<br />
プログラミングを学ぶには、コンピューターサイエンスのカリキュラムを持つ大学に行くのが確実です。例えば、<a href="http://www.is.s.u-tokyo.ac.jp/pamph/">東大理学部情報科学科のパンフレット</a>ではどのようなことを学ぶかが詳しく紹介されています。それ以外の専攻や、大学を既に卒業された方でも、<a href="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/">MITのオンラインで学べるcouseware</a>、<a href="http://cousera/">Cousera</a>などを利用する、オライリーの本を読む、GitHubで他人の書いたコードを読むなど学ぶ資料には事欠かないはずです。一人で学ぶことももちろんできますが、動機付けや新しい知識を仕入れる面で効率が悪いので、一緒に学んでいる仲間がいる環境に飛び込むことが大切です。たとえば、Emacs, vimなどのエディタのどれが良いか、効率的な使い方などを周りの様子から知ることができます。大学で皆が集まって学ぶ意義はまさにそういった環境をつくる点にありますし、いろいろな知識を持った人と触れることでセレンディピティにつながる確率が上がります。会社がそのような環境であると幸せですね。<br />
<br />
3. 「プログラミング以外の世界に触れる」<br />
<br />
コンピューターサイエンスの知識を持った人が必ずしも世の中を便利にする製品を作れるとは限りません。今では、コンピューターを効率的に使うための研究をするコンピューターのためのサイエンスの世界は少し狭くなってきたと言えます。一方、ゲノムサイエンスのように、コンピューターを活用できる、あるいは活用しないと対応できないような世界はますます広がっています。「プログラミングの知識」かつ「他分野の知識を持ち、コンピューターで解決できそうな問題に気付く」この組み合わせを持った人が、今までコンピューターサイエンティストが想像もできなかったようなアプローチで世の中にインパクトを与えることができます。また、その過程でプログラミングがしやすくなるようなツールも生まれてきたりします。<br />
<br />
4. 「人と協力する術を身につける」<br />
<br />
プログラミングに習熟してくると、いろいろな機能を自分一人の力で実装できるようになりますが、やはり自分ひとりの力でできることには物理的な限度があります。10個のプログラミング言語でコードが書けても、同時に作業できる問題は1つか2つ。一人で知識を溜め込んでも、作れるプロダクトの種類はそう多くはありません。能力をスケールさせるためには、アイデアを他の人と共有する、文章を書いて他の人が時間を置いて理解できるようにすることが大切です。大学の論文などでは、数年、数十年後に論文の内容を理解した人が素晴らしいアプリケーションを見つけてくれるかもしれない、という気の長いものもあります。アイデアの共有には時間がかかることを覚悟します。コミュニケーションでの礼儀正しさも要求されるでしょう。オープンソース開発を支援するGitHubは他の人と共同してコーデイングするための環境を築いたという意味で、非常に大きな貢献をしています。また、英語を使わないというだけでも協力者の範囲を狭めプロジェクトの生存期間を短くします。<br />
<br />
5. 「良く寝ること」<br />
<br />
プログラミングの作業はどうしても目、肩、腰、脳など体に負担がかかるものです。デバッグ作業など原因の究明に試行錯誤と集中力が要求されるものもあります。毎日8時間以上コードを書き続けるというのは至難の技で、持続可能ではないでしょう。睡眠が必要なのは健康という意味だけではありません。プログラミングではパズルを解く感覚も必要になってきます。ワーキングメモリにいかにたくさんの情報があるかで、複雑に絡み合ったコンポーネント間のつながりを意識したコードを自然に書けるかどうかが決まってきます。音楽を演奏する人でも、たくさん練習をするより、楽譜を読んで寝てしまったほうが、次の日に自然に演奏できるようになるそうです。これは寝ることで記憶が再構築された状態で定着し、脳からの指令がスムーズに指に伝わるようになるという原理です。(参考:<a href="http://ed.ted.com/lessons/the-benefits-of-a-good-night-s-sleep-shai-marcu">TED: The benefits of good night sleep</a>) 睡眠もプログラミングには欠かせない要素の1つです。<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br /><div class="blogger-post-footer"><script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-59666-1";
urchinTracker();
</script></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-14018096.post-71389824957084731612015-09-01T16:30:00.001+09:002015-09-01T16:38:36.310+09:00プログラマの履歴書「<a href="http://d.hatena.ne.jp/hyoshiok/20100321/p1">コードを書け。それが履歴書だ</a>」という昔の名台詞が目に留まったので、常日頃感じていることを書き出してみることに。<br />
<br />
コードが GitHubで公開してあると、まず採用する側の視点としては非常に助かります。プロジェクトを2、3つ眺めるだけでも、この人が普段どんなことを意識してプログラミングしているのかが見えてきます。例えば、性能を重視しているとか、拡張のしやすさを意識してインターフェースをデザインしているとか。さらに本人の興味の方向性、得意な言語などがわかるが何より嬉しい。過去の経験から、自己申告でJavaができます、C++ができますなどと言うだけの人が期待したレベルでコードを書けた試しがありません。<br />
<br />
その次にわかるのがコミュニケーションスキル。基礎的な英語力の判断材料にもなるし、チームを組んだ時のイメージがしやすい。問題を共有する能力も大事。自分一人の頭の中でたくさん難しいことを理解して解決できる天才肌タイプの人もいますが、大事なのは頭の中の問題を外に出して、自分以外の人も取り組めるようにすること。そうすることで、自分でコードをメンテナンスしなくなっても(大抵のプロジェクトは遅かれ早かれ自分の手を離れることになります)問題意識が共有されプロジェクトが成長していきます。自分一人でできることというのはたかが知れていて、自分が休んでいるときにでも物事が進んで行く様子を見られるのは非常に幸せなことです。<br />
<br />
僕の転職活動での例を出すと、大学での研究者という立場から突然<a href="http://www.treasuredata.com/">Treasure Data</a>というビッグデータ解析基盤を提供する会社のエンジニアになったのですが、履歴書として大事だったのはやはり自分の<a href="https://github.com/xerial">GitHubリポジトリ</a>でした。論文を書いていてもプログラミング能力の証明にはならないし、データベース分野の知識があるのと実装ができることはまた別の能力です。転職の相談の際に<a href="https://tenshoku.mynavi.jp/it-engineer/knowhow/naoya_sushi/11">CTOの太田くん</a>が既に僕のGitHubリポジトリを見てくれていたのでその後の話がとてもスムーズでした。<br />
<br />
ただし、普通の研究者や、日々の仕事や子育てで忙しい人がGitHubのリポジトリを充実ささせるのは難しいのではないか、という思いもあります。僕の場合は、仕事で必要になったものをちょこちょこ外に出していたので、Treasure Data創業者の<a href="https://github.com/frsyuki">古橋くん</a>(<a href="http://fluentd.org/">fluentd</a>, <a href="http://msgpack.org/">MessagePack</a>, <a href="http://embulk.org/">embulk</a>など種々の人気オープンソース製品の開発者)ほど野心を持って出していたわけではありません。彼の凄さは、MessagePackを開発したらアルバイト先の基幹コードにそれを捻じ込んでから帰ってくるというあたり。それも複数の会社に。<br />
<br />
僕の作ったものの中では<a href="https://github.com/xerial/sqlite-jdbc">sqlite-jdbc</a>という<a href="http://sqlite.org/">SQLite</a>データベース(ファイル1つでDBになるお手軽DBMS)をJavaから使えるようにしたコードがあります。最初はGoogle CodeのSubversionで管理され、次はBitBucketのMercurial、その次はGitHubと転々としていて時代を感じますが、開発のきっかけは既存の<a href="https://github.com/crawshaw/sqlitejdbc">sqlite用のjdbc</a>ドライバだとインストールや設定が必要で大変だな、という点から始まりました。それならsqliteをコンパイルしたライブラリをjarファイルに埋め込んでインストールを自動化したものを配布しようとしたのがきっかけです。これがあると、<a href="http://wormtss.utgenome.org/browser/browser.jsp">ゲノムブラウザ</a>のようなWebアプリをDBを含めて1つのフォルダにまとめられて非常にポータブルに実装できます。<br />
<br />
DBを扱っていると圧縮ライブラリも必要になり手頃なものを探していたのですが、ちょうどGoogleが<a href="https://github.com/google/snappy">Snappy</a>という400MB/sec.を超える性能で解凍できるライブラリを公開したばかりだったので、sqlite-jdbcで培ったテクニックを利用できると思い、Snappyの公開から数日で<a href="https://github.com/xerial/snappy-java">snappy-java</a>を作成しました。これはタイミングが非常に良くて、今では、Sparkなどの有名プロジェクトでも使われていたり、Maven Centralで月間10万回以上もダウンロードされています。自分以外の人が自分以上によく使ってくれているコードで、なんだか不思議な感じがします。<br />
<br />
逆に多大な労力を割いたけれど、あまり広くは使われていないコードもあります。先に挙げたゲノムブラウザ(<a href="https://github.com/utgenome/utgb">UTGB</a>)のコードは、Railsの用に簡単にゲノムブラウザを立ち上げられるフレームワークになっています。これはもう少し普及活動を頑張っても良かったプロジェクトなのだけれど、大学でコードを書ける人を見つけるのに非常に苦労して、自分自身が進めないとどうしようもなくなったので停滞してしまったプロジェクトです。<a href="http://www.slideshare.net/taroleo/streaming-distributed-data-processing-with-silk">Silk</a>という大規模データ処理用の分散ワークフローエンジンもありますが、これもScalaでたくさんの<a href="https://github.com/xerial/silk">コード</a>を書きましたが、まだ外のユーザーを捕まえるに至っていません。協力者を得るにも、そもそも分散計算のフレームワークを書けるプログラマはなかなか見つかるものではありません。一方、Silkの開発に必要だったので作成した<a href="https://github.com/xerial/sbt-pack">sbt-pack</a>(Scalaプロジェクトをパッケージングするプラグイン)、<a href="https://github.com/xerial/sbt-sonatype">sbt-sonatype</a>(ScalaプロジェクトをMaven centralにアップロードするプラグイン)などはよく使われていて、目的がはっきりしていて手軽なものほど普及するというのを実感しています。<br />
<br />
このようなツールを作成していたのも、ゲノムサイエンスという、コードを書いてデータを分析しないと仕事が進まない分野にいたからであって、純粋にコンピューターサイエンスやデータベース分野の研究をしていたら、コードを書き続けていたかどうか自信がありません。アカデミアでキャリアを築くには、残念ながら品質の良いコードを書くことが最短ルートではないので、コンピューターサイエンスの学歴があっても、採用の時はそういう目で評価しています。(ただし、<a href="http://leoclock.blogspot.com/2009/09/blog-post_21.html">コンピューターサイエンスの素養</a>の中には、プログラミングに重要なものも多々あって、オブジェクト指向やコードの安全性、型理論、計算量、ハードウェアのアーキテクチャなど、それを知っている人とそうでない人の書くコードには歴然の差があります。)<br />
<br />
「コードを書け。それが履歴書だ」というのは簡単ですが、仕事であれ、日常であれ、身の回りで起こっている日々の問題を、コンピューターの力を使って解こうとすること、また、そうできる環境に身を置くことがまず必要です。そういう意味で、Treasure Dataはコードを書いて問題を解決しようとする人が集まっていて良い職場だと思います。オープンソース活動に専念しているエンジニアもいる(しかも高給!)など、興味がある方はこちら(<a href="http://www.treasuredata.com/jp/careers">採用情報</a>)を参考までに。ワークフローエンジンSilkもTreasure Dataに来たおかげで、問題意識を共有する仲間も増え、リニューアルして生まれ変わりそうな雰囲気になってきました。<br />
<br />
コンピューターを使ってこんなものを作ったら世の中をほんの少し便利にできる。そう思えること、そして自分がそれを実現できるとコードを書くことを通して自信をつけていくことが、良いプログラマとして自立していくためのきっかけになるのではと思っています。<br />
<br />
<br />
<br /><div class="blogger-post-footer"><script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-59666-1";
urchinTracker();
</script></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-14018096.post-44762949635235910252011-12-22T16:26:00.001+09:002011-12-22T16:27:22.375+09:00夕焼け<div><p>@柏キャンパス</p>
<br/><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh48wQJVmIb9l9VDjKafyDtHj4gGHHuEPnuug9aRXgRl4BPaSZsVepMUzpwkWkeH722N69lyf755mMTCs64XE_Lu7avFfjr7V2uFMWgJEzJBGtgwAHUkYDotspbrYGpxsiOec4Psw/' /></div><div class="blogger-post-footer"><script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-59666-1";
urchinTracker();
</script></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-14018096.post-42666302215291138682011-12-06T10:44:00.001+09:002011-12-06T10:45:48.574+09:00今週のたなくじ<div><p>最近上手く撮れない…。真っ白なくじだといいことがあるそうですが、微妙。</p>
<br/><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfVWVtCUNUkjiBkuIcwFsU4-X1AIcMwvu7oVAOBk7DKe2I3Wu6K3u9cJ5cIxm0NoaGgtWeZjDA4UhAiR1dSYWXIW-eNjdOaoSrlaxeCCWdxlF5bWC6r0S5hyWQ4K-i-tN9VzCRUg/' /></div><div class="blogger-post-footer"><script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-59666-1";
urchinTracker();
</script></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-14018096.post-69759375186577656132011-11-11T19:22:00.001+09:002011-11-11T19:38:36.612+09:00Androidから<div><p>投稿のテスト。ちなみに写真は0655月曜恒例のたなくじ。</p>
<br/><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyEomRPEICkYMGMEP75BXdf1NsL6-TByldJQ74EERc-ouIQAQhl9ZVFj1TIcnxT7QhZvN0lfvSQUZJbkE4c1aMfXNLLHSQ7ejCVf6psHhfEhr2ylybcZgypwHnbro9gOXxZDI4gg/' /></div><div class="blogger-post-footer"><script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-59666-1";
urchinTracker();
</script></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-14018096.post-2168515485395894652011-11-11T17:28:00.001+09:002011-11-11T17:29:10.397+09:00レイアウトを変更久々にブログ。はてなブログに招待してもらったのですが、使い慣れたBloggerの方が書きやすそうで戻ってきました。<div><br /></div><div>振り返ると1年以上書いてなかったんですね。。。</div><div class="blogger-post-footer"><script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-59666-1";
urchinTracker();
</script></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-14018096.post-44981672965609282432010-01-09T15:46:00.016+09:002010-01-09T22:20:02.531+09:00オープンソースとフリーソフトウェアは何が違うのか<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://cacm.acm.org/system/assets/0000/0737/051809_CACMpg31_Why_Open_Source.large.jpg?1245157085&1245157083"><img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 150px; height: 159px;" src="http://cacm.acm.org/system/assets/0000/0737/051809_CACMpg31_Why_Open_Source.large.jpg?1245157085&1245157083" border="0" alt="" /></a><br />「オープンソース」と「フリーソフトウェア」。この二つは似ているようで決定的に違う。<div><br /></div><div>「オープンソース」は言葉として「ソースが見られる」というただ一つの意味しか持ち得ないが、「フリーソフトウェア」はプログラムを使う人の「自由」を求める言葉だ。</div><div><br /></div><div>Communications of ACMにRichard Stallmanが「<a href="http://cacm.acm.org/magazines/2009/6/28491-why-open-source-misses-the-point-of-free-software/abstract">オープンソースではだめなんだ</a>」と訴える記事を書いている。ここで言う「フリー」とは、「無料(タダ)」という意味では決してない。ソフトウェアを使う自由、コードについて学び、変更する自由、そして変更の有無に関わらずソフトウェアのコピーを配布する自由のことだ。</div><div><br /></div><div>1983年から始まったフリーソフトウェアを啓蒙する運動のおかげで、GNUのツール群や現在のLinuxがあり、これなしには今のGoogleの姿もなかっただろう。自由に使えるOS無しには大規模クラスタの運用などとても叶わないし、検索エンジンなどを通してGoogleが世の中に与えている社会的価値はとてつもなく大きい。「フリーソフトウェア」が目指すのはそういった「社会的な価値」の向上だ。オープンソース開発では、ソースを公開することで広くユーザー・開発者を集めソフトウェアの品質向上につなげているが、必ずしもそれが「フリーソフトウェア」の目標というわけではない。(なぜならオープンソースでなくても、品質の良い製品を作って売り続けている会社があることは皆様もよく知っているはずだ)</div><div><br /></div><div>僕も勘違いしていたのだが、GNU Public License (GPL)を使うのが「フリーソフトウェア」というのも誤解である。GPLとは「ソフトウェアを使う、ソースコードを見る、改変する、再配布する自由」を保証するライセンスで、GPLでライセンスされたソフトウェアを使ったコードは必ずGPLでライセンスしなくてはいけないという制限を課している。企業ではこの強い制限を嫌って、より制約の緩いオープンソースライセンスであるBSDやApache Licenseなどを使うこともある。しかし、GPLはあくまで「フリーソフトウェア」の概念を普及するための手段であって、<a href="http://www.opensource.org/licenses">他のオープンソースライセンス</a>を使っていても「フリーソフトウェア」とみなすことはできる。</div><div><br /></div><div>「フリーソフトウェア」の敵はあくまで「使う人の自由を制限する独占的なソフトウェア」だ。いくらオープンソースであっても、DRM(メディアのコピーを制限するプログラム)のようなものは、使う人の自由を制限するので決して「フリーソフトウェア」にはなりえない。</div><div><br /></div><div><iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&bc1=FFFFFF&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=leosclock-22&o=9&p=8&l=as1&m=amazon&f=ifr&md=1X69VDGQCMF7Z30FM082&asins=4798117501" style="width:120px;height:240px;float:right;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>「フリーソフトウェア」が目指すものはいわば「表現の自由 (free speech)」であって、決して作ったものを「無料(タダ)でよこせ(free beer)」と要求することではない。確かに現実問題として「<a href="http://www.amazon.co.jp/gp/product/4798117501?ie=UTF8&tag=leosclock-22&linkCode=as2&camp=247&creative=7399&creativeASIN=4798117501">Eric Sink on the Business of Software</a>」にもあるように、<img src="http://www.assoc-amazon.jp/e/ir?t=leosclock-22&l=as2&o=9&a=4798117501" width="1" height="1" border="0" alt="" style="border-top-style: none !important; border-right-style: none !important; border-bottom-style: none !important; border-left-style: none !important; border-width: initial !important; border-color: initial !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; " />ソースを公開してビジネスを成立させるのは、不可能ではないものの、非常に難しくなる。しかしながら、作ったプログラムを独占して目先の利益を追求することは、より長い目で見るともっと大きな社会的価値を逃しているのかもしれない。</div><div><br /></div><div>今まで「フリーソフトウェア」運動は、単にMicrosoftのような企業に反抗するためだけのものかと思っていたが、今回のStallmanの記事を読んで随分印象が変わった。「自由」であることの価値を認めるならば、「オープンソース」と言う代わりに「フリーソフトウェア」という言葉を使うことで、より正確な意思表示ができるように思う。</div><div class="blogger-post-footer"><script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-59666-1";
urchinTracker();
</script></div>Unknownnoreply@blogger.com3tag:blogger.com,1999:blog-14018096.post-4125091690999562032010-01-03T14:15:00.022+09:002010-01-05T12:33:53.390+09:00EU基準から見ても多すぎる日本の債務残高<iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&bc1=FFFFFF&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=leosclock-22&o=9&p=8&l=as1&m=amazon&f=ifr&md=1X69VDGQCMF7Z30FM082&asins=4334975607" style="width:120px;height:240px; float:right;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><br />大前研一氏の「<a href="http://www.amazon.co.jp/gp/product/4334975607?ie=UTF8&tag=leosclock-22&linkCode=as2&camp=247&creative=7399&creativeASIN=4334975607">「知の衰退」からいかに脱出するか?</a><img src="http://www.assoc-amazon.jp/e/ir?t=leosclock-22&l=as2&o=9&a=4334975607" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />」によると、日本の財政赤字はEUに加盟しようとしても即座に断られるほどだそうだ。どういうことか気になって調べてみると、<a href="http://www.mofa.go.jp/mofaj/area/eu/euro_gaiyou.html">EU加盟の経済収斂基準</a>というのがあり、そこに<div><div></div><blockquote><div>財政:過剰財政赤字状態でないこと。</div><div>(財政赤字GDP比3%以下、債務残高GDP比60%以下)</div><div></div></blockquote><div>と書かれている。<a href="http://www.mof.go.jp/jouhou/syukei/sy014/sy014d.htm">財政支出、債務残高のGDP比</a>を見ると、2008年の日本の財政赤字はGDP比の2.6%で、債務残高はGDP比の170%にもなっている。(<a href="http://ja.wikipedia.org/wiki/%E5%9B%BD%E5%86%85%E7%B7%8F%E7%94%9F%E7%94%A3">wikipedia: 国内総生産 GDP</a>)</div><div><br /></div><div>2009年度の<a href="http://rank.nikkei.co.jp/keiki/gdp.cfm">日本の実質GDPが520兆円規模</a>なので、その3%は15.6兆円。これが国債を発行してよい基準額のはずだが、2010年度予算で44兆円国債を発行するようなので、GDP比の8.4%ということになり、EU基準を大幅に上回ってしまう。</div><div><br /></div><div>財務省による<a href="http://www.mof.go.jp/jouhou/syuzei/siryou/007.htm">2009年度の各国の債務残高のデータ</a>を見ると、日本の債務残高のGDP比が170%から189%に悪化しており、EU基準の債務残高のGDP比60%以内どころか、他国に比べても圧倒的に悪い水準だ。EUに相手にされないというのも頷ける。</div><div><br /></div><div>「<a href="http://www.garbagenews.net/archives/1197716.html">日本の対外債務は? 世界の対外債務国ワースト20をグラフ化してみる</a>」という記事を見かけたが、これを見る限りは日本の債務残高は大したことのない額のようにみえる。しかし、このデータは上に挙げた財務省のデータと大きく食い違いおかしいと思っていた。このデータによると、イギリスの対外債務のGDP比が408.3%ということで、EU基準と大きく外れていてEUに残っていられるはずがない。<a href="http://www.mof.go.jp/jouhou/syuzei/siryou/007.htm">財務省のデータ</a>の方では、イギリスの債務は2008年の57%から2009年の75.3%になっているので、最近になってEU加盟国として危ない状況になったとわかる。(参考までに<a href="http://en.wikipedia.org/wiki/Euro_convergence_criteria">Wikipedia: EU加盟国の債務状況</a>)</div><div><br /></div><div>何も上記の「対外債務国ワースト20」の記事のデータが間違っているわけではない。この元になったWorld Bankによる各国の対外債務のデータが<a href="http://ddp-ext.worldbank.org/ext/ddpreports/ViewSharedReport?REPORT_ID=13532&REQUEST_TYPE=VIEW">こちら</a>にある。そして、ここで使われている対外債務(External debt)の定義がこちらの<a href="http://www.imf.org/external/pubs/ft/eds/Eng/Guide/file2.pdf">PDF</a>で読める。結局比べているものが違うのだ。債務残高として「日本の国債(bond)」と「海外諸国の対外債務(External debt)」という、そもそもの定義が違うものの値を比べることに大した意味はないし、日本の債務の深刻さから目を背けさせるという意味で悪影響とすらいえる。(イギリスもアメリカも国外からお金を借りまくっているという認識は間違いではないが)</div><div><br /></div><div>日本の抱えている負債には、年金の支払い義務と、公的債務(地方債・国債)の2つがあり、年金債務は800兆円、公的債務も800兆円になると言われている。日本国民の金融資産1500兆円を考慮しても、借金はすでに返済不可能な状態になっている。なぜこの状態が放置されてきたのか? 政府は借金を返さなくてもいいと思っているし、まともに年金を払おうとしてもすでに払えない。だからできるだけこの問題から目を背けようとさせている。例えば「改革」のため、あるいは「生活」のため。よく耳にしたお題目ではないだろうか。政権が代わっても、問題の本質を深く考えさせない政治のありかたは大して変わっていない。大前氏に言わせれば、</div><div></div><blockquote><div>政府側の(短期間で配置換えさせられ責任も問われない)官僚機構だけが得をして、国民がかぎりなく損をするという構造になっている。</div><div></div></blockquote><div>ということだ。</div><div><br /></div><div>今回挙げたデータは、インターネットで検索すればすぐ見つかるようなものばかりだが、「なんだ、日本はまだ大丈夫なんだ」と安心させて「思考停止」に導くような情報には注意してほしい。ゼロベースで予算を見直すという民主党のマニフェストも、うやむやのままにさせてはいけない。研究者も仕分けされた一部の科学予算が復活したからといって安心していてはいけない。「考える力」を失うことのダメージは自分たちに直接返ってくる。</div><div><br /></div><div>大前氏のテキストは考える力を養うための役に立ってくれるし、そしてドラッカーなどの著作もそうだが、著者の「考え」そのものを学ぶのではなく、「考え方」を学ぶために読むべきで、そうして自ら「考える力」をもった人が育つことが何よりも大切に思う。(身近なところでトレーニングを始めるなら、区議・市議会の議事録を眺めてみるとよい。大きな方針もなく些細な議論、とんでもない議論に始終しているかわかるはずだ。例えば、<a href="http://www.pref.chiba.lg.jp/gikai/honkaigi/2112/ikensho2112.html#0919">千葉の県議会の議事録</a>で選択的夫婦別姓に関する意見を見ると、こんなロジックが破たんした議論を堂々と言える場所なのかと寒気がした。考えなしに議員に政治を任せているとこんな恐ろしい議論がまかり通ってしまう)</div><div><br /></div></div><div class="blogger-post-footer"><script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-59666-1";
urchinTracker();
</script></div>Unknownnoreply@blogger.com7tag:blogger.com,1999:blog-14018096.post-50245804131127460642009-12-06T09:56:00.006+09:002009-12-06T14:47:13.089+09:00理系のためのサバイバル英語入門<iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&bc1=FFFFFF&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=leosclock-22&o=9&p=8&l=as1&m=amazon&f=ifr&md=1X69VDGQCMF7Z30FM082&asins=4062571099" style="width: 120px; height: 240px; float: right;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0"></iframe>ふと本棚を眺めていると、「<a href="http://www.amazon.co.jp/gp/product/4062571099?ie=UTF8&tag=leosclock-22&linkCode=as2&camp=247&creative=7399&creativeASIN=4062571099">理系のためのサバイバル英語入門―勝ち抜くための科学英語上達法 (ブルーバックス)</a><img src="http://www.assoc-amazon.jp/e/ir?t=leosclock-22&l=as2&o=9&a=4062571099" alt="" style="border: medium none ! important; margin: 0px ! important;" border="0" width="1" height="1" />」という本を発見。東京大学の1~2年生向けに教養学部で開かれていたゼミ「理系のためのサバイバル英語入門」の内容を本にしたものです。もう10年以上前に書かれたものですが、まったく色褪せていないことに驚くばかり。<div><br /></div><div>一番驚いたのが、昔読んだときと今読んだときとで印象がまったく異なっていること。この本の内容を十分に咀嚼するには、読む側にもレベルアップが必要なようです。</div><div><br /></div><div>1.まず冒頭の科学用語の英語表現をどれだけ知っているかのテストで、高校や大学で学ぶ、文学・哲学・社会学中心の英語が、理系の学問では役に立たないことに気付きます。(大学1年生の頃、初めてこの本を読んだ僕はこのレベルでした。英語そのものを教える人ってどうしてもいわゆる理系分野を知らない人になることが多いので…)</div><div><br /></div><div>2.自然な英語を書くとはどういうことか(英語で論文を書くようになった今は、ここで説明されていることがよくわかる)</div><div><br /></div><div>3.英語でコミュニケーションをとること。(学会などのプレゼンテーションで英語のトークをするようになったので、うなずけることがたくさん)</div><div><br /></div><div>辞書の使い方、簡潔な英語の書き方なども参考になりますが、巻末の永久保存版「論文を書くための論文」もお勧め。ここには、科学の分野で認めてもらうためには、メディアで名声を得るのではなく、「良い論文」を書かねばならないと断言されています。科学の世界ってそういうものなので、テレビで紹介されている部分だけでは決してわからない。</div><div><br /></div><div><div>本書のいたるところに、研究の面白みや、独創的な研究をしていくためのエッセンスがちりばめられています。タイトルを「英語入門」とするには惜しい内容で、「科学への入門」「研究者入門」と呼ぶ方がふさわしいです。そこに気付かずに、理系英語の入門書としてだけとらえると相当にもったいない。けれども、読む側としても「科学」や「研究者」の世界に一歩足を踏み入れてないと、大学入学当初の僕のように、この本に書かれた大切なメッセージを受け取り損ねてしまいます。</div><div><br /></div></div><div>これは「科学」の世界へ入っていくための「英語」入門書です。</div><div class="blogger-post-footer"><script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-59666-1";
urchinTracker();
</script></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-14018096.post-65370008794799692252009-10-10T17:57:00.022+09:002009-10-10T22:35:26.859+09:00ノーベル平和賞は誰がとるべきだったのか?今年のノーベル平和賞の受賞者(Nobel Laureate)が<a href="http://nobelprize.org/nobel_prizes/peace/laureates/2009/">Barack Obama大統領に決まりました</a>が、「え!?」という声が多かったように思います。<br /><br />僕も驚いた一人ですが、では他の候補は誰だったのでしょうか? <a href="http://www.economist.com/daily/chartgallery/displaystory.cfm?story_id=14588615">Economist誌での予測</a>が紹介されていましたが、悲しいことに僕にはどんなことをした人たちなのかさっぱりわかりませんでした…。日本のニュースを見てるかぎりMichael Jacksonでもいいような気がしてきます。この中では間違いなく彼のニュースが一番多かったはずですから(苦笑)世界共通言語のEsperantoとかもいい線をついています。<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://media.economist.com/images/na/2009w41/Nobel.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 555px; height: 770px;" src="http://media.economist.com/images/na/2009w41/Nobel.jpg" alt="" border="0" /></a><br />僕がいかに世界の情勢をとらえていないかを実感したのですが(もちろん上のリストの大半の人はネタですよ。皆様。人じゃないのも含まれてますが)、一番右下の御仁が今回の受賞の立役者になったのは間違いないでしょう。<br /><br />参考<br /><ul><li><a href="http://en.wikipedia.org/wiki/2009_Nobel_Peace_Prize">2009 Nobel Peace Prize - Wikipedia</a> (<span class="comment">すごくよくまとまっています。受賞理由や各国の反応、他の候補者</span>が全部で205人いたなど、<span class="comment">ニュースを読むより効率良く情報が得られます</span>)<br /></li></ul><br /><span style="font-weight: bold;">Obama氏受賞に関しての記事</span><br /><ul><li><a href="http://www.economist.com/blogs/democracyinamerica/2009/10/not_their_best_pick.cfm">Not their best pick</a> (反対意見)<br /></li><li><a href="http://www.economist.com/blogs/democracyinamerica/2009/10/nor_their_worst_pick.cfm">...nor their worst pick</a>(賛成意見)</li><li><a href="http://www.economist.com/world/international/displayStory.cfm?story_id=14626903&source=features_box_main">Even greater expectations</a> (Obama氏の受賞に関する総括記事)</li></ul><div class="blogger-post-footer"><script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-59666-1";
urchinTracker();
</script></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-14018096.post-6124059275543318032009-10-08T21:51:00.007+09:002009-10-09T23:26:05.977+09:00東京大学理学部情報科学科のパンフレットがすごい<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSrHAC5vKEvs1HXdezvycf0c8oiDFEI1bLBxteE_NBNBuc8XxCTE-0MBU65mC5z277_mBz4ozq1XYDEZm6gvfWITK7RO5mjaEBxMR69d61jsMNKQSFJ5n8YA3YxnZVzZqbZ08jVQ/s1600-h/is.png"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 400px; height: 277px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSrHAC5vKEvs1HXdezvycf0c8oiDFEI1bLBxteE_NBNBuc8XxCTE-0MBU65mC5z277_mBz4ozq1XYDEZm6gvfWITK7RO5mjaEBxMR69d61jsMNKQSFJ5n8YA3YxnZVzZqbZ08jVQ/s400/is.png" alt="" id="BLOGGER_PHOTO_ID_5390213356494460946" border="0" /></a>先日の「<a href="http://leoclock.blogspot.com/2009/09/blog-post_21.html">ぜひ押さえておきたいコンピューターサイエンスの教科書</a>」というエントリでは、<a href="http://www.is.s.u-tokyo.ac.jp/">東京大学理学部情報科学科</a>の講義で使われていた教科書を中心に紹介しました。では、実際の授業の様子はどうなのでしょうか?<br /><br />タイミングの良いことに、情報科学科のカリキュラムのパンフレットがウェブで公開されています。<br /><br /><a href="http://www.is.s.u-tokyo.ac.jp/pamph/">東京大学理学部 情報科学科 パンフレット</a><br /><br />かなりの力作で感動しました。なにせ今まで外向けの色気があまりにない学科だったので。。。 (苦笑)<br /><br />理学部情報科学科と工学系の学科との一番の違いは、パンフレットにもありますが、コンピューターの原理や理論的背景も押さえ(ここが重要)かつ最先端の技術やモノも作り上げていくところでしょうか。そんな雰囲気を、カリキュラムや実際の講義・演習の様子、教授陣のメッセージなどから、感じ取ってもらえることと思います。<br /><br />一点だけ補足。このパンフレットには普通の学科紹介でよく見かける卒業生の就職状況の話がさらっとしか書かれていません。というのも、9割近くの人が大学院の修士課程(情報理工学系研究科コンピュータ科学専攻)に進学するのですが、僕の観測範囲内で、ここを出て就職先に困ったという人に出会ったことがありません。修士1年でまったく就活してなくても、修士2年の9月頃に内定が決まる強者とか。巷の就職苦労話と比べると相当浮世離れしている感じです。これは諸先輩方の功績の賜物なのでしょう(パンフレットにも第一線で活躍されている卒業生の方々が紹介されています)<div class="blogger-post-footer"><script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-59666-1";
urchinTracker();
</script></div>Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-14018096.post-71137625421472648462009-09-21T19:07:00.068+09:002010-04-14T12:49:17.062+09:00ぜひ押さえておきたいコンピューターサイエンスの教科書僕はバイオインフォマティクスという生物と情報の融合分野で研究を行っています。東大の理学部情報科学科にいた頃は同僚のマニアックな知識に驚かされたものですが、そのような計算機専門の世界から一歩外に出ると、それが非常に希有な環境だったことに気が付きました。外の世界では、メモリとディスクの違いから、オートマトン、計算量の概念など、コンピューターサイエンスの基礎知識はあまり知られていませんでした。コンピューターサイエンスを学び始めたばかりの生物系の人と話をしているうちに、僕が学部時代に受けた教育のうち、彼らに欠けている知識についても具体的にわかるようになってきました。<br /><br />バイオインフォマティクスに限らず、今後コンピュータを専門としていない人がコンピューターサイエンスについて学ぶ機会はますます多くなると思われます。そこで、これからコンピューターサイエンスを学ぼうとする人の手助けとなるように、基礎となる参考書をまとめることにしました。<br /><iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&bc1=FFFFFF&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=leosclock-22&o=9&p=8&l=as1&m=amazon&f=ifr&md=1X69VDGQCMF7Z30FM082&asins=0815341067" style="float: right; width: 120px; height: 240px;" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"></iframe><br />ここで紹介する本は主に英語のものですが、初学者でも読みやすいように配慮されているもの選びました。ただし、ここに挙げた書籍を合わせると、生物学系の定番教科書「<a href="http://www.amazon.co.jp/gp/product/0815341067?ie=UTF8&tag=leosclock-22&linkCode=as2&camp=247&creative=7399&creativeASIN=0815341067">Molecular Biology of the Cell</a><img src="http://www.assoc-amazon.jp/e/ir?t=leosclock-22&l=as2&o=9&a=0815341067" alt="" style="border: medium none ! important; margin: 0px ! important;" border="0" height="1" width="1" />」(1392ページ!)よりも分量がはるかに多く、ただ情報を吸収するだけではなく、自ら頭や手を動かして能動的に考えないと理解できないため壁も高めです。挫折しないためには、一度きちんと勉強した研究者のガイドを受けながら読むか、大学の情報系の講義に参加して科目の全体像、重要なポイントを知った上で読むことを「強く」お勧めします。もちろん、自力で読みこなせればそれに越したことはありませんのでぜひ頑張ってみてください。<br /><br />この分野にこれから入ってこようとしている人をdiscourageさせないようにあらかじめ断っておくと、実はここに紹介してある本の内容を完全に理解していなくても実用上はさほど困らないかと思われます。東大の理学部情報科学科でも、教科書を全部読むような教え方ではなく、本の中の重要なエッセンスを取り出したレジュメをもとに講義が行われています。このように分野の雰囲気、全体像を知ることは大切です。というのも、本当に困るのは、必要なときにどこに必要な知識があるかわからなかったり、目の前の問題を解決するためにどのような考え方をすべきかを知らない場合だからです。僕自身の経験でも、大学の講義を受けているときにはちっとも身が入らずほとんど理解していなかったことが、数年後、キーワードを知っていたおかげで、本を通して読まずとも読むべき場所がわかり、内容がすいすい頭に入ってくることが多々ありました。授業のありがたみはこんなときに実感できます。<br /><iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&bc1=FFFFFF&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=leosclock-22&o=9&p=8&l=as1&m=amazon&f=ifr&md=1X69VDGQCMF7Z30FM082&asins=0470233990" style="float: right; width: 120px; height: 240px;" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"></iframe><br /><span style="font-weight: bold;">まずはOSから</span> コンピューターサイエンスは、理論的なものから実用に近いものまでとても応用範囲の幅広い分野です。その基礎として、まず第一にデータ構造やアルゴリズムの知識をまず学ぶべきだと思っていたのですが、それよりも先に、コンピュータを動かしているOSそのものの知識が必要だったのです。情報屋さんは日頃OSに慣れ親しんでいるので、ここが情報系以外の人に理解されていないのが盲点でした。例えば、コンピューター上でプログラムがどう実行されるのか?1つしかないCPUで、複数のアプリケーションがどうして同時に動いているように見えるのか?(プロセス、スレッド、CPUスケジューリング)、データがメモリやファイルにどのように保存されているか。システムコールとは何か。オペレーティングシステムについて学ぶには、Silberschatz先生による「 <a href="http://www.amazon.co.jp/gp/product/0470233990?ie=UTF8&tag=leosclock-22&linkCode=as2&camp=247&creative=7399&creativeASIN=0470233990">Operating System Concepts</a><img src="http://www.assoc-amazon.jp/e/ir?t=leosclock-22&l=as2&o=9&a=0470233990" alt="" style="border: medium none ! important; margin: 0px ! important;" border="0" height="1" width="1" />」が定番で俗に恐竜本とも呼ばれています。アルゴリズムを学ぶ前に、それを動かす大前提となるシステムがどのように動き、どのような性質をもっているのか。情報科学科では、実際にプロセスやスレッドを生成してシェルを実装してみたり、ファイルの読み書きなどを演習しながら、これらの知識を身につけていきます。<br /><iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&bc1=FFFFFF&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=leosclock-22&o=9&p=8&l=as1&m=amazon&f=ifr&md=1X69VDGQCMF7Z30FM082&asins=0619217642" style="float: right; width: 120px; height: 240px;" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"></iframe><iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&bc1=FFFFFF&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=leosclock-22&o=9&p=8&l=as1&m=amazon&f=ifr&md=1X69VDGQCMF7Z30FM082&asins=4320029488" style="float: right; width: 120px; height: 240px;" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"></iframe><span style="font-weight: bold;"><br />計算の理論</span> 計算の数学的な性質について学ぶことは、計算できるものと、できないものの違いを知るために必要です。また、どのくらいの速さ、メモリ量で計算できるか? それらがどのような計算の仕方で計算できる問題なのか?について学びます。具体的にはオートマトン、正規表現、文脈自由文法、チューリングマシン、計算の複雑さ(computational complexity, NP完全問題など)、判定可能性(アルゴリズムの限界、アルゴリズムで解けない問題というのがある)などが含まれます。MITの屈指の名講義と呼ばれるSipser先生の講義を教科書にした「<a href="http://www.amazon.co.jp/gp/product/0619217642?ie=UTF8&tag=leosclock-22&linkCode=as2&camp=247&creative=7399&creativeASIN=0619217642">Introduction to the Theory of Computation</a><img src="http://www.assoc-amazon.jp/e/ir?t=leosclock-22&l=as2&o=9&a=0619217642" alt="" style="border: medium none ! important; margin: 0px ! important;" border="0" height="1" width="1" />」がとても読みやすいのでお勧めです。この本に限っては、日本語訳版も対応の英語付きで丁寧に訳されているので日英での用語の違いに戸惑うこともないでしょう。(注:上記のリンクは初版の日本語訳に張ってありますが、第二版の日本語訳も内容を3冊に分けて出版されています。)計算のクラスを考える必要がある例を挙げると、例えば、正規表現の限界(参考:<a href="http://leoclock.blogspot.com/2009/01/blog-post_27.html">Leo's Chronicle 「正規表現に見切りをつけるとき」</a>)を考える理由がよくわからなかった場合は、この本の内容が参考になります。<br /><iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&bc1=FFFFFF&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=leosclock-22&o=9&p=8&l=as1&m=amazon&f=ifr&md=1X69VDGQCMF7Z30FM082&asins=0716710455" style="float: right; width: 120px; height: 240px;" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"></iframe><br /><br /><br />計算理論に関しては、Garey and Johnson本「<a href="http://www.amazon.co.jp/gp/product/0716710455?ie=UTF8&tag=leosclock-22&linkCode=as2&camp=247&creative=7399&creativeASIN=0716710455">Computers and Intractability: A Guide to the Theory of Np-Completeness (Series of Books in the Mathematical Sciences)</a><img src="http://www.assoc-amazon.jp/e/ir?t=leosclock-22&l=as2&o=9&a=0716710455" alt="" style="border: medium none ! important; margin: 0px ! important;" border="0" height="1" width="1" />」も定番中の定番です。読みやすく(易しいという意味ではなく、簡潔という意味です)、NP完全であることの証明パターンや、そのための巻末のNP完全問題のリストが役に立ちます。この本の「Coping with NP-Complete Problems(難しい問題といかに付き合っていくか)」という章のタイトルは非常に有名で、コンピューターサイエンスという学問を如実に表している表現です。<br /><br /><br /><br /><iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&bc1=FFFFFF&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=leosclock-22&o=9&p=8&l=as1&m=amazon&f=ifr&md=1X69VDGQCMF7Z30FM082&asins=0262533057" style="float: right; width: 120px; height: 240px;" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"></iframe><iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&bc1=FFFFFF&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=leosclock-22&o=9&p=8&l=as1&m=amazon&f=ifr&md=1X69VDGQCMF7Z30FM082&asins=0321295358" style="float: right; width: 120px; height: 240px;" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"></iframe><br /><span style="font-weight: bold;">データ構造とアルゴリズム</span> 離散数学とも呼ばれるこの分野。日本語で平易に書かれた教科書もあるのですが(例えば、<a href="http://www.amazon.co.jp/gp/product/4901683497?ie=UTF8&tag=leosclock-22&linkCode=as2&camp=247&creative=7399&creativeASIN=4901683497">データ構造とアルゴリズム (新・情報 通信システム工学)</a><img src="http://www.assoc-amazon.jp/e/ir?t=leosclock-22&l=as2&o=9&a=4901683497" alt="" style="border: medium none ! important; margin: 0px ! important;" border="0" height="1" width="1" />や、<a href="http://www.amazon.co.jp/gp/product/4274131904?ie=UTF8&tag=leosclock-22&linkCode=as2&camp=247&creative=7399&creativeASIN=4274131904">計算とアルゴリズム (新コンピュータサイエンス講座)</a><img src="http://www.assoc-amazon.jp/e/ir?t=leosclock-22&l=as2&o=9&a=4274131904" alt="" style="border: medium none ! important; margin: 0px ! important;" border="0" height="1" width="1" />など)、やはり、list、hash、red-black tree, ネットワークフロー、グラフ、木構造など主要なデータ構造をカバーしつつ、NP完全性や集合論などの数学的な基礎知識も巻末に儲けられている「<a href="http://www.amazon.co.jp/gp/product/0262533057?ie=UTF8&tag=leosclock-22&linkCode=as2&camp=247&creative=7399&creativeASIN=0262533057">Introduction to Algorithms, Third Edition</a><img src="http://www.assoc-amazon.jp/e/ir?t=leosclock-22&l=as2&o=9&a=0262533057" alt="" style="border: medium none ! important; margin: 0px ! important;" border="0" height="1" width="1" />」が便利です。今月には第3版も出るようです。ただし、内容が豊富で記述も多いため、初学者が通して読む目的には向かない本だとは思います。上に挙げたデータ構造について学んだあと、一通りの手法(Greedy(貪欲)アルゴリズム、分割統治法、Dynamic Programming(DP)、近似、Randomizedアルゴリズムなど)を身につけたい場合は、「<a href="http://www.amazon.co.jp/gp/product/0321295358?ie=UTF8&tag=leosclock-22&linkCode=as2&camp=247&creative=7399&creativeASIN=0321295358">Algorithm Design</a><img src="http://www.assoc-amazon.jp/e/ir?t=leosclock-22&l=as2&o=9&a=0321295358" alt="" style="border: medium none ! important; margin: 0px ! important;" border="0" height="1" width="1" />」の方が講義用に構成されている分読みやすいかと思います。<br /><br /><iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&bc1=FFFFFF&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=leosclock-22&o=9&p=8&l=as1&m=amazon&f=ifr&md=1X69VDGQCMF7Z30FM082&asins=0521880688" style="float: right; width: 120px; height: 240px;" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"></iframe><span style="font-weight: bold;">連続系アルゴリズム</span> 工学的には、離散値だけではなく、実数データを扱ったり、固有値問題や、偏微分方程式をCG法(共役勾配法)で解く、波形データの解析のために高速フーリエ変換(FFT)を使う、統計量の計算、検定など、計算機が活躍する場面が多々存在します。これらの計算は並列化して高速に計算する需要も大きく、そのような連続系の計算を理解するのに役立つのが「<a href="http://www.amazon.co.jp/gp/product/0521880688?ie=UTF8&tag=leosclock-22&linkCode=as2&camp=247&creative=7399&creativeASIN=0521880688">Numerical Recipes 3rd Edition: The Art of Scientific Computing</a><img src="http://www.assoc-amazon.jp/e/ir?t=leosclock-22&l=as2&o=9&a=0521880688" alt="" style="border: medium none ! important; margin: 0px ! important;" border="0" height="1" width="1" />」です。計算を手法とソースコードの双方向から学習できるので、演習向けです。大学の線形代数の内容も、ここにあるような実際の計算までやってみるともっと楽しくなるように思います。最新版ではSVM(Support Vector Machine)やHMM(Hidden Marcov Model)まで言及されているとか。<br /><br /><br /><br /><iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&bc1=FFFFFF&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=leosclock-22&o=9&p=8&l=as1&m=amazon&f=ifr&md=1X69VDGQCMF7Z30FM082&asins=482228266X" style="float: right; width: 120px; height: 240px;" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"></iframe><iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&bc1=FFFFFF&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=leosclock-22&o=9&p=8&l=as1&m=amazon&f=ifr&md=1X69VDGQCMF7Z30FM082&asins=4822282678" style="float: right; width: 120px; height: 240px;" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"></iframe><span style="font-weight: bold;">ハードウェア</span> レジスタとは何か知っていますか? マシン語は? 計算機の中で整数や小数点以下の数はどう表現されているの?などなど、JavaやRubyなど現代の便利なプログラミング言語しか使っていないと見えなくなってしまうハードウェアの世界を学ぶためには「<a href="http://www.amazon.co.jp/gp/product/482228266X?ie=UTF8&tag=leosclock-22&linkCode=as2&camp=247&creative=7399&creativeASIN=482228266X">コンピュータの構成と設計~ハードウエアとソフトウエアのインタフェース 第3版 (上)</a><img src="http://www.assoc-amazon.jp/e/ir?t=leosclock-22&l=as2&o=9&a=482228266X" alt="" style="border: medium none ! important; margin: 0px ! important;" border="0" height="1" width="1" />, <a href="http://www.amazon.co.jp/gp/product/4822282678?ie=UTF8&tag=leosclock-22&linkCode=as2&camp=247&creative=7399&creativeASIN=4822282678">(下)</a><img src="http://www.assoc-amazon.jp/e/ir?t=leosclock-22&l=as2&o=9&a=4822282678" alt="" style="border: medium none ! important; margin: 0px ! important;" border="0" height="1" width="1" />」が良いでしょう。(注:通称パタヘネ本です。ヘネパタはまた<a href="http://www.amazon.co.jp/gp/product/4798114405?ie=UTF8&tag=leosclock-22&linkCode=as2&camp=247&creative=7399&creativeASIN=4798114405">別の本</a><img src="http://www.assoc-amazon.jp/e/ir?t=leosclock-22&l=as2&o=9&a=4798114405" alt="" style="border: medium none ! important; margin: 0px ! important;" border="0" height="1" width="1" />のことです)計算機科学はハードウェアとともに進化してきました。最新のCPUの内部構成を理解するには、レジスタ、計算のパイプライン化、割り込み、キャッシュなどの知識が不可欠ですし、これらを学べる本も、他には見当たらなくなってきました。同じメモリアクセスでもキャッシュに載っている場合とそうでない場合(localityの有無)で相当の性能差があるので、CPUの中身でどのように演算が行われているかを知らないと、CPUの性能を最大限引き出したプログラムは決して書けません。一度は目を通しておくべき本だと思います。<br /><br /><span style="font-weight: bold;">情報論理</span> アルゴリズムを設計したとき、それが正しい結果を出すこと(soundness)、そしてそのアルゴリズムがすべての答えを見つけ出すこと(completeness)を検証します。このようなsoundness/completenessの概念や、述語論理でロジックの等価性を証明したり、逆に背理法などで矛盾を導きだす技術もどこかで学ぶべきだと思います。<a href="http://hagi.is.s.u-tokyo.ac.jp/~hagiya/#lecture">萩谷先生の情報論理の講義資料</a>が手軽に学べて良いと思っていますが、まとまった英語の教科書があればぜひ教えてください(識者の方)<br /><br /><iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&bc1=FFFFFF&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=leosclock-22&o=9&p=8&l=as1&m=amazon&f=ifr&md=1X69VDGQCMF7Z30FM082&asins=0262162091" style="float: right; width: 120px; height: 240px;" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"></iframe><br /><span style="font-weight: bold;">プログラミング言語</span> といってもC++やJavaなどの言語の仕様のことではなく、λ計算、型情報などを用いてプログラムやその意味を数学的に表記する(操作的意味論を用いる)ことで、言語の仕様を正確に定義するのに使えたり、プログラムの意味を変えずに最適化(等価変換)する、また、プログラムが安全に実行されるかどうかを検証できるようにもなります。Pierce先生の書いた<a href="http://www.amazon.co.jp/gp/product/0262162091?ie=UTF8&tag=leosclock-22&linkCode=as2&camp=247&creative=7399&creativeASIN=0262162091">Types and Programming Languages</a><img src="http://www.assoc-amazon.jp/e/ir?t=leosclock-22&l=as2&o=9&a=0262162091" alt="" style="border: medium none ! important; margin: 0px ! important;" border="0" height="1" width="1" />(TAPL)が非常にわかりやすく必要な知識がまとめられた本だと思います。<br /><br />蛇足ですが、近年日本のインターネット界隈で<a href="http://mitpress.mit.edu/sicp/">SICP</a>がプログラミング言語を理論的に学ぶ本として話題になっているのですが、コメント欄で住井先生が指摘されているように、SICPとTAPLではカバーしている世界が違います。僕自身も、この本をベースにした演習をしたり、最後の章にあるようなSchemeでSchemeコンパイラまで作った経験から、SICPだけで関数型言語の勉強をした気になってしまうと視野が狭くなるように思います。関数型言語に慣れたり内部の仕組みを知るにはSICP、操作意味論や型について学ぶにはTAPLが良いでしょう。<br /><br />(注:このプログラミング言語に関する部分は僕の説明や用語の使い方が悪い書き方になっていたため、住井先生の指摘を受けて書き直しました。そのため、下の方にある住井先生のコメントが指していた内容がわからなくなってしまいました。すみません。)<br /><br /><br /><iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&bc1=FFFFFF&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=leosclock-22&o=9&p=8&l=as1&m=amazon&f=ifr&md=1X69VDGQCMF7Z30FM082&asins=0321486811" style="float:right;width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><br /><span style="font-weight: bold;">コンパイラ</span> テキストデータを解析するには書かせない技術です。字句解析、構文解析に始まり、構文木から実行したいコードを作成。コード内で変数の生存範囲を見て最適化を施すなどなど。プログラミング言語を作る以外にも、独自データを表現しやすくするためのデータフォーマットを作ったり、ミニ言語を作って日頃の作業を効率化するなり、身につけると非常に強力な武器になります。<a href="http://www.amazon.co.jp/gp/product/0321486811?ie=UTF8&tag=leosclock-22&linkCode=as2&camp=247&creative=7399&creativeASIN=0321486811">Compilers: Principles, Techniques, and Tools (2nd Edition)</a><img src="http://www.assoc-amazon.jp/e/ir?t=leosclock-22&l=as2&o=9&a=0321486811" alt="" style="border: medium none ! important; margin: 0px ! important;" border="0" height="1" width="1" />、通称Dragon Bookが一応教科書的なポジションを占めているのですが、最初から読むと構文解析すらできないうちに挫折する可能性が高いので注意。おすすめの読み方は、実際に使うツールに合わせて読むこと。例えば、ANTLRを使うならLL(1)文法を、Lex/Yacc(Flex/Bison)を使うならLALR(1)文法を知らないとデバッグすらままならないので、必要に迫られて本の該当箇所を読む使い方が良いように思います。てっとり早く内容を把握するには、<a href="http://nicosia.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/compiler/">萩谷先生のコンパイラの講義資料</a>を参考に。簡潔にまとまっていて、本を読み解くのに役立ちます。<br /><br /><br /><iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&bc1=FFFFFF&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=leosclock-22&o=9&p=8&l=as1&m=amazon&f=ifr&md=1X69VDGQCMF7Z30FM082&asins=0071230572" style="float: right; width: 120px; height: 240px;" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"></iframe><br /><span style="font-weight: bold;">データベースシステム</span> Webやユーザーからデータを集めて管理、表示するWebアプリケーションでは、データベースの存在が必要不可欠になってきました。バイオインフォマティクスでは、毎日テラバイト規模のデータを扱う技術が必要になってきています。データベースに関する教科書は、以前 <a href="http://leoclock.blogspot.com/2009/01/blog-post_07.html">Leo's Chronicle:ぜひ押さえておきたいデータベースの教科書</a>で紹介しました。Raghu本 <a href="http://www.amazon.co.jp/gp/product/0071230572?ie=UTF8&tag=leosclock-22&linkCode=as2&camp=247&creative=7399&creativeASIN=0071230572">Database Management Systems</a><img src="http://www.assoc-amazon.jp/e/ir?t=leosclock-22&l=as2&o=9&a=0071230572" alt="" style="border: medium none ! important; margin: 0px ! important;" border="0" height="1" width="1" />がお勧め。ストレージ管理、データベースの同時更新をさばくためのトランザクション管理、これらの技術は年々重要度を増してきていますし、Google File Systemに代表される分散ストレージや、<a href="http://leoclock.blogspot.com/2009/04/ssd.html">SSDの登場による時代の変化</a>などに対応していくためにも、データベースシステムの仕組みはぜひ押さえておきたい知識です。<br /><span style="font-weight: bold;"><br /><br /></span>ここに紹介した他にも、コンピューターグラフィックス、自然言語処理、機械学習、データマイニング、ウェブ情報処理、ゲノム配列用の文字列検索、索引、圧縮データ構造、Information Retrieval (IR)など、ここでは紹介しきれないほど、コンピューターサイエンスの応用は多岐に渡っています。そして、教科書にある知識を身につけることも大切ですが、より大事なのは、それらを活用して、コンピューターの力を応用できる分野を切り開いていくことだと思います。<br /><br />(このエントリを書いているうちに、自分の知識の浅さや分野の広さにくらくらしてきました。他にもコンピューターサイエンスの基礎として勉強すべき分野、良い教科書があるよ、という情報を教えていただけると幸いです)<br /><br /><span style="font-weight: bold;">関連</span><br /><ul><li><a href="http://www.is.s.u-tokyo.ac.jp/student/lecture.html">東京大学 理学部情報科学科のカリキュラム</a> (このカリキュラムの2〜3年次の内容はカバーしたいと思ったのですが、これだけ並べてもまだ覆いきれてない気がします…)<br /></li></ul><div class="blogger-post-footer"><script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-59666-1";
urchinTracker();
</script></div>Unknownnoreply@blogger.com7tag:blogger.com,1999:blog-14018096.post-57493995265495277602009-09-17T16:30:00.018+09:002009-09-17T17:52:23.994+09:00OMakeで快適に論文執筆:TeX編Windows上でTeXの論文を快適に書くためのTipsを紹介。インストールが必要なものは以下の通り:<div><ul><li><a href="http://omake.metaprl.org/">OMake</a>: ファイルの更新をモニターして自動再ビルドしてくれる優れもの</li><li>TeX一式: 僕は英語論文しか書かないので<a href="http://miktex.org/">MikTeX</a>を使っています。インストールが簡単</li><li><a href="http://magic.aladdin.cs.cmu.edu/wp-uploads/mavpdfopenbin.zip">pdfopen, pdfclose</a>: Acrobat Reader でPDFファイルを開け閉しめするのに使います(MikTexにも同梱されていますが、back機能が使えるこちらの方が便利。参考:<a href="http://magic.aladdin.cs.cmu.edu/2005/07/15/pdfopen-and-pdfclose/">http://magic.aladdin.cs.cmu.edu/2005/07/15/pdfopen-and-pdfclose/</a>)</li></ul>omakeと、pdflatex, pdfopen, pdfcloseがコマンドライン(コマンドプロンプトや<a href="http://www.cygwin.com/">Cygwin</a>シェル)から使えるように、環境変数PATHを設定します。</div><div><br /></div><div>以下は僕の使っているCygwin用の.bash_profileや.zprofileの設定例です:<pre class="prettyprint">export MIKTEX_BIN="/cygdrive/c/Program Files/MiKTeX 2.8/miktex/bin"<br />export OMAKE_BIN="/cygdrive/c/Program Files/OMake/bin"<br />export PATH=$OMAKE_BIN:$MIKTEX_BIN:$PATH</pre>論文のファイルが以下のように配置されていると仮定します:<pre class="prettyprint">project/paper.tex<br />project/paper.bib<br /></pre>準備として、omake --installで、OMakefile、OMakerootファイルを作成します。<pre class="prettyprint">project> omake --install<br /></pre>次に、OMakefileの内容を以下のように編集します。通常はtex -> dvi -> pdf という流れを辿るのですが、より快適に作業するために、pdflatexを使ってtexファイルから直接PDFを生成するように設定しています。<pre class="prettyprint">.PHONY: all install clean preview<br /><br />USEPDFLATEX=true<br />PREFIX=paper<br /><br />PREVIEW_PDF=$(PREFIX)-preview.pdf<br /><br />LaTeXDocument($(PREFIX), $(PREFIX))<br /><br />$(PREFIX).pdf: $(PREFIX).bib<br /><br />preview: $(PREFIX).pdf<br /> pdfclose --file $(PREVIEW_PDF) || true<br /> cp $(PREFIX).pdf $(PREVIEW_PDF)<br /> pdfopen --file $(PREVIEW_PDF) --back<br /><br />.DEFAULT: preview</pre><div>(注: cygwinを使わない場合は、上記のcpコマンドを、copyに置き換えるとよいです)</div><br />omakeを起動します。<pre class="prettyprint">project> omake -P<br /></pre>-Pオプションは、texやbibファイルをモニターして、更新があれば即座に再ビルドしてくれるという機能。AcrobatはPDFファイルを開くとロックしてしまいPDFファイルの上書き更新ができなくなってしまうのですが、pdfclose, pdfopenを使うことで、その問題も解決しています。快適。</div><div><br /></div><div><b>関連</b></div><div><ul><li><a href="http://leoclock.blogspot.com/2006/11/tex.html">Leo's Chronicle: [TeX] 論文執筆のサイクル短縮</a></li></ul></div><div class="blogger-post-footer"><script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-59666-1";
urchinTracker();
</script></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-14018096.post-31827169179244389252009-09-11T23:45:00.009+09:002009-09-12T00:59:04.132+09:00世界のトップ研究者がデータベースの未来を語る - Claremont Report on Database Research5年に一度、データベースのトップ研究者が一か所に集まって、データベースの未来について語る<a href="http://db.cs.berkeley.edu/claremont/">The Clearemont Report on Database Research 2008</a>の記事がCACMに紹介されていました。<div><br /></div><div><a href="http://doi.acm.org/10.1145/1516046.1516062"><b>The Claremont Report on Database Research</b></a><br />(各研究者のプレゼンテーションスライドは<a href="http://db.cs.berkeley.edu/claremont/">こちら</a>から)<br /><div><br /></div><div>大規模データ処理、RDBMSエンジンの見直しの必要性、クラウド、MapReduce、開発者にとってのデータベースの使いやすさ、新しい言語は?、Uncertain data, プライバシーの管理などなど、DBの将来を見据えた意見が盛りだくさんです。</div><div><br /></div><div>どの研究者がどの方向性を打ち出しているのかを記事から読み取れれば、もう立派なデータベース通。そして、錚々たるメンバーのなかになぜかTim O'Reillyが混じっている。。。 </div><div><br /></div><div>とにもかくにも、彼らがこうだというと、間違いなくデータベース研究の世界はこの方向に動いていくので要注目です。</div></div><div class="blogger-post-footer"><script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-59666-1";
urchinTracker();
</script></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-14018096.post-38799464168369550582009-09-10T09:31:00.020+09:002009-09-10T10:56:48.892+09:00研究者の仕事術 - 「いかに働き、いかに生きるか」<iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&bc1=FFFFFF&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=leosclock-22&o=9&p=8&l=as1&m=amazon&f=ifr&md=1X69VDGQCMF7Z30FM082&asins=4758120056" style="float:right; width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>「いかに働き、いかに生きるか」<div><br /><a href="http://www.amazon.co.jp/gp/product/4758120056?ie=UTF8&tag=leosclock-22&linkCode=as2&camp=247&creative=7399&creativeASIN=4758120056">やるべきことが見えてくる研究者の仕事術―プロフェッショナル根性論</a><img src="http://www.assoc-amazon.jp/e/ir?t=leosclock-22&l=as2&o=9&a=4758120056" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br /><div><br /></div><div>最初は「研究者」のための本かと思って購入したのですが、そんなことはありませんでした。会社や組織に縛られて不自由な思いをしていたとしても、自分の人生にとって大切なことはしっかりものにするためのエッセンスが見事に凝縮されています。<br /><div><blockquote><b>研究者として仕事をすべき10の原則</b><br />「興味を持てる得意分野を発見する」<br />「最初は自分で学ぶ」<br />「師匠を持つ」<br />「現場で恥をかく」<br />「失敗を恐れつつも、果敢に挑戦する」<br />「自分の世界で一番になり成功体験を得る」<br />「研究者としての自信をつける」<br />「井の中の蛙であったことに気付き、打ちのめされる」<br />「すべてを知ることはできないことを理解する」<br />「それでも、自分の新しい見識を常に世に問うていく」<br /></blockquote><div>一見当たり前のようでも、自らが紆余曲折を経てこの原則に辿りつくことの大切さは、研究者として共感できるところが多いです。この本のタイトルが、「研究者のための仕事術」ではなく「研究者の仕事術」となっているように、研究者の仕事の仕方を垣間見ることで、研究者以外の人にもぜひ知ってほしい考え方が詰まっています。</div><div><br /></div>ネットでアメリカの有名大学の講義が視聴できるようになった今、なぜ大学や、PhDが必要なのか?こんな素朴な疑問への答えもここにあります。スキルを身につけるための設備を提供するインフラという意味もありますが、もっと大切なことは「人間的成長」の機会を与える場としての大学の役割です。サーチエンジンの力で目的の知識に辿りつくためのパスは短くなったとしても、この本にあるような、自身の「人間的成長」は、段階を踏んでひとつひとつ登っていかなければなりません。<br /><br /></div><div>山積みになるタスク、環境の変化に対する恐れをどう克服するか。自己表現のためのプレゼンテーション力や英語力とは何か。このエントリも、本書のブログをいかに書くかという意見に触発されて書いています。</div><div><br /></div><div>恐らく島岡先生自身の、Cell, Nature, ScienceにPI(Principal Investigator:主任研究者)としてFirst Authorの論文を一本、指導者としてLast Authorで一本という「成功体験」があるからこそ書ける本ですが、その業績に奢ることなく、不安と闘いながらも「一番」を目指して常に勝負し続けている姿がうかがえます。僕自身も、勝負に出ようとしていたり、壁にぶちあたったり、といろいろあるのですが、この本のメッセージがとても励みになっていて、良いタイミングで読めたことに感謝しています。</div><div><br />最初178ページで2,940円という設定に驚きましたが、内容をみると至極納得。このテーマの自己啓発本としては、本当に大事なことが集約されている一冊です。</div><div><br /></div><div><b>関連</b></div><div><ul><li><a href="http://harvardmedblog.blog90.fc2.com/blog-entry-338.html">やるべきことが見えてくる研究者の仕事術 (島岡先生自身のエントリ)</a></li><li><a href="http://leoclock.blogspot.com/2008/11/blog-post_13.html">Leo's Chronicle: これから研究をはじめる人へのアドバイス</a></li><li><a href="http://leoclock.blogspot.com/2009/01/blog-post_03.html">Leo's Chronicle: 東大で学んだ「勉強」の意味 - 「教わる」から「学ぶ」へ</a></li><li><a href="http://leoclock.blogspot.com/2009/04/ullman.html">Leo's Chronicle: 学生を成功に導くアドバイス - Ullman先生からのアドバイス</a></li></ul></div></div></div><div class="blogger-post-footer"><script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-59666-1";
urchinTracker();
</script></div>Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-14018096.post-45248223851174299702009-08-31T11:35:00.017+09:002009-08-31T12:41:10.518+09:00民主党マニフェストのテストコードプログラミングの世界ではコードの動作を確認するために「テストコード」を書きます。仕様の変更などでコードを大幅に修正する機会は多いのですが、テストコードがあれば重要な機能が動かなくなった場合でも、すぐに確認できます。政治の世界でも、マニフェストの実現度合いを確認するための「テストコード」が必要ではないでしょうか。<br /><br />テストコードを動かしてみると以下のようになります。今はマニフェストの実装(実現)段階なので、もちろん真っ赤(すべて動いていない状態)です。<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjd-4G_avSxN1uodJ8u7p2utSi-QYbRtWNFp6irda2GT4AfPt8MsN5fHpJKJbESNNgHOxtwdLAaH0YYSb13Bfp14klQx6O0Apo-E0mc9llSRebCuOKCeiZjr5ILe40R1Ek0x_JtgQ/s1600-h/manifesto-test.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 465px; height: 596px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjd-4G_avSxN1uodJ8u7p2utSi-QYbRtWNFp6irda2GT4AfPt8MsN5fHpJKJbESNNgHOxtwdLAaH0YYSb13Bfp14klQx6O0Apo-E0mc9llSRebCuOKCeiZjr5ILe40R1Ek0x_JtgQ/s1600/manifesto-test.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5375951842650669202" /></a><br /><br />テストをすべてパスすると、表示は緑になるはずです。<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLstryLmf1dpJhrH1PrVGxNIMfgoJR6hYnGEVaYporoPj5ETvszcGMoumr-WUXvfj_J34KSwh_Tyy4UYQVMtPKnYdDVkOuiBxM1vTZAz2u7jV04ejpkyyEmUl-V6EMDGBx94f__Q/s1600-h/manifesto-success.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 463px; height: 260px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLstryLmf1dpJhrH1PrVGxNIMfgoJR6hYnGEVaYporoPj5ETvszcGMoumr-WUXvfj_J34KSwh_Tyy4UYQVMtPKnYdDVkOuiBxM1vTZAz2u7jV04ejpkyyEmUl-V6EMDGBx94f__Q/s1600/manifesto-success.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5375954168902439698" /></a><br /><br />このようなテストコードがあると、政治の解釈、問題点がゆがめられていないかを、その都度確認していくことができます。一票を投じることも大切ですが、一般に分かりやすい部分しか報道しないマスコミに頼らず、各々が持つ専門的な知識(育児、教育、研究、経済などなど)を活用して、自らの目で政治が行われる様を監視していくことが大事だと思います。<br /><br />このブログを読んでくれている皆さまも、自分が政治に期待するものを「テストコード」の形でメモしていってはいかがでしょうか?<br /><br />ソースコードはこちら:<br /><pre class="prettyprint"><br />import static org.junit.Assert.*;<br />import org.junit.Test;<br /><br />public class ManifestoTest<br />{<br /> @Test<br /> public void 子ども手当・出産支援() {<br /> fail("保育所の確保など、職を失わずに子育てできるようにはなってない");<br /> }<br /><br /> @Test<br /> public void 公立高校の無償化() {<br /> fail("本当は大学まで親の所得に関わらず通える仕組みが必要");<br /> }<br /><br /> @Test<br /> public void 年金制度改革() {<br /> fail("無責任がまかり通った原因と責任の追求、再発防止の仕組みが必要");<br /> }<br /><br /> @Test<br /> public void 医療・介護の再生() {<br /> fail("過剰労働・安給料で勤務医や介護を担うのは無理です");<br /> }<br /><br /> @Test<br /> public void 農業の個別所得保障() {<br /> fail("国内農家を優遇して、国外の安くて安全な食べ物を輸入できなくなると、消費者にとってはマイナス");<br /> }<br /><br /> @Test<br /> public void 暫定税率の廃止() {<br /> fail("省庁の聖域である特別会計に本当にメスを入れてくれるのか?");<br /> }<br /><br /> @Test<br /> public void 高速道路の無料化() {<br /> fail("報道ステーションでは、民主よりの無料化提唱者より、猪瀬氏の方がまともだった。。。");<br /> }<br /><br /> // 個人的な願い<br /> @Test<br /> public void 選択的夫婦別姓() {<br /> fail("何年待たせるのか");<br /> }<br />}<br /></pre><span class="Apple-style-span" style="font-family:-webkit-monospace;font-size:100%;"><span class="Apple-style-span" style=" white-space: pre;font-size:13px;"><br /></span></span>(上のコードは適当に書いていますが、実は、この「テストコード」の中身をどう実装していくかも大きな問題)<div><br /><b>関連</b><br /><ul><li><a href="http://leoclock.blogspot.com/2009/03/blog-post_13.html">Leo's Chronicle: こどもはどこにいるの?</a></li><li><a href="http://leoclock.blogspot.com/2009/07/blog-post.html">Leo's Chronicle: 民主党マニフェストに選択的夫婦別姓が盛り込まれる?</a></li></ul></div><div class="blogger-post-footer"><script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-59666-1";
urchinTracker();
</script></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-14018096.post-1641792312283171692009-08-19T13:14:00.008+09:002009-08-19T13:59:34.805+09:00SSD投入でDBMSのココが変わる! - WEB+DB PRESS vol. 52<iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&bc1=FFFFFF&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=leosclock-22&o=9&p=8&l=as1&m=amazon&f=ifr&md=1X69VDGQCMF7Z30FM082&asins=4774139300" style="width:120px;height:240px; float:right;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>SSDを使うとDBMSはどう変わる?徹底検証した記事を書きました!<div><br /><a href="http://www.amazon.co.jp/gp/product/4774139300?ie=UTF8&tag=leosclock-22&linkCode=as2&camp=247&creative=7399&creativeASIN=4774139300">WEB+DB PRESS Vol.52</a><img src="http://www.assoc-amazon.jp/e/ir?t=leosclock-22&l=as2&o=9&a=4774139300" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> 予約受付中です。<br /><br />実際に最新最速のSSD、<a href="http://www.intel.com/design/flash/nand/extreme/index.htm">Intel X25-E</a>を使ってDBMSのパフォーマンスを計測するなど、わくわくしながら記事を書くことができました。SSDの実力に驚きつつも、使い方を間違えるとHDDより遅くなる? など新しい発見もあり。 </div><div><br /></div><div>そして、SSDとHDDの違いがどのようにデータベースの性能に影響するのか?ディスク上のデータ構造(ヒープ、B+-treeなど)からバッファ管理など、データベースシステムの中身を解剖してわかりやすく解説しています。読みやすくなったのは丁寧に添削してくださった担当様のおかげです。感謝。</div><div><br /></div><div>ディスクを活用したデータのソーティング(External merge sortなど)に加え、2009年6月にEdgar F. Codd Innovation Awardを受賞した喜連川先生のHash joinのアルゴリズムにもこれ以上ないタイミングで言及。MapReduceなんて、20年以上も前にDB屋さんがとっくに発明していて偉いんだ(?)などと、内容も盛りだくさんです。(最初8ページくらいの予定が、19ページ分にもなりました。。。)</div><div><br /></div><div>SSDについてだけでなく、DBMSのチューニングを極めるなら、ぜひおさえておきたい知識が満載です。SSD時代になっても、B+-treeなどのDB技術は色褪せることなくまだまだ輝きつづけます。</div><div><br /></div><div>乞うご期待。</div><div><br /></div><div><b>関連記事</b></div><div><ul><li><a href="http://leoclock.blogspot.com/2009/05/blog-post_11.html">Leo's Chronicle: データベースシステム入門:「データベースは体育会系図書館?」 </a></li><li><a href="http://leoclock.blogspot.com/2009/04/ssd.html">Leo's Chronicle: Flash-Based DBMSの最前線 </a></li><li><a href="http://leoclock.blogspot.com/2009/01/blog-post_07.html">Leo's Chronicle: ぜひ押さえておきたいデータベースの教科書</a></li></ul></div><div><br /></div><div><br /></div><div class="blogger-post-footer"><script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-59666-1";
urchinTracker();
</script></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-14018096.post-2595220276100324292009-08-03T11:37:00.003+09:002009-08-03T11:47:07.477+09:00ゲノムひろば2009 in アキバ<div style="TEXT-ALIGN: center; MARGIN: 0px auto 10px"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvrnbqE6zaFg2mzc-GXDSTMUVP3T9NnhItNAqb4ohUDofGe_se-NtiA_xwvMkQNZt61ypsTGAisyDOlTdHyLCiZrED_Umh7fPGD3kort91ScrnH-EXVoQSN98ExJqQ3JmYQjqOVg/s1600-h/DSC00208.JPG"><img border="0" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvrnbqE6zaFg2mzc-GXDSTMUVP3T9NnhItNAqb4ohUDofGe_se-NtiA_xwvMkQNZt61ypsTGAisyDOlTdHyLCiZrED_Umh7fPGD3kort91ScrnH-EXVoQSN98ExJqQ3JmYQjqOVg/s320/DSC00208.JPG" /></a> </div><br />「<a href="http://hiroba.genome-sci.jp/">ゲノムひろば2009 in アキバ</a>」に家族で遊びに行ってきました。写真は<a href="http://hiroba.genome-sci.jp/genome2009/pdf/j_29.pdf">たまねぎをすりおろしてゲノムを採取する実験</a>の様子。きらきらの糸状のものがゲノム(の束)らしいです。肉眼で見えるくらいまとまるとは。すごいすごい。<div class="blogger-post-footer"><script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-59666-1";
urchinTracker();
</script></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-14018096.post-48659929595283569872009-08-03T11:22:00.003+09:002009-08-03T11:31:01.699+09:00美ら海水族館@銀座ソニービル<div style="TEXT-ALIGN: center; MARGIN: 0px auto 10px"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgl0TXAQVocEtYJO_3jTEvoAG3MVG41fvqcELUl2lebbr6qkKAALLHwewwJyZsOjmG7xzEGLYdNUsRBQil0J9OR1hG2ATkiibk4MqkzSmD3cCpgqk3OG7GBaHsk0EKJQfR8jsMxVA/s1600-h/DSC00203.JPG"><img border="0" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgl0TXAQVocEtYJO_3jTEvoAG3MVG41fvqcELUl2lebbr6qkKAALLHwewwJyZsOjmG7xzEGLYdNUsRBQil0J9OR1hG2ATkiibk4MqkzSmD3cCpgqk3OG7GBaHsk0EKJQfR8jsMxVA/s320/DSC00203.JPG" /></a> </div><div style="clear:both;">先日、毎年恒例の「<a href="http://www.sonybuilding.jp/aqua09/">Sony Aquarium 沖縄美ら海(ちゅらうみ)水族館</a>」(銀座ソニービル)に行ってきました。写真はトラフザメ。こんなにガラス際に寄られると、まるでこちらが観察されているようです。。。</div><div class="blogger-post-footer"><script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-59666-1";
urchinTracker();
</script></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-14018096.post-12569511290850528252009-07-31T20:25:00.004+09:002009-07-31T20:29:12.019+09:00あなたのやる気を引きだす3つのレンズ<div>(昔、Harvard Business Reviewに乗っていた記事の引用。Manage Your Energy Instead of Time and Rejuvenate。仕事に対する見方をスイッチし、やる気をコントロールするのに便利。あとで訳します)</div><div><br /></div><div>Emotional Energy</div><div><ul><li>Defuse negative emotions— irritability, impatience, anxiety, insecurity— through deep abdominal breathing.</li><li>Fuel positive emotions in yourself and others by regularly expressing appreciation to others in detailed, specific terms through notes, emails, calls, or conversations</li><li>Look at upsetting situations through new lenses. For example ...</li></ul></div><div><ol><li>Adopt a “reverse lens” to ask, “What would the other person in this conflict say, and how might he be right?”</li><li>Use a “long lens” to ask, “How will I likely view this situation in six months?”</li><li>Employ a “wide lens” to ask, “How can I grow and learn from this situation?”</li></ol></div><div class="blogger-post-footer"><script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-59666-1";
urchinTracker();
</script></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-14018096.post-85086754466365918272009-07-30T13:27:00.020+09:002009-08-03T12:16:07.608+09:00未来を予測する一番よい方法は、自ら未来を創ることだ<div><a href="http://www.nii.ac.jp/userdata/openhouse/h21/streaming/keynote_ishii.asx">石井先生の基調講演</a>で紹介されていた言葉:</div><blockquote><a href="http://www.smalltalk.org/alankay.html">The best way to predict the future is to invent it. - Alan Kay </a><div> (未来を予測する一番よい方法は、自ら未来を創ることだ)</div></blockquote><div></div><div><a href="http://en.wikipedia.org/wiki/Alan_Kay">Alan Kay</a>は、今や常識となったオブジェクト指向プログラミング(1960-1970年代ごろ)や、ウィンドウを重ねるGUI、ノートブック型のコンピュータ(Dynabook, 1968)など、現在のパソコンの基となるアイデアを考案してきました。それらの功績から2003年にはACM Turing賞(いわば、Computer Scienceのノーベル賞)を受賞しています。</div><div><br /></div><div>彼がこれらのアイデアを考案して40年後の今、僕の目の前にはウィンドウがあり、オブジェクト指向の考え方を使ってプログラムを書いています。彼の言葉は、まことにむべなるかなと思わざるをえません。</div><div class="blogger-post-footer"><script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-59666-1";
urchinTracker();
</script></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-14018096.post-23516035377572457262009-07-28T13:16:00.017+09:002009-07-28T15:59:57.803+09:00民主党マニフェストに選択的夫婦別姓が盛り込まれる?(以下の記事は民主党のマニフェストと、政策集INDEX2009を混同して書いたものです。まだこの2種類の扱いの違いが不明瞭なので、どう反応して良いか扱いに困っています。追記:結局、朝日の記事がいたずらに反感を煽っていただけなのが分かりました。最後にまとめてあります。)<br /><br />7月15日の朝日新聞の記事にて、民主党が選択的夫婦別姓をマニフェスト、つまり公約に明記するのを見送る方針を決めたとの記事がありました。(ニュースサイトは数カ月したら記事を消してしまうので、引用しておきます)<div><blockquote>民主党は、総選挙マニフェスト(政権公約)で、選択的夫婦別姓制度を柱とした民法改正の明記を見送る方針を決めた。...(中略) ある幹部は「これまでは野党だから(否決前提に)提出できた」と説明したという。政権政党となれば、実現をめぐって党内の推進、反対両派の対立が過熱しかねないとの懸念があるようだ。<i>(</i><a href="http://www.asahi.com/politics/update/0714/TKY200907140416.html"><i>民主公約、夫婦別姓明記見送り 党内に根強い慎重論 asahi.com</i></a><i>)</i></blockquote></div><div><br /></div><div>この記事の内容に関して<a href="http://b.hatena.ne.jp/entry/www.asahi.com/politics/update/0714/TKY200907140416.html">はてなブックマークのコメント欄では非難が飛び交っていました</a>。<a href="http://d.hatena.ne.jp/penguinsnest/20090715/1247618273">10年以上にもわたって法案を提出していた姿勢は何だったのか?</a>と。後日、朝日新聞の投書欄でも、この決定に失望したとの趣旨の意見がありました。しかし、先日発表されたマニフェスト(に伴う政策集INDEX)では、以下のようにしっかりと選択的夫婦別姓の導入が明記されています。</div><div><br /></div><div><div></div><blockquote><div><a href="http://www.dpj.or.jp/policy/manifesto/seisaku2009/01.html#%E9%81%B8%E6%8A%9E%E7%9A%84%E5%A4%AB%E5%A9%A6%E5%88%A5%E5%A7%93%E3%81%AE%E6%97%A9%E6%9C%9F%E5%AE%9F%E7%8F%BE"><b>選択的夫婦別姓の早期実現</b></a></div><div><a href="http://www.dpj.or.jp/policy/manifesto/seisaku2009/01.html#%E9%81%B8%E6%8A%9E%E7%9A%84%E5%A4%AB%E5%A9%A6%E5%88%A5%E5%A7%93%E3%81%AE%E6%97%A9%E6%9C%9F%E5%AE%9F%E7%8F%BE"><br /></a></div><div><a href="http://www.dpj.or.jp/policy/manifesto/seisaku2009/01.html#%E9%81%B8%E6%8A%9E%E7%9A%84%E5%A4%AB%E5%A9%A6%E5%88%A5%E5%A7%93%E3%81%AE%E6%97%A9%E6%9C%9F%E5%AE%9F%E7%8F%BE">民法を改正し、選択的夫婦別姓等を導入します。</a></div><div><a href="http://www.dpj.or.jp/policy/manifesto/seisaku2009/01.html#%E9%81%B8%E6%8A%9E%E7%9A%84%E5%A4%AB%E5%A9%A6%E5%88%A5%E5%A7%93%E3%81%AE%E6%97%A9%E6%9C%9F%E5%AE%9F%E7%8F%BE"><br /></a></div><div><a href="http://www.dpj.or.jp/policy/manifesto/seisaku2009/01.html#%E9%81%B8%E6%8A%9E%E7%9A%84%E5%A4%AB%E5%A9%A6%E5%88%A5%E5%A7%93%E3%81%AE%E6%97%A9%E6%9C%9F%E5%AE%9F%E7%8F%BE">現在日本では、本人が希望しても夫婦別姓は認められておらず、婚姻した夫婦の96%で女性が改姓していますが、仕事上の事情から結婚前の姓を名乗り続けたい、生来の姓を自己のアイデンティティと感じるなどのさまざまな理由で夫婦別姓を望む人が選択できる制度を求める声が若い世代を中心に増えています。民主党がこれまで提出してきた民法改正案では、婚外子(非摘出子)の相続差別をなくすこと、再婚禁止期間を100日に短縮することも盛り込んでいます。</a> <i>(2009年 民主党 政策集 INDEX 2009)</i></div></blockquote><br /><div>朝日の記事が巻き起こしたあの騒動はなんだったのか。この記事があったから「見送り」をやめたのか、そもそも記事がいい加減だったのか。もはや判断できなくなってしまいました。自分の目でマニフェストを確認しなければ、「民主は野党だから好き放題言ってこれた」という印象を拭えないままだったことでしょう。</div><div><br /></div><div>記事の内容に反する結果となったにも関わらず、<a href="http://www2.asahi.com/senkyo2009/news/">asahi.comの総選挙特集ページ</a>には今回の夫婦別姓の件をフォローする記事もなく、まるで自分たちが持ち上げた政策の話題などなかったかのように、諸手当や減税の話のみを取り上げています。</div><div><br /></div><div>議論の対象をメディア任せにしていてはいけないことが、本当によくわかる例でした。</div><div><blockquote><a href="http://twitter.com/taroleo/status/2176116920">はてなを見ていると、hot ≠ valuable というのが良くわかる。転じて、政策の議論も、hot ≠ valuable だと感じる。議論の対象をメディア任せにしていてはいけない。<i>Twitter / Taro L. Saito</i></a></blockquote>いまの新聞は自らが紹介した記事の内容に関して、お世辞にも「真摯(しんし)」とは言えません。例えば、紹介した記事をウェブ上から削除してしまうため、自ら過去の記事を引用して振り返ることはありません。そのため、内容の真偽ともども、テーマに沿って議論を深める機能などが著しく欠けてしまいます。ただし、ここで必要なのは記事の訂正ではありません。<a href="http://www.blogger.com/%E3%80%8C%E6%AD%A3%E7%9B%B4%E3%80%8D%E3%81%A7%E3%81%82%E3%82%8B%E5%89%8D%E3%81%AB%E3%80%8C%E7%9C%9F%E6%91%AF%E3%80%8D%E3%81%A7%E3%81%82%E3%82%8C">『「正直」である前に「真摯」であれ』</a>という記事で述べましたが、間違いを認めるとともに、自らが持ち上げた話題に関して言及を続ける姿勢こそが、今メディアに必要なものだと考えます。</div><div><br /></div><div><br /></div><div>(追記)</div><div>誤解の原因がわかりました。<a href="http://www.dpj.or.jp/policy/manifesto/images/Manifesto_2007.pdf">2007年の民主党のマニフェスト</a>を見ても、<a href="http://www.dpj.or.jp/special/seisaku_list300/index.html">政策リスト</a>には「選択的夫婦別姓」が盛り込まれているものの、端的にまとめた政権公約であるマニフェストの方には、選択的夫婦別姓の話は入っていません。 2009年も同様です。これなら、プレゼンテーションの仕方が一貫しているので納得できます。</div><div><br /></div><div>選択的夫婦別姓は、実際に不便を被っていないとその必要性が実感できない政策です。これを前面にだすと、おそらく大半の人にとって結婚したら夫の姓になるのが常識の今の日本では、いたずらに不安を助長するようなものです。木を見て森を見ずという言葉があるように、細事を先に説明してしまうと本質が見えにくくなるので、このような手法はプレゼンテーションではよく使われます。</div><div><br /></div><div>そうすると、夫婦別姓の実現を待ち望む人たちの反感を煽る悪意があったのは、むしろ朝日新聞の記事ということになります。過去にもマニフェストに夫婦別姓が記載された事実はないのですから。そんな記事に踊らされた自分が悔しい。</div></div><div class="blogger-post-footer"><script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-59666-1";
urchinTracker();
</script></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-14018096.post-76322096840479994092009-06-30T18:30:00.010+09:002009-06-30T18:48:05.593+09:00新しいデスク<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIJFvANeV5cIOH1uDlp4vWEXwNQwal2q6H6_67jowjt_Q17Qdi-ulhx5i3clT1HTBQvcepWsIEjxdnwXUKU56VEA7iHh-qXnLfN-6CL83t2zYOnMGTpPtvXvObxzusj9QZmr0pWg/s1600-h/desk.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIJFvANeV5cIOH1uDlp4vWEXwNQwal2q6H6_67jowjt_Q17Qdi-ulhx5i3clT1HTBQvcepWsIEjxdnwXUKU56VEA7iHh-qXnLfN-6CL83t2zYOnMGTpPtvXvObxzusj9QZmr0pWg/s400/desk.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5353054690312218018" /></a><br /><div style="text-align: left;">職場の部屋とデスクを引っ越ししました。隣の部屋に移動するだけなのに、5時間もかかってしまい、今日の仕事はほとんど引っ越しだけで終了。</div><div style="text-align: left;"><br /></div><div style="text-align: left;">落ち着いて作業できるようになるまで、もう少し慣れが必要かも。</div><div class="blogger-post-footer"><script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-59666-1";
urchinTracker();
</script></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-14018096.post-66214499742287076622009-06-25T17:01:00.031+09:002009-06-25T19:38:18.575+09:00ウェブ時代に成果をあげるための心得<div>ウェブ時代において、質の高い仕事をし、大きな成果をあげようとする人のための心得:<br /></div><div><ul><li>面白いからといってやみくもに読むのはやめなさい。ウェブでは、あなたが読むよりも速く情報が増殖していく</li></ul><ul><li>人の目を介して編集された 質の高い文章を読むようにしなさい</li></ul><ul><li>人生は短い。多くの意見を聞くのではなく、少数の、物事を深く考えよく洗練された人と議論すること</li></ul><div><br />(1996年に<a href="http://en.wikipedia.org/wiki/Turing_Award">チューリング賞</a>を受賞した、<a href="http://en.wikipedia.org/wiki/Amir_Pnueli">Amir Pnueli</a>の言葉だそうです)</div></div><div class="blogger-post-footer"><script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-59666-1";
urchinTracker();
</script></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-14018096.post-25044015197057273862009-06-10T17:12:00.010+09:002009-06-10T22:14:37.547+09:00炭鉱のカナリア論文書きなどで論理を練る訓練をしていると、文章には、指す対象を「あいまい」にしたまま扱える「表現力の強さ」がある、と気付くようになりました。<div><div><br /></div><div>論文ではあいまいな表現はすぐに潰しますが、ブログで書く文章では、対象を限定しすぎてしまわないように敢えて「あいまい」にしたり、意図的に、根拠などが「あいまい」な事柄をもとに「あいまい」なことを書いて、AでBになり、だからCという一直線のロジックだけではうまくとらえられないものを表現したりしています。 なので、曖昧かどうかの区別は、おそらく普通の人より随分とはっきりしていて、読み手がどの部分に「あいまいさ」を感じて、ひっかかるかは、把握しているつもりです。</div><div><br /></div><div>それゆえ、はてブなどで、他の人にとっては「あいまい」な表現だと気づかずに、自分の世界の中だけしか意味の通じない文章を、敵意むき出しで投げかけられると悲しくなります。なぜなら、そのような言葉を投げかける人にとっては何も「あいまい」ではないから。文章の意味は「あいまい」だけれど、敵意だけは伝わる。防ぐのが難しい強力な武器。</div><div><br /></div><div>この様子を「<a href="http://ja.wikipedia.org/wiki/%E3%82%AB%E3%83%8A%E3%83%AA%E3%82%A2#.E6.AF.92.E3.82.AC.E3.82.B9.E6.A4.9C.E7.9F.A5">炭鉱のカナリア</a>」とは、よく言ったものだと思う。</div><div><blockquote><a href="http://twitter.com/mochioumeda/statuses/1097360937">「反響全部読み」は長い人生にはプラス(修行みたいなもの)。とくに創作者にとっては。ただし強烈な副作用(解毒に数年を要す)を覚悟する必要あり。炭坑のカナリアより</a></blockquote></div><div>山形浩生氏のように、徹底的に「あいまい」な部分や、相手の至らなさを糾弾して、相手を打ち負かすというのも一つの手だとは思いますが、僕の場合は、そこでまともに「相手にする」ことで得られるものに期待できず、やられっぱなしになるばかりで疲れだけが溜まります。</div><div><br /></div><div>これは、ある意味「相手に議論する価値を認めていない」失礼な態度なのですが、「文章が伝えるもの」を意識しないと良い循環が生まれない、<a href="http://leoclock.blogspot.com/2009/06/blog-post_10.html">「残念」に「残念」という禅問答</a>の域を越えられない、僕が<a href="http://leoclock.blogspot.com/2009/06/blog-post.html">先のエントリ</a>で言葉にしたかったのは、まさにそういうことなんです。(これも「あいまい」な表現ですね)</div><div><br /></div></div><div class="blogger-post-footer"><script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-59666-1";
urchinTracker();
</script></div>Unknownnoreply@blogger.com0