2008 年 11 月 30 日 | カテゴリー: ガジェット, 環境構築

2008113001.png

以前書いた通り、VAIO TZ に Mandriva をインストールするノウハウはあります。今回は 2009.0 にアップグレード(クリーンインストール)。
Apribase » Mandriva Linux 2008.1 on VAIO VGN-TZ92

そもそも前回 2008.1 のままにしていたのは、KDE 4 リリースのために KDE 3 が /opt 配下のオプション扱いになっただけでなく、KDE 3.5.10 のほうも動作があやしくなってしまったために、いろいろと回避策を模索していたため。

一応 KDE のほうの環境も構築はできたのですが、Mac を使うようになったし、KDE と心中するほど愛着があるというほどでもないし、Gnome も食わず嫌いせずに触ってみようかとか迷走した結果、Gnome でもいいかという終着点に着いてしまいました。

Kernel

WEB カメラは r5u870 を make install すれば動くはずですが、本家サイトがなくなってるし、パッケージ管理できなくなったのに make してまで使いたいわけでもないので今回は入れないことに。
# 入れる場合は SRPM をバラして SOUECE を取得。
bluetooth も認識してるし、Fn キーの輝度変更は自前でスクリプトを書かなくても使えるようになってました。

Software Comment
kernel-desktop-latest  
kernel-source-latest  
kernel-desktop-devel-latest  
kernel-headers-latest コレを入れないと version.h が見つからない罠。
iwlwifi 4965 ハードウェア検出時に入る無線 LAN ドライバ。

Gnome デスクトップ

Gnome-Look.org を歩き回ってテーマを試したり編集したり、Dropbox をビルドしたり、Gnome-Do の挙動を確認したり。

Software Comment
gnome-do 0.6.10 QuickSilver もどき。
Meliae Gnome テーマアイコン。search.png が gnome-do 表示で悲しいことになるので、元の search.svg で表示するようにシェルスクリプトを書いて置き換え。
compiz 0.7.8 ぐにょんぐにょん。
cairo-dock 1.6.2.3 Mac の Dock みたいなのがありました。
gnome-terminal 2.24.0 なぜか ls や vim の色まで見やすくなった件。あと透過具合も Konsole 以上。
openoffice.org 3.0  
AdobeReader_jpn 8.1.3 xim に変更するおまじないをいつからか入れなくても動くようになってました。
nautilus-dropbox 0.5.0 (0.6.427) rpm 作りました。.dropbox-dist が落ちてこないのでフォーラムビルドを直接 DL。
checkinstall 1.6.1 make; make install; checkinstall; make uninstall; の流れじゃないと dropbox rpm 作れませんでした。
libnotify1-devel 0.4.4 nautilus-dropbox のビルドに必要。
nautilus-devel 2.24.0 nautilus-dropbox のビルドに必要。
fonts-ttf-japanese 0.20080804 ume fonts 入り。
fonts-ttf-japanese-ipamona 20060712 IPA モナー。通常フォント用に。
fonts-ttf-japanese-mplus_ipagothic 20060520 IPAモナー と M+。プログラミング用に。

KDE アプリ

KDE でずっと生活してきたので、Kate と Kaffeine は捨てがたく。KDevelop は NetBeans で間に合うんですが。
あと kcontrol でコントロールセンタを起動して、フォントのアンチエイリアスを明示的に有効にしないと英語がギザギザです。Gnome だからってわけじゃなくて、/opt/kde3 のせいだと思うけど。

Software Comment
kate 3.5.10 便利エディタ。代替ってないですよね。
kwrite 3.5.10  
konsole 3.5.10 Kate のためのコンソール部。
ksnapshot 3.5.10 他のスナップショットの撮り方を調べてません。
amarok 1.4.10 flac が再生できる子が他にいますか。
kaffeine 0.8.7 plf plf の方。compiz 環境でも動画再生できるようにビデオドライバは xshm に。
ia_ora-gnome 1.0.20 こっちは Gnome 環境なら最初から入るんですが、
ia_ora-kde 1.0.8 こっちを入れておかないと KDE アプリの見た目がしょんぼりのままになるので。

動画

Software Comment
ffmpeg 0.4.9 plf 動画変換のために。plf の方。
flash-player-plugin 10.0.12.36 LLVM とか進化具合が異常。

Firefox

