Category Archives: Software

Mac Software

MacBook ProでUbuntu 10.04 (Wubi)

仕事で利用しているMacBook Proに、Ubuntu 10.04をインストール。元々BootCampでWindows Vista, MacOS Xを使い分けていましたが、Linuxも利用したいのでWubiを利用してNTFSパーティションにUbuntu 10.04をインストールし、トリプルブート環境を構築しました。

wubi logo

サウンドとマルチトラックパッドがうまく動きませんでしたが、下記サイトを参考に解決。

とりあえず他は問題なく動いています。

Software Technology

Chrome OS をビルドしてみる

とりあえず流行っぽいので Chrome OS をビルドしてみた。MacBook Pro の BootCamp 上 Windows Vista にて VirtualBox にまっさらな Ubuntu 9.10 Desktop 環境を構築。

《参考にさせていただいたサイト》

kurainの壺:chrome OSが公開されたので buildしてみる

まず aptitude もしくは apt-get で必要なパッケージをインストール。

git と svn も使うのでインストール

$sudo aptitude install git-core subversion

depot tools の取得とインストール

$svn co http://src.chromium.org/svn/trunk/tools/depot_tools
$export PATH=`pwd`/depot_tools:"$PATH"

git でソースコード取得

$mkdir chromiumos
$cd chromiumos
$gclient config http://src.chromium.org/git/chromiumos.git
$gclient sync

ここで結構時間がかかる。さらに local repository と chroot 環境の構築。

$cd ./src/scripts/
$./make_local_repo.sh
$./make_chroot.sh

また結構またされる。

$./enter_chroot.sh

で chroot 環境に入ったのち、

(chroot)$../platform/pam_google
(chroot)$../platform/enable_localaccount.sh [USERNAME]
(chroot)$./set_shared_user_password.sh

とやっておくのが吉。参考サイトさんに書かれている通り、やっておかないとオフラインでログオンできないみたい。終わったら

(chroot)$./build_all.sh

でしばし待つ。すると~/chromiumos/src/build/image/[xxxxxxxxxx]というディレクトリにイメージがビルドされる。とりあえず vmware 用イメージにコンバートするため chroot 環境から出て、

$cd ~/chromiumos/src/scripts
$./image_to_vmware.sh --from=~/chromiumos/src/build/images/[xxxxxxxxxx]

とすると ide.vmdx が生成される。それを VirtualBox で適当に仮想マシンを作成し、生成された vmdk イメージをブートドライブに指定して起動。

Chrome OS

Chrome OS


という感じでとりあえずビルドできたっぽい。

Impressions Programming Software

静岡&山梨旅行とGeotagging

GWは休めるかどうか分からないからとまったく予定を立てていなかったのですが、4月末についカッとなって宿をおさえ二泊三日の静岡&山梨旅行へ行ってきました。

travel_set

更に絶好の機会なので、以前設置しておいた自作の「FOMA端末用GPSログ取得スクリプト」を使ってトラックログを作成し、撮影した写真のGeotaggingにも挑戦してみました。

このCGIスクリプトはPerlで作成したもので、FOMA端末からアクセスする事で位置情報を取得してログを保存することができ、更にそのログをGPXもしくはKML形式で取得することができます。

このスクリプトとDoCoMo FOMA端末(P-01A)を使用し、

  1. トラックポイントを保存しながら写真撮影
  2. 帰宅後、iPhotoへ写真を取り込み
  3. ログデータをGPX形式でサーバから取得して保存
  4. GPSPhotoLinkerを使ってGeotag埋め込み作業

という手順で念願のGeotaggingを行う事ができました。

ちなみに1のログ保存に関しては、やはり結構面倒くさい気がしました。

というのもFOMA端末内蔵のGPS位置情報や基地局のエリア情報はトラステッドなiAppli DXから取得するか、あるいはHTTP経由で外部へ送信することで取得できるようになっています。

ただし後者の場合にはプライバシー保護の為だとは思いますが、情報送信の度に確認ダイアログがでてしまいます。

今回のスクリプトはもちろんHTTP経由送信の仕組みを利用したものなので、いちいち移動するたびにポチポチと数回ボタンを押す必要があるわけです。

しかしそれほど細かいログは必要なく大まかな撮影場所さえ保存できればよいなら、

  • 写真撮影したい場所に着いたら撮影開始前に現在地のログを保存する
  • 撮影が長時間にわたる場合には10〜20分間隔くらいでログを残すようにする
  • 急遽撮影した場合には、撮影後なるべく時間を置かずに現在地のログを保存する

のような点に注意してログを残していけば、GPSPhotoLinkerと組み合わせてなんとか実用範囲内だと思いました。既製のGPSロガー製品だとこの辺りの使い勝手がどんなに良いかという点については、使った事がないので分かりませんが(苦笑)

