プログラム

java.net.PlainSocketImpl.finalize() timed out after 10 seconds

java.util.concurrent.TimeoutException: java.net.PlainSocketImpl.finalize() timed out after 10 seconds at libcore.io.Posix.close(Native Method) at libcore.io.BlockGuardOs.close( BlockGuardOs.java:101) at libcore.io.IoBridge.closeAndSignalBl…

Windows Phone アプリのUIレイアウトXAMLから文字列リソースを参照する

普通アプリを書く時は端末の言語設定によってテキストリソースを切り替えられるようにする訳ですが、Windows Phone 7.1 SDK でそれをやるのに多少苦労したのでメモしておきます。もっといい方法を御存知の方は是非教えて下さい。

SharedPreferences と MODE_MULTI_PROCESS がイマイチよろしくない件

運悪くAndroidで複数プロセスのアプリを作ったり、アプリ間で SharedPreferences を相互参照するハメになってしまった場合に役に立つ…いや、たぶん立たないメモ。 Context#MODE_MULTI_PROCESS フラグはどのように使われているか このフラグはContext#getShar…

Androidアプリからのファイルパーミッションの制御

アプリ間のファイルアクセスの許可/禁止には unix のファイルパーミッションの仕組みが使われています。 ファイルパーミッション - Wikipedia Androidではアプリごとにuidとgidが割り当てられていて、パーミッションのうち、otherのread,write,execute ビッ…

Androidアプリがどうデータベースを取り扱うか

端末にデータを保存するアプリを4日くらい書いてたので、その時に調べたことのメモ。 あ、書いてたアプリはこれです。 https://market.android.com/details?id=jp.juggler.SubwayTweeter 基本的な構造 SQLiteOpenHelper ↓生成 SQLiteDatabase ↓生成 SQLiteCu…

Android 3.0の壁紙について

Android 3.0のHomeは壁紙の扱いがかなり変わった。 手元にある端末だと 画面サイズは1280x768なのに、壁紙マネージャの要望するサイズ1920x1408だ。 でかすぎるだろ… 実際に表示されるのはおおむね中央部分だけで、残りの一部はAppDrawrや追加ボタンを押した…

Android の Application task の、 Activity stack に関する怪現象

開発中に起きた出来事。発生した端末はXperia。 再起動してアプリをインストールし直したら発症しなくなったので、原因は分からず。 アプリの構造 このアプリは起動したら画面Aが表示されて、暫く待つと自動的に画面Bに移る。 ここで Home keyを押すと、A->B…

Android の java.net.HttpURLConnection

Android SDKで使えるHTTPクライアントクラスについて、gitから取ってきたソースを見つつその挙動を調べてみる。賞味期限の短い記事だと思うので、利用には注意してほしい。Android SDKで使えるHTTPクライアントクラスは三つある。 java.net.HttpURLConnectio…

apkファイルに含まれたAndroidManifest.xmlのデコード

androidのアプリケーションパッケージであるapkファイルを適当なアプリでSDカードにバックアップした後、そのzipされてる中にある AndroidManifest.xml を読むことになったのでメモしておきます。xmlなんですがバイナリにエンコードされています。 文字列テ…

Androidアプリの間違った作り方

とある外注さんが書いてきたコードがひどかった。 バックグラウンドでのオーディオ再生を、Activityから作成したワーカースレッドで行う。キャンセル処理は全く考慮していない。 UIスレッド上でばんばんHTTPリクエストを投げる。応答を読み終わるまでループ…

DBD::SQLiteのトランザクション

perlで、DBIからDBD::SQLiteを使う場合のトランザクションの扱いについて。 トランザクションの開始 AutoCommit属性やbegin_workメソッドを使うと、その後のinsert,update等で database is locked(5) at dbdimp.c が出てステートメントの実行に失敗してしま…

ドラッグドロップ

