2012/08/20

stlをincludeしたら別ファイルでxdebugやxlocaleで大量のエラーが出た

ちょっとこまったのでメモ。


■症状
A.hをいじったら、何もいじってない別のB.cppのコンパイルエラーが大量に出た。
(WindowsXP, VisualStudio2008, デバックビルドのみ)

<A.h>
#include

<B.cpp>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#include "A.h"


<エラー>
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xdebug(32) : error C2365: 'operator new' : 再定義; 以前の定義は '関数' でした。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xdebug(32) : error C2491: 'new' : dllimport データ の定義は許されません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xdebug(32) : error C2078: 初期化子の数が多すぎます。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xdebug(32) : error C2440: '初期化中' : 'int' から 'void *' に変換できません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xdebug(32) : error C2143: 構文エラー : ';' が '(' の前にありません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xdebug(32) : error C2226: 構文エラー : 'size_t' 型指定子の前あるいは内部で構文エラーが発生しました。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xdebug(33) : error C2059: 構文エラー : ')'
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xdebug(36) : error C2365: 'operator new' : 再定義; 以前の定義は '関数' でした。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xdebug(36) : error C2491: 'new' : dllimport データ の定義は許されません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xdebug(36) : error C2078: 初期化子の数が多すぎます。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xdebug(36) : error C2440: '初期化中' : 'int' から 'void *' に変換できません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xdebug(36) : error C2143: 構文エラー : ';' が '[' の前にありません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xdebug(36) : error C3409: 空の属性ブロックは認められません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xdebug(36) : error C2226: 構文エラー : 'size_t' 型指定子の前あるいは内部で構文エラーが発生しました。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(143) : error C2059: 構文エラー : '文字列'
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(144) : error C2091: 関数は関数を返せません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(144) : error C2802: 静的なメンバ 'operator new' に仮引数リストがありません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(144) : error C2333: 'std::locale::facet::operator new' : 関数宣言のエラーです。関数の本体は無視されます
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(149) : error C2059: 構文エラー : '文字列'
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(151) : error C2091: 関数は関数を返せません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(151) : error C2556: 'void *(__cdecl *std::locale::facet::operator new(void))(size_t,const std::_DebugHeapTag_t &,char *,int)' : オーバーロード関数は、'void *(__cdecl *std::locale::facet::operator new(void))(size_t)' と戻り値の型のみが異なります。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(152) : error C2059: 構文エラー : 'return'
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(152) : error C2238: ';' の前に無効なトークンがあります。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(155) : error C2628: 'std::locale::facet' の後に 'void' を続けて記述できません(セミコロン ';' で区切ってあるか確認してください)。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(157) : error C2487: 'delete' : dll インターフェイス クラスのメンバを dll インターフェイスと共に宣言するのは無効です。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(157) : error C2817: 'operator delete' の戻り値の型は 'void' 型でなければなりません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(157) : error C2333: 'std::locale::operator delete' : 関数宣言のエラーです。関数の本体は無視されます
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(162) : error C2487: 'delete' : dll インターフェイス クラスのメンバを dll インターフェイスと共に宣言するのは無効です。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(169) : error C2523: 'std::locale::~facet' : デストラクタ が、別の名前で宣言されています。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(170) : error C2487: '{dtor}' : dll インターフェイス クラスのメンバを dll インターフェイスと共に宣言するのは無効です。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(174) : error C2590: 'facet' : ベース/メンバ初期化子リストを持つことができるのはコンストラクタだけです。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(174) : error C2487: 'std::locale::{ctor}' : dll インターフェイス クラスのメンバを dll インターフェイスと共に宣言するのは無効です。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(186) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(187) : error C2143: 構文エラー : ';' が '&' の前にありません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(187) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(187) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(187) : error C2143: 構文エラー : ',' が '&' の前にありません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(187) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(119) : error C2327: 'std::locale::_Refs' : 型名、スタティック、または列挙子ではありません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(119) : error C2065: '_Refs' : 定義されていない識別子です。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(120) : error C2327: 'std::locale::_Refs' : 型名、スタティック、または列挙子ではありません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(120) : error C2065: '_Refs' : 定義されていない識別子です。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(127) : error C2327: 'std::locale::_Refs' : 型名、スタティック、または列挙子ではありません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(127) : error C2065: '_Refs' : 定義されていない識別子です。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(127) : error C2327: 'std::locale::_Refs' : 型名、スタティック、または列挙子ではありません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(127) : error C2065: '_Refs' : 定義されていない識別子です。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(128) : error C2327: 'std::locale::_Refs' : 型名、スタティック、または列挙子ではありません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(128) : error C2065: '_Refs' : 定義されていない識別子です。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(129) : error C2327: 'std::locale::_Refs' : 型名、スタティック、または列挙子ではありません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(129) : error C2065: '_Refs' : 定義されていない識別子です。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(163) : error C2059: 構文エラー : ')'
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(197) : error C2504: 'facet' : 定義されていない基本クラスが宣言されています。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(207) : error C2061: 構文エラー : 識別子 'facet'
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(222) : error C2061: 構文エラー : 識別子 'facet'
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(228) : error C2061: 構文エラー : 識別子 'category'
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(231) : error C2061: 構文エラー : 識別子 'category'
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(235) : error C2061: 構文エラー : 識別子 'category'
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(239) : error C2061: 構文エラー : 識別子 'category'
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(241) : error C2143: 構文エラー : ';' が '*' の前にありません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(241) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(241) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(243) : error C2146: 構文エラー : ';' が、識別子 '_Catmask' の前に必要です。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(243) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(243) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(212) : error C2065: 'none' : 定義されていない識別子です。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(213) : error C2614: 'std::_Locimp' : イニシャライズ リスト内のクラス '_Catmask' が基本クラスでもメンバでもありません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(213) : error C2614: 'std::_Locimp' : イニシャライズ リスト内のクラス '_Facetvec' が基本クラスでもメンバでもありません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(213) : error C2614: 'std::_Locimp' : イニシャライズ リスト内のクラス 'facet' が基本クラスでもメンバでもありません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(217) : error C2039: '_Catmask' : 'std::_Locimp' のメンバではありません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(218) : error C2614: 'std::_Locimp' : イニシャライズ リスト内のクラス '_Catmask' が基本クラスでもメンバでもありません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(218) : error C2614: 'std::_Locimp' : イニシャライズ リスト内のクラス '_Facetvec' が基本クラスでもメンバでもありません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(218) : error C2614: 'std::_Locimp' : イニシャライズ リスト内のクラス 'facet' が基本クラスでもメンバでもありません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(224) : error C2065: '_Pfacet' : 定義されていない識別子です。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(224) : error C2065: '_Id' : 定義されていない識別子です。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(259) : error C2065: 'facet' : 定義されていない識別子です。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(259) : error C2065: '_Fac' : 定義されていない識別子です。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(259) : error C2275: 'size_t' : この型は演算子として使用できません
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(259) : error C2146: 構文エラー : ')' が、識別子 '_Id' の前に必要です。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(259) : error C2078: 初期化子の数が多すぎます。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(259) : error C2275: 'size_t' : この型は演算子として使用できません
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(260) : error C2059: 構文エラー : ')'
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(261) : error C2143: 構文エラー : ';' が '{' の前にありません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(261) : error C2447: '{' : 対応する関数ヘッダーがありません (旧形式の仮引数リスト?)
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(286) : error C2270: '()' : メンバでない関数が、メモリ モデル修飾子を伴って宣言されています。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(286) : error C2801: 'std::operator ()' は静的でないメンバでなければなりません
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(304) : error C2270: 'combine' : メンバでない関数が、メモリ モデル修飾子を伴って宣言されています。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(307) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(307) : error C2904: 'locale' : 名前は、現在のスコープで、テンプレートに対して使用されています。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(323) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(323) : error C3861: '_Init': 識別子が見つかりませんでした
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(324) : error C2550: 'std::locale' : コンストラクタの初期化子リストはコンストラクタの定義だけに許されます。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(325) : error C2227: '->_Incref' : 左側がクラス、構造体、共用体、ジェネリック型へのポインタではありません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(325) : error C3861: '_Getgloballocale': 識別子が見つかりませんでした
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(329) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(332) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(332) : error C2143: 構文エラー : ',' が '&' の前にありません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(333) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(333) : error C2065: '_Right' : 定義されていない識別子です。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(333) : error C2228: '._Ptr' の左側はクラス、構造体、共用体でなければなりません
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(334) : error C2550: 'std::locale' : コンストラクタの初期化子リストはコンストラクタの定義だけに許されます。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(335) : error C2227: '->_Incref' : 左側がクラス、構造体、共用体、ジェネリック型へのポインタではありません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(338) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(338) : error C2143: 構文エラー : ',' が '&' の前にありません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(340) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(340) : error C2084: 関数 'int std::locale(const int) throw()' は既に本体を持っています。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(340) : error C2061: 構文エラー : 識別子 '_DebugHeapTag_func'
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(340) : error C2612: ベースあるいはメンバの初期化子リストの最後に、'識別子' がついています。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(340) : error C2550: 'std::locale' : コンストラクタの初期化子リストはコンストラクタの定義だけに許されます。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(340) : error C2065: '_Loc' : 定義されていない識別子です。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(340) : error C2228: '._Ptr' の左側はクラス、構造体、共用体でなければなりません
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(340) : error C2143: 構文エラー : ';' が ')' の前にありません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(340) : error C2143: 構文エラー : ';' が ')' の前にありません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(341) : error C2143: 構文エラー : ';' が '{' の前にありません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(343) : error C2065: '_Loc' : 定義されていない識別子です。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(343) : error C2228: '._Ptr' の左側はクラス、構造体、共用体でなければなりません
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(343) : error C2227: '->_Catmask' : 左側がクラス、構造体、共用体、ジェネリック型へのポインタではありません。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(343) : fatal error C1003: プログラム内のエラーが 100 個を超えました。コンパイルは中断されます。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xdebug(32) : warning C4229: 旧形式が使用されています : データの修飾子は無視されます。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xdebug(36) : warning C4229: 旧形式が使用されています : データの修飾子は無視されます。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(186) : warning C4183: 'facet': 戻り値の型がありません。'int' を返すメンバ関数とみなします。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(326) : warning C4508: 'std::locale' : 関数に戻り値の型が指定されていません。戻り値を void 型と見なします。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(330) : warning C4508: 'std::locale' : 関数に戻り値の型が指定されていません。戻り値を void 型と見なします。
12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xlocale(336) : warning C4508: 'std::locale' : 関数に戻り値の型が指定されていません。戻り値を void 型と見なします。


