電気工事士の免状をgetしました

なんだかんだ無駄に資格集めていたが、業務独占はまだ3つ目 (運転免許と小型船舶)。

試験内容自体はそんなに難しくなく、電子工作ちょっとやってたりすれば、多少試験対策すればすぐ合格できそうな内容だった。

練習後の余った部材が大量にあり、これまた処分がだるだる。。。

すでに先日買ったボロ家の漏電修理とかしています。

とりあえず家中の古めかしくて汚いスイッチやらコンセントやらを総取り替えする予定。

あとCD管の中の配線とかもやり直したいんだけど、流石に難しそうだなぁ。。。

深センのPCBWayで基板製造しました。小ロットだけど。

とうとう手を出してしまいました。

趣味でいろんなセンサーを家中にバラ撒いているんですが、いままでユニバーサル基板を駆使してきたので一つ作るだけでも大変で不器用な自分にとってはなかなかうんざりする作業だった。

いつか深センの格安系基板製造は試してみたいと思っていたけけど、なんだかんだ自分でこしらえてしまっていた。当たり前なんだけど、これ発注するとすげー楽で、見栄えもちゃんと基板だしなかなかの感動モノ。早く使っとけばよかった。時間はかかるけど。

今回はお試し的な感じで簡単なものをオーダーした。ついでに「Sunaga Lab」とシルクまで入れてしまいました。とくに意味ないけど。

基板設計にはKicadを使いました。オープンソースです。

KiCad PCBエディター

オーダーしてから一週間ほどで手元に届きました。配送はOCSを使いました。なんか安めで早い。

製造費が$19.68、輸送費と$13.54でした。小ロットにしては安い。

これはまずいな・・・だいぶ課金してしまいそうだ・・・。

エンジニアだったらエンジン点火プラグ交換ぐらい自分でできないと

そうなんです。バイクの調子が最近悪いんです。

先日オイルとフィルター交換してしばらくアイドルしてたら動かなくなりました。

だいぶ昔にスパークブラグが錆びまくりで動かなくなったことがあり、また交換してみました。

今回の作業はこのあたりの偉大なる先人を参考にさせていただきました。

サイドカウルを外し、ラジエーターをどかした上でスパークプラグコネクタを外し、頑張ってスパークプラグまでたどり着く。

下側から手を突っ込んでやったけど、すごく狭かった。あとプラグレンチ+エクステンションバーでやったけど狭くて上部にあるゴムシート?みたいなものもだいぶ外して作業しました。 それでもだいぶ狭かった。

道具さえちゃんとしてれば、難しいのはプラグからレンチを外すときぐらい。(結構無理やり外した)

だいぶ黒くなってはいるが、ググってみた写真と比べた感じ、そんなにやばい感じだとは思えない。まぁ安いからいいんだけど。

一応エアクリーナーも交換。

このバイク買って10年ぐらい無交換でしたが、猫の毛まみれでした。もちろん色も全然違う。

ついでにガソリン添加剤も入れてみました。

これで自分ができそうな消耗品系はバッテリー以外一通りやった。

とりあえずエンジンがまた始動するようになったので、この後ガソリン入れて6kぐらいまで回して走ったら、再びエンストして動かなくなった。

自分でできそうな範囲では無さそうなのでお手上げ。おとなしくホンダウィング木更津に入院となりました。。。

エンジニアだったらエンジンオイル交換ぐらい自分でできないと

できないといけないということもないけれど、ふと思い立ったので自分でバイクのエンジンオイル&オイルエレメントの交換やってみた。

ググればいくらでも情報があって、自分のようなズボラーな素人でも問題なくできた。

今回は主に以下の偉大なる先人達の情報を参考にさせていただきました。本当こういうの助かります。

今回ミスったこと

オイル受け溶かす

ズボラーなのでオイル受けを用意せず (買うのが面倒というか、オイルで汚れたタライとか考えただけで面倒) で、使い捨てのオイル処理ボックス買ってきて、直でドレインから流し込んだ。 容量的にも余裕があるものをかったので、流し込むまでは問題なし。

