Tomeba のすべての投稿

Android 3D行先コンパス AR リリースしました。

3D行先コンパス AR

icon

info-2

・カメラ上に3Dのコンパスを表示しています。
・Google Mapで行先を設定すると、目的地への方角、距離、天気を表示します。
・天気予報は、OpenWeather APIを使用。 精度はあまりよくありませんが、world wideです。
http://openweathermap.org/
・コンパスがずれていると思われる時は8の字(メビウスの輪)キャリブレーションを行って下さい。
http://www.s3sensor.com/s3/calibration/
これでほぼ直ります。(iPhone,Android)
※これでほぼ直ります。機械を信用しすぎてはダメです。最終自分の勘を信じましょう。。。
5月に会社でシンガポール旅行があるので、これで迷わずにキャンパス内を歩けるかと。
http://www.nus.edu.sg/campusmap/pdf/nus_kent_ridge_coloured.pdf

================================
2.3.4 / 4.1.2 / 4.4.4 Xperia,Nexus 5,Nexus 7(タブレット)で動作確認済みですが、
NECの10インチタブレット LifeTouch(LT-TLX5W1AB)では、X,Y,Z軸がなぜかおかしく
今のところ正しく動作しません。

表示は端末を縦固定、カメラも90度回転して使用してします。その関係か
remapCoordinateSystem()の第二、第三引数は、デバイスのX軸、Y軸がそれぞれ指している世界座標系の
方向を指定するのですが、机上で思った設定をしてもどうもうまく定まらず、トライ&エラーで
最終 remapCoordinateSystem( inR, SensorManager.AXIS_MINUS_Z, SensorManager.AXIS_X, outR );
で動作するようになりました。

もしかして、getRotation()でチェックして、それぞれの端末環境によって、第二、第三引数
を替えないといけないのかもしれません。
https://github.com/kvirair/Compass-View-Library/blob/master/src/garin/artemiy/compassview/library/CompassSensorsActivity.java
(NECの10インチタブレットが正しいのかも。今後の検討)

【追記】
http://d.hatena.ne.jp/yellow_73/20110815
にあるように、Androidのタブレット機では横長基準でセンサを仕掛けているものがあります。携帯電話機なら縦長基準。
そういうことですか。。また、改修しておきます。(4/14)

参考:
remapCoordinateSystem() の第二、第三引数の決定
http://blogs.yahoo.co.jp/count_zero_blog/62278295.html
モーションセンサー その3
http://into.cocolog-nifty.com/pulog/2011/10/android029-3-se.html
三次元コンパスを作ってみた
http://android20092009.blog67.fc2.com/blog-entry-41.html
ソースコード参照させて頂きました。OPENGLの部分
Androidでテキストをマーキー表示するカスタムビューの作り方
http://d.hatena.ne.jp/mingos/20110215/1297788794
ソースコード参照させて頂きました。

Nexus 5 / MacBook Pro (Retina, 13-inch, Late 2013) Bootcamp Windows 7 (64bit) でADB接続がどうにも接続不安定

開発に使っている、MacBook Pro (Retina, 13-inch, Late 2013) Bootcamp Windows 7 (64bit)で
Nexus 7とかは何も考えなくても、adb接続できてAndroidの開発も問題ないのですが、

Nexus 5 だと、
・#adb kill-server
・#adb start-server
・USBの抜き差し
を何度も何度も行って、やっと繋がる。
C:\Android\sdk\platform-tools>adb devices
List of devices attached
022702f700cdec19 device
でもその内
022702f700cdec19 offline
とか
022702f700cdec19 unauthorized
とかなってだめになります。
普通のWindows機(8.1 DELLだと全然問題ない。)

多分、USB3.0の相性が悪いのかと思い、試しに、
USB 2.0のハブに繋げて見ると問題なく接続できるようになり、
この方法で行うことに。

Androidでアプリ / タブレットでgoogle playのストアーに並ばない時

1.Google Play Devoloper Console
「最適化のヒント」に「タブレット用のアプリを設計する」に表示されています。
t1
minSdkVersionとandroid:targetSdkVersionを対応バジョーンに設定しなさいということで、

