技術めいた何か

1人の大学生によるIT系の記事群

(自分用)2016年四半期(1〜3月)まとめ

2015年の末にこんな物を書いた。

atofaer.hatenablog.jp

今日で2015年度も終わりなので、今年入ってからの出来事(1〜3月)をまとめることにした。

1月

2015年まとめの11月の項で触れた湘南キャンパスで開催されたIntel Edisonの大会の本番に参加した。ペットボトルロケットペイロードとしてIntel Edisonを搭載し、各チームで自由に設定したミッションを遂行するというものだった。

他のチームが3-4人であるのに対し、自分たちのチームは2人構成であったため正直なところ辛かった。自分はIntel Edisonで動作させるプログラムを担当。相方はペットボトルロケット本体の制作を担当。

自分たちのチームは打ち上げたロケットから撮影した地上の緑地割合を算出するミッションを設定し、本番も無事遂行することができた。

審査基準は本番の成果云々だけでなく、2ヶ月ほどの制作のなかで記録した作業日報の中身も重視されていたようだ。

一応、最優秀賞を頂いたが、審査員のほとんどが本番欠場したとあるチームの作業日報の出来が良かった(さらには欠場しなければ賞を取っていただろうとも)といっていたので賞を貰っても複雑な気分だった。

大会はオープンだったが、とあるチームが欠場したため、大学系列校同士の競技会になってしまったのが残念。

 

2月

2月の中旬から下旬にかけて、普通自動車免許(普通AT)を取得するためにいわゆる免許合宿に行ってきた。ゴーカートでコースアウトする実績を持っているので正直自分にはとても無理だと思っていたが、合宿の毎日欠かさず乗るというスケジュールのおかげで最短日数(たしか15日)で卒業できた。

免許合宿に平行して、学生部のプロジェクトでABC2016Springに向けてゲーム制作に関わった。とはいえ、合宿期間中はルームメイトに迷惑をかけれないため、ハングアウトでの週末オンラインミーティングは(音声では)参加できなかった。

ルームメイトへ迷惑をかけずに済んだが、開発メンバには迷惑をかけてしまったと思う。ごめんなさい。

 

3月

2月に免許合宿は無事卒業できたがあくまで、実地試験免除になるだけなので、免許センターへ本免許試験を受けに行った。が、1回目が1点足りず不合格。(仮免は満点だったのでなめてた。)翌日に再度試験を受けて合格。免許を手に入れた(普通AT)

3/12に青山学院大学で開催されたABC2016Springに参加した。

ブースの方はあまり、いられなかったが、多くの人が遊びに来てくれたと聞いたので満足。

3/17にサバフェス2016に参加した。

初参加。サバフェス自体は第三回目らしく1,2回めはチューニング大会やらでコアなことをしていたらしい。

今回はハッカソンだった。

作成した物に関しては前の記事にまとめてある。

atofaer.hatenablog.jp

大学の有志でチームを結成し、結果として学生賞をいただくことができた。

が、それ以上に参加者の大半を占めている社会人の方々から今回の制作に関する貴重なお話を聞くことができ、大変勉強になった。

また、偶然にも通っている大学のOB/OGの方が複数人参加していた。

その中のひとりがセキュリティ・キャンプの卒業生で、セキュキャンへの参加を勧められた。

全国大会へ参加するには予選を通過しなければならないので一筋縄ではいかながいが、学生のうちにしか挑戦できないことの1つなので予選に応募してみようと思う。

あと、会場で知り合った、高校生と少しばかり話をした。

自分とは違って実績あるし、凄いと思う。凄い凄いとばかり、言っては安直なので失礼かもしれないが、凄い。応援したいし、応援してる。彼には是非やりたいことを頑張って欲しい。

あと、U22プロコンで会えるといいねという話をした。(彼はともかく自分は1次通過できるのかよ…)

 

サバフェス2016で改造したnecomimiをつかったお話(ラズパイ/サーバー編)

今年始めて?の投稿。

先日、IDCフロンティアさん主催(03/28 21:17修正:協賛でした…ごめんなさい)のサバフェス2016に同期2人と先輩1人の計4人で参加してきました。
先に先輩がnecomimi改造のハード周りについて記事を書いていました。

dwight.hatenablog.jp

自分の担当した範囲で発表したプロダクトのサーバー周りについてを書いておきます。

※necomimiについてと、necomimi→ラズパイまでのデータの流れについてはここでは省略するので、上記記事を読んでおくことをおすすめします。

 

先輩の記事ではラズパイにシリアルで改造したnecomimiからデータを送信するところまでの説明がありました。

自分の担当範囲はラズパイでの受信データのパースとidcfクラウドで立てたサーバーへの送信及び、サーバー上でsqliteへの保存です。

以下のような流れになりました。

