2009/04/29

AS2 to AS3 - ActionScript 3 migration cookbook

Adobe Developer Connectionにて、「ActionScript 3 migration cookbook」が公開されていました。

Migrating to ActionScript 3
http://www.adobe.com/devnet/actionscript/migration.html

ActionScript 3 migration cookbook
http://www.adobe.com/devnet/actionscript/articles/as3_migration_cookbook/as3_migration_cookbook.pdf

ActionScript 3から入った私のような人には必須ではないのですが、15分弱くらいで読める分量なのでさらっと目を通してみてはいかがでしょう?

2009/04/26

福井で初めてのFlex勉強会を開催しました


昨日行われたFlex3勉強会第66回@北陸(福井)にて主催&スピーカー参加してきました。
Flex勉強会はFxUG(Flex User Group)という有志たちによる勉強会です。
北陸では、2/21に金沢で初めて行われ、今回は北陸で2回目となりました。
当日は雨という悪天候の中でしたが30名程度の方々に参加していただけました。

次回は6月末か7月初めくらいに富山開催を予定しております。
デザイナーさん向けのセッションも入れていきたいところですね。
決まり次第、告知しますので是非ご参加ください。

【セッションレポート】
今回の勉強会で使用された資料はこちらで公開されています。
FxUG勉強会資料のダウンロード

「RIA百花繚乱 〜Flex/AIR, Silverlight, JavaFX, 他〜」 shoito
私のセッションではRIAの「What」の部分について、RIAとはどんなものなのか、どういった技術があるのか、トレンドはどうなのかについて紹介するという流れ。
ちなみに「How」の部分について、どうやってRIAを実現するのかは森下屋さん、katzchang氏のセッションにお任せしました。

前回の金沢の勉強会でcoelacanthさんが見せてくれた質問されたら聴衆に振る「必殺・他人に振る」という技を使わせてもらいました。
JavaFXに関しての質問だったので、Java使いのnagiseさんがイイ回答をくれるだろうなーと振ってみたところ、見事にイイ回答をしてくださいました。

「0から始めるFlex Builder」 katzchangさん
katzchangさんは金沢の勉強会でAdobeから提供していただいたFlex BuilderをGetした方で、今回はFlex Builderを使ったアプリの作り方を実演してくれました。
会場にいた方は前半は「あれ?これRails勉強会じゃね?」と疑ったかも知れません。
説明はアプリを作るまでのコマンドを1つ1つ解説し、見た方は同じように進めて行けばアプリを作れる内容でした。

「Papervision3Dを用いたダンジョンRPGゲーム」 coelacanthさん
Papervision3Dを使ってウィザードーリーのみたいなダンジョンを作って、デモをしながら紹介してくれました。
結構簡単に3Dのアプリが作れるのだろうかと思わされました。
そういえば、前回同様、MacBook内蔵のカメラが大活躍。
次々回にはさらにすばらしいデモを見せてくれるとおっしゃってましたので期待大ですw

「Box2D今昔物語」 rch850さん
Box2Dの歴史、コード、デモ、そしてバージョンアップする度に起こる、過去のユーザーなんて切り捨て御免な仕様変更について紹介してくれました。
ドキュメントが提供されていなかったり、提供されていても内容が薄いものって多いですよね。
困ったら、結局のところソース嫁ってことなんでしょうか。

あ、あと石川県が立ってましたw

「10分で作るWEBサイト管理画面 on FLEX & PHP」 森下屋さん
JSONを使ってPHPのサーバーとFlexアプリでデータのやり取りをするアプリについて紹介してくれました。
PHPでは標準(?)でJSONを扱うライブラリが提供されているのですが、FlexではAdobeから提供されているライブラリがあるけど標準では提供されていないんですよね。
「ライブラリを便利に活用しましょう」「リファレンスはしっかり読みましょう」と説明してくれました。

最後に見せてくれたタブレットPCを使ったアプリについてもっと深くお話を聞きたいです。

「懇親会」
会場となったAOSSAの目の前にある「千年の宴」を会場に懇親会を行いました。
Pokenでハイフォーしたり、Java、Flex、Googleイベントの裏側、勉強会運営、高専、森下屋さんの忙しさ、チャンピオンカレー、新潟&静岡横なげー、etcと様々な話題が飛び交っていましたね。
そうそう、赤壁うどんは私には無理な辛さです。あかんです。

ここでも、乾杯の挨拶はcoelacanthさんに、締めの挨拶はhikaruworldさんに、というように「技・他人に振る」を応用。
スピーカー&幹事特権な面もありましたが、この技は結構使えますねw