Software Comment
firefox-3.0.4  
bbs2chreader 0.5pre2 Dropbox でログ管理試してます。Kita から乗り換え。
Gmail Manager 0.5.5  
Google Pagerank Status 0.9.9  
Firebug 1.2.1  
Greasemonkey 0.8.20080609.0  
MR Tech Toolkit 6.0.3.1  

サーバ

Software Comment
openssh-server 5.1p1  
samba 3.2.3  

Ruby

JRuby だけだとまだ使えないライブラリとかあるので、つなぎに使ってます。

Software Comment
ruby 1.8.7-7p72 JRuby だけで生きていける日を望んで。
ruby-RubyGems 1.0.1 インストールしてから 1.3.1 にアップデート。
ruby-devel 1.8.7-7p72 ないと gems でビルドが走るときにコンパイルできません。
ruby-doc 1.8.7-7p72 ないと gems で以下同文。

関数型言語

Scheme が限界だったけど、最近ようやく Haskell のよさが分かってきたかんじ。
OCaml と Scala はまだ触ってません。
そうそう。最近、C++ っていう関数型言語をよく触るようになりました。

Software Comment
Gauche 0.8.14 Scheme 処理系。いつも通り SRPM からビルド。
libgdbm-devel 1.8.3 Gauche のビルドに必要。
ghc 6.8.3 Haskell 処理系。BNF をよく書くようになってからありがたみが分かってきたかも。
libboost-devel 1.36.0 C++ は関数型言語なので副作用なく書けると綺麗です。boost::spirit とか boost::lambda とか。

ソースコード管理

最近は Google のコード管理サービスがよさげなので、そっちに移行してもいいかも。
mercurial は最近ようやく使うようになりました。

Software Comment
mercurial 1.0.2 分散型バージョン管理。セットアップはすごく楽。
colorgcc 1.3.2 gcc の出力に色がつきます。
global 5.7.1 ソースコードにタグ付けできます。HTML 出力が便利。

コミュニケーションツール

最近は Twitter 依存症。

Software Comment
pidgin 2.5.1 MSN 使いの人が多いので緊急連絡用に。
skype 2.0.0.72 連絡用。
PeraPeraPrv 3.44 Twitter クライアント。Linux 環境ではいくつか工夫が必要だったけど、起動用スクリプトも書いて今は幸せに。

Java

/opt/java 配下にシンボリックリンクを使って自前管理。
最初は jdk だけから始まったこのディレクトリも今はこんなに。ちょっと感慨深い。
fallback への日本語リンクを忘れずに。
flex sdk (Adobe AIR とかのほうの) は、入れても開発は FlexBuilder ありきだし、Linux で使うことはまだないだろうなあということで入れてません。

Software Comment
jdk 1.6.0_10 ないと生きていけませんし。母国語的な意味で。
ant 1.7.1 NetBeans 組み込みのがあるし、実はあんまり使ってないかも。
javacc 4.0 コンパイラコンパイラ。
jruby 1.1.5 Java で Ruby。Java 使いなのでこっちのがとっつきやすく。
processing 1.0 MIT のお絵描き言語。
netbeans 6.5 GTK 環境になったのもあって、Linux でもまともに見れるフォントになりました。

KDE から Gnome へ移ってみた感想

nautilus のデフォルトのフォルダダブルクリックでどんどんウインドウが開く仕様と、暗い色のアイコンが嫌だったんですが、本気で使う気になればすぐに改善できました(設定の変更とテーマ変更をするだけ)。
あとはほとんど変わりません。むしろ KDE アプリの設定方法を知っているので、Gnome 上での KDE アプリの見た目の設定方法を知ってる分、両アプリを扱えて幸せ。
あと Java の GTK Look を使えるのがすごく大きいです(KDE でも使えますけど)。

2008 年 11 月 19 日 | カテゴリー: プログラム, 日記

2008111901.jpg

イベント&セミナー – 2 時間で学ぶ今月の Java ホットトピック (11月号)

Sun に行ってました。 NetBeans いいよ NetBeans。
急な飛び入り参加でしたが、かたかいさんのおかげです。

お題は Java Expert #03 つながりから NetBeans コミュなどについて。
ねこび縲怩ヘかわいいです。こっそり資料などに忍ばせておくと皆さん興味を持ってくれるのは、あのかわいさゆえ。

