2023年12月

育児

3 歳 1 ヶ月になった。

  • レーズンパン落としてギャン泣き
    • 姿勢正しく食べないの注意したら落とした
    • 「レーズンパンたべたいよぉ〜泣」
    • 新しいの渡したら「いらない」
  • スーパー近くでたいやき食べた
    • 寒かったから身に沁みた〜
  • トイレットペーパーをぺぺペーパーと言う
  • 茅ヶ崎のお友達の家にお邪魔した
    • もともと同じ保育園で転園した子
    • パパがドイツ出身で家の雰囲気がすごかった
    • クリスマスプレゼントももらえた
    • 近くの海で砂遊びもできた
  • さつまいもを生で食べる
  • 歯医者さん 1 人で処置室はいった
    • 今までできなかった水でるやつと吸うやつできた!
    • 歯の写真撮るのもノリノリだったらしい(以前は暴れた)
  • クリスマスプレゼントは自転車(ストライダーみたいなやつ)とパズルとトミカ
    • 自転車ノリノリで乗ってたよかった
  • 同じマンションの子を招いて遊んだ
    • 勝手に自分のおもちゃで遊ばれていじけてた
      • 後で聞いたら嫌だったらしいごめんよ。。
  • いつの間にか上の前歯が欠けてた

歯医者さん 1 人で処置室はいれたのすごい。こうやって成長していくんだな。。

仕事

  • Oracle と格闘した
    • MySQL しかまともに触ったことなくて悪戦苦闘
  • あまりリファクタできなかった反省

meishi2を組み立てた

前回のエントリの続き。

enokawa.hatenablog.jp

Choco60 rev.2 を組み立てる前に、はんだごては 10 数年やっていなかったので練習のために meishi2 を組み立てることにした。結論、やってよかった! 基本的にはビルドガイドを読みながら進めて、途中で迷った時に YouTube も観て参考にしたりした。このエントリでは実際の手順や詰まった部分を備忘録的に残していく。

biacco42.hatenablog.com

youtu.be

youtu.be

部品確認

ぜんぶあった。

ダイオードのはんだづけ

ついていた白い紙は手で簡単に取れた。「どうやって曲げるん?」と悩んで、最初はピンセットで曲げたけどやりづらく、結局手で曲げた方がはやかった。ビルドガイドに記載の通り向きに注意して穴に通し、はんだづけをした。はんだの融点が 190 度だったのではんだごての温度を 230 度に設定したけど溶けてくれず、270 度に設定しても溶けず、最終的に 320 度にして溶けた。

10 数年ぶりのはんだづけだったが、なんとかできた。はんだつけが終わったら少し冷ましてニッパーで根元を切った。ビルドガイドにも記載がある通り、以下が大事。日和って少なめのはんだを流してしまったので、気持ち多めに流すとよさそうだ。

はんだづけする際は、上記の はんだは温度が高い方に流れる の原則に沿って、まずは繋ぎたいパッド (写真の丸い輪っか状の銀色の部分) と端子 (写真のコンスルーの金色の棒) をはんだごてのコテ先で加熱します。このとき、母材 (繋ぎたいパッドと端子) を温めるのが目的なので、まだはんだ線は 溶かしません 。3 ~ 5 秒程度、十分に母材を温めてから、はんだ線をコテ先につけてはんだを溶かして流します。この時、母材が十分に温まっていれば、自然とはんだが母材に吸い付くように流れます。富士山型になる程度、軽くはんだを流し込んだら、はんだ線を離し、その後にはんだごてを離します。

meishi2 keyboard ビルドガイド - たのしい人生

タクトスイッチのはんだづけ

向きもないので特に困らなかった。タクトスイッチもはんだづけした後にニッパーで根元を切った。

Pro Micro のはんだづけ

ビルドガイド記載の通りコンスルーというものは付属しておらず、ピンヘッダというものが付属していた。コンスルーは片面(部品実装面)のみをはんだづけするだけで OK らしいのだが、ピンヘッダは両面するはんだづけする必要があると。

ピンヘッダの先が短く出ている部分に上から Pro Micro を 12 連の穴 x 2に挿して、PCB にも挿した(伝われ)。Pro Micro の部品実装面からはんだづけするのは固定が難しそうだったので裏側からやった。裏側からはんだづけするにしても、固定は必要そうだったのでマスキングテープ 2 つで Pro Micro と PCB を固定した。

ダイオードの時と違ってはんだづけする間隔が短くて緊張した。無事に終わって、ニッパーで根元を切って(固くて切った線が飛んでった)反対側もはんだづけした。念のため反対側もマスキングテープで固定した。反対側はもともと脚が短かったのでニッパーで切ってない。

