« 2010年10月 | トップページ | 2010年12月 »

2010年11月

2010年11月29日 (月)

オープンソースカンファレンス 2010 Shimaneに行ってきました。

11/27日(土)にオープンソースカンファレンス 2010 Shimaneに
行ってきました。

今までは1参加者だったのが、今回は中国GTUGの紹介をするために
出展者として参加してきました。

中国GTUGの出し物としては基本的に活動の紹介だったので、
資料もなにも無かったのですが、
Googleさんからのグッズの提供があり、非常に助かりました。
参加者の方にはGoogle日本語入力の漫画と各種APIのロゴステッカーを
お配りしました。
また、京都GTUGの村岡さんが援軍(?)に駆けつけてくれたりと
今後の中国GTUGでもHTML5を取り入れないといかんなと
モチベーションが上がりました。

さすが、OSCと言わざるを得ないぐらいの知識豊富な方が多くて、
Q&Aコーナーと言っていたのが、こちらが勉強させていただきました。
Google日本語入力の歴史を調べると面白いそうです。
聞いてて楽しかった!
(話を聞いたのはGoogle日本語入力の開発者の経歴がどんなものだったか
など。)

1日展示スペースに陣取っていて、思ったのは紹介できる物を事前に
しっかり準備しておくことが重要だと思いました。
(当日やってて、色々思いついたのですが、時既に遅し。。)
思いついてやったのは、Google日本語入力のデモ(予測変換の機能など)と
Chrome to Phoneのデモ、HTML5のデモなんかをやっていました。

最後のLTで京都GTUGの村岡さん、日本Androidの会中国支部のたかたさんを
はじめ、数々の方が奮闘されていました。
(ライブコーディングは惜しかった!)

OSC島根の懇親会に出席したのですが、
そこでは高専の学生と話をしていたのですが、
東京のOSCに行けと半ば強引に…ではなく、優しくおすすめしていました。
東京や京都のOSCのように規模が大きいカンファレンスには
行けるときに行ってみるべきだと私も思ったので
おすすめしました。
行ってみて何か得るものがあればいいと思います。

それ以外にもMySQLユーザ会の坂井さんとずっとお話を
させていただいて、勉強会の開催の話やら、仕事の考え方なんかの
話をしたりして、次回はOSC福岡に行かれるそうです。
福岡の方は気軽に話しかけてみてください。

少しだけ2次会にも参加したのですが、
OSCの参加者というか、運営の方はOSCにこだわりが
あるようで、その点だけは私とは違った感覚がありました。
あとは、地域活性化に利用しようと考えている方など、
個人的にそういう方向性では考えたことがなかったので
違和感がありました。

来年の島根にも出展できるかどうかわかりませんが、
もし、次回も出展することになって、私がマネージャだったら
次回は講演の枠も確保しようかなと思っています。

| | コメント (0) | トラックバック (0)

2010年11月26日 (金)

11月25日のトレーニング

ボディパンプ(45分)

明日(11/27)はOSC島根ですね。
朝6時起きで、間に合うだろうか。。。

| | コメント (0) | トラックバック (0)

2010年11月25日 (木)

11月24日のトレーニング

ボディコンバット(45分)

最近体重が1kgぐらい落ちました。
(食事の前後の計量タイミングもありますが。。)

| | コメント (0) | トラックバック (0)

2010年11月23日 (火)

11月23日のトレーニング

ボディパンプ(60分)

| | コメント (0) | トラックバック (0)

2010年11月21日 (日)

11月21日のトレーニング

ボディアタック(30分)

今日は軽めに運動をしてきました。
来月のタイムスケジュールが来週発表されるようです。

| | コメント (0) | トラックバック (0)

2010年11月19日 (金)

11月18日のトレーニング

ボディパンプ(45分)

昨日は声がでなくなっていたのですが、
熱も無かったし、行ってみました。

やっぱり完治するまではおとなしくしていた方が良さそうです。

| | コメント (0) | トラックバック (0)

2010年11月16日 (火)

11月15日のトレーニング

ボディパンプ(60分)

週末に風邪を引いてから治りかけた状態で投薬後に行ってきました。
やっぱりちょっときつかったです。

| | コメント (0) | トラックバック (0)

2010年11月15日 (月)

SQLiteをAndroidから利用する時の注意点

中国GTUGの勉強会ででてきて、時間がなかったので、
当日には解決できなかったので、いろいろと調べてみました。

すると、SQLiteOpenHelperがどうやって、SQLiteDatabaseを管理しているのかが
わかりました。

これがわかると、SQLiteOpenHelper#onCreateと
SQLiteOpenHelper#onUpgradeがどんな時に呼ばれるのかが
分かってきます。