AndroidManifest.xml
<uses-sdk android:minSdkVersion=”8″ android:targetSdkVersion=”10″/>
から
<uses-sdk android:minSdkVersion=”11″ android:targetSdkVersion=”14″/>
にしました。Android 3.0以上対応として、Android 2.3は切り捨てることにした。

2.これで、タブレットのアプリに並んだのですが、いつも開発に使用しいる
Nexus 7 (2012) では検索しても出て来ず。

多分、何かのデバイスが足らず、非対応ということだと思い見直したところ、
Nexus 7 (2012) はフロントカメラしか付いておらずバックカメラがありません。
要はカメラが無いのと同じ扱いになっています。ですので、以下を修正
尚、本アプリは、フロントカメラしか付いてないデバイスでも切り替えていますので、
正しく動作します。フロントカメラでQRコードを読むには面倒な操作ですが・・

AndroidManifest.xml
<uses-feature android:name=”android.hardware.camera”/>
から
<uses-feature android:name=”android.hardware.camera” android:required=”false”/>
に変更。(カメラは必須ではないという設定にする。)

Google Play Devoloper Consoleで対応機種を見てみると
Nexus 7 (2012) と表示されました。
これでGoogle Playからダウンロードできます。
t2

※ただし、Nexus 7 (2012) 2台ありますが、片方はストアから
検索できてダウンロードできますが、もう一方は、検索には出てくるが、非対応でダウンロードできません。

Nexus 7 (2012) 4.3 ダウンロード&インストール OK
Nexus 7 (2012) 4.4.4 「お使いの端末はこのバージョンに対応していません」<=不明です。!?調査中

===追記===
<uses-feature android:name=”android.hardware.camera.front” android:required=”false”/>

も追記すると、Nexus 7 (2012) 4.4.4 でもOKとなりました。
↑「フロントカメラあるのに必須ではない」という設定を入れる。(意味不明)

最終、Nexus 7 を有効にするには、AndroidManifest.xmlは、

<uses-permission android:name=”android.permission.CAMERA”/>
<uses-permission android:name=”android.permission.INTERNET”/>
<uses-permission android:name=”android.permission.VIBRATE”/>
<uses-permission android:name=”android.permission.FLASHLIGHT”/>
<uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE”/>

<uses-sdk android:minSdkVersion=”11″
android:targetSdkVersion=”14″/>

<uses-feature android:name=”android.hardware.camera” android:required=”false”/>
<uses-feature android:name=”android.hardware.camera.front” android:required=”false”/>
<uses-feature android:name=”android.hardware.camera.autofocus” android:required=”false”/>
<uses-feature android:name=”android.hardware.camera.flash” android:required=”false”/>
<uses-feature android:name=”android.hardware.screen.landscape”/>
<uses-feature android:name=”android.hardware.touchscreen” android:required=”false”/>

でOK。

Android アプリ: QRコード読み取り

いまさらですが、Android アプリ:QRコード読み取りをリリース(FREE)しました。
https://play.google.com/store/apps/details?id=jp.co.seiwa.zxing.client.android

・Zxing2.2をベースにいらない機能を削除して、縦で使えるように実装しています。

・android.intent.category.BROWSABLEにより起動も可能です。(他システムの連携にどうぞ)
 [起動]
  barcodectl://barcode/scan?url=任意のURL?uid=param1&opt=param2
 [読み取り後のアクセスURL]
  任意のURL?uid=param1&opt=param2&code=QRコードデータ&time=読み取ったunix時間

 詳細&カスタマイズはお問い合わせください。

Zxing3.0で縦実装したかったのですが、現状どうにも縦にコンバート
できませんでした。
https://github.com/zxing/zxing

Vidyo STCビデオ会議クラウドサービス / VidyoWeb API / WebRTC

弊社では、Vidyo社の会議システムを扱っています。
Vidyoは、会社の規模や、管理システム、利用のシーンに合わせたビデオ会議のスタイルをご利用できます。

https://www.facebook.com/stc.vidyo/
https://www.vidyo.starserv.ne.jp/

