2/18日記 ===== その他(前置き) ===== * 今日の「プログラミング」項目は調べたりしてる順番でコピペしてるので、読みやすさを考慮されてない。 * もちろん後で加工予定だが、そもそもこの情報を本家machiaworx.netに書くという手もあるので、日記はそれをメモしておくためのストレージという考えになってる。 * 「元々思考をTwitterに書きちらしてたけど、後で見やすいように蓄積されないので、別のところに蓄積する」というのがこの日記の利用目的となる。 * よって文体が乱れまくっているが、許してほしい。想定通りの使い方なのだ。 * 思考を垂れ流す場合、サフィックスで(思考順)と記載することにした。これなら見る人も間違わんだろう。 ===== プログラミング(思考順) ===== * WSL環境にいきなりRustいれるとリンカがねえ!って怒られるので、\\ 下記の手順のUbuntuインストール後だけ実行 * https://qiita.com/evid/items/f81534518b30847a24d2 * Rust自体の入門はこれ * https://www.tohoho-web.com/ex/rust.html * 同じようにPythonやGo言語の環境もインストールしていく * https://qiita.com/coitate/items/db89163a061b59d862fa * https://qiita.com/sola-msr/items/93fbf9c988ee81a2f196 * 実はここで環境変数のパスを抜かしていた。(公式だと特に記載がないんだよね。)おかげか後述のコンパイラのバージョン違いがあった。 * Go言語の本家マニュアル * https://go.dev/doc/install * 本来なら公式のドキュメントがいいんだろうけど、WSLが一部違う環境扱いだと困るのでQiitaも参照しつつ。 ---- * あとは、Goの準備するときに管理者としてWindows側のファイル置いたりするのができねえってなった。 * まずフォルダアクセスはエクスプローラ側からできるが、権限の関係でアクセスできないケースがある。 * このため、Linux側の権限でファイルを持ってくる。 * 方法:\\ https://qiita.com/tomoshin02/items/8e0478d1065893fef9ea * この方法で実行ファイルへのリンクを作成したあと、管理者で実行しWSLの実行ファイルを起動。 * ファイルパスは「/mnt/(Windows側のフォルダ)」 * 通常の権限でやろうとして、なぜかパスがない!だったりsuにスイッチしようとしてそもそも管理者定義してないじゃん!となったので、強引にWindows側の管理者権限で実行してみたわけだけど、うまくいったのでこの方法で対応していく。 * その後、ファイルコピーや解凍・展開を行ったりしていく。だめであればsudoを付与して実行。 * 一応つくったユーザが管理者扱いなわけだけど、それでもNGな場合はWindows側の高権限でどうにかするのが良さそう。 * 情報は自分のWebページにまとめておいた * https://machiaworx.net/?p=2741 ---- * Go言語のコンパイル/動作もひとまず問題なさそう。 * Go言語も入門 * https://www.tohoho-web.com/ex/golang.html#hello-world * コンパイルや実行テストも問題なくできて、これは楽だわって思った。以後テストの必要があれば積極的にWSLを使っていこう。 ===== プログラミング2(思考順) ===== * そして・・・次はテキストエディタだ・・・w(どれ使おうか * と思って色々眺めていたけど、VSCodeが便利そう * https://qiita.com/zaburo/items/27b5b819fae2bde97a3b * この方法でVSCodeServerなるものをWSL上にインストールできて、「code」と入力すればワークスペースが開く。 * これなら楽だ。 * 予想外に使いやすい環境になってる。 * ただ、複数ソースコードを操作するならVSCodeでいいが、手元でサクッと直したい場合どうすればいいのかと考えてCUIベースのエディタを色々探す。 * よさそうなのはこれ。 * https://micro-editor.github.io/ * nanoの後継を目指してるみたいなので、操作もviみたいに複雑にはならん感じ。 * 割とモダンな構成みたいなのでメンテも楽そう。ということでインストール済み。(aptからインストールできた) * 気をつけたほうがいいのは「^Q」みたいな記号があったが、これはCtrl+Qという意味らしいこと。(2/19 3:10訂正済み) * 自分は仕事や家でLinuxつかうときはずっとvi使っていたので、スクロールや挿入モードとかの入力のくせが未だに抜けない。 * で、micro使ってると誤入力が多くなるわけですw * どっちも使えるほうがいいのは理想だけど。 ---- * 興味ある言語をインストールしてみる。自分のPCでは下記言語が使えるようになってる。 * Rust * https://github.com/PistonDevelopers/dyon * https://github.com/sagiegurari/duckscript * https://github.com/rhaiscript/rhai(サブツールをインストール扱い) * https://github.com/gluon-lang/gluon * https://erg-lang.org/ * https://github.com/mattwparas/steel * Go * https://github.com/d5/tengo * https://github.com/google/starlark-go * https://github.com/emicklei/melrose/ * その他 * https://github.com/vlang/v * https://github.com/sasagawa888/eisl * https://www.cc.kyoto-su.ac.jp/~ogihara/Duskul/ * https://miniscript.org/ * 以下は組み込み言語扱いのため、まだCargoの操作を知らない自分には難しいと考えた。(というよりInstall形式ではないみたい。コピーすれば問題なさそうだし、対象フォルダにパス切るので対応できそうではあるが) * https://github.com/rune-rs/rune * 以下は静的な言語のため、一度取りやめ。雑に書きたいので。 * https://github.com/mun-lang/mun * あと、sointuも試してみたけど、こちらはNGだった。 * https://github.com/vsariola/sointu * どうもまだOpenGL絡みのモジュールが配置されていないらしく、これをどうにかするのが次の段階だと思った。 * というかOpenGL使ってたんね(コマンドラインかと思ってた) * これ導入したいけど現状はWebブラウザの動作環境もないので微妙 * https://elm-lang.org/ ---- * Go言語の実行環境を自前で用意したけど、どうもAptから用意したもののほうが優先されたみたい。(1.16ってやつだった) * おかげでバージョンが古いものを利用することになったのでUpdate等を使って更新してみた。 * Go versionでの出力がApt優先になったので対応することになった。他のPath切ると状況が変わるのかもしれない。 * 今のところ実行ファイルとしては1.22まで出てるけど、これがいいなあと思うのだった。 * go get ~みたいなのを実行すると実行したところのbinに格納されている気がした。これはどういうルールだろう。 ---- * 少し慣れたので、gcc等のコンパイラのバージョン違いに対応してみた * 今のところgcc-11とgcc-12をapt経由でインストールして、どちらも使えるようにしておいた。(メインはgcc-11) * シンボリックリンクを変更するという方がいいのかもしれないけど、他に影響があると面倒なのでこのままで。 * 一時的にエイリアスを新しい方に変えるみたいなのはこういう方法があるみたい。(ソースからインストールするときに使いそう) * https://students-tech.blog/post/change-gcc.html