
Processingプロジェクトにおいて次期バージョン3.0の開発が始まりました。Make:でも紹介されています。
■Processing 3.0はコード補完やデバッガを標準装備
3.0の目玉機能は、エディタの大幅な改良やデバッカの追加のようです。かなり、Eclipseを意識していますね。PDEでは、本格的な開発ができず、Eclipseに流れていたからでしょうか?エディタ改善の目玉がコード補完機能。従来、別モジュールPDEXをInstallしなければ使えなかった、コード補完機能が標準で使えるようになった。と、Processingのサイトにも、Makeのサイトにも書いてありましたが、
私のMacBook環境では、動きません!
なぜだ?
その気持ちが、Processingそのものへの理解を深め、Processing開発プロジェクトのスタイルへの理解を深めてくれました。
現在、ProcessingのリポジトリはGitHubにあります。自分のMacBookにGitHub Clientをインストールし、git Clone。GitHub上のProcessing3.0開発のためのソーシャルコミュニティーから日々、改修、改善のコメントが多数届きます。自分のMacBookにEclipse+Egitをインストールし、Processingのソースをさらってみましたが、どこで何かおきているのか、皆目見当がつきませんでした。
そういうなか、GitHUb上にこの障害が公開されていることをGoogle検索で発見しました。
command-space on mac is shortcut for spotlight · Issue #2699 · processing/processing · GitHub
私のMacBookの問題でなく、OSX環境共通の問題でした。GitHubのコミュニティでは、原因究明、改善、結果確認、本線に搭載。と、書き込みが流れます。まるで、Twitterの書き込みを読んでいるようです。ソーシャルコミュニティ上でのオープンソースの改良というのは、こういう風にすすんでいくんですね。よくわかりました。
結局、TextArea.javaに改善が入っていったようです。
自分のMacBookの中のローカルリポジトリにgit pullし、変分を取り込み、再度Build。
すると今度は、Cntl+Spaceでコード補完が効くようになりました。
バンザーイ!!
他人が書いた情報を鵜呑みにして、そのままでいる輩の多いこと。
自分の目で見て、自分の手で確かめる、自分の手で改善する。
その、大切さを、改めて、痛感しました。
D’où venons-nous ?
Que sommes-nous ?
Où allons-nous ?
-
Processing3.0開発開始。。。
-
ミツバチの会議

