Homebrewで躓いたところ、fontforgeのインストール

MacのパッケージマネージャであるところのHomebrew先生。だが今ひとつ理解できてないので色々と躓いた。一応、解決したのでその方法を記しておく。

利用環境はこんな感じ。

  • デフォルトのインストール先/usr/localではなく~/.localを作ってそこで運用。
  • brew doctorによるとgccが非推奨バージョンらしい。バージョンは4.2.1。

で、躓いたのはfontforgeのインストール。
まず、依存パッケージであるcairoが入らない。以下のようなエラーを吐かれた。

Error: Failed executing: make install 
These existing issues may help you:
    https://github.com/mxcl/homebrew/issues/7658
    https://github.com/mxcl/homebrew/issues/8144
    https://github.com/mxcl/homebrew/issues/8491
Otherwise, please report the bug:
    https://github.com/mxcl/homebrew/wiki/checklist-before-filing-a-new-issue

エラーメッセージに出てきたbrew install cairo on Lion 10.7.2 configure fail · Issue #8144 · Homebrew/legacy-homebrew · GitHubを参照すると、--use-clangオプションを付けたらインストールできたという報告がある*1。早速試してみたら、無事インストールできた。

さて、これでfontforgeを入れられる、と思ったらfontforgeも入らなかった。またgcc周りで何かが起こっているようだったので再度--use-clangを付けたらインストールできた。

どうも今のgccだと何かと不都合が多いらしい。なんとかHomebrew推奨のgccにしたいのだがその方法は目下調査中。

*1:付けても出来なかったという報告もあるので、絶対的な解決策ではないらしい

Pythonで文を使わないFizzBuzz

FizzBuzz問題を使って社内プログラミングコンテストを開催してみた - give IT a try
Pythonで"if"を使わない"FizzBuzzチェック関数"を三種類ほど実装する - 蟲!虫!蟲!
Pythonで文を使わずに式のみでFizzBuzzで作ってみた。コマンドラインで引数を与えてください。
lambda式、ジェネレータ式、リスト内包表記あたりはおなじみだろうけど、__import__関数なんて初めて使った。

(
    lambda end, stdout:
        [
            stdout.write(
                str(
                    (type(n) == str and n) or (n % 3 and n) or 'Fizz'
                ) + '\n'
            )
            for n in (
                (type(n) == str and n) or (n % 5 and n) or 'Buzz'
                for n in (
                    (n % 15 and n) or 'FizzBuzz'
                        for n in range(1, end + 1)
                )
            )
        ]
)(
    int(__import__('sys').argv[1]),
    __import__('sys').stdout
)

Python 2.xでも3.xでも動くように書いたつもりだけど確認は2.7でしかしてないです。print関数を使いたかったのだけど、上手くいかず、苦肉の策で標準出力にぶっこんだ。
from __future__ import print_functionを__import__関数からやろうとすると、ちゃんとprint関数がインポートされることはされるのだけど、なぜかグローバルなところ(=関数や内包表記の外)でしか使えなかった。くやしい。
あとpep8通るようにしようと思ったけど醜すぎたので諦めた。

Google ChromeのアドレスバーからGoogle翻訳を利用する方法

Google Chromeではロケーションバーを検索バーとしても利用できます。その際に利用する検索サービスを複数登録することで、利用するサービスを切り替えることができます。しかし、この機能は検索サービスに限りません。少し工夫すれば、検索サービス以外のものでもロケーションバーから利用できます。

オススメの利用方法はGoogle翻訳です。まずロケーションバーを右クリックし、「検索エンジンの編集」を開きます。そこで「追加」をクリックし、名前に「Google翻訳」のような分かりやすい名前を入れ、キーワードに「gtej」などと入力します*1。URLには「http://translate.google.com/#en|ja|%s」と入力し、保存を押せば完了です。

ロケーションバーにgtejと入力したあとスペースを開けて適当な英単語を入力し、Enterを押せば、Google翻訳のページをその単語が翻訳された状態で開くことができます。発音を聞くこともできますし、訳も複数表示されるので便利です。今回は英和として登録しましたが、さらに追加でURLを「http://translate.google.com/#ja|en|%s」としたものを登録すれば、和英も利用できます*2

