jariのメモ

jariの備忘録(不定期更新)

git ssh

ubuntuでgit使っていたのにhttpsで接続してて,pullとかfetchのときにいちいちパスワード打つのがめんどくさくなったので備忘録に参考にしたリンクを貼る.基本windowsSorceTree使っていたから関係なかったんだけどVirtual box上で扱ったりすることになってCUIでgit弄ることが増えたんですよ.

qiita.com

これでssh鍵に作り方(アドレスは必要だったのかなよくわからないや)登録方法とかを参考にしつつ(鍵ってのはid_rsa.pub全部コピーするんやね),これらはpullだけしか対応してない(?)ので

cflat-inc.hatenablog.com

に書いてある通りconfigを弄ったらsshで接続してくれました.ちゃんちゃん.

Sage再び

不等式ソルバーが使いたい

大量の線形不等式が示す領域を示す必要が出てきました. 少数ならwolframとかに突っ込めばそれで解決するのですが今回は700個近く不等式があるのでそうはいきません. mathematicaを動かせればいいんですが高いし,学校で使うにしても学校のPCを使うのはファイルを移したりめんどくさいので避けたい. pythonにもsimpyというシンボルで書けるライブラリがあるみたいですがこれは多変数のソルバーがないうんちなので断念. そこで調べたらsageでもできるらしいので今度こそsageを使いこなしてやろうと一念発起したわけであります.

sageはコンソール画面で動かすものじゃないの?

d.hatena.ne.jp

をみてたらnotebook()というコマンドを使えばブラウザが起動するらしい. plot()とかでグラフィックスが起動しない不具合があったのはこういうことだったのか

とりあえず以前書いた記事を参考にsageを再びインストール. notebook()コマンドでブラウザを立ち上げることに成功.

しかしリモートアクセスを許可するコマンドnotebook(interface='', secure = True) を使ったらpyOpensslがないらしくでこれを入れろというエラーがでてきたので,README.mdみたら ./sage -i pyopenss というコマンドで再ビルドすればいいみたい..

再びanacondaの名前を変更しつつ

mv anaconda3 anaconda3bak
./sage -i pyopenssl

をやったらm4というソフト(?)がないみたいなのでsudo apt-get install m4. ほんで./sage -i pyopensslをやったら全然ビルドが終わらん芸人.馬鹿野郎お前俺は絶対リモートアクセスするぞお前

-----12/13追記

そういえばsageを動かしているときに

ImportError: cannot import name scimath

というエラーが出てくることがあったけどこれは

sudo apt-get update
sudo apt-get install libgfortran3

で解決する.

Atom でTeX

タイトルそのままです.LaTeXで文章を書くときいつもTeXWorks editorを使ってたんですけど少し違うエディターを使ってみたいなというかAtomを使いたかったのでAtomLaTeXを使う方法を模索していました.

Atom - TeX WikiなどWeb上にいろいろ記事があって一昨日も今朝もずっと戦っていたんですが結果,必要なことはとてもシンプルでした.

AtomでのLaTeX環境に僕が求めるもの

何がいるのか

これは色々な記事やTeX wikiにも書いてあったんですが,
atomのパッケージ

  • latex
  • language-latex
  • pdf-view

のインストール(もしかしたらlatexは要らないかも)
latexmkを使用すること.

結局ネックになるのはlatexmkの方でした. まぁそれはそうで,コンパイルがうまくいってpdfが出力されるかどうか一番大事なわけですからね. latexmkというのはその名の通りLaTeXでのmakeみたいなものだそうです.コマンドライン上で-pvcというオプションを使って起動すると.texファイルを監視して更新されるたびにコンパイルしてくれるみたいです.

それをうまく動かしてあげるためには.latexmkrcというファイルがホームディレクトリにおいてあるか,.texファイルがおいてあるカレントディレクトリにlatexmkrc(先頭に"."がない)がおいてある必要があるみたいです.このlatexmkrcというのはLaTeXをどういう風にコンパイルするかとかpdfでの出力などいろいろ指定するためのファイルなようです.

ichiro-maruta.blogspot.jp の記事に書かれていた日本語ファイル用のlatexmkrcを次のように

#!/usr/bin/perl
$latex         = 'platex %O -src-specials -shell-escape -interaction=nonstopmode -synctex=1 -kanji=utf8 %S';
$bibtex        = 'pbibtex %O %B -kanji=utf8';
$dvipdf        = 'dvipdfmx %O -o %D %S';
$pdf_mode      = 3; # use dvipdfmx

# Use SumatraPDF and atom inverse search
# $pdf_previewer = '"C:\Program Files\SumatraPDF\SumatraPDF.exe" -reuse-instance -inverse-search "\"%USERPROFILE%\AppData\Local\atom\bin\atom.cmd\" \"%f:%l\"" %O %S';

# if you do not need to preview in -pvc option (preview document and countinuously update mode)
$pdf_previewer = 'exit';

としたlatexmkrc.texファイルがあるディレクトリにおいて,コマンドプロントなりターミナルを開いてそのディレクトリに移って

latexmk -pvc hogehoge.tex

