Xperia開発環境

Android開発環境ができていることを前提で書きます。
MacへのAndroid開発の構築は以下の記事が非常に参考になります。
Androidアプリ開発のための環境構築


Xperiaの開発環境の構築は非常に簡単です。ただ単にエミュレータを起動できるようにしてあげるだけです。
1.Sony Ericsson Xperia X10 add-on for the Android SDKのダウンロード
 以下のページからダウンロードします。
 Sony Ericsson Xperia X10 add-on for the Android SDK Downloadページ
2.ダウンロードしたファイルをAndroid SDKフォルダへ移動
 解凍したファイル「XPERIA-X10_r1」を「Android SDK\add-ons」へ。そのまま配置してしまってOKです。
 
3.Eclipse起動
 Eclipseを起動し、「ウインドウ」→「Android SDK and AVD Manager」を選択する。
4.Virtual Devicesの作成
 左ペインより「Virtual Devices」を選択肢「New」ボタンを押す。
 


 Targetで「X10 (Sony Ericsson Mobile Communications) - API Level 4」を選択する。
 Nameは任意で入れてください。ここではXperiaにしてあります。SD Card Sizeも任意で入れてください。
 
 入力が終わったら「Create AVD」を押します。
5.AVDの起動
 作成したAVDを選択して「Start」を押す。
 


 下記の画面が出てくるのでここで画面サイズを指定します。以下の値に設定すると実際のサイズとほぼ一緒になるそうです。
 


 Launchを押せばAVDが起動します。
 


あとは通常通りデバッグ実行すればXperia AVD上での動作確認ができます。もちろんAndroid 1.6をターゲットにしなければ動きませんよ。

Xperia手に入れた

やっとXperiaを手に入れました。ビックカメラにて一括で購入したのでもらえるポイントを考慮すると実質\35,000位で購入出来ました。
簡単にレビューしておきます。
まずせっかくなのでいろいろと並べた写真を載せておきます。

  • HT-03Aと比べるとはっきり言って何もかもが快適!!ほんと鼻血が出るくらい快適。
    • 端末の起動も早いし、アプリケーションの起動も早い。もちろんHOME画面へ戻るのも高速
    • HT-03AにカスタムROM突っ込んだものの方が快適とかいう意見もどこかで見ましたがそんなことはないと思います。ちなみに私はHT-03AにDwang 1.17.1を入れてますが間違いなくこれよりXperiaの方が快適です。
  • 大画面、高解像度は強力
    • 画面に表示できる情報量がケタ違いに多い。
  • タッチパネル操作のサクサク感はもちろんiPhoneにはかなわない。ちょっとしか触った事ないけどNexus Oneにもかなわないはず。
    • iPhoneしか知らない人からするとモッサリして使えねー!ってなると思う。
  • カメラのシャッターボタンの位置が微妙・・・。右側面の下の方にあるため片手で持つと間違って押してしまいそうになる。
    • ボタンを強く押さないとカメラは起動しないようなのでまあ許せる。
  • 上で述べたカメラボタンを押してカメラを立ち上げようとするといきなり電源が落ちることがある。
    • 正直原因は不明。かなり再現性無いですがたまに落ちるのです。私はカメラ使わないのでいいですがカメラをよく使う人には致命的な不具合だと思う。
  • バッテリーの持ちは想定内。私の使い方だと恐らく1日1回は充電しないといけない。長めに外出する日はエネループ充電器必須でしょう。
  • 通話音量が小さい気がする。受話音量MAXなのに小さかった。

とこんなところですかね。全体的に大満足です。やはりAndroid1.6というのは残念ですが、端末スペックでカバー出来ていると思います。なによりdocomo回線が使えるというのが強力ですね。
あとAndorid端末同士のデータの移行は超楽ちんです。ほとんどのデータはGoggleアカウントを設定するだけで自動的に同期されるし、アプリケーションの移行もその手のアプリケーションがあるので簡単です。基本的には旧端末で使用していたSDカードを新機種に入れるだけ。

あとは1ヶ月位使用した後にもっさりとしてこないことを祈るだけです。

