2021 雑談

作成者:カランカラン
💡

質問やフィードバックがありましたら、フォームからお願いします

本文は台湾華語で、ChatGPT で翻訳している記事なので、不確かな部分や間違いがあるかもしれません。ご了承ください

元々、自分がやっていることを整理して発信しようと思っていたのですが、整理してみた結果、あまり話すべきことがないことに気づき、流れるように記録していくことにしました。

引っ越し

2021年の初めに引っ越しました。大濠公園の近くに新しく建てられた(完成したばかりで入居したタイプの)アパートに移りました。大通りのそばで少し騒がしいですが、ここでの環境にはとても満足しています。自分の小さな部屋があれば、仕事や動画撮影も以前よりずっと質が良くなります。 ああ、引っ越しをして台湾の賃貸探しは運に頼らざるを得ないと感じましたが、日本では少し努力すればたくさんの物件が見つかり、数年後には新しく建てられて家賃も安い物件がまた出てきます。キーボードもHHKBに変えました。新しい環境に自分にふさわしいものを与えたくて、使ってみたらもう戻れません。

年初

2021年の初めには、高校時代にしっかり学んでいなかった技術をたくさん勉強しました。AVR Programmingを通じて、I2CやSPI通信プロトコル、EEPROMの書き込み、ADC、GPIO、ハードウェア割り込みなど、ファームウェアで理解すべき知識を一通り学びました。 Arduinoを使わない理由は簡単です。ソフトウェアエンジニアとしてライブラリを使ったり、他人が書いたコードを修正したりするだけでは、自分の学びにはほとんど役立ちません。 その後、AVRが徐々に衰退し、ほとんどArduinoだけが残っていることに気づきました。AVRに比べて、STM32ははるかに使いやすく、価格と性能の両面で優位性があり、消費電力も低いです。開発ボードとIDEを組み合わせれば、オンボードデバッグやブレークポイントの設定も可能で、AVRに比べて本当に優れています。

STM32に実際に触れた後、プログラムを書くときはみんなSTM32 Cube IDEを使っていることが分かりました。機能は豊富ですが、コードを書くのは非常に不便です。特にVS Codeに慣れた後では、そのIDEは本当に苦痛です。埋め込みエンジニアたちは皆、このようなものを使ってプログラムを書いているのでしょうか?逆に8ビットのAVRは、avr-gccを開いてmain.cを開くだけで小さな世界が開けます。STM32に比べて、入り口のハードルが低いです。AVRのチップも非常に安価で、多くはDIPピンに対応していて、ブレッドボードに挿せばすぐに使えます。

仕事では新機能の開発があり、当時は私ともう一人の同僚しかいなかったため、スケジュールがかなり厳しく、ほぼ毎日、要件、開発、QAの解決のループを過ごしました。非常に充実した時間でした。 また、全く新しいSSRサーバー(next.jsを使用)を立ち上げる必要があり、大企業でサーバーを構築する際に考慮すべきことが非常に多く、プロセスも複雑で、Operation Teamがawxから操作できるように自動化する必要がありました。そうでなければ、リリース基準を満たせない場合は延期せざるを得ません。

途中で発見した要件のため、サーバーの設置、nginx設定、playbook設定、Docker、部門間コミュニケーション、文書作成、事業部への提案、自動化デプロイ、実際の機能のコーディングなど、これらはすべて自分一人で実装しました。その間にQAのチケットも解決しなければならず、正直なところ、その時期は精神的なプレッシャーが非常に大きかったです。約1ヶ月間残業し、ある日は進捗のために休日出勤しました。 その時期、すべての部門が非常に忙しく、サーバーの構築に必要な知識もフロントエンドとは異なり、チーム内に助けてくれる人はいませんでした。しかし、もう一人のメンバーが非常に積極的に他のQA問題をカバーしてくれて、本当に感謝しています。また、その時期、上司が特に何も言わなかったことにも感謝しています。休日出勤のことを聞いたときには少し心配してくれましたが、すぐに私と会社との調整を手伝ってくれました。

