2009年12月31日木曜日

Android 自分の位置をMap上に描画3

前回MyLocationOverlayの描画をとりあえず変更してみました。
で、あまりにも頻繁にGPS取得が行われるので取得間隔を変更したい!

ってことでやってみました。

と、いってもやり方は簡単MyLocationOverlay.enableMyLocation()の代わりに、LocationManagerを使用するだけ。
LocationManagerにMyLocationOverlayを登録して完了。


Main.java


package com.omkageru.ak.gpschk;

import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;

import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;

public class Main extends MapActivity {
 private MapView mapView;
 private MyLocation overlay;
 private LocationManager lm;

 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);

  mapView = (MapView)findViewById(R.id.map);
  mapView.setEnabled(true);
  mapView.setClickable(true);
  mapView.setBuiltInZoomControls(true);
  mapView.setSatellite(false);

  overlay = new MyLocation(getApplicationContext(), mapView);
  // LocationManager に任せるのでコメントアウト
  //  overlay.enableMyLocation();

  lm = (LocationManager)getSystemService(LOCATION_SERVICE);
  // マネージャにMyLocation(のListener)を登録
  // 第二引数は取得時間間隔(ミリ秒単位) 第三引数は取得距離間隔(メートル単位)らしい
  lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 60000, 1000, overlay);

  // onLocationChanged にすべてを任せたのでコメントアウト
  //  overlay.runOnFirstFix(new Runnable(){
  //
  //   public void run() {
  //    // TODO 自動生成されたメソッド・スタブ
  //    mapView.getController().animateTo(overlay.getMyLocation());
  //   }
  //
  //  });

  mapView.getOverlays().add(overlay);
  mapView.invalidate();
 }

 /* (非 Javadoc)
  * @see com.google.android.maps.MapActivity#onDestroy()
  */
 @Override
 protected void onDestroy() {
  //  overlay.disableMyLocation();
  lm.removeUpdates(overlay);
  mapView.getOverlays().remove(overlay);
  // TODO 自動生成されたメソッド・スタブ
  super.onDestroy();
 }

 @Override
 protected boolean isRouteDisplayed() {
  // TODO 自動生成されたメソッド・スタブ
  return false;
 }
}

上記でも書きましたが、enable/disableMyLocation の代わりにLocationMangerを使用しているだけです。
その他は前回となんら変わらず。
MyLocationクラスにはLog掛けしただけなので、実質変更なし。

果たして本当に変わるのか?
ということでとりあえず、この年末の寒い中、ノートと実機を持ってマンションのベランダへ。
ええ、流石に外に出歩くとかはやりませんよ、ヘンナヒトダトオモワレソウダシ

requestLocationUpdates(LocationManager.GPS_PROVIDER, 60000, 1000, overlay);
この第二引数と第三引数を弄ってonLocationChangedがどれだけ降ってくるか等を確認しました。

第二:第三 = 10000:0
たま~に、10秒以上取得しないこともあるけど、1秒に一回は取得する。
位置情報が微妙にずれるだけで取得間隔がリセットされるのかな?
端末の画面も細かく再描画されますw

第二:第三 = 0:1000
一度LocationChangedを取得した後は、一度もLocationChangedが発生することはなかった。
結構いけるんじゃね?とか考えたが、通知バーのGPSマークは表示されっぱなし

第二:第三 = 60000:1000
先ほど同様一度LocationChangedを取得した後は、一度もLocationChangedが発生することはなかった。
いったん取得した後、しばらくすると通知バーからもGPSマークは消えた。
その後は約1分間隔でGPSマークが数秒表示という状態に。

というわけで、以下のように推測

  1. GPS情報を取得
  2. いったん取得した後、第三引数で設定範囲内でブレがないことを何回か取得して確認
  3. ブレていれば1へ戻る
  4. ブレがなければ、第二引数で指定した時間分waitして1へ

ってことなんでしょう。たぶん。
まあ、2の「何回か」ってのもだいぶ怪しいけど

