メイン

仕事 アーカイブ

2006年08月01日

SOBAフレームワーク

SOBAフレームワークは京都大学数理解析研究所を中心としたグループで生まれたビジュアルコミュニケーションのためのフレームワークです。現在は私の所属するSOBA Project, Inc.で研究開発を続けています。
SOBAフレームワークの大きな特徴として、

1. フレームワークとして実装しており、UIはニーズに合わせてて自由にカスタマイズできる。
2. ほとんどJavaで実装されており、マルチプラットフォームに対応している。
3. クライアント・サーバー方式ではなく、P2P型(N対N型)。
4. セキュリティ機能をフレームワークで保持している。

私は今SOBA Project, Inc.で開発を続けています。
今後、SOBAのすばらしい技術を少しずつご紹介したいと思います。

soba_arch.jpg

2006年08月04日

徹夜

昨晩はサーバーの更新のために徹夜しました。
サーバーのあるサービスを使っているユーザーのために夜中にこっそり作業しました。

弊社には用途別に20台以上のサーバーが稼動しています。
その多くを私が管理しているので、必然的に夜中や土日に作業があります。
昨日の作業は予定通り(?)に先ほど作業を終えました。

今日はもう帰って寝ます。

2006年08月31日

高解像度版

SOBA高解像度版の映像です。
左は弊社の京都本社、右側が東京支社です。
普通のPCとDVカメラ、光回線さえあれば特別な機材は必要なく、リアルタイムで高解像度の映像
と音声を楽しめます。
今朝はこれで東京支社のKさんと雑談しました。

SOBAの技術的な優位点の一つとして、今までコストをかけて特別なハードウェアを
使っていた中継を自宅にあるようなPC、DVカメラで実現できることにあります。

SOBAは既存技術を組み合わせつつ、スクラッチからプログラムを自社で開発しています。

video_improved.JPG

2006年09月15日

SOBAがGyaOに出ました

弊社のソフトウェアであるSOBA FrameworkとSOBA CITYがGyaOに出ました。
SOBAもすごいけど、GyaOもすごいですね。
これだけのコンテンツがあるととテレビがいらないぐらいです。

2006年09月22日

ディノパライソリニューアルオープン

SOBA Project, Inc.で運営を行っているオンラインゲームディノパライソが本日リニューアルしました。ディノというかわいらしい生き物を購入し、ディノアイランドという島を探検する育成型のオンラインゲームです。ブラウザのみで基本料無料で遊べます。
それにしてもワンワンはかわいい。

wanwan.JPG

2006年09月29日

RAID5

あるサーバーを立てようとしているところです。
写真の青いケーブルはハードディスクからRAIDコントローラーにつながっています。
ハードディスク3台でRAID5を構成し、あと1台のハードディスクがホットスペアになっています。
もちろん、バックアップも定期的に走ります。
サーバーを運用するには、安全にも安全を重ねないといけません。

raid5.JPG

2006年10月03日

Fedora Core5

Fedora Core5で作るネットワークサーバー構築ガイドを購入しました。
SOBA Project, Inc.でホスティングしているサーバーはLinux系のものが多いのですが、この本は非常に便利です。
一般的な本に書かれているWebサーバーやメールサーバーの立て方のみならず、RAID5やVPN、LDAPについても詳しく書かれています。


fc5.JPG

2006年10月18日

出張

本日は某所に出張しました。
開発の仕事をしていると出張は少ないですが、たまに外に出るのは気分転換にもなるし
お客様の声を聞くのは、開発のためにも非常に役に立ちます。

2006年10月19日

getLocalHost()

Javaで次のような関数呼び出しを行ったとします。

try {
System.out.println("My address=" + java.net.InetAddress.getLocalHost().toString());
} catch (UnknownHostException e) {
e.printStackTrace();
}

私のメインのマシンでは、正常にホスト名を表示します。
ところが、ホスト名を日本語にすると、UnknownHostExceptionをはくようです。
このあたりはJavaの実装が甘いのではないかと思ったりもします。

