未整理
C# DataGridView
DataGridViewの描画が遅い、重い、ちらつく場合
最初は大丈夫なのに、デバッグを繰り返すと待てないほど描画が遅くなることがあった。
いろいろ調べて行くうちに「ダブルバッファリング」なる項目があったので、試したところ治りました。
フォームのLoad()で、下記を先頭に記述しました。
System.Type myType = typeof(DataGridView);
System.Reflection.PropertyInfo myPropertyInfo =
myType.GetProperty("DoubleBuffered", System.Reflection.BindingFlags.Instance |
System.Reflection.BindingFlags.NonPublic);
myPropertyInfo.SetValue(dataGridView1, true, null);
Mysql4.0 InnoDB
SELECT文で「error 2013 (hy000): lost connection to mysql server during query」
こんなエラーがでたらまずは /var/lib/mysqld.log を見てみる。
InnoDB: Page may be an index page where index id is 0 364 InnoDB: (index GEN_CLUST_INDEX of table xxxDB/xxxTABLE )
テーブルのIndexがおかしい様子。
「インデックスの再構築」で調べたところ、InnoDBではCHECK TABLEは動くが、REPAIR TABLEは使えないとあった。ただ、CHECK TABLEをしても、上記エラーが出て終了。。。
mysqldumpでバックアップを取ろうとしても「lost connection to mysql server during query when dumping table at row」のようなエラーが出て終了。
/etc/my.cnfの[mysqld]に「innodb_force_recovery=4」と書き、mysqldを再起動し、mysqldumpでテーブルのバックアップを取る。
その後、[mysqld]の「innodb_force_recovery=4」を削除し、エラーのテーブルをDROPし、バックアップを戻したところ無事復元出来ました。
java.io.CharConversionException
WindowsからPleskのTomcatにアップしたら動かない。。。
java.io.CharConversionException at gnu.gcj.convert.Input_iconv.read(libgcj.so.7rh) at java.lang.String.init(libgcj.so.7rh) at java.lang.String.(libgcj.so.7rh) at com.mysql.jdbc.SingleByteCharsetConverter. (SingleByteCharsetConverter.java:153) at com.mysql.jdbc.SingleByteCharsetConverter.initCharset(SingleByteCharsetConverter.java:108) at com.mysql.jdbc.SingleByteCharsetConverter.getInstance(SingleByteCharsetConverter.java:86)
こんなエラーがでたらコネクタにuseJvmCharsetConverters=trueを書くと動く。
CKEditor
CKEditorを動的に停止
javascriptで、下記コードを実行。ちなみにeditorがtextareaのID
CKEDITOR.instances['editor'].destroy()
tinyMCEエディタ
tinyMCEエディタを動的に停止
javascriptで、下記コードを実行。ちなみにcontentがtextareaのID
tinyMCE.execCommand('mceRemoveControl', false, 'content')
で、再度起動するときは下記コード。
tinyMCE.execCommand('mceAddControl', false, 'content');
PLESKのIPアクセス制限管理
間違えてログイン出来なくなった場合の解除方法
エラー: 現在適用されている IP アクセス制限ポリシーにより、アドレス '111.222.333.444' からの管理者アクセスは制限されています。
と表示されるようになり、困りました。Pleskのサーバー、管理者情報、アクセスの「リストにないネットワークからの接続を拒否する」を「リストに存在するネットワークからの接続を拒否する」にしてしまったようで、
mysqlのDB psa のmiscテーブルに該当パラメータparam=access_policy があり、val=denyをallowに変えると直る。
IPアドレスを間違えた場合は上のDNS_Allow_Transfer0やDNS_Allow_Transfer1のvalを直せばOK。サブネットがあるようなら111.222.333.444/29こんな感じ。
Tomcatプラグイン
起動時のメモリ設定
Eclipse3.2でTomcatプラグインを利用していますが、プロジェクトが増えて、デフォルトでは立ち上がらなくなった。
Tomcat本体は環境変数でメモリを増やせるのは分かったのですが、プラグイン経由だとどうしても増えない。
Eclipse->Preferences Tomcat->JVM設定 「JVMパラメータの追加」にデフォルトで、
-Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false が入っているが、この前にパラメータを追加することで、可能ということが分かった。
現在のパラメータは
-Xmx1024m -Xms512m -Xmn192m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=128m -XX:MaxPermSize=256m -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false
windowsネットワークのマスタブラウザ
sambaでworkspaceで共有したネットワーク
会社のファイルサーバーをリプレースして前と同じ名前のフォルダが見えない。
XPのインストールCDにある(\SUPPORT\TOOLS\SETUP.EXEを実行し、インストール後)browstat.exeというもので、マスタブラウザが見つけられる。「browstat status」と打つと「Master browser name is: xxx」といった感じでマスタブラウザになっているコンピュータ名が表示される。LinuxのSambaサーバーもマスタになるのか、と初めて気がつき、余計な処理をさせるのはやなので、samba.conf に local master=no を記述して、再起動。そうこうしているうちに見えるようになりました。2010/4/26
未整理
acer ASPIRE M5711にwindows XPをインストール
久々にハマッた!!のでメモ。
Vistaプリインストールのマシンで、まだ仕事ではXPが必要なので、XPを入れようとしたら、XPインストールまでに3時間を要しました。。。
nVIDIAのnForceというチップでHDDコントローラが特殊でXP SP2のOEM版でも認識せずブルーバック。ストップエラー 7B出現。
フロッピーを接続し、ドライバーを入れて、XPのインストール画面が出たらすぐ(←これが重要)F6キーを押すと汎用ドライバーLoad後、後入れDriverを選択できる画面が出てきて、無事ストップエラーを回避できる。
ケースを開けてビックリしましたが、もうIDEのコネクタが無いんですね。時代に取り残された感じがしました。ただ、FDDはある。(笑)
ドライバを置いておきます。ココ
C# Webbrowserコントロール Navigateでmultipart
FCKeditorなどを通さずにPOSTさせる要求があり、
multipartの送信でハマッたのでメモ。
※1 WebBrowserReadyStateがInteractiveのままで、Completeにならない。
ので、IsBusyがfalseになるタイミングで抜ける。
int cnt = 0;
int MAX = 30;
while ( cnt < MAX && wb.IsBusy == true && wb.ReadyState != WebBrowserReadyState.Complete )
{
System.Threading.Thread.Sleep(WAIT_TIME);
System.Windows.Forms.Application.DoEvents();
cnt++;
}
※2 multipartのパラメータの生成
ヘッダで Content-Type: multipart/form-data; boundary=--65045110 <- これは間違い。
Content-Type: multipart/form-data; boundary=65045110 <- これが正解。
あとは普通に
--65045110\r\n Content-Disposition: form-data; name="test"\r\n \r\n これはテスト!\r\n --65045110\r\n Content-Disposition: form-data; name="file"; filename="tmp.jpg"\r\n Content-Type: application/octet-stream\r\n Content-Transfer-Encoding: binary\r\n \r\n ファイルの内容\r\n --65045110--\r\nこんな感じで作成してnavigateのpostDataに渡せばOK。
Mysql5.0 LEFT JOIN でエラー
4系のように select * from xxx A, yyy B left join zzz C on A.id=C.fk_id と書くと
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Unknown column 'A.id' in 'on clause'
このようなエラーが出る場合がある。
select * from (xxx A, yyy B) left join zzz C on A.id=C.fk_id とfromのテーブルを()で囲むと大丈夫。
Linux 10日以前のファイルを削除
find /home/backup/ -name "*.txt" -type f -ctime +10 -exec rm -f {} \;
C# webbrowser _blankで別ウィンドウを開かせない
_blankをクリック前に消しておく。
Mysqlで他サーバーからのアクセス方法
Debian5.0(leny)を使用。
/etc/mysql/my.cnfにあるbind-address=127.0.0.1をコメントアウトし、ホストごとにアクセス可能なユーザーを作る。
grant select,insert,update,delete on xxx.* to xxx@192.168.1.xx identified by 'xxx'
sambaであるPCが見えない。
アドレスバーに直接IPアドレスを入れると見れるのに、「マイネットワーク」から辿ると表示されないことが判明。 見えるPCと比べたところプリンタアイコンが無いことが分かり、その後smb.confを見比べると「printers」に違いがあったので、変更したら見えた。 【見えないPC】public = no
writable = no
【見えるPC】
guest ok = no read only = yes
rsyncによるディレクトリコピー
下記HDDの自動マウントにも書いたが、rsyncでソフトウェアRAID的なことをしているが、書き方ひとつで大変なことになったのでメモ。
1 5 * * * rsync -auv --delete /var/ /backup/var/
1 3 * * * rsync -auv --delete /etc/ /backup/etc/
1 4 * * * rsync -auv --delete /home/ /backup/home/
Cronに上記の通り記載しているが、これのディレクトリの一番最後の/を外すと
1 5 * * * rsync -auv --delete /var /backup/var
1 3 * * * rsync -auv --delete /etc /backup/etc
1 4 * * * rsync -auv --delete /home /backup/home
CentOSではvar home etcなどが日々再帰的にコピーされてしまい、1ヶ月程度でHDDが埋まってしまいあせりました。(^^ゞ
HDDの自動マウント
vi /etc/fstab
debianで、起動ディスク以外は起動時に自動でmountされない。fstabファイルに下記のような記述を追加。
/dev/sdb1 /mount ext3 errors=remount-ro 0 0
HDDのまるごとコピー
dd if=/dev/sda of=/dev/sdb bs=4096
ddというコマンドで簡単にまるごとコピーを取ることが出来る。これでsdbのhddをsdaの挿さっていたところに挿せば問題なく起動できる。
これを使って毎朝rsyncでソフトウェアRAID的なことをしてバックアップしてます。
