タグ

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

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

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

    youz
    youz 2009/09/22
  • 正規表現に見切りをつけるとき

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

  • 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
  • Leo's Chronicle: XML時代の終焉 ~ XMLから再びCoddへ

    先日、ACM SIGMODの日支部大会に招いていただいて、「Relational-Style XML Query (ACM Portal http://doi.acm.org/10.1145/1376616.1376650)」について講演をしてきました。Relational-Style XML Queryは、XMLという複雑な構造をもったデータに対して、SQLのようなテーブルデータへの検索に使われる言語で問い合わせする手法です。 この研究の肝は、木構造データといわれるXMLでも、実はそのほとんどがリレーション(Microsoft Excelのようなテーブル形式のデータ)の組み合わせと考えることができ、そのテーブル構造の情報(スキーマ)を使うと、検索が非常に簡単に書けるという点です。

  • [SQLite JDBC] Javaで始めるSQLiteデータベース入門

    SQLiteデータベースは、Cで書かれた軽量データベースです。「軽量」というのは2つの意味があって、全体のコード数が10万行程度という点(PostgreSQLは100万行に近づいています)と、データベースを保存するファイルが1つに納まっているのがSQLiteの特徴です。他のシステムだと、複数のデータベース用のファイルがあって管理が面倒なのですが、SQLiteのデータベースはファイル1つで、しかもOS互換フォーマットで保存されているので、簡単にOSをまたがったデータベースのコピーを作成することができます。 そもそもリレーショナルデータベース(日語では関係データベースと訳すことが多いです)って何?という方は、初心者向けに用意した以下の講義資料を参考にしてください。 Javaでデータベースアプリケーションを作成するには、JDBC (Java Database Connection)というAPI

  • 僕のパソコンで動いたよ!証明書

    開発者にとって、作ったプログラムがちゃんと動くことを証明するのは、悩みの種。なぜなら、人によってOSの設定も、インストールされているソフトウェアも違うから、作ったコードはそのままじゃ動かないかもしれない。でも安心して! そんな時はこのバッジを張ればいいんだ。

    僕のパソコンで動いたよ!証明書
    youz
    youz 2008/10/21
  • SQLite JDBC Driver

    SQLiteのデータベースをJavaから扱うのは、意外と不便でした。 Pure-Java JDBC driverもあって、それはjarファイルをclasspathに含めるだけで良かったのですが、sqliteのコードを完全にJavaに変換して作成されているので、クエリの種類によっては動作が極端に遅くなることもありました。 sqliteをdllなどにして、C APIをJNDI経由で操作する、native版のライブラリもありますが、dllをインストールしたり、パスの設定しなくてはいけなかったりと、いろいろ面倒でした。 そこで、dllもろともを一つのjarの中に押し込めたまま使えるようにしたSQLiteのJDBCドライバを作成しました。 http://www.xerial.org/trac/Xerial/wiki/SQLiteJDBC dllを自動的にjarの中から取り出してくれて、パスの設定など

  • 学校でしか教えてくれないプログラミング言語のこと

    Scheme(スキーム)というプログラミング言語について初めて知ったのは、大学2年生のときです。理学部情報科学科に進学し(東大には進学振り分け(通称:進振り)という制度があって、大学2年生の前半までは一般教養を学び、それ以降から専門課程に進みます)萩谷先生担当のプログラミング演習がSchemeとの出会いでした。(当時のものとは大分違いますが、参考までにSchemeの講義資料へのリンクです。http://www-ui.is.s.u-tokyo.ac.jp/~hara2001/scheme/) おそらく、ここで学ばなかったらSchemeのように一般に知られていない言語には触れることもなかっただろうし、Emacs Lispのプログラム(Schemeと同様の構文です)を自分で書くこともなかったように思います。Emacsというテキストエディタは、自分好みの機能をLispを用いて実装することが醍醐味で

    学校でしか教えてくれないプログラミング言語のこと
  • 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? (なぜその

    youz
    youz 2008/10/01
  • 1