« 2008年3月 | トップページ | 2008年5月 »

2008年4月の11件の記事

2008/04/26

「こだわり」

僕は色々なところで、「こだわりが無い」と指摘されます。
特に、図画工作に関わる部分に於いては、ほぼ必ずと言ってよいほど指摘をされます。

つい先日もWebページのデザインをしていたら、「全然こだわりがない」と指摘されたばかり。

でも、その指摘は違うのです。

僕のこだわりはデザインではなく、時間です。
僕がこだわっている点は

 1. 完成までの時間
 2. メンテナンスの時間

です。

こだわって、こだわって...いつまで経っても完成しないというものもあります。
こだわって、こだわって...一度作ったらもう触れないというものもあります。

僕はこのどちらもあまり好きではありません。
短時間で作れて、更に後々のメンテナンスも楽。
これが、Webページやプログラム、図面や制御回路の作成に於ける僕のこだわりです。

もちろん、人に望まれる機能と情報を兼ね備えている事ということは必須条件なので、これを外して短い時間で作る事だけを目的としているわけではないですよ。
ですが、短い時間で作るために犠牲にしているものもあることは否定しません。

どれが良いとか、どれが悪いとか言うわけではないですが、要求を満たす中にある「こだわり」にはいくつか種類があるのですよという話でした。

ま、身内の喧嘩です。

| | コメント (0) | トラックバック (0)

2008/04/21

千の風になった?

私の画面の前で 泣かないで下さい
アプリは応答しません 動いてなんかいません

強制〜終〜了〜
強制終了をして
このメモリの中から
揮発しています

私の画面の前で 泣かないで下さい
そこにファイルはありません 復活なんかしません

強制〜終〜了〜
強制終了をして
このメモリの中から
揮発しています

...ショックです。

Leopardにしてから、僕の持っている古いアプリのほとんどが動作不安定になってしまい、数時間の作業がいとも簡単に「無かったこと」や「夢オチ」になってしまいます。

あぁ、これで何回目の作業だろう...落ちる原因がわかって安心し、きちんと保存を繰り返していたのに、今度は保存したファイルが壊れててた...まだ強制終了される方がましだったのに...神様が与えたもうた試練なのかな。

あぁ、あぁ、やり直し、やり直し...目より、手より、肩より、心が疲れた。

...愚痴でした。

| | コメント (2) | トラックバック (0)

2008/04/17

献血のすすめ

昨日、血液センターから成分献血の要請があって、ついさっき献血してきました。

事の始まりは、一本の電話。
僕をご指名の電話がかかってきて、17日か18日の時間があるときに成分献血にご協力くださいとのことでした。早速、職場で「行っても良いですか?」と聞くと、「行ってください」と即答されました。

そこで、9:00頃にタクシーで血液センターへ向かいました。
ちなみに、知っている人がほとんどかもしれないけど、僕の住んでいる地域の血液センターへ依頼があって献血に行くと往復のタクシー代を出してくれます。

到着してから簡単な問診に答えて、血液を検査し、問題なければ献血が始まります。

成分献血についてちょっと補足しておくと、成分献血では血液から血小板を分離して残った血液を体に返すというもので、通常の献血よりも体にかかる負担が少ないらしいです。また、次回献血可能までの期間が短いです。また、通常の献血よりも多少時間がかかります。

およそ1時間弱で終わるはずなのですが、どうも採れた血小板の量が少なかったようで、少々追加の献血をしました。
すると、終わったらちょっと指先がしびれ、血圧が20近く下がっていたので「ちょっとやばいかな」と思ったのでロビーでジュース2杯ほど飲んで帰りました。ちなみに、僕の住んでいる地域の血液センターでは自動販売機のジュースは飲み放題です。

さらに、帰りの際にはちょっとした景品を頂きました。僕が選んだのは歯磨きセットですが、他にもハンドソープやドリップタイプの珈琲など6種類程度の選択肢があります。

気分的にちょっと血がきれいになったような気がしたりして...

さらに4月30日まではキャンペーンをやっていて、以下のサイトからオリジナルスクリーンセーバーをダウンロードする専用アクセスコードももらえます...Macでは動かないですけど。

ひろげよう!いっしょに献血。

と多少時間はかかりますが、それなりにご利益があって、さらに誰かのためになるというPricelessな特典付きとあっては、献血をしないのは勿体無い。

さぁ、あなたもどうですか?
献血してみませんか?

