2019年をエンジョイしたソフトウェア6つ

2020年を迎え、2019年を振り返るために、2019年から特にお世話になったソフトウェアをまとめてみます。 ただし人様の役には立たないと思います。

1. VSCode Remote Development

リモートLinuxPythonインタプリタとか拡張機能を動かしながら、VSCodeのフロントエンドはmacOSWindowsで使えるようになる機能 https://code.visualstudio.com/docs/remote/remote-overview

今年開発環境が凄く快適だったのは、VSCode Remote Developmentのおかげが大きい。これにより、macOSWindowsのデスクトップを使いながら、全てLinuxのソフトウェアで開発ができるようになった。

会社PCは、macOSWindowsのどちらかという制限があったのを、Parallels DesktopUbuntu Serverを入れて、VSCodeのRemote SSH機能を使って、運用中。Docker for Macの辛さとか、開発のためだけにmacOSでライブラリのコンパイルしなきゃいけないのとか、そういうものから開放されて、Linuxの世界に引き込もれるようになったのは、ほんと大きい。Linuxは人権。まじおすすめ。

技術書典7でRemote Developmentの本を出しました。Boothで販売中→ https://74th.booth.pm/items/1575583

f:id:j74th:20200126142302p:plain

2. xonsh

Pythonでカスタマイズできるシェル。 https://xon.sh/

BashZshにしても、カスタマイズをするにはシェルスクリプトの世界に降りていかなければならない。それが、Pythonで書けると凄くカスタマイズが捗ります。

・プロンプトにKubernetesクラスタ、ネームスペースを表示する ・プロンプトにGitの情報をたくさん出す。現在のブランチ名にmasterの時は🌟マークを追加したり、cleanだとフクロウ🦉が褒めてくれるが、stashがあるとサボテン🌵🌵🌵が立つ。

こちらも技術書典6で本にしました。Boothで販売中→ https://74th.booth.pm/items/1317300

f:id:j74th:20200126142328p:plain

3. Homebrew(Linux)

Linuxでも使えるパッケージマネージャ

Linuxに環境を移してもすぐに開発が立ち上がったのは、HomebrewがLinuxでも使えたことが大きい。昔はLinuxbrewはmacOSのHomebrewとは別リポジトリだったが、今は同じHomebrewになり、基本的にmacOSのHomebrewで使えていたパッケージがそのままLinuxでもそのまま使えることになった。

4. Vivlio Style

CSS組版エンジン https://vivliostyle.org/ja/

Re:viewから移行し、技術書典7ではこれで2冊を作成。Re:viewは非常に完成度の高い本ができるけれど、Re:view以上の表現力が欲しくなったらTeXに降りていかなければならず、それは気軽ではなかった。CSS組版になった今では、Markdownで表現力が足りなくなったら、HTML+CSSでなんとかなるようになりました(ヘッダーに節見出しが載せられないなど、課題はあるけれど)。

5. Emby

自分専用の音楽ストリーミングサービスを立てることができる https://emby.media/index.html

手持ちのCDを全部スマホに入れることは不可能だけど、自宅サーバ上になら全部入れられて、好きな時に聴くことができる。 M3で同人CDを30枚くらい買ったのを聞けるようにして、これがなかなか便利でした。Google Play Musicでも良いのだけれど、いつまでサービス続くかわからないので。

6. QMK Firmware

自作キーボード用ファームウェア。独自のキーバインドを設計できる。

冬コミでLily58に一目惚れして、自作キーボードに入門。Linux Desktop用とmacOS用に設定を切り替えられるようにして使っています。

2019年の休日はほとんど本の執筆に奪われたので、2020年は溜まったアイディアをソフトウェアにしていきたい。

2019年からではないけれど2019年もお世話になったソフトウェア VSCode, Kubernetes, Python, Go, Fabric(Invoke), Ubuntu Server

KubeCon&CloudNativeCon North America参加レポート

