横浜支部に CloudCore がやってきた


KDDIウェブコミュニケーションズさま のご厚意により、
日本Androidの会 横浜支部 として CloudCore VPS を無償でお借りしました。
素晴らしいクリスマスのプレゼントになりました。

お借りしたサーバー
http://kvps-180-235-254-171.secure.ne.jp/

ちなみに、初期状態では動いているサービスは ssh しかなかった。
apache をインストールして、WEBページを表示するようにしました。。
久しぶりに サーバーの設定をしたので、何をどうやるんだっけと、少しまごつきました。

おまけとして、雲野コア のイラストを載せておきます。


LOD サンプル2


LOD (Linked Open Data) のサンプルコードです。
ソースコードは code.google で公開しています。

概要
ヨコハマ・アート・LOD を使用して、今月のイベントの一覧を取得する。
LOD サンプル1 をアンドロイド・アプリらしくしたものです。

課題
(1) イベントの詳細情報と場所の詳細情報は、標準のWEBブラウザ・アプリを使って、それぞれのWEBページを表示しています。
残念ながら、WEBページがスマホ対応していないため、肝心の情報が小さく表示されます。
アプリに、詳細情報用の表示画面を用意するほうがよさそうです。
(2) 場所の位置を、標準の地図アプリを使って、緯度経度を指定して表示しています。
地図アプリでは、指定した緯度経度を示すマーカーが表示されません。
アプリに、地図の表示画面を用意するほうがよさそうです。

関連
LOD サンプル1
・LOD サンプル2

参考
ヨコハマ・アート・LOD
RDF用クエリ言語SPARQL


LOD サンプル1


LOD (Linked Open Data) のサンプルコードです。

ソースコードは code.google で公開しています。

概要
ヨコハマ・アート・LOD を使用して、本日開催されているイベントの一覧を取得する。

取得する情報
・イベントの名称
・イベントの詳細情報へのリンク
・イベントの日時
・イベントの概要

・場所の名称
・場所の詳細情報へのリンク
・場所の住所
・場所の緯度経度

発行するSPARQL

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX schema: <http://schema.org/>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
PREFIX cal: <http://www.w3.org/2002/12/cal/icaltzd#>
PREFIX place: <http://fp.yafjp.org/terms/place#>
PREFIX event: <http://fp.yafjp.org/terms/event#>
SELECT DISTINCT *
WHERE {
 ?place rdf:type place:Place ;
 rdfs:label ?place_name ;
 schema:address ?address ;
 geo:lat ?lat ;
 geo:long ?long .
 ?event event:location ?place ;
 rdfs:label ?event_name ;
 cal:dtstart ?dtstart ;
 cal:dtend ?dtend ;
 dc:abstract ?abstract .
 FILTER (lang(?place_name) ="ja" )
 FILTER ((?dtstart > "2012-12-01T00:00:00+09:00"^^xsd:dateTime && ?dtstart < "2012-12-01T00:00:00+09:00"^^xsd:dateTime) ||
 (?dtend > "2012-12-01T00:00:00+09:00"^^xsd:dateTime && ?dtend < "2012-12-01T00:00:00+09:00"^^xsd:dateTime) ||
 (?dtstart < "2012-12-01T00:00:00+09:00"^^xsd:dateTime && ?dtend > "2012-12-01T00:00:00+09:00"^^xsd:dateTime))
}
ORDER BY ASC(?dtstart)

関連
・LOD サンプル1
LOD サンプル2

参考
ヨコハマ・アート・LOD
RDF用クエリ言語SPARQL
PHPサンプル: 今月のイベントの一覧を表示する


文字列から日付をパースする ( ISO8601 )


ISO8601 は、下記のような日付の形式です。
2012-12-01T11:22:33+09:00
2012-12-01T02:22:33Z

これを Andorid でパースするためのクラスはないようです。
代わりに apache commons lang のクラスが使用できます。

ソースコードの例

import org.apache.commons.lang3.time.DateUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
import java.text.ParseException;
public Date parse( String str )  {
	Date date = null;
	try {
		String pattern1 = DateFormatUtils.ISO_DATETIME_TIME_ZONE_FORMAT.getPattern();
		date = DateUtils.parseDate( str, pattern1 );
	} catch ( ParseException e1 ) {
		try {
			String pattern2 = DateFormatUtils.ISO_DATETIME_FORMAT.getPattern() + "'Z'" ;
			date = DateUtils.parseDateStrictly( str, pattern2 );
			date = DateUtils.addSeconds( date, getTimeZoneOffset() );
		} catch ( ParseException e2 ) {
			e2.printStackTrace();
			return null;
		}
	}
	return date;
}
private int getTimeZoneOffset()  {	
	TimeZone tz = TimeZone.getDefault();
	int sec = (int)( tz.getRawOffset() / 1000L );
	return sec;
}

関連
文字列から日付をパースする ( RFC1123 他 )
文字列から日付をパースする ( RFC2445 他 )
・文字列から日付をパースする ( ISO8601 )

参考
ISO-8601 形式の日付文字列を解析(parse)するには
apache commons lang
ISO8601


文字列から日付をパースする ( RFC2445 他 )


RFC2445 は、iCalendar などで使用されている下記のような日付の形式です。
20121201T112233Z

これを Andorid でパースするには、Time クラスを使用します。

ソースコードの例

import android.text.format.Time;
import android.util.TimeFormatException;
public Date parse( String str )  {
	Time time = new Time();
	try {
		time.parse( str );
	} catch( TimeFormatException e ) { 
		e.printStackTrace();
		return null;
	} 
	long msec = time.normalize( false );
	Date date = new Date( msec );
	return date;
}

