かた湯の絵本

好奇心の赴くままに

Python更新についてのメモ

久しぶりにUbuntu本体のPythonを更新する必要があったので実行したコマンドの備忘録。

ダウンロード:

wget https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tgz
tar -zxvf Python3.9.6

インストール:

cd Python3.9.6
./configure
make
sudo make install

↑ここ、sudo make installにしてしまったのが気になる。sudo make altinstallにしたほうが良かったかも。何か問題が起きたら追記します。

登録:

 sudo update-alternatives --install /usr/bin/python python /usr/local/bin/python3.9 3

一番最後の”3”は優先度です。三番目のpythonだったので3にしたけど、特に深い理由はなし。

VRxML並行開発のための環境移行でやったこと

VRChatにinしつつ、機械学習タスクをlocalでぶん回したい!新PCを買ったので環境構築するのです!

環境

Machine1(Old):

Machine2(New):

移行後

Machine1のWindowsは廃止。Machine1へはMachine2からSSH, VSCodeを使って接続。Machine1で動かすDockerにも簡単に入って作業できるようにするのです! Deepなどの作業はUbuntuもしくはそれ上のDockerでGTX1080x2を使って回し、RTX3070はUnityとVRChat用にします。

手順

Windows 20XHへのアップデート

Windows Update経由ではなく、公式ホームページからツールをダウンロード。

Steam 関連のインストール

(ストリーミングという機能があったらしい。今回は使わないけど。)

  • Steam vr (7.2GBあった!!)

  • VRCもインストール

  • OVR advanced setting のインストール

  • 東方三月精の確認(データは同期していたのでセーブデータコピー必要なし)をしました。まあ、steamのゲームがどれくらい同期されているかの確認です。

HMD 関連の設定

  • 以下でvive port デスクトップアプリをダウンロード(サインインアカウントを忘れ去っていたのです)。とりあえず立位でVR設定。 vive.com

  • Viveの起動チェック。Bluetooth更新はハマるのが怖いので後まわしに。

  • VRC の起動チェックをしました。 大した問題のない、もろもろの設定が初期化されていたのですが、気になったのがdefault 音量が以下のようだったことです!これはワールド作成時に気を付けたほうがいいかもしれませんね。(日頃全部100に揃えていて、それが初期設定だと思い込んでいました。)

    • world 70
    • voices 60
    • avators 60
  • ここで VRCのショートカットを作る。 これで簡単にデスクトップ起動できます:

