2011/12/14

GAEのことでやってみたい事のメモ

GAEを使ってやってみたい事を忘れないようにメモメモ。
  1. 簡単なアプリを作って公開する
  2. RDB→Bigtable(Key-Value)のDB設計方法の変換
  3. Slim3プロジェクトのディレクトリ構成の変更方法をまとめる
  4. ログのフォーマット変換とローカル環境でのログファイル保存方法

1は自分の勉強のため。
まずログイン処理をする。 そのあと、簡単な掲示板を作ってみる。 これで、一連の処理の流れを押さえられる、と思うから。

2は、RDBとは異なり敢えて非正規化をすることが必要とあるけど、 実際にはどのように設計すればいいのか、という具体例を見つけることができなかった。 (私の検索能力の問題だな・・・) だから、RDBでの簡単なテーブル2,3個をBigtable用にデザイン変更にしてみようかと。

3は、Slim3のデフォルトのディレクトリ構成が個人的に好きでないからww

4は、仕事上、ログのフォーマットを記録する必要があったから調べたので。 それを忘れないようにまとめておこうかと思います。

AndroidやGAEの事を考えると、 Googleさんは”JavaVM”という仮想OSを新しいOSとして利用することで、 マルチプラットホームを実現して、より簡単にアプリとかのサービスを 展開していこうとしているんだろうな~
となると、今のOSの未来も変わってくるのかな??

さて、今日はメモだけで寝ようかな~

2011/12/11

【GAE】Eclipseローカルで起動時に出るエラーメッセージ

会社のようなプロキシ経由で外部ネットワークに接続する場合、 Google App Engine(以降、GAE)をローカルで実行する際に 以下のようなエラーメッセージが表示されることがある。 (バージョン情報は伏せ時にしてます。)
Unable to access https://appengine.google.com/api/updatecheck?runtime=java&release=x.x.x×tamp=xxxxx1&api_versions=['x.x']
どうやら実行時にアプリのGAE SDKのバージョンと 公開されている最新のGAE SDKのバージョンの比較をするらしい。 その時、プロキシのせいで問い合わせができずにエラーが出ているみたい。 そこで、下図の画面で実行時のプロキシ設定を追加。

【画面表示】
プロジェクトを右クリック > Run As > Run Configrations > Argmentsタブをクリック

【追加内容】
proxy hostやproxy postは適宜変更で。

-Dhttp.proxyHost=<proxy host>
-Dhttp.proxyPort=<proxy port>

-Dhttps.proxyHost=<proxy host>
-Dhttps.proxyPort=<proxy post>

【実行環境】

Eclipse EE3.7
Java SDK1.0.27

【参考サイト】
Eclipse(Galileo)のGAEでプロキシ

2011/06/23

FlexPMDのEclipseプラグイン

仕事でFlash作成を行った。

開発環境:Flash Builder(Eclipseプラグイン)
開発言語:ActionScript3
コンパイラ:Flex4

結合テストの際に、ActionScriptのステップ数のカウントを行うためのプラグインを
探していたら、FlexPMDを発見した。
そのインストール手順の備忘録。
Eclipseのバージョンとかは以下のサイトを参考に。

参考URL:http://opensource.adobe.com/wiki/display/flexpmd/FlexPMD+Eclipse+plugin

◆インストール
1.Eclipseのメニュー Help > Install new software
2.Addボタンをクリックして、新規リポジトリの登録を行う。
 名前:FlexPMD
 場所:http://opensource.adobe.com/svn/opensource/flexpmd/plugin/trunk/flex-pmd-eclipse-plugin-site
3.FlexPMDをインストール
4.Eclipse再起動


◆設定
設定のためには、いくつかダウンロードが必要。
1.FlexPMDのコマンドライン.jarをダウンロード
 zipファイル
