2012年12月18日

Eclipseで急にAndroidアプリのエクスポートが出来なくなった時の対処法

あるAndroidアプリを更新した後、「さあGoogle Playにアップロードするぞ」とAPKのエクスポートをしたら、突然Eclipseがエラーで落ちてエクスポート出来なくなるという問題に遭遇した。

前のバージョンまでは全く問題無かったのに、更新後は何回トライしてもエクスポートしようとすると必ずEclipseが異常終了してしまう。

ActionBarSherlockを使う様に画面を変更したのだけれど、それが関係しているのかも知れない。

エラーログを見ると、何やらZipファイルの処理でエラーが発生している様な感じなのが何となく分かるが、対処法がさっぱり分からないので困った。

色々調べてようやくなんとかエクスポート出来たのでメモ。

Issue 28725 - android - Eclipse Crashes with EXC_BAD_ACCESS when exporting signed applications - Android - An Open Handset Alliance Project - Google Project Hosting


ここにある通り、「Build Automatically」のチェックをOFFにして試したら無事エクスポート出来た!

それにしてもよく分からないエラーだ。



 

2012年12月13日

Entity Framework 6では非同期DB処理がこんなに簡単に書ける!

MicrosoftのScott Guthrie氏のブログで Entity Framework 6 の Alpha 2 がダウンロード可能になったと報告されている。

Entity Framework 6: Alpha2 Now Available - ScottGu's Blog

改善点としてまっさきに挙げられているのは「非同期処理のサポート」。

.NET 4.5 introduced the Task-Based Asynchronous Pattern that uses the async and await keywords to help make writing asynchronous code easier. EF 6 now supports this pattern. This is great for ASP.NET applications as database calls made through EF can now be processed asynchronously – avoiding any blocking of worker threads. This can increase scalability on the server by allowing more requests to be processed while waiting for the database to respond.
The following code shows an MVC controller that is querying a database for a list of location entities:

(以下意訳)

.NET 4.5ではTaskベースの非同期実行のパターンが追加されました。このパターンでは async と await キーワードを使って非同期に実行されるコードを容易に記述する事が出来ます。EF6 も今回このパターンをサポートしました。
EF経由のデータベース呼び出しを非同期で実行する事が可能になるので、これはASP.NETアプリケーションにとっては非常に望ましい事です。 - つまりワーカスレッドをブロックせずともよくなるのです。これによってデータベースからの応答を待つ間に他のリクエストを処理出来るので、サーバー側でのスケーラビリティの向上に寄与します。
次のコードはLocationエンティティの一覧をデータベースから取得するMVCコントローラの例です。


    public class HomeController : Controller
    {
        LocationContext db = new LocationContext();

        public async Task<ActionResult> Index()
        {
            var locations = await db.Locations.ToListAsync();

            return View(locations);
        }
    }
上のコードを見ると、青字の部分が変わっただけで、他は今までと同じ。とても読みやすい。これだけでコントローラ側が非同期処理になるとは、素晴らしいの一言。

最近は Node.js がかなり注目されているけれども、その理由の一つが「非同期処理によるスケーラビリティの向上」にある。Entity Framework 6で非同期なDB処理がここまで簡潔に書ける様になると、ASP.NETもその方向にまた一歩近づいたという事になると思う。




 

2012年12月7日

Nexus7を買って4ヶ月後の感想 - じわじわと良くなって来た感じ


8月の初めにNexus7を購入してから4ヶ月が経った。

当初は期待半分、「本当に使えるのかなー」という疑い半分、という感じで、まあ少なくともアプリ開発のデバッグ用途には役に立つかなという程度に思っていた。

ところが、時間の経過とともに当初想定していなかった使い方もする様になって来て、だんだんと手放せなくなりつつある。

他の人の感想を読んだりして、「やっぱりNexus7いいね」と改めて見直したり。
Nexus7購入から1ヶ月後 — 乱れなよ、そして召されなよ

Nexus 7が、とりわけヒジョーにかなりイイ
なんと言っても7インチというサイズと軽さが素晴らしい。これはまあ当然として、その他に次のような点が大きいかなと思う。


Googleのサービスと親和性が高い


一番大きいと思うのはChromeの同期機能。これは使い出すと本当に欠かせない。
もちろんGmailも使いやすい。Google Mapの高機能さもやはりAndroidならでは。



Android OSのアップデートがすぐに反映される


購入してから4ヶ月で既に3回のアップデートが配信されている。アップデートのたびに細かい点が改善されているのが嬉しい。

特にAndroid 4.2で追加されたマルチユーザー機能はとても便利。子供に渡す時にさっとユーザーを切り替えて渡すだけで良くなったので本当に助かる。


あと、買った当初は想定していなかった使い方というのは、電子書籍を読む事と動画や音楽を楽しむ事の2つだった。



紙のメモを使わなくなった


Nexus7を買ってからミーティングのメモは全て「7notes with mazec」を使って取る様にしている。

最初の頃は「書き流し入力」をして後からきれいにテキストに変換していたけれども、この頃は手書き文字のままPDFで保存する様にしている。どうしてもテキストに変換する必要があるドキュメントでない限りはこれで十分だ。

最近スタイラスペンが少しヘタって来た様な気がするのでそろそろ買い換えたほうが良いかも知れない。

手書き入力をしない時は、Google日本語入力のGodanキーボードが便利。mazecと状況に応じて使い分けている。



電子書籍が読みやすい


Amazon.co.jpで日本語の電子書籍が買える様になった。Nexus7の話からは外れるけれど、僕にとってはこれは大きかった。

電子書籍が便利なのはわかっているけど「読む本が無いから結局読書には使わないだろうなあ」と思っていた。

でも、Amazonで簡単に日本語の本が探せて、しかも今まで払っていた高い海外向け送料無しで読めるとなると話は全く別だ。

試しに好きな作家の小説を買ってみたら、もちろんNexus7で全く問題なく読めた。7インチの画面はさすがに携帯の画面より読み易い。読んでいる位置やブックマークを携帯やPCのKindleアプリと同期する事も出来るし、やっぱり便利。

検索しても出てこない本がまだまだ多いけれど、早く紙の本と同じものが買えるようになって欲しい。そうしたらNexus7の出番がもっともっと増えると思う。



Youtube動画を連続再生


日常生活の中で、「Youtubeのあの動画を再生しながらこれをしたいな~」という場面が結構ある。

僕の場合は実は「食後の食器洗い」の時間がそれに当たる。手が濡れているので出来れば画面を触らずに自動でどんどん再生してくれると嬉しい。

それを実現してくれるのが「PVSTAR+」というアプリ。これで気に入った動画をずっと流しながら両手で作業が出来る。



音楽を聴きながら寝る


前からSky.FMは聴いていて、「Solo Piano」というチャンネルが僕のお気に入りになっている。

Sky.FM Radio

このアプリが便利なのはスリープタイマー機能が付いているので聴きながら寝入ってしまっても時間が来れば停止してくれる事。きれいなピアノの音を聴きながら眠ると本当に気持ちがいい。

ただ、無料で使っていると、たまに寝かかっている時にコマーシャルが始まって目が覚めてしまう事がある。なので有料アカウントにしようかと真剣に検討中。



結論


そんなこんなで4ヶ月後の感想としては、「Nexus7買って良かった。悔いはない!」と思っている。