Arduino用Bluetooth Low Energy(BLE)シールドを購入した

2012年12月31日月曜日

先日のblog記事 の中でも少し触れていた、Bluetooth Low Energy(BLE; これに対応したデバイスをBluetooth Smart Deviceと呼ぶみたい)のArduino用シールドが発売されていたので買ってみた。
どーん


Maker Faire出展で実感したハードの楽しさと大変さとADKの往く先と

2012年12月13日木曜日


こんにちは、@muo_jpです。本エントリはAndroid Advent Calendar 2012の参加エントリです。
最近仕事ではソーシャルな会社でC#(音楽記号でない)を書いてます。最近書いたMonoのバグフィックスpatchを本流へ取り込んでもらえて喜んだりしてました。

今回は、以下のような方に向けたお話です。
  • ソフトウェアの世界に居るけど出来ればハードもやりたい人(私だ)
  • オームの法則ってなんだったっけ?というぐらい電気系から遠ざかってる人(私だ)
  • 中学・高校であんまりまじめに物理やらなかった人(私だ)
  • 自分で書いたり作ったりしたものが動いて嬉しい人(私だ)
  • Cとかもう何年もまともに書いてないよ(私だ)
つまり俺得。

Androidアプリ "SMSプロキシ" 1.1bをリリースしました

2012年10月29日月曜日

ドーモ。読者=サン。@muo_jpです。

少し遅くなりましたがニンジャスレイヤー書籍発売記念として、Google Playにて公開している SMSプロキシ の新バージョン 1.1b をリリースしました。

このアプリは、複数回線を持っていてかつ音声回線をAndroid端末で利用している人向けのものです。複数端末を持ち歩いていても、データ通信用端末ばかりチェックして音声専用端末をほったらかすこともあるかと思います。そうすると…

(;^o^)久々に音声端末見てたら電源切れてら。充電しとくか

ポーン

 (;◠‿◠ )☛ [不在着信20件]

▂▅▇█▓▒░(’ω’)░▒▓█▇▅▂うわああああああ俺の宅配便カムバックうわあああああ

Released "SMS Proxy" source code under The MIT License

2012年10月28日日曜日

I've just released source code of my simple Android App; SMS Proxy on https://github.com/muojp/smsproxy under The MIT License.

About this app:
Forwards received SMS and/or incoming call number to other Tel. Number. Use with care not to create messaging loop(would result in awful high cost).
Any Issue-Reports and Pull-Requests are appreciated :)

第一回tab APIハッカソンに参加してきました

2012年8月26日日曜日

8/25に開催された、http://tab.do/ のAPIを利用したアプリ/サービスを開発するハッカソンに参加してきました。
tab API ハッカソンお申し込みフォーム で募集されていたものです。
午前10:30に会場集合(ハッカソンとしては早い)、午前中にアイディアソンらしいアイディア出しを行い、参加者のやることを決めて実際に取り掛かるのは午後というスタイルでした。
少々遅れて会場着(すみません)

職業プログラマがFizzBuzz書けない理由

2012年8月7日火曜日

