みかんブログ

同人ゲームサークル スタジオ蜜柑

  • Home
RSS

Google App Engine for Java 始めますか

Posted on 2012年2月20日 by おかゆ
No Comments

色々あって Google App Engine をやることになったので、勉強メモとして残すことにします。

これまで Web 系の勉強はほとんどしたことがなくて、基本的なところから全然わかってないです。
なので、間違いとか勘違いとか恥ずかしい説明とか死んだほうがいいコードとかあっても生暖かい目で蔑んでください。

あと殆どメモ書きなのであんま参考にはならないかもです。

基本

GAE for Java は基本的にサーブレット + JSP らしい。そもそもやったことがないがな……がんばろう。
エディタと Ant でも開発できるようにされてるらしいけど、素直に Eclipse 使ったほうが賢明か。

必要なのは App Engine SDK。
で、 Eclipse 用のプラグイン Google Plugin for Eclipse に App Engine SDK が含まれてるので、こっちをインストールすればいいだけ。
Tomcat とかも入れなくていいっぽい。

サーブレット基本

サーブレット作るときは、 javax.servlet.HttpServlet を継承したクラスを作る。
一つのサーブレットが一つのページに対応するような感じにするのが基本。そうじゃないこともあるっぽいけど。
で、 doGet とか doPost とかの doHOGE メソッドをオーバーライドして、各リクエストに対する処理を記述する。

そのままでは「どのクラスがどのページに対応するのか」がわからないので、サーブレットの定義を web.xml に記述する。

JSTL

JSTL(JSP Standard Tag Library) は、 JSP の中で使われることを想定したカスタムタグのライブラリ、らしい。
使うためには JSP の先頭での宣言が必要。

<%-- JSTL の利用を宣言 --%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

こんな感じ。
色々機能はあるみたいだけど、とりあえず <c:out> タグを使った。このタグは特殊文字をエスケープしてくれる = クロスサイトスクリプティングの防止になるのでなるべく使うべき。 JSP 標準の <%= %> タグでも表示自体はできるが、エスケープはしてくれない。あぶない。

JSP でのリダイレクト

<% response.sendRedirect("/index"); %>

文字化け対策

