2019-01-01から1年間の記事一覧
dot2texでtikzに変換してからstandaloneクラスを使って図を出力する。 gist.github.com
Ubuntu18.04LTSのインストール時にdockerを入れると、その時点ではGoogle DNSを追加していないためにコンテナ内でDNS周りがおかしくなる。 dockerのブリッジを作り直すと直る。 pkill docker iptables -t nat -F ifconfig docker0 down brctl delbr docker0 …
flockとmktempを使えばよい #/bin/bash -u lockfile=$(mktemp) myjob(){ # do something flock $lockfile echo "hoge" >> output } for file in $(find . -maxdepth 1); do myjob $file & done 参考リンク 排他を実現するコマンドflock(1)の使い方メモ | 上…
普段メモをLaTeXで書いてGitHubで管理しているのだが、コンパイル後のpdfをクラウド上で見られると便利そうなので実装した。 circleciではartifactsを3GBまでアップロードすることができる。 CircleCI CLI (CircleCIのconfig.ymlをローカル実行できることを…
普段arxivやジャーナルのRSSフィードを購読してinoreaderで読んでいるのだが、タイトル中のTeX記法がそのまま表示されて読みづらかった。 そこでMathjaxで数式を表示するJSスクリプトを書いてTampermonkeyで実行させることにした。 動的に生成される要素に対…
CODで結晶構造をブラウザで表示できるのが面白いと思ったので、やり方を調べた。 JSmol https://sourceforge.net/projects/jmol/files/から最新版のJmolを取ってくる zipを解凍してjmol-14.29.46みたいなディレクトリを得る(以下このバージョンのjmolを使う…
増設するディスクの確認 fdisk -l 増設するディスクが/dev/sdbだったとして gdisk /dev/sdb パーティションが残っていたらoで消してからパーティションを作成(n)して書き込み(w) ext4でフォーマット mkfs -t ext4 /dev/sdb www.nemotos.net qiita.com
pythonからMILPソルバーを触れるPuLPというパッケージを勉強した。 github.com 公式チュートリアルを参考に数独を解いてみた。 ソルバーを呼んだあとにpulp.valueを呼ばないと解を得られないのに若干ハマった。 実装: sudoku.py · GitHub 参考リンク pythonh…
python が遅すぎるのでcythonに入門した。 cythonでコードを書き直すときは、まずボトルネックになっている関数をcProfileとかで突き止めてから、jupyter notebook上で作業するのが効率的だと思う。 jupyter notebook上で %load_ext Cython %%cython -a を打…
pythonで並列処理をするときにはjoblibが手軽で便利だが、タイムアウト時の処理に自由度がない。 というのも、joblib.Parallelの引数にtimeoutを設定すると、指定した時間を超えたときに例外を投げて計算全体を止めてくれるが、タイムアウトした処理を無視し…
pymatgenでcifファイルを読み込むにはpymatgen.io.cif.CifParserを使うが、たまに失敗することがある。 これはcifに書かれているfractional coordinates の精度が低いと、対称操作を施して同じワイコフ位置にある原子の座標を計算する部分がうまくいかないこ…
出力をバッファせずにnohup.outに掃き出す nohup python -u hoge.py & python - Nohup is not writing log to output file - Stack Overflow warningsを無視する python -W ignore hoge.py How to disable python warnings - Stack Overflow assertionをスキ…
pythonで独自クラスに対してsetを使うには、そのクラスがhashableでなければならない。 hashableであるとは、__hash__()メソッドと__eq__()メソッドを持っていることを指す。 組み込み型 — Python 3.7.3 ドキュメント python - How to implement __eq__ for …
最近ポリアの数え上げ定理の実装が欲しい場面に遭遇したのでlatexでメモを取りつつちまちま勉強していた。 ↓はその時のメモ(証明は基本的に書いてない)。 ポリアの定理はある対称性のもとに色塗りをする場合の数を与えるものだが、その拡張として 色塗りの固…
sshfsで接続が切れた時にunmountできなくなることがある。 そういうときはプロセスを一度切ってからunmountすればよい pgrep -lf sshfs kill -9 <id-of-sshfs> diskutil unmount <mountpoint> # for mac pgrepの-lはlong output、-fはプロセス名以外からともマッチングさせる Macでssh</mountpoint></id-of-sshfs>…
できる限りcondaでパッケージを入れる。 チャンネルの探し方は conda install -c channel hoge www.anaconda.com onoz000.hatenablog.com condaでrequirements.txtからインストールしたいときは conda install --file requirements.txt でできる。 stackover…
野良キーボードを使っているとドライバーを入れるのを忘れがち www.pfu.fujitsu.com qiita.com
support.apple.com support.apple.com
結晶やガラスの局所的な環境を測る秩序変数のひとつにBond order parameterがある。 journals.aps.org 原子の配位数をとして、隣接する原子との距離ベクトルをとする。 このとき次の量を考える。 ここでは球面調和関数。 この量自体はSO(3)の作用に関して不…
公式ドキュメントに従ってconda-forgeからSageMathをインストールしようとするとクラッシュしてsageを起動できなかったのでバイナリをダウンロードすることにした。 /usr/local/binにPATHを通してから sudo ln -s /path/to/SageMath/sage /usr/local/bin/sag…
いつまでたってもコマンドを覚えられないので自分用にまとめておく。 tar.gz圧縮解凍(シングルコア) 圧縮 tar -zcvf archive.tar.gz archive 解凍 tar -zxvf archive.tar.gz tar.gz圧縮解凍(マルチコア) 圧縮(8core並列の場合) tar cv archive | pigz -9 -p …
pymatgen.analysis.graphsにnetworkx周りのバグがあったので修正とユニットテストの追加をしてプルリクエストを送った。 github.com OSSにプルリクエストを送って英文で説明するのが初めてだったのでめっちゃググった: sucrose.hatenablog.com github.blog q…
pymatgenのサブモジュールを眺めていたらpymatgen.analysis.dimensionalityという結晶の次元数を調べるモジュールを見つけた。 pymatgen.org 関数の使い方よりもそもそも結晶の次元数とはどのように定義されるか、そしてどのようにそれを計算するかに興味が…
pymatgen.util.plotting.periodic_table_heatmapを使うと周期表の形で元素ごとにある実数値をヒートマップで可視化することができる。 一方、例えば元素ごとにイオン半径を可視化したいときなどは対応する関数がpymatgenにないので自分でいろいろと書かない…
整数行列のスミス標準形とエルミート標準形とそれぞれの変換行列が欲しい状況に遭遇したのだが、標準的なpythonのライブラリには実装されていなかったので自分で書いた。github.comスミス標準形の実装には以下のブログを大いに参考にした(というかほぼそのま…
pymatgenで状態図を描く方法の備忘録。 ついでにMaterials Project Rest を使う方法も調べた。 Materials Project API key の登録 まず、Materials Project Rest を使うにはユーザー登録してAPIキーを作成しなければならない。 登録は以下のリンクから行える…
graphillionでグラフセットを作成する方法を公式ドキュメントで調べたときのメモ。 graphillionのバージョンはv1.01。 複雑な条件でグラフセットを作成するにはgraphillion.graphset.graphsを使えば良さそう。 graphillion.graphset.graphsで指定できる引数…