作業が一通り終わって、エンジン回しても漏れないかどうかの確認するとき、「万が一オイル地面に垂れたらやだし」と思ってこの箱をおいたままにした。 このときエキパイに思いっきり袋が触れていて、溶けてしまった。

袋が溶けるのは良いんだけど、エキパイ側にべったりついて剥がすのに苦労した。。。

ついでにエキパイ錆取りしたら煙が・・・

エキパイがすごく錆びていたので、ついでにKUREのCRC-336を吹きながらゴリゴリやってしまった。その後エンジンをつけると煙が。

よく考えたらこれ表面コーティングするし、耐熱じゃないし、当たり前だよな。。。

この人はエキパイが非常に熱いものだという考慮がごっそり抜け落ちている様子ですね。反省シナサイ。

ボルトのトルク値探すのに苦労した

ミスっていうわけでもないけど、意外とググっても出てこない。

次の自分のためのメモ: カバーボルト 10Nm, ドレインポルト 24Nm

ドレインボルトは結構遠い

ドレインボルトは意外とつけ外ししづらい場所にある。これ普通の小さいラチェとかで回すだけならできるんだけど、首が回らず90度しかならないトルクレンチとかだとエクステンションバーつけるか、アンダーカウルを両方外すかしないと回せない。

今回はちゃんとトルクレンチで回したかったため、仕方なく両方のアンダーカウル外した。

次回はちゃんとエクステンションバーを買うことにする。

オイルちょっと入れすぎた

凡ミス・・・。

冷めれば大丈夫になるに違いない、とするか、頑張って抜くか。。。

どうでもいいんだけど

エンジニアの語源はエンジンだと思ってたけど、気になってググってみた所どうも違う様子。。。

知らなかった。。。

[読書記録] 「社会正義」はいつも正しい

「人種、ジェンダー、アイデンティティ」とかそういう〈社会正義〉といわれているっぽい、大切そうで面倒そうなものについて、どうして面倒なことになっているのか分析した本。

リベラルっぽいこういうやつが実はリベラルではなく、ミシェル・フーコーなどのポストモダン的思想から来ている危険な思想であると指摘している。

著者の主義主張としてはリベラリズム押しのようなので、そこは踏まえて読む必要がある。

知った

  • 人権がどうとか、ジェンダーがどうとか、そういったものの言説がフーコーやデリダなどのポストモダン的な流れが合ったことは知らなかった。
    • こういった主張の中で、過激な言説であったり、攻撃的な言説、現代科学と矛盾するような言説がよく見受けられるなぁとは思っていた。
    • フーコーがだいたいどういった事を言っていたか、脱構築だとか、パノプティコンだとか、そういうものはなんとなく理解していたつもりだったけど、こことのつながりは認識できてなかった。
  • そもそもこういうやつって、リベラリズムの中の過激派的な味方をするのが正しいと思ってたんだけど、そもそもこの手のやつ (ポストモダン的な) と、リベラリズムが対立の関係にあることが全く分かっていなかった。
    • 本の中では「アクティビズム」とかっていうカテゴライズだったかな・・・。いまいち「あっち側」のカテゴライズ方法がわかっておらず。
    • 左派右派とか、そのあたりから思想のカテゴライズする言葉の意味理解が雑すぎた。
    • ポストモダンの前段として、社会主義・マルクス主義的な立場の人が「資本主義社会の本質的な問題」だと思っていた問題がリベラリズムでだいぶ解決されてしまった、という流れがあるらしい。
    • だから、こういう思想は赤い思想の人たちとの親和性がある。という理解でいいのかな。
    • どうもリベラリズムと赤の繋がりがよくわからないなぁと思っていたが、そういう(そもそも繋がってない)ことだったのか。
  • ファットスタディーとか正気かよと思いつつ、色々と文献読んでいるとだんだん「自分が間違ってるのか?」と思わされてしまう事もあったが、これを読んで自分の感覚は間違ってないはずという事は理解できた。
    • 少なくとも同じ違和感を抱えている人はいるという事
  • (身体等の)障害を考えたとき、えてして「そもそもの普通の能力が社会構築物である」というような考え方はよく見る。それが「1980年代に変質し始めた。」(No.3170) とあるが、これはもっと最近の話だと思っていた。
    • 日本だとそういう思想が入ってくるのが遅いのかな。それともたまたま自分があまり見なかっただけか。
    • まぁ、ある程度境界の問題の重要性はあるにせよ、障害は障害ですよね。
  • いままで持っていたジェンダーがどうのとか、ファットでも問題ないよねとか、障害なんてそもそも「普通」が無いんだみたいな、違和感のあった主張の文脈が何となく一部理解できた。
    • またこの自分の違和感の当然さも理解できた。
  • 日本にも似た構造って結構あるよね。
    • とくに同和問題とか。最近だとColaboもこういう潮流があるのかな。
    • そもそも被害者文化って日本人のメンタリティと親和性ある気もする。