-- 追記@2012-08-08 09:20JST --
これ読んで工エエェェ(´д`)ェェエエ工となり、書いた。
-- 追記ここまで@2012-08-08 09:20JST --
あるいは、「FizzBuzz書けない奴m9(^Д^)プギャー」のもにょもにょ感。

結論だけ、書く。
要らないから。要らないから。要らないから。要らないから。要らないから。要らないから。要らないから。要らないから。要らないから。要らないから。要らないから。要らないから。要らないから。要らないから。要らないから。そして知らないから。

さて、まずはこの問題解こうか。制限時間5分。
タイトル: Ants
問題文: 長さL cmの竿の上をn匹のアリが毎秒1cmのスピードで歩いています。アリが竿の端に到達すると竿の下に落ちていきます。また、竿の上は狭くてすれ違えないので、二匹のアリが出会うと、それぞれ反対を向いて戻っていきます。各アリについて、現在の竿の左端からの距離xiはわかりますが、どちらの方向を向いているのかはわかりません。すべてのアリが竿から落ちるまでにかかる最小の時間と最大の時間をそれぞれ求めなさい。
制約: 1≦L≦106 1≦n≦106 0≦xi≦L
出典: プログラミングコンテストチャレンジブック(p.23) / 元はPOJ No.1852

タイムズプラス契約してみたので感想とかトラブルとか

2012年8月4日土曜日

ここしばらく、以前よりは車使いたい頻度上がったかなぁと思いカーシェアリングサービスをいくつか調べていて、結果タイムズプラスを契約したという話。と、ついでにそのまま初回利用してみたので感想とか起こったトラブルとか。

レンタカーと比較したカーシェアリングのメリットは大体こんな感じ。

  • 短時間利用に向いてる(15分200円でガソリン代込みとか)
  • 基本的に入出庫24時間ok(レンタカー店が空いてない深夜早朝とかに使える)
  • 都内だと結構高密度にステーションがあるので、余程の繁忙期でない限り借りられる

Android Open Accessory Protocol 2.0(AOA2.0)について

2012年6月29日金曜日

かなり久々の翻訳です。
Android Open Accessory Protocol 2.0


PSVITAドライバをMac/VMware Fusion上のWin8 CP版で認識させる

2012年6月16日土曜日

今日は、TopGate社にて開催された「PSSuite SDK観察会」に参加してきました。

PlayStation Suite SDKのクローズドβが始まってからそろそろ半年、それなりに
ものがこなれてきたということもあり様々な機能に触れてみようという趣旨の
観察会です。

が、集まったのはMac使いばかり。PSSuite SDKは、現在のところWindows版しか
提供されていません。このため、皆VMやBootCamp環境の上にPSSuite SDKを
インストールし、実機にサンプルコードをデプロイして動作させるのが最初の
課題となりました。

そこで大いにハマったので記事にしてみます。


「第2回NFC勉強会」に参加&発表してきました

2012年6月10日日曜日

6月9日、3月に開催された第1回に続いて開催された「第2回NFC勉強会」に参加してきました。

前回の記事はこちら: 「第1回NFC勉強会」で発表してきました

第1回を振り返ってみると、FeliCaやその他NFC技術を用いたサービス及び技術的概要といった話がメインでした。その中で、電池を内蔵しない所謂パッシブ型のICタグ(私の周辺では微弱系と呼ぶ人が多いんですがこの呼称が正しいのかよく分かりません)が電磁誘導を用いてワイヤレスで電力を確保し回路を駆動する、という部分についてもっとよく知りたいという声が上がっていました。
今回は、この部分にフォーカスしたハンズオン形式の勉強会をクレスコ・アイディー様が主催して下さいました。
LT枠もあるとATNDに書かれていて、ふと開催前日にネタを思いついたので無理やり実装して乱入してきました。

#studygift - 注目されれば何してもいいんだっけ?って話

2012年5月18日金曜日

studygiftと坂口さんは確実に確信犯(いわゆる誤用の)ってやつだよ。studygift.netやtwitter、まとめblogあたり眺めて一通り「ハァァァ??」って釣られてから読むのお勧め。

あの人は、頭空っぽだけどたまたまGoogle+で日本一になっちゃったアホ女子大生、なんかじゃなくて自分自身をコンテンツにするってことを分かってやってる。って話が中心。そしてそのことの是非についての一考。
ある種の種明かしになっちゃうかもしれないけど、坂口さんとは昨年の8/30にIVS(Infinity Ventures Summit) Summer Workshopというイベント後の懇親会で少しだけ喋ったのでその話も交えつつ。逆に、当人をほんの少しだけ知ってる人間が書いたものなので公正な立場でのエントリではないかもしれません。「studygiftのステマじゃねーのこれ?」とか十分疑って読んで下さい。まあ、3分そこら話しただけで坂口さんのこと分かってるわけもないので偏見に満ちたものです。

まずカメラ、写真に対する姿勢の話。あの人は「写真好きなわけじゃないけど注目を集めるために自分で向いてると感じたからやってる」というようなことを言ってたし、その後のインタビューでも同じようなことを言ってた。
そりゃ、カメラ好きな人からするとなんだよそれって感じ。写真ナメてるくせに衆目集めるための釣りっぽいことしやがってふざけんな、ってなる。
だけど何かの関心を集めるうえで人が喜ぶものを分析して臨むってのはひとつのアプローチ。ゲームに興味ないけどゲームのプレイヤーが喜ぶものを作るにはどうすればいいのかを必死に分析して企画を立てたり開発をしたり、ってのはよくあるよね? 最近も
セガファンがセガに採用されるとは限らない ゲーム会社の就活とは
という記事で

昔からのセガを知っていて、「『サクラ大戦』や『ソニックシリーズ』の熱狂的なファンです」という学生や「ゲームセンターに今も通っています」という学生の方が、「マニュアル通りのことを答える学生よりもセガに入りたいという意欲を強く感じる」が、「採用につながるとは限らない」と断言する。
最も重視するのは「長期的に会社に貢献してくれる人材で、夢物語でなく、ビジネスとして生かせるアイデアを持っているか」だという。
また、営業や事務関係の職種は、かえってゲームをやったことのない人のほうが、素人の目線でゲームの内容を説明でき、向いていることが多いという。

こんな一節があった。対象が好きかどうかというのと、それを使って何らかの価値(この記事では就活の話なので会社の求める価値)につなげることが出来るかというのは全然別物。この意味で坂口さんは人の関心を集めるところにステータス全振りしてるような感じ。

成績の話は知らない。むしろ、別にいい成績を残したいけどお金が云々、ではなくて卒業出来さえすれば良いと考えてるのかもしれない。けど大学に何を求めるかも人それぞれ。

人格批判されるリスクまで認識した上でやってると考えられるのが、坂口さんの凄いとこ。ちょい考えれば「成績落ちたのが悪いじゃん」「金無駄遣いしてんじゃん」とか突っ込めるとこがいくらでも出てくるのも意図した作りだよね。twitter界隈でよくある炎上ってのは「自分に悪いとこなんて何もないよ!聖人だよ!」というようなキナ臭い人を見かけたらmixiとかfbとか漁って「なんだクソ野郎じゃねーか」と幻滅からのネガティブ落ちへ持っていくとこに最大の爆発力がある(多分)んだけど、予め明言しないまでも「自分のダメなとこってここだわー」と認識してるらしいものに対してそこまでの爆発力は無い。

studygiftってサービス自体、家入さんが絡んでる時点でクセあるのはわかってる。けど実際のところ坂口さんは可愛がられタイプ/面白がられタイプなので、個人でいろんな人に助けてもらいながら(場合によっては大学辞めたとしても)なんとかなっていくはず。でもstudygift自体がボリュームゾーンとして支援していこうとしてるのは坂口さんみたいな人じゃない。キャラがメチャメチャ立ってるわけじゃない人。勉強したい、けどどうすればいいのかよく分からない人。言ってみれば「フツーの学生」。
けど1つ目の事例がなんの変哲も無いものだったらサービスは話題にもならないから燃料として投下されてるのが"坂口綾優というコンテンツ"。典型的確信犯(誤用)型炎上マーケと呼んでいいような感じ。

studygiftの作りがトップページで坂口さん全力フィーチャーして専用サイトっぽく現状で見えるようにしてるのは、多分SEO方面で昔からあったランディングページの構造と全く同じ。

オーディエンスという面では、今回のメインターゲットとして直感的に見えるのはクラウドファンディング自体にある程度以上馴染んでて、CAMPFIREとかで募集されてるプロジェクトを見たり実際にお金を出したことのある人たち。多分1万人ぐらい。ある意味「またお前らか」層。40%がスルーして50%が嫌悪感抱いて9%が「そこまででもなぁ」と思って1%が「おもろいしお金だそう」とすればいいって感じじゃないのかな。あとはbuzzって同じぐらいの人数がお金出してくれて坂口さん以外についても多少お金集まれば滑り出しとしては上々(※もし出資者リストが公開されて9割内輪とかだったらかなり寒い話になるけど)。その後は"坂口綾優というコンテンツ"の実績をある程度元にして資金を引っ張るなりして"坂口綾優というコンテンツ"に依存しない体制に移行していけば有望スタートアップひとつ完成、というシナリオかな。
全然規模も中身も違うけど
Slashdot.jp: ソフトウェア業界でカリスマプログラマーをうまくフェードアウトさせることに成功した例として、ピーターノートンがあります。
シマンテックはまず、パッケージ写真からピーターノートンの写真をフェードアウト(以前のパケ写入り記事1998 [impress.co.jp](正面にでかく)、2000 [ascii24.com](サイズ縮小)、2001 [ascii24.com](正面から排除)、2001拡大 [ascii24.com](平積みでは見えない))、そして製品名も変え、ノートン臭の大幅な削減(当社比)に成功しました。
これ思い出した。

ともかく、現代的な「注目されれば何してもいいんだっけ?」に対するひとつの答えは相応の考えと覚悟があればある程度のこと(当然、法律や社会通念に反しないレベルで。だけど社会通念自体が多様化してる)はやってよくて、それを受け入れられる人が一定数インターネットを介してマッチング出来る時代になってるというものじゃないかな。
このスタイルでの"坂口綾優というコンテンツ"の賞味期限が極めて短いことは当人も周囲も分かってるはず。スキがあるからコンテンツにしやすい、けど同時に代替可能性が高いものでもある。特異性の薄い身体張ったネタは、同様に身体張れてちょっと味付けの違う人によって容易に代替される。

この意味だと業界内結局やってることはずっと変わらなくて、10年ぐらい前にあったサイト上の1ピクセルを1ドルで売りますってサイトと同じ。「なんだよそれ誰が見るんだよ意味ねーじゃん馬鹿じゃね?」って人がどれだけ居ようと関係ない。「おもろいやん」と思った人がお金を出して話題になってサイトの1000x1000px=100万ドルを売り切った彼の勝ち。納得してお金出してるんだから誰も損しない。オチは当然二番煎じサイトが雨後の筍の如く出てきて皆が投資対効果をある程度以上考えるようになって単価が一瞬で0に収束して価値無くなるって構造。

ソーシャルファンディング自体が持つ性質は「99%の人が興味ないかもしれないけど残り1%の人が興味を持ってくれるかもしれない領域について、そのマッチングと決済/アフターケアを行う仕組み」で、その日本における礎のひとつとして"坂口綾優というコンテンツ"を捉えると、よくやってるなぁと思う。「悪名は無名に勝る」を、覚悟持ってやってんだな、というのにも近い。


蛇足ながら、studygiftチームが焦ったかどうか分からないけど、ひょっとするとローンチ直前に出てきた近藤佑子さんが話題軸としては被るのでぐぬぬってしたかもしれない。


だからstudygift作ってる彼らが今すぐすべきことは貧弱なインフラとクソコードを全部捨ててGAEあたりでシステム組み直すこと(自分たちで出来ないなら出来る人に声かける)。捨てる勇気。と思ったらサイト復活したみたい。


書きたいことを超雑に書いてみた。あんまオチある話じゃないので多分読後感が「ふーん、で?」となったであろうことを謝っときます。


こんだけ書いてサイト消し飛んで皆逃げたら私もいい恥さらしやな(ノ∀`)タハー