Vidyo社のVidyo H264 SVC コア技術は、Googleのハングアウトにも使われています。
VidyoとインターフェースをとるのにAPIでクライアント用ライブラリーやWEB APIインターフェースが提供されており、自社専用のVidyoツールを作成することができます。

クライントネイティブだとAndroid,iOS,Mac OS X,Linux,WindowsそれぞれにAPIライブラリが用意されていますが、
一番やり易いのは、VidyoWeb API(1.0.3)となります。
(ただし、今のところ対応OSはWindows、MacOS Xのみとなります。)
また、次世代のWebRTC 3.0.0 (15) であれば、
Android,Mac OS X,Linux,Windows(Chrome / Firefox)が利用できます。(iPhone[iOS] がまだない><)

今回は、VidyoWeb API(1.0.3)で接続できるか試してみます。
APIを利用するには、vidyoポータルにAPIライセンスが無いとできません。
弊社のVidyoポータルサーバにはまだAPIライセンスを投入していませんので、
Vidyo社よりSandbox用のサイトを用意して頂いたのでそこでテストして見ました。

●事前準備
・VidyoClientAPI_Plugin_VidyoWeb DLLが必要です。
・SOAPサーバが必要(サンプルコードはSOAPを利用しています。)自力で書けば
 必要ないですが、Vidyo社のテスト用のSOAPサーバを利用
・サンプルコード VidyoClientAPI_Sample_VidyoWeb_1_0_3_00060.zip
 注)これらはVidyo社のユーザアカウントがないと利用できません。

結果はご覧のとおり利用できました。次回はWebRTCで動かしてみてカスタマイズしてみたいと思います。

■ログイン後の画面
v2
■接続
下段 私(Windows 7 / Chrome 、上段 他の人(test1 Android4.3 Vidyo Mobile)にグストリンクを送って接続
v3
資料共有もできます。

Vidyo STCビデオ会議クラウドサービスに興味を持たれた方は、
こちへ、
http://www.seiwatec.co.jp/

PDF帳票印刷サーバ

PDF帳票印刷サーバのWindows Server 2003からWindows Server 2008 R2 / 2012 R2に移行検討の中で、PDFツール SumatraPDFを見つけた。

帳票印刷サーバに、安定性、サポート体制、潤沢な開発システム費用があればウイングアークのSVF一択なのですが、それほどの規模もぜんぜんなく、簡単なPDFファイルを指定のプリンターに印刷するシステムを構築したい場合、以前 アクロバットリーダー AcroRd32.exeを呼び出して印刷していました。

“C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe” /h /s /t “C:\app\pdfserver\spool\1_TEST_Canon LBP9200C.pdf” “Canon LBP9200C”

これで印刷は十分できるのですが、いかせんGUIツールですので、サービスプログラムから起動したプロセスから更にAcroRd32.exeをCreate呼び出しても印刷できませんでした。
(GUIツールでもサービスから動作するものもあります。)
ですので、スタートアップに登録して、ログイン状態でないと使えませんでした。

今回、Sumatra PDFというPDF表示、印刷ツールを見つけました。
ソースコード付ですのでカスタマイズも可能です。(すばらしい。)ライセンスは、 GNU General Public License version 3.0 (GPLv3)です。

http://sourceforge.net/projects/sumatrapdf.mirror/
https://code.google.com/p/sumatrapdf/downloads/list

サービスプログラムから起動したプロセスからSumatraPDF.exeをCreate呼び出して試して見たところ、問題なく指定のプリンターに印刷できました。

“C:\apps\SumatraPDF.exe” -exit-on-print -print-to “Canon LBP9200C” “C:\apps\pdfserver\spool\1_TEST_Canon LBP9200C.pdf”

※-exit-on-print -print-toでダイアログ表示無しでサイレントで実行できます。
※デフォルトプリンターへ出力したい場合は、-print-to-default

次回の案件より、簡単なPDF帳票印刷サーバが必要な時はSumatraPDFでシステム構築提案したいと思います。

以上、メモ。

iBeacon CentOS 7で受信

iBeaconは、iOS7で追加された近距離無線を利用した通信機能です。
Estimote社がBeaconセンサーを開発し、iPhone 5sに搭載されています。
認識範囲はNFCよりも広範囲で50m程度あり、ビーコン発信側は、
UUID:128ビット文字列(RFC4122で規)
Major値:16ビット整数
Minor値:16ビット整数
です。
受信端末側は、電場強度の情報を使って、数m単位で距離を認識でき、メジャーコードやマイナーコードから任意に定義づけられた情報からそれぞれの応答・動作をします。

今後、いろんなシーンで使われていくと思われます。
「国内iBeaconサービス、続々登場!」
http://smartphone.r25.jp/news/114338
10/31リリース!「京都の市バスはiBeaconで次のバスの到着時間」
http://www.aplix.co.jp/?p=11330
当社は京都:烏丸通りに面した場所にありますので、もしかしてデータを受信できるかも?(これについてはまた別の機会に)

さて、今回は手持ちの機器でiBeaconの送信、受信を体験してみたいと思います。
まず、iBeaconは、Bluetooth Low Energy 対応の機器がないとダメです。
デバイスはBluetooth 4.0であればAndroidでも使えます、ただしAndroid端末の場合はOSが4.3以降でないとだめです。
また、Androidは今のところiBeaconの送信はライブラリーがないのでできません。受信だけとなります。

手落ちのNexus 7は2012モデルでBluetooth 3.0ですので、残念ながら受信できません。(2013モデルだとOKです。)
Screenshot_2014-11-01-22-44-51

最終的に以下の組み合わせで送受信できました。
I)iPhone同士(iPhone5sとiPhone5c) ::当然ですが。
Estimote (free) をインストール
https://itunes.apple.com/us/app/estimote-virtual-beacon/id686915066

