発売されたばかりのOS X Lionですが、現在利用しているアプリケーションに不都合が出るかもしれないので、しばらく様子をみてから導入しようと考えていたのですが、、、待てずに買ってしまった^^;

当初、想定していたようにLionにアップグレードしたことで現在利用しているアプリケーションにいくつか問題が発生しています。その中で一番困っているのが、Parallels Desktopという仮想化ソフトウェア。Parallels Desktopでは、ゲストOSとしてWindows XPやLinuxを主に利用していますが、問題が出たのはやはりLinuxでした。

一応、Lionへ正式対応されたParallelsのアップデート(ビルド:12094)をインストールしてみたのですが、Parallels Toolsを各ゲストOSにインストールした後も次の問題は解決していません。

  • Ubuntu 11.04(x86_64のみ確認)
    • Unity UIが旧UI(Snow leopardの時は、Unity UIで起動していた)
    • ネットワークは共有ネットワークのみ有効(ブリッジでは接続できない)
  • Fedora 15(x86_64, i386)
    • GNOME3のUIが旧UI(Snow leopardの時もGNOME Shellは利用できなかった)
    • ネットワークは共有ネットワークのみ有効(ブリッジでは接続できない)
    • ソフトウェアアップデート後、再起動出来なくなることがある(emergency modeで毎回起動するようになる)
Linux系ディストリビューションでは大体同じ問題が発生しています。Windows XPでは特に気になる問題は今のところ発生していませんが、Linuxも含めて全体的に遅くなった様な気がします(Lionの問題かもしれませんが・・・)。
Lionも既にアップデートを控えているという噂もあるので、次回のParallelsのアップデートと併せて気長に待つことにします(Parallels Desktop 7になったりして^^;)。


今更ですが、Parallels Desktop 6へアップグレードしました。

Parallels Desktop 6 For Mac 特別優待版

Parallels Desktop 6
Parallels Desktopは、普段から愛用している仮想化環境の1つですが、バージョンアップが結構頻繁なので最新版へアップグレードするタイミングをいつも悩んでしまいがちです。アップグレードするきっかけは、よく利用するゲストOS(Fedora, CentOS, Ubuntu)のバージョンアップで動作が不安定になったり、Parallels Tools(ゲストOS用の拡張ドライバ)が使えないために困ってしまったり、何かのキャンペーンで値段が下がったりなど^^;
OS X Lionが出た後に新しいバージョンが出そうだったので、それまで待とうかと思っていましたが、たまたまVector PC Shopのキャンペーンで4,500円になっていたことと、一応OS X Lion compatibilityだったので待てずに購入しました。
最新版へアップグレードしたことで、ゲストOSの安定感や動作速度も向上した感じがします。またParallels ToolsもUbuntu 11.04やFedora 15にインストールすることができました。アップグレード前だと新しいLinux Distributionでは、compizやMac OS連携的な機能はあきらめて利用していたので、今思えばもう少し早くアップグレードしておけば良かったと少し後悔しています。。。
今のところ、Ubuntu 11.04 x86_64とFedora 15 x86_64のゲストOSを作成して利用していますが、それぞれ快適に動作しています。特にUbuntuは申し分なく快適過ぎです。残念だったのが、Fedora 15から採用になったGNOME 3がParallels Toolsをインストールしてもハードウェアをうまく認識出来ず、VESAのフォールバックモードで起動してしまいます。メディアからインストールした直後はGNOME Shellが起動したので、一瞬キターって感じになりましたが、システムアップデートをした直後にフォールバックモードで起動するようになりました。個人的にはUbuntu11のUnityより、Fedora15のGNOME Shellが慣れてくると便利かなって思いましたが、しばらくお預けになりそうです。
a
ゲストOSとして動作するUbuntu 11.04
ゲストOSとして動作するFedora 15(1)
ゲストOSとして動作するFedora 15(2)
ゲストOSとして動作するFedora 15(3)


最近、Go言語のネタが多いですが、気にせずに行きましょう。

ちょっとGo言語のコードを書くにも、エディタがしっくりしなくて困っていましたが、「m92oの技術日記」にGo言語のリポジトリのmiscにgo-mode.elが含まれているとの情報がありましたので、早速試してみました。

筆者はmacportsでGo言語をインストールしたため、macportsが利用するソースフォルダ(デフォルトは/opt/local/src/go)を覗いてみました。m92oさんの情報の通り、miscフォルダの中にモードファイルが含まれていました。(ローカルにソースコードをチェックアウトしていない場合は、リポジトリ(https://go.googlecode.com/hg/misc/emacs/)から直接取得することも出来ます。)

emacsの他にもvimやxcodeのモードファイルも用意されているようです。

筆者は普段Aquamacsを利用しているため、Aquamacsにモードファイルを追加することにします。追加手順は次の通りです。

  1. ~/Library/Application Support/Aquamacs Emacs/以下にモードファイル(go-mode.el,go-mode-load.el)をコピーする
    今回は、~/Library/Application Support/Aquamacs Emacs/lispというフォルダを作成し、モードファイルをコピーしました。
  2. Preferences.elにGo言語のモードを追加する 
    ~/Library/Preferences/Aquamacs Emacs/ Preferences.elに次のコードを追加します。
    ;; Go Mode
    (require 'go-mode-load)

以上の設定後、AquamacsでGo言語のソースコードを開くと次のようになります。


暇なので今更ですけどGoogleが開発しているオープンソースのプログラミング言語「Go」と戯れてみました。

Go言語の特徴

googleによると次のような特徴が紹介されています。

  • シンプルな言語である
    C言語に近い記述で言語仕様も軽量なため、学習コストは低い。
  • コンパイル・実行速度が速い
    コンパイルが速く、また実行速度もC/C++に迫る実行速度を目指している。
  • 安全性が高い
    タイプセーフかつメモリセーフである。またポインタ演算子を排除し、GCを導入した。
  • 同期処理が容易に行える
    goroutineと名づけられた軽量通信プロセスにより、サーバ処理が書きやすくなっている。
  • なにより楽しい
    ビルドが早くて、かつ洗練された構文、ガーベージコレクション、多種多様なメソッド、リフレクション機能を持っている。
    一見、動的言語のようであるが実行速度と安全性は静的言語そのものである。
  • オープンソースである
    BSDライセンスである。

現状はLinux、Mac、nativeclient、Androidで動作します。

インストール

今回はMacPortを使ってインストールしてみました。MacPortsをインストールしていない方は「MacPortsのインストールと設定」を参考にして下さい。

$ sudo port -d selfupdate
$ sudo port install go

Let's Programming!

おきまりのHello, world!を実行してみましょう。

hello.go

package main

func main() {
        println("Hello, world\n");
}

ターミナルを起動し、作成したソースコードをコンパイルします。

$ 6g hello.go

6gはGo言語のコンパイラです。6gはAMD64(x86_64)向けのコンパイラで、他にも8g(x86向け)や5g(ARM向け)があります。Go言語はターゲットのプロセッサにあわせてコンパイラを選択します。

コンパイラが終了すると拡張子「.6]のファイルが生成されていますが、これは中間ファイルです。次は中間ファイルからリンカで実行形式のファイルを作成します。

$ 6l -o hello hello.6

6lはGo言語のリンカです。コンパイラと同様にリンカもターゲットのプロセッサにあわせて選択します。

最近は何かとIDEを利用したプログラミングが多いせいか、ターミナルでプログラミングできて楽しかったです。学生時代を思い出しました^^;