「第1回Android開発者のための初めてのiPhoneアプリハンズオン勉強会」に参加してきました

2012年5月2日水曜日

@cat_kaotaro さん発案、Android女子部主催の「第1回Android開発者のための初めてのiPhoneアプリハンズオン勉強会」に参加してきました。正確には運営に参加してきました。

第1回とある通り粗削りな部分も多かったのですが、運営参加者としても受講者としても非常に勉強になるものでした。
ただ、準備も当日もtwitterでのやり取りが大半だったため、どうしても時間が経つと情報が散逸してしまいます。これは惜しく、次回以降のためにも情報を一通りまとめておいたほうが良いかと考え、記憶が薄れる前に軽く一通りのまとめを書いてみます。
なお、運営参加といっても私は当日運営がメインで、準備については@cat_kaotaroさんと@corosuke_kさんにかなりの部分お願いしてしまいました。以下記載の中で私がやったのはごく一部です。

Q. どういうイベントだったの?
→ iOS開発を全く(またはほとんど)やったことのないAndroid開発者(主に女性)向けのハンズオン形式の勉強会です。

Q. なんで開催したの?
当日にイントロとして喋った資料をアップしてあるので、参照ください。

Q. レベル感は? また、レベル設定の理由は?
→ 「女子部で意見を聞いてみたところ『Androidアプリは作ってるけどiOSアプリは手も足も出したことがないので、本当に入門からやりたい』ということだった」
というわけで、完全にiOS初心者向けに。
将来的には、"Androidしかできない開発者に、このAPIはAndroidでいうところの○○と同じですー" というような方面で、両方のプラットフォームへの知識などを深められるような勉強会にしたいと考えています。が、まず初回はObjective-C自体など知るべきことが多い(JavaやCを知らずにAndroid開発いきなりやるのは辛いですよね)ため、思いっきり初心者向けにしました。

Q. どうやって参加者募集したの?
→ 以下のURLで参加者を募り、twitter(とAndroid女子部ML?)で募集しました。

第1回Android開発者のための初めてのiPhoneアプリハンズオン勉強会[女性枠] #andiphone #andronjo
第1回Android開発者のための初めてのiPhoneアプリハンズオン勉強会[男性枠] #andiphone

Q. どうして有料イベント(300円/人)にしたの?
→ 講師/チューターの方に還元出来るような仕組みを含め様々なトライアルをしてみて、不評だったら次回以降柔軟に変えよう、と考えたためです。参加者募集要項のハードルが少々高めなのも、このためです。
(今回はGMOインターネット様のご厚意で会場を提供頂きましたが、本来なら会場費などもかかるわけで…)

Q. 資料ある?
→ ハンズオン自体の資料はありませんが、ハンズオン自体の流れをほぼなぞる形で取っていったメモがあります。
iOS勉強会メモ
また当日のtwitterでのハッシュタグを拾っただけですが、第1回Android開発者のための初めてのiPhoneアプリハンズオン勉強会 というtogetterもあるので、適宜参照下さい。参加者の反応を見ていると「Objective-CのこれはJavaのこれっぽい」という感じで、既に知っているエリアにあてはめて理解しようとしているのが窺えます。狙い通りですね。逆に、メモリ管理などJavaだとよきに計らってくれている部分については理解に時間がかかっている、というのも分かります。

Q. 次回以降の予定は?
→ 次回もやりましょう、ということにはなっているのですがまだ具体的には進んでいません。@muo_jp個人的には、もう1回ぐらいiOS基本をやってから より具体的なケースをあげてAndroid開発者向けのiOS開発、という色を濃くしていければ良いのではないかな、と考えています。

課題

  • やっぱり初回だとXcodeのインストール自体が問題になるケースがちらほら(Snow Leopard環境で、OS自体のアップデートを当てないとうまくインストール出来ない場合など)あった。けれど次回以降は大丈夫なのであまり気にしないでok
  • Objective-C自体について、メモリ管理はやはり鬼門。なんでretain/releaseしなければいけないのかというあたりについては、Javaだとどのように処理されているから書かなくて済んでいるけれどARC以前のObjective-Cでは必要、という話をもう少し時間を取って説明したほうがよかったかも。
  • ハンズオンの資料やソースコードについては、事前にダウンロード出来るようにしておくのが良い。ちなみに@shin1ogawaさんのGoogle App Engineハンズオンの資料がとても良い出来ということなので要チェック。
  • ZusaarやATNDの開催時刻には、集合時刻を書いておいたほうが参加者が混乱しにくい。今回の場合、10:00集合の10:30開始だったけれどZusaar登録を10:30にしていたので集合10:30と認識されてた方が数人。
  • 今回ぐらいの人数(計30人少々)なら、連絡のために参加者用メーリングリストを作成したほうがよかった。特に男性枠と女性枠を別にしてZusaarで募集していたため、全員宛の連絡手段が厄介だった。
  • 今回事前打ち合わせに使ったのはco-meeting。これ自体は良かった。けれど、Zusaarから参加者宛にメッセージを送ったら、その内容をco-meetingに貼りつけたほうがいい。Zusaarの仕様上、参加者宛てに送信したメッセージのログが残っていかないため、結果的に他の管理者には何やったかわからない。

Windows Developer Days 2日目にも参加してきた

2012年4月25日水曜日

昨日の Windows Developer Days 1日目に参加してきた の続きです。