WPFのドラッグドロップ処理。まだよく分かっていないけどこんな感じ? DataObjectを受け取る側はDragOverとDropを実装する。送る側はDragDrop.DoDragDropを呼び出す。 DataObjectを使わないドラッグ操作は自前で(Preview)MouseDown,(Preview)MouseMove,(Prev…

スタイルとコントロールテンプレート

WPFのUIで、コントロールテンプレートやスタイルを変更してみる。 描画にDirect3Dが使われてしまうのがちょっと困るかな。11/20 統一感を意識して更にコントロールテンプレートを編集してみる。 Pathの描画品質が良くない…?

perl用のテンプレートエンジン

既存のだとunicode関係やエスケープの自動化がよく分からなかったので、さくっと書いてみる。 http://tate.juggler.jp/Text-Template-Compact/(2008年11月7日) その後CPANで同種のモジュールを捜してみたら60近くあった。知名度でいうとTemplate::ToolkitかH…

perlで変数の型を調べる

変数がリファレンスである場合に参照先が配列かハッシュか調べる。 blessが絡むとrefだけでもscalarだけでもダメらしい。 sub getDataType($){ return if not ref $_[0]; # return null if not reference type. $_[0]=~/(\w+)\(/; # use scalar to void effe…

javaを書いて時間を潰した

ひさしぶりにJava、といってもWebアプリを書く気はなくて、Swingアプリのお話。Windows APIやWindows.FormsでUIを書くとコントロール階層で透過の扱いがヘボくて萎えるのだけど、JavaのAWT,Swingはダブルバッファリングがちゃんとしてるので見た目重視のアプ…

ircd 2.11.2

ircd 2.11.2p1 http://web.irc.org/mla/ircd-users/2008/msg00006.html jpパッチは上流に取り込まれたようだ。2.11系の新機能 http://ircnet.irchelp.org/211.html あとニックネームの長さも15文字までになっていたような気がする。

c#のenumとgenerics

c#のenumとgenericsの相性が激しく悪い。 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test { class TestEnumGenerics{ static N toInt<T, N>( T value ) { return (N) Convert.ChangeType( value, typeof(</t,>…

MS.NetのPlatform Invoke でしょんぼり

GetDelegateForFunctionPoiter と GetFunctionPointerForDelegate でマーシャリングの挙動が違うんだな。NativeからManagedの関数をGetDelegateForFunctionPoiter 経由でコールする時に、Delegate型を delegate void dg_ByteArray( [MarshalAs( UnmanagedTyp…

Flash Playerの生ソケットのセキュリティポリシーが変わった

Flash Player の 9.0.124.0 で生Socket用のcrossdomainポリシーの伝達方法が変わってしまいました。 http://www.adobe.com/devnet/flashplayer/articles/socket_policy_files.htmlいままではWebのドキュメントルートに /crossdomain.xml を置くだけでよかっ…

SpiderMonkeyで遊んでみた

おまけ Mozillaプロダクツで使われているJavaScriptエンジン SpiderMonkey の 1.7.0 をWindowsのStaticライブラリでビルドできるように軽くいじってみました。 http://cid-8d91961e6d878ff6.skydrive.live.com/self.aspx/scripts/SpiderMonkey-1.7.0-Win32St…

Visual Studio 2008 Standard Edition

PCのOSを新しくしたついでに開発環境も新しくしてみた。 Visual Studioのアップグレード版はExpress版からでも可能だし、まっさらなPCにインストールしても全く問題ない。 私の場合は複数のプログラム言語を使うのでExpressでは駄目なので、StandardかProfes…

LimeChatがJScriptを組み込んだらしい

http://d.hatena.ne.jp/Psychs/20080503/1209829824 LimeChatがJScriptを組み込んだらしい。 ヘルプを見ると思ったより丁寧にIRCクライアント内部の情報にアクセスできてるような感じ。setIntervalもあるし、会話系のbotを書くには不自由しなさそうな気はす…

Interlocked* API と File Mapping

仕事で、Windows上でプロセス間通信を書くことになった。プロセス間の同期にはEventかMutexを使うものだと思っていたんだけど、wikipedia:Mutexを見るとMetered Sectionの方が速いと書いてあった。そんなAPIはないので何だろうと思っていたらMSDNの記事 A Qu…

Blogger Data APIの続き

mixiに置いていた日記を移行しようとしてスクリプトを書いてみたら、なんだかサーバ側であぼーんされてる感じ。うーん、Bloggerはインポートが必要な場合にはうまくないのかな。 PicasaのAPIは問題なく動いていたので、Blogger以外のサービスを使ったほうが…

(テスト)

Blogger Data APIを使ってみるテスト。画像はどう扱うといいんだろう。画像は梅を撮りに行った時のもの。K10D + Sigma 18-50mm/F2.8。電線が邪魔。シグマ 18-50mm F2.8 EX DC MACRO デジタル専用 ペンタックス用出版社/メーカー: シグマ発売日: 2007/03/20メ…

mixiミュージックの再生履歴を消すスクリプト

mixiの規約改訂がアレだったのでデータを移動することにしました。 いろいろ整理するいい機会かもしれないと前向きに考えることに。 データ整理に多少時間がかかる予定です。日記やフォトアルバムは手動でもこなせる量だったのですが、mixiミュージックの再…

コルーチン(co-routine)

Microsoft.Netのアプリケーションにスクリプト機能を埋め込みたくなった。 ぐぐるとDLRとかIronPythonとかSilverLightとかキーワードが出てきた。SilverLightはアプリケーションに埋め込むにはライセンスの問題があるようだし、IronRubyはリリースがまだない…

Android SDK さらに続き

UIコンポーネントの基底クラスがコレなんだけど http://code.google.com/android/reference/android/view/View.html ほとんどのイベントがクラスの関数を直接呼ぶことで実行されてる。 まれにsetOnなんとかListener ってメソッドがあるけど、addじゃなくてse…

Android SDK 続き

javaクラスファイルを逆コンパイルしてソースを眺めた結果、 TextViewにappendする時にクリッカブルURLにできるようになった。 んでSDKへの感想の続き。 gPhoneならではのAPIがなかったら、ただの劣化PDAなわけです。 タッチパネルがない分、並みのPDAより下…