iappliToolが終了していてもビルド自体は出来ています。
ビルドできているのでいいと言えばいいのですが、いちいち再起動が面倒なわけです。
これを回避するためには、
iappliToolの「設定」-「エミュレータ環境設定」の「ビルドの設定」タブを選び
「チェック処理」の
「ADFチェック処理(起動時必須項目)を実行する」のチェックをはずす
とよいようです。
これでビルドしても落ちなくなりました。
import gdata.calendar.service
def print_event():
#認証部分
username = 'グーグルアカウント'
calendar_service = gdata.calendar.service.CalendarService()
calendar_service.email = username
calendar_service.password = 'グーグルアカウントのパスワード'
#適当にプログラム名を指定すればよい感じ
calendar_service.source = 'Google_Calendar_Event_Get_test'
calendar_service.ProgrammaticLogin()
#デフォルトのカレンダーから取得する
visibility = 'private'
projection = 'full'
query = gdata.calendar.service.CalendarEventQuery(username, visibility, projection)
#検索条件の指定
#検索範囲を指定
query.start_min = '2009-11-01'
query.start_max = '2009-12-02'
#繰り返しイベントを別のイベントとして取得
query.singleevents = 'true'
#イベントの開始日時の昇順でソート
query.orderby='starttime'
query.sortorder='a'
feed = calendar_service.CalendarQuery(query)
for ev in feed.entry:
for e in ev:
print '%s. [%s]-[%s]' % (ev.title.text,e.start_time,e.end_time)
urlpatterns = auth_patterns + patterns('',
('^test/$','django.views.generic.simple.direct_to_template',
{'template': 'test.html'}),
) + urlpatterns
import django.utils.simplejson as json
def parse_json(json_str):
obj = json.loads(json_str)
return obj
#2つの指定座標が収まるズームサイズを求める
#sizeは画像サイズ(正方形地図を利用としています)
# 長方形の場合は、二つの値を受け取ってそれぞれに対して
# zoomを計算して小さい方を選べばよいと思います。
#x1,y1はポイント1の緯度経度
#x2,y2はポイント2の緯度経度
def get_zoom_size(size,x1,y1,x2,y2):
dx = float(x1)-float(x2)
dy = float(y1)-float(y2)
d=math.sqrt(dx*dx+dy*dy)
if d==0:
return 14
zoom = math.log(float(size)/d)/math.log(2)
return int(math.floor(zoom))
# -*- coding: utf-8; -*-
from time import time
from math import floor
from urllib import urlencode
from google.appengine.api import urlfetch
def google_append_color(color,dt):
color_array = color.split(',')
return color_array[int(dt % len(color_array))]
def google_ad(request):
scheme = 'https://' if request.is_secure() else 'http://'
dt = time()
params = {
'ad_type':'text_image',
'channel':'設定したいchannelのコードを設定',
'client':'ca-mb-' + '自分のAdSenseの値を設定',
'dt':repr(floor(dt*time())),
'format':'mobile_single',
'https':request.META.get('HTTPS', ''),
'ip':request.META.get('REMOTE_ADDR', ''),
'markup':'xhtml',
'oe':'utf8',
'output':'xhtml',
'ref':request.META.get('HTTP_REFERER', ''),
'url':scheme + request.META.get('HTTP_HOST', '') + request.META.get('REQUEST_URI', ''),
'useragent':request.META.get('HTTP_USER_AGENT', ''),
'color_border':google_append_color('ここは色をカスタマイズするならば利用',dt),
'color_bg':google_append_color('ここは色をカスタマイズするならば利用',dt),
'color_link':google_append_color('ここは色をカスタマイズするならば利用',dt),
'color_text':google_append_color('ここは色をカスタマイズするならば利用',dt),
'color_url':google_append_color('ここは色をカスタマイズするならば利用',dt),
}
screen_res = request.META.get('HTTP_UA_PIXELS', '')
delimiter = 'x'
if screen_res == '':
screen_res = request.META.get('HTTP_X_UP_DEVCAP_SCREENPIXELS', '')
delimiter = ','
if screen_res == '':
screen_res = request.META.get('HTTP_X_JPHONE_DISPLAY', '')
delimiter = '*'
res_array = screen_res.split(delimiter)
if len(res_array) == 2:
params['u_w'] = res_array[0]
params['u_h'] = res_array[1]
muid = request.META.get('HTTP_X_DCMGUID', '')
if muid != '':
params['muid'] = muid
muid = request.META.get('HTTP_X_UP_SUBNO', '')
if muid != '':
params['muid'] = muid
muid = request.META.get('HTTP_X_JPHONE_UID', '')
if muid != '':
params['muid'] = muid
muid = request.META.get('HTTP_X_EM_UID', '')
if muid != '':
params['muid'] = muid
url = 'http://pagead2.googlesyndication.com/pagead/ads?' + urlencode(params)
result = urlfetch.fetch(url)
if result.status_code != 200:
return None
return result.content