Azure Diagnostics Manager Beta版を試してみた

先日Cerebrata社からAzure Diagnostics Managerが発表されました。まだBeta版です。
Cerebrata社はCloud Storage Studioというすばらしいストレージツールを出しているので期待大です。

このツールはAzureの診断APIで出力したログを視覚的に確認することができます。
今までPerformanceカウンターのデータを取得すると、Tableに出力させ、それをExcelなどに出して頑張ってグラフ化するくらいしかまともな方法がありませんでした。
このツールを使用することでperfmonみたいに見れるようになりました。
※あくまでもAzure Storage上に出力したデータを読み込むツールですのでログ出力の設定はアプリケーション側に自分で設定する必要があります。

今回のBeta版では以下の機能が実装されているようです。

  • Event Viewer
  • Performance Counters Viewer
  • Trace Logs Viewer
  • Infrastructure Logs Viewer
  • IIS Logs Viewer
  • IIS Failed Request Logs Viewer

将来的には以下の機能も実装されるようです。

  • Crash Dumps
  • On Demand Transfer
  • Remote Diagnostics Management

今回はひとまずPerformance Counters Viewerを試してみました。
(他のEvent LogなどはTableやBlobに出力される内容で十分な気がするので。)
ちなみに開発ファブリック、開発ストレージでの検証です。本番のAzure上ではまだ試していません。


起動画面。左ペインに表示できるログの種類が表示されている。今回はPerformance Countersを選択


こんな画面が出てきます。ここでログを取得する期間を指定する。
他にも指定した時間ごとに自動的に更新(Tableからデータを取得)したりできるっぽいです。


こんな感じで何時間前や今日、昨日、今月、先月みたいな感じで指定することもできる。


GetDataを押すとこんな画面に。なんか取得できているっぽい。


ここで各カウンターの右下にあるグラフマーク(赤と青の矢印ボタン)を押すと・・・

はい。来ました。キレイにグラフで表示されます。
ここからこのグラフを画像データとして出力もできます。またTableに出力したlogデータも出力できます。
非常に便利ツールですね。今後のバージョンアップに期待です。

ちなみにまだOn Demand Transfer機能が実装されていないので、アプリケーション側でStorageにログを出力させなければなりません。
ScheduledTransferPeriodを使うやつです。

詳しくはTransferring Diagnostic Data to Windows Azure Storageに書いてありますので参照下さい。

SQL Server 2008 R2 & SQL AZureミーティング

に参加してきた。結構人数は少なめでした。

すんごい簡単に内容と感想。

  • SQL Server 2008 R2 の提供開始は2010年の春くらい?
  • SQL Server 2008 R2もSQL Azureもメインラインは一緒。
  • SQL Server 2008 R2のテーマはシームレス。オンプレミスのSQL ServerだろうがSQL Azureだろうがシームレスに繋がる。
    • やっぱこれは便利。SSMSという一つのツールでオンプレミスのDBもクラウド上のDBも見れるのはすばらしい。
  • SQL Azureのデータを使ってReporting ServicesとかPowerPivotも使える。
    • SQL Serverの強力なBI機能をSQL Azureのデータに対しても使えるというのは嬉しい。SQL Azure自体にもBI機能は今後提供されるのか?

また、SQL Server 2008 R2とSQL Azureの連携に関してはデモも行われました。本当にレポート作成とかできちゃってました。


最後にSQL Server 2008 R2のエディションについて。
今まで通り、

  • Enterprise
  • Standard
  • WorkGroup
  • Web

の4エディションは存在。これプラス下記の2エディションが追加されるようです。

  • Parellel Data Warehouse
  • Datacenter

Parellel Data Warehouseエディションはハイエンドデータウエアハウス用だそうです。数十TB〜数百TBまでをカバー。
また本エディションはアプライアンス製品だそうです。Fast Trackほど自由にハードを選べないそうです。詳しくは?です。

Datacenterエディションは大規模環境サポート用。CPUは最大256論理プロセッサ、メモリはOS最大容量OK。仮想化も無制限です。