= キーノート
既にいろんな記事が公開されている気がしますが、VOCALOID全力推しのプレゼンテーションでした。
Windows 8とその周辺のAPIを使うとどのようなことが出来るのか、どんな未来を作っていけるのか、というものでした。

オープニングムービーはこれ。かなり力入ってます。
映像はMiku Miku Danceで作ってるとのこと。Windows 8(というかMetroスタイルアプリ)の利用モデルとして、よく出来ていました。多分プレス記事が公開されるので詳細は端折りますが、Metroスタイルが当たり前になった時にどんなWindowsの世界が展開されるのか、というイメージを参加者と主催者が共有出来る、良いデモだったと思います。

= ランチ
今日は、昨日よりもしっかりと食べられました。茶そばうまうま。

クラウディアさんKitKatが大量展開されてました。

キーノートのムービーにあった、TULLY'Sの看板。
昨日見た時は「なんだろこれ?」という感じだったのですが
納得でした。いい未来の像のひとつ。

では引き続き午後のセッション。

= Windows 8とAzureで更に広がるVOCALOIDの世界
キーノートでがっつりとVOCALOIDの利用モデルを見ることが出来たのでこのセッションは回避しようかと思いましたが、

そう聞いたら行くしかないわー。行くしかないわー。
私はセッション会場前へ早めに着いたのですが、その後入場待ち列がどんどん伸びていき立ち見必至な状態に。
講演者はヤマハ株式会社の剣持氏。「VOCALOID開発元締め」と自己紹介されていました。ライブ作曲を交えつつVOCALOIDの技術サイドの話など、幅広く面白い話を頂きました。
気になったポイントをいくつかメモ。
  • VOCALOID街頭調査: 2011年4月 14歳から40代の男女: 10代68% 20代61% 30代42% 40代35%
  • プラグイン、ジョブスクリプトはLua言語で書くことが出来る
  • 楽器が変わったり増えたりすると、生まれる音楽も変わる。ベートーベンのピアノソナタに途中で新たなタイプが増えたのは、彼が新しいピアノを使うようになったから。同じようなことがVOCALOIDによって引き起こされていくのではないか
  • VOCALOIDのの3つの未来。better quality, easier-to-use, easier-to-join
    • 品質にはまだまだ満足してない
    • ソフトの使いやすさを改善していきたい
    • 取っつきにくそう、と思われずにもっと色んな人が入ってきやすくしていきたい

セッション後半は、Microsoft MVP for Windows Azureの亀渕氏による VOCALOID + Windows Azureのお話。
"VOCALOID3 as a Service on Windows Azure"のコンセプトはsimple, scalable, portableとされ、きれいにAzure上でのスケーラブルな設計をされていました。

= ミスドブレイク
安定のポン・デ・リングと、なんだっけ。
おいしかった。

後でまた来た時には箱詰めされてた。
会期中に配り終わらなかった分はお土産パックに
なる、とかだったのかな。

糖分大量補給済みだったので避けましたが、
アイスもありました。

「何が始まろうというんです?」な状態。
右側のMacBook Pro 17インチがひときわ異彩を放っています。

= BigDataの活用で忘れてはいけないポイント

  • (なるべく生の)データをちゃんと蓄積していくこと
  • ビジュアライズ方法を練ること
だったのかな。資料公開されたらもう少し追いかけたいです。


= ローミング - PCの境界を超えた作業状態の維持
従来から.NET Frameworkベースのアプリケーションではローミングデータとローカルデータの使い分けが出来るようになっていたのですが、これがクラウド対応するよーという話なんだろうなと思いつつセッション潜入。
ライブコーディングが長めだったので集中力切れていしまいましたが
ローミング対象に向いたデータ: アプリ設定で使用する小さなキーと値のペア。読みかけの本のページのようなユーザーの状況。独自フォーマットの小さな設定ファイル。また、常時ネットアクセス出来るとは限らないことにも注意を払う必要がある
というお話でした。

= Direct XとGPUチューニング
途中入場でしたが、

  • パフォーマンスについては、レンダリングプロファイルを取ってチューニングすべき
  • 60fps出せなければ58fpsとか中途半端になるのではなく、ガクッと30fpsまで落ちる
  • 60fpsと30fpsを行き来するとかなりユーザにとってストレスになるのでなるべく60fpsを守るべき
  • そして、できるだけ消費電力を抑える必要がある
  • レンダリングコスト削減について2点
    • シェーダー演算の複雑さを最小限に抑える
    • 冗長な処理を最小限に
  • ラスタライズ削減で2点
    • ピクセルバウンドが原因の場合はターゲットをスケーリング
    • 深度値の複雑性、またはオーバードローを最小限に抑える
  • ここでは挙げていないけど、z-prepassレンダリングも有効
  • 不要な分については処理ビット数を減らす。Minimum Precision機能。HLSLにmin16float/min12int/min16intというのが追加されていて、これらを使って最小精度を指定出来る。例えば32bit処理が必要ないところを16bit処理出来れば、同じ時間で2倍のデータを処理出来る(注:GPUはこういう処理に向いてますね)
  • タイルベースレンダリング。一部のグラフィックアーキテクチャではタイルキャッシュが使用される。なるべくメモリへアクセスしないように、というアプローチ
  • タイルベースレンダリングの方針
    • シーン半ばでのフラッシュを避ける
    • レンジターゲット間のスワップを避ける
    • レンジターゲットの位置部分だけを更新する場合はシザーを使用する
    • 可能な場合はDISCARDおよびNO_OVERWRITEを使用する
ということで、実践的なテクニックが多く紹介されていました。セッション資料が公開されたらしっかり読みたい。

= 二日間のセッション終了(^o^)
一足早く、これで終了。

二日間の様々なセッションを聞いている中で、こんなことに気付きました。
「最近ほんの少しだけどWindows Phone開発に触れ始めたことで、Metroスタイルアプリの開発に関しても想像力の働くところがかなりある」というものです。
ここで、「ある技術について学んだことが他のエリアにも転用出来る」というのは私が凄いのではなく、アーキテクチャが優れているということに他なりません。
そして、
  • 幅広いデバイスでのOS動作
  • x86に加えARMでの動作も前提としたアプリケーション開発という新たな常識の導入
  • これを容易にするマネージドコードとその高パフォーマンスなランタイム(当然、更にパフォーマンスを確保したければネイティブコードを利用するという選択肢も保持されている)
  • 統一されたデータ処理の枠組み(LINQ)を含む強力かつ優れたC#などの言語
  • 翻ってサーバ側では柔軟な構成と高パフォーマンスを実現するWindows Azure
  • そして最高に洗練された開発環境であるVisual Studio

技術的な要素は揃いすぎなぐらい揃っています。あとはこの舞台で何を作るか。その多くは我々開発者に委ねられている状況だということがはっきりと分かりました。
こうなるとワクワクしてしょうがないので、まずはどんどんWindows Phone用のアプリも開発していきます :)

Windows Developer Days 1日目に参加してきた

