パンの木を植えて

主として数学の話をするブログ

「こんとりびゅーてぃんぐ」の響きだけで強くなれる気がしたよ

\[ %%% 黒板太字 %%% \newcommand{\A}{\mathbb{A}} %アフィン空間 \newcommand{\C}{\mathbb{C}} %複素数 \newcommand{\F}{\mathbb{F}} %有限体 \newcommand{\N}{\mathbb{N}} %自然数 \newcommand{\Q}{\mathbb{Q}} %有理数 \newcommand{\R}{\mathbb{R}} %実数 \newcommand{\Z}{\mathbb{Z}} %整数 %%% 2項演算 %%% \newcommand{\f}[2]{ \frac{#1}{#2} } \]

北窓です.

お盆休みに圧倒的進捗を生む手筈だったのに,実際にはMindustry*1をプレイしただけで終わりそうですという話をしました.

しかも難しくてクリアできませんでした.

腹が立って Factorio*2のデモ版もDLしてリベンジを果たそうと思ったのですが,今度はきもちわるい虫が大量に襲ってきてまたしても工場を破壊されました.

どうして……Factorio は虫から基地を守るゲームじゃないのに.

調べたらチュートリアルを抜ければ設定で虫OFFにできるっぽいのですが,チュートリアルの時点でボコボコにされたので救いはありません.

おいらの下手さ加減を舐めてもらっちゃ困るぜ!!


何か忘れてる気がしますね?

そうだそうだ,やらないといけない課題があるんでした.

  • 自分でやると言ってしまったTypeScriptの勉強と,

  • edX の宿題

の2つでした.


TypeScriptの方は,.ts ファイルをコンパイルして .js ファイルに変換し,ターミナルからコマンドを打って実行するという一連のルーティン作業を自動化する方法を考えてました.

プログラミング知らないひとのために補足しておくと,コンパイルと言うのはそのままでは実行できないファイルを,実行できる形に変換する作業です.

寝巻のままでは学校にいけないから,制服を着せるみたいな感じだと思っていただければいいです.

毎回手動で「ぐずるこどもを起こす」⇒「制服を着せる」みたいな作業をしてると面倒なので,自動でこどもをたたき起こして制服をスポーン!と着せるマシンがあったら便利,みたいな.

まあ全然違うんですけどだいたいそんな感じです.


で,結果としてはできました.*3ヨシ!

え?肝心のオブジェクト指向うんたらができてない?聞こえんな.

こんなに達成感に満ち溢れてるんだから進捗したに決まってる…….そうさ….おいらはついに盆休みに進捗を生んだんだ….ぐふふ.


edX の宿題ですが,これもちゃんと取り掛かりました.

そうです.「取り掛か」ったんです.

進捗したかどうかは,その,解釈によりますね.人によって意見はさまざまというかなんというか.

どういうことかというと,作業してるPCが諸事情により変わっているので,環境構築がうまくいかないのですな.

パソコンごとに私との付き合いの長さとか違うので,どのパソコンでも同じように動くというわけにはいかんのです.

一応こんなこともあろうかと,GitHubに作業ディレクトリをまるごと上げておいたのですが,VSCode の設定とか Pythonのパッケージとかもろもろが破綻してて,破けてもろもろになった羽毛ぶとんを繕うみたいに散乱したバグやらエラーやらをちくちくと潰さないといけなくて….

きちんとマニュアル化された準備の手順書がいかにありがたいものか身をもって学びました….


<ここから早口>

環境構築の共有って難しいですよね.

VSCode の設定は .vscode フォルダに放り込んで共有すれば良いとして,ローカルにどういうものをインストールして,どこにどのパッケージを入れてとかいった設定の共有は,OSが違ってたりしたら絶対できない気がします.

Anaconda とか確かパスの中に日本語が入ってたらダメだったと思うんですけど,Windows11だとデスクトップの名前が「デスクトップ」になったり,日本語パスが地雷みたいに撒かれてるのでAnacondaをデフォルトのインストール先に入れることができないんですよね.でもそうするとパスが違ってくるから,%USERPROFILE%とかで差異を吸収できないんですよ.

だからいくらバッチファイル書いてもどうしようもないところはありますね.

ちきしょう真っ黒ソフトめ.

そもそも今から5000兆円手にしてマ●クロソフトを買収してWindows11の仕様を変更したとしても,バッチファイル周りのこと深く理解してないので怖くて触りたくないです.絶対ヤです.よくわかんないバッチファイルに手を出すのって,知らないキノコ🍄に手を出すようなもんじゃないですか?詳しいひとにみてもらってない限りそんな勇気はよう出ん…….

GitHubのCodeSpace使えばいいって?あれ有料やないですか!結局勝つのは課金ユーザーか…….

マニュアル文書を書くくらいが今の私にできる精一杯やなって.

<早口終わり>


そういうわけなので作業フォルダの中に「こうやって環境構築してね!」という指示を書いたマニュアルを置いておこうと思ったんですが…….

その手のマニュアルってファイル名どうするの?どこに置いたらいいの?

……って疑問が湧いてきて手が止まりました.

いや別に私しか見ないんだから何とでも名前つけたらいいしどこにでも置けばいいんですが,気になってしまって.

だって複数人で同じアプリの開発やってたら「環境構築の手順をある程度共有する」というのは普遍的な課題として直面するはずのことだし,なにか慣習的に固まってるカタい名前とか「これやっときゃ間違いない」みたいな規約とかありそうなもんじゃないですか?

README には共同開発者向けのことはあまり書かないことが多い気がするので,違うやろなぁ….なんやろか.

ちょっとGitHubのドキュメント とか読んでみたりしたんですが,どうもOSSの開発とかするえらいひとたちは環境構築なんて低レベルのことではお困りにならないのかしら……って感じでした.この流れだと CONTRIBUTING がいちばん近いんですが,でも基本的にプルリクエストとかイシューの書き方の規約という感じで,環境構築まで書くのはどうなんでしょう.サバイバルTypeScript あたりを読んだ感じでもどうも CONTRIBUTING と環境構築は違うっぽい……でも他に近いものがないなぁ.README の一部として置くということ?でもそれだと利用者全員が共同開発者向けの文章を読まされることになって CONTRIBUTING の存在意義がががが.

う~ん….


悩みまくってMindustryのレポジトリ覗いたらCONTRIBUTINGにIDE(統合開発環境)の指定が書いてあって,「VSCodeはお勧めしない」などと割と主観的なこと書いてあったのでちょっと拍子抜けしました.

……そうか,悩むほどのことではなかったのかもしれんな!

CONTRIBUTINGっていうファイルが置いてあるとなんとなく強くなった気がするとか,そういう軽率な理由でファイル名を決めてもいいんじゃないかと思いました.

どうせ私しか見ないし!今まで悩んでたのはなんだったんだ本当に….

*1:工場を作って敵から基地を守るゲーム

*2:工場を作って生産ラインを最適化するゲーム.防衛要素ほぼなし

*3:一応補足しておくと,VSCodeのタスク機能を利用すればできます