OSX10.8でmikutterを動かしてみた記録

 
 

OSX10.7(Lion)での記事を前回書きましたが、今回はOSX10.8(Mountain Lion)でなんか動いちゃったアレを簡単に書きます
(あくまでも私の環境で動作した記録です。参考程度にして下さい。なにかしらバグ踏んでもしりませんべい)
ある程度自分で調べてターミナル扱える人向けに書いてます

○まず必要なもの

 1. X11(XQuartz)
  OSX10.8ではAppleがX11のバンドルを打ち切った為、別プロジェクトとして開発が進んでいるXQuartzを利用してX11をインストールします

 2. Ruby
  mikutterはRubyで開発されています。なので当然Rubyが必要ですがOSXに標準でついている1.8系はサポート対象外となっています(Ruby1.8系は2013年6月を持って終了)
  http://www.ruby-lang.org/ja/news/2011/10/07/plans-for-1-8-7/
  前回はrvmやrbenvを利用して最新のRubyをインストールしましたが、今回はHomebrewを利用してインストールします

 3. Ruby-gtk2
  mikutterのGUIはruby-gtk2を利用して作られています
  ここではgemを利用してインストールしていきます

 4. MacUIM
  X11で日本語を入力する為に必要です。Lionの時と手順が違っています
 

 大まかに言うと以上の4つです(たぶん)
 
 
○ここから手順

 まずXQuartzを公式ページからダウンロードしてインストールします

 次に最新のRubyをインストールする為にHomebrewを導入します。
 Homebrew導入の手順については紹介ページが腐る程あるので省略

 brewからRuby1.9.3-p392をインストールします
 (Ruby2.0.0ではなく1.9.3です)
 そのままでRubyを入れようとするとRuby2.0.0が降ってくると思いますので
 rubyのbranchを1.9.3-p392へと切り替えて下さい
 やり方は「brew バージョン指定」とかでGoogle検索すればすぐ出てきます

 1.9.3-p392をインストールにしたら、次はgemからgtk2をインストールします
 最新のmikutterだとoauth,bsearch,memoize,typed-array,addressableとかも要求されるので
 それもgemからインストールしておいて下さい

 X11で日本語を入力する為にMacUIMをインストールします
 ここからダウンロード出来ます
 インストールしただけでは日本語入力が効きませんので設定します
 私の場合はこことかを参考にして設定したらうまくいきました

 最後にmikutterのソースをダウンロードしてきます
 現状3パターンの入手方法があります

  1.公式ページから定期リリースされるtar玉
  2.subversionで取得する
  3.gitで取得する(人柱向け)

 普通は定期リリースされるtar玉を使う事をオススメします
 subversionからの取得は現状tar玉とさして変わりません
 gitから取得して使う場合は人柱覚悟で使って下さい

 この記事を書いている時点(3/14)でmikutterの推奨環境は

  Ruby:1.9.3以上
  Ruby-gtk2:1.2.1以上
  OS:Linux

 となっています
 
 Macでの動作はサポート対象外ですので、動かないからといって
 開発者に凸しても開発者自身も動かないのでわかりませんべいと言われるだけです
 動いたらラッキー程度に思った方がいいでしょう

 最近Windowsで動かそうとがんばっている方々を多く見受けられますが
 Macで動かす以上に苦難の道ですので超ガンバレ
 
 

Mac OS X Lionでmikutterを動かす④

 
 

/*
このページは11/19に大幅に書き直されました
ここで説明しているGrowlはver1.2.2を対象にしています
1.3.0以降はおそらく動きません

3/10追記:Growl1.3.3での動作を確認しました
*/

③で音を鳴らしたところで
今回はGrowlによる通知表示について書きます

Linuxで使うmikutterに関しては
notify-sendというコマンドを使ってPOPUP通知を出すようにしています

これまたMacでは標準でlibnotifyは入ってないので
別途Gentoo/Prefixやhomebrew等から入れるか、別の方法を使うかになります

そのまま素直にMacPortsからlibnotifyをインストールできればスマートですが
11/19の時点でMacPortsのlibnotifyはLion非対応になっています
そこで、ここではMacらしくGrowlを使用して通知を出してみます

