UsedのThinkpad X60sを¥39,800で購入しました。ちなみに英語キーボードです。
Ubuntuを入れて快調です。メモリは2G追加。
インストールはUSBメモリからで、ひっかかることもなく
とても簡単にできました。無線LANもデフォルトで使用できました。
右パームレスト部分が無線LANカードの発熱のために熱くなりますが、
これは仕様なようです。無線OFFにしておくと熱くならなかったし、
無線もともと使わない予定なので問題なし。
久方ぶりにマイノートPCを手に入れ感無量。
半年くらいしたらSSDにしたいなぁと妄想は膨らむ。
2009年6月5日金曜日
2009年5月31日日曜日
JavaOne 2009 Script Bowl
JavaOne 2009では、去年のJavaOne 2008に引き続きScript Bowlのセッションがあるようです。
Script Bowlでは、JavaVM上のスクリプト言語同士でプログラミング対決をしたり、
言語の特長を紹介したりするようです。
去年は、Scala,Groovy,JRuby, Jythonだったのですが、
今年はこれにClojureが加わって5つの言語で対決するようです。
JavaVM上のスクリプト言語は、他にも山ほどあるわけで、
JavaOneで5つめに選ばれたってことは、けっこう注目度がたかいということでしょうか。
これをきっかけにさらに盛り上がるといいなぁ。
Script Bowlでは、JavaVM上のスクリプト言語同士でプログラミング対決をしたり、
言語の特長を紹介したりするようです。
去年は、Scala,Groovy,JRuby, Jythonだったのですが、
今年はこれにClojureが加わって5つの言語で対決するようです。
JavaVM上のスクリプト言語は、他にも山ほどあるわけで、
JavaOneで5つめに選ばれたってことは、けっこう注目度がたかいということでしょうか。
これをきっかけにさらに盛り上がるといいなぁ。
2009年5月19日火曜日
Clojure勉強の進捗
1.Clojureでマクロ
マクロの練習に、パターンマッチングのマクロを書いた。
マクロの基本的な書き方や、mapやvector、sequenceの基本もわかってきた。
gitの使い方を覚えて、antの使い方の基礎を覚えたら、
githubにのせてみたい。
2.Clojureでモナド
Clojure.contrib.monadsの使い方を下記の解説をみて覚える。
Monads in Clojure
A monad tutorial for Clojure programmers (part 1)
part 2
part 3
part 4
http://stefan-klinger.de/
のところにある
The Haskell Programmer's Guide to the IO Monad — Don't Panic.
をもう一度読む。
Arrow syntax
8.10. アロー記法
も読んでArrowも理解したい。
3.その他
軽くJavaの復習。antやJDEEなども。
あとConcurrent-Programming-Java-TM-Principles
を注文したのできたら読む。
LWGL - Lightweight Java Game Library
というのを見つけた。よさそう。
マクロの練習に、パターンマッチングのマクロを書いた。
マクロの基本的な書き方や、mapやvector、sequenceの基本もわかってきた。
gitの使い方を覚えて、antの使い方の基礎を覚えたら、
githubにのせてみたい。
2.Clojureでモナド
Clojure.contrib.monadsの使い方を下記の解説をみて覚える。
Monads in Clojure
A monad tutorial for Clojure programmers (part 1)
part 2
part 3
part 4
http://stefan-klinger.de/
のところにある
The Haskell Programmer's Guide to the IO Monad — Don't Panic.
をもう一度読む。
Arrow syntax
8.10. アロー記法
も読んでArrowも理解したい。
3.その他
軽くJavaの復習。antやJDEEなども。
あとConcurrent-Programming-Java-TM-Principles
を注文したのできたら読む。
LWGL - Lightweight Java Game Library
というのを見つけた。よさそう。
2009年5月10日日曜日
Tokyo CabinetをUbuntuにインストール
Tokyo Cabinet
Tokyo CabinetはHirabayashi Mikio 氏により新しく実装された高速なDBMです。
DBMというのは、Database Managerの略で、非常にシンプルなキー:バリュー型の
データベースです。プログラミングでいうところのハッシュマップや連想配列、辞書と同じような機能を、ファイル上に永続化して使用できるというようなものです。
Berkeley DBなどが有名です。
Tokyo Cabinetは、とても新しく実装されたDBMで、
高速な処理や非常に大きいデータベースファイルを扱えるなどのすぐれた
特徴を持ち、Java,Perl,Ruby,Lua用のAPIが公式に用意されています。
ClojureでオレオレDBMSを実装するためのバックエンドとして使いたいと思っているので、
今回はまず、UbuntuにTokyo CabinetとJava APIをインストールします。
ここで前回インストールしたPacoを使用して
のかわりに、
としてインストールしてみた。
つぎにJava用APIをインストール。
http://tokyocabinet.sourceforge.net/javadoc/
にあるサンプルを実行。
インストールは成功した模様。
Tokyo CabinetはHirabayashi Mikio 氏により新しく実装された高速なDBMです。
DBMというのは、Database Managerの略で、非常にシンプルなキー:バリュー型の
データベースです。プログラミングでいうところのハッシュマップや連想配列、辞書と同じような機能を、ファイル上に永続化して使用できるというようなものです。
Berkeley DBなどが有名です。
Tokyo Cabinetは、とても新しく実装されたDBMで、
高速な処理や非常に大きいデータベースファイルを扱えるなどのすぐれた
特徴を持ち、Java,Perl,Ruby,Lua用のAPIが公式に用意されています。
ClojureでオレオレDBMSを実装するためのバックエンドとして使いたいと思っているので、
今回はまず、UbuntuにTokyo CabinetとJava APIをインストールします。
sudo apt-get update
wget http://tokyocabinet.sourceforge.net/tokyocabinet-1.4.20.tar.gz
sudo apt-get install build-essential
sudo apt-get install zlib1g-dev
sudo apt-get install libbz2-dev
wget http://tokyocabinet.sourceforge.net/tokyocabinet-1.4.20.tar.gz
tar xzvf tokyocabinet-1.4.20.tar.gz
cd tokyocabinet-1.4.20
export CPPFLAGS="-I/usr/lib/jvm/java-6-openjdk/include/"
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk
export PATH=$JAVA_HOME/bin:$PATH
./configure
make
ここで前回インストールしたPacoを使用して
sudo make install
のかわりに、
sudo paco -D make install
としてインストールしてみた。
つぎにJava用APIをインストール。
wget http://tokyocabinet.sourceforge.net/javapkg/tokyocabinet-java-1.18.tar.gz
tar xzvf tokyocabinet-java-1.18.tar.gz
cd tokyocabinet-java-1.18
./configure
make
make check
sudo paco -D make install
http://tokyocabinet.sourceforge.net/javadoc/
にあるサンプルを実行。
import tokyocabinet.*;
% cat TCHDBEX.java
import tokyocabinet.*;
public class TCHDBEX {
public static void main(String[] args){
HDB hdb = new HDB();
if(!hdb.open("casket.tch", HDB.OWRITER | HDB.OCREAT)){
int ecode = hdb.ecode();
System.err.println("open error: " + hdb.errmsg(ecode));
}
if(!hdb.put("foo", "hop") ||
!hdb.put("bar", "step") ||
!hdb.put("baz", "jump")){
int ecode = hdb.ecode();
System.err.println("put error: " + hdb.errmsg(ecode));
}
String value = hdb.get("foo");
if(value != null){
System.out.println(value);
} else {
int ecode = hdb.ecode();
System.err.println("get error: " + hdb.errmsg(ecode));
}
hdb.iterinit();
String key;
while((key = hdb.iternext2()) != null){
value = hdb.get(key);
if(value != null){
System.out.println(key + ":" + value);
}
}
if(!hdb.close()){
int ecode = hdb.ecode();
System.err.println("close error: " + hdb.errmsg(ecode));
}
}
}
% javac TCHDBEX.java
% ls
TCHDBEX.class TCHDBEX.java% java TCHDBEX
hop
foo:hop
bar:step
baz:jump
% ls
TCHDBEX.class TCHDBEX.java casket.tch
インストールは成功した模様。
PacoをUbuntuにインストール
"make install"したソフトウェアを管理できる超便利ツール「Paco」
を参考にPacoをUbuntuにインストール。
を参考にPacoをUbuntuにインストール。
sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install libgtkmm-2.4-dev
wget http://downloads.sourceforge.net/paco/paco-2.0.6.tar.gz
tar zxvf paco-2.0.6.tar.gz
cd paco-2.0.6/
./configure
make
sudo make install
sudo make logme
2009年5月8日金曜日
Clojure 1.0
Clojure 1.0 - Clojure Clojure | Google Groups
Clojure: Clojure 1.0News about Clojure by Rich Hickey
ついにClojureの1.0がでました。
Congratulation!
Clojure: Clojure 1.0News about Clojure by Rich Hickey
ついにClojureの1.0がでました。
Congratulation!
2009年5月4日月曜日
zsh上でsvnの補完がエラーになる
zsh上でsvnコマンドの補完が
_arguments:comparguments:303: invalid argument: ARG
というメッセージとともにエラーになる症状になった。
どうも、subversion1.5とzsh4.3.4の組み合わせで、
zsh4.3.4の
/usr/share/zsh/4.3.4/functions/_subversion
が、subversion1.5での変更に対応していないことが原因のよう。
http://d.hatena.ne.jp/sotarok/20080813/1218649287
こちらを参考に、
で解決しました。
ありがとうございます。
_arguments:comparguments:303: invalid argument: ARG
というメッセージとともにエラーになる症状になった。
どうも、subversion1.5とzsh4.3.4の組み合わせで、
zsh4.3.4の
/usr/share/zsh/4.3.4/functions/_subversion
が、subversion1.5での変更に対応していないことが原因のよう。
http://d.hatena.ne.jp/sotarok/20080813/1218649287
こちらを参考に、
% curl -O http://gvn.googlecode.com/svn/trunk/contrib/zsh/_subversion
% sudo mv _subversion /usr/share/zsh/site-functions
で解決しました。
ありがとうございます。
登録:
投稿 (Atom)