(ファットスタディーズの文脈で)「どんなサイズでも健康で居られるのだと論じた。医学的なコンセンサスでは、この発送は否定されている。」(No.3430)

  • このどんなサイズでも健康で居られるというのはホントかよとも思いながら、そういうもんなんだろうかと信じてい待っていた部分があった。
  • そりゃそんなわけないですよねー。

ファット・アクティビズム、「ファッティリンピック」 (No.3454)

  • 見てみたい。

ペイリーは、〈社会正義〉アプローチへの異論を「シャドーテクスト」として扱う。つまり、〈社会正義〉に対して書かれた批判は、誠実でも有益でもなく、まともな学術として認められるべきではない、という。 (No.4105)

  • 反論を一切認めず、反論したやつを吊し上げるような態度というのは大変怖い。しかし本当に最近良く見る気もする。

Protocol Buffers の oneof をリストする (+テンプレートで) プラグイン作った

Protocol Bufferにて、あるoneofフィールドについてケースごとに処理の振り分けをしたいことがあった。 これ、いくら探しても簡単にできるいい方法が見つからず (探し方が悪いのかもしれない)、結局簡単なプラグインを作った。

別のプログラムのサブプログラムとして作ったんだけど、他にPythonとかでさっと使える簡単な例も見つからず、微妙に苦労したので一応 protobuf-oneof-listing-plugin としてその部分だけGithubで公開しておくことにした。

簡単な実装例程度のソースなので読めば必要なさそうだけど、軽くソース抜粋して作り方をメモしておく。

まずprotobufライブラリをインストールしておく。

$ pip install protobuf

環境によっては--userなどをつける必要がある。あとレポジトリ内のやつはテンプレートによる生成のためもうちょっと色々インストール必要。

protobufのpluginをインポートする。

from google.protobuf.compiler import plugin_pb2 as plugin

リクエストはstdinから来るようなので、それを読み取って CodeGeneratorRequest としてパースする。

import sys

data = sys.stdin.buffer.read()
request = plugin.CodeGeneratorRequest()
request.ParseFromString(data)

入力されたファイルはパースされた状態でrequest.proto_fileに入っている。配列になっていて、複数個ファイルの場合もあるので注意。

リクエストパラメータ (protoc実行時に--hoge_out=XXXXX:./out/とするときのXXXXXの部分) は request.parameter に入っている。この部分はパースとかされず : の前そのままの文字列。

生成結果は同様に CodeGeneratorResponse として生成して、stdout。

response = plugin.CodeGeneratorResponse()

# ... responseに生成結果を色々書き込む ...

output = response.SerializeToString()
sys.stdout.buffer.write(output)

このresponseにはfileフィールドがあり、そこにaddしていくことで結果となるファイルの生成ができる。

f = response.file.add() # f の型は response.File
f.name = "test-output-file.txt"
f.content = "Generation result"

エラーが起こった場合は error フィールドに書く。

response.error = "エラーです"

今回作ったプラグインの主目的であるoneofの場合の処理などは protobuf-oneof-listing-plugin レポジトリ にある protoc_oneof_listing_plugin.py が参考になるかもしれない。