いや、もしかしたら例によって英語のドキュメントちゃんと読むとか、LocationManagerのソース読むとかすれば答えはあるかも知れませんが。
ええっと、とりあえず第二引数と第三引数がミリ秒単位とかメートル単位ってのはドキュメントから読み取りましたし、サービスで実行するときは電池の持ちを考えて60秒ぐらいに設定しろとかはかいてありましたけど。

会社同様AndroidSDKのソースを取得すべきか否か・・・。う~ん。

てかここまでやるなら、Overlay、LocationListenerそれぞれ自前実装でも一緒じゃね?


参考 「Android プログラミング入門」
  • 第四部 5.1.7 オーバーレイの表示
  • 第四部 5.2.1 現在位置取得
  • 第四部 5.2.3 MyLocationOverlay

Android 自分の位置をMap上に描画2

MyLocationOverlayを継承して、

  • 現在位置の表示を自分で書く
  • GPS情報を取得したら有無言わさずその場所へ移動
するようにしたいと思います。
基本的な構成は前回と変わらず。


MyLocation.java

package com.omkageru.ak.gpschk;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Point;
import android.graphics.Rect;
import android.location.Location;

import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapView;
import com.google.android.maps.MyLocationOverlay;

public class MyLocation extends MyLocationOverlay {

 private MapView mapView;
 private Paint locMarkC;
 private Paint textC;
 private GeoPoint p;

 public MyLocation(Context context, MapView mapView) {
  super(context, mapView);
  // TODO 自動生成されたコンストラクター・スタブ
  this.mapView = mapView;

  locMarkC = new Paint();
  locMarkC.setAntiAlias(true);
  locMarkC.setARGB( 255, 0, 0, 255);

  textC = new Paint();
  textC.setARGB( 255, 0, 0, 0);

  p = null;
 }

 /* (非 Javadoc)
  * @see com.google.android.maps.MyLocationOverlay#draw(android.graphics.Canvas, com.google.android.maps.MapView, boolean, long)
  */
 @Override
 public synchronized boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when) {

  //  onLocationChangedで取得
  //  GeoPoint p = getMyLocation();
  //  isMyLocationEnabled() でのスイッチはだめでした。
  if(p != null && !shadow){
   //   ここでのanimateTo()効果なし?でした。
   //   そのため、onLocationChanged で実行
   //   mapView.getController().animateTo(p);
   //   mapView.invalidate();

   // 現在位置を青い四角で描画
   Point pos = mapView.getProjection().toPixels(p, null);
   Rect r = new Rect( pos.x - 5, pos.y - 5, pos.x + 5, pos.y + 5);
   canvas.drawRect(r, locMarkC);
   canvas.drawText("ここらへん", pos.x + 5, pos.y, textC);
  }

  return true;

  //  現在地を自前で描画するためコメントアウト
  //  return super.draw(canvas, mapView, shadow, when);
 }

 /* (非 Javadoc)
  * @see com.google.android.maps.MyLocationOverlay#onLocationChanged(android.location.Location)
  */
 @Override
 public synchronized void onLocationChanged(Location location) {

  // 現在位置をLocationからGeoPointへ
  p = new GeoPoint( (int)(location.getLatitude() * 1E6), (int)(location.getLongitude() * 1e6));
  if(p != null){
   // 現在地へ移動
   mapView.getController().animateTo(p);
  }
  // TODO 自動生成されたメソッド・スタブ
  super.onLocationChanged(location);
 }

}

MyLocationOverlayを継承したクラスを作成します。
通常のOverlayクラスでも行うように、描画部分を実装します。
とりあえず、
・public synchronized boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when)
ってやつをオーバーライドしました。

今回、getMyLocation()とisMyLocationEnabled()いうMyLocationOverlayクラスに予め用意されていたメソッドに振り回されてしまいました。
isMyLocationEnabled()でtrueならgetMyLocation()は絶対取れるだろうと。
結果は駄目でした。
要は有効になっていても、とりあえず取得できているかは別物だろ?ってことです。
なので結果としてGeoPointがnullかどうかだけ見ることにしました。
まあ、getMyLocation()のJavadocちゃんと読めってことでw
最終的に以下に掲げたonLocationChanged内で取得することにしたのでgetMyLocation()は結局使わないことになりましたが。