キースイッチのはんだづけ

Choco60 rev.2 用に購入したキースイッチ(Kailh Midnight Silent V2 Switch / Tactile)を利用した。35pcs を 2 つ用意していて、Choco60 rev.2 は 62 キー なので 8 個余る。

キースイッチを 4 つはめてマスキングテープで固定し、一気にはんだづけした。これも脚が短いのでニッパーで切っていない。

キーキャップのとりつけ

こちらも Choco60 rev.2 用に購入したキーキャップ(Double Shot Olivia Keycaps)を利用。Choco60 rev.2 では利用しないであろうものを利用した。最初は適当に選んだが、キーキャップ(R1, R2, R3, R4)によって厚みが違うのでバランスが悪かった。なので使わないキーが連続している R4 のキーキャップを選んだ。ひとまずこれで見た目的には完成!

ファームウェアの書き込み

Remap で書き込んだ。特に問題なく書き込めたみたいだ。

meishi2 - Remap

動作確認

デフォルトでは左から順に「ctrl + z」「ctrl + x」「ctrl + c」「ctrl + v」が割り当てられています。

とあるので、なるほどコピペが捗るのだなと。VSCode を開いて適当に文字を入力し、文字を選択した上で左から 3 番目、4 番目のキーを押したが反応せず。。Mac のシステムレポートを確認したがデバイスは認識されている。システム設定が開いている状態でキーを押すとビープ音が鳴る。おかしいな。。はんだの量が少ないかなと思いキースイッチと Pro Micro の部分を追いはんだづけした(はんだ除去はしていない)が解決せず。。

切り分けとしてファームウェアCLI で書き込んでみようと思い ./util/qmk_install.sh コマンドを実行したら brew update が走って「あー時間かかるなぁ」と meishi2 のキーを適当に打鍵してたら update がキャンセルされて ^C の文字が見えて、「あ、オレ Mac やん。。」ということにやっと気づいた。つまり 、「ctrl + z」「ctrl + x」「ctrl + c」「ctrl + v」が「Cmd + z」「Cmd + x」「Cmd + c」「Cmd + v」であると勘違いしていた。大反省。無事 Remap でキーマップを変更して期待通りの挙動となった。結論、ファームウェアを書き込んでいたタイミングで、追いはんだづけせずとも正常に動作していたと思われる。

最後にクッションラバーシールを裏面に貼って終了した。ちなみにクッションよりも余ったの脚の方が長くてガサガサいってるw

完成!

だいぶ遠回りしたが、開梱から動作確認ができるまで約 3 時間かかった。長い。けど動いた時はテンションあがった!残念ながら今使っている MacBook Air の USB ポートが余っておらず meishi2 は暇を持て余している。が、デスクの近くには置いていて、時折手にとってカチャカチャしたりはんだ付けしたところを見つめたり触ったり子どもや奥さんに見せて「パパがつくったんだぞー」自慢したりしている。愛着が湧いている。

次はいよいよ Choco60 rev.2 つくっていくぞ!(もうつくったけど)

自作キーボードに入門する

奥さんに「ボーナスも入ったし自分にもクリスマスプレゼント買いなよ」と言われ、最近は子どもや家族優先で自分の買いたいものとかあまり考えていなかったけど、前々から気になっていた自作キーボードを買うことに決めた。やっほい。

約 5 年前から HHKB Professional Type-S (US 配列 - 墨) を使っていて、まだまだ現役で不満はなかったのだけど、漠然といつか分割キーボード使ってみたいなと思っていた。既製品な分割キーボードも検討したが、調べた限り HHKB ライクな配列がなくて自作キーボード沼に足を踏み入れることにした。

happyhackingkb.com

幸い、大学時代の同級生が自作キーボードに詳しく、色々聞きながら遊舎工房や AmazonYouTube を行き来しながらポチった。備忘録がてら経緯とか買ったものをまとめておく。

買ったもの

基本セットは以下。

Key Value
キーボード Choco60 rev.2
キースイッチ Kailh Midnight Silent V2 Switch / Tactile 35pcs x 2
キーキャップ Double Shot Olivia Keycaps
TRRS ケーブル https://www.amazon.co.jp/gp/product/B07L8WBWC4
USB ケーブル https://www.amazon.co.jp/gp/product/B07DFCX3CM

Choco60 rev.2 はHHKB とほぼ同様の配列でできそうだったのと、シンプルに一目惚れしたので決めた。友人からはホットスワップ(キースイッチの変更可否)が不可だから 7sPro オススメとアドバイスをもらったが、我を通して Choco60 rev.2 にした。キースイッチは、最近同僚から打鍵音がうるさいと指摘があったので静音性を優先したかった。ので比較的安めなものにした。