その他 CodeGeneratorResponseCodeGeneratorRequest のフィールドなどは Google の plugin.proto などを参考に頑張る。

実行は基本的には protoc に実行ファイル名を与えるだけ。プラグインの例えばファイル名が test_plugin.py だったら

$ protoc test.proto --plugin="protoc-gen-test=./test_plugin.py" \
    --test_out=templates=hoge:./out/

といった感じ。

参考文献

test

[ZFS] 自宅サーバーのRAID-Zのハードディスクリプレースのメモ

// どうでもいいけど自宅サーバーって響きが既に年季を感じる時代になってしまいました。

宅サバのZpool (ZFS) にあるHDDからずっと異音がしてるのでリプレースすることにした。 何度かやってるけど、そのたびに調べ直すことになって結構面倒なので、その時のメモを残す。

(以下はzpoolのPool1にある、DiskId11をDiskId22に交換する場合のコマンド例)

ディスク除去まで

今回は交換先ドライブがまだないので、まずディスクをoffline。

(既に手元にあって、マシンに接続されている場合はスキップしてbadblock後いきなりreplaceでok)

# zpool offline Pool1 DiskId11

状態確認

# zpool status
  pool: Pool1
 state: DEGRADED
status: One or more devices has been taken offline by the administrator.
    Sufficient replicas exist for the pool to continue functioning in a
    degraded state.
action: Online the device using 'zpool online' or replace the device with
    'zpool replace'.
  scan: resilvered NNNK in N days NN:NN:NN with 0 errors on NN NN:NN:NN NNNN
config:

    NAME                                          STATE     READ WRITE CKSUM
    Pool1                                         DEGRADED     0     0     0
      raidz2-0                                    DEGRADED     0     0     0
        ata-XXXXXXXXXXX-XXXXXX_DiskIdAA           ONLINE       0     0     0
        ata-XXXXXXXXXXX-XXXXXX_DiskId11           OFFLINE      0     0     0
        ata-XXXXXXXXXXX-XXXXXX_DiskIdCC           ONLINE       0     0     0
        ata-XXXXXXXXXXX-XXXXXX_DiskIdDD           ONLINE       0     0     0
    logs    
      nvme-XXXXXXXXXX-XXXXXX_XXXXXXXXXXXX-part5   ONLINE       0     0     0
    cache
      nvme-XXXXXXXXXX-XXXXXX_XXXXXXXXXXXX-part6   ONLINE       0     0     0

必要であればIDからデバイスファイル名を確認

# ls -lah /dev/disk/by-id/*DiskId11*

デバイスの停止

# echo 1 > /sys/block/sdX/device/delete

ディスク停止の確認

# dmesg
[日  5月 23 08:59:09 2021] sd X:X:0:0: [sdX] Synchronizing SCSI cache
[日  5月 23 08:59:09 2021] sd X:X:0:0: [sdX] Stopping disk
[日  5月 23 08:59:10 2021] ataX.XX: disabled

RMA

SeagateのディスクだったのでSeagateのサイトからRMA申請。(微妙に分かりづらい場所に申請フォームがあったりするのは嫌がらせだろうか)

Seagate ST3000DM001 の RMA 制度でクロネコヤマトの「宅急便コンパクト」で送ってみた - What I Know ~ワッタイナ」あたりを参考にさせていただいて、ヤマトの宅配便コンパクトで送った。

ディスク追加

今回はマシンをoffにしてHDD追加作業したけど、onのまま刺したりしても認識されたと思う。(M/Bとかによるはず)

作業後マシン起動して、追加されたディスクの確認。

一応smartctlやhdparmなどでシリアル番号を見て、追加したディスクのラベルと一致するデバイスを探して確認。

# smartctl -a /dev/sdY
smartctl 7.2 2020-12-30 r5155 [x86_64-linux-5.4.109-gentoo-x86_64] (local build)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Seagate IronWolf
Device Model:     XXXXXXXXXXX-XXXXXX
Serial Number:    DiskId22
...