Time クラスは、RFC2445 形式の他にも、RFC3339 形式に対応しています
– RFC3339
2012-12-10T11:22:33.000Z

関連
文字列から日付をパースする ( RFC1123 他 )
・文字列から日付をパースする ( RFC2445 他 )
文字列から日付をパースする ( ISO8601 )

参考
Time – Android Reference
RFC2445 インターネットCalendaringとスケジューリングコアオブジェクト仕様


文字列から日付をパースする ( RFC1123 他 )


RFC1123 は、RSS などで使用されている下記のような日付の形式です。
Sat, 01 Dec 2012 11:22:33 GMT

これを Andorid でパースするには、DateUtils クラスを使用します。
注意: DateUtils は同名のクラスが2つあります
– org.apache.http.impl.cookie.DateUtils (こちらを使用する)
– android.text.format.DateUtils

ソースコードの例

import org.apache.http.impl.cookie.DateUtils;
import org.apache.http.impl.cookie.DateParseException;
public Date parse( String str )  {
	String pattern[] = { DateUtils.PATTERN_RFC1123 };
	Date date = null;
	try {
		date = DateUtils.parseDate( str, pattern );
	} catch ( DateParseException e ) {
		e.printStackTrace();
		return null;
	} 
	return date;
}

DateUtils クラスは、RFC1123 形式の他にも、ANSI C asctime 形式や RFC1036 形式に対応しています。
– ANSI C asctime
Sat Dec 1 11:22:33 2012
– RFC1036
Satday, 01-Dec-12 11:22:33 GMT

関連
・文字列から日付をパースする ( RFC1123 他 )
文字列から日付をパースする ( RFC2445 他 )
文字列から日付をパースする ( ISO8601 )

参考
AndroidアプリでRSSフィードの日付をパースしてフォーマットする
DateUtils – Android Reference
ANSI C asctime
RFC1036 USENET メッセージ交換のためのスタンダード
RFC1123 ファイル転送プロトコル(FILE TRANSFER PROTOCOL)


Make Faire Tokyo 2012 2日目



写真は、ロボット部の杉浦さんと原田さんとの記念撮影。

2012年12月1日(土)2日(日) に 日本科学未来館 で開催された Make Faire Tokyo 2012日本Androidの会 横浜支部 ロボット部 として出展しました。

今日は、他の方々の展示物を見て回りました。

私も会員の SAKURAボードユーザ会
– GR-SAKURA を使った茶運び人形型ロボット
– GR-SAKURA を使ったエレキギター
_ GR-SAKURA を型どったクッキー

友人たちの展示
うおーるぼっと @jksoft913
土鍋炊飯 @lonely_somen
– 二酸化炭素の濃度を計るデジタル百葉箱 @tosihisa

その他、いろいろ面白かったもの
– むかで型のロボット
– 鉄琴を演奏するロボット
– こんな形で飛ぶのかと思うものもある軽飛行機

– 巨大なニキシ管のスペアナ
– ファンで発砲スチロールを吹き上がるスペアナ
– 駒の回転を感知して上から花びらを投影するもの

手芸も楽しそうでした。
円周率が描かれた藍染め。

終了後は、Google ブースの出展者同士で、ダイバーシティー内の がぜん で打ち上げをしました。

関連
Make Faire Tokyo 2012 初日
・Make Faire Tokyo 2012 2日目


Make Faire Tokyo 2012 初日


2012年12月1日(土)2日(日) に 日本科学未来館 で開催された Make Faire Tokyo 2012日本Androidの会 横浜支部 ロボット部 として出展しました。

今回は、出展の申込みが遅れたので、単独のブースは貰えず、Google さんのブースを間借りしました。
他の Android 関係のグループと一緒で、楽しかったです。
日本Androidの会 横浜支部 ロボット部
 Android端末から操縦するラジコンカー、NFC神経衰弱 (上段の写真)
日本Androidの会 秋葉原支部
 Android端末から AOA 2.0 で操作する音楽プレイヤー
日本Androidの会 福岡支部 / 栗元憲一 with Friends
 Android OS を搭載したラジコンカー
工学院大学 金丸研究室
 Android端末が障害物を検知して止まるプラレール
PIGMAL LLC
 FourBeat : Android端末に ADK を使って接続された押しボタンのゲーム

個人的な買い物として うおーるぼっと を購入しました。
@jksoft913 が作っている 磁石で壁に張り付いて 壁を走るロボットです。

前回までの Make といつくか違いがあります。
会場が、大岡山の東京工業大学から、お台場の日本科学未来館に変更になりました。
参加費が、無料から有料になりました。
場所が変わり、有料になったことで、集客が心配だっだのですが。
始まってみると、開場30分ほどで満員になるほどの盛況ぶりでした。

今回の目玉のひとつは、Kuratas の展示です。
輸送中に壊れたそうで、動くところは見ることが出来ませんでしたが。
置いてあるだけでも、圧倒的な存在感でした。

おまけとして、会場そばの ダイバーシティー の前に展示してあった ガンダム も並べておきます。

終了後は、7階の展望レストラン LA TERRE で、出展者同士の懇親会が行われました。
20時頃、レストランから 花火 が見えました。
お台場レインボー花火 が開催されていたようです。

関連
・Make Faire Tokyo 2012 初日
Make Faire Tokyo 2012 2日目

参考
impress: Maker Faire Tokyo 2012 巨大人型4脚ロボットからジョーク系まで展示されたものづくりの祭典
金丸研究室: Maker Faire TOKYO 2012 (1日目) の様子を現地からお伝えする(予定だった)よ!
PIGMAL: Maker Faire Tokyo 2012で展示を行いました