DojoMeguri in Tottori に参加してきたので簡単なレポート
経緯
よく覚えてない、というか気づいたら参加することになってました。う~ん、どんな風な感じでこうなったんやろ。
うろ覚えの状態ですが、たぶん、一か月ほど前?のTwitterで、「DojoCon JPというイベントで、すげぇ奴が最優秀賞を受賞した!」ということが流れていて... (僕も参加したかったけど学校があった(´;ω;`))
んで、CoderDojo 大山のChampion(主宰)さんが、その最優秀賞を受賞した方の一人と、その他、中学生でメンターやってる奴ら集めて交流会兼CoderDojoしようぜ!!という話になって、元々そのChampionさんとは面識があったもので、僕も参加させてくださる事に。
様子
以下のツイートを見てくだされば。
グループプログラミング、スタート!! pic.twitter.com/Ss4tCFC4f0
— キューティクル🔥海夢 (@KaimuMaeta) 2017年12月23日
#coderdojo大山 #coderdojo
— ゆ~さん 💻 ☯️ 🇯🇵 (@yu_san_19) 2017年12月23日
道場巡り in 鳥取 に参加中です! pic.twitter.com/ivoNsc47JP
今日のレゴ! pic.twitter.com/FYSGhGppP2
— ゆ~さん 💻 ☯️ 🇯🇵 (@yu_san_19) 2017年12月23日
↑ 結構おもろい作品できましたよ!!あとなぜか写真に写る僕の顔は毎回怖くなるんだよな...
あとで主宰の方から共有されるそうなので、されたら詳細とそれぞれの感想を追記しますー。
所感
すげぇ、と思った事
ジュニアメンターの一人である、 yuki384 さんのデザインというか絵心、センス?
季節に合わせたテーマで作品作ったり、すごかったです。
あと、彼女、とても大人な考え方で...
ツイートの内容からしてもそうだし、しっかり冷静に物事を見てる方なんだなーと。(自分は結構感情的になりやすい。というか、なった。)
うちのメンターさんからもスゲェぞ、と聞かされてたんですけど、いやもうびっくり。
yoshiki さんというジュニアメンターさんもすごかったです!
いやぁー、Scratchであそこまでできるとは思いもしない...
発表してたりする時なんか、気絶しそうなぐらい。いや、ホント、Scratchであっこまでやられたらほんとに気絶しますよ、まったく。
もっとスクリプトの方を見たかったんですけど、なんせチビッ子たちに絡まれてたもんで... すんません。
(なぜか僕ってチビッ子にはモテるんですよね、この前も全く知らないチビッ子に絡まれたりしたり。)
グループプログラミングでは、山本さんっていうジュニアメンターのチームも面白かったですね、かなり独創的なアイデアのゲームを作っていて...
バスで敵キャラを倒していくんですが、その方法はひき殺すんでなくて、バスから発射されるレーザーで倒すという...
発表会でも結構沸いてましたね~!!
いやはや、世の中ではいろんな人がいるんだなぁと。
疑問に思った事、気になったこと、吸収したこと
世の中というか、そういう分野
スゴイ人たちがたくさんいるんだな、という事。
技術的な事
オブジェクト指向を完璧に学習するともっとできるようになる、とメンターさんから教えていただきましたー!
あと、もうちょっとわかりやすい変数の命名方法にしたほうが良い場合があるらしい。
(そーいや、Javaで変数名を似たようなものにしたばかりに五時間ぐらい考えこんだ事もあったような。)
リーダブルコードだったっけ、ここだけじゃなくて他のところでも必ず聞くぐらいの本だけど、いまだに買ってない...
あと、プレゼンとか発表上手だね!って言われました。
岡山 岡南 のメンターの方々がいろいろとご指導してくださったおかげかもです!
まとめ
世界って広くて狭い
今回、総じて一番改めて強く思ったことは、
世界って広くて狭い ということかなー。
やはり、様々な価値観を持ってる方や、素晴らしい技術、自分とは一致しない考え方を持った方がいるし、そういう意味では世界って「広い」なと思いますし、でもこういう三十人ぐらいのイベントでこんなに様々な方にお会いするというのはある意味「狭い」な、とも感じられる。
そういう広くて狭い世界で、活躍、というほどでもないけれど、上手く活動できるような大人になりたいな、と思いました。
あとは絵心欲しい、デザインの感覚欲しい。センス欲しい。うらやましい。デザインもできてプログラミングもできるって最強じゃん。マジで。
今後もどんどんこういう系のイベントや交流会、勉強会に学校がないときに参加していきたいなーと思います!!(特に中高生が多めのところ。どっかないですかね!?)
ということで様々な刺激を受けた一日でした。準備してくれたCoderDojo 大山 の方、それから県外から来られたメンターさん、juniorメンターに、いろいろと絡んでくれたNinja達、ちょっと最後はバタバタでゆっくりお別れできませんでしたけれども、どうもありがとうございました。
また今度は是非 CoderDojo 岡山 岡南 に来てくださいねっ ^^)ノシ
「自動で卓上ベルの音を発表会で鳴らしてくれる機」を頑張って作っているので、学習したことをまとめる。
つくったもの
Dojoで時間制限付きの発表会をしてたけど、あまり人手が足りないので、なんなら自動で鳴らそうか、と。 下のツイートの動画がそれ。デザイン系は全然やってない...(Help Me...)
なんとかGitをもとに戻して、ここまで完成。 土曜日までに間に合った... けど、Bluetoothのスピーカの調子が悪い.. PC側が悪いんかな... pic.twitter.com/xkGs0gWVvw
— ゆ~さん 💻 ☯️ 🇯🇵 (@yu_san_19) 2017年12月14日
機能
- スタートしてから設定した時間になったら「チンッ」とならす。
- 音楽ファイルは自分で設定できる
- タイマーだけでなく、単体で好きなタイミングで鳴らせるようにもする。
ただこれだけ。
使ったツールや環境
- C#
- Visual Studio 2017
- Win10
んで、わかったこと・嵌ったことなど。
Form のスレッドに直書きで Thread.Sleep()
を実行すると、そのままFormもSleep状態になる。
- 解決策: 普通に別Threadに切り出す。でも、わざわざ新しいThreadクラスを作るほどバカではないので...
// PlaySound(int i) はそのまんま音鳴らす。 Task task_play_sound_auto = Task.Run(() => { Thread.Sleep(time_1); PlaySound(1); Thread.Sleep(time_2 - time_1); PlaySound(2); Thread.Sleep(time_3 - time_2); PlaySound(3); }); }
Task.Run
を使う。これでOK。
音楽鳴らす方法がわからん。
- WMP Lib を使って頑張った。
//オーディオファイルを指定 mediaPlayer.URL = 'FilePath'; //再生 mediaPlayer.controls.play();
ユーザーの設定を保存したい
プロジェクト > [プロジェクト名] のプロパティ >設定
を開く。すると、下のような画面が。
名前に、プロパティ名、種類に型を入力、スコープはユーザーにしたらOK。 すると、
Properties.Settings.Default.「プロパティ名」 = "値"; Properties.Settings.Default.Save(); // これがないと保存されない
で各種パラメーターの保存ができる。
これはユーザーの設定以外にも使えそうな感じ...?
最後に
一番時間がかかったのが、Task.Run()
と、音を鳴らすやつ。
別のスレッドにリソースが占有されちゃって、音が鳴らなくなったり、みたいなことがあって、結構難しかった。 (正直そこまで詰まるとは思わんかった...)
でもやっぱ、C#のほうがまだわかる感じ。(今頑張ってRailsやってるので...)
まあ、これでいろいろと理解できたのでめでたしめでたし。
一応、使ったツールやライブラリのライセンス確認して、問題なかったらGithubに載っけるので、間違いあったら容赦なく嬲り殺してくださって結構です^^
追記 Github にようやく載せれた。