結論を言うと、onCreate() or onUpgrade()が呼ばれるのは、アプリケーションが
起動されて、最初にSQLiteOpenHelper#getWritableDatabaseか、
SQLiteOpenHelper#getReadableDatabaseが呼ばれるタイミングで
メソッドが呼ばれることになります。

で、SQLiteDatabaseはSQLiteOpenHelperが管理するのですが、
最初にインスタンスを生成した後、メンバ変数に退避されます。
(戻り値も参照したものを返します)

SQLiteDatabase#getWriableDatabaseの実装が以下のようなものに なっていますので、2回目以降だとメンバ変数の参照を返すように なりますので、closeを呼ぶ時は注意が必要です。

        if (mDatabase != null && mDatabase.isOpen() && !mDatabase.isReadOnly()) {

            return mDatabase;  // The database is already open for business
        }

特にContentProviderのようにcloseのタイミングが取りにくい(というか、取れない気がする)
場合などは、closeした後、再度SQLiteOpenHelperからSQLiteDatabaseを
取ると、closeされた状態のインスタンスが返される可能性があります。

なので、この時点で考えられる方法としては、

1. closeと一緒にSQLiteOpenHelperにnullを代入する。(再利用時はインスタンス生成する)
2. closeをしない。

上記の2つになると思います。

1.しかないだろ?と思われますが、実は2.でいいのです。
その理由は、SQLiteDatabaseで#finalizeが実装されていて、
ここで、closeとほぼ同じ処理が書かれています。

finalizeはObjectクラスのメソッドですので、
VM(Androidの場合はDalvik-VM)のGC実行時に呼び出されて
無事、close処理が実行されます。

ということから、SQLiteDatabaseも色々考えられている事がわかります。

ただし、Cursor#closeはしっかり呼んだ方がいいです。
これはInterfaceなので、どんな実装になっているかわかりませんので、
明示的に呼ばなければいけません。
closeをしてないと、メモリ圧迫の原因になります。
(LogCatにはたまに(毎回?)警告メッセージが出力されます。)

| | コメント (0) | トラックバック (0)

2010年11月14日 (日)

第3回勉強会@岡山を開催しました

昨日のことですが、
第3回勉強会を岡山で開催しました。

今回は、
Google App Engine、Android、Google SketchUp、
Google Developer Day2010の報告の発表を
していただきました。

今回一番驚いたのが、中国GTUGしか来ないという方もいらっしゃったこと。
こういうメンバーは大事にしたいなと思いました。

各セッションは、というと。

Google App Engineは主に中国で開発している、
micologというブログアプリケーションをインストールするという内容。

インストールだけでしたが、つまづく人も多く、Google App Engineの
セッションはまだまだ必要だと思いました。
(インストール自体は簡単でした。Google App Engine/pythonが分かる人は
苦戦することは無いと思います。)

AndroidのセッションはContentProviderを使う方法を紹介して
くれました。
初めてということで準備不足感はありましたが、奮闘していただきました。
またリベンジをお願いしようと思います。
これに関しては、私も事前にサポートするべきだったと反省。

Google SketchUpのセッションは、私も初めてだったのですが、
結構すごいです。有料版のツールを買えばレンダリングも可能になるとのこと。
動画を用意していただいたので、そのうち中国GTUGのサイトに
上げたいと思います。(サイズが大きいらしいのでそこを解決しないと。。)

最後に、Google Developer Day 2010の報告ということで、
東京会場に行ったToro_kunと京都でスタッフをした私とtwingo_bさんで
写真を見ながら報告をしました。
やっぱり東京会場の方が資料(チラシ?)の量が多かったですね。
採用情報的なものとか、、、
でも、日本語入力の本は東京も京都も同じように頂いたようです。

あとは、Chrome丼とか京都の弁当の写真を見せたりとか。

最後に、京都会場の良さ、というか、(何を言ったかよくわからなかったと思うけど)会場が東京/京都どちらにしてもおもしろい点があるはずだと
言う事を話しました。
(京都でスタッフをしてみたら、なんとなくわかりました)

それから、基調講演でのNext Generation枠の話題から、
面白い人を育てる(or 生み出す)ような活動をすれば、
東京に行かなくても面白くなるんじゃないのか?という話題とか。
まあ、東京に行くというのは今の日本では仕方が無いことだと
思いますけど、そのまま流出させるだけだと、衰退するだけなので、
次の世代の人も育てたいよね?
と、思ったので、これからは「次の世代」を育てれたら良いなあと
言う感じで締めました。

で、懇親会は焼肉屋で盛り上がって帰ったのですが、
途中から風邪を引いてしまったことが分かって、
懇親会の途中から頭が回っていなかったと思います。

ということで、中国GTUGのメンバーの皆さん、
風邪を引いたら多分、私だと思いますのでお許しください。

| | コメント (0) | トラックバック (0)

2010年11月11日 (木)

11月10日、11日のトレーニング

