情報系を学びたい学生は高専に進学すべきか?
高専の情報系出身者が,あくまで「高専全体」ではなく,「高専の情報系」という限られた観点のみから話をする.
世間一般的に高専の認知度はそこまで高くない.
今まで自分自身も,自己紹介で「高専生です.」と名乗ると周囲の友人や普通の大人からは「専門?」と聞き返されるのが頻繁にあった.
しかし,世間一般の認知が低いからと言って,大学へ進学出来ないという事も無ければ就職が出来ないという事も全くない.
現に自分も,高専の情報系を卒業し,今は大学に編入している.
www.nikkan.co.jp
最近ではこんなニュースも話題になった.
少し話がそれるが,
高専では,就職はワイルドカードを使っていると言っても過言でない.
これはおそらく殆どの高専がそうであり,高専の卒業者は大手のメーカに勤めていたり,大手のインフラ系に勤めているケースが少なくない.
また,情報系に限った話ではなく,これは一般的な高専生の就職先のケースとして挙げられるものである.
(しかし,「安く雇える即戦力」として扱われるケースも多いと聞く.この辺りの本当の実態はよく分からない.)
本題に戻る.
最近,「情報系をやりたいので高専に入りたい.」という相談を中学生やその保護者さんから受ける事があった.
この場では,中学生が安易に情報系に道を絞ってしまう危険性と,社会的な「情報系の」高専生の評価という2つの観点から進学すべきか否かを考えたい.
情報系を学びたいという中学生でも,大きく分けて3パターンが存在すると思っている.
1. 「ぼんやりと情報系に興味がある」という方
2. 「いずれ情報系を学びたいと思っており,大学進学後に学ぶよりも高専で学んだ方が3年早く得できるのでは」という方
3. 「バリバリプログラムが書ける猛者達が集まっているんだろう…俺はここでやっていけるのだろうか…」と武者震いしている方
「ぼんやりと情報系に興味がある」という方
このパターンが正直一番危険だと思っている.
下手な事は言わないのでやめた方が良い.
学科にも寄るだろうが,大体の高専は1年にしてプログラミングの実習が始まる.
1年生,2年生にして大体のプログラムが書けるようなカリキュラムになっているが,このパターンの子は低学年にして挫折する事が多いと思う.
「そもそも自分はプログラムを書くのに向いていない」と感じる子が低学年にして大多数を占めていた.
例えば何かを制作する自由課題が出た時に,この向き不向きは顕著に表れる.
向いている子・強い興味関心があった子の方が上手く結果を出せるのは当然であり,何となく興味があって進学した子は強い嫌悪感を抱いて課題に取り組むことが多い.
また,この手の課題は低学年に始まり,卒業するまで何らかの制作は行い続ける必要がある.
興味を失くしてしまった子は制作するのも他人任せであったり,嫌々取り組んでいる子も少なくなかった.
これはあくまで経験であるが,卒業時までに情報系に強い興味関心を持って取り組んでいたのは40人中10人にも満たなかったと思う.
ぼんやりとした興味関心が,強い興味関心に変わるのは,環境に加えて自分自身が能動的に取り組む必要があるので博打的要素が強い.
普通高校に進学してから,自分自身でその分野を調べ,それでも更に興味が湧くようであれば大学からでも遅くないと思っている.
「いずれ情報系を学びたいと思っており,大学進学後に学ぶよりも高専で学んだ方が3年早く得できるのでは」という方
このパターンの子は是非高専に来て勉強すべきだと思う.
情報系を学びたいと考えている以上,何かしら情報系に興味があるはずなので,その興味関心は高専に進学すればきっと広がると思う.
一つ注意すべきパターンの子が「自分でゲームを作りたい」という理由で高専に進学してくる子だ.(今こそまるで興味が無くなってしまったが,当時はそうだった.)
高専のオープンキャンパスなどで先輩が作った凄いゲームを見て「カッケ―!」と思って進学する子は要注意.
授業でゲームは作らない.
大体作っている人は能動的に,あくまで自主的に作っている人であり,「授業でゲーム作りたい」という受動的な考えだと入ってからギャップに後悔する.
しかし,同じような志を持って高専に進学してくる人は何故か多い.
高専はそういった観点から観ると,人生の早い時期に同じ志を持つ仲間と出会えるというメリットもあるので良いと思う.
また,情報系に興味がある以上,何かしらの他の情報分野に使える技術は学べる.
ゲームは作れなくとも,ゲームを作る為の基礎は理論的に学ぶことができると思っている.
「バリバリプログラムが書ける猛者達が集まっているんだろう…俺はここでやっていけるのだろうか…」と武者震いしている方
そんな期待はしない方が良い.
大体の人は入学して初めてプログラミングをする子が多いので,そんな強い人は全体の1割未満と考えてよい.
同じ猛者を求める人は,高専プロコンに参加するか,ロボコンに参加すると良いと思う.
また,最近ではIT系の企業がエンジニアとしてアルバイトを雇ってくれるケースも多い.そういったコミュニティから仲間を作れば不満は感じにくいのではないだろうか.
(それでも先述したように,同じクラス内で能動的に取り組む人はせいぜい10人程度と考えてよいので,クラスでの不満は募るかもしれない.これは仕方ない.)
高専の授業は,出来る人に足を揃えず,出来ない人に足を揃えて行う授業が殆どだ.(それでも留年率は5年間で1クラス8人が消えると考えてよい 厳しい世界)
そのような環境の中で,出来る人が授業に対して満足できることは少ないかもしれない.
しかし,何故か出来る人に限って留年する率が高いのも事実である.
自分が見てきた,聞いてきた殆どのケースは,「自分のやりたい事に没頭しすぎて授業に出ない/テスト勉強をしない」ために留年するようだ.
普通高校でも大学に進学すれば情報系の勉強は出来るうえ,早い段階で闇落ちするよりは高専に進学しないで適度な束縛の中で勉強をした方が親孝行かもしれない.
ただ,これは極端なケースであり,実際に優秀で,能動的に勉強をし,かつ自分の趣味のプログラミングも両立して行っている人も存在した.
高専は,普通高校と比較して比べ物にならないくらい自由なので,自由をはき違えずに有効活用すればきっと高専生活は良いものになるのではないだろうか.
社会的な評価のこと
IT系に限っては高専の情報系出身の学生の評価は高いと思う.
IPA主催のセキュリティキャンプでの関わりをはじめ,今年は計4社インターンに参加したが,どの会社でも高専生の評価は高かった.
自虐的な高専生もよく見るが,このような評価にはもっと自信を持った方が良いと思う.
(その分期待も大きいので,しっかり応えられる人間にならねば とも感じた.)
また,大学的にも高専出身の学生の評価は高い様に感じる.
大学に関しては,色々な大学の話を聞く限り,内部生よりも編入生の方が出来る割合が大きいという話を頻繁に耳にする.
学部2年の年齢で殆どの高専生が卒業論文に着手しており,そういった意味での専門性も高いと感じる.
(他の内部生より始めるのが早いのだから当たり前といえば当たり前かもしれない. 中学生にして高専に入る覚悟を持っているのだから当たり前と言わずに評価されるべきとも思う.)
自分のこと
私も高専出身であり,中学生の頃は2番目のパターンに該当している人物であった.
しかし,早々に情報系の分野に挫折し,高専が嫌になっていた時期もあった.
結果的に今は好きな学問を見つけ,それを追求しようと日々取り組んでいる.
自分自身が高専1年生に戻るとしたら,「能動的に,色々な事に興味を持ってほしい」.
学問である以上,何かしらの興味があれば,そこから爆発的に成長するケースも少なくない.
結局,自分が本当に興味がある事に出会ったのは高専4年になってからであった.
高専の先生方は親身に相談に乗ってくださるし,友人も皆良い人達だった.
もう戻りたいとも思わないが,高専という環境下で情報系を学べたのは本当に良かったと感じている.
高専は低学年と高学年で印象が変わるところだと思う.
より専門性が問われるのは高学年になってからなので,どれだけ低学年の間に色々な事に興味を持てるかが重要だと本当に感じている.
色々なご意見お待ちしております.
【TechDesignCAMPエンタメ編】サイバーエージェントのインターンに参加してきた.【2015】
表題の通りです.
機密(ソースコードなど)に触れない程度のお話はしても良いそうなので,ありのままの気持ちを話したいと思います.
参加したきっかけ
そもそも私がこのインターンを知ったのはサイバーエージェントさんのエンジニアブログを読んでからでした.
元々サイバーエージェントの秋葉原ラボの記事を読んでいたりしたので,会社自体にも興味があっての参加でした.
また,エンタメ編(ゲーム作る系とエンタメ事業系があった)を選んだ理由ですが,これは3つあって,
1つ目は他のゲーム系には興味が無かったこと.
2つ目は他社のインターンにも興味があったので長期は選択肢になかったこと.
最後はエンタメ事業で使われている,サービスの中身のデータマイニングや関連アルゴリズムに興味があったことです.
なので「開発バリバリです!」みたいな人ではないので,参加者の中では珍しいタイプだったと思います.
エントリーシートからインターン決定まで
某逆求人でサイバーエージェントさんが参加していることは知っていたのですが,サイバーさんが参加していたイベントに参加をしていた訳ではないので選考スキップ等は無く,1から選考に参加しました.
エントリーシートを一人でガリガリ書いて,無事に面接までたどり着き…という感じでした.
面接は,私の場合は1次と2次の2回で,1度目は技術部門の担当の人事の方,2度目は技術系やデザイナーさんなどの採用責任者さんでした.(怖い)
話した内容は色々ありますが,私は自分が興味のある事や作った事のあるもの,研究していた事などアレコレ話しました.
一般的なフロントエンドやサーバサイドとも言えないニッチな分野だったにも関わらず,理解を示してもらえるのが楽しくて話していたという感じでした.
会社の雰囲気や内容なども伺う事ができて,とても楽しかったのを覚えています.
インターンの内容
このインターンは,エンタメ事業部の既存の「AWA」と「宅スタ」をより良くするアプリケーションを作るという内容のものでした.
また,メンバーはエンジニア2人,デザイナー1人の3人チームでした.
どのような技術選定で,どのようなものを実際に行うのかは知らされておらず,インターン開始の数週間前になって「(iOS,Androidの)ネイティブアプリで作る」という事を知りました.
私はネイティブアプリを生まれて一度も書いた事が無かったので,参加が決まった事を凄く後悔してました.(メンバーに迷惑をかけると思って)
期間に関しては6日間(土日も合わせると8日間)で,1日単位では10時から19時の間で行ってました.
実際は私の場合は8日間フルで10時-22時(業務終了後に自主的に残って)とか平気でやってました.
これだけ聞くと悪い印象があるかもしれないですが,実際は全然そんな事もなく,全期間で内定者メンターさんが一緒に協力して下さったり,中のエンジニアさん,デザイナさんが10人以上(もっといたかも)一緒に協力をしてくれる物凄いサポート体制でした.
特に内定者メンターさんには本当に付きっきりでペアプロして頂きました.一緒に理論からロジック,実装まで考えて頂き,この期間で0だったAndroid力が圧倒的成長したのは言うまでもないです.
また,環境も良く,筑波からの交通費に加えて宿泊先を期間中に加えて前泊後泊まで用意して頂きました.本当に感謝してもしきれません.(しかも日給1万円!!)
環境も良ければインターンに関わる方々もいい人ばかりでした.メンバーをはじめ,一緒に参加していた他グループのメンバー,人事の方々,エンジニア,デザイナの方々,色々な人たちが全力で協力してくれました.
お陰で期間中は全然辛くなく,楽しくて楽しくて延々と夜まで開発している感じでした.
余談あれこれ
「楽しくて楽しくて延々と開発していた.」と書きましたが,冗談抜きで楽しかった!
その証拠としていくつかツイートを載せておきます.
新デザインの水貰った pic.twitter.com/9pzBNZJVn1
— しょぺたん (@ss_shopetan) 2015, 9月 3例えばお昼ご飯支給してくれたりとかサイバーエージェントの水飲み放題だったりとか.
サイバーエージェントでセキュアなStatic🍣を食べました😊
— しょぺたん (@ss_shopetan) 2015, 8月 29例えばStatic🍣の差し入れがあったりとか.
おやつにレッドブルを頂いたので美味しく頂きました😊
— しょぺたん (@ss_shopetan) 2015, 8月 29例えばおやつにエナジー注入が出来たりとか.
こちらがサイバーエージェント新着情報になります。 pic.twitter.com/M675LH3c6F
— しょぺたん (@ss_shopetan) 2015, 8月 31例えばオフィスの自販機がこんなことになってたりとか.
サイバーエージェントのインターン優勝しました✋
各位お世話になりました.
優勝商品は最新のMBPかiMacです.
— しょぺたん (@ss_shopetan) 2015, 9月 3例えばゴリゴリ開発してた結果,こんなことになったりとか.
(これは冗談抜きでメンバーに恵まれて優勝できました.足引っ張ってばかりでしたがメンバーの2人,本当にありがとう!メッチャ楽しかった!)
サイバーエージェント最高すぎる pic.twitter.com/7gpJcbAh2j
— しょぺたん (@ss_shopetan) 2015, 9月 3例えば夜景の綺麗な都内某所が打ち上げの会場だったりとか.
まとめ
約1週間の開発でしたが,丁度良かったです.(多分これ以上短いと制作物の質も悪くなっていただろうし,これ以上長くても疲れてしまってたと思うので.)
とても濃密で価値のある時間になりました.
とにかく技術力があり,魅力的な方々の多い会社だと改めて感じ,自分の目指す場所を考えるいい機会を与えてもらったと思ってます.
技術面でもサーバサイド寄りからネイティブやフロントエンドも触るきっかけにもなって,フルスタックエンジニア感増しました.強くなった感半端ないです.
関係者各位ありがとうございました.また是非お伺いします!
【Security Camp 2015】セキュリティ・キャンプ全国大会2015に参加してきました.【#seccamp 】
5日間に渡るキャンプの参加記事になります.
About me
HN: しょぺたん
年齢:0x14
Like:機械学習, 自然言語処理, データマイニング
日常的にやってる事:Web Developer, Researcher
Securityに関する知識:(ほぼ無かった)
来年以降,参加したいと思っている方へ
記事が長くなると伝えたい言葉がボヤけるので先に結論からお話します.
冗談抜きで5日間が宝物になりました.
情報系に身をおいてから,このキャンプ以上に密度の濃い時間を過ごした事が無いです.
今年は,参加者50名に対して講師・チュータを始めとした方々が45名以上と恵まれたキャンプとなりました.
参加しようとしている方,惜しくも今年参加出来なかった方もいらっしゃると思いますが,来年度以降もチャンスがある方は
まずは絶対に応募用紙提出しような.
セキュリティに興味が無い方もいらっしゃると思いますが,興味ない人こそむしろ参加した方が良いかもしれません.
セキュリティ・キャンプに参加すると,
セキュキャンのおかげでmacが強そうな感じになった #seccamp pic.twitter.com/vYuoLm6XSJ
— ζλσρεταη★ (@ss_shopetan) 2015, 8月 16こんな事になったり,
頂いたグッズ等まとめ 本当にありがとうございました。 #seccamp pic.twitter.com/QQjDN86VOt
— ζλσρεταη★ (@ss_shopetan) 2015, 8月 15こんな事になったりします.しかも,全額無料で.
今年は「未解決問題に対してどのようなアプローチを仕掛けるか」というテーマのグループワークがあり,
最終日に講師・チュータさんをはじめ,協賛の企業さんや関係者の方々,に向けて成果発表をするセッションがありました.
セキュキャングランプリ頂きました。ありがとうございました。 #seccamp
— ζλσρεταη★ (@ss_shopetan) 2015, 8月 15セキュリティを知らなかった人間でも沢山の方々に評価を受け,グランプリをいただくことが出来ました.いえーい
今までセキュリティに興味が無かった人ほど吸収できることは多いと思います.
Q.「全然分からなくて申し込むのすら億劫」
A.申し込まないと永遠に分からないままかもしれないです.
逆に気持ちさえあれば,何倍も知識の吸収ができます.マジで.
また,分からなくても事前学習があるのである程度のところまで引き上げられます.
授業についていけないと思う人もいると思いますが,講師やチュータの皆様のお陰で 分からなかった私でも最後まで完走できました.
Q.「大体知ってるし行かなくてもいいわ」
A.知ってる人こそ参加すべき.
これだけすごい人が集まってるのってなかなか無いですよ.
出来る人に合わせた授業も多く,基本的に知ってる人はどこまででも成長できる機会なのではと思いました.
また,嫌でもすごい人たちに囲まれます.参加者も大抵何かの分野で強い人達です.
こうしたコミュニティって中々形成されないと思うので,人脈を広げるという観点でも非常に価値があると思います.
また,参加してみて面白かったのは,
解答用紙を提出しただけなのに、何故かセキュキャンにはキャラの濃いキャンパーが集う現象に名前付けて下さい
— ζλσρεταη★ (@ss_shopetan) 2015, 8月 14本当にこれ.
参加したきっかけは?
後述する応募に関する資料でも確認出来ますが,自分の興味関心分野に役立てたいという思いがありました.
セキュリティのスペシャリストを目指していた訳ではなく,普段の自分の活動に活かしたいという気持ちが強いです.
加えて,開発者サイドとセキュリティサイドがあるとすると,ぼくは完全に開発者サイドの人間でした.
(開発者サイドと言うと語弊があります 本当は研究者サイドの興味関心が強いです.)
参加まで
shopetan.hatenablog.com
ここに事前課題に関する以前の記事があります.
参加決定後は事前課題に追われていました.
後は,積極的にCTFを始めたりですかね.
CTFは,ゲーム感覚で脆弱性などを発見しポイントを競うものです.
一日丸つぶれするくらい楽しいので一度触ってみる事をオススメします.
ここで頑張った知識がキャンプでも何度か役立ちました.
参加直前
とにかく名刺を沢山刷りました.100枚では足りないとのアドバイスも貰ったので200枚刷りました.
結果的に本当に100枚近く交換したので準備してよかったです…
後は,
参加3日前: Rock in Japan 2015参加(全然寝てない)
参加2日前:某社で30時間ハッカソン開始(まったく寝てない)
参加1日前:ハッカソン終了 夜中に帰宅後 即キャンプ準備(準備に追われ全然寝てない)
参加当日:グロッキーな状態で初日を迎える.
こんな事にならないためにも,是非余裕を持ったスケジュール管理をして下さい…
参加初日
かなり大勢の方々と名刺交換して頂けました.
あんまりにも人が多いと覚えてもらうのに困りそうだったので,海にでも行くような格好して行きました(結果的に色々な人に自分を認知してもらえたのでよかった)
初日は開講式,特別講義と題してプレゼンがありました.
また,初日の夜には早速専門講義が始まりました.
以降専門講義が続くわけですが,専門講義は人によって選択している講義が違います.
私は高レイヤを中心に選択していましたが,他にも低レイヤ,検知,解析と4つのトラックから選択できる形でした.
私が講義中にメモした,各講義の内容はGistでシェアしたいと思います.(必死にメモったので雑ですが,結構ボリュームあります.)
セキュキャン2015講義メモまとめ · GitHub
こちらに全メモがありますのでご自由に確認して下さい.
2,3,4日
本当に朝から晩まで講義です.
朝8時30分にスタートし,22時に終了です.
例年寝坊して遅れる人がいるようですが,今年もいましたね.
ちなみに就寝は23時でした.皆さんちゃんとに寝てました.(寝てました.)
同時にグループワークもスタートし,講義の合間を縫って講師の先生方にインタビューをしたり,ディスカッションをしたり,プレゼン書いたり…
実際,体調的にはかなりしんどいですが,皆さんちゃんとに寝てましたので元気でしたね.(元気でした.)
ご飯も3食きちんと食べられますし,食事中も色々な人とお話ができるので楽しかった!
最終日
グループワークの成果報告会がありました.
僕達のグループは近年市場の規模が懸念されるブラックマーケットに焦点を当てて問題解決に取り組みました.
結果的に9チーム中1位のグランプリを頂けました.
(ふざけたスライドですが)よくまとまってるとのコメントも頂けたので宜しければ何かの参考にして下さい.
また,最初にtweetを埋め込んだように,協賛企業の方のグッズや,講師の先生方が書いた本など,沢山いただくことが出来ました.
壮観すぎる pic.twitter.com/p4cst14ZlF
— ζλσρεταη★ (@ss_shopetan) 2015, 8月 15
まとめ
非常に有意義な5日間でした.
僕自身もかなり成長できたと思っています.そういった意味ではチャンスを活かせてよかった!
興味があるなしに関わらず,この記事で何らかの参考になれば幸いです.
時間ごとの詳細な感想も他の参加者の方がきっと書いてくださると思います.
本記事は,次回以降の参加者に参考になるように執筆しました.
何か質問や問題があれば遠慮なくお声がけ下さい.
ありがとうございました.
講義資料のまとめもあるようなので是非ご参考にして下さい.(私はメッチャ参考にしてます!)d.hatena.ne.jp
セキュリティ・キャンプで"""最高の夏"""にしような.
GitHub Shopでグッズを共同購入した.
届いたぞおおおおおお pic.twitter.com/DKjT7MfZ16
— しょぺたん (@ss_shopetan) 2015, 7月 25エンジニアならGitHubを使った事がある人,使っている人は多いのでは無いでしょうか.
かく言う私も最近GitHubを活用してアレコレとコード書いたりなんなりしているので,ここのマスコット,Octocatちゃんへ愛着があります.github.com
この左下の猫ちゃんね
買いました.
twiPlaというサービスを活用して,一緒にグッズを買ってくれる人を募りました.twipla.jp
手順メモ
支払い方法
購入時に何で買いますかって聞かれます.
過去に購入していた人は皆Paypalを使っていたようなので,私もPaypalからの支払いをしました.
Paypalでは,住所を記入する欄があるのですが,日本語の住所だと届かない事があるようなので,海外向けに英語を書きなおしてやる必要があります.
実はこんなサービスがあるので,オススメです.
郵便番号とかを入力したら,サクッと海外用に変換してくれる便利なものです.
支払いが完了したら
当然ですが支払い完了のメールが届きます.
支払い時は当然ドル換算ですが,この支払いのドルに加えて,配送料や関税がプラスで掛かります.
私の場合は,
Subtotal : $244.00 USD
Shipping : $76.05 USD
Total : $320.05 USD
こんなかんじで引き落としされました.
このShippingが送料ですね.今回は関税は掛かりませんでしたが,送料が非常に高かったです.
従って,購入は共同購入がオススメですね.
起きた問題
注文から配達まで,約1周間程度で到着しましたが,配達時に問題がおきました.
と言っても大きな問題でもないのですが,配達用の小包には住所しか記載されていなかったようで,不在扱いで最寄りの住所の発送所に戻されてしまいました.
GitHub側で発送された時点で「Shipping confirmation for order #*****」というメールが届くので,そのメールで郵便物の発送状況が確認出来ます.
そこに記載されてある番号を,trackings.post.japanpost.jp
こちらに記入したら現在どこに荷物があるのか確認出来ます.
ここで,最寄りに連絡をして届けてもらう形を取りました.
まとめ
簡単ですが購入した事と,起きた問題について書きました.
常時品物が入れ替わるようなので,今後もし購入する方がいらしたら便乗したいのでご一報下さい😊
【Slack+Githubによるissue駆動開発】バックエンドが一行で書けるMilkcocoaを使って落し物共有サービスを作った話
表題のとおりです. github.com
github.com
github.com
この3人を中心に落し物共有サービスを作ってました.
期間はゆるりと週末開発で1ヶ月くらいです.
作った.
LMP -落し物をシェアし合えるサービス-
正式名称は「Searching Lost Property with Milk」です,ちょっと長いですね.
(いまXSS対策してないから各位いじめないで)
なにこれ
落し物を共有し合えるサービスです.
こんな特徴を持ったサービスです.
- 落し物を共有する.
- 落し物情報を検索する.
- ユーザの落し物登録に応じて階級がアップする.
(一番下はまだ未実装です.)
まだβ版なので,データのストアが出来て,ストアしたデータを閲覧出来るくらいですが.
テストデータとかも普通に残っているので,本運用する場合はデータ整理してちゃんと運用しないといけませんね.
どんな風に作ったの?
基本的にはjsゴリゴリです.
デザインはHonokaという日本語も美しく表示できるBootstrapテーマを使いました.honokak.osaka
フロントエンドは自分達でやりましたが,バックエンドはmilkcocoaというサービスを活用しました.
コンセプトは新しいサービスから新しいサービスを!
(既に競合サービスがあったのは後に知った.)
What's Milkcocoa?
簡単な話,バックエンドを1行でやってくれるサービスです.
<script src="https://cdn.mlkcca.com/v2.0.0/milkcocoa.js"></script>
こんな感じで一行書くだけで簡単に利用を始める事ができます.
こちらが公式ページです.
簡単な会員登録をしたらすぐに利用を始める事ができます.
チュートリアルに「10分で自作チャットアプリを作る」なんてものもあります.
使ってみてどうだった?
データの容量やセッション数などの制限はありますが,簡単にバックエンドを実装できるほどの強みは無いと思います.
特に,バックエンドを知らなくても殆ど自力で書く事が出来るのは強みだと思っています.
また,日本人のエンジニアの方が始めたサービスなので,ドキュメントが日本語である点や,teratail.com
このteratailと連携して開発者さんが自らmilkcocoaに関する質問の回答をしているのも利用者にとってはありがたいかもしれませんね.
もっとMilkcocoa
Milkcocoaがどれだけ凄いかはこちらでわかります.qiita.com
ちなみにこちらではMilkcocoaを活用した事例がGitHubで公開されています.github.com
Advent Calendarはこちらqiita.com
どうやって開発したの
Slack + GItHubによるissue駆動開発をしました.
分かりやすいのは以下の記事ですね.qiita.com
私達は週に1,2回会って話せる程度なので,基本的には各自個別の作業が中心です.
チャットをSlackで,開発はGitHubでForkしてPR&Merge形式で機能追加を行っていきました.
Slackの良い所は3つあります.
- チームで共通のルーム名とpassで部屋が作れるところ
- 真面目な話はここ,雑談はここ といった感じで話の内容ごとにチャンネルを複数自由に作れるところ
- GitHubと連携が出来るので,誰かがcommitをすればすぐに反映されるので各自の開発状況が分かりやすいところ
大きく分けてこんなかんじです.
私達の場合はGithub通知用のチャンネルを作って,そちらに逐一自動でcommitやPR情報が表示出来るようにしてました.
ページはこちらを参考にしました,qiita.com
また,各自個別で作業をするわけですが,その中で「あれが実現できない」「何故かバグった」などなど,色々な問題が発生しますよね.
そういった時に,GitHubのissueを活用することによって問題を自分の中に留めずに共有するということを意識しました.
例えばこんな感じですね.
milkccaにデータを送る際に正しくデータをストア出来ない件 · Issue #20 · shopetan/LPM · GitHub
進捗状況や,問題発生などを積極的に公開していくことで,自分一人で悩まずに効率的に開発が進められました.
自分は助けを求められるし,他の開発者は問題共有やコードレビューを自然に行えるのでオススメだと思います.
まとめ
LMP -落し物をシェアし合えるサービス-
を作った!
Milkcocoaつよい!
Slack+Githubによるissue駆動開発最高!
OSSとしてコードを公開しているので,協力してくれる方がいたら是非一緒にLPMを作りましょう!
github.com
IoT縛りの勉強会に参加してきた!
TECH LAB PAAK さんの会場で行われた,
IoT縛りの勉強会! IoTLT vol.5に参加してきました.
twitterでmilkcocoaのKawanoさん(Yohei Kawano (@bakuonboogie) | Twitter)からお誘いを受けて急遽参加できました!mlkcca.connpass.com
以前開催していたこちらのイベントで,IoTに触れたのが始まりで,抵抗なく勉強会に臨めました.
どんなイベントなの
文字通りIoTオンリーのイベントです!
IoTのイベントではあるのですが,フロントエンドエンジニアの方が大多数を占めており,IoTが如何に注目されてるかがわかりますね.
夏以降,Edisonを使った制作を行うので私としても良い機会でした.
やったこと無いけど大丈夫なの
大丈夫だと思います.敷居は低いです.
初心者向けを対象としたイベントではないですが,初心者向けのLTもあり,私みたいなクソザコでも楽しく聞けました.
登壇者の方もフロントエンドエンジニアが多く,実際に分からなかった目線からお話があったりもしました.
感じたこと
登壇者さんが何人かお話していたのですが,
「IoTはモノを介して様々なサービスを提供する手段」という言葉が響きました.
自分は学生ですが,ユーザがいて,マーケティングを考えてとか,もう少しビジネスよりの考え方が重要かなぁとしみじみ.
マイコンはフロントエンド スマホがセンサという考え方がしっくりきました.
総じて
クリエイティブな方々ばかりで刺激的なイベントでした.
身近な疑問や困っている事を,モノの媒介を通してサービスとして提供するのを意識いて自分自身もアレコレ制作に携われたらなぁと思います.
モノのサービス・モノのデザインですかね,今後大事なことは.
しょぺたんメモ
- fritzingという回路図作成ソフトが直感的にやれそうで敷居が低くなるかも?
- IoT × クラウドファンディングも熱いらしい Kickstarterは,コメントが多いほど炎上してるとかなんとか
- 高級はんだこて(2万超)は溶けがメッチャいいらしいw
- IoTで牛の歩数管理+適切なタイミングで種付け! 熱い
- 研究室にFelica認証を導入して,入室回数を競うLAB畜バトルをしたい
- 実用化を考えていくとスペック問題に陥りがち
- センサを常備性あるデザインにするとユーザ層が広がる
- 表現力に富むインターフェースにすると利用シーンが広がる
教師なし学習による異常値検知(1): マハラノビス距離
今回は,マハラノビス距離に基づく異常値検知について説明をします.
これは,教師なし学習により,データのパタンを学習し,このデータから著しく外れたデータを異常値として検出する方法です.
マハラノビス距離とは,統計学で用いられる距離を表す手法の1つです.
似た距離の表す手法としてユークリッド距離がありますね.
おさらい
まずはじめにユークリッド距離の説明をしておさらいをしたいと思います.
ユークリッド距離とは,いわゆる「一般的」な距離を表す手法です.
ピタゴラスの定理で求められることはご存知だと思います.
簡単に2次元平面で考えると,
および,
のとき,それらの距離は
で求められますね.
これが一般的な距離計算の手法です.
マハラノビス距離
マハラノビス距離は,先程も説明したように,統計学で用いられる距離を表す手法の1つです.
どういうタイミングで用いられるかというと,多次元のデータが相関を持つ場合に使用される機会が多いです.
仮に,データが次元の連続ベクトルであるとして,得られたデータ列を,
(これらは全てベクトルの集合と考えて下さい)として,
番目のデータは,
と記すとき,その平均値ベクトル,分散共分散行列
は以下のように求められます.
平均値ベクトル
分散共分散行列
そこで,をしきい値パラメータとして,新しいデータ
に対して,
を満たすならば,は異常値であると判定します.
この式の右辺がマハラノビス距離と呼ばれるものです.
もっとマハラノビス距離
ここで,が単位行列であるときは,ユークリッド距離の2乗が求まります.
が対角行列であるときには,次元ごとのスケールが異なります.
が非対角行列であるときは,これにさらに回転が加わることになります.
下記に示すのは,2次元ベクトル上でのマハラノビス距離に基づく外れ値検出のイメージ図です.