C:\Program Files (x86)\Steam\steamapps\common\VRChat\VRChat.exe" --no-vr --enable-debug-gui --enable-sdk-log-levels
  • OVR advanced setting をメニュー画面から有効に!  binding の設定がうまくいかず、動かないので後回し(基本はこれをやりたいはず: note.com

その他

  • VSCode, discord, unityhub , unity 2018.4.20 , blender (2.83 LTS), github desktop, vmagic mirror (1.6.1.)などのインストール.

  • カメラ、マイクの移行

  • OBS studio 2.6.1をインストール。 なんど仮想カメラがデフォルト機能になっていました! github.com

Network設定

  • ファイル移動時の共有設定について: Windows間でパスワードなし共有にするとアクセスできなくなるの、注意でした。若干はまってしまったのです。

  • Ubuntu 側にssh server用の設定。 これでwindows側からsshできる。(cmdからip直打ちで)

sudo apt install openssh-server
  • SSH接続テスト。 このとき、以前windows側のユーザー名を変更したのに、フォルダ名が変わっていないことに気づき、新しいアカウントを作り直しました。ほとんどのアプリは共有していたので動いたのですが、viveportがうまく動作しない(steamでサインインできない)ことが分かり、steam, steamvr, vive, vrchat関連をすべてuninstall, もとのwindows ユーザーを消してやり直すとインストールできたのです・・・このメモを書いていたことが早速役にたったのです。 そのほかをすべて設定しなおすことに・・・まだ大したことないの!

  • ssh 設定。 RSA認証にするため、まずはルーターDHCP設定でUbuntuのipを手動割り当てに変更。ついでにクライアントWindowsもだいたいつけっぱなので、こちらも固定。あとはいつもの設定をやります:

ssh-keygen -t rsa -b 4096
SET REMOTEHOST=username@ipaddress
scp %USERPROFILE%\.ssh\id_rsa.pub %REMOTEHOST%:~/tmp.pub
ssh %REMOTEHOST% "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat ~/tmp.pub >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && rm -f ~/tmp.pub"
ssh -i %USERPROFILE%\.ssh\id_rsa %REMOTEHOST%
  • つぎにVSCodeの設定。
    ExtensionにRemote Developmentをインストール。 Remote SSH: Add New SSH Host でさっきの登録を保存。今回はusername以下のconfigを使いました。Hostnameは好きにつけていい。そのあとRemote SSH: Current Window to Hostで接続できるか確認。

  • Ubuntu内のDockerにVScodeから入って作業できるよう設定します。 Docker DesktopをWindowsにinstall。 Dockerはlocalには不要です。VSCode ExtensionにDockerをinstall。その設定でdocker.hostにさっきのUbuntuホストを登録。 さらに、VSCodeSSHではなく、cmd(管理者権限)からssh-agentを有効化。

sc config ssh-agent start=auto 
net start ssh-agent

これでさっきの設定を読み込んで、cmdからssh接続できるはず。ここでUbuntuでDocker imageを走らせておきます。

docker run -it   image-name

するとWindowsVSCodeでRemote-Containers: Attach(略)というコマンドが機能して、Dockerに入ることができるはずです。 code.visualstudio.com

UdBoardについて:BlackBoard for VRC

自分のHatena Blogがあったことをふと思い出したので、そして何かを書きたい気持ちが溢れてきたので、再開することにしました。最近作ったUdBoard(VRChat用黒板)について、少し書こうと思います。

www.youtube.com

 

 

私がVRChatを始めたのは、2018年ごろだったか、VKet2やPandora ep.1 に(ひとりで!)行って遊んでいた記憶はあります。当時、VRChatにおける筆記手法がいくつかありました。試してみたのは3Dペンでした。パーティクルを利用するタイプ、トレイルを利用するタイプの二つです。空間に書けるの楽しいぜ、と思っていたのは束の間、長く書いていると次第に散らかってしまったのです。もともとVR空間でお絵かきというより、板書をしてみたかったのでした。ノートやラップトップではくて、ホワイトボードや黒板に書くと思考がすっきりすること、結構あるんですよね。

 

 

f:id:ka_ta_yu:20210205015442p:plain

当時ここも好きだった(2019年にとったものらしい)

書いたものが散らかる現象をなんとかするため、とりあえずホワイトボードをVRでつくれないか調べました。するとどうやらRenderTextureとCameraを使うと、いわゆる水平射影の原理で、ホワイトボードができるらしいということが分かりました。つまり奥行き視界の狭い水平撮影タイプのカメラでペンを撮影し、RenderTextureに結果をおくり、黒板に出力する、という手法です。そのホワイトボードを再現し、ワールドを作ることを始めました。

 

 

しかし書き味には満足できませんでした。書き味は書道をしている感じです。筆を使っている感じとも言えます。そして、どうやら書道ができるギミックのおいてあるワールドがあるらしいということで、そのワールドにも行ってみました。これ原理は同じなんだ、そしてやっぱりほしい書き味はこれではない、と感じたのです。そこで、ゆっくりではなくすばやく書いても結果が綺麗な黒板を作ることを目指すことになりました。

 

 

WindowsでLinux, Pythonをやる方法について、更新

一番最初の投稿でVirtual Boxを使ってLinux + PythonWindows 上で使う方法を紹介

しましたが、このやり方は少なくとも速度面の理由でよくありません。

 

しかも何人かが見てくれて使ってくれているようで申し訳なくなってきたので、

より良い方法を紹介します。たくさんの人がこの方法を紹介していると思います。新規性はありません。

Anaconda 

Python を使いたいだけならこの方法。 こちらでインストーラーをダウンロード、実行するだけで導入できます。Windowsのソフト扱いでインストールされます。

www.anaconda.com

また、Pythonの環境を自分で分けて作っておけるので、環境構築に失敗してもやり直しがききやすい利点があります。 

 

 Windows Subsystem for Linux(旧称Bash on Windows)

Ubuntu を動かしたい場合はこちら。数年前のWindows Anniversary Update でWindows 公式でUbuntu (の一部機能)が使えるようになりました。 さらに最近更新されたようです。

以下のサイトが詳細に解説しています。参考にしてください。

www.buildinsider.net

これだけでコンソールは使えるのですが、画像を表示したり、だとかは直接できません。 (matplotlib のpyplot.show()などは動かない)

これを解決するために X Window Server というものを使って画面出力をだします。

私はこのサイトに従ってXmingをインストールする方法でやっています。

verifiedby.me

 

 

 

ここさけとマザーグースと鏡の国のアリス

 堪忍して欲しいはなし

の間、「心が叫びたがっているんだ。」(以下ここさけ)という映画のBDを見せられました。この類の話には深刻な精神ダメージを負ってしまうので、全力で避けていたのに... 堪忍して欲しい...

 

 

  たまごのはなし

鑑賞結果:かた湯のMPはもうゼロよ

 

大変心が揺さぶれてしまい(ベッドの隙間に頭を突っ込んであーーー)、というか音楽ずるいでしょ...、本題に触れることは精神衛生上できはしない。

なのですが、作品の所々で出てくる「たまご」の妖精、これ見たことありますよね... 

 

www.youtube.com

 

そうです、ハンプティ・ダンプティ(Humpty Dumpty)に似ている...

そうだ、たまごの話に専念し本筋からずれることで、この心を苛む辛い感情を昇華しよう... というわけで、ハンプティ・ダンプティの話をします。

 

  マザーグース

知る限り、ハンプティ・ダンプティの初出はマザーグースMother Goose)が初出のはずです。マザーグースは欧州の童謡集です。マザーグースは直訳で「ガチョウ婆さん」かな? ひとつの歌の中にもガチョウばあさんは出てきます。

 

