├── .gitignore ├── .nojekyll ├── LICENSE ├── Makefile ├── README.md ├── X11 ├── README.md ├── fig │ ├── defender1.png │ ├── defender2.png │ ├── xeyes.png │ ├── xlaunch1.png │ ├── xlaunch2.png │ ├── xlaunch3.png │ └── xlaunch4.png └── index.html ├── bookreading ├── bookreading.pdf └── bookreading.pptx ├── cron ├── README.md └── index.html ├── docker ├── README.md └── index.html ├── gccwin ├── README.md ├── fig │ ├── apply.png │ ├── basic.png │ ├── install.png │ ├── install2.png │ └── install3.png └── index.html ├── git ├── README.md ├── fig │ ├── fig.pptx │ ├── git-log-options.txt │ ├── git_commit.png │ ├── git_extra_options.png │ ├── git_index.png │ ├── git_init.png │ ├── git_line_ending.png │ ├── git_modified.png │ ├── git_modified_add.png │ ├── git_modified_commit.png │ ├── git_select_components.png │ ├── start_git.pdf │ ├── start_git.pptx │ ├── vscode_add.png │ ├── vscode_commit.png │ ├── vscode_conflict.png │ ├── vscode_giticon.png │ ├── vscode_newfile.png │ └── vscode_staged.png ├── index.html └── windows.md ├── github ├── README.md ├── fig │ ├── add_key.png │ ├── create_new_repository.png │ ├── enable_two_factor.png │ ├── fig.pptx │ ├── generate_password.png │ ├── github_flow1.png │ ├── github_flow2.png │ ├── home.png │ ├── issue_closed.png │ ├── issue_open.png │ ├── issue_preview.png │ ├── kanban_added.png │ ├── kanban_created.png │ ├── kanban_done.png │ ├── kanban_inprogress.png │ ├── kanban_new.png │ ├── key_added.png │ ├── lastpass_note.png │ ├── modified_readme.png │ ├── new_issue.png │ ├── new_repository.png │ ├── settings.png │ ├── setup_using_app.png │ ├── sign_in.png │ ├── ssh_and_gpg_keys.png │ ├── test2_create.png │ ├── test2_empty.png │ ├── test2_new.png │ ├── test_rep.png │ ├── two_factor_enabled.png │ ├── use_ssh.png │ └── verify_account.png └── index.html ├── github_lammps ├── README.md ├── fig │ ├── collision.png │ ├── fig.pptx │ ├── fork.png │ ├── fork_button.png │ ├── forked_repository.png │ ├── vmd_animation1.png │ ├── vmd_animation2.png │ ├── vmd_animation3.png │ ├── vmd_animation4.png │ └── vscode_python.png └── index.html ├── gnuplot ├── README.md ├── fig │ ├── .gitignore │ ├── label1.plt │ ├── label1.png │ ├── label2.plt │ ├── label2.png │ ├── label3.plt │ ├── label3.png │ ├── samples1.pdf │ ├── samples1.plt │ ├── samples1.png │ ├── samples2.pdf │ ├── samples2.plt │ ├── samples2.png │ ├── sinx.plt │ ├── sinx.png │ ├── test.dat │ ├── test2.dat │ ├── test2.plt │ ├── test2.png │ ├── test2_with_error.plt │ ├── test2_with_error.png │ ├── test2_without_error.plt │ ├── test2_without_error.png │ ├── test_dat_1.plt │ ├── test_dat_1.png │ ├── test_dat_2.plt │ ├── test_dat_2.png │ ├── test_dat_3.plt │ ├── test_dat_3.png │ ├── test_dat_4.plt │ ├── test_dat_4.png │ ├── test_dat_fx.plt │ ├── test_dat_fx.png │ ├── test_dat_lc.plt │ ├── test_dat_lc.png │ ├── test_dat_lc_red.plt │ ├── test_dat_lc_red.png │ ├── test_dat_lp.plt │ ├── test_dat_lp.png │ ├── test_dat_lp_pt_ps.plt │ ├── test_dat_lp_pt_ps.png │ ├── test_dat_x.plt │ ├── test_dat_x.png │ └── xeyes.png ├── index.html ├── test.dat └── test2.dat ├── graduate_thesis ├── README.md ├── fig │ ├── downloadzip.png │ ├── kaityo256.png │ ├── private.png │ ├── settings.png │ └── watchers.png ├── index.html └── slide │ ├── happy_writing.pdf │ ├── happy_writing.pptx │ └── sample │ ├── calc.plt │ ├── calc_a.png │ ├── calc_accuracy.png │ ├── calc_b.png │ ├── calc_etime.png │ ├── compare.dat │ ├── compare.plt │ ├── compare.py │ ├── compare1.png │ ├── compare2.png │ ├── makefile │ ├── pressure.dat │ ├── pressure.pdf │ ├── pressure.plt │ ├── temperature.dat │ ├── temperature.pdf │ ├── temperature.plt │ ├── test.py │ ├── zuru.dat │ ├── zuru.plt │ ├── zuru.py │ ├── zuru1.png │ └── zuru2.png ├── homebrew ├── README.md └── index.html ├── howtoreview ├── howtoreview.pdf ├── howtoreview.pptx ├── howtosurvey.pdf └── howtosurvey.pptx ├── illustrator ├── README.md └── index.html ├── index.html ├── lammps ├── Dockerfile ├── README.md ├── fig │ ├── folder.png │ ├── open_vmd.png │ ├── pymol_ellipse.png │ ├── vmd.png │ ├── vmd_application.png │ ├── vmd_cannot_open.png │ ├── vmd_dialog.png │ ├── vmd_dmg.png │ ├── vmd_open.png │ ├── vmd_representation.png │ ├── vmd_shortcut.png │ └── xquartz.png ├── index.html ├── pymol.md └── vmd-docker.md ├── lastpass ├── README.md ├── fig │ ├── create_account.png │ ├── google_authenticator.png │ ├── google_number.png │ ├── lastpass_after_login.png │ ├── lastpass_icon.png │ └── lastpass_login.png └── index.html ├── latex ├── README.md ├── fig │ ├── autobuild.png │ ├── build_project.png │ ├── cleanup.png │ ├── install1.png │ ├── install2.png │ ├── install3.png │ ├── install_win.png │ ├── latex_tools.png │ ├── latex_workshop.png │ ├── terminate.png │ ├── test_pdf.png │ └── testj_pdf.png ├── index.html └── test.py ├── log.md ├── make ├── README.md ├── fig │ ├── gnumake.pdf │ └── gnumake.pptx └── index.html ├── mdtex ├── README.md ├── fig │ ├── outline.png │ └── tex_preview.png └── index.html ├── paraview ├── README.md ├── fig │ ├── 2d.png │ ├── 2pz_default.png │ ├── 2pz_edited.png │ ├── 3dz2.png │ ├── 3dzx.png │ ├── color_changed.png │ ├── color_edit.png │ ├── color_picker.png │ ├── colormap_editor.png │ ├── delaunay2d.png │ ├── filter_search.png │ ├── filter_warp.png │ ├── glyph.png │ ├── gs.png │ ├── gs_open.png │ ├── last_frame.png │ ├── mac_download.png │ ├── minusz.png │ ├── mismatch.png │ ├── play.png │ ├── rescale.png │ ├── scale_array.png │ ├── scale_factor.png │ ├── simple_color.png │ ├── simple_default.png │ ├── simple_open.png │ ├── simple_volume.png │ ├── sphere.png │ ├── tgv.png │ └── windows_download.png └── index.html ├── pbs ├── README.md └── index.html ├── presentation ├── happy_presentation.pdf └── happy_presentation.pptx ├── python ├── README.md ├── fig │ ├── anaconda_download.png │ ├── anaconda_icon.png │ ├── fig.pptx │ ├── install_path.png │ ├── jupyter.png │ ├── navigator.png │ ├── newbook2.png │ ├── run2.png │ └── windows_download.png └── index.html ├── simd ├── README.md ├── fig │ ├── what_is_simd.pdf │ └── what_is_simd.pptx └── index.html ├── simd_tutorial ├── README.md ├── fig │ ├── fig.pptx │ ├── force.png │ ├── permute.png │ ├── permute2f128.png │ ├── transpose.png │ └── unpacklohi.png └── index.html ├── slack ├── slack.pdf └── slack.pptx ├── ssh ├── README.md ├── fig │ ├── fig.pptx │ ├── fumidai.png │ ├── plan_1.png │ ├── plan_2.png │ ├── publickey.png │ └── ssh-agent.png ├── index.html ├── ssh.pdf └── ssh.pptx ├── template.html ├── tensorflow ├── README.md ├── fig │ ├── clone.png │ ├── fashion-mnist.png │ ├── fashion_mnist_check.png │ ├── fig.pptx │ ├── fork.png │ ├── github_pages.png │ ├── golive.png │ ├── liveserver.png │ ├── result.png │ ├── settings.png │ └── tensorflow.pptx └── index.html ├── vim ├── README.md ├── fig │ ├── fig.pptx │ ├── mode.png │ ├── replace1.png │ ├── replace2.png │ ├── replace3.png │ ├── search1.png │ ├── search2.png │ ├── vimadventures.png │ ├── vimtutor.png │ ├── visual1.png │ ├── visual2.png │ ├── visual3.png │ └── visual4.png └── index.html ├── vscode ├── README.md ├── fig │ ├── fig.pptx │ ├── python_interpreter.png │ ├── python_on_termina.png │ ├── shellcommand.png │ ├── trust.png │ ├── vscode_install_mac.png │ ├── vscode_python.png │ ├── vscode_python_execute.png │ ├── vscode_setup_win.png │ ├── wsl.png │ └── wsl_vscode.png └── index.html ├── welcome ├── welcome.pdf └── welcome.pptx └── wsl2 ├── README.md ├── fig ├── powershell.png └── winver.png └── index.html /.gitignore: -------------------------------------------------------------------------------- 1 | .vscode 2 | -------------------------------------------------------------------------------- /.nojekyll: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | TARGET=$(shell ls */README.md | sed 's/README.md/index.html/') 2 | PANDOC=pandoc -s --mathjax -t html --template=template 3 | 4 | all: $(TARGET) index.html 5 | 6 | index.html: README.md 7 | sed 's/README.md/index.html/' README.md > index.md 8 | $(PANDOC) --metadata pagetitle=$< index.md -o $@ 9 | rm -f index.md 10 | 11 | 12 | %/index.html: %/README.md 13 | $(PANDOC) $< --metadata pagetitle=$< -o $@ 14 | 15 | clean: 16 | rm -f $(TARGET) index.html 17 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 数値計算用PCセットアップ資料 2 | 3 | ## ガイダンス 4 | 5 | Speakerdeckへのリンク。[File]をクリックすると、PDFやパワーポイントファイルがダウンロードできる。 6 | 7 | * [研究室ガイダンス](https://speakerdeck.com/kaityo256/welcome-to-lab) [[File](https://github.com/kaityo256/lab_startup/tree/main/welcome)] 8 | * [渡辺研Slackの使い方](https://speakerdeck.com/kaityo256/slack-local-rule) [[File]](https://github.com/kaityo256/lab_startup/tree/main/slack) 9 | 10 | * [論文の読み方](https://speakerdeck.com/kaityo256/how-to-survey) [[File](https://github.com/kaityo256/lab_startup/tree/main/howtoreview)] 11 | * [論文紹介のやり方](https://speakerdeck.com/kaityo256/how-to-review) [[File](https://github.com/kaityo256/lab_startup/tree/main/howtoreview)] 12 | * [輪講の準備の仕方](https://speakerdeck.com/kaityo256/book-reading) [[File](https://github.com/kaityo256/lab_startup/tree/main/bookreading)] 13 | * [研究発表の仕方](https://speakerdeck.com/kaityo256/happy-presentation) [[File](https://github.com/kaityo256/lab_startup/tree/main/presentation)] 14 | * [卒業論文の書き方](https://speakerdeck.com/kaityo256/happy-writing) [[File](https://github.com/kaityo256/lab_startup/tree/main/graduate_thesis/slide)] 15 | 16 | ## セットアップ編 17 | 18 | 「上から順」にセットアップしていくことを想定しており、下の物は上のセットアップが終わっていることが前提となっているものがある。 19 | 20 | * [WSL2のセットアップ(Windowsのみ)](wsl2/README.md) 21 | * [Homebrewのセットアップ(Macのみ)](homebrew/README.md) 22 | * [X Window Systemのセットアップ](X11/README.md) 23 | * [Pythonのインストール](python/README.md) 24 | * [VSCodeのインストール](vscode/README.md) 25 | * [LAMMPSとVMDのインストール](lammps/README.md) 26 | * [SSHの設定](ssh/README.md) 27 | * [LastPassと多要素認証](lastpass/README.md) 28 | * [Gitのインストールと動作の確認](git/README.md) 29 | * [GitHubのアカウント作成と基本的な操作](github/README.md) 30 | 31 | ## 開発編 32 | 33 | * [Vimの使い方](vim/README.md) 34 | * [gnuplotの使い方](gnuplot/README.md) 35 | * [GitHubのフォークとLAMMPS](github_lammps/README.md) 36 | * [GNU Makeの使い方](make/README.md) 37 | * [C++のコンパイルとSIMDの確認](simd/README.md) 38 | * [TensorFlowでFashion-MNISTを学習させてウェブで読み込む](tensorflow/README.md) 39 | * [Dockerの簡単な使い方](docker/README.md) 40 | * [ParaViewの使い方](paraview/README.md) 41 | * [バッチシステムの使い方](pbs/README.md) 42 | * [簡単なSIMD化](simd_tutorial/README.md) 43 | * [Markdown記法とLaTeX記法](mdtex/README.md) 44 | * [cronの使い方](cron/README.md) 45 | 46 | ## 執筆編 47 | 48 | * [LaTeXのインストール](latex/README.md) 49 | * [卒業論文の準備](graduate_thesis/README.md) 50 | * [Adobe Illustratorの使い方](illustrator/README.md) 51 | 52 | ## 古い情報 53 | 54 | 以下はWindowsでWSL2を使わなかった時の情報。 55 | 56 | * [Git Bashでg++を使えるようにする](gccwin/README.md) 57 | 58 | ## ライセンス 59 | 60 | Copyright (C) 2020 - present Hiroshi Watanabe 61 | 62 | この文章と絵(pptxファイルを含む)はクリエイティブ・コモンズ 4.0 表示 (CC-BY 4.0) で提供する。 63 | -------------------------------------------------------------------------------- /X11/README.md: -------------------------------------------------------------------------------- 1 | # X Window Systemのセットアップ 2 | 3 | X Window System、通称「X11」は、Unix系のOS等でGUIを提供するためのシステムだ。MacやWindowsは独自のWindowシステムを持っているが、例えば研究室 4 | 5 | ローカルにインストールして利用するのが良いが、とりあえずは研究室サーバに接続して利用することにしよう。そのためにはX Window Systemのインストールが必要だ。ローカルへのインストールが終わったら、[研究室サーバへの接続](#server)まで確認すること。 6 | 7 | ## X Window Systemのインストール 8 | 9 | ### Macの場合 10 | 11 | まず、XQuartzをインストールする。[https://www.xquartz.org/](https://www.xquartz.org/)から、最新版のXQuartz(2022年10月18日時点では`XQuartz-2.8.2.dmg`)をダウンロードし、dmgファイルを開いてXQuartz.pkgを実行してインストールする。実行後にログアウトが要求された場合は、一度ログアウトすること。 12 | 13 | XQuartzを起動する。Finderから「アプリケーション」→「ユーティリティ」で開くか、Cmd+SpaceのSpotlight検索から「XQuartz」を探して実行する。 14 | 15 | にインストールされるので起動する。「xterm」というウィンドウが開けばインストールできてる。実行できなければ、一度ログアウトしてログインしなおし、再度XQuartzを実行すること。 16 | 17 | XQuartzの実行中にターミナル(xtermでなくても良い)で 18 | 19 | ```sh 20 | xeyes 21 | ``` 22 | 23 | を実行せよ。以下のような、マウスを追いかける目玉が表示されたら成功だ。 24 | 25 | ![xeyes](fig/xeyes.png) 26 | 27 | ※現在のMacではこれだけでうまく行くはず。以下は古いMac向けの情報。 28 | 29 | もし`xeyes`を実行した時に 30 | 31 | ```sh 32 | $ xeyes 33 | Error: Can't open display: 34 | ``` 35 | 36 | などと言われたら、環境変数DISPLAYを設定して、もう一度試してみよ。 37 | 38 | ```sh 39 | export DISPLAY=:0 40 | ``` 41 | 42 | それでもうまく行かなかった場合、以下を試せ。 43 | 44 | XQuartzの「環境設定」の「セキュリティ」タブで、「接続を認証」と「ネットワーク・クライアントからの接続を許可」の両方にチェックを入れる(デフォルトで「接続を認証」にはチェックが入っているはず)。 45 | 46 | さらに、ターミナルから 47 | 48 | ```sh 49 | defaults write org.macosforge.xquartz.X11 enable_iglx -bool true 50 | ``` 51 | 52 | を実行しておく。以上の変更を適用するためにXQuartzを再起動すること。 53 | 54 | ### Windowsの準備 55 | 56 | [https://sourceforge.net/projects/vcxsrv/](https://sourceforge.net/projects/vcxsrv/)から、VcXsrvをインストールする。 57 | 58 | インストール後に、XLaunchを起動する。Windows 10なら「ここに入力して検索」と表示されている検索窓にXLaunchと入力すれば起動する。 59 | 60 | 起動後にいろいろ聞かれる。 61 | 62 | 「Display settings」は、デフォルトの「Multiple windows」のままで良い。 63 | 64 | ![fig/xlaunch1.png](fig/xlaunch1.png) 65 | 66 | 「Client startup」も、デフォルトの「Start no client」で良い。 67 | 68 | ![fig/xlaunch2.png](fig/xlaunch2.png) 69 | 70 | **「Extra settings」において「Additional parameters for VcXsrv」に「-ac」と追加するのを忘れないこと**。これを設定しないと、おそらく動かない。 71 | 72 | ![fig/xlaunch3.png](fig/xlaunch3.png) 73 | 74 | 「Finish configuration」では何もしないで「完了」で良い。 75 | 76 | ![fig/xlaunch4.png](fig/xlaunch4.png) 77 | 78 | 79 | その後、Ubuntuのターミナルを開いて、DISPLAY環境変数を設定する。まずは`xeyes`をインストールしておこう。 80 | 81 | ```sh 82 | sudo apt install x11-apps 83 | ``` 84 | 85 | 次に、IPアドレスを確認する。 86 | 87 | ```sh 88 | hostname | xargs dig +short 89 | ``` 90 | 91 | 環境によって異なるが、例えば 92 | 93 | ```txt 94 | 172.29.80.1 95 | 192.167.11.4 96 | ``` 97 | 98 | などと数字が現れたはずだ。このうち、192の方を使うなら、 99 | 100 | ```sh 101 | export DISPLAY=192.167.11.4:0.0 102 | ``` 103 | 104 | を実行せよ。この状態で、 105 | 106 | ```sh 107 | xeyes 108 | ``` 109 | 110 | を実行し、以下のような、マウスを追いかける目玉が表示されたら成功だ。 111 | 112 | ![xeyes](fig/xeyes.png) 113 | 114 | このIPアドレスは再起動ごとに異なるため、再設定は面倒だ。そこで、`.bashrc`に以下のような行を追加せよ。 115 | 116 | ```sh 117 | export DISPLAY=`hostname | xargs dig +short | sed -n 1p`:0.0 118 | ``` 119 | 120 | これは`hostname`を実行した結果を`dig +short`に食わせてIPアドレスを調べ、最初に表示されたIPアドレスを使って`DISPLAY`環境変数を設定する、という意味だ。 121 | 122 | 編集が終わったら以下で再読み込みをしよう。これは今回のみで、次回の起動からは不要だ。 123 | 124 | ```sh 125 | source .bashrc 126 | ``` 127 | 128 | これで準備完了だ。 129 | 130 | また、ファイアウォールの設定によっては表示がうまくいかない場合がある。その場合は以下の手順でファイアウォールの設定でVcXsrvへの接続を許可する必要がある。 131 | 132 | 「Windows Defender ファイアウォール」を起動し、「Windows Defender ファイアウォールを介したアプリまたは機能を許可」を選ぶ。 133 | 134 | ![defender1.png](fig/defender1.png) 135 | 136 | 許可されたアプリの一覧からVcXsrvを見つけて「パブリック」にチェックが入っていなければチェックを入れる。 137 | 138 | ![defender2.png](fig/defender2.png) 139 | 140 | これでWSLからVcXsrvへの接続が許可されるはずだ。 141 | 142 | 143 | ## 研究室サーバへの接続 144 | 145 | X Window Systemは、リモートのGUIをローカルで実行することができる(リモートデスクトップのようなもの)。X Window Systemが起動した状態で、研究室サーバにsshで接続せよ。 146 | 147 | ```ssh 148 | ssh username@servername -AY 149 | ``` 150 | 151 | 最後に大文字で`-AY`と付けるのを忘れないこと。ログインしたら`xeyes`を実行しよう。 152 | 153 | ```sh 154 | xeyes 155 | ``` 156 | 157 | 目玉が出てきたら成功だ。 -------------------------------------------------------------------------------- /X11/fig/defender1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/X11/fig/defender1.png -------------------------------------------------------------------------------- /X11/fig/defender2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/X11/fig/defender2.png -------------------------------------------------------------------------------- /X11/fig/xeyes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/X11/fig/xeyes.png -------------------------------------------------------------------------------- /X11/fig/xlaunch1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/X11/fig/xlaunch1.png -------------------------------------------------------------------------------- /X11/fig/xlaunch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/X11/fig/xlaunch2.png -------------------------------------------------------------------------------- /X11/fig/xlaunch3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/X11/fig/xlaunch3.png -------------------------------------------------------------------------------- /X11/fig/xlaunch4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/X11/fig/xlaunch4.png -------------------------------------------------------------------------------- /bookreading/bookreading.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/bookreading/bookreading.pdf -------------------------------------------------------------------------------- /bookreading/bookreading.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/bookreading/bookreading.pptx -------------------------------------------------------------------------------- /cron/README.md: -------------------------------------------------------------------------------- 1 | # cronの使い方 2 | 3 | ## cronとは 4 | 5 | cronとは、多くのUNIX系のシステムで採用されている「定期的になにかを実行する仕組み」である。`crond`と呼ばれるデーモンが常駐しており、毎分ごとに実行すべきタスクがないかチェックし、あればそれを実行する。以下では、研究室サーバでcronを使う方法について紹介する。 6 | 7 | なお、cronは英語的には「クロン」もしくは「クローン」と発音するのだが、日本では慣習的に「クーロン」と発音されることが多い。 8 | 9 | ## cronの仕組み 10 | 11 | cronは、crontabファイルと呼ばれるファイルに書かれたスケジュールに従ってタスクを実行する。crontabファイルは以下のようなフォーマットになっている。 12 | 13 | ```sh 14 | 分 時 日 月 曜日 コマンド 15 | ``` 16 | 17 | 例えば、毎時0分ちょうどに`command`というコマンドを実行したければ、 18 | 19 | ```sh 20 | 0 * * * * * command 21 | ``` 22 | 23 | と書く。`*`が書かれたところは、全ての状態がマッチする。スケジュールの書き方には様々な指定方法があるが、とりあえず「毎分」「毎時」「毎日」の三種類を知っておけば十分であろう。 24 | 25 | ```sh 26 | # 毎分実行する 27 | * * * * * * command 28 | 29 | # 毎時15分に実行する(一時間に一度実行) 30 | 15 * * * * * command 31 | 32 | # 毎日 午前4時00分に実行する(一日に一度実行) 33 | 0 4 * * * * command 34 | ``` 35 | 36 | crontabファイルは、例えば`/var/spool/cron`以下にあるが、直接編集するのではなく、`crontab`というコマンドで編集する。`crontab`を実行すると、エディタ(研究室サーバではVim)が立ち上がり、crontabファイルを開いてくれるので、適当に編集して保存すると、次からスケジュールに従って実行してくれる。 37 | 38 | ## cronの実行テスト 39 | 40 | ### 実行スクリプトの作成とテスト 41 | 42 | では実際にcronを実行してみよう。研究室サーバに接続し、`cron`というディレクトリを作ろう。 43 | 44 | ```sh 45 | mkdir cron 46 | cd cron 47 | ``` 48 | 49 | ここで、実行すべきスクリプトを作る。例えば`hello.sh`というシェルスクリプトを作ろう。 50 | 51 | ```sh 52 | vim hello.sh 53 | ``` 54 | 55 | `hello.sh`には、実行時の日付を`date.log`に保存する命令を書く。 56 | 57 | ```sh 58 | date >> date.log 59 | ``` 60 | 61 | `>>`は出力結果をファイルに追記せよ、という意味だ。スクリプトを実行してみよう。 62 | 63 | ```sh 64 | source hello.sh 65 | ``` 66 | 67 | 同じディレクトリに`date.log`が出力されたはずだ。中身を見てみよう。 68 | 69 | ```sh 70 | $ cat date.log 71 | 2022年 5月 12日 木曜日 15:21:59 JST 72 | ``` 73 | 74 | 確かに`date`コマンドの実行結果が保存されている。このように、cronで実行するスクリプトは、実行結果をどこかに保存するようにしておく。 75 | 76 | 次に、スクリプトを直接実行できるようにする。そのために、スクリプトに実行権限をつける。 77 | 78 | ```sh 79 | chmod u+x hello.sh 80 | ``` 81 | 82 | このコマンドの意味は、ユーザ(u)に、実行権限(eXecutable)をつけろ、という意味だ。これにより`hello.sh`を直接実行できるようになる。試してみよう。 83 | 84 | ```sh 85 | ./hello.sh 86 | ``` 87 | 88 | 実行後、また`date.log`を見てみよう。 89 | 90 | ```sh 91 | $ cat date.log 92 | 2022年 5月 12日 木曜日 15:21:59 JST 93 | 2022年 5月 12日 木曜日 15:24:52 JST 94 | ``` 95 | 96 | 二行に増えたはずだ。 97 | 98 | ### 絶対パスによる指定 99 | 100 | さて、cronを使うにあたり最も重要なのは、cronからスクリプトを実行された時のカレントディレクトリがホームディレクトリになる(`cd`で戻る場所になる)ということだ。例えばホームディレクトリから`hello.sh`を実行してみよう。 101 | 102 | ```sh 103 | cd 104 | ./cron/hello.sh 105 | ``` 106 | 107 | すると、`cron`以下ではなく、実行した場所の直下に`date.log`が作られる。それは困るので、スクリプト内のファイルはすべて絶対パスで書いておかなければならない。 108 | 109 | 先程のスクリプトは以下のような内容であった。 110 | 111 | ```sh 112 | date >> date.log 113 | ``` 114 | 115 | これは、`date`コマンドの実行結果を、「カレントディレクトリ」の`date.log`に保存せよ、という意味だ。今は`~/cron`で実行しているので`~/cron/date.log`に保存されるば、別の場所から実行されると、別の場所に保存されてしまう。それを防ぐために、`date.log`の場所を絶対パスで書きなおす。 116 | 117 | ```sh 118 | date >> ~/cron/date.log 119 | ``` 120 | 121 | `~/`は、ユーザのホームディレクトリを意味する。これにより、どこから実行しても`~/cron/date.log`に結果が保存される。一つ上のディレクトリから実行してみよう。 122 | 123 | ```sh 124 | cd 125 | ./cron/hello.sh 126 | ``` 127 | 128 | `~/cron/date.log`に日付が追加されたはずだ。 129 | 130 | ### crontabによる実行 131 | 132 | ではいよいよcronに登録しよう。そのためには`crontab -e`という命令を実行する。これはcrontabファイルを修正するよ、という意味だ。 133 | 134 | ```sh 135 | crontab -e 136 | ``` 137 | 138 | 研究室サーバで実行すると以下のようなエラーがでるが、とりあえず無視してエンターキーを押してかまわない。 139 | 140 | ```txt 141 | E79: Cannot expand wildcards 142 | Press ENTER or type command to continue 143 | ``` 144 | 145 | Vimが立ち上がったら、以下を入力しよう。 146 | 147 | ```sh 148 | * * * * * ~/cron/hello.sh 149 | ``` 150 | 151 | 入力したらファイルを保存してVimを終了せよ(ESCを押してShiftを押しながらZを二回)。 152 | 153 | ```txt 154 | crontab: installing new crontab 155 | ``` 156 | 157 | と表示されたら成功だ。登録されたか確認しよう。現在のcrontabファイルを表示するのは`crontab -l`だ。 158 | 159 | ```sh 160 | $ crontab -l 161 | * * * * * ~/cron/hello.sh 162 | ``` 163 | 164 | ここまで正しく設定されていれば、毎分`date.log`が追加されていくはずだ。ファイルを監視しよう。 165 | 166 | ```sh 167 | $ tail -f date.log 168 | ``` 169 | 170 | 入力待ちになるのでしばらく待つ。1分まって行が勝手に追加されたら成功だ。 171 | 172 | このままでは毎分ログが追加されてしまうので、スケジュールを消しておこう。また`crontab -e`を実行し、crontabファイルを編集する。 173 | 174 | ```sh 175 | crontab -e 176 | ``` 177 | 178 | Vimが立ち上がったら、先程入力した行を(例えば`dd`により)消去し、ファイルを保存せよ。 179 | 180 | `crontab -l`を実行し、何も表示されなければ正しく修正されている。 181 | 182 | ```sh 183 | $ crontab -l 184 | $ 185 | ``` 186 | 187 | ## まとめ 188 | 189 | cronの使い方を紹介した。ウェブスクレイピング、ファイル容量の監視など、定期的になにかを実行したい時に便利なコマンドであるので覚えておきたい。ただし、実行する時にミスがあっても分かりづらいので、必ずcronを経由しない方法で動作確認をすること。また、cronから実行される場合はカレントディレクトリが変わってしまうので、ディレクトリなどの指定をすべて絶対パスにするのを忘れてはならない。 190 | -------------------------------------------------------------------------------- /docker/README.md: -------------------------------------------------------------------------------- 1 | # Dockerの簡単な使い方 2 | 3 | ## はじめに 4 | 5 | 既にPython等で、パッケージのバージョンに依存した問題や、環境によってコードが動いたり動かなかったりしているのを経験しているはずだ。また、サーバ管理者をしてみると、「いろいろやって」動くようになったサーバが死んで、別のサーバに同じような環境を構築しようとしたら、どうやって動くようになっていたか全く思い出せない、なんてことがザラにある。また、自分のサーバはCentOSなのに、Ubuntu用の説明しか見つからず、そのままでは動いてくれなかった、ということもある。こんな悩みを解決する技術がDockerだ。Dockerはコンテナ型の仮想化技術を用いて、仮想環境を構築、管理、配布するための技術だ。特に、環境構築の手順をコード化する「Infrastructure as Code(IaC)」と呼ばれる仕組みは非常に便利だ。今後、何かしらの開発をするにあたって、Dockerが必須とまでは言わないが、知っていると便利なのは確実だ。以下、Dockerの詳細には触れず、簡単な使い方だけ紹介する。また、「コンテナ」や「イメージ」といった単語の説明もしないので、必要に応じて調べて欲しい。 6 | 7 | ## Dockerを使ってみる 8 | 9 | まずは研究室サーバにログインし、Dockerコマンドを叩いてみよう。Dockerは`docker`コマンドにより制御できる。まずは以下のコマンドを実行せよ。 10 | 11 | ```sh 12 | docker ps 13 | ``` 14 | 15 | `permission denied`と言われ、実行が拒否されたはずだ。Dockerではセキュリティのため、デフォルトでは一般ユーザの利用が許可されていない。そこで、一時的にDockerグループに所属しよう。 16 | 17 | ```sh 18 | newgrp docker 19 | ``` 20 | 21 | パスワードを聞かれるので事前に伝えたパスワードを入力せよ。これでDockerが使えるようになる。再度以下のコマンドを実行せよ。 22 | 23 | ```sh 24 | docker ps 25 | ``` 26 | 27 | これは、現在実行中のコンテナを表示するコマンドだ。こんな表示がされたはずである。 28 | 29 | ```txt 30 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 31 | ``` 32 | 33 | 現在は実行中のコンテナがひとつもないため、何も表示されていない。 34 | 35 | 次に、現在、ローカルに保存されているイメージを確認しよう。 36 | 37 | ```sh 38 | $ docker images 39 | REPOSITORY TAG IMAGE ID CREATED SIZE 40 | ubuntu 22.04 ca2b0f26964c 5 weeks ago 77.9MB 41 | ``` 42 | 43 | ubuntuの22.04があるはずだ(うちの研究室では)。イメージがない場合、リモートから取ってくることができる。それが`pull`コマンドだ。 44 | 45 | ```sh 46 | docker pull ubuntu:22.04 47 | ``` 48 | 49 | これは、ubuntuの「22.04」というタグのついたイメージを持ってきなさい、という命令だ。タグは、多くの場合バージョンの指定に使われる。省略すると`latest`を指定したことになる。 50 | 51 | 今回はローカルに既にイメージがあるために 52 | 53 | ```txt 54 | 22.04: Pulling from library/ubuntu 55 | Digest: sha256:77906da86b60585ce12215807090eb327e7386c8fafb5402369e421f44eff17e 56 | Status: Image is up to date for ubuntu:22.04 57 | docker.io/library/ubuntu:22.04 58 | ``` 59 | 60 | と言って何もしない。 61 | 62 | 次に、このイメージからコンテナを作成し、ログインしてみよう。 63 | 64 | ```sh 65 | $ docker run -it ubuntu:22.04 66 | ``` 67 | 68 | `root@06e9b4bcd4c6:/#`といった文字列が出てきたはずである。この`root@`の右側は毎回異なる。この文字列を3桁くらい覚えておくこと。 69 | 70 | さて、今まっさらなubuntuにログインした。まずはパッケージをアップデートしよう。 71 | 72 | ```sh 73 | apt update 74 | ``` 75 | 76 | アップデートが終わったら、何かインストールしてみよう。今回は「Bastard Tetris(いやがらせテトリス), bastet」をインストールしてみよう。以下のコマンドを実行せよ。 77 | 78 | ```sh 79 | apt install -y bastet 80 | ``` 81 | 82 | ここで`-y`を指定するのを忘れないこと。これは「確認無しにインストールせよ」というオプションだ。 83 | 84 | インストールが終わったら、実行して遊んでみよう。 85 | 86 | ```sh 87 | /usr/games/bastet 88 | ``` 89 | 90 | 見た目は普通のテトリスに見えるが、しばらくやってみると、なかなかラインが消せないのがわかるだろう。実はこのテトリスはブロックがランダムではなく「プレイヤーが一番要らなそうな奴」を選んで出してくる。「Bastard Tetris(いやがらせテトリス)」と呼ばれる所以である。 91 | 92 | さて、ゲームオーバーしてQuitを選ぶか、Ctrl+Cで終了し、さらにこの仮想環境を`exit`で抜けよう。 93 | 94 | その後、またコンテナを表示してみよう。 95 | 96 | ```sh 97 | docker ps 98 | ``` 99 | 100 | 何も表示されないはずである(command not found等と言われたら、あなたはまだ仮想環境の中にいるのでexitすること)。これは「現在実行中」のコンテナを表示しているからだ。`-a`オプションをつけることで終了したコンテナも表示できる。 101 | 102 | ```sh 103 | $ docker ps -a 104 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 105 | 06e9b4bcd4c6 ubuntu:22.04 "/bin/bash" 16 minutes ago Exited (127) About a minute ago stupefied_sammet 106 | ``` 107 | 108 | 終了したコンテナが表示されたはずだ。複数人で実行した場合は複数表示されるので、先ほど覚えたIDを使う。終了したコンテナを再び起動してみよう。先ほど覚えた3桁のIDを入力せよ(他のコンテナIDと区別できる最低限の桁数を指定すれば良いので、一つしかなければ最初の1桁でも良い)。 109 | 110 | ```sh 111 | docker start 06e 112 | ``` 113 | 114 | すると、STATUSが実行中(UP)になるはずだ。 115 | 116 | ```sh 117 | $ docker ps 118 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 119 | 06e9b4bcd4c6 ubuntu:22.04 "/bin/bash" 19 minutes ago Up 51 seconds stupefied_sammet 120 | ``` 121 | 122 | この実行中のコンテナに接続(attach)しよう。 123 | 124 | ```sh 125 | $ docker attach 06e 126 | root@06e9b4bcd4c6:/# 127 | ``` 128 | 129 | ログインできたはずだ。このコンテナには既にbastetがインストールされているはずなので実行してみよ。 130 | 131 | ```sh 132 | /usr/games/bastet 133 | ``` 134 | 135 | 実行できるはずだ。また終了して、仮想環境を抜けておくこと。 136 | 137 | 仮想環境を抜けたらコンテナを消しておこう。それには`rm`コマンドを使う。 138 | 139 | ```sh 140 | docker rm 06e 141 | ``` 142 | 143 | ちゃんと削除されたか、`docker ps -a`コマンドで確認すること。 144 | 145 | ## Dockerfileを書いてみる 146 | 147 | Dockerを使う最大のメリットは、手順をファイルに書いておき、ファイルから環境を構築できることだ。これは「Infrastructure as Code(IaC)」と呼ばれ、ChefやAnsibleなどが有名だ(気になったら調べてみよ)。ここでは、先ほど行った手順をコード化し、イメージ作成を自動化してみよう。 148 | 149 | まず、適当なディレクトリを掘ろう。ここでは`docker`とするが、好きな名前にしてかまわない。 150 | 151 | ```sh 152 | mkdir docker 153 | cd docker 154 | ``` 155 | 156 | 次に、`Dockerfile`を作成する。最初が大文字であることに注意。 157 | 158 | ```sh 159 | vim Dockerfile 160 | ``` 161 | 162 | まずは以下の内容のファイルを作成せよ。 163 | 164 | ```yaml 165 | FROM ubuntu:22.04 166 | 167 | RUN apt-get update 168 | ``` 169 | 170 | `FROM`は、元にするイメージを指定する。ここでは`ubuntu:22.04`にしよう。`RUN`は実行するコマンドだ。最初はパッケージのアップデートをする。 171 | 172 | ファイルが作成できたら、`docker build`によりイメージを作成しよう。 173 | 174 | ```sh 175 | docker build -t watanabe/bastet . 176 | ``` 177 | 178 | `-t`オプションで名前を指定する。「自分の名前/bastet」にしよう。最後のピリオドを忘れないように。これは`Dockerfile`へのパスを表す。今回はカレントディレクトリにあるので`.`で良い。 179 | 180 | 実行に成功すれば 181 | 182 | ```txt 183 | Successfully built 876b1067a73b 184 | Successfully tagged watanabe/bastet:latest 185 | ``` 186 | 187 | などと表示されるはずだ。イメージが出来ているか見てみよう。 188 | 189 | ```sh 190 | $ docker images 191 | REPOSITORY TAG IMAGE ID CREATED SIZE 192 | watanabe/bastet latest 876b1067a73b About a minute ago 92.8MB 193 | ubuntu 22.04 c3c304cb4f22 6 weeks ago 64.2MB 194 | ``` 195 | 196 | このIMAGE ID(`876b1067a73b`)の最初の数桁(`876`)も覚えておこう。 197 | 198 | さて、先ほどはパッケージのアップデートしなかったので、bastetのインストールを追加しよう。`Dockerfile`を以下のように修正せよ。 199 | 200 | ```yaml 201 | FROM ubuntu:22.04 202 | 203 | RUN apt-get update && apt-get install -y bastet 204 | ``` 205 | 206 | `&&`は、前のコマンドが成功した時にのみ次を実行するものだ。一方、`;`を使うと、前のコマンドの成否に関わらず次を実行する。また、`apt-get -y install bastet`の`-y`オプションを忘れないこと。 207 | 208 | ファイルを更新したら、もう一度`build`を走らせよう。 209 | 210 | ```sh 211 | docker build -t watanabe/bastet . 212 | ``` 213 | 214 | 先ほどとは違うImage IDが表示されたはずだ。 215 | 216 | ```txt 217 | Successfully built 6e343ebe467b 218 | Successfully tagged watanabe/bastet:latest 219 | ``` 220 | 221 | イメージ一覧を見てみよう。 222 | 223 | ```sh 224 | $ docker images 225 | REPOSITORY TAG IMAGE ID CREATED SIZE 226 | watanabe/bastet latest 6e343ebe467b About a minute ago 94.9MB 227 | 876b1067a73b 9 minutes ago 92.8MB 228 | ubuntu 22.04 c3c304cb4f22 6 weeks ago 64.2MB 229 | ``` 230 | 231 | イメージを更新し、そちらに`watanabe/bastet`という同じ名前(タグ)を付けたため、名無しのイメージ``が出来たことがわかる。サイズもわりと大きいので消しておこう。イメージの削除は`rmi`を使う。 232 | 233 | ```sh 234 | docker rmi 876 235 | ``` 236 | 237 | 不要なイメージが消えたはずだ。 238 | 239 | せっかくイメージを作成したので、そこからコンテナを作ってみよう。 240 | 241 | ```sh 242 | docker run -it watanabe/bastet 243 | ``` 244 | 245 | 最初からbastetがインストール済みなので、そのまま実行できるはずである。 246 | 247 | ```sh 248 | /usr/games/bastet 249 | ``` 250 | 251 | 実行を確認したら、また仮想環境を抜けよう。 252 | 253 | 次に、先ほど作ったイメージを消してみよう。名前でもIDでもどちらでも消すことができる。 254 | 255 | ```sh 256 | $ docker rmi watanabe/bastet 257 | Error response from daemon: conflict: unable to remove repository reference "watanabe/bastet" (must force) - container 4716a1ed11c2 is using its referenced image 6e343ebe467b 258 | ``` 259 | 260 | 「このイメージはコンテナ(4716a1ed11c2)が使っているから消せないよ」と文句を言われたはずだ。まずはそのコンテナを消してからイメージを消そう。 261 | 262 | ```sh 263 | $ docker rm 471 264 | 471 265 | $ docker rmi watanabe/bastet 266 | Untagged: watanabe/bastet:latest 267 | Deleted: sha256:6e343ebe467bc4d03fad86ee8ab104fa7412ba1f3a15a937aa85d62cd92c7788 268 | Deleted: sha256:151596245487e3a389315bf4a41f5926959ee12b71865391c09cae6f1293ad92 269 | ``` 270 | 271 | 今度は消せたはずだ。 272 | 273 | 以後、このDockerfileからイメージを作れば、間違いなくbastetが実行できる環境となる。また、この環境を作るのにどんなコマンドが必要だったかも全てファイルに残っている。まさにInfrastructure as Codeである。 274 | 275 | 最後に研究室サーバからログアウトしよう。Dockerグループから抜けるのと、サーバからログアウトするために二度`exit`を実行する必要がある。 276 | 277 | ここでは研究室サーバを使ったが、もし興味があればDocker Desktopをインストールしてローカルマシンでやってみると良い。その場合はdockerグループへの所属は不要である。 278 | -------------------------------------------------------------------------------- /gccwin/README.md: -------------------------------------------------------------------------------- 1 | # Git Bashでg++を使えるようにする 2 | 3 | ## MinGWのインストール 4 | 5 | まず、MingWをインストールする。以下のURLにアクセスせよ。 6 | 7 | [https://osdn.net/projects/mingw/downloads/68260/mingw-get-setup.exe/](https://osdn.net/projects/mingw/downloads/68260/mingw-get-setup.exe/) 8 | 9 | 自動的に`mingw-get-setup.exe`というファイルがダウンロードされるはずなので、実行せよ。 10 | 11 | 以下のような画面となるので「Install」を実行。 12 | 13 | ![インストール](fig/install.png) 14 | 15 | 次はそのまま「Continue」 16 | 17 | ![インストール](fig/install2.png) 18 | 19 | するとインストールが始まる。 20 | 21 | ![インストール](fig/install3.png) 22 | 23 | インストールが完了したら「Continue」すると、以下のパッケージ選択画面となる。 24 | 25 | ![Basic](fig/basic.png) 26 | 27 | ここで 28 | 29 | * mingw32-base-bin 30 | * mingw32-gcc-g++-bin 31 | 32 | の二つにチェックを入れる。チェックボックスをクリックするとメニューが出るので「Mark for Installation」を選ぶこと。 33 | 34 | 二つにチェックが入った状態で、メニューの「Installation」から「Apply Changes」をクリックする。 35 | 36 | ![Apply](fig/apply.png) 37 | 38 | 「Ok to proceed?」と聞かれたら「Apply」を選ぶと選んだインストールが始まる。終わったら「Close」して、MinGW Installation Managerを終了してよい。 39 | 40 | ## Git Bashにパスを通す 41 | 42 | 先ほどインストールしたg++は、`C:\MINGW\bin`に入っている。これをGit Bashから読めるようにする。 43 | 44 | まずGit Bashを起動して、`vim`で`.bashrc`を開き、以下の行を付け加える。 45 | 46 | ```sh 47 | export PATH=C:\\MINGW\\bin:$PATH 48 | ``` 49 | 50 | ここで、バックスラッシュ「`\`」を二つ重ねる必要があることに注意。おそらく`.bashrc`はこんな感じになっているはず。 51 | 52 | ```sh 53 | $ cat .bashrc 54 | export DISPLAY=localhost:0.0 55 | export PATH=C:\\MINGW\\bin:$PATH 56 | eval `ssh-agent` 57 | ``` 58 | 59 | 修正したら、Git Bashを再起動せよ。 60 | 61 | コマンドプロンプトで`g++ --version`と入力してバージョンが表示されればインストール完了である。 62 | 63 | ```sh 64 | $ g++ --version 65 | g++.exe (MinGW.org GCC Build-20200227-1) 9.2.0 66 | Copyright (C) 2019 Free Software Foundation, Inc. 67 | This is free software; see the source for copying conditions. There is NO 68 | warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 69 | ``` 70 | -------------------------------------------------------------------------------- /gccwin/fig/apply.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/gccwin/fig/apply.png -------------------------------------------------------------------------------- /gccwin/fig/basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/gccwin/fig/basic.png -------------------------------------------------------------------------------- /gccwin/fig/install.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/gccwin/fig/install.png -------------------------------------------------------------------------------- /gccwin/fig/install2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/gccwin/fig/install2.png -------------------------------------------------------------------------------- /gccwin/fig/install3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/gccwin/fig/install3.png -------------------------------------------------------------------------------- /gccwin/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | gccwin/README.md 8 | 9 | 46 | 47 | 66 | 67 | 68 | 71 | 72 | 73 |
74 |