ここで強調したいのは、会社は休日出勤を非常に嫌がっていることです。もし発生した場合は理由を説明し、後に会社から休日出勤分を平日休暇で代替するよう求められます(特別休暇ではありません)。ですので、平日の1日を前借りして休日に進捗を急ぐような感覚があります。

今振り返ると、良い結果を得ることができ、最終的には時間内に順調にオンラインになりました。他のプロジェクトの新しいページ開発もnext.jsで書けるようになり(以前はejs+純静的を使用していました)、SSRを使うことでできることが増えました。また、SSRを導入したため、SEOの実装も以前より便利になり、ld-jsonも書きやすくなりました。

最近、時々思うのは、多くのことは自分がこだわらなければ得られないということです。サーバーを立てることは一見簡単に見えますが、組織内では、統合が突発的に思いついたアイデアよりもはるかに重要です。統合を行うために最も重要なのは、さまざまなトレンドのフレームワークや技術を導入することではなく、良いコードを口で言うことでもなく、むしろ、すべての環境をしっかりと整えることです。

この期間はちょうど「モンスターハンターライズ」の発売日で、時間があっという間に過ぎていきました。仕事では進捗を急ぎ、仕事が終わればモンスターを狩ってストレスを発散しました。最初は他の人が太刀を使っているのを見て真似したいと思いましたが、後に楽しむためにはヘビーボウガンやライトボウガンの方が良い選択だと気づきました、無心で撃ち続けるのが楽しいです。

それに、彼女が意外にも収集系のクエストを非常に楽しんでいて、特にお金を稼ぐためのクエストに熱心で、どんなメダルやバッジ、小さなクエストでもクリアしたいと思っているので、仕事中に彼女がいろいろな小さなクエストをクリアしてくれ、仕事が終わった後は一緒に装備や武器をアップグレードして楽しむことができました。このモンスターハンターは本当に楽しめて、音楽や風景、衣装が日本の雰囲気を感じさせ、前の同僚の友人グループに偶然参加して、時々ダンジョンを一緒に回ることができ、低迷期を救ってくれました。

MPEG-TSとARIB B24字幕

謙謙の投稿を見て、手元にRaspberry Piがあることを思い出し、テレビ信号をコンピュータで見ることができるだろうと思いました。後にTVチューナーはTS抜きのものを購入しないといけないことを知りました。それ以外のものを買うと、専用ソフトを使わないと見ることができません。

日本のテレビ信号はMPEG-TSで、日本にはISDBという自作のテレビ放送基準があります。これは電波産業会が定めたものです。そういえば、日本には「不思議な放送法」があり、これは家にテレビがあればNHKにお金を払わなければならない法律ですが、払わなくても見ることができます。 すでに大法官に違憲ではないと認定されていますが、今でも日本という神秘的な国を理解できないでいます。

話がそれましたが、日本のテレビ番組では字幕を表示することができ、平仮名の注釈、色、外字、位置設定などができ、これらはすべてARIB STD-B24基準によって定義されています。

好奇心から、私はRaspberry PiでTVチューナーを使ってMPEG-TS信号を取得し、JavaScriptで簡単な字幕解析を行うことに成功しました。かなりシンプルですが、標準を参照する過程では、これを黙々と実装している人たちが本当に素晴らしいと感じました。特に謙謙のコードを見た後は、その素晴らしさを実感しました。

書籍執筆

先ほど述べたことに加えて、次は書籍執筆についてです。前年、鉄人レースでSvelteについての一連の動画を作成し、佳作を受賞しました。同僚に意見を聞いたところ、書籍を出版するのは貴重な機会だと言われ、挑戦してみることにしました。他のグループの参加者とは異なり、私は動画グループだったため、文字にするのにはかなりの時間がかかりました。締切が迫るにつれて、さらに頭痛が増しました。

