ToDo:
kinaba さんが Google C++ style に対して、例外禁止は別に良い、問題は例外安全なコードを例外禁止であっても書き続けることである、みたいなコメントをしていた記憶があって、これタイミング的にすっごい感銘を受けた記憶があるんだけど、どういう文脈だったか……
(21:12)
/dev/sdb: Timing O_DIRECT cached reads: 892 MB in 2.00 seconds = 445.43 MB/sec Timing O_DIRECT disk reads: 1474 MB in 3.00 seconds = 491.01 MB/sec
http://shinh.skr.jp/m/?date=20180527
(00:05)
http://shinh.skr.jp/m/?date=20180715#p04
を適当にいじる
何度もする作業をメモ
最初にすべきこと
scp "i@xxx:.*" . sudo apt-get install ssh screen zsh chsh sudo apt-get install git subversion g++ make gauche ruby python3 python3-pip lv scp -r i@xxx:bin . scp -r i@xxx:lib . zsh git clone git@github.com:shinh/test.git svn co $SVN wrk cd ~/wrk/fake_isatty sh build.sh
sevilwm
apt -i libxrandr-dev cd ~/wrk/sevilwm rsync -avr "i@xxx:wrk/sevilwm/dev" . make sudo cp sevilwm /usr/local/bin
w3m
apt -i libgc-dev libimlib2-dev libncurses-dev scp -r i@xxx:.w3m . cd ~/wrk git clone git@github.com:shinh/w3m.git cd w3m ./configure && m sudo make install
apt-file
apt -i apt-file sudo apt-file update
適当に色々。 sevilwm に切り替える準備
apt -i ghc ocaml rlwrap emacs wicd gkrellm xscreensaver feh apt -i mlterm scp -r i@xxx:.mlterm . sudo vi /usr/share/xsessions/custom.desktop [Desktop Entry] Name=Custom Exec=/etc/X11/Xsession
このあと gdm 殺す必要あり
CUDA
wget https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb sudo dpkg -i nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb apt -u apt -i libnvinfer7 libnvonnxparsers7 libnvparsers7 libnvinfer-plugin7 libnvinfer-dev libnvonnxparsers-dev python-libnvinfer python3-libnvinfer cuda-10-2 'cuda*-dev-10-2' cuda-nvcc-10-2 cuda-nsight-10-2
nouveau 撤去
sudo vi /etc/modprobe.d/blacklist-nouveau.conf # blacklist nouveau # options nouveau modeset=0 sudo update-initramfs -u
MLフレームワーク
pip3 install --user numpy pip3 install --user cupy-cuda102 pip3 install --user chainer pip3 install --user onnx pip3 install --user torch torchvision
UIM SKK
apt -i uim-skk ddskk uim-pref-gtk3
忘れがちな開発ツールまわりの
apt -i autoconf automake libtool texinfo flex bison glibc-doc libc6-dev:i386 libgcc-7-dev:i386 libstdc++-7-dev:i386 lib32gcc-7-dev valgrind
もうちょい追加
apt -i libopencv-dev libopenblas-dev pip3 install --user gast fire pytest cython
が壊れててめんどくさがってたのだけどなおした。
Ruby の uconv がなくなっていたのと、 estseek.conf じゃなくて_estseek.conf を見にいっていた(ぽい)のと
(19:16)
MLネタなんかやりたいなあと思ってたのだけど、すごいのが去年あったようだった
http://ioccc.org/2019/mills/hint.html
このセルフホスト可能 Haskell サブセットコンパイラもすごそう
http://ioccc.org/2019/lynn/hint.html
(02:02)
消えてしまった……最後の方たぶん読めてなくて悲しい。なんとかして売って欲しいなあ
でもなんか、こういうところに普通にたくさん面白シーン集まりまくってるな
https://togetter.com/li/1411063
(23:06)
なんか 0x200000 とかいうやたらでかい値が入っている。 -zmax-page-size とかで指定される値ぽい。 x86-64 の場合はデフォルトは 0x1000 ぽいけど、まあ指定する人もいるみたいな話なのかな
まあ気にしないでよさそう
(01:59)
あー INIT_ARRAY 蹴るのってひょっとしてローダじゃないのか
要するに __libc_start_main が __libc_csu_init を呼び、それが固定のアドレスに並んでいる init_array を iterate している
const size_t size = __init_array_end - __init_array_start; for (size_t i = 0; i < size; i++) (*__init_array_start [i]) (argc, argv, envp);
これをフックするとすると、 INIT_ARRAY の最初の要素を書き変えて、別の INIT_ARRAY を巡回する関数を呼ぶ、とかかな。めんどくさ
(11:46)
あといつもわからんこととして、 shdr 見ずに DT_SYMTAB のサイズを知る方法がわからんというのがある。これはたぶん DT_HASH か DT_GNU_HASH を見ないとわからんというので良いと思ってるんだけど、そうなのだろうか…
(11:49)
ひさびさに更新してみた
(14:57)
前 | 2024年 11月 |
次 | ||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。