iPhone5sをビーコン発信
iPhone5cでレーダ受信  (受信できたら小さな端末アイコンが表示されます。)
20141101_223239

受信した端末のアイコンをタップするとUUID,major,minorが分かります。
20141101_223300

II)iPhone5s ビーコン発信 / CentOS 7で受信
(CentOS 7はVmwareで動かしています。ホストPCはWindows8.1 DELL Inspiron 15 7000でBluetoothは4.0です)

CentOS 7で動かす為に必要なモジュールをインストールします。
1)BlueZ パッケージ(bleaconをインストールに必要)
#yum install bluez-libs-devel

2)#yum install npm*
#npm -v
1.3.6

3)#yum install node*
#node -v
v0.10.30

4)#npm install bleacon
エラーがなければOK

https://www.npmjs.org/package/bleacon

5)#hciconfig

hci0: Type: BR/EDR Bus: USB
BD Address: 80:86:F2:D3:00:F8 ACL MTU: 1021:5 SCO MTU: 96:5
DOWN
RX bytes:568 acl:0 sco:0 events:29 errors:0
TX bytes:390 acl:0 sco:0 commands:29 errors:0

DOWNの場合UPさせる。

  #hciconfig hci0 up

hci0: Type: BR/EDR Bus: USB
BD Address: 80:86:F2:D3:00:F8 ACL MTU: 1021:5 SCO MTU: 96:5
UP RUNNING
RX bytes:1115 acl:0 sco:0 events:56 errors:0
TX bytes:774 acl:0 sco:0 commands:56 errors:0

7)iBeacon受信プログラム

recv.js

//—————————————-
var Bleacon = require(‘bleacon’);
Bleacon.startScanning();
Bleacon.on(‘discover’, function(bleacon) {
console.dir(bleacon);
});
//—————————————-

#node recv.js で受信待ち。

8)iPhone5s Estimote ツールでビーコン発信
9)CentOS7受信結果

{ uuid: ‘xxxxxxxxxxxxxxxxxxxxx43fe94921d8’,
major: 11305,
minor: 17710,
measuredPower: -57,
rssi: -47,
accuracy: 0.5200019057155468,
proximity: ‘near’ }
{ uuid: ‘xxxxxxxxxxxxxxxxxxxxx43fe94921d8’,
major: 11305,
minor: 17710,
measuredPower: -57,
rssi: -44,
accuracy: 0.4273723450154846,
proximity: ‘immediate’ }

