まめーじぇんと@Tech

技術ネタに関して (Android, GAE, Angular). Twitter: @mame01122

Low Level APIを使うことによるDatastore Read Operationsの変化

以前の記事 GAEのDatastore Read Operations - まめージェント 以降、GAEのDatastoreアクセス周りを大幅にリファクタリングしました。 今回は、JDOを使うこと前提の設計から、 Low Level APIで、極力Datastore Read OperationsやDatastore Write Operations…

Photoshopでjpgが書き出せない?

今日、小ハマりしたのでメモ。 Photoshopで画像を「別名で保存」でjpgとして書きだそうとしたら、 書き出し可能な形式にjpgがない・・・?あれ・・・? となった。 原因は、新規ファイル(ドキュメント? プロジェクト?)を作ったときのカラーモードで 16bi…

RDSとKVS

belboさんにDatastore Opsを減らすには、 QueryではなくKeyを使ってget()した方がいいよ、 というご指摘を受けよくよく考えると自分、 Keyって何なんだか、よくワカッテネ・・・。 そして、そもそもKVSとRDSの違い、よくワカッテネ・・・。 ということに気づ…

GAE上でのStaging / Production serverの切り替え

実際にサービスを公開するにあたり、GAE上で Staging server / Production serverをどうハンドリングするかについて 調べてみたのでメモ。今のところ、(やはりというべきか何というべきか)下記2つの方法がありそう 1: 同じApp IDを使い、アプリ内でIf文でS…

jpg画像の圧縮

最近のウェブサービスは(みんなTwitter bootstrapを使っているせいか)、 トップページのいわゆる「ヒーローショット」の画像が大きいかと思います。 僕も、174Kbの画像だったので、これをどうにか削減できないか、 と見つけたのが下記ウェブサービスです。…

HTMLのフォームからGAEメール送信で文字化け

仕事の方では普通、ドキュメントを英語で書いていることもあり、 今作っているサービスでも日本語であまり使ってなかったのですが、 HTMLのフォームをテストしていて、そこからメールを送信すると、 受信したメールの日本語部分が文字化けしていることに気づ…

jquery.localize.jsで多言語対応

前から対応せねば・・・と思っていた多言語対応をしました。いろいろと調べたところ、jquery.localize.jsが一番やりやすそうだったので、 今回はこちらで。1: jquery.localize.jsをダウンロード。 コチラから。 https://github.com/coderifous/jquery-locali…

GAEのDatastore Read Operations

GAEのDatastore Read Operationsの無料枠、 2014年6月末時点では0.05M (5万回)なんですが、 JMeterで負荷テストをしていて、この上限にあっという間に到達してビビったので その情報をシェア。DatastoreをQueryするときは、 だいたい下記のような感じでクエ…

JMeterのセットアップ

そろそろサーバーの負荷テストをしておかねば・・・ということで (あまりDatastore周りのクエリーをうまくできてない気がしているので)、 JMeterで負荷テスト。JMeter http://jmeter.apache.org/導入自体は非常に簡単。 1,2時間でメインとなるところは使え…

GAEの*.appspot.com上でのSSL証明書

GAEに対してHTTPS通信したい・・・ そのために、SSL証明書を用意しないと・・・と思いいろいろと調べたのでメモ。ネット上には”独自ドメインだと、証明書を用意しないといけないですよ” 的な記述はあるんですが、じゃあ普通(?)のhttps://myappname.appspo…

ChromeのDev tool / ロードに時間のかかるコンテンツ

ウェブ開発をする人にとっては知ってて当然の内容かもだけど、 ChromeのDev toolが便利。使い方は、Chromeを開いて(Macでは)[Command] + [Option] + [I]を押すだけ。今回、ウェブサイトのロード時間と、ロードするコンテンツの重さを調べたくて、 簡単にでき…

文字列にスペースがあるとJSONException

サーバ側から返ってきたJSONをAndroidでパースしているんですが、 ある日突然下記のExceptionが。 JSONException: Unterminated object at character x of x今まで何も問題なかったのに・・・と調べること15分、 どうやら文字列にスペースがあるとこのExcept…

GAEのrollback

GAEのデプロイ中にエラーが発生したり中断した際、 バージョンがどうのこうの、というエラーが発生し、デプロイができなくなることがある。そのときは、Eclipse上ではなく、ターミナルからRollbackをする必要がある。 コマンドは下記の通り。 ./appcfg.sh ro…

ローカルに保存されているpng画像をBitmapとして取得

前回の記事の続きで、今回は、 ローカルに保存されているpng画像をBitmapとして取得する方法。 public static Bitmap readBitmapData(Context context, String fileName) { Bitmap data = null; if (fileName != null) { try { InputStream inputstream = co…

Bitmapをpng画像として保存

Bitmapをpng画像として保存する方法。 public static boolean storeBitmap(Context context, Bitmap bitmap, String fileName) { if (bitmap != null && fileName != null) { ByteArrayOutputStream output = new ByteArrayOutputStream(); bitmap.compress(…

Eclipseのclean起動

Eclipseのキャッシュがおかしくなったときなど、 最終手段として使うEclipseのclean起動。 % cd /Applications/eclipse/Eclipse.app/Contents/MacOS/ % sudo ./eclipse -clean ただし、これをやるとEclipseで設定したパースペクティブ(Perspective)やビュー(…

antでのビルドエラー

ant debugで invalid resource directory nameというエラーが出たときの対処。単純だけど、binファイルを強制的に削除、その後 android update project --path .をすると解決。

Androidの自動テストで使うReflectionのUtilクラス

Androidの自動テストを書いていて、 Reflectionを使ってprivateフィールドにアクセスする機会があったので、メモ。 public class ReflectionUtil { public static <T> Object getValue(Class<T> className, String fieldName, Object targetObject) { Object resul</t></t>…

GAE上でString→Blob、Blob→Stringの変換

GAEでAndroidから渡されたStirngをBlobにしてDatastoreに格納したい、 というケースがあったのでメモ。■StringからBlob String origin = "test string"; if (origin != null) { try { byte[] bytes = origin.getBytes("UTF-8"); return new Blob(bytes); } c…