2013-07-01

unable to convert "\xCF" from ASCII-8BIT to UTF-8

新しい環境にgemインストールしてたらこんなエラーが。

Parsing documentation for json-1.5.5
unable to convert "\xCF" from ASCII-8BIT to UTF-8 for ext/json/ext/generator/generator.bundle, skipping
unable to convert "\xCF" from ASCII-8BIT to UTF-8 for ext/json/ext/generator/generator.o, skipping
unable to convert "\xCF" from ASCII-8BIT to UTF-8 for ext/json/ext/json/ext/generator.bundle, skipping
unable to convert "\xCF" from ASCII-8BIT to UTF-8 for ext/json/ext/json/ext/parser.bundle, skipping
unable to convert "\xCF" from ASCII-8BIT to UTF-8 for ext/json/ext/parser/parser.bundle, skipping
unable to convert "\xCF" from ASCII-8BIT to UTF-8 for ext/json/ext/parser/parser.o, skipping
Installing ri documentation for json-1.5.5
...
Parsing documentation for net-ssh-2.1.4
unable to convert "\xE7" from ASCII-8BIT to UTF-8 for lib/net/ssh/authentication/pageant.rb, skipping

ココによるとrdocの問題らしい。

gem install rdoc
https://github.com/davidfstr/rdiscount/issues/96

Rubyはhomebrewでインストールしているので、brew updateして直らなかったら以下のようにアップデート。

rdocをアップデート

$ sudo gem install rdoc

Fetching: rdoc-4.0.1.gem (100%)
rdoc's executable "rdoc" conflicts with /usr/local/Cellar/ruby/2.0.0-p195/bin/rdoc
Overwrite the executable? [yN]  y
rdoc's executable "ri" conflicts with /usr/local/Cellar/ruby/2.0.0-p195/bin/ri
Overwrite the executable? [yN]  y
Depending on your version of ruby, you may need to install ruby rdoc/ri data:

<= 1.8.6 : unsupported
 = 1.8.7 : gem install rdoc-data; rdoc-data --install
 = 1.9.1 : gem install rdoc-data; rdoc-data --install
>= 1.9.2 : nothing to do! Yay!
Successfully installed rdoc-4.0.1
Parsing documentation for rdoc-4.0.1
Installing ri documentation for rdoc-4.0.1
1 gem installed

$ sudo gem list rdoc

*** LOCAL GEMS ***
rdoc (4.0.1, 4.0.0)

もう一回インストール


$ sudo gem install json

Fetching: json-1.8.0.gem (100%)
Building native extensions.  This could take a while...
Successfully installed json-1.8.0
Parsing documentation for json-1.8.0
Installing ri documentation for json-1.8.0
Done installing documentation for json after 0 seconds
1 gem installed

今度はエラーでなかった。ホッ。

2013-03-05

macにdnsmasqをインストール

macにdnsmasqをインストール

boxenにdnsmasqが入っていたので気になって入れてみました。
dnsmasqはローカルに起動できるdnsサーバです。

環境はMountain Lionです。

Homebrewでインストール
$ brew install dnsmasq
==> Downloading http://www.thekelleys.org.uk/dnsmasq/dnsmasq-2.65.tar.gz
######################################################################## 100.0%
==> make install PREFIX=/usr/local/Cellar/dnsmasq/2.65
==> Caveats
To configure dnsmasq, copy the example configuration to /usr/local/etc/dnsmasq.conf
and edit to taste.

  cp /usr/local/opt/dnsmasq/dnsmasq.conf.example /usr/local/etc/dnsmasq.conf

