2012年01月21日

より高速なFFT?

FFT(高速フーリエ変換)をより速くする改良アルゴリズムが提唱されているようです。

フーリエ変換を10倍速くする新アルゴリズムをMITの研究者たちが開発–携帯でHDビデオも可能?

その内容については以下のページからダウンロードできます。
Nearly Optimal Sparse Fourier Transform

上記のページの右側の「Download:」の下にPDFなどのリンクがあり、そこから詳細が見れます。
Nearly Optimal Sparse Fourier Transform(PDF)


FFTといえば大学の研究室のワークステーション(OSはSunOS 4.1.2)で、Cを使ってFFTのプログラムを作ったのを思いだしました。
posted by jun1 at 00:12| Comment(0) | TrackBack(0) | ソフト

2012年01月19日

3x3ゲームの自動解答に採用したアルゴリズム

公開している3x3のゲームに、プログラムで自動解答の機能を付けていますが、これに使用しているアルゴリズムは、アルゴリズム・クイックリファレンス(オライリー)という本に載っている 「GoodEvaluator評価関数を使用したA探索」 になります。

3x3ゲーム(Applet)


このアルゴリズムについては、以下のブログが参考になります。
アルゴリズムクイックリファレンス 7.4 A*探索での GoodEvaluator

アルゴリズムクイックリファレンス 7.4 A*探索の実装


本には他のアルゴリズムも載っていますが、3x3のゲームで試したところ 「GoodEvaluator + A探査」が一番性能が良いようです。
posted by jun1 at 23:21| Comment(0) | TrackBack(0) | ソフト

2012年01月15日

将棋電王戦でのコンピュータ側のPCについて

1月14日にコンピュータ将棋と元プロ棋士との将棋対決がありました。
プレ対決でもコンピュータ側が余裕を持って勝利したようだったので、コンピュータ側が勝つ確率が高いと思っていましたが、その通りになりました。

将棋電王戦、ボンクラーズが米長邦雄永世棋聖を破る(Slashdot)

Slashdotに記事があったので見ていると、今回の対決に使われたハードの内容の説明した記事がありました。

電王戦観戦記 ほかではあまり語られない舞台裏


これの記事を見るとハードは以下のようです。
メーカー: 富士通
タイプ:  PRIMERGY BX400 S1 (ブレードサーバー)
サーバーブレード:  6枚
CPU: 各サーバーブレードごとにXeon X5680 2個 (計12CPU)
   (1CPUに6コアなので、計72コア)
メモリ: 各サーバーブレードごとに24GB(計144GB)
SSD: 各サーバーブレードご64GB (計384GB)

今回は対局を行う将棋会館でしたが、電力制限のため使用電力を2800Wまでにする必要があり、この構成になったそうです。もし、電力制限が無ければもっとハードを強力にする(注*)ことができるので、もし電力制限なしでやると、羽生名人でも勝てないようなハードにできるのではないでしょうか? 

注*. ボンクラーズはクラスタ並列になっているので、もっと強力なマシンにすることができます。
いよいよ決戦迫る! 米長永世棋聖vs.ボンクラーズの将棋電王戦両者の思いとは?


ソフトの開発者は富士通セミコンダクターに勤めているということで、富士通つながりで去年世界一位になった京で動作するようにしたら、どれくらいの深さまで手が読めるようになるか興味があるところです。
posted by jun1 at 21:51| Comment(0) | TrackBack(0) | ソフト

2012年01月05日

瞬間記憶

瞬間記憶の訓練用に作成した記憶ゲームを時々やっていまが、ゲームをやればやるほど自分の能力の限界ラインが分ってきます。
マス目ゲーム(Android Market)

私の場合、4x4のマス目、答えの表示を1秒間の設定だと、5個まではほぼ正解できますが、6個になると正解は3回に1回ぐらいになります。マス目を5x5にすると、5個はほぼ正解のままで、6個はほとんど正解できなくなります。

マス目が増えるほど位置の記憶があやしくなるので、7インチや10インチのタブレット型で10x10のマス目でやると、5個は正解できないでしょう。

