読者です 読者をやめる 読者になる 読者になる

memorandums

日々のメモです。

デジタル科学館を見学してきました

久留米にある福岡県立科学館の未来のデジタル科学館という特別展示を見てきました。

この手の展示イベントは最近、本当に多くなりました。使用機材とか使用風景とか見ていろいろと勉強したいな。。。ということで。

作品としては5つありました。

写真はありませんが、最初は歩くと床に花が綺麗に描画される作品。2つ目は大型の恐竜ロボットでボタンで操作できる展示でした。

残り3つです。最初に出てくるのが以下でした。

f:id:ke_takahashi:20170329141838j:plain

プロジェクタを2つ使ったスクリーンに、子供達が描いた絵が動き回るものです。タッチはできませんが、背景の写真の眺望がキャラクターの横方向の速い動きと相まって浮遊感が出ていました。

背景の写真を工夫することでこんな表現ができるんだ。。。と勉強になりました。

ちなみに動画を少しだけ撮ってきました。限定公開ですので。。。もし著作権など問題があれば消しますので教えてください。来場者の顔は写り込んでいないとは思います。

youtu.be

ちなみに描いた用紙は以下のような感じです。リコーって書かれていましたね。なんでだろう?自作じゃないのかな?タイアップしてるのかな?リコーが作った?

f:id:ke_takahashi:20170329144932j:plain

その横にあったのが以下ですね。今となっては古めかしい感じがしますが(偉そうにすいません、ただ直感的にそう思いました、実際に4、5年前の作品のようですのでしかたがないかと)子供達は大喜びです。

f:id:ke_takahashi:20170329142331j:plain

センサーはKinect V1ですね。たぶん。目が悪いので。。。勉強になったのはスクリーン自体は上記の展示と同様にプロジェクターを2つ横に設置したタイプなのですが、Kinectのセンシング範囲(横方向)はそこまで取れないんですね。作品の中央にKinectが設置されて、センシングできるのは全体の半分くらい。でも、うまいなと思うのは、その映像を折り返して(鏡像?)にして、本来はセンシングできていないところに表示して賑やかさを演出しています。センシング範囲にいない子も思わず動いてしまうんですね。うまい。

最後の出口付近に設置されたのが以下。

テーブルトップインタフェースで、テーブル上にかざされた手の位置を赤外線カメラで認識して、その位置に昆虫があればキャッチできるというゲーム?です。

f:id:ke_takahashi:20170329142310j:plain

赤外線ライト(LED群)はお手製っぽい感じ。その中央にカメラ(赤外線透過フィルタ)が設置されていました。その様子もパチリ。

f:id:ke_takahashi:20170329142308j:plain

さすが科学館だけあって、赤外線で手を認識できる仕組みが掲示されていました。誰も見ていませんでしたが。。。orz。

プロジェクション系の展示全般に言えると思うのですが「なんとなく楽しい」という雰囲気は物珍しさもあって来場者の多くが楽しんでいるんですね。でも、反応が遅かったり不確かだったりすると、目的がよくわからずちょっと触ってどっかに行ってしまう人も多くいました。

展示物の横に説明用の看板をおいても暗いので見えませんしね。。。難しいところです。

あと、いつも気になるのがプロジェクターの設置方法。こういうところに設置した経験がないので気になります。万が一落下して怪我でもさせたら。。。と怖くなります。安全性を確保した上で確実に固定して、なおかつ調整もしやすくする方法は。。。今回の場合は以下のような感じでした。以前、三越かどっかに展示していた方法と似たような感じですね。プロジェクターはBenQしか見たことがない。なぜだろう?コスパがいいのかな?買ったことがない。

f:id:ke_takahashi:20170329143004j:plain


5/7まで展示しているみたいです。G.W.あたりは混みそうですね。。。

2重ループの内外の入れ替えによるチューニング効果

授業資料を作るのにコードコンプリートの下巻のコードチューニングテクニック(第26章)を読んでいました。