Humpty Dumpty はマザーグースの中のひとつで、バージョンが色々あるようですが、その内のひとつを挙げます:

    Humpty Dumpty Set on a wall,

    Humpty Dumpty Had a great fall,

    All the king's horses and all the king's men,

    Couldn't put Humpty together again. 

 

「Couldn't put Humpty together again. (もとに戻せなかった)」

ふーん、なるほど?ここさけの本筋とはまったく関係がないですね。

 

ハンプティ・ダンプティ、これが初出にしては文章として「たまごの擬人化」とか全く説明がないんですが、実はこの歌自体がなぞなぞで、落としたら戻せない=>その答えが「たまご」だったわけらしいですよ... こぼれた水はまた汲めばいい、それだけだ。ってどこかのコーチが言いそうですね。

 

 鏡の国のアリス

ハンプティ・ダンプティは色々と引用がなされているのですが、その一つに鏡の国のアリスThrough the Looking-Glass, and what Alice found there)[Lewis Carroll]があります。「Chapter VI: Humpty Dumpty」、丸々一章が割かれています。 

 

壁の上に座るハンプティ・ダンプティ(例によってたまごの妖精さんのよう)がアリスとはなしをしているのですが、どういう話かなと一部を引用してみると

 

 "When I used a word", Humpty Dumpty said in rather a scornful tone, "it means just what I choose it to mean -neither more nor less."

    "The question is," said Alice, "whether you can make words mean so many different things."

    "The question is," said Humpty Dumpty, "which is to be a master -that's all."

                [Through the Looking-Glass, and What Alice Found There, Chapter VI: Humpty Dumpty]

 

このように

     Word (ことば)が大事だよ

って話が延々と繰り広げられています。ことばって大事ですね。

          まあ、ここさけの本筋とはかすりもしないほど関係ないですね!!

 うっ、お腹が痛くなってきた...

 

    Conclusion

ここさけもう一回観るしかないの?堪忍してください... 

 

     Literary Nonsense

マザーグースやアリスはLiterary nonsense(ナンセンス文学)という分類がなされることがあります。詳細はwikiにでも譲る(ナンセンス文学 - Wikipedia)として、これらの作品は解釈や広がりの余地が十分にあることが、後に多く引用される要因のひとつとなったのではないかと考えています。どうでしょう。自分はこうゆう「引用」というものが大好きです。

 

 Re: Conclusion

みんな、この間150周年にもなったアリスを読もうぜ!