とにかく最後の最後まで楽しめました。
勉強会に参加される方は都合が付くのなら懇親会まで参加すると楽しさが倍増しますよ。
お財布とご家族に相談して、是非参加してみてください。

「最後に」
参加してくださった方、一緒に運営をしてくれた方、スピーカーをしてくれた方、支援をしてくれたAdobe(特にkskさん)、皆さんのおかげで無事開催となりました。
ありがとうございました。

特に資料準備の間、放置することを許し、当日の運営までも手伝ってくれた妻に感謝します。

森下屋さんのレポート
http://www.kisscafe.jp/fukui-pg/2009/04/flex366.html

coelacanthさんのレポート
http://blog.livedoor.jp/coelacanth_blog/archives/55246920.html

itsuki_kosenさんのレポート
http://d.hatena.ne.jp/itsuki_kosen/20090427

nagiseさんのレポート
http://d.hatena.ne.jp/Nagise/20090426/1240760667

haruirukaさんのレポート
http://blog.jamijami.net/fukuievent/445.html

ofukuさんのレポート
http://ofuku.blog.so-net.ne.jp/2009-04-29

2009/04/24

4/25は福井でFlex勉強会ですよー

いよいよ明日です。
参加宣言された方、スピーカーの方、忘れずにいらしてくださいね。

Flex3勉強会第66回@北陸(福井)
http://www.fxug.net/modules/bwiki/index.php?cmd=read&page=Flex3%CA%D9%B6%AF%B2%F1%C2%E866%B2%F3%A1%F7%CB%CC%CE%A6%28%CA%A1%B0%E6%29

今回は開催2週間以上前に定員に達してしまいました。
申し込みしようと思ったけどあきらめられた方々、ごめんなさい。
北陸では定期的に勉強会を開催しますので、次の機会に是非是非ご参加くださいませ。

#今夜もせっせと資料作ります。

2009/04/13

RIAプラグイン普及率

Rich Internet Application StatisticsというWebアプリの紹介です。
http://www.riastats.com/

これを使うとAdobe Flash Player(Flex)、Microsoft Silverlight、Sun Java(JavaFX)の普及率をブラウザ、 OS、 国別に調べることができます。
下のスクリーンショットは絞り込みをせずに全てのブラウザ、OS、国を含む割合を表示したものです。

全体では、Flash Playerが95%超と圧倒的ですね。Linuxに関しても90%弱です。
一方、Silverlightも伸びてきていて25%程度に達しています。
しかし、Linuxに関しては2%弱とMicrosoft製だからか弱いところですね。

サイトへ組み込めるパーツも提供しているので、興味のある方は「RIAStats for your site, free!」をクリックしてください。

Poken Frankenげっと!

@masatoshisw20さんと1ダース共同購入していたPokenが届きました。
ダース購入だとバラ売りされていないモデルがランダムで入っているので楽しみでしたよ。

私はフランケンを選びました。
ゴーストにしようか迷ったけど、ゴーストは垂れパンダみたいだったので止めときました。
どのPokenも全然可愛気が無くてイイですねー。


18日の「FITEA春の勉強会〜ライトニングセッション8連発〜」に行く人で欲しい人がいたら@masatoshisw20さんの下記のブログにコメントで書きましょう。
先着順ですよー。

イベントにPoken持って行くよ!(共同購入者?募集)
http://d.hatena.ne.jp/masatoshisw20/20090413/1239609060

2009/04/10

Google App EngineでH2 Database Engine使ってみた

巷で話題になっているけど、Google App EngineでJavaがサポートされたことで、GroobyやJRuby、Scalaも動かせるようになりました。
Googleがそんなステキなことをしてくれていた陰で、H2はH2 Database Engine 1.1.111をリリースしています。

その変更履歴にこんな1文が。
Version 1.1.111 (2009-04-10)
* In-memory databases can now run inside the Google App Engine.
Google App Engineで、DBにはGoogle App Engine Datastoreを使わないといけなかった(?)んだけど、JavaサポートのおかげでRDBのH2(in-memory)も使えるようになっていたみたい。
ということで、さっそくお約束のHello Worldを試してみました。

まずはweb.xmlにDBの起動/接続設定とHelloWorldServletの定義を追記します。
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5">
<listener>
<listener-class>org.h2.server.web.DbStarter</listener-class>
</listener>

<context-param>
<param-name>db.url</param-name>
<param-value>jdbc:h2:mem:HelloWorld</param-value>
</context-param>
<context-param>
<param-name>db.user</param-name>
<param-value>sa</param-value>
</context-param>
<context-param>
<param-name>db.password</param-name>
<param-value>sa</param-value>
</context-param>