f:id:j74th:20200126142642p:plain

サーバAPIのインフラをKubernetesで構築しているのもあり、KubeConに参加して来ました。 Kubernetesのカンファレンスで最も規模が大きいこともあり、様々なインプットが得られ、非常に楽しむことができました。 参加するまでCloud Nativeの意味を理解していなかったのですが、参加してみると、クラウドベンダーの提供するクラウドインフラを使いながらも、クラウドベンダーにミドルウェアを独占させないために、オープンソースでコミュニティベースのミドルウェアを健全に育てていこうという動きだとわかりました。 本稿では、実際に聴講したセッションと、その面白かったところを紹介します。

Building Reusable DevSecOps Pipelines on a Secure Kubernetes Platform - Steven Terrana, Booz Allen Hamilton & Michael Ducy, Sysdig https://schedhttps://sched.co/UaWr.co/UaWr CI/CDの世界にSecurityを入れるDevSecOpsを実現するために、SecureなPipelineをテンプレートとして提供し、PipelineはテンプレートとしてJenkins Tenplating Engneが良いよというのが前半。 後半は、コンテナが怪しい動作をしていないかBehaviorを監視するFalcoの話。SystemCallレベルで本当に期待したことだけを実施しているかを監視できる。Falcoで何ができるのかわかってよかった。

Building the Cloud Native Kernel: Kubernetes Release Engineering - Tim Pepper & Stephen Augustus, VMware https://sched.co/UaWx Cloud Nativeになって、KubernetesLinuxの立ち位置って似ている、Linuxにディストロがあったように、クラウドベンダーがKubernetesサービスを打ち出している。コミュニティベースのKubernetesディストロがあってもいいんじゃない、というKubernetesをめぐるクラウドベンダーとの対立を面白く話していた。

Mario’s Adventures in Tekton Land - Vincent Demeester, Red Hat & Andrea Frittoli, IBM https://sched.co/UabG Kubetenes上のCI、Tektonを使ってみた話。N社は無関係。

Are You About to Break Prod? Acceptance Testing with Ephemeral Environments - Erin Krengel, Pulumi & Sean Holung, Nordstrom https://sched.co/UaWE CIでUTを実行するだけじゃなくて、IntegrationTestができるレベルの環境を、Pulumiを使ってPRごとに環境を構築して使い捨てることができるようにした、その実現方法と、結果を紹介。本当にインフラを作って使って捨てるのは良さそうだった。

Don’t Catch Feelings, Catch Issues With Kuberhealthy - Joshulyne Park & Shilla Saebi, Comcast htps://sched.co/UaXs Podの異常を宣言的な記述でアラート化できるKubehealtyの紹介。前半のアプリ開発者とKubernetes運用者の対立の話も面白かった。

Cloud Native Architecture: Monoliths or Microservices? - Goutham Veeramachaneni & Edward Welch, Grafana Labs https://sched.co/UaX6O MonolithかMicroserviceか、いや、Monomicrolithだ! モジュールの共有とかをすると大変なので、シングルバイナリのMonolithでMicroserviceを構築しようという話。

How Container Networking Affects Database Performance - Tyler Duzan & Vadim Tkachenko, Percona https://sched.co/UaZ8 ネットワークでサチらない状況をつくって、それをネットワークモジュールによってどの程度差が付くのかを比較してみた話。なぜそうなるかまでは踏み込まれなかった。

★Debugging Live Applications the Kubernetes Way: From a Sidecar - Joe Elliott, Grafana Labs https://sched.co/UaXU Sidecarを用いて稼働中のアプリケーションを分析する話。このオプションつけてサイドカーに加えると、プロセス解析のツール動かせるよ!と、Kubernetes、コンテナのオプションを良く理解した方法で収穫があった。

