メンテナンスリリース PhotoXP 1.7.5

約1年ぶりの1.7系であるPhotoXP 1.7.5をリリースしました。
主な変更点は以下の通り。

  • オリンパスの新しいMakerNote(E-410以降)に対応。
  • レンズデータの追加。
  • Ruby 1.9.0でのエラーを修正。

修正といっても、オリンパスのMakerNote形式が大きく変わっていたので、その対応と1年分のレンズデータの追加といった程度なので、バージョンアップの方はlib/exifcodec以下を上書きするだけでOKでしょう。

あと、ruby 1.9.0になってString#[](引数が数値1つの場合)の戻り値が文字コードから長さ1の文字列に変わってるようで、[0,1]のように書くことで1.8と1.9で同じ動作を期待できるのですが、逆に1.9で文字コードを取得したい場合はどうすればいいのだろう。。。

# ruby-1.8.6
p "a"[0] => 97
p "a"[0,1] => "a"
# ruby-1.9.0
p "a"[0] => "a"
p "a"[0,1] => "a"

PhotoXPのダウンロード

現在の最新バージョンは1.7.5(2007-12-31)です。

このプログラムはフリーソフトウェアであり、無保証です。
GNU GPLに基づいてこのプログラムを使用・変更・再配付することが出来ます。

<!–
PhotoXPに関する既知のバグについては、こちらを参照してください。
–>


「デジカメエキスパート検定」受験料無料キャンペーン中

digicam_banner0707.gif
掲示板で知ったのですが、デジタルカメラマガジンがやっているデジカメエキスパート検定1級~3級まで全ての受験料が年内はキャンペーン中で無料だそうです。(公認の証書は有料)

僕も昔3級を受けてみた事があるのですが、これを機会に1級に挑戦してみる予定。


部屋の温度・湿度に続いてアメダスのデータも活用

先日導入した温度・湿度計のデータに加えて、気象庁のサイトからアメダスのデータを取得するスクリプトamedas.rbを作ってみました。
出力はそのままrrdtool updateに食わせる形式になってます。
グラフはまだデータが溜まってないので、またのちほど。
次回は温湿度系ウィジェット(Vista/Yahoo!/iGoogle?)あたりに挑戦してみる予定です。

#! /usr/local/bin/ruby -Ks
# amedas.rb

require 'rubygems'
require 'hpricot'
require 'open-uri'

AMEDAS_URL = 'http://www.jma.go.jp/jp/amedas_h/today-44132.html' # Tokyo

def get_current_data(url)
doc = Hpricot(open(url))
(doc/'table#tbl_list').each do |table|
hour = temperature = humidity = nil
(table/'tr').each do |tr|
tda = tr/'td'
if /^\d+\.\d+$/ =~ tda[1].inner_text
hour = tda[0].inner_text.to_i
temperature = tda[1].inner_text.to_f
humidity = tda[7].inner_text.to_i
end
end
if hour
return [hour, temperature, humidity]
end
end
if /today/ =~ url
return get_current_data(url.gsub('today','yesterday'))
end
return nil
end

d = get_current_data(AMEDAS_URL)
if d
puts "N:#{d[1]}:#{d[2]}"
end

MT4にしてから新着記事がmixiで更新されない件

MovableType 4.0に移行した際にフィードの規格がAtom 0.3からAtom 1.0に変わったため、mixiの外部ブログ設定で認識されなくなっていたらしい。

今回はあえて、MT2の頃から使ってるRSS 1.0のテンプレートをコピーしてきて対応。

やり方は、MT4の管理画面から

  • メニューの「デザイン」→「テンプレート」を選択。
  • 「インデックステンプレートを作成」をクリック。
  • テンプレート名は「RSS 1.0」、テンプレートの種類は「RSS(rss)」、出力ファイル名は「index.rdf」内容は以下の通り。
<?xml version="1.0" encoding="<$MTPublishCharset$>"?>

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:admin="http://webns.net/mvcb/"
xmlns:cc="http://web.resource.org/cc/"
xmlns="http://purl.org/rss/1.0/">

<channel rdf:about="<$MTBlogURL$>">
<title><$MTBlogName encode_xml="1"$></title>
<link><$MTBlogURL$></link>
<description><$MTBlogDescription encode_xml="1"$></description>
<dc:language>ja</dc:language>
<dc:creator></dc:creator>
<dc:date><MTEntries lastn="1"><$MTEntryDate format="%Y-%m-%dT%H:%M:%S" language="en"$><$MTBlogTimezone$></MTEntries></dc:date>
<admin:generatorAgent rdf:resource="http://www.movabletype.org/?v=<$MTVersion$>" />
<MTBlogIfCCLicense>
<cc:license rdf:resource="<$MTBlogCCLicenseURL$>" />
</MTBlogIfCCLicense>

<items>
<rdf:Seq><MTEntries lastn="15">
<rdf:li rdf:resource="<$MTEntryPermalink encode_xml="1"$>" />
</MTEntries></rdf:Seq>
</items>

</channel>

