川獺の外部記憶

なんでも残しておく闇鍋みたいな備忘録

Windows TerminalとWSLとzshとOh My Zshでcmd.exeを卒業する(予定)

タイトルのとおりなのですが、Windowsで"イケてない"とよく言われる cmd.exe からの卒業を目指した環境設定です。

主に「充実したシェルにはあんまり興味がなかったけど、作ってみたら思っていた以上に簡単で便利じゃん」というポエム兼備忘録として書き残します。 設定手順等は先人の方々が情報を残してくれているので、細かい部分が必要でしたらググってみてください。

環境はWindows 10, 21H2です。

背景

「今更 cmd.exe から卒業かよ」という声が聞こえてきそうですが、今まで cmd.exe を使っていた理由は下記のような場合でした。

  1. シェル拡張に興味がなく、あまり充実したシェルを触ったことがなかった。 cmd.exe で必要十分に感じていた。
  2. Windowsのファイルエクスプローラから容易に起動可で、カレントディレクトリ引き継ぎが軽快。
    → 「ちょっとコマンド一つ」のときに、アドレスバーに "cmd" で手軽に立ち上げることができるのが便利。
  3. タブ切り替え型のターミナルはなんか慣れなかった。せっかくWindowsの優秀なウィンドウシステムがあるので、ウィンドウで分けて使いたい。
  4. Windows OSのネイティブシェルの動作を確認したい場合があった。
    → .batを書くときなど、動作検証用に使いたいケース

上記の 4. の場合はcmd.exeをシェルとして使うのは仕方がないケースもあるので、今回は 1. ~ 3. の解決を目指したものです。

続きを読む

テスト可能設計についてのサーベイ +α

Introduction

テストの効率化を通じてソフトウェアの品質を改善するため、設計段階からテスト可能な設計が必要だと考えています。

テスト可能設計について、少しだけですが一般に行われている議論や研究についてサーベイします。

(続きは続きから)

続きを読む

ソースコード可視化ツールまとめ

Abstract

大規模ソフトウェアの構造把握は一般に困難とされていますが、この困難さのうち偶発的なものはツールによる削減が可能です。

Software visualization というジャンル*1はこの偶発的困難さを削減する目的で研究されてきました。 Software visualization にはいくつかの種類があり、 Implementation artifacts の一種であるソースコードを可視化する Source code visualization もこの領域の一部です。

この Source code visualization を実現するためのツールについて調査した結果について記載します。

結果概要は以下の通り。

  1. ソースコードを読み書きする人の補助のためにはツール "Sourcetrail" を提案します。(※対応言語が限定されます)
  2. ソースコードを読み書きしない人とソースコードを読み書きする人が共同作業をするために使用する場合は "Understand" が適切だと考えます。(※有償)
  3. 実用評価はできていなくて申し訳ないですが、大規模プロジェクトを運営する補助ツールとしてはSysClinicが適切かもしれません。

(※詳細評価については続きに記載します。)

続きを読む

ソフトウェア品質と工程自動化

  • まえおき
  • ソフトウェア開発における工程自動化の意味
    • 工程自動化がもたらす心理的安全性
    • 心理的安全性とソフトウェア品質
  • 工程自動化で大事なこと
  • 工程自動化でやってはいけないこと

まえおき

2001年のアジャイルソフトウェア開発宣言からもう少しで20年です。

最近のソフトウェア開発界隈を見ていると、なんとなくアジャイルの思想がアジャイルという言葉から離れて独り立ちできるようになってきているのを感じます。

特にその最たる例として、継続的インテグレーションや継続的デプロイといったアジャイルのサブセットとも言える思想がそれ単体で開発現場で使われつつある点について喜ばしく思っています。

とは言いつつも、未だそれらの思想が浸透しづらい現場で、思想を説明するのに難儀することも多いのもまた現状です。今回はこの思想のうち、工程自動化に関する思想について書きます。

注:記述全ては私の思想であり、実証されたものではありません。

続きを読む

「プログラマの三大美徳」

t-and-p.hatenablog.com

良いなと思ったのでメモ。それだけ。

野良エンジニア歴を入れると7年近くエンジニア業をやっていますが、プログラマの三大美徳は本当に言い得て妙だなと思います。

そしてこの三大美徳は物を動かす場合だけなんでしょうね。

コードを憎んで人を憎まず、良い理想だとは思うのですが、「なぜそのコードがクソなのか」を突き詰めた先で、人を憎むしかなくなることが多くて辛い。

全ての問題は人ではなくモノ(システム)に転嫁して、そのモノを変えることで問題を変えるのがエンジニアの本質…なんでしょうね。 自分に言い聞かせながら仕事しています。

Windowsのmsiパッケージを編集する

最近、Visual Studio Installer Projects でmsiを作る手法をよく使います。

この手法は非常に簡単な一方、msi本来の機能の一部しか活かせません。

基本的にはInstaller Projectsの容易さを享受しつつ、どうしても必要になったところだけマニュアル操作で組み替えられないか色々試してみた結果、Pythonの標準ライブラリ「msilib」を用いて弄る方法がしっくり来たので紹介します。*1

なかなかこんなことする人が居ないからか、情報がほとんどなくて少し辛かったです。

*1:Pythonにこだわったわけではなく、目的から色々試行錯誤した結果、なぜかPythonに帰ってきました。なんでこんな標準ライブラリまで用意されてるんでしょうね… 驚きました。

続きを読む