少なくともわたしは、Java, C/C++, Ruby は NetBeans で書いているんですけど、周りが昔は Eclipse ばかり、今は emacs ばかりでなかなか興味を持ってもらえないところが悩み。プライベートでしか Java を書いてないってのもありますが。一応、第一言語。
# NetBeans 4.x 時代は確かにフォントで Eclipse から乗り換える気になりにくいのはあったと思いますが。

2008111902.jpg

そうそう、NetBeans ロゴ入りの小さな箱を頂いたのですが、開けてみると黒い固まり;
さらに展開できそうなので開いてみたら、まさかのTシャツでした。あの小さな箱に。
# シワ加減がどこのゴス服ですかと一瞬連想したのは秘密。

2008111903.jpg

ねこっちと晩ご飯。プログラム談義は最近はうめさんとねこっちとしかしてない気がする;
そういえば、Ruby に全く触れてなかった頃の記録を半年前から掘り出してみたけど、今は最低限のコードは書けて JRuby も日常の環境に当たり前のように入れているあたり、昼間 Java を全く触れてなくてしょんぼりしながらも徹夜でプライベートコーディングのかいはあったのかと、ちょっと報われた気分。アウトプット出してないのが問題ですが。
Apribase » 今月の2時間で学ぶ Java Hot Topic(6月号)- JRuby and SailFin

2008 年 11 月 16 日 | カテゴリー: プログラム, 環境構築

2008111601.png

元々の Mac OS X Leopard の特殊なディレクトリ階層に加えて、Sum Microsystems からは Mac 向け Java が提供されていないため Apple が Java を用意しているわけですが、これがさらに特殊な階層構成になっていました。

シンボリックリンクが多用されているうえに、どのタイミングでどのリンクを参照にしにいくのかを把握できなければ、どこを変更すればいいのかも分からないのですが、だいたい見えてきたので上記がそのまとめです。
# Visio で頑張ってビジュアライズしてみた。

Apple の Java パッケージについて

Java for Mac OS X 10.5 Update 2 には、JRE と JDK の両方が含まれており、しかも 1.3 から 1.6 までの全てがインストールされ、シンボリックリンクで切り替えられるような構成になっていました。
しかし、単純にひとつリンクを張り替えれば全て切り替わるわけではなくて、呼ばれるケースによって参照されるリンクが異なっているというやっかいな仕様なもよう;

/usr/bin/java や /usr/bin/javac のバージョンの切り替えについて

2008111602.png

/Applications/Utilities/Java Preferences.app で GUI からバージョンを切り替えるのが正解です。
Java SE 6 64-bit を選択すると以下なかんじに。

$ /usr/bin/java -version
java version "1.6.0_07"
Java(TM) SE Runtime Environment (build 1.6.0_07-b06-153)
Java HotSpot(TM) 64-bit Server VM (build 1.6.0_07-b06-57, mixed mode)

これでシンボリックリンクも切り替わっていれば、「これはリンクを張り替えるためのフロントエンドなんだ!」めでたしめでたし、となっていたのですが、そういうわけにはいかず。

$ ls -l /Systems/Library/Frameworks/JavaVM.framework/Versions
(一部省略)
lrwxr-xr-x 8 root wheel 272 2008-11-15 23:56 A
lrwxr-xr-x 8 root wheel   1 2008-11-15 23:56 Current -> A
lrwxr-xr-x 8 root wheel   3 2008-11-15 23:56 CurrentJDK > 1.5

/usr/bin/java は Current を参照しにいっているようです。

$ ls -l /usr/bin/java
lrwxr-xr-x 1 root wheel 74 2008-11-15 23:56 /usr/bin/java -> /System/Library/Frameworks/JavaVN.framework/Versions/Current/Commands/java

Current は A へのリンク。

$ ls -l /System/Library/Frameworks/JavaVN.framework/Versions/Current
lrwxr-xr-x 1 root wheel 74 2008-11-15 23:56 /System/Library/Frameworks/JavaVN.framework/Versions/Current -> A

さらに Commands/java は、A だと実体のように見えて、それ以外(1.5.0 や 1.6.0)だと ../Home/bin/java へのシンボリックリンク。

$ ls -l /System/Library/Frameworks/JavaVN.framework/Versions/Current/Commands/java
lrwxr-xr-x 1 root wheel 1 2008-11-15 09:06 /System/Library/Frameworks/JavaVN.framework/Versions/Current/Commands/java
$ ls -l /System/Library/Frameworks/JavaVN.framework/Versions/CurrentJDK/Commands/java
lrwxr-xr-x 1 root wheel 16 2008-11-15 23:56 /System/Library/Frameworks/JavaVN.framework/Versions/CurrentJDK/Commands/java -> ../Home/bin/java

