Macの最近のブログ記事

ちょっと前にFirefoxがSQL OptimizerでREINDEXして速くなったと書いたのですが、そういやApple Mailもsqliteだったのを思い出しました。

以前Apple Mailも速度アップのためにVACUUMをしたことはあったのですが、REINDEXはしたことなかったのでさっそく試してみたら、なんか心なしかメールのリスト表示が速くなってる気がします。

まぁ、ある程度のメール量がないと意味ないかもしれませんが。。。

やり方は

% cd ~/Library/Mail/
% sqlite3 Envelope\ Index
sqlite> REINDEX subjects;

こんな感じでVACUUMするときとほぼ同じ。

自分はこれ以外にmessagesとaddressesもREINDEXしてみました。

まぁ気休めぐらいにしかならないかもしれませんが、Apple Mailが遅くてかなわんというひとはやってみてはいかがでしょうか。
antipopさんのApp::SocialSKKをさっそくインストールして使ってみた。
これは素晴しすぎる!

使えるまでを軽く説明しておく(Macの場合)。

まずインストール。

# cpan App::SocialSKK
この際 socialskk.pl も同時にインストールされます。
次に $HOME/.socialskk に

plugins:
  - name: SocialIME
  - name: HatenaBookmark
  - name: Wikipedia
こんな感じに書く。
あとはsocialskk.plを起動するだけでApp::SocialSKK使える状態になります。

AquaSKK側での設定は「環境設定」の「辞書」タブで「+」を押して辞書を追加し、辞書の種類を「外部 skkserv 辞書」にし、場所を「localhost:1179」にするだけです。
(ちなみにいままでMacではMacUIMを使っていたのですが、現状のMacUIMだとskkservとskkの辞書を同時に設定できないっぽいので2年ぶりぐらいにAquaSKKに乗り換えました。そしたらAquaSKKがめっちゃ進化していてびびった)

とりあえず「ほってんとり」って書いて変換したら

料理のススメ:これから料理をしようと思っているひとへ - Money does not hurt your heart
ってでた。はてブからうまく取れてるようですね。
まぁ、これはネタとして。

その他にもSocialIMEには郵便番号とかも登録されてるっぽくて、日本語入力モードで「/0000000」(0000000はちゃんとした郵便番号ね)と打って変換を押すとその郵便番号の住所が出てきました(昔は郵便番号データベースをファイルに落したりしてたのを思い出した)。

っていうか実はSocialIMEに郵便番号が登録されてること知らなくてApp::SocialSKK::Plugin::ZipCodeとか作っちまった。悔しい...。

悔しいからソースを公開しておく。

package App::SocialSKK::Plugin::ZipCode;

use strict;
use warnings;
use base qw( App::SocialSKK::Plugin );
use XML::Simple ();
use URI;
use Encode ();

sub get_candidates {
    my ($self, $text) = @_;
    return if !defined $text || $text !~ /^\d{7}$/;

    my $uri = URI->new( 'http://zip.cgis.biz/xml/zip.php' );
    $uri->query_form( zn => $text );
    my $res = $self->ua->get( $uri->as_string );
    if ($res->is_success) {
        eval {
            my $xml = XML::Simple::XMLin(
                $res->content, ValueAttr => [ qw(state_kana city_kana address_kana company_kana
                                                 state city address company) ]
            );
            my @candidates;
            for my $seq ( [ 4..7 ], [ 0..3 ] ) {
                my $val = join( '', map {
                    my $v = $xml->{ ADDRESS_value }->{ value }->[ $_ ];
                    $v ne 'none' ? $v : '';
                } @$seq );
                push @candidates, Encode::encode(
                    'euc-jp',
                    Encode::is_utf8( $val ) ? $val : Encode::decode( 'utf8', $val ),
                );
            }
            return @candidates;
        };
    }
}

1;

__END__

=head1 NAME

App::SocialSKK::Plugin::ZipCode - Retrieves Candidates from Zip Code API

=head1 SYNOPSIS

  # Add a line like below into your .socialskk:
  plugins:
    - name: ZipCode

=head1 DESCRIPTION

App::SocialSKK::Plugin::ZipCode performs retrieval of
candidates from Zip Code API

=head1 SEE ALSO

=over 4

=item * Zip Code API