f:id:atofaer:20160328194111p:plain

パーサはOSSのパーサであるpythinkgearを用いました。
本当は自分でパーサを書きたかったのですが、10日間の開発期間では成し遂げられず…。 

パーサの仕様はthinkgear_communications_protocol [NeuroSky Developer - Docs]に詳しくのっているので後ほどパーサ作成にチャレンジしたいところです。

ラズパイからIDCFのサーバーへの転送はweb socketをつかいました。
実装はこちらを参考にサーバー側はtornado、ラズパイ(クライアント)側はwebsocket-clientをつかいました。

本番はnecomimiの機嫌が悪くなかなか思ったようにデータが取れなかった時があったりしましたが、無事に終えることができて嬉しく思っています。

具体的なコードはGitHub上のプライベートレポジトリにあるので、後ほどメンバと整理整頓をしてから公開できたらと思います。

実は上の図の処理のあとにRuby on Railsでページに表示したりetc…といった機能があるのですが、それは@hotu_taの担当なのでバトン投げます〜

 

(自分用)2015年まとめ

2年後3年後に自分が何をしていたか振り返れるように、忘れないうちに2015年を振り返っておく。

 

1月

センター試験があった。2日目終了後に偶然、中学の同期と再開したのはよい思い出。

結果は(お察し)

 

2月

引き続き、入試祭り。事故(自己)採点で一喜一憂。

 

3月

祖母と京都、旅行。また、京都へいきたいなぁ。

 

4月

今の大学へ進学。
何か、始めたいと思い、ICTRATと放送研究会へ入会。

 

5月

MacBook Proを購入。届いて2日後にFile Vaultを中断するために、初期化しようとして、パーティションごと吹き飛ばした。しかもアクセス権限がどうとかでOSXの再インストールができない罠にハマった。なんとか治した。

・Ocuben #2に参加。初めての勉強会参加でドキドキ。著作権の話が印象的でした。

しかし懇親会に参加できない罠にハマる。

 

6月

MacWin8.1を入れた。この頃からOSXの使用頻度が急激に下がる。

 六本木で開催された 祭 with Android に行った。クレーンしたり、ラムネ飲んだり、太鼓叩いたり。
Nexus Playerの試遊もした。

 

7月

・Fxosアプリ学生限定ハッカソンに参加。自分、@hotu_taとICTRATの先輩の3人で参加。
@e_ntyoや@takanakahikoあたりと知り合ったのもこのあたりだったような…?(よく覚えてない)
Androidの会 学生部に入部。

 

8月

ICTRAT関連で、某イベントを手伝った。当日も、忙しかったが、事前学習もなかなか大変だった。

 

9月

秋学期、始まる。土曜日に授業を入れてしまったことは今でも後悔している。はてな×ドワンゴハッカソンや、patch work tokyoに行きたかった…。

 

 10月

学生部の一員としてOSC 2015 Tokyo/Fall に参加。午前中は授業であったため、午後から。
出展作品プロジェクトへの貢献度0でした。うわぁぁぁ。ごめんなさい。

 

11月

学生部

・前回の分の挽回のために、新規プロジェクトへ参加。かりちゃん曰くC++コーディング規約はゆるい方らしい

・初、開発合宿。某ホテルの会議室に篭ってコーディング。学ぶことが多かった。実際に顔を合わせてコーディングしたのは7月のハッカソン以来だったかも。
初LTもこの時。帰りに食べた大盛りカレーのインパクトは絶大だった。

大学関連

・ドココン#1に参加。参加者が少ない(ほとんど知り合い)。ロボPの方も少数ながらも来てくれた。
発表内容はcle_analysisについて(スライドはあげてない)

・本キャンパスの方のIntel Edisonの大会に参加することに。。。
思うことはいろいろある。

 

12月

 ドココン#2に参加。発表内容はHTML5 + JSで楽しい画像処理

楽しいかどうかは別として、HTML5+JSは画像処理の入門者には書きやすい組み合わせだと思ってる。参加者は相変わらず。

以上

来年は

大学の友人(しかも複数人が別々に)ラジコンカーをつくろうとしているので、自分も参戦しようと思う。
あとは、U22プロコン

その他
LTmatch出たいなぁ。。。

cle_analysis 0.0.8公開

cle_analysis 0.08を公開しました。

更新内容
・時間割り情報が適切に出力されない問題を修正
 
@hotu_taが報告してくれました。

原因:キャンパス判定の部分に誤った変数を使用していた

f:id:atofaer:20150929174314p:plain

あほ実につまらないミスですね。いやぁ、夜中の作業とソフトウェアテストには細心の注意を払うべきですね。

ソースコード(GitHub)

cle_analysis0.07alpha 公開

cle_analysis0.07公開しました。