2.ダウンロードしたファイルを適当なディレクトリに展開。
 ただし、ディレクトリ名に半角スペースがあると、うまく動かない様子。
 (http://www.kei3.jp/diary.php?id=7561より)
 ちなみに、私はFlexSDKを以下のディレクトリに入れていたので、同じディレクトリに展開。
 <C:\tools\Flex\flex-pmd-all-in-one-bundle-1.1>
3.EclipseのFlexPMDアドインにコマンドライン.jarを登録する
 Eclipseメニュー > Window > Preferences > FlexPMD と設定画面を表示。
 ・FlexPMD command line installation:(2)のディレクトリ\flex-pmd-command-line.jar
 ・FlexPMD custom ruleset:今はブランクで
 ・FlexCPD command line installation:(2)のディレクトリ\flex-pmd-cpd-command-line.jar
 ※ファイル名にはダウンロードしたバージョンが入っている場合有
4.Apply > OK

以上で設定終了。


◆動作確認
検証したいファイル/ディレクトリを右クリック > FlexPMD > Run FlexPMD

これで検証結果が表示されれば、インストール&設定が完了!!
ただし、ワークスペース名に半角スペースがあると、うまく動かない様子。
 (http://www.kei3.jp/diary.php?id=7561より)


◆監査ルールの取得
1.監査ルールの設定ファイル(xml)のダウンロード
 URL:http://opensource.adobe.com/svn/opensource/flexpmd/bin/flex-pmd-ruleset-creator.html

2.上記サイトにアクセスし、画面下部の「Export」ボタンをクリック。
もし、ルールを変更したい場合は、画面内を操作してカスタマイズ可能。

3.ダウンロードしたファイルの格納場所は適当な場所へ。
 私の場合、以下のディレクトリに格納。
 ルールファイルはxmlなので、テキストエディタで編集可能。
  ・C:\tools\Flex\FlexPMD_Ruleset

4.ダウンロードしたルールファイルの設定
 Eclipseメニュー > Window > Preferences > FlexPMD と設定画面を表示。
 ・FlexPMD custom ruleset:(3)でダウンロードしたファイル


以上で、一通り動くはず!

2011/05/09

Flash(AS3)で外部XMLファイルを参照する方法



Flash(ActionScript3)でXMLファイルを読み込む手順について
解説されているサイトは沢山あったけど、今回自分がやりたかったのは、
<Flexプロジェクト>でのやり方。

これについては、なかなか紹介されているサイトがなく、
悩んだので、実現できた方法を忘れないようにまとめます。

ちなみに作成環境は以下の通り。
・Windows Vista
・Flash Develop(フリーのFlash開発環境統合ソフト)

【手順】
1)Flash Developにて<Flex3プロジェクト>を新規作成
 パッケージ:test
 テンプレートのコピーをする

2)src/test/Main.mxml の編集
~~~~~ Main.mxml ここから ~~~~~
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
  <mx:Script>
    <![CDATA[
      import test.asFile.ShowMessage;
    ]]>
  </mx:Script>
  
  <!-- レイアウト -->
  <mx:Text id="messe" text="以下に表示するファイル名を入力"/>
  <mx:TextInput id="textBox" text="test.xml" />
  <mx:Button id="button" label="Click!!"
    click="new ShowMessage(textBox, textArea)" />
  <mx:TextArea id="textArea"
    width="500" height="200"
    text="ここに指定したXMLファイルの内容が表示されます。" />
</mx:Application>
~~~~~ Main.mxml ここまで ~~~~~

3)asファイルの作成
~~~~~ ShowMessage.as ここから ~~~~~
package test.asFile {
  import flash.events.Event;
  import flash.net.URLLoader;
  import flash.net.URLRequest;
  import mx.controls.TextArea;
  import mx.controls.TextInput;

  /** XMLファイルの内容を表示するためのクラス */
  public class ShowMessage {
    /** XMLファイルを設置するディレクトリ */
    private const XML_HOME_DIR:String = "test/xml/";

    /** コンストラクタ */
    public function ShowMessage(
      textInput:TextInput, textArea:TextArea) {
      var fileName:String = textInput.text;
      ReadXMLFile(fileName, textArea);
    }
    
    /** ファイル内容の取得 */
    private function ReadXMLFile(
      fileName:String, textArea:TextArea):void {
      
      var xml:XML = new XML();
      var urlRequest:URLRequest =
        new URLRequest(XML_HOME_DIR + fileName);
      var urlLoader:URLLoader = new URLLoader(urlRequest);
      
      urlLoader.addEventListener(Event.COMPLETE, xmlLoaded);
      
      function xmlLoaded(event:Event):void {
        xml = XML(urlLoader.data);
        trace(xml.toString());
        textArea.text = xml.toString();
      }
    }
  }
}
~~~~~ ShowMessage.as ここまで ~~~~~

4)xmlファイル作成
~~~~~ test.xml ここから ~~~~~
<?xml version="1.0" encoding="utf-8" ?>
<data>
 <member>
  <name>first</name>
 </member>
 <member>
  <name>second</name>
 </member>
</data>
~~~~~ test.xml ここまで ~~~~~

5)最終的なディレクトリ構成

XMLファイルを設置する場所がポイント!
swfファイルが設置されているディレクトリが
ホーム扱いになるので、
そこから相対パスで参照できるようにする
必要がある点に注意。