キーキャップは、Choco60 rev.2 が白プレートなので白にしたかった。柄でもないけどかわいい系がいいなと思って白色に絞って探した。値段はなるべく抑えたかったので Amazon で調べてそれにした。なかなか Choco60 rev.2 にマッチするキーキャップがなくて迷った。

TRRS ケーブルはカッコいいのがいいので透明なものにした。今回初めて知ったけど TRRS ケーブルって AUX ケーブルなんだね。USB ケーブルはナイロンの方が取り回ししやすいかなと思って安定の Anker。いつかコイルケーブル使ってみたいな。

他に準備した道具は以下。

道具 メモ
meishi2 キット 練習用
潤滑剤(GPL 205 G0) スタビライザーのルブ用
はんだごて meishi2 のビルドガイドで紹介されていたので
こて台 同上
巻はんだ 多いのは正義
はんだ吸取具 とりあえず買っておいたけど使ってない
キムワイプ 初めて買ったが最高
ルブ用
ドライバー 前から持っていた
ピンセット 何かと便利
ニッパー はんだの上側?を切る
ラジオペンチ 前から持っていた
ネジとか入れるトレー 100均で買った
キースイッチとか入れるケース 100均で買った
作業マット ホームセンターで買った

そして沼へ

勢いでトータル 5 万くらい掛けてしまった。後悔はしていない。まだ作りはじめていないのに既に自作キーボード楽しいとなっている(おかしい)。まずは meishi2 からやっていく!

ISUCON13に参加した

昨年に引き続き、ISUCON13 オンライン予選に参加した。最終スコアは 6,885 で、694 チーム中 353 位でフィニッシュ。

isucon.net

enokawa.hatenablog.jp

github.com

kikuchi-et-al.hatenablog.jp

出場の経緯

一昨年、昨年と出場して楽しかったので出場した。昨年の反省会の時に元同僚の @mmclsntr 誘おうぜって @kikulabo さんと話して、快諾してもらってはじめて 3 人チームで参加することになった。@mmclsntr さんは前職(僕が今所属するアイレット)で Python を書いていたので、とても心強かった。

準備

去年は Go での初回ベンチが最高得点(笑)だったので、最初は Go で行こうという話をしていた。が、みんな学習の時間がとれず Python でいこうという話になった。ちょこちょこ時間を合わせて過去問を問いたりした。オレは家庭の事情であまり参加できず。。あまり準備できないまま本番へ。

0 次予選

今まで培ってきた手動オペレーションの速さを活かして 0 次予選は準優勝だった。(笑いすぎて typo してる)

twitter.com

会場

今回運良くヤフー LODGE で参加することができた。ディスプレイも 1 枚借りれて、ありがたくオレが使わせてもらった。さらにお弁当やコーヒー、懇親会のドリンクやフードもいただけて至れり尽くせりだった。ありがとうございました!

twitter.com

本番

流れを書いていく。(e: enokawa, k: kikulabo, m: mmclsntr)

  • Cfn 流す & サーバーセットアップ (e)
    • その間に当日マニュアルとアプリケーションマニュアル読む (k, m)
  • サーバーセットアップ完了後に初回ベンチ
    • 3,746 (Go)
  • Python に変更してベンチ
  • New Relic 仕込む (k, m)
  • その間に当日マニュアルとアプリケーションマニュアル読む (e)
    • この時点で「アイコン画像配信についての特記事項」見て Nginx でごにょごにょするのは難しそうだなと思った
  • 今回は素振りと少し違った構成だったの手こずった
  • 2,552
  • この時点で 11:23 くらいだったかな
  • users テーブルに name でインデックス貼る (e)
    • 2,541
  • GET /api/user/:username/icon を Nginx で配信してはどうかという話があがった (m)
    • 条件付き GET リクエスト大丈夫かな。。と思いつつ Nginx の location 書く (e)
    • POST /api/iconpublic/icon/{username}.jpg に画像ファイルを配置
    • Nginx で画像ファイルを配信するように修正してベンチ回したが NoImage.jpg を返せず FAIL location ~ ^/api/user/([a-zA-Z0-9]+)/icon$ { alias /home/isucon/webapp/public/icon/$1.jpg; }
  • NoImage はアプリケーションコードで返すように修正 (e, m)
    • 次は条件付き GET リクエストで FAIL
    • この時点で再度マニュアルを読み返し、Nginx ではどうしようもないことに気づく
    • ので Nginx でアイコン配信は行わず、アプリケーション画像配信を行う方針に
  • GET /api/user/:username/iconIf-None-Match: icon_hash を比較して一致していたら 304 を返す (m)
    • 2,729
  • この時点で 15:22
  • app の DB の向き先を 3 号機に変更 (e)
    • 1: app, pdns
    • 2: 暇
    • 3: DB for app and pdns
    • 5,050
  • PowerDNS が参照する DB を 2 号機に変更 (e)
    • 1: app, pdns
    • 2: DB for ddns
    • 3: DB for app
    • 4,109
  • 不要プロセスを停止 (e)
    • 4,382
  • APM外した (k)
    • 6,608
  • DNS レコードの TTL を 600 秒に変更 & 再起動試験 (e)
    • 6,716
  • reaction テーブルの index を追加
    • 6,637
  • livecomment テーブルの index を追加
    • 6,662
  • 終了前に再起動してベンチ
    • 6,885 (最高 & 最終スコア)