<MTEntries lastn="15">
<item rdf:about="<$MTEntryPermalink encode_xml="1"$>">
<title><$MTEntryTitle encode_xml="1"$></title>
<link><$MTEntryPermalink encode_xml="1"$></link>
<description><$MTEntryExcerpt encode_xml="1"$></description>
<dc:subject><$MTEntryCategory encode_xml="1"$></dc:subject>
<dc:creator><$MTEntryAuthor encode_xml="1"$></dc:creator>
<dc:date><$MTEntryDate format="%Y-%m-%dT%H:%M:%S" language="en"$><$MTBlogTimezone$></dc:date>
</item>
</MTEntries>

</rdf:RDF>

  • 保存したら、「テンプレートモジュール」の「ヘッダー」を開いて編集、既存のRSSやAtomの行の前に以下の1行を追加。

    <link rel="alternate" type="application/rss+xml" title="RSS1.0" href="<$MTLink template="rss 1.0"$>" />

再構築したら完了。


乾燥の気になる季節、部屋に湿度計を導入

USBRH
湿度計といいますか、湿度センサーですね。はい。

どうも、最近風邪をひくと長引く傾向にあったんですが、今年になって耳鼻咽喉科で見てもらった所、風邪は治ってもノドを痛めてるんですよと言われ、なるほど納得。 どうりて咳だけ残るわけだ・・・

それ以来、喉をいたわり部屋の湿度にも気を使っちゃったりしてるわけですが、実際のところ普段の部屋の湿度がどれくらいで、どの程度乾燥すると調子が悪くなるのか、一応湿度計を置いてはいるものの、いまひとつ良く分からない・・・
というわけで、普段の部屋の温度と湿度を継続的に計測してみようと思い立ったというわけです。(計測重要!例: WiiFit)

ちなみに、このUSB温度・湿度計USBRHはストロベリーリナックスというサイトで¥3,980で販売されています。
付属ソフトはWindows用のみなのですが、すでにUNIX系OSでデータを取得するプログラムを開発して公開されている方が居ました。

うちで24時間稼動してるマシンはLinuxサーバのみなので、今回はUSBRH driver for Linuxを使ってみる事にします。
まず、デバイスドライバのコンパイルに必要なkernel-develパッケージをインストールします。(うちのFedora Core 6の例)
また、USB機器の一覧を表示するlsusb等が使えるようにusbutilsパッケージも入れておきます。

$ sudo yum install usbutils
$ sudo yum install kernel-devel

その後、USBRH driver for Linuxのページの説明通りデバイスドライバをインストールし、USBにセンサーモジュールを接続すれば

$ cat /proc/usbrh/0/status
t:24.22 h:51.20

とする事で温度と湿度が取得できるようになります。

ここまで出来たら、次はグラフ化。
データの記録とグラフ化には、ネットワーク機器やサーバ監視の定番、RRDToolを使ってみます。

$ sudo yum install rrdtool

今回は5分(300秒)おきにデータ取得、600秒データが取得できないとエラー、300秒おきの平均値を1200個(100時間)、300秒*12=1時間おきの最小値・最大値・平均値を30000個(3年半くらい?)としてデータファイルを作成。

$ rrdtool create /var/www/html/usbrh.rrd \
--step 300 \
DS:temperature:GAUGE:600:-10:90 \
DS:humidity:GAUGE:600:0:100 \
RRA:AVERAGE:0.5:1:1200 \
RRA:MIN:0.5:12:30000 \
RRA:MAX:0.5:12:30000 \
RRA:AVERAGE:0.5:12:30000

次に以下のようなスクリプトを作成してデータを更新、同時にグラフ生成を行います。

#! /bin/bash
# usbrh.sh
LANG=C
DIR=/var/www/html
rrdtool update $DIR/usbrh.rrd `cat /proc/usbrh/0/status | awk -F" |:" '{print "N:"$2":"$4}'`
rrdtool graph $DIR/usbrh.png \
--width 500 \
--height 120 \
--imgformat PNG \
--vertical-label "C / %RH" \
DEF:temperature=$DIR/usbrh.rrd:temperature:AVERAGE \
LINE2:temperature#FF3000:"temperature[C]" \
GPRINT:temperature:LAST:%.1lf \
DEF:humidity=$DIR/usbrh.rrd:humidity:AVERAGE \
LINE2:humidity#307FFF:"humidity[%RH]" \
GPRINT:humidity:LAST:%.1lf \
> /dev/null

最後にcrontabに以下の1行を追加し、5分おきにデータを取るよう設定。

*/5 * * * *     /home/foobar/usbrh.sh

グラフ完成。こんな感じになります。

usbrh.png
 
これで、風邪の予防(に向けたデータ収集)もばっちり?!ですね。


最近発売された一眼レフデジカメ

この秋は各社中位・上位機種の発売ラッシュでした。
PhotoXP掲示板にもさっそく新機種で撮った写真が出揃ってきたので、以下に紹介しておきます。ご参考まで。

ソニー α700 (11月9日発売)
オリンパス E-3 (11月23日発売)
ニコン D300 (11月23日発売)
ニコン D3 (11月30日発売)

EOS-1Ds Mark III (11月29日発売)については、今のところ投稿は無いようです。

続きを読む »