★Use Your Favorite Developer Tools in Kubernetes With Telepresence https://sched.co/UaeA Telepresenceという、ローカルとPodをつなぐプロキシをたてて、ローカルで動かしつつ、クラスタで通信を流すことで、デバッグツールが今までローカルで使ってたものが使えるよと言う技術の紹介。これは試さないといけない。 https://www.telepresence.io/

Keynote: Seamless Customer Experience at Walmart Stores Powered by Kubernetes@Edge - Maneesh Vittolia, Principal Architect & Sriram Komma, Principal Product Owner, Walmart https://sched.co/UdJf. Wallmartで、PosをCloud Nativeにやるために、通信障害に備えて衛星通信つかったり、EdgeのKubernetesを使ったり、している実例。すごい。

Handling Risky Business: Cluster Upgrades - Puneet Pruthi, Lyft https://sched.co/UaYz クラスターのアップデートについて。ノードの、Cordon、Drain、Deleteする手順とか、振り替えれる。たぶんまだ開発中のK8stroverの公開が待たれる。

Kubernetizing Big Data and ML Workloads at Uber - Mayank Bansal & Min Cai, Uber https://sched.co/Uaad UberのビックデータのワークロードをKubernetes上でどう実行しているかの紹介。どんなミドルウェアをつかい、どんな種類のワークロードがあるか。すごいことはわかったが、すげぇとしか感想がない。

Bringing the Envoy Service Mesh to Mobile - Jose Nino & Michael Schore, Lyft https://sched.co/UaWW MobileアプリもIstioのデータプレーンであるEnvoyを繋げられるSDK、EnvoyMobileの紹介。これは強力そう!

Ready to Serve! Speeding-Up Startup Time of Istio-Powered Workloads - Michal Malka & Etai Lev-Ran, IBM https://sched.co/UacN Istio、SideCarを使うとスピンアップにオーバーヘッド余分にかかるのを、いかにハックしてオーバーヘッドを少なくしたか。

日本だとツールの利用者が講演するのを、ここではそのツールのメンテナが講演するため、より深い実装の話や深い理解の話が展開されて、良い講演が多かった。

自作キーボードはオープンソースであると知り、世界が変わった話

自作キーボードを使ってみて

既に自作キーボード沼に落ちている気がします。自作キーボードと出会って、衝撃的だったことをいくつか。

  • PCBさえあれば、好きな形のキーボードが得られる!

Keyboard PCBskeeb.io

PCBkbdfans.cn

PCBkprepublic.com

DIY Kits and PCBsnovelkeys.xyz

  • 分割キーボードで有名なErgoDoxはPCB自体オープンソースであり、やろうと思えば自分で作ることができる

github.com

github.com

  • キースイッチが交換可能なPCBが存在する。要するにこの部品を使う。

yushakobo.jp

  • 薄いキーボードが良いと思っていたが、自作キーボードには薄いキースイッチKalihLowProfileが存在する

yushakobo.jp

  • カニカルキーボードはうるさいイメージがあったが、静音モデルが存在する。これを使うと静音リングを使うまでもなく、静かな感じになる。

yushakobo.jp

  • 作成自体はPCBの設計者の言うとおりにはんだ付けするだけなので、簡単。PCB設計者は神だと思う!
  • キースイッチのサンプルが売っており、これで事前にキースイッチを試すことができる

Kailh Sample Packsnovelkeys.xyz

  • 自作キーボードのキー配置を考えるときに、まずなぜ横に並んで縦にずれているキーボードが普及しているのか調べてみたが、タイプライターに由来している以上の情報が得られなく、現在特に意味はないと知った

deskthority.net

  • 縦に並んだキーボードを使ってみると、指の移動が上下だけで、タッチタイプがしやすいことを知った

  • キーボードのマイコンには、Arduino互換のProMicroというマイコンがよく使われていて、入手もしやすい。これを2つ使うことで分割キーボードが実現される

yushakobo.jp