■原因
デバックビルドではstl系をincludeするとxdebugもincludeされるらしい
このxdebugでnewをdefineしていてメモリーリーク検出用の
#define new DEBUG_NEWがおかしくなる


■対処
B.cppで#define new DEBUG_NEWより前でstl系をincludeする

<B.cpp>

#include "A.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

まぁ#define new DEBUG_NEWは下でやりましょって話


■参考




2012/08/14

SugarSyncを非表示でタスク起動するコマンドライン


SugarSyncを最小化起動したいのにー

ショートカット作って、実行時の大きさを最小化にしてもダメだった。。


以下のコマンドライン起動でスプラッシュ画面とメイン画面が非表示になります。

"C:\Program Files\SugarSync\SugarSyncManager.exe" -startInTray -usedelay=true


ちなみに、終了するコマンドラインは↓です。

taskkill /F /IM SugarSyncManager.exe

ずっと起動してるとメモリやハードディスクI/Oが気になっちゃう人は

タスクに登録するといい感じです♪




2012/06/22

ニコ動マイリストのチェックボックスを全選択するたった1行のコマンド


ちょくちょくニコニコ動画を見ています♪

#ニコニコ動画5th(原宿)にてエコノミー会員です。

ニコ動で「とりあえずマイリスト」を使っていて