とりあえず描画がうまくいったところで、描画内でanimateTo()すりゃいいでしょ?と考えていましたが、
なぜかうまくいかず(たまたまですかね?)、この段階でたonLocationChanged()をオーバーライドすることを考えました。

続いてGPS情報の変更を検知したら、その場所へ移動するという処理を実現するため
・onLocationChanged
をオーバーライド
まあ、見たまんまです。


後は前回のMain.javaのMyLocationOverlayをMyLocationに置き換えて完了
動作画面は以下のとおり
現在地が青い四角になり、すぐ横に「ここらへん」という適当な文字がw


緯度40 経度140.5 に設定 何段階か拡大してます

適当にスクロールした後 緯度41 経度140.5 に設定

ちなみにこのまま実機で動かすと、もうそれはそれは約1秒間隔かそれ以下でGPS情報更新してくれます。

電池の無駄もいいところだw


参考 「Android プログラミング入門」
  • 第四部 5.1.7 オーバーレイの表示
  • 第四部 5.2.3 MyLocationOverlay

Android 自分の位置をMap上に描画

プログラム組んでて思うこと。
会社と家とやってることに差がないw

さて一度はやってみたい自分の位置を地図上に描画。
今日一日の作業メモを複数回に分けて記録。

動作確認環境
  • OS:Windows7 64bit上でのエミュレータ
  • HT-03Aでも一応動いたことは確認
エミュレータ
  • Google API (APILevel4以上)が使用できること
  • GPS有効に
Android Maps API用にAPIキーの取得
Android上に地図を表示するためには、MapActivityを継承したクラスとレイアウトにMapViewを使用すればOK!
素敵です。

そして、そのMapView上にOverlayクラスを使えば地図上に描画もできる。
あとは、LocationListenerを使用してGPSを取得して・・・。

っていうかそのOverlayにLocationListener+SensorListenerをimplimentしたクラスMyLocationOverlayってのが用意されています。

なので以下の実装だけでとりあえず現在位置は描画できちゃいました。


layout/main.xml
<?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent" >

 <com.google.android.maps.MapView
  android:id="@+id/map"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:clickable="true"
  android:apiKey="取得したAPIキーを入れる" />
</LinearLayout>


AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
//中略

<uses-library android:name="com.google.android.maps"></uses-library>
</application>
<uses-sdk android:minSdkVersion="4" />

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
</manifest>
MapViewとか使うので
・<uses-library android:name="com.google.android.maps"></uses-library>
の追加を忘れずに

さらにネットに繋ぐ前提となるので
・<uses-permission android:name="android.permission.INTERNET"></uses-permission>
を追加

もちろんGPS使うので
・<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
も追加


main.java

package com.omkageru.ak.gpschk;

import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
import com.google.android.maps.MyLocationOverlay;
import android.os.Bundle;

public class Main extends MapActivity {
 private MapView mapView;
 private MyLocationOverlay overlay;

 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);

  mapView = (MapView)findViewById(R.id.map);
  mapView.setEnabled(true);
  // ここから下はお好みで
  mapView.setClickable(true);
  mapView.setBuiltInZoomControls(true);
  mapView.setSatellite(false);

  // 今回の主役。有効にすることでGPSの取得が可能に
  overlay = new MyLocationOverlay(getApplicationContext(), mapView);
  overlay.enableMyLocation();

  // GPS取得が可能な状態になり、GPS初取得時の動作を決定(らしい)
  overlay.runOnFirstFix(new Runnable(){
   public void run() {
    // TODO 自動生成されたメソッド・スタブ
    // animateTo(GeoPoint)で指定GeoPoint位置に移動
    // この場合、画面中央がGPS取得による現在位置になる
    mapView.getController().animateTo(overlay.getMyLocation());
   }
  });

  // Overlayとして登録
  mapView.getOverlays().add(overlay);
  // とりあえず再描画
  mapView.invalidate();
 }

 /* (非 Javadoc)
  * @see com.google.android.maps.MapActivity#onDestroy()
  */
 @Override
 protected void onDestroy() {
  // 破棄されるときには無効にしておく
  overlay.disableMyLocation();
  mapView.getOverlays().remove(overlay);
  // TODO 自動生成されたメソッド・スタブ
  super.onDestroy();
 }

 @Override
 protected boolean isRouteDisplayed() {
  // TODO 自動生成されたメソッド・スタブ
  return false;
 }
}


