主人公との結婚を巡り、勇者(同級生の女子高生)、異世界の魔王(見た目は小学生女子)、海賊(ガチムチ男性)、吸血鬼(妙齢の女性)が大運動会を始める。主人公は、自らの貞操を守るため勝利をつかめるのか?
トンデモ設定を積み重ねて人類の想像力の限界にチャレンジしていくタイプの作品です。
クラスごと集団転移しましたが、一番強い俺は最弱の商人に偽装中です。 の情報量から、絵も動きもある漫画に形作る能力って、すごいですね。
主人公との結婚を巡り、勇者(同級生の女子高生)、異世界の魔王(見た目は小学生女子)、海賊(ガチムチ男性)、吸血鬼(妙齢の女性)が大運動会を始める。主人公は、自らの貞操を守るため勝利をつかめるのか?
トンデモ設定を積み重ねて人類の想像力の限界にチャレンジしていくタイプの作品です。
クラスごと集団転移しましたが、一番強い俺は最弱の商人に偽装中です。 の情報量から、絵も動きもある漫画に形作る能力って、すごいですね。
Wixというツールがあります。 この使い方が分かればよいはずです。 ということで、 WiX チュートリアル 日本語訳 を参考に、
という手順を繰り返して、Windowsインストーラーの世界観を掴もうとしています。 主に、「ウィンドウズにアプリケーションをインストールする」概念が掴めず苦戦しています。
WiXはmsi形式の実行ファイルを作るツールです。 msi形式はMicrosoft Windows Installerというツールで実行するための情報を格納したファイルです。 階層構造としては、次の順です。
ということは、もしかすると一番低いレイヤーを理解するために Windows インストーラー - Win32 apps | Microsoft Docs を先に読む方が良いのかもしれません。 という、恐怖と戦いつつ、手を動かしてプログラムを動かす体験が理解を進める早道だと信じて、勉強を進めています。
WSLっていうかUbuntuだと思います。
結論からいうと
を入れておきましょう。
gem install rails -v 7.0.0.alpha2
してrails new
すると次のエラーがでます。
An error occurred while installing sqlite3 (1.4.2), and Bundler cannot continue.
libsqlite3-devを入れてあげます。
sudo apt install libsqlite3-dev
続いてrails c
すると次のエラーがでます。
ledsun@MSI:~/t/seven-eleven[1]►bin/rails console 0.334s (main|●?) 10:36 /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require': cannot load such file -- fiddle (LoadError) from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:89:in `register' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:44:in `require' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/reline-0.2.7/lib/reline/terminfo.rb:1:in `<main>' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/reline-0.2.7/lib/reline.rb:10:in `<main>' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/irb-1.3.7/lib/irb.rb:13:in `<main>' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/railties-7.0.0.alpha2/lib/rails/commands/console/console_command.rb:3:in `<main>' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/railties-7.0.0.alpha2/lib/rails/command/behavior.rb:44:in `block (2 levels) in lookup' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/railties-7.0.0.alpha2/lib/rails/command/behavior.rb:40:in `each' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/railties-7.0.0.alpha2/lib/rails/command/behavior.rb:40:in `block in lookup' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/railties-7.0.0.alpha2/lib/rails/command/behavior.rb:39:in `each' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/railties-7.0.0.alpha2/lib/rails/command/behavior.rb:39:in `lookup' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/railties-7.0.0.alpha2/lib/rails/command.rb:73:in `find_by_namespace' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/railties-7.0.0.alpha2/lib/rails/command.rb:46:in `invoke' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/railties-7.0.0.alpha2/lib/rails/commands.rb:18:in `<main>' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi' from /home/ledsun/.rbenv/versions/3.1.0-preview1/lib/ruby/gems/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require' from bin/rails:4:in `<main>'
Rubyにlibffisdevelが認識されていないようです。 libffi-devを入れてRubyをビルドし直します。
sudo apt install -y libffi-dev rbenv install 3.1.0-preview1
Macの頃から Fork というgitのGUIクライアントを使っています。
これをWSL上のgitリポジトリに対して使う話です。 wsl-gitという便利なツールがあります。 WSL上のgitコマンドをホストのWindows側から実行するためのラッパーです。
Usage in Fork
To make Fork use git from WSL you must have done the first optional installation step (run install.bat). Then go to the Fork preferences and select a custom git instance where you point it to the git.exe in the wslgit\bin folder (not the cmd folder!).
Fork用の設定方法まで書いてあって至れり尽くせりです。
Release Version 1.0.1 · andy-5/wslgit · GitHub からwslgit.zipをダウンロードしてきて、中に含まれるinstall.batを管理者権限で実行します。
Create 'bin' directory... OK. Create 'bin\git.exe' symlink... C:\Users\led_l\Downloads\wslgit\wslgit\bin\git.exe <<===>> C:\Users\led_l\Downloads\wslgit\wslgit\cmd\wslgit.exe のシン ボリック リンクが作成されました OK. Create 'bin\Fork.RI' symlink... C:\Users\led_l\Downloads\wslgit\wslgit\bin\Fork.RI <<===>> C:\Users\led_l\Downloads\wslgit\wslgit\cmd\Fork.RI のシンボリック リンクが作成されました OK. Create 'bin\sh.exe' symlink... C:\Users\led_l\Downloads\wslgit\wslgit\bin\sh.exe <<===>> C:\Windows\System32\wsl.exe のシンボリック リンクが作成されま した OK. Create 'bin\bash.exe' symlink... C:\Users\led_l\Downloads\wslgit\wslgit\bin\bash.exe <<===>> C:\Windows\System32\wsl.exe のシンボリック リンクが作成され ました OK. Installation successful! (Optional) Add to the Windows Path environment variable: C:\Users\led_l\Downloads\wslgit\wslgit\cmd 続行するには何かキーを押してください . . .
こんな感じでシンボリックリンクを作るので、管理者権限が必要です。 長期的に使うと思うので、もうちょっとマシなディレクトリに展開してからinstall.batを実行するのが良いと思います。 間違ってもbinディレクトリ配下にシンボリックリンクを作るだけなので、binディレクトリごと消せば元に戻せます。
出来たbin/git.exeを使うようにForkを設定します。
大抵は個々までの設定で動かせるはずです。 僕の場合は、コミットフックでNode.jsが必要なコマンドを動かしているため、次のようなエラーが出ます。
わかりにくいエラーですが、Node.jsが必要なだけです。 WSLにNode.jsをインストールします。
ledsun@MSI:~►sudo apt install -y nodejs [sudo] password for ledsun: Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: nodejs 0 upgraded, 1 newly installed, 0 to remove and 5 not upgraded. Need to get 26.5 MB of archives. After this operation, 179 MB of additional disk space will be used. Get:1 https://deb.nodesource.com/node_17.x focal/main amd64 nodejs amd64 17.0.1-deb-1nodesource1 [26.5 MB] Fetched 26.5 MB in 2s (11.4 MB/s) Selecting previously unselected package nodejs. (Reading database ... 39537 files and directories currently installed.) Preparing to unpack .../nodejs_17.0.1-deb-1nodesource1_amd64.deb ... Unpacking nodejs (17.0.1-deb-1nodesource1) ... Setting up nodejs (17.0.1-deb-1nodesource1) ... Processing triggers for man-db (2.9.1-1) ...
これでCLIはLinuxを使いつつ、GUIはWindowsを使うという感じで、割と最強感ある開発環境が手に入ります。
wsl-gitはRustで書かれているようです。 こういうツールがgo-langでなくrustで書かれる時代になったようです。
那州雪絵さんっぽいんです。 それほどドロドロした強い感情じゃないけど揺れ動く気持ちを、描くのが上手いです。
主人公とレギュラー陣はわかりやすい性格です。 その周りの人間が、もうちょっと人間っぽいです。 悪役も、すごい悪意がある人よりは、個人的な欲望に素直なタイプが多いです。
この話にこの作画を見つけてきたのは見事だなあと思いました。
今年のクリスマスにリリースが予定されているRuby 3.1のPrview 1がリリースされました。 rbenv + ruby-buildを使って動かして見ます。
ruby-buildを更新します。
ledsun@MSI:~►cd .rbenv/plugins/ruby-build/ ledsun@MSI:~/.r/p/ruby-build►git pull remote: Enumerating objects: 26, done. remote: Counting objects: 100% (26/26), done. remote: Compressing objects: 100% (13/13), done. remote: Total 26 (delta 11), reused 22 (delta 10), pack-reused 0 Unpacking objects: 100% (26/26), 5.98 KiB | 266.00 KiB/s, done. From https://github.com/rbenv/ruby-build 30eb72f..d796c17 master -> origin/master * [new tag] v20211109 -> v20211109 Updating 30eb72f..d796c17 Fast-forward bin/ruby-build | 2 +- script/update-cruby | 2 +- share/ruby-build/3.1.0-preview1 | 2 ++ share/ruby-build/jruby-9.2.20.0 | 2 ++ share/ruby-build/yjit-dev | 2 -- 5 files changed, 6 insertions(+), 4 deletions(-) create mode 100644 share/ruby-build/3.1.0-preview1 create mode 100644 share/ruby-build/jruby-9.2.20.0 delete mode 100644 share/ruby-build/yjit-dev
3.1のプレビュー版来てます。 インストールします。
ledsun@MSI:~►rbenv install 3.1.0-preview1 Downloading ruby-3.1.0-preview1.tar.gz... -> https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.0-preview1.tar.gz Installing ruby-3.1.0-preview1... Installed ruby-3.1.0-preview1 to /home/ledsun/.rbenv/versions/3.1.0-preview1
グローバルのRubyは3.1プレビュー1にしておきます。
ledsun@MSI:~►rbenv global 3.1.0-preview1 ledsun@MSI:~►ruby --version ruby 3.1.0preview1 (2021-11-09 master 5a3b2e6141) [x86_64-linux]
とりあえず Ruby 3.0のJITのすごさを体験する - @ledsun blog で動かしたRubyスクリプトを実行してみます。
ledsun@MSI:~/try_ruby_3.1►time ruby hoge.rb 50000000 -0.169075164 -0.169059907 ________________________________________________________ Executed in 200.72 secs fish external usr time 200.72 secs 108.00 micros 200.72 secs sys time 0.00 secs 217.00 micros 0.00 secs ledsun@MSI:~/try_ruby_3.1►time ruby --jit hoge.rb 50000000 -0.169075164 -0.169059907 ________________________________________________________ Executed in 100.23 secs fish external usr time 101.63 secs 102.00 micros 101.63 secs sys time 0.10 secs 178.00 micros 0.10 secs ledsun@MSI:~/try_ruby_3.1►time ruby --yjit hoge.rb 50000000 -0.169075164 -0.169059907 ________________________________________________________ Executed in 114.28 secs fish external usr time 114.18 secs 105.00 micros 114.18 secs sys time 0.10 secs 210.00 micros 0.10 secs
yjitが動くことが確認できました。
WSLにfish shellを入れnvmを入れた状態で、gitのコミットフックを設定してあるリポジトリで、VSCodeからGitコミットしたら次のエラーが起きました。
Git: /usr/bin/env: 'bash\r': No such file or directory
という原因が推測しにくいエラーです。
WSLからGitコマンドを実行しても同じエラーがおきます。
WSL側の設定上の問題のようです。
ledsun@MSI:~/textae►git commit -m 'feature: Don\'t scroll out the span when you create a new span and recalculate the li ne height' /usr/bin/env: 'bash\r': No such file or directory husky - pre-commit hook exited with code 127 (error)
husky - pre-commit hook
とあるので、huskyで設定してあるコミットフックの実行に失敗しています。
コミットフックの実体であるlint-stagedコマンドを単体で実行してみます。やはり失敗します。
ledsun@MSI:~/textae[1]►npx lint-staged /usr/bin/env: 'bash\r': No such file or directory
ここから理由にたどり着くのが難しいのですが、node
コマンドが使えないため起きているエラーです。
nvmで使用するNodeのデフォルトバージョンを指定していないため、WSL起動直後はnode
コマンドが使えません。
次のようにNodeのバージョンを指定します。
ledsun@MSI:~/textae[127]►nvm use latest Now using Node v17.0.1 (npm 8.1.3) ~/.local/share/nvm/v17.0.1/bin/node
lint-stagedの実行に成功します。
ledsun@MSI:~/textae►npx lint-staged ✔ Preparing... ✔ Running tasks... ✔ Applying modifications... ✔ Cleaning up...
Nodeのデフォルトバージョンを指定します。
GitHub - jorgebucaran/nvm.fish: Node.js version manager lovingly made for Fish. の
set --universal nvm_default_version v12.9.1
を参考にします。 現在、入っている最新バージョンをデフォルトバージョンに指定しました。
set --universal nvm_default_version v17.0.1
VSCodeを再起動すれば、VSCodeからのGit操作も成功するようになります。
一回は上手く行ったのですが、いつのまにか再発しました。 なので、結局WSLに直接Node.jsをインストールすることにしました。
ledsun@MSI:~►sudo apt install -y nodejs [sudo] password for ledsun: Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: nodejs 0 upgraded, 1 newly installed, 0 to remove and 5 not upgraded. Need to get 26.5 MB of archives. After this operation, 179 MB of additional disk space will be used. Get:1 https://deb.nodesource.com/node_17.x focal/main amd64 nodejs amd64 17.0.1-deb-1nodesource1 [26.5 MB] Fetched 26.5 MB in 2s (11.4 MB/s) Selecting previously unselected package nodejs. (Reading database ... 39537 files and directories currently installed.) Preparing to unpack .../nodejs_17.0.1-deb-1nodesource1_amd64.deb ... Unpacking nodejs (17.0.1-deb-1nodesource1) ... Setting up nodejs (17.0.1-deb-1nodesource1) ... Processing triggers for man-db (2.9.1-1) ...
最新のnpmを使えば良いです。
nvmでnvm install latest
とすると、必ずしも最新のnpmがインストールされないので、再発することがあります。前にも対応したはずなのに?一体?という気持ちになります。
ledsun@MSI:~/textae►npm update npm WARN old lockfile npm WARN old lockfile The package-lock.json file was created with an old version of npm, npm WARN old lockfile so supplemental metadata must be fetched from the registry. npm WARN old lockfile npm WARN old lockfile This is a one-time fix-up, please be patient... npm WARN old lockfile up to date, audited 748 packages in 27s 115 packages are looking for funding run `npm fund` for details found 0 vulnerabilities
[BUG] WARN old lockfile when running npm update. · Issue #3438 · npm/cli · GitHub によると、npmの7.19.0以上か、8.1.1以上で直っているようです。
ledsun@MSI:~/textae►npm i -g npm removed 2 packages, changed 15 packages, and audited 219 packages in 2s 10 packages are looking for funding run `npm fund` for details 3 moderate severity vulnerabilities To address all issues, run: npm audit fix Run `npm audit` for details. ledsun@MSI:~/textae►npm --version 8.1.3 ledsun@MSI:~/textae►npm update added 3 packages, removed 3 packages, and audited 748 packages in 26s 115 packages are looking for funding run `npm fund` for details found 0 vulnerabilities
現在、nvm install latest
すると、Node.js 17.0.1とnpm 8.1.0がインストールされるので、この現象が起きます。
これらの記事ではnpm 8に関しては書かれていなかったので、戸惑いました。
WSLのデフォルトのShellはBashです。 Bashだと履歴検索などが不便なので、Macで使っていたfish shellをインストールします。
fish shell - 3.x release series : “Fish shell maintainers” team
sudo apt-add-repository ppa:fish-shell/release-3 sudo apt-get update sudo apt-get install fish
fishをdefault shellへ設定
$ chsh Password: Changing the login shell for sugi Enter the new value, or press ENTER for the default Login Shell [/bin/bash]: /usr/bin/fish
これだけだと、Windows Terminalを起動したときのシェルが変わらないことがあります。
Bashのホームディレクトリを変更するときにコマンドラインを設定をしました。
これの影響でBashが起動します。
コマンドラインをwsl.exe
に戻します。
Windows Terminal の Ubuntu の開始ディレクトリをホームディレクトリにする | MSeeeeN | 大阪発 IT メディア by MSEN を参考にして、ホームディレクトリをWSLのホームディレクトリに設定します。
ledsun@MSI /m/c/U/led_l> cd ledsun@MSI ~> wslpath -w . \\wsl$\Ubuntu\home\ledsun
すっかり忘れていました。GitHub - ledsun/dotfiles: my dotfiles に設定ファイルがあるんでした。
~/.config/fish/config.fish
だけバックアップしていたので、 これを機に~/.config/fish/
をまるごとバックアップすることにしました。
プロンプトの設定に汎用性がなくエラーが出たのでこれを機に変更します。
fishのプロンプトの右側をカスタマイズして、gitのブランチとstatusを表示させる - Qiita を参考にfish_config
コマンドをつかって良さそうなプロンプトを選びます。
こんな感じにしてみました。 ただ、うんこちゃんマークを表示するとiTermで表示が崩れました。 そのうち修正しようと思います。
rbenvを有効にします。
.config/fish/config.fish
に次の設定を書きます。
set PATH $HOME/.rbenv/bin/ $PATH status --is-interactive; and source (rbenv init -|psub)
パスの設定はユニバーサルに設定した方がfish shellらしくて良いと思います。
RubyMineのターミナルが壊れた話 - @ledsun blogで、ユニバーサルがあまり上手く効かなかった記憶があるので、.config/fish/config.fish
で設定しています。
最初から入れる場合は Install/Use rbenv (Ruby) on Windows 10 Linux WSL(2) | by Hervé Leclerc | alter way | Medium を参考にして、次の感じになると思います。
# sudo apt-get update # sudo apt-get install -y \ build-essential \ git \ libreadline-dev \ libssl-dev \ zlib1g-dev # git clone https://github.com/rbenv/rbenv.git ~/.rbenv # git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build # git clone https://github.com/rkh/rbenv-whatis.git ~/.rbenv/plugins/rbenv-whatis # git clone https://github.com/rkh/rbenv-use.git ~/.rbenv/plugins/rbenv-use # cd ~/.rbenv && src/configure && make -C src
nvmは完全に入れ直す必要があるようです。
まず、GitHub - jorgebucaran/fisher: A plugin manager for Fish. をいれます。
ledsun@MSI:~[127]►curl -sL https://git.io/fisher | source && fisher install jorgebucaran/fisher fisher install version 4.3.0 Fetching https://codeload.github.com/jorgebucaran/fisher/tar.gz/HEAD Installing jorgebucaran/fisher /home/ledsun/.config/fish/functions/fisher.fish /home/ledsun/.config/fish/completions/fisher.fish Installed 1 plugin/s
次に、GitHub - jorgebucaran/nvm.fish: Node.js version manager lovingly made for Fish. をいれます。
ledsun@MSI:~►fisher install jorgebucaran/nvm.fish fisher install version 4.3.0 Fetching https://codeload.github.com/jorgebucaran/nvm.fish/tar.gz/HEAD Installing jorgebucaran/nvm.fish /home/ledsun/.config/fish/functions/_nvm_index_update.fish /home/ledsun/.config/fish/functions/_nvm_list.fish /home/ledsun/.config/fish/functions/_nvm_version_activate.fish /home/ledsun/.config/fish/functions/_nvm_version_deactivate.fish /home/ledsun/.config/fish/functions/nvm.fish /home/ledsun/.config/fish/conf.d/nvm.fish /home/ledsun/.config/fish/completions/nvm.fish Downloading the Node distribution index... Installed 1 plugin/s
ledsun@MSI:~/nature-server[1]►nvm install 17 Installing Node v17.0.1 latest Fetching https://nodejs.org/dist/v17.0.1/node-v17.0.1-linux-x64.tar.gz Now using Node v17.0.1 (npm 8.1.0) ~/.local/share/nvm/v17.0.1/bin/node ledsun@MSI:~/nature-server►node -v v17.0.1
つかえます。
魔王物です。 「勇者に敗北した魔王様は返り咲くために魔物ギルドを作ることにしました。」 や「魔王の始め方」と同様に、リーダーの秘めた目的と孤独と、それを支えるまわりのけなげさが魅力的です。
本作の、主人公は戦闘は強いけど、心は弱いというか悩んだりするところが多く、共感しやすいところです。
タブレットで読んでいると気がつきにくいんですが、見開きでかっこいい絵が多くていいです。
アンジェリカ回でした。 人気投票で1位なのもわかります。 ダイの大冒険のポップ的ポジションのような感じです。 主人公が人外ポジションに行ってしまったので、代わりに凡人代表で努力カバーする感じになっていて好感が持てます。
独特の協調表現の絵が好きです。 絵のタッチがほかの漫画誌とちょっと違うんです。 どことなく「秘境探検ファム&イーリー」ぽさがあって、ホビージャパンって感じがします。
WSL上でWebアプリケーションを開発すると、本番環境とほとんど変わらない環境が手に入るので便利です。 WSL上で動かしているWebアプリケーションはホストのWindowsからはlocalhostで参照できます。 ところが、ホストのWindowsの外、例えば、Androidの実機から参照することはできません。 そこでホストのWindowsでポートフォワードの設定をします。
すべての操作はホストのWindowsのPowerShell上で行います。
PS C:\Users\led_l> ipconfig Windows IP 構成 イーサネット アダプター vEthernet (WSL): 接続固有の DNS サフィックス . . . . .: リンクローカル IPv6 アドレス. . . . .: fe80::18bc:5a4c:432a:f9ca%36 IPv4 アドレス . . . . . . . . . . . .: 172.20.224.1 サブネット マスク . . . . . . . . . .: 255.255.240.0 デフォルト ゲートウェイ . . . . . . .: Wireless LAN adapter ローカル エリア接続* 1: メディアの状態. . . . . . . . . . . .: メディアは接続されていません 接続固有の DNS サフィックス . . . . .: Wireless LAN adapter ローカル エリア接続* 2: メディアの状態. . . . . . . . . . . .: メディアは接続されていません 接続固有の DNS サフィックス . . . . .: Wireless LAN adapter Wi-Fi: 接続固有の DNS サフィックス . . . . .: flets-east.jp IPv6 アドレス . . . . . . . . . . . .: 2405:6580:3700:300:65ae:8b2a:db09:b685 一時 IPv6 アドレス. . . . . . . . . .: 2405:6580:3700:300:5436:3fc9:fde4:2205 リンクローカル IPv6 アドレス. . . . .: fe80::65ae:8b2a:db09:b685%8 IPv4 アドレス . . . . . . . . . . . .: 192.168.1.50 サブネット マスク . . . . . . . . . .: 255.255.255.0 デフォルト ゲートウェイ . . . . . . .: fe80::fab7:97ff:fe7b:7df8%8 192.168.1.1 イーサネット アダプター Bluetooth ネットワーク接続: メディアの状態. . . . . . . . . . . .: メディアは接続されていません 接続固有の DNS サフィックス . . . . .:
PS C:\Users\led_l> wsl exec hostname -I 172.17.153.14
PS C:\Windows\system32> netsh.exe interface portproxy add v4tov4 listenaddress=192.168.1.50 listenport=8000 connectaddress=$IP connectport=8000
設定値を確認します。
PS C:\Windows\system32> netsh.exe interface portproxy show v4tov4 ipv4 をリッスンする: ipv4 に接続する: Address Port Address Port --------------- ---------- --------------- ---------- 192.168.1.50 8000 172.17.153.14 8000
実際に動いてるかどうかは、ホストのWindowsから http://localhost:8000 の代わりに、 http://192.168.1.50:8000 で接続出来るかどうかで確認できます。
ここで動かなくて大分悩みました。
portforwarding - NETSH port forwarding from local port to local port not working - Stack Overflow
netsh interface ipv6 install
を参考にして、次のコマンドを実行したら、動くようになりました。
PS C:\Users\led_l> netsh interface ipv4 install コンピューターを再起動してこの操作を完了してください。
このコマンドが何をする物なのかは、よくわかっていません。
Windowsを再起動すると、WSLのIPアドレスは変わります。 ポートフォワードを設定し直します。
PS C:\Users\led_l> netsh.exe interface portproxy delete v4tov4 listenaddress=192.168.1.50 listenport=8000 PS C:\Users\led_l> netsh.exe interface portproxy show v4tov4 PS C:\Users\led_l> netsh.exe interface portproxy add v4tov4 listenaddress=192.168.1.50 listenport=8000 connectaddress=172.20.232.152 PS C:\Users\led_l> netsh.exe interface portproxy show v4tov4 ipv4 をリッスンする: ipv4 に接続する: Address Port Address Port --------------- ---------- --------------- ---------- 192.168.1.50 8000 172.20.232.152 8000
ここまでで、WSL上で実行しているWebアプリケーションにホストのWindowsからIPアドレスで参照出来るようになりました。 外部から参照するには、さらにホストのWindowsのファイアウォールのルール追加が必要です。
WindowsのファイアウォールとしてWindows Defenderを使っている場合は、 次のように、ポートを指定して、許可ルールを追加します。
PS C:\Users\led_l> New-NetFirewallRule -DisplayName "TextAEのテスト用" -Direction Inbound -Protocol TCP -LocalPort 8000 -Profile private -Action Allow Name : {dd0128eb-39eb-459f-ac5d-448638c49b35} DisplayName : TextAEのテスト用 Description : DisplayGroup : Group : Enabled : True Profile : Private Platform : {} Direction : Inbound Action : Allow EdgeTraversalPolicy : Block LooseSourceMapping : False LocalOnlyMapping : False Owner : PrimaryStatus : OK Status : 規則は、ストアから正常に解析されました。 (65536) EnforcementStatus : NotApplicable PolicyStoreSource : PersistentStore PolicyStoreSourceType : Local
消すときは次のように消します。
PS C:\Users\led_l> Remove-NetFirewallRule -DisplayName "TextAEのテスト用"
あらゆる場面でカメラが動きまくります。
最初の第1コマと最後の第5コマが大体同じ絵なので、途中でグルグル動いても追いかけられるのだと思います。 初見の目の動きとお話の順番が違っていそうです。 最初に、縦に台詞を追って、1, 2, 4, 3, 5の順番でコマを見て、それからコマの順序を時系列順に1, 2, 3, 4, 5に入れ替えて認識しているような気がします。 1, 2と5が安定しているので、途中が入れ替わっても安心、みたいな?