米国コーネル大の生物学教授であるシーリー先生が、ミツバチの行動、特に、晩春から初夏にかけて、ミツバチの巣の中が過密になると、その一部が新たな女王ハチを担ぎ出し、新たな巣を求めて旅立つ行動(分蜂)について、まるまる1冊をかけて解説してくれる本。
ミツバチは、とても社会性をもった昆虫だということは前から知っていました。アリなんかもそうですよね。そのミツバチの集団が、どうやって、新しい巣を探し、ミツバチ同士が教えあい、候補地を一つに選定し、全員そろってその新居に移動するのか?集団的意思決定の問題です。
新しい巣を捜すプロセスでは、経験を積んだ働きハチが、候補地選定委員に役割を変え、探索ハチとして、候補地探しの旅にでかけ、いい場所をみつけると、有名なハチのダンスで、方向と距離を、強烈に「いいね!」アピールしまくるそうです。一つのミツバチの巣に約1万匹の働きハチがいて、そのうち300匹くらいが探索ハチになるそうです。
その「いいね!」アピールをみたハチたちは、自分でその場所に飛んでいき、自分の目で耳で新しい候補地を体験し、みずからも「いいね!」アピールをしまくるそうです。まるで、口コミが口コミをよび、バースト的に評判があがったレストランのような感じ。
全足一致で候補地を1カ所に決めると、今度は,全員で体をふるわせ、巣の中の温度を上げて、体温を上げるそうです。その時には、ハーメルンの笛吹きのように、ブイブイ鳴きまくる役割のハチがでてくるそうです。まるで、スタート前、レースカーのエンジン音がブイブイなっているF1レースのようです。
そして、新しい巣に向かって一気に飛び立つそうです。そのときも、探索バチがパイロットの役割をもち、まだ、見たこともない巣にむかって集団をガイドするそうです。
この現象、見方を変えるともっとおもしろそうです。一匹のミツバチをある種の情報処理ユニットとしてみて、分蜂というプロセスを、処理ユニットの集団が、情報を収集し、認知し、行動を決定し、実行していくと考えると、おもしろい。
1.分蜂群の感覚器官としての探索ハチ
2.感覚情報を数時間から数日で収集する探索ハチ
3.各探索ハチは巣作り候補地を独自に評価
4,候補地の評価をした探索ハチが、さらに他の探索ハチを招集
5.探索ハチは時間と共にダンスによる反応を弱める
どうも、このやりかた、名前が付いているらしいです。
逐次確率比検定(Sequential Probability Ratio Test)として、名前が付いているらしいです。複雑系ネットワークの概念を入れて、このモデルで遊んでみるのもおもしろそうです。
メイン州アップルドア島や著者の裏庭で、ミツバチの行動を一匹一匹一日じゅう観察しつづける、地味なフィールドワークの話とともに、研究室での論理展開もおもしろく、自然科学の研究の醍醐味を詳細に教えてくれるこの本は、すてきでした。
著者が最後の章でまとめて書いた、分蜂群の知恵はキチンと心に刻み、人間界での社会生活にも応用していきたいと思います。
<<分蜂群の知恵>>
1.意思決定集団は、利害が一致し、互いに経緯を抱く個人で構成する
2.リーダーが集団の考えに影響を及ぼす影響を最小化する
3.多様な解答を探る
4.集団の知識を議論を通じてまとめる
5.定足数反応を使って一貫性、正確性、スピードを確保する
ミツバチの会議
トーマス・シーリー著
honeybee democracy
Thomas D. Seeley -
ジャパンマスターズ2014@横浜国際プール
全国各地から5,835名の選手が参加したジャパンマスターズ2014@横浜国際プール
200メートル個人メドレー、8組5コースに出場。
記録は3分38秒75。
男子50−55歳枠の標準記録3分30秒には8秒及ばず。
自己申告タイム3分25秒には13秒及ばず。
次への課題を分析してみました。
ずばり、背泳ぎと平泳ぎが課題です。

上のグラフ、
Bu(バタフライ)
Bk(背泳ぎ)
Br(平泳ぎ)
Fr(クロール)
と四泳法が全体に占める割合を、
棒グラフで表現してみました。
課題が見えてきます。
問題の背泳ぎ。
バタフライの時には、おお、試合を制していると見えるのに、背泳ぎに切り替わると、ブレーキがかかったように、失速し、遅くなったように見えるようです。うーむ、一番練習してこなかった種目です。それだけに、のりしろが一番あるのかも知れません。ここを強化する必要大。ここが10秒速くなるだけで、標準時間突破ですからね。
そして、平泳ぎ。
これも、遅すぎますね。試合モードの平泳ぎを思い出さなければならないのかもしれません。平泳ぎ、これまで、ゆっくり、大きく泳ぐことしか、意識してきませんでした。
最後に、クロール。
とくに、キックですね。最後の要は腕よりも脚かもしれません。
最後に使っていない筋肉を使わなければ。
これで、3分30秒を切れる可能性ありと、思えてきました。

-
Be water my friend…

ブルースリーの名言
“Be water My friend.”
Empty your mind.
Be formless, shapeless.
Like water.
Now put water into your cup, it becomes the cup.
If you put it into a bottle, It becomes the bottle.
If you put it in a teapot, it becomes the teapot.
Now water can flow or it can crash.
Be water, my friend.
深い、どこまでも深い。。。。
YouTubeでごらんあれ。
Be Water My Freind -
夏の扉