http://zip.cgis.biz/

=back

=head1 AUTHOR

Yoshiki Kurihara E<lt>kurihara __at__ cpan.orgE<gt>

あ、本題を忘れそうになってしまった。
socialskk.plをログインしたら毎回起動するのはめんどうなのでlaunchdで起動するようにしといた。これはMac OS X 10.5.6でしか動作確認してませんのであしからず。

設定は簡単。$HOME/Library/LaunchAgents/socialskk.plist ってファイルを作って下記の内容にで保存したあとMacを再起動すると socialskk.pl が自動で起動しているはず。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Label</key>
        <string>socialskk</string>
        <key>ProgramArguments</key>
        <array>
                <string>/usr/local/bin/socialskk.pl</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
        <key>StandardErrorPath</key>
        <string>/dev/null</string>
        <key>StandardOutPath</key>
        <string>/dev/null</string>
</dict>
</plist>


Terminal.appでOutputzが使えるっていうので設定してみた。
Terminal.appでEmacs使ってoutputz.el入れてたら重複しちゃうのかな?

今のところoutputz.elは入れてないのでとりあえず考えないことにする。

Mac OS X Leopard - dynamic_pager を骨抜きに
OS X で一ついやなものは、swapping.
この記事で弾さんの書いているdynamic_pagerの改造版を自分のMacBook Airにインストールしてみた。

結果としては筐体がいつもより熱くなるけど、pageoutしない分多くのアプリを立ち上げても処理落ちして動作が鈍くなくことはほとんどなくなりました。

と思って今半日ぐらい起動しっぱなしの状態でvm_statしてみたらPageoutsが15って出てるな。しばらくは0だったんだけど、なんだろう…。どきどき。

% vm_stat
Mach Virtual Memory Statistics: (page size of 4096 bytes)
Pages free:                   120347.
Pages active:                 232462.
Pages inactive:                73657.
Pages wired down:              96325.
"Translation faults":       19568174.
Pages copy-on-write:          402293.
Pages zero filled:           8727733.
Pages reactivated:              2082.
Pageins:                       80214.
Pageouts:                         15.
Object cache: 58000 hits of 93961 lookups (61% hit rate)

とりあえず、熱いけど快適ではあるのでしばらく使い続けてみようと思います。
no strict; no life;
MacBook Airにこんなカッティングシートを貼ってみました。

Perlを主な仕事をしてるのでこんなのにしてみましたが、Perlを知らない人がみたら変な言葉だな。どんだけ厳格なんだと。

ちょっと左にズレてしまったのが気になっているのですが、同じシートがまだ4、5枚あるのでこれが剥れかけてきたときにちゃんと貼り直そうと思います。

ちなみに注文したのは楽天のフジ工房という店舗の
激安 カッティングシート 切り文字ステッカー 文字シール 英文字 小さな文字 最大60文字 台紙100x450mm
です。

このフジ工房という店舗は北海道にあり、かの有名な「幸福駅」の看板を寄贈したこともあるところらしいです。北海道にあるということもあり関東の店舗より1、2日配送に時間はかかりますが、おまけとかもしてくれてとても親切なところでした。
Safariの機能拡張でSafariStandっていうソフトがあるんだけど、今日のソフトウェアアップデートでバージョンアップしたSafariでは、LDRの「v」を押してウィンドウを開く機能が動かなくなってしまった。LDRで「この機能を使うにはポップアップブロックを解除してください」って言われます。

そこでSafariStandのページにいったらSafariStandがバージョンアップしていて、上記の問題が解決されていました。
困っている方がいたらどうぞ。

MacBook Airを買ってからというもの、ThinkPad X40を触らない時間がどんどん増えています。 さて、今日Macを起動したらソフトウェアアップデートの通知がきたので、アップデートをしたらSafariが3.1になりました。
今回のアップデートの内容を見ると
Adds support for offline storage for Web applications in SQL databases
と書いてあったのですが、これはGoogle Gearsみたいなものなのかな? 使い方が書いてないんだけど、どっかに書いてあるのだろうか…。 はてさて。
MacBook Airを使い始めて2週間目ですが、Firefoxのタブキーを押したときの挙動にいらいらする毎日でした。だって、テキストフィールド以外のフォームにフォーカスが移動しないんですもの。