解決方法として、Java1.4から導入されたjava.net.NetworkInterfaceクラスを用いて、
まず、NICを取得する。
java.util.Enumeration enuIfs = NetworkInterface.getNetworkInterfaces();
while (enuIfs.hasMoreElements())
{
NetworkInterface ni = (NetworkInterface)enuIfs.nextElement();
}

次に、それぞれのNICに対して、IPアドレス、ホスト名を取得する
java.util.Enumeration enuAddrs = ni.getInetAddresses();
while (enuAddrs.hasMoreElements())
{
InetAddress in4 = (InetAddress)enuAddrs.nextElement();
in4.getHostAddress();
in4.getHostName();
}

こうすれば、当然ながらExceptionは発生しません。
ただし、getHostName()では日本語のホスト名ではなく、やっぱりIPアドレスが取得されます。

2006年10月26日

eclipse

eclipseは間違いなく最強のJava開発ツールです。
私の周りでは、少し前までは、emacs + javac + jdb という玄人っぽい開発者も見かけましたが、
現在SOBA Project, Inc.ではほとんど全員がeclipseを使っています。
SOBAはほとんどのコードはJavaで書かれているので、eclipseの恩恵は計り知れません。
私は、ブレークポントを設定しておいて、一行おきにデバッグするノーマルなデバッグが好きですね。
これで、開発初期のほとんどの不具合は回避できます。
もう少し複雑な不具合の場合、JProfilerなどのプロファイラーを使用します。
Javaで参照が残ったままだと、メモリリークする可能性がありますが、JProfilerを使用すると簡単に見つけられます。
この主のツールは英語版のみでほとんどOKです。
日本語訳をたまに見ますが、よく訳を間違えていますね。

eclipse.JPG

2006年10月27日

コーディングルール

SOBA Project,Inc.では一定のコーディングルールを決めています。
基本はeclipseのデフォルトformatterを使用しますが、一部分だけSOBA独自の決まりがあります。
たとえば、TABは使用せず、必ず、インデントは4行スペースにしています。TABそのものは便利ですが、エディターによっては崩れることもあるので、SOBAでは使用しないようにしています。
その他、多少の規則を決めています。
コーディングルールを定着させておくと、デバッグなどで他人が書いたソースを読むときも可読性が上がるのでよいです。

2006年11月01日

CVS

CVS (Concurrent Versions System) は非常に便利なバージョン管理システムです。
SOBAのソース類は現在のところCVSで管理されています。

SOBA Project, Inc.で開発者が使用するCVSクライアントとしては、
・cygwinに付属のCVSクライアント
・wincvs
・eclipseのcvsプラグイン
のおよそ3種類が使われています。
どれでも同じことができるはずですが、私はこの3種類をその時、その時で使い分けて使っています。

私は、ソースを管理する立場上、タグやブランチをよく作成しています。
その際は、ViewCVSなどを使って確認します。
ViewCVSは視覚的に確認できるの大好きなツールです。

2006年11月04日

SOBAフレームワークを一言で説明すると

SOBAフレームワークを一言で説明することは難しいことです。
ネットワーク対応アプリケーションを容易にするためのマルチプラットフォーム対応、P2P型のフレームワーク、などとわかったように説明してもほとんど初めての人に理解はできないと思います。

私はエンドユーザーに対しては、
・複数のPCで高解像度でビデオ、音声をやり取りできる
・高速のアプリケーション共有機能があり、Windowsのアプリケーションも共有できる
などと説明することがありますが、

技術系の人には、MVC(Model-View-Controller)モデルのソフトウェアでModelの部分を共有している、と説明することがあります。
MVCとは、処理の中核を担うModel、表示・出力をつかさどるView、入力を受け取ってその内容に応じてViewとModelを制御するControllerの3要素の組み合わせでシステムを実装する設計方法です。

