« 2017年6月 | トップページ | 2017年8月 »

2017年7月

2017/07/31

IOC List v7.3 Released

IOC World Bird List v7.3 が2017年7月31日にリリースされました.前回 v7.2 のリリースが2017年4月22日だったので,今回は3か月の周期をかなりよく守った形のリリースとなっています.

今回は定性的に大きな変更,特に日本のバーダーにとっては気になる変更がいくつか目立つので,これについては日を改めてご紹介したいと思います.定量的には,特に大量の変更はありません..今回収録されたのは科が 240,属が 2,297,現生種が 10,693,絶滅種が 158,亜種が 20,074 です.

前回同様,上目 (Superorder) の PALEOGNATHAE(古顎類)NEOGNATHAE(新顎類)や,系統群であるNEOAVES がリストの最上位の階層にこっそりと載っています.

今回は大量の亜種の整理統合は行われていないので,亜種の統合はそろそろ終息させたのではないかと思います.


IOC 本家の Master List を編集して,Refsort/Ruby 用の辞書ファイルを作りましたので,このブログサイトと,Microsoft One Drive 上に設けた “IOC List Archive„ にアップロードしておきます.

今回もこの辞書ファイルの正式なエンコーディングは UTF-8 です.従って,Linux 上で使う分には問題は生じませんが,Windows 上で使う際には,入力ファイルは UTF-8 でエンコードされ(辞書ファイルと入力ファイルのエンコーディングを揃える),かつ最初の行に

#!E -*- coding: UTF-8 -*-

というおまじないを書いておかないとエンコーディングの解釈がうまくいきませんのでご注意ください.

しかし,Windows 上でのデフォルトのエンコーディングである US-ASCIIWindows-31J でも手間なく使えるように,エンコーディング指定なしの汎用 US-ASCII 版もアップしておきます.これはどのようなプラットフォームであっても,そのプラットフォームのデフォルトの Locale が無条件で US-ASCII を解釈できることを利用したものです.ただし,欧文のアクセントウムラウトを含む文字は,それらを含まない最も近い文字に置き換えられています.正版はあくまで UTF-8 なので,特に人名を含む種や,種の Authority を見るときにはご注意ください.


このオリジナル英語版の辞書ファイルに続いて,和名追加版2種と,IOC Master List の Excel ファイルに和名を追加したものも同時にリリースしました.和名追加版の辞書ファイルについても,UTF-8 でエンコードしてあるものが正版ですが,Windows などでの使い勝手を考慮して Windows-31J でエンコードしたものも同時にアップしてあります.ただし人名や地名のアクセントやウムラウトなどは,それらを含まない最も近い文字に置き換えてありますのでご注意ください.

和名追加版の辞書ファイルのうち,UTF-8 でエンコードしてある ioclist_v73ju.ref は,Linux などで UTF-8 でエンコードした入力ファイルをソートするときに使うことを想定しています.Linux 上で使う際には,入力ファイルの最初の行に上記のようなエンコーディング指定を書く必要はありませんが,Windows 上で使う場合には,入力ファイルは UTF-8 でエンコードされ(辞書ファイルと入力ファイルのエンコーディングを揃える),かつ入力ファイルの最初の行に

#!E -*- coding: UTF-8 -*-

というエンコーディングを指定しておく必要があります.

逆に,Windows 上で Shift-JIS や Windows-31J でエンコードされた入力ファイルを,Windows-31J でエンコードされた辞書ファイル ioclist_v73jw.ref を用いてソートする際には,入力ファイルの冒頭にエンコーディングの指定は必要ありませんが,この辞書ファイルを Linux 上で使う場合には,入力ファイルは Windows-31J でエンコードされ(辞書ファイルと入力ファイルのエンコーディングを揃える),かつ入力ファイルの冒頭に

#!E -*- coding: Windows-31J -*-

とエンコーディングを指定しておく必要があります.要するに,どのような場合でも辞書ファイルと入力ファイルのエンコーディングを揃え,かつそれぞれの入力ファイルのエンコーディング指定を冒頭に書いておくのが無難です.

これらのファイルをダウンロードするには,従来通りこのブログの右側のコラムで “自作ソフト„ の中から個々のファイルをクリックしても良いのですが,前述のとおり,Microsoft One Drive 上に設けた IOC List 専用のフォルダからもダウンロードできます.それには,このブログ右側のコラムの最上段の “Archive„ の中の “IOC List Archive„ をクリックしてください.そうすると One Drive のフォルダに入ることができますので,あとは適当に選んでダウンロードしてください.今後は One Drive のみに集約していく予定です.


I am pleased to announce that I have posted reference files for Refsort/Ruby compiled directly from the latest IOC World Bird List v7.3. It contains 10,693 extant species, 158 extinct species and 20,074 subspecies, respectively. Please try it out, and enjoy its capability and speed.

Note that the reference file "ioclist_v73u.ref" is encoded in UTF-8 in order to retain all European accents and umlauts with complete fidelity as they are in the IOC Master List. Therefore, your input file should be encoded in UTF-8 as well, and should contain a magic comment on the top of the file such as;

#!E -*- coding: UTF-8 -*-

For those who want to use Refsort/Ruby in universal ASCII environments, I have posted another reference file "ioclist_v73a.ref" encoded in 7-bit ASCII. Note that characters with accents and umlauts have been simplified to their nearest neighbors. So please be careful in particular when you refer to authorities of species.

I have also posted two reference files (encoded in UTF-8 and Windows-31J, respectively) which include Japanese names. If you want to refer to Japanese names, please see those files. In order to sort a list properly using these reference files, you need to align the encoding of the input file to that of the reference file, and you should add a magic comment specifying the encoding of the input file in the first line of the file, such as UTF-8, US-ASCII or Windows-31J.