ちなみに、献血依頼の電話の後に職場で交わされた会話は...
Aさん「どうしてきむら君がご指名されたんだろうね?」
Bさん「血が緑色してるんじゃないの?」
僕「あぁ、人間じゃないってばれてしまいましたか...」
Aさん「あれ、履歴書にそんなことは書いてなかったよね」
Bさん「そのまま拘束されて学会とかで見せ物にされるんじゃないの」
...僕は何ですか?

| | コメント (3) | トラックバック (0)

2008/04/16

Note of FC6 on FMV-6000CL

Fedora Core 6をFMV-6000CLにインストールする際のメモです。
FMV-6000CLは通常通りにインストールはできますが、インストール後Grubでカーネルを選択して起動プロセスに入ると正常に起動しません。
これを回避するためには、Grubの編集画面を使って起動オプションを設定する必要があります。

そこで、カーネルの起動オプションに

edd=off

を追加して起動をさせるときちんと起動するようになります。
とても古い情報なので、あまり人の役には立たないかもしれませんが、きっとメモしておくと僕のためになると思い、記事にしておきます。

以上!

| | コメント (0) | トラックバック (0)

2008/04/13

Mac版Inkscape日本語化

Inkscapeは標準で日本語をサポートしていますが、日本語版Macにインストールした直後はUIが英語ですので、これを日本語表示にする手順をまとめてみます。

まず、ターミナルを起動し、以下のコマンドを入力。

$ sudo vi /Applications/Inkscape.app/Contents/Resources/bin/inkscape

下にスクロールさせながら、下記の部分を探します。

# TODO: Have to add ".UTF-8" to the LANG since ommiting causes Inkscape
#       to crash on startup in locale_from_utf8().
export LANG="`grep \"\`defaults read .GlobalPreferences AppleCollationOrder \
       2>&1\`_\" /usr/share/locale/locale.alias | tail -n1 | sed 's/\./ /' | \
       awk '{print $2}'`.UTF-8"

見つかったら、以下のように修正します。

#export LANG="`grep \"\`defaults read .GlobalPreferences AppleCollationOrder \
#       2>&1\`_\" /usr/share/locale/locale.alias | tail -n1 | sed 's/\./ /' | \
#       awk '{print $2}'`.UTF-8"
export LANG="ja_JP.UTF-8"

もしくは、こっちがもっとスマートかも...

export LANG="`defaults read .GlobalPreferences AppleLocale`.UTF-8"

もしInkscapeが起動していたら、再起動してみてください。UIが日本語になっていませんか?

別にUIが日本語である必要はそれほど無いと思われますが、せっかく紹介しているのに「日本語じゃないから」なんて理由で使われなかったら悲しいので、備忘までにメモしてみました。
誰かの何かの助けになれば幸いです。

補足
あまり重要じゃないと書いたけど、日本語化したら日本語のフォント名がきちんと日本語で表示されるようになりました。多少作業効率がアップしますね。やっておいた方が良いかもしれません。

補足2
個人用にインストールしたフォントを認識させる方法をコメントで頂いているので、こちらに転記します。

$ sudo vi /Applications/Inkscape.app/Contents/Resources/etc/fonts/fonts.conf

で、以下の通りに修正。

<!-- Font directory list -->

        <dir>/usr/share/fonts</dir>
        <dir>/usr/X11R6/lib/X11/fonts</dir>
        <dir>/Library/Fonts</dir>
        <dir>/Network/Library/Fonts</dir>
        <dir>/System/Library/Fonts</dir>
        <dir>/opt/local/share/fonts</dir>
        <dir>~/.fonts</dir>
        <dir>~/Library/Fonts</dir>

追伸
変更後のファイルをコピーするスクリプトを作りました。興味のある方はこちらもどうぞ

追追伸
上記修正を加えたインストールイメージを作成しました。興味のある方はこちらの記事もご覧になってみて下さい。

| | コメント (22) | トラックバック (0)

2008/04/12

Inkscape 0.46 Released!

20080412
ベクター系のグラフィックソフトで、僕が使っているオープンソースのソフトウェアがバージョンアップしていました。
今回のバージョンアップの一番の目玉はPDFのサポート(...とサイトに書いてありました)。

Inkscape 自由に描く。