Viewを共有する、という発想は単純かつ明快なので、VNCなどをはじめ、世の中には同様のアプリケーションはたくさんあります。SOBAの部品アプリケーションのひとつである、アプリケーション共有(Local Applications Sharing)もそのひとつです。
Controllerを共有することは現実的にはありえないので、残りあるとすれば、Modelの共有になります。SOBAフレームワークの設計思想のコアはまさにこれです。
Modelを共有すると、同じModelを持ちながらも違うViewをもって互いに情報を共有することができます。
Modelを共有することで、Viewを共有することに比べてはるかに自由に有利にソフトウェアを作ることができるのです。

2006年11月09日

Java1.4プログラムをJava1.5に移行する

SOBAフレームワークは、産官学体制のSOBA ProjectではJava1.4で開発されていました。
Java自身のバージョンアップにともない、SOBA Project, IncではSOBAフレームワークのJava1.5対応を行いました。Javaのバージョンアップについて、SOBAで注意しないといけないところは主に3点ありました。

1. ThreadのgetState()メソッド
ThreadにgetState()というメソッドが追加されました。いままで、getState()という名前のメソッドを使っていた箇所は、オーバーライドとして扱われる可能性があるので要注意です。

2. Enumerationのenum
enumが予約語になりました。Enumeration enumなどと定義した箇所はコンパイルが通りません。困ったことに昔の本のサンプルには必ずEnumeration enumと書いてあるので、Java1.4でEnumerationを使っていたほとんどのコードではenumと定義されています。

3. deprecatedになったshow/hide
show/hideはdeprecatedになりました。deprecatedは「推奨されない」との意味で、コンパイル時に警告が出るだけですが、少し気持ち悪いです。これらのメソッドはsetVisible(true/false)に置き換えるとよいのですが、show/hideをオーバーライドして使用している箇所があるときには、変更には最深の注意を払わないといけません。

2006年11月14日

Bugzilla

Bugzillaはバグトラッキングツールです。SOBAのバグはbugzillaで管理しています。
BugzillaのバックエンドはMySQLデータベースです。ただ、Bugzilla本体はCGIのかたまりです。
いまSOBAで使用しているBugzillaは、日英のバイリンガル対応になっています。
英語モードでログインするとコンテンツは英語で表示され、日本語モードでログインするとコンテンツは日本語で表示されます。
CGIが判別しているのですね。
SOBA Project, Inc.では海外とも頻繁に開発のやりとりを行っているのでこの機能は非常に便利です。

また、Quips(短いテキストのメッセージ)の機能があって、SOBA Project, Inc.ではジョークとして使っています。
バグリストを表示すると、一番上にQuipsが表示され、たとえば

"あるバグの最も簡単な修正方法は、「そのバグは仕様ですよ」と言うことである。"

と表示されたりします。

2006年11月28日

SOBA CITY 3.2.0リリース!!

本日付でSOBA CITY 3.2.0がリリースされました。
P2P無料テレビ会議システム SOBA CITYをご覧ください。
非常にすばらしいできになっていると思いますので、ぜひお試しください。

SOBA CITYは本年3月15日に最初の公開バージョン3.0.0がリリースされました。
それ以来多くの人からさまざまなご要望をいただき、重要な要望からひとつひとつ改善してまいりました。

今回のバージョンは3.2.0といいつつ、中身はかなり前回とは書き換えております。
ファイアーウォールやプロキシーサーバー、その他の個々のネットワーク環境により前回までのバージョンでつながりにくかったユーザーの皆様はぜひ今回のバージョンをお試しください。

今回のバージョンからJava1.5.0に対応しております。
Java1.5.0_09をインストールされていない場合は、SOBA CITYのインストーラーが自動的に判断し、自動的にJava1.5.0_09をインストールします。

sobacity.JPG

2006年12月06日

SOBA TVPhone

SOBA TVPhoneはSOBAを使った超簡単なテレビ電話ソフトです。
このソフトは、1対1通話限定で、簡単にデジカメなどの画像が共有できます。
パソコンにアイコン化して待機しておけば、相手から電話がかかってきたときに、音がなり、着信を知らせるメッセージが出てきます。応答すれば、この画面が前面に表示されます。