昨日、自宅マンションのエントランスホールにお客さんがいらっしゃいました。
一匹の見事なアオスジアゲハでした。
一匹のアオスジアゲハが、エントランスホールの中をひらひらと舞っていました。
どういうわけかわかりませんが、エントランスに入ってしまい、出れなくなり、気が動転してパニック状態になってしまったようでした。まあ、虫に感情があるのかどうかはわかりませんが、まさにそういう状況に見えました。
脚立を取り出し、エントランスの照明スペースで動かなくなっていた、アオスジアゲハを拾い上げ救出し、玄関外の植え込みまで運んであげました。その間、アオスジアゲハが、プープーお腹から声をあげていました。
まるで、「離してくれ!」と叫んでいる音でした。植え込みのつつじにゆっくりとおいてあげたら、ようやく落ち着きを取り戻したのか、ハネをゆっくりと開いたり、閉じたりしていました。
本当に、このアオスジアゲハは感情をもっているようでした。
こんな小さな体に、感情という高度な知性がありうるのか?
ありえないとも思えますが、昨日のアオスジアゲハは確かに感情をもっていました。 -
クラゲの一生

先日、テレビで、鶴岡の加茂水族館を特集にした番組を放映していました。
加茂水族館というと,今ではクラゲで有名ですね。クラゲの専門館まで建てるくらいの盛況のようですが、そこまではかなり紆余曲折があったようです。
年々、来館者が減っていき、もう、どうしようもなくなったとき、決死の思いで開催していたサンゴ展で展示していたサンゴに一緒に入っていたクラゲを大事に育てたら、そのクラゲを見に来る客が増えたそうです。そこで、クラゲの育成を徹底的に研究し、クローン兵のようにクラゲを増産できる技術を開発し、習得し、展示スペースを拡大していったそうです。お見それしました。
確かに、江ノ島水族館でもクラゲは、Finding Nimoにでてくるクマノミにおとらず、人気でした。フワフワしていて、見ていて気持ちいいです。
でも、クラゲの一生、不思議です。一つの受精卵がプラヌラとかいう幼生になるまでは普通の生き物なんですが、その幼生が岩や海藻に付いたポリープとかいう幼生に変態すると、その幼生から、成体のクラゲが何体もできてくるんですね。加茂水族館で人工的に育成している様子を拝見すると、なんか、StarwarsのClone Trooper兵の製造工場にそっくりでした。
イヤはやなんとも。。。。
ふわふわ漂うばかりかとおもったら、けっこうな、生存戦略をおもちの御仁ですな。 -
ペナンブラ氏の24時間書店
ペナンブラ氏の24時間書店 [単行本]
ロビン・スローン (著),
島村 浩子 (翻訳)
この本、近所の図書館でかみさんが借りてきました。
サンフランシスコの場末にひっそりとたたずんでいる静かな書店。
ペナンブラ老人が一人で店番をし、おそろしく高い天井と、
恐ろしくくらい奥行きをもった書店。
24時間営業しているけど、ほとんど客が来ない書店。
そんな書店の従業員募集広告をたまたま見ただけで、
従業員になってしまった主人公。
この本
A Winner of the Alex Award
A finalist for the Los Angeles Times Book Prize for First Fiction,
named a Best Book of the Year by NPR, Los Angeles Times,
and San Francisco Chronicle
らしいのですが、、、
さて、こんな物語の主人公に、
これからなにかおこるのか、
なにも起きないのではないか?
どこにも、クライマックスがないのでは?
とおもったのですが、
読み進めるにしたがって、謎が深まっていき、
その謎を解明していく過程が、
おもしろく、おもしろく、
この小説の世界にひきこまれていきました。
正味2日で読破です。
登場人物達は、すべて絶妙なバランスで配置され、
まるで、将棋の駒のようです。
Web,Google,Internet-Ads,Hadoop,可視化などなど
ITおたくネタと、歴史、地下組織など、胡散臭さを
上手に組み合わせ、独自の世界を創りだしてくれました。
やってくれます。
読破後、気持ちのいい達成感がありました。
読後の感覚が村上春樹に近いですかね。
著者のロビン・スローンのサイトの内容もおもしろそうです。
■Robin Sloan a writer in Carifornia
■EPIC2014(1byRobin Sloan) -
自然はそんなにヤワではない!!