Git Bashでg++を使えるようにする

75 |

MinGWのインストール

76 |

まず、MingWをインストールする。以下のURLにアクセスせよ。

77 |

https://osdn.net/projects/mingw/downloads/68260/mingw-get-setup.exe/

78 |

自動的にmingw-get-setup.exeというファイルがダウンロードされるはずなので、実行せよ。

79 |

以下のような画面となるので「Install」を実行。

80 |
81 | インストール
インストール
82 |
83 |

次はそのまま「Continue」

84 |
85 | インストール
インストール
86 |
87 |

するとインストールが始まる。

88 |
89 | インストール
インストール
90 |
91 |

インストールが完了したら「Continue」すると、以下のパッケージ選択画面となる。

92 |
93 | Basic
Basic
94 |
95 |

ここで

96 |
    97 |
  • mingw32-base-bin
  • 98 |
  • mingw32-gcc-g++-bin
  • 99 |
100 |

の二つにチェックを入れる。チェックボックスをクリックするとメニューが出るので「Mark for Installation」を選ぶこと。

101 |

二つにチェックが入った状態で、メニューの「Installation」から「Apply Changes」をクリックする。

102 |
103 | Apply
Apply
104 |
105 |

「Ok to proceed?」と聞かれたら「Apply」を選ぶと選んだインストールが始まる。終わったら「Close」して、MinGW Installation Managerを終了してよい。

106 |

Git Bashにパスを通す

107 |

先ほどインストールしたg++は、C:\MINGW\binに入っている。これをGit Bashから読めるようにする。

108 |

まずGit Bashを起動して、vim.bashrcを開き、以下の行を付け加える。

109 | 110 |

ここで、バックスラッシュ「\」を二つ重ねる必要があることに注意。おそらく.bashrcはこんな感じになっているはず。

111 | 115 |

修正したら、Git Bashを再起動せよ。

116 |

コマンドプロンプトでg++ --versionと入力してバージョンが表示されればインストール完了である。

