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 さんとか…… メンターの方とも細かく進捗共有が出来ていてコミュニケーション上の問題も感じなかったです。 オンラインなので出費がほとんど発生しないのは助かりましたが、京都での長期インターンもやってみたかったですね。 就活で京都に行くのが楽しみです。

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

筑波大学編入体験記

namachan10777.hatenablog.com

筑波大学編入し、春学期がほぼ終わったのでここで体験記を書いていく。 その前に

f:id:namachan10777:20200809160200j:plain
点数黙示録カイジ

意外と取れてた。自分の自己採だとどうやっても240が上限だと思ったのだけど、この点数を見る限り多分魔法の力が働いたんだと思う。

入学まで手続き

まず試験後の関門は事務手続きにある。 今年のような例外的なスケジュールだと話は別だが、筑波大学東北大学の併願を行うような場合は書類提出がギリギリになるのでなるべく早く書類を書かないと後々困る。 ただやることはそこまで多くはないし、大抵の場合は高専と往復するだけで必要な書類は揃うのであまり難しくはない。

入学後手続き

宿舎入居とか大変そう(今年はスケジュールが狂っていますが)。とにかく入居に加えて履修、単位変換、奨学金と手続き祭りになるので狂う。 高専から卒業証明書と成績証明書をもらう際に5組くらい一気に申請しておくと狂いにくくなる。余ったら捨てればええ。 単位変換は編入の先輩に見ていただき、次に担任の教員のチェックを受けて事務に提出する運びとなるが、 この担任の教員のチェックが人によって結構変わる。 自分はほぼノーチェックで通ったが、中には非常に厳しく何度も突き返される場合がある。 単位変換は事務の作業なのでここでの担任の評価は(多分)単位変換とは関係しないので、本来の事務の基準より厳しい担任を引かないように祈りましょう。 このときにあとひとつでも情報に関連する単位を取っておけばと後悔するので、高専の講義はしっかり取っておいたほうが良い。 自分は後悔しました。

つくば市について

自転車か車がないと生きていけない典型的な地方です。地方ではあるが、地方特有の異常にデカイショッピングモールが1駅先にあるので自転車があれば生活はそこまで困らない。 東京都民などは「街が死んでいる」などと評するが、多分四国出身者などからすると住みやすい街だと思う。

筑波大学について

筑波大学では学類によらず他学類の講義を自由に取れる。(多分)全ての学類で自由単扱いなので8単位以上取っても卒業要件には関係ないが、 面白そうな講義を自由に取れるという利点はかなり大きい。 総合大学でかつキャンパスが(事実上)単一であることの利点であると思う。2外もおよそ他大で2外として取りうるものは履修可能であるし、人文の講義としてラテン語サンスクリットアッカド語なんてのもある。

高専と比べると講義のレベルも高いものが多く(高くないものもある)、かなり充実感はあると思う。 実験の内容を見ても、学生も教員も多い分だけハードなテーマの物が多くある。 ちなみに編入生が優秀というのは本当のようで、自分はいろいろあってBを生やしまわっているが周りの編入生はGPA4位を取っている。こわすぎ。 今年は土曜にも講義が入ったのもあるが、何かしら時間を食う労働をやっていると簡単にスケジュールが崩壊するので奨学金と(可能であれば)仕送りで食いつないだ方が良い。 アルバイトを親等から要求される場合があると思いますが、頑張ってモラトリアムしましょう。

NixOSをデスクトップで運用する

使い始めて数週間経ったので、NixOSiが何者かなどは置いておいて、今の所の運用について。 システムの部分については/etc/nixos/configuration.nix/etc/nixos/hardware-configuration.nixに書く。 これに関してはインストール時にテンプレートが置かれているので特に苦労も無いと思う。 ハードウェア毎に設定をまとめたものが公開されているのでThinkpadの設定も一発で使える。 Archだと自分でWiki読んで設定するべきところがNixOSだとテンプレートをちょっと改変するだけで使えるのは(NixOSのチームによって十分サポートされていることについては)楽。 最新の定義使いたいときは/etc/nixpkgs/とかにクローンしておいてnixos-rebuild switch -I nixpkgs=/etc/nixpkgs/とすればいい。 github.com

Vimの設定やシェルの設定ファイルの管理にはhome-managerを使うと便利。 $XDG_CONFIG_HOME/nixpkgs/home.nixにコンフィグを書いて管理する。 github.com

ここに設定を置いていますが、多分他の方の設定ファイルを参考にしたほうが良いです。

辛さ

  • ldすら普通の位置に無い(それはそう)ので、ldが普通の位置にあることを仮定しているソフトウェアは動かない(それはそう)。Rustのcrossとか動かないです。
  • fcitxがgtk上で動かない。GTK_IM_MODULE_FILE辺りの設定の問題らしい。issueで報告あるので自分の環境だけではないっぽい。 alacritty上で書いてクリップボードにコピーしているけどこれは直したい。ただIMはそもそもうまく動かないものなのでNixOS特有の辛さではない。
  • pkg-configもそのままでは動かない。なので外部のライブラリに依存するRustのクレートとかビルドできない。$PKG_CONFIG_HOMEを手動で設定すれば動きます。