2014/03/18

新しい MacBookPro が届いた

新しい MacBook Pro が届いたのでいろいろと設定するなど。

/usr/local と OS 再インストール

一時期から brew の permission が若干変で、 update だけ sudo 必要な状態になってました。 なので /usr/local をこの際吹き飛ばしてしまって、 brew を再構築でもしようかな、とか考えてたり。
ってな訳で migraion assitant で /Application と home と network settings & computer settings のみ migrate したのだけれど、 /usr/local が移行先に残ってる。
しゃーなしってことで OS を ReInstall しても残ってる。
一旦 permission の中身を erase してから ReInstall しなおして、 migration assitant を使わずにファイルを Time Machine から手で移してどうにか /usr/local が消える。というか基本的に全部消えてる。
 /Application とかはちょっと残っていて欲しかったけれど、この際、ということで割と吹き飛ばす。 ちなみにこれが後から若干後悔の元になったりもする。 さらにちなみに、データ移動は rsync めっちゃ速かった。

そういえば OS ReInstall 時の Recovery HD で boot されてるやつの network は DHCP な前提になっているみたい。
私の network は static IP にしてるので、 IP が無いから繋ってないとか怒られた。
なんとGUIだと設定することもできないっぽくて、Terminal から
  • networksetup -setmanual "Thunderbolt Ethernet"  <ip> <mask> <gateway>
  • networksetup -setdnsservers 'Thunderbolt Ethernet' <dns-ip>
とかして事無きを得た。
あと、OS のダウンロードが 99% で止まってるっぽいけれど状態が分からない時があって、その時は Log を表示させたら進んでるのが分かったり。
OS ReInstall の時にはそういったこともあったりしたなー、とか今更。


brew と brew cask

Application まで消したので何も入ってない状態。それらをいちいちダウンロードするのも面倒なので brew-cask に手を出す。
とりあえず brew を入れて
  • ruby -e “$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)
brew cask を入れる
  • brew tap phinze/homebrew-cask
  • brew install brew-cask
ちなみに command line tools の install も brew を入れるときにやってくれた。便利。

 

 

Install by brew cask

とりあえずめぼしいものを cask で入れていく。
  • brew cask install appcleaner dropbox evernote firefox flash google-chrome java netnewswire skype the-unarchiver xquartz
くらいかな。 あと、 AquaSKK はデフォルトで cask が無いけれど、作ってくれた人がいるようなので
  • brew tap aereal/homebrew-aereal_casks
  • brew cask install aquaskk
これで入ったは良いんだけれど変換が効かなくなってる。
どうやら ~/Library/Application Support/AquaSKK に何も無いみたい。
ということで古いPCからそこをサルベージ。 同じ場所に移しておしまい。

 

 

Install by brew

こっちもめぼしいものを入れてく。
  • brew install brew-cask coreutils fontforge ghc git gnu-sed haskell-platform lua mercurial nkf rbenv ruby-build tig tree wget zsh
とか。

Ruby は rbenv で管理してるので
  • $ RUBY_CONFIGURE_OPTS=”–enable-shared” rbenv install 2.0.0-p0
  • rbenv global 2.1.1
とか。 RUBY_CONFIGURE_OPTS は Vim 用に enable-shared な library を作りたかったので

あと、Vim は HEAD + with lua で入れてるので、
  • brew install –HEAD –with-lua vim
と。

加えて Agda を動くように。設定は残ってたので
  • cabal update
  • cabal install cabal-install
  • cabal install agda
くらいであっさり動いてくれた。

あとは必要になり次第入れていこう。

 

 

設定の移行と iCloud

んで、Mailとかの設定が非常に面倒だった。 migrate したら一発なんだけれど、初期から設定するので非常に面倒。
何か他に良い方法あるのかもしれないけれど、PC2台とにらめっこしながら移す。
この辺からゲンナリしてきて、iCloud を今更有効化。 Mail はともかく、 Calender と Reminder を同期させる。

あと RSS の NetNewsWire とかは 設定を export して Dropbox で同期させて import して、とかやってた。

さらに Firefox は Vimperator とか TabMixPlus とか About MyBookmarks とかなんとかアドオンが沢山あって、これもにらめっこでどうにか。

もうここまでくるとかなりゲンナリしてて、次から移行を意識した構成にしようかな、とか、何かスクリプト化でもするか、とか考え始めたり。 とかなんとかしつつどうにか普段使いする分には問題無いくらいにはなった。
あとは勢いで導入した iCloud と cask をどう扱うか、とかなんだろうけれどなー。

ということでいろいろ格闘しつつも

['Retina', '15 inch', 'SSD', 'US Keyborad', 'Marvericks'].each{|elem| puts "Hello, #{elem} world."}

2014/03/16

unicode の east asian ambiguous 文字 : その3

¬の見た目がおかしい、ということでゴニョゴニョ設定したのですが、古いバージョンの Ricty のバグだったみたいです。