CODE COMPLETE 第2版 下 完全なプログラミングを目指して

CODE COMPLETE 第2版 下 完全なプログラミングを目指して

富豪的プログラミングと対極ではありますが、モバイルデバイスや組み込み機器など、リソースや電力消費が話題になることがまだまだある世界ですので、知っておく価値はあるとは思います。

さて、この書籍の196ページに「26.2.6 最もビジーなループを内側に」という節がありまして、要は多重ループで処理する場合で、その繰り返し回数に大きな差がある場合に、どちらを外側、あるいは内側にするか?というチューニングになります。

チューニングが必要なコードとして以下が例として挙げられています。内側のループは5回繰り返し、そのループを100回繰り返します。for文では、それぞれカウンター変数(columnやrow)が指定された値を越えるかどうかの検査が行われ、さらに変数の値をインクリメントする命令も実行されます。ループ回数が多くなればなるほど、それら処理の回数が多くなります。

つまり、外100内5のパターンではfor文の処理が600回行われることになり、外5内100では505回に減らすことができるます。

■外100内5

for ( column = 0; column < 100; column++) {
  for ( row = 0; row < 5; row++ ) {
    sum = sum + table [ row ][ column ];
  }
}

■外5内100

for ( column = 0; column < 5; column++) {
  for ( row = 0; row < 100; row++ ) {
    sum = sum + table [ column ][ row ];
  }
}

この本では、計測結果も示されておりまして、具体的には以下のような表が掲載されていました。

言語 チューニング前 チューニング後 改善度
C++ 4.75 3.19 33%
Java 5.39 3.56 34%
PHP 4.16 3.65 12%
Python 3.48 3.33 4%

なかなかの差ですね。。。

で、実際に私の環境でも試してみました。

まず、Java。ほぼ上記のサンプルと同じですね。timeコマンドで計測したので差がわかるように1000000回繰り返して合計の処理時間をみました。

■外100内5

class Test {
  public static void main(String [] args) {
    int[][] table = new int [100][5];

    for (int times = 0; times < 1000000; times++) {
      int sum = 0;
      for (int i = 0; i < 100; i++) {
        for (int j = 0; j < 5; j++) {
          sum = sum + table[i][j];
        }
      }
    }
  }
}

結果は以下です。傾向は同じでしたが、改善度が違いますね。。。なぜかなぁ?Javaのバージョンがあがって最適化されるようになったのか?

ちなみに表内の数値(改善度以外)の単位は秒です。

言語 チューニング前 チューニング後 改善度
Java1.8.0_91 0.63 0.52 17%

続いてRuby(2.3.1p112)も試してみました。ちなみにRubyのBenchmarkライブラリを使うべきと思いますがJavaにはないので測定方法を揃えるために使っていません。

■外100内5

table = Array.new(100){ Array.new(5,1) }

10000.times do
  sum = 0
  for i in 0..99 do
    for j in 0..4 do
      sum = sum + table[i][j]
    end
  end
end

結果は以下です。Rubyには繰り返しの書き方がいろいろあるので、ついでにその比較もしてみました。チューニングによる効果の傾向はコードコンプリートと同様ですね。改善率も

実装方法 チューニング前 チューニング後 改善度
for 5.30 4.38 17%
upto 4.99 3.95 21%
each 5.01 4.03 20%

Rubyはもちろんのこと、Java関数型プログラミングの機能が導入されて、ループで処理を実装する機会が減ってきたとは思いますが。。。一応、今でも使えるテクニックと言えると思います。

レーザーカッターでくまもんメモ帳を作ってみようとしたが...失敗

smart laser co2

思いつきでちょっとやってみました。

くまモンのイラストを持ってきてInkscapeでなぞります。

f:id:ke_takahashi:20170323161125p:plain

それをSmart Laser CO2で読み込んで、裏紙(A4コピー用紙)を何枚かかさねてセットして切断しました。