また、表示時間を0.5秒にした時、5x5の5個は厳しくなり、3回中2回ぐらいの正解になります。

年齢で見たとき、この結果が良いのか悪いのか気になります。

記憶をテストするゲームで脳年齢を判定するのがありますが、何を基準に判定しているのか知りたいところです。何か基準にできるようなものがあれば、ゲームに脳年齢表示する機能を追加できるかもと思いますが、そんな資料は無いでしょう。。

記憶ゲーム
cell_memory.png
・1〜9までの中からランダムに数字を一定時間表示した後、非表示にします。隠された数字とその位置を全て当てればゲーム完了です。
posted by jun1 at 23:19| Comment(0) | TrackBack(0) | ソフト

2012年01月03日

3x3ゲーム(2)

Android版のマス目のゲームを作成したので、公開します。ただし、とりあえず遊べるというレベルで、全体にシンプルに作っています。広告や通信するようなものも一切ありません。

CellGame(マス目ゲーム Android Market)


前回のApplet版3x3ゲームは、Andoriod用のマス目と数字を使ったゲームを作っている時に、コンピュータによる自動解答機能を検討するために作ったものでした。
自動解答は簡単でないことが分かったので、Android版に自動解答機能を付けるのを現状では諦めて、公開することにしました。

CellGame ゲーム概要


・Applet版の3x3ゲームについて
自動解答機能は配置によっては解答に至らない場合があることが分かりました。特に以下のような2つの番号のみが入れ替わっている場面では失敗します。

例 5 と 6 の位置が逆になっている

cell_order_error.png

配置をシャッフルする部分のプログラムに問題がありました。シャッフルではまず最初にゴールとなる配置を作成し、それをランダムに移動させますが、初期配置の縦と横を間違っていました。
間違った初期配置をシャッフルしていました。
------------
| 1 | 4 | 7 |
| 2 | 5 | 8 |
| 3 | 6 | |
-------------

正しい初期配置。
------------
| 1 | 2 | 3 |
| 4 | 5 | 6 |
| 7 | 8 | |
-------------

自動解答のアルゴリズムについては、まだ検討すべき点が多いので、今後もいろいろと試していくつもりです。
posted by jun1 at 20:07| Comment(3) | TrackBack(0) | ソフト

2012年01月02日

3x3ゲーム

マス目の番号を移動させて正しい配置にするゲーム(名前は?)がありますが、Appletで3x3のゲームを作ってみました。

3x3ゲーム(Applet)

ゲームのスクリーンショットは以下になります。
goal3x3.png

このゲームには最初からやり直す「再プレイ」や、コンピュータに解かす「自動解答」、解答までの時間と手数を測る機能等を付けています。
posted by jun1 at 00:51| Comment(0) | TrackBack(0) | ソフト

2011年12月06日

マケドニア将棋

マケドニア将棋に惹かれて、ヒストリエ7巻の限定版を買ってしまいました。
しかし、駒の移動範囲など分かりづらかったので、ルールの確認用にマケドニア将棋を作ってみました。

コンピュータの思考ルーチンを作れば一人でも遊べるますが、思考ルーチンは簡単にはできそうもありません。そのため、アフタヌーン2012年1月号に載っていた棋譜を再現してみることにしました。また、プレイできるものをそのまま公開するのも問題なので、棋譜の再現だけできるように制限しました。

マケドニア将棋 (アプレット)

注意.
・ゲームにはJavaが必要です。
・ゲームのグラフィック部分は思いっきり手を抜いて、文字のみで駒を表示しています。


追記
2chにマケドニア将棋のスレがありました。ただし、あまり需要がないのか、あまり書き込みがないようです。また、他にも作っている人がいるようなので、ルールの確認用に、こちらの方のゲームでも駒を動かせるように変更してみました。
【ヒストリエ】マケドニア将棋【岩明均氏考案】(2ch)

マケドニア将棋 シングルモード

他の人が作っているということなので、そちらに任せてこちらの開発はここまでにしておきます。
posted by jun1 at 00:02| Comment(0) | TrackBack(0) | ソフト

2011年05月17日

CentOS 6.0はどうなる?