それから4でちょっとハマりました。拙作の「GPSログ取得スクリプト」では

http://refits.cgk.affrc.go.jp/tsrv/jp/rgeocode.html

で提供されている「逆ジオコーディングサービス」を使わせていただき、その位置の都道府県や市区町村名等を取得してUTF-8で保存するようになっています。

この内容をそのままtrkptのname要素として出力するようにしていたのですが、このGPXデータをGPSPhotoLinkerに直接読み込ませるとソフトウェアが不正終了してしまう現象に悩まされました。

GPSPhotoLinkerにも読み込んだ位置情報を元にReverse Geocodingする機能があるし、無理に住所を出力する必要もなかろうということで、とりあえず暫定的にname要素を適当なASCII文字列にしてみたところうまくGPSPhotoLinkerへ読み込んでExifへ書き込む事ができました。

「さっさとGPSロガー買った方が早いんじゃね?」という声がこの辺りから聞こえてきそうな気もしますが、もう少しこの方法でGeotaggingにトライしてみたいと思います。

Mac Software

iLife ’09 購入

新しい iLife が届いたのでアップデート。

iLife '09

iPhotoのFlickrサポートは素敵。でもGeotagging系の機能はライブラリに位置情報を含む写真が殆どないので試せてません。あとは顔認識&分類機能がついたようだけど全然前処理が終わる気配がなくて、まだどこまでのものか全然分かってません。

GarageBandは楽器レッスン機能としてレッスンを購入できるようになりました。ストアを覗いてみるとジョン・フォガティを発見。プレビューしてみるとプラウドメアリーのイントロを教えてくれました。なかなか面白いけど、レッスンまでは買う気になれないなあ。

他は時間がないのでまだ試せてません。

Mac Software

Parallels Desktop をアップグレード

Parallels Desktop が 4.0 にバージョンアップしたというのでアップグレード。大分見た目も変わっています。価格は $39.99 でした。

http://www.parallels.com/

Parallels Desktop 4.0 for MacParallels Desktop 4.0 for Mac Parallels Desktop 4.0 for Mac Parallels Desktop 4.0 for Mac Parallels Desktop 4.0 for Mac Parallels Desktop 4.0 for Mac

Boot Camp パーティションの Windows XP を起動して Parallels Tools をインストール。その後設定を変更しているうちに起動しなくなってしまいハマりました。表示されるエラーは

「Failed to configure the Boot Camp partition’s hard disk.A disk configuration error has occurred. Make sure that you have read/write permissions for the disk.」

といった内容で、Parallels から Boot Camp パーティションが認識できなくなって困りましたが、フォーラムで下記のスレッドを見つけて解決。

解決方法は以下の通り

  1. HDDの設定を一度イメージファイルに変更してOKボタンを押す。(アラートが出るけどそのまま続行)
  2. HDDの設定をBoot Campパーティションに戻してOK ボタンを押す。

以上、同じエラーではまっている方はご参考まで。

Software

Dropboxで紙copiのデータ共有

Dropbox

以前 DropboxでFirefox::Scrapbookのデータ共有 という記事を書いたのですが、元々やりたかったのは実はこっちでした。

紙copi は、Firefox::Scrapbook のように 気軽にWeb クリッピングしたり、メモを取ったりするための Windows 用スタンドアロンアプリケーションです。 Macにスイッチする以前に使い勝手の良さから購入し、便利に使っていました。現在は Scrapbookと Evernote をメインで使っていますが、Windows PC では折角購入したので今も併用しています。

KamiLabo.jp : FAQ にあるとおり、ライセンス的には1本購入すれば複数台のPCにインストールして利用することができます。したがって例えば職場と家庭の両方で紙copiを利用することが可能です。

そうなるとやはりネットワークを介してデータ共有(同期)したくなるのですが、現行バージョンにはそういった機能がありません。もちろんLAN内であればNASなどの共有ボリュームに「箱」を作っておけば複数台のPCでデータ共有できるでしょう。しかしノートPCで外出した場合や会社のPCのデータも同期するとなると、簡単にはいきません。

この「紙copi」のWebサービス版である http://kamicopi.net/ も Beta リリースされていますが、ローカルからのインポート機能はあるものの、Evernote のようにローカルアプリケーションとの同期はできません。これができるようになれば便利ではないかと思い、Dropboxを使って複数台のPCにインストールされたPCの「紙copi」データを同期させてみることにしました。

とりあえず「My Document -> My Dropbox」内に「箱」を作り、それを各PCの紙で「新しい箱を作る -> 他から選ぶ…」でそこを指定すれば「共有箱」が作れそうです。

ただしこれだけだと Web クリッピングした場合、HTML 画像の保存先がローカル(デフォルトでは「My Document\Kami Data\HtmlImage」)になっているので、他の PC からはリンク切れになりそうな気がします。

