アーカイブ

‘Google App Engine’ カテゴリーのアーカイブ

EVO と Macbook Air が有ればマクドで仕事できますよね

2011 年 10 月 22 日 tdtsh Comments off

いや、そんなにMac使い込んではいないですけど。

Google App Engine での開発とか、Macでブラウザとeclipse があれば、あとはWiFi か HTC EVOでテザリングで開発できちゃう訳です。
オフィスに居る必要性がどんどん薄くなり、いやむしろマクドやスタバの方が捗るんですけど。

とはいえ実際の仕事はコード書くだけでは無いんですが、IT化が進み、パソコンを持ってないビジネスマンなんか居ないと言っても過言じゃ無い昨今、テキストよりも肉声のコミュニケーションを重視するというか、単にめんどくさいんかタイピングが遅いんか、兎に角会議とか電話とか好きな人もいる訳です。

仕事はチームワーク発揮しないとダメなやつが大半なんで、メンバのコミュニケーションの質と量はそれはそれは大切な訳です。けれども、コーディングしている時とかこっちはフロー状態を維持したいものですから、そりゃもうちゃんとメリハリつけてやりたいんですよ。
時間を決めて、午前中は調整とか会議とかそういうのん、午後は会話禁止、とか。そすると調整や会議が仕事の人は半日で帰れますね!

因みにHTC EVOは会社支給のやつで、会社のIPフォンから内線もかけられるんで、更にどこでもええやん感がアップしています。コレはGJですよ。最終的には社員全員が首の後ろにジャックを設けて、ケーブルを通じて脳から脳へ直接伝達できるのんを情シスのひとたちが導入してくれるのを待っています。

で、スマホにBluetoothのヘッドセットをつないでホワイトノイズを流せば、外界のノイズは遮断されますし、電話があればすぐ出られます。マイク位置が耳のとこなんで声が聞こえにくいとすこし不評ですけど。
で、マクドの2階とかで、40過ぎのオッサンがワイヤレスのヘッドフォンつけてMacbook Airとスマホ2台をカチャカチャやってる訳です。本人はカッコいいつもりですが端から見るとハイパーメディアクリエイターかぶれみたいですかそうですか。

それにしても正直10年以上使い込んでるNT系のWindowsよりMBAが良いと思えるか、使ってみるまで判らなかったです。
あとはeclipseでjavaScriptのコーディングとかデバッグとか良い感じになればもっと良いです。どうすればいいんでしょうね。

因みにヘッドセットはコレです。iPhone と EVOで電話が出来て音楽が聞ければいいんで。安いのにナカナカよいですよ。

Mac OS X と eclipse に頑張って慣れていこう

2011 年 10 月 15 日 tdtsh Comments off

相変わらず appengine とか弄っています。

自分のパソコンは持ってないんで、会社のWindows機 (ThinkPad X300)でコード書いてます。
デプロイとかeclipseでやりますが、基本的に gvim でゴリゴリ書いています。
でもeclipseの方が、慣れると生産性が高いみたいなんで、頑張って使っていこうと思っています。

で、最近は会社のMac book air にeclipseを入れて使っています。
私はmac には全然慣れてないんで、いつもつかっているファイラやgvimとか入れていません。
なんで強制的に eclipse でコード書くことになります。

mac にも eclipse にもちょっとづつ慣れてきました。
生産性の肝は、ショートカットキーを指が覚えたかどうかだと思うんですよ。