Svelteは他のフロントエンドフレームワークに比べて台湾ではまだマイナーですが、私はSvelteを書くことがとても心地よいと感じています。そのため、マイナーな市場でもリソースを残したいと思いました。 本書には、実際のUI開発時の応用について多くのページが割かれており、アクセシビリティの実装や解説についても多く触れています。そして最後にはテストやSvelteKitについても加え、SSRの部分を補完しました。原稿料については、最初からあまり期待できないことは分かっていましたが、実際に入金される金額を見ると本当に少ないと感じました。

私個人としては、この本の最大の価値はUI実戦編にあると思います。開発者たちにこの分野の理解を助けられればと願っています。 また、私の前の同僚、上司EasonとKaiにも感謝しています。彼らは非常に熱心に私の原稿を見てくれて、多くの誤字や間違いを校正し、より良い書き方や提案を提供してくれたおかげで、本書の品質が向上しました。書き終えた最大の感想は、もう二度とWordでプログラム関連のものを書くことはしないだろうということです。その体験は非常に悪かったですし、PDFに変換すると奇妙にレイアウトが崩れることが多かったです。次回機会があれば、まずはレイアウトツールを整えてから書き始めたいと思います。

もし興味があれば、動画の実装も見てみてください。個人的には、動画の中の実装が参考価値が高いと感じていますし、UIコンポーネントがどのように一から開発されるかを実際に体験できます。最後の10日間にはSvelteの背後にある原理と簡単な実装についても触れているので、原理に関心のあるエンジニアには何か学びがあると思います。

自作キーボード

HHKBキーボードを使った後、このような静電容量無接点のキーボードの背後にある原理に興味を持ち、自己実装できるか考えました。日本では意外にも多くの人がこのようなキーボードを作っていることを知り、関連する材料や部品も手に入ることに、急に日本が素晴らしいと感じました。高校時代に既にハンダ付けの地獄を経験していたので、私にとっては基板を買ってハンダ付けし、部品を組み立てるのは自作キーボードとは言えません(注:これは私自身の基準であり、他の人に指摘するものではありません)。

誰が知っていたか、このような理由から新たな旅が始まりました。3Dプリンタを買い、PCB設計の配線を学び、回路を設計しました。PCB設計を除いて、他は高校で学んだ範囲でしたので、私にとってはそれほど難しくはありませんでした。しかし、PCB設計には多くのポイントがあり、特にこのような静電容量感知の高周波回路では、ノイズ耐性が非常に重要な学問であり、高校時代にほとんど触れなかった分野です。ただ、毎回発注するコストが非常に高く、中国へ送ると2000円以上の送料がかかり、完成品を受け取るまでに1週間以上待たなければなりません。全体のサイクルが非常に長いので、まずはブレッドボードで実験し、自信がついたら再挑戦したいと思っています。この間に多くのハードウェア関連の知識を補完し、USBの背後にある動作(USB規格は本当に複雑です)、PID理論、FIRフィルタなども学びました。また、Raspberry Pi PicoとPIOも試しました。結果として、自作キーボードはPCBを持っていますが、まだ完成していません。今年は何らかの成果を皆さんに報告できればと思っています(あまり期待しないでください)。

大村湾とハウステンボス

7月に再度大村湾とハウステンボスを訪れました。大村湾の雰囲気が本当に好きで、大村湾食堂で日替わりカレーを楽しみながら、月台前の大村湾は人生の必見リストに入れるべきだと思います。

小倉と門司港

しばらくBEASTARSに夢中になっていました。主役のレグシーが本当に好きで、彼の善良さ、静かに尽くす姿、そして自分を強くするための訓練の過程は、私がなりたいと思っている人そのものです。いつかその境地に達したいと願っています。その時、作者が小倉で展覧会を開いているのを知り、地主の特権を利用して行ってきました。

SwiftUIとBluetooth