高機能をうたったソフトは多々ありますが、ユーザー様によってはこうゆうボタンが大きく、シンプル、スマートなものも喜ばれます。

tvphone.JPG

2006年12月15日

デッドロック

本日、デッドロックの恐れのあるコード二箇所を修正しました。
デッドロックとは、複数のスレッドがお互いにロックの解放を永久に待ち続けてしまう現象のことを言います。
デッドロックを回避するための一般的な手順は、
1. 複数のオブジェクトに対して同期制御を行う場合がある場合は、ロックの順序をあらかじめ決定しておく
2. 各スレッドはその順序でロックを獲得する。
(Sun Educational Services STUDENT GUIDE JavaプログラミングⅡより)

実は教科書に書いてあるような絵に描いたようなデッドロックはSOBAでは見かけません。
もっと難しくて根の深いものです。本日、SOBA Project,Inc.のD氏と解いたのおよそ以下のようなデッドロックです。

public class DeadLock {
    private static Logger logger = Logger.getLogger("lock");
    private Hashtable hash = new Hashtable();
    public DeadLock() {
        final ValueObject obj = new ValueObject();
        new Thread(new Runnable() {
            public void run() {
                while (true) {
                    logger.entering("", "", hash);
                    System.out.println("a");
                }
            }
        }).start();
        while (true) {
            hash.put(obj, "value");
            System.out.println("b");
        }
    }
    public static void main(String[] args) {
        try {
            FileHandler fh = new FileHandler("deadlock.log");
            fh.setFormatter(new SimpleFormatter());
            logger.addHandler(fh);
            logger.setLevel(Level.FINER);
            new DeadLock();
        } catch (SecurityException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public class ValueObject {
        public boolean equals(Object obj) {
            System.out.println("put()中から呼ばれます。");
            logger.entering("ValueObject", "equals", obj);
            return super.equals(obj);
        }
    }
}
(コード提供:D氏)

mainスレッドでHashtable.put()のロックしてから、ログ出力用のFileHandlerのロックします。
また、別スレッドでは、ログ出力用のFileHandlerのロックしてから、Hashtable.toString()のロックします。
このサンプルはかなり簡易に書いてあるので容易ですが、SOBAのような大規模なフレームワークではなかなか不具合も発生せず、発生したとしても原因の特定は容易ではありません。今回は、JProfilerとEclipseにより場所を特定して修正しました。

2006年12月19日

アップデートツール

本日、SOBA CITY 3.2.1を公開しました。
SOBA CITY3.2.1よりアップデート方法がアップデートツールにより自動で行えるようになりました。
具体的には、差分についての情報をSOBAのアップデートサーバーに蓄えておき、各ユーザーがSOBA CITYにログインすると、アップデートサーバーにつながり、差分を自動的にダウンロードします。
HTTPプロトコルを使用するのでブラウザが使用できる環境なら使用できます。

update.JPG

2006年12月20日

座席

SOBA Project,Inc.での私の席です。
左からFUJITSU FMV DESKPOWER、SONY VAIO、IBM ThinkPad T43、IBM ThinkPad X30です。
カメラはCREATIVE、Logitech、BUFFALO、APFAを使っています。
開発が中心の私の席では、PCは常に3台は稼動しています。SOBAはネットワークで使うソフトなので一台では実質作業ができないからです。
SOBA Projectでは、さまざまなPC、カメラをお客様が使うことを想定して、なるべく多くの種類のPCを使っています。
私はきれい好きなのですが、最近は業務に追われてほとんど席の周りを掃除しておりません。

seki.JPG

2006年12月27日

夜中の作業中

本日は徹夜です。この1年で徹夜をしたのは何回目だろうか。私はSOBA社内では一番自宅が遠いので通勤時間を節約できる利点がある反面、夜中の作業は眠いので効率は今ひとつです。
この1年のSOBAの開発を振り返ってみると、進歩したところ、今ひとつだったところ、開発予定だったけどできなかったことなどいろいろと思い出されます。いま手元では来年からの作業をメモしながら考えたりしています。
来年は年初からいくつかBig Projectが展開するので少し楽しみです。ただ、開発も地道にコツコツ進めていく予定です。

2006年12月28日

年内最終日

本日で年内の仕事は最終日です。私はというと周りの人が掃除をしている中、ひたすらバグを追っかけていました。特に私の席の下を掃除してくれたIさん、ありがとう。
本日、重要なバグの根本的な原因を発見して修正しました。少し満足です。ここでもeclipseでスレッドを追いかけて解析しました。これでやっと安心して年を越せそうです。
夜は、ピザとビールでみんなで乾杯しました。

2007年01月05日

仕事始め

本日仕事始めです。
気持ちを新たにがんばろうと思います。
年初から、さっそく終電帰りになってしまいました。

2007年01月10日

東京支社

本日は東京支社に出張です。
SOBA Project, Inc.の東京支社は神田というしぶい町にあります。
オフィス内は支社長のK氏のおかげでおしゃれにできあがっています。
常勤はまだ少ないですが、いずれここも人であふれるようになる予定です。

2007年01月18日

Linuxが起動しなくなった!!

私のPC環境は以前説明したとおり、4台のPCを使っていますが、OSになるとさらに複雑です。
SOBAはマルチプラットフォーム対応なので、Windows 2000/XP/Vista、Fedora Coreと4つのプラットフォームを維持していかないといけません。そのため、1台のPCに複数のOSをインストールして、デュアルブートなどを行っています。
WindowsがインストールされているPCにFedora Coreをインストールする場合、ほとんどの場合はFedora CoreのインストーラーがWindowsを認識してくれて、ブートローダーGRUBがインストールされます。

この逆の場合、つまり、Fedora Coreインストール後にWindowsを入れると、MBR(マスター・ブート・レコード)を上書きしてしまいます。MBRにはLinuxで用いるブートローダーGNU GRUBの情報が記述されているため、上書きするとLinuxが起動しなくなります。
この場合、一番簡単な対処方法は、GRUBの再インストールです。以下がその手順です。

まず、Fedora CoreのインストールCDでブートします。そして、
boot: linux rescue
と入力します。
いくつかのステップを踏むと、最後に/mnt/sysimageなどに既存のファイルシステムがマウントされます(すばらしい)。
# chroot /mnt/sysimage
として、既存のファイルシステムをマウントします。
# grub-install /dev/sda
でGRUBが再インストールされます。
これで、WindowsとLinuxのデュアルブートが可能になります。

Linuxはすばらしい。

2007年01月19日

Windows XPが起動しなくなった!!

私は最近、PCを再構築していてWindows 2000(なつかしい)をPCにインストールしなおしたら、なんとWindows XPが起動しなくなってしまいました。
ただ、この現象よくあるようです。
原因は、古いOSであるWindows 2000がWindows XPのNTLDRとNTDETECT.COMを上書きしてしまうためのようです。Windows 2000でブートしておいて、Windows XPのファイルシステムにアクセスしてNTLDRとNTDETECT.COMを戻してあげたら、ちゃんと動作しました。
OSを入れるなら、やはり、古いものからですね。

2007年01月27日

2周年

SOBA Project, Inc.を創業し、本日で丸二年です。
ほんとうにあっという間した。
まだまだやり足りない部分はありますが、研究開発面では進歩を感じつつある今日この頃です。

kanban.JPG

2007年01月30日

Windows Vista版SOBA

本日は、Windows Vistaの発売日です。
私は、仕事の都合で大阪市内にいたのですが、残念ながらパソコンショップに行く時間はありませんでした。市場へのインパクトはどんなものだったのでしょうか。
私がWindows Vistaを使った感じではかなり「重い」という印象を持っていますが、セキュリティ面、新しいGUI・AEROなどかなり変わったようです。

さて、SOBAのWindows Vista対応ですが、ほぼ動作確認・修正を終わっており、2月中には対応完了する予定です。Vista対応のSOBAをご期待ください。

2007年02月03日

節分祭

昨日終わらせようと思っていた作業が終わらずに、本日は休日出勤です。
お昼から来て無事に作業が終わりました。
土日は基本的に休んでいますが、たまにこうやって出てきます。
オフィスに人がいないので、いろいろと構想を練るにはいいですね。

夕方、駅までの帰り道で普段通らない道に人だかりができていました。
そちらの方に行ってみると、お店がたくさん出ていました。
そうです。今日は節分祭です。

setsubun.JPG

2007年02月09日

創立二周年記念パーティ

本日、SOBA Project, Inc.の創立二周年記念パーティがありました。

関西近隣の関係者を中心におよそ50名の参加がありました。
改めて支えてくれる人あってのSOBAだと感じました。

2shu.JPG

2007年02月16日

Windows Vista対応

昨年秋以降、Windows VistaでSOBAのテストを繰り返し行ってきました。
SOBA本体は実のところ、当初からほとんど問題なくWindows Vistaで動作していました。
SOBAのVista対応とは実のところ、Vistaにある新機能UAC対応がメインです。
UAC(User Account Control)とは、管理者権限が与えられたアカウントの権限を恒常的に制限する機能です。SOBAを実行するときに、いくつかの理由により管理者権限でしか動作しない機能があります。それらの機能はWindows Vistaでは、例え管理者権限のあるユーザーでもそのままでは動作しません。これらを実現するために必要なことが、そのアプリケーションが管理者権限を使うと宣言しておくアプリケーション・マニフェストとコード証明書です。SOBAのVista対応では、これらのことを行いました。
また、Windows Vistaでは、新ユーザーインターフェースAEROがありますが、SOBAのアプリケーション共有機能はAEROでは動作しないようになっています。セキュリティ面でいろいろと問題がありそうだからです。

SOBAのWindows Vista対応も最終段階になりました。
来週には正式リリースです。

vista.JPG

2007年02月23日

Windows Vista対応SOBA mieruka Client延期について

先週

> SOBAのWindows Vista対応も最終段階になりました。
> 来週には正式リリースです。

と書いておきながら、今週のWindows Vista対応SOBA mieruka Clientのリリースを来週に延期することになりました。まことに申し訳ありません。

テストは順調に終了したのですが、サーバーサイドに新機能を組み入れたために、入れ替えのタイミングでシステム停止が発生することが判明しました。
来週、メンテナンス時間を告知の上、置き換えを行わせていただきます。

2007年03月02日

SOBA mieruka 1.0.8

今週 SOBA mieruka 1.0.8をリリースしました。
昨年12月20日に1.0.0をリリースして以来、8回目のリリースです。
お客様の声を聞いて、要望の高い機能をどんどんリリースしてきました。

よく聞かれることの一つに、「カメラのサイズを大きくしたい」というのがあります。
SOBA mierukaでは、表示されているカメラをダブルクリックしたら、フローティング表示になり自由にサイズを変更できます。

mieruka_camera.JPG

これからも要望をどんどんあげてください。

2007年03月15日

東京出張

本日は日帰りで東京出張。東京支社に寄りました。東京支社は神田の駅からすぐの所にある便利なところなのですが、難点は少しわかりにくいところです。私もときどき迷子になります。
東京支社にいらっしゃるときはご覧のしぶい表札を見つけてください。

さて、今回は東京支社のメンバーに特に連絡せずにオフィスまで行ったら、玄関が閉まっていました。インターホンを押すとわざわざM嬢が4Fから1Fまで降りてきて開けてくれました。東京支社はいつ行っても落ち着くところです。

sobatokyo.JPG

2007年03月16日

Linux版SOBA

SOBAの特徴のひとつにマルチプラットフォームがあります。
SOBAのほとんどのコードはJavaで書かれているために、無修正でWindowsでもLinuxでも動作します。写真はFedora Core4でSOBAを動作させて、Windows版のSOBAとセッションを共有しているところです。
Linuxではカメラなどのドライバを入手するのがWindowsに比べて難しいですが、経験ではほとんどはインターネットを使って入手できます。
Linux版SOBAはWindows版に比べて遜色はまったくありません。
軽快に動作しています。

linuxsoba.JPG

2007年03月28日

京大病院

高校時代からの友人が京大病院に勤めています。
先日、ひょんなことからメールをいただきまして、本日は情報交換で行ってきました。
京大病院近辺は、学生のころからうろうろとしていましたが、中に入るのは初めてです。
さすが天下の京都大学付属病院とあってすごい建物でした。
大文字山が遠くに見える風景がいいです。
はじめて京都に来たときに周りに山が見えるのに感動したことを思い出しました。
夜はその友人と三条まで飲みに行きました。そういえば、この友人、どういうわけか縁があります。
初めて大文字山を鴨川から見たのもこの友人と一緒でした。
また、どういうわけか現在の自宅がすぐ近所です。
近く一緒に仕事をできるといいのですがね。

kyouhosp.JPG

2007年04月06日

サクラ

sakura2.JPG

京都でも桜が咲き始めました。
弊社の窓から桜がきれいに見えます。
本日はおやつどきに仕事を中断して桜餅を食べながらみんなで窓から花見をしました。
こういうときは当然、デジタルビデオカメラを使ってSOBA mierukaを使って中継をします。
東京支社のMさんも東京から京都本社の花見に参加しています。
SOBA mierukaは便利です。

sakura1.JPG

実際に外から見るとこんな感じです。

2007年04月18日

Windows 2000, XP, Vista, Fedora Core4

私の席で、Windows 2000, XP, Vista, Fedora CoreでSOBA Framework Version 3のセッションを共有してみました。

左から
・DELL OptiPlex GX620 スモールフォームファクタ ( Windows 2000 ) + BUFFALO BWC-130H01/BK
・富士通 FMV-DESKPOWER CE75L9/F ( Fedora Core 4 ) + APFA
・SONY VAIO VGC-RC50 ( Windows Vista ) + Logicool QVX-13S + Logicool Qcam Pro 4000 (2台のカメラを接続)
・IBM ThinkPad T43 ( Windows XP ) + Logicool QVX-13NS

SOBA Framework Version 3では、複数OSで違いを意識せずに使うことが可能です。
また、複数のカメラを使用可能です。
こうやってみると迫力がありますね。

four_os.JPG

2007年04月27日

UAC ( User Account Control )

Windows Vista では、セキュリティ関係の機能が Windows XP よりも強化されています。
そのセキュリティ機能の一つとして、ユーザーアカウント制御(UAC)が新たに導入されました。UACは、コンピュータの管理者権限を持っているユーザーでも通常は権限を制限し、予期せぬシステムファイルの書き換えや設定の変更などを防ぎ、セキュリティを強化する機能です。
この機能のために、Windows Vistaで管理者権限の必要なアプリケーションを実行すると、そのつど
------------------------------------------------
ユーザーアカウント制御
続行するにはあなたの許可が必要です
あなたが開始したプログラムである場合は、続行してください。
------------------------------------------------
と聞かれます。わずらわしい機能のように思えますが、UACはマルウエアの最も一般的なインストール手段を妨害することで、ユーザーをマルウエアから防御するのに役立ちます。

さて、SOBA Frameworkを使ったアプリケーションの多くは、Windowsの管理者権限で動作させる必要はありません。
SOBA Frameworkに関連することで管理者権限で動作させることが必要なものはインストール時に
・SOBA Frameworkそのものをインストールディレクトリに配置すること
・そして、そのディレクトリでdllの登録などの設定をおこなうこと

SOBA Frameworkのアプリケーションを起動する際には、
・Windowsアプリケーション共有機能を動作させること

です。
現在のところ、SOBA mierukaでは、主にWindowsアプリケーション共有機能のために、管理者権限を要求して起動するようになっています。
ここはもう少し工夫の余地があるかもしれませんので、改善していきたいと思います。

2007年05月02日

ゴールデンウィーク

ゴールデンウィークが始まりましたが、SOBA Project, Inc. は暦どおりです。
SOBAの開発メンバーは昨日も今日も普段どおりに仕事をしています。

私はというと普段よりも倍ぐらい働いています。
ここしばらくは、SOBA CITY/SOBA mierukaのリリースの準備をしており、4/28~4/30は夜10:00ごろから他の開発メンバーと自宅でテストでした。
SOBA社内でもかなりのテストを行うのですが、社内ではPCが比較的速い、ネットワークの回線が速い、などでバグを見つけにくかったりします。また、音声品質や音声遅延の確認テストでは、社内で隣同士では音声が聞こえてしまいテストを行いにくいです。
自宅テストでは、臨場感あふれるテストとなります。
・・・・と言ってもお酒を片手に雑談になったりします。これも立派な音声確認テストなのです。

さて、明日は早朝にサーバーのメンテナンスのために徹夜です。
近くのびっくりドンキーで晩御飯を食べました。
周りはゴールデンウィークを楽しむ人ばかり。悲しい。

bikkuri.JPG

2007年05月11日

本日も徹夜

本日は、開発用のパソコンFMV-DESKPOWERのハードディスクが不調のため交換することにしました。夜中徹夜で作業することにしました。

そうは言ってもお腹が空いたのでD氏と近くのよくいくお店「ふくい」へ行きました。
ここは焼きそばがめちゃくちゃ美味しいのでよく行きます。
yakisoba.JPG
これは2人で食べるには少しきつかった。

オフィスに帰ってきてからは早速作業開始。
正常に動いているSONY VAIO VGC-RC50にハードディスクが2台(1台は未使用)ついているので、
そのうち1台をFMV-DESKPOWERの壊れたハードディスクと交換します。

vaio.JPG
これがSONY VAIO VGC-RC50を開けてみたところです。
右上の2個のボックスに、それぞれハードディスクが2台入るドライブベイを入れることが可能です。
つまり、合計4台のハードディスクが搭載可能です。
初期出荷時には2台のハードディスクが入っていますが、なんとこれはRAID0になっています。
実際のところ、RAIDの恩恵を感じることがなかったので、当初から1台のみ使用し、もう1台は予備で
特に使用していませんでした。この1台を抜きます。

fmv.JPG
富士通 FMV-DESKPOWER CE75L9/F を開けてみたところです。
このSeagate製の300GBのハードディスクが不調だったので、VAIOのものと交換しました。
ここまでは問題なく完了。
これからソフトウェアのインストールです。

SOBAの開発環境は開発ツール群のオンパレードといってもよいです。
これからインストールするのは、

Visual Studio .NET
Platform SDK
DirectX SDK
J2SDK
eclipse
Cygwin
MinGW
...etc.

徹夜するしかないのはわかります?

2007年06月04日

Java 1.6

Java SE 6は2006年の12月に正式にリリースされました。コードネームMustangと呼ばれていたものです。Java SE 6になって主に以下の点が改良されています。

・Scripting for the Java Platform
・AWT、Swing の高速化。
・Windowsシステムトレイのサポート
・Avalon (Windows Vista) のルックアンドフィール
・テキストの正規化(java.text.Normalizer)
・JDBC 4.0
・JAXP (Java API for XML Processing) 1.4
・Webサービス

現在、正式にリリースされているSOBAは1.5ベースでコンパイルしており、JRE1.5で起動するようになっています。いままでの経験上、Javaではソースコードが完全に上位互換とはいかないようです。SOBAでも単純にそのままのソースでJava 1.6では動作しませんでしたが、現状ではほぼ問題なく動作しています。

SOBAをJava 1.6で起動したところです。十分テストしてリリースしたいと思っています。

java16.JPG

About 仕事

ブログ「SOBA開発日記」のカテゴリ「仕事」に投稿されたすべてのエントリーのアーカイブのページです。新しい順番に並んでいます。

前のカテゴリはプライベートです。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。