GraveDollの備忘録ブログ

勉強したことや捗るグッズの備忘録です。

ITエンジニアの小説

Press Enter■
@ITのコラムの中に、Press Enter■という小説形式の人気コラムがあって、たまに一気読みしています。
シリーズがいくつかあり、どのシリーズもIT業界が抱える問題をテーマにしています。
各シリーズには、下請けプログラマを見下す大手SIer、新しい技術を学ぼうとせず昔の非効率なやり方を強要する老害など、癖の強い悪役(?)キャラクターが必ずいて、プロジェクトを炎上させます。
小説の中のキャラクターは極端ですが、社内やプロジェクトのメンバーの中にいそうな感じのあるある感が面白さを引き立てています。

昨日はその中でまだ読んでいない「罪と罰」を読んだらやはりとてもおもしろく、一気に読み終えてしまいました。

過去のシリーズはKindle版で小説として発売されているようです。

Zenphone5買いました

以前の記事にも書きましたが、USBデバッグに使っていたAndroid機(F-05D)が壊れてしまったため、新しいデバイスを探していました。
ちょうどNexus9, Nexus6が発売されるのでそれを買おうと思っていたのですが、Nexus9は大きすぎるし、Nexus6は高いので見送りました。
そこで低価格のAndroidデバイスを探していたらASUSのZenphone5の評判が良かったので買ってみました。
f:id:GraveDoll:20141226201135j:plain
f:id:GraveDoll:20141226200958j:plain
↑ケースとフィルムを装着しています。

購入先はAmazonのAUSUSショップです。本体が16GBで28944円、送料が540円でした。
初回起動時に通信をWi-Fiのみでおこなうか、SIMカードを利用してモバイルデータ通信を行うか選べるので(もちろん後から変更可能)、SIMカードがないと使えないなどということは起こりません。
OSバージョンは4.4.2で、2015年4月に5.0にアップデートの予定*1とのこと。

ざっくりとした所感

まだ少ししか使用していないのですが、サクサク動くし特に問題はありません。

Phone - ZenFone 5 (A500KL) - ASUS
スペックを見ると、携帯としてスマホを使うのに問題なさそうだし、USBデバッグ用なら十分すぎる性能だと思います。
注意点としてはNFCが搭載されていないので、NFCアプリの開発ができないことくらいでしょうか。まあこれは承知で買ったし、今のところNFCアプリの開発予定はないのですが。

まとめ

コスパ的にはとても良いと思います。ひと通り基本的なスマホ機能を使えて(NFCは無いですが)3万以下と安いので、Androidアプリ開発をこれから始めようとして、スマートフォンの実機をまだ持ってない方にはオススメなデバイスだと思います。

また使用していて何か発見があったら記事に書こうと思います。


※2015/2/5追記
ケースとフィルムは以下のものを使っています。
ケースは満足なのですが、フィルムは一週間くらいの使用で小さな穴が空いて気泡が入ってしまいました。アクセサリーの選択肢があまりないのが辛いところです。

レイ・アウト ASUS ZenFone5 A500KL なめらかタッチ光沢指紋防止フィルム RT-AZ5F/C1

レイ・アウト ASUS ZenFone5 A500KL なめらかタッチ光沢指紋防止フィルム RT-AZ5F/C1

Stack Overflow日本語ベータ版公開開始

Android開発者なら一度はお世話になったであろう、プログラマ向けQ&Aサイトの"Stack Overflow"の日本語ベータ版が公開されました。

スタック・オーバーフロー

本家は英語だったので日本人にとっては英語が得意でないと読むのが大変でしたが、日本語版公開によりプログラマの情報共有が捗りそうです。
私もこのサイトにはかなり助けられたので、これを機に参加してみようと思います。

!!! FAILED BINDER TRANSACTION !!!についてメモ

あるアプリのログファイル(バイナリデータ)を解析して文字列に変換、表示するツールを作っています。
Activityでバイナリを解析、文字列に変換した後、それを保持するログクラスを生成しています。

log[logNumber]

のようにログデータの数だけログクラスの配列を作り、それをFragmentPagerAdapterのFragmentにBundleで初期値として渡しているのですが、Fragment表示中にホームボタンを押したり、電源を切ったりすると、
!!! FAILED BINDER TRANSACTION !!!
がlogcatに表示されました。
大量のデータをBundleに保存しているため、メモリ不足になっているようです。
ログファイルのパスだけをFragmentに渡し、Activityでやっていた解析、文字列変換、ログデータクラスを生成をFragment内でおこなうようにすると表示されなくなりました。

MUJI to Sleep


MUJI to Sleep | 無印良品


無印良品のアプリにMUJI to Sleepというものがあるそうで、ダウンロードしてみました。
波の音や鳥のさえずりといった環境音が聞けるアプリです。
リラックスして寝たいときに使おうと思います。
他にも、集中してコーディングしたい時の作業用BGMにもいいんじゃないかと思っています。

Swiftris

Swiftを使ってテトリスをつくる方法を丁寧に解説したサイト「Swiftris」
この記事を読んで、Swiftテトリスを作る方法が学べる、Swiftrisというサイトを知りました。

Swiftris Tutorial: Build Your First iOS Game With Swift | Bloc
メールアドレスを登録すると、チュートリアルのURLが送られてきます(その後も色々と学習プログラムの勧誘が送られてくるので、気になる人は注意)。
私も登録してチュートリアルを少し進めてみました。Xcodeのインストールからステップバイステップで解説されていてとてもわかりやすいです。英語もオンライン教材らしく堅苦しくない表現なので、楽しくて読みやすいです。
受講者レベルとしては全くのプログラミング初心者ではなく、オブジェクト指向の言語を経験した人向けの教材だと感じました。
これでまずテトリスを作って、Swiftのビッグウェーブに乗りたいと思います。

HAXMでエミュレータ高速化

デバッグに使っていた実機が壊れてしまったので、しばらくエミュレータを使うことにしました。

Androidエミュレータといえば激重で有名なのですが、

Android* - Intel® Hardware Accelerated Execution Manager | Intel® Developer Zone

この通称HAXMを使えば高速化できることを思い出し、実践してみました。
といっても以下の記事を参考にさせていただき、設定しただけなのですが。

Intel HAXMを使ってMacのAndroidエミュレーターを加速させる方法 | Landing Gear


SDKマネージャーでダウンロードした後、手動でインストールする必要があるようです。
私はメモリ16GBのマシンを使っているので、エミュレータのメモリはちょっと多めの2GBにしてみました。また、ホストマシンのGPU使用もONにしました。

・・・で、HAXMを適用した結果、Nexus7のエミュレータが約5秒で起動するようになりました。動きもサクサクで、OpenGLの3Dアニメーションも問題なく動いています。
以前は起動に30秒以上かかり、ロックを解除するのも大変なほどカクカクしていたのですが、ストレスなくエミュレータデバッグできるようになりました。