とまあこんな感じですか?
一応動くはずです。

あ、基本Cの人で、Javaは勘とeclipse先生にお任せしているのでお作法がおかしいとかありましたら、やさしく教えてください。
動かすと以下みたいな感じに。(エミュレータ画面)


起動したて

GPS情報を流し込む

Google本社の場所が!

緯度38 経度138 とかそんな値を突っ込んだ結果

なお現状の実装では画面をタップして適当な箇所に動かした後、GPS情報を流し込んでもその場所へは移動しません。




参考 「Android プログラミング入門」
・第四部 5.2.3 MyLocationOverlay

DELL studio 1557 がおかしい件について2


先日Dellより返答がありました。

可能性として

・電池が古い

・BIOSのアップデートがうまくいっていない

・基盤が駄目





電池が古いってありえるのか?

11月末に購入したPCのボタン電池は、何年前に製造したもの使ってるんだよw





BIOSアップデートミス

もちろん書きミスとかあるだろうけど、せめてインストール時に判定してほしい





基盤がだめ

どうしろと





とりあえず、アップデートがうまくいっていないというパターンであることを祈ってBIOSを再アップデート。





今後どうなるか気になるところです。








ちなみにこの前ログイン画面で固まりました。

この妙にフリーズする現象も問題かも。





ちなみにSSDではないのでいわゆる「プチフリ」ではないです。







本日(2010/01/17)も2回停止。


内一回はログイン画面(ようこそ表示)で固まる。

ようこそで固まるって、歓迎する気ないじゃん・・・。

2009年12月26日土曜日

DELL studio 1557 がおかしい件について

現在 11月に購入したDell studio 1557 というノートPCを使用しています。

スペックは以下のとおり





OS:Windows 7 Pro 64bit

CPU:Core i7 Q720

メモリ:4GB





なんせそれまで使用していたPCが7年前の大学入学当初のPCだったため、もうPCの能力の差はいうまでもありません。

しかも12万を切る価格で買えるんだからすごい時代になったものです。

eclipse3.5動かしながらAndroidエミュレータとブラウザ立ち上げて、winampでネットラジオ。

しかも無線LAN有効で。





こんなこと、これまでのPCじゃ無理でした。

ってかeclipse起動ですら死にそうなくらい無理でした。

ハードの進歩ってすごいですね。





この状態でタスクマネージャ立ち上げてCPU使用率とか見ても、まだまだ余裕な状態。





って感じで基本的に快調なんですが、いまいち微妙な点が





・フリーズが頻発

・勝手にBIOSの設定が変わる





フリーズ頻発といっても、起きないときは全く起きません。

一週間くらい快適に使用していたら、ある日3連続くらい起きるとかそんなのです。

起きる要因はさっぱりですが。

なんせエクスプローラ開いただけで駄目とか、基本的に意味がわからん場合に発生します。

まあwindowsだからと言われてしまえばそれまでなので、諦めています。



なおドライバ等更新できるものはすべて最新のものが入っているので、どこかで報告されていた、何かが古いとアウト!ってのではないと思います。





問題は後半

BIOSの設定といっても、単にキーボードを使用する上で、ファンクションキー(Fキー)の優先度設定に関する部分なのですが。

ノートPCらしく、F1~F12キーに対して、音量の設定やら液晶の輝度設定やらWLANのOnOff機能やらが割り当てられています。

問題は、なぜかそれらのマルチメディア機能が優先的に働くようになっており、本来のFキーの機能はFnキー同時押しでないと働かないという素敵な設定になっております。





つまり、「Alt+F4」でアプリを終了させるにも、「Alt+Fn+F4」でないと実行できない、という素敵な状態です。

文字列変換なんて最低です。

半角英字に変換するのに「Fn+F10」ってあほかと。

画面更新に「F5」単体で無理とか信じられん。





そこで問題となるのがBIOSの設定。