leico.github.io

  • 親指のキーに、Shift、Command、Ctrl、Space、Returnを割り振る。これは小指を酷使するより快適であると悟る。
  • さらに、親指のShift、Command、Ctrlの空打ち(同時に他のキーを押さないこと)に、ESC、Backspace、かなキー、英数キーを割り振る。これは小指を酷使するより快適であると悟る。
  • しかしまだミスタイプが多く、最適化されていない
  • KailhLowProfileは使えるキーキャップは多くないので、キーキャップ沼に落ちずに済みそう

yushakobo.jp

  • HHKBに最適化された人も、この分割キーボードなら、欲しくなりそう

Quefrency - 60%/65% Split Staggered Keyboardkeeb.io

kicad-pcb.org

  • PCBの発注自体は、そんなに高いわけではなさそう。いつか作ってみたい!

www.elecrow.com

  • 自作キーボード専門ショップ遊舎工房が秋葉原で開店し、部品はすぐ調達できる!

akiba-pc.watch.impress.co.jp

  • 店舗まで行かなくても、ネットショップの遊舎工房は発送が早かった(今もしかしたら実店舗で大忙しかもしれない)

yushakobo.jp

  • 現在のキー配置(括弧は空打ち)

f:id:j74th:20190120094440p:plain

今までのキーボード遍歴

  • 14年前 大学のPCのキーボードが HappyHackingKeyboard だった
  • 13年前 多機能な大きいキーボードを使い、様々な機能をキーボードのボタンに配置する
  • 10年前 大きいキーボードであることにあまり意味がないということを悟り、小さいキーボードを買って、キー配置をいじりまくる
  • 親指の、変換キーにトグルでカナモードを割り当て、無変換キーに確定を割り振り、日本語入力には親指を多様するのが良いと悟る
  • 結局、HappyHackingKeyboard Lite2 日本語配列 が良さそうと悟り、自分で買って使い始める

  • しばらくHHKBが続き、結局3台買う
  • 7年前 MacBookProを買い、デスクトップPCを処分する
  • 5年前 HappyHackingKeyborad Professional Type S 日本語配列 を買ってみるも、左シフトのキータッチが自分に合わず、手放す

  • 周りは皆高級キーボードに手を出していたが、高級キーボードは自分に合わないと悟る

PFU キーボード Happy Hacking Keyboard Professional JP Type-S 日本語配列/白 PD-KB420WS

PFU キーボード Happy Hacking Keyboard Professional JP Type-S 日本語配列/白 PD-KB420WS

  • 職場のWindowsPCでもAppleKeyboardを使うようになり、キー配置に悩まなくなる
  • MagicKeyboardが発売されるも、Windowsで使うのが辛くなる
  • 3年前 突如新しい職場で、英語配列のノートPC(XPS13)を渡され、英語配列に目覚める

  • 英語配列のPCが欲しくて、薄いバタフライキーボードのMacBookProを買い、薄いキーボードが手に負担が少なくて良いと悟る

  • 英語配列での日本語モードへの切り替えには、Spaceの隣のCmdを空打ち(同時押しするキーなく押すこと)を割り振ることで、快適なことを発見する
  • 2年半前 薄いキーボードとして、Logitech K380が良いことを見つけ、英語配列を手に入れる。しかし、MacBookHighSieraからFunctionキーモードを適用するバッチが動かなくなり、使い続けるのは辛くなる。

github.com

  • 職場のPCも薄いバタフライキーボードのMacBookProになる
  • 半年前 分割キーボードに憧れて、MacBookProの横にMagicKeyboardを置くスタイルを確立する

  • 3ヶ月前 技術書典5で軸の本を買い、メカニカルキーボードに憧れる

booth.pm

  • 1ヶ月前 AmazonPrimeDayで、赤軸メカニカルキーボードな左手キーボードを買う

  • 半月前 冬コミで自作キーボード島を見ていたところ、Lily58Proが"キースイッチが交換可能"ということに惹かれて、衝動買する

liliums.booth.pm