僕は発展途上技術者

Maker Faire Hong Kong に参加し、深センにも行ってきました - オクトパスカードをCITYBUSの運転手に取られた編

本記事を含めた全記事は以下の通り。

香港の人たちは総じて親切でしたし、治安は良い感じで、0時過ぎに地下鉄の駅からホテルの間を歩いていても全く危ない感じは受けませんでした。

ただ、帰りの空港行きのバスで、金額をチャージして使うオクトバスカードの使い方がわからず(専用の機械にタッチするだけだったのですが)、運転手に聞いたところ、そこのトレイに入れろと指で指示され、入れたが最後、デポジットしていた額もろとも奪われて返してもらえないという経験をしました。空港からホテルに向かうときに、同行者がほぼ同じ手口で100香港ドルをトレイにいれたら「おつりは出ない」と言われ、返してもらえないということがあったので、もしかしたら良くある手口なのかもしれません。

バス会社のCiTYBUS のホームページから苦情のメールを送っておきましたが、返事はまだない…

香港に行かれる方はご注意を。

かかる時間がそれほど変わらない電車にすれば良かったです。空港に向かう E21 という路線の「黄竹街」というパス停、2018/07/09 15:23 の出来事です。バスを特定しておくためにナンバーを撮っておきました。

Maker Faire Hong Kong に参加し、深センにも行ってきました - 香港編

先週の土日(7/7 - 8)におこなわれた Maker Faire Hong Kong に参加してきて、そのついでに深センにも行ってきたので、おもに写真中心で振り返ってみたいと思います。

本記事を含めた全記事は以下の通り。

まずは香港編。

空港からホテルまでのバスから見えた、ずらっと並んだいったい何階建てなんだろうという高層マンションの列。香港らしい。

ホテルの前の道路。ジャッキー・チェンとかが出てきそう。

そのホテルが1フロアに2部屋(ベッド2つがやっと置けるくらいの広さ)しかないのに24階建てで、同行者が最上階の部屋に泊まっていたので、その部屋から撮らせてもらったのがこの一枚。

映画「ブレードランナー」に出てきそう。

毎日スコールのような雨が降り、湿度が高く蒸し暑いのでこういう薄い感じのビールが良くあう。ピリ辛の羊肉を北京ダックとかを巻くときとかに出てくる皮で巻く料理、うまかった。

ホテルの近くの公園というか運動場。小学校低学年くらいのこどもでも11時過ぎまで公園で遊んでいて、なんとも不思議。

Maker Faire Honk Kong で知り合った方がファブ系のコワーキングスペースを運営していて、ぜひ遊びに来なよ、と言われていたので滞在最終日に見に行ってきました。

Innospot というところです。

こんなものが作れるようです。Godzi--lla

3Dプリンタとか、レーザーカッターとか。

地価がなかなか高い香港で、結構なスペースです。

香港の人たちは総じて親切でしたし、治安は良い感じで、0時過ぎに地下鉄の駅からホテルの間を歩いていても全く危ない感じは受けませんでした。

ただ、帰りの空港行きのバスで金額をチャージして使うオクトバスカードを運転手に取られた形になってしまったのですが、その話は気分が悪いので、別エントリーにしておきました。

» オクトパスカードをCITYBUSの運転手に取られた編

最後に香港といえばこちら、お約束の一枚。

Don't think, feel... - Bruce Lee

深セン編Maker Faire Hong Kong 編と続きます。

Rack で作るジブン Web フレームワーク(1)

以下の方を対象読者としています。

  • Ruby は少しわかる
  • ファイルやフォルダを作ることができる
  • Web はあまりわからない

Rack の厳密な説明は他にゆずるとして、とりあえず Rack とは、それを使って Web フレームワークを作ることができるものと覚えておいてください。

さっそく使ってみましょう。

Rack は gem のライブラリとしてインストールできます。以下のコマンドでインストールします。

$ gem install rack

Rack を使って Web フレームワークを作るには、以下の2つのファイルが必要です。

config.ru

require './app.rb' # 同じフォルダ内の app.rb を読み込みます。
run App.new # 読み込んだ app.rb で定義されている App のインスタンスを作成します。

app.rb

class App
  def call(env) # Rack ではこの call というメソッドを定義するのがルールです。
    [
      200, # 返す HTTP ステータスコード
      {'Content-Type' => 'text/html;charset=utf-8'}, # コンテンツのタイプ。HTML で文字コードは utf-8 です、と宣言しています。
      ['<html><body>Hello</body></html>'] # コンテンツの中身
    ]
  end
end

上記2つのファイルがあるフォルダから以下のコマンドで rack を起動します。

$ rackup

ブラウザを起動し、http://localhost:9292 にアクセスしてください。

以下のように Hello(App で定義したコンテンツの中身) と表示されたら成功です。