まず、当然ながらGrowlがインストールされていなければ話になりませんので
ここからDownloadしてインストールします

 ○ Growl-1.3.0からは有料になっています。
   自分でソースコードからビルドすればお金はかからないらしいです

— ここから下はGrowl1.2.2での設定です。1.3.3はskipして下さい —

インストールに成功したら

 ○ システム環境設定 → Growl → ネットワーク の順に開きます
 ○「受信される通知を開く」「リモートアプリケーション登録を許可」
   という項目があるので2つにチェックを入れます
   サーバーパスワードは空のままでOK

 
— ここからはGrowl1.3.3での設定です —
 
設定 -> ネットワーク -> 通知をリッスンする にチェックを入れるだけです
 

これでGrowlの設定は終わりです

次はrubyの必要パッケージをインストールします

rubyでGrowlを使うコマンドとしてgrowlnotifyというのがあります
これは先ほどDLしたGrowlに含まれていますので一緒にインストールしましょう
 

 最後にmikutterの設定に移ります
 

mikutterユーザである@katsyoshiさんがgrowlnotifyを使ったプラグインを作成しgithubで公開していますので
これを使用させてもらいます

mikutterディレクトリの中にpluginというディレクトリがあるので
その中に先ほどDownloadしたmacnotify.rbというコードを入れるだけです

mikutterの設定項目の「通知 → ポップアップ」という項目があるので
好きな条件にチェックを入れましょう
 

 これで完了!
 

ここまで出来たらmikutterを再起動させてみましょう

例のごとく「ふぁぼれよ」とつぶやいて誰かにふぁぼってもらいましょう

ふぁぼられたところで通知がpopupされれば、見事完了です!
これでふぁぼ爆撃とか受けたときに通知が並んで爽快になる事でしょう
 

このPluginはdefaultで通知と同時にSayコマンド使って
screen_nameを喋るようになっています

もしこの喋る部分はなんかアレだなぁって思うひとは
macnotify.rbのイカの部分をコメントに書き換えて下さい

 Thread.new{
    system ‘say’, user[:idname]   }

 

 続いてリンクを開けるようにする

端的に言えば、mikutterはdefaultブラウザを開くのにxdg-openというコマンドを使っています。
Ubuntuとかでは/etc/altanatives/x-www-browser というところをみているらしいです

しかしMacOSでこれを利用してブラウザを開こうとすると2重起動と判定されてしまいSafari,Firefox,Chrome等では開く事ができません

そこでMacOSで使えるコマンドとしてopenというコマンドがありますので
これを使用するとmikutterからリンクをブラウザ新規タブで開けるようになります
 
このリンクを開くopenコマンドに関しては
mikutter rev589で取り込まれましたので、今最新版を使えば特にソースコードをいじる事なく使えると思います

Mac OS X Lionでmikutterを動かす③

 

前回②の続きからとなります

現在②まででmikutterを起動して日本語入力まで出来ましたね!

しかし②までの状態だと以下の現象を確認してますので
とりあえず動いて日本語入力できるよってだけです

 ○ 音が鳴らない
 ○ 通知が表示されない
 ○ ツイートからURLを開けない(Twitpicの画像とかならmikutterの機能で開ける)

どれもけっこう重要な機能なので
②までの状態で使って「なんだよコレ使えネー」とか言う人が出てきそうな予感

なので一応この問題を完全ではありませんが修正する方法を書きます
(これがCoolな回避方法かはわかりません)
 

ここからはソースコードを書き換える作業になります

まず音が鳴らない問題ですが
これはmikutterが音を鳴らすのにaplayというコマンドを使用しているのですが
MacOS Xにはこのコマンドはありません。なので音が鳴りません

そこでMacOSで使えるコマンドとしてafplayというのがありますので
こいつを使用して音を鳴らすようにします

 mikutterディレクトリ内の /core/addon/alsa/alsa.rb

