2008年 1月 22日 火曜日 |
「既存のDB技術と一線を画し、高速検索を実現する」を進化させる English Translation: (Yahoo!) / (Google) ちょっと出遅れ感がありますが、ちまたで話題のデータをすべてファイル名扱いにして高速検索を実現?を進化させてみました。記事によればデータは62進数(アルファベット大文字/小文字+数字)を使い62進数でデータを格納する方式とのことですが、いくつかのファイルシステムではファイル名の大文字小文字を区別しないため意図しないデータが検索されてしまいます。この問題に対応するために今回はポータビリティに優れたJavaで36進数(数字10字+アルファベット26字)を使ったデータ格納方式を実装しました。
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
public class ThirtySixOutputStream extends OutputStream {
private byte[] buf = new byte[64];
private int ptr = 0;
@Override
public void write(int b) throws IOException {
buf[ptr++] = (byte)b;
if (ptr >= buf.length) flush();
}
@Override
public void flush() throws IOException {
StringBuilder d = new StringBuilder();
for (byte b : buf) {
if (b < 36) d.append("0");
d.append(Integer.toString(b, 36));
}
new File(d.toString()).createNewFile();
ptr = 0;
}
}
画期的ですね!
明日のHot Topic Seminar向けのPuzzlerの問題にしようと思いましたがプログラムが長くなってしまったのでボツネタになってしまいました・・・。 イルカ特集 English Translation: (Yahoo!) / (Google) 既に様々なニュースで報道されていますが、SunによるMySQL買収が合意に至ったとのことです。それを記念して(?)今回はイルカ特集です。
与那国島にて
小笠原にて。 特集と題したものの、まともに映っているのはこの2枚ぐらいでした・・。そろそろイルカ写真もばっちりとMy Flickrコレクションに入れたいものです。 ようやくMac OS X Leopardにアップグレード、と思ったら English Translation: (Yahoo!) / (Google) 発売されてからちょっと経ちましたがようやくADC(Apple Developer Connection)にもJava SE 6のDeveloper Previewが出た(1.6.0_02相当、Mac OS X 10.5 Leopard, 64bit専用)とのことなので重い腰を上げてMac OS Xのアップグレードすることにしました。
データをバックアップできそうなディスクが手元に無いのでおそるおそるアップグレードインストールにしようと思っていましたが、もっと手前の段階でこけてしまいました。インストールDVDを使ってインストールを開始すると、最初にDVD自身の検証をするのですがこれが40%ぐらいまで進んだところで検証エラーとなりインストールが進まないのです。 アプリケーションのインストール程度であればいつもはこの手の検証をスキップするのですが、さすがにOSのインストール(しかも、バックアップをとっていない)となるとエラーと言われてしまっては簡単にスキップする訳にも行きません。 取り出して傷が無いかどうか確かめてもそれらしきものは無いし、とりあえず古いMac OS X 10.4で起動してディスクユーティリティを使って検証してみてもエラーはみられませんでした。自宅のMacBook Proはこんな症状も発生せず、すんなりインストールできたので安心しきっていたんですが・・・。 また時間をみて再チャレンジしてみます。 Glassfishユーザ・グループ・ジャパン English Translation: (Yahoo!) / (Google) あけましておめでとうございます。本年もよろしくお願いいたします。さて、早速ですがお知らせです。Glassfishユーザ・グループ・ジャパンというユーザ・グループを作りました。まだ準備中のところがいろいろとありますが、ちょびちょびと充実させていこうと思います。
Glassfishユーザ・グループ・ジャパンはオープンソースのJava EEアプリケーション・サーバ「GlassFish」のユーザが気軽に交流できる場を提供することを目的としたグループです。勉強会をするかもしれませんし、飲み会もするかもしれません。交流が目的ですから、トピックとしてはGlassfishと関係ないことでもアリです(ただし常識の範囲内で)。 わりと軽いノリのコミュニティーに成長することを目指していますのでご興味やアイデアのある方はチャットかメーリングリストまで。 |
Today's Page Hits: 931 |