Archive for the ‘Software’ Category

Parallels Desktop をアップグレード

火曜日, 11 月 18th, 2008

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 ボタンを押す。

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

Dropboxで紙copiのデータ共有

金曜日, 10 月 3rd, 2008

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 の画像の保存方法」が「絶対パス」になっていたりすると、過去にクリップしたデータで問題がでるかもしれませんが未確認です。

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

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

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

金曜日, 9 月 19th, 2008

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を作成して管理できそうな感じ。

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

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

土曜日, 9 月 6th, 2008

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

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

今日のPerl(息抜き)

木曜日, 8 月 21st, 2008

会社から貸与された新しい機種の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 を生成することが出来た。 今日の息抜きはここまで。

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

木曜日, 8 月 21st, 2008

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


リズム天国ゴールド

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

Plagger::Plugin::Filter::AutoTaggingをアップデート

木曜日, 6 月 19th, 2008

Plagger::Plugin::Filter::AutoTagging を少し改変しました。

AutoTagging.pm

変更内容は以下の通り。

  • otsune さんの diff を適用&ちょっと修正 (db省略時処理とMeCab用Encode処理のパフォーマンス改善) < otsune さんThx!
  • sub init を plugin.init ハンドラに変更しました。(他のプラグインの初期化処理もそのようになっているようなので……)

実は otsune さんに書いて頂いたdiff をそのまま適用したところうまく動きませんでした。というのも、「db 省略時に id_safe を使ってファイル名を生成するように」とコードを追加されておられるのですが、Plagger::Util::filename_for で $feed が参照できないために動きませんでした。

で、これ自体は単純なミスだと思ってなんとか取り込ませていただこうとしたのですが、otsune さんの意図が「Feed毎に学習できるように」というものなのか、それとも単に「Pluginユニークなdb名を生成したい」からなのか、それともなにか他にもあるのか気になりだして悩んでしまいました。

とりあえず Plagger::Util::filename_for で id_safe が使えるように safe_id と id サブルーチンを実装(というか Plagger::Feed から持ってきた)し、$self->id で $self->plugin_id が返るようにしてお茶を濁しておきましたが、これでは「Feed 毎に学習を分ける」という目的は達成できません。

学習データが完全に共通の場合、特に generate_tags を有効にするとあっというまにラベルがどんどん増えてDBのサイズが膨らんでしまいますし、guess の精度にも影響があるかもしれないので Feed 毎に学習データを分けられる(もちろん共通にもできる)ようにしておいたほうが色々と都合が良いかも?

ちょっと悩みます。

あと、safe_id は Plugin.pm レベルで持っていてもいいような気がしました。でもそんなのは既に議論されていそうだし、私のやり方よりもよい別の実現方法が既に実装されているのかも?

最近 Plagger の事を調べたりプラグインを書くのもご無沙汰だったので分からないことが多いのですが、ボチボチやっていこうと思いますので何かあれば皆様是非ご教授くださいませ。

久しぶりにPlaggerでなんかやってみた

水曜日, 6 月 18th, 2008

前回書いたとおり、Text::MeCab と Algorithm::NaiveBayes を利用して Auto Tagging する Plagger のプラグインを作成してみました。もちろん、Text::MeCab と Algorithm::NaiveBayes モジュールが必要です。

Plagger::Plugin::Filter::AutoTagging.pm

Perl のコード自体書いたのは久しぶりなので、あまり自信はないです。途中単純なミスにハマりながらもなんとか作りました。なにかおかしなところがあったら、是非ご指摘いただけると幸いです。

ちなみにしばらくの間、某所のDebien サーバで

- module: Filter::AutoTagging
config:
mecab_charset: utf-8
db: <DB_PATH>
generate_tags: 3
guess_tags: 3
threshold: 0.8
training: 1

とかやってテストをまわしていましたが、精度はイマイチです。generate_tagsでのキーワードの抽出方法はもう少しきちんと考えた方がいいかもしれない?あと、MeCab辞書が utf-8 の環境でしかテストしていません。

ちなみに config 項目の詳しい説明はこちら

Plagger/Plugin/Filter/AutoTagging

久しぶりにPlaggerでなんかやってみたくなった

木曜日, 6 月 12th, 2008

ずっと前から Plagger の最新動向を追うのをやめてしまっていたのですが、しばらくぶりに最新バージョンにアップデートして遊んでみました。

まず Debian でサーバを立て、Plagger を trunk からインストール。なるべく多くのプラグインと依存モジュールを頑張って入れました。Search::Estraier が使ってみたかったので HyperEstraier もインストール。

Search::Estraier に関しては下記のURLを参照のこと。

http://subtech.g.hatena.ne.jp/miyagawa/20060504/1146744042
http://subtech.g.hatena.ne.jp/miyagawa/20060504/1146739431

HyperEstraier をインストールしてマスターを起動し、管理者アカウントとノードを作成。example にあった search.yaml を変更して試してみたらすんなり動きました。イカス。

さらに、形態素解析エンジンの MeCab とその Perl バインディングである Text::MeCab を試してみたくなったのでインストール。MeCab の辞書は UTF-8 へコンバートしました。

んで例の「分かち書き」を試してみるといい感じ。これで各単語数カウントしてベイズ推定使えば日本語でもある程度精度のよいスパム判定とか自動レイティングとかできちゃうんでしょうか?(そんな簡単にはいかないか……)

と思ったけど「そんなの既に誰かやってそうだなあ。ずいぶん長いこと Plagger のこと調べてなかったからよく分からないしなあ。」といういつもの葛藤に苦しみながらも、エイヤとチャレンジしてみることに。

(more…)

ecto3 beta が日本語化

木曜日, 2 月 28th, 2008

ecto3大分前から ecto3 betaを使用していましたが、3.0b34 がリリースされ、やっとメニュー等が日本語化されたらしいので早速アップデート。この記事はテストがてらに 3.0b34 で書いています。

ダイアログによってはラベル文字がはみ出して切れてしまっているところがあるみたいですが、今のところ快調です。


ツールバーはこんな感じ。

ecto3

別に英語でも特に不自由は感じませんでしたが、日本語化されること自体は嬉しいです。