117 | 122 |
123 | 124 | 125 | -------------------------------------------------------------------------------- /git/fig/fig.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/git/fig/fig.pptx -------------------------------------------------------------------------------- /git/fig/git-log-options.txt: -------------------------------------------------------------------------------- 1 | --- a/describe.c 2 | --- a/file 3 | --- a/file 4 | --- a/file 5 | --- a/file 6 | --[no-]mailmap 7 | --[no-]rename-empty 8 | --[no-]standard-notes 9 | --[no-]use-mailmap 10 | --abbrev-commit 11 | --abbrev[=] 12 | --after= 13 | --all 14 | --all-match 15 | --alternate-refs 16 | --ancestry-path 17 | --ancestry-path 18 | --anchored= 19 | --author-date-order 20 | --author= 21 | --basic-regexp 22 | --before= 23 | --binary 24 | --bisect 25 | --boundary 26 | --branches[=] 27 | --break-rewrites[=[][/]] 28 | --cc 29 | --check 30 | --cherry 31 | --cherry-mark 32 | --cherry-pick 33 | --children 34 | --color-moved-ws= 35 | --color-moved[=] 36 | --color-words[=] 37 | --color[=] 38 | --combined-all-paths 39 | --committer= 40 | --compact-summary 41 | --cumulative 42 | --date-order 43 | --date= 44 | --date=default is the default format, and is similar to --date=rfc2822, with a few exceptions: 45 | --date=format:... feeds the format ... to your system strftime, except for %z and %Z, which are handled internally. Use --date=format:%c to show the date in your system locale’s preferred format. See the strftime manual for a complete list of format placeholders. When using -local, the correct syntax is --date=format-local:.... 46 | --date=human shows the timezone if the timezone does not match the current time-zone, and doesn’t print the whole date if that matches (ie skip printing year for dates that are "this year", but also skip the whole date itself if it’s in the last few days and we can just say what weekday it was). For older dates the hour and minute is also omitted. 47 | --date=iso (or --date=iso8601) shows timestamps in a ISO 8601-like format. The differences to the strict ISO 8601 format are: 48 | --date=iso-strict (or --date=iso8601-strict) shows timestamps in strict ISO 8601 format. 49 | --date=local is an alias for --date=default-local. 50 | --date=raw shows the date as seconds since the epoch (1970-01-01 00:00:00 UTC), followed by a space, and then the timezone as an offset from UTC (a + or - with four digits; the first two are hours, and the second two are minutes). I.e., as if the timestamp were formatted with strftime("%s %z")). Note that the -local option does not affect the seconds-since-epoch value (which is always measured in UTC), but does switch the accompanying timezone value. 51 | --date=relative shows dates relative to the current time, e.g. “2 hours ago”. The -local option has no effect for --date=relative. 52 | --date=rfc (or --date=rfc2822) shows timestamps in RFC 2822 format, often found in email messages. 53 | --date=short shows only the date, but not the time, in YYYY-MM-DD format. 54 | --date=unix shows the date as a Unix epoch timestamp (seconds since 1970). As with --raw, this is always in UTC and therefore -local has no effect. 55 | --decorate-refs-exclude= 56 | --decorate-refs= 57 | --decorate[=short|full|auto|no] 58 | --dense 59 | --dense 60 | --diff-algorithm={patience|minimal|histogram|myers} 61 | --diff-filter=[(A|C|D|M|R|T|U|X|B)…​[*]] 62 | --diff-merges=(off|none) 63 | --diff-merges=(off|none|on|first-parent|1|separate|m|combined|c|dense-combined|cc) 64 | --diff-merges=1 65 | --diff-merges=c 66 | --diff-merges=cc 67 | --diff-merges=combined 68 | --diff-merges=dense-combined 69 | --diff-merges=first-parent 70 | --diff-merges=m 71 | --diff-merges=on 72 | --diff-merges=separate 73 | --dirstat-by-file[=…​] 74 | --dirstat[=] 75 | --do-walk 76 | --dst-prefix= 77 | --encoding= 78 | --exclude= 79 | --expand-tabs 80 | --expand-tabs= 81 | --ext-diff 82 | --extended-regexp 83 | --find-copies-harder 84 | --find-copies[=] 85 | --find-object= 86 | --find-renames[=] 87 | --first-parent 88 | --fixed-strings 89 | --follow 90 | --format= 91 | --full-diff 92 | --full-history 93 | --full-history with parent rewriting 94 | --full-history without parent rewriting 95 | --full-index 96 | --function-context 97 | --glob= 98 | --graph 99 | --grep-reflog= 100 | --grep= 101 | --histogram 102 | --ignore-all-space 103 | --ignore-blank-lines 104 | --ignore-cr-at-eol 105 | --ignore-matching-lines= 106 | --ignore-missing 107 | --ignore-space-at-eol 108 | --ignore-space-change 109 | --ignore-submodules[=] 110 | --indent-heuristic 111 | --inter-hunk-context= 112 | --invert-grep 113 | --irreversible-delete 114 | --ita-invisible-in-index 115 | --left-only 116 | --left-right 117 | --line-prefix= 118 | --log-size 119 | --max-count= 120 | --max-parents= 121 | --merge 122 | --merges 123 | --min-parents= 124 | --minimal 125 | --name-only 126 | --name-status 127 | --no-abbrev-commit 128 | --no-color 129 | --no-color-moved 130 | --no-color-moved-ws 131 | --no-decorate 132 | --no-diff-merges 133 | --no-diff-merges 134 | --no-expand-tabs 135 | --no-ext-diff 136 | --no-indent-heuristic 137 | --no-max-parents 138 | --no-merges 139 | --no-min-parents 140 | --no-min-parents and --no-max-parents reset these limits (to no limit) again. Equivalent forms are --min-parents=0 (any commit has 0 or more parents) and --max-parents=-1 (negative numbers denote no upper limit). 141 | --no-notes 142 | --no-patch 143 | --no-prefix 144 | --no-relative 145 | --no-renames 146 | --no-textconv 147 | --no-walk[=(sorted|unsorted)] 148 | --not 149 | --notes[=] 150 | --numstat 151 | --oneline 152 | --output-indicator-context= 153 | --output-indicator-new= 154 | --output-indicator-old= 155 | --output= 156 | --parents 157 | --patch 158 | --patch-with-raw 159 | --patch-with-stat 160 | --patience 161 | --perl-regexp 162 | --pickaxe-all 163 | --pickaxe-regex 164 | --pretty[=] 165 | --raw 166 | --reflog 167 | --regexp-ignore-case 168 | --relative-date 169 | --relative[=] 170 | --remotes[=] 171 | --remove-empty 172 | --reverse 173 | --right-only 174 | --rotate-to= 175 | --shortstat 176 | --show-linear-break[=] 177 | --show-notes[=] 178 | --show-pulls 179 | --show-pulls 180 | --show-signature 181 | --simplify-by-decoration 182 | --simplify-merges 183 | --simplify-merges 184 | --since= 185 | --single-worktree 186 | --skip-to= 187 | --skip= 188 | --source 189 | --sparse 190 | --sparse 191 | --src-prefix= 192 | --stat[=[,[,]]] 193 | --stdin 194 | --submodule[=] 195 | --summary 196 | --tags[=] 197 | --text 198 | --textconv 199 | --topo-order 200 | --unified= 201 | --until= 202 | --walk-reflogs 203 | --word-diff-regex= 204 | --word-diff[=] 205 | --ws-error-highlight= 206 | -------------------------------------------------------------------------------- /git/fig/git_commit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/git/fig/git_commit.png -------------------------------------------------------------------------------- /git/fig/git_extra_options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/git/fig/git_extra_options.png -------------------------------------------------------------------------------- /git/fig/git_index.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/git/fig/git_index.png -------------------------------------------------------------------------------- /git/fig/git_init.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/git/fig/git_init.png -------------------------------------------------------------------------------- /git/fig/git_line_ending.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/git/fig/git_line_ending.png -------------------------------------------------------------------------------- /git/fig/git_modified.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/git/fig/git_modified.png -------------------------------------------------------------------------------- /git/fig/git_modified_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/git/fig/git_modified_add.png -------------------------------------------------------------------------------- /git/fig/git_modified_commit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/git/fig/git_modified_commit.png -------------------------------------------------------------------------------- /git/fig/git_select_components.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/git/fig/git_select_components.png -------------------------------------------------------------------------------- /git/fig/start_git.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/git/fig/start_git.pdf -------------------------------------------------------------------------------- /git/fig/start_git.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/git/fig/start_git.pptx -------------------------------------------------------------------------------- /git/fig/vscode_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/git/fig/vscode_add.png -------------------------------------------------------------------------------- /git/fig/vscode_commit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/git/fig/vscode_commit.png -------------------------------------------------------------------------------- /git/fig/vscode_conflict.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/git/fig/vscode_conflict.png -------------------------------------------------------------------------------- /git/fig/vscode_giticon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/git/fig/vscode_giticon.png -------------------------------------------------------------------------------- /git/fig/vscode_newfile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/git/fig/vscode_newfile.png -------------------------------------------------------------------------------- /git/fig/vscode_staged.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/git/fig/vscode_staged.png -------------------------------------------------------------------------------- /git/windows.md: -------------------------------------------------------------------------------- 1 | # 古い情報 2 | 3 | WSLを使うことにしたため、以下は古い情報。 4 | 5 | ## Windows 6 | 7 | Windowsの場合、[https://git-scm.com/](https://git-scm.com/)からWindows用のインストーラをダウンロード、インストールする。右の方に「Download 2.26.0 for Windows」というボタンがあるはずなのでクリック。 8 | 9 | * Information: そのままNext 10 | * Select Components: 「Git LFS」以外のチェックを外す。 11 | * ![Select Components](fig/git_select_components.png) 12 | * Choosing the default editor used by Git: デフォルトの「Use Vim」のまま 13 | * Adjusting your PATH environment: デフォルトの「Git from the command line and also from 3rd-party software」のまま 14 | * Choosing the SSH executable: デフォルトの「Use OpenSSH」のまま 15 | * Choosing HTTPS transport backend: デフォルトの「Use the OpenSSL library」のまま 16 | * Configuring the line ending conversions: 「Checkout as-is, commit Unix-style line endings」を選ぶ 17 | * ![Line ending](fig/git_line_ending.png) 18 | * Configuring the terminal emulator to use with Git Bash: デフォルトのUse MinTTYのまま 19 | * Configuring extra options: デフォルトでは「Enable symbolic links」が外れているが、これも含めて全てにチェックを入れる。 20 | * ![Extra Options](fig/git_extra_options.png) 21 | 22 | あとはインストールを待つ。インストール終了後、Git Bashというものがインストールされているので実行し、 23 | 24 | ```sh 25 | git --version 26 | ``` 27 | 28 | と入力して、 29 | 30 | ```txt 31 | git version 2.26.0.windows.1 32 | ``` 33 | 34 | と表示されれば成功である。また、Windowsのコマンドプロンプトからも実行できることを確認しておこう。「コマンドプロンプト」を実行し、同様にgitのバージョンを確認せよ。実行できたらインストール完了である。 -------------------------------------------------------------------------------- /github/fig/add_key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github/fig/add_key.png -------------------------------------------------------------------------------- /github/fig/create_new_repository.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github/fig/create_new_repository.png -------------------------------------------------------------------------------- /github/fig/enable_two_factor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github/fig/enable_two_factor.png -------------------------------------------------------------------------------- /github/fig/fig.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github/fig/fig.pptx -------------------------------------------------------------------------------- /github/fig/generate_password.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github/fig/generate_password.png -------------------------------------------------------------------------------- /github/fig/github_flow1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github/fig/github_flow1.png -------------------------------------------------------------------------------- /github/fig/github_flow2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github/fig/github_flow2.png -------------------------------------------------------------------------------- /github/fig/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github/fig/home.png -------------------------------------------------------------------------------- /github/fig/issue_closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github/fig/issue_closed.png -------------------------------------------------------------------------------- /github/fig/issue_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github/fig/issue_open.png -------------------------------------------------------------------------------- /github/fig/issue_preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github/fig/issue_preview.png -------------------------------------------------------------------------------- /github/fig/kanban_added.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github/fig/kanban_added.png -------------------------------------------------------------------------------- /github/fig/kanban_created.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github/fig/kanban_created.png -------------------------------------------------------------------------------- /github/fig/kanban_done.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github/fig/kanban_done.png -------------------------------------------------------------------------------- /github/fig/kanban_inprogress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github/fig/kanban_inprogress.png -------------------------------------------------------------------------------- /github/fig/kanban_new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github/fig/kanban_new.png -------------------------------------------------------------------------------- /github/fig/key_added.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github/fig/key_added.png -------------------------------------------------------------------------------- /github/fig/lastpass_note.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github/fig/lastpass_note.png -------------------------------------------------------------------------------- /github/fig/modified_readme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github/fig/modified_readme.png -------------------------------------------------------------------------------- /github/fig/new_issue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github/fig/new_issue.png -------------------------------------------------------------------------------- /github/fig/new_repository.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github/fig/new_repository.png -------------------------------------------------------------------------------- /github/fig/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github/fig/settings.png -------------------------------------------------------------------------------- /github/fig/setup_using_app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github/fig/setup_using_app.png -------------------------------------------------------------------------------- /github/fig/sign_in.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github/fig/sign_in.png -------------------------------------------------------------------------------- /github/fig/ssh_and_gpg_keys.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github/fig/ssh_and_gpg_keys.png -------------------------------------------------------------------------------- /github/fig/test2_create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github/fig/test2_create.png -------------------------------------------------------------------------------- /github/fig/test2_empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github/fig/test2_empty.png -------------------------------------------------------------------------------- /github/fig/test2_new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github/fig/test2_new.png -------------------------------------------------------------------------------- /github/fig/test_rep.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github/fig/test_rep.png -------------------------------------------------------------------------------- /github/fig/two_factor_enabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github/fig/two_factor_enabled.png -------------------------------------------------------------------------------- /github/fig/use_ssh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github/fig/use_ssh.png -------------------------------------------------------------------------------- /github/fig/verify_account.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github/fig/verify_account.png -------------------------------------------------------------------------------- /github_lammps/fig/collision.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github_lammps/fig/collision.png -------------------------------------------------------------------------------- /github_lammps/fig/fig.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github_lammps/fig/fig.pptx -------------------------------------------------------------------------------- /github_lammps/fig/fork.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github_lammps/fig/fork.png -------------------------------------------------------------------------------- /github_lammps/fig/fork_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github_lammps/fig/fork_button.png -------------------------------------------------------------------------------- /github_lammps/fig/forked_repository.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github_lammps/fig/forked_repository.png -------------------------------------------------------------------------------- /github_lammps/fig/vmd_animation1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github_lammps/fig/vmd_animation1.png -------------------------------------------------------------------------------- /github_lammps/fig/vmd_animation2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github_lammps/fig/vmd_animation2.png -------------------------------------------------------------------------------- /github_lammps/fig/vmd_animation3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github_lammps/fig/vmd_animation3.png -------------------------------------------------------------------------------- /github_lammps/fig/vmd_animation4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github_lammps/fig/vmd_animation4.png -------------------------------------------------------------------------------- /github_lammps/fig/vscode_python.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/github_lammps/fig/vscode_python.png -------------------------------------------------------------------------------- /gnuplot/fig/.gitignore: -------------------------------------------------------------------------------- 1 | fit.log 2 | -------------------------------------------------------------------------------- /gnuplot/fig/label1.plt: -------------------------------------------------------------------------------- 1 | set term pngcairo 2 | set out "label1.png" 3 | 4 | set xlabel "Temperature" 5 | p sin(x) 6 | -------------------------------------------------------------------------------- /gnuplot/fig/label1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/gnuplot/fig/label1.png -------------------------------------------------------------------------------- /gnuplot/fig/label2.plt: -------------------------------------------------------------------------------- 1 | set term pngcairo 2 | set out "label2.png" 3 | 4 | set xlabel "Temperature" font "Helvetica,40" 5 | p sin(x) 6 | -------------------------------------------------------------------------------- /gnuplot/fig/label2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/gnuplot/fig/label2.png -------------------------------------------------------------------------------- /gnuplot/fig/label3.plt: -------------------------------------------------------------------------------- 1 | set term pngcairo 2 | set out "label3.png" 3 | 4 | set xlabel "{/Symbol b}" 5 | p sin(x) 6 | -------------------------------------------------------------------------------- /gnuplot/fig/label3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/gnuplot/fig/label3.png -------------------------------------------------------------------------------- /gnuplot/fig/samples1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/gnuplot/fig/samples1.pdf -------------------------------------------------------------------------------- /gnuplot/fig/samples1.plt: -------------------------------------------------------------------------------- 1 | set term pngcairo 2 | set out "samples1.png" 3 | 4 | p [-30:30] sin(x) 5 | 6 | set term pdfcairo 7 | set out "samples1.pdf" 8 | 9 | rep 10 | -------------------------------------------------------------------------------- /gnuplot/fig/samples1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/gnuplot/fig/samples1.png -------------------------------------------------------------------------------- /gnuplot/fig/samples2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/gnuplot/fig/samples2.pdf -------------------------------------------------------------------------------- /gnuplot/fig/samples2.plt: -------------------------------------------------------------------------------- 1 | set term pngcairo 2 | set out "samples2.png" 3 | 4 | set samples 1000 5 | p [-30:30] sin(x) 6 | 7 | set term pdfcairo 8 | set out "samples2.pdf" 9 | 10 | rep 11 | 12 | 13 | -------------------------------------------------------------------------------- /gnuplot/fig/samples2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/gnuplot/fig/samples2.png -------------------------------------------------------------------------------- /gnuplot/fig/sinx.plt: -------------------------------------------------------------------------------- 1 | set term pngcairo 2 | set out "sinx.png" 3 | 4 | plot sin(x) 5 | -------------------------------------------------------------------------------- /gnuplot/fig/sinx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/gnuplot/fig/sinx.png -------------------------------------------------------------------------------- /gnuplot/fig/test.dat: -------------------------------------------------------------------------------- 1 | 1 1.1 2 | 2 1.9 3 | 3 3.2 4 | 4 4.1 5 | 5 4.8 6 | -------------------------------------------------------------------------------- /gnuplot/fig/test2.dat: -------------------------------------------------------------------------------- 1 | 1 1.01 0.1 2 | 2 1.99 0.1 3 | 3 3.02 0.1 4 | 4 5.10 1.1 5 | 5 4.98 0.1 6 | -------------------------------------------------------------------------------- /gnuplot/fig/test2.plt: -------------------------------------------------------------------------------- 1 | set term pngcairo 2 | set out "test2.png" 3 | 4 | p "test2.dat" w e 5 | -------------------------------------------------------------------------------- /gnuplot/fig/test2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/gnuplot/fig/test2.png -------------------------------------------------------------------------------- /gnuplot/fig/test2_with_error.plt: -------------------------------------------------------------------------------- 1 | set term pngcairo 2 | set out "test2_with_error.png" 3 | 4 | f(x) = a * x 5 | a = 1 6 | fit f(x) "test2.dat" using 1:2:3 via a 7 | p "test2.dat" w e, f(x) 8 | -------------------------------------------------------------------------------- /gnuplot/fig/test2_with_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/gnuplot/fig/test2_with_error.png -------------------------------------------------------------------------------- /gnuplot/fig/test2_without_error.plt: -------------------------------------------------------------------------------- 1 | set term pngcairo 2 | set out "test2_without_error.png" 3 | 4 | f(x) = a * x 5 | a = 1 6 | fit f(x) "test2.dat" via a 7 | p "test2.dat" w e, f(x) 8 | -------------------------------------------------------------------------------- /gnuplot/fig/test2_without_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/gnuplot/fig/test2_without_error.png -------------------------------------------------------------------------------- /gnuplot/fig/test_dat_1.plt: -------------------------------------------------------------------------------- 1 | set term pngcairo 2 | set out "test_dat_1.png" 3 | 4 | p "test.dat" 5 | -------------------------------------------------------------------------------- /gnuplot/fig/test_dat_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/gnuplot/fig/test_dat_1.png -------------------------------------------------------------------------------- /gnuplot/fig/test_dat_2.plt: -------------------------------------------------------------------------------- 1 | set term pngcairo 2 | set out "test_dat_2.png" 3 | 4 | p "test.dat" pt 6 5 | -------------------------------------------------------------------------------- /gnuplot/fig/test_dat_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/gnuplot/fig/test_dat_2.png -------------------------------------------------------------------------------- /gnuplot/fig/test_dat_3.plt: -------------------------------------------------------------------------------- 1 | set term pngcairo 2 | set out "test_dat_3.png" 3 | 4 | p "test.dat" pt 6 ps 2 5 | -------------------------------------------------------------------------------- /gnuplot/fig/test_dat_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/gnuplot/fig/test_dat_3.png -------------------------------------------------------------------------------- /gnuplot/fig/test_dat_4.plt: -------------------------------------------------------------------------------- 1 | set term pngcairo 2 | set out "test_dat_4.png" 3 | 4 | p "test.dat" w l 5 | -------------------------------------------------------------------------------- /gnuplot/fig/test_dat_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/gnuplot/fig/test_dat_4.png -------------------------------------------------------------------------------- /gnuplot/fig/test_dat_fx.plt: -------------------------------------------------------------------------------- 1 | set term pngcairo 2 | set out "test_dat_fx.png" 3 | 4 | f(x) = a * x 5 | a = 1 6 | 7 | p "test.dat", f(x) 8 | -------------------------------------------------------------------------------- /gnuplot/fig/test_dat_fx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/gnuplot/fig/test_dat_fx.png -------------------------------------------------------------------------------- /gnuplot/fig/test_dat_lc.plt: -------------------------------------------------------------------------------- 1 | set term pngcairo 2 | set out "test_dat_lc.png" 3 | 4 | p "test.dat" w lp pt 6 ps 2 lc 2 5 | -------------------------------------------------------------------------------- /gnuplot/fig/test_dat_lc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/gnuplot/fig/test_dat_lc.png -------------------------------------------------------------------------------- /gnuplot/fig/test_dat_lc_red.plt: -------------------------------------------------------------------------------- 1 | set term pngcairo 2 | set out "test_dat_lc_red.png" 3 | 4 | p "test.dat" w lp pt 6 ps 2 lc "red" 5 | -------------------------------------------------------------------------------- /gnuplot/fig/test_dat_lc_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/gnuplot/fig/test_dat_lc_red.png -------------------------------------------------------------------------------- /gnuplot/fig/test_dat_lp.plt: -------------------------------------------------------------------------------- 1 | set term pngcairo 2 | set out "test_dat_lp.png" 3 | 4 | p "test.dat" w lp 5 | -------------------------------------------------------------------------------- /gnuplot/fig/test_dat_lp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/gnuplot/fig/test_dat_lp.png -------------------------------------------------------------------------------- /gnuplot/fig/test_dat_lp_pt_ps.plt: -------------------------------------------------------------------------------- 1 | set term pngcairo 2 | set out "test_dat_lp_pt_ps.png" 3 | 4 | p "test.dat" w lp pt 6 ps 2 5 | -------------------------------------------------------------------------------- /gnuplot/fig/test_dat_lp_pt_ps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/gnuplot/fig/test_dat_lp_pt_ps.png -------------------------------------------------------------------------------- /gnuplot/fig/test_dat_x.plt: -------------------------------------------------------------------------------- 1 | set term pngcairo 2 | set out "test_dat_x.png" 3 | 4 | p "test.dat", x 5 | -------------------------------------------------------------------------------- /gnuplot/fig/test_dat_x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/gnuplot/fig/test_dat_x.png -------------------------------------------------------------------------------- /gnuplot/fig/xeyes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/gnuplot/fig/xeyes.png -------------------------------------------------------------------------------- /gnuplot/test.dat: -------------------------------------------------------------------------------- 1 | 1 1.1 2 | 2 1.9 3 | 3 3.2 4 | 4 4.1 5 | 5 4.8 6 | -------------------------------------------------------------------------------- /gnuplot/test2.dat: -------------------------------------------------------------------------------- 1 | 1 1.01 0.1 2 | 2 1.99 0.1 3 | 3 3.02 0.1 4 | 4 5.10 1.1 5 | 5 4.98 0.1 6 | -------------------------------------------------------------------------------- /graduate_thesis/README.md: -------------------------------------------------------------------------------- 1 | # 卒業論文の準備 2 | 3 | 卒業論文のテンプレートをダウンロードし、リポジトリとして管理、指導教員をコラボレータとして招待する。あらかじめ[LaTeXのインストール](../latex/README.md)を参照して、LaTeXの環境を整えておくこと。また、ホームディレクトリに`github`というディレクトリが作られており、その下にリポジトリを作ることを想定しているが、異なるディレクトリ構成をしている場合は適宜読み替えること。 4 | 5 | ## 卒業論文の書き方 6 | 7 | 以下のスライドを参照。 8 | 9 | [主に数値計算系の卒論の書き方](https://speakerdeck.com/kaityo256/happy-writing) 10 | 11 | ## リポジトリの作成 12 | 13 | どこでも良いが、たとえば`github`ディレクトリにて卒論リポジトリをクローンする。 14 | 15 | ```sh 16 | cd 17 | cd github 18 | git clone https://github.com/kaityo256/graduate_thesis.git 19 | ``` 20 | 21 | ターミナルで上のディレクトリに移動し、VS Codeでフォルダを開く。 22 | 23 | ```sh 24 | code . 25 | ``` 26 | 27 | VS Codeで`thesis.tex`を開き、ビルドが通ることを確認する。次に、指導教員、名前、学籍番号を修正の上でもう一度ビルドする。 28 | 29 | ビルドが通ったら、ターミナルで 30 | 31 | ```sh 32 | rm -rf .git 33 | ``` 34 | 35 | を実行し、リポジトリの情報を削除する。その上で、新たにGitリポジトリを作成する。 36 | 37 | ```sh 38 | git init 39 | git add . 40 | git commit -m "Initial commit" 41 | ``` 42 | 43 | これが卒論のリポジトリとなる。 44 | 45 | ## GitHubへのpush 46 | 47 | 次に、卒論リポジトリをGitHubにpushする。[GitHub](https://github.com/)にアクセスし、新しくリポジトリを作成せよ。 48 | 49 | 名前は先程設定したディレクトリ名と一致させる。Descriptionは適当でよいが「卒業論文リポジトリ」と書いておくとわかりやすいだろう。また、Privateリポジトリに設定するのを忘れないこと。 50 | 51 | ![private](fig/private.png) 52 | 53 | 準備が整ったら「Crate repository」をクリックし、現れた3つの選択肢から「…or push an existing repository from the command line」の内容をコピペして、ターミナルで実行する。こんな感じになるはず(`username`は自分のGitHubアカウント名に変更すること)。 54 | 55 | ```sh 56 | git remote add origin git@github.com:username/graduate_thesis.git 57 | git branch -M main 58 | git push -u origin main 59 | ``` 60 | 61 | pushしたら、リポジトリの当該ページをリロードして、内容があることを確認しよう。 62 | 63 | ## コラボレータの追加 64 | 65 | 卒論リポジトリ(graduate_thesis)の、上のメニューの「Settings」をクリックし、左側に現れた「Collaborators」をクリックする。 66 | すると、「Manage access」の下に「Add people」ボタンが現れるので押す。 67 | 現れた画面の検索画面に指導教員のアカウント(kaityo256)を入れて、現れたアカウントを選び、「Add kaityo256 to this repository」をクリックして追加する。 68 | 69 | すると、教員に招待状が飛び、教員が承諾するとリポジトリのWatchersが二人に増える。 70 | 71 | ![watchers](fig/watchers.png) 72 | 73 | これで招待は完了である。あとはガンガン卒論を書くだけ。 74 | -------------------------------------------------------------------------------- /graduate_thesis/fig/downloadzip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/graduate_thesis/fig/downloadzip.png -------------------------------------------------------------------------------- /graduate_thesis/fig/kaityo256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/graduate_thesis/fig/kaityo256.png -------------------------------------------------------------------------------- /graduate_thesis/fig/private.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/graduate_thesis/fig/private.png -------------------------------------------------------------------------------- /graduate_thesis/fig/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/graduate_thesis/fig/settings.png -------------------------------------------------------------------------------- /graduate_thesis/fig/watchers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/graduate_thesis/fig/watchers.png -------------------------------------------------------------------------------- /graduate_thesis/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | graduate_thesis/README.md 8 | 9 | 46 | 47 | 66 | 67 | 68 | 71 | 72 | 73 |
74 |

卒業論文の準備

75 |

卒業論文のテンプレートをダウンロードし、リポジトリとして管理、指導教員をコラボレータとして招待する。あらかじめLaTeXのインストールを参照して、LaTeXの環境を整えておくこと。また、ホームディレクトリにgithubというディレクトリが作られており、その下にリポジトリを作ることを想定しているが、異なるディレクトリ構成をしている場合は適宜読み替えること。

77 |

卒業論文の書き方

78 |

以下のスライドを参照。

79 |

主に数値計算系の卒論の書き方

81 |

リポジトリの作成

82 |

どこでも良いが、たとえばgithubディレクトリにて卒論リポジトリをクローンする。

83 |
cd
 84 | cd github
 85 | git clone https://github.com/kaityo256/graduate_thesis.git
86 |

ターミナルで上のディレクトリに移動し、VS Codeでフォルダを開く。

87 |
code .
88 |

VS 89 | Codeでthesis.texを開き、ビルドが通ることを確認する。次に、指導教員、名前、学籍番号を修正の上でもう一度ビルドする。

90 |

ビルドが通ったら、ターミナルで

91 |
rm -rf .git
92 |

を実行し、リポジトリの情報を削除する。その上で、新たにGitリポジトリを作成する。

93 |
git init
 94 | git add .
 95 | git commit -m "Initial commit"
96 |

これが卒論のリポジトリとなる。

97 |

GitHubへのpush

98 |

次に、卒論リポジトリをGitHubにpushする。GitHubにアクセスし、新しくリポジトリを作成せよ。

100 |

名前は先程設定したディレクトリ名と一致させる。Descriptionは適当でよいが「卒業論文リポジトリ」と書いておくとわかりやすいだろう。また、Privateリポジトリに設定するのを忘れないこと。

101 |
102 | private 103 | 104 |
105 |

準備が整ったら「Crate 106 | repository」をクリックし、現れた3つの選択肢から「…or push an existing 107 | repository from the command 108 | line」の内容をコピペして、ターミナルで実行する。こんな感じになるはず(usernameは自分のGitHubアカウント名に変更すること)。

109 |
git remote add origin git@github.com:username/graduate_thesis.git
110 | git branch -M main
111 | git push -u origin main
112 |

pushしたら、リポジトリの当該ページをリロードして、内容があることを確認しよう。

113 |

コラボレータの追加

114 |

卒論リポジトリ(graduate_thesis)の、上のメニューの「Settings」をクリックし、左側に現れた「Collaborators」をクリックする。 115 | すると、「Manage access」の下に「Add people」ボタンが現れるので押す。 116 | 現れた画面の検索画面に指導教員のアカウント(kaityo256)を入れて、現れたアカウントを選び、「Add 117 | kaityo256 to this repository」をクリックして追加する。

118 |

すると、教員に招待状が飛び、教員が承諾するとリポジトリのWatchersが二人に増える。

119 |
120 | watchers 121 | 122 |
123 |

これで招待は完了である。あとはガンガン卒論を書くだけ。

