2020-10-26

朝起きたら16時。オァ、オァー。ここから一時間記憶が飛びます。第一麺に行った。 最近は昔ほど第一麺をうまいと感じないのだが、これは基準が上がってきたのか、それともそもそも第一麺を過大評価していたのか議論の分かれるところ。 Google Mapのレビューは非常に高い(4.7)なので多分基準が上がってるのだと思う。

帰ってからは無を30分してシューマートでランニングシューズを買った。 やはり餅は餅屋と言うべきで足の測定を行い試着した靴が一発で完全にフィットした。入店から購入まで15分で済んでしまったのだけど、なぜ済んだかと言うと閉店20分前に入店したため。もっと余裕持って行こうね。

後は人の家で肉焼いて少しだけ飲んだ。キーボードもわずかに進捗した。課題と仕事と仕事2とタスクは何もしてません。大変申し訳ありません。土曜から精神の調子が良くなったので、月曜日に午前から起きれば今週は人間として振る舞える。この時間にこんなの書いてる時点でもう先は見えてる気もする。

2020-10-25

15時に起きたあと17時に第一麺行ったけど閉まっていたので松屋に行った。この間記憶無し。

その後借り物のキーボードの調子が悪くなってたので分解清掃したら反応しなくなった。ウォー。 色々やる気が出なかったのでカレーを作りました。そこそこうまくてよかった。

煮込みながらしばらく無をしていたら労働1の電話がかかってきたので人生終わりやになってTwitterがあの惨状になりました。 風呂には入れた。労働が終わると大分元気になった。

総括

今日は労働2をやるつもりだったけど結局してない。明日はもっとちゃんと生きます。

あと昨日1割くらい干してそのまま忘れた(なんで?)洗濯物があるので再び洗濯機に入れてこのあと干します。 洗濯したあと洗濯機内でうっかり一日放置も経ているので300円と3日をかけ行われるめちゃくちゃ丁寧な洗濯。

Kensington Pro Fit Ergo Verticalをベアリング化する

ベアリングは最高。お前もそう言いなさい。

必要なもの

  • ミニルータ
  • ミニチュアベアリング(必ずステンレスのものを使うこと)
  • 8 mm長でベアリングの内径と同じ直径を持つシャフト(ステンレスが好ましい)
  • 精密マイナスドライバ
  • 精密プラスドライバ

手順

  1. 上面のカバーを外す。特にネジとかは用いられていないのでマイナスドライバでグリグリすれば外れる。

    f:id:namachan10777:20201018012809j:plain
    上面のカバーを外したErgo Vertical
    ネジを全て外す。左側のものは筐体下部と筐体上部を繋いでおり、 あとのカップ周りの上下2つのネジはカップと筐体上部を繋いでいる。

  2. 裏面のゴムを全部剥がしてネジを外す。特殊ネジが採用されているものの適切なマイナスドライバを使えば回る。 全て外せば筐体上部と筐体下部が別れる。

    f:id:namachan10777:20201018013147j:plain
    筐体上部と筐体下部を分離

  3. カップからセンサーを取り外す。精密プラスドライバを使う。 ルビー支持球の部分をベアリングに置換するので外側の出っ張った四角い部分をルータ削る。 支持球は硬いので、透かして光が通るようなら外側からドライバで突くと外れる。 支持球によって空いた穴にビットを差し込み長穴を開ける。 カップの縁に対し垂直に。

  4. カップ外側に対し長穴と垂直に溝を彫り、ベアリングを通した8 mmのシャフトを当てつつ深さを調整していく。ルビー支持球と同程度にベアリング外周が内側に突き出すようになれば完成。適当に接着剤で止める。

    f:id:namachan10777:20201018013744j:plain
    カップ完成図

  5. 組み直して完成

その他

勿論保証は全て破壊されます。でもベアリングへの憧れは止められねえんだ。 ベアリングはゴロゴロとした操球感も魅力の一つではありますが、特筆すべきは静止摩擦係数の小ささにあります。 もう一生支持球式は使えないねぇ。

最初からKensingtonさんやLogitechさんがベアリングでトラックボール作ってくれればこんな手間は不要なのですが。 MX Masterのホイールとか外装のクオリティでベアリング支持のトラックボール作ってくれないものでしょうか。幾らでも出すので。

PC組んだ

いえーい

項目名 製品
CPU Ryzen 7 3700X
グラボ 玄人志向 RD-RX5500XT-E4GB
マザボ AsRock B550 Pro4
SSD KIOXIA EXCERIA 500GB
RAM CORSAIR DDR4 メモリモジュール VENGEANCE LPX シリーズ 16GB×2
PDU 玄人志向 電源 KRPW-BKシリーズ 80PLUS Bronze 650W ATX電源 KRPW-BK650W/85+
ケース Thermaltake Core P3 curve
マウス Kensington Ergo vertical
キーボード WORD編集部から借りてきたMITSUMIメンブレン
ディスプレイ DMM.makeの4K 42型

雑感

Core P3流石にデカイですね。水冷想定しているだけあって空冷だと無駄な気もする。オープンフレームなので組み立てやすいのは良かった。音に関してはほとんど聞こえない。Ryzenのリテールクーラー結構静音性あるし十分冷えてるみたいです。グラボに至ってはファン止まってるときのほうが多い気がする。冷蔵庫のほうがうるさい。ホコリが貯まる心配はややありますが、ファンは一応下からは吸わないようにしているし、まあメンテはやりやすいからこまめに清掃します。

メモリに関してはやや過剰だった気もする。16コアで並列ビルドしても余裕ですね。tmpfsゴリゴリに使っていくか。

