Amazon Campaign

2016年12月2日金曜日

GoogleAppEngineLauncher のデプロイで 403 エラーになる場合の解決方法

MacのGoogleAppEngineLauncherを使ってデプロイするときに 403 エラーになることがあります。

エラーの出力例
Starting update of app: **********, version: 4
12:38 AM Getting current resource limits.
2016-12-02 00:38:08,108 ERROR appcfg.py:2455 An error occurred processing file '': HTTP Error 403: Forbidden Unexpected HTTP status 403. Aborting. 
Error 403: --- begin server output ---
You do not have permission to modify this app (app_id=u'**********').
--- end server output ---
If deploy fails you might need to 'rollback' manually.
The "Make Symlinks..." menu option can help with command-line work.
*** appcfg.py has finished with exit code 1 ***

*** Running dev_appserver with the following flags:
    --skip_sdk_update_check=yes --port=8080 --admin_port=8000
Python command: /usr/bin/python2.7
INFO     2016-12-01 22:00:41,793 devappserver2.py:769] Skipping SDK update check.
INFO     2016-12-01 22:00:41,845 api_server.py:205] Starting API server at: http://localhost:62864
INFO     2016-12-01 22:00:41,850 dispatcher.py:197] Starting module "default" running at: http://localhost:8080
INFO     2016-12-01 22:00:41,853 admin_server.py:116] Starting admin server at: http://localhost:8000


そんな時は、まずGoogleAppEngineLauncherの"Control"メニューから"Clear Deployment Credential"を実行してみましょう。



ググってみると、「異なるアカウントでの認証がキャッシュされている」とか「Google Cloud Platform のサービスアカウントが異なる」とか色々と解決策があるようですが、クリアして再認証するのが簡単です。

2016年11月23日水曜日

iPhoe7 ジェットブラックのデザイン性をキープするバンパー

iPhone7 ジェットブラック、かっこいいから裸で使いたいけどテーブルに置くだけで傷が付きそうで心配ですよね。良いバンパーがありました。

「【JP PRO】iPhone 7 ケース 衝撃吸収バンパー スマホカバー アルミフレーム/ソフトTPUバンパー (二重構造バンパーケース) 」です。


これです。なんかロゴがどっかのアパレルメーカーみたいですね。中国製でした。
外側がアルミニウム、iPhoneと接触する内側はTPU素材(ポリウレタンの一種)という構造で、バンパー自身で iPhoneを傷つけることはありません。




中身はこれだけ。




各ボタンもアルミニウムでできていますが、バリも全くなくキレイです。
こちらはボユームボタン。




こちらはレジュームボタン。




 iPhone7 のカメラレンズ部分は隆起しているので、置いた際に接触させないようにバンパーにも突起があります。いいですね。




きになるアルミニウムとTPUの構造ですが、よくできていますね。
こちらのミュートボタン部分を裏から見た図だと2重構造がよくわかります。
手前がTPU素材、網目のように見えるのがアルミニウムです。
全く iPhone と接触しないようになっており安心です。




装着するところ。





下部のライトニングポート部分はアルミニウムがなくTPU素材だけと成っており、ここが少し伸縮してカポッとバンパーがハマります。装着後はしっかりと iPhone をホールドしてくれて、少々の力では取れたりしなさそうです。
うまいこと出来てます。
スピーカー部分も綺麗に加工されてます。




装着後の上部。



ミュートボタン部分。ちょっと深いのでミュートボタンは切り替えにくいです。
が、ボクはほとんどミュートにしっ放しで運用するので問題ありません。




下部。




このエッジがジェットブラックの光沢面を守ってくれます。




カメラレンズもがっちりガード。いいですねぇ。




ジェットブラックのデザインに対して最小限の影響にとどめてくれていると思います。
これで自動改札機への接触も気にならなくなるので Suica を登録しようと思います!



2016年10月8日土曜日

Evernote Cloud SDK を Xcode8 で使う際の keychain error 回避方法

「Evernote Cloud SDK 2.0 for iOS」を利用しているアプリを Xcode8 へ移行すると、OAuth でのログイン後に下記エラーが発生します。

2016-10-08 10:02:39.407 VocabularyCards[27586:2139298] Error saving to keychain: Error Domain=com.samsoffes.ENSSKeychain Code=-34018 "errSecDefault" UserInfo={NSLocalizedDescription=errSecDefault} -34018
2016-10-08 10:02:39.409 VocabularyCards[27586:2139298] Error getting password from keychain: Error Domain=com.samsoffes.ENSSKeychain Code=-25300 "errSecItemNotFound" UserInfo={NSLocalizedDescription=errSecItemNotFound}

Xcode8 から keychain を利用する際はアプリのターゲット設定での宣言が必要になったようで、下記設定をすれば解決します。

TARGETS 設定 > Capabilities > Keychain Sharing を "ON"


2016年10月5日水曜日