「Scratchで楽しく学ぶ アート&サイエンス」という本を書きました

「Scratchで楽しく学ぶ アート&サイエンス」という本を書きました。初の単著です。

書籍の説明にもある通り、こども向けと思われがちな Scratch をあえて大人向け、あるいはこどもでもある程度 Scratch をやっている中級者 Scratcher 向けに書きました。

Raspberry Piではじめるどきどきプログラミング増補改訂第2版」のときには、まだ大人は誰も知らなかったマイクラを素材に書きたいと提案し、今回また、入門書はたくさん出ているので、まだほとんど出ていない中級者向けのScratch本を出したいとチャレンジングな企画を持ち込みました。「おまえはいったい何を言っているんだ?」と言われそうな提案を理解してくださった日経BPの田島篤さん、面白いと言ってくださり監修を引き受けてくださった阿部和広先生に感謝です。


タイトルを決めるとき、「東大式...」って入れて「受験勉強にも役立つ」とか謳えば売れるのではなんていうジョークがでました。しかし、完成した本書は、受験勉強はおろか、まったく何の勉強の役にも立ちません。あとがきの言葉を借りれば、以下の通り。

「本書で取り上げているさまざまなプログラム例は、それをやったからと言って、直ちに何かの役に立つというものではありません。これで、資格が得られたり、お金がもらえたりするわけでもありません。 ただ、その過程において、知的な興奮が得られるはずです。わからなかったことがわかるようになる、できなかったことができるようになる、そして、ひとつのことがわかっても、さらに新しい疑問が生まれるという連鎖を、ぜひ経験してもらえればと思います。 ――阿部和広」

将来のためではなく、今楽しいからプログラミングする、あるいは本書でとりあげているテーマから派生して数学、物理、アートなどなどに興味を持って楽しんでやってみることを推奨する問題作となってくれればと思っています。

Scratch Day in Tokyo 2018 Show & Tell 振り返り

REFLECT: SHARE YOUR OWN REFLECTIONS

Lifelong Kindergarten p.173 より。

Lifelong Kindergarten: Cultivating Creativity through Projects, Passion, Peers, and Play (MIT Press)

TEN TIPS FOR PARENTS AND TEACHERS(クリエイティブな社会(Creative Society)を目指すために親や先生がすべき10のこと)の10個目として挙げられている「振り返りを共有する」ということ。親として、という文脈だけど、こどもたちや若者と比べると思っていたほど先は長くないぞという大人にとっては、これすごく大事だなと年々思うようになってきた。

要は、反省して同じ失敗は繰り返すなということだ。でも振り返りって、ちょっとの努力でできるのに面倒くさいのでさぼってしまいがち。ソフトウェア開発の現場でもドキュメント化し、メンバーで振り返りを共有するということは、表現方法こそ少し違うがScrum などの各種手法のほぼすべてがその重要性を説いていると思うのだが、まあだいたいどこも手を抜いてしまう…

というわけで、面倒だなあという気持ちに抗って、Scratch Day in Tokyo 2018 を振り返ろうと思う。今年も例年通り担当した Show & Tell をメインに。

Keep(来年も続けたいこと)

  • 今年発表された作品は Show & Tell @ Scratch Day 2018 in Tokyo から見ることができます。スタジオに全作品を置く、あらかじめ発表順とScratch IDをファイル名につけてダウンロードしておくはマスト。
  • 今年 Scratch Day Kashiwa と同日開催となってしまい主催する宮島くんに司会をお願いできなくなったので、青学の御家さんにお願いしました。テーマパーク感あふれる新鮮な司会で Scratch Day にふさわしい名司会ぶりでした。やむを得ず僕自身がやらずに本当に良かった。
  • PCの操作を青学の竹中先生にお願いしました。なんとか僕一人でPCの操作とこどもたちの誘導もできるんじゃないかと思ったのだが、発表順を変更しなくてはならなくなったり、発表順になっても発表者が現れないなどハプニングが連続したので、分担して黒子に徹してよかった。快く引き受けてくださりとても助かりました。来年も司会含め最低3人は必要だと実感した。
  • 講義室の方に一台PCを置いて無理やり Show & Tell 作品発表コーナーをつくっておいた。どの程度機能していたのか正直不明なのだが、Show & Tell 後に発表者の何人かは流れていったようなので、たまり場をつくる口実にはなったのではないだろうか。
  • Show & Tell はすべての年齢のこどもたちが対象。初心者もプロ級も、こどもも大人も誰でも歓迎というスタイルがこれまでで一番現れていたと思う。

