ホーム » メモ (ページ 16)
「メモ」カテゴリーアーカイブ
NUC , Synology …
Dropbox や WD Cloud ,HDL-AHW を使用してきたが…
Web サーバの環境を持ちたいと思い,ちょっと調べてみた (幾つかは今まで使用していての個人的な感想).
まず 1 年位前に一度調べた情報
以前はアイオーデータやバッファローから出ていた NAS で,Web サーバ機能が使えた?
アイオーデータ リモートリンク機能紹介 Remote Link HDL-S , HDL2-S
バッファロー Web サーバー機能 搭載機能一覧
他に QNAP なども見たが,その時はそれ以上時間が取れずにそこで終わっていた.
また,WD Cloud で 1 ファイルや,あるフォルダ以下などのアクセスはできていたので特に困ることはなかった.
最近になり,夏の事と,2017/10/31 に ここ(//www.ac.auone-net.jp/~iwao.n/) が使えなくなるとメールが来てまた検討し始めた.
WD Cloud でいろいろとやってみたが,単一ファイル以外はあまり使い勝手がよくない.
Windows PC であれば IIS が使えるので,NUC に絞って調べていた.
価格や消費電力を考えると手頃なものからあるが,耐久性(24 時間入れっぱなしや熱)に問題がありそう.
物によってはストレージ(C ドライブ)の容量不足の不安もあり.
WD Red 搭載の NAS を使い始めて 2 年半位になるが,自分の用途ではそれなりに安定していると思う.
環境仕様の動作時温度が 0~65 とあるので少し安心感がある (WD Cloud で夏場 60 ℃ 近くになることがあった).
また,HDD 自体よりもコントローラ部が壊れることがそれなりにある様に感じる.
Synology と QNAP を悩んでいるが,DSM 6.0 ライブデモというのがあった.
QNAP のライブデモ . ASUSTOR の ADM – Live Demo .
今の所,DS115j + WD Red か?本当は DS116 の方が良さそうだが,そこまで使うかがわからないので…
Synology NAS ユーザーガイド DSM 6.0 基準
2020/09 http://mish.work/joomla/various/nas/nas.html
HVTR-BCTX3 リモート視聴
この夏実家に帰ったのでその時試したこと.
Win 10 T90Chi を使用.
インターネット経由で,「持ち出せる番組」を問題なく視聴可能なことを確認.
ただ,起動直後の安定するまでは?操作を「ゆっくり」の方が良いみたい.
宅内での操作と同様に行うと「接続エラー」になることがあった.
帰りの新幹線で,名古屋を過ぎて新横浜の手前位まで.
モバイルルータは,MR03LN .
録りためたアニメを視聴してみた.
予想通りではあるが,長いトンネルでは途切れたり再生が止まったりした.
それ以外の場所では特に問題なく視聴可能だった.
早送りなどのスキップ操作は,あまり思うように操作できなかった.
2016/08/21
以前,DR で録画したものなどの宅内での視聴で途切れていた様に思うが,大丈夫になった?
Win 10 1607 ?
HDL-AH2.0W 追加
特に難しいところもなく設定はできた.
接続後,最初に「Magical Finder」をダウンロードして設定しなければならないのがちょっと面倒か?
速度は WD Cloud と同等程度と思う.
2016/07/15
VHD を置いて,Virtual PC を動かしてみた.
速度は特に問題ない.
休止状態にした時など何か動作が不安定.
robocopy を使って DevS などからソースや exe をバックアップしてみた.
温度が上がるとなのか,exe を大量にコピーしている時に遅くなる.
それと,/fft を付けないとうまくない.WD Cloud は,その様なことはなかった.
2016/07/17
DiXiM Digital TV plus for I-O DATA の旧バージョンをインストール.
(V1.10 では,Intel GPU 以外で動作しないため)
少々難ありだが,何とか再生はできる.エラーが出てうまく起動できない時もあり.
このエラーが表示されても,無視して(気にならない位置に移動して),再生は可能.
他に次の様なエラーも,
他に「言語バー」がタスクバーに入ってしまう.
2016/07/30
Z2 と T460 からのダビングは特に問題なし.
Z2 から HVTR-BCTX3 へはダビングできない?
T460 からは可能.
HVTR-BCTX3 その後
2016/07/07
録画予約の情報が消えていた.
また,録画リストからの「番組説明」で正しく表示されない.
再生を始めてからの番組説明は,正しく表示できている.
購入する時 GV-NTX2 と迷ったが,自分の用途としては HVTR-BCTX3 で正解だったと思う.
PC の問題なのかもしれないが,「テレキングリモート」や「テレキングプレイ」では,操作が面倒に感じる.
107SH の Smart Familink で,「持ち出し番組」などの再生は音声のみになってしまう.
Android 4.0.4 のため,テレキングプレイなどはインストールできない.
2016/07/14
ファームウェアの更新で,予約情報が消える現象は直った?
高 DPI – 3
HVTR-BCTX3 , AVHD-VR2.0 追加
HVTR-BCTX3 と AVHD-VR2.0 を追加.
TV との接続ではなく,PC モニタ(21 インチ HDMI 接続)と接続.
特に問題なく視聴可能.
T90Chi に「テレリモ」と「テレプレ」をインストール.
DBR-T460 に録画しておいたビデオが再生できることを確認.
Wi-Fi 環境のせい?か,時々途切れることがある.
リンク速度は 100 Mbps あるが,受信速度が 10 Mbps を下回ると途切れるみたい.
MBP の VirtualBox の Win 10 で試すと,
「テレリモ」はインストールでき操作もできるが,「テレプレ」はインストールできなかった.
2016/06/23
昨日ちょっとわからなかったのが,DBR-T460 に録画したものの再生.
「ホーム」-「録画リスト」-「ホームネットワーク」で「DBR-T460」が表示される.
高 DPI – 2
CMetaFileDC::CreateEnhanced の lpBounds を指定していたが,うまくなかった様で NULL に.
また,これとは異なるが再生デバイスが異なる場合うまくなかったので,
ENHMETAHEADER の rclFrame ではなく rclBounds に変更.
何を参考にしたのか不明だが,幅を求めるのに TEXTMETRIC だけを使用していた.幾つかあり.
CComboBox::SetDroppedWidth
CListBox::SetHorizontalExtent
CDC::GetTextExtent
WD Cloud その後
昨年の秋に追加した WD Cloud .
最近,気温が高くなってきて…
気温 + 25 ℃くらいになる様なので,扇風機で冷やしている.
ファンレスの場合これが心配.
別の WSS の NAS は,ファンがうるさくなるが 50 ℃になることはなかったと思う.
PC の D ドライブの 64 GB のファイルをコピーして,25 分位(42 MB).
ファイルをバックアップしていて,exe など数 MB のファイルの場合,極端に遅くなることがある.
Virtual PC の VHD を WD Cloud に置いての動作.
「休止状態」にする時,うまく移行できない時が何度かあった.
速度的にはローカルの HDD などと比べても遜色ない様に感じる.
_MBCS _tcspbrk
MBCS.exe で _tcspbrk を使用していて,ファイルパスの 0x5c の認識がうまくなかった.
_tcs… の関数を MBCS exe としてデバッガで見てみると
30: LPTSTR result1 = _tcschr (_T(“Test”),_T(‘s’)) ;
0040238A push 73h
0040238C push offset string “Test” (0048b0b0)
00402391 call @ILT+985(__tcschr) (004013de)
00402396 add esp,8
00402399 mov dword ptr [ebp-10h],eax
31: LPTSTR result2 = _tcsstr (_T(“Test”),_T(“sp”)) ;
0040239C push offset string “sp” (0048b0ac)
004023A1 push offset string “Test” (0048b0b0)
004023A6 call strstr (0042d170)
004023AB add esp,8
004023AE mov dword ptr [ebp-14h],eax
32: LPTSTR result3 = _tcspbrk(_T(“Test”),_T(“sp”)) ;
004023B1 push offset string “sp” (0048b0ac)
004023B6 push offset string “Test” (0048b0b0)
004023BB call strpbrk (0042d130)
004023C0 add esp,8
004023C3 mov dword ptr [ebp-18h],eax
33: size_t result4 = _tcsspn (_T(“Test”),_T(“sp”)) ;
004023C6 push offset string “sp” (0048b0ac)
004023CB push offset string “Test” (0048b0b0)
004023D0 call @ILT+1260(__tcsspn) (004014f1)
004023D5 add esp,8
004023D8 mov dword ptr [ebp-1Ch],eax
Afx.h をインクルードすると?
576: int CString::FindOneOf(LPCTSTR lpszCharSet) const
…
579: LPTSTR lpsz = _tcspbrk(m_pchData, lpszCharSet);
5F42E312 mov edx,dword ptr [lpszCharSet]
5F42E315 push edx
5F42E316 mov eax,dword ptr [this]
5F42E319 mov ecx,dword ptr [eax]
5F42E31B push ecx
5F42E31C call _tcspbrk (5f4012b0)
5F42E321 add esp,8
5F42E324 mov dword ptr [lpsz],eax
35: LPTSTR result1 = _tcschr (_T(“Test”),_T(‘s’)) ;
00401D14 push 73h
00401D16 push offset string “Test” (004230b0)
00401D1B call @ILT+485(__tcschr) (004011ea)
00401D20 add esp,8
00401D23 mov dword ptr [ebp-14h],eax
36: LPTSTR result2 = _tcsstr (_T(“Test”),_T(“sp”)) ;
00401D26 mov esi,esp
00401D28 push offset string “sp” (004230ac)
00401D2D push offset string “Test” (004230b0)
00401D32 call dword ptr [__imp__strstr (00426668)]
00401D38 add esp,8
00401D3B cmp esi,esp
00401D3D call _chkesp (0040e246)
00401D42 mov dword ptr [ebp-18h],eax
37: LPTSTR result3 = _tcspbrk(_T(“Test”),_T(“sp”)) ;
00401D45 mov esi,esp
00401D47 push offset string “sp” (004230ac)
00401D4C push offset string “Test” (004230b0)
00401D51 call dword ptr [__imp__strpbrk (0042666c)]
00401D57 add esp,8
00401D5A cmp esi,esp
00401D5C call _chkesp (0040e246)
00401D61 mov dword ptr [ebp-1Ch],eax
38: size_t result4 = _tcsspn (_T(“Test”),_T(“sp”)) ;
00401D64 push offset string “sp” (004230ac)
00401D69 push offset string “Test” (004230b0)
00401D6E call @ILT+655(__tcsspn) (00401294)
00401D73 add esp,8
00401D76 mov dword ptr [ebp-20h],eax
VC 11 以降の ODMenu
自前の UndoRedo テンプレートで,VC 11 以降メニューの表示が更新されなくなった.
対応は,アプリケーションクラスのヘッダで,ODMRoot.hxx のインクルードを追加すれば良い.
これとは別の動的なメニューも正しく表示できてないが,こちらはまだ原因を特定できてない.
CCmdUI::SetText
コンストラクタで static
次の様なクラスで,VC 14 ではコンストラクタ内の static を呼出した段階で止まってしまう?
VC 12 まででは OK .
class T_static {
public:
T_static () ;
} ;
T_static::T_static ()
{
{
static T_static root ;
}
std::tout << _T("T_static") << std::endl ;
}
コンストラクタの初期化動作を次の様に変更.
T_static::T_static ()
{
static bool Initialized = false ;
if (!Initialized) {
Initialized = true ;
static T_static root ;
}
std::tout << _T("T_static") << std::endl ;
}
VC 6 コンソール AP を VC 11 で…
VC 6 コンソール AP を順にアップしたプロジェクトを VC 11 でビルドすると,
—— すべてのリビルド開始: プロジェクト: T_DbgCls, 構成: Debug Win32 ——
T_DbgCls.cpp
_WIN32_WINNT not defined. Defaulting to _WIN32_WINNT_MAXVER (see WinSDKVer.h)
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\sal_supp.h(57):
warning C4005: ‘__useHeader’ : マクロが再定義されました。
c:\program files (x86)\microsoft visual studio 11.0\vc\include\sal.h(2872) :
’__useHeader’ の前の定義を確認してください
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\specstrings_supp.h(77):
warning C4005: ‘__on_failure’ : マクロが再定義されました。
c:\program files (x86)\microsoft visual studio 11.0\vc\include\sal.h(2882) :
’__on_failure’ の前の定義を確認してください
c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\atlcore.h(638):
error C2039: ‘SetDefaultDllDirectories’ : ‘`global namespace” のメンバーではありません。
c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\atlcore.h(638):
error C2065: ‘SetDefaultDllDirectories’ : 定義されていない識別子です。
c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\atlcore.h(640):
error C2065: ‘LOAD_LIBRARY_SEARCH_SYSTEM32’ : 定義されていない識別子です。
========== すべてリビルド: 0 正常終了、1 失敗、0 スキップ ==========
プロジェクト設定の,「プラットフォームツールセット」を「Visual Studio 2012 (v110) 」とすれば通る.
さらに,VC 12 では,
—— ビルド開始: プロジェクト:T_DbgCls, 構成:Debug Win32 ——
T_DbgCls.obj : warning LNK4075: /EDITANDCONTINUE は /OPT:LBR の指定によって無視されます。
LINK : fatal error LNK1104: ファイル ‘mfc120d.lib’ を開くことができません。
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
::SaveUTF8
xml などを保存する時, ::SaveUTF8(outName, outStr) ; の様にしていた.
動作としてはそれ程問題なかったように思うが,32 ビット exe で対象のデータが 50 MB 位を超えるとメモリ不足に…
例えば 100 MB の xml データの場合,
もとのデータの Xml_E で 200 M,tstring の outStr でも 200 M.
保存する前に,UNICODE から,UTF8 に変換するために 100 M.
200 M の連続領域が確保できないことが多いみたい.
::SaveUTF8 で,v_tstring (文字列の配列)形式のものを作成.
bool SaveUTF8 (LPCTSTR pathName,const v_tstring& strAry)
{
FILE* ofp = ::Open_File(pathName,_T(“wb”)) ;
for (size_t index=0 ; index<strAry.size() ; index++) {
tstring str = strAry[index] + _T(“\r\n”) ;
std::string u8Str = ::To_UTF8(str.c_str()) ;
v_char v_chr = ::To_v_char(u8Str) ;
::fwrite(&v_chr[0],sizeof(char),v_chr.size(),ofp) ;
}
::fclose(ofp) ;
return true ;
}
UNICODE から UTF8 への変換時間などはそれほど気にならない.100 MB のファイル 800,000 行で 10 秒程度.
幾つかの形式で保存した時のファイルサイズ
OBJ | AMF | DAE | X3D | PLY | AC | |
---|---|---|---|---|---|---|
サイズ MB | 111 | 368 | 85 | 29 | 191 | 57 |
比率 | 1.00 | 3.31 | 0.76 | 0.26 | 1.71 | 0.51 |
VC 6 Release inline
次の様な呼出しで,Release ビルドでうまく動作しないことがあった.
…\PntFnc\TCrossL\TCrossLD.cpp 2 円の交点のエラー時の動作
Vd2 cp1 = ::get_point_on_line (l1c,l2c,l1r) ;
デバッグ版では意図した動作となる.
inline Vd2 get_point_on_line ( const Vd2& ls, const Vd2& le, const double d )
{
if (ls == le) { return ls ; }
Vd2 unit = (le-ls).Normalized() ;
Vd2 pos = ls + unit * d ;
return pos ;
}
ls と le を比較している部分で抜けてしまっている?
VC 7 では OK.
よくわからないので,間接的に呼出す様に変更.
inline Vd2 get_point_on_line(const Vd2& ls,const Vd2& le,const double d) { return get_point_on_line_(ls,le,d); }
内積で誤差?
以前書いたコードで次の様にしていた.
デバッグ版では単位ベクトルにすると誤差が大きい様に感じたが,リリース版ではそれ程でもない?
double Naiseki (const P3& p1,const P3& p2) { // → → → → // a・b=|a||b|cosθ // a.x*b.x+a.y*b.y+a.z*b.z=sqrt(ax*ax+ay*ay+az*az)*sqrt(bx*bx+by*by+bz*bz)*cosθ // ... a,bのベクトルが単位ベクトルの時 // sqrt(ax...) と sqrt(bx...) は 1 // a.x*b.x+a.y*b.y+a.z*b.z=1*1*cosθ // a.x*b.x+a.y*b.y+a.z*b.z=cosθ // → → // a・b=ax*bx+ay*by+az*bz P3 p1u = p1.Uni() ; P3 p2u = p2.Uni() ; // return (p1u.x*p2u.x+p1u.y*p2u.y+p1u.z*p2u.z) ; // 誤差の補正 double dp = p1u.x*p2u.x+p1u.y*p2u.y+p1u.z*p2u.z ; if (dp<-1 || 1<dp) { if (dp < -1.) { dp = -1. ; } if (dp > 1.) { dp = 1. ; } } return dp ; } P3 Gaiseki (const P3& p1,const P3& p2) { // → → → → // a×b=|a||b|sinθ・c // → → // a×b=(ay*bz-az*by,az*bx-ax*bz,ax*by-ay*bx) P3 pt ; pt.x = p1.y * p2.z - p1.z * p2.y ; pt.y = p1.z * p2.x - p1.x * p2.z ; pt.z = p1.x * p2.y - p1.y * p2.x ; return pt ; }
WD Cloud に Joomla
WD Cloud に Joomla を追加しようとして,データベースの設定でつまずいていた.
ユーザ名がわからず,検索していたら phpMyAdmin を設定すればよさそうとわかった(pdf の 150 ページ辺り).
これで,ユーザ名に admin を指定して設定できた.
Win 10 10586
ドロップダウン付のツールバーで,ボタンが切れる現象は直った?
VS 2005 で作成した「Web セットアップ プロジェクト」のインストールはまだできない?
2015/12/10
ドロップダウン付のツールバーのサイズが正しくない現象が XP でも発生.
初期の Win 10 で現象が発生しやすかったことは確かだが,もっと他にも条件がありそう.
MFC 8 やフラットかどうかなど.
XP で発生した時,MFC 6 の exe は問題なかった.
いつも使用している環境では,フラットにしていないことが多い.
vector -> tstring
以前 MFC を使用した StringArrayToString を変更したが,今回は STL 版.
tstring String_Join (const std::vector<tstring>& srcAry,LPCTSTR sp)
{
tstring str ;
for (size_t index= 0 ; index<srcAry.size() ; index++) {
str += srcAry[index] ;
if (index+1 == srcAry.size()) { continue ; }
str += sp ;
}
return str ;
}
MFC 版は VC 6 までだったが,STL 版では VC 7 も遅い.
tstring String_Join (const std::vector<tstring>& srcAry,LPCTSTR sp)
{
tstring str ;
v_tstring tmpSA ;
tstring tmpStr ;
for (size_t index= 0 ; index<srcAry.size() ; index++) {
tmpStr += srcAry[index] ;
if (index+1 == srcAry.size()) { continue ; }
if ((index%128) == 100) {
tmpSA.push_back(tmpStr) ;
tmpStr.erase() ;
continue ;
}
tmpStr += sp ;
}
if (!tmpStr.empty()) {
tmpSA.push_back(tmpStr) ;
}
if (tmpSA.size() > 1) {
str = ::String_Join(tmpSA,sp) ;
}
else if (tmpSA.size() == 1) {
str = tmpSA[0] ;
}
return str ;
}