2021年の会社のハッカソンで、自分が知らないことに挑戦し、アプリケーションを作ることをテーマにしました。当時、SwiftUIには不慣れで、Bluetoothの使い方も分からなかったので、ArduinoのトマトタイマーをBluetoothで作成し、コンピュータとArduino間でBluetooth通信を行うことにしました。統合をより良くするために、ステータスバー、通知、カウントダウンUIを追加し、ハードウェア側(Arduino)ではLEDマトリックスとブザーを使用しました。機能を調整して洗練すれば、実用的になると思います。少なくとも自分が使いたいと思えるものです。結局、ソフトウェア版のトマトタイマーアプリは使い尽くされてしまいましたが、ハードウェアとBluetoothの統合により、ユーザーの集中を助けることができます。実際の成果はあまり理想的ではありませんでしたが、目標は達成できました。

ハッカソンなので、実装はつなぎ合わせて、使えれば良いというレベルです。特に注目すべき点は、カウントダウン機能をArduino側で実装したことで、Timer割り込みの使い方を学びました。しかし、後になって思うと、カウントダウン機能はソフトウェア側で直接作成し、Arduinoは表示と通知だけを担当させる方が良いかもしれません。

書き記した感想として、SwiftUIは本当にReactに似ていると思いました。フロントエンドに慣れていると、かなり扱いやすいはずです。参考としてフロントエンド視点から見たSwiftUIをご覧ください。

ワイヤレスイヤホンWF-1000XM4

Sonyが6月にWF-1000XM4を発表した時、見た目が良く、ノイズキャンセリング機能もあったので即購入しました。実際に使用してみて非常に満足しています。ノイズキャンセリングモードに入ると、外の音が完全に聞こえなくなり、自分だけの小さな世界に没入できます。

まさか今年の初めに洗濯機に誤って入れてしまい、一つのイヤフォンの音が変になってしまい、仕方なく二手で売って再購入しました。幸い、Amazonでちょうどセール中だったので、少なくとも大損にはなりませんでした。

Lex Podcast

これは偶然YouTubeで見つけたポッドキャストで、MITの教授がテクノロジーの著名人をインタビューするポッドキャストです。私個人としては、技術的な内容が非常に濃厚なポッドキャストだと思っています。インタビューを受けた人たちには以下のような方々がいます:

  • Swift作者Chris Lattner
  • comma ai創設者Geohot
  • C++作者Bjarne Stroustrup
  • 3Blue1Brownチャンネルの作者Grant Sanderson
  • Donald Knuth: The Art of Computer Programmingの著者
  • Jim Keller、チップの神様

ソフトウェア産業を支え、技術の進歩を促す人々との対談を実際に耳にすることができ、しかもその内容が深いというのは本当に幸せなことだと思います。私の視野を広げるきっかけになりました。

その後、気持ちが少し楽になり、自分が技術を愛する人間であることを受け入れ、一般受けするような一般的なテーマを無理に書く必要はないと感じるようになりました。フーリエ変換や逆行列が好きであっても、それによって自分がオタクだからといって劣等感を感じる必要はありません。

ライブ配信とTuring Complete

2021年、私は自分に合ったYouTubeの運営方向を見つけられず、誰かに教えてもらいたいと思っていました。しかし、それでもいくつかの動画をアップロードし続けました。視聴回数から見ると、あまり注目されていないようですが、自分の人生のある瞬間を動画で記録できること自体は良いことだと思っています。

また、Turing Completeというゲームをライブ配信しました。論理ゲートから小さなコンピュータを作るような感覚で、nand2terisのゲーム版のような感じです。全く知識のない初心者にはかなり難しいと思いますが、著者が簡略化できれば、教育にもっと力を入れれば、さらに楽しくなるはずです。

JSDC2021とModernWeb'21

今年は2回Svelteについての講演を行いました。興味があれば、ぜひ見てみてください。振り返ってみると、以前は様々なセッションに参加することが好きで、Takerの段階にいましたが、経験を積むにつれて情報不安症のようなものはあまり感じなくなり、他の人に経験を共有することもできるようになりました。この心の変化に気づくのは非常に不思議な感覚です。