このソフトウェアはIllustratorの代替として職場のWebページを作るのに使い始めたのがきっかけですが、使ってみるとそれなりに便利なので、重宝しています。また、我が家はWindows、Mac、Linuxの混在環境なので、同じアプリケーションがどのPCでも動くというのはとても助かります。
しかも、このアプリケーションはデータがSVG(Scalable Vector Graphics)フォーマットなので、煩雑な反復作業はテキストエディタでコピーするだけでできたりして、意外と便利だったりします。

ということで、早速職場のWindowsにInkscape 0.46をインストール。

試用した感じはとても良いです。0.45ではダイアログ系のWindowを表示しても、編集用Windowを操作するとその後ろにWindowが隠れて非常に使い勝手が悪かったのですが、この問題が0.46で解決。
また、いくつかのWindowは編集用Windowと統合されて、とても使いやすくなっています。

MacではIllustratorを使ってきていましたが、OSをLeopardにしてからはずっとInkscapeを使っていて、Illustratorはファイルの読み込みくらいにしか使わなくなっています。
妻のサイトにある地図などもこのInkscapeで描いたものです。

しかし、このInkscape 0.46のMac版ではフォントに不具合があり、個人用にインストールした(~/Library/Fontsに入っている)フォントが認識されません。以下のサイトでX11をバージョンアップしてから使ってと書いてあったので、これもインストールしてみましたが、だめでした。

XQuartz

そこで、個人用のフォントを全部/Library/Fonts以下に入れてしまえば良いかなと思って実行。ちょっと強引な感じがして嫌な気もしますが、それはそれ、どうせこのMacは僕しか使わないのでO.K.とする。

PDFの読み込みも試してみたら、とても良い感じ。ただ、PDFのまま編集ができるわけではなく、ラスタライズして読み込むようですね。

また、Inkscapeを使ってWeb素材を作る方法などを紹介してみるのも良いかな。

| | コメント (4) | トラックバック (1)

2008/04/10

iPhotoの弱点をRubyで補う[3]

ちょっと間があいてしまいましたが、この記事の最終回です。
ruby-exif.rbと同じフォルダにchdate.rbというファイルを作って以下のコードを書きます。

***** chdate.rb *****
require 'parsedate'
require 'ruby-exif'
 
def apply_datetime(filename)
  
  exif = Exif.new(filename)
  
  tmp = exif.info["DateTime"].slice(/[0-9]+:[0-9]+:[0-9]+/).gsub(/:/,"-") +
    exif.info["DateTime"].slice(/ [0-9][0-9]:[0-9]+:[0-9]+/)
  
  ary = ParseDate::parsedate(tmp)
  t = Time::local(*ary[0..-3])
  File::utime(t, t, filename)
  
  puts "#{filename} : #{t.to_s}"
  
end
 
dir=ARGV.shift
p "start"
Dir::glob("#{dir}").each {|f|
  apply_datetime(f)
}
p "end"

ここでは、apply_datetimeプロシージャを定義して、これにファイル名を渡すと日付を変更する処理をさせます。

そして実行する際、引数に処理したいフォルダとファイルをワイルドカードを使って入力するとファイルの作成・更新日時が変更されます。

実行例は下記のコマンドとなります。