登録したはずの動画が見当たらない・・・??

調べてみると、なんと!

「とりあえずマイリストは100件を超えると順に削除されます。残しておきたい動画は他のマイリストフォルダに移動して下さい。」



過去の動画はどんどん消えていたのか・・・


ががーん!

じゃあ、他のマイリストフォルダに移動してと・・・

って、チェックボックスの全選択がない!?

100個チェックしろと!?

エコノミーはこうゆう扱いだから切ないです・・・
多分プレミアムは大丈夫なんだろうなぁ・・・

なので、さくっと全選択する方法です。


■1.ブラウザをChromeにする

■2.Javascriptコンソールを開く


■3.1行コマンドを実行する

下の「>」の後ろに以下のコマンドを貼り付けてEnterを押す

for(i=1;i<$(SYS_page_items).childNodes.length;i=i+3){($(SYS_page_items).childNodes[i].childNodes[1]).checked = true;}


エラーが出ないで「true」と出たら成功

チェックボックスは全て選択されました!

あとは移動したい場所を選択して移動かコピーを実行するだけ♪

注意1:この方法はニコニコ動画5th(原宿)エコノミーだけしか通用しないかもしれません。

注意2:エコノミーのマイリストは100件までです。とりあえずマイリスト100件をマイリストに移動する場合、マイリストに1件でもあると移動できません。

