物理の駅 Physics station by 現役研究者

テクノロジーは共有されてこそ栄える

2016-01-01から1年間の記事一覧

C++で任意の文字でstringを分割する方法

std::getlineは名前の通りstreamから1行ごとにstringを得る関数だが、デリミタ(delimiter)を指定することも可能である。分かれば簡単。 std::string str = "a_ab_abc"; std::stringstream ss(str); std::string item; std::vector<std::string> vitem; while(std::getline</std::string>…

Visual Studio 2017 + OpenCV 3.2.0 + x64の初期設定 とOpenCVに関する質問の受け付け(コメント欄へ)

Visual Studio 2017 x64 で OpenCV 3.4.2 を使う方法 OpenCVをとにかく使いたい。けどNuGetは使えない、使いたくないっていう人のために、この記事の最終更新時点での最新版のインストール方法を書きました。2.4.Xの頃と比べて.libの数が減って設定が楽になりま…

2個の自作クラスの配列(std::vector<MyClass>)から重複とかを探す

2個の数列(std::vector<int>とか)から重複とかを探す - 物理の駅 Physics station by 現役研究者 の続き 2個の自作クラスの配列(ベクター)から重複等を探す方法を紹介する。Linuxのjoinコマンドを高速化する場合などに使える。 #include <algorithm>に便利な関数が用意されて</algorithm></int>…

OneDriveで非常に小さいファイルの同期が終わらない問題

OneDrive上でgitのリポジトリを管理している。 そして、頻繁にOneDriveの同期(アップロード)が終わらない問題が発生する。 gitのcommitのタイミングとOneDriveの同期のタイミングが衝突して、システムファイル関係が(MFT マスターファイルテーブルとか?)が変…

tan空間角度と、ラジアン空間の角度の話

3次元角度がtan空間で次のように与えられたとき ベクトル1 ベクトル2 角度差は cosθはドット積を用いて のように与えられるので、 よってΔθは となる arccosはC++だとacosで計算可能。

PDFで作成したグラフをベクタ形式としてPowerPointに貼り付ける方法の検討

PDFで作成したグラフを無圧縮、つまりベクタ形式でPowerPointで貼り付ける方法を検討した。 使ったのはCERNが開発するRootで作ったPDFファイルである。 試した方法は、有料のAcrobat ProとCCのIllustratorを使った5方法 Acrobatでepsに変換してPowerPointに…

ELECOM LANケーブル LD-TWST/BM200 レビュー

問:カテゴリ7対応のLANケーブル、20メートル長で10Gbpsは出るのか? ELECOM LANケーブル 爪折れ防止 CAT7対応 20m ブルーメタリック 【PlayStation 4 対応】 LD-TWST/BM200出版社/メーカー: エレコム発売日: 2013/05/26メディア: Personal Computersこの商品…

ATOK Syncで環境設定を同期させる方法

ATOK Syncでアップロード+ダウンロードをしたつもりなのに、設定が一部しか同期されないという問題が発生した。 結論から言うと、現時点で、すべての環境設定を同期させる方法はない。 http://potato.2ch.net/test/read.cgi/software/1453634331/651 651 名…

PsExecにおけるコマンド例

ファイルを削除する /c PsExec.exe HOST -u HOST\user -p password cmd /c del /f filepath タスクキル /c PsExec.exe HOST -u HOST\user -p password taskkill -f -im program.exe batファイルを起動 /c PsExec.exe HOST -u HOST\user -p password -i C:\Us…

C# WPFで各種コントロールを動的に配置し、配置したコントロールにアクセスする方法

C#

WPFで各種コントロールを動的に配置し、配置したコントロールにアクセスする方法。 stackoverflow.com 最上位の解答が役に立つ。分かってしまえば簡単ですね。 重要なところだけC#で下記に記す。 //コントロールの生成 var tbox = new TextBox(); //ここでは…

Pocoによる共有メモリの書き込み・読み出しの実装例

Pocoはc++のライブラリの一つで、boostより比較的軽量に設計されている。バージョン1.7.3を使って共有メモリの書き込み・読み出しの実装例を書いた。 読み出しでもAM_WRITEになっているのは読み出しで先にOPENしてしまうと書き込みのほうで例外が投げられる…

PocoによるTCP/IP通信のサーバー・クライアント実装例

Pocoはc++のライブラリの一つで、boostより比較的軽量に設計されている。バージョン1.7.3を使ってTCP通信のサーバー・クライアントの実装例を書いた。例外処理は甘いところがあるので適宜変更されたし。 サーバーの実装例 #include <iostream> #include <Poco/Net/Socket.h> #include <Poco/Net/TCPServer.h> #in</poco/net/tcpserver.h></poco/net/socket.h></iostream>…

PsExec でパイプの他端にプロセスがありません。と出るエラーへの対処

Error communicating with PsExec service on ****: パイプの他端にプロセスがありません。 というエラーが出たので、次のフォーラムの記述を参考に対処したメモ Windows タスクマネージャーから、全ユーザーのプロセスを表示して、PSEXESVC.exeのプロセスを…

OpenCVのgpu::countNonZeroをgpu::Streamで高速化する

cv::gpu::countNonZeroをgpu::Streamで高速化したいという需要があったので、その解決策を書いておく。 opencvの2系のcountNonZeroはstreamを使うことが出来ない。そのため、非同期処理を行い高速化する際のボトルネックになる。cv::gpu::reduceは2次元画像…

C# でWindows 上のプログラムのリソースを監視する

C#

C#で以下のリソースの監視をしたいという需要があったのでサンプルコードを公開する。 使用メモリ量 ハンドル数 GDI オブジェクト数 User オブジェクト数 using System; using System.Diagnostics; using System.Runtime.InteropServices; namespace Console…

Windows 10のアップデート後の不本意な再起動を止める方法

Windows Updateを生かしたまま、アップデート後の不本意な再起動を止める方法は存在しない。Pro版でも、Enterprise版でも。 なので、Windows Updateのサービスを止めるしかない。という結論にたどり着いた。 諦めよう、Microsoftが改心するまで。 blog.bagoo…

3Dの位置と角度を持った情報の2次元プロジェクションマップ

CERNが開発しているROOT (バージョン5)を用いた検出器内の飛跡を2次元プロジェクションに投影して描画する方法。 具体的には三次元情報を持つ飛跡を2次元に投影したい時に使う。 #include <vector> #include <random> #include <limits> #include <TArrow.h> #include <TGraph.h> #include <TAxis.h> #include <TCanvas.h> #in</tcanvas.h></taxis.h></tgraph.h></tarrow.h></limits></random></vector>…

2個の数列(std::vector<int>とか)から重複とかを探す

2個の数列から重複等を探す方法を紹介する。Linuxのjoinコマンドを高速化する場合などに使える。 続きは 2個の自作クラスの配列(std::vector<MyClass>)から重複とかを探す - 物理の駅 Physics station by 現役研究者 #include <algorithm>に便利な関数が用意されている。 ソート</algorithm></myclass>…

δtanθ - tanθグラフをδθ - tanθグラフに変換する

より正しい記述へ phst.hateblo.jp tanθを0.1刻みで、δtanθの値が一律で0.1のときにδθを計算するコードの例。 #include <vector> void main() { std::vector<double> x, y; //tanθ δtanθ for (int i = 0; i < 20; i++) { x.emplace_back(i * 0.1 + 0.05); y.emplace_back(0.1</double></vector>…

OpenMPでfor文を高速化する

openmpでfor文を高速化してみよう。OpenMPを有効にするには、Visual Studioのプロジェクトのプロパティページを開いて、C/C++の言語のOpenMPのサポートをはい(/openmp)にする必要がある。 例として1から50000までの数が素数(prime)かどうかを調べてみよう。…

Visual Studio 2013でstd::min std::maxが使えなくなった時の対処

std::max - cppreference.com Visual Studio 2013以降、Visual Studio 2015も完全にalgorithmに移動したらしいので以下の記述が必要。 #include <algorithm> //必要 int main() { int i = std::max(1,2); int j = std::min(3,4); } ちなみにVisual Studio 2012以下は以</algorithm>…

メモリリークしているソースコードの行を特定する

#include <cstdlib> #include <new> #include <memory> #include <crtdbg.h> #define _CRTDBG_MAP_ALLOC #define new ::new(_NORMAL_BLOCK, __FILE__, __LINE__) void main() { int *i = new int; _CrtDumpMemoryLeaks(); return; } これをデバックモードで実行すると Detected memory leaks!</crtdbg.h></memory></new></cstdlib>…

catchしなかった例外が発生した際の ***は動作を停止しました「WerFault」を表示させない・表示させる

問題が発生したため、プログラムが正しく動作しなくなりました。プログラムは閉じられ、解決策がある場合はWindowsから通知されます。 を表示させないプログラムは以下のとおり。 #include <exception> #include <Windows.h> void main() { SetErrorMode(SEM_NOGPFAULTERRORBOX); t</windows.h></exception>…

マルチスレッドにおける例外処理の受け渡し (VC++)

別スレッド中の例外を、本スレッドに渡す方法のメモ。動作確認はVisual Studio 2013 C++で行っている。 詳しい説明は スレッド間の例外転送 を参照してね。 #include <thread> #include <iostream> //マルチスレッド用の関数 void f1(std::exception_ptr &eptr) { try { throw </iostream></thread>…

WiMAX 2+は下り速度4.5Mbpsしか出ない

タイトルで何もかも終わったんだが、下り速度を測定してみた。まずは一番重要な速度の一つ、アニメのHD画質が見れるかどうか。 確かにアニメのHD画質は見れるようだ。4.5Mbpsしか使っていないので、そもそも大したことはないんだが。 Re:ゼロから始める異世…

高速・安全・格安100TB ストレージを構築する

高速・安全・格安100TBストレージを構築してみよう。 安全なデータ領域を確保するためには、最低でもRAID1が必須だろう。 RAID 10を構築したいが、100TBもの領域をRAID0で構築しようとすると実データ領域で4倍必要になる。100TBの領域のために400TBの領域を…

10 Gbpsのテスト

10 Gbpsを導入したのでテストしてみた。 使ったのはIntel のイーサネットサーバーアダプター X520-2とNETGEARのスイッチングハブGS752TXS。 www.intel.com GS752TXS | Product | Support | NETGEAR NETGEARのCuのSFP+のケーブル とてもいいサーバー用パソコ…

ELSA GeForce GTX 780 S.A.C を分解

ELSA GeForce GTX780 S.A.Cを分解してみた www.elsa-jp.co.jp とても簡単に分解できた。全てのパーツを外すとこの通り。本体基盤の下がヒートスプレッダー、ヒートシンク、ファン・・・説明しなくても分かる、か。 サーマルグリスを除去したメインのチップ…