To have launchd start dnsmasq at startup:
    sudo cp -fv /usr/local/opt/dnsmasq/*.plist /Library/LaunchDaemons
Then to load dnsmasq now:
    sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
Warning: /usr/local/sbin is not in your PATH
You can amend this by altering your ~/.bashrc file
==> Summary
🍺  /usr/local/Cellar/dnsmasq/2.65: 7 files, 416K, built in 16 seconds

上記の通りConfファイルをコピー
$ ls -l /usr/local/opt/dnsmasq/dnsmasq.conf.example
-rw-r--r--  1 hoge  wheel  25062 12 14 20:48 /usr/local/opt/dnsmasq/dnsmasq.conf.example
$ cp /usr/local/opt/dnsmasq/dnsmasq.conf.example /usr/local/etc/dnsmasq.conf

上記の通りパスを通す。
$ vi ~/.bashrc
PATHに /usr/local/sbin を追加
$ source ~/.bashrc

コマンドが認識されているか確認
$ which dnsmasq
/usr/local/sbin/dnsmasq
問題ないですね。

launchctlを利用して自動的に起動されるように設定ファイルを用意してくれています。
多分、間違いなく常時利用するので、使わせていただきましょう。

設定ファイルをコピー
$ sudo cp -fv /usr/local/opt/dnsmasq/*.plist /Library/LaunchDaemons

設定ファイルを読みこませる(Daemonとして自動的に起動する)
$ sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist

プロセス確認
$ ps aux | grep dnsmasq | grep -v grep
nobody          2854   0.0  0.0  2432960    676   ??  Ss    4:48PM   0:00.00 /usr/local/opt/dnsmasq/sbin/dnsmasq --keep-in-foreground

常時起動リストに入っているかの確認
$  sudo launchctl list | egrep "dnsmasq|PID"
PID Status Label
2854 - homebrew.mxcl.dnsmasq

ちなみに設定ファイルはこんな感じ
$ cat /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>homebrew.mxcl.dnsmasq</string>
    <key>ProgramArguments</key>
    <array>
      <string>/usr/local/opt/dnsmasq/sbin/dnsmasq</string>
      <string>--keep-in-foreground</string>
    </array>
    <key>KeepAlive</key>
    <dict>
      <key>NetworkState</key>
      <true>
    </true></dict>
  </dict></plist>

通常の起動の場合

再起動するとき(停止するとDaemonなので自動的に再起動される)
$ sudo launchctl stop homebrew.mxcl.dnsmasq 

停止するとき(今後自動起動もしなくなる)
$ sudo launchctl unload /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist

参考リンク

LaunchDaemons (launchctl, launchd.plist) の使い方 - maruko2 Note.
http://www.maruko2.com/mw/LaunchDaemons_(launchctl,_launchd.plist)_%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9


2013-02-23

MeldのMacへのインストール(Homebrew, Mountain Lion)

最近MBPを使っています。
Macなかなかよいです。
Windowsでしかできないこともあるけど、作業はこっちのほうがいいなあ。

Diffツールのmeldを入れた時にちょっと苦労したのでメモ。


Meld
http://meldmerge.org/

環境はMac OS X 10.8 (Mountain Lion) です。
Homebrewが入っていることが前提です。

インストール手順

  1. XQuartz (Mountain Lion 以降は標準で入っていない)
    下記を参考にしました。
    X11 (XQuartz 2.7.2)をMac OS X 10.8 Mountain Lionにインストールする - memo.yomukaku.net
    http://memo.yomukaku.net/entries/SKNgCdP

  2. $ brew install python
    PythonはHomebrewで入れておくほうが無難そう。
    最初にHomebrewでPythonを入れておかなかったので、MacのデフォルトのPythonが使われたのですが、py関係は入れなおしたりして苦労しました。

  3. $ brew install meld

  4. $ meld
    で起動

  5. 日本語のファイルも認識させたい場合は、メニューから [編集] - [設定] - [エンコーディング] で
    shift_jis euc-jp utf8 latin1
    と入れる (この順番が大事)
    ※shift_jisのところはsjisと入力しても大丈夫みたい。

Meldで比較したい場合は、起動してからファイルを選んでも良いし、
$ meld file1 file2
でも実行出来ます。

3つのファイルの同時比較もできるよ。

SJIS, UTF8, EUC-JPのファイルを同時に比較したところ
SJIS, UTF8, EUC-JPのファイルを同時に比較したところ

もし、Meldを起動しようとした時に、
インポートできません:pygtk
No module named pygtk
と出たら
  1. $ python
  2. >>> import cairo
  3. >>> import pygtk
  4. >>> exit()
してからもう一度起動してみてください。

参考リンク

おもいたったがきちじつ - ubuntu - PrecisePangolin(12.04) - GUIのdiffツール(Meld)を使います
http://namakemono345.com/kichijitsu/ubuntu/PrecisePangolin/Meld.html

2013-01-24

Thunderbirdでメールを作成するときに自動改行されない

Thunderbirdでメールを作成するときに、自動改行されるようにしてるけど、いざ送信してみるとちゃんと改行されていないように見えることがあった。

メッセージのソースをみてみると
Content-Type: text/plain; charset=UTF-8; format=flowed
になっていた。

format=flowedでも改行をきちんと表示させたい場合は、詳細設定(about:config)で、以下のように設定すれば良い。
mailnews.display.disable_format_flowed_support -> true

逆にメールを作成するときに format=flowed を付けたくない場合は、詳細設定(about:config)で、以下のように設定すれば良い。
mailnews.send_plaintext_flowed -> false

プロファイルディレクトリ内にuser.jsを作成して以下のように記載してもOK
user_pref("mmailnews.display.disable_format_flowed_support", true);
user_pref("mailnews.send_plaintext_flowed", false);

参考リンク

Thunderbirdで正しく改行されない cont@ct/ウェブリブログ
http://contact.at.webry.info/200908/article_1.html