カテゴリー
Mac perl

macでcpanシェルやscraperシェルのカーソル移動とか履歴を有効にする

Bundle::CPAN をインストールすれば良いらしいけど、makeが必要だったりするので注意。
makeを使うにはXcodeをインストールする必要があります。

makeへのシンボリックリンク作成

sudo ln -s /Developer/usr/bin/make /usr/bin/make

Bundle::CPAN をインストール

cpan
cpan[1]>install Bundle::CPAN

※cpanのところは sudo cpan だったかも。

cpan起動して上カーソルの時に ^[[A とかでなければがインストール成功。
これでカーソル移動とか履歴とか使える!

カテゴリー
iPhone Mac

iPhoneのAirPrintで印刷してみる。…あれ?プリンターが見つかりませんが?

AirPrintプリンターって何よ?

iPhoneでプリント機能があるけど、プリンタを選択しようとすると

AirPrintプリンタが見つかりません

となってプリント出来ない。

調べてみると対応プリンタでないとダメみたい。CANONやEPSONのプリンタで AirPrint を使って iPhone/iPad から印刷する方法によれば、

9月に発表された AirPrint は当初プリンタ共有機能が含まれていて、Mac に繋いだプリンタをプリンタ共有して iPhone/iPad からそのプリンタに印刷することができるはずでした。しかし、MacOS X 10.6.5 リリース直前になってプリンタ共有を使っての AirPrint 機能はなくなってしまい、AirPrint で印刷できるのは ePrint に対応した hp のプリンタだけになってしまいました。

という事らしい。

でも対応するアプリ「AirPrint Hacktivator」をmacにインストールすれば、プリンタ共有機能が使えてプリント出来るみたいなので試してみる。

インストール

環境

  • mac SnowLeopard(10.6)
  • iPhone 4S
  • CANONやEPSONのプリンタでAirPrint印刷する方法のまとめ | paraches lifestyle lab.
    上記ページに各macのOSバージョンごとやWindowsでのやり方などがまとめてありますので該当のページを読むといいと思います。

    自分の場合はSnowLeopardなので (Leopard/iTunes10.2編)CANONやEPSONのプリンタでAirPrint印刷をする を実行してみます。

    こちらのページにダウンロードのリンクがあります。バージョンはAirPrint Activator v2.1b4 (intel)でした。

    注意点

    ダウンロード&解凍していつものようにアプリケーション本体だけを移動させたらエラーとなってしまいました。フォルダごと移動する必要があるので注意。

    あとは参考ブログの通りでiPhoneから印刷可能でした。
    mac本体がある場所&起動している状態でないと印刷できませんが、iPhoneから無線でプリントアウトできるのは便利ですね。

    カテゴリー
    Mac

    バッテリー駆動で動作させるとMacBookの電源が突然落ちる現象に対処

    突然電源が落ちるMacBook

    先日、長年使っていたLeopardからSnow Leopard OSX10.6に今更ながらアップデートしました。その後、バッテリー駆動で使用している時に突然電源が落ちる現象に。
    バッテリー残量は十分あるはずだし、今までなら残量が少なくなればアラートが出てスリープに移行していたのでちょっと困惑しました。

    普段MacBookは外部モニタに繋げてシェルクライムモードでデスクトップ機のような使い方をしているので、気付くまで時間がかかってしまいました。

    作業自体はwebの閲覧やTwitterのTLを眺めていた程度だったのでデータ損失などは無かったけれど、コードや重要な書類とかを書いている時だったと思うとガクブルです。
    そうでなくても、電源の突落ちなんてプラグ引っこ抜きと同じなんだからディスクへのダメージが心配されます。

    3年ちょっと前に購入したものなので、そろそろ寿命か?などと思いつつ、ググッてみると同じような症状の方がいるようなので、とりあえず参考ブログの対処法を試してみる事に。
    参考:MacBookがバッテリー残量あるのに落ちるからSMCをリセットしてみた。 - kanonjiの日記

    参考ブログによればアップルのサポートサイトに以下のような記事があるようです。
    Intel-based Macs:SMC (システム管理コントローラ) のリセット

    SMC のリセットの前に行う手順
    SMC をリセットする前に次の各手順を順番に試します。各トラブルシューティングが完了したら問題をテストし、まだ発生するかどうか確認します。

    ・・・中略

    ポータブル Mac で MagSafe 電源アダプタやバッテリーに関する問題が発生している場合は、以下をお試しください。

  • MagSafe 電源アダプタを Mac およびコンセントから数秒間抜きます。
  • Mac を終了します。(取り外せる場合) バッテリーを物理的に取り外してもう一度挿入し、Mac を起動します。
  • SMCとは?
    Mac Pro: SMC (System Management Controller) をリセットする方法

    SMC (System Management Controller) はロジックボード上にあるコントローラチップで、コンピュータのすべての電源機能を制御します。

    と、言うことなのでとりあえずSMCはリセットしない方向で試してみます。電源アダプタを外し、シャットダウンした後にバッテリーを外してから再度取り付けます。

    バッテリーはコインでロックを解除すれば簡単に外れます。
    MacBook:バッテリーの取り外しおよび取り付け方法

    検証

    正常に戻ったかどうかはバッテリーで駆動させてみないと分かりません。また、バッテリーの残量が少なくなったらスリープになるかどうかを見極めなくてはならないので、バッテリー残量分の時間が掛かりそうです。
    とりあえず残り3時間。何しよう。

    1時間経過。残り2時間。電源落ちず。順調?

    さらに1時間経過。残り1時間。

    と、その後10分ほどで突落ち...orz

    SMCのリセットを実行してみる

    Intel-based Macs:SMC (システム管理コントローラ) のリセット の実行手順(取り外し可能なバッテリーを使用するポータブル Mac で SMC をリセットする)を正確に実行してみる。

    4.電源ボタンを 5 秒間押し続けます。

    は念のため長めの時間(10〜15秒程度)を。別に音がなるわけどもなく、リセットされたのかどうかは外からは分からない。

    6.バッテリーと MagSafe 電源アダプタをもう一度取り付けます。

    もきっちりアダプタ接続してから起動。

    心なしかバッテリー残量がさっき(落ちる前)より30分程増えた感じ。と、思ったら徐々に増えてる?現在残り1時間:40分。負荷にもよるのだろうけど。

    検証その2

    増えたり減ったり激しかったけどとりあえず残り55分...あれ1:13分...1:24分...。時刻21:09

    残量44分。バッテリゲージが赤に。時刻21:41

    電源落ちる。時刻21:48

    結果

    結果的にはダメでしたね。
    バッテリゲージが赤になるところまでは「イケるか?」と思ったのですが...。
    サポートに電話してみるかなぁ。

    カテゴリー
     web Mac プログラミング

    macで形態素解析エンジン Mecab を使うときの最も簡単な方法

    以前にハマっていた形態素解析をローカル環境で試してみたいのでmacでmecabを使う方法を調べてみる。

    Mecabって?

    MeCabはオープンソースの形態素解析エンジンで、奈良先端科学技術大学院大学出身、現GoogleソフトウェアエンジニアでGoogle 日本語入力開発者の一人である工藤拓[1][2]によって開発されている。
    MeCab - Wikipedia

    macにはmecabが標準で入っている(*1)のだけれど、文字コードがUTF-16LEみたいで使うのに工夫が必要みたい。

  • 参考:きまぐれ日記: Mac OS X Leopard に「標準で」インストールされている MeCabを使ってみる
  • *1 Spotlight - Wikipedia
  • Mac OS X v10.5から、ネットワーク上の共有フォルダの検索にも対応(下記参照)、最近閲覧したWebページの検索もできるようになっている。初期の Spotlightでは日本語形態素解析が不十分だったため、Googleで使われていたMeCabを採用した(/usr/lib/、/usr/include/mecab.h 等参照)。

    文字コード変換とかいちいち面倒だし、UTF-8で使いたい。なので別途インストールして使う。オフィシャルからダウンロードしてビルドする方法もあるのだけれど、どうやらMacPortsでインストールするのが最善の様子。

  • 参考:Rails: Mac OS では mecab を MacPorts で入れること - tkrdの日記 (rails や ubuntu のことなど)
  • 管理も楽だし、依存関係もよきにはからってくるのでMacPortsでインストールしてみる。

    mecab本体と辞書のインストール

    MackPortsはインストールしてある前提です。

    $ sudo port install mecab
    $ sudo port install mecab-ipadic-utf8

    このまま使うと文字化けしてしまうのでmecabで使う辞書をutf8のへと変更します。(デフォルトの辞書はeucになっている様子)

    $ sudo vi /opt/local/etc/mecabrc
    
    ;dicdir =  /opt/local/lib/mecab/dic/sysdic    ←コメントアウト
    dicdir =  /opt/local/lib/mecab/dic/ipadic-utf8

    mecabを使う

    ここまででターミナルからmecabを使うことができます。
    mecabを終了するにはcontrol+cです。

    $ mecab
    
    mecabを使う簡単な方法
    mecab	名詞,一般,*,*,*,*,*
    を	助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
    使う	動詞,自立,*,*,五段・ワ行促音便,基本形,使う,ツカウ,ツカウ
    簡単	名詞,形容動詞語幹,*,*,*,*,簡単,カンタン,カンタン
    な	助動詞,*,*,*,特殊・ダ,体言接続,だ,ナ,ナ
    方法	名詞,一般,*,*,*,*,方法,ホウホウ,ホーホー
    EOS
    

    各言語のバインディング

    各言語から使うにはバイディングをインストールする必要があります。
    MacPortsにはPerl用、Ruby用、Python用があるみたいですね。

    $ port search mecab
    
    p5-mecab @0.980.0 (perl, textproc, japanese)
        a Perl module for MeCab
    
    p5.8-mecab @0.980.0 (perl, textproc, japanese)
        a Perl module for MeCab
    
    p5.10-mecab @0.980.0 (perl, textproc, japanese)
        a Perl module for MeCab
    
    p5.12-mecab @0.980.0 (perl, textproc, japanese)
        a Perl module for MeCab
    
    p5.14-mecab @0.980.0 (perl, textproc, japanese)
        a Perl module for MeCab
    
    py-mecab @0.98 (python, textproc, japanese)
        a Python module for MeCab
    
    py24-mecab @0.98 (python, textproc, japanese)
        a Python module for MeCab
    
    py25-mecab @0.98 (python, textproc, japanese)
        a Python module for MeCab
    
    py26-mecab @0.98 (python, textproc, japanese)
        a Python module for MeCab
    
    py27-mecab @0.98 (python, textproc, japanese)
        a Python module for MeCab
    
    rb-mecab @0.98 (ruby, textproc, japanese)
        a Ruby module for MeCab
    
    rb19-mecab @0.98 (ruby, textproc, japanese)
        a Ruby module for MeCab
    
    Found 28 ports.

    オフィスシャルサイト
    MeCab: Yet Another Part-of-Speech and Morphological Analyzer
    http://mecab.sourceforge.net/

    カテゴリー
    Mac MySQL プログラミング

    MAMP(Apache+MySQL)を使ってローカルでらくらくperl開発

    MAMP

    Apache+MySQLサーバをmacで動作させる事ができる。macにはもともとApacheもperlもインストールされているけど、バージョンが古いし、管理も面倒なのでMANPを使うメリットはおおいにあると思う。もともとはPHP+MySQLのローカル環境を構築するためのもの...かな?

    参考:Mac OS Xのローカル環境(MAMP+MacPorts)で Movable Typeを動かしてみよう - 準備編  [ 09.06.24 update ] 【 gabs.log|おしゃべり好きなWEB制作者のたわごと 】

    MAMPをインストール

    MAMP

    MAMPからダウンロードしてインストールする。

    MacPortsのインストール

    makeとか使うのでXCodeが必要。OSのバージョンにあったものをダウンロードする。

  • The MacPorts Project -- Download & Installation
  • MacPortsの初期化&設定

    Terminalでコマンドを実行

    echo 'export PATH=$PATH:/opt/local/bin:/opt/local/sbin/' >> ~/.bashrc
    echo 'export MANPATH=$MANPATH:/opt/local/man' >> ~/.bashrc
    echo 'source ~/.bashrc' >> ~/.bash_profile
    sudo port -d selfupdate
    sudo port -d sync

    perlのPATHを変更

    元のperlをperl.bakにリネームして、シンボリックリンクを貼る。これをしておかないと元々インストールしてあるperl(/usr/bin/perl)を参照してしまうため。

    cd /usr/bin/
    sudo mv perl perl.bak
    sudo ln -s /opt/local/bin/perl /usr/bin/perl

    cpanmをインストール

    perlモジュールを簡単にインストールできるcpanmをインストールする。

  • ArtifactSauce: cpanmをMac OS Xにインストールする
  • sudoでインストールすると /opt/local/lib 以下にインストールされる。

    sudo cpanm Mojolicious
    or
    cpanm -S Mojolicious

    ユーザー権限でインストールした場合は、ホームディレクトリ ~/perl5/lib/ 以下にインストールされるので、この場合はPATHの指定が必要。コード側に書くか、あらかじめ設定しておく必要がある。
    Apacheのconfigに設定するのが吉かな?

    httpd.confに記述

    SetEnv PERL5LIB /Users/clicktx/perl5/lib/perl5
  • KMsWiki: Perl/@INC - Perlのライブラリの検索PATHを格納した配列のこと。 例えば、コマンド...
  • CGIでの環境変数PERL5LIBの設定 | OKWave
  • MAMPでCGI(perl)を実行できるようにする

    /Applications/MAMP/conf/apache/httpd.conf を編集する。自分の場合は /Applications/MAMP/htdocs以下全部で実行したいので以下の場所を変更。

    453行目付近

        #AddHandler cgi-script .cgi
        AddHandler cgi-script .cgi .pl .pm ←追記

    httpd.confを編集したらMANPを再起動して設定を反映させる。

    CGI実行テスト

    /アプリケーション/MAMP/htdocs/ に test.cgiを作成する。

    #!/usr/bin/env perl
    print "Content-type:text/html\n\n";
    print "Hello, World!\n";
    exit;

    test.cgi に実行権を与える。

    $ cd /Applications/MANP/htdocs
    $ chmod 700 test.cgi

    webブラウザで http://localhost/test.cgi にアクセスして表示されたら成功。

    ちなみにMAMPの読み方はまんpーでいいんじゃないでしょうか?