というソースコードを好きなエディタで開いて以下のように書き換えて下さい

 if command_exist? “aplay”
       ↓
 if command_exist? “afplay”
 

 bg_system(“aplay”,”-q”, filename) if FileTest.exist?(filename) }
       ↓
 bg_system(“afplay”, filename) if FileTest.exist?(filename) }

書き換えたら保存で終了です

mikutter設定で 通知 → 音を鳴らしたい項目で好みのサウンドを選択
(ここではmikutterらしくふぁぼを選択)

そしたらmikutterを再起動して、とりあえず「ふぁぼれよ」とつぶやいてみましょう

誰かがふぁぼってきたら、先ほど選択されたサウンドが鳴るでしょう

 「ふぁぼ!」

これで音がなるようになりましたね!

 
また次の通知は長くなりそうなので④へ続く

Mac OS X Lionでmikutterを動かす②

 

① 起動編からの続きです
日本語入力編に入ります

前回起動に成功したところで
さっそくツイートをポストしようとしてみたところ
とても重大な事実に気がつく事でしょう

「日本語が入力できねぇ!!!!」

mikutterの起動にはX11というアプリケーションを介するのですが
こいつが曲者でMacの標準IMは使用できません
 

Google先生で検索すると大体「kinput2 + canna」が使えた
とか出てきますが、私の環境では使いモノにならなくて他の方法を探す事となりました

そこでたどり着いたのが「MacUIM」というものでした