ちなみにEnterpriseエディション以上はPowerPivot標準搭載らしい。


質問もかなり飛び交っていて非常にいい情報収集になりました。また、Twitterでしか知らない方に実際に会えたりと非常に有意義なものでした。参加者の皆様お疲れ様でした!


SQL Server 2008 R2についての詳細はこちらから。

Vistaでいきなり変なファイルが作成された

ふと気づいたらDドライブの直下に変なファイルがたくさん出来ていた。
OSはVistaのUltimate x86です。
出来ていたのは以下のファイル。

install.exe
install.res.1028.dll
install.res.1031.dll
install.res.1033.dll
install.res.1036.dll
install.res.1040.dll
install.res.1041.dll
install.res.1042.dll
install.res.2052.dll
install.res.3082.dll
vcredist.bmp
globdata.ini
install.ini
eula.1028.txt
eula.1031.txt
eula.1033.txt
eula.1036.txt
eula.1040.txt
eula.1041.txt
eula.1042.txt
eula.2052.txt
eula.3082.txt
vc_redist.msi
vc_redist.cab

最初ウイルスか?と思ったが、よくよくファイルの属性詳細を見てみると「Microsoft Visual Studio 2008」という文字が。
なんかおかしいと思って調べてみると下記のページを発見。

「VCRedist from VC++ 2008 installs temporary files in system root directory」
http://support.microsoft.com/kb/950683

まさにこのことが書かれている。

Its a known bug and is planned to be fixed in VS2008 SP1.

どうやらVS2008 SP1の既知のバクだそうだ。なんだなんだ一安心。

さらに、

These files are unnecessary and can be safely deleted from the system.

とあるので削除してしまって良さそう。

ひさびさに焦った。

列挙型enumの基本

列挙型の定義は下記のように行う。

enum Manth
{
	January, 
	February, 
	March, 
	April,
	May, 
	June, 
	July, 
	August,
	September, 
	October, 
	November, 
	December
}

各要素にアクセスするには、列挙型名.メンバー名で行う。
例えば、April、Mayにアクセスするには以下のようにする。

static void Main(string[] args)
{
	Console.WriteLine(Manth.April);
	Console.WriteLine(Manth.May);
}
April
May

また列挙対は内部的にはintで値を持っている。宣言した順に0〜nとなる。
つまり上の例だとJanuary = 0、February = 1・・・、December = 11といった感じになる。

よって以下のように整数を取ってくることもできる。

static void Main(string[] args)
{
	Console.WriteLine((int)Manth.April);
	Console.WriteLine((int)Manth.May);
}
3
4

また列挙対の値を指定することも出来る。

enum Manth
{
	January = 1, 
	February, 
         ・
     ・
}

とすることで、January = 1、February = 2、・・・、December = 12となる。

そうするとこのようなこともできる。

static void Main(string[] args)
{
	for (int i = 1; i <= 12; i++)
	{
		Console.WriteLine("{0}月は英語で{1}です。", i, (Manth)i);
	}
}
1月は英語でJanuaryです。
2月は英語でFebruaryです。
3月は英語でMarchです。
4月は英語でAprilです。
5月は英語でMayです。
6月は英語でJuneです。
7月は英語でJulyです。
8月は英語でAugustです。
9月は英語でSeptemberです。
10月は英語でOctoberです。
11月は英語でNovemberです。
12月は英語でDecemberです。

こんな感じで列挙型名(ここではManth)でキャストしてあげることもできます。
以上、列挙型のお勉強でした。

Axum登場

読み方がいまいち分かりませんが・・・。
アスクムであってるのかな。

下記サイトからダウンロードできるようになっていますね。

Axum
http://msdn.microsoft.com/en-us/devlabs/dd795202.aspx

Microsoftの新たな言語です。

Axum aims to validate a safe and productive parallel programming model for .NET.

と書いてあるように、パラレルプログラミングに特化した言語のようです。
上記サイトからプログラミングガイドや言語仕様も見ることができます。

ちらっと見たところかなりC#ライクな言語のようです。

F#といい、このAxumといい気になるものが続々と出てきますね。