一気に(スピード500、パワー10%)で切断しようとすると焦げるので、弱め(スピード500、パワー5%)で何度か切断しては取り出しを繰り返しました。紙ファイルで表紙をつけて、以下のような感じになりました。

f:id:ke_takahashi:20170323161619j:plain

f:id:ke_takahashi:20170323161625j:plain

とりあえず頑張ればいいのですが、面倒だし、そもそも縁が焦げているのがなんとも。。。

そこで、他の作品作りで余ったアクリルで紙を剪断?するテンプレートを作ってみました。

f:id:ke_takahashi:20170323161815j:plain

A4のコピー用紙を挟んで一気に押したのですが。。。残念な感じになりました。

f:id:ke_takahashi:20170323161846j:plain

半紙くらい薄い紙であれば綺麗に剪断できるのかもしれませんね。。。

余った裏紙を加工してなんか使えないかな。。。という発想なんですが、レーザーカッターではちょっと難しいですね。

考えます。

雨の日はハンズマンに行こう!(頼まれていません笑)

maker

3連休の2日間は勝手なことをやっていましたので今日は下の子(小1)と過ごそうと思ったら雨。。。

3連休でどうせ出かけても混雑していると思い、近所にあるハンズマン大野城店)に行きました。

www.handsman.co.jp

店を回って材料みながら、何を作るか考えようね?と。

ハンズマンには工作室があり、店内で材料を買ったらそのまま必要な工具を申し込んで工作室に持ち込んで工作できちゃうんです。

f:id:ke_takahashi:20170320194437j:plain

これって画期的なことだと思いませんか?

うちはマンションなので昼間とはいえ休日だとトンカンするのは気が引けます。ここであればガンガンいけます。

少し脱線しますが、数年前にコワーキングスペースみたいな場所があればいいね、とつぶやいていたことがありました。今ならあちこちにありますよね?こういう工作室みたいなコワーキングスペースがどんどんできたらいいな。。。と思います。でも、材料がすぐ手に入るってのは良い点であって、材料足りないと思ったらレジに行けばすぐに買い足せます。そういう意味では工作室だけが共同利用できてもダメで、材料がすぐに手に入る状態であることも重要な要素ですね。そういう意味ではハンズマンのこの発想は本当に素晴らしい!!!と思います。地元の人は当然って思っているでしょうけどね。。。転入者としてはほんと凄いことと思います。

話を戻して。

とりあえず竹馬を作ろうということになりました。

安価で加工のしやすいSPF材を選択してどう組み付けるかは失敗上等でボルトと木ネジにしました。

材料は、木材が3本(1本145円)、ボルト(3本入りを2つ、1つ100円未満)、木ネジ(100円未満)なので1000円くらいです。あと、子供がどーしても色を塗りたいというので、水性ペンキとハケで700円くらいですね。トータル2000円くらいです。

サービスカウンターで電動ドライバー(ドリルと+ドライバのビット)、ノコギリ、コンベックスと鉛筆をお借りしました。

コンベックスで測って鉛筆で印をつけて。。。作業の主はもちろん子供です。

f:id:ke_takahashi:20170320194936j:plain

もちろん、掃除も大事ですね。立つ鳥跡を濁さず。

f:id:ke_takahashi:20170320195654j:plain

作業すること1時間くらい。

その間に、周りにも、親子、おじさん、おばさん、たくさんの利用者がいました。

周りの方がどんな加工をしているのかものすごく気になりましたがジロジロ見るのも失礼と思い作業に集中しました(苦笑)。なんか、こういうフツーの人達(じゃないかもしれませんけどね)が、フツーに工作している姿を見ているとニヤケてきます。

昨日の講演で「自分でモノを作りたい人なんてそんなにいない」っていう言葉を聞いてちょっと落ち込んでいましたから。。。