2012年4月24日火曜日

昨日の Bar Windows PhoneでLTしてきたよ からの流れで、Windows Developer Daysの1日目に参加してきました。

Windows 8自体の動向、Windows Phoneシリーズの動向が目玉ですが、引き続きWindows Azureや最近のWeb動向なども注目トピックです。

会場は、『ザ・プリンス パークタワー東京』でした。こんな感じの外観。


ちなみに会場は入って地下2階。


廊下のカラーはブルー基調だった。

で、ここから進んだところに「no photo no recording」の掲示が。残念ながらプレス関係者以外は撮影禁止のようです。
ということで、この先は休憩時間以外の写真無しです。

開発者向けイベントとしては久々にMac率が結構低く、スーツ率が高めだったのが印象的でした。1/3ぐらいは招待枠で仕事として来られてる方々かなぁとか思いつつ30分少々遅れて始まったキーノートから。

= キーノート
メインプレゼンターは Steven Sinofsky 氏でした。まずはWindows 8について、その新機能を紹介。ところどころのデモは日本マイクロソフトの藤本氏が担当されました。
正直なところ、既にWindows 8 Consumer Preview(以下Win8CP)を利用している人にとっては目新しいところ少なかった。画面タッチ対応端末特有の使い方については「なるほど」と思う部分がいくつかありましたが、ざっくりまとめると

  • Windows 8のMetro用アプリ間の結合は、従来のWindowsアプリよりもだいぶ疎になる。メニューの呼び出し方など、AndroidのIntentやContentProviderに近い形での実装となる
  • Windows 8では、従来のアプリケーション(例えばOffice 2010)でもWindows 7と比較して高速に動作する。これはOS自体のチューニングによるもの。
    →これは私自身Win8CPを使っていて感じるところで、Visual Studioなどの動きも結構キビキビになっています
  • WinRTがシステムサービスのコアAPI群。上のレイヤには選択肢がある。XAML使って開発をC#/VB.NETかC/C++で行うスタイルかHTML/CSS+JS。デスクトップアプリについては進化無し
  • 基本的に、Metro向けのアプリはx86とARMの両方で動作することを前提とする
  • ビジネスアプリについても、Metro化でメリットを見いだせるものもある。Microsoft内製のものとしては、Microsoft DynamicsをMetro化している
  • 様々なデバイス向けに既に最適化が進んでいる(例えばシャープのBIG PADでも快適に使えるようになっている)
  • 6月の第1週に、Consumer Preview版の次版となるRelease Preview版が公開される予定
という感じでした。デモの多くはタッチ対応PC上で行われていましたが、一方で「現在の10億人のPCユーザにとって、多分このUIは向こう5年間要らない。やっぱ主戦場はタブレットだなぁ」なんて考えながら聞いてました。

あと気になったところは、Windows環境をUSBメモリに入れて持ち歩く「Windows to go」の出来が結構良くて気持ちよく使えそうな感がしたあたりです。多分おおくの企業では使わせてくれないのだろうけど。。



= ランチタイム

メインのランチ会場と、各スポンサーセッションでのランチを選べる形でした。が、2,000人の登録者というのは凄いものでランチセッションは満員、ランチ会場もかなりの列が出来ていました。軽く食べられそうなものを食べて、あとは
おねーさんの配布してたレッドブルをgokgok。

このタイミングでいくつかの展示も見に行きました。


NVIDIA

Azure。ということは…

3次元クラウディアさん。


こちらはクラウディアさんらの3DモデルがMMD上で。

さらっと見て、ランチ会場に戻りもう1本レッドブル頂いてgokgok。

レッドブルには専用ゴミ箱が用意されてました。

こんな具合で休憩時間終了、午後のセッションへ。

= 「ユーザーに最高のエクスペリエンスを提供するVisual Studio 11のアプリ開発」
高橋忍さんの講演です。よくblog読んでお世話になっています。
が、内容は割とVisual Studioにあまり馴染みの無い方向けだった。しまったセッション選びミスった。日々使ってVisual Studioサイコー!!と言ってる私には不要でした。

会場パンフに、ランチ会場だったエリアが午後のセッション中は休憩スペース兼お菓子類のデプロイ先兼電源スペースになるという記述を見つけたので、中座して休憩スペースへ。


= 休憩スペース
ミスドおぉぉぉ(^o^) 無料配布でございました

同じくフリードリンクをゲットしてブレイク。
ランチ直後だけどブレイク。

= 「AndroidアプリからMetroスタイルアプリへ
省略します。

= 「Hadoop on Windows "一見奇妙なその取組と設計・実装・活用法"
Windows HPCを使わずにHadoopでやることの意味、的なお話。もうちょい時間が経ってMSDNに情報まとまるの期待です。

= 「.NETによるWebSocketsサーバー開発」
クライアントではなく、あえてサーバ側を.NETで書くという話。C#大好きの私にとってはwktkのネタでした。
軽くまとめ

  • WebSockets自体、RFC段階は終わってるよ。セキュリティの問題が解消してFirefoxとかでも再度enabledになってる
  • データとしてはUTF-8かバイナリを扱える。SJISとかダメなので注意
  • アーキテクチャを見てみると、IIS無しでもWebSocketsのライブラリ使えそうな感じがする。Azureへそのまま持っていけそうな気がする。でも実はダメです。http.sysに依存していて、その中の実装がWin8依存。
  • 一方、http.sysからはCOMのインターフェイスもexposeされているので、実はC++でも書けます
  • SignalRというプロジェクトで、よさげなライブラリ公開されてます
ライブラリを数パターン紹介頂いたのですが、どれも割とよく作りこまれている印象を受けました。「ただ実装しただけ、使い方はなんか考えてよ」というブン投げスタイルをよく見かけるのですが、そうではない、ちゃんと利用モデルを考えて練っているように見えるところに好感がもてました。

あと、私はFiddlerというデバッグプロキシを知らなかったのですが、WebSocketsにも対応しているなかなか凄いやつのようです。機会あれば使ってみよう。

Microsoftの、特に.NET周辺については Codeplex でのコミュニティベースのライブラリ開発というのが結構よく機能しているように思えます。


= 「Kinectを中心としたナチュラルユーザーインターフェイスに関するセッション」
一日目の最後。講演者は日本マイクロソフト株式会社 インタラクティブエンターテインメントビジネス デベロッパーネットワークグループ アドバンスドテクノロジーグループ ソフトウェアデベロップメントエンジニア 千葉 慎二氏です。長いw
Kinectについての概要を割と包括的に話されていました。特に気になったのはXBOX用とWindows用で微妙にデバイスが違い、商用に利用出来るのはWindows用のみ、というところでした(ちなみに価格も、XBOX用は14,800円程度、Windows用は24,800円程度、と異なります)。

