タグ

ブックマーク / leoclock.blogspot.com (21)

  • ぜひ押さえておきたいコンピューターサイエンスの教科書

    僕はバイオインフォマティクスという生物と情報の融合分野で研究を行っています。東大の理学部情報科学科にいた頃は同僚のマニアックな知識に驚かされたものですが、そのような計算機専門の世界から一歩外に出ると、それが非常に希有な環境だったことに気が付きました。外の世界では、メモリとディスクの違いから、オートマトン、計算量の概念など、コンピューターサイエンスの基礎知識はあまり知られていませんでした。コンピューターサイエンスを学び始めたばかりの生物系の人と話をしているうちに、僕が学部時代に受けた教育のうち、彼らに欠けている知識についても具体的にわかるようになってきました。 バイオインフォマティクスに限らず、今後コンピュータを専門としていない人がコンピューターサイエンスについて学ぶ機会はますます多くなると思われます。そこで、これからコンピューターサイエンスを学ぼうとする人の手助けとなるように、基礎となる参

    kuenishi
    kuenishi 2016/02/11
  • 良いプログラマになるための5つのコツ

    先日「プログラマの履歴書」という記事で「コンピューターを使って世の中をほんの少し便利にすようとする」ことが良いプログラマになるきっかけと書きました。先日「どうしたらプログラミングができるようなるか」という質問を受けたので、参考になればと思いもう少し掘り下げてみることにします。 1. 「どの言語を学べば良いか」という問いから離れる 「ノーベル賞はこうして決まる」というには、セレンディピティ(serendipity: 偶然から生まれる偉大なる発見)という言葉が頻繁に登場します。ノーベル賞は狙って取るものではなく、科学への貢献に邁進するなかで生まれてくるものだと。 その一方、「Serendipity favors the prepared mind (偉大な発見は、準備ができている頭脳を好む)」とも言われます。プログラミングを始めるにあたってどんな言語を学べば良いかという問いに対しては「何が将

    kuenishi
    kuenishi 2015/09/09
    あれ、おかしいな、俺は全部実践してるハズなのになぁ…
  • OMakeで快適に論文執筆:TeX編

    Windows上でTeXの論文を快適に書くためのTipsを紹介。インストールが必要なものは以下の通り:OMake: ファイルの更新をモニターして自動再ビルドしてくれる優れものTeX一式: 僕は英語論文しか書かないのでMikTeXを使っています。インストールが簡単pdfopen, pdfclose: Acrobat Reader でPDFファイルを開け閉しめするのに使います(MikTexにも同梱されていますが、back機能が使えるこちらの方が便利。参考:http://magic.aladdin.cs.cmu.edu/2005/07/15/pdfopen-and-pdfclose/)omakeと、pdflatex, pdfopen, pdfcloseがコマンドライン(コマンドプロンプトやCygwinシェル)から使えるように、環境変数PATHを設定します。 以下は僕の使っているCygwin用の.

  • 民主党マニフェストのテストコード

    プログラミングの世界ではコードの動作を確認するために「テストコード」を書きます。仕様の変更などでコードを大幅に修正する機会は多いのですが、テストコードがあれば重要な機能が動かなくなった場合でも、すぐに確認できます。政治の世界でも、マニフェストの実現度合いを確認するための「テストコード」が必要ではないでしょうか。 テストコードを動かしてみると以下のようになります。今はマニフェストの実装(実現)段階なので、もちろん真っ赤(すべて動いていない状態)です。 テストをすべてパスすると、表示は緑になるはずです。 このようなテストコードがあると、政治の解釈、問題点がゆがめられていないかを、その都度確認していくことができます。一票を投じることも大切ですが、一般に分かりやすい部分しか報道しないマスコミに頼らず、各々が持つ専門的な知識(育児教育、研究、経済などなど)を活用して、自らの目で政治が行われる様を監

    民主党マニフェストのテストコード
  • 研究者はどれくらい論文を読むのか?

    自宅にあった、ここ5年間に読んだ論文を集めたらこれくらいになりました。(ちなみに全部両面印刷。ラボにも、もう1山分?くらいあります) 今や論文のPDFファイルはネットで簡単に入手できる時代で(ただし英語に限る)、画面の大きなディスプレイなら、そのまま読んでも特に不自由がありません。(なぜ印刷するかというと、電車の中やカフェで読んだり、お風呂で読んでも安心だったり(え?)、読み終わったら子どもに落書きさせたり(ええ?)するためです)。とにもかくにも、印刷された論文は家に置いておくとスペースをとってしまうので、1ページ目だけ読んだ記録用に残し、後は廃棄するために、子どもがホチキスの針をはがしてくれました。いい子。

    研究者はどれくらい論文を読むのか?
    kuenishi
    kuenishi 2009/06/08
    量もそうだけど、中身を理解してるか、とか、重要な論文か、とかの方が大事(当然分かってると思うけど)。
  • NHK高校講座 世界史がすごい

    NHK高校講座 世界史 ライブラリーパレスチナの紛争を生み出した元凶など、いまさら聞けないと思っている方にもお薦めです。(パレスチナ問題に関しては、The Economist誌なども歴史を振り返る記事を書いていましたね。「The Arabs and Israel - The hundred years' war」)過去を知らずして、今を理解することは到底できません。NHKのように映像のアーカイブを残す試みは素晴らしいと思います。 映像があるのとないのでは興味の持続の仕方が全然違います。山川の詳説世界史研究などの内容と比べるとテレビで扱われている分量は少ないのですが(資料映像など、よりも充実している面もありますが)、やはり、これだけの分量の歴史解説を何の刺激もなく読むというのは大変なもので、より詳しく知る前のappetizer(欲をそそるもの)としてNHK高校講座は十分活用できるのではな

  • もしもサーバー管理ができたなら

    大学の研究の都合でサーバーの構築が必要に。Linux未経験の女子学生が立候補。彼女をバックアップするためにラボ一丸となって準備に奔走する。けれど、後に、他にサーバー管理ができる子がいたことがわかって、たいそうショックを受け卒倒しそうになりました、ということです。 この「サーバー管理ができることを隠す」という気持ちは、なんとなくわかります。僕自身も学生時代、能ある鷹は爪を隠す、とまでは言わないけれど、同じ雰囲気を感じたためか、サーバー管理ができることを大っぴらにはしていなかったように思います。現に、大学時代の友人の中には、僕がサーバー管理ができることを今更ながらに知って驚いた人もいます。

    kuenishi
    kuenishi 2009/06/01
  • 論文の先にあるもの

    研究が論文を書いて終わりでないなら、こんな心配をする必要はないはず。 自明なことを述べた論文は掲載されない(中略)「原理が複雑であまり便利でないシステム」の方が論文として 発表されやすくなってしまう 論文査読のシステムでは、確かに、査読者のめぐりあわせ次第で、重要な技術でも適切に評価されないことがある。けれど、もし当に便利でないのならば、将来的に引用されることもなく、実用化もされず、論文の海の中に埋没するだけではないだろうか。 当に便利なものだけを学会・論文誌に載せたい心情は理解できるが、実際、技術当の便利さがわかるのは、研究の結果が世に出てからのこと。つまり、便利さや将来的な世の中へのインパクトというのは、未来に起こる話であって、研究成果を発表する時点でそれを実証せよというはなんとも酷なように感じる。 (査読で便利なシステムを取り上げられない)問題を解決するのは簡単で、 論文の発

  • Leo's Chronicle: データベースシステム入門:「データベースは体育会系図書館?」

    (データベースシステムとその研究の世界を一般の人にわかりやすく伝えるため、「図書館」をモデルにした話を書いてみました。試験に出そうな(?)部分は太字で強調してあります。) 「データベース」という言葉は、データの集まりという意味です。データベースシステムの研究では、例えて言うなら「欲しいがすぐに見つかる図書館」をいかに作るかという問題を考えます。ここで「データ」は図書館の「」に相当し、「ハードディスク」は「棚」がたくさん収められている図書館の建物だと考えてください。 「欲しいがすぐに見つかる」とはどういうことでしょうか?例えば、図書目録を調べて目的の棚の番号がわかったとしても、棚までの距離が遠ければがっかりしてしまいますよね?(高すぎて手が届かない、とか泣けてきます)

    Leo's Chronicle: データベースシステム入門:「データベースは体育会系図書館?」
    kuenishi
    kuenishi 2009/05/16
    入社当時にこんなの読みたかった。
  • Flash-Based DBMSの最前線

    フラッシュメモリーを使ったSolid State Drive (SSD)の容量が160GBに到達し、市場価格も下がってきたことにより、ハードディスクの代替品としてSSDを使う用途がいよいよ現実味を帯びてきました。低容量のものなら既にiPodやデジカメ用のメディアなど身の回りにも普及しており、市場ではすでに「破壊的イノベーション(「イノベーションのジレンマ―技術革新が巨大企業を滅ぼすとき」より)」が起こっているといえます。(HDD搭載のWalkmanとか既に滅んでいる例もあるし。。。)

    Flash-Based DBMSの最前線
  • Top 5 Database Research Topics in 2008

    岡野原君が自然言語処理関連で2008年に読んだ論文のベスト5を紹介しています。それに倣って、僕も個人的にインパクトのあった2008年のデータベース研究のベスト5を集めてみました。 Michael J. Cahill, Uwe Röhm and Alan D. Fekete. Serializable Isolation for Snapshot Databases. SIGMOD 2008. (ACM DOI) 真っ先に思い浮かんできたのがこの論文。SIGMOD2008のベストペーパーでもあります。僕自身、トランザクション処理を長く研究していた経験から、Serializability(ディスクのread/writeの順番をあるプロトコルに従って入れ替えても、データベースの検索・更新結果に影響を与えない)を保障しつつ、一秒間あたりに処理できるトランザクションの数(つまりスループット)を上げる

    Top 5 Database Research Topics in 2008
  • 正規表現に見切りをつけるとき

    Perl, Rubyなど手軽に使えるプログラミング言語に慣れてくると、あらゆるテキストデータの処理に正規表現(regular expression)を使ってしまいがちです。 けれど実は、正規表現の処理能力を超えるフォーマットというのが存在します。その典型的な例が、XMLやJSONのように、入れ子になったデータフォーマットです。

    kuenishi
    kuenishi 2009/02/01
  • たった一つの準備で勉強会は変わる

    について語るなら、まずを読む。輪講なら、自分が発表者でなくても、ざっとに目を通してわからない点をチェックしておくこと。 たったこれだけの準備で、グループでの議論は実りあるものになります。に書かれている以上の話ができるからです。その段階までいかなくても、わからなかった点を周りの人に確認し、の内容をより深く理解することができます。 準備をしてないとこうはいきません。まず、なぜこのを読んでいるかわからない参加者が出ます。さらに、の紹介者の話がわからなくなると、その段階で思考が停止する。あるいは明後日の方向の議論が始まってしまいます。輪講や勉強会のようにその場で内容を尋ねられるならまだ救いようがありますが、ブログのように対話的(interactive)な議論が難しいメディアでは、理解を深める術がありません。を読んでないから教えて、というのが通用するのは、その人が教えるに値する場合だ

    kuenishi
    kuenishi 2009/01/22
  • Leo's Chronicle: ぜひ押さえておきたいデータベースの教科書

    先日のエントリで少し話したのですが、僕が在学していたときの東大にはデータベースを学ぶためのコースというものがありませんでした(DB関係の授業は年に1つか2つある程度。現在はどうなんだろう?)。そんなときに役だったのは、やはり教科書。読みやすいものから順に紹介していきます。(とはいってもすべて英語です。あしからず) 一番のお薦めは、Raghu Ramakrishnan先生 (現在は、Yahoo! Research) の「Database Management Systems (3rd Edition)」。初学者から研究者まで幅広く使えます。データベース管理システム(DBMS)の基概念から、問い合わせ最適化、トランザクション管理など、これらを実装・評価するために必要な、「DBの世界での常識」が、丁寧な語り口でふんだんに盛り込まれています。この1冊を読んでおけば、DBの世界で議論するための

  • Leo's Chronicle: 東大で学んだ「勉強」の意味-「教わる」から「学ぶ」へ

    以下の記事を読んで、これは大学としての文化が違うのだなと感じました。 大学ってもっとすごいところだと思っていた。 なんかこう、毎日が発見に溢れていて大学じゃなきゃ知り得ないことがたくさんあって・・・ そんな素晴らしい世界だと思っていたのに・・・。 大学で秘伝を習うたった1つの方法 対価を支払っていないから秘伝を知り得ていないのだ。そこにいる人たちの中で、賢い人たちは全員秘伝を知っているし、その取得方法もわかっている。 とりあえず自分が、秘伝を教えてもらえるのにふさわしい対価を払えるようになろう。さすれば、自然と大学にある知の秘伝があなたのものになる。 どうやら大学には「秘伝」なるものがあって、それは「対価」を払って「教わる」か「引き出す」ものらしいです。「対価」として考えられるのは、学生さんのポテンシャルであったり、議論していてわくわくさせてくれるような「きらりと光る何か」だと思います。そ

    kuenishi
    kuenishi 2009/01/04
    東大の先生がMITやUCBほど教授が親切じゃないのは、研究と教育以外の雑用にふりまわされているせいかもしれない。と思ったことがある。
  • 21歳からのハローワーク (政治家編)

    他の政治家・専門家にではなく、メディアや書籍を通じて一般の人にわかりやすく政策を伝えて評価を得る人。「国民のため」「改革」と言い続けることでもなれる。諸問題への理解度、漢字の読み書きのなどの知識は問われない。

    kuenishi
    kuenishi 2008/12/12
  • これから研究をはじめる人へのアドバイス

    研究の世界 上の文章はもちろんネタですが、研究を続けていくと当にここに書かれたような、トップジャーナルに通ってなければ…、という世界が待っています。実際、僕自身もいつもこのような心づもりで研究しています。ただ、ひとつ気になったのは、自分自身の経験や、周りの様子を見る限り、Cell, Nature, Science (CNSと俗に言われます)などは、自分一人の実力だけで採録されるわけではありません。この人がいなかったらここまでの成果は出なかった、という貢献は確実にあるけれど、大抵は多くの人の長年の努力の積み重ねの結果acceptされています。 研究のインパクトの大きさ だから結果として、団体で金メダル!くらいには誇れますが、これを個人の功績と考えるのはあまりに決まりが悪いものです。僕が情報と生物の融合分野にいながら、情報系でかつ腕一でできる研究も続けているのは、この決まりの悪さを避けたい

    kuenishi
    kuenishi 2008/12/12
    >一方、今の日本は研究する能力への評価が世界と比べて極端に低い社会になっていることには注意してください。
  • プログラマとして生きるということ

    システムエンジニアプログラマーなどにおける過酷な労働条件を自嘲的に表現したもの。「土方」は差別用語及び放送禁止用語として扱われているため、使用の際には留意すること。 という意味だそうです。僕は研究者だけれど、プログラマでもあるので、プログラマが世間でこう呼ばれているのは非常に悲しいことです。プログラマというのは、当はとても魅力的な仕事です。土方で甘んじているのは、きっと「プログラマ」として生きていないのだとも思います。(例えば、矢野勉さんのエントリにも挙げられているような状況の人達です) プログラムをデザインする、ということ プログラムの場合、通常の土木工事と比べて顕著に違うのが、一度作ったコードを「一から作り直さないようにデザインできる」ということ。たとえば、コマンドライン引数を処理するプログラムを一度作ると、それをクラスの形に整理して(OptionParserクラスなどと名づけて)

  • Leo's Chronicle: 良い論文を書くために知っておくべき5つのこと

    英語で科学技術論文を書くための書籍はいくつか出版されていますが、大抵、日語と英語の表現やロジックの違いの説明が主で、「論文」というよりは「英語」の学習と質的に変わりません。ここでは、「論文」をいかに書くか、さらには「論文」を書くために「研究」をいかに進めるかという点に踏み込んだ内容を紹介していきます。 まず、コンピューター系の論文の書き方のHow toを示した書き物として、DB分野で有名なJennifer Widomの以下の記事が、良い指針となります: Tips for Writing Technical Papers (Jennifer Widom)この中から、introduction (導入部)で説明すべきことについて引用しました。 What is the problem? (解いている問題は何?) Why is it interesting and important? (なぜその

  • Rails、Hibernate、EJB スキーママッピングあれこれ

    久し振りの更新。普段、突発的にものを書きたくなる衝動をブログにぶつけていたのですが、最近はそれがTwitterに吸収されてしまっています。短い単発コメントより、まとまった文章がある方が当は価値が高いんですけどね。今日はTwitterが重いので、ブログに戻ってきました。 閑話休題。 SIGMOD2008に参加してみて不思議だったのは、Schema Mappingの研究が想像以上に盛んだったこと。これは、データベースのスキーマ(テーブル構造情報)を、他のスキーマへと変換するときに使います。データベースの移行とか、アプリケーションに合わせて形を書き換えるとか。 でも、そもそもマッピングって、足し算が入るだけでも、不可逆変換なんですよね。1+2を合わせて、「3」というデータを作ったとき、この「3」というデータは、1+2の結果か、2+1の結果かわからなくなる。そうすると、マッピングに使える演算の種

    kuenishi
    kuenishi 2008/07/06
    O/Rマッピングについて。オブジェクトを保存するだけでほとんどのものは事足りるはず。そうだよねえ。