そこで、「他->取り込みの設定」の「HTML の内部画像の保存先」を DropBox フォルダ内(例えば「My Document\My Dropbox\Kami Data\HtmlImage」など)にして、あらかじめローカルにある画像データも全て統合して同期しておきました。ローカルの箱にクリップしたサイトの画像データも無駄に同期してしまうのが難点ですが、今のところ仕方ないでしょう。

多分、「取り込み設定」の「HTML の画像の保存方法」が「絶対パス」になっていたりすると、過去にクリップしたデータで問題がでるかもしれませんが未確認です。

ちょっと使ってみた感じでは今のところこれで特に問題ないようですが、しばらく様子を見ようと思います。

念のため毎度書きますが、この内容を試される場合は自己責任でお願いします

※2009/11/7 追記

紙copiのマニュアルを読むと、

※自由配列でのファイル表示順を維持したい場合には、箱として使用しているフォルダ内のArrange.iniファイル(隠し属性ファイル)を含んだ状態でバックアップ・復元操作を行ってください。また、その際にはフォルダ内の各ファイル作成日時が維持されるように注意してください。各ファイルの作成日時が維持されない場合には、Arrange.iniファイルがフォルダ内に存在してもバックアップ前の表示順へ復元することはできません。
※各ファイルの重要度情報は、レジストリならびに各ファイルのストリーム(NTFSファイルシステムの場合のみ)にて管理しています。そのため、ファイルシステムの異なるPC・メディアへファイルを移動した場合には、重要度情報を維持することはできません。なお、重要度情報移行の際にも各ファイルのファイル作成日時を維持する必要があります。

という注意があります。少なくともDropboxで各ファイルの更新日時については同期されますが、重要度や自由配列を使っている方は注意が必要ですね。自由配列の並び順はArrange.iniファイルをきちんと同期する必要がありますが、Dropboxでは同期しようとするもののコンフリクトでうまくいかないことが多いようです。

また重要度についてはレジストリ(および、NTFSの場合には副次ストリーム)を利用しているとの事でDropboxでは同期できまません。

どちらも殆ど使っていないので気がつきませんでした。

(friioさん、情報ありがとうございます)

Service Software Technology

DropboxでFirefox::Scrapbookのデータ共有

Dropbox

既に色々なところで書かれているように、今までクローズドベータだったファイル同期サービスの Dropbox が一般公開されたとのことなので使い始めてみました。

Dropbox

似たようなサービスとしては P2P 技術を用いたフォルダ同期サービスとして FolderShare がありました。このサービスは2002年に設立したByteTaxi という企業によって運営されていましたが、Microsoft が2005年の11月頃に買収して Windows Live サービス群の1つとして統合しようとしていました。(※現在まだbeta)

→ FolderShare

ただしこちらのサービスは P2P なので、同期したい PC が両方とも Online である必要があります。例えば会社と家の PC を同期したければ、PC の電源を入れっぱなしにして出社しないといけません。

また、Windows Live で正式ローンチされている SkyDrive や Apple が提供している MobileMe の iDisk など、似たようなオンラインストレージサービスは他にも色々ありますが、無料で、マルチプラットフォーム対応のクライアントソフトウェアでオフライン時も通常のフォルダと同様に扱うことができ、サーバにも保存されるので同期時にオンライン状態をあまり気にする必要がなく、更に版管理までされ、というサービスはなかったかもしれません。(私が知らないだけで、あるのかもしれませんが)

Dropbox の利用用途としては色々考えられますが、まずは手始めに Firefox の Extension である Scrapbook のブックデータ共有にチャレンジしてみました。

以前は Scrapbook のScrapBox.net 拡張Box.net を使った共有ができたのですが、現在はサポートされていません。更にこの拡張機能では共有と言うよりコンテンツの転送を主眼においていて、取り込んだページから共有したいものを一つずつ選んでアップロードし、他のマシンでダウンロードしなければなりませんでした。

どのマシンからも自動的に同期されるブックが Dropbox フォルダを使って作成できれば、非常に便利になりそうです。

手順としては、

  1. まず1台の環境で、デフォルトではFirefoxプロファイルディレクトリ内に作成される Scrapbook データフォルダを Dropboxのフォルダにコピー
  2. それぞれの PC に散らばったデータをインポートして統合
  3. (Firefoxプロファイルディレクトリ内にある)元のScrapbook データフォルダは削除

という流れで、一応今のところノートPC、家の Mac & Windows の計 3 台のマシンで Scrapbook コンテンツを共有できているようです。更に「Multi-ScrapBook機能」を使えば、Dropbox フォルダに共有ブックを作成、さらにデフォルトのプロファイルディレクトリ下に端末ごとのBookを作成して管理できそうな感じ。