Web アプリでも当然文字化けは起こる。回避するには、サーブレットフィルタを用いると良い。
サーブレットフィルタとは、サーブレットが呼び出される前にブラウザから送信されたデータを加工するための Javaの機能。
javax.servlet.Filter を実装したクラスを用意して、web.xml で登録する。
詳しくは Web で(ぇ

所感

Web 系ってこう、ちょっとでも知らないことがあるとユーザーを危険に晒すからちょっと怖いんですよね。
でも今の流行というかスタンダードというか、もう「あって当たり前」みたいになってきてるので、ちょっとは知っとかないとヤバイぜよってことで勉強しときます。
最終的にはソシャゲっぽいものも作ってみたい。

このエントリーをはてなブックマークに追加
はてなブックマーク - Google App Engine for Java 始めますか

Categories: Google App Engine, Java

Android タブレット(TF101)をテキスト編集に使う

Posted on 2012年2月4日 by おかゆ
1 Comment

TF101 でシナリオとか書いてやるぞー! というもくろみ。

きっかけ

今回 TF101 を買った理由の一つに、先日買ったポケモンタイピングDS のキーボードが想像以上に良かったというのがあります。
Bluetooth + Galaxy S でもそこそこテキストが打てたので、じゃあタブレットなら完璧じゃないの? と思ったわけです。

それから『NOeSIS~嘘を吐いた記憶の物語~』という超面白いゲームがあるわけですが、クリア後のオマケモードで
「この話は IS03 のメール機能を使ってちょこちょこ書きためました」
的なことが書いてあって、ええええ嘘だろ!? と。おいおいと。マジかよと。弘法筆を選ばないにもほどがあるだろうと。
じゃあ僕も! と思ったわけですが、さすがに SP モードメール&キーボード無しはキツイので、できるだけ快適な環境を整えよう、
とまぁ、そういう経緯なわけです。

エディタの選択

少し前までは gEditor を使っていたのですが、最近 Jota Text Editor に乗り換えました。
基本的なエディタとしての機能は押さえていて、個人的には黒背景にできるのがナイスです。
とりあえず今は Jota Text Editor 一択なんじゃないでしょうか。

日本語 IME の選択

エディタは Jota でいいとして、問題は IME。
Android の 日本語 IME は色々と乱立していて、皆さん好みの IME があることと思います。
ちなみに僕は普段は ATOK です。Bluetooth キーボードを使う時は何がいいの?
ってことで、いくつか試してみました。

ATOK

ATOK

Simeji

Simeji

Google 日本語入力

Google 日本語入力

これ以外に Open Wnn もやろうと思ったんですが、なんか面倒くさくなってやりませんでした。
見てもらうとわかりますが、Google 日本語入力 Beta はちょっと残念な感じ。
Simeji は、なんか最近のアップデートで変換候補が随分小さく表示されるようになったらしく、実用的で無い。
ATOK はとっても良い感じ。ステキ。

ということで、 IME は ATOK でいいんじゃないかなーと。
高い? 日本人なら ATOK は買いなよ! 他の何を差し置いても! 特に物書きならな!

キーボードの選択

自分は Bluetooth キーボードは一つしか持ってないので選択の余地とか無いんですが、
とりあえずポケモンタイピングDS のキーボードは打ちやすくて良いですよ。安いし。
あとオマケのゲームも面白いし。

実際に書いてみる

ちなみに筆者の PC での環境は ATOK + 秀丸エディタです。
で、それと比べるとどうなのかというと、割と違和感なく使える感じ。
変換後の候補選択が上下キーだったり、候補確定が Enter だったり、細かい違いはありますが、そこは慣れ。

あと、Jota Text Editor のおかげなのか、普通にショートカットキーが使えます。
Ctrl + x で切り取り、 Ctrl + c でコピー、 Ctrl + v で貼り付けとか。
あと Ctrl + s で上書き保存も行けます。これ大事。
Galaxy S の時は Ctrl のショートカットキーが使えず、Menu + s とかで保存でした。
普通の Bluetooth キーボードには Menu キーがついてないので F1 でメニューを出して、それから s で保存、という面倒な操作。
慣れ親しんだ Ctrl + s が使えるのはありがたい。

基本的に Jota Text Editor の出来が良く、 ATOK もそこそこなので、僕のようなにわかライターにはちょうど良い感じ。

ということで

今書いているシナリオは途中から TF101 で書いてます。告知はいつになるかわかんないけど、おもしろい企画ですよー。
皆さんも Android 端末を持ってるなら、 Bluetooth キーボード+Jota+ATOK で快適に日本語を書いてみませんか。

このエントリーをはてなブックマークに追加
はてなブックマーク - Android タブレット(TF101)をテキスト編集に使う

Categories: Android

ASUS Eee Pad Transformer TF101 を買いました

Posted on 2012年2月1日 by おかゆ
No Comments

TF201 という後継機が出ていることを知りつつ、前モデルである TF101 を購入しました。
なにげに初タブレット&初 ASUS 端末&初 Android 3.x です。

TF101

タブレットたのしー!
今まで Galaxy S で色々とやってましたが、ブラウジングやテキスト編集、PDS 閲覧なんかは断然やりやすいです。当然といえば当然なんですが。
ありがたかったのは、普通に使うぶんには Tegra2 で十分だったこと。ボロクソいわれてる Tegra2 ですが、とりあえず動くのでよし。
ただし動画再生だけはさようなら。

とにかく。なけなしの貯蓄で買ったので、色々といじってうまく活用していきたいです。

このエントリーをはてなブックマークに追加
はてなブックマーク - ASUS Eee Pad Transformer TF101 を買いました

Categories: Android

Java のプログラムは自分自身のパスを取得できない?

Posted on 2012年1月29日 by おかゆ
No Comments

たとえば以下のようなファイル構成を考える。

hoge/
└─piyo/
  ├─KAS4PC.jar
  └─data/

このとき、KAS4PC.jar から data ディレクトリを参照したい。当然、こんな風にしたくなる。

File file = new File("./data");

一見これでうまく動きそうな感じで、実際、hoge/piyo の位置から以下のように起動すれば正しく動く。

>java -jar KAS4PC.jar

だけど、一つ上の hoge ディレクトリから起動するとダメ。

>java -jar piyo/KAS4PC.jar

なんでかっていうと、このときの ./ のパスは hoge になってるから。オーマイガ―。いちいちプログラムのある階層まで降りて起動しないと動かないとかないわー。

Java でがんばってみる

なんとかならんのかーい! ということで、 Java でどうにかしようとがんばってみる。

public class Main
{
	public static void main(String[] args)
	{
		// 自分自身のクラスファイルを取得する
		URL url = Main.class.getResource("Main.class");
		File file = new File(url.getPath());
		String path = file.getAbsolutePath();
		System.out.println(path);
	}
}

と、こんな感じで自分自身のクラスファイルをリソースとして取得して、そこを基点にパスを取得してやろうという試み。いいぞ、なんとなくうまくいきそうだ。

うまくいきそうだったのに、プログラムを jar にまとめた状態で起動すると、うまくいかない。 jar にするときになにか工夫すればできるのかもしれないけど、僕にはわからなーい! 断念!

しょうがないから外から渡す

「僕には無理だ……」となったので、しょうがないのでプログラムの外からコマンドライン引数で与える方向で考える。いつか勉強しようと思っていたバッチファイルだけど、まぁ知らない。ググる。どうやら %0 が特殊変数で、バッチファイル自身のパスが入っているらしい。なので、こいつに色々と修飾子をつけてやってパスを取得する。

%0   : バッチファイル自身のパス
%~d0 : %0 をドライブ名だけに展開する
%~p0 : %0 をパスだけに展開する

ということなので、以下のようにすればパスが取得できる。

%~d0%~p0

最終的にはこんな感じ。

@echo off
java -jar %~d0%~p0KAS4PC.jar %~d0%~p0data
@echo on

java の存在確認とか全くしてないけど、とりあえず起動自体はできた。よかったよかった。

Windows 用ができたので、Linux/Mac OS X 用のシェルスクリプトも適当に書く。 いつか勉強しようと思っていたシェルスクリプトだけど、まぁ知らない。 ググって書く。

こんな感じ?

SCRIPTPATH=`dirname $0`
java -jar ${SCRIPTPATH}/KAS4PC.jar ${SCRIPTPATH}/data

なんか偉い人に怒られそうな適当なスクリプトだけど、まぁとりあえず動くのでよしとする。

このエントリーをはてなブックマークに追加
はてなブックマーク - Java のプログラムは自分自身のパスを取得できない?

Categories: Java

Android のプロジェクトをコマンドラインからビルド

Posted on 2012年1月28日 by おかゆ
No Comments

普段の開発は基本的に Eclipse で行ってるけど、 KAS のユーザーにまで Eclipse の導入をしてもらうのが嫌でどうにかできないかと思って試してみた。

必要なもの

  • JDK
  • Android SDK
  • Ant

とりあえずこれらはインストールする。

JDK は bin にパスを通して、あと JAVA_HOME のパスも設定しておく。

Android SDK も同様にインストール後、tools にパスを通す。一応 ANDROID_HOME とかも設定したほうが良いかも。

最後に Ant をインストールして bin にパスを通し、 ANT_HOME のパスも設定する。

手順

Eclipse で作っていたプロジェクトの場合、 Ant 用のビルド設定ファイルが無い。ので、Android SDK のツールでプロジェクトをアップデートする。以下の例は KAS の場合。

android update project --path ./KAS --name KAS --target android-4

–path はプロジェクトの位置、–name はプロジェクト名、–target は SDK のターゲット?  KAS の場合は Android 1.6 向けなので android-4 を指定。

実行すると、project.properties とか local.properties とか build.xml とかが生成される。この時に生成される local.properties にはその環境での Android SDK のパスが書いてあるっぽいので、リポジトリには含めないのが吉。

めでたく build.xml ができたので、Ant でビルドする。

ant -file ./KAS/build.xml debug

今回はデバッグビルドで。リリース版は release でビルドする。

最初にやったときは、なぜかここで詰まった。Ant が「JAVA_HOME の設定位置がおかしいぞー」というエラーを吐いてビルドできなかった。そもそも JAVA_HOME を設定していなかったので、自動的に JRE の位置が設定されてしまっていたっぽい。ので、JAVA_HOME を JDK の位置に設定して、ついでに ANT_HOME も正しく設定すると、めでたくビルド成功。

ビルドに成功すると BUILD SUCCESSFUL のメッセージとビルドにかかった時間が表示されて、 bin ディレクトリ以下に apk ファイルが生成されている。

色々やってみた

とまぁ、結構簡単にビルドできたものの、非プログラマの方に Ant やら何やらをインストールしてもらうのも申し訳無い。

なんとかならんのかーい! と思って色々みてたら、 Ant は jar 形式のライブラリが公開されてた。これでできないか試してみる。

結果から言うと、うまくいかなかった(涙) なんでかわかんないけど「JAVA_HOME が JRE の位置だぞこらー!」と怒られる。わからん。断念。

次に Android プロジェクトのアップデートももうちょい簡単にならないかと思って色々やってみたけど、断念(ぇ

こっちはなんとかできなくはなさそうな雰囲気だったけど、なんかもうどうせ Ant がうまく動かないしいいやと思って放棄。なかなか思うようにはいかんぜよ。

けど、今までみたいに Eclipse を導入するよりは楽なんじゃないかなー、と思うんだけど、どうかなぁ。パス通したりするのが面倒っちゃ面倒だし、コマンドラインから作業しなくちゃいけないしで、非プログラマにはハードル高いかもしんない。ちゃんとマニュアル書いておいてその通り作業してもらうのが最善かも。ただその場合、 SDK のバージョンアップやら何やらで作業手順が変わった時に「できません!」のカキコが大量になるからなぁ……

結局 

色々問題点はありそうなものの、 Eclipse を導入してもらうよりはマシかなぁとも思うので、そのうちマニュアルを整備して、基本的には KAS4PC でシナリオ製作→最終的には KAS をビルド、という流れを推奨していきたいです。

このエントリーをはてなブックマークに追加
はてなブックマーク - Android のプロジェクトをコマンドラインからビルド

Categories: Android
1 / 4812345...102030...»LAST
  • リンク

    Follow @__okayu

    スタジオ蜜柑

  • 検索

  • 最近の投稿

    • Google App Engine for Java 始めますか
    • Android タブレット(TF101)をテキスト編集に使う
    • ASUS Eee Pad Transformer TF101 を買いました
    • Java のプログラムは自分自身のパスを取得できない?
    • Android のプロジェクトをコマンドラインからビルド
  • 最近のコメント

    • Android タブレット(TF101)をテキスト編集に使う に M・Y より
    • 今回の体験:事故当日 に piro より
    • ブログ引っ越ししました に okayu より
    • ブログ引っ越ししました に marishi より
    • Android勉強会@愛媛 6回目 行ってきましたー に minmin より
  • カレンダー

    2012年2月
    日 月 火 水 木 金 土
    « 1月    
     1234
    567891011
    12131415161718
    19202122232425
    26272829  
  • アーカイブ

  • カテゴリー

    • Android (7)
    • Google App Engine (1)
    • Java (3)
    • ubuntu (1)
    • ゲーム (12)
    • スタジオ蜜柑 (9)
    • ニュース (2)
    • ミニ四駆 (7)
    • レビュー (3)
    • 今日の名言 (5)
    • 吉里吉里/KAG (10)
    • 幻想ノ宴 (5)
    • 日記 (157)
    • 未分類 (42)
  • ツール

    • ログイン
    • 投稿の RSS
    • コメントの RSS
    • WordPress.org
  • 応援バナー

    『‘&’-空の向こうで咲きますように-』を応援しています! 『グリザイアの迷宮』2012.1.27発売予定! さくら、咲きました。「SORAHANE-ソラハネ-」学園エモーションビジュアルノベル 同人サークルはいぺりよん 全国一億二千万のお兄ちゃんへ贈る双子妹純愛AVG『S.I.S.T.A.R.S:KISS OF TRINITY』
© みかんブログ. Proudly Powered by WordPress | Nest Theme by YChong