距離情報
近接度(proximity) [接近(Immediate),近い(Near),遠い(Far),不明(Unknown)]
精度(accuracy)

で受信できることが分かりました。
CentOS7で送信を試しましたがこちらはうまく動作しませんでしいた。
デバイスが悪いのか、モジュールが悪いのか不明です。

以前、NFCで非接触ICカードを使いログインアプリを組んだことがありますが、AndroidでBluetooth 4.0端末が入手できたら何かアプリを作成したいと思います。
iPhone iOS7から標準搭載されたiBeaconですが、O2Oは「Online to Offline」の要となっていくかと思います。

星和テクノロジー 技術情報公開ブログ開始

はじめまして!星和テクノロジー株式会社による、IT関連の技術情報公開の場として、ブログを開始しました。
今後、OS,言語,DB,デザイン,IT関連等の開発にまつわる情報をUPしていきたいと思います。

【Windows Azureについて】 (後半IBMはBluemix・・)

本siblogは、MSDN特典として提供されるWindows AzureのVirtual Machines (仮想マシン:CentOS) を実行しWordPressで運用しています。
blogだけでしたら、GoogleのBloggerとかで十分ですが、今回はMSDNのVisual Studio Premium with MSDNを利用して開発テストを兼ねて仮想マシンを立ち上げています。

Visual Studio Premium with MSDNでAzureは、10,500円/月まで毎月無料で利用可能です。
(月々の Azure クレジット)

a1

Windows Azure 利用時の注意事項

1.定期メンテナンスが、月1ぐらいのペースで実施されます。
そのためインスタンスの再起動(サーバリブート)が行われます。
インスタンスの再起動には30分~45分かかります。

1) 24時間連続稼働の重要なシステムは止まってしまいますので、定期メンテナンスによるダウンタイムの発生を防ぐために、アーキテクチャに 可用性セットを使用しないとだめです。

2) 米国西部にサーバを立てている場合、世界協定時刻 (UTC) 2:00とか3:00にメンテナンスが実施されます。
日本時間だと、夜間のメンテナンスではなくて、午前11:00,午前12:00になりますので注意が必要です。

a2

2.仮想サーバでDNSの逆引きはできません。
メールサーバでは、逆引きできないので拒否される可能性があります。

※逆引き設定できるようになりました。(9/24追記)

http://blogs.msdn.com/b/windowsazurej/archive/2014/08/01/blog-announcing-reverse-dns-for-azure-cloud-services.aspx

3.VPSのようなコンソールがありませんので、仮想サーバ上のFW設定を誤ると、接続できなくなる場合があります。この場合は、再作成となります。

●同様のリソース課金制で、Amazon Web Servicesがあります。こちらも今後テスト利用比較する予定です。

●IBMのBluemix
Bluemix は、オープンソース PaaSのCloud Foundry をベースとする、IBM のオープン・クラウド・アーキテクチャーです。Cloud Foundry は、ユーザーがクラウド上でアプリケーションを迅速に作成してdeployできる機能です。

AWSやMicrosoft Azureでは「オンプレミスで稼働している業務システムをどうクラウドに移行するか」
ということが重きにあるのですが、Bluemixになるとそのあたりの発想はなじまないとのこと。
[ITpro ]

実際、テストアカウントをとって使ってみましたが、使えそうで使いづらいという印象です。

a3
phpとか標準では実装されていませんが、有志が作成した、cf-php-bluemixを実装することで
使えます。

a4

ただし、phpのextensionは、 “fpm”,”bz2″, “zlib”, “curl”, “mcrypt”しかセットされていません
ので、せっかくのmysqlやpostgresqlが使用できません。
mysqlは、php内に含まれているのですが、postgres(pgsql)はsharedになっているので、pgsqlが必要なのですが、このままだとだめなので、自分でgitを改修して利用することになります。

a5

a6

(↑2014-06-18時点です。)