線形代数の再学習

なぜか再び線形代数を学び直しました。「数値の常識」という本を読んで、線形代数への情熱が再燃したからです。この本の中に「さようなら逆行列」という章があり、その内容は、ほとんどのことはLU分解で解決でき、逆行列は直感的ですが非常に計算量がかかるというものでした。私は実際に応用できる数学、つまり「数値分析」の分野が非常に好きです。研究するよりも、他の人がこれらのことを話しているのを聞く方が好きで、そうでないと数値分析は非常に苦痛です。この分野に深く関わることができる人は本当に素晴らしいです。また、古典的な特異値分解についても、毎回新たな発見があります。最近は、信号分析に興味を持っているため、フーリエ変換を再度学び直しました。

WebGL

WebGLに再び触れた理由は、簡単な視覚化の行列演算を作り、行列の乗算の概念を明確に感じたかったからです。しかし、その後は進展がなく、逆に線を描く方法を研究するのに多くの時間を費やしました。今考えると、本当に無駄なことをしていました。

台湾に帰国

銀行手続きとローンのため、ネットバンキングのパスワードを忘れてロックされてしまい、国泰世華がICカードのサポートを停止したため、やむを得ず多額の費用をかけて台湾に帰ることになりました。往復の費用と防疫ホテル代で10万台湾ドル近くかかりました。約2年ぶりの台湾帰国です。パンデミックが始まった当初、すぐに終息すると思っていたので、すぐに台湾に戻れると思っていましたが、結局この待機が2年も続き、今でも解除されていません。

台湾に戻ったこの数週間、すべての人や物事が特に感動的でした。周りには馴染みのある言語や看板があり、通行人の会話がとても興味深く感じました。どの小吃店に入っても美味しくて言葉が出てこないほどで、物価も驚くほど安いです。

日本の物価に慣れてしまった私にとって、今は価値観が崩壊しています。美味しいものはこんなに安く手に入ることができるのだと。ある日、防疫ホテルで出された朝食が古早味のおにぎり(もち米で包まれたもの)で、食べた瞬間、感動で涙が出そうになりました。海外生活を経験した後、台湾という私を育んでくれた土地には、多くの魅力的な場所があることに気づきました。早くパンデミックが終わり、隔離政策が解除され、安心できる台湾に戻りたいと切に願っています。

MPK mini

数年前、Roland-FA07を購入しましたが、この楽器自体が非常に大きいため、家にはもうスペースがなく、日本に引っ越してからはほとんど演奏しなくなりました。解決策を見つけられると自分に言い聞かせましたが、2年も放置してしまったので、年初に中古で売ってしまいました。 売却後、MPK mini MIDIキーボードを購入しました。8000円ほどで手に入るこのキーボードは、25鍵しかありませんが、FA-07のように機能が豊富ではないものの、かなり小さく、机に置いて直接コンピュータに接続して簡単な編曲ができるため、以前よりずっと楽になりました。

結論

今年で福岡に来てから3年目に突入しました。時間は思ったよりも早く過ぎ去り、ここでの生活にも徐々に慣れてきました。 今の生活スタイルやペースがとても気に入っていますが、同時に2021年はまるで頭のないハエのようにあちこち飛び回っていたように感じます。各分野に少し手を触れては浅くしか経験できなかったのです。視野を広げることには役立ちましたが、より深い成長を遂げたいと考えているので、今年の目標は自分がやりたいことに集中し、実際に何らかの成果を上げることです。正直なところ、そうした自分に少し苦しさを感じています。たくさんのことを試したいと思う一方で、投資した努力に見合ったリターンが得られないことを恐れています。ああ、人生は難しいですね。

これらの雑多な経験があなたの助けになれば幸いです。もし私と連絡を取りたい場合は、Twitterやメールで見つけてください。

この記事が役に立ったと思ったら、下のリンクからコーヒーを奢ってくれると嬉しいです ☕ 私の普通の一日が輝かしいものになります ✨

Buy me a coffee