$ ruby chdate.rb ~/Pictures/*.JPG

変更されたファイルが画面に表示されて、"end"と出れば処理終了です。

以上、つたないプログラムではありますが、もし「こうすればもっと良いよ」とか「Ruby的にはこういう書き方になるよ」などご指摘等ありましたら、ぜひコメントお願いいたします。

| | コメント (0) | トラックバック (1)

2008/04/07

iPhotoの弱点をRubyで補う[2]

前回の記事でEXIFから日付のデータを取得する方法がわかりました。

でも、取得した日付はちょっと変則的な文字列の情報なので、これを処理に使えるTimeオブジェクトに変換してみます。
取得する日付は

YYYY:MM:DD hh:mm:ss\000

という形式なので、日付のデータは以下の方法で取得します。

exif.info["DateTime"].slice(/[0-9]+:[0-9]+:[0-9]+/).gsub(/:/,"-")

次に、時刻のデータは以下の方法で取得します。

exif.info["DateTime"].slice(/ [0-9][0-9]:[0-9]+:[0-9]+/)

これを組み合わせると、

***** sample3.rb *****
require 'ruby-exif'
 
filename = ARGV.shift
 
exif = Exif.new(filename)
dt = exif.info["DateTime"]
p dt.slice(/[0-9]+:[0-9]+:[0-9]+/).gsub(/:/,"-") +
    dt.slice(/ [0-9][0-9]:[0-9]+:[0-9]+/)

試しに実行してみると

$ ruby sample3.rb RIMG0011.JPG 
"2007-05-29 03:24:04"

これをTimeオブジェクトに変換するにはParsedateクラスを使用します。

***** sample4.rb *****
require 'parsedate'
require 'ruby-exif'
 
filename = ARGV.shift
 
exif = Exif.new(filename)
dt = exif.info["DateTime"]
tmp = dt.slice(/[0-9]+:[0-9]+:[0-9]+/).gsub(/:/,"-") +
    dt.slice(/ [0-9][0-9]:[0-9]+:[0-9]+/)

ary = ParseDate::parsedate(tmp)
t = Time::local(*ary[0..-3])
p t.to_s

これを実行してみた結果は以下となります。

$ ruby sample4.rb RIMG0011.JPG 
"Tue May 29 03:24:04 +0900 2007"

おぉ、できてます、できてます。
では、ファイルの日付を変更するFileクラスのutimeを使ってスクリプトを作成してみます。

***** sample5.rb *****
require 'parsedate'
require 'ruby-exif'
 
filename = ARGV.shift
 
exif = Exif.new(filename)
dt = exif.info["DateTime"]
tmp = dt.slice(/[0-9]+:[0-9]+:[0-9]+/).gsub(/:/,"-") +
    dt.slice(/ [0-9][0-9]:[0-9]+:[0-9]+/)

ary = ParseDate::parsedate(tmp)
t = Time::local(*ary[0..-3])
File::utime(t, t, filename)

早速、実行してみます。

$ ls -l
total 3328
-rw-r--r--  1 ****  staff  1682244  3 29  2008 RIMG0011.JPG
-rw-rw-rw-@ 1 ****  staff     5758  1  7  2005 ruby-exif.rb
-rw-r--r--@ 1 ****  staff      404  4  7 22:32 sample5.rb
$ ruby sample5.rb RIMG0011.JPG
$ ls -l
total 3328
-rw-r--r--  1 ****  staff  1682244  5 29  2007 RIMG0011.JPG
-rw-rw-rw-@ 1 ****  staff     5758  1  7  2005 ruby-exif.rb
-rw-r--r--@ 1 ****  staff      404  4  7 22:32 sample5.rb

できた、できた!
では、この二つのスクリプトを写真データのたくさん入ったフォルダにコピーして、ファイルの日付を変更していきます。

$ ruby sample5.rb RIMG0011.JPG
$ ruby sample5.rb RIMG0012.JPG
$ ruby sample5.rb RIMG0013.JPG
$ ruby sample5.rb RIMG0014.JPG
$ ruby sample5.rb RIMG0015.JPG
$ ruby sample5.rb RIMG0016.JPG
$ ruby sample5.rb RIMG0017.JPG
$ ruby sample5.rb RIMG0018.JPG
...

...いやいや、こんなことしませんよ。
ちょっと長くなってしまったので、今回はここまで。次回、最終回でフォルダの中にあるファイルを一度に処理するスクリプトを作ってみます。

| | コメント (0) | トラックバック (0)

2008/04/06

iPhotoの弱点をRubyで補う[1]

別にiPhotoに限ったことではありませんが、PTP Class仕様のデジカメから画像を取り込むとファイルの日付は取り込んだ日時になり、撮影した日付にはならないようです。Ubuntuで取り込んでみてもやっぱり撮影した日がファイルの日付にはなりませんでした。

僕はデジカメで撮った写真をiPhotoで取り込んでいるのですが、画像データ自体は昔から年月別のフォルダを作ってファイルサーバ上で管理しています。

そのため、分類する際にファイルの日付が取り込んだ日付けになっているととても不便です。

iLife'05ではきちんと撮影した日になっていたような気がするのですが、iLife'06では上記のように取り込んだ日になっていますので、これらの画像を一つ一つ確認しながらフォルダに分類するのはちょっと大変です。

そこで、Rubyを使ってこれを解決しようと思います。

まず、知らなくてはならないことは以下の2点かな。
・画像データから撮影日を取得する方法
・ファイルの日付を変更する方法

画像データには撮影した日付ばかりではなく、カメラのメーカーや機種等多くの情報を保存するEXIFという規格があるらしい。ということは、きっとこの情報を操作するライブラリがあるはず...早速Google先生に聞いてみたところ、以下のサイトが見つかりました。

組みたり。ぬ

早速、ruby-exif.rbをダウンロードして動作確認をしてみます。

***** sample1.rb *****
require 'ruby-exif'
 
filename = ARGV.shift
 
exif = Exif.new(filename)
p exif.app1_size
  
exif.info.each {|itm|
  print "#{itm}\n"
}

実行結果はこんな感じ。

$ ruby sample1.rb RIMG0011.JPG 
48758
Copyright(C) by Caplio R7 User
ImageDescriptionExif_JPEG_PICTURE
ModelCaplio R7
XResolution72/1
MakerRICOH
ResolutionUnit2
ExifIFDPointer312
YCbCrPositioning2
DateTime2007:05:29 03:24:04
YResolution72/1
Orientation1

なんだかうまく行きそう。
日付の取得に特化するなら以下のような書き方になります。

***** sample2.rb *****
require 'ruby-exif'
 
filename = ARGV.shift
 
exif = Exif.new(filename)
p exif.info["DateTime"]

実行してみると、以下のような結果が帰ってきました。

$ ruby sample1.rb RIMG0011.JPG 
"2007:05:29 03:24:04\000"

次回は取得した日付をファイルの作成日(更新日)として利用できるように工夫してみようと思います。

| | コメント (2) | トラックバック (0)

2008/04/05

Mighty Mouseの分解

20080305最近、ホイールの動きがおかしいのでAppleのサイトを参考に掃除してみましたが、全然改善されません。

ということで、分解してしまいました。

いろいろなサイトで方法が公開されているので、それに倣ってみればいとも簡単に分解成功。でも、分解中にばきばき音がするし、なんだか割れ目も入るしで、スマートではないですね。

分解してみると、中は埃だらけ...これは問題ですね。
んでもって、清掃したら無事ホイールが使用できるようになりました!パチパチ...んっ、でもなんだか挙動がおかしい...あぁっ、右クリックができなくなってる?!

色々と見てみるけど、こればっかりはうまい解決方法がみつからない。
時々うまく動作したりして、まただめになったりして...挫折。
新しいのを買うか...それともUbuntuにつながっているIntuos2をマウス代わりに使うか...うーん、このメンテナンス性の悪さについてはAppleを賞賛できないなぁ...

でもまぁ、4方向ホイール付きの一つボタンマウスだと思えば、使えなくもないかも。
ということでほとんどジャンク品ですが、もし欲しいという人がいれば先着1名様にプレゼントさせていただきたいと思います。できれば近場が良いなと思いますが、遠くても送料等は交渉次第ということで、連絡をお待ちしております。

| | コメント (0) | トラックバック (0)

2008/04/04

第23回オープンソースサロン

1月以来、久しぶりのオープンソースサロン参加になりました。
今回のテーマは

「インテル40年の歩みと、今後の挑戦」

ということで、インテルの歴史や技術、最新の動向や将来の展望まで様々なことを聞かせていただきました。詳細は松江SNSで解説していますので、こちらを参照。

インテルと言えば超巨大なチップメーカで、その製品を買うことはあってもそれ以外では自分と全然関わりの無いことだと思っていたけど、今回のお話を聞いてなんだか少し親近感を覚えました(それは勘違い?)。

色々と技術的な話はさておき、重要なのはその姿勢です。
・常に先を見て研究。
・それに注ぎ込まれる莫大な資産。
・常に他社の2世代先を目指すという目標。

...No.1になる理由がよくわかりました。

向上することを阻害しない。

みんなそれを聞いて当たり前だと感じるでしょうが、実際にそれを実践できている組織は少ないでしょう。
それができている数少ない大企業の一つなのかなと感じました。

サロンの後はいつもの懇親会。
始まりがちょっと遅れたりもしましたが、楽しいひとときを過ごさせていただきました。途中からNaClのメンバーも参加して終始笑いの絶えない懇親会に、Intelの方もしきりにこの集まりを賞賛されていました。本当、全然畑の違う僕が参加していても温かく迎えてくれて、本当にすごい集まりだなと毎回思います。

そういえば、またいくつか名刺交換をさせて頂いた中に前の職場ととても関係の深い方がおられました。世間は狭いなと改めて痛感させられます。

解散直前になぜか空手の型を披露するようなことになってしまいましたが、スーツ姿に酔っぱらってするものではないなと...「言われたからって何でもするな」と反省するばかりでした。

| | コメント (0) | トラックバック (0)

« 2008年3月 | トップページ | 2008年5月 »