124 |
125 | 126 | 127 | -------------------------------------------------------------------------------- /graduate_thesis/slide/happy_writing.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/graduate_thesis/slide/happy_writing.pdf -------------------------------------------------------------------------------- /graduate_thesis/slide/happy_writing.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/graduate_thesis/slide/happy_writing.pptx -------------------------------------------------------------------------------- /graduate_thesis/slide/sample/calc.plt: -------------------------------------------------------------------------------- 1 | set term png 2 | set out "calc_a.png" 3 | 4 | set xlabel "Parameter" font "Arial,20" 5 | set ylabel "Accuracy" font "Arial,20" offset 1.5,0 6 | set y2label "Elapsed Time" font "Ariak,20" offset 1.0,0 7 | set ytics 0.2 8 | set key at 0.95, 0.2 9 | set y2tics 10 | p [0:1] 1-exp(-x/0.2) lw 2 t "Accuracy"\ 11 | ,x**2 axis x1y2 lw 2 t "Elapsed Time"\ 12 | 13 | set out "calc_b.png" 14 | 15 | p [0:1] 1-exp(-x/0.15) lw 2 t "Accuracy"\ 16 | ,1.3*x**2 axis x1y2 lw 2 t "Elapsed Time" 17 | 18 | set out "calc_accuracy.png" 19 | set xlabel "Parameter" font "Arial,20" 20 | set ylabel "Accuracy" font "Arial,20" offset 1.5,0 21 | unset y2label 22 | unset y2tics 23 | 24 | p [0:1] 1-exp(-x/0.2) lw 2 t "X"\ 25 | ,1-exp(-x/0.15) lw 2 t "Y"\ 26 | 27 | 28 | set out "calc_etime.png" 29 | set xlabel "Parameter" font "Arial,20" 30 | set ylabel "Elapsed Time" font "Arial,20" offset 1.5,0 31 | unset y2label 32 | unset y2tics 33 | 34 | p [0:1] x**2 lw 2 t "X"\ 35 | ,1.3*x**2 lw 2 t "Y" 36 | 37 | -------------------------------------------------------------------------------- /graduate_thesis/slide/sample/calc_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/graduate_thesis/slide/sample/calc_a.png -------------------------------------------------------------------------------- /graduate_thesis/slide/sample/calc_accuracy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/graduate_thesis/slide/sample/calc_accuracy.png -------------------------------------------------------------------------------- /graduate_thesis/slide/sample/calc_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/graduate_thesis/slide/sample/calc_b.png -------------------------------------------------------------------------------- /graduate_thesis/slide/sample/calc_etime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/graduate_thesis/slide/sample/calc_etime.png -------------------------------------------------------------------------------- /graduate_thesis/slide/sample/compare.dat: -------------------------------------------------------------------------------- 1 | 0.0 1.8 1.8 2 | 0.05 1.9000000000000001 1.893303299153681 3 | 0.1 2.0 2.0 4 | 0.15 2.1 2.1124139231977233 5 | 0.2 2.2 2.2287093850145174 6 | 0.25 2.3 2.3479791131926087 7 | 0.3 2.4000000000000004 2.469673904420343 8 | 0.35 2.5 2.5934231071694884 9 | 0.4 2.6 2.718958683997628 10 | 0.45 2.7 2.846077258715482 11 | 0.5 2.8 2.974618943088019 12 | 0.55 2.9000000000000004 3.104454556490581 13 | 0.6 3.0 3.2354774386215785 14 | 0.65 3.1 3.3675979539922496 15 | 0.7 3.2 3.500739661654694 16 | 0.75 3.3 3.634836561362456 17 | 0.8 3.4000000000000004 3.7698310613518666 18 | 0.85 3.5 3.905672444967877 19 | 0.9 3.6 4.042315691307932 20 | 0.95 3.7 4.179720552879086 21 | -------------------------------------------------------------------------------- /graduate_thesis/slide/sample/compare.plt: -------------------------------------------------------------------------------- 1 | set term png 2 | set out "compare1.png" 3 | set xtics 0.2 4 | set pointsize 1.5 5 | set key at 0.9,2.5 6 | set xlabel "Parameter" font "Arial,20" 7 | set ylabel "Performance" font "Arial,20" offset 1.5,0 8 | p "compare.dat" u 1:2 pt 6 t "Original", "compare.dat" u 1:3 pt 7 t "Improved" 9 | 10 | set out "compare2.png" 11 | set ylabel "Relative Performance" font "Arial,20" offset 1.5,0 12 | p [0:1] [0:] "compare.dat" u 1:($3/$2) pt 7 , 1.0 w l lt 1 lc 0 t "" 13 | 14 | -------------------------------------------------------------------------------- /graduate_thesis/slide/sample/compare.py: -------------------------------------------------------------------------------- 1 | with open("compare.dat", "w") as f: 2 | for i in range(20): 3 | x = i/20.0 4 | y1 = 1.8+0.2*(x*10) 5 | y2 = 1.8+0.2*(x*10)**1.1 6 | f.write(f"{x} {y1} {y2}\n") 7 | -------------------------------------------------------------------------------- /graduate_thesis/slide/sample/compare1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/graduate_thesis/slide/sample/compare1.png -------------------------------------------------------------------------------- /graduate_thesis/slide/sample/compare2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/graduate_thesis/slide/sample/compare2.png -------------------------------------------------------------------------------- /graduate_thesis/slide/sample/makefile: -------------------------------------------------------------------------------- 1 | all: pressure.pdf temperature.pdf 2 | 3 | %.pdf: %.plt %.dat 4 | gnuplot $< 5 | -------------------------------------------------------------------------------- /graduate_thesis/slide/sample/pressure.dat: -------------------------------------------------------------------------------- 1 | 0.000000 0.076746 2 | 0.100000 0.153113 3 | 0.200000 0.129370 4 | 0.300000 0.255012 5 | 0.400000 0.342940 6 | 0.500000 0.363159 7 | 0.600000 0.392173 8 | 0.700000 0.485353 9 | 0.800000 0.560002 10 | 0.900000 0.584184 11 | 1.000000 0.600301 12 | 1.100000 0.655430 13 | 1.200000 0.708430 14 | 1.300000 0.770298 15 | 1.400000 0.821017 16 | 1.500000 0.878243 17 | 1.600000 0.938813 18 | 1.700000 0.899709 19 | 1.800000 0.992124 20 | 1.900000 0.957411 21 | 2.000000 0.957770 22 | 2.100000 1.002748 23 | 2.200000 1.030979 24 | 2.300000 0.993238 25 | 2.400000 1.035059 26 | 2.500000 1.079327 27 | 2.600000 1.067774 28 | 2.700000 1.088222 29 | 2.800000 1.014483 30 | 2.900000 1.060700 31 | 3.000000 1.004719 32 | 3.100000 0.977854 33 | 3.200000 0.985009 34 | 3.300000 0.946374 35 | 3.400000 0.934600 36 | 3.500000 0.903904 37 | 3.600000 0.842505 38 | 3.700000 0.785440 39 | 3.800000 0.738538 40 | 3.900000 0.682106 41 | 4.000000 0.628450 42 | 4.100000 0.543530 43 | 4.200000 0.501760 44 | 4.300000 0.456949 45 | 4.400000 0.406471 46 | 4.500000 0.331076 47 | 4.600000 0.287935 48 | 4.700000 0.198031 49 | 4.800000 0.217296 50 | 4.900000 0.109402 51 | 5.000000 0.049208 52 | 5.100000 -0.008406 53 | 5.200000 -0.120247 54 | 5.300000 -0.103480 55 | 5.400000 -0.184503 56 | 5.500000 -0.260423 57 | 5.600000 -0.305795 58 | 5.700000 -0.407264 59 | 5.800000 -0.423474 60 | 5.900000 -0.530573 61 | 6.000000 -0.497032 62 | 6.100000 -0.592853 63 | 6.200000 -0.680692 64 | 6.300000 -0.702482 65 | 6.400000 -0.684862 66 | 6.500000 -0.770748 67 | 6.600000 -0.825998 68 | 6.700000 -0.845308 69 | 6.800000 -0.839664 70 | 6.900000 -0.919335 71 | 7.000000 -0.921051 72 | 7.100000 -0.942356 73 | 7.200000 -0.890375 74 | 7.300000 -0.926596 75 | 7.400000 -0.936562 76 | 7.500000 -0.920437 77 | 7.600000 -0.930854 78 | 7.700000 -0.958842 79 | 7.800000 -0.946813 80 | 7.900000 -0.929041 81 | 8.000000 -0.876022 82 | 8.100000 -0.885424 83 | 8.200000 -0.887395 84 | 8.300000 -0.852686 85 | 8.400000 -0.759463 86 | 8.500000 -0.791867 87 | 8.600000 -0.699003 88 | 8.700000 -0.701994 89 | 8.800000 -0.667582 90 | 8.900000 -0.572355 91 | 9.000000 -0.579868 92 | 9.100000 -0.439644 93 | 9.200000 -0.401292 94 | 9.300000 -0.374946 95 | 9.400000 -0.362705 96 | 9.500000 -0.209403 97 | 9.600000 -0.229497 98 | 9.700000 -0.111866 99 | 9.800000 -0.051495 100 | 9.900000 -0.061715 101 | -------------------------------------------------------------------------------- /graduate_thesis/slide/sample/pressure.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/graduate_thesis/slide/sample/pressure.pdf -------------------------------------------------------------------------------- /graduate_thesis/slide/sample/pressure.plt: -------------------------------------------------------------------------------- 1 | set term pdf 2 | set out "pressure.pdf" 3 | set xlabel "t" 4 | set ylabel "P" 5 | p "pressure.dat" pt 6 t "Data" 6 | -------------------------------------------------------------------------------- /graduate_thesis/slide/sample/temperature.dat: -------------------------------------------------------------------------------- 1 | 0.000000 0.030656 2 | 0.100000 0.226214 3 | 0.200000 0.354588 4 | 0.300000 0.462068 5 | 0.400000 0.506927 6 | 0.500000 0.582236 7 | 0.600000 0.635741 8 | 0.700000 0.691733 9 | 0.800000 0.760633 10 | 0.900000 0.842820 11 | 1.000000 0.799868 12 | 1.100000 0.889887 13 | 1.200000 0.907637 14 | 1.300000 0.884642 15 | 1.400000 0.911289 16 | 1.500000 0.978254 17 | 1.600000 0.975612 18 | 1.700000 0.968580 19 | 1.800000 0.980929 20 | 1.900000 0.973105 21 | 2.000000 0.973630 22 | 2.100000 0.966390 23 | 2.200000 0.982205 24 | 2.300000 1.054615 25 | 2.400000 1.014414 26 | 2.500000 1.009726 27 | 2.600000 1.002803 28 | 2.700000 1.025221 29 | 2.800000 1.048200 30 | 2.900000 1.020860 31 | 3.000000 1.050002 32 | 3.100000 1.073200 33 | 3.200000 1.061927 34 | 3.300000 1.048494 35 | 3.400000 1.052235 36 | 3.500000 1.000904 37 | 3.600000 1.089005 38 | 3.700000 1.093406 39 | 3.800000 1.048212 40 | 3.900000 1.081557 41 | 4.000000 1.030941 42 | 4.100000 1.012604 43 | 4.200000 1.098430 44 | 4.300000 1.008387 45 | 4.400000 1.012908 46 | 4.500000 1.053116 47 | 4.600000 1.018520 48 | 4.700000 1.013750 49 | 4.800000 1.014594 50 | 4.900000 1.043472 51 | 5.000000 1.077015 52 | 5.100000 1.041737 53 | 5.200000 1.053984 54 | 5.300000 1.065342 55 | 5.400000 1.091302 56 | 5.500000 1.075180 57 | 5.600000 1.085479 58 | 5.700000 1.005050 59 | 5.800000 1.004593 60 | 5.900000 1.003951 61 | 6.000000 1.099452 62 | 6.100000 1.015273 63 | 6.200000 1.094934 64 | 6.300000 1.064762 65 | 6.400000 1.036196 66 | 6.500000 1.054861 67 | 6.600000 1.078094 68 | 6.700000 1.020924 69 | 6.800000 1.003881 70 | 6.900000 1.065066 71 | 7.000000 1.090724 72 | 7.100000 1.046184 73 | 7.200000 1.076903 74 | 7.300000 1.082257 75 | 7.400000 1.063614 76 | 7.500000 1.051683 77 | 7.600000 1.029655 78 | 7.700000 1.022601 79 | 7.800000 1.059821 80 | 7.900000 1.006351 81 | 8.000000 1.030099 82 | 8.100000 1.071467 83 | 8.200000 1.046288 84 | 8.300000 1.005401 85 | 8.400000 1.018802 86 | 8.500000 1.066947 87 | 8.600000 1.020674 88 | 8.700000 1.073361 89 | 8.800000 1.041894 90 | 8.900000 1.020906 91 | 9.000000 1.050430 92 | 9.100000 1.017214 93 | 9.200000 1.021574 94 | 9.300000 1.068343 95 | 9.400000 1.023766 96 | 9.500000 1.082745 97 | 9.600000 1.086929 98 | 9.700000 1.046770 99 | 9.800000 1.032597 100 | 9.900000 1.003302 101 | -------------------------------------------------------------------------------- /graduate_thesis/slide/sample/temperature.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/graduate_thesis/slide/sample/temperature.pdf -------------------------------------------------------------------------------- /graduate_thesis/slide/sample/temperature.plt: -------------------------------------------------------------------------------- 1 | set term pdf 2 | set out "temperature.pdf" 3 | set xlabel "t" 4 | set ylabel "T" 5 | p "temperature.dat" pt 6 t "Data" 6 | -------------------------------------------------------------------------------- /graduate_thesis/slide/sample/test.py: -------------------------------------------------------------------------------- 1 | import random 2 | from math import exp,sin, pi 3 | 4 | with open("pressure.dat", "w") as f: 5 | for i in range(100): 6 | x = i * 2 * pi / 100 7 | y = sin(x) + random.random() * 0.1 8 | f.write(f"{i*0.1:02f} {y:04f}\n") 9 | 10 | with open("temperature.dat", "w") as f: 11 | for i in range(100): 12 | x = i * 2 * pi / 100 13 | y = 1.0 - exp(-x/0.4) + random.random() * 0.1 14 | f.write(f"{i*0.1:02f} {y:04f}\n") 15 | 16 | -------------------------------------------------------------------------------- /graduate_thesis/slide/sample/zuru.dat: -------------------------------------------------------------------------------- 1 | 0.0 10.8 10.8 2 | 0.05 10.9 10.893303299153681 3 | 0.1 11.0 11.0 4 | 0.15 11.100000000000001 11.112413923197725 5 | 0.2 11.200000000000001 11.228709385014518 6 | 0.25 11.3 11.34797911319261 7 | 0.3 11.4 11.469673904420343 8 | 0.35 11.5 11.593423107169489 9 | 0.4 11.600000000000001 11.718958683997629 10 | 0.45 11.700000000000001 11.846077258715482 11 | 0.5 11.8 11.97461894308802 12 | 0.55 11.9 12.104454556490582 13 | 0.6 12.0 12.23547743862158 14 | 0.65 12.100000000000001 12.36759795399225 15 | 0.7 12.200000000000001 12.500739661654695 16 | 0.75 12.3 12.634836561362457 17 | 0.8 12.4 12.769831061351868 18 | 0.85 12.5 12.905672444967877 19 | 0.9 12.600000000000001 13.042315691307932 20 | 0.95 12.700000000000001 13.179720552879086 21 | -------------------------------------------------------------------------------- /graduate_thesis/slide/sample/zuru.plt: -------------------------------------------------------------------------------- 1 | set term png 2 | set out "zuru1.png" 3 | set xtics 0.2 4 | set pointsize 1.5 5 | set key at 0.9,2.5 6 | set xlabel "Parameter" font "Arial,20" 7 | set out "zuru1.png" 8 | set ylabel "Relative Performance" font "Arial,20" offset 1.5,0 9 | p [:] [:] "zuru.dat" u 1:($3/$2) pt 7 , 1.0 w l lt 1 lc 0 t "" 10 | 11 | set out "zuru2.png" 12 | set ylabel "Relative Performance" font "Arial,20" offset 1.5,0 13 | p [:] [0:] "zuru.dat" u 1:($3/$2) pt 7 , 1.0 w l lt 1 lc 0 t "" 14 | 15 | 16 | -------------------------------------------------------------------------------- /graduate_thesis/slide/sample/zuru.py: -------------------------------------------------------------------------------- 1 | with open("zuru.dat", "w") as f: 2 | for i in range(20): 3 | x = i/20.0 4 | y1 = 10.8+0.2*(x*10) 5 | y2 = 10.8+0.2*(x*10)**1.1 6 | f.write(f"{x} {y1} {y2}\n") 7 | -------------------------------------------------------------------------------- /graduate_thesis/slide/sample/zuru1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/graduate_thesis/slide/sample/zuru1.png -------------------------------------------------------------------------------- /graduate_thesis/slide/sample/zuru2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/graduate_thesis/slide/sample/zuru2.png -------------------------------------------------------------------------------- /homebrew/README.md: -------------------------------------------------------------------------------- 1 | # Homebrewのインストール 2 | 3 | ## Homebrewとは 4 | 5 | Homebrew(ホームブリュー)とは、主にMacで使われるパッケージ管理システムである。欲しいソフトウェアを簡単にインストールするのに使われる。一般にソフトウェアは別のライブラリに依存するが、パッケージ管理システムはその依存関係を認識して自動的に必要なライブラリもインストールしてくれる。今後、MacはHomebrewで必要なソフトウェアを管理するため、最初にインストールしておこう。 6 | 7 | ## Homebrewのインストール 8 | 9 | もしインストールされていないのなら、まずHomebrewをインストールする。 10 | 11 | まず「ターミナル」を開く。Command+Spaceでスポットライトを開き、Terminal.appを選べば起動する。実行したら、今後良く使うのでDockに追加しておこう。ターミナルが開いたら、以下を実行せよ。 12 | 13 | ```sh 14 | brew 15 | ``` 16 | 17 | `zsh: command not found: brew`と言われたらインストールされていない。インストールするには[https://brew.sh/ja](https://brew.sh/ja)の指示に従い、ターミナルで以下のコマンドを実行する(以下のコマンドは変更される可能性があるため、最新版の指示に従うこと)。 18 | 19 | ```sh 20 | /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 21 | ``` 22 | 23 | 上記をターミナルにコピペして実行せよ。途中、パスワードが要求されるので入力すること。 24 | 25 | `Press RETURN/ENTER to continue or any other key to abort`と表示されたらエンターキーを押す。Home brewのインストールが終わったら、パスの設定を促すメッセージが出る。 26 | 27 | ```txt 28 | ==> Next steps: 29 | - Run these commands in your terminal to add Homebrew to your PATH: 30 | echo >> /Users/watanabe/.zprofile 31 | echo 'eval "$(/usr/local/bin/brew shellenv)"' >> /Users/watanabe/.zprofile 32 | eval "$(/usr/local/bin/brew shellenv)" 33 | ``` 34 | 35 | このうち以下の三行(人によって異なる)を実行しておくこと。 36 | 37 | ```sh 38 | echo >> /Users/watanabe/.zprofile 39 | echo 'eval "$(/usr/local/bin/brew shellenv)"' >> /Users/watanabe/.zprofile 40 | eval "$(/usr/local/bin/brew shellenv)" 41 | ``` 42 | 43 | これにより、`brew`にパスが通る。 44 | 45 | もう一度`brew`を実行し、使い方が表示されればインストール成功である。 46 | 47 | ```sh 48 | brew 49 | ``` 50 | 51 | ```txt 52 | Example usage: 53 | brew search [TEXT|/REGEX/] 54 | brew info [FORMULA...] 55 | (snip) 56 | Further help: 57 | brew commands 58 | brew help [COMMAND] 59 | man brew 60 | https://docs.brew.sh 61 | ``` 62 | -------------------------------------------------------------------------------- /homebrew/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | homebrew/README.md 8 | 9 | 46 | 47 | 66 | 67 | 68 | 71 | 72 | 73 |
74 |

Homebrewのインストール

75 |

Homebrewとは

76 |

Homebrew(ホームブリュー)とは、主にMacで使われるパッケージ管理システムである。欲しいソフトウェアを簡単にインストールするのに使われる。一般にソフトウェアは別のライブラリに依存するが、パッケージ管理システムはその依存関係を認識して自動的に必要なライブラリもインストールしてくれる。今後、MacはHomebrewで必要なソフトウェアを管理するため、最初にインストールしておこう。

77 |

Homebrewのインストール

78 |

もしインストールされていないのなら、まずHomebrewをインストールする。

79 |

まず「ターミナル」を開く。Command+Spaceでスポットライトを開き、Terminal.appを選べば起動する。実行したら、今後良く使うのでDockに追加しておこう。ターミナルが開いたら、以下を実行せよ。

80 |
brew
81 |

zsh: command not found: brewと言われたらインストールされていない。インストールするにはhttps://brew.sh/jaの指示に従い、ターミナルで以下のコマンドを実行する(以下のコマンドは変更される可能性があるため、最新版の指示に従うこと)。

83 |
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
84 |

上記をターミナルにコピペして実行せよ。途中、パスワードが要求されるので入力すること。

85 |

Press RETURN/ENTER to continue or any other key to abortと表示されたらエンターキーを押す。Home 86 | brewのインストールが終わったら、パスの設定を促すメッセージが出る。

87 |
==> Next steps:
 89 | - Run these commands in your terminal to add Homebrew to your PATH:
 90 |     echo >> /Users/watanabe/.zprofile
 91 |     echo 'eval "$(/usr/local/bin/brew shellenv)"' >> /Users/watanabe/.zprofile
 92 |     eval "$(/usr/local/bin/brew shellenv)"
93 |

このうち以下の三行(人によって異なる)を実行しておくこと。

94 |
echo >> /Users/watanabe/.zprofile
 95 | echo 'eval "$(/usr/local/bin/brew shellenv)"' >> /Users/watanabe/.zprofile
 96 | eval "$(/usr/local/bin/brew shellenv)"
97 |

これにより、brewにパスが通る。

98 |

もう一度brewを実行し、使い方が表示されればインストール成功である。

99 |
brew
100 |
Example usage:
102 |   brew search [TEXT|/REGEX/]
103 |   brew info [FORMULA...]
104 | (snip)
105 | Further help:
106 |   brew commands
107 |   brew help [COMMAND]
108 |   man brew
109 |   https://docs.brew.sh
110 |
111 | 112 | 113 | -------------------------------------------------------------------------------- /howtoreview/howtoreview.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/howtoreview/howtoreview.pdf -------------------------------------------------------------------------------- /howtoreview/howtoreview.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/howtoreview/howtoreview.pptx -------------------------------------------------------------------------------- /howtoreview/howtosurvey.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/howtoreview/howtosurvey.pdf -------------------------------------------------------------------------------- /howtoreview/howtosurvey.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/howtoreview/howtosurvey.pptx -------------------------------------------------------------------------------- /illustrator/README.md: -------------------------------------------------------------------------------- 1 | # Adobe Illustratorの使い方 2 | 3 | Adobe Illustrator(イラストレータ)は、ベクターイメージドローソフトだ。とりあえず「多機能なPowerpointみたいなもの」と思えば良い。理系では、ポスターを作るのに良く使われるが、パンフレットなど、Adobe Illustrator形式(`.ai`)での入稿もあったりするので、簡単な使い方を知っておいて損はない。しかし、イラストレータは非常に多機能であり、そのすべてを説明することはできない。以下では、通常使うにあたって気をつけるべきことと、特にPowerPointとの使用感との違いについて説明する。 4 | 5 | ## ファイルについて 6 | 7 | ### アートボードサイズ 8 | 9 | イラストレータでは、描画する領域を「アートボード」と呼ぶ。最初に、アートボードのサイズなどを決める必要がある。イラストレータを起動し、「ファイル」→「新規」を選ぶと「新規ドキュメント」画面になる。ここでサイズを決めることができる。サイズのプリセットとして「A4」などが現れる。しかし、多くの場合ポスターで使うのはA0、もしくはA1であろう。特に大判プリンタでは「A0ノビ」と呼ばれるサイズが使われることが多い。これはA0にトンボと呼ばれる印をつけるために余白を設けたもので、サイズは幅914mm、高さ1292mmである。「A0ノビ」の紙に「A0」で印刷してしまうと余白が出てしまって後で裁ち落としをする必要があるため、「A0ノビ」の紙には「A0ノビ」で印刷した方がよい。 10 | 11 | というわけで、まずは「A0ノビ」で作成してみよう。「プリセットの詳細」に「ポスター」と記載し、幅914mm、高さ1292mm、裁ち落としは全て0mmで作成しよう。 12 | 13 | すると白い画面が出てくる。この上で様々な作業をするが、まずはファイルを保存しよう。最初に「コンピュータまたはCreative Couldに保存」と出てくるが、コンピュータに保存することにして、「次回から表示しない」をチェックしてから「コンピュータに保存」を選ぶ。 14 | 15 | すると、デフォルトで「ポスター.ai」というファイルになっているはずだ。この`*.ai`という拡張子がAdobe Illustrator形式であり、全ての編集情報を持っている。保存時に「Illustrator オプション」が出てくる。ここはあまり気にせず、デフォルトのままでよい。 16 | 17 | ### PDF出力の注意 18 | 19 | 次に、PDFで保存してみよう。ここでは、例えば印刷屋にPDF入稿することや、大判プリンタにPDFで持っていくことを想定する。「ファイル」の「別名で保存」で、出てきたダイアログから「ファイルの種類」を「Adobe PDF (*.PDF)」にしよう。ここで「Adobe PDFを保存」ダイアログが出てくるが、これをデフォルトのままで保存するとトラブルが起きやすいので、修正が必要だ。 20 | 21 | まず、「一般」のオプションで「Illustratorの編集機能を保持」「サムネールを埋め混み「上位レベルのレイヤーからAcrobatレイヤーを作成」等にチェックがついているが、これらは全て外しておく。 22 | 23 | 次に「圧縮」について、カラー画像やグレースケール画像が「ダウンサンプルしない」になっているはずだ。特に写真を多く含むポスターでは、このままの設定ではファイルサイズが非常に大きくなることがある。適当な手法「ダウンサンプル(バイリニア法)」を選び、ある解像度(ppi)を超える場合に、どこまで落とすかを指定する。これは何度も試して、出来上がりのPDFの解像度が許容範囲か確認するしかない。 24 | 25 | 保存すると「Illustratorの編集機能を保持」をチェックせずに保存すると編集機能が使用できないよ、といったメッセージが出るが気にしなくてよい。 26 | 27 | さて、このまま「PDF」で保存すると、左上にあるファイル名が「ポスター.pdf」になったはずだ。これに気づかないまま続けて修正をしがちなので気を付けたい。修正をするなら再度「ポスター.ai」を開く必要がある。 28 | 29 | 「別名で保存」をすると、拡張子がPDFに変わった後に気づかないまま編集を続けてしまう可能性があるため、PDFを出力する場合は「複製を保存」を選ぶと良い。「複製を保存」した場合は、開いているファイルは`*.ai`ファイルのままなので混乱が起きにくい。 30 | 31 | ### 画像の埋め込み確認 32 | 33 | イラストレータに画像ファイルを入れたい時、ドラッグアンドドロップで入れることが多いだろう。適当な画像をデスクトップに保存し、イラストレータにドロップしてみよう。すると、画像のプロパティに「リンクファイル」と表示される。これはAIファイルには画像の場所のみ保存している状態であり、AIファイル自身には画像ファイルは含まれない。そのままPDFにすると、リンクのままとなるため、印刷時に「画像が見つからない」というエラーとなる。 34 | 35 | これを防ぐには、画像をファイルに「埋め込む」必要がある。画像ファイルをクリックして出てくる「プロパティ」の下の方に「クイック操作」があり、そこで「埋め込み」をすれば埋め込むことができる。 36 | 37 | 多くの画像ファイルを扱うと、埋め込み忘れが生じがちだ。その場合、PDFに保存する前に「ウィンドウ」から「リンク」を選び、「リンクウィンドウ」を表示すると良い。「リンク」に画像一覧が表示されるが、右側に「鎖マーク」がついていたら「外部リンク」状態だ。「リンクウィンドウ」で鎖マークのついた画像を選び、下の「リンクへ移動」ボタンを押すと、アートボードで当該画像が選択状態になる。この「リンク」画面が表示されたまま「画像」の「埋め込み」をしてみよう。鎖マークが消えたはずだ。 38 | 39 | 「PDFに保存する前にリンクを確認する」癖をつけておきたい。 40 | 41 | ## オブジェクト 42 | 43 | イラストレータはベクターイメージドローソフトであり、全てのデータが「線分」で構成されている。この線分の集まりを「パス」と呼ぶ。「オブジェクト」は「パス」の集合で構成されている。線分は、点をつなぐことで構成されている。その点を「アンカーポイント」と呼ぶ。例えば円や長方形はどちらも4つのアンカーポイントで構成されている。 44 | 45 | ### 色と線 46 | 47 | オブジェクトは線分である「パス」から構成されており、それらの「塗り」と「線」を指定することで「塗りつぶし」や「周りの線」の色を指定できる。イラストレータを起動すると左に矢印やペンが書かれたツールバーが表示されるはずだ。まずはそこから「長方形ツール」を選ぼう。 48 | 49 | この状態で、アートボード上でマウスをドラッグすると、インタラクティブに長方形を作ることができる。また、「長方形ツール」が選択された状態でアートボードをクリックすると、幅と高さを入力し、指定のサイズの長方形を作ることができる。 50 | 51 | アートボードに長方形を置いたら、塗りと線の色を変えてみよう。先ほどの長方形が選択された状態でツールバーの「塗りと線」をクリックすると、色を変更できる。ちなみに「白字に赤の斜め線」が「無し」、つまり透明だ。 52 | 53 | 何も選択されていない状態で「塗りと線」の色を修正すると、「次に描画するオブジェクト」の塗りと線の色がそれになる。 54 | 55 | いくつか長方形を描いたら、それらを削除しよう。ツールバーの「選択ツール(V)」を選ぼう。よく使うので、キーボードショートカット「V」を覚えておくと良い。選択ツールになっている状態でクリックしたり、マウスをドラッグすることでオブジェクトを選択できる。その状態でDelキーを押せば削除できる。 56 | 57 | ### アンカーポイントの修正 58 | 59 | オブジェクトが線分でできており、線分の性質がアンカーポイントで決まることを確認するため、円を修正してハートマークを作ってみよう。まずはツールバーから「楕円形ツール」を選ぼう。おそらく最初は「長方形ツール」が表示されているため、そこをクリックで長押しすると「楕円形ツール」が選べる。しかし、キーボードで「L」を入力した方が切り替えが楽だ。ツールバーの選択の切り替えはキー入力の方が楽なので、よく使うものは覚えておくとよい。 60 | 61 | 円を一つ置こう。普通にマウスドラッグすると楕円になるが、「シフトキーを押しながらドラッグ」で円になる。後でハートにするので、塗りつぶしを赤、線を黒にしておこう。 62 | 63 | この状態で「ダイレクト選択ツール(A)」を選ぶ。これは、オブジェクト上のパスやアンカーポイントを選択できるツールだ。カーソルが黒いと全体選択ツール、白いとダイレクト選択ツールである。「A」と「V」で切り替えられるので覚えておきたい。 64 | 65 | ダイレクト選択ツールを選んだ状態で、円の一番したのアンカーポイントを探す。マウスオーバーで「アンカー」と出てくる。クリックすると「アンカーポイント」に「ハンドル」が出てくる。このハンドルがパスの曲率を決める。マウスでハンドルのサイズを0にしよう。円の下が尖るはずだ。さらに、サイドのアンカーポイントのハンドルをまげて、尖りを大きくしよう。 66 | 67 | 次に「アンカーポイントツール(Shift+C)」を選ぶ。そして、円の上部のアンカーポイントを選び、右方向にドラッグすると、ハンドルが伸びる。そのまま右のハンドルの先を右上に引っ張ろう。ハートの右側が出来上がる。次に、一度「ダイレクト選択ツール(A)」を選び、円の上部のアンカーポイントを選択して、左側のハンドルを表示してから、「アンカーポイントツール(Shift+C)」を選択し、左側のハンドルを左上にひっぱればハートの完成だ。概形ができたら、「ダイレクト選択ツール(A)」でハンドルをいじることで形を修正できる。 68 | 69 | ### なげなわツール 70 | 71 | パスはアンカーポイントを結ぶ線分であるため、アンカーポイントをつなぐことで新たなパスを作ることができる。これを利用して、円二つを接続してカプセルっぽい図形を作ってみよう。 72 | 73 | まずは円を二つ、左右に配置しよう。その状態で「ダイレクト選択ツール」にして、円の半分を選択して削除する。お互いに向かい合う半円ができたら「なげなわツール(Q)」を選択し、半円の上の点が両方含まれるように領域をドラッグする。二つのアンカーポイントが選択できたら、「オブジェクト」の「パス」の「連結(Ctrl+J)」を選ぶ。すると、二つのアンカーポイントの間を結ぶパスが出来上がる。同様に下側もパスを接続すると、カプセルの完成である。 74 | 75 | ### ペンツール 76 | 77 | 「ペンツール (P)」を使うと、パスの上にアンカーポイントを増やしたり、何もないところにアンカーポイントを置いたりすることができる。これを利用してパックマンを描画してみよう。 78 | 79 | まず円を描画する。この円は上下左右4つのアンカーポイントで構成されている。円が選択された状態で「ペンツール(P)」にして、円弧の中央をクリックするとアンカーポイントを増やすことができる。その右上の円弧と、右下の円弧の中央あたりにアンカーポイントを増やそう。そして「ダイレクト選択ツール」で「右」のアンカーポイントを左にドラッグすると、唇に丸みを帯びたパックマンができあがる。あとは「ダイレクト選択ツール」でハンドルを調整すればパックマン画像を作ることができる。 80 | 81 | ### パスファインダー 82 | 83 | 複数のオブジェクトを、合体させたり切り抜いたりできる。 84 | 85 | 例えば正方形を作り、半分削除して45度回転させ、それと長方形を重ねて両方選択した状態で、「ウィンドウ」の「パスファインダー」を表示、形状モードから「合体」を選ぶと、矢印の完成だ。 86 | 87 | 他にも「前面のオブジェクトで後ろをクリップする」ことができる。たまに使いたくなるので覚えておくと良い。 88 | 89 | ### 効果 90 | 91 | オブジェクトには様々な効果を載せることができる。よく使うのは「ぼかし」であろう。「スターツール」で星を描画しよう。線は無し、塗りは黄色にする。この状態で「効果」から「ぼかし」「ぼかし(ガウス)」を選ぶとぼやける。他にも効果は多数あるので試してみると良いだろう。 92 | 93 | ## レイヤー 94 | 95 | PowerPointでも「最前面/最背面に移動」などがあったように、オブジェクトには「上下」の重なりがある。この順番を決めるのがレイヤーだ。デフォルトで右側に「レイヤーウィンドウ」がある。アートボードにオブジェクトを作成すると、現在のレイヤーに「サブレイヤー」が作成され、そのサブレイヤーに配置される。このサブレイヤーの順序をマウスで入れ替えることで「重なり順序」を変えることができる。 96 | 97 | レイヤーもしくはサブレイヤー単位で可視化、編集のロックが可能だ。左にある「目」マークは可視化マークであり、クリックすると見えなくなる。背景を一時的に見えなくしたりするのに使う。さらに、ロックするとマウス選択などの対象外となる。やはりこれも背景に使うと便利だ。 98 | 99 | レイヤーはデフォルトで一つだが、いくつでも増やすことができる。ポスターを作る際は、背景などを背景レイヤーとして作成し、ロックしておくと便利だろう。 -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | README.md 8 | 9 | 46 | 47 | 66 | 67 | 68 | 71 | 72 | 73 |
74 |