Problem(問題点)

  • これはうれしい問題点ではあるが、過去最高の29作品の応募があり、基本的には全員採用というこれまでのポリシーを維持するために、ひとり3分というとても短い持ち時間となってしまった。
  • キッチンタイマーや iPhone/iPad のタイマーを使ってタイムキーピングしようとしたがどれもしっくりこない。いっそ Scratch でタイマーを作ったほうが良さそうだ。
  • 予想以上にたくさんの聴衆の前で話さなければいけないとわかり戸惑っていた初参加の方がいた。結果的には堂々としたプレゼンができていて立派なものだったが、初参加の参加者への配慮が必要かもしれない。

Try(来年改善したいこと、やってみたいこと)

  • もはや1時間の2部構成では来年は無理そうだ。講義室とメインホールとに分ける、講義室のほうは聴衆の人数が少ないので初参加の人にはそちらをすすめる、Scratch と Scratch 以外で分ける、など何らか分散する施策が必要だ。

  • (2018/7/1 追記) Show & Tell 発表者用の展示スペースをきちんと用意したい。

昨年までの振り返りは以下の通り。

Scratchで楽しく学ぶ アート&サイエンス
石原 淳也
日経BP社
売り上げランキング: 11,183

Lifelong Kindergarten 読了

英語の本ではGetting Real以来の僕にとっての神本(英語の本自体あまり読んでいるわけではないけど…)。

日本語訳(ライフロング・キンダーガーテン 創造的思考力を育む4つの原則)でもいいので、CoderDojo関係者などプログラミング教育やScratchに関わっているすべての人は読むべき。バイブルだと思う。

Creative Society(創造的な社会)をどう作っていくかという一見難しそうなテーマなのに、かなり平易な文章と簡単な英単語だけで面白く書かれていることに感動する。4つのPとか、Computer Clubhousesのメンターの役割は Catalyst、Consultant、Connector、Collaborator(全部Cで始まっている)といった言葉遊びを味わうなら原著の方がおすすめだと思う。

地図バー x 調布Facebook交流会 ドローンナイト に参加してきました

毎月プレミアムフライデーに調布で行なわれる地図バーというイベント、今回は「ドローンナイト」ということで、調布市内でどうやってドローンを飛ばすかを考えたり、屋内で飛ばせる200g以下のトイドローンを実際に飛ばしてみる体験などをしました。

地図バーを毎月開催されている古橋さんは、災害時にドローンをいち早く飛ばし、災害対策用の地図を作成し人命救助などのサポートに役立てようという、民間のボランティアベースで、DRONEBIRDという活動をおこなっています。

活動内容を紹介する動画がなかなかいかしてます。ジェダイの次くらいにサンダーバードの隊員になりたかった僕は、もうさっそく隊員になりたいと思ってしまいました。

調布でドローンを飛ばせる人を増やしたいというのが会の趣旨だったようです。そして災害時に役立てるように普段からドローンの操縦を練習しておく必要がありますね、ということで、調布近辺でドローンを飛ばせるいくつかの場所の紹介がおこなわれました。

続いて、実際にドローンの操縦を皆で体験してみようということで、会場となっている沙ら+と同じビルのそこそこ広い空きスペースを利用し、飛行体験会がおこなわれました。ゲストとしていらっしゃったドローン芸人の谷+1。さんが様々なタイプのドローンを紹介してくださいました。天井が低かったため残念ながら実際には見られなかったのですが、ドローンで飛ばしたマシュマロをキャッチするというのが谷+1。さんの持ち芸です。

その後、イベントが終了した後もドローン話は盛り上がり、ドローンを活用した様々な事例の話が面白かった。ドローンを利用したスマホの密輸、アフリカルワンダで活躍する医療物資を高速で届ける救命ドローン「ジップライン」などなど。実際に操縦を体験した後なら、これがいかに神業なのかがわかる「オンナノコズ」というプロモーション動画が衝撃的でした。

さてさて、一夜あけて昨日Amazonでポチッた Parrot ドローン Mambo が届きました。

本日すでに三回目の充電中のため待機中…

ML2ScratchとScratch2MiPを使って、倒立2輪ロボットMiPをゼスチャーでコントロール

ML2ScratchとScratch2MiPを使って、MiP をゼスチャーでコントロールしてみました。

ML2ScratchはScratchXとTensoflow.js を使ったサンプルページをつなげる ScratchX のエクステンションです。Webカメラの画像から機械学習で学習した分類結果をScratchXに送ります。

詳しくは、1つ前の以下のエントリーを御覧ください。

» TensorFlow.jsとScratchXとをつなげて、機械学習を簡単に体験、利用できるML2Scratchを作ってみました

ScratchXは別のエクステンションScratch2MiPを使い、倒立2輪ロボットのMiPに対して、分類結果に従った命令を送っています。

» 自立して二輪で走るロボットWowWee MiPをScratchXからプログラミングできるようにしたScratch2MiP

ScratchXはこのように、2つ以上のエクステンションを読み込むことができるので、合わせ技でいろいろなことができるようになるのが面白いです。

