Google App Engine上で、管理者かどうか確認する場合はどうすればいいのだろうか?
調査してみると以下のコードでおkみたい。
from google.appengine.api import users
if users.get_current_user():
if users.is_current_user_admin():
logging.info(u"管理者")
else:
pass
else:
pass
常にテンパってます。
Google App Engine上で、管理者かどうか確認する場合はどうすればいいのだろうか?
調査してみると以下のコードでおkみたい。
from google.appengine.api import users
if users.get_current_user():
if users.is_current_user_admin():
logging.info(u"管理者")
else:
pass
else:
pass
これは!
最高!一方無料プランの方は、Googleの広告の中にはなく、小さなインスタンス(f1-microインスタンス)をCompute Engine, Cloud Pub/Sub, Google Cloud Storage, およびCloud Functionsで使える。合計で常時無料プランに含まれるサービスは15となる。
via:GoogleのCloud Platformが常時無料プランと無料トライアルの両方を拡大してクラウド新人たちがAWSへ傾くのを防ぐ
中でもいちばん重要なアップデートは、Compute Engineのインスタンスと、無料のCloud Storage 5GBだろう。両者は、多くのクラウドアプリケーションの中核だから。この常時無料プランの詳細仕様はここにある。
おととし、Google Adsenseをローカルで実行する方法について書いたのですが、改めて同じやり方で実装すると表示されない。
でひょっとしたらやり方が変わってしまったのかなーっと思って検索をかけたら、そもそも
AdSense ヘルプフォーラムのローカルでのアドセンス表示確認
で確認すると、広告サイズの画像を用意してそれでデバッグしてほしいとのことです。
なるほど!ちょっとめんどくさいけど、実際にダミー画像で検証するしかなさそうです。
Google公式のHTMLとCSSのコーディング規約
Google HTML/CSS Style Guide
めっちゃ参考になる!!
去年、Google Feed APIがDeprecatedなったという話を書いたのですが、今日のgoogleのdevelopers blogで2016年9月29日に完全終了との発表がありました。
これめちゃいいかも
さっそくインストールしました。英語のウェブページを読んでいるときにわからない英単語があると、コピーしてから別タブを開いて辞書サイトなどで日本語の意味を調べる、という行動が必要です。知らない英単語が多すぎると、英語のページと辞書サイトを何度も往復せざるを得ないわけですが、単語をダブルクリックするだけでページ上にGoogle翻訳から和訳をポップアップ表示できる無料のChrome拡張機能が「Google Dictionary」です。
via:ダブルクリックするだけで英単語の和訳をポップアップ表示できるGoogle公式拡張機能「Google Dictionary」

少し前にFusion Tables APIを使ってPythonでSELECT文の発行する方法を書きました。
で、データはrowsキーで取得することができるのだが、0件だった場合、エラーが発生する。
具体的には
url = "https://www.googleapis.com/fusiontables/v2/query?key=hoge" select = "SELECT * FROM foo" url = url + "&sql=" + select result = urlfetch.fetch(url) status_code = result.status_code content = result.content if status_code == 200: content = json.loads(content) rows = content["rows"]の最終行の
rows = content["rows"]がエラーを引き起こすので、下記のようにhas_keyを使えばおk
url = "https://www.googleapis.com/fusiontables/v2/query?key=hoge"
select = "SELECT * FROM foo"
url = url + "&sql=" + select
result = urlfetch.fetch(url)
status_code = result.status_code
content = result.content
if status_code == 200:
content = json.loads(content)
if content.has_key("rows"):
rows = content["rows"]
for row in rows:
pass
というわけで無料のうちにDLした。アマチュアの写真マニアとプロの写真家の、どちらにも朗報だ。Googleが今日(米国時間3/25)から、同社の写真編集ソフトNik Collectionを完全に無料にする。
via:Googleが149ドルの本格的な写真編集ソフトNik Collectionを無料化

結局、一回も使わず仕舞いだったが、
やっぱり使う人が少なかったみたいです。Googleは米国時間3月22日、Windows、Mac、Linux向けの「Chrome」アプリランチャーの提供を廃止すると発表した。Chromeアプリランチャーはブラウザを開かなくてもChromeアプリを起動するためのツールとして、2013年にリリースされた。
via:グーグル、Windows、Mac、Linux版「Chrome」アプリランチャーの提供を終了へ
素敵なフォントないかなーっと検索をかけていたら、Google Fontsとは別にGoogle Noto Fontsというのがあり、PSDもmac版であったので、ちょっとこちらを使ってみることに。

