2017-09-01から1ヶ月間の記事一覧
基本はdokcer-composeのcommandを以下のようにして/etc/environment に環境変数を吐いておけば良い。 command: > bash -c 'printenv | grep -v "HOME" >> /etc/environment && /bin/bash' ただし、これはPATHなどの元々ある環境変数には効かないので、PATHを…
SHELL ["/bin/bash", "-c"] を使えばshellをbashに変更出来る。 ubuntuの/bin/shはsourceコマンドが使えなかったりして勝手が違うので助かる。 参考: qiita.com
原因は git clone http:s//https://github.com/tensorflow/tensorflow のようにwebページのURLを指定してしまっていたため。 git clone http:s//https://github.com/tensorflow/tensorflow.git のように.gitを付けると直った。git cloneコマンドでcloneする…
sudo /etc/init.d/ssh start で起動出来る。最近centosから乗り換えてるけど違いが色々あるなぁ。。 参考: qiita.com
gcc-c++はcentosでの名前で、ubuntuの場合はbuild-essentialに含まれるのでこれをインストールすればいいらしい。 参考: c.keicode.com
ubuntuの場合は以下のようにconda.shを読み込む行を.bashrcに追加すればいい。 . /etc/profile.d/conda.sh 参考: qiita.com
ubuntuの/bin/shにはsourceコマンドがない。 . ~/.bashrc のように代わりにドットを使えばいい 参考: blog.aoshiman.org
原因はAWS ECRからイメージを取得しようとしてたけど、ECRにログインしてなかったこと。 以下でECRにログインしたら直った。 aws configure (アクセスキーなどを入力) aws ecr get-login --no-include-email --region ap-northeast-1 (上記コマンドで出力…
原因はメッセージの通り指定したバージョンがないことだけど、今回conda env createで使ったファイルは既存の仮想環境から exportしたものだったのでびっくりした。 pythonだとパッケージのバージョンが消えることがあるのか。。 今回はpytorchの0.4.1.post2…
実行するshell scriptのパスを間違えたのかと思ったけど、それは確実に存在する。。 原因は改行コードがCRLFになっていることだった。 WindowsPCからSCPでファイルをLinuxサーバにアップロードして、それを実行するとこの現象起きやすいので気をつけないと。…
pip install cython でcythonをインストールすると直る。 参考: github.com
以下のコマンドで容量が大きい順に40フォルダを出せる。便利でした。 sudo du -x -h / | sort -r -h | head -40 参考: tackeyy.com
XFSではresize2fsは利用できないのが原因。 以下のようにxfs_growfs を使えばいい。 sudo xfs_growfs /dev/nvme0n1p1 参考: qiita.com
以下のようにexc_info=Trueを指定すると例外をraiseしたところからのスタックトレースを出力してくれる。 catchした例外オブジェクトを渡さなくてもいいんだね。 logger.info("hmm", exc_info=True) 参考: qiita.com docs.python.org
以下のようにconfigを設定すればいい。 app = Flask(__name__) app.config["SQLALCHEMY_ECHO"] = 1 他にも色々とflaskに設定できる項目があるので詳細は以下参照。 flask-sqlalchemy.palletsprojects.com
原因はto_csvで出力されるファイルがBOM無しUTF8で、エクセルはBOM付きでないと開けないため。 毎回BOMを付けるのは面倒なので、エクセルでしか見ないならto_excelでエクセルファイルを開いた方が楽。 pandasから読み込むのもパッケージを入れればできる。 …
原因はcommandが定義されていないことだった。 以下のようにdocker-composeファイルにcommandが定義されてないと起動後すぐに停止してしまう。 services: service: command: /bin/bash tty: true 参考: qiita.com
javaアプリなんかは起動引数がめっちゃ長くなることが多い。 そういう場合、psを普通に実行すると起動引数が見切れる。ps wwのようにwwオプションを使うと見切れず折り返してくれる。 参考: www.itmedia.co.jp
以下の二つのやり方がある。 メモリダンプを取る 以下のコマンドでダンプを取る。 jmap -dump:format=b,file=heap.bin <PID> Eclipse Memory Analyzerでダンプを見る。 参考: hkawabata.github.io Java Flight Recorderでログを取る こっちの方がより詳細な情報</pid>…
本番環境のメトリクスを見ていたら、メモリのDocker Cache領域がどんどん増えているので焦ったがこの領域はIOのキャッシュのための領域でほかのプロセスがメモリを確保しようとしたらすぐに解放してくれるので増えても問題無いっぽい。 Docker Cacheが増えて…
やり方は以下参照。チームメンバーにリリースされた差分を示すときに便利でした。 kanonji.hatenadiary.com
よくあるプラクティスとして-Xmsと-Xmxの値を同じにしてJavaアプリ起動時に一括でメモリを確保させるというのがある。 それをやると、Javaアプリ起動時から常に一定量のメモリが使用中になると思っていたがそういう挙動にならなかったのでその原因を調査した…
AGGREGATE関数を使えばできる。 以下のように非表示行を無視するオプションをつければいい。 AGGREGATE(1, 5, A:A) オプションの数値の意味は以下参照。この関数便利だなぁ。。 dekiru.net
tabulateパッケージを使えばできる。 でもコードは以下のように長くなる。。まあ普段はprint(df)でいいかな。 print(tabulate(df, headers='keys', tablefmt='psql')) 参考: stackoverflow.com
以下のようにfloat("inf")を閾値にすればいい。 pd.cut(df, [0, 1, float("inf")]) 参考: stackoverflow.com
xargsはデフォルトで半角スペースを区切り文字としてinputを分割してしまうので、 分割させないよう例えば以下のようにdelimiterを改行にしてやればいい | xargs -d '\n' 参考: stackoverflow.com
原因は%autoreloadの前にimportしていたため。 # これはだめ import my.module %load_ext autoreload %autoreload 2 # これはOK %load_ext autoreload %autoreload 2 import my.module 参考: qiita.com
dictionary[key]のようにアクセスするとkeyがなかった時にエラーになるが、 dictionary.get(key)でアクセスするとkeyがなかった時にNoneが返るだけでエラーにならない。 参考: stackoverflow.com
原因はout of memoryなので解決策は メモリを増やすか、メモリ使用量を減らすか。 因みにPandasでデータ処理する場合、処理するデータの5倍ぐらいのメモリを用意することが推奨されているらしい。 とりあえずデータ型をより小さいものにすることでメモリ使用…
以下でできる。 ax.xaxis.set_major_locator(MaxNLocator(integer=True)) 参考: stackoverflow.com