プログラミング言語 Julia で実装された将棋ソフトメカ女子将棋で遊ぶ
プログラミング言語Juliaで実装されている将棋ソフトウェア メカ女子将棋 をUbuntuにインストール、動作させてみましょう。
インストール手順は、下記に詳細があります。
http://mechawooser.blogspot.jp/2014/01/blog-post.html
注意点は、 OS は 64-bit のLinux上で動作確認をされているとのことです。
環境
- Ubuntu 12.04.3 64-bit on VirtualBox
ビルドおよび実行環境の準備(インストール)
mono と git*1 を入れましょう。
$ sudo apt-get install mono-devel $ sudo apt-get install git $ sudo apt-get install build-essential
インストール (将棋所)
次に、将棋所をいれましょう。
適当なディレクトリで展開しましょう。
$ wget http://www.geocities.jp/shogidokoro/download/Shogidokoro.zip $ unzip Shogidokoro.zip
インストール (Julia の最新版)
Julia は開発速度が速いので、Github に登録されている最新版のJuliaを用います。ビルドする手順です。
$ sudo apt-get install gfortran $ git clone git://github.com/JuliaLang/julia.git $ cd julia $ make
gfortran だけでなく m4 など必要になるかもしれません。ビルド時にエラーが出た場合にエラーメッセージをよく読んで必要なパッケージを適宜追加インストールしてください。
make すると依存関係のパッケージのダウンロード、ビルドなど相当時間がかかりますのでしばらく待ちましょうヽ(´ー`)ノ
make -j4 として並列実行してもよいでしょう。
make が終わりましたか?
/usr/local/bin の配下にシンボリックリンクを貼っておくと良いでしょう(このあたりはお好みで)
$ cd /usr/local/bin $ sudo ln -s $(HOME)/work/julia julia $ julia --version julia version 0.3.0-prerelease+842
現時点バージョンでは上記バージョン表記となりました。
インストール (メカ女子将棋)
$ git clone https://github.com/kimrin/WCSC23 $ cd WCSC23 $ make sharedlib g++ -shared -g -Wall -O3 -fPIC -I. -I/usr/include -I./src ./src/Main.cpp -o lib/libMJ.so.1.0 -lm ln -s libMJ.so.1.0 ./lib/libMJ.so.1
準備
メカ女子将棋は,Bonanza が提供している fv.bin を用いているので別途ダウンロードしましょう。
(ライセンスの関係で、同梱していないとのこと。Bonanzaはソースコードは公開しているがオープンソースでは無いため。)
$ wget http://gi.cs.uec.ac.jp:10140/bonanza_v6.0.zip $ unzip bonanza_v6.0.zip $ cp bonanza_v6.0/winbin/fv.bin WCSC23/
fv.bin を WCSC23配下にコピーしておきましょう。
動作確認 (WCSC23/Julia)
では動作確認していきましょう。
WCSC23/Juliaディレクトリで、$ ./Main.jl してみます。何も出なければ多分動いています。エラーが出る場合は何らかの修正が必要です。
$ cd WCSC23/Julia $ ./Main/jl bash: ./Main.jl: /home/kimura/julia/julia: 誤ったインタプリタです: そのようなフ ァイルやディレクトリはありません
おっと、shebangを修正しましょう。
$ sed -i.bak -e 's\#!/home/kimura/julia/julia\#!/usr/bin/env julia\' Main.jl
修正しましたので再度実行しましょう。
$ ./Main/jl
10秒くらいなにも出力されなけければOKなので、Ctrl+Cで停止。
$ cat inputdata | ./Main/jl id name Mecha Jyoshi Shogi 0.5 id author Sayuri TAKEBE, Mio WATANABE, Rieko TSUJI and Takeshi KIMURA option name BookFile type string default ./Joseki.db option name UseBook type check default true usiok readyok info time 67 depth 1 nodes 30 score cp 52 nps 450 pv 2h1h info time 194 depth 2 nodes 155 score cp 4 nps 800 pv 2h1h 5a4b info time 353 depth 3 nodes 1513 score cp 21 nps 4282 pv 2h1h 8b6b 4g4f info time 594 depth 4 nodes 5850 score cp 2 nps 9849 pv info time 1195 depth 4 nodes 17540 score cp -6 nps 14681 pv 4g4f 8b9b 2h4h 5a4b info time 5707 depth 5 nodes 122243 score cp 19 nps 21418 pv 9g9f 3c3d 2g2f 8b9b 4i5h bestmove 9g9f
こんな感じが出力されればOKです。
エンジンの登録
将棋所に登録しましょう。まずはsocketをインストールしましょう。
ここではsocketを用いた方法で行います。
$ sudo apt-get install socket
4091.regist.sh の shebang を #!/usr/bin/env julia に変更します。
次に下記コマンドにてコピーします。
$ cp -p 4091.sh 4091.sh.org $ cp -p 4091.regist.sh 4091.sh
将棋所を起動し、エンジンとして 4091.sh を登録します。
下記コマンドを実行し、4091.sh を元に戻しておきましょう。
$ cp -p 4091.sh.org 4091.sh
遊び方
4091ポートで待ち受けるように下記コマンドにて起動します。
$ socket -sqv -p ./Main.jl 4091
$ cd Shogidokoro $ mono Shogidokoro.exe
起動しました!
*1:以前は git-core というパッケージ名でしたが現在は git というパッケージ名になったようですね
プログラミング言語Julia ~Ubuntu 編~
先日Windowsにインストールしてみた Julia ですが、Ubuntu のパッケージが用意されています。対象のUbuntuは 12.04, 12.10, 13.04, 13.10 があります。ここでは Ubuntu 12.04.3 (LTS) にインストールします。
Ubuntu にパッケージのリポジトリを導入
公式サイトの手順に沿って、実施します。依存関係パッケージは別ppaのためそちらも追加します。
$ sudo add-apt-repository ppa:staticfloat/juliareleases $ sudo add-apt-repository ppa:staticfloat/julia-deps $ sudp apt-get update
インストール
julia という名前のパッケージをインストールします。
$ sudo apt-get install julia
REPL
julia でREPLが起動できます。
スクリプト起動時間の比較
どうも起動時間が遅いようですね。Hello World を表示するスクリプトをいくつかのプログラミング言語と比較してみました。
言語 | 時間 |
---|---|
Python | 0.065s |
Ruby | 0.013s |
Julia | 3.786s |
測定
tkondou@zion:~$ time python ~/work/playground/py/hello.py Hello, World! real 0m0.065s user 0m0.016s sys 0m0.020s tkondou@zion:~$ time ruby ~/work/playground/ruby/hello.rb Hello, World! real 0m0.013s user 0m0.000s sys 0m0.008s tkondou@zion:~$ time julia ~/work/playground/julia/hello.jl Hello, World! real 0m3.786s user 0m3.424s sys 0m0.052s tkondou@zion:~$
Ubuntu 12.04 LTS にて Python 3.3 の環境構築
Ubuntu 12.04 (precise) の Python 3系をインストールすると、Python 3.2.3 が入ります。Python 3.3 が使いたいですよね*1。そこで、最新の Python 3.3.2 をインストールし virtualenv を用いた環境を構築してみましょう。
1. PPA を導入
PPAにてPython3.3パッケージを公開している方がいます。自己責任で入れましょう。
$ sudo apt-get install python-software-properties $ sudo add-apt-repository ppa:fkrull/deadsnakes $ sudo apt-get update $ sudo apt-get install python3.3
2. setuptools のインストール
まずは、easy_installを導入します。setuptoolsというパッケージに入っていますので、Linuxの場合の手順 にしたがって導入します。
$ wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py $ sudo python3.3 ez_setup.py
/usr/local/lib/python3.3 以下にインストールされます。
easy_install-3.3 コマンドが使えるようになります。
3. virtualenv のインストール
パッケージが導入できるようになったら、 virtualenv を入れましょう。
$ easy_install-3.3 virtualenv
4. virtualenv にて仮想環境をつくる
virtualenv は Python の仮想環境を好きなディレクトリにつくることができます。
下記は、 ~/venv3.3 以下に virtualenv環境をつくります。好きな場所でよいです。
$ virtualenv-3.3 ~/venv3.3
起動にする (activate)
tkondou@zion:~$ cd venv3.3 tkondou@zion:~/venv3.3$ source bin/activate (venv3.3)tkondou@zion:~/venv3.3$
期待どおり、python インタプリタが 3.3.2 になっています。
(venv3.3)tkondou@zion:~$ python Python 3.3.2 (default, May 16 2013, 23:40:52) [GCC 4.6.3] on linux Type "help", "copyright", "credits" or "license" for more information. >>>
停止する (deactivate)
仮想環境から抜ける場合は、 deactivate します。
(venv3.3)tkondou@zion:~$ deactivate tkondou@zion:~$
5. ipython を virtual環境にインストールする
python インタプリタは ipython が使いやすいのでインストールします。
activate した状態で、pip コマンドでインストール可能です。
(venv3.3)tkondou@zion:~$ pip install ipython ... Successfully installed ipython Cleaning up...
ipython3 を実行することで ipython 無事起動します。
(venv3.3)tkondou@zion:~$ ipython3 Python 3.3.2 (default, May 16 2013, 23:40:52) Type "copyright", "credits" or "license" for more information. IPython 1.1.0 -- An enhanced Interactive Python. ? -> Introduction and overview of IPython's features. %quickref -> Quick reference. help -> Python's own help system. object? -> Details about 'object', use 'object??' for extra details. In [1]:
6. Python 3.3 を学ぶことができる書籍
Python 3.3 環境が導入できました。下記の本は 3.3 で実行することができますのでそばにおいておくて良いでしょう。
パーフェクトPython (PERFECT SERIES 5)
- 作者: Pythonサポーターズ
- 出版社/メーカー: 技術評論社
- 発売日: 2013/03/05
- メディア: 大型本
- 購入: 1人 クリック: 65回
- この商品を含むブログ (9件) を見る
空飛ぶPython即時開発指南書 (Programmer’s SELECTION)
- 作者: Naomi Ceder,新丈径
- 出版社/メーカー: 翔泳社
- 発売日: 2013/02/26
- メディア: 大型本
- クリック: 12回
- この商品を含むブログを見る
*1:13.04 raring や 13.10 saucy は Python3.3が apt-get で導入可能のようです
ubuntu の proxy 設定方法
ubuntu 11.04 on Virtual Box でやってみました。
結論としては
「システム」→「設定」→「ネットワークのプロキシ」
のところだけ設定すればよいことが分かりました。
だいぶ前にネットワークプロキシがうまくいかず、
あれこれ設定を悩んだ記憶がありましたが、これでいけました。
- 作者: 阿久津良和
- 出版社/メーカー: 技術評論社
- 発売日: 2011/02/05
- メディア: 単行本(ソフトカバー)
- クリック: 393回
- この商品を含むブログ (10件) を見る
Redmine インストール on Ubuntu 10.10 using Passenger
Ubuntu 10.10 に redmine をインストールした備忘録です。
LAMP インストール
tasksel を使ってLAMP(Linux/Apache/MySql/Perl,PHP,Python)
をセットアップしておきます。
$ sudo apt-get install tasksel
$ sudo tasksel install lamp-server
redmine インストール
AppArmorはセキュリティ関連の設定らしいですが、
mysqld を complain mode(学習モード)にする必要
があるかもしれないと書いてあります。(詳しいことはそのうち調べる)
$ sudo aa-complain /usr/sbin/mysqld
Setting /usr/sbin/mysqld to complain mode.
Ubuntu 10.04以降 は redmine の pkg が用意されているので
さくっとインストール。
2番目のパッケージ(redmine-mysql)は、redmine-pgsql や redmine-
$ sudo apt-get install redmine redmine-mysql subversion
いくつか問い合わせがきます。
redmine/instances/default のデータベースを dbconfig-common 設定→はい
redmine/instances/default が使うデータベース種類 →mysql
データベースの管理権限を持つユーザのパスワード→mysqlのパスワードを入力
redmine/instances/default用のMySQL アプリケーションパスワード→redmine 入力
Redmine が下記ディレクトリにインストールされました
AppArmor の mysqld profile を元に戻します
$ sudo aa-enforce /usr/sbin/mysqld
Setting /usr/sbin/mysqld to enforce mode.
apache2 と passenger の Configuration
http://localhost/redmine のようにアクセスする設定を行ないます。
シンボリックリンクを貼ります
ファイルが無かったのでviで開き
$ sudo vi /etc/apache2/mods-available/passenger.conf
下記を追記します。
PassengerDefaultUser www-data
さらに、/etc/apache2/sites-available/default に下記の追記が必要です。
RailsBaseURI /redmine
PassengerResolveSymlinksInDocumentRoot on
passenger を有効にします。
$ sudo a2enmod passenger
ERROR: Module passenger does not exist!
おやエラーがでました。
どうやら passenger が入っていないようですので
インストール。
$ sudo apt-get install libapache2-mod-passenger
さきほど設定した /etc/apache2/mods-available/passenger.conf
が存在しているよと言われるので、”Y"でメンテナ版を入れます。
passenger.conf を確認。
$ more /etc/apache2/mods-available/passenger.conf
PassengerRoot /usr
PassengerRuby /usr/bin/ruby
もう一度下記を追記。
PassengerDefaultUser www-data
passengerを有効にします(どうやらインストールした段階で
有効になっているようです)
念の為 apache2 を再起動しておきます。
$ sudo a2enmod passenger
Module passenger already enabled$ sudo apache2ctl restart
redmine 起動の確認
以下をアクセスし redmineが起動できていることを確認しました
http://localhost/redmine/