ということで、調べたり社内のIRCやTwitter系で叫んでみたら、数人の方から accessibility.tabfocus という設定項目があるというのを教えて頂きました。

早速ロケーションバーでabout:configを開いて、accessibility.tabfocusを2に設定したら思い通りの挙動になりました。

accessibility.tabfocusの取り得る値は以下のページに詳しく書いてあります。

http://kb.mozillazine.org/Accessibility.tabfocus

「1」だとテキストフィールド、「2」だとフォーム、「4」だとリンクになるようです。

WindowsのFirefoxと挙動が違うのが、なんでやねんという感じです。
マカーならマウスを使うだろうという前提でこうなってるんですかね。

最近はマカーのエンジニアが増えてるので、Windowsと同じ挙動でもいいような気がしますね。

追記:
ブクマでHolyGrailさんやyoggyさんなどが書いてある通り、フルキーボードアクセスを有効にすることでも同じ設定(というかこっちの方がOSのあらゆるところで対応できる)ができるようです。是非以下も参照してみてください。

HolyGrail - [mac] ソフトウェア使わなくても「フルキーボードアクセスを有効にする」でできますよー。参考:http://d.hatena.ne.jp/HolyGrail/20080305/1204729899
yoggy - [configuration][firefox][mac][osx][tips] ここも参照のこと>http://www.mozilla-japan.org/kb/solution/2041

iPhoneがAppleから発表されました。あれは物欲がうずきますねぇ。
あのUIの質感はさすが。OSXが入ってるってことは、公表されている以外にもいろんなことができそう。

自作のソフトも動かせるんだろうし、Skypeも動くようになるだろうし(そしたら無料電話やりまくり)、待ち受け画面でWidgetを動かしたりもできるだろうし。
使うシーンを考えると待ち受け画面ではいくつかのWidgetが起動していて、RSS用のWidgetでは常に最新の情報を表示。気になる記事があったら指でたたくと、Safariが起動してそのページを見れる。それをやりながら音楽を聞いて、ネットサーフィン。そしたらメッセで誰かに呼び出され話し始める。そしたらいきなり電話がかかってきて会話が開始みたいな。

ちなみにGPSは付いてないっぽいね。GPSが付いたら、Google Mapsとかで位置情報を取ってタッチスクリーンで操作しながら移動とかもできそうなのに。そういうモジュールとか出たらいいのに。

日本では2008年に発売ということで、Apple遠いよApple。

でも正直なところ、iPhoneとApple TVだけだったのがちょっと拍子抜け。あれだけの技術があればiPodのWidescreenも作れたんじゃないかと思ったりもした。

ffmpegをインストールして、下記のブログに載っていたオプションで生成した動画を iPod へ転送したらあっけなく見られました。(いやうそ、その前に試行錯誤すること3時間でした…)

FFMPEG And The Video iPod | Huebel Family Online

ffmpeg -vcodec xvid -b 350 -qmax 10 -bufsize 4096 -g 300 -acodec aac -ab 96 -ac 2 -i input.avi -s 320x240 -aspect 16:9 output.mp4


ちなみにffmpeg のインストール方法は「第152回
早く来い! iPod with Videoの到着を待ちきれずにH.264エンコード(2)
」を参考にしました。ここに載っている、FAAC、FAAD2、x264、liba52、そして追加で libxvidをインストールしてから(追記ただ、これ全部は必要ないかも。結局ビデオコーデックは xvid しか使ってないから x264 とかはいらないかな?)、

./configure --enable-faac --enable-faad --enable-a52 --enable-x264 --enable-pthreads --enable-gpl --enable-xvid

として、あとは make; sudo make install でインストールするだけです。そうそう、各ライブラリをインストールするために、nasmやautomake、libtoolが必要でした。

文頭で紹介した変換オプションはそのまま使ったので、音質や画質が最良のものかどうかは別です。もっとよいオプションがあるかもしれません。ちなみに今回変換したのは、.mpg → .mp4 です。あとYouTube から取ってきた .flv を変換して iPod に読み込んでみたらちゃんと見られました。

あと取ってくるところは Plagger でやろうと思います。

検索

広告

OpenID対応しています OpenIDについて
Powered by Movable Type 4.22-ja