Huawei MediaPad T2 Pro で dマガジンを読む

docomo の 雑誌読み放題サービス「dマガジン」の雑誌を快適に読むために、Huawei の Mediapad T2 Pro を購入しました。そのレビューを。

8インチのタブレットにするか迷いましたが、雑誌の読みやすさを重視して、10インチであるこの端末にしました。やはり読みやすく総合的には良い選択でした。使ってみて気付いた点を。

16:10 の縦横比、見開きに効果大

雑誌のサイズを考えると画面の縦横比は 4:3 が最適なのですが、この端末は 16:10 です。画面の上下が余るのでどうかと思いましたが、アプリのデザインも手伝ってあまり気になりませんでした。

余白はありますが、さほど気になりません。

当然、拡大しなくてもはっきり文字が読めます。

この画面比率、実は想定していなかった用途で効果を発揮しました。見開きで結構見やすいんです!

画面が横長なため、見開きが見やすい!

見開きでも雑誌によっては拡大せずに読めます。

ほとんどの雑誌は見開きでも拡大せずに文字が読めます。ただ、雑誌によってはかなり小さな文字のものもあるので、その場合は厳しいです。

参考までに一覧画面

一覧の横表示

ページのレンダリングがやや重い

雑誌を開いて、初めて表示するページのレンダリングに 1.5秒から 2秒ほどかかります。先読みでレンダリングを行ってはいるようですが、それに追いついてしまうとやはりちょっと待つことになるので、これはかなりのマイナス点でした。
ダウンロード済みの雑誌でも発生する事象なので、ネットワークの速度ではなく純粋な描画処理だと思われます。

縦横の表示を切り替える際も再レンダリングするので同様です。

この点以外は大きな不満はないので、価格的にも満足な買い物でした。


ところで、dマガジンのアプリはタブレットでの利用もしっかりと考慮されている良いアプリですね。


2016年9月30日金曜日

ロジクール「K780」の隠しショートカットキー

3台のデバイスとBluetooth接続できるロジックールの「K780」というキーボードを会社で使い始めました。これがすこぶる快適です。メインマシンはWindows、サブがiPad、たまにMacに接続しています。

使い始めて2週間ほどですが、Windowsで使う際に発見した便利な隠しショートカットキーを紹介します。


homefn + <-
endfn + ->
scrool lockfn + ctrl
print screenfn + del


2015年12月29日火曜日

OSX アプリをフルスクリーンで使用時の Dock 表示方法

OSXでアプリをフルスクリーンで使用している時は、ポインターを画面の端に持って行ってもDockが表示してくれません。
そんな時トラックッドを利用している環境であれば、MissionControlを呼び出せばDockを表示できるようになります。
デフォルトであれば3本指で上スワイプすることでMissionControlを呼び出せます。

みなさんご存知だとは思いますが、ボクは知らずにずっと不便をしていました(^^;)


2015年12月14日月曜日

Calendar API を使って認証なしで公開カレンダーを取得する

先日まで下記URLのような Google Calendar の feed にて公開カレンダーのデータを Json で取得できていたのですが、400エラーが返ってくるようになってしまいました。

https://www.google.com/calendar/feeds/{カレンダーID}/public/embed?ctz=Asia%%2FTokyo&singleevents=true&start-min=2015-12-13T00%%3A00%%3A00%%2B09%%3A00&orderby=starttime&sortorder=ascend&alt=json


そこで、Google Calendar API v3 を使って取得する方法を調べたので解説します。
手順は以下のとおりです。

1)APIs Explorer でのURLと出力フォーマット確認
2)カレンダーIDの確認
3)API Key の取得


APIs Explorer でのURLと出力フォーマット確認

まず、APIs Explorer を使って希望する処理のリクエストURLとレスポンスフォーマットを確認します。

https://developers.google.com/apis-explorer/#p/calendar/v3/


カレンダーIDの確認

取得するカレンダーデータのカレンダーIDを確認します。
確認方法はGoogle Calendarのページで対象カレンダーのドロップダウンメニューから
「カレンダー設定」→設定項目の「カレンダーのアドレス」
に記載されています。

「カレンダー設定」メニュー


カレンダーID


API Keyの取得

クエリパラメタに API Key を付与することで、公開カレンダーであれば認証なしで取得できます。


API Key の取得手順は下記URLに記載されています。

https://support.google.com/cloud/answer/6158862



リクエストURL


パラメタ「カレンダーID」と「API Key」を付与したリクエストURLか下記のようになります。

例)カレンダーリストを取得する場合

https://www.googleapis.com/calendar/v3/calendars/{カレンダーID}/events?orderBy=startTime&singleEvents=true&timeMin=2015-12-13T00%3A00%3A00Z&key={API Key}



ちなみに、開始日時の昇順で取得するため "orderBy=startTime" とし、その場合くり返しイベントを省くパラメタ "singleEvents=true" は必須のようです。


Amazon_ad