Go合宿2017@ 土善旅館に参加しました #golangjp
Go言語のプログラミング合宿に参加してきました。
なぜ参加したのか
普段触れる機会の少ないサーバーサイド言語を勉強するという目的で参加しました。仕事ではAndroidアプリ開発にフルコミットしているので、サーバーサイドの知識はほとんどと言っていいほど持っていません。とはいえ、今後必要になる機会は少なからずあるだろうし、クライアントサイドの実装をする上でサーバーサイドも分かるメリットは大きいと日頃から感じていました。(API周りの設計知識とか欲しい。)
サーバーサイド言語の中でもGo言語は前々から気にはなっていたのですが、始めるきっかけ掴めず・・・そこでちょうど合宿開催の話を聞いたので、この機会にチャレンジしてみようと思った次第です。
合宿場所
千葉県の土善旅館に行きました。
土善旅館[弓道合宿・開発合宿]
エンジニア界隈ではおなじみの開発合宿御用達の旅館です。今回初めて行くことができました。 東京からだと、片道2時間半〜3時間くらいです。結構遠い。
うおー成田乗り換えでさらに50分揺られるのか...思ったより遠い土善旅館😇 #golangjp
— shanon.kt (@shanonim) 2017年4月22日
参加費
1泊2食付き・開発合宿用の大部屋レンタル料金・合宿中のアルコールとお菓子込で一人13,000円でした。安い!😳
スケジュール
1日目は14時過ぎに宿に到着して、19時まで開発→夜ご飯を食べて、その後は眠くなるまでひたすら開発、
2日目は8時に朝ご飯→11時まで開発してLT大会、14時くらいに宿チェックアウトでした。
実際に開発作業していた時間は、合計で13時間くらいでした。就寝時間によって個人差があったと思います。
- (1日目) 15:00-19:00, 21:30-28:30: 11h
- (2日目) 9:00-11:00: 2h
雰囲気
終始和やかでありつつ適度なワイワイがあり、楽しい雰囲気だったと思います。Go言語初心者向けのチュートリアル講義があったり、参加者同士のQ&Aがあったり、作業自体はそれぞれの個人活動でしたが、技術的な会話や交流が盛んで良い感じでした。
↑合宿中のたのしい様子を応用して作ったWantedlyコラ画像
コラ画像作ってる場合じゃないんですよ
— shanon.kt (@shanonim) 2017年4月22日
あとこれも合宿ならではですが、作業中は基本的にずっとお酒を飲んでいました。困ったら乾杯。バグったら乾杯。ビルド成功したら乾杯。デプロイしたら乾杯。🍻🍻🍻
深夜3時に乾杯する開発合宿があるらしい #golangjp
— shanon.kt (@shanonim) 2017年4月22日
適度なアルコール摂取は作業効率アップに良い効果があるので(個人調べ)、たまにはアルコール駆動開発もいいかもしれません。
土善旅館の最高ポイント
「開発合宿に適した旅館」と言われても正直ピンときてなかったのですが、実際に行ってみてわかった最高ポイントがいくつかあります。
WiFi環境が最高すぎる
とにかくWiFiが速い。
これ、1日目の作業開始直後くらいに測ったやつですが、都内の光回線と遜色ありません。むしろ土善旅館の方が速いのでは・・・。
参加者30名弱で同時接続してこの速度なので、ネットワーク環境は盤石と言えるでしょう。しかもこのWiFi、旅館内のどこからでも繋がります。便利すぎる。
ひとをダメにするクッション
超絶快適に作業できるんですが、快適すぎて眠くなるので危険アイテムでした。自宅にほしい・・・。
各種備品
外部ディスプレイやMac用の変換ケーブル、電源タップなどはすべて旅館からレンタルできました。ホワイトボードも借りれるので、地味に便利。
24時間使える温泉
館内の温泉は清掃時以外、基本的に24時間使用可能でした。開発に疲れたら湯に浸かっていつでもリフレッシュできます。
猫
かわいい!!!!!!!!!!!!!!!!11
開発終わった.....🐱 #golangjp pic.twitter.com/gZ8rVqgDI5
— shanon.kt (@shanonim) 2017年4月22日
成果
個人アプリのサーバサイド開発をやりました。
具体的には、
- Go言語の基本を覚える(文法・開発方法・一般的なlibraryについて)
- 開発環境を整える(今回はIntelliJ CEにGolangPluginを入れて使いました。)
- APIサーバ構築に必要なlibraryを使ってみる
- 実際に個人サービスのAPIモックを作ってみる
という順番で作業しました。
反省
事前にTODOをまとめて合宿に臨んだのですが、計画していたほど進捗できなかったのが心残りです。
A Tour of Goなど、基本的なチュートリアルを事前に習得して参加しておけばもっと開発速度上げられたなぁという反省があります。
まとめ
知識まっさらな状態からの参加でしたが、週末2日間でかなりの経験値を得ることができました。勉強せざるを得ない環境にあえて身を置くのも、たまにはいいですね☺
あと、Go玄人勢のGolang愛がすごかったので、ぼくもそれにあてられてGopherくんが好きになりました。
この合宿で得たスタートダッシュを活かして、引き続きGo言語やっていきたいと思います。
@合宿参加者のみなさま
2日間ありがとうございました!また勉強会や次の合宿(!)でお会いしましょう🍺
おまけ
旅館の美味しいご飯
合宿ごはん、美味しかった☺ pic.twitter.com/QAAZPbQBKv
— shanon.kt (@shanonim) 2017年4月22日
旅館からの差し入れデザートに合宿会場が沸いた #golangjp pic.twitter.com/cF09J64VK7
— shanon.kt (@shanonim) 2017年4月23日
🍙🍻 #golangjp pic.twitter.com/gYb86UjiEn
— shanon.kt (@shanonim) 2017年4月23日
日報を書き続けるモチベーションについて
半年前に書いた記事。 shanonim.hatenablog.com
この頃は、
- DayOneに書き貯める
- 一日の終わりにSlackの分報チャンネルにsnippetを投げる
っていう運用にしてたけど、最近は
に変わった。
日報を書くモチベーション
2つの面があって、ひとつは「自分用のメモ」
- 今日やった作業を振り返る
- 明日の作業を棚卸しする
- 自分自身のアサイン率を確認する
もうひとつは「報告」
- チームに自分の状況を共有する
- 上司に自分の状況を共有する
仕事で書く日報においては、後者の目的の方が強い。(前者だけならDayOneに日記として書けばいいだけなので。)
つまり、「日報を書くモチベーション=報告するモチベーション」というように言い換えられる。
悩み
前提として、今のチームでは日報の提出ルールがなくて自分が勝手にやってるだけだったりする。書いても書かなくてもよいということはつまり、別に読まなくてもよいということ。
そういう状況で報告し続けるモチベーション維持ってのが結構難しくて、フィードバックのない作業を淡々と続けるのはキツい。アウトプットするからには何かしらのアドバイスがほしいと思ってしまうけど、だってルール上読まなくていいんだから「毎日ぼくの日報読んでください!!」ともなかなか言いづらい。。
「だったら書かなくていいじゃん」って言われるけど、そういうわけにもいかないなぁと思う理由がひとつあって「エンジニアの仕事って外から見ると何やってるかよくわからないよね」問題をなんとかしたい気持ちが強い。 作業内容が日報という形でオープンになっていれば「アイツはなんかやっとるな」というのがわかるし、理解してもらえる。逆に何やってるかわからない状態だと手が空いてるように見えてしまう時があって、そういう時の評価は大抵実績と噛み合っていない。
なので、やってることをちゃんとやってるアピールすることは必要。
まとめ
日報を読んでもらうために書くことをルール化したいって気持ちは全然なくて書きたいひとが勝手に書けばいいと思ってるけど、そういう自由な状況における報告の仕組みって難しい。。
何か良い解決方法があったら教えてください。
Kotlin初心者向けハンズオンにメンターで参加しました #teratail_kt
仕事で毎日書いてるとはいえ、たった2,3ヶ月の経験でメンターをやってもよいのだろうか・・・という葛藤はありましたが、良い機会をもらったと思ってがんばりました。
What’s Kotlin?
「Kotlinって新しいバンド。。?」
— shanon (@shanonim) 2017年4月15日
プログラミング言語です。
ハンズオン
ハンズオンの講師は、@ngsw_taroさんでした。
すでに知ってる文法でもたろうさんの説明で再理解できたところが結構ありました。やっぱり実際に話を聞きながらその場で手を動かすと理解度がぜんぜん違う。途中、メンタリングを忘れて普通に勉強してました。(すみません….
たろうさんのKotlinライブコーディングが見れる会😭👏 #teratail_kt
— shanon (@shanonim) 2017年4月15日
もくもく
ハンズオンで一通りKotlinの文法だったり便利な構文を学んだ後、もくもく作業をやりました。Twitterのハッシュタグ(#teratail_kt)を見て質問にレスポンスしたり、Androidアプリ開発でのユースケースについて話したり、メンターっぽいことを少し。
それ以外の時間は、個人アプリをKotlinで作ってました。
反省
基本、受けだった
質問があったら答えるものの、自分から参加者のテーブルを回って「何か質問ありますか?」とまではアクションできなかった。というかそこまでやって全ての質問に答えられる自信がなかったので、もっと勉強しようと思った。
気づくのが遅い
もくもく会の途中でTwitterに質問が来てたものの、自分の作業に夢中になってしまって気づくのが遅くなった件があった。とても申し訳ない・・・。
良かったこと
Kotlinの良さを再確認できました。
when式、最高すぎて涙出る #teratail_kt
— shanon (@shanonim) 2017年4月15日
はーーー見やすい。。。☺ #teratail_kt
— shanon (@shanonim) 2017年4月15日
読みやすいし書きやすいし簡潔だし賢いし、何より名前がかわいい。名前がかわいい。
あと、たろうさんの著書(通称赤べこ本)にサインを頂きました。🎉ミーハーなことしてすみません。。
Kotlinスタートブック -新しいAndroidプログラミング
- 作者: 長澤太郎
- 出版社/メーカー: リックテレコム
- 発売日: 2016/07/13
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
嬉しい!!!!!!!!!!!!!!!!!!!!1
まとめ
Kotlinはいいぞ。
イベント
「まだKotlin触ったことないけど興味あるなぁ〜」って人は、Event Driven DevelopmentでいますぐLT枠登録!💪 kotlin.connpass.com
会社のデスクに人工芝を敷いていい感じにした。
会社のデスクは、一日のほとんどの時間を過ごす大切な空間です。
ちょっとした工夫で、快適なデスク環境にすることができます。
アイテム
- 人工芝
- 折りたたみステップ
- なんか箱
- なんか植物(プラスチック製)
すべて100円ショップ(CanDo)で買いました。
敷く
敷きます。
折りたたみステップ
外部ディスプレイを置く用です。
技術書を重ねて置く人も多いですが、こっちのほうが安定感あるし見た目が良いのでおすすめです。
良い。
置く
置きます。
デスクが華やかになり、おしゃれな気持ちになります。
プラスチック製ですが。
片付ける
イヤホンやスマホを片付けると、
スッキリします。
アフター
💯
まとめ
- デスクには緑が必要
- 小物をまとめる箱、良い
おすすめです。💪
アニソン聴き放題サービス『ANiUTa』を使ってみた #ANiUTa
早速使ってみました。 aniuta.co.jp
iOS/Androidアプリがリリースされています。Web版やPCアプリはないとのこと。 機能面のレビューは以下記事が詳しかったです。 www.phileweb.com
ここでは個人的な使ってみた所感を雑に書きます。
ポジ
豊富な曲ラインナップ
アニメのOP/ED以外にも、サウンドトラック盤とかキャラソンCDも充実してて最高か〜〜となりました。
はーーーーOSTもあるーーーー😭😭😭 pic.twitter.com/LHF270uuL9
— shanon (@shanonim) 2017年3月25日
今期(2017年冬アニメ)の曲もばっちり用意されていて、満足度高いです。
月額が安い
月額600円(税込)です。ジャンル特化型なのでAppleMusicやAWAなどに比べて安いのはそうなのかもと思いつつ、想定していた金額よりだいぶ安くて嬉しい。。
dアニメストア(月額400円(税抜))と合わせれば、1,000円と少しで夢の全方位アニメ生活が手に入ります。
月額600円が高いと言う人・・🤔🤔🤔
— shanon (@shanonim) 2017年3月25日
ネガ
キャッシュ問題
一度再生した曲は、自動的に端末にキャッシュされて次回以降はそこから再生されるとのこと。
キャッシュ領域も自分で設定できるし、あーなるほど便利だなって思ったんですけど、明らかにキャッシュの増え方がおかしい・・。そんなに曲再生してないのに数GBオーダーで増えてる。
おそらく、一度再生した曲に加えて「ライブラリに登録した曲」もキャッシュしてるんじゃないかと思うんですけど、どうなんでしょう。ヘルプの「ライブラリとは何ですか?」の項で「気になった曲をためておくことのできる場所のことです。」と書かれていたので、貯めておく=全部キャッシュするってことなのか、もしかして。
と思ってたら、別のヘルプ項目に「一度再生した楽曲、もしくはライブラリに登録した楽曲については端末内にデータがキャッシュとして残りますので、」って書いてました。oh..
このままだとライブラリ登録ボタン連打→バックグラウンドでキャッシュのダウンロードタスクが積まれる→キャッシュ爆増&動作重くなる、の流れになりそう。(やたらクラッシュしまくるのもしかして….?
というかそれ以前にサーバー側が配信過多で死にそう。
公式のお知らせもこのことかなぁ。
【明らかになっている課題】
— アニュータ (@aniuta_PR) 2017年3月25日
・iOS版にてライブラリに大量の楽曲を登録すると挙動が不安定になり、突然アプリが終了する
→原因の特定ができましたので現在アプリの修正を行っています
早期にバージョンアップが行えるようにいたします。
ご不便をおかけいたしますが今しばらくお待ちください
ライブラリ追加の連打はやめましょう。
4G or WiFi問題
4G回線でもキャッシュ保存される?という疑問に対してのヘルプ記述がないので、外出先でライブラリ登録が怖かった。(もしどこかに書いてて見落としてたらすみません…
うっかり4G回線でライブラリ登録によるキャッシュが発生した場合、余裕でデータ通信上限ぶっちぎってパケ死します。たぶん。
一応、WiFi→4Gに切り替えた時にキャッシュ保存が一時停止する動作は確認できたので大丈夫だと思うけど、安心したいのでヘルプに書いてくださいお願いします
時々再生できなくなる問題
最初はサーバ側のトラブルかなぁ…と思って時間をおいてリトライしてみたけど、状況が変わらないケースが多くなってきて、試しにタスクkill&RAMリセットをすると直った。
#ANiUTa のこのバグ、アプリ全て終了→RAMクリア(電源長押し→Homeボタン長押し)で一時的に解消した🤔やっぱりクライアント側の問題なのかな... pic.twitter.com/Fg0T2DJBdW
— shanon (@shanonim) 2017年3月25日
バックグラウンドにいた重めのアプリ(AbemaTV、GoogleMapその他)を一掃してからアプリに戻って再生すると上手くいったり。
メモリ圧迫してるのかどうかわからないけど、とりあえずエラーメッセージで混乱するので変えたほうがよさそう?
まとめ
- 聴きたいアニソンたくさん揃ってて神サービス
- でもまだ一部未完成
ここからは完全に想像なんですけど…一昨日のプレスリリースが結構大掛かり(声優さん呼んでリリースイベントやったり各種メディアに一斉に載ったり)だったので、既知バグあってもリリース時期ずらせない状況だったのではと思ったり(あるあるすぎてつらい)
ANiUTaのリリース元、株式会社アニュータは先月設立された新会社とのこと。
会社概要 | ANiUTa
アニュータの社長さんが以下記事でアプリの使い勝手について話してるんですけど、 webnewtype.com
「軽くサクサク動く」ことを何より重視しています。それと、キャッシュをうまく使うので、一度読み込んだ曲は通信なしに再生することができます。
また、曲が再生されたら、極力止まらないということも心がけています。聴き終わったら勝手にどんどん次が始まるように作っているので、ストレスなくアニソン漬けになれるんです。
なるほど・・・ガンガンキャッシュするのはそのあたりの思惑あってのことのようです。🤔🤔🤔
であれば、できるだけ早くキャッシュに関するissueを解決したいですよねきっと..
これからのアプリ改善と、あとはさらなる楽曲追加が楽しみです。応援してます🙏🙏🙏
みかん狩りに行きました。🍊
会社のイベントでみかん狩りに行きました。🍊
遠足🚌 pic.twitter.com/z8znWpgF9d
— shanon (@shanonim) 2017年3月18日
イベントの目的
自社で取り扱っている商品の収穫に関わることで当事者意識を深めよう。🍊
場所
ジョイファーム小田原さん。
商品情報【みかん】@ジョイファーム小田原
道中
混んでた。🚌
遠足スケジュール、渋滞で2時間押してる
— shanon (@shanonim) 2017年3月19日
到着まで時間があったので車内でピーシー触ってたら速攻で酔ってつらかった。
— shanon (@shanonim) 2017年3月19日
みかん狩り
海の見える産地。
🍊🍊🍊
美味しい!!!!!!!!💯
How to get mikan easily 🤔🤔🤔
鳥よけのネットを外してから収穫します。
ガンガン収穫
収穫した。
昼食が豪華。
後半はだいたいビールを飲んでいた。
背が高いんだから働いて???という謎のプレッシャーを受けたため途中めちゃくちゃ働きましたが、最終的に生産者のおばあちゃんに「週末手伝いにきてほしい」と言って頂けて嬉しかったです。でも朝弱いのでたぶん無理です。
いろいろなみかん食べ比べ大会。
🍊🍊🍊
生産者のおばあちゃん。
まとめ
机の上で作業しているだけでは想像できない体験をすることができてよかったです。
アプリやサービスを作るスキルも大事だけど、それを何のために作るのか、誰のために作るのかっていうのを知るために現場に行くのはもっと大切・・・という気付き。
当たり前のことだけど気がついたら忘れてしまうことだと思うので、これからも定期的に農作業していきたいと思います。(?
これからは圧倒的当事者意識でやっていくぞ。
終わり
唯一、海老名SAでメロンパン買えなかったのが心残りです。
メロンパン並びまくってて買えなかった........... (@ 海老名SA (下り) - @c_nexco_sapa in 海老名市, 神奈川県) https://t.co/teVYMzzSrq
— shanon (@shanonim) 2017年3月19日
[PR] 時々農作業したいエンジニア募集しておりますので、いつでもご連絡ください。
2017年2月の振返り
書こう書こうと思って今月も半月過ぎました。おつかれさまでした。
先月に引き続き振り返りたいと思います。 shanonim.hatenablog.com
LT
2回。
IoTLT vol.24
Waffleについて話しました。100人越えの会場でLTできる機会もそうそう無いのでありがたい機会。
無事クラウドファンディング達成したので普及活動がんばる。 kibidango.com
Creators MeetUp #49
HoloLensについて泥酔LTをやりました。資料が雑すぎて反省。もっと本質を述べろ。
HoloLens
未来を買いました。
Hololensをポチる覚悟を決めたぼく pic.twitter.com/VIfQBbW9zE
— shanon (@shanonim) 2017年2月16日
Shared from my #HoloLens. pic.twitter.com/meCjTrwtqN
— shanon (@shanonim) 2017年3月4日
いい感じのアプリを作って一発当てたいと思います。
転職
2月から新しい会社にジョインしました。入社エントリは3ヶ月後に書きます。毎日元気にAndroidアプリを書いています。
野菜のECをやっている会社なので、毎日野菜を食べます。健康です。
[PR] まだ野菜不足で消耗してるの?
— shanon (@shanonim) 2017年3月16日
AndroidアプリはKotlinを採用しています。Kotlin書きたい健康志向エンジニア、絶賛募集中です。
イベント
devsumiの展示ブースに参加しました。 dotstud.io
COMITIA
散財たのしい。
5月のCOMITIAは出れないけど、今年中にサークル出展したい。
まとめ
環境が大きく変わった1ヶ月でしたが、総じて元気です。
3月も2月に負けず劣らずどったんばったん大騒ぎですが、引き続きやっていきたいと思います。