クソデカディスプレイ一枚で画面分割して使うコンセプトだったがディスプレイはやや大きすぎた気もする。あと発色がなんかおかしい。設定の問題かな?でも20インチ台だと一枚で使うには微妙な気もしますね。悩ましい。まあ画面上での配置はソフトウェア的にどうでもなるので良いとして、解像度は画面サイズに対してやや足りてない気はする。次買うなら8Kかもしくは4Kでももう少し画面サイズ落としますかね。大分慣れては来たけど。

PC組んでからそういえばキーボード持ってないやと気づいて借りてきたメンブレンのこのキーボードだけど打鍵感悪くない。しばらくはこれでもいいかも。

f:id:namachan10777:20201001212342j:plain
PC

f:id:namachan10777:20201001212415p:plain
画面分割の様子(Sway)

本日のカレー

カレー
カレー

肉の下味

  • 煮干し風出汁調味料
  • カレー粉

スープ

  • 玉ねぎ1玉
  • ホールトマト1缶
  • ナス3本
  • 綿実油
  • 煮干し風出汁調味料
  • タマリンドペースト
  • 花椒

付け合せ

  • トマト
  • 玉ねぎ(水にさらす)
  • きゅうり
  • 白ワインビネガー
  • ディル

多めの油を使う。トマトは煮詰めない。花椒テンパリングする

はてなインターンに参加しました

楽しかったです。

hatenacorp.jp

体験記

選考課題はdocker runするだけだったので楽だった。面接はES締切後にメールをいただき、そこで調整して日付を決めた。 Google Meetで面談するのは初めてだったがSkypeやZoomに比べて使いやすかった。 流れとしては人事の方との日程等諸確認のあと、エンジニアの方と志望動機やスキルについて話すものだった。 自分はまだどのような業界でどのようなエンジニアとして働くかを考えている途中で、 そこについて若干突っ込まれる事はあったものの全体としては和やかに進んだと思う。

最初の一日目は講義で、他の参加者の方も書かれているようにかなり良かった。 かなり完成度が高くコストを割いて準備していただいた事が分かる。 gRPCやKubernetesに触れるのは初めてだったので勉強になった。

本体の開発はDiscordとScrapboxでメンターの方1人に対しインターン生2人の体制。 1030出社の1900終業なので弱点属性が朝な自分でも参加がそこまでキツくなかった。 テキストチャットを使わずScrapboxに情報を集約すると後からかなり見返しやすくなり便利だし、 Dsicordは画面共有が出来るのでオンラインでもペアプロが出来るので、今後オンラインで開発することがあれば積極的に導入したい。 一日目は残業なしで済ませたが、2日目はDockerでハマって残業をしてしまった。結局OpenSSLを自前ビルドしてmusl ABIを使うのが一番早い。 その点Goはデフォルトでシングルバイナリに収まるので便利ですね。

最終日の発表資料は日付上の当日にGoogle Slidesでエイヤッと作ったので時間等不安だったが制限時間の5分ほぼきっかりで終わったので良かった。 自分は実装でいっぱいいっぱいだったので文字の多いスライドになってしまったが、 他のインターン生はグラフィカルで分かりやすいスライドを作っていた。すごい。

実装したもの

虹色に輝くテキスト
実装したもの
* 既にある記法変換サービス(Go)にgoldmarkを使ったマークダウン変換機構を実装 * ☝に独自記法(テキストの背景色が1650万色に変化するゲーミング記法) * 与えられたURLのタイトルを取得するサービス(Rust) * ☝これにキャッシュを実装 * ☝同じドメインへのアクセス制限(DDoS踏み台対策)を実装 * 上記サービスを使い生URLを文字列に置換する機能を記法変換サービスに実装 * ☝これの並列化

時間があればrobots.txtのパースやUAの設定をやりたかった(すべきだった)。昔自分でマークダウンもどきパーサをRustで書いたことがあるので、その実装をサルベージしても良かった気はするが、Goに触れられたのは良かった。

ここに書いておらず時間を使ったのはDocker。先の章で書いたように、Rustのバイナリをmuslにしようとしたり諦めたりで色々と時間を使った。 あとminikubeとskaffoldでRustを使うときはminikubeの方でCPUのリミットを外しておかないと死ぬ。自分はこれで死にました。 Rustのビルドはめちゃくちゃ遅いので2コアとかだとビルドに5億年かかる。

あとやっぱりテストは難しい。副作用を扱う部分はtraitに切り出してテストするようするべきですね。 普段はやっていますが、今回はサボってしまった。

こういう既存のライブラリを活用しつつ、それなりに高い品質のコードを素早く書いていくのは結構難しく、周りのペースについていくのが大変だった。RustはGoに比べるとハマりどころは多そうだし、ネットワーク関連のライブラリがまだ枯れてない印象はあるもののメモリ競合が起きない事はかなり強力で、最初から適切にエラーハンドリングを行えばほとんどサービスが死なないのは嬉しい。メモリリークもOOM Killされるので大丈夫(大丈夫ではない)。

感想

非常にモダンな環境での開発が出来て楽しかった。あと他のインターン生の実装速度が速くてすごい。同室のid:slashnephy さんとか…… メンターの方とも細かく進捗共有が出来ていてコミュニケーション上の問題も感じなかったです。 オンラインなので出費がほとんど発生しないのは助かりましたが、京都での長期インターンもやってみたかったですね。 就活で京都に行くのが楽しみです。

メンターの方はじめはてなの皆様、インターン生の皆さんありがとうございました。