こちらの設定でファンクションキーが優先となるか、マルチメディアが優先となるかが選択できるわけです。

もう購入後、即効でファンクションキー優先にしましたよ。





そんなこんなで快適なファンクションキー生活(?)を送っていたのですが・・・。





ある日突然マルチメディア優先に戻ってる。

意味わからん。





すでに購入1ヶ月の間で2回発生。





さすがに腹立たしいので、サポートセンターに問い合わせ。

「調査後連絡します」

と、片言の日本語で中国人が回答。





解決しなかったらどうしよう。

少なくとも次にDELLを買うことはなくなるのだろうが。





誰か問題の解決策を知っていたら教えてください。




2009年12月22日火曜日

不定期更新・我が家のぬこ様


我が家のぬこ様。

うむ、かわいい^^

異論は認めない














よろしければどうぞ。


http://nanashimemorandum.web.fc2.com/neko01.html


2009年12月12日土曜日

やっぱり修正はFFですよね


javascriptの修正とか行なう上では、

やっぱりFFのエラーコンソールとfirebugが手放せません。

firebugの記事があったのでメモ的に。

http://www.atmarkit.co.jp/fjava/rensai4/devtool10/devtool10_1.html





最近もうまく動かないことがあって修正箇所を探していました。





そのときは家からの作業だったのでFFではなく、ChromeのJavaScriptコンソールを使用してみました。

それなりに便利なんですが、どう見ても原因が見つからない・・・。





結果として単なる文字コードの問題だったのですが、まったく気がつきませんでした。

ええ、FFのエラーコンソールの結果を見るまでは。

FFもChromeも同じ行にエラーがあるとは表示されていたんですが、

Chromeは文字コードを吸収してたんだか、使い方が未だにわからんというか・・・。

結果として何がエラーだったのかがわからなかったのです。





まあ、innerHTMLを使用したかったといえ、やっぱりjsファイル内に日本語を入れるなってことなんでしょうか。





なお、このブログをFFのコンソールを通してみたら、

cssにエラーが見つかりました。

一箇所『botton』って・・・。

運営しっかりしろw



Google先生に依存しすぎている件


先週はGoogle日本語入力にGoogle public DNS

今週はGoogle音声検索

と、なんだかどの方面に向かってもGoogle先生がいらっしゃる今日この頃





っていうか音声検索凄いっす。パネェっす。

普通に使える音声検索って初めてです。

普通に遊べます。

iphone/Android持っている方で試していない人は、是非試してみてほしいですね。





そんなことより改めて考えると、身の回りがすごいことに


  • 携帯:Androidが中心になってる今日この頃

  • ブラウザ:chrome(chromeplus)中心(javascriptコンソールとかがいまいち?まだFFレベルではない気がする)

  • 調べ物:基本Google先生以外考えられない

  • IME:Google入力(64bitはまだか!)

  • 仕事の案件:Android関連を依頼されそう






もうGoogle先生の手のひらで踊っている状態ですね。

でももう抜け出たくても無理だし、抜け出す気がありません。



2009年12月6日日曜日

アプリを作ってみた

ストップウォッチもどきを作りました。

Lap/Split どっちも使えるストップウォッチって結構高いんですよね。

これがあれば、サーキットで計測することだって可能!

なのか・・・?

すでに普通のストップウォッチを改造し、ホーンの配線と直結したやつ積んでるんですけどね。




計算時刻はcurrentTimeMillisを使ってSimpleDateFormatで整形して、

エミュレータ上で動かしたら完璧!




だったんですが、やっぱり実機はそうはさせてくれない。




GMT+9:00分、なぜか補正されて、

Startと同時に09:00:00:000になってしまうw