A っていうのが何者なのかってことになるんですが、中身を見る限り、1.5 や 1.6 と同様 Java 本体のようです。
でもリンクじゃないのに切り替わるとはこれいかに?ハードリンクみたいな何かで、GUI で切り替わってる?いやでも Home が含まれてません。
それはおいといて、CurrentJDK が 1.5 のままで、この子は別の何かから参照される可能性があります。
これを切り替えるにはどうしましょうか(以下の JAVA_HOME についてで説明)。

CurrentJDK と JAVA_HOME について

Java Development Guide for Mac OS X: Overview of Java for Mac OS X

The Java Home Directory

Some applications look for Java’s home directory ($JAVA_HOME) on the user’s system, especially during installation. If you need to set this explicitly in a shell script or an installer, set it to /Library/Java/Home/. Setting it to the target of this symbolic link can result in a broken application for your customers down the road, when Apple ships a software update that changes the default version of Java, or when the user moves the application to another version of Mac OS X which has a different default version of Java. Programatically you can use System.getProperty(“java.home”), as you would expect.

/Library/Java/Home/ also contains the bin/ subdirectory where command-line tools like java and javac are found. These tools match the default version of Java for the system as defined by Apple. Additionally, the Java tools available on the default path in /usr/bin will dynamically target the top preferred version of Java that the user has chosen for applications in the Java Preferences application.

だいたいこのあたりを読んでみて、/Library/Java/Home を JAVA_HOME にしておくと幸せになれるらしいよという理解。
これもリンクなので辿ってみると、CurrentJDK/Home を指しているもよう。ということで、CurrentJDK のリンク先を 1.5 から 1.6 へ自分で切り替えておいて、JAVA_HOME を /Library/Java/Home にしておけばいいかんじ。

$ cd /Systems/Library/Frameworks/JavaVM.framework/Versions
$ sudo rm CurrentJDK
$ sudo ln -s 1.6 CurrentJDK

ちなみに Home を指しておけば $JAVA_HOME/bin で java, javac を参照して幸せなのはよしとして、Commands/java や Commands/javac は何者か ls -l で確認してみると、Home/bin 以下へのシンボリックリンクでした。

Java 関連ツールの管理場所 (/opt/java 以下に配置)

Windows であれば C:\Program Files\Java 以下。
Linux であれば /usr/local/java 以下。
jdk と同じ位置に ant や jruby を置くように管理していたのですが、Mac の jdk の位置と階層が特殊すぎて、同じにするのは気がひけます。

/usr/local 以下は Mac では最初は存在せず、Mercurial のパッケージが /usr/local 以下にバイナリを展開してきたり、中途半端に使われていたりで、ここに置くのも若干気持ち悪く。
MacPorts を /opt/ports (prefix 指定で名前は変更した) にインストールしたので、Java 関連も /opt/java 配下に置くようにすれば、同じように管理できていいかなと思い、合わせてみました。

$ ls -l
lrwxr-xr-x  1 root admin  16 2008-11-16 04:27 ant -> apache-ant-1.7.1
lrwxr-xr-x 14 root admin 476 2008-06-27 05:04 apache-ant-1.7.1
lrwxr-xr-x  1 root admin  10 2008-11-16 04:27 javacc -> javacc-4.0
lrwxr-xr-x  6 root admin 204 2008-11-03 07:51 javacc-4.0
lrwxr-xr-x  1 root admin  18 2008-11-16 04:11 jdk -> /Library/Java/Home
lrwxr-xr-x  1 root admin  11 2008-11-16 04:28 jruby -> jruby-1.1.5
lrwxr-xr-x 12 root admin 408 2008-11-03 16:46 jruby-1.1.5

環境変数を /etc/bashrc に設定

環境変数を /etc/bashrc に書いておこうかと思ったら、root でさえも書き込み権限がなかったので権限変更。
vim で末尾に追加編集します。

$ sudo chmod 644 /etc/bashrc
$ sudo vim /etc/bashrc
# for java
export JAVA_HOME=/opt/java/jdk
export ANT_HOME=/opt/java/ant
export JAVACC_HOME=/opt/java/javacc
export JRUBY_HOME=/opt/java/jruby

