Pages

【Scratch Advent Calendar 2014】最終日 Merry Christmas!!!なこと

2014年12月25日木曜日
Scratch Advent Calendar 2014 最終日の記事です。

まずは、初のAdvent Calendarに名乗りを上げて戴いたみなさん本当にありがとうございました。書き始めは、なかなか人が集まらず、全部自分で書かないとだめかな?と思っていたのですが、みなさんにご協力戴き、無事25日を迎えることができました。


さて、「Merry Christmas!なこと」から「家族」を連想ました。なので、今年最後のScratch Advent Calendar 2014 の記事は、これまでのワークショップやCoderDojoで出会ったご家族から質問された中から一番嬉しかった質問について、僕なりの意見というか感想を書こうと思います。

質問

うちは両親がプログラミングを知らないのですが、一緒にできますか?

感想

ワークショップを開催しているとたくさんのご質問を戴くのですが、僕は、この質問が一番好きでハイになれるのでチョイスしました。
なぜかというと、お父さんやお母さんが子どもと一緒に共有する時間を作るきっかけを探している質問だからです。
例えば、「今は、良書があるので帰りに本屋さんで寄って帰ると一緒にできますよ。」とお答えさせて戴いております。同じ経験をした方はどんな返答をしているのでしょうか?

僕は、娘がずいぶん大きくなってしまったので、質問戴いている保護者の方に比べて、共有する時間を作るというのが難しくなってきてしまいました。
もし、共有する時間を作っていないという方がいらっしゃいましたら、プログラミングや自分の得意な教科の勉強をきっかけに共有する時間を作ることをおすすめします。
(これは、親としての実体験で、大きくなると相手してもらえなくなるので、相手してもらえる間が花です。)

プログラミングに限らず、漢字の書き取りや計算問題、スポーツも同じですが、「継続」することで身につくことが多いです。血肉になるとでもいいましょうか。

この2年間で感じたことなんですが、覚えるのが早いなぁと感じる子と話しをすると、ほとんどの子が家でお父さんやお母さんと一緒にプログラミングやっていると返答する子が多いです。子供のモチベーションが下がっても、どうやるとモチベーションをあげることができるのか?ということを保護者の方はご存知なのですね。
また、珍しい例ですと、お父さんやお母さんがこんなアプリやゲームが欲しいなとアイディアをもらって続けている子もいました。一緒にプログラミングする以外にもうまくお子さんとコミュニケーション取っていて、いいご家族だなぁと関心致しました。


つらつらとこれまでの経験で得られたことを書かせて頂きましたが、あくまでも1例です。
正しいとか間違っているということをいいたいのではなく、プログラミングを通して子供からだけじゃなく、その両親の方から教えて戴くこともありましたよと、紹介したかっただけでした。


最後に

お子さんと一緒に遊んでもらおうと思い、ゲームをご用意致しました。
ゲームに出てくるサンタさんは、CoderDojo Izumi に参加してくれている女の子が描いてくれたものです。

落としたアイテムを拾いにくい設定にしてあるので、Present スプライトのビデオモーションを比較する値を調整して遊んでください。




今日はクリスマス。家族と一緒に素敵な一日をお過ごしください。
来年も ScratchのAdvent Calendar やろうかな?
Merry Christmas!!



保護者の方におすすめしている良書はこちら。


Read more ...

【Scratch Advent Calendar 2014】2日目 シダの葉を書いていみよう

2014年12月2日火曜日
Scratch Advent Calendar 2日目は、「シダの葉を描くプログラム」をつくりました。

プログラミングを勉強したての頃からいつかプログラムだけで図が書きたいなと思っていたので、
今回のAdent Calendar がいい機会だと思い作ってみました。

処理に時間がかかるので、ターボモードで実行してください。
ターボモードは、Shift キーを押しながら、緑の旗をクリックです。


→サイトはこちら
Read more ...

【Scratch Advent Calendar 2014】一日目 OS毎のインストール方法

2014年12月1日月曜日
Scratch Advent Calendar 2014 初日は、Scratchのインストール方法について書きます。


公式サイトからファイルをダウンロードして、
ダブルクリックすりゃー終わりじゃないか!

と、思われる方もいらっしゃるかと思いますが、
公式サイトからダウンロードせずにインストールする方法もあります。

それは、Linuxディストロビューションが提供する
リポジトリからインストールする方法です。

Ubuntu(LTS higher) の場合

apt-get コマンドを使って、Scratch 1.4 をインストールできます。

実行するコマンド

sudo apt-get install scratch

Fedora の場合

