月別アーカイブ: 2017年08月08日

コンピュータまわりの自分用メモ

自分用メモです.参考になるならどうぞ.

MATLAB

以下,主に mistblade + R2013a 用.

  1. linux版を画面を飛ばしてるときのキーボードショートカット
    デフォルトではEmacs bindingになっている.[HOME]-[preferences]の[Keyboard]-[Shortcuts]でbindingをWindowsにできる.
  2. Figureウィンドウをfigファイルとして保存する.
    最近のMatlabにはsavefigというコマンドがあるが,mistblade上で動いているR2013aにはそれがないので,代わりに saveas(file_handle, file_name, 'fig')を使う.
  3. サーバー上でMatlabスクリプトファイルをバッチ処理する.
    長時間動かすスクリプトは,リモートサーバー上で動かし,自分のPC自体は帰宅時に電源を落としてしまいたいもの.Matlab でこれをやるには,次のようにする.(シェルのコマンドラインから)

    nohup matlab -nodisplay -r 'myscript; exit' &

    -nodisplayオプションにより,Figureなどの表示を抑制する.抑制したFigureは,それ自体が必要ならsaveasで保存.nohupはログアウト後もプロセスが殺されない用.スクリプト実行中の標準出力等は,必要なら > /dev/nullでゴミ箱へ.

UNIX

  1. テキストファイルでn行に1行を抽出する
    数値データを格納したテキストファイルの場合.行方向にデータが並んでいて,巨大すぎてpgfplotsなどがメモリオーバーを起こす場合は,次のコマンドで行を抽出できる.
    cat file.dat | perl -ne 'print if $. % 4 == 1;' > file_s.dat
    これは4行に1行を残す.

WordPress

  1. WordPress用のPHPを5.3から5.4以降にバージョンアップする際の致命的エラー.
    Wordpressを5.x系にバージョンアップする際,PHP自体を5.6系以上にバージョンアップする必要がある.しかしながら数理3研のウェブサーバーで,5.3系から5.4系以上にバージョンアップする際,WordpressがInternal Server Errorを吐いてどうしようもなくなったとき調べたこと.
    結論から言うと php.iniの問題.5.4系以降,次のdirectiveが廃止されており,php.iniに残っているとfatal errorになる.これらをコメントアウトすればよい.
    allow_call_time_pass_reference
    register_long_arrays
    なお,このエラーを突き止めるのに種々ログ表示を駆使した.どのようにログ表示ができるかについてもメモを書いておく.
    PHPエラーは,同じ php.ini でいくつかの directive をオンにすると出力される.画面上にも表示できるが,error_log = ファイル名(フルパス必要) でファイル出力するのがお勧め.
    また,httpd自体のエラーログも参考になる.ただしこれは3研サーバーの管理者しか見えないので,必要があれば管理者に依頼すること.