数値計算用PCセットアップ資料

75 |

ガイダンス

76 |

Speakerdeckへのリンク。[File]をクリックすると、PDFやパワーポイントファイルがダウンロードできる。

77 | 107 |

セットアップ編

108 |

「上から順」にセットアップしていくことを想定しており、下の物は上のセットアップが終わっていることが前提となっているものがある。

109 | 123 |

開発編

124 | 139 |

執筆編

140 | 145 |

古い情報

146 |

以下はWindowsでWSL2を使わなかった時の情報。

147 | 150 |

ライセンス

151 |

Copyright (C) 2020 - present Hiroshi Watanabe

152 |

この文章と絵(pptxファイルを含む)はクリエイティブ・コモンズ 4.0 表示 153 | (CC-BY 4.0) で提供する。

154 |
155 | 156 | 157 | -------------------------------------------------------------------------------- /lammps/Dockerfile: -------------------------------------------------------------------------------- 1 | from centos:centos7 2 | 3 | COPY vmd-1.9.4a38.bin.LINUXAMD64-CUDA10-OptiX600-RTX-OSPRay170.opengl.tar.gz /vmd/ 4 | 5 | RUN yum -y install glx-utils make libXinerama libXi perl \ 6 | && cd /vmd \ 7 | && tar xvzf vmd-1.9.4a38.bin.LINUXAMD64-CUDA10-OptiX600-RTX-OSPRay170.opengl.tar.gz \ 8 | && cd vmd-1.9.4a38 \ 9 | && ./configure LINUXAMD64 \ 10 | && cd src; make install 11 | 12 | CMD ["vmd"] 13 | -------------------------------------------------------------------------------- /lammps/fig/folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/lammps/fig/folder.png -------------------------------------------------------------------------------- /lammps/fig/open_vmd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/lammps/fig/open_vmd.png -------------------------------------------------------------------------------- /lammps/fig/pymol_ellipse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/lammps/fig/pymol_ellipse.png -------------------------------------------------------------------------------- /lammps/fig/vmd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/lammps/fig/vmd.png -------------------------------------------------------------------------------- /lammps/fig/vmd_application.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/lammps/fig/vmd_application.png -------------------------------------------------------------------------------- /lammps/fig/vmd_cannot_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/lammps/fig/vmd_cannot_open.png -------------------------------------------------------------------------------- /lammps/fig/vmd_dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/lammps/fig/vmd_dialog.png -------------------------------------------------------------------------------- /lammps/fig/vmd_dmg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/lammps/fig/vmd_dmg.png -------------------------------------------------------------------------------- /lammps/fig/vmd_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/lammps/fig/vmd_open.png -------------------------------------------------------------------------------- /lammps/fig/vmd_representation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/lammps/fig/vmd_representation.png -------------------------------------------------------------------------------- /lammps/fig/vmd_shortcut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/lammps/fig/vmd_shortcut.png -------------------------------------------------------------------------------- /lammps/fig/xquartz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/lammps/fig/xquartz.png -------------------------------------------------------------------------------- /lammps/pymol.md: -------------------------------------------------------------------------------- 1 | 次に、サンプルディレクトリをコピーしよう。 2 | 3 | ```sh 4 | cp -r /usr/local/Cellar/lammps/2020-03-03/share/lammps/examples/ellipse . 5 | ``` 6 | 7 | 長いが、タブ補完を駆使すれば入力が楽になるだろう。 8 | 9 | できた`ellipse`ディレクトリに入って、lammpsを実行しよう。 10 | 11 | ```sh 12 | cd ellipse 13 | lmp_serial < in.ellipse.gayberne 14 | ``` 15 | 16 | いろいろ表示されて、最後に 17 | 18 | ```txt 19 | Total # of neighbors = 3096 20 | Ave neighs/atom = 7.74 21 | Neighbor list builds = 46 22 | Dangerous builds = 0 23 | 24 | Please see the log.cite file for references relevant to this simulation 25 | 26 | Total wall time: 0:00:01 27 | ``` 28 | 29 | といった表示が出れば実行は成功だ。 30 | 31 | ### 入力ファイルの修正 32 | 33 | 次に、入力ファイルを修正しよう。ターミナルで`in.ellipse.gayberne`があるディレクトリがカレントディレクトリになっている状態で、 34 | 35 | ```sh 36 | code in.ellipse.gayberne 37 | ``` 38 | 39 | と入力すると、VSCodeで`in.ellipse.gayberne`が開かれるはず。もし`command not found`と言われたら、まずVSCodeを開き、Shift+Command+Pで「コマンドパレット」を開いて「shell」で検索して「シェルコマンド: PAHT内にVS Codeをインストールします (Shell Command: Install code command in PATH)」を選択し、実行する。その後、再度先程の命令を実行すると、VSCodeで`in.ellipse.gayberne`が開かれるはず。 40 | 41 | VSCodeでin.ellipse.gayberneを開いたら、以下の行を探す。 42 | 43 | ```sh 44 | #dump 1 all custom 100 dump.ellipse.gayberne & 45 | # id type x y z c_q[1] c_q[2] c_q[3] c_q[4] 46 | ``` 47 | 48 | この二行の行頭の`#`を削除して保存しよう。 49 | 50 | ```sh 51 | dump 1 all custom 100 dump.ellipse.gayberne & 52 | id type x y z c_q[1] c_q[2] c_q[3] c_q[4] 53 | ``` 54 | 55 | この状態で、またlammpsを実行しよう。 56 | 57 | ```sh 58 | lmp_serial < in.ellipse.gayberne 59 | ``` 60 | 61 | すると、今度は同じディレクトリに`dump.ellipse.gayberne`ができているはず(`ls`で確認しよう)。 62 | 63 | これは原子の起動を保存したファイルで、これを後からPyMolで読み込んで可視化する。 64 | 65 | ### PyMolのインストール 66 | 67 | 本当はVMDを使う予定だったのだが、最新のMacでVMDが動かないことがわかったので、とりあえずPyMolでしのぐことにする。 68 | 69 | [ここ](https://pymol.org/2/)からmacOSのディスクイメージをダウンロードし、PyMolをアプリケーションにコピーしてインストールせよ。 70 | 71 | その後PyMolを起動すると、Activationについて聞いてくるので、とりあえず「Skip Activation」を選ぶ(30日間の試用期間に入る)。 72 | 73 | 次に、LammpsのdumpファイルをPyMolのファイルに変換する。ターミナルで以下のディレクトリに移動せよ。 74 | 75 | ```sh 76 | cd /usr/local/Cellar/lammps/2020-03-03/share/lammps/tools/pymol_asphere/src 77 | ``` 78 | 79 | そこで 80 | 81 | ```sh 82 | make 83 | ``` 84 | 85 | を実行すること。すると、実行可能ファイルができるので、それをパスが通ったところにシンボリックリンクを作ろう。 86 | 87 | ```sh 88 | cd /usr/local/bin 89 | ln -s /usr/local/Cellar/lammps/2020-03-03/share/lammps/tools/pymol_asphere/bin/asphere_vis 90 | ``` 91 | 92 | 次に、色ファイルを設定する。先程、シミュレーションを実行したディレクトリに移動して、`colors.ellipse`ファイルを作成しよう。 93 | 94 | ```ls 95 | cd 96 | cd lammps 97 | cd ellipse 98 | code colors.ellipse 99 | ``` 100 | 101 | VSCodeが開き、`colors.ellipse`が新規作成されたはずだ。ファイルの中身は以下のように記入せよ(最後の改行を忘れないこと。全体で3行になる)。 102 | 103 | ```txt 104 | 1 marine 0.7 1 105 | 2 red 1.0 3 1 1 106 | 107 | ``` 108 | 109 | 上記を保存したら、ターミナルで以下を実行せよ。 110 | 111 | ```sh 112 | asphere_vis colors.ellipse dump.ellipse.gayberne ellipse.py -r 4 -o 113 | ``` 114 | 115 | 以下のように出力されたら成功だ。 116 | 117 | ```txt 118 | Read in 2 atom types from flavor_file. 119 | Wrote 41 frames to output file. 120 | ``` 121 | 122 | もし、以下のように「1 atom」しか認識されなかった場合、最後の改行を忘れているので、再度ファイルを修正すること。 123 | 124 | ```txt 125 | Read in 1 atom types from flavor_file. 126 | Wrote 41 frames to output file. 127 | ``` 128 | 129 | このスクリプトにより`ellipse.py`が作成されたはずである(`ls`で確認せよ)。 130 | 131 | PyMolの「File」「Run Script」から、先程作成した`ellipse.py`を選んで実行すると、こんな画面が表示されるはずだ。 132 | 133 | ![PyMol](fig/pymol_ellipse.png) 134 | 135 | この状態で右上にある「Play」をクリックすると、アニメーションが表示されるはずである。 -------------------------------------------------------------------------------- /lammps/vmd-docker.md: -------------------------------------------------------------------------------- 1 | # MacでVMD 2 | 3 | 以前のMacはVMDが対応していなかったのでDocker経由で実行していたが、現在は対応したので以下の情報は不要。 4 | 5 | ## XQuartzのインストール 6 | 7 | まず、XQuartzをインストールしよう。[ここ](https://www.xquartz.org/)から、`XQuartz-2.7.11.dmg`をダウンロード、インストールする。 8 | 9 | XQuartzは「アプリケーション」→「ユーティリティ」にインストールされるので起動する。「xterm」というウィンドウが開けばインストールできてる。 10 | 11 | その後、XQuartzの「環境設定」の「セキュリティ」タブで、「接続を認証」と「ネットワーク・クライアントからの接続を許可」の両方にチェックを入れる(デフォルトで「接続を認証」にはチェックが入っているはず)。 12 | 13 | ![XQuartz](fig/xquartz.png) 14 | 15 | さらに、ターミナルから 16 | 17 | ```sh 18 | defaults write org.macosforge.xquartz.X11 enable_iglx -bool true 19 | ``` 20 | 21 | を実行しておく。以上の変更を適用するためにXQuartzを再起動すること。 22 | 23 | ## Dockerのインストール 24 | 25 | 次に、Dockerをインストールする。[ここ](https://www.docker.com/products/docker-desktop)から「Download for Mac」→「Get Docker」でダウンロードできるのでインストールする。 26 | 27 | インストール後、Dockerを起動する。最初にDocker IDの入力を求められるウィンドウが出るが、無視して消して良い。右上にクジラのような小さいアイコンが表示されたらDockerが起動している。 28 | 29 | Dockerの動作を確認しよう。ターミナルで、 30 | 31 | ```sh 32 | docker ps 33 | ``` 34 | 35 | を実行し、 36 | 37 | ```txt 38 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 39 | ``` 40 | 41 | と表示されたらDockerが起動している。 42 | 43 | ```txt 44 | Error response from daemon: dial unix docker.raw.sock: connect: connection refused 45 | ``` 46 | 47 | と表示されたらDockerが起動していないので起動すること。 48 | 49 | ## Dockerイメージの作成 50 | 51 | まず、Dockerイメージ作成用のディレクトリを作成し、そこにDockerfileをダウンロードしよう。 52 | 53 | ```sh 54 | cd 55 | mkdir docker-vmd 56 | cd docker-vmd 57 | wget https://kaityo256.github.io/lab_startup/lammps/Dockerfile 58 | ``` 59 | 60 | 次に、Linux版のVMDをダウンロードする。[ここ](https://www.ks.uiuc.edu/Research/vmd/)に行って、「Download (all versions)」をクリックする。 61 | 62 | 次に「Version 1.9.4 LATEST ALPHA (2019-10-17) Platforms:」の「LINUX_64 OpenGL, CUDA, OptiX, OSPRay」を選ぶ。すると、「Registration/Login」画面が現れるので、メールアドレスと、適当なパスワードを入力する。初回登録時には「New User Registration」画面となるので、必要事項を入力の上で「Register」を押す。 63 | 64 | ライセンスに同意することを示すと、ダウンロードが始まる。ダイアログが出たら「Save File」を選ぶこと。ダウンロードが完了したら、ダウンロードしたファイルを、先程作成したディレクトリ`docker-vmd`にコピーする。例えば、「ダウンロード」フォルダにダウンロードされたなら、 65 | 66 | ```sh 67 | cp ~/Downloads/vmd*.tar.gz . 68 | ``` 69 | 70 | で現在のディレクトリにコピーされるはずである。 71 | 72 | 現在、`~/docker-vmd`ディレクトリには、以下のDockerファイルとtar.gzファイルの2つのファイルがあるはず。 73 | 74 | ```sh 75 | $ ls 76 | Dockerfile vmd-1.9.4a38.bin.LINUXAMD64-CUDA10-OptiX600-RTX-OSPRay170.opengl.tar.gz 77 | ``` 78 | 79 | この状態でDockerイメージをビルドする。 80 | 81 | ```sh 82 | docker build -t vmd . 83 | ``` 84 | 85 | 最後に 86 | 87 | ```txt 88 | Successfully tagged vmd:latest 89 | ``` 90 | 91 | と表示されたら正しくビルドされている。 92 | 93 | 次に、先程の`melt`ディレクトリに移動して、以下のコマンドを実行する。 94 | 95 | ```sh 96 | cd 97 | cd lammps 98 | cd melt 99 | docker run -e DISPLAY=$(hostname):0 -v ~/.Xauthority:/root/.Xauthority -v $(pwd):/lammps -it vmd 100 | ``` 101 | 102 | ここまで正しく実行されていればVMDが起動したはずである。 103 | 104 | ```txt 105 | Can't open display: watanabe-mbp.local:0 106 | ``` 107 | 108 | などと言われたらXQuartzが起動していないので起動せよ。 109 | -------------------------------------------------------------------------------- /lastpass/README.md: -------------------------------------------------------------------------------- 1 | # LastPassと多要素認証 2 | 3 | ## はじめに 4 | 5 | これから、GitHubをはじめとして、MendeleyやGrammerlyなど、いくつかの「アカウント」を管理することになる。この時、パスワードを個別に管理するのは煩わしいし、かといってパスワードの使いまわしをするのはセキュリティ的に問題がある。 6 | 7 | こういう問題の一つの解決法として、「強く守った一つのアカウントに、他のパスワードを記録する」という方法がある。例えば、何かのサイトで「Googleでログイン」や「Twitterでログイン」というのを見たことがあるだろう。これは「Google」や「Twitter」のアカウントは「守られている」ことを仮定して、ユーザ認証をそちらに任せる仕組みだ(詳細については「OAuth」で検索してみよ)。 8 | 9 | 他にも、「パスワードを忘れた」というボタンがついているサイトも多い。このボタンを押すと、登録されているメールアドレスにパスワードの初期化用の手段が贈られてくるが、これは「メールアカウントは守られている」ことを仮定している。 10 | 11 | このように、「あるメインのアカウントは強く守っておき、他のアカウントはメインのアカウントに認証を任せる」方法は有効である。この哲学に従い、複数のパスワードを、一つのパスワードマネージャに管理させよう。 12 | 13 | パスワードマネージャはなんでも良いが、 14 | 15 | * 無料である 16 | * 複数のデバイスから同じデータにアクセスできる(クラウド対応) 17 | * 多要素認証に対応している 18 | 19 | をすべて満たす「LastPass」をおすすめする(他には、1Password等が有名)。もちろん、好きなものを使ってよい。 20 | 21 | パスワードのクラウド対応については、「パスワードデータがネットワークの向こう側に保存される」ことを不安視する人もいるかもしれない。これについては、「クラウドからパスワードが流出する」リスクと、「パスワードマネージャを使わないことで、パスワードを忘れたり、つい使いまわしたりしてしまうリスク」を比較し、どちらを重視するか、各自で検討して欲しい。以下、パスワードマネージャとしてLastPassを使った場合、多要素認証導入までの方法を紹介する。 22 | 23 | ## LastPassのインストール 24 | 25 | LastPassはブラウザの拡張として使うタイプのパスワードマネージャであるので、普段使うブラウザでアクセスしよう。だいたいのブラウザにはLastPass拡張が用意されていると思うが、特に希望がなければGoogle Chromeを推奨する。 26 | 27 | まず、[https://www.lastpass.com/](https://www.lastpass.com/)に行って、「Get LastPass Free」をクリックしよう。 28 | 29 | ![アカウント作成](fig/create_account.png) 30 | 31 | メールアドレス(Email)がアカウント名となる。普段使うメールアドレス(例えばGmail)を設定すること。 32 | 33 | マスターパスワードは、最も重要なパスワードとなるので、強いパスワードにすること。LastPassは 34 | 35 | * 12文字以上 36 | * 数字を一つ以上含む 37 | * 大文字小文字が混ざる 38 | * メールアドレスにしてはならない 39 | 40 | ことを求めており、記号を入れることを必須にしていない。JPCERTも[記号を含めて短い、パスワードが長い方が強度に寄与する](https://www.jpcert.or.jp/pr/stop-password.html)という見解を打ち出している。とりあえず12文字あれば良いだろう。「パスワード生成」などで検索して、適当なサイトでパスワードを作ってから、紙などにメモしておこう(なくさないように)。もしくは、pwgenを使うのも良い。 41 | 42 | ```sh 43 | brew install pwgen #Macの場合 44 | sudo apt install -y pwgen 45 | ``` 46 | 47 | でインストールし、 48 | 49 | ```sh 50 | pwgen -y 12 51 | ``` 52 | 53 | などとしよう。Reminderは、パスワードを忘れた時のヒントなので、入力しなくてかまわない。 54 | 55 | 無事にアカウントが作成されたら「Install LastPass」をクリックして、ブラウザの拡張機能をインストールしよう。Google Chromeならchrome ウェブストアが表示されるはずなので、「拡張機能の追加」をクリックしてブラウザに追加する。他のブラウザでも同様。 56 | 57 | 正しくインストールされたら、ブラウザの右上にLastPassの黒いアイコンが表示されるはずである。 58 | 59 | ![LastPassのアイコン](fig/lastpass_icon.png) 60 | 61 | この黒いアイコンをクリックすると、ログイン画面となるので、先ほど設定したメールとマスターパスワードでログインしよう。 62 | 63 | ![ログイン画面](fig/lastpass_login.png) 64 | 65 | ログインに成功すると、アイコンが赤くなる。 66 | 67 | ![ログイン後のアイコン](fig/lastpass_after_login.png) 68 | 69 | 今後、LastPassにログインした状態で何かのサイトにログインすると、LastPassに追加するか聞かれるので、その時に「Add」を選ぶとLastPassがアカウント名とパスワードを覚えていく。他にもいろいろ便利な機能があるが、それについてはおいおい覚えていくと良いだろう。 70 | 71 | ## 多要素認証 72 | 73 | ### 二段階認証と多要素認証 74 | 75 | パスワードマネージャのアカウントは、他の全てのパスワードを管理する最も重要なアカウントであるから、きちんと守ってやらなければならない。その時に使うのが多要素認証である。 76 | 77 | アカウントとパスワードだけの認証では心もとないので、もう一つ何か認証の要素を追加しよう、というのは自然な発想である。 78 | 79 | この時、アカウントとパスワードの他に、もう一つ何か知識(例えば生年月日)を求める方法を「二段階認証」と呼ぶ。二段階認証は面倒なわりにセキュリティの向上はあまり見込めない(……のだが、銀行のウェブサイトなどで採用例がある)。 80 | 81 | それに対して、多要素認証とは、「アカウントとパスワード」とは質的に異なるものを追加することで認証をセキュアにしよう、という方法論である。 82 | 83 | 多要素認証には三つの要素がある。 84 | 85 | * 知識要素 (What you know) 「あなたしか知らない情報」パスワードや「秘密の質問」などがこれにあたる 86 | * 所持要素 (What you have)「あなたしか持っていない物」スマホを使ったワンタイムパスワードなどがこれにあたる 87 | * 生体要素 (What you are) 「あなた自身」指紋認証、静脈認証、顔認証などがこれにあたる 88 | 89 | 例えばパスワードの他に「秘密の質問」を使った認証は、どちらも「知識要素」を使っているので二段階認証だが、多要素認証ではない。 90 | 91 | それに対して、パスワードの他にスマホを使った認証は、「知識要素」「所持要素」の二つを使っているので多要素認証となる。 92 | 93 | 以下ではスマホを使った多要素認証を導入する。 94 | 95 | ### Google Authenticator 96 | 97 | まず、スマホに「Google Authenticator」を導入しよう。iPhoneならApple Store、AndroidならPlay Storeで「Google Authenticator」で検索することで見つかるだろう。 98 | 99 | ![Google Authenticator](fig/google_authenticator.png) 100 | 101 | まずこれをインストールしよう。 102 | 103 | 次に、LastPassで多要素認証を有効にする。 104 | 105 | まず、LastPassにログインし、「Vault」を選ぶ(Vaultとは金庫室という意味である)。 106 | 107 | 左のメニューから「Account Settings」を選ぶ。上のタブから「Multifactor Options」を選ぶ。 108 | 109 | 一覧から「Google Authenticator」の列の右の鉛筆マークをクリックする。その後、指示に従うと、二次元コードが出てくるはずである。 110 | 111 | この状態でスマホを取り出し、Google Authenticatorを起動する。右下に「+」マークをクリックして「バーコードをスキャン」を選ぶと撮影モードになるので、表示されている二次元コードを映すことで追加できる。名前は「LastPass」とかにしておこう。 112 | 113 | 以後、LastPassにログインしようとすると、パスワード認証の他にGoogle Authenticatorによる認証が要求される。Google Authenticatorを起動すると、先ほど名前をつけて保存した「LastPass」のところに6桁の数字が表示されるので、これを入力しよう。 114 | 115 | ![Google Authenticator](fig/google_number.png) 116 | 117 | この数字は一分毎に変わる、ワンタイムパスワードと呼ばれるものになっている。 118 | 119 | パスワードマネージャを使うかどうかは個人の自由だが、大事なアカウントを多要素認証で守るのは必須である。今後、GitHubアカウントを作成するが、これも多要素認証で守ること。 120 | -------------------------------------------------------------------------------- /lastpass/fig/create_account.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/lastpass/fig/create_account.png -------------------------------------------------------------------------------- /lastpass/fig/google_authenticator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/lastpass/fig/google_authenticator.png -------------------------------------------------------------------------------- /lastpass/fig/google_number.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/lastpass/fig/google_number.png -------------------------------------------------------------------------------- /lastpass/fig/lastpass_after_login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/lastpass/fig/lastpass_after_login.png -------------------------------------------------------------------------------- /lastpass/fig/lastpass_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/lastpass/fig/lastpass_icon.png -------------------------------------------------------------------------------- /lastpass/fig/lastpass_login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/lastpass/fig/lastpass_login.png -------------------------------------------------------------------------------- /lastpass/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | lastpass/README.md 8 | 9 | 46 | 47 | 66 | 67 | 68 | 71 | 72 | 73 |
74 |

LastPassと多要素認証

75 |

はじめに

76 |

これから、GitHubをはじめとして、MendeleyやGrammerlyなど、いくつかの「アカウント」を管理することになる。この時、パスワードを個別に管理するのは煩わしいし、かといってパスワードの使いまわしをするのはセキュリティ的に問題がある。

77 |

こういう問題の一つの解決法として、「強く守った一つのアカウントに、他のパスワードを記録する」という方法がある。例えば、何かのサイトで「Googleでログイン」や「Twitterでログイン」というのを見たことがあるだろう。これは「Google」や「Twitter」のアカウントは「守られている」ことを仮定して、ユーザ認証をそちらに任せる仕組みだ(詳細については「OAuth」で検索してみよ)。

78 |

他にも、「パスワードを忘れた」というボタンがついているサイトも多い。このボタンを押すと、登録されているメールアドレスにパスワードの初期化用の手段が贈られてくるが、これは「メールアカウントは守られている」ことを仮定している。

79 |

このように、「あるメインのアカウントは強く守っておき、他のアカウントはメインのアカウントに認証を任せる」方法は有効である。この哲学に従い、複数のパスワードを、一つのパスワードマネージャに管理させよう。

80 |

パスワードマネージャはなんでも良いが、

81 |
    82 |
  • 無料である
  • 83 |
  • 複数のデバイスから同じデータにアクセスできる(クラウド対応)
  • 84 |
  • 多要素認証に対応している
  • 85 |
86 |

をすべて満たす「LastPass」をおすすめする(他には、1Password等が有名)。もちろん、好きなものを使ってよい。

87 |

