僕は発展途上技術者

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 以外で分ける、など何らか分散する施策が必要だ。

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

Lifelong Kindergarten 読了

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

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

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

プロフィール

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

Raspberry Piではじめる どきどきプログラミングを書きました。

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

Twitter @jishiha

最近のエントリー

アーカイブ