MacでAndroidに同梱するSQLiteのファイルを作る。

sqlite3デフォで入ってるので特にツールは不要。

まず綺麗なDesktopへ
cd desktop

起動

sqlite3 question_data.db
//question_data.dbを指定して起動。
//まだdbファイルはつくられないが、テーブル作った瞬間question_data.db

sqlite> .read test.sql
// test.sqlの中

//android_metadata これAndroid依存の必須項目

create table android_metadata (
locale text default 'ja_JP'
);

create table question_data (
_id integer primary key not null, //これもAndroid依存の必須項目
question text,
level int
);

CSV インポート

sqlite> .separator "," //カンマ区切りの区切り文字指定
sqlite> .import question_data.csv question_data

question_data.csv line 1: expected 3 columns of data but found 4

エラーがでたのでCSVを確認。CSV文字コードを-uft-8 改行コードはunixに変更した。

sqlite> select * from question_data;

成功。やれやれだぜ。

Mac Eclipse環境構築メモ 

FlashBuilder Motodev Aptana GWTプラグインをカバーしているバージョンはないので3.6に。
FlashBuilder4.0のためcarbon版Eclipseを入れる。

Google Plugin

http://dl.google.com/eclipse/plugin/3.6

追記するかも。

CSVをGAEJでキャッシュするサーブレットを作る

  • URLFetchでCSVを引っ張ってきてDataStoreに格納。この処理をクーロンで定時行う。
  • クライアントからアクセスがあったらメモリキャッシュを返しなければDataStoreからデータ返却。

URLFetchでCSVを引っ張ってきてDataStoreに格納。この処理をクーロンで定時行う。

都道府県別の47のCSVと全部ひとつのCSVがあるのが困る。どっちから引っ張るか悩む。
JavaでのCSVのパースからか。

今後のTODO

とりあえず、去年Androidアプリをリリース完了。

今はGoogleAppEngine Javaを勉強中。
とりあえず、本2冊読んだ。

最初読んだのがこれ。ただしJDOを使うのはあまりよろしくないようです。

GoogleAppEngine for Java実践クラウド・プログラミング

GoogleAppEngine for Java実践クラウド・プログラミング

でLow level APIを使っているさらに入門書。これはすごく良い本だった。

入門書は簡単すぎる位の本をさらっと読んで写経するとよい。
この次はGAEJとBlazeDSAIR for Androidを組み合わせてデモアプリ作るのを目指す予定。

技術書を裁断して電子化しようかとマジで思う

本を裁断してくれるサービスが最近増えた。
scapon.jp - このウェブサイトは販売用です! - 自炊代行 書籍 電子化 スキャン スキャポン 自炊 リソースおよび情報

この本繰り返し何度もファミレスで読みたいのですが、いかんせん重い。
はっきりいってiPadより重いっしょ。マジ裁断したいようなしたくないようなしたいような。

あと、やっぱりぐぐるAndroidのサンプルコードとか解析するにはこの本がどうしても読みたい。

Java並行処理プログラミング ―その「基盤」と「最新API」を究める―

Java並行処理プログラミング ―その「基盤」と「最新API」を究める―

しかし、朝食時にファミレスで読書をするために2冊もっていったら肩脱臼するわな。
iPad買って裁断しようかしら。

iPadである必要はない、PDFをタッチパネルで見れればそれでOKなんだよね。
その辺のニーズPCメーカー汲んでくれるとうれしいんだが。

Apache HttpComponents VS 俺

Apache HttpComponents
ファイルをPOSTでアップロードするだけで情報錯綜してマジ混乱した。
普通にもうHTTPのやりとりはApache HttpComponentでやるようにするよ。

それにしても書き方も慣れないな〜。このセンス何なのよ。

以下 Androidで自分のアプリケーションサンドボックス内の、画像をアップロードしてRESTで結果をもらうサンプルです。

		File photo = new File("/data/data/" + this.getPackageName() + "/files/", "temp.jpg");

		DefaultHttpClient client = new DefaultHttpClient();

		HttpPost post = new HttpPost("アップロードするURL");
		MultipartEntity entity = new MultipartEntity();
		post.setEntity(entity);

		FileBody fileBody = new FileBody(photo);
		entity.addPart("file", fileBody);

		try {
			
			HttpResponse response = client.execute(post);

			HttpEntity responseEntity = response.getEntity();
			result = EntityUtils.toString(responseEntity);
			

		} catch (Exception e) {

			e.printStackTrace();

		}	

やっぱ型が厳格だからこんなAPIになるのは仕方ないところか。激しく使いにくい。
なのに、結果の文字列化はEntityUtilsとか超便利クラスあってどんだけツンデレなんだよっ!!

何度も何度も見ているうちになんか違和感なくなってきた。