すぐに忘れてしまうPCの設定やプログラミングのノウハウなど自分の備忘録として書いていきます。少しでもここに来てくれた方の手助けになれれば嬉しいです。 tofu 

未整理

squareup.com

\SquareConnect\Api\TransactionsApi()

chargeでどうしても下記エラーが取れなくて、悩んでましたが解決しました。

Your request did not include an `Authorization` http header with an access token. The header value is expected to be of the format "Bearer TOKEN" (without quotation marks), where TOKEN is to be replaced with your access token (e.g. "Bearer ABC123def456GHI789jkl0"). For more information, see https://docs.connect.squareup.com/api/connect/v2/#requestandresponseheaders. If you are seeing this error message while using one of our officially supported client libraries, please report this to developers@squareup.com.

サンプルを見ながら下記のようなソースを書いたのですが、Configをnewしてはダメでした。
$defaultApiConfig = new \SquareConnect\Configuration();
			$defaultApiConfig->setAccessToken($access_token);

			$transactions_api = new \SquareConnect\Api\TransactionsApi();

下記のように修正したら大丈夫でした。ご参考にして下さい。
SquareConnect\Configuration::getDefaultConfiguration()->setAccessToken($access_token);
$transactions_api = new \SquareConnect\Api\TransactionsApi();

Postfix 不正中継

/etc/postfix/main.cf

さくらのVPSで不正中継されてました。smtpd_recipient_restrictionsに設定するキーワードが足りなかったようです。
main.cfに
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination
と書いていたのですが、reject_unknown_hostnameが足りなかったようで、追加したら大丈夫でした。
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unknown_hostname reject_unauth_destination

twitter API

https://api.twitter.com/1/statuses/update.json

http://api.twitter.com/1.1/statuses/update.jsonのようにhttpでアクセスしていたが、2014/1/22 httpsのみのアクセスとなった。httpだと403エラーが帰ってきます。

サーバーが重い

マルウェア?

サーバーが重いのでps auxを投入したところ
apache 16847 5.0 0.0 1732 476 ? S 11:02 0:15 ./s > 69.162.102.73 80
のような怪しい挙動のapacheを発見。apacheの再起動を試みると
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
と80番プロセスを誰かが使っているとのこと。
/usr/sbin/lsof -i | grep http
で見てみると
cron 19670 apache 26u IPv6 13013182 TCP xxx.co.jp:http->海外のアドレス:59719 (ESTABLISHED)
のように怪しいのが出てきました。すぐに復旧する必要があったので、これをkillして再起動したところOKでした。

Mysqlが重い

名前解決が原因

DB専用サーバーにしようと設定をしていなかったのが主原因ですが、[mysqld]に skip-name-resolve を追記すれば解決しました。

Okabe eta420 ドライバー

クロネコラベル印刷専用サーマルプリンタ

COMポート接続でドライバが必要ない。クロネコのB2システムから直接印刷可能です。ドライバを探すのに半日潰してしまった。。。

XMLHttpRequest open

statusが0

同じドメインじゃないとそうなるそうです。セキュリティ上の問題らしい。

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を書くと動く。


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

microsoft.visualstudio.xamlの読み込みエラー

C# 2008 Express editionを入れた状態で、VS 2008 Professionalを入れ、C#を起動したところ、 上記エラーが表示された。 Express editionをアンインストールし、修復セットアップで直った。

Vistaでのアクティブ化

IHTMLdocumentをつかって、InternetExplorer::setVisible(true)でアクティブにならない。いろいろな表示方法を試した結果、最小化・元に戻すでOK。