良かったこと

  • 前回の最高スコア(2,722) を更新できたのは素直に嬉しい
  • App の DB と PowerDNS の DB を別サーバーに外だしできたのは良かった
  • 諦めずにアイコンのファイル化ができてよかった
    • 途中で条件付き GET リクエストで FAIL し続けて諦めかけていた
      • が改めてマニュアルを読んで「他のAPIで返されるユーザー情報に含まれる icon_hash という値を利用し、~」という文言をみて
      • fill_user_response 関数で icon の SHA256 値参照して返してるのに気づいて底修正したら通ったの嬉しかった
  • 早い段階で再起動試験ができた
  • 初オフラインだったのでコミュニケーションがとても取りやすかった

反省点

  • 一番最初に全テーブルに対してインデックス貼ればよかった
    • ちまちま貼っていたので思い切ってやればもっとスコア伸びたかも
    • 公式の講評みてもそれで 10,000 いってたと書いていたし
  • 条件付き GET リクエストと対応に時間がかかってしまった
    • 結果的に我々の技量で Nginx で配信することは難しかった
    • ちゃんとドキュメント読んでメンバー間で認識を合わせよう
  • 「デプロイします」とか「git pull」してねとかの声掛けが面倒だった
    • ちりつも
  • コード更新してデプロイしてベンチ回して KeyError が出たりしてまたコード直して... の繰り返しが多かった
    • 簡単に動作確認ができたりするといいのかな
    • もしくは Go などの型厳密な言語を利用すればよいのか

おわりに

去年よりスコア上がったけど悔しい!来年は Go でやるぞ!

2023年11月

育児

3 歳になった!!

  • 登園時にキャリーケースを車まで運ぶ
    • たぶん先月の帰省の影響
  • ベビーカー乗ってる赤ちゃんみると指さして「あかちゃーん!」という
    • その赤ちゃんのパパママも笑ってて平和
  • パパママが「痛い」と言うと「だいじょーぶ?」と気にかけてくれる
  • ママがコロコロにぶつかって「痛いよー」と言うとコロコロを遠くにどかしてくれた(優しい…)
  • ご飯の準備をしようとするとお手伝いしようと来てくれる
  • 保育参観に参加した
    • 息子氏のお友達と一緒に公園で遊ぶことができて楽しかった
    • 去年よりもお兄ちゃんになっていて頼もしかった
  • 1 人でトイレいって 1 人でおしっこできた
  • 誕生日の前々日にママが息子氏の写真を飾りつけていた
    • 翌日起床後テンションあがっていた
  • 誕生日は富士急ハイランドにいった
    • 前日に早めに河口湖についてかちかち山に登った
    • 初のロープウェイ興奮していた
    • 山頂ではアイスたべた
    • 晴れていて富士山もよく見えて最高だった
    • お昼はほうとう食べた
    • ホテルについてパパと大浴場へ
    • 初の大浴場楽しんでいた
      • ここでお洋服ぬいでロッカーに入れるんだよとかここでかけ湯ってのをするんだよとか
      • お風呂に入る前に体を洗うんだよとかおしっこはお風呂のなかではできないよとか話ができてよかった
      • お風呂上がりは髪を乾かし足つぼやってたすごい
    • ディナービュッフェは好きなコーンスープとかデザートもあって楽しめた
    • 売店でパーシーのおもちゃ買ってソファの後ろに落とす
    • 朝食のバイキングも楽しめた
    • 富士急ハイランドは優先入場でめっちゃ優越感あった
    • 入場後 1.5 時間でトーマスランド制覇した
    • その後はなぜかギャン泣きで寝た
    • のでパパは 1 人でトンデミーナ乗ったヤバかった(楽しかった)
    • お昼はピザーラたべた
      • ここで息子氏起きてりんごジュースが売ってなくてギャン泣きしてパパと散歩
    • ママもぐるぐる回るブランコ?みたいなマシーンに 1 人で乗る
    • そのあとみんなでコーヒーカップに乗って終了帰宅
  • 次の日は家でまったりケーキ食べたりした
    • ろうそくの火けせたすごい
  • 久々に公園にも遊びに行った

