Windows Azure Mobile Services が Android 対応したよ & 東アジア地域でも使えるようになったよ

前回の記事Developer Camp <Windows 8>Windows ストアアプリ開発コンプリート 仙台 に行きましたでは、Windows Azure Mobile Services は米国の西部・東部を選ばないと有料だったが、東アジアも無料で利用できるようになった。 また、Android も対応して、Azure から iOS, Android, Windows Phone にプッシュ通知が遅れるようになった。料金はたぶん無料で出来るはず。まだ自分で試していないので間違ってたらごめん。 ソースは以下です。 Windows Azureのアップデート: Androidサポート、SQLレポート サービス、Active Directoryなど… | S/N Ratio (by SATO Naoki)

March 10, 2013 · nnasaki

Developer Camp <Windows 8>Windows ストアアプリ開発コンプリート 仙台 に行きました

Developer Camp <Windows 8>Windows ストアアプリ開発コンプリート 仙台 に行ってきました。 Windows ストアアプリ開発ってどんなもんだろうと思ったのがきっかけです。 全体的な感想として講義は大変わかりやすく、資料も充実していてよかった。Windows ストアアプリすげーっていうより、Azure すげーって思ったw Windows Azure Mobile Services でテーブルをちょこちょこっていじったけど、Entity Framework と同じ感じでテーブルを呼び出せ、クラウドの非同期な DB の更新が await todoTable.UpdateAsync(item) のたった1行で済んじまうのですよ。 しかも適切にサービスを設定してれば、あの面倒なアプリへのプッシュ通知も勝手にやってくれる。ちょー便利。プッシュ通知は iOS も対応していて、近日 Android も対応。 これで無料って便利すぎて鼻血でるレベル。 デザイン面とかはストアアプリだけでなく、Android や iOS にも応用が利くので、今後追跡調査していきたい。 (たしか去年のABCでAndroidのデザインはMSのサイトを参考にしてボタン幅を決めた方が良いと聞きました。) 以下に自分のまとめを記載しておきます。 今回の資料 テキストはネットに公開されているものと同じです。動画はまだ準備中ですが収録は終わってて編集中だそうです。 Windows Azure ハンズオン トレーニング オンライン版 | MSDN Windows ストア アプリ開発コンプリート ストアアプリとデスクトップアプリの違い 全画面表示 タッチ操作 ストアからの入手 MS の審査必要 通常の.NET Framework は使えない。WIN RTを使う。 一つのアカウントで5つのデバイスまでインストールできる インスタントストアで管理 企業内配布(サイドローディング) 審査不要 証明書を含める グループポリシーの変更(ドメインが前提) PowerShellでインストール アプリパッケージの構成要素 アプリマニフェスト xml ストアで表示される情報。権限とかカテゴリ対象年齢 Visual Studio で簡単に編集可能 ...

February 23, 2013 · nnasaki

第15回 DDD(ドメイン駆動設計)勉強会 に行ってきた

書くのが遅れたので、ちょっとバックデート。 今回もOracle さんのセミナールーム。いつもありがとうございます。 今回で15章が終わり、残りは16章と17章で2年越しのDDD読書会も終わりが見えてきた感じ。来月はいろいろと予定が重なってるので17章は作りたいなーと思ってます。 DDD 読み終わった次は何するか楽しみですね。

February 22, 2013 · nnasaki

ソフトウェアテスト勉強会~JaSST'13東京報告会~ に行ってきたよ #sendaitest

仕事が押してしまって、半分ぐらいから参加。 最近の流れがテスト自動化と探索的テストらしい。 探索的テストはテスト技法ではなくスタイルなりっ!!(ババァーーーン)って感じで面白かった。確かにテスト仕様書なんてエビデンスに必要なだけで、役に立つことはあまりない。 弊社も推し進めているWモデル(W字開発モデル)についても途中からしか聞けなかったけど参考になった。 しっかりDevLOVE仙台の告知も行いました!みんな来てくれるといいな。 勉強会後にはビアバッシュで、たまたまハワイから参加しましたとか、全然ソフトウェア開発はしていないんですけどもとかいろいろな人の話が聞けて良かった。ニセコのワインからニセコには最近オーストラリア人が一杯来ているんですとかとか。 テスト勉強会は毎回面白いので、次回も時間が合えば参加したいです。

February 16, 2013 · nnasaki

Bitcasa に TimeMachine でバックアップする