<servlet>
<servlet-name>helloworld</servlet-name>
<servlet-class>net.air_life.gae.HelloWorldServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>helloworld</servlet-name>
<url-pattern>/helloworld</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>


JDBC URLにjdbc:h2:mem:というように、memを指定してメモリオンリーデータベースとして動作するようにします。
memを指定しないとDBファイルを作ろうとして、下記のような例外が発生します。
org.h2.jdbc.JdbcSQLException: General error: java.security.AccessControlException: access denied (java.io.FilePermission /HelloWorld.data.db read) [50000-111]
次にDBにアクセスするHelloWorldServletを作ります。
package net.air_life.gae;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;

import javax.servlet.http.*;

@SuppressWarnings("serial")
public class HelloWorldServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
resp.setContentType("text/plain");

try {
Class.forName("org.h2.Driver");
Connection conn = DriverManager.getConnection("jdbc:h2:mem:HelloWorld", "sa", "sa");
ResultSet rs = conn.createStatement().executeQuery("select 'Hello World on Google App Engine for Java'");
while (rs.next()) {
resp.getWriter().print(rs.getString(1));
}
rs.close();
conn.close();
} catch (Exception e) {
resp.getWriter().print(e.getMessage());
}
}
}
あとはデプロイして、アクセスするとHello Worldが表示されます。
だいぶ適当ですが、まずはこれくらいに。

FITEA春の勉強会にPoken持って行くよ

来週18日に福井駅近くのAOSSAでFITEAの勉強会がありますよ。
懇親会まで参加すると思うので、参加するって方はよろしくお願いします。
参加申し込みをまだしてないって方は、お忘れなくっ!

翌週25日の「Flex3勉強会第66回@北陸(福井)」は既に定員MAXとなりました。
会場スペースが狭いので定員少ないのです。
間に合わなかった方申し訳ありません。
■イベント名:
 『FITEA春の勉強会~ライトニングセッション8連発~』
 http://fitea.org/?p=99
■主催:福井情報技術者協会(FITEA)
■日時:2009年4月18日(土) 13:00受付、13:30開始~17:00終了
■場所:JR福井駅近く「AOSSA」6F 601A研修室
 http://www.aossa.jp/access.html
 (駐車場は、1時間200円のAOSSA地下駐車場がご利用いただけます)
■内容
 現在までに以下のようなスピーカーが予定されています。
 あと1~2名、セッション追加可能です。
 我こそはという方はぜひご応募下さい。

西村 誠 氏:
『FlexBuilderで始めるFlash開発』
小島 富治雄 氏:
『Microsoftのクラウド戦略』
森下 智弘 氏:
『10分で作るiPhoneアプリ』
堀内 豊司氏:
『PHP Visual開発』
橋本 賢一 氏:
『ソフトウェア技術者が挑戦する、はじめてのUSBデバイス開発』
前田 勇希氏:
『Bluetoothで拡張する世界』(※『T2Vの紹介とその技術的背景』から変更になりました)
新出 純壱氏:
『ウェブ開発の次なる主戦場、OpenSocial』
山 健太郎 氏:
(演題未定)
福井高専IT研究会:
(演題未定)

 ※スピーカー様の都合により、当日こられない事もございますので、予めご了承ください。
 ※スピーカー参加希望者はinfo(アットマーク)fitea(ドット)orgまで。(^^)

 ライトニングセッションの後に、簡単な交流セッションがあります。
 休日のイベントですが、名刺をご用意頂くと良いかもしれません。

 また、イベント終了後に近くの居酒屋で懇親会を予定しておりますので、よろしければご参加ください。
 懇親会の会費は別途となりますので、予めご了承ください。

■対象者:
 プログラマー、システムエンジニア、Web開発者、その他ITに興味のある方全て。
■参加費: 無料です。
■参加方法:
 以下のページからお申し込み下さい。
 (事前お申し込みが必須となります)
 http://fitea.org/enterevents.html

2009/04/09

大人の樹になりました


ここのブログにグリムス(gremz)のブログパーツを貼っていたんですが、やっと大人の樹へと成長を遂げました。

グリムスの樹には個性があって、それぞれ別な形の大人の樹へと成長していくのですが、私の樹はオーソドックスな形に育ったようです。
葉の形に丸みがあって少々可愛気はありますかね。

知らない方のために、グリムスについて説明しておくと、グリムスとはブログで苗木を育てる育成パーツです。
その苗木はブログの投稿によって成長していき、大人の樹になると、グリムスのスタッフによって実際に苗木を植える植林活動が行われるので、エコ活動に貢献してる気分になれますよ。