これでいいんです。デジタルじゃなくたっていいじゃないっすか?正確で繰り返し可能かもしれないけど、デジタルゆえの面倒さや制限が多々あります。3Dプリンタやレーザーカッターが使えてもノコギリや金槌やドライバーが使えなかったら。。。ちょっと考えちゃいますね。

思いっきり、切ったり、作ったり、壊したり、汚したり、そんなことができる体験が、まずは必要だな。。。と改めて思った次第でした。

一応、できた作品?はこれです。

f:id:ke_takahashi:20170320200146j:plain

雨でしたので、塗装は晴れた日にやりましょう。

親子ともども楽しい1日でした(笑)

3連休の2日間は聴講デーでした

研究

昨日は前々から気になっていた教育システム情報学会の研究会が北九大で開催されると聞き、聴講しにいきました。

www.jsise.org

北九大での学会参加は初めて。競馬場の真ん前です。サークル棟が敷地内にあって勉強の場と遊び?の場が一体化している雰囲気はとても素敵でした。

f:id:ke_takahashi:20170319215602j:plain

学会はその名の通りのようで、情報システム、教育メソッド、その2つの掛け算のような研究が多く発表されていました。視線の研究があり、評価方法や研究メソッドでいろいろとヒントをもらいました。

ランチには食堂が休みだったので少し外へ。

なかなか開いている店がなく。。。10分くらいウロウロして戻って来て大学近くにある以下の店に行きました。500円で唐揚げ定食が食べれました。学生さんのための食堂という感じ。伝統的なお店なんでしょうねぇ。

f:id:ke_takahashi:20170319220004j:plain

学会が終わり、せっかく小倉まで来たので魚町商店街でビール屋さんに立ち寄りました。前から飲みたかったアメリカのビール(IPA)が飲めました。うまかったぁ。。。

f:id:ke_takahashi:20170319220154j:plain

続いて、本日はスペワ。KIGSで開催されたイベントに参加させてもらいました。

www.kigs.jp

ファブラボの関係者が集まるイベントでした。KIGSからみる高炉が一番よく見えますね(笑)

f:id:ke_takahashi:20170319220413j:plain

写真撮影は禁止だったのでありません。残念ですがしかたがないですね。

こちらもいろいろとヒントをもらいました。

研究室に3Dプリンタとレーザーカッターを導入し、それなりに活用はしていますが、ただ、これっというものは見いだせていません。

道具が使えるようになってもアイデアがなければ半減です。

講演で「作るだけで満足してはダメで使う(USE)を意識しよう」という話を聞き。いや、取り違えているかもしれません。でも、私にとっては十分なヒントでした。

作りたいものを作っている。それは楽しい。でも、本当に使うのか?使い物になるのか?は微妙です。(ソフトウェアですが)受託開発を10年間やってきました。技術者は技を持っているけど何を作るかはお客さんが知っています。逆に言うと自分が作りたいものは「ない」わけです。普通の受託開発の技術者は。

自分にアイデアがないなら欲しい人に聞けばいいじゃん、ということです。それはとてもシンプルな答えでした。どこかの大学(たしか未来大)でも地域から要求を出してもらいそれを実現するソフトウェアをプロジェクトで作っているという取り組みをしていると聞いたことがあります。

会社員は会社を存続するためにはできる仕事とできない仕事があります。慈善事業ではありませんから。

でも大学ではそれができる。そしてそれが新しい産業を生み出すきっかけになるのかもしれません。

地域で連携してもらえる団体や組織(教育、医療、農業、IT)の人にコンタクトして行きたいところです。

我々だからこそできることがきっとあるはずです。

あと、以下の本がオススメとのことで、空いた時間で本屋巡りして買って来ました(Kindleでもあったのですがリアル本の方が研究室にも置けますからね)。何を作るか、何を研究するか?そのあたりを考えるときのヒントになりそうですね。

www.heibonsha.co.jp

研究内容を伝える「言葉」がない