Scratchで楽しく学ぶ アート&サイエンス
石原 淳也
日経BP社
売り上げランキング: 11,183

TensorFlow.jsとScratchXとをつなげて、機械学習を簡単に体験、利用できるML2Scratchを作ってみました

機械学習を気軽に体験し、なおかつそれを利用してScratchの環境でプログラミングできるので、簡単に動くアプリケーションを作ることができるML2Scratchを作ってみました。

» ML2Scratch - GitHub

上記デモ動画では、ウェブカメラでグー、チョキ、パーの画像をいくつか取り込んで機械に学習させたあと、学習した結果からウェブカメラに映る手の形を判定し、ScratchX上のネコのキャラクターに「グー」「チョキ」「パー」と言わせるという簡単なプロジェクトを紹介しています。

機械学習には、膨大なトレーニングデータが必要と思われがちなのですが、Googleから発表されたばかりのTensorFlow.jsを利用することで、それぞれ20枚ほどの画像を用意しただけで十分な精度の判定を実現できるので驚きです。

「手の形を判定するんですよ」と指定することなく、ただひたすらに各分類ごとの画像を学習させるだけなので、たとえば、赤い色のものばかりを見せたあと、青い色のものばかりを見せて学習させることで色を判定したり、同じ人の顔を角度をいろいろ変えて学習させたあと、次に別の人の顔を学習させることで簡単に顔認識を実現することもできたりします。

指を上下左右それぞれの方向に向けた画像を学習させて、それをコントローラー代わりにしてキャラクターを動かすゲームを作ることもできます。

機械学習の数学的な知識などが必要となってくる実装部分はブラックボックスのまま、それをアプリケーションにどう応用するか、あるいはどう楽しむかを考えることができるフェーズに移ってきたのかな、ということを感じさせてくれます。

Scratchで楽しく学ぶ アート&サイエンス
石原 淳也
日経BP社
売り上げランキング: 11,183

Pythonistaで合気道の審査技イメージトレーニングアプリを作ってみた

合気道には試合がない代わりに昇級・昇段審査というものがあります。技の名前を言われたら、それを演武するのですが、級・段が上がるに従い、その数が増えていきます。審査というものは、普段の生活ではなかなか味わえない緊張感を感じるもので、プチパニックに陥り頭が真っ白になってサッと体が動かないこともままあります。また、記憶の引き出しの金具も錆びついてきていて、なかなか滑りが悪くシュッと引き出すことができなくなってきています。

そこで、ランダムに技の名前を言う、というだけのイメージトレーニングアプリを作ろうと思い立ったのですが、たったそれだけの機能を作るためのiOSアプリを作るのは面倒だなと。。電車に乗っているときに聞けるように、iPhoneで使えるようにはしたいのです。

そこで、以前に購入してインストールはしていたのですが、積読ならぬ積アプリになっていたPythonista 3を使ってスクリプトを作れるのではないかと、実際に触ってみたのですが、これがびっくりするくらい強力でちょっと引くくらいでした。よくこれ、App Storeのレビューを通ったなと… 簡単に言ってしまうとPythonの開発環境で、Pythonでちょっとしたスクリプトが作れるくらいに思っていたのですが、iOSの様々なAPIにもアクセスでき、Objective Cとのブリッジ機能も提供しているので、もはや何でもできてしまうんじゃないかという強力ツールでした。

Pythonistaがどれだけ革命的かは、こちらに書かれています。

» iOS上で動作する革命的ものづくり環境「Pythonista 3」の魅力をとくと語る

で、できたのがこちらの審査技イメトレアプリです。配列に入れた審査技をランダムに言ってくれます。全て漢字で書くとおかしな読み方をする箇所があったので、そういうところはひらがなで書いたり、うまく切って読んでくれるように、適当な場所に読点を打ったりしています。

僕はこれを聞いて、頭のなかで技の型を思い浮かべるのです。

配列の中身を変えれば、英単語の練習だとか、いろいろ応用できそうです。大したコードではないですが、一応、このエントリーの最後に公開しておきます。

そして、Pythonista、App Storeを通さず、自分用にちょっとしたアプリを作ることができて大変便利そうです。たとえば、位置情報を取得して、最寄り駅 + 「もうすぐ帰るよ」というLINEメッセージを送るだけのアプリだとか、いろいろと作ってみたいと思います。

プロフィール

株式会社まちクエスト代表、つくる社LLC代表。

Scratchで楽しく学ぶ アート&サイエンスRaspberry Piではじめる どきどきプログラミングを書きました。

Amazonから図書館検索 Libron、iPhoneアプリ ひらがなゲーム かなぶん を作っています。

Email: webmaster at champierre dot com

Twitter @jishiha

最近のエントリー

アーカイブ