グリムス
http://www.gremz.com/

植林活動報告
http://www.gremz.com/act.php

2009/04/08

Adobe AIR開発者のための情報総まとめ

今日のSMASHING MAGAZINEでAdobe AIR開発者は読んどけ!的な情報がまとめられていました。

Adobe AIR Developer's Toolbox: Resources And Tutorials
http://www.smashingmagazine.com/2009/04/07/adobe-air-developers-toolbox-resources-and-tutorials/

記事中の項目をリストアップしてみました。
これは見といて損はないです。
1. What is AIR and How To Get Started?
2. Official Adobe AIR Resources
3. Adobe AIR Help, Support and Forums
4. Adobe AIR Development Tools and References
5. Adobe AIR Cheat Sheets
6. Adobe AIR Free Samples
7. Adobe AIR Beginner Tutorials
8. Adobe Air Tutorials
9. Adobe AIR Video Tutorials
10. Cool Adobe Air Applications
11. Further resources

2009/04/07

Durangoメモ 〜ComposableDragSupport〜

Durango対応アプリを作るには必須のComposableDragSupportクラスについて。
ComposableDragSupport Durangoサポートには必須
createDragSupportDonor(container, w, services)
container:ビジュアルコンポーネントが置かれているコンテナ
w:Native Window
services:サービスコンポーネント
createDragSupport(container, w, services)
container:ビジュアルコンポーネントが置かれているコンテナ
w:Native Window
services:サービスコンポーネント
createDropHandlerFor(droppableContainer, services)
droppableContainer:ビジュアルコンポーネントのドロップ先
services: サービスコンポーネントのドロップ先

2009/04/05

Durangoメモ 〜メタデータ〜

DynamicConfig.xml
バイナリに保持するAS3メタデータ定義

[AutoConnect] 他のコンポーネントと接続できることを示す
sink データ入力としてのプロパティであることを示す
source データ出力としてのプロパティであることを示す
nameMustMatch コンポーネント同士のプロパティ名が一致していることを条件とする
allowMultiple 複数接続可能であることを示す
order [AutoConnect(sink, order=2)] Propertiesにはorder順で表示される
ie.
[AutoConnect(sink, source)]
public function set text (val:String):void {

[PersistentStyles] ドロップ時に値を保持するスタイルを指定する
ie.
[PersistentStyles("color", "fontFamily", "fontSize")]
public class ReusableTextArea extends TextArea implements IComposable {

[PersistentProperties] ドロップ時に値を保持するプロパティを指定する
ie.
[PersistentProperties("text", "drawHello")]
public class ReusableTextArea extends TextArea implements IComposable {

[Persistent] ドロップ時に値を保存するプロパティであることを示す
ie.
[Persistent]
public function set fileName (name:String):void {

[Editable] デザインモードのプロパティ編集画面の編集対象であることを示す
sink データ入力としてのプロパティであることを示す
Name 表示名
type 型
Value 初期値
Values 選択オプション
ie.
[Editable(Name="Enumeration", type="Enum", Value="a", Values="a,b,c,d")]
public function set EnumExample(s:String):void {

ie.
[Editable(sink, type="File")]
override public function get source():Object {

[DesignModeOnly] サービスコンポーネントであることを示す
ie.
[DesignModeOnly]
public class HelloServiceComponent implements IComposable, IMXMLObject {

[ModuleFileName] 不明

[NoDesktopBorder] 不明

2009/04/03

Durangoメモ 〜TemplateLauncher〜

ショートカットから自動生成したプロジェクトにできるショートカットLaunchでは、TemplateLauncherにアプリケーション記述と実行ファイルのパスを渡している。

"C:\Program Files\Adobe\Durango\Support\bin\TemplateLauncher.exe" "C:\Users\hoge\workspace\Application-0000\bin\Main-app.xml" "C:\Users\hoge\ workspace\Application-0000\bin"

shoito専用ブラウザ - siBrowser

私が頻繁にアクセスするサイト専用のブラウザをAIRでちょちょっと作ってみた。
shoito、sho ito専用のブラウザってことでsiBrowserにしよう。

私以外の人にはこれっぽっちも何の役にも立ちません。
インストールして後悔しないでください。
URLとfaviconのリストとHTMLLoaderを利用しているだけなので、アドレスバーすらないですからね!

シームレスインストールを試してみたかっただけですもん。
http://help.adobe.com/ja_JP/AIR/1.5/devappshtml/WS5b3ccc516d4fbf351e63e3d118666ade46-7e15.html


siBrowser
http://f.air-life.net/apps/siBrowser/