念の為、パーティションテーブルが空っぽいことを確認 (ディスクによってはWindows用にフォーマット済みのpartが一つあったりするかも)

# gdisk -l /dev/disk/by-id/ata-XXXXXXXX-XXXXXXXX_DiskId22
GPT fdisk (gdisk) version 1.0.6.1

Partition table scan:
  MBR: not present
  BSD: not present
  APM: not present
  GPT: not present

Creating new GPT entries in memory.
Disk /dev/disk/by-id/ata-XXXXXXXX-XXXXXX_DiskId22: NNNNNNNN sectors, N.N TiB
Sector size (logical/physical): 512/4096 bytes
Disk identifier (GUID): XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is NNNNNNNN
Partitions will be aligned on 2048-sector boundaries
Total free space is NNNNNNNN sectors (N.N TiB)

Number  Start (sector)    End (sector)  Size       Code  Name

ディスク検査

注意: 以下実行するとディスクにかかれていたデータは消えます

とりあえず毎回badblocksフルで実施している (時間かかるのでscreenやtmux上で)。 大容量ディスクの場合そのままやると以下のようなエラーが出る

# badblocks -wsv /dev/disk/by-id/ata-XXXXXXXX-XXXXXXXX_DiskId22
badblocks: Value too large for defined data type invalid end block (NNNNNNNN): must be 32-bit value

なので、ブロックサイズを確認・指定して実行する。

ブロックサイズ確認

# blockdev --getbsz /dev/disk/by-id/ata-XXXXXXXX-XXXXXXXX_DiskId22
4096

ブロックサイズ指定してbadblocks。

badblocks -wsv -b 4096 /dev/disk/by-id/ata-XXXXXXXX-XXXXXXXX_DiskId22

(ここでかなり時間かかる。1TBごとに半日ぐらいかな)

Zpoolのディスクreplace

badblocks完了後、zpoolに追加するまえに一応再確認。

# gdisk -l /dev/disk/by-id/ata-XXXXXXXX-XXXXXXXX_DiskId22
GPT fdisk (gdisk) version 1.0.6.1

Partition table scan:
  MBR: not present
  BSD: not present
  APM: not present
  GPT: not present

Creating new GPT entries in memory.
Disk /dev/disk/by-id/ata-XXXXXXXX-XXXXXXXX_DiskId22: NNNNNNNN sectors, N.N TiB
Sector size (logical/physical): 512/4096 bytes
Disk identifier (GUID): 64A78E1B-26D3-4E32-940C-2693C69A9A10
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is NNNNNNNN
Partitions will be aligned on 2048-sector boundaries
Total free space is NNNNNNNN sectors (N.N TiB)

Number  Start (sector)    End (sector)  Size       Code  Name

zpool replaceを実行してresilver開始。

# zpool replace Pool1 ata-XXXXXXXX-XXXXXXXX_DiskId11 /dev/disk/by-id/ata-XXXXXXXX-XXXXXXXX_DiskId22
# zpool status Pool1
  pool: Pool1
 state: DEGRADED
status: One or more devices is currently being resilvered.  The pool will
    continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
  scan: resilver in progress since NN NN:NN:NN NNNN
    NN.NG scanned at N.NNG/s, NNNM issued at NN.NM/s, N.NT total
    0B resilvered, 0.00% done, N days NN:NN:NN to go
config:

    NAME                                          STATE     READ WRITE CKSUM
    Pool1                                         DEGRADED     0     0     0
      raidz2-0                                    DEGRADED     0     0     0
        ata-XXXXXXXXX-XXXXXXXX_DiskIdAA           ONLINE       0     0     0
        replacing-1                               DEGRADED     0     0     0
          ata-XXXXXXXXX-XXXXXXXX_DiskId11         OFFLINE      0     0     0
          ata-XXXXXXXXX-XXXXXXXX_DiskId22         ONLINE       0     0     0
        ata-XXXXXXXXX-XXXXXXXX_DiskIdCC           ONLINE       0     0     0
        ata-XXXXXXXXX-XXXXXXXX_DiskIdDD           ONLINE       0     0     0
    logs    
      nvme-WDS100T2X0C-XXXXXXXX_XXXXXXXX-part5    ONLINE       0     0     0
    cache
      nvme-WDS100T2X0C-XXXXXXXX_XXXXXXXX-part6    ONLINE       0     0     0