JavaScriptはよくわかっていないので、もっと楽な方法があったら是非とも教えて下さい。

2011/06/17

Excel 2007/2010 で 図形(オブジェクト)の選択(矢印アイコン)がない!?


Excel 2003 まであった図形(オブジェクト)の選択(矢印アイコン)がなくなってました…




探してみると、ありました!



これはわからん・・・


よく使うのでクイックアクセスツールバーに登録♪



リボン化恐るべし・・・

2011/06/06

WindowsパソコンをGPartedを使ってHDDのデータを完全に消去する


リカバリもないのでHDDを廃棄するが
中身のデータが気になるので完全に消去してみた

<手順>
1.GPartedのISOをダウンロード
http://gparted.sourceforge.net/download.php
2.ISOをCDに焼く
3.CD起動する
4.GPartedでパーティションを1つにする
5.データを消去する
・左上の「Terminal」をダブルクリック
・シュレッドコマンドでデータ消去
user@debian:~$ sudo shred -n 2 -z /dev/sda1
乱数を2回書きこんでから0フィルする
参考:http://www.mm2d.net/linux-workstation/linux-hdd-clear.shtml

私のパソコン(37G)で1時間くらいかかりました

2010/11/15

一瞬でモテるエンジニアになるためのHudson活用方法

モテるエンジニアになるためにはどうすればいいか…

エンジニアの永遠の課題ともいえるこの難題…

その解答が「Hudson勉強会」で見つかりました!

カリスマエンジニア「奥清隆さん」の

モテるHudsonエンジニア」のライトニングトークで発覚!

正直、目から鱗でした…