他にもたとえば、アドレスバーからGoogleカレンダーの予定を追加する方法 | ライフハッカー[日本版]といった利用方法もあります。要するにURLの検索する単語や数字以外の部分が固定されているようなサービスであれば、どんなものでも利用可能なのです。「http://www.nicovideo.jp/search/%s」とすれば、ロケーションバーからニコニコ動画で動画を検索することもできます。

また、F6キー*3と合わせて利用すれば、さらに効率的にGoogle Chromeを利用できるでしょう。

検索に限らず、お気に入りのWebサービスのURLに注目して、利用できそうなものを登録してみましょう。

*1:キーワードはロケーションバーから利用するサービスを指定するために使います。入力しやすい短めの文字列がオススメです。ちなみに「gtej」はGoogle Translate English to Japaneseといったような意味合いで付けました。

*2:その際、キーワードは英和のものとは重複しない物にしましょう。「gtje」がオススメです。

*3:ロケーションバーにフォーカスするショートカットキー。Ctrl + lでも可。

64bit版Ubuntuを日本語 Remixにする

人気のデスクトップ向けLinuxディストリビューションUbuntuには32bit(i386)版と64bit(AMD64)版の二つがあります。その一番の違いは利用できるメモリの最大容量。Windowsでもそうですが、32bit版では3GB程度までしか利用できません。最近ではめっきりメモリも安くなり、ノートPCでも4GB以上積んでる方も多いでしょう。そんな人は64bit版を使いたくなるはずです。

しかし64bit版Ubuntuは日本人ユーザー用にカスタムされた日本語 Remix CDが存在しません。IPAモナーフォントの導入やLaTeX日本語環境の構築などは日本語 Remixに含まれる「日本語環境セットアップ・ヘルパ」があると便利です。日本語 Remixでないオリジナル版を日本語 Remixにする方法はJapanese Teamのパッケージレポジトリを追加するにあります。

ここでは例としてUbuntu 10.04 LTSの場合を紹介しておきましょう*1。端末を開き、以下の各行のコマンドを実行してください。日本語 Remixのリポジトリが追加されます。

wget -q https://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-key add -
wget -q https://www.ubuntulinux.jp/ubuntu-jp-ppa-keyring.gpg -O- | sudo apt-key add -
sudo wget https://www.ubuntulinux.jp/sources.list.d/lucid.list -O /etc/apt/sources.list.d/ubuntu-ja.list
sudo apt-get update

正しくリポジトリが追加された後、以下のコマンドで日本語 Remixと同様の環境になります。

sudo apt-get install ubuntu-desktop-ja

これで日本語環境セットアップ・ヘルパから各種パッケージをインストールできます。

*1:Ubuntu 9.04以降ならば3行目の"lucid"が各バージョンのコードネームに変わるだけです。

VirtualBox上のLinuxゲストOSのGUIを切る方法

仮想プラットフォームでおなじみのVirtualBoxLinuxを試しに使ってみたいときや開発環境として大胆なことをしたいときに仮想環境を利用する人は多いでしょう。

しかし仮想マシンを動かすと何かとリソースを食ってしまい、貧弱なPC上で利用する場合は厄介です。少しでも軽くするためにまずは割り当てるメモリを減らすのが第一歩でしょうが、そうすれば当然ゲストOSの動作が重くなります。特にGUIのデスクトップ環境を持ったOSをゲストOSとして快適に利用する場合は512MBは割きたいところです。

ならばデスクトップ環境*1をインストールしなければいいのですが、Linuxにまだ慣れていない人や試しに使ってみたい人にとってそれはあまりにも酷です。そこでデスクトップ環境からコンソール画面に切り替えるショートカットキーを使います。OSが立ち上がった状態で「Ctrl + Alt + F1*2」を押せばコンソール画面に切り替わります。デスクトップ環境に戻る場合は「Ctrl + Alt + F7」を押します。

さて、これでLinuxゲストOSのデスクトップ環境切り替えはできるようになりましたが、問題がひとつあります。ホストOSもLinuxの場合です。この場合、Ctrl + Alt + F1を押すとゲストOSではなくホストOSのコンソール画面に切り替わってしまいます。この場合はCtrl + Altの代わりに、VirutalBoxのホストキー*3を押すことで代用できます。

適宜デスクトップ環境を切り替えて、VirtualBoxを快適に利用しましょう。

*1:X Window Systemの事です。

*2:最後のF1はF2〜F6でも構いません。

*3:デフォルトでは右のCtrlキー。