errors: No known data errors

しばらくしてresilverが完了したことを確認してDone。

# zpool status Pool1
  pool: Pool1
 state: ONLINE
  scan: resilvered N.NNT in N days NN:NN:NN with 0 errors on NN NN:NN:NN NNNN
config:

    NAME                                          STATE     READ WRITE CKSUM
    Pool1                                         ONLINE       0     0     0
      raidz2-0                                    ONLINE       0     0     0
        ata-XXXXXXXXX-XXXXXXXX_DiskIdAA           ONLINE       0     0     0
        ata-XXXXXXXXX-XXXXXXXX_DiskId22           ONLINE       0     0     0
        ata-XXXXXXXXX-XXXXXXXX_DiskIdCC           ONLINE       0     0     0
        ata-XXXXXXXXX-XXXXXXXX_DiskIdDD           ONLINE       0     0     0
    logs    
      nvme-WDS100T2X0C-XXXXXXXX_XXXXXXXX-part5    ONLINE       0     0     0
    cache
      nvme-WDS100T2X0C-XXXXXXXX_XXXXXXXX-part6    ONLINE       0     0     0

errors: No known data errors

昔にこういうのでデータ飛ばしたことは数え切れないほどあるので、この手の作業は毎回ヒヤヒヤする。

とはいえZFSは全体的に安全に使えるように考慮されている感じがあって、安心感はある。

自分でバイク (CBR250R) のメーターの修理してみたよ

CBR250RはメータのバックライトLEDがやたら壊れやすいらしく、ウチのやつも数年前ぐらいに たまにチカチカするようになり、最近ほとんどつかなくなってしまった。

タコメーターはまぁいいかというか感じだが、速度表示は夜にちょっと困る。 というか捕まる。(らしい。バイク屋さん談)

これ、交換になると何万円かは掛かるらしい。

貧乏性なのでLEDごときで・・・と思ってしまったため自分で修理しました。

// という事を参考メモとして書いておこうとずっと思いながら半年放置してしまった。ようやく書いた。

LEDの用意

LEDは秋月電子に売っていた 高輝度白色チップLED OSW5DLS1C1A を使った。

偉大なる先駆者たち (参考参照) がこれ使ってたから。

LED装着面まで解体

まずは表面から見えるボルトを外してメーター部分をバイク本体から外す。 裏のケーブルさえ気をつければそんなに難しくない。

次にメーター裏から見える三盆のネジを取り外して、カバーからメーター本体を取り外す。

裏側から8本のネジを外す。 一箇所Warrantyがどうのこうのって書いてあるが、もはやWarrantyもクソもないので気にせず除去。

全て外すと、メーター部・基板から、カバーが取れます。

タコメーターの針を外す。

正しいやり方はわからんのですが、僕はペンチで掴んでメリッと外しました。結構硬かった。

あとは、基板側のツメを外せるよように真っ直ぐにする。これもペンチでやった。

↑これを↓

こうする。(戻すときは逆)

こういう止めかたって初めてみたが、自動車関連では一般的なんだろうか。

残りは液晶の部分のた端子がつながってるので、その部分を折らないように引き離す。 この端子は多分刺さっているだけなので、まっすぐ引き離せば素直に離れる。 剥がすときに、表示切り替えとかのボタン部分のパーツが外れるので注意。

(ちなみにこのボタンの部分、戻すときの取り付け方を間違え手戻りしたりして苦労したので、 初めのうちからどうついていたかよく確認しておいたほうがいい)

剥がした後。赤い部分が端子

ここまでしてようやくLED部分にたどりつく。

(どうせすぐ壊れるならもう少しアクセスしやすい作りにしてくれてもいいのに・・・ととか思ってしまう。)

回路の状態確認と付け替え

