2020冬2020/01/28Tweetおはこんばんちわ、カブクの足立です。前回から約半年と2ヶ月、第7回目となるカブクエンジニア開発合宿に行ってきました。本記事では信州たてしな観光協会様にご協力いただき実現した開発合宿体験記をお届けします。信州たてしな観光協会現る!開発合宿ブログを綴り続けてはや7回目。なんと信州たてしな観光協会様から「立科に開発合宿にいらっしゃいませんか?」とのお誘いの連絡を頂きました。いう波には前のめりで乗っていくのがカブクのエンジニアチーム。「そうですねぇ、、、話だけでも聞いてみましょうか(めっちゃ行きたい!)」と2つ返事で事が進み始めました。※立科の嘘偽り無いPRですと立科の魅力を沢山ご提案頂いたのですが、落ちついていこう、まだあわてるような時間じゃない。開発合宿なので開発がメイン。開発ができる環境なのかがまず大事。カブク開発合宿で抑えるべきポイントは次の7点。今回、お世話になった「蓼科荘」さんは温泉こそなかったのですが、それ以外は全て兼ね備えていました。移動に関しては東京駅から佐久平駅までは新幹線で、そこからは送迎バスに乗り継ぎがあるので、少し手間ではありますが、トータルで2時間以内なので許容範囲内です。たてしな」などの表記がありますが本レポートでは固有名詞を除いて「立科」と表記しますテーマとルールテーマとルールはずっと変わっていません。テーマちょっと先の仕事に役に立つかもしれない何かにチャレンジする。(個人にとって)新しい技術を楽しみましょう的な感じ。就業時間を守るハッカソンみたく、深夜まで追い込んで何かを作り上げるということはしません。限られた時間で最大の成果を目指します。これがいつものカブクのやり方です。参加者同士の懇親も大事にしたい。発表する必ず成果を発表する。大切なのは手を動かしてチャレンジすること。手を動かして初めて得られる知識がエンジニアの肥やしになると考えています。発表は資料を作っても、作らなくてもOK。聞く人に伝われば問題ありません。合宿時間は短いので、時間を効率的に活用できるのがBEST。自治と自由を重んじるカブクですので、参加も自由です。前述の通り、蓼科荘さんです。すべて開発部屋に持ってきてくださるとのこと。昼食の移動は時間を取られるので、できるだけ近場で済ませられると良いと経験的に分かっています。すべて同じ場所で済ませられるのは時間を効率的に使えて良かったです。コンセントタップやブレストするためのポストイット、模造紙、ペン(複数色)などあると嬉しい小物・文具まで揃えていただいて見知らぬ場所でも何不自由なく開発に取り組めました。発表のためのプロジェクターやスクリーン、ホワイトボードも完備。無料のコーヒーやお茶が常備されているのも嬉しい。となりのカフェバーとホテルがつながっているので、夜の懇親会は良い雰囲気でまったりワイワイ会話が盛り上がります。スケジュール今回、信州たてしな観光協会様より「撮影に協力したら割引サービスあり」とのご提案を頂きましたので「是非お願いします!」。乗れる波はなんでも乗っていこう!ということでいつもの合宿に観光要素が追加されたため、スケジュールがちょっと過密になりましたw1日目の朝の開発時間を長くするため10時に現地入り、2日目午後に観光があるため7時起床にして、いつもと同じぐらいの開発時間を確保できました。佐久平駅→東京駅1人発表と質疑合わせて7分としました。※いつも発表途中から質問が出るので、今回からトータル時間で管理いつもの通り全員ほとんど違うテーマに取り組みました。今回の参加者は全員で10名。レベルの高い10個の異なるテーマに集中して取り組んだ成果を一気に楽しめるのが合宿の醍醐味。カブク開発合宿は知らなかった技術に沢山出会える場。フォトレポート(※カブク開発合宿2020冬のtogetterを見ていただくと臨場感のある合宿風景をよりお楽しみいただけます)集合場所は佐久平駅です信州たてしな観光協会の方がお出迎えしてくれました。いうの嬉しい!佐久平駅のある佐久市は北斗の拳の原作者、武論尊氏の故郷とのことで、北斗の拳35周年の色々を楽しめるようです。冬の信州ということで、約1名の装備が本気です。いや冬山合宿なのだからこれが正装!早速、送迎バスに乗り込み、合宿会場の蓼科荘さんへ。※写真は翌日早朝に撮影したものですバスで30-40分で蓼科荘さんへ到着です。ここが合宿会場となる座敷です。椅子+机と机の2パターンがあり、20-30名ぐらいなら収容できそうな会場を10名でゆったりと使わせていただきました。もので淡々と開発環境をセットアップして各々開発スタート。屏風で仕切られた集中コーナーも準備されており、ガッツリ開発に取り組めます。ランチ会場に昼食の御膳を持ってきてくださるので、時間ロスなく昼食をいただけるのはありがたい。トンカツ、ニジマスのお刺身、小鉢とボリュームも申し分なし。美味しいです!昼食中もAPIリファレンスのチェックに余念がありません。Day1開発終了ホワイトボードで恒例の「明日の発表順」と「部屋割り」をあみだくじで決めます。夕食のタイミングから各々好きなものを飲み、お食事を楽しみます。幻の牛すき焼き、ニジマスの塩焼き、馬刺しと夕食も豪華です。夕食後はお風呂に入ったり、ゲームしたり各々懇親を深めます。最後はみんなが集まりホテルにつながった雰囲気の良いカフェバーで会話を楽しみました。Day2朝食もこの通り、美しい御膳で美味しく頂きました。1日目はあいにくの雨で、夜に予定されていた星空鑑賞と凍った湖に乗る体験ができませんでしたが、2日目は晴れそうだということで、急遽、朝食後に凍った湖(女神湖)の上に乗る体験へ!全力でEnterキーを打鍵(打拳?)しても氷は割れません。※許可を得て凍った湖に乗っています最後の追い込み女神湖から帰ってきたらイッキに最後の追い込みです。集中!集中!集中!発表とランチいよいよ発表です。発表の途中でランチとして「蓼科牛のハンバーガー」を持ってきてくださり、これを頂きながら発表を聞きます。このハンバーガーがまた美味しいんですよ!今回は一人の持ち時間は7分です。発表中に質問も飛び交いますが7分でキッカリ交代です。時間の超過は何故か部屋に置かれていたマラカスとタンバリンで知らされます。DXFパーサを作るDXFという設計図面用のデータフォーマットがありますが、既存のパーサは勝手にデータコードを捨てたりして、もやもやしていたのでロスレスなパーサを書きたい気持ちが芽生えた。やせたいやせるためにリングフィットアドベンチャーを開始。データを成形してスプレッドシートでデータ管理・ビジュアライズできるようにした。機械学習を簡単Web化してフィードバックを得たい機械学習は試行錯誤の連続なので、ユーザから早くフィードバックを得られるよう、Webサービス化してみた。TSLintは衰退しましたこれからはESLintの時代。CLIではまだTSLintが使われているので、ESLintへの移行のために開発が進められているOSSにコミットするよ。ターゲットを2機能に絞って、そのうち1つは別の誰かが以前にプルリクを送っていたことが判明。めげずに本プルリクの完成度などをアピール。WebWorkerThree.jsのTHREE-CSGMeshをベースに、OffscreenCanvasとWebWorkerを駆使してCSG処理を見た目高速化できないかを検証。WebWorkerにしたところでCSG処理は高速化できないけど、UIをノンブロッキングにできるかも。検証中に同形状のSTLファイルを使うだけでCSG処理が遅くなることが発覚。ElmElmでWebAssemblyコンパイラを実装。watファイルはスタックマシンなので、パーサジェネレータを使うと簡単に実装できた。本コンパイラはwatファイルを生成、wasm化は既存ツールにおまかせ。図面の画像を3D化したかった。なんならAR表示したかったたとえば手書き図面画像を読取り、いい感じに図面化→3D化できるんじゃないか?まず図面化するのが結構手間だが細線化を繰り返すなど、雑な画像でもなんとか線分を取出し、矩形化するところまではできた。ここまでできたら3D化は見えているが時間切れ。3D化できれば、それを手書き図面画像空間に表示すればAR化はできるはず。スプレッドシートをマイクロサービスにするアレスプレッドシートの一部機能をコンパイルしてnode.js化してAPIサーバを自動生成したい。コンパイラはPEG.jsで。HandTrack.js+Three.jsで小鳥と戯れるHandTrack.jsをWebAssembly化して高速化できないかなぁ。TensorFlow.jsのバージョンアップして...。あれ?DeprecatedなAPI使ってる...TFの機械学習モデルファイルを変換して...あれ、変換ツールで変換できない...機械学習モデルが非互換...あれ?あれ?よーっし、小鳥と戯れよう!アプリの依存ライブラリをリノベーションするRenovateを使って依存関係を自動更新する。Requestを作成する仕組みを開発。発表が終わったので乗馬体験のためモンゴル乗馬ノーサイドさんへ移動。モンゴル馬に乗って雪の中を散歩できるコースです。今年は暖冬のため雪が少ない点は残念ですが、気持ちの良い快晴と素晴らしい眺望で楽しく乗馬できました。道の駅でおみやげ全行程バスで移動。最後は道の駅でお土産を購入。蓼科牛のステーキなども売っていて土地ならではのお土産が買えるのが嬉しい。おわりに第7回目は開発と観光の二本立てで楽しい合宿となりました。合宿としての開発時間を確保しつつ観光も楽しむ。「両方」やらなくちゃあならないってのが、「カブクエンジニア」のつらいところだな。覚悟はいいか?オレ達はできてる。いえ、両立するにはどこかで無理をする必要があり、それは間違いなく時間です。開発に集中できる時間が長くなりました。その分、脳が疲れるのですが、観光で肉体も疲れ、健全な開発合宿になったと思います。立科での開発合宿のお誘いを頂き、全行程でサポートを頂きました信州たてしな観光協会の皆様に感謝です。ありがとうございました!カブクは技術が好きなエンジニアを募集しています。なんだか面白そうだなと思ったらカジュアル面談を気軽にお申し込み下さい。陽気なエンジニアと陽気に技術トークしましょう。2017」に出展しました。2017/09/11PyConJP2017に参加しました2017/09/08bravado-coreによるOpenAPIを利用したPythonアプリケーション開発2017/08/23OpenAPIのご紹介2017/08/18EuroPython2017で2名登壇しました。当ポジションは弊社Webサービスのバックエンド機能設計及び実装を担当します。サービス毎の開発チームで2週間スプリントのスクラム開発を実施しています。週次で開発チームミーティングを実施し、実装設計の相談や工数見積もりを行います。全ての開発コードはレビューと自動テストによって品質を保っています。リファクタリングやフレームワークのバージョンアップも開発フローに組込み、技術的負債を放置しない開発を目指しています。当ポジションは弊社Webサービスのフロントエンド機能設計及び実装を担当します。サービス毎の開発チームで2週間スプリントのスクラム開発を実施しています。週次で開発チームミーティングを実施し、実装設計の相談や工数見積もりを行います。全ての開発コードはレビューと自動テストによって品質を保っています。リファクタリングやフレームワークのバージョンアップも開発フローに組込み、技術的負債を放置しない開発を目指しています。業務から独立した、調査・研究系のタスクをおまかせしています。ブログ記事執筆を通して着実にスキルアップしていただくことを目指しています。(希望があれば、プロダクトの開発業務もおまかせします。More<!-資料案内------------------------------------------------->お客様のご要望に「Kabuku」はお応えいたします。お気軽にご相談ください。