10日
ボディコンバット(45分)

11日
ボディパンプ(60分)
ボディコンバット(60分)

夜から打ち合わせがあるのに、少しやりすぎました。

| | コメント (0) | トラックバック (0)

2010年11月 9日 (火)

11月8日のトレーニング

ボディパンプ(60分)

| | コメント (0) | トラックバック (0)

2010年11月 7日 (日)

11月7日のトレーニング

ボディアタック(30分)

今日も携帯マグが役に立ちました。
これを使うと飲み物を買わなくて良いので、少しお得です。
ただ、100円とマグを洗ったりする手間のどちらが
安いのか?という疑問はありますが。。

| | コメント (0) | トラックバック (0)

11月6日のトレーニング

ボディコンバット(60分)

久しぶりに携帯マグにお茶を入れて持って行きました。
意外と使えます。

| | コメント (0) | トラックバック (0)

2010年11月 6日 (土)

AndroidでGree Social Feedbackを利用する(?)

AndroidからGree Social Feedbackを利用してみたいと思ったので
使ってみようと思ったのですが、こういう使い方はありなんだろうか。

例えば、GoogleのサイトをFeedbackさせるとして、、
以下のURLにリクエストすると、確かにGreeのサイトが開き、コメントも
投稿できます。

http://gree.jp/?mode=share&act=write&url=http://www.google.co.jp

例えば、ImageButtonにGreeの画像をはって、ACTION_VIEWのIntentを投げるとか。

本来は、

<iframe src="http://share.gree.jp/share?url=http%3A%2F%2Fdeveloper.gree.co.jp%2Fconnect%2Fplugins%2Fsf&type=0&height=20" scrolling="no" frameborder="0" marginwidth="0" marginheight="0" style="border:none; overflow:hidden; width:100px; height:20px;" allowTransparency="true"></iframe>

こんな感じのコードをHTMLの中に埋め込んで使うようなのですが、

どうなんでしょうか。

| | コメント (0) | トラックバック (0)

SQLiteのautoincrementの値をリセットする方法

私がリリースしているAndroidアプリはSQLiteを利用している事が多くて、
特に、データのリストア機能を使うものについては、
データの入れ替え後にリセットしておくべきだと思います。

ということで、調べてみると、以下のクエリを実行することで
テーブルのautoincrementをクリアする事ができるようです。

update sqlite_sequence set seq=1 where name='テーブル名';

まあ、Androidで登録する件数がintの桁を超える程、「人力で」登録することなんて
ないと思いますけどね。。


| | コメント (0) | トラックバック (0)

2010年11月 5日 (金)

10月の発表を通じて

10月は、4つの勉強会に参加しました。
オープンラボ岡山
オープンセミナー2010@徳島
OITEC勉強会
オープンラボ備後

今回はオープンラボ岡山以外はLTを含めて発表をしてきました。

ちょっと、月3回の発表は資料を作るのも時間がかかるし、
大変な事がわかりました。
また、OITEC、オープンラボ備後の勉強会はHTML5関連(OITECはブラウザですが)だったのですが、
HTML5もJavaScriptも知らない状態で発表するのは
ハードルが高いこともわかりました。

オープンセミナー@岡山の実行委員長の役も終わりましたし、
これからは、発表、参加の数を抑えていこうと思います。
(疲労、仕事、勉強、費用等々を考えると勉強会が増えている現状からすると
全てOKをするのは無理なので)

11月も3つの勉強会に参加しますが、
基本的にはGTUGの活動がメインです。それからオープンラボ岡山。
発表はないので、負荷もそこまで高くないですから、
多分大丈夫でしょう。

| | コメント (0) | トラックバック (0)

2010年11月 4日 (木)

11月4日のトレーニング

ボディパンプ(45分)

もう11月なんですね。

| | コメント (0) | トラックバック (0)

11月3日のトレーニング

ボディステップ(30分)
ボディパンプ(30分)

久しぶりにボディステップに挑戦したのですが、
特別スケジュールだったので、データ取りができませんでした。
別のスケジュールの日に調べてくることにします。

| | コメント (0) | トラックバック (0)

2010年11月 2日 (火)

11月1日のトレーニング

ボディパンプ(60分)

今日は行く前に夕食を摂ってから行ったら
やっぱりよく動けました。
運動する前はしっかり食べた方が良いようです。

| | コメント (0) | トラックバック (0)

2010年11月 1日 (月)

YouTubeカスタムプレーヤー埋め込みテスト

YouTube APIのカスタムプレーヤーを埋め込んでみる。

カスタムプレーヤーは以下のサイトで作ることができます。

(YouTubeのアカウントを作る必要があります)

http://www.youtube.com/custom_player

| | コメント (0) | トラックバック (0)

« 2010年10月 | トップページ | 2010年12月 »