Fusion Tables APIを使うにあたって認証情報が必要なのだが、SELECT文を発行する場合、API Managerセクションで「Fusion Tables API」をonにして認証情報のAPIキーを発行すればおk
この発行されたAPIキーをkeyパラメータとして使えばqueryを発行できるようになります。
わかってしまえばなんてことはないのだが、最初、悩んでしまったので、改めて調べることに。
Google Chromeのデベロッパーツールのウィンドウの位置を変更するのってどうやってやるんだっけ?
Google Chromeのデベロッパーツールのウィンドウを画面右に出す方法
によると、車輪マークのアイコンの隣にあるウィンドウのアイコンを長押しするとウィンドウの切り替えアイコンが表示されるので、それで切り替えることができる。
時間があったら、アイコンを画像で追加しておこうっと。
数日前に久しぶりにGoogle Loaderを使ってGoogle Feeds APIでxmlを取得しようと思ったら、Google Feed APIのページでdeprecated宣言されていたので、今後は使わない方がいいのかなー。
って逆にこれ、同じような機能を提供するサービス作ればチャンスあるんじゃねーっと今、思ったりもした。
google adsenseの表示テストをローカル(正確にいうとlocalhost)で確認するにはどうすればいいのだろうか?
Is Google adsense available for localhost?
によると表示する前に以下のscriptがあればいいみたい。
google_adtest = "on";確かに表示することができたー。
前回、Google plus platformに代わるGoogle Sign-In for iOSというのがリリースされて、かつ、それがiOS6に対応していると書きましたが、その後、googleの人から連絡があり、実は、iOS6には対応していなかった模様。
www
なんと
昨日、YouTubeのJavaScript APIとFlash APIがDeprecatedになった件を書きましたが、今度は、Google Codeが終了するみたいです。When we started the Google Code project hosting service in 2006, the world of project hosting was limited. We were worried about reliability and stagnation, so we took action by giving the open source community another option to choose from. Since then, we’ve seen a wide variety of better project hosting services such as GitHub and Bitbucket bloom. Many projects moved away from Google Code to those other systems. To meet developers where they are, we ourselves migrated nearly a thousand of our own open source projects from Google Code to GitHub.
via:Bidding farewell to Google Code
で確認すると、2016年1月25日に完全停止というところでしょうか。Beginning today, we have disabled new project creation on Google Code. We will be shutting down the service about 10 months from now on January 25th, 2016.
via:Bidding farewell to Google Code
久しぶりに「サーバーサイド処理なくfeedをゲット」を読みながら、Google Feed API Developer's Guideと比較して脳内をアップデートしていたら、apikeyがないことに気づいた。
とあったので、2012年から必要なくなっていたんですねー。The Google Loader no longer requires keys. You don't need to make any changes if you're already using one, but if you choose you may simply remove the key parameter from your requests. Remember that some API calls still require proper identification through HTTP referer as per the documentation and Terms of Service.
via:Sign-up for an API Key
Note that some APIs use other keys (e.g., from the Google APIs Console) which are unaffected by this change.
Google plus SDKを使って認証する方法を書きましたが、それをもとに、自分の情報を取得するには、どうすればいいのだろうか?
- (void)finishedWithAuth: (GTMOAuth2Authentication *)auth error: (NSError *) error {
//errorがある場合、ない場合は、nilを返す
if(error){
return
}
GTLServicePlus* plusService = [[GTLServicePlus alloc] init];
plusService.retryEnabled = YES;
[plusService setAuthorizer:[GPPSignIn sharedInstance].authentication];
GTLQueryPlus *query = [GTLQueryPlus queryForPeopleGetWithUserId:@"me"];
[plusService executeQuery:query
completionHandler:^(GTLServiceTicket *ticket,
GTLPlusPerson *person,
NSError *error) {
if (error) {
GTMLoggerError(@"Error: %@", error);
} else {
//person.displayName
//person.identifer
}
}];
}
ログインないしサインインせずにGoogle plusに情報を共有できるGPPShareBuilderを読みながら写真(画像)も共有できるのかなーっと思って調べてみたんだけど、できないっぽい。
プログラム途中で書いたのになー。
Google plus SDKもFacebook SDKもともにログインする時に下記のメソッドにお世話になります。
- (BOOL)application: (UIApplication *)application openURL: (NSURL *)url sourceApplication: (NSString *)sourceApplication annotation: (id)annotationGoogleの場合
- (BOOL)application: (UIApplication *)application
openURL: (NSURL *)url
sourceApplication: (NSString *)sourceApplication
annotation: (id)annotation {
return [GPPURLHandler handleURL:url
sourceApplication:sourceApplication
annotation:annotation];
}Facebookの場合- (BOOL)application:(UIApplication *)application
openURL: (NSURL *)url
sourceApplication: (NSString *)sourceApplication
annotation: (id)annotation {
BOOL wasHandled = [FBAppCall handleOpenURL:url sourceApplication:sourceApplication];
return wasHandled;
}でもろどかぶりしているので、どうすればいいのかなーっと検索していたら、Handling openURL: with Facebook and Googleというエントリーを発見して、下記のようにすれば問題なく解決することができました。- (BOOL)application:(UIApplication *)application
openURL: (NSURL *)url
sourceApplication: (NSString *)sourceApplication
annotation: (id)annotation {
if ([[url absoluteString] rangeOfString:@""].location == NSNotFound){
BOOL wasHandled = [FBAppCall handleOpenURL:url sourceApplication:sourceApplication];
return wasHandled;
}else{
return [GPPURLHandler handleURL:url sourceApplication:sourceApplication annotation:annotation];
}
}