January 28, 2012

DBViewerでUTF8をインサート

文字化けしたので、以下を参考にさせて頂き、解決。
http://memorandum-system.seesaa.net/article/151262007.html

以下、そのまま引用。
--
DBの文字コードがUTF-8で、SQL内に文字列を含むSQLを実行した場合、
検索結果表示が文字化けする

これを回避する為に、接続文字列に以下の文字列を追加する。
?useUnicode=true&characterEncoding=UTF8

jdbc:mysql://:3306/<データベース名>?useUnicode=true&characterEncoding=UTF8
--

January 25, 2012

gitでファイルのパーミッション変更を無視する

gitはファイルパーミッションの変更を検知するようで
--
old mode xxxxxx
new mode yyyyyy
--
とか出ました。

これをoffにするには
--
git config core.filemode false
--
とするようです。

January 22, 2012

windows + gitでdifftoolやmergetoolをWinMergePortableにするメモ。

メモ。

git config --global merge.tool winmerge
git config --global mergetool.winmerge.cmd "C:/xxx/yyy/WinMergePortable/WinMergePortable.exe \"\$LOCAL\" \"\$REMOTE\" \"\$BASE\" \"\$MERGED\""
git config --global mergetool.trustExitCode false

trustExitCodeについて参考:
http://progit.org/book/ja/ch7-1.html

git difftool -y
でdifftoolとしても反応した。

Chat&Messengerの新着メッセージを他のマシンに通知する。

やっつけですが、以下の方法で出来ました。

用意するもの。

(1)
IP Messenger
http://www.forest.impress.co.jp/lib/inet/msgchat/messenger/ipmsg.html
* Chat&Messengerとは別に用意します。

(2)
フォルダ監視
http://www.vector.co.jp/soft/dl/win95/net/se275168.html
* このソフトで無くても良いですが、定期的に変更の監視と、
変更検出時に任意のプログラム実行が可能である必要があります。


以下、手順。


フォルダ監視で、Chat&Messengerのログファイルがあるフォルダを監視するように設定します。
そして、以下のようなbatファイルを作成して、変更検出時に実行されるように設定します。

--
xxx/yyy/IPMsg/ipmsg.exe /MSG /LOG xxx.xxx.xxx.xxx "New Message Received."
--

January 21, 2012

CakePHPで部分的にScaffoldを使う。

Controllerで public $scaffold を記述せずに、Scaffoldしたい場合。
以下の方法で出来ました。
public function view($id = null) {
    return new Scaffold($this, $this->request);
}
表示や編集対象をAuthComponentでログインしているユーザに固定したい場合は
public function view() {
    $this->request->params['pass'] = array($this->Auth->user('id'));
    return new Scaffold($this, $this->request);
}
で良いかも。

January 16, 2012

growlのgrowlnotifyが作成するファイルメモ。

ざっと調べたところ、以下が見つかりました。

/usr/local/bin/growlnotify
/usr/local/share/man/man1/growlnotify.1
/private/var/db/receipts/info.growl.growlnotify.growlnotify.pkg.bom

/private/var/db/receipts/info.growl.growlnotify.growlnotify.pkg.plist

/private/var/db/receipts/info.growl.growlnotify.manpage.pkg.bom

/private/var/db/receipts/info.growl.growlnotify.manpage.pkg.plist

January 12, 2012

K-9 Mail UnreadCountのネタばらし。

Androidアプリで、K-9 Mail UnreadCountというアプリを作って公開しています。
https://market.android.com/details?id=net.madroom.k9uc

このアプリ、メール受信時に、unread表示数が増えます。
K-9 Mailに複数アカウントを設定している場合は、合計unread数を表示します。

対して、unread数が減るタイミングなのですが、未読が既読になった瞬間。
ではありません。

通知領域から新着メールを開いて、home画面に戻っても、unread数は減りません。
でも、WidgetからK-9 Mailを起動して、新着メールを開くと、unread数は減ります。

この挙動について、簡単に、書いておきます。

メール受信のタイミングは、BroadcastReceiverでキャッチできます。
でも、未読が既読になった時は、無理でした。
contentObserverでも、無理でした。
もちろん、本当は出来るのだけど、僕の調査不足。という可能性もあります。

では何故、WidgetからK-9 Mailを起動して、新着メールを開くとunread数が減るのか。
となりますが、実はWidgetタップ時はK-9 Mailを起動していません。
透明Activityを起動しています。
そして、透明Activityが自動的に、K-9 Mailを起動しています。
webのredirectみたいな感じです。

こうすることで、K-9 Mailを終了した時、透明ActivityのonRestart()が呼ばれます。
onRestart()は即座にfinish()して、onDestroy()でunread数の再取得、Widgetの更新。
という実装になっています。
https://github.com/mp-android/K9MailUnreadCount

Activityのライフサイクルを、うまく使えたかなー。みたいな感じのアプリです。
でも、いつか、通知領域から開いても、ちゃんと更新されるようにしたいものです。

開発の経緯は、Gmail公式アプリが外部アプリのアクセスを遮断して頭に来たから。
ですかね。。。