Cookpad Spring 1day Intern 自作キーボードコースに参加しました
Cookpad Spring Intern 自作キーボードコースに参加してきたので、その記録です。
参加した経緯
誰かに促されたわけではなく、Twitterで告知ツイートが流れてきたので応募しました。
てかこんなん流れてきたら条件反射で応募しちゃうよね。
\Spring 1day Internshipを開催します/
— Cookpad Tech Life (@cookpad_tech) January 16, 2019
・サービス開発
・コンテナ
・Swift コンパイラ
・自作キーボード
の4コースをご用意しております💻
学年は関係ありませんので、エンジニア・デザイナーに興味がある学生はぜひご参加ください🙋♀️🍳https://t.co/MdONJbPrGK
エントリーシート代わりのGoogleフォームに回答して放置してたら無事通過。やったね。
エントリーはかなり多かったみたいで、
Cookpad Spring 1day Internship 2019 自作キーボードコース、まだまだ応募を受け付けております。すでに多数の応募をいただいていますが、応募者のレベルに合わせて講義のレベルを上げていくスタイルですので、我こそはという学生の応募をお待ちしております https://t.co/emNa99oPkJ
— 侮ヲ㋿ (@KOBA789) January 22, 2019
なんかこんなことになっており、最終的に蓋を開けてみたら 受講者 & 講義のレベル爆上げになっており、魔窟だった。
魔窟情報です。
僕が今までに行ったインターンでは一番受講者側のレベルが高かった気がする。
あと、応募フォームは熱意を持ってしっかり書こうね。僕は熱意を込めて書きました。
あと、講師情報です。
もーいーくつ寝ーるーと、イーンーターーンー♪
インターン選考通過通知のメールがきたんですけど、通過できたやったーってしてメールをよく読んでいなかったら、実は返信必須のメールだったみたいで、放置するとインターンこれないよみたいな旨が書いており、それに気付かずそのままにしていたら、本当に参加しないの??みたいな催促メールが来て最速でメールを返しました(ここで抱腹絶倒)(講師リスペクト)
そんなこんなでしばらくすると、事前準備資料が届いていたのでやっていき。
Cookpad Spring 1day Internship 2019 自作キーボードコース 事前準備手順書 · GitHub
僕はこれがRustデビューだったので、適当にこれをやっていきました。
いわゆるTRPLです。Rustなんもわからんになりました。
KiCADデビューも果たしました。これで123D,Fusion360,Rhinocerosに次いで4つ目のCADに触れることになります。
イの幕開け
えーまず開幕遅刻しました。すみませんでした。
これ間に合うか??
— しゅもん@技術書典6 (@shumon_84) March 19, 2019
インターンは、まず講師 & TA & 受講生の簡単な自己紹介から始まりました。なんか自作キーボードの作り方を教わりに来てるのに、自作キーボード作ったことある人ばっかりだったのでツッコミを受けててウケた。
「なんできたのお前ら!」それはそうww
— 青のり@RCC (@aonori_dev) March 19, 2019
自己紹介が終わると、机の上に並べられたパーツの説明とかそのパーツを回路図で書くときに使われる図の説明とかが始まりました。
の間にもらったステッカーをPCに貼り付けたりしていました。
僕は貰ったステッカーを全てPCに貼る人間なんですが、cookpadのステッカーは貰ってからインターンが本格的に開始するまでのあいだに貼りました
— しゅもん@技術書典6 (@shumon_84) 2019年3月20日
3枚貼りました
— しゅもん@技術書典6 (@shumon_84) 2019年3月20日
それが終わると、そのパーツの中に入っていた白のPCBに書かれたパターンを目で見て紙に回路図を写経するワークが始まりました。
初手リバースエンジニアリングが始まるインターン #cookpad_spring_intern
— しゅもん@技術書典6 (@shumon_84) March 19, 2019
回路は簡単な2x3のキーマトリクスの回路で片面PCBだったので特に写経に苦労することはなかったです。
次に、ここで書いた手書き回路をKiCADでおこして、実際に回路の配置までして、それぞれ思い思いの「ぼくのかんがえたさいきょうの6鍵キーボード」を作っていました。
ここで午後1時になり午前の部が終了しました。
らんち
お昼ご飯はカレーを食べました。さすがCookpad様、美味しかったです。
#cookpad_spring_intern
— しゅもん@技術書典6 (@shumon_84) 2019年3月19日
らんち pic.twitter.com/XIZ0f6ZPml
このインターンは元々エンジニアではなく人事部の偉い人が考えたものらしいことを昼食中に聞きました。自作キーボード好きの人事がいる会社。さすが〇〇padを名乗るだけはある。
hikaliumさんとちょっとだけ技術書典トークをしました。
お昼ご飯が終わり会場に戻ってから午後の部が始まるまでの間は、みんなの自作キーボード展覧会が開催されていました。
全キーがEscキーのキートップになってる発狂したVimmerみたいな自作ラップトップとかもあってなかなかコアだった。
そして舞台は午後の部へ
昼からは、もらったパーツを実際にPCBに実装する作業に移っていくんですが、その前にキースイッチの仕組みの解説のためにみんなで分解していました。のちに判明するんですが、実はこのとき受講生の中で僕一人だけ非可逆分解(破壊)をしていました。
そして早速キースイッチを分解する昼下がりである。#cookpad_spring_intern pic.twitter.com/dRgGkagbB6
— hikalium (@hikalium) March 19, 2019
いい感じにはんだ付けが終わって、Lチカとか動作確認が終わると、ついにやってきました。自作ファームウェアのお時間です。
正直これが目当てで来たのでワクワクだった。
当日の講義資料はgithubで公開されています。
まずはUSBの仕様と規格の説明が入って、一同ポカーンとしていた(でも早口だったけど分かりやすかった)
「USB3.0 設計のすべて」を読んでいたおかげでKOBA先生の話がやっとわかるが、突然USBプロトコルの話をされる最高の空間になっている(そこから実装するっぽい?)#cookpad_spring_intern
— hikalium (@hikalium) March 19, 2019
そんななか、hikalium先生だけはウンウン頷きながら話を聞いていて、やっぱりすごいなぁとなるなど。
とりあえず「USB3.0 設計のすべて」をほしい物リストに追加しました。各位お願いします。
USBについてはざっくりさらった程度なので、このへんとかこのへんを読んで理解を深めたいね。
そんなこんなでどんなファームウェアを書けばよいか分かってきたところで、aだけ入力できるキーボードが出来上がり、そこからは各自queueを実装したり、入力できるキーを増やしたりしていました。
#cookpad_spring_intern
— しゅもん@技術書典6 (@shumon_84) March 19, 2019
動くとね うれしいね pic.twitter.com/HqCBqo3QJx
おわり。
俺たちのインターンはまだ始まったばかりだ
というわけでまだ終わりませんでした。
サイゼリヤ 恵比寿駅東口店という高級イタリアンが食べられるお店で渾身の会を開きました。
15人の参加者のうち11人が懇親会に来ていて、こいつらほんまに情報系か?になってた。講師の @KOBA789 さんも加わって、12人で飲み食いをした。
なんかメモリを使ったPLDの話とかDBの話とか筑波のWORDの話とか人材輩出言語OCamlの話とかをした。難しくてあんまりついていけませんでした。専門外の話むずかしいね。
感想
楽しかったです(小並感)
強いて言うなら、序盤の回路の説明とかどうせ全員既知の情報だったと思うので、それよりもUSBの話をもう少し濃くしてもらえると良かったのかもしれないけど、KiCADの知見がたまったり、キースイッチの仕組みが知れたり、ちょこちょこ知らない情報もあったので、それはそれで良かったです。
もう少しUSBについて詳しくなったら、配布されたファームウェアをGolangで移植したいと思います。