A master list in Excel format containing a column of Japanese names has been posted as well. This would be more convenient.

You can download an appropriate file by clicking a link listed on the right column of this page, but you can also access files and folders built in my area of Microsoft One Drive by clicking “IOC List Archive„.

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

2017/07/09

Refsort/Ruby v2.70 Released

辞書参照型ソーティングフィルターをスクリプト言語 Ruby で実装した Refsort/Ruby の開発を10年以上続けています(例えば新しいほうから順に *1 *2 *3 *4 *5 *6 *7 *8 *9 *10 *11 *12 *13 *14).もう仕様は落ち着いていて機能の追加をするつもりは(ほとんど)なく,細々とバグのメンテナンスを行っている状態です.

前回のリリースはつい先週2017年7月2日だったので立て続けの改訂ですが,Refsort/Ruby の改訂版である v2.70 をリリースしました.

今回の改訂内容は2点.一つは出力様式に関するものです.Refsort では,-e オプションや -t オプションを使用した場合,入力された文字列を内部で数値型や日付時刻型に変換し,それを基準にソーティングを行っていたのですが,問題はさらに -u オプションを加えた場合,型変換後のオブジェクトを出力するという,少々恥ずかしい不適切な仕様でした.このような使い方はあまり行わないので,これまで問題が顕在化することはありませんでした.しかし,最近 -t オプションを新たに実装し,テストを繰り返すうちにこの不具合が発覚.そのため,ロジックの深いところに手を入れて,どのようなオプションを使ったとしても,出力時には入力された文字列をそのままの形で出力するようにしました.

例えば,10, 20, 50, 50+, 100, 100+, 100++ という数値が一行に一つずつ書かれている入力を考えてみます.これを -e オプションでソートすると,全ての文字列は浮動小数点型の数値 10.0, 20.0, 50.0, 50.0, 100.0, 100.0 に変換され,比較・ソートされます.これを出力するときに,-u オプションがなければ,従来の仕様でも入力行をそのまま出力するので,10, 20, 50, 50+, 100, 100+, 100++ が出力されて問題なかったのですが,-u オプションを加えると,型変換後のデータ 10.0, 20.0, 50.0, 50.0, 100.0, 100.0 が出力されてしまっていました.

今回の改訂では,-u オプションを付けたとしても,10, 20, 50, 50+, 100, 100+, 100++ が出力されるようにしたものです.日付時刻のデータにしても同様です.

もう一つの改訂内容は,これは完全に内部的なものですが,出力処理を行っている部分に論理の冗長な部分があり,速度を阻害しているように見えたので,冗長な部分を取り除きスクリプトを最適化しました.これもアルゴリズムのかなり深いところに手を入れています.はるか昔に書いた部分なので思い出すのに一苦労しました.将来のためにソースコード中にコメントを残しておきました.

このところ,-M オプション,-e オプションと -t オプションに関係する部分の不具合を直してきましたが,これで一段落付いたと思いますので,Refsort 本体の改訂は一休みできると思います.

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

2017/07/02

ガマの穂

今日は梅雨の晴れ間の非常に蒸し暑い一日となりました.明日はさらに気温が上がるそうで,もっと不快になるのでしょう.嫌な季節がやってきました.

Summeraroundhome_jul2017_0040m

さて,一昨年,そして昨年と,このブログで近所にガマの群落があることをお伝えしましたが,今年もガマの穂の季節がやってきました.今年は6月前半まで気温が低めだったので,例年に比べると生育がやや遅れているようですが,それでもガマの群落は,穂の数を増やすなど,全体としては健全です.

Summeraroundhome_jul2017_0033m

今日の午前中は薄日が差す程度のお天気だったので,ガマのような細かく一様なテクスチャの被写体は,コントラストが付かずに大変撮りにくいものです.さらに,新しいカメラの露出制御はどうも保守的過ぎるようで,1EV程度露出が少なめです.レタッチして露出が適正になるようにしていますが,コントラストが低くて大変眠たい画になってしまいました.

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

Refsort/Ruby v2.63 Released

辞書参照型ソーティングフィルターをスクリプト言語 Ruby で実装した Refsort/Ruby の開発を10年以上続けています(例えば新しいほうから順に *1 *2 *3 *4 *5 *6 *7 *8 *9 *10 *11 *12 *13).もう仕様は落ち着いていて機能の追加をするつもりはなく,細々とバグのメンテナンスを行っている状態です.

前回のリリースはつい先週,2017年の6月25日だったのですが,今回の修正は2点.一つは,辞書を参照しないソーティングのオプションに,文字エンコーディングそのものに基づくソーティングである -a オプションと,数値の大小に基づくソーティングである -e オプションに加えて,日付時刻に基づく新たなオプション -t を設けたことです.このオプションは,日付時刻の国際標準である ISO 8601 に準拠した文字列を日付時刻と認識して,その昇順にソートするというものです.日付はグレゴリオ暦に基づいていますので,グレゴリオ暦が制定される以前の年代については少々注意が必要ですが,基本的にどのような紀元前の年代であっても,あるいははるかな未来であっても,対応は可能なはずです.

もう一つの修正は実にマイナーなもので気付くこともないと思いますが,数値の大小に基づく -e オプションにおいて,数値が整数であれば整数型のオブジェクトである Integer として扱い,その結果として,出力するときにも整数として出力し,余分な .0 付加しない洗練されたものになっています.

日付時刻の -t オプションは,私自身これまで全く使用したことがなかったので,もう一段の最適化が必要ではないかと思っていますが,とりあえずリリースしてしまいます.

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

« 2017年6月 | トップページ | 2017年8月 »