どの学校でもやっていることと思いますが、一年に一回、入学希望者向けに配布するパンフレットを更新する仕事があります。

今年も自分の研究室を紹介する文章を更新して大学事務に提出したのですが「伝わりにくいので見直してほしい」とのことでした。

ちなみに、その原稿は以下です。

タイトル:空想を形に変える開発技術で創造する

本文(140文字以内):ヘッドマウントディスプレイ、プロジェクションマッピングモーションキャプチャセンサ、ドローンなどの最新のデバイスとプログラミングを組み合わせたITシステムを開発しています。研究を通して身につけたシステム構築技術はメディア産業はもちろん医療系や銀行系のシステム開発企業でも活かせます。

専門家から見れば、何ともこそばゆい感じがするんじゃないかと思うんです。私の勝手な思い込みかもしれませんが。。。

大学であれば、それこそアカデミックな研究テーマを軸に据え、そのテーマについて真理を追求し、専門分野、世界もっと言えば人類の進歩に貢献するため、研究室に配属されたメンバーとともに仕事をしていく、という感じで記述するべきと思いますが。

私なりに社会貢献を意識すると、サラリーマンとして実社会に身をおいた経験をもとに、開発現場をよりよくするため、あるいは現場ではなかなかできない方法や仕組みや支援システムをテーマに掲げたいところでした。

しかし、大学にいながらにしてそうした研究するのはかなりシンドイのです。企業には当然ながら守秘義務があります。簡単に思いつきで試してみることはできません。赴任以来、数年間にわたって前職の企業とおつきあいさせていただいたのですが、現場の中に足を踏み入れて深い研究をすることはできませんでした。もし、できたとしてもそこで得た情報を研究成果として公開することは難しかったでしょう。そうしたジレンマを抱えてきました。たぶん、企業出身の方であれば同じような悩みを感じられていることと思います。

そのような状況でも、学生(学部生)に卒業研究をさせて世の中に送り出さなければなりませんでした。

学生さんに少しでもプログラミングやソフトウェア開発に興味を持ってもらいたいという思いから「ゲーム」を授業の題材にすることが多くありました。とはいっても私自身はゲーム業界にいたわけでもありませんし、子供の頃は遊んでいたとしても今はゲーマーではありません。それでも、ガジェットや新しい仕組みには興味がありますので、そうした新しいモノ・コトを自然と取り入れた対象を「研究」と称して扱ってきました。ちなみに、これまで10年近く扱ってきた卒業研究のタイトルは以下になります。

http://swken.joho.fuk.kindai.ac.jp/?page_id=1330

このようなことを10年近くやってきて「大学=アカデミックな事柄を扱わなければならない」という私の思いこみというか呪縛からそろそろ解放されてもいいんじゃないか。。。と思えてきました。諦めでもあるかもしれません。

研究としての「先端」といえば、成果をトップジャーナルに投稿し受理されることであり、トップカンファレンスに登壇して表彰を受けることと言えると思います。一方、人に多様性があるように、研究(の評価・捉え方)にも多様性があってもいいんじゃないか。。。とも思うんです。やりたいことをやるための言い訳かもしれませんが。

昔話になりますが、私が就職するときに(世の中をよく知らなかったものですので。。。)電機メーカーやITシステムの開発企業でカチッっとした製品を作るというイメージは持てませんでした。20年以上前の話です。

自由に発想して、なんか世の中にないものを作りたい、というぼんやりしたイメージだけはあったのですが。。。そんなことを仕事にしているような就職先はありませんでした。強いて言えば玩具メーカーくらいでした。基礎も実力もないのにそんなことばかり考えているうちに就職先がなくなって。。。先生のツテで前職に就職して10年働いたんです。。。結果的に素晴らしい体験ができたのですが、このモヤモヤっとしたことは実現できずにいましたし、最近まで忘れていたように思います。

今であれば、例えば、Cervoさんみたいなとても魅力的な企業があります。Kickstarterで開発したモノを売り込むこともできます。チームラボさんのような一般の方にも認知された夢のような企業もあります。