パスワードのクラウド対応については、「パスワードデータがネットワークの向こう側に保存される」ことを不安視する人もいるかもしれない。これについては、「クラウドからパスワードが流出する」リスクと、「パスワードマネージャを使わないことで、パスワードを忘れたり、つい使いまわしたりしてしまうリスク」を比較し、どちらを重視するか、各自で検討して欲しい。以下、パスワードマネージャとしてLastPassを使った場合、多要素認証導入までの方法を紹介する。

88 |

LastPassのインストール

89 |

LastPassはブラウザの拡張として使うタイプのパスワードマネージャであるので、普段使うブラウザでアクセスしよう。だいたいのブラウザにはLastPass拡張が用意されていると思うが、特に希望がなければGoogle 90 | Chromeを推奨する。

91 |

まず、https://www.lastpass.com/に行って、「Get 93 | LastPass Free」をクリックしよう。

94 |
95 | アカウント作成 96 | 97 |
98 |

メールアドレス(Email)がアカウント名となる。普段使うメールアドレス(例えばGmail)を設定すること。

99 |

マスターパスワードは、最も重要なパスワードとなるので、強いパスワードにすること。LastPassは

100 |
    101 |
  • 12文字以上
  • 102 |
  • 数字を一つ以上含む
  • 103 |
  • 大文字小文字が混ざる
  • 104 |
  • メールアドレスにしてはならない
  • 105 |
106 |

ことを求めており、記号を入れることを必須にしていない。JPCERTも記号を含めて短い、パスワードが長い方が強度に寄与するという見解を打ち出している。とりあえず12文字あれば良いだろう。「パスワード生成」などで検索して、適当なサイトでパスワードを作ってから、紙などにメモしておこう(なくさないように)。もしくは、pwgenを使うのも良い。

108 |
brew install pwgen #Macの場合
109 | sudo apt install -y pwgen
110 |

でインストールし、

111 |
pwgen -y 12
112 |

などとしよう。Reminderは、パスワードを忘れた時のヒントなので、入力しなくてかまわない。

113 |

無事にアカウントが作成されたら「Install 114 | LastPass」をクリックして、ブラウザの拡張機能をインストールしよう。Google 115 | Chromeならchrome 116 | ウェブストアが表示されるはずなので、「拡張機能の追加」をクリックしてブラウザに追加する。他のブラウザでも同様。

117 |

正しくインストールされたら、ブラウザの右上にLastPassの黒いアイコンが表示されるはずである。

118 |
119 | LastPassのアイコン 120 | 121 |
122 |

この黒いアイコンをクリックすると、ログイン画面となるので、先ほど設定したメールとマスターパスワードでログインしよう。

123 |
124 | ログイン画面 125 | 126 |
127 |

ログインに成功すると、アイコンが赤くなる。

128 |
129 | ログイン後のアイコン 130 | 131 |
132 |

今後、LastPassにログインした状態で何かのサイトにログインすると、LastPassに追加するか聞かれるので、その時に「Add」を選ぶとLastPassがアカウント名とパスワードを覚えていく。他にもいろいろ便利な機能があるが、それについてはおいおい覚えていくと良いだろう。

133 |

多要素認証

134 |

二段階認証と多要素認証

135 |

パスワードマネージャのアカウントは、他の全てのパスワードを管理する最も重要なアカウントであるから、きちんと守ってやらなければならない。その時に使うのが多要素認証である。

136 |

アカウントとパスワードだけの認証では心もとないので、もう一つ何か認証の要素を追加しよう、というのは自然な発想である。

137 |

この時、アカウントとパスワードの他に、もう一つ何か知識(例えば生年月日)を求める方法を「二段階認証」と呼ぶ。二段階認証は面倒なわりにセキュリティの向上はあまり見込めない(……のだが、銀行のウェブサイトなどで採用例がある)。

138 |

それに対して、多要素認証とは、「アカウントとパスワード」とは質的に異なるものを追加することで認証をセキュアにしよう、という方法論である。

139 |

多要素認証には三つの要素がある。

140 |
    141 |
  • 知識要素 (What you know) 142 | 「あなたしか知らない情報」パスワードや「秘密の質問」などがこれにあたる
  • 143 |
  • 所持要素 (What you 144 | have)「あなたしか持っていない物」スマホを使ったワンタイムパスワードなどがこれにあたる
  • 145 |
  • 生体要素 (What you 146 | are) 「あなた自身」指紋認証、静脈認証、顔認証などがこれにあたる
  • 147 |
148 |

例えばパスワードの他に「秘密の質問」を使った認証は、どちらも「知識要素」を使っているので二段階認証だが、多要素認証ではない。

149 |

それに対して、パスワードの他にスマホを使った認証は、「知識要素」「所持要素」の二つを使っているので多要素認証となる。

150 |

以下ではスマホを使った多要素認証を導入する。

151 |

Google Authenticator

152 |

まず、スマホに「Google Authenticator」を導入しよう。iPhoneならApple 153 | Store、AndroidならPlay Storeで「Google 154 | Authenticator」で検索することで見つかるだろう。

155 |
156 | Google Authenticator 157 | 158 |
159 |

まずこれをインストールしよう。

160 |

次に、LastPassで多要素認証を有効にする。

161 |

まず、LastPassにログインし、「Vault」を選ぶ(Vaultとは金庫室という意味である)。

162 |

左のメニューから「Account Settings」を選ぶ。上のタブから「Multifactor 163 | Options」を選ぶ。

164 |

一覧から「Google 165 | Authenticator」の列の右の鉛筆マークをクリックする。その後、指示に従うと、二次元コードが出てくるはずである。

166 |

この状態でスマホを取り出し、Google 167 | Authenticatorを起動する。右下に「+」マークをクリックして「バーコードをスキャン」を選ぶと撮影モードになるので、表示されている二次元コードを映すことで追加できる。名前は「LastPass」とかにしておこう。

168 |

以後、LastPassにログインしようとすると、パスワード認証の他にGoogle 169 | Authenticatorによる認証が要求される。Google 170 | Authenticatorを起動すると、先ほど名前をつけて保存した「LastPass」のところに6桁の数字が表示されるので、これを入力しよう。

171 |
172 | Google Authenticator 173 | 174 |
175 |

この数字は一分毎に変わる、ワンタイムパスワードと呼ばれるものになっている。

176 |

パスワードマネージャを使うかどうかは個人の自由だが、大事なアカウントを多要素認証で守るのは必須である。今後、GitHubアカウントを作成するが、これも多要素認証で守ること。

177 |
178 | 179 | 180 | -------------------------------------------------------------------------------- /latex/fig/autobuild.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/latex/fig/autobuild.png -------------------------------------------------------------------------------- /latex/fig/build_project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/latex/fig/build_project.png -------------------------------------------------------------------------------- /latex/fig/cleanup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/latex/fig/cleanup.png -------------------------------------------------------------------------------- /latex/fig/install1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/latex/fig/install1.png -------------------------------------------------------------------------------- /latex/fig/install2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/latex/fig/install2.png -------------------------------------------------------------------------------- /latex/fig/install3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/latex/fig/install3.png -------------------------------------------------------------------------------- /latex/fig/install_win.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/latex/fig/install_win.png -------------------------------------------------------------------------------- /latex/fig/latex_tools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/latex/fig/latex_tools.png -------------------------------------------------------------------------------- /latex/fig/latex_workshop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/latex/fig/latex_workshop.png -------------------------------------------------------------------------------- /latex/fig/terminate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/latex/fig/terminate.png -------------------------------------------------------------------------------- /latex/fig/test_pdf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/latex/fig/test_pdf.png -------------------------------------------------------------------------------- /latex/fig/testj_pdf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/latex/fig/testj_pdf.png -------------------------------------------------------------------------------- /latex/test.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import matplotlib 3 | matplotlib.use('Agg') 4 | import matplotlib.pyplot as plt 5 | 6 | 7 | x = np.arange(0, 2*np.pi, 2*np.pi*0.01) 8 | y = np.sin(x) 9 | 10 | plt.plot(x,y) 11 | plt.savefig("sin.pdf") 12 | -------------------------------------------------------------------------------- /log.md: -------------------------------------------------------------------------------- 1 | # ハンズオンログ 2 | 3 | ## 2025年度 4 | 5 | * 3/13 論文の読み方、探し方 6 | * 3/20 Vimハンズオン 7 | * 3/27 SSHハンズオン 8 | * 4/2 Dockerハンズオン 9 | * 4/10 スパコンハンズオン 10 | * 4/17 gnuplotハンズオン 11 | * 4/24 GNU makeハンズオン 12 | * 5/1 MarkdownとLaTeX記法 13 | * 5/8 LAMMPSとVMDハンズオン 14 | * 5/15 ParaViewハンズオン 15 | * 5/22 Adobe Illustratorハンズオン 16 | * 5/29 バッチシステムの使い方 17 | * LaTeXハンズオン 18 | * 卒論執筆ハンズオン 19 | 20 | ## 2024年度 21 | 22 | * 3/7 論文の読み方、探し方 23 | * 3/14 Vimハンズオン 24 | * 3/21 SSHハンズオン 25 | * 4/4 Dockerハンズオン 26 | * 4/11 スパコンハンズオン 27 | * 4/18 gnuplotハンズオン 28 | * 4/25 LastPassと多要素認証(GitHubも) 29 | * 5/9 GNU make 30 | * 5/16 ParaViewハンズオン 31 | * 5/23 バッチシステムの使い方 32 | * 5/30 MarkdownとLaTeX記法ハンズオン 33 | * 11/28 卒論執筆ハンズオン (LaTeXハンズオンはやらなかった) 34 | 35 | ## 2023年度 36 | 37 | * 2/16 論文の読み方、探し方 38 | * 3/2 Vimハンズオン 39 | * 3/9 Dockerハンズオン 40 | * 3/16 gnuplot ハンズオン 41 | * 3/30 MarkdownとLaTeX記法ハンズオン 42 | * 4/6 Gitハンズオン 43 | * 4/13 LastPassと多要素認証 44 | * 4/20 LAMMPSとVMDのインストール 45 | * 4/27 機械学習ハンズオン (TensorFlowでFashion-MNISTを学習させてウェブで読み込む) 46 | * 5/11 VSCode + Remote+SSH 47 | * 5/18 GNU make 48 | * 6/1 GitHub+LAMMPS (衝突シミュレーション) 49 | * 6/22 バッチシステムの使い方 50 | * 6/29 ParaViewハンズオン 51 | * 11/15 卒論執筆ハンズオン 52 | 53 | 54 | ## 2022年度 55 | 56 | * 2/7 論文の読み方、探し方 57 | * 2/21 Vimハンズオン 58 | * 2/28 Dockerハンズオン 59 | * 事前にSSH公開鍵の作成と研究室サーバへの接続テストを実施 60 | * 3/7 gnuplotハンズオン 61 | * 事前にX Window SystemのインストールとサーバからXが飛ぶ動作確認 62 | * 3/14 MarkdownとLaTeX記法ハンズオン 63 | * 事前にVSCodeのインストールとPython環境のセットアップ 64 | * 3/21 Gitハンズオン 65 | * 事前にbrewとaptでgitのみインストールしておいてもらう 66 | * 4/7 物性研スパコンハンズオン 67 | * 4/11 LastPassのインストールと二段階認証 68 | * 4/18 GitHubの説明と、リポジトリの作成とclone/push 69 | * 4/25 GitHubのissueとKanban 70 | * 5/2 LAMMPSとVMDのインストール 71 | * 5/9 GitHubのフォークとLAMMPS 72 | * 5/16 機械学習ハンズオン (TensorFlowでFashion-MNISTを学習させてウェブで読み込む) 73 | * 5/23 GNU makeハンズオン 74 | * 6/6 PBS ハンズオン (バッチシステム) 75 | * 6/13 ParaViewハンズオン 76 | * 11/15 卒論ハンズオン 77 | * 12月23日 手法と結果を書く 78 | * 12月19日 タイトル研究室内締切 79 | * 1月中旬 卒論初稿 80 | 81 | ## 2021年度 82 | 83 | * 3/4 論文の読み方、探し方 84 | * 3/11 Vimハンズオン 85 | * (事前にXを飛ばせるようにしておいた?) 86 | * (PythonとVSCodeのハンズオンは飛ばした?) 87 | * 3/18 Dockerハンズオン 88 | * 3/25 gnuplotハンズオン 89 | * 4/1 Gitハンズオン 90 | * 4/8 GitHubハンズオン 91 | * 4/15 LammpsとVMDハンズオン 92 | * 4/22 MarkdownとLaTeX記法ハンズオン 93 | * 5/5 物性研スパコンハンズオン 94 | * 5/12 GNU makeハンズオン 95 | * 5/20 PBS ハンズオン (バッチシステム) 96 | * 5/27 ParaViewハンズオン 97 | * 6/3 機械学習ハンズオン (TensorFlowでFashion-MNISTを学習させてウェブで読み込む) 98 | -------------------------------------------------------------------------------- /make/fig/gnumake.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/make/fig/gnumake.pdf -------------------------------------------------------------------------------- /make/fig/gnumake.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/make/fig/gnumake.pptx -------------------------------------------------------------------------------- /mdtex/fig/outline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/mdtex/fig/outline.png -------------------------------------------------------------------------------- /mdtex/fig/tex_preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/mdtex/fig/tex_preview.png -------------------------------------------------------------------------------- /paraview/fig/2d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/paraview/fig/2d.png -------------------------------------------------------------------------------- /paraview/fig/2pz_default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/paraview/fig/2pz_default.png -------------------------------------------------------------------------------- /paraview/fig/2pz_edited.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/paraview/fig/2pz_edited.png -------------------------------------------------------------------------------- /paraview/fig/3dz2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/paraview/fig/3dz2.png -------------------------------------------------------------------------------- /paraview/fig/3dzx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/paraview/fig/3dzx.png -------------------------------------------------------------------------------- /paraview/fig/color_changed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/paraview/fig/color_changed.png -------------------------------------------------------------------------------- /paraview/fig/color_edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/paraview/fig/color_edit.png -------------------------------------------------------------------------------- /paraview/fig/color_picker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/paraview/fig/color_picker.png -------------------------------------------------------------------------------- /paraview/fig/colormap_editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/paraview/fig/colormap_editor.png -------------------------------------------------------------------------------- /paraview/fig/delaunay2d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/paraview/fig/delaunay2d.png -------------------------------------------------------------------------------- /paraview/fig/filter_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/paraview/fig/filter_search.png -------------------------------------------------------------------------------- /paraview/fig/filter_warp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/paraview/fig/filter_warp.png -------------------------------------------------------------------------------- /paraview/fig/glyph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/paraview/fig/glyph.png -------------------------------------------------------------------------------- /paraview/fig/gs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/paraview/fig/gs.png -------------------------------------------------------------------------------- /paraview/fig/gs_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/paraview/fig/gs_open.png -------------------------------------------------------------------------------- /paraview/fig/last_frame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/paraview/fig/last_frame.png -------------------------------------------------------------------------------- /paraview/fig/mac_download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/paraview/fig/mac_download.png -------------------------------------------------------------------------------- /paraview/fig/minusz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/paraview/fig/minusz.png -------------------------------------------------------------------------------- /paraview/fig/mismatch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/paraview/fig/mismatch.png -------------------------------------------------------------------------------- /paraview/fig/play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/paraview/fig/play.png -------------------------------------------------------------------------------- /paraview/fig/rescale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/paraview/fig/rescale.png -------------------------------------------------------------------------------- /paraview/fig/scale_array.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/paraview/fig/scale_array.png -------------------------------------------------------------------------------- /paraview/fig/scale_factor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/paraview/fig/scale_factor.png -------------------------------------------------------------------------------- /paraview/fig/simple_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/paraview/fig/simple_color.png -------------------------------------------------------------------------------- /paraview/fig/simple_default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/paraview/fig/simple_default.png -------------------------------------------------------------------------------- /paraview/fig/simple_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/paraview/fig/simple_open.png -------------------------------------------------------------------------------- /paraview/fig/simple_volume.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/paraview/fig/simple_volume.png -------------------------------------------------------------------------------- /paraview/fig/sphere.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/paraview/fig/sphere.png -------------------------------------------------------------------------------- /paraview/fig/tgv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/paraview/fig/tgv.png -------------------------------------------------------------------------------- /paraview/fig/windows_download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/paraview/fig/windows_download.png -------------------------------------------------------------------------------- /presentation/happy_presentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/presentation/happy_presentation.pdf -------------------------------------------------------------------------------- /presentation/happy_presentation.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/presentation/happy_presentation.pptx -------------------------------------------------------------------------------- /python/README.md: -------------------------------------------------------------------------------- 1 | # Pytyhonのインストール 2 | 3 | PCにPythonをインストールし、VSCodeから実行できるようにする。自分でインストールして使っているPythonがあったり、他に好きなエディタがあれば、以下の記述に関係なくそれを使ってかまわない。 4 | 5 | なお、Windows/Macともにログイン名を英語にしておくことを推奨する。もし最初に日本語名でアカウントを作成してしまった場合、新たに英語名のログイン名のアカウントを作成し、そのアカウントに管理者権限を付与して、以降はそのアカウントをメインに使うのが良い。現在は日本語アカウント名のままでもなんとかなるかもしれないが、少なくとも昔はいろいろ不具合が起きたのでおすすめしない。 6 | 7 | ## Windows編 8 | 9 | ### Pythonのインストール 10 | 11 | aptを使ってPython3をインストールする。 12 | 13 | ```sh 14 | sudo apt-get update 15 | sudo apt intall python3 16 | sudo apt install python3-pip 17 | ``` 18 | 19 | また、後で必要なパッケージも入れておこう。 20 | 21 | ```sh 22 | python3 -m pip install --upgrade pip 23 | python3 -m pip install numpy matplotlib 24 | ``` 25 | 26 | ### Jupyter Notebookのインストール 27 | 28 | Pythonの開発ではJupyter Notebookを使うと便利だ。以下でインストールしよう。 29 | 30 | ```sh 31 | python3 -m pip install jupyter 32 | ``` 33 | 34 | 標準で`.local/bin`にインストールされるため、パスを通す必要がある。以下を実行すること。 35 | 36 | ```sh 37 | export PATH=$PATH:$HOME/.local/bin 38 | ``` 39 | 40 | なお、ターミナルを開くたびに上記設定が必要であるため、上記を`.bashrc`の最後に追加しておくと良い。 41 | 42 | Jupyter Notebookはブラウザ上でPythonを実行する環境であり、普通に実行すると自動でブラウザが開かれるが、WSL上で使うには少々工夫がいる。まず、Jupyter Notebookを、ブラウザなしモードで起動する。 43 | 44 | ```sh 45 | jupyter notebook --no-browser 46 | ``` 47 | 48 | すると、以下のような表示がされるはずだ。 49 | 50 | ```txt 51 | To access the notebook, open this file in a browser: 52 | file:///home/watanabe/.local/share/jupyter/runtime/nbserver-985-open.html 53 | Or copy and paste one of these URLs: 54 | http://localhost:8888/?token=e4a7e2efbf7cf61ceb4d11652e8f538f67bc11b9aacdde54 55 | or http://127.0.0.1:8888/?token=e4a7e2efbf7cf61ceb4d11652e8f538f67bc11b9aacdde54 56 | ``` 57 | 58 | このうち、`http://localhost:8888`ではじまる行(`token=...`を含む)をブラウザのURLにコピペするとJupyter Notebookが開かれるので、右上の「New」ボタンから「Python 3」を選ぶ。 59 | 60 | ![newbook2.png](fig/newbook2.png) 61 | 62 | 新しいタブが開き、入力待ちになるので、そこで何かプログラムを入力する。例えば 63 | 64 | ```py 65 | print("Hello Python") 66 | ``` 67 | 68 | と入力し「Shift+Return」もしくは上の「Run」ボタンをクリックする。 69 | 70 | ![run2.png](fig/run2.png) 71 | 72 | セルの真下に「Hello Python」と表示されて、次のセルが入力待ちになれば成功である。これでPythonを実行する環境は整った。 73 | 74 | 最初に起動した画面の「Quit」を選ぶとJupyter Notebookは終了する。 75 | 76 | ## Mac編 77 | 78 | ### Python3のインストール 79 | 80 | まずはPython3をインストールしよう。 81 | 82 | ```sh 83 | brew install python3 84 | ``` 85 | 86 | Python3がインストールされたら、必要なパッケージをいれておこう。 87 | 88 | ```sh 89 | python3 -m pip install numpy matplotlib 90 | ``` 91 | 92 | ### Jupyter Notebookのテスト 93 | 94 | 次に、Jupyter Notebookをインストールしよう。 95 | 96 | ```sh 97 | python3 -m pip install --upgrade pip 98 | python3 -m pip install jupyter 99 | ``` 100 | 101 | ターミナルから以下を実行せよ。 102 | 103 | ```sh 104 | jupyter notebook 105 | ``` 106 | 107 | デフォルトのブラウザで、Jupyter Notebookが開かれるので、右上の「New」ボタンから「Python 3」を選ぶ。 108 | 109 | ![newbook2.png](fig/newbook2.png) 110 | 111 | 新しいタブが開き、入力待ちになるので、そこで何かプログラムを入力する。例えば 112 | 113 | ```py 114 | print("Hello Python") 115 | ``` 116 | 117 | と入力し「Shift+Return」もしくは上の「Run」ボタンをクリックする。 118 | 119 | ![run2.png](fig/run2.png) 120 | 121 | セルの真下に「Hello Python」と表示されて、次のセルが入力待ちになれば成功である。これでPythonを実行する環境は整った。 122 | 123 | 最初に起動した画面の「Quit」を選ぶとJupyter Notebookは終了する。 124 | -------------------------------------------------------------------------------- /python/fig/anaconda_download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/python/fig/anaconda_download.png -------------------------------------------------------------------------------- /python/fig/anaconda_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/python/fig/anaconda_icon.png -------------------------------------------------------------------------------- /python/fig/fig.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/python/fig/fig.pptx -------------------------------------------------------------------------------- /python/fig/install_path.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/python/fig/install_path.png -------------------------------------------------------------------------------- /python/fig/jupyter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/python/fig/jupyter.png -------------------------------------------------------------------------------- /python/fig/navigator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/python/fig/navigator.png -------------------------------------------------------------------------------- /python/fig/newbook2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/python/fig/newbook2.png -------------------------------------------------------------------------------- /python/fig/run2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/python/fig/run2.png -------------------------------------------------------------------------------- /python/fig/windows_download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/python/fig/windows_download.png -------------------------------------------------------------------------------- /simd/README.md: -------------------------------------------------------------------------------- 1 | # C++のコンパイルとSIMDの確認 2 | 3 | ## SIMDについて 4 | 5 | SIMDとはSingle Instruction, Multiple Dataの略で、CPUの1サイクルで複数の命令を同時に実行する工夫である。なぜSIMDが必要であるか、SIMD化とは何かについては、以下のスライドを参照されたい。 6 | 7 | [SIMD化とは何か](https://speakerdeck.com/kaityo256/basics-of-simd) 8 | 9 | 以下では、実際にx86系の石でSIMDレジスタがどのように使われているかを確認してみる。その過程で、C++言語のコンパイルと実行、そしてアセンブリの確認をしよう。 10 | 11 | ## プログラム作成とコンパイル 12 | 13 | まずはsshで研究室サーバにログインせよ。Powershellでは問題が起きることが多いので、Windowsを使っている人はGit Bash等を利用すること。Macを使っている人はターミナルから接続せよ。ログインに成功したら、`simd`というフォルダを作成し、そこへ移動しよう。 14 | 15 | ```sh 16 | mkdir simd 17 | cd simd 18 | ``` 19 | 20 | 次に、viで`test.cpp`というファイルを新規作成する。 21 | 22 | ```sh 23 | vi test.cpp 24 | ``` 25 | 26 | すると、画面の下に 27 | 28 | ```txt 29 | "test.cpp" [新ファイル] 30 | ``` 31 | 32 | という表示がされ、全画面になったはずだ。 33 | 34 | さて、viの最大の特徴は「モード」を持つことだ。viには「ノーマルモード」と「編集モード」の二つのモードがあり、それを入れ替えながらファイルを編集する(他にもモードがあるが、深くは立ち入らない)。起動時には「ノーマルモード」になっており、そのままでは文字入力ができない。ここで「i」を押して編集モードに切り替えよう。 35 | 36 | 画面の下が`-- 挿入 -- `という表示になったはずだ。この状態では、通常のエディタのように文字列を入力することができる。以下のプログラムを入力してみよう。 37 | 38 | ```c++ 39 | #include 40 | 41 | int main(){ 42 | printf("Hello World\n"); 43 | } 44 | ``` 45 | 46 | `print`ではなく`printf`と、最後のfが付くことに注意。これは`print format string`の略だ。 47 | 48 | 入力が終わったら、「ESC」キーを押すことで「ノーマルモード」に戻る。この状態でカーソルを動かしてみよう。ノーマルモードでは「hjkl」キーで移動する。「上下左右」が「kjlh」に対応する。カーソルキーでも移動させることは可能なのだが、ホームポジションから手を動かさなくて済むので慣れるとこちらの方が楽である。 49 | 50 | さて、ノーマルモードで「:(コロン)」を入力すると、カーソルが画面一番下に移り、入力待ちになる(コマンドラインモード)。そこで「wq」と入力して、エンターキーを打つ。 51 | 52 | 「w」は「これまでの修正内容を保存せよ」という意味で、一般的なエディタのCtrl+Sにあたる。「q」は「エディタを終了せよ」という意味で、Windowsの一般的なエディタなら「Alt+F4」に対応する。 53 | 54 | さて、これで`test.cpp`というファイルが作成されたはずだ。まずは`ls`で確認してみよう。 55 | 56 | ```sh 57 | $ ls 58 | test.cpp 59 | ``` 60 | 61 | 次に、ファイルの中身を`cat`で確認しよう。これは`concatenate`(連結する)の略だ。 62 | 63 | ```sh 64 | $ cat test.cpp 65 | #include 66 | 67 | int main(){ 68 | printf("Hello World\n"); 69 | } 70 | ``` 71 | 72 | このようにファイルの中身が表示されるはずだ。 73 | 74 | ファイルが作成できたらコンパイルしよう。コンパイラは`g++`を使う。 75 | 76 | ```sh 77 | g++ test.cpp 78 | ``` 79 | 80 | 入力ミスをしていなければ、`a.out`というファイルが作成されたはずだ。 81 | 82 | ```sh 83 | $ ls 84 | a.out test.cpp 85 | ``` 86 | 87 | では、このプログラムを実行しよう。 88 | 89 | ```sh 90 | $ a.out 91 | bash: a.out: コマンドが見つかりませんでした... 92 | ``` 93 | 94 | エラーが出てしまった。コマンドには「パス」が通っていないとそのままでは実行することができない。パスの通っていないプログラムは、相対パス、もしくは絶対パスで実行する必要がある。ここでは相対パスを指定してみよう。 95 | 96 | ```sh 97 | $ ./a.out 98 | Hello World 99 | 100 | ``` 101 | 102 | 無事に「Hello World」が表示されたことと思う。絶対パスも指定してみよう。 103 | 104 | ```sh 105 | $ $HOME/simd/a.out 106 | Hello World 107 | 108 | ``` 109 | 110 | こちらも実行できたと思う。相対パス、絶対パスが指定されていない場合、あらかじめ指定された「パス」を調べにいく。この「パス」を見てみよう。 111 | 112 | ```sh 113 | $ echo $PATH 114 | ``` 115 | 116 | 多数の文字列が表示されたことと思う。コマンドをパス無しで実行した場合、この「パス」のリストを順番に調べることになる。先ほど`g++`と、パス無しでプログラムが実行できたのは、パスのリストの中でこのファイルを見つけることができたからだ。見つけられた場所は`which`で調べることができる。 117 | 118 | ```sh 119 | $ which g++ 120 | /usr/bin/g++ 121 | ``` 122 | 123 | `g++`は`/usr/bin`の下にあることがわかった。同じファイルが複数のパスに存在する場合、最初に見つかったものが実行されるので覚えておこう。 124 | 125 | ついでに、インテルコンパイラでのコンパイルも試しておこう。 126 | 127 | ```sh 128 | $ rm a.out 129 | $ icpc test.cpp 130 | $ ./a.out 131 | Hello World 132 | ``` 133 | 134 | やはり同じ結果が表示されるはずだ。 135 | 136 | viのノーマルモードでの操作に慣れるため、もう少しだけVimを使ってみよう。またviでファイルを開いてみる。 137 | 138 | ```sh 139 | vi test.cpp 140 | ``` 141 | 142 | ノーマルモードのまま、カーソルを`printf`の行に移動させて、「yyp」と入力せよ。最後にエンターを入力するは必要ない。以下のように、カーソルのある行が複製されたのがわかるだろう。 143 | 144 | ```cpp 145 | #include 146 | 147 | int main(){ 148 | printf("Hello World\n"); 149 | printf("Hello World\n"); } 150 | } 151 | ``` 152 | 153 | 次に、そのままの状態で「dd」と入力せよ。これは「カーソルのある行を削除」する。これにより元に戻ったはずだ。 154 | 155 | 検索も体験してみよう。「/(スラッシュ)」を入力せよ。カーソルが一番下に移り、入力待ちになったはずだ。ここで「include」と入力してエンターキーを押してみよ。「include」がハイライトされたはずだ。ハイライトを消すには「:」を押してコマンドモードに入り、「noh」と入力すること。 156 | 157 | また、viの終了は「:wq」でも可能だが、ただ「保存して終了」したい場合は「ZZ(大文字のZを二回)」でも可能だ。シフトキーを押しながらzを二回押せばよい。 158 | 159 | ## アセンブリの表示 160 | 161 | 先ほど、`g++ test.cpp`により、コンパイラにソースファイルを食わせてコンパイルし、実行可能ファイルを作成した。我々から見るとソースファイルが実行可能ファイルに変換されたように見えるが、実は裏でコンパイラは様々なことをしている。コンパイラは、プログラムをまずアセンブリと呼ばれる言語に変換し、その後必要なルーチンをリンカが「リンク」することで実行可能ファイルが作成される(他にもいろいろなことをしているのだが、ここでは触れない)。以下では、アセンブリを見てみることにしよう。 162 | 163 | アセンブリとは、「機械語」に、ほぼ一対一対応するプログラム言語だ。機械語は数字の羅列であり、人間には読みづらいので、それを読みやすくしたのが「アセンブリ」だと思っておけばとりあえず問題ない。 164 | 165 | コンパイラに`-S`オプションをつけてコンパイルしてみよう。大文字のSであることに注意。 166 | 167 | ```sh 168 | g++ -S test.cpp 169 | ``` 170 | 171 | すると、同じディレクトリに`test.s`というファイルが作成されるので、viで中身を見てみよう。中身はこんなファイルだ。 172 | 173 | ```txt 174 | .file "test.cpp" 175 | .section .rodata 176 | .LC0: 177 | .string "Hello World" 178 | .text 179 | .globl main 180 | .type main, @function 181 | main: 182 | .LFB0: 183 | .cfi_startproc 184 | pushq %rbp 185 | .cfi_def_cfa_offset 16 186 | .cfi_offset 6, -16 187 | movq %rsp, %rbp 188 | .cfi_def_cfa_register 6 189 | movl $.LC0, %edi 190 | call puts 191 | movl $0, %eax 192 | popq %rbp 193 | .cfi_def_cfa 7, 8 194 | ret 195 | .cfi_endproc 196 | .LFE0: 197 | .size main, .-main 198 | .ident "GCC: (GNU) 4.8.5 20150623 (Red Hat 4.8.5-36)" 199 | .section .note.GNU-stack,"",@progbits 200 | ``` 201 | 202 | デフォルトではデバッグ情報等が入っていて読みづらいが、それらを除いた本質はこれだけだ。 203 | 204 | ```txt 205 | main: 206 | pushq %rbp 207 | movq %rsp, %rbp 208 | movl $.LC0, %edi 209 | call puts 210 | movl $0, %eax 211 | popq %rbp 212 | ret 213 | ``` 214 | 215 | これが`main`関数に対応するアセンブリだ。`pushq`や`popq`は関数呼び出しのために必要な操作であり、それらも除くと、以下だけである。 216 | 217 | ```txt 218 | movl $.LC0, %edi 219 | call puts 220 | ``` 221 | 222 | 最初は、「ラベル`$.LC0`のアドレスを`edi`というレジスタにコピーせよ」という意味で、次で`puts`という関数を呼び出している。`puts`は`edi`が指すアドレスの文字列を表示する関数である。このラベルを見てみよう。 223 | 224 | ```txt 225 | .LC0: 226 | .string "Hello World" 227 | .text 228 | .globl main 229 | .type main, @function 230 | ``` 231 | 232 | 文字列として「Hello World」が記載されている。ここを修正してみよう。「World」の先頭にカーソルを合わせて、「dw」と入力せよ。これは一単語削除する命令だ。「World」が消えるので「i」を押して挿入モードにしたら、「Assembly」と書いてエスケープキーを押し、「ZZ」で終了しよう。 233 | 234 | ```txt 235 | .LC0: 236 | .string "Hello Assembly" 237 | .text 238 | .globl main 239 | .type main, @function 240 | ``` 241 | 242 | この状態でアセンブリを実行可能ファイルにしてみよう。`g++`に`test.s`を食わせて見る(`test.cpp`ではないことに注意)。実行可能ファイルができるので、実行して、メッセージが変わっていることを確認しよう。 243 | 244 | ```sh 245 | $ g++ test.s 246 | $ ./a.out 247 | Hello Assembly 248 | ``` 249 | 250 | アセンブリの修正が簡単だ、ということがわかったっだろうか。 251 | 252 | ## 部分コンパイル 253 | 254 | C/C++言語は、部分コンパイルができる。部分コンパイルとは、大きなプログラムを複数の「部分」に分けてコンパイルすることで、大きなプログラムを一気にコンパイルするのに比べて、更新部分のみコンパイルできるためにコンパイル時間が短くなる。 255 | 256 | 以下では、小さなプログラムを組んで、そのアセンブリを見てみることにしよう。viで`test2.cpp`を作成せよ。 257 | 258 | ```sh 259 | vi test2.cpp 260 | ``` 261 | 262 | 入力内容は以下の通り。 263 | 264 | ```cpp 265 | double func(double a, double b){ 266 | return a+b; 267 | } 268 | ``` 269 | 270 | 入力できたら、コンパイラに食わせてアセンブリを出力しよう。 271 | 272 | ```sh 273 | g++ -S -O2 test2.cpp 274 | ``` 275 | 276 | デフォルトの出力はごちゃごちゃして見づらいので、`-O2`オプションで最適化をかけている。オプションは大文字のO(オー)であることに注意。アセンブリを見てみよう。 277 | 278 | ```asm 279 | _Z4funcdd: 280 | addsd %xmm1, %xmm0 281 | ret 282 | ``` 283 | 284 | 不要部分を除くと、関数`func`の中身はこれだけだ。内容は「xmm1レジスタとxmm0レジスタを足して、結果をxmm0レジスタに格納せよ」だけである。 285 | 286 | 関数`func`の引数は`a`と`b`であったが、それは「それぞれ`xmm0`レジスタと`xmm1`レジスタに入れて呼び出される」という決まりになっている。また、returnによる返り値は、「倍精度実数を返す場合は`xmm0`に値を入れる」と決まっている。このような決まりを`Application Binary Interface (ABI)`と呼ぶ。 287 | 288 | 倍精度実数は64ビットなのだが、xmmレジスタは128ビットのSIMDレジスタになっている。通常、多くのCPUでは64ビット浮動小数点用のレジスタを備えているのだが、x86系のCPUでは、歴史的な事情から128ビットのレジスタを64ビットの演算にも用いることになっている(80ビットを用いるx87命令というものもあるが、ここでは触れない)。 289 | 290 | xmmレジスタは128ビットだが、さらに幅を広げたレジスタがymmレジスタであり、256ビットある。これを見てみよう。 291 | 292 | 以下の内容を`test3.cpp`として作成せよ。 293 | 294 | ```cpp 295 | #include 296 | 297 | __m256d func(__m256d a, __m256d b){ 298 | return a+b; 299 | } 300 | ``` 301 | 302 | これを、通常のオプションでコンパイルすると「__m256dなんて知らないよ」とエラーになる。 303 | 304 | ```sh 305 | $ g++ -O2 -S test3.cpp 306 | test3.cpp:3:1: エラー: ‘__m256d’ does not name a type 307 | __m256d func(__m256d a, __m256d b){ 308 | ^ 309 | ``` 310 | 311 | そこで、コンパイラに「我々は AVX2命令セットを使うよ」と教えてあげよう。そのためには`-mavx2`を指定する。 312 | 313 | ```sh 314 | $ g++ -O2 -S -mavx2 test3.cpp 315 | ``` 316 | 317 | アセンブリを見てみるとこうなっている。 318 | 319 | ```asm 320 | _Z4funcU8__vectordS_: 321 | vaddpd %ymm1, %ymm0, %ymm0 322 | ret 323 | ``` 324 | 325 | ymmレジスタが使われていることがわかる。ここでは256ビットの演算、すなわち4つの浮動小数点演算が行われている。 326 | 327 | 先ほど、「普通の浮動小数点演算」でも128ビットのxmmレジスタが使われていた。では128ビットSIMD演算をしてみたらどうなるだろうか? 328 | 329 | 以下の内容で`test4.cpp`を作成せよ。 330 | 331 | ```cpp 332 | #include 333 | __m128d func(__m128d a, __m128d b){ 334 | return a+b; 335 | } 336 | ``` 337 | 338 | コンパイルしてアセンブリを見てみよう。 339 | 340 | ```sh 341 | g++ -O2 -S test4.cpp 342 | ``` 343 | 344 | 関数`func`の中身はこうなっている。 345 | 346 | ```asm 347 | _Z4funcU8__vectordS_: 348 | addpd %xmm1, %xmm0 349 | ret 350 | ``` 351 | 352 | やはりxmmレジスタの足し算が行われているが、先ほどは`addsd`という命令だったが、こんどは`addpd`という命令に変わっている。`addsd`はxmmレジスタの「下位64ビットを足しなさい」という命令で、`addpd`は「下位と上位64ビットをそれぞれ足しなさい」というSIMD命令になっている。 353 | -------------------------------------------------------------------------------- /simd/fig/what_is_simd.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/simd/fig/what_is_simd.pdf -------------------------------------------------------------------------------- /simd/fig/what_is_simd.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/simd/fig/what_is_simd.pptx -------------------------------------------------------------------------------- /simd_tutorial/fig/fig.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/simd_tutorial/fig/fig.pptx -------------------------------------------------------------------------------- /simd_tutorial/fig/force.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/simd_tutorial/fig/force.png -------------------------------------------------------------------------------- /simd_tutorial/fig/permute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/simd_tutorial/fig/permute.png -------------------------------------------------------------------------------- /simd_tutorial/fig/permute2f128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/simd_tutorial/fig/permute2f128.png -------------------------------------------------------------------------------- /simd_tutorial/fig/transpose.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/simd_tutorial/fig/transpose.png -------------------------------------------------------------------------------- /simd_tutorial/fig/unpacklohi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/simd_tutorial/fig/unpacklohi.png -------------------------------------------------------------------------------- /slack/slack.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/slack/slack.pdf -------------------------------------------------------------------------------- /slack/slack.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/slack/slack.pptx -------------------------------------------------------------------------------- /ssh/fig/fig.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/ssh/fig/fig.pptx -------------------------------------------------------------------------------- /ssh/fig/fumidai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/ssh/fig/fumidai.png -------------------------------------------------------------------------------- /ssh/fig/plan_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/ssh/fig/plan_1.png -------------------------------------------------------------------------------- /ssh/fig/plan_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/ssh/fig/plan_2.png -------------------------------------------------------------------------------- /ssh/fig/publickey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/ssh/fig/publickey.png -------------------------------------------------------------------------------- /ssh/fig/ssh-agent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/ssh/fig/ssh-agent.png -------------------------------------------------------------------------------- /ssh/ssh.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/ssh/ssh.pdf -------------------------------------------------------------------------------- /ssh/ssh.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/ssh/ssh.pptx -------------------------------------------------------------------------------- /template.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | $for(author-meta)$ 8 | 9 | $endfor$ 10 | $if(date-meta)$ 11 | 12 | $endif$ 13 | $if(keywords)$ 14 | 15 | $endif$ 16 | $if(title-prefix)$$title-prefix$ – $endif$$pagetitle$ 17 | 18 | $if(quotes)$ 19 | 20 | $endif$ 21 | 58 | 59 | 78 | 79 | 80 | $if(math)$ 81 | $math$ 82 | $endif$ 83 | 86 | $for(header-includes)$ 87 | $header-includes$ 88 | $endfor$ 89 | 90 | 91 |
92 | $for(include-before)$ 93 | $include-before$ 94 | $endfor$ 95 | $if(title)$ 96 |
97 |

