Androidの開発でエミュレータへapkをインストールする時は
プロンプトで「adb install apkのフルパス」を叩く
その際、「error: device offline」と表示される場合がある。
これはエミュレータから任意の端末設定を起動(自分が試したのは2.2設定)
そして画面ロックを解除してから再度コマンドを叩くと直った
CoreGraphicsでメモリがどんどん使われる
CGContextShowGlyphsAtPointを使ったアプリでleaksを使ってメモリの消費を見ていた時のこと
内部のadd_chunkという関数でmallocが使われてメモリがみるみる浪費されていく…。
どうやらGlyphs用のキャッシュ機能っぽい。
せめてある程度制御できる手段が提供されているといいんだけど、そんなメソッドもなさげ。
同じ文字を使う限り増加せず、今まで使用した事がない文字(マルチバイト文字だけかも?未調査)を渡すと
160byteと32byteあたりが増えるので、これをどうにかしたい訳だが現状ではどうにもできなさげ。
内部のadd_chunkという関数でmallocが使われてメモリがみるみる浪費されていく…。
どうやらGlyphs用のキャッシュ機能っぽい。
せめてある程度制御できる手段が提供されているといいんだけど、そんなメソッドもなさげ。
同じ文字を使う限り増加せず、今まで使用した事がない文字(マルチバイト文字だけかも?未調査)を渡すと
160byteと32byteあたりが増えるので、これをどうにかしたい訳だが現状ではどうにもできなさげ。
OpenAL 1つのソースで複数バッファを切り替える
1つのソースに複数バッファを割り当てて切り替えたい時は、
alSourceStop( ソースのID );
alSourcei( ソースのID, AL_BUFFER, 0 );
と停止してからバッファに0をセットして一度処理中のキューを空にする。
キューが空になってないとリークする事があるっぽい。
その後、
alBufferDataで新たに切り替えたいサウンドをセットすればよい。
セットしたサウンドはalBufferData内で別途確保されてコピー済みなのでfreeしてよい。
alSourceStop( ソースのID );
alSourcei( ソースのID, AL_BUFFER, 0 );
と停止してからバッファに0をセットして一度処理中のキューを空にする。
キューが空になってないとリークする事があるっぽい。
その後、
alBufferDataで新たに切り替えたいサウンドをセットすればよい。
セットしたサウンドはalBufferData内で別途確保されてコピー済みなのでfreeしてよい。
EclipseでGAE/Pのmemcacheがエラー扱いになる
「設定>インタープリタ-Python>強制ビルトイン」に
google.appengine.api.memcache
を追加したら直った
google.appengine.api.memcache
を追加したら直った
UnicodeEncodeErrorが出る
そんな時は、一度以下を試してみる。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys, codecs
sys.stdout = codecs.lookup('utf_8')[-1](sys.stdout)
諸々の意味はググればすぐ出るので、それで思い出す事。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys, codecs
sys.stdout = codecs.lookup('utf_8')[-1](sys.stdout)
諸々の意味はググればすぐ出るので、それで思い出す事。
key_nameに全角文字
キー名は数値じゃないときは文字列型って事なので、
全角で指定とかできるのかしらと試したら、
hoge = YourEntity( key_name=u'hoge_ほげほげ' )
みたいにしても動くみたい。
まだデプロイしてないからなんとも言えないけど、開発サーバだけって可能性は否めない。
使い道あるのかな…。
全角で指定とかできるのかしらと試したら、
hoge = YourEntity( key_name=u'hoge_ほげほげ' )
みたいにしても動くみたい。
まだデプロイしてないからなんとも言えないけど、開発サーバだけって可能性は否めない。
使い道あるのかな…。
1ファイルにあまり定義しない方がよい?
ダラダラとhelloworld.pyの1ファイルに、
リクエストハンドラのクラスや諸コードをやたらと長く書いてたのを、
ちゃんとファイル名も変えて整理して、細かくファイル分けしたら
レスポンスまでの体感速度が若干上がったようなのでメモ。
リクエストハンドラのクラスや諸コードをやたらと長く書いてたのを、
ちゃんとファイル名も変えて整理して、細かくファイル分けしたら
レスポンスまでの体感速度が若干上がったようなのでメモ。
GAEのPython2.7用YAMLメモ
application: yourappname
version: 1
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /
script: main.app
# django
#----------------------------------------------------------------
libraries:
- name: django
version: 1.2
########################
# YAMLは以上、以下補足 #
########################
上記ハンドラは○○.appspot.com/ にアクセスが来た時main.pyで処理する設定例
main.py には以下を定義
app = webapp.WSGIApplication([('/', TopPage)], debug=True)
def main():
run_wsgi_app(app)
if __name__ == "__main__":
main()
version: 1
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /
script: main.app
# django
#----------------------------------------------------------------
libraries:
- name: django
version: 1.2
########################
# YAMLは以上、以下補足 #
########################
上記ハンドラは○○.appspot.com/ にアクセスが来た時main.pyで処理する設定例
main.py には以下を定義
app = webapp.WSGIApplication([('/', TopPage)], debug=True)
def main():
run_wsgi_app(app)
if __name__ == "__main__":
main()
"app"という変数にハンドラ情報入れてるので
script: 部分のファイル名は「処理したいPythonファイル名」.「ハンドラ入れた変数名」と書く
yamlのscript: にパッケージに入れてある階層内のpyを書く時
script: foo/bar/hoge.app
のようにスラッシュ区切りはダメ。
script: foo.bar.hoge.app
パッケージ指定の時と同じくここもピリオド区切り。
スマホ用JavaScriptフレームワークの雑感
使って試してすごい雑な雑感。使って移行していった順。
iScroll4 … シンプルでよければこれで十分。サンプル少ない?ナビゲーションが面倒かも。
jQTouch … ナビーションアニメーションやバーも簡単に組み込める、ちょっと重い?
AppML…jQTouchとiScrollのいいとこどりだが重いのが惜しい。
動的コンテンツに対応した作りになっていないので、動的にページ内のサイズが変わるときは自前で修正が必要
Web2.0Touch…重くなくて動的ページが基本の作りなAppMLって感じ。現状これでよさそう。
標準ではタブバーのスクロールができないが自分でiScrollを足せば解決
iScroll4 … シンプルでよければこれで十分。サンプル少ない?ナビゲーションが面倒かも。
jQTouch … ナビーションアニメーションやバーも簡単に組み込める、ちょっと重い?
AppML…jQTouchとiScrollのいいとこどりだが重いのが惜しい。
動的コンテンツに対応した作りになっていないので、動的にページ内のサイズが変わるときは自前で修正が必要
Web2.0Touch…重くなくて動的ページが基本の作りなAppMLって感じ。現状これでよさそう。
標準ではタブバーのスクロールができないが自分でiScrollを足せば解決
日付プロパティを数値プロパティで代替する場合を考える
時系列系のプロパティ(DateTimeProperty、DateProperty、TimeProperty)を使わずに
他の方法で日付プロパティを表現するにはと考えた結果、
def getCurrentDate():
t = datetime.datetime.today()
if is_local() is False:
t += datetime.timedelta(hours=9)
return long(t.strftime("%Y%m%d"))
def getCurrentTime():
t = datetime.datetime.today()
if is_local()is False:
t += datetime.timedelta(hours=9)
return long(t.strftime("%Y%m%d%H%M"))
def getCurrentTimeSec():
t = datetime.datetime.today()
if is_local() is False:
t += datetime.timedelta(hours=9)
return long(t.strftime("%Y%m%d%H%M%S"))
みたいな数値をIntegerPropertyで持つくらいしか思い浮かばず。
(時間を足している所は、開発サーバじゃない時に日本時間に直す…つもりで書いたもの)
素直にdate系使ってても特に問題はないので、意味のない妄想であった。
他の方法で日付プロパティを表現するにはと考えた結果、
def getCurrentDate():
t = datetime.datetime.today()
if is_local() is False:
t += datetime.timedelta(hours=9)
return long(t.strftime("%Y%m%d"))
def getCurrentTime():
t = datetime.datetime.today()
if is_local()is False:
t += datetime.timedelta(hours=9)
return long(t.strftime("%Y%m%d%H%M"))
def getCurrentTimeSec():
t = datetime.datetime.today()
if is_local() is False:
t += datetime.timedelta(hours=9)
return long(t.strftime("%Y%m%d%H%M%S"))
みたいな数値をIntegerPropertyで持つくらいしか思い浮かばず。
(時間を足している所は、開発サーバじゃない時に日本時間に直す…つもりで書いたもの)
素直にdate系使ってても特に問題はないので、意味のない妄想であった。