息子氏 3 歳おめでとう!また成長して嬉しいような寂しいようなお気持ち。誕生日は家族皆健康に最高にためしたのでよかった。帰ってきたあとに何が一番たのしかった?と聞くと「おっきいお風呂!」と言っていて泣きそうになったのは内緒。3 歳も楽しんでいこうな!

仕事

  • 簡単なフロント修正やった
  • 休み多くてメンバーに迷惑かけた
  • CDK Diff / CDK Deploy の結果を GitHub の Pull request にコメントさせるようにした
    • Actions 便利
  • botocore の変更の影響を受けた
  • 新規 API の開発を始めた
    • 設計たのしい。実装もやっていくぞい

2023年10月

育児

2 歳 11 ヶ月になった。

  • 親子遠足にいった
    • ゲームしたりどんぐり探ししたりした
    • もらったジュースを満面の笑みで一気飲み
    • 9 月に転園した子も来てて一緒に遊べた
    • お外で一緒に昼ごはんも食べた
    • 先生たちが誘ってくれたらしい感動
  • 転園の申し込みした
    • 今通っているとこは小規模なので
    • あと残り少しと考えると寂しい
  • 夜寝てる時おむつ変えようとしたらギャン泣き
  • 沖縄に帰省した
    • ラウンジでトマトジュース飲んだ
    • 飛行機はぜんぜん大丈夫でほとんど寝てた
    • 沖縄ついたらばーば(オレ側)と手をつないで歩いた
    • じーじ(オレ側)だいすき
      • じーじが PC 触ってるとき座りにいく
    • ばーば(奥さん側)と姉妹でお昼ごはん
    • じーじ(奥さん側)と漁港で遊ぶ
    • オレと海で足だけ浸かった少し寒かった
    • 基本ご飯は米だけ食う
    • 場所見知り人見知り全然しなかった
    • 奥さんの姉妹の家に泊まった
    • エンダー食べず
      • ベルだけ鳴らした
    • 親戚の家に遊びに行った
      • フルーツ食べたりオレのいとこと遊んでいたりした
    • いとこと遊んだ
      • ディズニーランドのお土産をもらってそれで遊んだ
      • みんなで北谷のアメリカンビレッジ散歩した
    • ホテルで高熱がでた
      • 基本元気
  • 移動販売車のたい焼き 3 人で食べた
  • ケーキ屋さんの椅子で盛大にズッコケてドアに頭打った
  • 1 週間ぶりの保育園で先生たち歓喜
    • 先生たちがハグしようとしたら華麗にスルー

後輩の結婚式で沖縄に帰省した。ほとんど親戚周りだったけど、皆からチヤホヤされる息子氏みるとこっちも嬉しくなってくる。高熱だしたりもしたけどなんとか乗り切った。息子氏ありがとう。

仕事

  • バグが多くでた
  • 新規参加メンバーがジョインしたのでモブプロ(ワーク)多めにした
  • スプリントプランニングに時間が掛かりすぎてしまう
    • 細かく見積もりすぎているのかな。。?
  • フロントも少し commit した
    • ボタンクリックしたら外部ページに遷移させる処理
    • 軽微な UI 修正
    • もっとやっていかねば。。

2023年9月

育児

2 歳 10 ヶ月になった。

  • 久々のパパっ子
    • 登園時ママに送ってもらってパパ駅で降りたら園でギャン泣き
  • おしっこできた!!!
    • 夜寝る前に座ってどうせ出ないだろうと思ったら出たすごい
    • めちゃくちゃ褒めた
  • ちゃんぽんおいしい
  • 椅子からおちて頭うつ
  • パパママの顔を叩く
  • テレビを叩いてたおす
    • 説教すると笑う
    • この日はテレビ禁止にした
  • 何でもイヤイヤ
    • やーだよー イヤ いかない ブッブー 叫ぶ
  • 登園前に盛大に嘔吐
    • 無理やり歯磨きしたからかも
  • しゃぶ葉
    • わちゃわちゃしたけど結果的に楽しかった
    • 基本うどん食う
  • ジョイマン高木のマネをする
    • パパのマネのマネ
    • 「ひうぃごー かもーん」

今月は感情がいっぱい爆発した。

仕事