前置き 外付けHDD のファイルシステムがまた壊れていい加減嫌になったので、クラウド上に Time Machine でバックアップできないか試してみた。 以下、何個か候補があったが、Bitcasa にした。 Online Backup,Sync and Space for Mac TimeMachine用のクラウドサービス。速度が遅いのと、ちょっとお高いのでやめた。 K Nishijimaのぶろぐ: Amazon S3上にTimeMachineでバックアップを取る方法 これにしようか迷ったけど、s3は従量制でトランザクション料も別途取られるので、TimeMachine のように細かいファイルを作ったり消したりはいくらになるか想像できなかったので、怖くなってやめた。 Bitcasa Infinite Storage | Your External Hard Drive in the Cloud こいつに決めた。1年間容量無制限で$99(今はキャンペーン中でさらに$66)は安い。 設定方法 Bitcasa にてアカウントを取得する まー、まずはアカウントを取得しないと始まりません。以下から取得できます。このリンクから作っていただけると、無料期間が延びるっぽいので使っていただけるとうれしいです。 Sign up for an account Bitcasa のクライアントをインストールする NASのように使え、Dropbox 等のフォルダを同期とはちょっと違う感覚。 スパース・ディスクイメージを作成する 以下のような構成で作る。ポイントは通常のNASだとイメージフォーマットはスパースバンドル・ディスクイメージで作ってたと思うけど、それだとBitcasaからマウントできなかったので、スパース・ディスクイメージで作るようにする。 スパース・ディスクイメージを選択した後に、サイズを選択すると2Tとかどーんと選べるようになっているはず。 名前は適当でOKです。制限はありません。 f:id:nnasaki:20130214022028j:plain Bitcasa へコピーする 作成されたディスクイメージはそのまま Bitcasa へ放り込みましょう。2Tを作成するとだいたい980Mぐらいでした。 tmutil で設定する Bitcasa でディスクイメージをダブルクリックしてマウントしたら、以下コマンドを実行してタイムマシンのディスクに設定します。 `sudo tmutil setdestination /Volumes/TimeMachineOnBitcasa ` 後はひたすら待つ 2013/2/16 修正 以上でコピーが始まるはずです。私の環境で 92GBのバックアップが結構かかりました。2日経ってもまだ終わってません。30GBを超えると速度が遅くなってしまいました。プロバイダの規制もあるかもしれませんね。というか、あるみたいです・・・。 実運用に耐えられるかは今のところぎりぎりですね(^^; ...

February 14, 2013 · nnasaki

vagrant sandbox off や rollback がエラーになる時の対処

個人的に Vagrant をいろいろ試していて、そろそろまとめようと思ったら既にVagrant - naoyaのはてなダイアリーで d:id:naoya さんがいい感じにまとめられていて先を越されてしまった。 非常に便利な Vagrant ですが、私の Macbook にてなぜか vagrant sandbox off や vagrant sandbox rollback でエラーが出てしまったので、その対処を記載しておきます。 環境 MacOS X 10.8.2 VirtualBox 4.2.6 rbenv 0.4.0 ruby 1.9.3p327 Vagrant 1.0.6 sahara 0.0.13 エラー内容 vagrant sandbox off時 `$ vagrant sandbox off [default] - switching sandbox off 0%... Progress state: NS_ERROR_FAILURE VBoxManage: error: Snapshot operation failed VBoxManage: error: Failed to perform an online medium merge (VERR_INVALID_PARAMETER) VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component Console, interface IConsole VBoxManage: error: Context: "int handleSnapshot(HandlerArg*)" at line 431 of file VBoxManageSnapshot.cpp ` vagrant sandbox rollback時 ...

February 13, 2013 · nnasaki

Ruby 1.9.3 で CSV を加工したい

Web上のサンプルは1.8系の頃ばかりで割と少ない感じがしたので、メモしておく。 たとえば、以下のような CSV から Path と FileName カラムを 削除して、FilePath という一つのカラムに結合して、さらに Text の内容に改行を含めたい場合の例。 f:id:nnasaki:20130204005022j:plain 完成形はこんな感じ。 f:id:nnasaki:20130204005015j:plain 作成したコードは以下。ruby convert.rb blog.csv > convert.csv のように実行する。 ポイントは4つ ハッシュのように扱える :headers => true を指定することで、CSV の一行目のカラムを Key として、それぞれのフィールドを Value で使えます。左から何番目と指定する必要が無いので、CSV の形式が変わっても使えるのでとても便利 コマンドのように実行できる CSV.filter を使用すると、第一引数を INPUT として扱い、OUTPUT は標準出力となります。これで、sed や awk 等の感覚で実行できるスクリプトが簡単に作成できます。 ヘッダーの加工は注意が必要 ヘッダーだけ特別な加工をしたいので、if row.header_row? としています。next で以降の処理はさせずに次のループに移るようにしています。 MAC の場合、改行コード入力は ALT+¥ で入力すること row["Text"] << "ああ\nええ" に改行コード \n を入れても改行できず、おっかしいなーと思ったら、ALTを押さないと円マーク(¥)になってしまい、バックスラッシュ(\)にならなかったためでした。 いつもはコンソールで irb でやっているので気づきませんでしたが、今回は Sublime Text 2 でエディタ使ってやってたら、はまってしまった。 2000行ぐらいならほぼ一瞬で済んでしまうようなので、良さそう。まだ自分の中でデータ加工する際の複数のハッシュキーを削除する方法とか、ハッシュではない普通の配列とシンボルとかがごちゃごちゃになってて Ruby 力の足りなさを痛感しました。

February 5, 2013 · nnasaki

The RSpec Book 読書記録(2)

Rails に入ったとたんにはまりだしたw まず、19章で環境のセットアップが本書と異なる。 本書は Rails 3.0.0, cucumber-rails 0.3.2 となっており、自分は Rails 3.2.11, cucumber-rails は 1.3.0 をインストールした。 そうしたところ、web_step.rbが最新の cucumber には入っていないらしい。 20章から急に駆け足になる。序盤の丁寧な説明は全くなく、サンプルコードをダウンロードして後はよろしく見てくれというスタンスっぽい。ソースコードは http://pragprog.com/titles/achbd/source_code からダウンロードできる。 おかげでいろいろハマッタのでメモしておく。 attr_accessible が必要 Rails 3.2 あたりからセキュリティ強化のため、フォームからモデルのインスタンス変数にアクセスする場合は、明示的に attr_accessible をつける必要があるらしく追加した。 model/genre.rb `class Genre < ActiveRecord::Base has_and_belongs_to_many :movies attr_accessible :name end ` model/movie.rb `class Movie < ActiveRecord::Base has_and_belongs_to_many :genres attr_accessible :title, :release_year, :genres .... ` migrateに余計なカラムつけない has_and_belongs_to_many にタイムスタンプは不要となったので削る db/migrate/20130129180816_create_genres_movies.rb TYPO。。。 意気揚々とrake cucumberするもエラー。 Scenario: Create movie in genre # features/create_movie.feature:7 Given a genre named Comedy # features/step_definitions/genre_steps.rb:9 When I create a movie Caddyshack in the Comedy genre # features/step_definitions/movie_steps.rb:9 Then Caddyshack should be in the Comedy genre # features/step_definitions/movie_steps.rb:18 undefined method `movies’ for #Genre:0x007f839de03260 (ActionView::Template::Error) ...

January 30, 2013 · nnasaki

The RSpec Book 読書記録(1)

ちょこちょこ Rails をいじる機会が多くなってきたので、やっぱりテスト書かなくちゃと思って The RSpec Book を購入しました。(たまたま翔泳社のポイントをいただいたというのも大きいけど) [ The RSpec Book (Professional Ruby Series) ](http://www.amazon.co.jp/exec/obidos/ASIN/4798121932/hatena-blog-22/)[The RSpec Book (Professional Ruby Series)](http://www.amazon.co.jp/exec/obidos/ASIN/4798121932/hatena-blog-22/)- 作者: David Chelimsky,Dave Astels,Zach Dennis,角谷 信太郎,豊田 祐司,株式会社クイープ- 出版社/メーカー: 翔泳社- 発売日: 2012/02/22- メディア: 大型本- 購入: 6人 クリック: 129回- この商品を含むブログ (13件) を見る タイトルは RSpec とあるけど、前書きにあるとおり Cucumber も出てくるし、BDD の側面が強い。ちゃんと BDD と TDD のサイクルをどう回すか、アジャイル開発とはまで出てきて、良いことが書いてある。 さて、目的の Rails については前半は出てこなくて、19章以降になる。ここで Gemfile に Cucumber を書いてインストールするんだけど、本書のままだと Rails 3.2.11 でうまく動かなかったのでメモしておく。cucmber-railsとdatabase_cleanerをtestグループにのみ含めるのがポイント。 `group :development, :test do gem "rspec-rails" gem "webrat" end group :test do gem "cucumber-rails" gem 'database_cleaner' end `

January 27, 2013 · nnasaki

宮城大学大学院 情報デザイン特別講義 2012 に行ってきた

宮城大学大学院 情報デザイン特別講義 2012 小飼 弾 先生 がいらっしゃるということで行ってきた。 もう全然 Perl の話じゃなくてコンピューターサイエンス。いや、それも通り越してしまって、哲学的なものを感じました。 だって、print "Hello, World"がプログラムかデータか?っていうところから、チューリングマシンが出てきて、ライフゲームが出てきて。ライフゲームに生命があるか? こんなの話の展開誰が想像できますか?w で、生命ってのは結局 生命 → 物理法則 + 初期状態 と言い表すことができるかもしれないって一つの結論が導きだされた。ライフゲームが1970年に生まれて、チューリングマシンが表現できるとわかったのが2010年で40年かかっている。 これは物理法則が単純すぎるから、初期状態を探すのに時間がかかった。 これもプログラミングに当てはめることが可能でプログラム → 言語 + ソースコードであり、言語が複雑になるほどソースコードは簡略化可能で、言語が簡単なほどソースコードは複雑化するっていうので、BrainFuck 等の言語で FizzBuzz を表す例を見た。 ライブコーディングもあり、フィボナッチ数は普通に書くと35あたりから辛くなるというところで、高速化するにはどうするか?という問題。Perl だと memorize の2行を追加すれば良いということで、自前でキャッシュする場合との比較を行った。 ここら辺のプログラミングはHigher-Order Perlというとても良い本がPDFで全文公開されているので是非見て欲しいとのことだった。英語だけど。日本語だとメタプログラミングRubyとかいいかもしれないね。 今後求められるプログラマーとしては複雑なものから単純なものを生み出す。つまり、メタプログラミングのできるプログラマーが求められるとの話。 最後は杜の都ということを意識していただいたかもしれないお言葉で結論が導き出された。 逆に考えるんだ

January 13, 2013 · nnasaki