まだしばらく使ってみないと不都合が出るかどうかは分かりませんので、データのバックアップ等はしておいたほうが良いかもしれません。もちろん試される方は自己責任でお願いします。

Programming

PerlでコマンドラインからTwitterとJaikuに同時投稿するスクリプト

TwitKu とかずっと開きっぱなしだとアレなこともあったりする今日この頃なので、コマンドラインから JaikuTwitter に同時投稿するPerlスクリプト書いた。というか Net::TwitterNet::Jaiku を使ってみたかっただけだったりする。

#!/usr/local/bin/perl

use strict;
use warnings;

use utf8;

use Encode;
use Encode::Guess qw/ shiftjis euc-jp 7bit-jis utf8 /;
use Net::Jaiku;
use Net::Twitter;

my $j = Net::Jaiku->new( username => "<your_jaiku_id>",
             userkey => "<your_jaiku_api_key>" );
my $t = Net::Twitter->new( username => "<your_twitter_id>",
           password => "<your_twitter_password>" );

foreach (@ARGV) {
    my $m = Encode::encode('utf8', Encode::decode('Guess', $_));
    $t->update( $m );
    $j->setPresence( message => $m );
}
exit;

Encode::Guess してるので、Windows でも Mac でも大丈夫かも?

Twitter&Jaiku cross posting perl script

エラー処理とかそういうのはなにもしてません。

Programming

今日のPerl(息抜き)

会社から貸与された新しい機種のPHS端末。まったく電話帳が入っておらず、以前の機種からの引継ぎも出来ないとのことでイライラ。社員の情報は ActiveDirectory で管理されているはずなので、LDAP から名前と電話(内線/外線)番号、メールアドレス等の情報を引っ張ってこれることを思い出し、ついカッとなって PHS 端末にインポート可能な形式の csv を生成する Perl スクリプトをデッチアップすることに。

まず引っかかったのが、携帯の電話帳に必須の「読み仮名」をどうしようかということ。読みが仮名で入っていないと、うまく電話帳検索の自動分類が働かないのでやっぱり対応必須だろう。だけど LDAP から「読み仮名」は取得できない。というわけで、ローマ字表記名をカナに変換できないかと Lingua::JA::Romaji を評価していたのですがイマイチうまく動かない。とりあえず時間も無いので断念。

続いて Dan Kogai さん作Lingua::JA::Kana を使ったらイイ感じ!!……と思ったんだけど、

「Junko」さんが 「Jウンコ」さんになってしまった

ため泣く泣く保留。 Lingua::JA::Romanize::* ってどうなんだろう。仮名->ローマ字のみかな?今度調べよう。

次に難字問題。にぽたん研究所:難字に難儀 にあるとおり、cp932 -> euc-jp でうまく変換できない文字がある。俗に言う「ハシゴ高」とかの難字。数字、カタカナなどを半角変換するために Encode::H2Z::z2h を使う場合、入力は euc-jp になるため、一度 euc-jp を経由してしまうので難字が化けてしまう。さらに、この難字を問題が出ない異字体に変換する Lingua::JA::Regular があるが、これも nipotan さんの先のエントリにあるとおり、内部で Jcode を経由するので「〓」(ゲタ文字)になってしまったりとちょっとクセがある。

そこでとりあえず nipotan さんが 30 分もかけ苦労して作成されたという Shift_JIS 用の %KANJI_ALT_TABLE を南無南無とありがたく使わせていただき、

my $enc = Encode::find_encoding('cp932');
my $string = $enc->encode($string);
my ($key, $value);
while ( ($key, $value) = each(%KANJI_ALT_TABLE_SJIS) ) {
   $sjis =~ s/$key/$value/ge;
}
Encode::from_to($string, 'cp932', 'euc-jp');
Encode::JP::H2Z::z2h(\$string);
Encode::from_to($string, 'euc-jp', 'cp932');

ってな感じでお茶を濁して終了。無事端末にインポート可能な csv を生成することが出来た。 今日の息抜きはここまで。

Software

DSソフト「リズム天国ゴールド」を購入

TV CM でも面白そうだったし、嫁さんもなんだか遠まわしに欲しいオーラを出していたので、お盆休みに入ってすぐ DS ソフトの「リズム天国ゴールド」を購入しました。


リズム天国ゴールド

リズム感を使ったミニゲームが沢山入っていて、各々は短い時間で終わるのでちょっとした合間の暇つぶしにももってこいです。最初は一つしか選べませんが、クリアしていくとどんどん新しいミニゲームが増えていきます。ゲーム自体は小さな子供にとってちょっと難しいと思いますが、絵柄やキャラクター、動き、音楽が面白いので楽しめると思います。うちの子は僕がやっているのを見ているだけで楽しそうにしています。