変更点、追加点は以下の通りです。

 

自作ダイアログで入力を受け付けるように変更した。

開始日と終了日をテキストボックスからプルダウンメニュー形式に変更。

各キャンパスの時間割へ対応。(時間割構成が複雑であった伊勢原キャンパスは保留)

b2gdroidを使ってAndroidでFirefoxOSアプリ動かしてみた

記事の通り、b2gdroidを用いてWebIDEから転送したFirefoxOS(以下fxos)アプリをAndroid上で動かしてみました。

 

以下手順 (自己責任でお願いします)

1.設定->開発者オプション->USBデバッグをオンにします。
また、設定->セキュリティ->提供元不明のアプリをオンにし提供元不明のアプリのインストールを許可します。

 

2.Android端末でhttps://people.mozilla.org/~fdesre/b2gdroid/へアクセスし"Install b2gdroid."からb2gdroidを端末にダウンロードしインストールします。
インストールすると、Androidのホームアプリとしてインストールされるようです。

 

3.その後ホームボタンをタップすると既存のホームアプリと"Firefox OS"の選択しが現れるので"Firefox OS"をタップ

f:id:atofaer:20150825133111j:plain

 

b2gdroidが起動して ロック画面が現れました。
ロックを解除するとホーム画面が現れます。

f:id:atofaer:20150825133227j:plain f:id:atofaer:20150825133420j:plain

 

4.b2gdroidで再現されたfxosのホームはAndroidアプリとfxosアプリが混在した状態になっています。
Settingアプリをタップします。(白背景の歯車アイコン)
これはb2gdroid上のfxosの設定アプリのようです。

アプリのドロワーではfxosの設定とAndroidの設定が同居した状態となる模様
(上fxosアプリ設定/下Androidの設定)

 

f:id:atofaer:20150825134040j:plain

 

5.Setting->Developer->Debugging via USB でADB and DevToolsに設定します。

f:id:atofaer:20150825134316j:plain

 

以上で、fxos搭載端末と同様にpcにつないでWebIDEを用いた開発ができるはずです。この状態で接続するとWebIDEに"Firefox Custom on Android(DeviceName)"といったように表示されます。
Macの場合は特にMac側の設定は必要ありませんでした。Windows/Linuxの場合はPC側の設定が必要な場合があるようです。
詳しくはWebIDE のトラブルシューティング - 開発ツール | MDNを参照してください。

 

6.HelloWorld起動してみた。

f:id:atofaer:20150825142619j:plain



導入は以上で以下感想

試した端末はZenfone5(AK500KL)とNexus9です。
Zenfone5上では全体的にもっさりした動作。
Nexus9上ではきびきび動作しました。


以下問題点

共通の問題点(※試した端末数が少ないのでどれも要検証)
・加速度センサーが反応しない
・アプリに設置したボタンが反応しない時がある
・標準ブラウザからtwitterにアクセスできない(よって標準ブラウザからtwitteroauth認証が行えない)

追記:ShirotakaTwitのWhiteHawk氏(@hikaru__m)から指摘があったので追記

確かに2.0のシュミュレーターで試すと同じ不具合の確認ができました。
twitteroauth認証バグに関してはb2gdroidの修正待ちか個別対応ですね・・・


Zenfone5
・Zenfone5標準のホーム(ASUS Launcher)の画面ロックが無効になる

Nexus9
・Zenfone5では出現したfxos専用のスクリーン上のホームボタンが出現しない
Android側のスクリーン上のホームボタンで操作を試みるがシングルタップではホームに戻れずロングタップで戻れた。しかし、これではfxosアプリの終了が困難
タブレット用に調整されていないためかアイコンが大きく表示される。

 

Zenfone5で表示されたfxosのホームボタンがNexus9では表示されなかった

(左Nexus9/右Zenfone5)

f:id:atofaer:20150825135435p:plain

 

以上より制限が大きいですが開発入門機としてなら使えそうです。
以前ハッカソンで作ったアプリは加速度計を利用していたためうまく動作せず。残念。
マーケットをみたら画像編集アプリが少なそうだったので作ってみようかなと思ったり。

 

おまけ
b2gdroidとAndroidFirefoxでWebIDE接続の比較

(上b2gdroid/下AndroidFirefox)をそれぞれ起動した状態で接続したときの表示

f:id:atofaer:20150825141036p:plain

f:id:atofaer:20150825141033p:plain

どちらも同様に"installing and running app(notSupported):Not B2G.Can't launch app."というエラーが出ていますが、b2gdroidの場合は手動で起動し、デバッグすることが可能でした。
AndroidFirefoxの場合はAndroidFirefoxツール->アプリ からアプリの存在を確認することは可能ですが起動ができませんでした。

f:id:atofaer:20150825141821p:plain