ナチュラルユーザーインターフェイスを作り上げる上で重要なこととして
「人が入力のための特別な操作をおぼえるのではなく、人が直感的に動いた結果が想定通りの出力となるようコンピューター側で理解する」
ことを挙げられていたのが印象的でした。このために
「人が自然に行うであろう動作を判断する。目的を明確化する。」
ことが必要だとも。結論としては、人の行動をよく観察し、分析し、それをモデル化し、デザインし、ひたすらテストを行なってチューニングすることで快適に使えるインターフェイスを作り上げる、ということでした。このあたりは、もっと応用例が増えてくれば更に洗練したアプローチが生まれてくるのだと思います。

ということで、充実した一日でした。


= …からの、レセプションパーティー
遅れて参加したので食べ物は既に皆無、絶無でした。
人いっぱーい。

たまにお目にかかる方々がいらっしゃったのでビールを頂きワッキャと喋っているとプレゼント抽選会開始。
こんな感じ。

賞品は

  • シャープのプラズマクラスターイオン発生機
  • NikonのCOOLPIX(コンデジ)
  • Roomba
  • XBOX 360 + Kinect諸々セット
  • Kinect for Windows
という熱い品々に加え、

Lumia 800が5名に!

という、開発者向けイベントらしいものでした。


運営された皆様、お疲れ様でした! 明日もよろしくお願いします。

-- 追記: 2日目はこんな感じでした。 Windows Developer Days 2日目にも参加してきた

Bar Windows PhoneでLTしてきたよ

毎週月曜、Androidクラスタの方にはお馴染み渋谷某所のBar Android。

先週久々にお邪魔したところ、@kabayan さんから「来週はWDDの前夜祭ってことで、一日限りBar Windows Phoneってのをやるんだけど来る?」と声をかけて頂きました。

ちょうどWindows Phone向けのアプリ開発を始めようとしていた時期で丁度良いやと思い行くことに。ついでにLT枠もあるっぽいということをチラッと聞いていたのでその後zusaarを見て @tezawaly さんへメンション飛ばしてみたところokとのこと。

で、水曜にMicrosoft主催、NECラーニング開催のWindows Phone 開発トレーニング無料キャンペーン!さらに App Hub Token付き! (2012年5月15日開催分まで) (App Hubの1年間登録チケット9,800円相当がもらえるから、とか言っちゃいけない)に行ってきました。

その時に作ろうと思ったのがtwitterのエゴサーチツール。Androidだとフリーダムな作り方が出来るけどWindows Phoneだとどうなるんだろうと調べ/考えてみたところ、結構勝手が違う。

ということで、実装しながらぶつかったポイントなどをまとめたLTをやってきました。
資料はこちらです。


なんか秋葉原某所方面からいらした感のするNokiaクラスタの方々とかガチでWindows Phoneなクラスタの方(含VBマスター)やらと、恐ろしくガチな感のする方々の中で単純なAndroid開発者向けのtipsっぽいの喋るというのはアレな感でしたがとりあえず気にせず喋ってみたところ、やっぱりアレな感じでした^^;

予想よりも喋るボリュームが多く、というかお酒少々飲んでいた分か時間感覚が微妙で最後の1枚喋れず…まあどのみち全体に大したこと書いてないのでいいんですが。

普段触れているAndroidとは別の思想で組まれた環境に触るというのは、設計やアーキテクチャについて考える良い機会になると思っていますし、やってみると結構面白かったので、これからもWindows Phone方面の開発もやっていきます。皆様ありがとうございました。

最後に撮った写真を少々。

入り口、小雨がぱらついていたのでぬれちゃってました。


2Fへ着いたところ。人多すぎでどうしようと思った。

Windows Phoneなカクテルを完全スルーしてグレンリベット(12年)をいただきつつ。

@m_moonly さんと @vvakame が電脳メガネ(MOVERIO)でキャッキャしてるところ

電源入れて真剣なわかめw

LT後のじゃんけん大会でbluetoothキーボード頂きましたヒャッハー
PSVitaで使えたりしないかな。

なんとクラウディアさんのKitKatも。


TechLION vol.6 まつもとゆきひろ氏トークライブ聞いてきたよ

2012年4月12日木曜日

昨日の昼、ふとtwitterを見ると
という面白そうなツイートがあった。matzゲストかー、ゲストかー、
ということでZusaarの事前登録をした。事前決済のイベントって初めてでpaypalごにょごにょと。

目当てはもちろんまつもとゆきひろ氏のトークライブ。生matz氏は2008年8月のLightweight Language future、2009年10月21日のJapan Linux Symposium以来の3回目。毎回トークがマジで上手いので凄く楽しみ。

途中で@_erisan_さんと合流して会場についたのは開始10分前ぐらい。
会場の雰囲気はこんな感じ。
開始直前、だいぶ賑わってきてる。
後から気づいたけど、この写真の中央あたりで本持って歩いてる人matzや…。

まつもとさんトークライブのお題は「10年先も勝負できるプログラマーとは

@_erisan_さんの知り合いのUSP研究所/会の方々がいらっしゃるテーブルにお邪魔し…
たところ、めっちゃステージの目の前。すげぇ。

twitterのタイムラインを眺めると、ぽつぽつと私も知ってる方いらっしゃるらしかったので後で挨拶しようと思いつつトークライブ開始。

まつもとさんめっちゃ目の前でびびる。

以下はtsudaってたのを抜粋してお届けします。
「最近肩書き増えましたねー」
matz「Groovenautsのチーフアーキテクトになりました。FSF Award 2011もらいました。」 matz「PerlのLarry WallはFSF AwardもらったけどPHPの人はもらってない」(会場爆笑) 
matz「賞とかあんまり感動しないと思ってたけどStallmanからもらったらウルウルしちゃった」
matz「松江市名誉市民第一号は小泉八雲。私と一緒に取った人は人間国宝の人」
「そのうちまつもとさんも人間国宝になるんじゃね」
matz「まあStallmanはRuby使ってないんですけど。Lisperだから」
matz「StallmanとLispについて語ったりしてきた」
matz「10年先ってのはIT業界にとって永遠の未来みたいなもんに思える。まずは10年前からの変化を考えてみる」
matz「Rubyだと、10年前はRails以前。誰もビジネスにRubyが使えるとか思ってなかった。Javaと生産性論争とかしてたのが2006年ぐらい。Railsの作者はすげぇ議論好きで炎上大好きw」
matz「2002年、Rubyは日本を代表するOSSではあった」
「LLイベントの2回目とかだと、アンケートで"Rubyを仕事で使えてる"と答えた人は凄く少なかった」
「そもそもレンタルサーバにRubyがプリインストールされてなかった」
matz「自分の周りはあんまり変わってない。以前からほとんどの時間をRubyに使ってた。講演多くなり始めたのは2001年あたりからだからあんまり変わってない。メールあったしWebあったしチャットあったし。」
matz「だから、この先の10年の変化も意外と大したことないかも。違うんだろうけど劇的には違わない(未来は連続的にやってくる)と仮定する」
matz「アシモフのファウンデーション・シリーズの"歴史心理学"って架空の学問(数学的理論で未来を予測するもの)をヒントに考えてみる。…。やっぱ無理。」
matz「人間は数式化できないし歴史に個人の影響は不可避だから。けど、歴史じゃなくて技術動向ならある程度予測出来るかも。前提はムーアの法則」
RT @l_b__: 歴史心理学ではなく、心理歴史学(Psychohistory)だと突っ込んでみる。


