# 📰Impression
OSSのリリースはほぼゼロな週だった。それよりも、[[TDD]]をはじめ、学習に寄ったアウトプットの週だと思う。
## Linuxセットアップ環境の整備
[[🦉owl-playbook]]を整備して、過去に作成してきた[[Ansible]]ベースのセットアップ環境をすべて削除し、[[asdf]]ベースの[[Ubuntu]]セットアップ環境を新たに構築した。
<div class="link-card">
<div class="link-card-header">
<img src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" class="link-card-site-icon"/>
<span class="link-card-site-name">minerva.mamansoft.net</span>
</div>
<div class="link-card-body">
<div class="link-card-content">
<div>
<p class="link-card-title">📜2023-09 owl-playbookのLinuxセットアップを1から作り直す</p>
</div>
<div class="link-card-description">
🦉owl-playbookには今まで試行錯誤したLinux (UbuntuやUbuntu Desktop、WSL2など) の設定が入っている。しかし、現在は主にWindows環境を使っており、Linuxを使う頻度は減ってきた。
</div>
</div>
<img src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/minerva-image.webp" class="link-card-image" />
</div>
<a
class="internal-link"
data-href="📜2023-09 owl-playbookのLinuxセットアップを1から作り直す"
></a>
</div>
%%[[📜2023-09 owl-playbookのLinuxセットアップを1から作り直す]]%%
上記[[ノート]]はただのtodoリストに過ぎないが、[[🦉owl-playbook]]の`mnt/linux`や`linux`ディレクトリ配下は一新されたので、興味があればそちらを是非見てみてほしい。
<div class="link-card">
<div class="link-card-header">
<img src="https://github.githubassets.com/favicons/favicon.svg" class="link-card-site-icon"/>
<span class="link-card-site-name">GitHub</span>
</div>
<div class="link-card-body">
<div class="link-card-content">
<div>
<p class="link-card-title">GitHub - tadashi-aikawa/owl-playbook</p>
</div>
<div class="link-card-description">
Playbook both Linux and Windows for me. Contribute to tadashi-aikawa/owl-playbook development by cre...
</div>
</div>
<img src="https://opengraph.githubassets.com/6fa2449d7362b410d99975fef36e99ca63f45316110c62b58b1abb3d66c6b41b/tadashi-aikawa/owl-playbook" class="link-card-image" />
</div>
<a href="https://github.com/tadashi-aikawa/owl-playbook"></a>
</div>
[[Bash]]ベースになったので、[[Ansible]]みたく使い方に毎回悩まされることも減り、READMEコマンドそのままで対応できることも多くなった。少しこみいったことをやりたくなったら、[[Bash]]のfunctionを使えばよい。
## [[WSL2]]環境の整備
かなり久々に[[WSL2]]環境を整備することにした。今年に1度整備しようと思ったこともあるが、その時は[[Ansible]]によるセットアップが上手くいかなかったので諦めていた。だが、状況が変わった。
- [[Linux]]の環境構築を[[Ansible]]ではなく[[asdf]]ベースに変更した
- [[📚テスト駆動開発]]の写経で[[Bun]]を使いたかったので[[Linux]]が必要になった
- [[Windows]]の[[クリップボード]]と連携できる環境が必要だった
2つ目の理由までなら[[Multipass]]を使ったVMでも問題ない。ただ、最後のクリップボードに関する要件は[[WSL2]]でないとかなり面倒なところだ。
<div class="link-card">
<div class="link-card-header">
<img src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" class="link-card-site-icon"/>
<span class="link-card-site-name">minerva.mamansoft.net</span>
</div>
<div class="link-card-body">
<div class="link-card-content">
<div>
<p class="link-card-title">📜2023-09-23 WSL2のオレオレ環境セットアップ</p>
</div>
<div class="link-card-description">
WSL2のセットアップにAnsibleを使わないで再チャレンジ。
</div>
</div>
<img src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/minerva-image.webp" class="link-card-image" />
</div>
<a
class="internal-link"
data-href="📜2023-09-23 WSL2のオレオレ環境セットアップ"
></a>
</div>
%%[[📜2023-09-23 WSL2のオレオレ環境セットアップ]]%%
クリップボードに関する件も以前は[[vcxsrv]]が上手く動かなかったりてこずったが、この半年強で[[Neovim]]を導入したこともあり、[[Neovim]]の設定と[[xsel]]を使うことでなんとか実現にこぎつけた。
<div class="link-card">
<div class="link-card-header">
<img src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" class="link-card-site-icon"/>
<span class="link-card-site-name">minerva.mamansoft.net</span>
</div>
<div class="link-card-body">
<div class="link-card-content">
<div>
<p class="link-card-title">📕WSL2のNeovimをWindowsのクリップボードと同期</p>
</div>
<div class="link-card-description">
xselを使う。インストールしたら、init.luaに以下を追加する。
</div>
</div>
<img src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/minerva-image.webp" class="link-card-image" />
</div>
<a
class="internal-link"
data-href="📕WSL2のNeovimをWindowsのクリップボードと同期"
></a>
</div>
%%[[📕WSL2のNeovimをWindowsのクリップボードと同期]]%%
[[Neovim]]への移行は3月のことだし、それ以降もメインエディタとして使うことはほぼなかったが、[[👤Bram Moolenaar]]氏の一件で[[Neovim]]縛り習慣を設けたこともあり、[[Neovim]]への距離はグッと縮まった。そこで今回の一件...というわけだ。すべては偶然であり必然である。繋がっているのだ。
## [[📚テスト駆動開発]]を[[TypeScript]]でやり直し
2週間前、[[📰2023年36週 Weekly Report#テスト駆動開発 はじめました]] にて[[📚テスト駆動開発]]の写経を[[Rust]]ではじめた旨を宣言した。
<div class="link-card">
<div class="link-card-header">
<img src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" class="link-card-site-icon"/>
<span class="link-card-site-name">minerva.mamansoft.net</span>
</div>
<div class="link-card-body">
<div class="link-card-content">
<div>
<p class="link-card-title">📰テスト駆動開発 読書メモ ~Rust編~</p>
</div>
<div class="link-card-description">
📚テスト駆動開発のメモ。- 📰テスト駆動開発 読書メモ ~TypeScript編~ をRustでチャレンジしなおしたもの
</div>
</div>
<img src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/%E8%AA%AD%E6%9B%B8%E3%83%A1%E3%83%A2.jpg" class="link-card-image" />
</div>
<a
class="internal-link"
data-href="📰テスト駆動開発 読書メモ ~Rust編~"
></a>
</div>
%%[[📰テスト駆動開発 読書メモ ~Rust編~]]%%
しかし、[[Java]]で書かれたコードを[[Rust]]で書いていくのは無理難題過ぎた。そもそもクラスが存在せず、継承を良しとしない設計思想の言語である[[Rust]]で、[[Java]]のabstract classなどを表現するのは無茶がある。加えて、[[所有権]]や[[ライフタイム]]のおまけつきだ。
本当の目的は[[📚テスト駆動開発]]を学ぶこと。なので、本筋に集中できるよう、得意言語である[[TypeScript]]ではじめからやりなおすことにした。
<div class="link-card">
<div class="link-card-header">
<img src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" class="link-card-site-icon"/>
<span class="link-card-site-name">minerva.mamansoft.net</span>
</div>
<div class="link-card-body">
<div class="link-card-content">
<div>
<p class="link-card-title">📰テスト駆動開発 読書メモ ~TypeScript編~</p>
</div>
<div class="link-card-description">
📚テスト駆動開発のメモ。読書メモとあるがメインは写経なのでサブ的な存在。
</div>
</div>
<img src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/%E8%AA%AD%E6%9B%B8%E3%83%A1%E3%83%A2.jpg" class="link-card-image" />
</div>
<a
class="internal-link"
data-href="📰テスト駆動開発 読書メモ ~TypeScript編~"
></a>
</div>
%%[[📰テスト駆動開発 読書メモ ~TypeScript編~]]%%
今のところは良好だ。そして、はじめは[[Deno]]を使っていたが、途中から[[Bun]]に乗り換えた。[[Multipass]]の[[Ubuntu]]環境で試したところ、その使いやすさと圧倒的速さに魅了されたからだ。
ただ、[[Multipass]]環境では[[Neovim]]のレイアウト崩れだったり、クリップボードとのやりとりが難しい問題があり、快適とは言えなかった。そこで先の[[WSL2]]対応へと舵取りすることを決め、[[🦉owl-playbook]]の[[Linux]]セットアップリニューアル、[[WSL2]]環境の最適化、クリップボード対応と進めてきたわけだ。
[[📚テスト駆動開発]]を読み始めなければ、これらのことに巡り合うチャンスを逃していたと思う。職場で[[📚テスト駆動開発]]と向き合う機会をくれた同僚に感謝したい🙏
# 🎇Shiny Outputs
## 🦉My products
- [[🦉Another Quick Switcher]]
- [Another Quick Switcher v9.1.1リリース](https://github.com/tadashi-aikawa/obsidian-another-quick-switcher/releases/tag/9.1.1)
## 📖Publish
- [[📒Node.jsのCLIフレームワーク]]
- [[📗モバイルからワンタップで現在時刻を挿入したい]]
- [[📗モバイルでツールバーオプションにセットした独自コマンドのアイコンを設定したい]]
- [[📜2023-09-23 WSL2のオレオレ環境セットアップ]]
- [[📜2023-09 owl-playbookのLinuxセットアップを1から作り直す]]
- [[📝WSL2のタブによるターミナルコマンド補完が数秒フリーズする]]
- [[📰2023年37週 Weekly Report]]
- [[📰テスト駆動開発 読書メモ ~TypeScript編~]]
# 👀Medias
%%本やサイト、動画など読んだもの/見たもの. [[Twitter]]みたいな感じでラフに書く%%
## 改造HHKB
[[HHKB]]を改造したツイート。トラックポイントあたりまではよく見るけど、マウスの内臓位置が『なるほど~』と思わされた。

## (翻訳) ストーリーポイント再考
[[👤Ron Jeffries]]氏によって書かれた記事の日本語翻訳記事。
<div class="link-card">
<div class="link-card-header">
<img src="https://t2y.hatenablog.jp/icon/link" class="link-card-site-icon"/>
<span class="link-card-site-name">forest book</span>
</div>
<div class="link-card-body">
<div class="link-card-content">
<div>
<p class="link-card-title">(翻訳) ストーリーポイント再考 - forest book</p>
</div>
<div class="link-card-description">
本稿は Ron Jeffries 氏によって書かれた次の記事の日本語翻訳です。著者に翻訳の許可を得て公開しています。 ronjeffries.com また本稿は DeepL Pro を使って下訳したも...
</div>
</div>
<img src="https://ogimage.blog.st-hatena.com/12704346814673850854/820878482968229593/1695012231" class="link-card-image" />
</div>
<a href="https://t2y.hatenablog.jp/entry/2023/09/17/192420"></a>
</div>
最近は[[👤jMatsuzaki]]氏の[[順算思考]]をはじめ、最善な次の一手を決めて着手することに集中する方式が流行っているように思える。やったことのあるもの、つまり見積もり精度が信用できるものならば[[逆算思考]]は有効だと思うが、そうでないものに関しては無駄な時間やメンタルの消耗をするデメリットの方が遥かに大きいからだ。
特に[[アジャイル]]を採用しているのであれば尚更だろう。『あなたはなぜ[[アジャイル]]をやりたかったのか?』という本質的な問いが必要になりかねない。
自分は[[アジャイル]]なやり方は好きだし、幼少のころから数十年もその思考で生きてきたから[[ウォーターフォール開発]]は違和感しかない。ただ、[[スクラム]]はあまり好きではない。[[スクラム]]という堅牢なフレームワークに振り回されてしまい、チームが効果を感じられなくなるリスクが大きいからだ。
## [[Dotfyle]]のポートフォリオ
[[Neovim]]の設定を可視化する[[Dotfyle]]を使ってみた。
<div class="link-card">
<div class="link-card-header">
<img src="https://dotfyle.com/favicon.ico" class="link-card-site-icon"/>
<span class="link-card-site-name">dotfyle.com</span>
</div>
<div class="link-card-body">
<div class="link-card-content">
<div>
<p class="link-card-title">tadashi-aikawa</p>
</div>
<div class="link-card-description">
Dotfiles | Neovim configurations | Authored plugins
</div>
</div>
<img src="https://avatars.githubusercontent.com/u/9500018?v=4" class="link-card-image" />
</div>
<a href="https://dotfyle.com/tadashi-aikawa"></a>
</div>
自身の[[Neovim]]環境を可視化できるのはもちろんのこと、他人の設定を参考にして自分の設定をより向上させることにも役立つと思う。
## 「出社義務化」が馬鹿げている理由…今はまだ強制する時期ではない
出社と生産性は関係なく、それは建前に過ぎないという話。
<div class="link-card">
<div class="link-card-header">
<img src="https://www.businessinsider.jp/asset/favicon/favicon-32x32.png" class="link-card-site-icon"/>
<span class="link-card-site-name">BUSINESS INSIDER JAPAN</span>
</div>
<div class="link-card-body">
<div class="link-card-content">
<div>
<p class="link-card-title">「出社義務化」が馬鹿げている理由…今はまだ強制する時期ではない</p>
</div>
<div class="link-card-description">
オフィスが自動的に生産性を高めるわけではありません。CEOたちは労働者の生活の中心に会社があることを望んでいるのです。
</div>
</div>
<img src="https://media.loom-app.com/bi/dist/images/2023/09/06/640b91988223480018d5a64c.jpg?w=1280&h=630&f=jpg" class="link-card-image" />
</div>
<a href="https://www.businessinsider.jp/post-274857"></a>
</div>
> CEOたちが本当に望んでいるのは、オフィスエリアをそぞろ歩いて、自分の管理下にある従業員たちが勤勉に働いている姿を見ることだ。
[[CEO]]としては全社員とオフラインで仕事をしたいと思うのは ~~たとえ普段顔を見せなくても~~ 分からなくはないし、オフィスを契約して使わないのはお金の無駄だから、そう望むのは当然だと思う。ただ、それ以外の点に関しては臭いものに蓋をしているのではないかという警鐘である。
> しかし、従業員たちが働いている姿を直接見ないと、与えられた仕事がちゃんと遂行されているかについて管理職が判断できないのだとしたら、それは大きな問題だ。筆者の同僚であるアキ・イトウ(Aki Ito)が書いているように、従業員のパフォーマンスは、インプット(努力)ではなくアウトプット(結果)に基づいて評価するほうが適切だとする研究結果もある。
何をやっているのか業務内容が分からないなら聞けばいい。情報が共有されなくて分からないのなら、情報を共有してもらえるように促せばいい。個人的には、在宅勤務を8時間しているのに[[Slack]]の投稿が1度もされないという態度は流石に改善した方がいいと思っている。timesでしょっちゅう呟けなどと言っているわけではない。せめて、出勤後と退勤前だけにでも、挨拶+簡単な共有はすべきだろうと。
それを見て見ぬふりしているならば、それは従業員の問題でもあり上司の問題でもある。それで一応に『出勤反対』という前にやるべきことがあるだろうと。その上で『顔を見ないと何やってるのか分からん』と言われたら、初めて問題視すればいいのだ。
## TypeScriptのサポートが強化されたVue3.3の新機能とは?──PropsとEmitsに関する新機能を解説【前編】
[[Vue 3.3]]の新機能について分かりやすいまとめ。
<div class="link-card">
<div class="link-card-header">
<img src="https://codezine.jp/favicon.ico" class="link-card-site-icon"/>
<span class="link-card-site-name">CodeZine</span>
</div>
<div class="link-card-body">
<div class="link-card-content">
<div>
<p class="link-card-title">TypeScriptのサポートが強化されたVue3.3の新機能とは?──PropsとEmitsに関する新機能を解説【前編】</p>
</div>
<div class="link-card-description">
Vue3、すなわち、Vue.jsのバージョン3がリリースされたのが3年前の2020年9月です。そのVue3が、Vueプロジェクトのデフォルトになったのが、2022年2月です。その時点でのVue本体の...
</div>
</div>
<img src="https://codezine.jp/static/images/article/18306/18306a_ogp.png" class="link-card-image" />
</div>
<a href="https://codezine.jp/article/detail/18306"></a>
</div>
残念ながら、自分は[[Vue 3.3]]を使う機会がほぼない。プライベートでは[[Vue]]をほとんど使わないし、仕事では専ら[[Vue 2.7]]だ。ただ、このような記事を見ることで『はやく[[Vue3]]に移行して良い開発体験を味わいたい..!!』という想いにはさせてもらえる。
## 世界最大のリモート組織が実践する徹底したドキュメント化の手法
フルリモートを地で行く会社 [[GitLab]]のノウハウが詰まった本の紹介。
<div class="link-card">
<div class="link-card-header">
<img src="https://www.shoeisha.co.jp/favicon.ico" class="link-card-site-icon"/>
<span class="link-card-site-name">Shoeisha</span>
</div>
<div class="link-card-body">
<div class="link-card-content">
<div>
<p class="link-card-title">GitLabに学ぶ 世界最先端のリモート組織のつくりかた ドキュメントの活用でオフィスなしでも最大の成果を出すグローバル企業のしくみ | 翔泳社</p>
</div>
<div class="link-card-description">
世界最大のリモート組織が実践する徹底したドキュメント化の手法本書では世界最先端のリモート組織を実現するためのノウハウを、GitLab社が公開している「GitLab Handbook」をベースにしな...
</div>
</div>
<img src="https://www.seshop.com/static/images/product/25794/L.png" class="link-card-image" />
</div>
<a href="https://www.shoeisha.co.jp/book/detail/9784798183916"></a>
</div>
自分の会社はほぼ出社なので、あまり恩恵を得られない... が、リモートワークを経験してきた者としては、習熟されたベストプラクティスのようなものは読んでおきたいという気持ちがある。時間に余裕ができたり、環境が変わるようなことがあれば、手に取ってみたい。
# 📚Inputs
%%知識、やってみた系%%
%%Publishの項目は削除する%%
- [[Cliffy (Node.js)]]
- [[Commander.js]]
- [[配列をchunk (Deno)]]
- [[日時操作 (Deno)]]
- [[Fetch APIでプロキシを指定]]
- [[Go言語のgo.modに記載されたバージョンを更新]]
- [[Noice]]
- [[Proxy (JavaScript)]]
- [[RustRover]]
- [[Templates]]
- [[Time Stamper]]
- [[📕WSL2のNeovimをWindowsのクリップボードと同期]]
- [[deno_std.collections]]
- [[deno_std.datetime]]
- [[oclif]]
- [[win32yank]]
- [[ツールバーオプション (Obsidian)]]
- [[👤Anthony Fu]]