/usr/lib/libmecab.dylib が空シンボリックリンク

libmecab.dylib -> /BinaryCache/MeCab/MeCab-187.81~1/Root/usr/lib/libmecab.1.0.0.dylib

自分もこのせいでトラブらされているようなのでメモ。 Lion 10.7.4。

あと手元で確認すると libCRFSuite0.10.dylib も /BinaryCache 以下へのシンボリックリンクになってた。

libCRFSuite0.10.dylib -> /BinaryCache/CRFSuite/CRFSuite-18~235/Root//usr/lib/libCRFSuite.dylib

TextEdit で日本語を入力すると落ちる、システム環境設定を開いた瞬間に落ちる、など id:kento_1218 さんの書いているような症状が絶賛出現中。リンクしなおして sudo update_dyld_shared_cache -force したりしても改善せず……。

追記(06/09):gdb, vmmap, dtrace で挙動を見てみても結局よくわからず。試しに mecab-0.95 *1 を自前ビルドして /usr/lib/libmecab.1.0.0.dylib に置いてみたら、このファイル内で SIGSEGV で落ちる症状は消えた……けど他のアプリが SIGBUS / KERN_PROTECTION_FAILURE を出して落ちるようになった*2。仮に原因が特定できたとしても再インストールは必要そう。

*1:http://www.apple.com/opensource/ に0.95とあったので。

*2:Sandbox 絡み?とも思うけど未詳。

Ubuntu 11.10が起動時に "Waiting for network configuration..." と吐く件の対処

やっと11.10に追いついたと思ったら、ブート時に以下のようなメッセージが出る件。

Waiting for network configuration...
Waiting up to 60 more seconds for network configuration...
Booting system without full network configuration...

結論から言うと /etc/network/interfaces の次の一行をコメントアウトしたら出なくなりました。

#post-up /usr/sbin/ethtool -K eth0 tso off
続きを読む

さくらVPSでUbuntu 10.10から11.04にdo-release-upgradeしたらgrubプロンプトへと叩き落とされた場合の対処

徹夜明けの午後に見るgrubプロンプトはちょっと胃に来ますよね。というわけでさくらVPSのカスタムOSインストールで入れたUbuntu 10.04 LTSを11.10まで引き上げようとしたときにハマった部分のメモ。

続きを読む

MXML からスクリプトを分離する方法まとめ(4種類)

ここ数日 Flex をいじっていて、 MXML からスクリプトを分離する方法を調べてたらいろいろ出てきたのでまとめ*1。使用環境は FlashDevelop 4.0.1 RTM + Flex SDK 4.6.0 + Windows XP Pro 32bit 。

以下で紹介するのは以下の4種類。結論を先に書くと mx.core.IMXMLObject インターフェースを実装する方法がおすすめ。

  1. <fx:Script> の source 属性を使う or include する方法
  2. mx.core.IMXMLObject インターフェース実装を使う方法
  3. mx.core.FlexGlobals.topLevelApplication を参照する方法
  4. mx.core.Application の継承クラスを使う方法

分離する前の状態

まず <fx:Script><![CDATA[ ... ]]></fx:Script> 内に処理を書いている状態を想定。ここからロジックを分離していく。

プロパティをビューにバインドしてコントロールにイベントをアタッチできれば大概のことはできるだろう、ということで処理的なものはバインドとイベントアタッチのみ。

HelloWorld/
├── bin/
├── lib/
└── src/
    └── HelloWorld/
        └── Main.mxml
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               creationComplete="onCreationComplete()">

    <fx:Script>
        <![CDATA[

        [Bindable] private var statusMsg:String = "initialized.";

        private function onCreationComplete():void
        {
            statusMsg = "Creation complete.";
        }

        private function onButtonClick():void
        {
            statusMsg = "Clicked!";
        }

        ]]>
    </fx:Script>

    <s:HGroup>
        <s:Label text="Status: {statusMsg}"/>
        <s:Button label="Click me" click="onButtonClick()"/>
    </s:HGroup>

</s:Application>

*1:こういうのは Flash Builder 使うとバシバシ自動生成してくれるのかもしれないけど使ったことないのでわかりません><

続きを読む