GAEにてGoogleのログイン関係の操作を行う際に、
UserServiceインタフェースを使用します。
例えばGoogleアカウントのニックネームを使用する場合は、
UserService userService = UserServiceFactory.getUserService();
User user = userService.getCurrentUser();
if (user != null) {
resp.setContentType("text/plain");
resp.getWriter().println("Hello, " + user.getNickname());
} else {
resp.sendRedirect(userService.createLoginURL(req.getRequestURI()));
}
こんな感じで記述します。まぁGoogleのGAEスタートアップの
コードそのまんまなんですが。
で、ちょっと気になったのがここ。
>>UserServiceFactory.getUserService();
ファクトリクラス使ってオブジェクトを生成してるよう。
という事は何らかの条件によって生成されるUserServiceの
実装クラスが変わるのか・・・?
なんとなく気になったので調べてみました。
早速appengine-api-1.0-sdk-1.3.1.jarを解凍して
UserServiceFactory.classをJADで逆コンパイルした結果……!
return new UserServiceImpl();
実装クラスをnewしてるだけだったーー!
…という訳で特に条件分岐とかはしていませんでした。
まぁいつでも切り替えられるようにという意味では
確かにこういう作りにしておくのが安牌なのでしょうね。
勉強になります。
無駄に気になった疑問は解消されたので、
今度はログインURL周りについてかこうと思います。
が、そのまえに仕事に戻ります。
2010/03/25
UserServiceクラスの作り方 [ GAE ]
2010/03/23
GAEでアプリを削除するには? [ GAE ]
GAEのサンプルプログラムを作成しながら勉強してて
いざデプロイ!アカウントも作成済!
…と思った時にふと疑問。GAEってアプリが10個しか
登録できませんよね?
登録したアプリ削除したくなったらどうするん?
という訳でまずは管理画面を開いてみると・・・
こんな感じ。英語。無理。はい戻るボタンぽちっ。
とはいえ削除できないのも困り物ですので早速Google先生に聞いてみた所
一番上に即回答が。
GAEアプリの削除方法
タイトルもそのものズバリでした。
詳細はリンク先の記事をみて頂くとして、ザッとかいつまんで説明すると
1.管理画面から削除するアプリのページを開く
2.AdministrationのApplication Settingsをクリック
3.Disable or Delete Applicationのボタンをクリック
後はしつこく削除するか確認されるのでポチポチ削除を押していくみたいですね。
10個しか無いのでこれは割と重要な情報だと思いました。
そして今仕事中という。ダメ社員でごめんなさい。
[update] maitoさんがフォローしてくれましたが、どうやら
一度削除した名前のアプリケーションはもう作成できないようです。
ちなみに削除の仕方に関する公式のソースはこちら
また、一度削除した名前が予約されて使えないっていうのは多分この部分。
英語苦手だけど多分あってるよな!
2010/03/21
Macでのスクリーンショットの取り方(そして保存先変更) [ Mac ]
Mac楽しい。大人のおもちゃって感じですね。
・・・大人のおもちゃってそういう意味じゃないぞ!
という訳で現在BlogもMacから書いてるんですが、開発してると
スクリーンショットを取りたくなるものです。
という訳でMacでのスクリーンショットの取り方を以下に。
1.画面すべてをとる
command + shift + 3
上記コマンドにて画面全体のスクリーンショットがとれます。
2.対象を選択してからとる
command + shift + 4
上記コマンド入力後、範囲を選択するカーソルが表示されるので
それにて画面を選択する。
さて、上記コマンドにて保存される画像ファイルは何故か
デスクトップ固定です。BlogにUpするための画像はすべて
同じフォルダで一元管理できた方が便利だよね?と思ったので
今度はその変更方法を。ただこちらはターミナルからしか
分かりませんでした。
1.アプリケーション→ユーティリティ→ターミナルを選択する
2.画像を保存したいアドレスをメモっておく
3.ターミナルにて以下のように入力
defaults write com.apple.screencapture location [保存したいアドレス]
上記のように入力したのちに、
killall SystemUIServer
上記のように入力すれば完了です。
2010/03/20
MacBook購入! [ Mac, 買い物 ]
何故かMacBookを購入してしまいました。
使わないのに。
いや、一応これからこのMacBookを開発機として使って
バリバリ稼ぐ予定です。あくまで予定。多分1円も稼げない。
そんな訳で人生初Macです!
じゃーん!すげーMacパッケージからかっこいいよMac
おれAppleあんま好きじゃないっていうか嫌いだよMac!
中をあけるとこんな感じ。
ぴんぼけじゃん!じゃなくてこんな所もスタイリッシュ!
Windowsマシンのノートとかもっと開けたら無骨だよね。
俺はAppleは嫌いだからこの会社のソフト・ハードともどもユーザインタフェースに
関するこだわりは素直に凄いと思う。優秀。
さらに開梱していくと・・・
うん。綺麗。ほんとそれに尽きる。
こういう所に気が届いてるといちいちわくわくするわ。
…と、こういう風にユーザは感じるんだなって事を開発する時にも
忘れないようにしないといけないですよね。肝に命じておこう。
さ、そして遂に本体とのご対面でございます・・わくわく・・・!
どーん!綺麗!かっこいい!Apple!りんご!
ちなみにiPhoneを買う気もありません。頑張れGoogle!
頑張れAndroid!
そしてドキドキを抑えて電源ボタンを押すと一瞬で立ち上がるOS。
かっこいー!でも壁紙は早く可愛い女の子とか萌え萌えな画像に変更せねば!
という訳でiPhoneアプリの開発もしないのに買ったMacBookの開梱日記でした。
ここで感じたのは↑でも書いたけどユーザの満足度ってのは結局こういう所で
満たされるんだなって所ですね。
実際開発してるとどんなにユーザ目線に立とうしても、開発者の目線で見てしまうもの。
『いや、ここはこういう画面にした方が保守性が~』とか、
『ここのレスポンスが3秒もかかっちゃうのはこのモジュールが~』みたいな
言い訳(正当化?)はエンジニアなら一度はやった事があるはず。
でも使うユーザはそんな事どうでもいいってか知らん。
そんな細かい所どうでもよくね・・・といった所で満足度を感じるのが
エンドユーザなんだろな、という事を今回のMacBook購入で感じました。
難しいのぉ。
2010/03/16
google app engine 奮闘記 第1回 ~まずは登録から~ [ GAE ]
突然だけど最近元同期が始めたgoogle app engineに手を出してみようと思いました。
理由は最近バンド仲間とPHP勉強会を開こうって流れになったからです。
…理由になってないけど、実際それが理由でなんとなく初めて
みようと思った次第です。あ、PythonだけじゃなくてJavaが使える
ように気づいたらなってたってのもありますけど。
で、折角なのでgoogle app engine(以下めんどいのでGAE)を勉強していく
様を書いていこうかと思います。
ただ筆不精なもんで途中で終わったらすいません。
さて、第1回はお約束のHello,World!!!・・・かと思ったんですが
今職場なのでそもそもSDKのインストールも出来ない! という事で
第1回は導入編でいこうと思います。
ただこの記事書く前にすでにアカウント登録を済ませてしまったので
うろ覚えですが。手順は以下の通り。
~アカウント作成~
1.http://code.google.com/intl/ja/appengine/にアクセス
2.右側のスタートガイドにそって、"登録"をクリック
3."Create an Application"をクリック(確かここから英語…)
4.Countryで"Japan"を選択
5.4でJapanを選択するとキャリアを選択できるようになるので、自分の携帯を選択
6.自分の携帯のメアドの@以前を入力し、"Send"を押す
7.携帯にアカウントコードのメールがくるので、それを入力する
~アプリ領域の作成~
8.Create an Applicationの画面にて、Application Identifierを入力する(任意)
9.Application Titleを入力する(任意)
10.Saveをクリック
~SDKの導入~
といっても、今回はEclipseを使用するのを前提で話を進めていくので
EclipseにてSDKのインストールを行います。
これならSDKとEclipse用のプラグインが同時にインストール出来ますし。
11.Eclipseを起動し、メニューのヘルプから新規ソフトウェアのインストール...を選択する。
12.使用可能なソフトウェアの所で自分のEclipseのバージョンにあった物を入力する
(今回自分は3.5なのでhttp://dl.google.com/eclipse/plugin/3.5を入力)
13.出てきたインストール項目にてSDKをチェック
後はもう次へ次へと進めていけば自動的にインストールされていきます。
とても便利・・・!
あ、ただ会社のPCでシコシコ開発しようとかしてるとプロキシ鯖で弾かれたりと忙しい事になります。
さぁ、次回からGAEのスタートアップに沿って一通り画面表示、リクエストの飛ばし方、
受け取り方と学習してこうかと思います。
しかしPythonじゃなくてJavaにしちゃったけど大丈夫なのだろうか・・・
2010/01/29
そして一年以上が過ぎた。
一年以上書いていませんでした。
お久しぶりです。
仕事が激務になりしばらくBlogから離れている内に、
昔あった仕事・技術に対する向上心がどんどんと薄れて
いってしまったために完全に放置状態になってしまいました。
このまま完全にブログ離れしてしまうかなと思ったんですが
やっぱり日々感じた事や、検索して初めて知った事とか、
アウトプットとして自分の中を通して外に出すっていう行為は
割と大事な気もするのでボチボチ続けようかと考えなおしました。
ただやっぱり技術的な観点ではとても書き続けられないので
今後は適当に日常やゲームやエロゲーやらに関してつらつらと
書いていこうと思います。
とりあえず、働きたくない。
2008/09/01
安西先生、お金が欲しいです。 [ 書籍 ]
はい、久しぶりですが技術とは無関係の話です。
先週末、maitoさんと池袋でラーメンを食らった後に
軽く酒を飲みながら下らない話に花を咲かせていたのですが、
その時話にあげた本をこちらで紹介しておきます。
お金は銀行に預けるな
なかなかタイトルからしてショッキングな感じですね。
俺めっちゃ預けてますが。
簡単に内容を紹介すると、ただ預けて寝かせっぱなしにしている
お金があるなら、銀行に預けるんじゃなくて効率的に投資・運用
していきましょう・・・みたいな内容です。初心者向けに最初は
こういう感じでやってみては? ってのも紹介されてます。
うーん……今まで経済とかぜんぜん興味なかったからなぁ。
そろそろ軽くお金突っ込んで強制的に興味を持たせるべきですかねー?