技術評論社のページの記事で、CentOSのコアチームについての記事がありました。

Linux Daily Topics 2011年5月17日 CentOS 6.0は本当にリリースされるのか?─メイン開発者の離脱が意味するメッセージ

どうも CentOS 6.0はまだ何もアナウンスがなく、先行き不明のようです。

また、記事では離脱したメイン開発者が、CentOS以外のRHEL 6.0のクローンとして
Scientific Linux
を推奨しているということです。

このScientific Linuxは米フェルミ国立加速器研究所が開発していて、高エネルギー物理学実験等に使用されているようです。面白そうなので今度試してみたいと思います。

日本語の参考サイト
Scientific Linux Tips
posted by jun1 at 23:18| Comment(0) | TrackBack(0) | ソフト

2011年05月08日

WindowsとLinuxで同じRakefileを使用する(2)

前回に続いてMySQL用のRakefileを作ってみました。

WindowsとLinuxで同じRakefileを使用する

PostgreSQL用ではOSのチェックを以下のようにしました。
if Rake::Win32.windows? then
#Window用の命令
else
#Windows以外の命令
end


上記以外のOSのチェックを調べると、環境変数やRUBY_PLATFORMをチェックする方法がありました。MySQL用では環境変数をチェックするようにしてみました。
  if /windows/i =~ ENV['OS'] then
# Windows用の設定
end

MySQL用のRakefileのサンプル

またrake(バージョン 0.8.7)ではどのようにチェックしているかを調べてみました。
rakeではunixかどうかはRUBY_PLATFORMで判断し、Windowsの場合は環境変数APPDATAをチェックしているようです。

参考 rake.rb(バージョン 0.8.7)のOSチェック部分
require 'rake/win32'
・・・

def unix?
RUBY_PLATFORM =~ /(aix|darwin|linux|(net|free|open)bsd|cygwin|solaris|irix|hpux)/i
end

def windows?
Win32.windows?
end

注. Windowsのチェック部分は rake/win32.rb になり、その部分は以下に抜き出しています。
WindowsとLinuxで異なる箇所の処理
posted by jun1 at 23:13| Comment(0) | TrackBack(0) | ソフト

2010年09月04日

ODBC登録プログラム

ODBCへのDSN登録をインストーラで行いたい場合があり、ODBC登録プログラムを作ってみました。開発は無料のVisual C++ 2008 Express Editionを使いました。

最初はプロジェクトを作ってやっていました。しかし、ワイド文字が面倒(使ったことがなかった)だったのと、VistaでコンパイルしたのがXPで実行できないことがあり、プロジェクトを使用しない方法に変更しました。

ODBCへのDSNの登録はODBC APISQLConfigDataSource を利用すれば簡単にできました。ただしSQL Server用でUID(ユーザーID指定用)やPWD(パスワード指定用)をパラメーターにつかっていると、登録に失敗するのを最初知らず、ちょっとハマりましたが。。

サンプルプログラムは以下のリンク先にまとめています。プロジェクトを使用したサンプルも参考のために載せています。
ODBC登録プログラム

posted by jun1 at 23:45| Comment(0) | TrackBack(0) | ソフト

2010年09月01日

Eclipseからバッチファイルを実行する

WindowsでEclipseを使っている場合、バッチファイルをEclipseから実行したい場合があります。いろいろ調べた結果、今は以下のどちらかの方法を使っています。
1. ダブルクリックで実行
2. Antで実行

続きを読む
posted by jun1 at 23:44| Comment(0) | TrackBack(0) | ソフト

2008年09月09日

subversion.conf

CentOS5.2でsubversion, mod_dav_svnをyumでインストール、設定したのですが、なぜかブラウザからのアクセスに失敗します。以前、ソースからコンパイルしてインストールしたときと同じ設定なのにと思い、いろいろ調べてみました。するとyumでインストールされるsubverson.confではSVNParentPathが使用されていたのに、以前の設定のSVNPathと同じパスに設定していたのが原因でした。

リポジトリが /var/svn/repos とすると
・SVNPathの場合、リポジトリのディレクトリを指定します。
<Location /svn/repos>
DAV svn
SVNPath /var/svn/repos
....
</Location>