先週に入梅をむかえ、今週末には夏至に入る今日、
どうも梅雨の中休みのようです。
数日続いた雨空がきれ、今日は気持ちの良い青空が戻りました。
毎年つづけてるゴーヤのカーテンも順調です。
ご本体は、生活感ありありなのでちょっと、写真でお見せするのは、遠慮しました。この写真にとったのは、昨年うえたゴーヤから取った実にできた種からできた新しい芽。今年は、種から育てるのは無理かと思っていました。
しかし、、、
自然はそんなにヤワではない!!
しっかり、芽を出してくれました。
周回遅れで育っていますが、この芽からをしっかりそだてて、
種をとり、来年また、芽を出してみたいと思います。
街もそんなにやわでない?
今日は、近所の図書館に行ってきました。
そこでおもしろい本を見つけました。
江戸の古地図、江戸切絵図を解説した本です。
この本を読んでいると、東京ってけっこう、
江戸の地形がそのまま残っていることに気づきました。
江戸時代にタイムスリップし、江戸の街をあるく気分にひたるのも
けっこう簡単なのかもしれません。想像力しだいかも。
ちょっとGoogle検索すると、国会図書館にいいサイトがあることを発見。
■国立国会図書館デジタルコレクション(江戸切絵図)
これを片手に江戸散歩もおもしろいかもしれませんね。 -
FaceBookにアップされた画像って。。。

妹がFacebookに写真をupしていたので自分のMacに取り込んでみました。
いつ撮影したのかな?
と思い、先日作成したjavaコマンドで画像のメタ情報を読み込んでみました。
すると、、、、
な、ない!!!
画像ファイルにメタ情報がついていないのです。
そんなバカな!
と、おもい、すべてのメタ情報をダンプしてみました。
すると、ほとんどメタ情報がついていないのです。
どういうこと?
うーむ?
と、いうことは、FaceBookはアップロードされた画像をそのまま掲載しているのではなく、いらないと判断したメタ情報を削除しているということですよね。
ということは、FaceBookが必要と判断したメタ情報はFaceBookが自身で格納しているかもしれないということですよね。書き換えることもできますよね。
少なくとも技術的には。
■FaceBookの利用規約
■Facebookが受け取る情報の用途
を確認してみました怪しいです。
FaceBook自身がこういうメタ情報を使っていますね。
神様にでもなったつもりなのか?
怖くなってきました。。。。 -
JPEGメタ情報を取得したい!そんな時どうする?(Java編)