原作本もBDも妙訳本もあるのでお貸しするよ!

 

(注:「ここさけBDの後に不思議の国のアリスBD(Disney)を流したら、メンバーに大不評だったの納得いかない...こともないけど、うーん」という、この「心」にわだかまる「ことば」が文章になったのがこの記事です。)

 

 

Windows 上でLinux + pythonを始める、ひとつの簡単なやり方

  

 ある理由でpythonLinuxを布教する(というほど詳しくないけれど)ことになったので、備忘録を兼ねてこのエントリーを書くのです。pythonLinuxも殆ど知らない人向け。pythonは型指定など基本的に意識せずに書けるのが好きです。コード量もc++よりはるかに少なくすみます。あとブロードキャスト大好き。

Oracle VM Virtual Box

  今回、実行環境としてLinux OSを選びます。python自体プレインストールされています。Linuxを選ぶのは、python(やc, c++等)の実行が非常に楽だからです。例えば、alice.pyというソースの実行はターミナルで

            python  alice.py

と打ち込むだけです。今までWindowsしか触ってないし持ってるWindows上でLinuxを動かしたい、という場合、Virtual Boxが便利です。設定すごく楽です。

  Oracle VM VirtualBox - Downloads | Oracle Technology Network | Oracle

 ここでVirtual Box自体をダウンロード、インストールします。次にUbuntuを以下でダウンロードして指示に従い、

  仮想ハードディスクイメージのダウンロード | Ubuntu Japanese Team

さあ、起動です。

    Ubuntuのzipはbackupのためしばらく残しておくことをおすすめです。また設定情報はホストOSの VirtualBox VMs というディレクトリ以下にあります。ホストOSとの「共有フォルダ」と「クリップボード共有」をしておくと、後々便利です。例えば以下のサイトの該当箇所を参考にしてください。

    

apt-get, apt-cache 

 Linux で何かをインストールしようとする際、基本的に次の手順を踏みます。例えばインストールしたいものがchromeブラウザだと仮定します。chome自体は今回必要ないです。

  1.   ターミナルで 

    apt-cache search chrome  

    と打ち込む。するとインストールできるもののうち、キーワード "chrome" に関係するものの検索結果が羅列されます。

  2.  今回は検索結果の内

    google-chrome-stable - The web browser from Google

    をインストールしてみます。ターミナルに

    sudo apt-get install google-chrome-stable 

    を打ち込む。ここでsudoは管理者権限(正確にはsudoer権限)で実行しますよ、という意味です。パスワードを求められるのでログイン時のパスを入れます。
    インストールが実行されるはずです。
    (もし、”sudoers ファイル内にありません。この事象は記録・報告されます。”
    って言われたら 、ログインしているユーザーにsudoer権限を与えないといけませんが, 今回は詳しく書きません)

  

atom 

       上の方法でエディターatomをインストールします。好きなエディターがあればそれをいれてください。atomは追加packageを導入することでさらに使いやすくなります。今回は紹介しません、検索するとぽろぽろ出てきます。Minimap(ソース全体を右端に縮小表示)は入れておいていいかも。

   

python

       さていよいよpython行きましょう。pythonは(Cと違い、そしてRubyみたいに)、一行づつ実行することができます。そして一行づつ実行するのに様々な補助をしてくれるのがipythonです。いつも通り上の要領でipythonを導入します。導入できたら

       ipython

 と打ち込んで実行。

  [1]_

   みたいに表示されているはず。一行ずつコードを打ち込んでいくわけですが、試しにこのサイトの最初のコードを試してみてください。

github.com

   

  pythonの使い方の勉強は、例えば以下のサイトに従って進めていく方法があります。このサイトは具体例と反例(?)が豊富に書いてあって好きです。(CNN?気にしてはいけない。)一日で終わらせることも可能かもしれません。途中、パッケージが足りない(matlibとかschipyとか)と言われたらいつもの要領で導入してみてください。

cs231n.github.io

 

ipython環境で一行づつやるもよし、エディターでalice.pyという感じでソースを保存して

   python alice.py 

で実行もよし、ipython 環境で

  [n]  run alice.py

でもよし、いろいろな状況で実行できます。

       

                                                                                ”Curiouser and curiouser !”