・SVNParentPathの場合、リポジトリの親ディレクトリを指定します。
<Location /svn>
DAV svn
SVNParentPath /var/svn
....
</Location>


ただし、SVNParentPathを使用した場合、ブラウザでhttp://localhost/svn
とリポジトリの親ディレクトリを指定してアクセスすると Forbidden とエラーになります。
親ディレクトリへのアクセスができるようにして、リポジトリの一覧が表示されるようにしたい場合は、以下を指定します。(Subversion1.3以上が対応)
SVNListParentPath on


参考  TortoiseSVNのマニュアル
複数のリポジトリ( 第3章 サーバのセットアップ)
posted by jun1 at 01:04| Comment(0) | TrackBack(0) | ソフト

2008年08月24日

Eclipseの日本語化

Eclipseの日本語化するための言語パックについてのメモ
日本人のためのEclipseプロジェクトを知ってますか?

日本語化の主なプロジェクトは以下の3つがあります。
Pleiades(プレアデス)

Eclipse 日本語化言語パック (サードパーティ版)

Eclipse Babelプロジェクト

プレアデスは自動翻訳、サードパーティ版は、プレアデスの翻訳結果を利用したもので、Eclipse Babelプロジェクトはまだ開発途中という感じです。

現在のところ、全てを日本語化する必要もないので、Eclipse日本語化言語パック(サードパーティ版)を使用中。
posted by jun1 at 23:35| Comment(0) | TrackBack(0) | ソフト

2008年08月12日

PHP PEAR::MDB2

PHPでデータベースを扱うとき、PEAR::DBをよく使用しますが、今後はPEAR::MDB2を使用した方が良いということです。

【PHP TIPS】 53. まだ、PEAR::DBをお使いの方へ(ITPro)

MDB2 真・データベース制御クラス

インストールは以下のようになります。
pear install mdb2


また、使用するDBに応じてドライバが必要なので、以下のようにインストールします。
・MySQLの場合
pear install MDB2_Driver_mysql

・PostgreSQLの場合
pear install MDB2_Driver_pgsql


PEAR::MDB2はsingletonパターンが標準であったり、autoCommitメソッドがなかったりとPEAR::DBと異なる点がいろいろとあるようなので、使い始めは注意が必要そうです。
posted by jun1 at 07:41| Comment(0) | TrackBack(0) | ソフト

2008年07月30日

memcached

memcached の記事を見つけたので忘れないようにメモ

memcacedはDanga Interactive社が開発したオープンソースの分散メモリキャッシュサーバーで、いろいろなWebサービスで利用されているということです。

機能はデータベースへの問い合わせ結果をメモリにキャッシュすることでデータベースへのアクセスを減らし、高速なレスポンスを可能とするものだそうです。

memcached+PostgreSQLで実現する
ハイパフォーマンスWebアプリケーション構築


特集:memcachedを知り尽くす

memcachedはC,Perl、PHP,Java等のいろいろなクライアント用ライブラリがあるので、いろいろと面白そうな使い方ができるのではないかと思います。
posted by jun1 at 23:34| Comment(0) | TrackBack(0) | ソフト

2008年07月21日

AmaterasERDがPostgreSQLに対応

EclipseでER図を描けるようにするAmaterasERDが、Version 1.0.3でPostgreSQL、Oracleに対応していました。今まではClayを使用していましたが、AmaterasERDの方が論理名と物理名の切り替えができたり、印刷もできる(Clayの有償版は可能)ので、この機会にAmaterasERDに切り替えることにします。

参考
ERダイアグラムを編集するAmaterasERDでDB設計(@IT)

あと、昨年の記事ですが、MySQL,PostgreSQL、Firebirdの性能を比較した記事を見つけました。
MySQL,PostgreSQLとFirebirdの性能をユーザー会メンバーが徹底比較,判明した"意外な結果”(ITPro)

PostgreSQL vs オープンソースRDBMS 性能徹底比較! - PostgreSQLの性能って本当はどうなの? - 日本PostgreSQLユーザ会 片岡裕生氏(pdf)