これに関しては、EclipseにFlash Developerのプラグインを入れてコンパイルすると
自動でディレクトリが作成されるからsrcディレクトリに入れると行ける。

2011/04/19

便利なEclipseのプラグイン~JStyle~

Eclipseを使ってJavaの開発を行ってます。

その時にいつも困っているのが、インデント。
半角4つだったり、タブだったり・・・
その区別もソースを見ただけだと判断できません。。。

そこで、Eclipseの設定を変更していました。
Window→Preferences→General→Editors→Text Editors
ここの「Show whitespace characters」にチェックを入れます。
そうすると、タブと改行の部分が明示的に表示されるようになります。

しかし、個人的にはタブは表示してほしいけど、改行は不要でした。
んで、見つけたのがJStyleというプラグイン!!
こいつがかなりナイスな働きをしてくれます!

JStyleでは以下の項目の表示/非表示が選択できます。
・改行
・タブ
・全角スペース
・半角スペース

私は、これの「タブ」と「全角スペース」にチェックを入れました。
「全角スペース」にもチェックを入れたのは、
以前ソースコード中に全角スペースを入れてしまいコンパイルエラーになったことがあるから・・・

参考サイトは検索してみてください。
ダウンロード、インストールなど色々な情報がありますので。

以上です。

2011/02/04

UbuntuサーバのMySqlにNaviCatでリモートアクセス~その2~

UbuntuのMySqlにVistaのNaviCatからリモート接続にリトライした。

まず、先日行ったことと同じことをやった。

UbuntuサーバのMySqlにNaviCatでリモートアクセス


1.以下のファイルの53行目をコメントアウト。
/etc/mysql/my.cnf
 53行目 →  # bind-address = 127.0.0.1

2.MySqlを再起動
sudo /etc/init.d/mysql restart


次にNaviCatの設定を。
3.新しい接続で、MySqlを選択

4.基本設定は以下の通り
  接続名:自分が分かりやすいもの
  ホスト名/IPアドレス:Ubuntu ServerのIPアドレス(プライベートアドレス)
  ポート:3306(初期設定)
  ユーザー名:root
  パスワード:MySqlインストール時に設定した値

5.SSH設定は以下の通り
  SSHトンネルを使用する:チェックを入れる
  ホスト名/IPアドレス:4で設定したIPアドレス
  ポート:22(初期設定)
  ユーザー名:Ubuntu Serverログインのユーザー名
  認証方法:「パスワード」
  パスワード:Ubuntu Serverログインのパスワード

6.「接続をテストする」を押下

これをやったが接続できなかった・・・

で、MySqlのユーザー設定を確認したら、以下の感じだった。
コマンド:select host, user from mysql.user
+------------+------------------+
| host | user |
+------------+------------------+
| 127.0.0.1 | root |
| localhost | debian-sys-maint |
| localhost | root |
| ubuntu-ser | root |
+------------+------------------+

これを見ると、4で設定したユーザーのrootが
localhostからじゃないと接続できないって感じ。

そこで、MySqlに新しいユーザーを登録。
7.GRANT ALL PRIVILEGES ON *.* TO ユーザー名 IDENTIFIED
  BY 'パスワード' WITH GRANT OPTION;

これで、4の設定したユーザーとパスワードを
7で作成したユーザの設定に変更。
そんで、接続テスト。

やっと接続できた!!!!!!!!
これで、GUIでテーブル内容を確認できそうです♪

2011/01/25

UbuntuサーバのMySqlにNaviCatでリモートアクセス

UbuntuサーバのMySqlにWindowsからNaviCatでアクセスしようとした時の覚書。

SSHトンネルして接続しようとしたけど、以下のようなエラーが。
「2013 - List connection to MySQL server at 'reading initial communication packet', system error: 0」

調べてみたら、MySQLは初期設定でローカルからのアクセスしか許可していない様子。
参照URL:http://mipin.blog6.fc2.com/blog-entry-102.html

参考にしたサイトの通り、以下のファイルの53行目をコメントアウト。
/etc/mysql/my.cnf
 53行目 →  # bind-address = 127.0.0.1

これで、接続確認。

結果。再起動はOKだった。
しかし、NaviCatからもコマンドからもMySQLにログインできなかった。
「1130 - Host '***.***.***.***' is not allowed to connect to this MySQL server」

ん~こりゃ別の方法を探さなきゃかな。。。
参考にしたサイトではVMwareを使ってるから、うまくできなかったのかもな・・・
残念・・・