2014年7月22日

BT-200メモ

bt200-01.png
BT-200をかけたままPCを見る、のイメージ図。

EPSON MOVERIO BT-200のメモ。

○3つのつたえたいこと

1. 2ch EPSON MOVERIO BT-200 スマートグラス http://awabi.2ch.net/test/read.cgi/dgoods/1399043282/ は読んでおくべき。
2. Amazon AppStoreが神。蜘蛛の糸。
3. side by sideでちゃんと3Dで見る価値のあるコンテンツは少ない。作れってことですね。

niconicoでサイドバイサイドできちんと見られる3Dコンテンツは【MMD】天鼠ディストレス【Tda式改変ハク】【MMD】プリズムハート【筑紫野スイム】の2本をオススメしておきます。
youtubeは標準ブラウザはメモリ不足で落ちるほか、文字入力の不便さもあって検索・閲覧が相当困難なため、PCでダウンロードしてファイル転送が妥当な気がします...。

以下、とりとめのないメモ

続きを読む "BT-200メモ"

2014年7月16日

Lと私(その3 モバイルデータ設定の小ネタ)

Android Lにしたらだいぶデータ通信の調子が悪くなりました。まぁしょうがないかな、とは思います。
で、モバイルデータのON/OFFをチマチマ切り替えるんですが、ちょっと細かいですがこのひっかかった気持ちを誰かに伝えたくて。

まず、Notificationをさらに下げたQuick SettingのCellularアンテナのとこをタップすると設定に飛びます。
まったく関係ないですがこのQuick Settingの二段ひきずりおろし、一段目でスカートで二段目でパンツというのを考えたのですが誰かカスタムROMでどうですか。どうでもいいですね。

mobile1.png
このモバイルデータのON/OFFのスイッチをタップすると、

mobile2.png
こんな風にわざわざ無効にするかどうか確認されるのですが、この時キャンセルしても、スライドスイッチはすでにアニメーションし終わっているので

mobile3.png
このように、左側にずれてるんだけど有効、という変な状態になります。戻れよ。

ちなみに以前使ってたXperia SX、SO-05Dちゃんでは逆にOFFからONにする時に「なんかデータ通信ONにすることによって予期しない料金が発生しちゃうかもしれないけどいい?ほんとにいい?」って確認ダイアログが出て、逆だったんですよね。Googleとキャリア(?)のちょっと立場の違う感じが面白いです。

が、そもそもこういう確認UIの原則は「undoできるならmodal DialogでConfirmするな」だと思います。データ通信のON/OFFがセンシティブだという気持ちは分からないでもないですが...


Material DesignなLをこんなあたりをしょっちゅう気にしながら触ってるわけです。はー職業病キモい。

2014年7月14日

Lと私(その2 BLE Peripheral Characteristic Read/Write編)

◯はじめに

前回はAdvertiseパケットがいじれてiBeaconができることが分かったので、次はRead/Write Characteristicを実装してみました。

あとで整理しますがGithubのias branchに置きました。後でNotify/Indicateまで試した後リポジトリは整理したいと思います。

◯手順

結局のところ以下の手順となります。

  1. AdvertisementData.Builder#setServiceUuidsで提供するService達を設定する。しないとCharacteristicが欠けたりしたのでちゃんと設定する。
  2. BluetoothManager#openGattServerで開く。
  3. BluetoothGattCallbackを実装。ぶっちゃけonDescriptorReadRequestonDescriptorWriteRequestだけ実装してもなんとかなります。気が向いたら他もどうぞ。
  4. Javadocに書いてある通り、onDescriptorReadRequestとonDescriptorWriteRequestのコールバックから、BluetoothGattServer#sendResponseを忘れずに呼ぶ。

◯余談

  • BluetoothAdapter#getProfileProxyは罠。profileにGATT_SERVERを指定しても失敗する。
  • 時々Serviceが多重起動して複数Nexus 5が見つかったりする。BTのon/offで復活する。深く気にしない。
  • UUIDは128bitのフルのみ使用、16bitが色々ちゃんと動くのかは試していない。あまり試す気もない。