-a したので ×  も半角化しちゃって、折衷案を取れないか思い立つ。
てなわけで fontforge で Rictyのフォントを眺めていたり。
それで Migu 1M の NOT SIGN な 00ac を見たらなんと半角。どのタイミングで全角に変わったんだ、とか思ってソースを見ると該当部分は見当たらず。

もしやと思って -a 無しの 3.2.2 で、¬は半角、×は全角のRictyに。
ってことは 3.1.3 から 3.2.2 の間で修正されたのかな。
もしくは Migu 1M が修正されたのかもしれない。

ともかくこれで ¬ が直った。フォント周りの道は険しいっぽい。
ga で文字コード検証からの fontforge で width 確認して修正、がフォント周りの対処法になりそう。

ちなみにソース眺めてると特定の文字を replace するスクリプトが misc の下にあったりしたので、それでいじることもできそう。

ってな訳でアップデートしたら直りました、という感じでしたまる。

unicode の east asian ambiguous 文字 : その2

East Asian Ambiguous な設定をして一段落、と思っていた矢先、¬ の記号が「全角で表示されるのに半角扱いの移動」になる。
さて、今回は Vim でも Emacs でも再現するので設定の問題じゃなさそう。

ということで ¬ が East Asian Ambiguous なのか、ということから調べてみる。
vim で ga すると 00ac らしい。
その辺りを調べてみる と、00ac は NOT SIGN で、それとは別に ffe2 に FULLWIDTH NOT SIGN があるらしい。むむ。
not sign なのに full width になってるのでこれはフォント側の問題っぽい。

ということで Ricty を再生成することに。最新 stable は 3.2.2 なので
$ git clone https://github.com/yascentur/Ricty.git
$ cd Ricty
$ git checkout -b 3.2.2
$ ./ricty_generator.sh  -a -n "3.2.2-half" auto
くらいで。

フォントは InconsolataMigu 1M が必要。あと依存で fontforge。 brew にあった。
-a は full width を無効化するオプション。なのでこれで予想外の全角化は消えるはず。
-n はフォント名に追加で string を足すオプション。 Ricty 3.2.2-half くらいになる。
Ricty 3.2.2 half にしたかったんだけれど、内部処理でスペースを消してるらしくて-にする。

フォントを変えたらどうにか ¬ が半角化した。
フォントを変えただけで、VimとかEmacsとかの設定は基本的に前回から変えてない。

あと、emacs の設定が 22 と23以降で別々な文字テーブルを参照していたのでどうにかこうにか統一する。コピペ用 gist は一番下。
emacs 22 の utf-translate-cjk-set-unicode-range は要素に #x00A1 とかがあるとダメで、(#x00A1 . #x00A1) にしないといけないらしい。なんでだろ。
とりあえず emacs 23 用の設定の方が大量に書かれていたので、それをベースにまとめる。
これでどうにか同一テーブルを参照するようになった。

あとこの辺
FFE0;F # FULLWIDTH CENT SIGN
FFE1;F # FULLWIDTH POUND SIGN
FFE2;F # FULLWIDTH NOT SIGN
FFE3;F # FULLWIDTH MACRON
FFE4;F # FULLWIDTH BROKEN BAR
FFE5;F # FULLWIDTH YEN SIGN
FFE6;F # FULLWIDTH WON SIGN
とかが全角化対象じゃなかったので追加。A幅じゃなくてF幅なので East Asian Ambiguous とはまた別の問題なのかもしれないけれど。

A とか F とかは Unicode が持ってる property らしい。
A は Ambiguous で、 F は Full width とかいろいろある。
詳しいのはこの辺。というか本家っぽい。
おかしい文字があったら文字コード調べてみて、ここでUnicodeの設定的にどうなっているかとか確認しないと、フォントの問題なのかとかの切り分けができなさそう。

というかこういう風にいろんなところでズレてたりすると結構面倒感。
対症療法を取っているけれど、どこが問題でどっちを直すべきなのかとか結構厄介だなー、とか。

ということで記号周り厄介だなー。また何か発生しそう。
emacs 側なら Unicode 指定で width 指定してしまえばどうにでもなってしまいそう。
Vim は ambiwidth の対象かそうじゃないかでまた一悶着ありそう。

まー、 ¬ の問題は乗り切った、ということにしたい。

コピペ用設定gistはこんな感じ。

2014/03/11

unicode の east asian ambiguous 文字

最近、 Agda を使ったりしているので agda-mode な emacs にちょっと手を出していたりします。

Agda は π やら ∀ やらの記号を容赦なく使うので、iTerm2 では agda-mode 時に emacs の表示がおかしくなることがありました。
iTerm2 の問題かと思って Terminal に戻ってきたは良いものの、今度は ∀ とかが一文字幅になってしまって表示がおかしい。

Terminal の
Preferences -> Advanced -> Unicode East Asian Ambiguous character are wide
のチェックを入れると解決はするんだけれど、iTerm2と同じ状況になる。

どうやら Unicode East Asian Ambiguous とやらが問題らしい。

調べてみると、∀ とかが全角なのは国によるっぽい。
特に日本は全角だけれど、アメリカだと半角らしい。
国によるので幅が曖昧な文字がUnicodeにあるとか。 
それが Unicode East Asian Ambiguous みたい。

