JNIで起動したJavaVMからnativeメソッドをコールバック

JNIを使ってCなどのnativeプロセスからJavaVMを起動し、さらにそのJavaVMからnativeメソッドをコールバックさせる方法です。Webで調べた際に、意外と情報が見つからなかったのでメモ。

結論から言ってしまうと、RegisterNativesというJNI関数を使用します。この関数は、jclassとJNINativeMethod構造体の配列を引数に取り、Java側のnativeメソッド宣言とnative側のメソッド本体を動的に結びつけます。

具体的な使い方は、以下のサンプルコードを参考にしてください。
Continue reading →

Googleカレンダーのバグ?

今日、ある予定をGoogleカレンダーに作成しようとしたのですが、以下のメッセージが表示されて予定の作成が行えないという現象が発生しました。

この予定を作成できませんでした。数分後にもう一度試してください。

最初は、ネットワークが切れたのか?と思っていたのですが、何回トライしても同じ結果。他のページは正常に表示されるし、カレンダーのリロードも問題なく行えるので、どうやらネットワークの問題ではない模様。

ふと思いついて、予定のタイトルを変えてみたところ、正常に登録が行えました。どうやら、タイトルに含まれる文字列によって、予定が作成できないというバグがあるようです。
Continue reading →

祝おう!1234567890の日

この記事を書いている時点からあと20時間ほどで、UNIX time(1970年1月1日0時0分0秒からの累積秒)が1234567890秒目を迎えます。1234567890day.comというドメインも用意されて、世界各地でカウントダウンイベントなどが企画されているようです。

日本時間では、土曜日の午前8時31分30秒。私は布団の中でお祝いすることになりそうです。