整理するとなくなっちゃいそうなので記録としてAcitivtyにベタ書きしたソースを以下に。

続きを読む "Lと私(その2 BLE Peripheral Characteristic Read/Write編)"

2014年7月 7日

Lと私(その1 Eclipse ADTとBLE Peripheral編)

Android L Previewが来ました。
いくらか試してみたのでメモってみます。

◯常用しているN5をL Previewに

unlockしていなかったので、adb backupして、Storage全コピーして、Factory Image焼き。adb restoreは相変わらず何が起きてるのかよくわからないけど、「多分強制的に/data/配下のアプリのファイルを放り込む動作してるんだろう」と楽観的に考えて適当にadb restoreを数回。概ねアプリ状態とストレージ状態が戻ったみたいなので、困るファイルのみ追加でMTPでコピーしてL化完了。

若干Cellularのつかみが悪くなりましたが、LTE掴まないとかテザリングできない等のトラブルは私の端末では発生していないので概ね逃げ切った模様です。

◯Eclipse+ADTでAndroid L Previewにする際の落とし穴

いろいろつまづいたのですが、結論としては以下の通りの模様です。

・Android L PreviewがついにJava 7必須になった模様。
・Macの場合は標準の6を削除後に7を入れて、「7がコマンドライン以外でも動く様にする設定を追加」する必要があります。
参考:Eclipse Kepler for OS X Mavericks request Java SE 6
http://stackoverflow.com/questions/19563766/eclipse-kepler-for-os-x-mavericks-request-java-se-6
・ADT-BundleがJuno(Eclipse 4.2)ベースなのが気に入らない方はKeplerなりLunaなりにSDK個別インスコすればいいっぽいです。
・ADT-Bundleが相変わらずADTのupdateしてもアップデートがありませんとか言いやがるので新規にADT-Bundle落としてL, 4.4W(Wear), 4.4.2(KitKat)のSDKコンポーネントをざーっとダウンロードしてしまった方が良さそう。

◯Hello L

ADT23.0.2環境がきれいに構築できたらHello Lしましょう。

https://developer.android.com/preview/setup-sdk.htmlに書いてある通りですが、Eclipseのウィザードに沿った出力だと色々おかしいので手動で直します。
・project.propertiesはandroid-Lなことを確認。
・minSdkVersionとtargetSdkVersionは両方とも"L"に。
・styleは手動で書き換え。v11とかv14とかいらないので削除。

◯Hello Android Peripheral

さて、L環境ができたらBLE Peripheralを試しましょう。
増えたandroid.bluetooth.leってパッケージのJavadocを読む限りは、Advertiseまでは素直な感じです。

GitHubに置いておきます。
https://github.com/youten/aBeacon

さて、この次は自前Service実装なのですが、4.4までのCentral限定だと役に立ってなかったGATTServerあたりが臭いと思ってるのですが、Javadoc読んでもさっぱり分かりません。
どこかで既に誰かチャレンジし終わってるんじゃないかな、と思ってるのでぐぐりつつチマチマ試してみたいと思います。iOS-Android間の「HTTPでない」「MFi外の相互通信路」ってマロンですよね。

2014年6月29日

Google I/O 2014 #io14 #io14jp

Google I/O 2014に行ってきたのでレポートという質には至っていない、日記みたいなものを書きました。

日記以上の何かは気が向いたら書くことにします。

だいたい想像していた通りには英語ができなくてもなんとかなりましたが、たくさんの方々に大変お世話になりました。おつかれさまでした。

2014年6月13日

JSON吸って吐く機械

せっかく13日の金曜なので、jspが早く滅んで欲しいなっていうJSONの話を書きました。

中身はあんまりありません。

2014年6月 6日