$title$

98 | $if(subtitle)$ 99 |

$subtitle$

100 | $endif$ 101 | $for(author)$ 102 |

$author$

103 | $endfor$ 104 | $if(date)$ 105 |

$date$

106 | $endif$ 107 |
108 | $endif$ 109 | $if(toc)$ 110 | 113 | $endif$ 114 | $body$ 115 | $for(include-after)$ 116 | $include-after$ 117 | $endfor$ 118 |
119 | 120 | 121 | -------------------------------------------------------------------------------- /tensorflow/README.md: -------------------------------------------------------------------------------- 1 | # TensorFlowでFashion-MNISTを学習させてウェブで読み込む 2 | 3 | Fashion-MNISTというデータセットがある。MNISTは手書き数字だが、そのファッション版だ。このデータセットをTensorFlowを使ってニューラルネットに学習させ、そのデータをエクスポートし、ウェブで読み込んで、自分の描いた絵をニューラルネットに判定させてみよう。 4 | 5 | ## 環境設定 6 | 7 | 以下ではPython3の仮想環境を使う。WSLでは事前に以下を実行しておく必要がある。 8 | 9 | ```sh 10 | sudo apt-get install python3-venv 11 | ``` 12 | 13 | まず、[kaityo256/fashion_mnist_check](https://github.com/kaityo256/fashion_mnist_check)をhttpsでcloneせよ。 14 | 15 | ```sh 16 | cd github 17 | git clone https://github.com/kaityo256/fashion_mnist_check.git 18 | ``` 19 | 20 | cloneできたら、そこに移動しよう。 21 | 22 | ```sh 23 | cd fashion_mnist_check 24 | ``` 25 | 26 | 仮想環境を構築し、activateし、tensorflowとtensorflowjsをインストールする。 27 | 28 | ```sh 29 | python3 -m venv tf 30 | source tf/bin/activate 31 | python3 -m pip install --upgrade pip 32 | python3 -m pip install tensorflow tensorflowjs 33 | python3 -m pip install protobuf==3.20.* 34 | ``` 35 | 36 | 仮想環境は`deactivate`で出ることができる。次回からは同じディレクトリで 37 | 38 | ```sh 39 | source tf/bin/activate 40 | ``` 41 | 42 | を実行すれば、既にtensorflowとtensorflowjsがインストールされた環境に入ることができる。 43 | 44 | ## 学習とエクスポート 45 | 46 | まず、データを学習させよう。機械学習の定番データといえば、手書き数字認識のMNIST(Modified National Institute of Standards and Technology)データセットだが、今回使うデータは「Fashion-MNIST」と呼ばれるもので、10種類の衣類を区別するものだ。 47 | 48 | ![Fashion-MNIST](fig/fashion-mnist.png) 49 | 50 | これは28ピクセル x 28ピクセルの白黒画像である。各ピクセルは0から255までの輝度を持っているが、これを0から1までの実数に変換し、784次元の一次元ベクトルにしてニューラルネットに食わせて学習させる。 51 | 52 | このデータはウェブに公開されているため、ダウンロードから学習まで一発でできる。まずはニューラルネットを学習させ、その結果を保存しよう。以下を実行せよ。 53 | 54 | ```sh 55 | python3 train.py 56 | ``` 57 | 58 | 正しくTensorFlowがインストールされていれば学習が進み、最終的に以下のような出力がされるはずである(出力される数字の詳細は異なる)。 59 | 60 | ```txt 61 | Test accuracy: 0.8709999918937683 62 | 63 | Predictions for zero input 64 | [0.08157011 0.00318779 0.02768737 0.05093732 0.00741246 0.71254516 65 | 0.07637644 0.02599602 0.01260033 0.00168701] 66 | 67 | Model was saved. 68 | ``` 69 | 70 | 最後の「Predictions for zero input」とは、全てがゼロ、すなわち「真っ黒な画像」が入力された時のニューラルネットの出力である。後でデバッグに用いる。 71 | 72 | この結果、実行したディレクトリに以下のファイルが保存されている。 73 | 74 | * `model.data-00000-of-00001` 75 | * `model.index` 76 | 77 | 次に、このデータを読み込んで、TensorFlow.js用のデータをエクスポートする。以下を実行せよ。 78 | 79 | ```sh 80 | python3 export.py 81 | ``` 82 | 83 | TensorFlow.jsが正しくインストールされていれば、以下のような出力になるはずだ。 84 | 85 | ```sh 86 | Predictions for zero input 87 | [0.08157011 0.00318779 0.02768737 0.05093732 0.00741246 0.71254516 88 | 0.07637644 0.02599602 0.01260033 0.00168701] 89 | 90 | Model was exported. 91 | ``` 92 | 93 | この結果、実行したディレクトリに`model`というディレクトリができており、その中に以下のようなファイルが作成されているはずである。 94 | 95 | ```txt 96 | model 97 | ├── group1-shard1of1.bin 98 | └── model.json 99 | ``` 100 | 101 | これをJavaScriptから読み込んで、自分で絵を書いて判定させてみよう。 102 | 103 | ただし、JavaScriptはセキュリティのため、デフォルトではローカルに保存されたファイルにアクセスできない。そこで、ローカルのhttpサーバを起動することでそれを回避する。 104 | 105 | まず、このリポジトリをカレントフォルダとしてVSCodeを起動せよ。 106 | 107 | ```sh 108 | code . 109 | ``` 110 | 111 | VSCodeの拡張機能から「Live Server」を検索し、インストールせよ。 112 | 113 | ![liveserver](fig/liveserver.png) 114 | 115 | そして、ファイルエクスプローラーからリポジトリにある`index.html`を選択し、右下のバーにある「Go Live」ボタンを押す。 116 | 117 | 以下のような画面が出てきたら成功だ。 118 | 119 | ![Fashion-MNIST Check](fig/fashion_mnist_check.png) 120 | 121 | 左に何か絵を描くと、それを28 x 28ピクセルに変換したデータが右に表示され、さらにそのデータを784次元のベクトルとして訓練済みニューラルネットに食わせた結果、その絵が何であるかを判定してくれる。 122 | 123 | ![result](fig/result.png) 124 | 125 | 上記の例では、サンダルと判定された。 126 | 127 | ## TensorFlowのインストールに失敗する場合 128 | 129 | 手順で 130 | 131 | ```sh 132 | python3 -m pip install tensorflow tensorflowjs 133 | ``` 134 | 135 | を実行したときに、 136 | 137 | ```txt 138 | no matching distribution found for tensorflow 139 | ``` 140 | 141 | と出て実行できないことがある。これはPythonのバージョンが新し過ぎて、対応するパッケージを見つけられない時に起きる。この時、Pythonのバージョンを落とすと実行できる可能性がある。 142 | 143 | まず、現在仮想環境に入っている場合は外に出よう。 144 | 145 | ```sh 146 | deactivate 147 | ``` 148 | 149 | 現在のPythonのバージョンを確認しよう。 150 | 151 | ```sh 152 | $ python3 -V 153 | Python 3.9.12 154 | ``` 155 | 156 | 今は3.9.12が入っている。 157 | 158 | 複数のPythonのバージョンを管理するため、pyenvをインストールする。 159 | 160 | ```sh 161 | brew install pyenv 162 | ``` 163 | 164 | インストールが済んだら、以下の行をホームディレクトリの`.bashrc`の最後に追記する。 165 | 166 | ```sh 167 | export PYENV_ROOT="$HOME/.pyenv" 168 | export PATH="$PYENV_ROOT/bin:$PATH" 169 | eval "$(pyenv init -)" 170 | ``` 171 | 172 | その後、`.bashrc`を再読み込みする。 173 | 174 | ```sh 175 | source .bashrc 176 | ``` 177 | 178 | 次に、pyenv経由でPython 3.8.10をインストールする。 179 | 180 | ```sh 181 | pyenv install 3.8.10 182 | ``` 183 | 184 | インストールできたことを確認しよう。 185 | 186 | ```sh 187 | $ pyenv versions 188 | * system (set by /Users/username/.pyenv/version) 189 | 3.8.10 190 | ``` 191 | 192 | 3.8.10が追加されていればインストールされている。 193 | 194 | さて、先程cloneしたディレクトリに入ろう。 195 | 196 | ```sh 197 | cd github/fashion_mnist_check 198 | ``` 199 | 200 | 先程作成した仮想環境をクリアする。 201 | 202 | ```sh 203 | python3 -m venv --clear tf 204 | ``` 205 | 206 | このディレクトリ(`github/fashion_mnist_check`)でのみ、Pythonのバージョンを落としたいので、pyenvにlocal指定でバージョンを指定する。 207 | 208 | ```sh 209 | pyenv local 3.8.10 210 | ``` 211 | 212 | すると、このディレクトリでのみ、Pythonのバージョンが3.8.10に変わる。 213 | 214 | ```sh 215 | $ python3 -V 216 | Python 3.8.10 217 | ``` 218 | 219 | これは、ローカルに`.python-version`というファイルが作成され、pyenvがそれを見ているからだ。 220 | 221 | ```sh 222 | $ cat .python-version 223 | 3.8.10 224 | ``` 225 | 226 | さて、Pythonのバージョンが3.8.10の状態で仮想環境をactivateする。 227 | 228 | ```sh 229 | source tf/bin/activate 230 | ``` 231 | 232 | 後は同様に以下を実行する。 233 | 234 | ```sh 235 | python3 -m pip install --upgrade pip 236 | python3 -m pip install tensorflow tensorflowjs 237 | ``` 238 | 239 | `Requirement already satisfied: pip in ./tf/lib/python3.8/site-packages (21.1.1)`などと実行され、Python 3.8用のパッケージがインストールされることがわかる。 240 | 241 | 後はローカルで 242 | 243 | ```sh 244 | python3 train.py 245 | python3 export.py 246 | ``` 247 | 248 | が実行できるはずだ。 249 | -------------------------------------------------------------------------------- /tensorflow/fig/clone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/tensorflow/fig/clone.png -------------------------------------------------------------------------------- /tensorflow/fig/fashion-mnist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/tensorflow/fig/fashion-mnist.png -------------------------------------------------------------------------------- /tensorflow/fig/fashion_mnist_check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/tensorflow/fig/fashion_mnist_check.png -------------------------------------------------------------------------------- /tensorflow/fig/fig.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/tensorflow/fig/fig.pptx -------------------------------------------------------------------------------- /tensorflow/fig/fork.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/tensorflow/fig/fork.png -------------------------------------------------------------------------------- /tensorflow/fig/github_pages.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/tensorflow/fig/github_pages.png -------------------------------------------------------------------------------- /tensorflow/fig/golive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/tensorflow/fig/golive.png -------------------------------------------------------------------------------- /tensorflow/fig/liveserver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/tensorflow/fig/liveserver.png -------------------------------------------------------------------------------- /tensorflow/fig/result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/tensorflow/fig/result.png -------------------------------------------------------------------------------- /tensorflow/fig/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/tensorflow/fig/settings.png -------------------------------------------------------------------------------- /tensorflow/fig/tensorflow.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/tensorflow/fig/tensorflow.pptx -------------------------------------------------------------------------------- /vim/README.md: -------------------------------------------------------------------------------- 1 | # Vimの使い方 2 | 3 | ## Vimとは 4 | 5 | VimはVi IMprovedの略で、viというエディタを拡張したものだ。多くの環境で、単に`vi`とすると`vim`が起動する。以下、Vimのこともviと呼ぶことにする。viはUNIX-likeな環境において、Emacsと人気を二分するエディタである([エディタ戦争](https://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF%E6%88%A6%E4%BA%89)を参照)。本研究室ではリモートサーバにsshでログインして作業することが多くなる。この時、VSCodeなどをリモート接続してファイルを編集することも可能なのだが、せっかく数値計算の研究室に配属されたことだし、教養としてviとEmacsくらいは使えるようになっておこう。以下、私の趣味でviを使うが、簡単な操作くらいはどちらも使えるようになっておくのが望ましい。 6 | 7 | Vimの使い方を解説したサイトは多数あるが、例えば 8 | 9 | [はじめてのVim 〜 Vimはいいぞ!ゴリラと学ぶVim講座](https://knowledge.sakura.ad.jp/21687/) 10 | 11 | 等で学ぶと良いだろう。 12 | 13 | ## モードについて 14 | 15 | Vimの最大の特徴はモードがあることだ。起動直後はノーマルモードとなっており、そのままでは入力ができない。`i`などを押すと入力モードとなり、文字が入力できるようになる。`ESC`を押すとノーマルモードに戻る。 16 | 17 | また、`:`を押すことでコマンドラインモードになる。ここでは置換など様々なことができる。`v`などを押すことでビジュアルモードになり、テキストの一部分を選択したり、選択した範囲について操作ができる。以下にモード間の遷移図を示すが、とりあえず「エスケープキーを押せばノーマルモードに戻る」と覚えておけばよい。 18 | 19 | ![modes](fig/mode.png) 20 | 21 | ## 終了の仕方 22 | 23 | Vimで最初に躓きがちなのは「起動したは良いが終了の仕方がわからない」というものだ。何はともあれ終了方法を確認しよう。 24 | 25 | まず、適当なディレクトリで、新しいファイル`test.txt`をvimで開いてみよう。 26 | 27 | ```sh 28 | vim test.txt 29 | ``` 30 | 31 | Vimは起動時に「ノーマルモード」になっており、そのままでは文字入力ができない。まずはこのまま終了してみよう。シフトキーを押しながら`z`を二回、すなわち`ZZ`と入力してみよう。Vimが終了してターミナルに戻ったはずだ。「何もしていなければノーマルモードで`ZZ`で終了する」とおぼえておこう。 32 | 33 | もう一度Vimを起動しよう。 34 | 35 | ```sh 36 | vim test.txt 37 | ``` 38 | 39 | ここで「i」を押して編集モードに切り替えよう。 40 | 41 | 画面の下が`-- 挿入 --`という表示になったはずだ。この状態では、通常のエディタのように文字列を入力することができる。この状態で、`Hello Vim!`と入力し、改行してからESCを押そう。ESCを押したらノーマルモードになる。この状態でやはり`ZZ`を入力しよう。編集内容が保存されて終了する。ちゃんと保存されたかcatで確認してみよう。 42 | 43 | ```sh 44 | $ cat test.txt 45 | Hello Vim! 46 | ``` 47 | 48 | ちゃんと表示されたはずだ。 49 | 50 | `ZZ`は、ノーマルモードにおいて「編集内容を保存して終了せよ」というコマンドだが、現在の編集内容を保存しないで終了したい場合もあるだろう。その場合はコマンドモードを使う。 51 | 52 | もう一度Vimを起動しよう。 53 | 54 | ```sh 55 | vim test.txt 56 | ``` 57 | 58 | `i`キーでインサートモードになり、適当な文字を入力してからESCを押してノーマルモードに戻ろう。この状態で`:`を押すとコマンドモードとなる。コマンドモードで`q`を入力してエンターを押すと終了するが、保存されていない編集内容があるとメッセージが出て終了できない。ここで、`q!`と、`!`をつけると、保存してない内容があっても終了する。逆に`wq`とすると、現在の編集内容をファイルに書き込んでから終了する(ノーマルモードでの`ZZ`と同じ)。 59 | 60 | とりあえず 61 | 62 | * 現在の編集内容を保存して終了したい → ノーマルモードで`ZZ` 63 | * 現在の編集内容を破棄して終了したい → コマンドモードで`q!` 64 | 65 | とだけ覚えておけば良い。 66 | 67 | ## カーソル移動の仕方 68 | 69 | この状態で`h`や`l`キーでカーソルが移動することを確認してみよう。Vimには、以下のように多様な移動手段がある。これらについては後で試してみる。 70 | 71 | ### カーソル移動:h,j,k,l 72 | 73 | まずはhjklでカーソル移動ができる。それぞれ以下の通りだ。 74 | 75 | * `h` 一文字左 76 | * `l` 一文字右 77 | * `k` 一行上 78 | * `j` 一行下 79 | 80 | ### 画面移動:Ctrl+u,d,f,b,e,y 81 | 82 | Ctrlキーとudfbeyの組み合わせて、画面移動ができる。 83 | 84 | * `Ctrl+u` 画面半分上へ 85 | * `Ctrl+d` 画面半分下へ 86 | * `Ctrl+b` 一画面分上へ 87 | * `Ctrl+f` 一画面分下へ 88 | * `Ctrl+e` 一行上に移動(カーソルそのまま) 89 | * `Ctrl+y` 一行下に移動(カーソルそのまま) 90 | 91 | ### 表示画面中の移動 92 | 93 | 表示している画面はそのままで、カーソルだけ移動するコマンドもある。 94 | 95 | * `H` 画面の一番上 96 | * `M` 画面中央 97 | * `L` 画面の一番下 98 | 99 | ### 行頭、行末移動:^, $ 100 | 101 | Vimには他にも多くの移動方法がある。よく使うのが「`^`」と「`$`」だ。それぞれ 102 | 103 | * `^` 行頭へ移動 104 | * `$` 行末へ移動 105 | 106 | である。 107 | 108 | ### ファイルの先頭、最後へ移動:gg, G 109 | 110 | `gg`でファイルの先頭に、`G`でファイルの最後に移動できる。これも使用頻度が高いので覚えておきたい。 111 | 112 | ### 単語単位の移動:w,e,b 113 | 114 | 「w, e, b」で単語単位の移動ができる。それぞれ 115 | 116 | * w 次の単語の先頭へ移動 117 | * e 単語の最後へ移動 118 | * b 前の単語の先頭へ移動 119 | 120 | となる。これらは「ピリオド、コンマ、エクスクラメーションマーク」といったマークを区別して移動する(マークを単語として扱う)が、大文字の「W, E, B」とするとマークを単語として扱わない。 121 | 122 | ### 行ジャンプ 123 | 124 | `:`を押すとコマンドモードになるが、そこで数字を入力すると行ジャンプができる。例えば「:」→「50」→「エンター」と入力すると、50行目に飛ぶ。エラー行ジャンプなどに便利。 125 | 126 | ## 編集 127 | 128 | ### ヤンク、削除、貼り付け:y,d,p 129 | 130 | Vimでは「yy」でカーソルのある行を一行コピーできる(ヤンクと呼ぶ)。コピーした行は「p」で貼り付けることができる。`Hello Vim!`の行で「yyp」と入力せよ。 131 | 132 | ```txt 133 | Hello Vim! 134 | Hello Vim! 135 | ``` 136 | 137 | と二行になったはずだ。 138 | 139 | Vimは、操作の前に数字を入力すると、その数だけ操作を繰り返す。上記の状態で「5p」と入力せよ。 140 | 141 | ```txt 142 | Hello Vim! 143 | Hello Vim! 144 | Hello Vim! 145 | Hello Vim! 146 | Hello Vim! 147 | Hello Vim! 148 | Hello Vim! 149 | ``` 150 | 151 | 「5 行 追加しました」の表示とともに上記のように行が増えたはずだ。 152 | 153 | 「dd」により行を一行削除できる。適当な行で「dd」と入力せよ。一行消え、「Hello Vim!」が6行になったはずだ。この状態で`gg`で一番上に行って、`5dd`と入力せよ。5行消えて、一行だけになったはずだ。 154 | 155 | ### アンドゥ:u 156 | 157 | `u`で直前の操作のアンドゥが出来る。`dd`で一行消して、`u`を押してみよう。操作が取り消されたはずだ。 158 | 159 | ### 移動コマンド 160 | 161 | また「Hello Vim!」を増やそう。`yy`、`100p`で100行くらい追加した後、以下のカーソル、画面移動コマンドを試そう。 162 | 163 | * `hjkl`によるカーソル移動 164 | * `^`や`$`による行頭、行末への移動 165 | * `w`,`b`,`e`による単語単位の移動 166 | * `Ctrl+b`や`Ctrl+f`による画面移動 167 | * `gg`や`G`によるファイルの先頭、末尾への移動 168 | * `H`,`M`,`L`による画面内移動 169 | * `:`を用いた行ジャンプ。 170 | * `:50`と入力してリターンを押してみよ。50行目に飛ぶはずだ。 171 | 172 | ### ビジュアル選択モード:v 173 | 174 | `v`を押すことでビジュアル選択モードになる。適当なところで`v`を押して、`j`や`k`で選択範囲を指定できることを確認しよう。その後、`ESC`でノーマルモードに戻ってから、以下の操作でファイル全てを選択する。 175 | 176 | * `gg`でファイルの先頭に移動 177 | * `v` でビジュアル選択開始 178 | * `G`でファイルの一番最後に移動 179 | * `$`で行の最後に移動 180 | 181 | その後`d`により全て消して良い。 182 | 183 | ### 対応する括弧へ飛ぶ:`%` 184 | 185 | `%`を押すと、対応する括弧に飛んでくれる。 186 | 187 | ```txt 188 | { 189 | { 190 | 191 | 192 | 193 | } 194 | } 195 | ``` 196 | 197 | と入力し、適当な括弧で`%`を押してみよ。カーソルが対応する括弧に飛ぶ。これはC/C++など、ブロックを括弧で作るプログラムを組む時に便利だ。 198 | 199 | ### 矩形選択:Ctrl+v 200 | 201 | `v`で行単位の選択ができたが、`Ctrl+v`で矩形選択ができる。ただし、Windowsではデフォルトで`Ctrl+v`が「貼り付け」になっているためにこの機能は使えない。もし矩形選択を使いたければ、Windows Terminalの設定から「JSONファイルを開く」を選び、 202 | 203 | ```json 204 | { 205 | "command": "paste", 206 | "keys": "ctrl+v" 207 | }, 208 | ``` 209 | 210 | の行の下に 211 | 212 | ```json 213 | { 214 | "command": "null", 215 | "keys": "ctrl+v" 216 | }, 217 | ``` 218 | 219 | を追加すればよい。これで`Ctrl+V`で貼り付けができなくなるが、マウスの右クリックで貼り付けができるので問題ない。 220 | 221 | 以下の文章を作成せよ。 222 | 223 | ```txt 224 | * Hello Vim! 225 | * Hello Vim! 226 | * Hello Vim! 227 | * Hello Vim! 228 | * Hello Vim! 229 | ``` 230 | 231 | このうち、Helloだけ消したくなったとする。置換でもできるが、最初のHelloの冒頭にカーソルを移動し、`Ctrl+v`で矩形選択開始、その後、最後のHelloの単語末まで移動して`d`。これでHelloが消えた。 232 | 233 | ただし、矩形選択は使用頻度が低いため、`ctrl+v`でペーストを優先したい場合は上記の設定はしなくても良い。 234 | 235 | ### カーソル位置にある数字の増減:Ctrl+a, Ctrl+x 236 | 237 | カーソル位置にある数字を増減できる。 238 | 239 | ```py 240 | print(a[1]) 241 | ``` 242 | 243 | と入力し、1のところにカーソルを合わせてCtrl+aやCtrl+xを押してみよ。数字が増減するはずだ。 244 | 245 | ### 行をまとめる:J, gJ 246 | 247 | `J`で次の行をまとめることができる。 248 | 249 | ```txt 250 | Hello 251 | Vim! 252 | ``` 253 | 254 | と入力し、「Hello」の最後にカーソルを合わせて`J`を入力せよ。「Hello Vim!」になったはずだ。`J`では、改行が空白になる。空白を入れたくなければ`gJ`とする。`v`によるビジュアル選択を組み合わせるとたまに便利。 255 | 256 | ## 検索・置換 257 | 258 | ### 検索 259 | 260 | `/`で検索ができる。`/`を入力するとカーソルが下に移動し、`/`の右で入力待ちになる。そこで何か入力する。 261 | 262 | ![search1.png](fig/search1.png) 263 | 264 | この状態でリターンを押すと、カーソルが単語の先頭に飛び、検索した単語がハイライトされる。 265 | 266 | ![search2.png](fig/search2.png) 267 | 268 | 次に検索を行うまでハイライトされ続ける。ハイライトを消したければ、コマンドラインモードで`nohlsearch`と入力する。Vimはコマンドが判別できる最低限入力すれば実行できるため、`:noh`とだけ入力してもハイライトを消すことができる。 269 | 270 | デフォルトでは、入力が終わってリターンキーを押すまで検索されないが、`:set incsearch`により検索がインクリメンタルサーチになり、入力した文字列に一致する単語を動的に探してくれる。`:set noincsearch`で元に戻せる。 271 | 272 | ### 置換 273 | 274 | コマンドラインモードで`%s/置換前/置換後/g`を実行すると、「置換前」の文字列を「置換後」の文字列に置換できる。 275 | 276 | 例えば、以下のプログラムを見てみよう。 277 | 278 | ```cpp 279 | p[X] = p[X] + q[X] * h; 280 | ``` 281 | 282 | これはx座標の運動量の更新のコードだが、Y座標に修正したい。この場合は`:%s/X/Y/g`を実行することで変更できる。 283 | 284 | 置換実行直前 285 | 286 | ![replace1.png](fig/replace1.png) 287 | 288 | 置換実行直後 289 | 290 | ![replace2.png](fig/replace2.png) 291 | 292 | 1行にわたって、3箇所置換した、という結果が表示されている。 293 | 294 | 最後のgを、gcにすると、置換を毎回確認するようになる。 295 | 296 | ![replace3.png](fig/replace3.png) 297 | 298 | 検索がヒットするたびに、検索するかどうかの確認をする。この状態で入力できる文字`(y/n/a/q/l/^E/^Y)?`の意味は以下の通り。 299 | 300 | * `y` 置換して次の候補へ (yes) 301 | * `n` 置換せずに次の候補へ (no) 302 | * `a` 以下、全て置換 (all) 303 | * `q` 置換を終了 (quit) 304 | * `l` 現在の候補を置換して終了 (last) 305 | 306 | 最後の`^E`と`^Y`は、Ctrl + Eと Ctrl + Yで画面をスクロールできるよ、という意味だ。 307 | 308 | ビジュアル選択した状態で置換することができる。まず、`v`でビジュアルモードに入り、一部を選択しよう。 309 | 310 | ![visual1.png](fig/visual1.png) 311 | 312 | この状態で`:`を押すと、ビジュアル選択した状態でコマンドモードに入る。 313 | 314 | ![visual2.png](fig/visual2.png) 315 | 316 | すると、コマンドモードに`:'<,'>`が入力された状態で入力待ちになる。ここで`:'<,'>s/Hello/Hi!/g`などと入力して実行すれば、選択されたところのみ置換される。 317 | 318 | 置換実行前 319 | 320 | ![visual3.png](fig/visual3.png) 321 | 322 | 置換実行後 323 | 324 | ![visual4.png](fig/visual4.png) 325 | 326 | 3行に渡って3箇所置換されたことがわかる。 327 | 328 | ## ヘルプ 329 | 330 | Vimはヘルプが充実している。`:help`と入力するとヘルプを見ることができる。また、例えば「G」というコマンドの意味を知りたければ`:help g`などとすれば良い。 331 | 332 | ## その他 333 | 334 | Vimは慣れると楽しいのだが、慣れていないと独特なキーバインドに戸惑うだろう。 335 | 336 | まずはVimのチュートリアルをすると、一通りの操作を覚えることができる。コマンドラインで`vimtutor`を実行してみよう。多くの場合、日本語版がインストールされているはずだ。 337 | 338 | ![Vimtutor](fig/vimtutor.png) 339 | 340 | あとはこの文章の指示にしたがって修正していくと自然にキーバインドを覚えることができる。 341 | 342 | また、Vimのキーバインドを覚えるためのゲームがある。 343 | 344 | [Vim Adventures](https://vim-adventures.com/) 345 | 346 | ![Vim Adventures](fig/vimadventures.png) 347 | 348 | こちらは英語だが、ゲームをしながらキーバインドに慣れることができる。 -------------------------------------------------------------------------------- /vim/fig/fig.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/vim/fig/fig.pptx -------------------------------------------------------------------------------- /vim/fig/mode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/vim/fig/mode.png -------------------------------------------------------------------------------- /vim/fig/replace1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/vim/fig/replace1.png -------------------------------------------------------------------------------- /vim/fig/replace2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/vim/fig/replace2.png -------------------------------------------------------------------------------- /vim/fig/replace3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/vim/fig/replace3.png -------------------------------------------------------------------------------- /vim/fig/search1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/vim/fig/search1.png -------------------------------------------------------------------------------- /vim/fig/search2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/vim/fig/search2.png -------------------------------------------------------------------------------- /vim/fig/vimadventures.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/vim/fig/vimadventures.png -------------------------------------------------------------------------------- /vim/fig/vimtutor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/vim/fig/vimtutor.png -------------------------------------------------------------------------------- /vim/fig/visual1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/vim/fig/visual1.png -------------------------------------------------------------------------------- /vim/fig/visual2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/vim/fig/visual2.png -------------------------------------------------------------------------------- /vim/fig/visual3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/vim/fig/visual3.png -------------------------------------------------------------------------------- /vim/fig/visual4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/vim/fig/visual4.png -------------------------------------------------------------------------------- /vscode/README.md: -------------------------------------------------------------------------------- 1 | # VSCodeのインストール 2 | 3 | Visual Studio Code、通称VSCodeは、Microsoftが中心となって開発を進めているオープンソースのエディタである。Windows/Mac/Linuxで動作するクロスプラットフォームであり、豊富なプラグインがあるためにユーザが増えている。以下ではVSCodeのインストールと、VSCodeからPythonを実行する環境まで構築する。なお、自分の好きな開発環境があるならそれを使ってよい。 4 | 5 | ## Windows編 6 | 7 | ### ダウンロードとインストール 8 | 9 | [https://code.visualstudio.com/](https://code.visualstudio.com/)に行って、「Download for Windows Stable Build」をダウンロード、インストールする。 10 | 11 | 途中で「追加タスクの選択」が現れたら、「ファイルコンテキストメニュー」と「ディレクトリコンテキストメニュー」に「「Codeで開く」アクションを追加する」がチェックされていることを確認し、もしされていなかったらチェックしておく。 12 | 13 | ![セットアップ](fig/vscode_setup_win.png) 14 | 15 | 「デスクトップ上にアイコンを作成する」は、どちらでもかまわない。 16 | 17 | インストール後、VSCodeを起動する。 18 | 19 | ### WSLとの連携 20 | 21 | Windowsマシンでは、原則としてWindows Subsystem for Linux (WSL)上で作業を行う。VSCodeは、WindowsでもWSL上でもシームレスに利用できるが、そのためにプラグインを入れておく必要がある。 22 | 23 | VSCodeの左のメニューからExtentionsのアイコン(ブロックのマーク)をクリックし、現れた検索窓に「wsl」と入力するとMicrosoftによるWSL拡張「WSL」が表示されるので、「Install」をクリックする。 24 | 25 | ![WSL](fig/wsl.png) 26 | 27 | これをインストールした状態で、WSLのターミナルから適当なディレクトリで 28 | 29 | ```sh 30 | code . 31 | ``` 32 | 33 | を実行する。VS Codeが開いて、左下に「WSL:Ubuntu」と表示されれば成功だ。 34 | 35 | ![WSL-VSCode](fig/wsl_vscode.png) 36 | 37 | 以降、WSLのファイルをシームレスにVS Codeで編集できるようになる。 38 | 39 | ## Mac編 40 | 41 | [https://code.visualstudio.com/](https://code.visualstudio.com/)に行って、「Download for Mac Stable Build」をダウンロード、インストールする。 42 | 43 | ダウンロードフォルダに「VSCode-darwin-stable.zip」がダウンロードされるので、クリックして解凍する。解凍されてできた「Visual Studio Code」を、アプリケーションフォルダに移動する。例えば「ダウンロード」を「Finderで開く」を選び、「Visual Studio Code」を「アプリケーション」にドラッグする。 44 | 45 | ![VSCodeのインストール](fig/vscode_install_mac.png) 46 | 47 | VSCodeを起動する。「アプリケーション」から「Visual Studio Code」を起動する。今後よく使うので、Dockに追加しておこう。 48 | 49 | ## 設定(Windows/Mac共通) 50 | 51 | ### シェルコマンド`code`のインストール 52 | 53 | ファイルを開く時、メニューから探しても良いが、ターミナルから 54 | 55 | ```sh 56 | code filename 57 | ``` 58 | 59 | として開けるようにしておくと便利だ。この機能を使うにはコマンドパレット(Shift+Command+P)を開いて「shell command」と入力すると出てくる「Shell Command: Install 'code' command in PATH」を実行すれば良い。 60 | 61 | ![shellcommand](fig/shellcommand.png) 62 | 63 | VSCodeではファイルではなくディレクトリを開くことが多い。カレントディレクトリをVSCodeで開くには 64 | 65 | ```sh 66 | code . 67 | ``` 68 | 69 | とする。よく使うので覚えておこう。このとき、最初に以下のような「このディレクトリを信用するか?」という確認ダイアログが出ることがある。 70 | 71 | ![trust](fig/trust.png) 72 | 73 | 自分で作成し、管理しているディレクトリであれば問題ないので、「開く」を選んでよい。 74 | 75 | ### Python環境のセットアップ 76 | 77 | 適当なディレクトリで 78 | 79 | ```sh 80 | code test.py 81 | ``` 82 | 83 | を実行せよ。新規ファイルとして`test.py`が開かれるはずだ。すると「Pythonにおすすめの拡張機能があるがインストールするか?」と聞かれるので、インストールする。聞かれなかった場合は、VSCodeの左のメニューからExtentionsのアイコン(ブロックのマーク)をクリックし、現れた検索窓に「python」と入力、現れた「Python extension for Visual Studio Code」の「install」ボタンを押して、インストールする。「再読み込みが必要です」というボタンに変わったら、クリックして再読み込みをする。 84 | 85 | この時、先にPython環境が正しくインストールされていれば、エディタの右下に「Python」といった表示が現れているはずだ。 86 | 87 | Pythonの実行環境が選ばれた状態で 88 | 89 | ```py 90 | print("Hello Python") 91 | ``` 92 | 93 | と入力し、右上にある三角のマーク(ターミナルでPythonを実行)をクリックせよ。 94 | 95 | ![実行ボタン](fig/vscode_python_execute.png) 96 | 97 | 下にウィンドウが開いて実行結果(`Hello Python`)が表示されるはずだ。これでVSCodeからPythonを実行する環境が整った。 98 | 99 | ## Remote-SSHのインストールと接続。 100 | 101 | 注:ターミナルで研究室サーバにssh接続できることが前提。 102 | 103 | 1. 拡張機能から、「Remote - SSH」をインストールする。 104 | 2. Shift+Ctrl+P/Shift+CMD+Pで、コマンドパレットを表示し、「Remote-SSH: ホストに接続する」を選ぶ。 105 | 3. 「+ 新規SSHホストを追加する」を選択し、研究室サーバへの接続コマンド(ssh username@hostname -AY)を入力 106 | 4. 「更新するSSH構成ファイルを選択」では、Macなら`/Users/username/.ssh/config`、Windows(WSL)なら`C:\Users\username\.ssh\`を指定。 107 | 5. 接続時、Select the platformと出てきたらLinux 108 | 6. フィンガープリントを確認し、問題なければ「続行」 109 | 110 | WindowsでWSLから実行している場合、上記の「続行」を押した後「接続を確立できません」と出てくるので、「リモートを閉じる」を実行後、ターミナルから以下を実行する。 111 | 112 | ```sh 113 | cd .ssh 114 | cp id_rsa /mnt/c/Users/username/.ssh 115 | ``` 116 | 117 | そして、「Remote-SSH: ホストに接続する」を選ぶと、先程追加したサーバがリストに表示されるので、それを選ぶ。するとパスフレーズを要求されるので、入力すると接続できる。 -------------------------------------------------------------------------------- /vscode/fig/fig.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/vscode/fig/fig.pptx -------------------------------------------------------------------------------- /vscode/fig/python_interpreter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/vscode/fig/python_interpreter.png -------------------------------------------------------------------------------- /vscode/fig/python_on_termina.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/vscode/fig/python_on_termina.png -------------------------------------------------------------------------------- /vscode/fig/shellcommand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/vscode/fig/shellcommand.png -------------------------------------------------------------------------------- /vscode/fig/trust.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/vscode/fig/trust.png -------------------------------------------------------------------------------- /vscode/fig/vscode_install_mac.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/vscode/fig/vscode_install_mac.png -------------------------------------------------------------------------------- /vscode/fig/vscode_python.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/vscode/fig/vscode_python.png -------------------------------------------------------------------------------- /vscode/fig/vscode_python_execute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/vscode/fig/vscode_python_execute.png -------------------------------------------------------------------------------- /vscode/fig/vscode_setup_win.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/vscode/fig/vscode_setup_win.png -------------------------------------------------------------------------------- /vscode/fig/wsl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/vscode/fig/wsl.png -------------------------------------------------------------------------------- /vscode/fig/wsl_vscode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/vscode/fig/wsl_vscode.png -------------------------------------------------------------------------------- /welcome/welcome.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/welcome/welcome.pdf -------------------------------------------------------------------------------- /welcome/welcome.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/welcome/welcome.pptx -------------------------------------------------------------------------------- /wsl2/README.md: -------------------------------------------------------------------------------- 1 | # WSL2のセットアップ(Windowsのみ) 2 | 3 | Windowsマシンでは、原則としてWSL(Windows Subsystem for Linux)上で作業を行う。そのためにWSLをインストールする。Linuxディストリビューションとしては、Ubuntu 22.04を用いる。 4 | 5 | 基本的にはMicrosoftのドキュメントの[WSL を使用して Windows に Linux をインストールする](https://learn.microsoft.com/ja-jp/windows/wsl/install)に記載されている手順に従えばよい。 6 | 7 | 以下はIntelもしくはAMDのCPUが乗ったWindowsマシンを想定してるが、ARM64などの場合は別途対応が必要な場合がある。上記インストールガイドを参照のこと。 8 | 9 | ## WSLを有効にする 10 | 11 | 最初に「管理者」としてPowerShellを実行する。左下の「ここに入力して検索」とある場所(以下、検索窓)に「powershell」として表示された「WIndows PowerShell」の、右側のメニューの「管理者とて実行する」を選べば良い。 12 | 13 | ![PowerShellを管理者として実行](fig/powershell.png) 14 | 15 | その後、開いたシェルで以下を実行する。 16 | 17 | ```sh 18 | wsl --install 19 | ``` 20 | 21 | ## Ubuntu 22.04のインストール 22 | 23 | 検索窓に「Microsoft Store」と入力してMicrosoft Storeを開く。右上の「検索」に「ubuntu」と入力し、現れた候補の中から「Ubuntu 24.04.1 LTS」を選択、インストールする。 24 | 25 | インストール後の最初に起動でUNIX usernameとパスワードを聞かれるので、アカウント名とパスワードを入力する。 26 | 27 | 以上でUbuntuのインストールは完了である。 28 | 29 | ## 環境設定 30 | 31 | ### デスクトップへのシンボリックリンク 32 | 33 | WSL側からWindows側のデスクトップにシンボリックリンクを張っておくと後々便利だ。 34 | 35 | ```sh 36 | ln -s /mnt/c/Users/username/Desktop 37 | ``` 38 | 39 | 上記の「username」を自分のWindowsのアカウント名にすること。アカウント名がわからない場合はWSLで以下のコマンドを実行することで確認できる。 40 | 41 | ```sh 42 | cmd.exe /c echo %USERNAME% 2> /dev/null 43 | ``` 44 | 45 | なお、OneDriveを利用している場合は、Desktopがその下にある。その場合は、 46 | 47 | ```sh 48 | ln -s /mnt/c/Users/username/OneDrive/Desktop 49 | ``` 50 | 51 | とすること。 52 | 53 | ### explorer.exeへのエイリアス 54 | 55 | WSLのディレクトリをエクスプローラで開くことができると便利だ。以下の一行を`.bashrc`の最後に記載しておくこと。 56 | 57 | ```sh 58 | alias open=explorer.exe 59 | ``` 60 | 61 | 保存したら、 62 | 63 | ```sh 64 | source .bashrc 65 | ``` 66 | 67 | で読み込んだ後、 68 | 69 | ```sh 70 | open . 71 | ``` 72 | 73 | により、現在のディレクトリがエクスプローラで開かれることを確認せよ。 74 | -------------------------------------------------------------------------------- /wsl2/fig/powershell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/wsl2/fig/powershell.png -------------------------------------------------------------------------------- /wsl2/fig/winver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaityo256/lab_startup/de7dde23366538fc678e139cbbafe9b69818625f/wsl2/fig/winver.png -------------------------------------------------------------------------------- /wsl2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | wsl2/README.md 8 | 9 | 46 | 47 | 66 | 67 | 68 | 71 | 72 | 73 |
74 |