記事によると
MySQL: 更新がそれなりにあり,JOINが多い場合
PostgreSQL: シンプルなSELECT主体の場合
Firebird: ストアド・プロシージャが使える状況で,シングル・コネクションの場合
が性能が良いということです。
posted by jun1 at 23:52| Comment(0) | TrackBack(0) | ソフト

2008年07月20日

Eclipseがエラーで起動しない

WTPの3.0がリリースされていたので、 Web Tools Platform downloads のページからall-in-oneの Eclipse IDE for Java EE Developers をダウンロードしてみました。

しかし、eclipse.exeを実行すると以下のようなエラーがでててeclipseが起動しません。
JVM terminated. Exit code=-1
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m
-XX:MaxPermSize=256M
-Djava.class.path=D:\eclipse\plugins\org.eclipse.equiox.launcher_1.0.100.v20080509-1800.jar
-os win32
-ws win32
-arch x86
-showsplash D:\eclipse\plugins\org.eclipse.platform_3.3.100.v200806172000\splash.bmp
-launcher D:\eclipse\eclipse.exe
-name Eclipse
--launcher.library D:\eclipse\plugins\org.eclipse.equinox.launcer.win32.win32.x86_1.0.100.v20080509-1800\eclipse_1114.dll
-startup D:\eclipse\plugins\org.eclipse.equiox.launcher_1.0.100.v20080509-1800.jar
-vm C:\Program Files\Java\jre1.6.0_05\bin\client\jvm.dll
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m
-XX:MaxPermSize=256M
-Djava.class.path=D:\eclipse\plugins\org.eclipse.equiox.launcher_1.0.100.v20080509-1800.jar



続きを読む
posted by jun1 at 09:37| Comment(0) | TrackBack(1) | ソフト

2008年05月29日

NetCommons

ITmediaのニュースで、屋久町のホームページがXPOOPSベースのNetCommonsで作られている記事があり、興味があったので調べてみました。
屋久島がオープンソースCMSで情報発信 手軽な更新でアクセス急増

以前XOOPSを調べたとき、XOOPSとその派生版XOOPS Cubeがあるということは知っていましたが、NetCommonsもXOOPSの派生版ということです。また、開発は国立情報学研究所のプロジェクトということです。
NetCommons公式サイト

特徴は、外部配信向け、個人用、グループ用の機能が統合されて簡単に利用できるということのようです。

次にNetCommonsのモジュール開発についてサイトを探してみましたが見つけることができなかったので、代わりに見つけた簡単なXOOPSモジュールの作成方法について説明しているサイトをメモ。
モジュールページの表示 XOOPS総合研究所
TECH/モジュールの作り方 - xoops2 wiki
最も簡単なモジュール
posted by jun1 at 21:55| Comment(0) | TrackBack(0) | ソフト

2008年05月25日

IE用拡張機能

開発者向けのIE拡張機能を紹介しているブログがあったのでメモ
-開発者向けIE拡張4種のまとめ

そこでは以下の4つが紹介されています。
(1) ieHTTPHeaders
(2) Internet Explorer Developer Toolbar Beta 3
(3) Fiddler
(4) Web Development Helper

あと、HTTP ヘッダーを使ってIEのキャッシュを無効にする方法をメモ。これを利用することでリロードしたときにキャッシュが使われないようにできるはず?
-[HOWTO] Internet Explorer でキャッシュを無効にする
posted by jun1 at 00:02| Comment(0) | TrackBack(0) | ソフト

2008年05月13日

WindowsXPで4GB以上のメモリをRAMディスクに使用

最近話題になっていますが、Gavotte Ramdiskというソフトを使用してWindowsXP(32ビット版)で4GB以上のメモリをRAMディスクに利用できるそうです。

Slashdotの記事
-http://slashdot.jp/hardware/article.pl?sid=08/05/12/0840229

Gavotte Ramdisk まとめWIKI
-http://www10.atwiki.jp/gavotterd/


続きを読む
posted by jun1 at 23:23| Comment(0) | TrackBack(0) | ソフト