Android 5.0.2 以上でBLEが動かない

Occurrence -事象- Causes -原因- HID とは ? BLUETOOTH_PRIVILEGED とは? Summary -まとめ- HID を使ってるかの判断 禁止された Characteristic UUID なぜ禁止されたのか? Occurrence -事象- 機材とAndroid を BLE (Bluetooth low energy) で繋ごうとしたところ、Android 5.0.2以上の端末で Security Exception が発生した。 5.0.1 や 4.2 などは問題ないが、5.1や6.0で発生する。 エラー内容は以下のようになっている。 java.lang.SecurityException: Need BLUETOOTH_PRIVILEGED permission: Neither user 99999 nor current process has android.permission.BLUETOOTH_PRIVILEGED. 発生箇所は BluetoothGatt#setCharacteristicNotification Causes -原因- StackOverflow にほぼ発生事例そのままの報告がある、 Android 5.0.2 onwards don’t allow HID access through Bluetooth LE さらに、Android Issues に [BLE] Reading/writing char/descr of a HID service throws an exception があり、その中で
Read more →

[読書メーター]2016年 1月まとめ

Read more →

Scrum Gathering Tokyo 2016

Scrum Gathering って何? どんな内容? Day 0 Day 1 Opening Talk Keynote Sessions Open Jam Day 2 Opening Talk Keynote Sessions 得た教訓 参考 Regional Scrum Gathering Tokyo に行ってきました。 Scrum Gathering って何? 正式名称は [Regional|Global] Scrum Gathering (場所) になります。 Scrum (参照 スクラムガイド.pdf)を実践している人たちが集まり、発表をし、それぞれがそこから何かを学び取ろうという二日間丸一日ぶち抜きのイベントです。 今年は会社がお金出してくれたので気兼ねなくいけました。 どんな内容? 午前中は 開会の話 と基調講演で両方とも英語ですが、同時通訳機と同時通訳の人がいます。英語から日本語、日本語から英語どちらも対応しています。 私はがんばって同時通訳機なしでチャンレンジしてみたので、どれぐらいの精度だったのかはわかりません。 午後からは各自のセッションが基本的には30分ごとにあり、基調講演が行われたメインルームを2つに分けて2コマずつ同時進行で行われますので、自分が聞きたいと思う方を選んでみていく感じです。 参照:http://2016.scrumgatheringtokyo.org/schedule.html Day 0 前夜に基調講演をする Bas さんや Ken さんを交えて飲み会しましょうというのがあったので、ほぼ飛び入りで参加してきました。 今年はEary Birdがあまり売れず、正規の値段でビシバシチケットがはけたからか知らないけど、飲み代は向こう持ちでした。ラッキー。 Kenさんとても気さくな方で写真も一緒に撮らせてもらいました。 Day 1 東京に久しぶりの大雪、色々な場所で電車がとまるとまる。 まさにエクストリーム出勤。 仕事だったら家に帰ってたけど、仕事じゃないから仕方ない! Opening Talk Scrum Alliance CEO の Pete Deemer さんがお話し。
Read more →

LMDE2のNVIDIA Driverを更新する

LMDE2 に NVIDIA のグラフィックドライバを入れます。 Inspect your graphic board Download a driver Installer Prepare Installation Installation Inspect your graphic board terminalで lspci -vnn | grep VGA -A 12 Download a driver Installer NVIDIAの公式サイトからLinux X64用のDriver Installerを手に入れます。 私の場合は以下から http://www.nvidia.com/download/driverResults.aspx/77525/en-us NVIDIA-Linux-x86_64-340.32.run というシェルファイルを手に入れました。 Prepare Installation reboot し grub で recovery mode を選択し、 ログイン画面で、Ctrl + Alt + F1 を押してCUIモードになります。 ユーザーログイン後、 sudo update-initramfs -u を実行します。 これはNVIDIAシェルがカーネルモジュールを追加するため必要になります。 これが実行されない場合 Nouveau kernel driver を止めてくれとのエラーメッセージが表示されます。 Installation 再度再起動し、recovery modeになり、CUIモードにログインします。 X serviceを止めます。 sudo service mdm stop インストールを実行します。
Read more →

[読書メーター]2015年 12月読書まとめ

Read more →

臆病者のための Ansible

Target Links 臆病者のための確認コマンド 基本 確認 hosts 制限 hosts 確認 tasks 確認 最終 〆 Target Ansible を使ってみてその便利さに驚愕するとともに、他人が作ったPlaybookを引き継ぐ怖さも知る。 全て手順書のように書いていればいいのだが、多数のRoleを使い高度に書かれたAnsible playbookを引き継ぎ、メンテまたは代わりに実行するのはとても怖い。 playbook実行する前に何がどうなるのか確認しまくりたい。 そんな自分のための初心者ガイド Links 実行の仕方など基礎的な事は公式ドキュメント参照 Hello world http://docs.ansible.com/ansible/intro_getting_started.html どうやって使うかのオススメ、ディレクトリ配置など http://docs.ansible.com/ansible/playbooks_best_practices.html 確認コマンド playbook は実行前に色々確認したいですよね。 基本 ansible-playbook playbook.yml これで playbook が実行されます、設定がしっかりしてる環境であれば、外部サーバに実際に変更を行ったり、時には取り返しのつかない変更が実行されたりします。何も考えずに実行するのは危険 確認 hosts ansible-playbook playbook.yml –list-hosts playbook は実行されません。 playbookが実行される相手先をリストアップするだけです。 host は hosts ファイルなどで定義された ansible のためのサーバー接続先設定のことです。 制限 hosts ansible-playbook playbook.yml -l hoge –list-hosts -l の後に host 名もしくは hostgroup 名を入力すれば playbook の接続先を制限することができます。 –list-hosts と組み合わせると捗ります。 確認 tasks ansible-playbook playbook.
Read more →

2015年 大晦日

Read more →

CP+ 2015 行ってきました

Read more →

2014年 大晦日

Read more →

PureScriptでHello world

関数型言語系の本山(と思ってる)Haskell を勉強したいけど、 折角勉強しても使い道を思いつかなかった時に PureScript を知る。 PureScript は Haskell -> Javascript のコンパイラ。 正しくは Haskell “風"らしいが、最終系は Haskell になるのだろ。 Mac 上で Hello world してみる。 まず Cabal をインストールする( Cabal は Haskell のパッケージシステム)。 ついでに実行環境用に node もインストール brew install ghc cabal-install node 次に PureScript のインストール psc –main=Main hello.purs > hello.js もし psc と打ち込んでもTerminalが反応しなかったら以下のようにパスを通す。 export PATH="$HOME/.cabal/bin:$PATH" Hello world を書く。ファイル名は hello.purs とする。 module Main where import Debug.Trace main = trace "Hello, PureScript!" コンパイル cabal update cabal install purescript 実行
Read more →