Perlで書いたexif読み取りアプリ、個人的には結構役に立っています。
そこで、このExif読み込みアプリ,もう少し極めてみようとおもいはじめました。
GGプログラマーとして、exif取得アプリを、なるべく近い外部仕様という条件で、いろんな言語で作る修行に挑戦してみます。Java,Scalr,C++,pythonなどなど。
この挑戦によって、自分の腕を維持することは無論、各言語自体の特徴を把握する比較言語学的なアプローチや、各言語を取り巻くエコシステムを比較文化論的に見渡ことができる気がしてきています。
そうそう、あとから、プロセスを検証できるように、実験ノートもちゃんと書きましよう。
まずは、java編。
Javaはprocessingでもお世話になっているので、私のMacBookの中ではPerlの次に慣れている言語と開発環境ですが、かなり苦戦.時間を使いましたが、ようやくできました。
できてしまえばなかなかいい使い心地です。
Javaの方がPerlより小回りがききますね。欲しいデータを欲しい形式でとりだすのはJavaのほうが楽。
ただ,Javaで書くと行数が増える気がします。そんなたいした処理じゃないのに。
javaの場合、PerlがCPANとして用意してくれたライブラリ相当のツールはいろんなところにあるようです。Apache projectだったり。エコシステムがしっかりしています。
ソースは、こんな感じ。import com.drew.imaging.ImageMetadataReader; import com.drew.imaging.ImageProcessingException; import com.drew.metadata.exif.ExifIFD0Descriptor; import com.drew.metadata.exif.ExifIFD0Directory; import com.drew.metadata.exif.ExifSubIFDDescriptor; import com.drew.metadata.exif.ExifSubIFDDirectory; import com.drew.metadata.xmp.XmpDescriptor; import com.drew.metadata.xmp.XmpDirectory; import com.drew.metadata.Metadata; import com.drew.metadata.Directory; import java.io.File; import java.io.IOException; public class Read_Min_Tag { public Read_Min_Tag(String fileName) { File file = new File(fileName); try { Metadata metadata = ImageMetadataReader.readMetadata(file); // obtain a specific directory Directory directory = metadata.getDirectory(ExifSubIFDDirectory.class); // create a descriptor ExifSubIFDDescriptor descriptor = new ExifSubIFDDescriptor((ExifSubIFDDirectory) directory); // obtain a specific directory Directory directory2= metadata.getDirectory(ExifIFD0Directory.class); ExifIFD0Descriptor descriptor2 = new ExifIFD0Descriptor((ExifIFD0Directory) directory2); // obtain a specific directory Directory directory3 = metadata.getDirectory(XmpDirectory.class); XmpDescriptor descriptor3 = new XmpDescriptor((XmpDirectory) directory3); //カメラ機種:Model String Model = descriptor2.getDescription(ExifIFD0Directory.TAG_MODEL); //レンズ種別:Lens String Lens= descriptor3.getDescription(XmpDirectory.TAG_LENS); //ISO:ISO String ISO= descriptor.getDescription(ExifSubIFDDirectory.TAG_ISO_EQUIVALENT); //焦点距離:FocalLength String FocalLength = descriptor.getFocalLengthDescription(); //絞り:FNumber String FNumber = descriptor.getFNumberDescription(); //シャッタースピード:ShutterSpeed String ShutterSpeed = descriptor.getShutterSpeedDescription(); System.out.println("Model---->"+Model); System.out.println("Lens---->"+Lens); System.out.println("ISO---->"+ISO); System.out.println("FocalLength---->"+FocalLength); System.out.println("FNumber---->"+FNumber); System.out.println("ShutterSpeed---->"+ShutterSpeed); } catch (ImageProcessingException e) { System.err.println("error 1a: " + e); } catch (IOException e) { System.err.println("error 1b: " + e); } } public static void main(String[] args) throws IOException{ if(args.length == 1){ new Read_Min_Tag(args[0]); } else { System.err.println("usage: java Read_Min_Tag filename"); } } }出力結果は、こんな感じ。
Model---->NIKON D5100 Lens---->18.0-55.0 mm f/3.5-5.6 ISO---->100 FocalLength---->18.0 mm FNumber---->F8 ShutterSpeed---->1/159 sec
Perl版にそっくりにできます。
おお!■実験ノート■ 5/10:apache commons imagesを発見。インタフエースが汚そう。 5/10:保守が止まっているみたい。なので不採用。 5/10:metadata-extractorを発見。Drew Noakes氏がメンテ。 5/10:他にも面白そうな画像処理系ソフトを公開しているようす。 5/10:metadata-extractorはgoogle-code上でメンテが続いている。 5/10:インタフェースも軽そうなので、まず採用。 5/11:eclipseのプロジェクト環境整備に苦戦。 5/11:落としてきたbuild.xmlではant-buildが失敗.adobe-xmpのjarが必要 5/11:javacのメッセージが文字化け。エンコードを正す。 5/12:プロジェクトを作成する。jarをbuild pathにくわえる。 5/12:buil.xmlを読み始める。手修正。参照しているjarのフォルダー名が不一致 5/12:ecllipseは所詮、開発支援レベル。でも、それでいい。 5/12:junitが古い。最新をプロジェクトのライブラリにimport。 5/13:junitが失敗。成功5シナリオ、失敗1シナリオ。 5/14:junit成功。build.xmlに記述されているテストセットのパス定義がいい加減。 5/14:javaコマンドでの実行に失敗。クラスパス定義。 5/14:classファイルにはパスまで、jarファイルにはパス+ファイル名を記述。 5/15:javaコマンド成功。