今日覚えた事は、 Alt+Shift+S で getter, setter が生成できることと、
F3で宣言を開いて、command+[ で戻ること。
これ便利ですね。

でも微妙にwindows 版のeclipseとショートカットキーが違うのはなんででしょう。

あと appengine sdk の 1.5.5 が入れられません。dependency がどうのこうの怒られます。
ちょっとづつ調べていこう。

カテゴリー: Google App Engine, eclipse, macbookair タグ:

GAE/J で Python の bulkloader をつかってみる

2011 年 8 月 16 日 tdtsh Comments off

 
Java版のbulkloaderが出ると信じて待つこと1年以上、for businessもスベッてしまい、いまだその気配もなく。

痺れを切らして、普段 GAE/Jな私が、Python版のbulkloaderを使ってみました。

普段GAE/Jなので、スタートガイド Python 開発環境 / Google codeを参考に、環境作りからはじめます。

 

Pythonをインストール

Download – Pythonから手繰り、私の場合はWindows (未だにXPデス)なので、Windows x86 MSI Installer なんをインストールします。最新は2.7.2の様です。
Macなら最初から入っていますし、Linuxも大概のディストリビューションで最初から入っています。

 

Google App Engine SDK for Python をインストール

GAE/JなヒトでもPython版SDKを既に入れている方もいるかもしれませんが、入れてないヒトは入れましょう。

Google App Engine SDK のダウンロードから、Google App Engine SDK for Pythonをインストールします。最新は1.5.2でした。

とりあえずCドライブ直下に置きました。
インストールディレクトリは c:\appengine-python-sdk-1.5.2 となりました。
これを環境変数PATHに追加しときます。

 

GAE/J側の準備

既存プロジェクトの web.xmlを編集し、GAE/J側のRemoteApiServletを有効化?します。

	<servlet>
		<servlet-name>remoteapi</servlet-name>
		<servlet-class>com.google.apphosting.utils.remoteapi.RemoteApiServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>remoteapi</servlet-name>
		<url-pattern>/remote_api</url-pattern>
	</servlet-mapping>

勿論この後デプロイします。

 

設定ファイル (yaml) を作成

cmd.exe を起動し、appcfg.py で create_bulkloader_config を実行します。

cd c:\appengine-python-sdk-1.5.2
appcfg.py create_bulkloader_config --url=http://{appId}.appspot.com/remote_api --application={appId} --filename=config.yml

High Replicationの場合は、–application の引数のアタマに s~ をつけないといけないみたいです。
こんな風に。

cd c:\appengine-python-sdk-1.5.2
appcfg.py create_bulkloader_config --url=http://{appId}.appspot.com/remote_api --application=s~{appId} --filename=config.yml

自動生成されたconfig.yml には、そのとき appengine側に存在する kind のスキーマを反映したものになっているようです。

アップロード/ダウンロードするkindが限定されている場合などは、このymlファイルを編集して対象kindだけのymlファイルを作っても良い。

自動生成されたymlファイルは、TODO: の記述がいくつかあり、ココを適宜修正する必要があります。
最低でもconnector (と connector_options )を編集します。

  connector: # TODO: Choose a connector here: csv, simplexml, etc...
  connector_options:
    # TODO: Add connector options here--these are specific to each connector.
↓
  connector: csv
  connector_options:
    encoding: utf-8

 

CSVアップロード

ダウンロードするには、こんな感じ。

appcfg.py download_data --filename=test2.csv --config_file=test.yml --url=http://{appId}.appspot.com/remote_api --application=s~{appId} --kind={ClassNameOfKind} -v

アップロードはこんな感じ。

appcfg.py upload_data --filename=test.csv --config_file=test.yml --url=http://{appId}.appspot.com/remote_api --application=s~{appId} --kind={ClassNameOfKind} -v

参考にさせて頂いた先人の知恵

pomu0325: [GAE] bulkloaderをGAE/Jで使う

Javaプログラマの為のGAE/py bulkloader – GAE/py環境設定 – - 高卒文系プログラマの日常 by zetta1985

きのふよりけふ、けふよりあした  未分類

CSVファイルのデータをアップロードする方法 – 気楽に開発メモ

Using the bulkloader with Java App Engine – Ikai Lan says

カテゴリー: Google App Engine, java, クラウド, 開発環境 タグ:

GAE/J slim3 (とscenic3) で .html を静的ファイルじゃなくてリソースとして扱う

2011 年 8 月 10 日 tdtsh Comments off

 
最近わたしは appengineといえば slim3 (とscenic3) がデフォルトになってます。

とある事情で、

appengine (for java)パスが/hogehoge/ではじまる場合だけ、拡張子が.htmlなURLをstatic fileでなくresourceとして扱いたい、という事がありました。

appengine-web.xmlを

<static-files>
    <include path="**.html" />
    <exclude path="/hogehoge/**.html" />
</static-files>

 

こんな風に書いてみましたがうまくいきません。

slim3 を使っている場合、これではダメの様です。

Slim3では拡張子付きのURLは動的リクエストとして扱いません。
したがって、AppRouterでisStaticをオーバーライドする必要があります。

public class AppRouter extends RouterImpl {
    @Override
    public boolean isStatic(String path) throws NullPointerException {
        return false;
    }
}

ここでは全てのリクエストをstaticとして扱っています。
Scenic3の設定でまとめて静的ファイルのパスを設定する、もしくはAppRouterで適切に静的ファイルを判定してください。
順序としては、先にAppRouterのisStaticで判定され、その後にScenic3のAppUrlsで判定されます。

Slim3 に Scenic3 と PirkaEngineを使う方法 - やさしいデスマーチ

参考サイトの例では全てのリクエストをstaticとして扱っています。

/hogehoge/はリソース固定、それ以外はよきに計らうと言う意味で、こんな感じですかね。

public class AppRouter extends RouterImpl {
    @Override
    public boolean isStatic(String path) throws NullPointerException {
        if (path == null) {
            throw new NullPointerException("The path parameter is null.");
        }
        if (path.startsWith("/hogehoge/")) {
            return false;
        } else {
            return super.isStatic(path);
        }
    }
}

 

これで想定どおりになりました。

 


カテゴリー: Google App Engine, slim3 タグ:

GAE/J で OpenID をやってみる(appengine java sdk 1.3.4以降)

2011 年 6 月 23 日 tdtsh Comments off

去年の9月頃からGoogle App Engine for JavaでのOpenIDについて調べ出して、dyuprojectでやってみたりもしましたが、SDK 1.3.4以降はOpenIDに対応しています。

当ブログは泣かず飛ばずだけど、GAE/JとOpenIDに関してはソコソコ検索エンジンで上位に入っちゃうんで、特に困ってなかったけど折角用意されているんだし、今更ながらやってみます。

コチラの通りにやればGAE/J + Slim3でログイン出来る用になります。
まずはGAE/J+slim3でOpenID、そしてOpenID認証とTwitter認証両方に対応してみる – xfanの日記

概要としては、

Google App Engineの管理画面で設定をして、

web.xmlで要ログインURLとかを定義して、

/_ah/login_required/に対応するサーブレットを作って、
(slim3のコントローラでは無く extend HttpServletなん)

ログイン用のjsp (slim3のコントローラでも可)を作って

OP(OpenID Provider)にリダイレクトするコントローラを作ればOK。

ログアウトとか、足りない部分はあとはココを見ながら。
Using Federated Authentication via OpenID in Google App Engine

App Engine 1.3.4 のOpenID 認証 – hidemonの日記

Google App EngineでOpenID OAuth Hybrid – 後ろ回しゲロ
元、失業SEの開発日誌: GAE/J の OpenID を使ってみた。

OpenID認証によるシングルサインオン – GeekFactory

カテゴリー: Google App Engine, OpenID タグ: