scala 2.8を使ってみる

正式版まではと思っていたけど、RC7まで増えつづけてるのでしびれをきらして試してみる。

環境
Ubuntu 10.04 64bit(ディスクトップ)

試したもの:

補完とか色々便利になるIDEは必須かなと思ってまず、試してみた
Eclipse
すごく不安定。何でだろう。まぁ、補完できないみたいだし、いっか。

NetBeans
補完は出きるみたい。起動もEclipseより軽いなぁ。
でも・・なんか、カーソルキー無視して画面のカーソルが上に登っていく・・・。なんなの?
ということで、断念して、
Vim
scalaを展開ディレクトリのmisc/scala-tool-support/vim
の下のファイルを、~/vimというディレクトリを作ってコピー。
consoleでコンパイルして成功。手でコマンド打つ方が直感的でいい(?)

mavenで実行
mvn scala:run -DmainClass=.<クラス名>

Hello World!って出すのに3秒かぁ。

mavenについて
maven2でも、会話形式のプロジェクト生成が出きるようになってた。
mvn archetype:generate
scalaのサンプルは238
liftは、236か237
ただし、自動生成されるPOMファイルをみるかぎりバージョンが古い。
最新を使う場合には、他のサンプルと見比べる必要があるかも。
今後に期待。

maven scala-pluginについて

mvn scala:cc
で対象ソースをエディタで保存したときにコンパイルするように常駐する。

scala-swingとちょっとだけ試したけど・・・それは、次回へ。

所感としては、Javaに比べると遅いかなぁ。もう少し大きなプログラムを作って見ないと何とも言えないかなぁ。

プログラムの感想はもう少し文法理解してからだね。

Ubuntu 10.04を導入する。

4月29日のリリース日まで待てずに、導入。
Ubuntu9からだと、ALT+F2で「アプリケーションの実行」小窓をだして、
update-manager -d
として、ディストリビュータを入れ替える指定でアップデートマネージャを起動。
違う奴をかたっぱしから調べてアップグレード。
普通のアップグレードと数が違うだけで同じ。パッケージの差を比較して削除&更新&追加するだけ
途中、何度か強制的に入れ替えているので怒られるけど無視してずんずんすすむ。
いつの間にやら、背景が紫に変わってて、Wine失敗で怒られて終了。

再起動すると普通に10.04になってる。ただ、差分更新なので、2時間強かかった。
まぁ、ほっぽってて進ので、別に困らなかったです。

昨日の段階だと、音楽とか音がプチプチ切れる。FireFox3.6が時々異常終了するってあったけど、今日のアップグレードで治っていた。

ただ、Wineで私本管理が動かない。DLLがちゃんと初期化出来ないようで、一覧を選択すると、ゾンビプロセスになる。
解決方法は今のところ不明。困ったなぁ

Ubuntuでテンキー入力

Ubuntuを導入した時からテンキーによる数字入力ができなくなってた。困らないっちゃこまらなかったんだけど、私本管理をWineで動くようになったので、ISBNを入力するのにテンキーが使えないと辛い。
ということで、解決方法。

  1. まず、Ubuntuでは初期状態で、テンキー自体が認識されていない。ので、numlocxをパッケージ・マネージャーで導入する。
    これで、テンキーを触ると、何やら、マウスがピクピク動くようになっている。
  2. 次にシステム->設定で支援技術をクリック
  3. キーボードのアクセシビリティを選んで、キーボードの設定ウィンドウを出す。
  4. キーボードでポインタを制御出きるようにするのチェックを外す

これでテンキー入力が出きるようになります。
ただ、マウスのピクピクがなくなるので、マウス操作を操作するのが難しい人は、この方法は使えないかもしれません。NumLockボタンで、テンキーモードとマウス移動モードが併用できる様ですが、申し訳ありませんが確認してから使用してください。

core dump file を出したい

Ubuntuではデフォルトではcore dump が出力されない。(というか、最近は出さないようになっているみたい。まぁ、普通の人も使うようになったからねぇ)
なので、シェルで出す出さないしても大本が出さないので出ない。で...

ulimit -c unlimited

として、出すように設定する

leksahのインストール

Ubuntu9.10でHaskellをインストールしただけだと、gtksourceview2が入っていない様です。なので

  1. Synapticパッケージマネージャで
    libgtksourceview2-dev
    をインストールします。
  2. leksahのパッケージをダウンロードして適当な位置に展開します。
  3. leksah下のleksah.cabalをエディタで開き
    regex-posix ==0.72.0.3, regex-compat ==0.71.0.1
    と>=を==に変えます。これをしないと、それぞれの最新版のパッケージだとregex-base-0.93を要求しているので依存関係で失敗します。


でインストールができたのですが、実は使い方よく分かっていません。でも、Haskellの次のバージョンからはHaskell platformという、オールインワンのパッケージの提供形式になるらしく、leksahも同梱されるらしいのでなれておいた方がいい(かも)です。

