投稿

4月, 2018の投稿を表示しています

[Linux] rsyncで進捗を確認する

イメージ
概要 ¶ rsync を実施する際に進捗を確認したい。 やり方 ¶ 要約 時間経過で変わる可能性のある進捗でもいいなら rsync -a --info=progress2 時間が多少かかっても確実な進捗が欲しいなら rsync -a --info=progress2   --no-inc-recursive 方法1(進捗は適宜でもいいですよ派) ¶ rsync では進捗状況を確認するオプションに ver.3.10 から対応 した。 そのオプションは --info=progress2 である。 rsync - a -- info = progress2 / what / to / backup / where / to / backup このオプションを行うと確かに進捗状況が表示されるようになるのだが、大きな階層構造を持つディレクトリをコピーしようとすると、 進捗状況が刻々と下限修正されてしまい、表示の意味がなくなってしまう。 方法2(最初からしっかりした進捗出してくれないと意味ないよ派) ¶ 進捗表示がずれてしまう問題の原因 ¶ 原因は、 rsync がver.3.0.0から導入したrecursive algorithmというアルゴリズム。 recursive algorithmは転送中にリアルタイムにディレクトリ構造を把握していく非同期な処理であり、 非同期なので最初にきっかりと結果が分かるわけではなく裏でこそこそとディレクトリ構造を把握して進捗状況を正確なものへと更新していく。 もちろん、非同期であるから転送開始自体は速やかに行われるという利点があるのだけど、進捗状況をちゃんと確認したい人間にとっては厄介かも。 そこで --no-inc-recursive ですよ ¶ そこで利用するのが --no-inc-recursive オプション。 rsync - a -- info = progress2 -- no - inc - recursive / what / to / backup / where / to / backup このオプションをつけると、recursive algorithmをオフにすることができる。 このアルゴリズムをオ

[Sphinx] 自分用のNote, Warning的なものを作成

環境: Sphin 1.7.2 概要 ¶ Sphinxで便利な note , warning を拡張したものを自作する やり方 ¶ 要約 admonition を利用する 同時に class を利用する class に応じたスタイルをCSSから作成する admonition というのが実は note , warning 系のdirectiveの元 となるクラス。これを直接宣言し、コロン2つの後にタイトルをつけてやる。 これにより普段なら「注釈」などと表示される部分を自分用の宣言に変えるこ とが可能。 つまりSphinxのrstファイルに対して、以下のように宣言をする。 .. admonition :: ここにタイトルを入れる : class : myOwnStyle ここには普段通り内容を記載する また、上記の自作admonitionの見栄えを変えたいということがあるはず。デフォ ルトだと note と同じ色になってしまうようだが、それだと紛らわしい。 そこでスタイルを変えるために上記のコードで行なっているのが、 :class: による宣言だ。 :class: で記載した英数字は全て小文字に変換された上で、HTML上の classとして要素に追加される。したがって、自分でCSSを書いてそのclassに 対するスタイルを設定してしまえばいい。 具体的にどのような要素に変換されているかは変換後のHTMLを見るとよくわか るが、以下のようになっている。 < div class = "myownstyle admonition" > < p class = "first admonition-title" > my title goes here </ p > < p class = "last" > this is the admonition text </ p > </ div > したがって、以下のようにCSSに追加してやれば見た目も変更される。 . myownstyle . admonition-

[Atom][Python] AtomのパッケージBeautifyでエラー

概要 ¶ AtomにあるBeautifyという整形用のプラグインをPythonに対して利用する際の諸注意 Python対してBeautifyした際にエラー ¶ 要約 pip install autopep8 しましょう AtomにおいてBeautifyをインストールすると ctl+alt+b というショー トカットで動作するようになる。 このときに、Pythonのパッケージとして autopep8 というものが必要となっ ているようなので先にインストールしておく必要がある。 pip install autopep8 注釈 この記事は、、、 昔はこのBearifyのエラーが発生した際に文字化けしていた + Pythonに対 する知識があまりなかったので一体何がダメなのかわからなかったためこ んな記事を書いたんだけど(3年前くらい)、今のAtomなら文字化けとかしな さそうだし、この記事もいらないかも?

[DLL][Python] C++(またはC)言語のDLL作成と読出し

イメージ
環境:Python2.7, Visual Studio Community 2015 概要 ¶ PythonでC言語(というかC++)の関数を呼び出すためのDLLの作成方法および呼 び出し方法について。 追記 検索の仕方が悪かったのか調べてもあまりいい情報が出てこなかったので 書いたのだが、調べてみる下記サイトなどPythonコードの書き方部分に関 して説明がかなり詳しい。なので、このページは主にWindowsのDLLの作製 法みたいな感じで... http://curlnoodle.hatenablog.com/entry/2013/12/30/221858 WindowsにおけるC++製DLLファイルの作成 ¶ 要約: DLL作成のためのプロジェクト設定 extern "C" によるC関数としての宣言 __declspec(dllexport) によるDLLとしての宣言 Linuxだとちょろっと書いたコードをスマートに作成できるらしいのだけれど も、WindowsでサクッとDLLを作成する方法がわからなかったのでVisual Studioのプロジェクトの設定から説明する。: [ファイル] → [新規作成] → [プロジェクト] とクリックしていき、新しいプロジェクトの作成ダイアログを開く。 [インストール済み] → [テンプレート] → [Visual C++] をと左側のリストから選んでいき、真ん中のテンプレート選択部分で [Win32コンソールアプリケーション] を選び、適当な名前を付けて[OK]をクリック。 するとWin32アプリケーションウィザードなるものが始まる。 [次へ] を押す。次の画面で [アプリケーションの種類] → [DLL(D)] を選択し、そのまま完了。 デフォルトで 作ったプロジェクト名.cpp みたいなファイルが開かれていると 思うがここに関数を記述すればOK。以下のような感じ。 extern "C" __declspec ( dllexport ) void test_dll () { std :: cout << "this is the test" ; } キ