なので、Inconsolata とかの英字フォントにすると問題の記号が全部半角になって表示が正しくなる。
が、そうすると日本語がヤバそう。
私が使っているフォントは Ricty なので、日本語や記号は Migu に依存してる。
Migu は日本語フォントなので、とりあえず全てを全角に統一することにしました。

環境

  • Mac OSX Mountain Lion
  • Terminal : Version 2.3 (309)
  • iTerm2 : Build 1.0.0.20140112
  • Vim 7.4.192
  • Emacs 22.1.1 / 24.3
  • Font : Ricty

対策


iTerm2 / Terminal

East Asian Ambiguous を wide にする。

Terminal だと
Preferences -> Advanced -> Unicode East Asian Ambiguous character are wide
をチェック。

iTerm2 だと
Preferences -> Profiles -> Text -> Double-width Characters -> Treat ambiguous-width character as double width
にチェック。

Vim

set ambiwidth=double
する。というか既にしてた。

Emacs

なんか22と23で違うらしい。
emacs 22 では utf-translate-cjk-set-unicode-range を使う と良いっぽい。
23 以降では cjk が消えたらしく、別の方法があるっぽい。

んで、問題はこれら2つは完全に互換が無いこと。
22 の設定方法を 23 以降に適用すると cjk が消えちゃってる。
23 以降の設定を 22 に適用すると、 char-width-table が無いとか言われる。

加えて Mountain Lion とか Marvericks とかの emacs が 22 なのと、brew で入れられる emacs が 24 だったりでちょっとアレしたので両方に対応できる設定にしてみるなど。

設定はこんな感じ。単に emacs-major-version で場合分けしているだけだけれど。
下にコピペで使える状態な gist を置いておきます。
とりあえず 22.1.1 と 24.3 で表示の問題が無いことは確認できた。
elisp 書いたこと無いのでどこか変かもしれない。

とりあえずはこれで良いかなー、とか。
英語フォントにするなら width を single に統一すればたぶん問題無いはず。
 
ただ、iTerm2 に乗り換えた後に勘違いで Terminal に返ってきて、ちゃんと設定した結果どっちでも良いことが確認できたんだけれど、これどっち使おうかなー、ってなってたりもする。どーするかな。

んで設定コピペ用 gist は以下。

2014/03/02

沖縄Ruby会議01 へ行ってきた

沖縄Ruby会議01 へ行ってきました。

地域 Ruby 会議 in Okinawa な感じで、沖縄での初Ruby会議っぽいです。
まつもとさんご本人も呼んでわいわいやってた感じ。

実は運営陣営に地味に紛れ込んでいて、ゲストネットワークとかの設定をしていたりしました。
とかしていたらなんと開始1時間ぐらいにネットワーク全断。
まつもとさんの発表を途中で抜け出してあわあわしながら障害切り分けとかしてました。
結果的には大学全体の障害だったので、復旧を待つのみ。
待機中は割と気が気じゃない状態だった記憶が。いやある意味すげー経験なのかなこれ。

最終的には2時間ほどで復旧してもらってどうにか。どうにか……?
これってネットワーク担当だった以上はごめんなさいするのが正しいのだろうか。
ネットワーク切れちゃってごめんなさい。

障害後は、もう発表を聞くどころじゃなかったのでサテライト会場で通信状況をプチ監視してたりしました。
あとはサテライトらしくもくもくしよう、ということで作りかけの gem をいきなり公開してたりとか。
公開時は、なにやっているか分からないレベルなのでコメントしづらかっただろうなー、とか思いつつも。
やっぱりもうちょっと作り込んでから公開すると良かったかな。
けれど、バグを見つけてもらったりとかコメント貰えたりしたので良かった。
タイミングはともかく公開するべきなのだろーな、とか。
コメントくれるのありがたい。

という感じで本編は怒涛の記憶でそれしか残ってない状態。ある意味忘れられないイベントになりそう。
本編なのに割と Ruby 成分摂取量低めかもしれない。



して懇親会へ。
私が参加した中で一番賑やかな懇親会だったように思えました。
規模が大きいからなのか、Rubyな人達だからなのかは分かりませんけれど。
なんか褒められたり、シリアスなアドバイスを貰ったり、なんか業界っぽい話を聞いたり、社会人の闇っぽい話ったり、まつもとさんと写真取ったりとかわいわいしていた。

ブログを書いていて思ったのだけれど、今回のイベントだけでたくさんの人にお世話になったなー、とか思う。良い人ばかりだー。ありがとうございます。

というかもっと学生来たら良いのになー。もったいない気がする。良い人ばっかりやで。

そういえばちょっと違う話だけれど、学生が来なさすぎて ryudai.rb の残り一人になりそうなんだった。みんな来ようよ。
勉強会とかコミュニティな件でも思うところはあるなー。これから ryudai.rb どうするかとか、人をどうするかとか。とりあえず考えとこう。



とかとかいろいろな内容が混ざりながらもなんだかんだ楽しめたと思います。
#okrk01 な皆様方、ありがとうございましたー。