Haskell 版Cudaパッケージも出ていますが、Haskellの次のバージョン6.12を要求されます。でも、一般の人(ちょっと謎)は、プラットホーム版を待つようホームページに警告が出ています。待ち遠しいです。


次のHaskellは、並列化とかの実装やLLVMとかが盛んにかかれている様ですが、やはり、Unicodeをちゃんと取り込んでくれているらしいことがとてもうれしいかも。日本語で苦労しなくてよくなるという期待は大きいです。

Cudaやってみる。

せっかくnViDIAのドライバー新しくしたのでCUDAをやってみる。
製品を使おうとするとバージョン対応されていないことが多くて、CudaもUbuntu 9.04版が最新。
どうかなぁ。と思って、ツールキットとサンプルをダウンロードしてコンパイルするとエラー。
ググるとどうやら、gccのバージョンが新しすぎるらしい。
sudo apt-get install g++-4.3
として、対応バージョン。ちなみにこれだけだと、デフォルトは、新しい方のままです。ご安心を。
なので、CUDA用には
~/NVIDIA_GPU_Computing_SDK/C/common/common.mkを編集。NVCCFLAGSでコンパイラーを直接指定して
NVCCFLAGS := --compiler-bindir=/usr/bin/gcc-4.3

コンパイル成功!

実行するのにライブラリパスが抜けてた。64ビットOSなのでlib64を指定。~/.bashrcのどこかに。たしか、ファイルがあったら指定できる拡張ファイルがあったと思ったけど、エリアスしかないなぁ。まぁ、直でいいっしょ。
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

あ、そうそう、サンプル以外をコンパイルするなら、パスがいります。
export PATH=/usr/local/cuda/bin:$PATH


nbody(多体問題)すごいわぁ。銀河生成のシミュレーションで一万六千ちょっとが60FPSとかで計算してる。
見る見る、星が集まって・・・ほとんどが砕け散ってるw
試しに10万にして、表示を点だけにしてもそれなりに動いてるよ。290GFlopsとかって数字は本当かなぁ。
でも見てて飽きないよ。

Ubuntu64bitへ移行覚書

今回のお題は3つ。FirefoxNVIDIAドライバーそれぞれの最新化とThunderbirdの導入と移行
それぞれ、操作はとても簡単。

Firefox

  1. 普通にダウンロードするとLinux版となるので、パッケージ形式ではなくTARボールを選択してダウンロード
  2. 展開して適当なディレクトリに配置。
    /opt/Mozilla/firefoxに展開した。
  3. ディレクトリ内のfirefoxが起動プログラム。システム->設定->メイン・メニューでインターネットの中に新しいアイテムとして登録。アイコンは、/opt/Mozilla/firefox/chrome/icons/defaultを選び、default48.pngを選択する
  4. 通常のFirefoxをダウンロードして、パスを切り替える
    sudo apt-get remove firefox3.5.7として、標準のfirebirdをアンインストール
    sudo ln -s /opt/Mozilla/firefox/firefox /usr/bin/firefoxとしてシンボリックリンクを張る

ただ、flashの64ビット版は動作が不安定なようなので通常版をダウンロードして、/usr/lib/mozilla/pluginsのlibflashplayer.soと入れ替えておく。

おしまい。

thunderbird
導入の手順はfirefoxとおなじでTarボールをダウンロードして配置後、メニューに登録して、シンボリックリンクを張るだけ。で、移行については、

  1. windows7で以下を実行する前に、Windows専用のプラグインは削除しておく(例えば、タスクトレイに常駐するプラグインで該当のものを使っていました)
  2. Windows7のユーザIDの%AppData%\Thunderbird以下をすべてコピー
  3. ~/.thunderbird/xxxxxxxx.default/の下にコピー

で起動すれば、メール情報含めすべて移行できているんだけど、Windows用のフォント設定とかも移ってしまう。
なので、プラグインについては一旦削除して再起動後、改めてインストールする。
あとは、Enigmailなど、ファイルパスを指定している設定を該当の場所に変更しておく(暗号キーの移行も忘れずに。私は、キーの正しい移行方法がわから無かったのでそのまま、コピーして、信頼するように設定した。)

おしまい

NVIDIAドライバー
基本手動なので手間がかかります。

  1. NVIDIAのサイトから、Linux 64bitの最新のドライバーをダウンロードする。
    NVIDIA-Linux-x86_64-190.53-pkg2.run とか言った名前になっている。
  2. 日本語をパスに含まない場所に移動またはコピー(コンソールモードでは、日本語は出ません)
  3. chmod +x <ファイル名>で実行権限を与えておく
  4. OSを再起動してリカバリーモードで立ち上げる
  5. telinit 3 を実行してRunlevelを3(マルチタスク)にする。
  6. sudo ./として実行する
    途中の確認はすべてYESでよい(一応ライセンスは読んでね)
  7. 再起動

おしまい

なにぶんメモもとらずに行ったのでファイル名とかディレクトリ名は一部間違っているかもしれません。大まかな手順がこうだということでご了承ください。