ちなみに、プレゼンスライドの下をちょいちょい動いてるウサギはプレゼンタイマーらしい。
matz「エクストリーム未来予測してみる。まず価格。メインストリームPC価格はあんまり変わらないけど極小デバイスにどんどん入れられるようになってく(家電のフリしたコンピュータが増える)」
matz「家電にRubyはもうちょい頑張ったら…」
matz「次に高性能化。今のメインストリームPCは20年ぐらい前のスパコンと同じぐらい。10年後は1024コアとか買えちゃうんじゃね?スパコンの技術が形を変えて降りてくる感じ」 matz「"京"って8万CPUぐらい載ってる。10年後コンシューマに1024コアとかそんな不自然じゃない」
matz「次は大容量化。ひょっとすると次世代メモリだと今のDRAM同等で永続化可能ってことになるかも。主記憶だけで320GBとか。数段階のキャッシュ構造が主記憶だけで済むかも」
matz「そうなるとソフトウェアアーキテクチャも変わる。次は広帯域化。これによってデータ処理の場所は幾度と無く変わってきた。まだこの振り子は続きそう。」
matz「先の動向まとめると1.PCのマルチコア化。OSはいいけど言語はまだ課題ある。7万コアとか言われるとまだうまく抽象化してプログラマに提供出来てる言語はない。2."組み込みの非組み込み化"。3.クラウド化、管理ノード増えるに従って抽象化レイヤ出来るはず」
matz「例えば電力はもはや抽象化されたパワー。計算リソースもそうなる。そうなると"向こうとこちらの使い分け"という課題が残る。」
「そして"データの入り口"という課題。データは自動的に生まれるものではなくてどこかにあるものを取り込んでくることになる。どう集めてどう加工して入れるか。ここ数年の主戦場はここかな」
matz「10年先でも重要なことを押さえる。"数学"。数千年前からやってるもんだからあと10年でどうかなるものじゃない。僕はホントに数学ダメ。得意科目国語と英語。」「言語得意なんだ!」(笑)
matz「だいじなもの続き。(コンピュータ)サイエンス。何よりもサイエンス的な考え方。事実に基づいて推論を行なって検証するというスタイル。これをその時その時のトレンドに合わせていくことで地に足のついたエンジニアになれるのでは。そして新しいものにチャレンジ」
(このあたり、自社の考え方と同じだなぁと思いながら聞いてた)
matz「年をとると新しいことしたくなくなる。"大人げない大人になろう"」
「中学生コミッタに負けないとか?」(会場笑)
matz「柔軟な精神大事。社会生活には分別あったほうがいいけどプログラミングに関しては大人げなく。そしてコミュニケーション能力大事。言語を使う人はどう考えるだろう、とか考えながらメール書いたりとコミュニケーションにかなり時間を使ってる。」
matz「そして"名声w" というか個人の持っている評価というもの。僕はOSS/FSSの人なので名誉経済で生きてる。この世界だと勤めてる企業とかでは通用しない。何を作った人だからプログラミング力ありそう、と考えてもらえる。これが色々といいことにつながる。」 
matz「例えば自分の考えたこと、感じたことをblogやtwitterに書く。自分の書いたコードを(権利的問題無い限り)公開する。こういうことを10年、20年と続けるということ。Rubyは20年目、その前4年ぐらいEmacs Lispのプログラムとか出してた」
matz「現在の私は、私が天才プログラマだから、というわけじゃなくて何かを作るとこまでやったという継続によって成ってる。これによって普通じゃない人になれる。」
matz「小学校1年生の時に担任の先生から"なんで他の人と同じことが出来ないの?"って怒られたw」
matz「今から10年何かを続けることで、10年先も通用する人になれる」

このへんで本エントリのまえがきに書いた、前回生matzを見た2009年のJapan Linux Symposiumで Linus Torvaldsが
"毎日10時間10年続けたらなんらかの人になれるよ"って話してたのを思い出した。やっぱ同じなのかなぁとか。

matz「そして"楽しさ"。プログラミング楽しいとずっと思ってて楽しくないと思ったことはない。このポイントは私の場合"万能感"。プログラミングって"やれば出来る"が結構通用する。在りし日の万能感を取り戻せる感じ」
matz「このへんが"世界変革の源泉"。多分この先の世界を変えるのはIT。プログラム書かないと世界は変わらない。"Change the World! Happy Hacking!"」

その後少々時間があったようで質疑応答少々。tsudaってると質問考える余裕ないのが悔しいとこだなぁと思いつつメモ。

matz「Rubyの場合、いいとは言われるけど使われない状態が10年ぐらい続いた。愛されるプロダクトを作って継続することが、Rubyについては成功の秘訣だったかな」
質問「世界の皆が使えよ!と思って作ってた?自分のために作ってた?」matz「僕は自分のためだけに作ってた。完全にselfish」

最高に面白かった。まつもとさんのトークは技術者として元気出ますね。

トークライブ後にキャッキャと@fukuyukiさんにまつもとさんとのツーショット撮ってもらっちゃった、ミーハーな私でした。

