2011年10月12日水曜日

Google App Engine Go SDK1.5.5の変更点

Google App Engine Go SDK 1.5.5がリリースされました。

1.5.4からの変更点を確認した所、たくさんの変更がありました。
したがって、1.5.4で動作していたプログラムが1.5.5ではコンパイルエラーになる可能性が高いです。(データストアを使っていたら、ほぼNGでしょう)

わかり次第、変更点を追記していく予定です。

変更点は以下のポイントです。

  1. app.yamlに指定するapi_versionは"3"を指定する。(ローカルサーバが動きません)
  2. Cross Multiple Group Transactionの追加により、datastore.RunInTransaction()の引数にTransactionOptions構造体の引数が必要。メンバ変数XGにfalseを設定するとSingle Transactionとなる。
  3. datastore.NewKeyにappengine.Contextの引数が追加された。
  4. datastore.NewIncompleteKeyも同じくappengine.Contextの引数が追加された。
  5. datastore.NewIncompleteKeyにも親キーを指定するKey引数が追加された。
  6. http.ResponseWriterのHeaderが初期値が"text/plain"になっているので、w.Header().set("Content-Type", "text/html")を入れる必要がある。※ただし、w.Fprintf()で文字列を出力した時の挙動
  7. templateパッケージが変更されている。(詳細は、http://golang.org/pkg/template/#Template.Parse参照)
  8. gofmt、gofix、godocコマンドが同梱されるようになった。(1.5.4以前は無かった)※gofixコマンドはtemplateパッケージの変更には対応していない(?)
2011.10.13:
  • 8を追記
2011.10.15:
  • gofixコマンドのtemplateパッケージの変化に対応していない事を追記
2011.10.18:

  • datastore.RunInTransactionのTransactionOptions構造体の説明を修正




レイアウトのXMLに配置したButtonのOnClickはDialogでも使えるらしい

以前、移転前のブログにて、
「レイアウトのXMLに配置したButtonのOnClickがDialogだと使えない?」
http://hobby.txt-nifty.com/t1000/2011/06/xmlbuttononclic.html

という記事を書きました。

しかし、後日、コメントが付き、以下のサイトのようにするとDialogでもonClickを
利用する事ができるようです。

http://wiki.android-fun.jp/?layout%20xml%E3%81%ABonClick%E3%81%A7%E5%91%BC%E3%81%B0%E3%82%8C%E3%82%8B%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%82%92%E5%AE%9A%E7%BE%A9%E3%81%99%E3%82%8B


レイアウトのボタンに定義したonClickはDialogからは使えない件について、
Activityに定義すれば利用可能。

emacsにcss-modeを導入する

emacsでCSS3を編集しようとした時に、どうも見にくいなと思ったので、
emacsの設定ファイルがないか探していた所、以下のサイトにcss-mode.elが
公開されているという事で、導入しました。

A CSS editing mode for Emacs
http://www.garshol.priv.no/download/software/css-mode/

上記サイトにある、css-mode.elをMacOSXの場合は、~/.emacs.dにコピーし、
.emacsに以下の設定を追記します。


;; CSS mode
(autoload 'css-mode "css-mode")
(setq auto-mode-alist
	  (cons '("\\.css\\'" . css-mode) auto-mode-alist))

あとは、emacsでcssファイルを開き、色が変わればOKです。

追記:
上記までだと、入力時のタブ幅が8(?)なので4に変更するのと、
インデントをCのスタイルに変更する設定も一緒に入れておくと良いでしょう。

(setq cssm-indent-level 4)
(setq cssm-indent-function #'cssm-c-style-indenter)

参考サイト:
http://uch-x40.seesaa.net/article/44721501.html

2011年10月11日火曜日

emacsのコマンド集


今日は、Rubyのkazuhisa1976さんの「ミニミニemacs勉強会」に
参加してきたので、emacsのコマンドをメモしておきます。
※私はRubyの話はわからないので、ひとまずスルー気味でいました。
(分かるようにはならんとなと思っていますが)

便利な(?)emacsコマンド集
※Ctrlを押しながらの操作は「C-*」、ESCを押してからのキー操作を「M-*」と表記しています。

M-X grep-find[Enter]
   カーソルの場所にキーワードを入力するとfindコマンドが実行される。
   (実行結果は新しいバッファ)

C-a
   行の先頭にカーソルを移動する。
C-e
   行の最後にカーソルを移動する。
C-x 1
   分割した選択していないバッファを閉じる
C-x 2
   バッファを上下に分割
C-x 3
   バッファを左右に分割

@kazuhisa1976さんのブログも参考に。
http://d.hatena.ne.jp/tech-kazuhisa/20111010

そういえば、C-sで検索しても、前に検索することができないなーと
言っていたけど、手元にある書籍を見返すとC-rで前検索をするようです。

2011年10月10日月曜日

Dartの導入 on MacOS X

Web構造化プログラミング言語"Dart"が発表されたみたいですね。

参考:
http://www.dartlang.org/(公式、英語)

ということで、早速動かしてやろうと思って、作業をした手順を控えておこうと思います。

最初にDepot_Toolsをダウンロードする必要があります。
Dartのソースコード、ツール一式がgclientを利用しないとダウンロードできないためです。

Depot_Toolsのダウンロード(いろんな物が落ちてきます)
$ svn co http://src.chromium.org/svn/trunk/tools/depot_tools

Depot_Toolsをダウンロードしたら、その中にある、gclientというコマンドを利用します。
恐らく、パスを通しておく方が良いでしょう。
export PATH=$PATH:[Depot_Tools

Dartのソースコード、ツール一式のダウンロード(本当にいろんな物が落ちてきます)
$ gclient config http://dart.googlecode.com/svn/branches/bleeding_edge/deps/all.deps

$ gclient sync

ダウンロード後、Dartをビルドします。
$ cd [Dartのダウンロードディレクトリ]/dart
$ ./tools/build.py --arch=ia32

ビルド後、以下のHTMLのコードを作成します。これは、Dartのコードを含んでいます。
ファイル名はdartsample.htmlで保存しました。
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8" />
  <title>Dart Sample</title>
</head>
<body>
  <script type='application/dart'>
	void main() {
	   HTMLElement element = document.getElementById('result');
	   element.innerHTML = 'Hello World!';
	}
  </script>
  <div id="result"></div>
</body>
</html>

このHTMLファイルをDartのコンパイラ(?)dartcでコンパイルします。ただし、pythonのスクリプトが用意されているので、以下のコマンドを使ってコンパイルします。

$ python [Dartのダウンロードディレクトリ]/dart/client/tools/htmlconverter.py dartsample.html -o out/

正常に終了したら、outディレクトリを調べると、dartsample-js.htmlというファイルが
生成されていました。これをChromeで表示すると、Hello World!という文字列が
表示されました。

今回はブラウザで実行させるようにしましたが、DartはVM上でも動作させる事が
できるようなので、後で、同じく動かしてみようと思います。

2011/10/11追記
dartsample.htmlのソースコードに変なspanタグが挿入されているのに
気がついたので、削除しました。本来は不要でした。

2011年9月21日水曜日

職業訓練校のバイトが終わって…

5月のGW明けから今日まで、職業訓練校のバイトをしていました。
大体、平均して週2日(1日の時と3日の時もありました)
Androidの技術的なサポートという事で、立会いをしつつ、質問に答えるようにしていたのですが、
最初は質問があるものの、1ヶ月もすれば質問がほとんどでなくなりました。

質問が無い事自体は、良いことなのかどうかは別として、
そんなに聞くことが無いのかな?とは思いました。
ということだったので、状況を確認して、立会いを終わらせようと
思っていたのですが、運営側としては、私がいた方が良いようで
ずっと呼んで頂いていたのですが、
実際、お力になれたのかな…と、考えさせられます。

しかし、生徒達の技術は成長していますし、アプリケーションの質も
良くなったと思います。マーケットに出しても、恐らく問題ないと思います。
(これは、”人気が出る”、”売れる”という意味ではないです。)
アプリケーション開発の仕事をしたとしても、開発経験のある人の
フォローがあれば、問題なく遂行するでしょう。

実際、心残りがあるとしたら、最初に作成したアプリケーションの
ソースコードを見た時に、プログラムの構造がぐちゃぐちゃだったのを
矯正する事ができなかったことでしょうか。
(これは、私も偉そうに言うことはできないと思います)

後は、プログラムを組めても、ヒューマンスキルがない人もいたし
それも、指摘ぐらいはしたかったですね。

ただ、今後も開発を続けていくという声を聞きましたし
Android開発者の人口が増えていくと思うと、今後が楽しみです。

後は、私は専門学校の講師、中国GTUGのマネージャ、そして、立会いのバイト、
それぞれの空気を感じてみて、それぞれで独特の空気があるなと言うことが
分かったのも大きかったです。

中国GTUGのイベントだと、参加者の皆さんが「好きで」参加するという
前向きなメンバーで進めるわけですが、
専門学校の講師、職業訓練校のバイトなどでは、必ずしもそうではない可能性を
否定できない気がしました。
当然、興味を引き出すのが講師の仕事と言われると、言い返す言葉は無いですが、
相手が前向きな姿勢でないと聞いてはもらえない気もしますし…
(これについては、もう少し勉強しないといけない事もありますね)



2011年8月15日月曜日

第8回中国GTUG勉強会@岡山を開催しました。

一昨日の事ですが、第8回中国GTUG勉強会@岡山を開催しました。

詳細は中国GTUGのサイトを見て頂ければ、写真と合わせて見ることが
できるようになっています。

第8回中国GTUG勉強会@岡山
http://sites.google.com/site/chugokugtug/event/8

ここでは、私のチームの事について掘り下げておこうと思います。
私のチームでは、「作業用BGMを再生するアプリケーション」を作ろうと
考えました。私が欲しい物だったのですが、作業用BGMを再生するために
毎回YouTubeやニコニコ動画にログインしたりするのは、ちょっと面倒だと
思っていました。そこで、YouTube Data APIとカスタムプレーヤーを使えば
いちいちYouTubeのサイトに行かなくても何とかなるかな?と考えたわけです。

第8回は初心者向けということで、ノープランの人の為に、チームに誘って
私ともう一人の方の2人のプロジェクトになりました。

カスタムプレーヤーの件については以前のエントリーに書いてある通りで
httpを経由してデータを受け取らないとコールバック関数が呼ばれない
現象があるようなので当日はGAE/Gの開発サーバを使ってhttpでの経由をさせました。

カスタムプレーヤーが置いてあるだけでは面白味がなかったので、
テレビの絵を描いて頂いて、テレビのように見せることにしました。

結局、HTML5的要素としては、DOCTYPEとscriptタグにtypeを付けないだけに
なってしまいましたが、早くYouTubeのカスタムプレーヤーがvideoタグで
実現できるようになってくれれば良いなあと思っています。

ソースコードも公開していますので、興味がありましたら
以下のURLから取得して下さい。

作成したテレビアプリケーションのソースコード(github)
https://github.com/tyokoyama/chugokugtug_tv

(2011/08/31追記)
忘れていましたが、秋葉さんにCSS3の本にサインをして頂きました。
良い本だと思いますのでよろしければ。