こいつは文字のごとくMacOSでUIMを使えるようにするパッケージです
公式ページからDownloadできます
UIMについての説明は例のごとく(ry
 

導入の仕方に関してはココを参考にして私は導入できました
 

UIMの導入に成功すればもう勝利は間近です
ちなみに変換エンジンはDefaultだとAnthyになっているようです
他にもPrime,SKK等が使えるようですがこっちは未確認

では、さっそくmikutterを起動させてみましょう

PostBoxにフォーカスを合わせてShift+Space(タターッン

これで日本語が入力できるようになったハズです!!!
 

もし「できねーぞゴルァ!」とか言う人は他の方法を模索して下さい
上の方で少し触れた「kinput+canna」を試してみるのもいいかもしれません

私の方では入力がフリーズしたり、変換が急にできなくなったりとアレでしたが
もしかしたら他の人の環境では違う結果がでるかもしれませんので

 

追記:もう少し調べてみたらMozcとかも使えますね
   Shift+Spaceの変換はどうにかならんのかと
   色々探してるけど設定ファイル書かないといけないぽいので面倒そう

Mac OS X Lionでmikutterを動かす①

 

この記事はあくまでもMacOSX10.7(Lion)用です
現在最新のOSX10.8(Mountain Lion)以降では正常に動かない可能性が高いです

先日のMacBookAir購入に伴い
やりたい事の一つにMacOS Xでmikutterを動かす事がありました

その為のまとめ的な何かを書いて置きます

まずmikutterを起動させるのに必要なもの

 ○ Ruby
 ○ Ruby-gtk2

大まかに言うとこの2つです(依存関係は長いので省いてます)

基本MacにはdefaultでRubyが既に入ってますが
こいつはRuby1.8.7というmikutterにとっては鬼門のVerです
なのでこいつをまず1.9.2以上にしなければなりません

その為にRVM(Ruby Version Manager)というものを使います
 ※ 導入の仕方に関しては色々とまとめているサイトがすぐ出てくるので省略します
 

RVMを導入してRubyを1.9.2以上にしたら、次はRuby-gtk2です
RubyにはGemという簡単にRuby-gtk2とかをインストールできる仕組みがあるのですが
素の状態でgemからgtk2をインストールしようと思っても、ヘッダ不足でインストールできません

なので不足分のパッケージを補充するのにここではMacPortsというものを使います
MarPortsとはなんぞやーとかそういう説明はたくさんあるので(ry
導入や使用方法についてもたくさんあるので(ry
Gentoo/Prefix(ry

この記事を書いている時点での最新版は「Macports-2.0.3-10.7-Lion.dmg」が最新のようです
 

MacPortsを導入したら端末からruby-gtk2をインストールします

 $ sudo port install rb-gtk2

依存関係で色々入ってきます
少し時間かかりますのでアニメでも視聴して待ちましょう
 

インストールが終わったら次はgemからgtk2をインストールします
またgtk2?とか言われそうですが、portからインストールしたruby-gtk2ではなんか上手く起動しません
(原因はメンドイので調べてませn)

 $ gem install gtk2

portからのrb-gtk2が上手くインストールできていれば問題なくgemからもインストールできるはずです

ここまでやれば起動だけはできるハズなので、テスト起動してみましょう
 

mikutterのページからソースをDownloadしてきます
主にmikutterのパッケージには0.0.3系と0.0.4系ウィークリービルド版がありますが、ここではsubversionを使って最新のtrunkをDownloadします

0.0.3系と0.0.4系の違いとかはここを見てください

 $ svn co svn://toshia.dip.jp/mikutter/trunk mikutter

subversionが入ってない方はportからインストールしておいて下さい
 

そしてソースをDownloadしたら

 $ cd mikutter
 $ ruby ./mikutter.rb

これでmikutterの認証画面が起動するハズです
表示されているURLをクリックしてPINコードを取得し入力しましょう
これであなたにMacでのmikutterライフが認可されます!
 

もしgemのインストールがコケたり、mikutterの起動でコケたりする人は
portからruby-pangoとruby-rcarioというパッケージを再インストールして見てください
(たぶんrb-gtk2の依存で入っていると思うけど、rb-rcairoが入ってないかもしれない)

 $ sudo port install rb-rcairo

ここまでやってみてもgemや起動にコケると言う方は
一旦MacPortsを全削除してみて、もう一度最初からやり直してみてください

それでダメなようなら、すいませんワタシにはわかりません

ただ大体エラーログには不足のパッケージとかのヒントが表示されているハズなので
エラーログを舐めるように凝視してみると解決のヒントが得られるかもしれません
 
 

長くなったのでとりあえず起動させる①はここで終了

次は②の日本語入力に続きます

MacBookAir

 
 
 
 
 
 
 
 
 
 
 
 

今更な感じになりますが
8月末にMacBookAir 13inchを購入しました

そろそろノートPCが欲しいなーと感じていて
せっかくならMacを買ってみようかなと前々から考えていたのですが
中々踏ん切りが付かなくて迷っていました

決定的な後押しになったのは
8/20に行われた「OSC名古屋」でした

とあるfollowerさんと一緒に行ったのですが
会場に入ってからというもの
あらゆる人のMacBook率の高さに唖然としてしまい
物欲を激しく揺さぶられ
その後競技プログラミングの講座を覗いてみたところ
そこでもやはりみなさまMacBookを使ってらして
「これはもう買うしかねぇ!!」
と家に帰って即Apple StoreでエキサイティングIYHしました

USキーボードが欲しかったので
カスタムタイプになるようで海外発送になってしまい
少し時間がかかるような事でした

そして待つこと1週間
待ちわび届いた物が写真です

これが初Macになるのですが
少し使ってみたところ

UIが綺麗
セットアップも楽々
Terminalでbashがdefaultで使える(←超重要)

と、結構好感触です

結構値が張りましたが
いい買い物をしたと思っていますYO!

GNOME3での自動起動するアプリケーションの設定

 
 
 
 
 
 
 
 
 
 
 
 

GNOME2までシステムから辿れた
スタート時に自動起動させるアプリの設定ですが
GNOME3だとアプリケーションを辿っていってもそんな項目はありません

では無くなってしまったのか?
いえ、そうではありません

端末から
$ gnome-session-properties
と打ち込んでみて下さい

今までお馴染みだったアレが起動します
後は以前のように起動させたいアプリやシェルスクリプトを登録すればOK

i686からx86_64へ


 
 
 
 
 
 
 
 
 

先日メインで使っていたP5B-Deluxeさんが実に挙動不審になり
LANが反応しなかったり途切れたりしていたので
そろそろヤバいと感じマザーを載せ替えることにしました

販売されたからすぐ買ったので4年半ぐらいでしょうか
中々がんばってくれました
これからは3rdPCのGentoo用マザボとしてもう少し働いてもらう事にします

そんなわけでマザー交換するついでに
かねて計画していた32bit -> 64bitへの移行をする事にしました

初めてArchを入れたのが3年前くらいで
その時はメモリも2GiBしか持ってなかったり
まぁ特に64bitにする必要性も感じなかったので32bitで構築しました

しかし最近はEclipseやらNetBeansやらVBoxやらmiku○terを
同時に立ち上げることも稀によくあるので
さすがにメモリが悲鳴を上げていたのです

後Abobe AIRやらWineやらの64bitでの互換性を考慮していたのもあります
しかし先日Abobe AIRはLinuxのサポート打ち切りをキメ
Wineもけっこう64bitでもいける事がわかったのでそれも移行を決めた要因でもあります

そんなわけで久しぶりにArchをインストールする事に

BootCDを焼いて起動してみたところいきなり

 Waiting 30 seconds for device /dev/disk/ARCH_201005
 ERROR: boot device didn’t show up after 30 seconds …
 Falling back to interactive prompt

とかエラーはいてBootしてくれませんでした
そういやー以前別HDDにインストールしたときにも同様のエラーはいて色々やった記憶が…

当時の記憶を検索しつつ掘り起こして以下のように対処

 ramfs$ mkdir -p /dev/disk/by-label
 ramfs$ ln -sf /dev/sr0 /dev/disk/by-label/ARCH_201005
 ramfs$ exit

とりあえずこれで起動できました
ぶっちゃけこの方法が正しいかどうかはわかりません

あとはBeginners`Guideの通りに進めていって
そして最後grubをインストールして再起動
よし、終了
 

しかし…
 

再起動したところ

Waiting for UDev uevents to be processed [BUSY]

のところでフリーズするという現象が発生
またArchWikiで色々と検索してみたところ
どうやらKMSに問題があるような感じ
そういや新しいマザボはG45チップだったなぁ…と(白目

kernel parameterに i915.modeset=0 を追加、再起動

無事起動できました

で後はuser作成してDE環境構築
そして出来上がったのが写真のような感じです

Archはじめた頃はさっぱり構築できず、起動できなくてあたふたしてたのに
ここまで1時間半ぐらいで終える事ができました

少しは成長したのかなぁ・・・と思ったり

しかし最近ネタが無いので更新がアレ

mikutterについて少し書いてみる

 

久しぶりにGoogle先生で「mikutter」検索したら
このブログが検索1ページ目に出てきてるじゃないですかーやだー

と言うわけで少し更新しますた(2013/2/16)
 

はいはーい

巷のておくれ界で圧倒的人気を誇るTwitterクライアント
mikutter」について少し書いてみます

○ mikutterって何よ?
 公式ページ http://mikutter.hachune.net/
 mikutterとは主にLinux環境用に開発されている
  至高のTwitterクライアントである
 言語はRubyで書かれており、GUIにはRuby-GTK2を利用しています

○ 何がそんなにいいのよ?
  公式ページのFunctionでもみやがって下さい
  と言いたいところですが少しだけ
 
 ・直感的なUI
   mikutterは名が示す通り初音ミクをモチーフとしており
   日本を中心に開発されています
   噂では開発の100%が日本国内らしい
   なので日本語環境はパーフェクト
   使い方なんてすべて日本語なので触っていればわかります
   どこらへんにミク要素を見出すかはあなたのミク力次第
 
   TLでもツイートをふぁぼやRTされた場合
   誰からのふぁぼやRTなのか、元のツイートを上げたりと設定できるので
   ふぁぼやRTがついつい楽しくなってやり過ぎちゃうんだ☆

   よく非公式RTで会話する人が稀によくいますが
   mikutterではリプライ元の会話がちゃんと表示されるので
   一々非公式RTとかで引用しなくても会話が繋がります(これめっちゃ重要)
   ただし双方ともmikutterを使っているのが理想ですが…
   
   UserStreamにも対応しているのでリアルタイム更新が可能です
   流れるようなTLを体験できるでしょう

   クライアント表示にも対応されたので
   via mikutter とか探してみるのも面白いかもしれません
 

 ・迅速なバグ対応
   mikutterはまだまだ開発途中です
   あなたが何かの拍子にバグを見つけてしまうかもしれません
   そういうときは#mikutterタグをつけてつぶやくか
   開発者にリプライを飛ばしましょう
   原因が明らかなものであればすぐに対応してくれるでしょう
   時間がかかりそうなものでも、redmineで管理しているので
   忘れずに対応してくれるでしょう(たぶん、てへぺろ)
 
 ・誰でも作成できる拡張プラグイン
   mikutterはオープンソースで開発されており
   あなたにRubyの知識があるならプラグインも簡単に開発できます
   (Rubyの知識が無くても他言語多少かじっていれば大丈夫・・・か?)
   巷で有名なプラグインとして「fav.rb」というのがあります
   これは指定した相手のつぶやきを即座にふぁぼり続けるという
   素晴らしいアレなプラグインです
   他にもいくつかありますが、#mikutterで検索してみて下さい
   

   とまあ、まだまだ色々書きたい事はあるのですが
   そこらへんは公式ページを読んで下さい
   とにかく一度使ってみればわかります

   ディストリ事に導入の方法は色々あるかと思いますが
   ArchLinuxならAURに登録されているので簡単に導入できます
   $ yaourt -S mikutter
   
   GentooLinuxならリポジトリに入っているので
   $ emerge mikutter
   で導入できます (unstable扱いなのでキーワード外す必要アリ) 

   FreeBSDとかでも最近Portsに入ったようです

 ○ 全てのディストリに共通の導入の仕方に関して
  公式ページから好きなVerのmikutterをダウンロードします(できれば最新が望ましい)
  ディストリの作法にしたがってRubyとRuby-GTK2をインストールします
  mikutterを展開、mikutterのディレクトリに移動して $ ruby ./mikutter.rb
  あなたに素晴らしいmikutterライフが認可されます!

 ○ 注意事項
  現在のmikutterはメモリリークという問題を抱えています
   起動しっぱなしだとやたらメモリを喰います
   今はスペックに余裕のある人推奨かも
   (起動し続ける限り再現無くメモリを食い続けます)
   解消に向けて開発者さんはがんばっているのでdisったりしてはいけません
   このメモリリーク問題はRuby-GTK2-1.2.1で解消されました
   今後のmikutterはRuby-GTK2-1.2.1以上を推奨しています
  環境によってはよく落ちます。生暖かく見守りましょう
   patchを書いてredmineにおくるとしぁわせになれるよ!

 ○ mikutterの動作推奨環境
   Ruby 1.9.3以上
   Ruby-Gtk2 1.2.1以上

 OS:Linux(推奨)
   Mac(OSX10.8以上だとAppleがX11サポートを外してきた為かなりつらい
      動いた人は選ばれたておくれです)
   Windows(がんばれ、超ガンバレ)
   FreeBSD、OpenBSD(動作報告はアリ)
   NetBSD(ておくれ)

GNOME3 – Power Off

ArchLinuxでGNOME3をデスクトップとして使っていると
ステータスメニューにPower Offが無い、という事に悩んだ事はありませんか?

「電源を切りたいけど、どこにあるのかわからない…」
「ステータスメニューの項目が少ない…」
「やはりGNOME2とGNOME3の信頼度は違いすぎた…」

そんなあなたにハイコレ!
「gnome-shell-extension-status-menu」

あなたのデスクトップのステータスメニューにPower Offが追加されます!
もうこれでPower Offに悩んだりしてモンモンと過ごす日々にさようなら

$ pacman -S gnome-shell-extension-status-menu
今ならたったこれだけのコマンドでとてもお得っ!

さぁ今すぐhttp://live.gnome.org/GnomeShell/Extensionsにアクセス!

 
・ArchLinuxでのお話です、他のディストリはわかりません (Fedora15とか)
・ちなみにこれ、jp.poが無いようでインストールすると
 ステータスメニューが英語になります
 これぐらいならコード書いてもいいかなと思ったけど
 面倒くさくなって未だに進んでなす