gcloud initでlocalhost:8085に繋がらないとか言われて10分くらい悩んだ話
レンタルサーバにgcloudのAPIを入れようと思って,あんまり読まずに↓の解説のコマンドだけをコピペして進めていた.
Linux 用のクイックスタート | Cloud SDK のドキュメント | Google Cloud
そしたらgcloud auth loginで出てきたコマンドをブラウザにコピペしたらlocalhost:8085に繋がらないとか言われる.
ハァ?なんだそれ.どこからlocalhost出てきたんやと思っていたが, 冷静によくよく見ると,設定した端末上でブラウザを開いて,localhostに対して認証が送られるという話だったようで, 当然のように繋がるはずはなかった.
よく読んだらちゃんと書いてあって,console-onlyを付けるという話だった.
curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-245.0.0-linux-x86_64.tar.gz tar zxvf [ARCHIVE_FILE] google-cloud-sdk ./google-cloud-sdk/install.sh gcloud init --console-only
これを付けると認証自体はブラウザで行わず,認証トークンの文字列だけ返ってくるようになるので, 別のマシンのブラウザからでも設定できる.
ちなみに gcloud authのほうでは,
gcloud auth login --no-launch-browser
という微妙に違うオプション名で苦しむ. おわり.
高精度演算(多倍長)をやりたいのでJuliaをはじめてみる,動機・導入・実行まで (on Fedora 29)
Motivation
いつもと全然違う,とある事の勉強をしようと思ったけど,C++で書くのやる気しないなーと思って,
ずっとやろうと思っていたScilabかOctaveでやろうかと思って調べたら,Juliaが予想以上に私のやりたいことをやれそうだった.
Juliaって?
パッと調べて,記憶に残ってるのは,
- JuliaはMITとかの人が作って,速くて書きやすいのが売りらしい.
- JITなので初回実行時にコンパイルが走るらしい.
- BLASやLAPACKがバックエンドに使われてて数値計算やりやすいらしい
- プログラムが書きやすい(構文が賢い)ようだ
- マルチスレッドは簡単にかけそうだ.マルチプロセスは調べてない
で,私はどこに惹かれたか
別に多くの場合においてC++で困らないし,Pythonとか書いててもBLASとかLAPACK使うから結局Cのライブラリを呼ぶハメになるので, BLASが言語仕様に入ってても,別にBLASの関数とか大体使うのは覚えてるからいらねーや.と思っていたら,予想以上に欲しいものが言語的に採用されていた.
疑似4倍精度(Double-Double)を作るパッケージ?を作ってくれている人がいる GitHub - JuliaMath/DoubleDouble.jl: Extended precision arithmetic for Julia (deprecated)
多倍長型がMPFRベースでBigFloat型として使える 整数と浮動小数点数 · The Julia Language
反復解法のパッケージもなんかあるっぽい(AMGあるのか.よく作ったな) Home · IterativeSolvers.jl
Sparse matrix型もあるっぽい Sparse Arrays · The Julia Language
と,いうことで,高精度演算をやったときに,他の精度との精度比較するのに使いやすかったりしないかな?と思ってはじめることする.
気になっていること (別に調べて情報があるか/ないかをキチンと確認してない疑問)
初志を忘れてはいけないので,なぜ始めたのを記録しておく.
動的型付けのように読める (ただし型を明示的に指定もできる)が,BigFloat型にバックエンドのBLAS / LAPACKは対応しているのか? ** BLAS / LAPACKは無理でも,特に型指定のないライブラリなら多倍長で実行してくれちゃったりするのか?(しかも速く!?)
マルチスレッドはどこまで便利か?速いか
プロファイラ周り.時間計測とかベンチマークの楽さ
Sparseの扱い(SparseをLAPACKに突っ込むと?とか)と,Sparse matrix formatの種類,スピード.
Install
Juliaの環境を構築するのは簡単. 環境はConohaのVPS上のFedora29
- 落としてくる (現在のStableはjulia-1.1.0の模様)
Generic Linux Binaries for x86というのを落とせばいい Julia Downloads
tar xzvf ....で解答する
julia-1.1.0/binにPATHを通す
おわり.簡単だった.
なんか動かす
正しくPATHが遠てればjuliaコマンドを打つと対話画面が出てくるので
println("ごまちゃんかわいい")
とかやると,ゴマちゃんが可愛いことをJuliaが教えてくれる
今日はここまで
cronでIPアドレスの変更を見てDropboxに置くだけのスクリプト
自分用メモ。
毎回Dropboxに書き込むと、内容が同じでも同期されるのか?
不明だったのでtmpに書き込んでIP変更を判定してから、変更があったときだけDroboxのファイルに書き込みに行くようにした。
ifconfigするとlocalhostとか色々出てくるが、今回は172.*だけ取ってきたかったので、grepでそうしてる。
そのへんは適当に変えればいいとおもう
/usr/sbin/ifconfig | grep "inet 192" | awk '{print $2}' > ~/ip_watch/tmp
diff ~/ip_watch/tmp ~/ip_watch/ip_addr.txt
if [ $? -eq 0 ]; then
mv ~/ip_watch/tmp ~/ip_watch/ip_addr.txt
cp ~/ip_watch/ip_addr.txt ~/Dropbox/sc1_ip.txt
fi
クライアント側は後は適当に見るなりなんなり
sedかなんかで書き換えようかと思ったけど,今日はやめた
tmuxのセッション関係
プロジェクトごとにtmux上げてるので、暫く同じ仕事してて使わないとすぐわすれる。
セッションに名前をつける
tmux new -s my_session
現在のセッション名のリネーム
prefix + $
セッションの一覧取得
tmux ls
アタッチ
tmux attach -t セッション名
gnuplot 忘れがちなコマンドまとめ
- 日本語が文字化けする
だいたいフォントの設定がおかしい.
ちなみにフォントの指定の仕方は,20ptでtimes new romanを使うなら,
set terminal postscript eps enhanced color font "/usr/share/fonts/msttcore/times.ttf,20"
のようにする.ディレクトリの場所は各々環境によって違うんだと思うけど,
でも,cygwinとかでは入ってるんだか入ってないんだかわからない.
Windowsのフォントのフォルダから探してきてもいいけど,面倒くさかったので,
適当に「明朝 フォント」などと検索して,ttfファイルを拾ってきて,
それを何処かにおいて指定するのが良いんじゃないかと思う.
- 凡例をきれいにする.
基本的に,ここに書いてある3つは無条件にやっていいと思う.
凡例の場所は右上
set key right top
凡例の文字を左寄せにする.
set key Left
凡例のバーと文字を反転させる
set key reverse
- EPSを出力したけど,Windowsで開くとなんか重たい.
gnuplotのためにimagemagic??とか入れてくといつの間にか開けるようになってるEPS
だけど,なんだか知らないけど重い.正直なところ起動したくない.
それに,そういうのが入ってないPCで仕事をしようと思うと開けなくて困る.
スクリプトの中にconvertコマンドを仕込んでおいて,
jpegかなにかで同時に出力しておけば良いんじゃね案.
(拡張子を自動で判断してくれるので,pngがよければfig.pngにすればいい)
convert -density 400x400 fig.eps fig.jpg
PDFの差分を取る.[DiffPDF]
よく先生から,この論文は昨日のとどこが変わったんだと言われるんだけど,
まぁtexファイルのdiffとか取ってもPDFになっちゃったらなんだかわからんのね.
で,調べたら,PDFのdiffが取れるツールがあった.
本家もあって,こっちはver.5(↑のはver.2)なんだけど,
英語でpayとか$とか金を払えとか書いてあるから,一瞬で心折れた.
一応本家は→ DiffPDF
インストール不要なので,Dropboxとかに入れておけて良さげ.
実行すると↓みたいに差分に色がつく.
日本語はちょっと不得意みたい.
最強なのは,この色がついたファイルを出力できて,印刷とかができること.
いいんじゃないかね.これは.