ここから先は電子工作的な領域です。

まずは、壊れているのがLEDだけか?というのをある確認。

本体の配線に、分解した基板部分だけ接続して、通電してみる。

下にある4つが速度計のLED。N灯とかはついてますが、ここは見事に消灯してる。

消えているLEDの端子電圧をそれぞれ測り、ついでに極性も見ておく。とりあえず今回は4つとも電圧があったので、回路自体は多分大丈夫なんでしょう。 ここで電圧が来てなかったりすると、結局付け替えても治らず、という悲しいことが起こります。 (実際どの程度あり得るのかはわかりませんが・・・)

電圧が来てることまで分かったので、あとは頑張って付け替える。

うちにはハンダごてが一本しか無いので、挟んで外す、みたいな上品なことは出来ません。

破壊上等って感じで壊れたLEDごと溶かす勢いで焼いた上で、半田吸収線を併用して外しました。 (良い子は真似しないでね)

LED側はどうでもいいけど、基板側でショートした状態にならないようには注意したほうが良いとは思う。

後は秋月で手配したLEDをハンダ付ける。 そして再度基板のみ本体とコネクタをつないで、動作確認。

今回は面倒なのでメーターの方は交換せず。 面倒と言うか、わざわざ危険を犯してまで光らせなくてもいいかな、という感じ。

あとは分解した逆の手順で戻していくだけ。 先述したボタンの付け方以外では特に苦労すること無くできた。

その他

作業中にバイク内に蜂の巣を発見した。ずっと一緒にツーリングしてたのかな・・・。

偉大なる先駆者たち (参考文献)

10期目のスナガラボ株式会社です

10期目です。まだやってます。以下、なんて事はない近況です。

  • さっさと木更津に移住してたおかげで、大流行のコロナはなんだかんだ弊社(我が家)には影響ほとんどなし。
    • 仕事内容的にも影響しないし、もともと都内に行きたくなくて打ち合わせ極力避けていたし。ていうか引きこもり。
    • 今までよく行ってた旅行だけど、子供がまだ小さいからコロナ関係なくそもそも行けてなかった。まぁそろそろ行きたいけど。
    • 都内ではけっこう保育園が閉鎖とかしてらしいけど、木更津はフツーにやってた。
  • みんな早く木更津に移住すればいいのに

うみほたる

  • 会長が無事に人間らしくなってきました。

買い物に行く会長

  • 子供生まれてからもずっと車中心の生活。都心で車なしで子育てとかもう考えられないわって状態になってます。
    • おかげで早くから子供は車に慣れました。よく寝ます。
    • そしてコロナでよりいっそ車が必需品になってしまった。

車に乗る会長

  • ここ最近はよくRustとかElixirとかさわってました。あとちょっと前にESP32とかで家中センサ作ったり、車のコンパネ改造したり。
  • 仕事の幅はあんまり広がらないね。ずっと開発(と投資)。別に広げようともしてないけど。
    • コロナの影響で持ってる株式とか投信が一時期かなりやばかったけど、生活に関わるモノを重点的に買ってたおかげで既に持ち直しました。
  • 東京オリンピックに合わせて日本脱出する予定だったんだけど、コロナのおかげで無理そうです。
    • というかオリンピック自体が無くなったので脱出する必要も無くなった。
    • 来年かな。オリンピック無くてもちょっと脱出したいね。
    • それに備えて子供のパスポート取ってたんだけど、もう写真がゼロ歳児だからおもちゃみたいでかわいくて面白い。大公開したいぐらい。

0歳児のパスポート

  • 去年の台風もうちは奇跡的に無傷だったけど、今年は一応なんか対策しときたい。(何すんだろう)
    • とはいえなんかもう、全員が無事であれば後はどうでも良いかなっていう感じもする。

台風で崩れた太田山。だいぶ木が伐採された。

  • チャチャンは今日も元気にドロボウネコです。

覗きチャチャン

  • だいぶ久々にブログかいた。ずっとサボり気味。いけませんいけません。

今後ともよろしくお願いいたします。

123...5