cerevo.com

www.team-lab.com

こういう仕事は、専門家ではない一般の人にどう伝えるのでしょう?「トヨタ自動車に入社が決まった」と言えば「自動車作りに関わるのね」と思うでしょうし「〇〇食品(製薬)に決まった」と言えば「食べ物や薬に関わるのね」と伝わるでしょう。

その一方で、Cervoさんやチームラボさんの場合は。。。手段はITでありエレクトロニクスと思います。何をしている企業でしょう。アート作品?実用製品?玩具?体験?QoLをあげるなにか?成果物ではなく、その企業で働く人たちは何を考え何をしようとしているのか?を伝えとしたら、どういう言葉が適切でしょう?考えるヒントになりそうです。

こうした「企業」だけではなく学会にも私がイメージしてきたようなテーマを扱う場所があります。先日、参加させていただいたインタラクションはその1つです。ただ、ここでは、もちろん開発より研究が主ですので、ただ面白ければいいというわけではなく、Human Computer Interactionに関わる新しい方法論や仕組みを提案することが基本になります。

もう少しライト(気軽に始められるけど、実はディープな取り組みでもあると思うのですが)な取り組みとして、ファブラボやMakerがあります。

FabLab Japan Network

Make: Japan | Makers

小学生の頃に参加していた、地元の科学館で開催されていた発明工夫展の延長のような取り組みの匂いがします。懐かしいです。。。

冒頭の私の研究内容を伝える言葉が見つからないことに対しての問いは。。。まだ答えが出ていません。1つ有望なのが「ライフハック」だと気付かされました。「ハックする」確かに言われて見ればそうなんですね。。。既存のモノを改良したり組み合わせたり本来の使い方とは異なる使い方をしてみたり。。。要はそういうことをやってきました。もう少ししっかり書くと、やりたいことは「既存の開発環境、コンピュータ、マイコン、デバイス、材料、センサー、インターネットなどを組み合わせて、今の世の中には存在しないものを創り出したい」ということです。場合によっては、個々の要素を改良したり自作することはあるかもしれませんが、それが主ではありません。この微妙なニュアンス(境界?)が伝わりにくいようです。。。

情報処理学会 第79回全国大会


ただ、事務の方にも言われましたが「ライフハック」はまだまだ一般に浸透しているとは言えない(自動車や食品や薬と比べて)ことは確かですので、そうしたモノを生み出すことをどう説明していいのか、その言葉がないことに気付かされたわけです。ちょっと前に「フィジカルコンピューティング」という言葉が出てきましたが、これも浸透しているとはいえませんし、廃れてきた感もあります。

同僚の先生と開き直って「わからないからこそ知りたいと思うんじゃないか?」も一理あると思うんです。全部がわかってしまっては知りたい欲求はわかないでしょうし。

中身は知らなくても、成果物やそれを作り出す行為の全体像を伝える言葉が欲しい。。。そんな悩みについて書き出したエントリーでした。

おしまい。

虫干しとMyStars

久しぶりに晴れたので雛人形を虫干し。

ついでに押入れにしまい込んだアルバム類とかも。

f:id:ke_takahashi:20170311100508p:plain

アルバムを見ていると1つの小包を見つけました。

開けてみるとしょさんべつ天文台と。

何かと思えば、この天文台の「マイスターズシステム」を利用したものでした。

入っていたのはCDとキーホルダーと説明書。

f:id:ke_takahashi:20170311101533p:plain

CDのラベルをみると平成7年。。。22年前。

星に名前をつけて登録できるシステムです。

初山別村公式サイト

もうこのシステムはないんだろうな。。。とぐぐってみるとありました。

現在も登録システムはあるようです。ご興味のある方はどうぞ。

http://www.vill.shosanbetsu.lg.jp/shtenmon/

いつか、また、行って見たいですね。