だって、一瞬でモテるんです(笑

その結果がこちら!


合コンしまくりでモテてます(笑

さらに!履歴まで見える化!


0.17秒で合コン成功!失敗無し!

すっごいモテてます♪

その方法は

「説明を変更」に「このJavascript」を書くだけ!

ね、一瞬でしょ♪

でも、合コンを「告白」



さらには「プロポーズ」にすると



単なる「たらし」になりますのでご注意ください(笑

2010/07/22

エクセル(excel)で重複したデータ項目をたった3ステップで削除して絞込む

いっぱいあるデータ(項目)の中から重複したデータを削除したい!


そんな時は、

エクセル(excel)を使うと、たった3ステップで取得できます。

1.絞り込みたい範囲を選択
2.ピボットテーブルでチェック
3.絞り込んだ項目をコピー


では行きます!


1.絞り込みたい範囲を選択


ここで注意するのは「見出しも選択する」ことです。
選択しないと先頭が項目としてカウントされません。



2.ピボットテーブルでチェック







3.絞り込んだ項目をコピー




無事取得完了~


さらっとできるのでデータ集計やプログラミングでも重宝しますよ。

2010/07/14

BloggerでカスタムCSSをいじって枠をつける方法

テク系のブログでは「どこからどこまでがコードなのか」をはっきりさせる必要があります

そこで、私は「枠」をつけて「コード」を表現してます

こんな感じで

↑この「枠の付け方」をご紹介します。

■まずはBloggerの新しいテンプレートデザイナーで枠用のカスタムCSSを追加


/* Custom
----------------------------------------------- */
#line{
  border: solid 1px #000000; padding: 10px;
}

■ブログを書くときにdivを追加して書く


<div id="line">%~nx1</div>

■表示してみるとあら不思議

%~nx1

CSSをいじるなら同じ方法で適用できます!

2010/07/13

bat(バッチ)にD&DしたファイルをFTPサーバに自動でアップロードする

定期的にFTPでファイル転送してるとFFFTPでもわずらわしくなりませんか?

ってことで自動化してみました♪

batにファイルをD&DするとdosでFTPサーバにアップロードして終了します。

設定部分をカスタマイズしてご利用ください。

ちなみにパスワードは直書きなので自己責任でどうぞ。

@echo off

rem FTPアップローダー
rem 使い方:アップロードしたいファイルをD&D

rem 設定
set FTP_SERVER=[サーバ名]
set FTP_PORT=[ポート番号]
set FTP_DIR=[格納フォルダ]
set FTP_USER=[ユーザ名]
set FTP_PASS=[パスワード]

set FTP_BAT=%TMP%\tmp.ftp
set FROM_FILE_PATH=%1
set FROM_FILE_NAME=%~nx1

rem FTP実行ファイル生成
@echo open %FTP_SERVER% %FTP_PORT%> %FTP_BAT%
@echo %FTP_USER%>> %FTP_BAT%
@echo %FTP_PASS%>> %FTP_BAT%
@echo cd %FTP_DIR%>> %FTP_BAT%
@echo bin>> %FTP_BAT%
@echo put %FROM_FILE_PATH%>> %FTP_BAT%
@echo bye>> %FTP_BAT%

rem 格納場所表示
echo <格納場所>
echo ftp://%FTP_SERVER%:%FTP_PORT%%FTP_DIR%/%FROM_FILE_NAME%
echo.

rem FTP実行
ftp -s:%FTP_BAT%

rem FTP実行ファイル削除
@del /F /Q %FTP_BAT%

pause

2010/07/09

DOS(bat)にファイルをD&Dしてファイル名を取得する

ファイル名は↓でとれます

%~nx1

忘れるんだよなぁ…

よく使うのを書き留めておきます

@echo off

rem PATH.bat
rem batに1つのファイルをD&Dする

echo ■カンマ付きフルパス
echo %1
echo ■カンマなしフルパス
echo %~1
echo ■ドライブ
echo %~d1
echo ■フォルダパス
echo %~dp1
echo ■フォルダパス(ドライブなし)
echo %~p1
echo ■ファイル名
echo %~nx1
echo ■ファイル名(拡張子なし)
echo %~n1
echo ■拡張子
echo %~x1
echo ■属性
echo %~a1
echo ■タイムスタンプ
echo %~t1
echo ■ファイルサイズ
echo %~z1

pause

実行結果はこちら↓

■カンマ付きフルパス
"C:\Documents and Settings\test\デスクトップ\test.txt"
■カンマなしフルパス
C:\Documents and Settings\test\デスクトップ\test.txt
■ドライブ
C:
■フォルダパス
C:\Documents and Settings\test\デスクトップ\
■フォルダパス(ドライブなし)
\Documents and Settings\test\デスクトップ\
■ファイル名
test.txt
■ファイル名(拡張子なし)
test
■拡張子
.txt
■属性
--a------
■タイムスタンプ
2010/07/09 15:14
■ファイルサイズ
52

2009/04/28

MSBuildExtensionPackで環境変数(EnvironmentVariable)が1つになる!?

これは、はまった…

・対象
WindowsXP SP3
NetFramwork3.5
VisualStudio 2005 SP1 (VC++)
SourceSafe 6
ExtensionPack 3.5.2.0

<Exec Command="echo %PATH%"/>
<MSBuild.ExtensionPack.Computer.EnvironmentVariable
TaskAction="Set"
Variable="PATH"
Value="$(PATH)"/>
<Exec Command="echo %PATH%"/>


とやると、環境変数が先頭の1つだけになる…

しかたなく、コードを見てみると
http://msbuildextensionpack.codeplex.com/SourceControl/changeset/view/22777#498089

こいつだー!!

Environment.SetEnvironmentVariable(this.Variable, this.Value[0], this.target);


なんで配列で持ってるのに先頭だけ渡すかなぁー

とりあえず英語がんばってBTSあげてみました。
http://msbuildextensionpack.codeplex.com/WorkItem/View.aspx?WorkItemId=2872

始めてやってみたけど、返してくれるかなぁ
期待しないで待ってみよう♪


<2009/4/30追記>
mikeFourieさんが1日足らずで対応してくれた♪
仕事早!!

でもExtensionPackはNightlyBuildがないし、VS2005ではコンパイルできないしで
修正版バイナリは3.5.3.0まで待たないとダメみたい…

dllだけでもほしいなぁー

subversion(svn)の1.6からファイル単位の外部参照(svn:externals)が可能に

待ちに待ったファイル単位の外部参照が可能になった♪

とりあえず設定してみる(TortoiseSVN)

属性に外部参照を設定


属性名:svn:externals
属性値:/trunk/hoge/file.ext file.ext


さっそく「更新」!!

してみるとエラーが…orz

URL 'http://hoge/file.ext' が参照しているのはファイルです。ディレクトリではありません


なにー!!
せっかくサーバのsvnを入れ替えたのにできないだと!?

調べてみるとクライアントのsvnのversionが古かった…

サーバ   :1.6.0
クライアント:1.5.2

クライアントも1.6にしてみたらうまくいきましたとさ♪

(恐らく1つのフォルダで複数レポジトリを管理する時に.svnフォルダ内のファイルを書き換える(merge)必要があるのだろう)

ちなみに、外部参照を複数指定したかったら、属性値入力ダイアログで改行する


改行しないで続けて入力すると↓のエラーが発生します。
属性 svn:externals を 'C:\hoge' においてパースする際にエラーが発生しました: '/trunk/hoge hoge /trunk/hoge2 hoge2'


相対パスはツールチップにも出てくるけど↓な感じ

svn:externals
改行で区切られたモジュールのリストであり、リビジョン、URL、相対的なディレクトリのパス、
で構成されます。例えば、
http://example.com/repos/zig foo
-r 1234 http://example.com/repos/zag foo/bar

URLは完全なURLもしくは相対的に記述することができます。
相対的なURLの記述例は:
../親ディレクトリ
^/レボジトリルート
//URLスキーム
/ サーバのホスト名


ほんとsubversionは快適だなぁ~

2009/04/22

MSBuild Extension Pack導入 VSSが取得できない!?

ビルドの自動化をするためにMsBuildを使ってるけど
デフォルトでVSSを取得できないので、拡張パックを導入

CommunityTaskとExtensionPackの2つがあったけど
CommunityTaskは更新が止まってそうだし
ちょうど2009/03/15にExtensionPackが更新されたのでExtensionPackにした

・対象
WindowsXP SP3
NetFramwork3.5
VisualStudio 2005 SP1 (VC++)
SourceSafe 6
ExtensionPack 3.5.2.0

・ダウンロード
http://msbuildextensionpack.codeplex.com/

・インストール
msiを叩くだけ

・ビルドファイル作成
ファイル名:Build.proj
タスク:VssGet

<Project ToolsVersion="3.5" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="VssGet">
<MSBuild.ExtensionPack.VisualStudio.SourceSafe TaskAction="Get" Database="C:\SourceSafe\" UserName="UserName" FilePath="$/TEST" Arguments="-GL. -R"/>
</Target>
</Project>


・実行
外部からタスクを呼ぶ時は「/t:」オプションを使う

D:\test>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\msbuild.exe Build.proj /t:VssGet
Microsoft(R) Build Engine Version 2.0.50727.3053
[Microsoft .NET Framework, Version 2.0.50727.3082]
Copyright (C) Microsoft Corporation 2005. All rights reserved.

2009/04/22 16:59:46 にビルドを開始しました。
__________________________________________________
プロジェクト "D:\test\Build.proj" (VssGet ターゲット):

ターゲット VssGet:
D:\test\Build.proj(19,9): error : Win32Exception: 指定されたファイルが見つかりません。
D:\test\Build.proj(19,9): error :
プロジェクト "Build.proj" 内のターゲット "VssGet" のビルドが終了しました。 -- 失敗

プロジェクト "Build.proj" のビルドが終了しました。 -- 失敗

ビルドに失敗しました。
D:\test\Build.proj(19,9): error : Win32Exception: 指定されたファイルが見つかりません。
D:\test\Build.proj(19,9): error :
0 警告
1 エラー

経過時間 00:00:00.10


ありゃ
なんだか失敗
これだけじゃ原因がわからん…

ヘルプも見たけどさっぱりわからん
http://msbuildextensionpack.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=18970#DownloadId=61972

・調査
やっぱコードでしょ♪

ってことで、C#なんてわからんがソースコードを眺めてみる
http://msbuildextensionpack.codeplex.com/SourceControl/changeset/view/22589#498119

すると「ss.exe」の文字発見♪
ExtensionPackはCOM経由でなくてss.exe直かい!

HudsonやCommunityTaskはCOM経由だったような…
まぁEXE直接の方が早そうな気もする(憶測)

SourceSafeはインストールしても、環境変数PATHに追加しないので
自分で追加する必要があり

・修正
環境変数にVSSまでのパスを追加する
OSで設定してもいいけど、今回はMSBuild上で設定


<Project ToolsVersion="3.5" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="VssGet">
<MSBuild.ExtensionPack.Computer.EnvironmentVariable TaskAction="Set" Variable="PATH" Value="C:\Program Files\Microsoft Visual Studio\VSS\win32"/>
<MSBuild.ExtensionPack.VisualStudio.SourceSafe TaskAction="Get" Database="C:\SourceSafe\" UserName="UserName" FilePath="$/TEST" Arguments="-GL. -R"/>
</Target>
</Project>


・再実行

C:\test>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\msbuild.exe Build.proj
Microsoft(R) Build Engine Version 2.0.50727.3053
[Microsoft .NET Framework, Version 2.0.50727.3082]
Copyright (C) Microsoft Corporation 2005. All rights reserved.

2009/04/22 16:58:43 にビルドを開始しました。
__________________________________________________
プロジェクト "D:\test\Build.proj" (VssGet ターゲット):

ターゲット VssGet:
Setting Environment Variable: "PATH" for target "Process" to "C:\Program Files\Microsoft Visual Studio\VSS\win32".

$/TEST:
test.txt を取得しています。


ビルドに成功しました。
0 警告
0 エラー

経過時間 00:00:08.46


よしよし♪

にしても、使い方がどこにものってないのですごく苦労しそうだ…

2009/04/09

Hudsonのインストール場所を変更する

Hudsonはデフォルトで↓の場所にインストールされます(Windowsの場合)


C:\Documents and Settings\[user]\.hudson


この場所にソースとログも蓄積されるため、ほっとくとびっくり容量になります…(+_+)

しかし、この場所は途中からでも変更することができます!

「環境変数」に「HUDSON_HOME」を追加!



やりたいことがちゃんとできちゃう♪
Hudsonサイコーです!

2008/08/07

Excelのファイル名を関数だけで出力

よく忘れるのでメモっておく。

Excelのファイル名を関数だけで出力する。

Excelの中にファイル名を書き込む必要がある場合、
ファイル名だけを変えれば自動でリンクしてくれるので便利。

=MID(CELL("filename",$A$1),FIND("[",CELL("filename",$A$1))+1,FIND("]",CELL("filename",$A$1))-FIND("[",CELL("filename",$A$1))-1-LEN(".xls"))

2008/01/22

hudsonがいつの間にか日本語表示している!

HudsonのVersion1.153ばかりを使っていた…

久しぶりにVersionをあげて1.175にしてみた…



日本語対応してるー!!

たった2ヶ月の間に20回もリリースしてしまうという
この精力的な開発にホント感服です!

パソコン(PC)を再起動(rebort)してもhudsonが起動するようにする(windows版)

起動が簡単なhudsonだが


・continuumみたいにWindowsのサービスに登録してくれない…

・再起動時に勝手にhudsonは立ち上がってくれない…

・スタートアップに登録しても、ログインしないと立ち上がらない…


なので!再起動時にログインしなくても勝手に立ち上がるようにしてみた!(Windows版)

・Hudson起動用バッチを作成する
・「コントロールパネル」を開く
・「タスク」を開く
・「スケジュールされたタスクの追加」を開く
・実行プログラムにHudson起動用バッチを登録する
・実行タイミングを「コンピュータ起動時」にする
・Hudsonが実行させていたユーザとパスワートを入力する
※入力しないと[ユーザフォルダ]/.hudsonにアクセスできない


これで勝手にHudsonが立ち上がってる

あーらくちんだ♪

2007/10/18

Hudson(winstone)の起動ポート(port)の変更方法

Hudsonはwinstoneのコマンドラインがそのまま使えます。

このため起動portを変えたかったら「Command-line options」にある「--httpPort」でport番号を指定すればOK
java -jar hudson.war --httpPort=1192


なのでwinstoneも同じ方法でportが変更できる。


なんかもったいないので見つけ出した過程を書いとく。

ずっと探してたけどわかんなくて結局Hudsonのコードを見て探し当てた。

winstoneの起動コマンドでportが変更できるのを知ってたので
hudsonからwinstoneの起動場所のコードをいじる方針で調査開始!

<起動Mainのクラス名の検索>
・Hudsonは起動時に%TEMP%フォルダにhudson.warを解凍するので見に行く
・META-INF\MANIFEST.MFのMain-Classを見る
・Mainというクラスが始めに起動することがわかった

<起動Mainのクラスコードの検索>
・HudsonのコードからMain.javaを検索
・4つMain.javaあったがデフォルトパッケージの「hudson/war/src/launcher/java/Main.java」を開く

<winstone起動場所の調査>
・Main.main(String[] args)を見るとjarを読み込んでる
・winstoneのMainクラス「winstone.Launcher」を呼び出してる場所を発見
・Mainクラスのコマンドライン引数に「--warfile」を追加して、
 winstone.Launcher.mainを起動しているだけと判明




ちなみに、hudsonのプラグインで「port-allocator」なるものがあった。
ヘルプを見るとHTTP_PORT, ADMIN_PORT, SHUTDOWN_PORTが指定できるそうなので、引数指定しなくてもよくなるかもしれない

2007/10/16

Hudson(winstone)で日本語が文字化けたのをむりくり直す

CIツールとして個人的に大流行のHudson!
簡易httpサーバとしても利用できるので大変重宝している。

しかし、こやつを介して静的なHTMLを表示しようとすると
日本語が文字化けるんです…

HTML側でContent-Typeで「Shift_JIS」とかにしても
強制的に「ISO-8859-1」になってしまう。

なんか優先順があるのかなーと思ったらあった

確かにfirefoxのLiveHTTPheadersで見ると強制的に指定されている…

でもどこでHTTPのContent-Typeヘッダのcharsetパラメータを変えてるのかずっと探していた

が、どうやらwinstone↓が原因…
http://blog.cles.jp/item/2173
※clesさんありがとうございます

修正方法は2種類あるようだ、しかし↓にFilter変更は目的違いなのでは?と書いてあった
http://d.hatena.ne.jp/chinpeinet/20070919
※chinpeinetさんありがとうございます


なので、doGet()/doPost()を修正する方法でチャレンジ!

したのですがうまくいかない…


ひとまず強制的に「UTF-8」にするように変更してみた。


<1.winstoneのコードを取得>
・「winstone java」あたりでググってコードを持ってくる
・適当な場所で解凍
※今回は「winstone-src-0.9.9.tar.gz」を使った

<2.winstoneのコードを変更>
・Eclipse>ファイル>インポート>既存のプロジェクトをインポートでwinstoneを指定
・mavenの依存関係があるので「ビルドパス」で関係を削除
※使用しているjreのversionが直書きなので、異なっていたら変更
・src/java/winstone.WinstoneResponse.getCharacterEncoding()の「ISO-8859-1」を「UTF-8」に変更



・保存してコンパイル
・「winstone-src-0.9.9\build-eclipse\winstone\WinstoneResponse.class」をコピー

<3.hudson.warの解凍>
・hudson.warをzip解凍

<4.winstone.jarの再生成>
・hudson直下にあるwinstone.jarをzip解凍
・「winstone\winstone」に「2」でコピったファイルを上書きペースト
・winstoneフォルダで「jar cvfm winstone.jar META-INF\MANIFEST.MF .」
・winstoneフォルダにできた「winstone.jar」を取得

<5.hudson.warにwinstone.jarの配置>
・「3」のhudsonフォルダに「4」のwinstone.jarを上書き

<6.hudson.warの再生性>
・hudsonのソースを取得&解凍、直下にある「dummy.keystoreファイル」を取得して「3」に配置
ここからでも取得可
※今回は「hudson-1.146-src.zip」を使った
・以下のようなantスクリプト(build.xml)を作成して「3」に配置
<project name="hudson" default="war" basedir=".">
<target name="war">
<war destfile="hudson.war" webxml="WEB-INF/web.xml" manifest="META-INF/MANIFEST.MF">
<fileset dir="." excludes="META-INF/**,WEB-INF/**,build.xml,dummy.keystore,hudson.war" />
<metainf dir="META-INF" includes="maven/**"/>
<webinf dir="WEB-INF" includes="*" excludes="web.xml"/>
<lib dir="WEB-INF/lib" includes="*.jar"/>
</war>
<signjar jar="hudson.war" alias="hudson" keystore="dummy.keystore" storepass="hudson"/>
</target>
</project>

・コマンドラインから「ant」を実行

<7.hudson.warの起動>
・いつもと同じように「java -jar hudson.war」で起動


この方法だとfirefoxはうまく表示できたが、IE6では表示できなかった。

「2」の処理の時に「強制的にContent-Typeを指定しない」ように
修正をしたら、IE6でも文字化けしなかった。
(WinstoneResponse.validateHeaders():L242~253をコメントアウト)

表示方法をブラウザ側に委ねるので危険そうだ…

もうちょいよい修正方法はないものか…