WSL2のセットアップ(Windowsのみ)

76 |

Windowsマシンでは、原則としてWSL(Windows Subsystem for 77 | Linux)上で作業を行う。そのためにWSLをインストールする。Linuxディストリビューションとしては、Ubuntu 78 | 22.04を用いる。

79 |

基本的にはMicrosoftのドキュメントのWSL 81 | を使用して Windows に Linux 82 | をインストールするに記載されている手順に従えばよい。

83 |

以下はIntelもしくはAMDのCPUが乗ったWindowsマシンを想定してるが、ARM64などの場合は別途対応が必要な場合がある。上記インストールガイドを参照のこと。

84 |

WSLを有効にする

85 |

最初に「管理者」としてPowerShellを実行する。左下の「ここに入力して検索」とある場所(以下、検索窓)に「powershell」として表示された「WIndows 86 | PowerShell」の、右側のメニューの「管理者とて実行する」を選べば良い。

87 |
88 | PowerShellを管理者として実行 89 | 90 |
91 |

その後、開いたシェルで以下を実行する。

92 |
wsl --install
93 |

Ubuntu 22.04のインストール

94 |

検索窓に「Microsoft Store」と入力してMicrosoft 95 | Storeを開く。右上の「検索」に「ubuntu」と入力し、現れた候補の中から「Ubuntu 96 | 24.04.1 LTS」を選択、インストールする。

97 |

インストール後の最初に起動でUNIX 98 | usernameとパスワードを聞かれるので、アカウント名とパスワードを入力する。

99 |

以上でUbuntuのインストールは完了である。

100 |

環境設定

101 |

デスクトップへのシンボリックリンク

103 |

WSL側からWindows側のデスクトップにシンボリックリンクを張っておくと後々便利だ。

104 |
ln -s /mnt/c/Users/username/Desktop
105 |

上記の「username」を自分のWindowsのアカウント名にすること。アカウント名がわからない場合はWSLで以下のコマンドを実行することで確認できる。

106 |
cmd.exe /c echo %USERNAME% 2> /dev/null
107 |

なお、OneDriveを利用している場合は、Desktopがその下にある。その場合は、

108 |
ln -s /mnt/c/Users/username/OneDrive/Desktop
109 |

とすること。

110 |

explorer.exeへのエイリアス

111 |

WSLのディレクトリをエクスプローラで開くことができると便利だ。以下の一行を.bashrcの最後に記載しておくこと。

112 |
alias open=explorer.exe
113 |

保存したら、

114 |
source .bashrc
115 |

で読み込んだ後、

116 |
open .
117 |

により、現在のディレクトリがエクスプローラで開かれることを確認せよ。

118 |
119 | 120 | 121 | --------------------------------------------------------------------------------