あれやこれや弄って結局描画直前で9時間分マイナスするというなんとも情けないソースにヽ(´Д`;)ノアゥ...




あ、ちなみにLap機能ついている割に、各ラップの記録を確認する機能はないという、基本的な機能すらまだですが。




そもそも精度とか、電池の持ちとかどうなのかと・・・。

まあ、そんな奴ですが、おかげでAndroidは描画はシングルスレッドだということを学びました。




起動画面




計測開始




Lapボタン押下一回目(2回目保管ミスで画像なし)




Stopボタン押下




2009年12月5日土曜日

Google日本語入力 64bit版マダァ?(・∀・ )っ/凵⌒☆チンチン

既に会社での環境では導入し、問題なく運用中のgoogle日本語入力。



家でも導入したいんですけど・・・。



いつになったら64bit版は出るんでしょうか?



ちなみに噂だと中国語版は既にあるとか無いとか・・・。



Google先生マダァ?(・∀・ )っ/凵⌒☆チンチン



android実機デバッグ for win7 64bit

以下の環境で実機デバッグ環境構築

OS win7 64bit

eclipse 3.5

HT-03A

とりあえず上記条件で素直にいく場合は問題なし。



が、相変わらず問題が微妙に発生するのが俺の運命ウワァァ-----。゚(゚´Д`゚)゚。-----ン!!!!




ってことで、今後のために記録




HT-03A

ホーム -> menu -> 設定 -> アプリケーション

提供元不明のアプリにチェック(一応)

開発タブ内以下の項目をチェック

USBデバッグ

スリープモードにしない(必要なら)

議事ロケーションを許可(必要なら)



eclipse

エミュレータ開発ができる状態になっていること

その上で、

実行 -> 実行構成 -> Android アプリケーション

上記にデバッグ(実行)対象プロジェクトを設定

ターゲットタブのDeployment Target Selection Mode を 手操作(manual)に変更

ってかmanualを手操作に翻訳ってどうなんだろ(´ε`;)ウーン…



PCとHT-03AをUSBにて接続

android Developersにはいかにも接続すればOK!

みたいに書いてある気がしますが・・・。(win7の項目は無いけどvistaと変わらんという前提で)



駄目Σ(゚д゚lll)ガーン






結局ドライバを手動で入れないとならない状況に。




(windowsの)スタート -> デバイスとプリンタ -> Android Phone(に警告マークがあることを確認)

Android Phone のプロパティとか辿って手動でドライバをインストールを選択(詳細失念w)

さて、肝心のドライバを探すディレクトリは

AndroidSDK インストールディレクトリ直下の「usb_driver」を選択します。

後は次へだか、インストールだかを選択してインストールすれば、

ちゃんと端末が認識されるようになります。



めでたしめでたし。




ってか手動でドライバのインストールをする選択を、

最初に端末繋いだときのドライバインストールダイアログに付け足してくれ(´Д`)











追記(2010/01/24)

ちなみに実機を繋いでデバッグログとかプロセスを見るためには、マニフェストに

・android:debuggable="true"

をつければOK

ブレークポイントまでは確認してませんが、多分可能でしょう。




2009年12月4日金曜日

貸与されました^^

アンドロイド端末が貸与されました^^

もちろん料金は会社もち(゚д゚)ウマー








って、俺今日から3台体制

馬鹿なの死ぬの?って声が(∩゚д゚)アーアーきこえなーい

docomo/au/Softbank大手3キャリア制覇です



料金が安いのが救いです。

docomo:会社もち(ただし通話料金は別)

au:メール端末だったのに

softbank:月額8円端末->対softbank専用


auが一番イラネ


2009年12月2日水曜日

パーツリスト

なんだかいろいろなバイクのパーツリストが!



パーツリスト

あれ、でも俺のバイクはないや・・・。


まあ、Kawasakiのサイトで見れるからいいんですけど・・・。


ヽ(`Д´)ノウワァァァン!!



2009年12月1日火曜日

買っちゃった

もうね、ネット上で調べるのに限界を感じました。

いくらネットで何でも調べられる時代でも、やっぱり本ですよね♪ってことは多いですよね。

うそっす、本当は


  • めんどい

  • 英語嫌い

がすべての理由です。





やっぱり日本語ドキュメントが欲しいです。

さて冬はこれで遊べるなw


HTML5

HTML5はFlashやSilverlightを不要なものにする



http://www.atmarkit.co.jp/fwcr/design/benkyo/html5_03/01.htm



ですって。

Flashを勉強してない俺勝ち組?

まあ結局HTMLやJavaScriptの勉強は必要ですがね。