tmuxの画面が更新されないときに

sshログインした環境でtmuxをよく使っているのだが, ときどき何かのことで画面が更新されなくなる. フリーズしているわけではなく, tmuxコマンドは動く. コマンドをうつなどすると結果が表示されず(そもそも打ち込んだコマンドも見えない), 別のペインに移動…

C++のgetlineでstringをsplitする際の注意点2

C++のgetlineでstringをsplitする際の注意点 - bettamodokiのメモのつづき. Pythonのsplit関数の挙動を確認してみた. print("aaa,bbb,ccc".split(',')) # => ['aaa', 'bbb', 'ccc'] print("aaa,bbb,,ccc".split(',')) # => ['aaa', 'bbb', '', 'ccc'] print(…

C++のgetlineでstringをsplitする際の注意点

C++においてstringをある文字で分割したい場合に, getlineを使って実装する例が検索するとよく出てくるが特殊な場合に罠に陥るので注意. 例えば以下のような実装(https://faithandbrave.hateblo.jp/entry/2014/05/01/171631 を一部改変). #include <iostream> #include <string></string></iostream>…

Cythonのconst_iterator

CythonのC++対応についてはだいぶ怪しいところがある. また, const対応についても同じくである.constは関数引数内では利用できるため, std::vector const&を引数とする関数を作成したときに, const_iteratorでループを書く必要があった. ここで通常のC++の通…

何も考えずにRustに入門する5

Rustではソースコード中のコメントからドキュメントを作成できる."cargo doc"コマンドがそれだが, 上の例だと"error: cannot document a package where a library and a binary have the same name. Consider renaming one or marking the target as `doc = …

何も考えずにRustに入門する4

Rustにはそもそもユニットテストフレームワークがあるようだ. "cargo test"とするとテストが実行される.今回は自前で"src/lib.rs"を用意したので, このままだと何もテストされない. というわけでユニットテストを書いてみる. #[macro_use] extern crate log;…

何も考えずにRustに入門する3

"main"から呼び出す自前の関数はクレートとして分けておきたい. ライブラリとして切り出せそうなものは"main.rs"とは別のファイルにまとめることにする.まず, "src/lib.rs"というファイルを作成し, 自前の関数などはこちらに記述する. 上の例の場合, #[macro…

何も考えずにRustに入門する2

つづいてログメッセージを出力できるようにする. そのためにはまず依存するクレートCrateを宣言して読み込む必要がある.まずは"Cargo.toml"の依存関係に"log"と"env_logger"を追加する. [dependencies] log = "*" env_logger = "*"あとはコードでこれらを呼…

何も考えずにRustに入門する1

Bash on Ubuntu on Windows (Windows 10)でやる.とりまインストールから. sudo apt-get install rustc cargo実行可能アプリケーションのプロジェクトをおもむろに作成して実行する. ~$ cargo new bar --bin Created binary (application) `bar` project ~$ c…

Windows 10のBash on Ubuntu on WindowsでPython 3.6

Pyenvで入れるのが楽そうだったが, Pyenvを使うのが初めてだったため少しはまった. Pyenv自体は以下で入る. $ curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash最後にメッセージが出てくる通り, .bashrc…

C++のif条件式の中での変数宣言

dynamic_castを利用する際に以下のように書く場面が出てくる. Base* base = new DerivA(); if (DerivA* derivA = dynamic_cast<DerivA*>(base)) { ; // do something with derivA } if (DerivB* derivB = dynamic_cast<DerivB*>(base)) { ; // do something with derivB } この</derivb*></deriva*>…

Cythonで'bool' is not a constant, variable or function identifier

Cythonである変数がbool型であるかを調べるのに"isinstance(val, bool)"のようにしたところ, "'bool' is not a constant, variable or function identifier"と怒られた. どうも, Cythonで扱うbool型には二種類あるらしく*1, libcppのboolを用いているとこの…

KinesisキーボードでCtrl, Alt/Option, Windows/Commandがおかしなことになったとき

どうすれば良いかが下のページに書いてある.https://www.kinesis-ergo.com/support/technical-support/troubleshoooting-advantage/"=w", "=m", "=p"のいずれかを同時押しするとキーボードのモードが変わるらしい. 時々気が付かずにやらかすのでメモ.

CMakeで現状のインクルードパスを文字列として得るには

インクルードパスをCMakeで指定するにはinclude_directoriesを利用するが, 逆に今その関数によってどこが追加されているかを文字列として取得したい.まず, その情報自体はINCLUDE_DIRECTORIESにあるが, これはプロパティであって(環境)変数ではない. そこで…

Pythonのクラスメンバ変数とメタクラス

とりあえず以下のようなプログラムについて考える. class Reservoir(object): def get(self, key): value = key * 3 # Do something hard return value if __name__ == "__main__": obj = Reservoir() print(obj.get('KEY1')) # => KEY1KEY1KEY1 print(obj.g…

webm動画をgifアニメーションにする

メモ. $ ffmpeg -i input.webm frames/image-%04d.png $ mogrify -crop 521x550+55+0 +repage frames/image-*.png $ convert -delay 16 -layers optimize frames/image-*.png output.gifミソはmogrifyの+repageオプション. これがないと切り出した部分が透過…

matplotlibの三次元プロットの見栄えを良くする その2

上の例でsurfaceでなくwireframeにしたければ, STARTからENDまでを x = np.arange(-3, 3, 0.25) y = np.arange(-3, 3, 0.25) X, Y = np.meshgrid(x, y) Z = np.sin(X)+ np.cos(Y) for i in range(3): ax.plot_wireframe(X, Y, Z * (i * 0.5 + 1), color=colo…

matplotlibの三次元プロットの見栄えを良くする その1

seabornはmatplotlibの二次元プロットの見栄えを良くしてくれるが, 三次元となるとうまくいかない. これはseabornのせいというよりもむしろ, matplotlibでの二次元と三次元の扱いが全く別である上に, 三次元では相当にパラメータのハードコードが行われてい…

LaTeXで二重引用符

日本語でLaTeXの文書を作成する際に, 半角の二重引用符をつかうと向きが揃ってしまってうまくいかない. シングルでも同じくだめ. 常識かもしれないが, バッククォートと使い分ける必要がある. つまり, これが`単引用符'の場合で, こちらが``二重引用符''の場…

ImportError: cannot import name SignedJwtAssertionCredentials

oauth2clientを使って以下のスクリプトを試していたが, タイトルにあるようなエラーで動かなかった.http://stackoverflow.com/questions/14063124/importerror-cannot-import-name-signedjwtassertioncredentials上のスレッドでも良く指摘されているようにpy…

Pythonにおけるwith構文の挙動を簡単に確認する

with構文の使い方というか実装の仕方を忘れがちなのでメモがてら簡単な確認コードを書いておく. class Test(object): def __init__(self, *args, **kwargs): print('__init__', args, kwargs) def __enter__(self, *args, **kwargs): print('__enter__', arg…

C++でcombination

STLにはnext_permutaionが用意されているが, next_combinationはない. かつてBoostにはboost/alogorithm/combination.hppというものがあったようだが, 標準装備ではなさそうである (ざっとみてみたが, 下記のものがどうもそれらしい).https://github.com/hyr…

Windows 7のPython 2.7でvtkを使う

とりあえず考えた結果, ParaViewを利用してPython VTKを使えるようにした.Paraviewのパスが例えば"C:\Program Files (x86)\ParaView 4.3.1"であったとき, コンピュータのプロパティからシステムの詳細設定, 環境変数と選ぶ. ユーザー環境変数でもシステム環…

MatplotlibでDISPLAYが設定されていない場合の描画

リモートサーバなどでMatplotlibを利用したグラフの描画をする場合に, いちいちX Windowを飛ばすのは無駄すぎるのでshowではなくsavefigをDISPLAYを利用することなく実行したい.結論だけ言うとバックエンドを以下のようにして切り替えればいける. import mat…

C++でconstポインタとconst参照とconstポインタconst参照

先日イテレータの扱いで少し確認してみたが, 今度はポインタの扱いを確認してみた. 見た目は結構エゲつないが, ポインタもconst参照渡しできる. int main() { typedef int T; T x(10), y(5), z(1); T* Tptr(&x); T const* Tconstptr(&x); // == const T* T* …

C++でのイテレータの参照

C++でイテレータを関数の引数として渡すときに参照渡しをすることにしたが, const参照を渡した場合にイテレータが指している値を変更可能なのかどうか確認してみた. #include <iostream> #include <vector> int main() { std::vector<int> vec = {0, 0, 0, 0, 0}; std::cout << "vec</int></vector></iostream>…

時間スケール

時間スケールについて考える. 普段ならば秒単位で考えれば済む話なのだが, 計算時間を概算する際に何日かかるのか?などと聞かれてすぐに回答できずに困る. スケールだけでも知っておけば概算には十分だ. 秒 分 時間 日 週 月 年 1 60 3,600 86,400 604,800 2…

sedを練習してみた その1

文字列処理をコマンドで行うためにsedを練習してみた. とりあえず, テキストファイルから特定のサッフィクスではじまる行だけを取り出してきて, そのサフィックスを除いたものを出力してみる.まずは特定の行を取り出すところ. grepで良いんじゃないかという…

Ubuntu 14.04でBluetoothヘッドセットがうまく機能しない

具体的にはaudio-technicaのATH-BT03を利用していたのだが, Ubuntu 14.04にしてから接続することはできるのだが音声が聞こえない状態であった. 接続後にSound settingを選ぶとHeadsetとしてATH_BT03が表示されるのだが, 選択しても何も起こらない. 問題はA2D…

Cythonを含むライブラリのパッケージ化でImportError

基本的には下記のページが参考になる.https://github.com/cython/cython/wiki/PackageHierarchyほとんど問題なく, "python setup.py build_ext -i"で上の例ならdvedit以下にcore.soができ, "import dvedit.core"が通るのだが, "python setup.py build_ext in…