iOS8で正体を現したAppleの屋内位置測位。iBeaconは第一形態だった。Maps Connectとは? #WWDC14

毎回NDAに包まれて色々ヒミツなWWDCですが、どうも2014は違うみたいでわんさかと資料が公開されています。(マユツバでChromeのシークレットモードでウォッチしてみたり...。)

What's New in iOS iOS 8.0
https://developer.apple.com/library/prerelease/ios/releasenotes/General/WhatsNewIniOS/Articles/iOS8.html
iOS 7.1 to iOS 8.0 API Differences
https://developer.apple.com/library/prerelease/ios/releasenotes/General/iOS80APIDiffs/index.html
WWDC2014
https://developer.apple.com/videos/wwdc/2014/

で、iBeaconの仕様変更がないのか、Core Locationに怪しいことがないものかとブルブルふるえながら眺めました。新しいクラスはCLFloor(階がとれる)とCLVisit(滞在履歴がとれる)とかそのあたりで、これぐらいなら屋内位置測位な何かには大きなインパクトはないな、と思っていたのですが、公演資料(pdf)には完全体の情報が含まれていました。

第二形態以降の話を、公開資料の概要を紹介しながら順番にピックアップしてみます。

続きを読む "iOS8で正体を現したAppleの屋内位置測位。iBeaconは第一形態だった。Maps Connectとは? #WWDC14"

2014年5月25日

ZXing on iOS 7.1

iOS7.1.1(iPhone 5)+Xcode5.1.1環境でZXingを試してみました。ビルドエラーをとるのが若干手間なのと公式にはiOSに対応する気が無い様なのでForkしてしまいました。

ZXing for iOS isolated, available for iOS7.1+Xcode5.1
https://github.com/youten/zxing

ZXingはGoogleが作っている1D/2D barcode(バーコード・QRコード)読み取りライブラリです。
・iOS7では標準機能でバーコード・QRコードが読めるようになりました。簡単らしいので7 or laterではそれで良いかと。6.x-7.x向け(あと半年ぐらい?)には使う機会があるかもしれないね、ということで。
・ZXingとしてはiOS向けは"Available in previous releases"らしいです。つまり古いバージョンを掘り出す必要があります。
・GitHub移行前、iOS6時代の話についてはクラスメソッドさんの以下のページを参照。

iOSアプリ開発でZXing2.1を使ってQRコードを読み取る(2013.03.04)
http://dev.classmethod.jp/smartphone/iphone/ios-zxing21-qrcode-decode/

続きを読む "ZXing on iOS 7.1"

2014年5月24日

手持ちの技術本リスト

貸し出したり、会社と自宅の往復であまり一同に介さないのでリストアップしてみることにしました。役に立つシチュエーションには差があると思いますが、基本的にはオススメの本のみ、新しめ順に掲載しております。

続きを読む "手持ちの技術本リスト"

divでtable

Amazonのアフィリエイトなリンクと、商品へのコメントを多段組にしたかったのですが、いろいろ便利な方法がある模様です。

[css][html] divでtableを作る tableの行全体をリンクにする divの高さとborder-bottomを揃える display:table-cellは神です。 http://blog.livedoor.jp/qoozy/archives/52491823.html

試しに埋めてみたのが以下の通りです。

近接・反復・整列・コントラスト。

リーダブルコードと並んで誰にでもオススメできる良書。「デザインについて知識がなくとも大丈夫なとにかく優しい本」というよりは「デザイナーでない人にも抑えておいて欲しい内容の本」という、まさにタイトルそのまま。

概要は、「The Non-Designer's Design Book」はエンジニア必読の書籍だったが分かりやすいです。

table-cellとcell内要素に色をつけてみると以下の様な感じです。divなのかpなのか頭に余計な1行分っぽい空白がいますね...まぁ気にしない事にします。

120x240px, display:table-cell, left cell

display:table-cell, right cell

ああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ。

Archives(記事一覧はこちら)