yum コマンドを使って、Scratch 1.4 をインストール可能なようです。(Fedora 19以降予定?

実行するコマンド

yum install sctach

Rasbianの場合

OSに標準で搭載されています。

Scratch 1.4 言語ファイルの変更

Scratch1.4の言語ファイルには間違いが見つかっているそうです。

ZIPファイルをダウンロードし、解凍してください。
解凍したディレクトリに"ja_HIRA.po"と"ja.po"が入っているので、
Scratch 1.4のディレクトリの中にある"locale"にコピーしてください。

※2014/12/1にご指摘を頂いたので追記しました。


OSをセットアップする度にダウンロードして、解凍して、起動確認しての手間が減って便利になりますね!
やっつけ気味に書いてしまいましたが、日々グレードアップさせていきます!

Enjoy Scratch Programming!!

Read more ...

子どもが作るゲームセンターに参加してみて

2014年10月21日火曜日
スタッフの小島です。

今回のイベントでは、「こどもがつくるゲームセンター」ということで、日頃CoderDojoに参加してくれている子ども達が作った作品や、国内のScratch ユーザーが作った作品で遊ぶんだり、その場でゲームを作って遊んでもらうというものでした。

遊びに来てくれた子ども達は、プログラミングに興味を持っている子ども達や、ゲームが好きな子ども達がほとんどということで、会場に入るなり、目の色を輝かせていたことがとても印象的でした。


製作ブースとゲームセンターとコーナーが分かれており、それぞれ興味があることを楽しんでいたようです。ゲームコーナーでは、自分たちがScratchでプログラミングを習い、作ったゲームで遊べるということもあり、楽しみながら様々な人が作ったゲームで楽しく遊んでいました。また、製作ブースでは、ScratchはもちろんWEDOなどを使い新たなゲームを作っている子もいました。


その後、自分たちでプログラミングしたゲームを発表する際は、自分たちがどのようにして作ったり、工夫したのかということを楽しそうに話したり、とても活き活きした姿を見ることができました。



最後のほうは、ほとんどの子が、Scratchを使い新しいゲームを楽しみながら作っていました。イベントを通して感じたことは、砂金さんが、子ども達が興味を持てるものの引き出しをたくさん設けて、様々なことに興味を持つことができるということは素晴らしいことで、その子ども達の引き出しが開く瞬間に立ち会えたということは幸せなことなのだと思いました。

Read more ...

プログラミング教室に参加した感想

2014年10月21日火曜日
スタッフの小島です。

2014年10月4日にNPO法人アスイクさんとプログラミング教室を開催しました。
プログラミング教室には、プログラミングやゲームなどが好きで興味があるという中学生10人ほどが集まりました。

Scratchと呼ばれるアプリケーションを使い、午前中は『ネコにげ』というゲームを作っていくというもの。

弊社砂金が講師となり、Scratch 操作方法の解説を行い進められていきました。

初めは恥ずかしそうにしたり、興味を持っていてもなかなかのってこない子もいましたが、次第に前のめりになるほど、プログラミングに食い入るように見つめては、自席で自分なりのプログラミングを楽しんでいました。
中には、なかなかできずに苦労している子もいたのですが、その都度質問して解決していくことで、自分で作る楽しさや、できたときの満足感を得られていたように感じられました。


午後からは、シューティングゲームを作っていきました。
一人一人の感性の違いがはっきりとみられるようになり、絵にこだわりを持ち作っていく子、難易度の高いゲームを作っていく子など、それぞれのこだわりが形となったゲームが出来上がっていました。

このようにプログラミングに触れるという機会は、日常生活ではイベントなどがないと難しいものもあると思いますが、このような経験をすることで、職業選択の幅が広がり、自分の得意不得意を知り、将来に役立てるものも得られることもあると思いました。

自分たちが作ったゲームで遊び、足りないところはアドバイスをもらいながら発展させている子ども達はとても楽しそうで素敵な表情をしていました。


初めは緊張していたであろう子ども達の表情が、帰りには笑顔だったことがとても印象に残りました。

Read more ...

Swiftで始めるTwitterアプリ事始め(パート3)

2014年6月11日水曜日
前回は、Twitterに投稿するボタンにプログラムを追加して投稿できるようにしました。
第3回目となる今回は、Twitterのアカウント情報を取得するプログラムを追加しようとお思います。
※この記事は、ツイッターアプリを作ろう。誰でもわかるiPhone開発講座を参考に作成しています。


目次

  • frameworkを追加する
  • アカウント情報にアクセス許可を求めるプログラムを追加する
  • アカウント情報を取得する

frameworkを追加する

  1. 左側サイドバーからTwift(プロジェクト名)を選択します。
  2. "Build Phases"ー"Link Binary With Libraries"の順に選択します。
  3. "Link Binary With Libraries"内の"+"をクリックします。
  4. 表示されたダイアログから[Accounts.framework]をクリックします。
  5. Addをクリックします。
  6. "Link Binary With Libraries"に"Accounts.framework"が追加されます。
  7. 左側サイドバーから"TimelineViewController.swift"をクリックします。
  8. "import Twitter"の次の行に"import Accounts"を追加します。


アカウント情報にアクセス許可を求めるプログラムを追加する

class宣言のすぐ下に"override func viewDidLoad()"メソッドがあります。
viewDidLoad()メソッドに下記のプログラムを追加します。


viewDidLoad()メソッドとは

viewDidLoadメソッドは、画面が表示されるときに呼び出されるメソッドです。
画面を表示するタイミングで処理を行いたいときは、このメソッドの中にプログラムを書きます。

コードを追加したら、左上にある▶をクリックして動作を確認してください。
実行するとアカウント情報にアクセスを求める画面が表示されます。


アカウント情報を取得する

アカウント情報を取得するプログラムを書きます。
下記のプログラムを追加してください。


コードを追加したら、左上にある▶をクリックして動作を確認してください。
Debug areaに取得したTwitterアカウントの情報が表示されます。

Debug areaは

shift+command+y キーを押すことでXcodeの下部に表示されます。
背景が黒で白色の文字のウィンドウです。

Read more ...

【修正版】Swiftで始めるTwitterアプリ事始め(パート2)

2014年6月10日火曜日

前回は、Swiftプロジェクトの作成からストーリーボードを使ってアプリの画面を作成しました。
今回は、ツイート画面を表示して実際にTwitterにツイートするロジックを追加しようと思います。最後には、シミュレーターを使って実際に投稿するまでの手順を書きます。
※この記事は、ツイッターアプリを作ろう。誰でもわかるiPhone開発講座を参考に作成しています。

2014-06-10
Apple社のNDAに違反いるとのご指摘を受け、ブログ内から抵触するスクリーンショットを削除致しました。指摘してくださったみなさま、ありがとうございました。

目次

今回の目次は、次のとおりです。
  • クラスを追加する
  • 画面とクラスを関連付ける
  • ツイートボタンのタップイベントを追加する
  • frameworkを追加する
  • タップイベントにコードを追加する
  • Twitterアカウントの設定する
  • アプリを実行する

クラスを追加する

プロジェクトを作成したとき、既にクラスが作成されています。
今回は、既存のファイルを書き換えて画面の処理を実装していきます。


  1. 左のプロジェクトナビゲーターから"ViewController.swift"をクリックします。
  2. EnterKeyを押しすとファイル名が反転するので、"ViewController.swift"を"TimelineViewController.swift"に変更します。
  3. Save Anyway をクリックします。
  4. 選択したファイルのコードが表示されます。
  5. 表示されたエディタを使ってベースクラスとクラス名を変更します。
  6. "ViewController"→"TimelineViewContoller"
  7. "UIViewController"→"UITableViewController"
変更前

変更後

画面とクラスを関連付ける


  1. "Main.storyboard"を選択します。
  2. "Table View"のステータスバーをクリックします。
  3. "Identity inspector"をクリックし、"Class"から"TimelimeViewController"を選択します。

ツイートボタンのタップイベントを追加する

ツイートボタンがタップされたときのイベントを作成します。


  1. "Table View"が選択された状態で、"Assistant editor"ボタンをクリックします。
  2. クリックすると左側がストーリーボードの画面に、右側がエディタ画面になります。
  3. controlキーを押しながら、"Bar Button Item"から"didReceiveMemoryWarning"メソッドの下の行までドラッグ・アンド・ドロップします。
  4. "Connection"から"Action"を選択します。
  5. "Name"に"pressComposeButton"と入力します。
  6. "Type"から"UIBarButtonItem"を選択し、Connectをクリックします。

frameworkを追加する

Twitter APIを使用するためのframeworkがiOSに用意されています。
Twiftでは、iOSで用意されているAPIを使ってTwitterに投稿できるようにプログラミングします。


  1. "Show the Standard Editor"をクリックします。
  2. 画面左側のProject Navigatorから"Twift(プロジェクト作成時に別の名前を付けた場合は、付けた名前のプロジェクト名)"を選択します。
  3. "General"-"Deployment Info"-"Deployment Target"から[7.0]を選択します。
  4. "Build Phases"-"Link Binary With Libraries"左の▼をクリックして展開します。
  5. "+"をクリックします。
  6. 検索バーに"twitter"と入力します。
  7. Twitter.frameworkを選択して、Addボタンをクリックします。
  8. "Twitter.framework"がライブラリーに追加されます。

いよいよ。Swiftを使ってプログラミングを始めます。


  1. "TimelineViewController.swift"を選択します。
  2. 追加した"Twitter.framework"を利用するためには、"TimelineViewController"クラスからTwitter.frameworkを使えるように宣言します。


タップイベントにコードを追加する

ツイートボタンをタップしたときに投稿画面を表示するコードを追加します。
プログラムの下方にある"pressComposeButton"メソッドにコードを追加します。(「ツイートボタンのタップイベントを追加する」で追加したメソッドです。)


Twitterアカウントの設定する

以上の手順でTwitterに投稿するプログラムが完成しました。
この章では、シミュレーターを使って作成したTwitterアプリを動作させてみましょう。

動作させる前にシミュレーターにTwitterの設定が必要です。
それでは、シミュレーターを起動してTwitterの設定方法を見て行きましょう。


  1. Xcode上部にある"iPhone 4s"をクリックして、エミュレーターを"iPhone 5s"に変更します。
  2. ▶をクリックしてシミュレーターを起動します。
  3. 自動でコンパイルが実行され、シミュレーターが起動します。
  4. ツイートボタンをクリックしたいところですが、一旦 Twitterの設定をします。
  5. Shift+Command+hキーを押します。
  6. 左から右にドラッグ・アンド・ドロップして、画面を切り替えます。
  7. Settingsをクリックします。
  8. Twitterをクリックします。(Twitterが表示されていないときは、下から上にドラッグ・アンド・ドロップしてリストを移動します。)
  9. "User Name"と"Password"に使用する情報を入力して、Sign Inをクリックします。
  10. アカウントが追加されます。


アプリを実行する

さあ、いよいよ。作成したTwitterアプリを動作させます。


  1. ▶をクリックしてアプリを起動します。
  2. ツイートボタンをクリックします。
  3. 投稿画面が表示されるので、何かつぶやくメッセージを入力し、Postをタッチします。



どうでしょう?Twitterのタイムラインに入力した内容は表示されたでしょうか?
次回以降は、タイムラインのデータを取得してリストに表示するプログラムを作る予定です。次回の更新をお楽しみに!


こんなことが起きたら…

ツイートボタンをクリックしたときにXcodeの画面に切り替わり、エディタ画面の右側に"Thread 1: break point 1.1"と表示された場合は、Control+Command+y キーを押してみましょう。処理が実行され、投稿画面が表示されるようになります。

これは、指定した行(図では24行目)にブレークポイントというものが設定されているため、プログラムがブレークポイントで停止しているために発生します。Control+Command+yキーを押すことによって、停止していたプログラムが再開されるようになります。

意図しないブレークポイントを設定してしまい、都度プログラムが止まってしまって困るというときにはブレークポイントを削除することで対処することができます。

ブレークポイントを削除するには、"Breakpoint Navigator"を開いて設定されているブレークポイントを削除することができます。

"TimelineViewController.swift"を副ボタンクリック(2本指クリック)します。
"Delete Breakpoints"をクリックします。

Read more ...

【修正版】Swiftで始めるTwitterアプリ事始め(パート1)

2014年6月10日火曜日
AppBankさんのツイッターアプリを作ろう。誰でもわかるiPhone開発講座という記事がとても解かり易かったので、参考に Swift 版の記事を作成しました。
何回かに分けて記事を書いていこうと思いますので、気長にお付き合いください。

2014-06-10
Apple社のNDAに違反いるとのご指摘を受け、ブログ内から抵触するスクリーンショットを削除致しました。指摘してくださったみなさま、ありがとうございました。

はじめに

はじめに、この記事を読み始めるにあたって、既にXcode 6.0 β版がインストール済みであることを確認しておいてください。

目次

今回の記事で取り上げるのはこの2つです。
  • プロジェクトの作成
  • タイムライン表示画面の作成

プロジェクトの作成


  1. Xcode 6.0 β版を起動起動して "Create a new Xcode project"をクリックします。
  2. 左側のプロジェクトの種類から[iOS]-[Application]をクリックをします。
  3. "Single View Application" → OKの順にクリックします。
  4. [Product Name]に"Twift"と入力します。(作成するアプリの名前です。もちろんTwift以外もOK)
  5. [Language]から"Swift"を選択します。
  6. [Use Core Data]にチェックが入っていないことを確認して、OKをクリックします。
  7. プロジェクトの保存先を選択して、Createをクリックします
  8. 作成したプロジェクトの設定画面が開かれます。

タイムライン表示画面の作成

不要なViewControllerの削除


  1. まずは、テンプレートで作成されたViewをストーリーボードから削除します。
  2. "Main.storyboard"をクリックします。
  3. ステータスバーをクリックして、"View Controller"を選択します。
  4. [Delete]キーを押して、選択した"View Contorller"を削除します。

タイムラインを表示するTable View Controllerの追加


  1. Twitterから取得したタイムラインを表示する画面を作成します。
  2. ドラッグ・アンド・ドロップして、"Table View Controller"を追加します。
  3. Table View Controller がストーリーボードに追加されます。

ナビゲーションバーの追加


  1. ストーリーボードに"Navigation Controller"を追加します。
  2. Xcodeメニューから[Editor]-[Embed In]-[Navigation Controller]を選択します。
  3. "Navigation Controller"が追加されます。

 ツイートボタンの追加


  1. 画面にツイートボタンを追加します。
  2. "Bar Button Item" を "Table View Controller" の右上にドラッグ・アンド・ドロップします。
  3. 画面の右上にドラッグ・アンド・ドロップした"Bar Button Item"が追加されます。
  4. [Bar Button Item]、[Attrbutes inspector]、[Identifer]-[Compose]の順にクリックします。
  5. Compose を選択すると、ボタンのアイコンが変わります。

以上で、ストーリーボードを使ったアプリ画面の作成は完了になります。
次回は、イベント毎にイベントをプログラミングしていこうと思います。
Read more ...

Swiftで始めるTwitterアプリ事始め(お詫び)

2014年6月9日月曜日
Swiftで始めるTwitterアプリ事始め(パート1〜パート2)ですが、内容に問題があったため、公開を停止致しました。

内容を訂正し、改めて公開します。


メールや、サイト等で指摘してくださったみなさま、本当にありがとうございました。

Read more ...

Swiftを使ったTwitterアプリの作成が完了しました

2014年6月7日土曜日
ソースはGithubにあります。
作成中の困ったことは、Qiitaにまとめました

Read more ...

Swift使ってTwitterアプリを作り始めた

2014年6月4日水曜日
Swiftを使ってHello, Worldを書いたので、今回はTwitterアプリを作り始めてみました。
実際に作ることで理解を深めることができたと思います。

今日作成できたのは、Twitter APIの情報をログに出力するのと、ツイートする機能だけです。


作成中のコードはここ(develop ブランチのみソースがあります)
作成中に困ったりハマったりしたことはここ(Qiita)に書きました。

まだまだ、作成途中ですが完成できるまで書き残していこうと思います。
コードの問題などご指摘がありましたら、ご連絡お待ちしております。



Read more ...

話題になっている新しい言語 swift で Hello, World やってみた

2014年6月4日水曜日
昨夜のWWDCデベロッパーで発表されたプログラミング言語 Swift でお決まりの「Hello, World」を作ってみました。

コードはここ


Developer契約の期間がいつの間にか過ぎてしまっていたので、契約やダウンロードやsimulatorのセットアップをしていたら、環境構築だけで2時間かかってしまいました。

時間を作ってもう少し遊べるプログラミングを組む時間を設けないとな。
Read more ...

Scratch Day in Tokyo 2014 に参加して思ったこと(Part 1)

2014年5月20日火曜日
5月17日に 東京大学 情報学環・福武ホールで開催されたScratch Day in Tokyo 2014に参加してきました。
同イベントに参加した方々が既に書かれていると思いますが、「プログラミングバトル」は本当に見ものでした。

あるテーマに沿ったものを2人で作って競い合うもので、作成するものはバトル直前に分発表されます。制限時間は20分。
この20分という時間の中で、テーマのものを作成。作成する工程や出来上がったものを観客が評価し、勝敗が決まります。

バトルは、二戦行われテーマはそれぞれ「テニスゲーム」と「インベーダーゲーム」でした。
正直、20分という時間制限の中で、条件にあったものを作り、かつオリジナルの改造を加えるのは結構難しいことです。だけど、このバトルに参加した戦士たちは途中アクシデントがあったのもののテーマのものを作成し、観客を沸かせておりました。



気付いたことは、プログラムの組み方です。
コードを書き上げるたびにテストをする子もいれば、一気に書き上げたあとにテストをする子。基本的な動作を作成した後に改造を加える子もいれば、作りながら改造していく子。
今回は、中学生以下の試合となりましたが、大人同士のバトルも是非見てみたいと思いました。



Read more ...

第壱拾四回 CoderDojo Sendai 活動報告

2014年5月20日火曜日
5月18日(日)にクラウドガーデンさんをお借りして、第壱拾四回CoderDojo Sendaiを開催しました。
今回の参加者も定員の5人。小学3年生から小学6年生までのキッズが参加してくれました。

初めて参加するキッドは、常連くんのお友達ということでサポートしてもらいつつ、「ねこたたき」を一緒に作りました。

ねこたたきは、もぐらたたきのようなゲームです。画面上のねこが表示・非表示を繰り返し、ユーザーは、表示されているねこをクリックして得点を獲得するルールになっています。
表示・非表示を繰り返す時間を「ランダム」変えたり、「変数」を使って得点を表したりと少し難しめの内容になっております。

このねこたたきというゲーム意外と女の子や低学年の子が意外とハマる仕様になっています。
ゲームの操作方法が簡単な上、「クリックされたとき」のイベントを改造するだけで音出すことができたり、特別なスプライを用意することができるので改造も簡単なことがハマる理由なのかな?と思っています。
女の子は、スプライトや背景を自分で描くことで独自のゲームに変わるので、ゲーム仕様よりもそちらにハマっているようです。

CoderDojoが終了した後は、Minecraftの講義をクラウドガーデンさんのテラスで受けました。Minecraftの大会がやりたいということで、年内に大会を開くこうと思います。
※Minecraft Piもあるし、Scratchで操作もできますし。


Read more ...

第四回CoderDojo Izumi 活動報告

2014年5月12日月曜日
第四回になるCoderDojo Izumiは、根白石市民センターで開催致しました。
参加者は、小学2年生から5年生までの7人で、初参加の子はいなかったので、各自思い思いに作ってもらい、分からないことがあればメンターに質問してもらう形式にしました。



今回もWedoで遊んでもらうことにしました。
キッズは休みもせず2時間ぶっ通しで創作に取り組んでおりました。Wedoは、LEGOブロックの種類が少ないのでブロックの貸し借りをしたり、アイディアを出し合って改良したりと自分たちで考えるという光景をみることができて、改めて「LEGO+Scratch」の効果を知ることができました。




気づいた反省点としては、LEGOブロックの組み合わせ方法が分からず思ったものを作ることができなかったり、最初にどんなものを作るかまとめる時間を取ることも必要だったことです。
CoderDojo Sendaiでも思ったことでしたが、「ねこ逃げ」や「ねこたたき」のようにWedoを使う場合も「導入」を意識したプロセスが必要だと実感しました。
今後もキッズが楽しみながら学ぶ方法を試行錯誤していきたいと思います。


最後にRaspberry PiのケースをLEGOで作ってきたご家庭があったので、こんなワークを開催するのもありだなと感じました。


Read more ...

Amazon EC2にMinecraftサーバーを構築する方法

2014年5月8日木曜日
家が離れている友達とMinecraftで遊びたいという相談を受けたのでAmazon EC2にMinecraftサーバーを建てる方法を書きます。

必要なもの

  1. Amazon のアカウント
  2. SSHクライアント

構築方法

作業の流れ
  1. Amazon EC2にインスタンスを作成
  2. 作成したインスタンスに接続
  3. Minecraft サーバーのダウンロードと設定

Amazon EC2にインスタンスを作成

  1. Amazon Web Services にサインインして、AWSマネジメントサービスを開きます。
  2. サービスの選択画面で、EC2をクリックします。
  3. Launch Instance をクリックします。
  4. Amazon Linux AMIのSelect をクリックします。
  5. Next:Configure Instance Details をクリックします。
  6. Next: Tag Instance をクリックします。
  7. Name を追加して、Next: Configre Security Group をクリックします。
    ※Nameしか設定していませんが、他に必要な項目があれば、追加してください。
  8. Security group nameとDescriptionに値を入力します。
  9. Type を Custom TCP Rule に設定します。
  10. Protocol を TCP に設定します。
  11. Port Range に 25565 を設定します。
  12. Source に Anywhere を設定し、0.0.0.0/0 を入力します。
    ※IPが分かれば、誰でも 25565で接続できる設定なので注意してください。
  13. Review and Launch をクリックします。
  14. Launch をクリックします。
  15. Create a new key pairを選択します。
  16. Key pair nameに「MinecraftServer」を入力します。
  17. Download Key Pair をクリックして、接続する鍵を取得します。
    ※ダウンロードした鍵はSSH接続で必要になりますので、保存したパスを忘れないようにしてください。
  18. Launch Instances をクリックします。
  19. インスタンスの作成が完了したら、IPアドレスを確認してください。

作成したインスタンスに接続

使用するOSによって方法が異なるので注意してください。今回は、Macから接続する方法を記載します。
  1. ターミナルを起動して、下記のコマンドを実行します。
    ※自分の環境では、鍵を$HOME/Downloadに保存しました。
    ※.ssh がないときは、移動する前に mkdir $HOME/.ssh コマンドを実行します。
    ※xxx.xxx.xxx.xxxには、インスタンスのIPアドレスを入力します。
mv $HOME/Downloads/Minecraftserver.pem.txt $HOME/.ssh/Minecraftserver.pem
chmod 400 .ssh/Minecraftserver.pem
ssh -i Minecraftserver.pem ec2-user@xxx.xxx.xxx.xxx
 ログインに成功すると下記のようなログが表示されます
The authenticity of host 'xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx)' can't be established.
RSA key fingerprint is 6f:ea:6d:7b:31:f2:da:c8:14:09:35:50:a1:ca:39:8d.
Are you sure you want to continue connecting (yes/no)? yes
       __|  __|_  )
       _|  (     /   Amazon Linux AMI
      ___|\___|___|
https://aws.amazon.com/amazon-linux-ami/2014.03-release-notes/
1 package(s) needed for security, out of 18 available
Run "sudo yum update" to apply all updates.
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ 

Minecraft サーバーのダウンロードと設定

まずは、Javaのバージョンを確認します。
バージョンが表示されないまたは、エラーになるときには、Javaがインストールされていない可能性があります。
$ java -version
java version"1.7.0_55"
OpenJDK Runtime Environment (amzn-2.4.7.1.40.amzn1-x86_64 u55-b13)
OpenJDK 64-Bit Server VM (build 24.51-b03, mixed mode)

wget コマンドを使ってサーバープログラムをダウンロードします。
※2014年5月現在の最新バージョンは1.7.9です。バージョンが上がったときは適宜読み替えてください。
$ wget https://s3.amazonaws.com/Minecraft.Download/versions/1.7.9/minecraft_server.1.7.9.jar

s3.amazonaws.com (s3.amazonaws.com) をDNSに問いあわせています... 207.171.187.117
s3.amazonaws.com (s3.amazonaws.com)|207.171.187.117|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 9604581 (9.2M) [application/java-archive]
`minecraft_server.1.7.9.jar' に保存中
100%[======================================>] 9,604,581   1.78MB/s 時間 5.4s
2014-05-07 13:59:18 (1.69 MB/s) - `minecraft_server.1.7.9.jar' へ保存完了 [9604581/9604581]

javaコマンドを使って、minecraftサーバーを起動します。
$ java -jar minecraft_server.1.7.9.jar nogui
Read more ...

Minecraftでマルチプレイヤーサーバーを起動する方法(仮)

2014年5月7日水曜日
CoderDojo Sendaiに通うキッドからMinecraftサーバーの建て方について質問があったので、まとめました。

目的

友達と同じワールドで一緒にプレイする

手順

  1. ここからmincraft_server.x.x.x.jar をダウンロードします。(2014年5月7日現在は、1.7.9)
  2. ターミナル(コマンドプロンプト)からコマンドを実行してサーバーを起動します。
  3. Minecraftを起動してマルチプレイヤーモードを開始します。

ダウンロード時の注意点

  1. Minecraftのページにログインが必要です。
  2. ダウンロードしたファイルの保存先を忘れずに。
minecraft_server.x.x.x.jarの「x.x.x」にはバージョン番号が入ります。ブログを書いたときのバージョンは、1.7.9なので、minecraft_server.1.7.9.jarとなります。

ターミナルからコマンドを実行する(Mac)

  1. ターミナルを起動します。
  2. cd コマンドでダウンロードしたフォルダ(ディレクトリ)に移動します。
  3. java -Xmx1024M -Xms1024M -jar minecraft_server.x.x.x.jar と入力して、サーバーを起動します。

コマンドライン(ターミナル)の使い方が分からないと難しいかもしれません。
分からない箇所は、コメントに残こしてください。補足説明を書かせて戴きます。
Read more ...

第拾参回 CoderDojo Sendai 活動報告

2014年4月30日水曜日
2014年4月26日に開催したCoderDojoは、5家族6人のキッズの参加でした。
初めてのキッズが3人、久しぶりのキッドが1人、常連さんが2人。

初めてのキッズには、いつものように「ねこ逃げ」を使って、Scratchの使い方に慣れてもらいました。

今回初めてのだったのは、中学生の子が参加してくれたこと。
中学生になるとプログラミングの授業があるので、どんなもんなのかと興味があり参加してくれたそうです。
(今後、部活が始まると忙しくなると思いますが、タイミングが合ったときにでも参加してくれるとうれいしいものです。)


久しぶりに参加してくれたキッドは、Scratch2.0で戦闘ゲームを作っておりました。
敵から発射された球が自機当たっても当たり判定できない問題が発生していましたが、どうにか解決できました。
ロジックは間違っていなかったのですが、自分で描いたイラストの中心を設定していなかったので座標にずれがあり、うまく動作していませんでした。
初めての子がいたので、対応が遅くなっていまい、申し訳ないことをしていまいました…

常連のキッズは、Wedoをやったり、自作のアニメーションを改良したりと思い思いのことをやってもりました。
※Wedoは、サンプルないし、マニュアルみないなものを用意しないとなと反省中…次回に間に合わせたいな。




Read more ...

第参回CoderDojo Izumi 活動報告

2014年4月7日月曜日
4月6日グレープシティさんの会議室をお借りして、第参回CoderDojo Izumiを開催しました。



今回の参加者は、小学2年生から小学5年生までのキッズ合計8人。
プログラミングチームとブレストの体操チームの2つに分けて2間半一緒に遊んできました。

プログラミングチームの主なメンバーは男の子。
前回から作成している対戦型ゲームの戦闘モードを実装したり、シューティングゲームを作ったり、今まで作っていたプログラミングを改良したりと思い思いに進めておりました。



ブレストの体操チームの主なメンバーは女の子。
今年度2年生になる女の子達は、以前に亘理で使った「Asopica」で楽しんでもらいました。
Asopicaは、普段使わない頭を使うので、最初は戸惑いもありましたが、なんだかんだで時間ギリギリまで、Asopicaにハマっておりました。




今回初めてグレープシティ社に入ったのですが、きれいな芝生の庭があったり、小さな滝があったりと、会社とは思えない場所でした。







Read more ...

亘理でAsopicaとScratchを使って遊び場作ってきたときのお話し

2014年3月22日土曜日
2014年3月21日に亘理で遊び場を作って子ども達と遊んできました。


もともとも地元は、隣町の山元町でした。
結婚して亘理町に住むようになり、早13年程。

機器の問題や、場所の問題もありなかなか開催に至っておりませんでした。
が、機器の準備も整い場所も確保できたので、今回の開催にこじつけることができました。


どんなことをやったかというと

  1. ASOPICAというブレストツールを使ってアイスブレイク
  2. Scratchを使ったプログラミング遊び
をしました。

ASOPICAを使ったアイスブレイク?

普段のワークショップでは、アイスブレイクをしないですぐにScratchを使ったプログラミングの学習に入るのですが、今回は試験的にアイスブレイクを兼ねてブレストツールであるASOPICAを使ってみました。

なぜ、ブレストツールを使ったアイスブレイクを行ったかというと、保護者の方やキッズと話したときに、アイディアが浮かんでも言っちゃいけないと思い込んで、意見を言わずに終わってしまっている人が多いなぁと思っていたからです。

どうせなら、なんでも思ったことを言える場所を作るとそんな親や子ども達はどんな風に考えて行動するのか見てみたいなと思ったので、今回導入してみました。

やってみた結果、かなり好感触で男の子たちは、「某カードゲームより、おもしろい!!」とおおはしゃぎしておりました。
こちらも、今後のCoderDojoやワークショップで取り入れていこうと思ったコンテンツでした。詳細な報告は、別途機会を設けてブログにできればと思ってます。



Scratchを使ったプログラミング遊び

いつもやっている「ねこ逃げ」を使って子ども達と遊んできました。


終始
すげー!!
おもしれー!!
ひゃっほーい!!

と、大騒ぎだったので、次回会場を貸してくれないんじゃないかと内心心配なほどでした。
流石に1人で5人のパワフルキッズを相手するのは無謀だなと思いましたが、終わったあとに「次いつやるの?ねぇ。次いつやるの?」の質問には、ものを作ることの楽しさを伝えるのには、良い言葉(質問)だったと思いました。



さて、次回はいつ開催しようか…

Read more ...