とすれば自動でコンパイルしてくれました.そうしたら.tex.ファイルを保存する度に自動で.pdfファイルが出来ているので最初にこれをAtomで開けば f:id:jaripan2:20161123121441p:plain こんな感じにプレビューが更新されてそれを見ながらLaTeXで文章を書けます.

問題点

1つ問題点に気が付きました.

それはコンパイルエラーが分かりずらいということです.上書き保存してもプレビューが変更しなかったらコンパイルが失敗している証拠なんですが,そのエラーがAtom上にでないのでわかりずらいです, latexmkの画面にはコンパイルエラーの文面が出ているみたいなのですが非常に見ずらい.これはターミナルでコンパイルして確認するしかないのでしょうかねえ.

あと些細な事なんですが,インナーpdfプレビューワーの解像度が低い気がします(?)

Sage~インストールから始動

Sageがなんだかよく知らないけど、出力結果がこのツールを必要としているみたいなのでインストールすることに。Matlab的な数学用のツールらしい。

www.sagemath.org にアクセスする。

ダウンロードページに書いてあるミラーサイトからsage-7.3-Ubuntu_14.04-x86_64.tar.bz2というアーカイブをダウンロードする。 これはバイナリファイルらしいのであんまり細かいこと抜きにすぐ使えると書いてあった割に苦戦したのでこのメモを残す。

DownloadAndInstallationGuide - Sage Wiki

を読めと書いてあったけど

Install from Pre-built Binaries — Sage Installation Guide v7.3

バイナリ版の場合結局こっちを読めば解決する。

sage-7.3-Ubuntu_14.04-x86_64.tar.bz2の展開がGUIでそのまま開くとなぜかうまく行かなくて(ディレクトリ上にsageという実行ファイルが存在しなくて動かせない)、コマンドライン上でやることに。 tarが圧縮ファイルを展開するコマンドだということはなんとなく知っていたけど詳しいことはよくわからなかったのでググった。

Linuxコマンド集 - 【 tar 】 ファイルを書庫化・展開する(拡張子.tarなど):ITpro

に書いてあったtar jxvf hogehoge.tar.bz2をそのまま使ったら展開できた.

lsで中を確認したら実行ファイルsageもいたので実行してみたらなんか動いた!と思ったらエラー。sageはpythonで動いているらしくて調べたらanacondaと一緒にpythonを導入したのが問題だった模様。

検索したら同様に困ってた人がいたので

stackoverflow.com

ここに書いてあった

cd ~
mv anaconda3 anaconda3bak
SageMath/sage
quit
mv anaconda3bak anaconda3

というコマンドをそのまま使ったらsageが動きました。めでたしめでたし。

超個人的Docker メモ(未完成版)

完全に日常の話でもなんでもないけどブログにまとめておくと今後の時分の為にいいので記事を書きます。理解が浅いのでダメなところはご指摘いただけると幸いです。

 

研究で動かす必要があるプログラムがdocker で配信されていたので、dockerを使う必要がありました。この記事は自分がdockerを使う上で困ったことと、それに対して調べて参考になったネット上の記事のリンクを張っていくだけの備忘録のつもりです。備忘録に加えて疑問点を列挙しておくことでどこで躓いているのかを認識するのと、誰かが助けてくれるんじゃあないかという淡い期待を抱いています。

 

dockerとはなんなのかというのは自分自身まだよくわかっていなくて、ざっくりとした理解ではプログラムのコードだけではなくプログラムを動かす環境ごとコンテナとして配信するものであると思っています。環境毎提供することによって、実行するユーザの環境によってプログラムの動作がうまくいかないなどのバグを防げるのだと思います。

paiza.hatenablog.com

dockerのインストールはdockerのHPに書いてあることをそのまま行いました(Ubuntu 14.04 LTS)

docs.docker.com

コンテナの起動とかはインストールの際にhelloというコンテナを使ってやりかたを覚えました。上のリンクのインストールのところにそのまま書いてあると思います。

dockerのコンテナはrunで起動するたびに新しくなるようなので一度プログラムを起動してコンテナを終了してまたrunで起動すると実行結果が失われてしまうことになります。再び実行する場合はrunではなくstartでいいみたいです。下の記事に詳細があります。

scriptlife.hacca.jp

 

疑問点とか

 

自分が動かしているプログラムがコンテナ中にpythonファイルがあるんですが実行できないのはコンテナ中にpythonが入っていないからなのでしょうか。だとしたら頭悪すぎるのでなにか実行方法があるはずですし、なんなら既存のコンテナ内にpythonの実行環境を構築する方法があるのではないでしょうか。

またなにか思い出したり必要なことがあったら記事の続きを書きます。

 

追記)9/23

 

Dockerコンテナ内のファイルのファイルのコピー

作業している中でコンテナ内だけではなくてホスト側で同じファイルをつかって検証する必要が出てきたのでそのときのメモ。

isoittech.hatenablog.com

この中に書いてあるように

sudo docker cp <コンテナID>:(コンテナ内のファイルのパス) ホスト側に置きたい場所のパス

でいい。ファイルのパスはコンテナ内でpwdでも使えば/root/hogehogeと出てくるはず。

ホスト側のパスはカレントディレクトリでいい場合は ”.”(ドット)でいいらしい。