そしてblog書いてて全然後のセッション聞いてませんごめんなさい(∀`*ゞ;)テヘッ

Evernote APIを使ったAndroidアプリを作る(1)

2012年4月7日土曜日

超長期間積みタスクのうちのひとつ、Evernoteを使ったお金メモアプリを作ろうというもの。

アイディアとしては「日々使ったお金をもとに家計簿を付けていくってのは続けていくのが結構しんどいけど、単純なルールでメモを取り続けること自体はそこまで大変じゃないのでは?」というところからスタートして「じゃあメモを書く先はEvernoteにして最低限の機能を用意し、携帯からでもPCからでも簡単に書ければいいよな」と辿り着いて自分の使ったお金のメモをEvernoteに取り始めたのが去年の4月4日。実にまる一年経ってる。
最初の読みは当たっててEvernoteにお金メモをつけていく事自体は今も続いてる。続けて一周年記念にそろそろAndroidから簡単にお金メモをいじれる(まずは投入出来る)アプリを作ろうという次第。


これ、そもそもEvernoteのAPIキーを取得したのは2010/09/19で実に1年半も何ら形にしてなかったとか泣けてくる。

まずは最低限の機能を持つメモ投入アプリを作る中でEvernote APIのクセに慣れていこうと思い作業開始。
パッケージ名はjp.muo.moneynoteにしつつ調べてみると名前被ってそうなのでアプリ名は後からもうちょい考えることにする。

使うのはEvernote Cloud API。
http://dev.evernote.com/documentation/cloud/ このへんから入手する。元々はWebサービスAPIとアプリAPIという区分がされていたのだけど、どうもそれらは統合されて 一方でプラットフォームへのライトな統合を行う(AndroidだとIntentベースでのEvernoteアプリ連携をする)Local APIというのも用意されてる。Cloud APIについて、執筆時点での最新版は1.21。

このSDK一式にはAndroid用のバインディングが含まれているので、クラスツリーを丸ごと新規作成したプロジェクトに投入。いきなりエラー出る。log4jが必要なので http://www.slf4j.org/index.html から入手し、今回の場合slf4j-log4j12-1.6.4.jarとslf4j-api-1.6.4.jarを参照に追加した。
thriftも足りないと言われるので http://thrift.apache.org/download/ ここから入手。ソースしか入ってないっぽいので thrift-0.8.0/lib/java ディレクトリにて
$ ant
でビルド。build/ 以下にビルド結果が出力されるけど、この中の lib/ ディレクトリにlog4jとか含まれてるな。こっち使ったほうがいいかも(今回は既にインポートしたものを使った)。

まだエラー出る。Android用ライブラリは参照設定したけどJava用のEvernoteバインディング自体を参照してないからっぽい。evernote-api-1.21内の java/lib/ 以下を見ると色々ある。そもそもlibthrift.jarとかlog4j-1.2.14.jarとかも含まれてる。依存関係的にここのライブラリ使うのがいいかも、と思いつつ先にインポートしたのをゴリ押ししたところ、案の定thrift周りで存在しないメソッドがあると怒られる。少々インポートするライブラリを整理。
  • evernote-api-1.21.jar
  • libthrift.jar
  • log4j-1.2.14.jar
  • slf4j-android-1.5.8.jar
のみでOK。
次に、ざっくりとサンプルを読む。evernote-api-1.21/android/sample/HelloEvernote/src/com/evernote/android/sample/HelloEvernote.java は、Cloud APIではなくLocal API(端末にインストール済みのEvernoteアプリをIntentで叩いて各種機能を実現するもの)の模様。これではなくEDAMベースでのデータ交換を行う evernote-api-1.21/android/sample/HelloEDAM/src/com/evernote/android/sample/HelloEDAM.java を読む。
sandbox環境に接続してメモ付きで画像をノートとして保存するための機能が一通り書かれてる。ログイン系は基本的にそのまま使うとして、今回実装したい機能は

  • ノートブックの一覧 を取得する
  • ノートブック一覧をユーザに対して表示し、うち1つを選択してもらう
  • 選択したノートブックのメモ一覧を取得し、コンテンツをローカルに取り込む
  • 任意のタイミングでノートブック内の一覧を更新出来るようにする
というもの。APIについて親切なチュートリアルなどは特に無いので、http://dev.evernote.com/documentation/reference/ のリファレンスを眺めてそれっぽいメソッドを探していく。
ノートの一覧は listNotebooks だろうな。ということでこんなコードを書いた。


    private void chooseNotebook() {
        try {
            final List<Notebook> notebooks = getNoteStore().listNotebooks(getAuthToken());
            String[] noteNames = new String[notebooks.size()];
            for (int i = 0; i < notebooks.size(); ++i) {
                Notebook notebook = notebooks.get(i);
                noteNames[i] = notebook.getName();
            }
            new AlertDialog.Builder(this).setTitle("ノートを選択してください").setItems(noteNames, new OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Notebook selectedNotebook = notebooks.get(which);
                    setTargetNotebook(selectedNotebook);
                }
            });
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

で、実行したところここへくる前のログインでコケて詰んだ。APIキー発行してもらってからかなりの時間放置してたのでexpireしてるかも。ということでEvernote宛の問い合わせメールを書いて本日は終了。

NOTTVのモニター機(N-06D)が届いたので遊んでみた

twitterのタイムラインでしばらく前に盛り上がっていたNOTTV。
一応モニター応募してたんだけど音沙汰ないのできっと抽選で漏れたんだろうと、すっかり忘れてコード書いてたら今日の朝唐突に届いた。
ホッカイロは昨日会社のお花見でもらいました。まだぬくぬく。

モニター期間は2012年4月8日〜2012年4月21日の2週間とのこと

ひとまず起動してみる。部屋映り込みすぎてて恥ずかしい。
防水の注意

起動

横向きだけど、ロック画面

ホーム画面。普通の構成+NOTTVって感じ。

あちこちで言われてるように、何かやろうとするとすぐに"あんしんモード"アプリが邪魔するので基本的にWebを見ることとNOTTVアプリで放送を見ることの2つしか出来ない模様。
まあそれならそれでいいやと思い、テレビ観てみる。ニュースチャンネルは基本的にTBSのニュースバードを配信してるみたい。
番組表を見て

視聴予約あるけど録画予約が無いことに愕然としつつ

ぽちぽちといじった。

一通りNOTTVアプリを触って、ニュース流しつつ「番組観ながらツイート出来ないのかー、ほったらかして期限切れたら返送しよう」と思ってたところにメールが。

ん?さっきの紙には4/8-4/21と記載あったけどこっちには4/15-4/28とある。期限過ぎて返送すると何かしら請求されたりしそうで怖くなってきたので、今日外出する時に返送することにした。ごめんね、モニター期間めっちゃ残ってるのに返送してごめんね。

とりあえず、せっかくなのでインストールされてるアプリを眺めたり、起動してみては"あんしんモード"アプリに阻まれ(ノ∀`)アチャーとしばらく遊んでみた。取扱説明書アプリも含め起動出来ないというなかなかの状態。だけどエリアメールアプリは起動出来た。

ついでにブラウザでいくらかコンテンツ見てみるかーと思いブラウジング。
Google PlayのWeb版は開けるけど、当然これだとアプリのインストールは出来ない。

アンチウィルスアプリの体験版リンクがあり、
せっかくなのでインストールリンク辿ってみた。
なんかダウンロード出来てる。

いや、インストールしたいんだってば。「設定」へ

ん…?あっさりチェックついた

その後MacにつなぐとUSBデバッグ接続されるし

adbのデバイスリストに出てくるし

スクリーンショット撮れるし

Playのアプリアップデート出てくるし

あ、mock location有効にしたらNOTTV起動蹴られた

mock location外して起動したら無事にツイート出来るし

ついでにスピードテストしてみると流石のスピード><

で、USBデバッグ有効にしてから全然"あんしんモード"が邪魔しなくなったなと思い調べてみると ご注意事項 に
次のいずれかに該当する場合には、本アプリが正常に動作しない場合があります。ただし、当社は、それ以外の場合において本アプリが正常に動作することを保証するものではありません。
  • 1ホームアプリが端末標準のホームアプリではない場合
  • 2USBデバッグ機能が有効の場合
  • 3タスクキラーアプリやアンインストールアプリ、本アプリと類似の機能を有するアプリがインストールされている場合
と記載されてた。そういうことなんだ。