export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$JAVACC_HOME/bin:$JRUBY_HOME/bin:$PATH

$PATH の前に置いて優先的に読ませている理由は、XCode に含まれていた ant が /usr/share/ant なんていうところに展開されていたもので、消すのもなんなので優先順位だけ変えたということで。

bash 起動時に読み込んで欲しいので ~/.bashrc と ~/.bash_profile を作成します。
読み込む順番は ~/.bash_profile, ~/.bashrc, /etc/bashrc。

$ vim ~/.bashrc
# .bashrc

# User specific aliases and functions

# Source global definitions
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi
$ vim ~/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

export PATH

ただしこれだと、ターミナルで bash を起動したときに有効になるだけで、GUI からアイコンをクリックして Java アプリケーションを起動、たとえば NetBeans なんかを起動したときには見てくれないそうです。
~/.MacOSX/environment.plist を作成して、GUI アプリケーション向け環境変数が書けるとかなんとか。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer/DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>JAVA_HOME</key>
        <string>/Library/Java/Home</string>
    </dict>
</plist>

他 OS での Java 環境構築例

Windows, Linux, FreeBSD, Mac の全ての Java 環境構築をコンプリートしてしまったわけですが、Mac が一番やっかいだったのは間違いないです。
BSD の diabolo を移植とかできないのかなあ。こんな構成になってるの Mac だけですし。

2008 年 11 月 14 日 | カテゴリー: ガジェット

2008111401.jpg

Macbook が届きました。

2008111402.jpg

箱はこんなかんじ。すごく小さいです。大切なことです。

2008111403.jpg

フタを開けると Macbook。とってもシンプル。

2008111404.jpg

電源はデフォルトでウォールマウントタイプ。
ケーブルレス生活を憧れる人には重要な項目です。VAIO でもウォールマウントを使ってます。

Macbook スペック

スペックは現ノートのほぼ最高スペックを選んでいますが、それでも結果的に一番安いモデルを選択することになりました。
CPU は Penryn の 2.0 GHz。
グラフィックは新オンボードの NVIDIA GeForce 9400M。
メモリは DDR3 で 4GB。

低発熱グラフィックボード搭載で Penryn CPU と DDR3 メモリを 4GB 以上搭載できる静音ノートを求めていましたので。

Macbook 購入の経緯

ケーブルレスな生活を求めて、スピーカや電源など配線が増えるものを極力減らすようにしてきました。
作業スペースの確保の他に、手放しやすい(売りやすい)といった理由からのノートの選択です。
何よりフットワークの違いがデスクトップとノートの大きな差であると感じています。

メインマシンはモバイルの VAIO Type T に Linux を入れたものを使っていますが、家に必要なのは綺麗なディスプレイにつなげることのできる DVI 接続が可能であり、ある程度のグラフィック性能を持ったサブマシン。
しかしサブマシンとはいえ、DVI 接続可能なノートはほとんどなく、グラフィックボードを積んだものも大きく発熱しやすい筐体のものしかありませんでした。
それが最近の Centrino2 アーキテクチャへ移行し、モバイルグラフィックボードも搭載されるようになり DVI 接続も可能になってきました。
今の Macbook であればデスクトップの代わりは十分に務まると思っています。

実際、今のキューブの Dothan + GeForce 7600GS を超えた性能で、静音を超えるほぼ無音。
占有スペースや配線も大きく改善されました。

今の部屋はワンルームに大きな机、ベッド、本棚。そしてノートが2台。
今はまだ NAS や TV キャプチャが残っていますが、生活空間改善計画も大分進めてこれた気がします。

2008 年 11 月 8 日 | カテゴリー: 日記

2008110801.jpg

自分 Type T、うめさん eeePC。
電車の中でノートを開く人はいるけれど、二人並ぶと視線が痛い。
お昼はスパゲッティ。「相変わらず酷いコードしか書けないんだね。もう、ぐちゃぐちゃ。スパゲッティ作ってあげるから、頑張りなよ。」。

勢いでカラオケ行くことになったから互いに準備も何もしてなかったんですけど、とりあえずノート PC 並べてるところに飲み物を持ってくるお姉さん。
前回の、テレビの裏側に回って配線(ry なところにお姉さんがよりマシです。
Apribase » 技術集団の夢

カラオケで娘トラ CD 欲しくなってきて、HMV にも寄ったものだから危ない危ない。

Page 1 of 212
TOP