xquartz

Vagrant の VM で GUI (X11) のアプリケーションを使う
Vagrant の VM は大抵 CUI で操作するけど、たまに GUI のアプリケーションをどーしても使いたくなることってあると思う。 今回は SSH の X11 転送を使って Vagrant の VM 上で動く X を使ったアプリケーションを操作できるようにしてみる。

まず Vagrant を動かすホストには X Server が必要なのでインストールする。 OS X の場合 10.8 (Mountain Lion) 以降 X Server はバンドルされなくなってしまったので、別途 XQuartz を入れる。
http://xquartz.macosforge.org/

さて、以下が肝心の Vagrantfile だけど、ポイントは config.ssh.forward_x11 を true にすることだけ。
$ cat Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "centos65"
  config.ssh.forward_x11 = true
end

上記の Vagrantfile から VM を起動してログインする。
$ vagrant up
$ vagrant ssh

今回、動作確認には CentOS 6.5 を使った。 VM には X Client が必要なので “X Window System” をインストールし、ついでに日本語環境も欲しいので “Japanese Support” も入れておく。 終わったらデフォルトのランレベルを X11 に変更して再起動。
vagrant $ sudo yum -y groupinstall "X Window System" "Japanese Support"
vagrant $ sudo sed -i.bak -e "s/id:[0-6]:initdefault:/id:5:initdefault:/" /etc/inittab
vagrant $ sudo shutdown -r now

X11 を使ったアプリケーションとして、試しに Firefox をインストールして起動してみる。
$ vagrant ssh
vagrant $ sudo yum -y install firefox
vagrant $ firefox


上手いこと起動できた。やったね!

Secure Internet Browsing

Spiderinabox is a project I did to make an out of the box solution for secure browsing on my Mac. What you get is a basic preconfigured installation of OpenBSD prepared as a VirtualBox image loaded with Firefox and a few scripts and programs to launch it and invoke Firefox over a secure connection. The visualisation of Firefox is done on the OSX side using XQuartz, so you don’t need to exit your working environment and switch between OSX and OpenBSD.

So Firefox runs encapsulated in OpenBSD and doesn’t have access to OSX in any way. You don’t need to worry about installing a virtual machine and such.

Wine を使って Kindle for PC を Mac で動かしてみた
これまでパソコンで Kindle の電子書籍を読むには Kindle Cloud Reader を使うやり方があった。 ただし、これは和書には未対応なので、小説などは読むことができない。



今回 Kindle for PC が公開されたことで、ついに Windows PC であれば Kindle で和書を含む電子書籍がパソコンで読めるようになった。 しかしながら、Mac については Kindle for Mac が相変わらず日本アカウントに未対応のままなので救われていない。 ならばと Kindle for PC を Wine を使って試しに Mac で動かしてみた。

まず、Wine の動作には X11 (XQuartz) が必要なので、入っていない場合はインストールする。 Homebrew Cask なら以下のコマンドラインで一発。 Homebrew Cask を使っていない場合は、XQuartz の公式サイトからインストーラをダウンロードして実行する。
$ brew cask install xquartz

次に Wine を Homebrew でインストールする。 依存するパッケージが多いので結構時間がかかる。
$ brew install wine

もし、Homebrew が入っていない場合には、公式サイトの説明に沿ってインストールする。
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

次に Kindle for PC のインストーラをダウンロードする。 以下は Homebrew でインストールした wget コマンドを使ったけど、もちろん公式サイトから直接ダウンロードしてきても構わない。
$ wget --trust-server-names http://www.amazon.co.jp/kindlepcdownload
$ ls | grep -i kindle
KindleForPC-installer.exe

Wine を使って、ダウンロードしてきたインストーラを実行する。
$ wine KindleForPC-installer.exe

インストール画面が表示されれば成功。 インストールは全自動で進むので、終わったら自分の Amazon アカウントを入力して使うだけ。





デフォルトでは ~/.wine 以下に Windows の仮想的なファイルシステムができている。 次に Kindle を起動するときは、そこにインストールされた実行ファイルを指定すれば良いっぽい。
$ wine ~/.wine/drive_c/Program\ Files/Amazon/Kindle/Kindle.exe


ばっちり。

So apparently the problem with my game is in The Cider.

Basically the Cider is the emulator in the sims 3 that makes it run on a mac. EA used one that apparently was designed to really only run small programs, not something big like TS3. When this error happens, it only happens in MAC users (which is why the sims is more likely to crash on a mac and lag) and it’s because EA were too lazy to source or create an emulator that could actually support a game so big.

To find a program similar to the cider you have to install it in a mess of files and they are tricky to uninstall if you’re finding it borks up your mac too much. The only one I’ve found that Doesn’t bork up your mac too much is called XQuartz (someone on the EA sims board recommended it) However, every review of the product I’ve found doesn’t give me much insight on how to actually run it and has mentioned that it’s a giant bitch to uninstall. GIMP users recommend it however.

There has been a few bugs with it and i’m wondering if anybody has ever had to use something like XQuartz before?

Fixing matplotlib png output on Mac OS X

I recently had a problem when trying to save PNG output of a plot with matplotlib:

libpng warning: Application built with libpng-1.5.18 but running with 1.6.10
Traceback (most recent call last):
  ...
  File ".../matplotlib/backend_bases.py", line 1962, in print_png
    return agg.print_png(*args, **kwargs)
  File ".../matplotlib/backends/backend_agg.py", line 517, in print_png
    filename_or_obj, self.figure.dpi)
RuntimeError: Could not create write struct

It turns out the problem is that during installation, matplotlib found the older libpng version provided by XQuartz, but then at runtime it found the newer libpng version installed via homebrew.

I’ve struggled to find a satisfactory solution to this, beyond “switch to SVG” or “uninstall XQuartz”. The best I’ve come across is this comment by jaengelberg on github.

Basically it involves temporarily renaming the XQuartz libpng headers so they can’t be found during matplotlib installation. Here’s the process in full:

pip uninstall matplotlib
cd /opt/X11/include/libpng15
sudo mv png.h _png.h
sudo mv pngconf.h _pngconf.h
sudo mv pnglibconf.h _pnglibconf.h
pip install matplotlib
sudo mv _png.h png.h
sudo mv _pngconf.h pngconf.h
sudo mv _pnglibconf.h pnglibconf.h
XQuartzのキーマップ

MBA(late 2010, 10.8.3, JISキーボード)にてXQuartz2.7.4を使用するとキーボードがUS配列で認識されてしまうので、それの解決法メモ。

ホームディレクトリ直下に.Xmodmapというファイルを用意して、xmodmap .Xmodmapで読み込ませることで一応認識。(コピペしたらエラーが出たので、そのときはエラーに従って適宜修正)

ただ、用意するファイル名からして自動認識かと思ってたので、なんか腑に落ちない感じ。正直素人なので何も分かってないから何とも言えないのだけど。

AbiWord (/ˈæbiwɜrd/) is a free and open source software word processor written in C++. Since version 3 it is based on GTK+ 3. The name “AbiWord” is derived from the root of the Spanish word “abierto”, meaning “open”. Abiword was originally started by SourceGear Corporation as the first part of a proposed AbiSuite but was adopted by open source developers after SourceGear changed its business focus and ceased development. It now runs on Linux, Microsoft Windows, ReactOS, Solaris, AmigaOS 4.0 (through its Cygnix X11 engine), MeeGo (on the Nokia N9 smartphone), QNX and other operating systems. The Mac OS X port has remained on version 2.4 since 2005, although the current version does run non-natively on Mac OS X through XQuartz. AbiWord is part of the AbiSource project which develops a number of office-related technologies.

abisource.org