これは,プロットされた点が,データ点であり,そのデータ点を覆うように楕円が表示されています.
この楕円の中に含まれていない点が外れ値になります.
したがって,閾値は,この楕円の大きさを示すものであり,どの程度許すかによって外れ値の割合が変化してきます.
ユークリッド距離とマハラノビス距離の違い

この図を見てもらうのが分かりやすいです.
ユークリッド距離とマハラノビス距離の違いは,距離を定義する際に,多次元のデータの相関を考慮しているかいないかという点にあります.
マハラノビス距離において,相関が強い距離の方向とは,実際の距離よりも相対的に短くなるという考え方です.
ユークリッド距離の場合,距離はx軸,y軸ともに等しい距離になります.
しかしマハラノビス距離は,x軸,y軸ともに分散で形が定まっています.
つまり,分散が大きいと,原点からの距離はあまり離れていないと解釈することができますし,
分散が小さいと,原点からの距離は大きく離れているということになります.
もう少し詳しくマハラノビス距離

この図は,原点から楕円が複数にわたって描かれています.
この楕円の大きさが,異常値の閾値の大きさを示しています.
閾値が大きいと楕円が大きく,異常値の割合は少なくなります.
楕円の形は分散によって決まるという話をしましたが,この図を山の等高線のようなイメージで解釈してもらっても結構です.
等高線は,同じ高さにある山の部分をくくっています.
マハラノビス距離も同じです.
軸という概念を考えずに,同じ楕円で囲まれた範囲のものが閾値の値になっているという解釈をすれば,円の歪み方にも納得がいくのではないかと思います.
マハラノビス距離の問題点
マハラノビス距離による異常値検出の手法では,平均値ベクトルと分数といった基本概念を通じて異常値の概念を定式化しています.
しかし,平均値自身は,異常値の影響を大きくウケるため,中央値の考え方を利用して異常値検出を行う方法も提案されていたりします.(ここでは割愛)
また,個人的に重要なのは,このマハラノビス距離を用いた距離計算手法では,boolean値のみのデータは使えません.
(1 or 0 の平均値から,1 or 0の論理値を引いて… という手法になるので,何が起きるかは考えてみてください…)
まとめ
- マハラノビス距離は,距離を一般化したものである.
- マハラノビス距離は,各次元における相関を考慮した距離である.

