投稿

6月, 2014の投稿を表示しています

球形ロボット「Sphero」で猫様満足度アップを狙う

イメージ
面白そうなガジェットを見つけた。Sphero 2.0 - connected toy | SpheroiPhone5sでハロを操れ!『Sphero 2.0』がいきなり日本で発売にAPIが公開されているので、動きを制御したり情報を取得して表示するアプリが作れる。Sphero Documentation | Sphero勝手に動きまわってにゃんこたちの遊び相手になってくれたら何と素晴らしいことか!時間を作って制御するアプリを作りたい。< Related Posts >猫が数日お留守番出来るように自動給餌器と自動給水器を買う猫のトイレ臭い対策でデオトイレを買ってみる猫を向かい入れるために猫用品を揃える

安くて汎用性のあるサーバーホスティング会社を探す

イメージ
今仕事で使っている専用サーバーの契約期限がもうすぐ切れるので、他のホスティング会社を調べたときの覚書。現在使用しているのはGMOの専用サーバー。コストパフォーマンスはいいのだけれど、下記の件があってからネットワークが信用できなくなった。異様に名前解決が遅い時があった。→ いつの間にか直った。 gitコマンドを実行しようとしたら「github.com」へアクセスできず、サポートに問合せたら上位ネットワークでIP制限かけてた。サポートの対応も、こちらが証拠を揃えないと動いてくれない。ネットワーク上でIP制限かけるのはいいけど(DOS攻撃対策とかもあるし)通知してほしいと言っても出来ないらしい。私:「・・・ということは、御社のサービスを利用している限りは突然サーバーにアクセス出来なくなることがあるということですか?」担当者:「そうなります。。。」愚痴はここまで。移行候補はこちら。サービスコメントAWS(Amazon Web Service)従量制なので、いくら掛かるか見積もりが難しい。Google Compute Engine(Google Cloud Platform)AWSと同じ従量制。面白そうなので本当はこれにしたかった。さくらVPS安くて安心できる感じがする。複数台借りてローカルネットワークを構築出来るのもいい。カゴヤ・クラウド/VPSCPU12core / Memory4GB / HDD800GBが月額3456円
チューニングをしっかりすれば、これで十分な気がする。さくらVPSで複数台+ローカルネットワークにして、MySQL Clusterで運用してみようかと考え中。参考サイトMySQL Cluster:NoSQL+SQL、NoSQLも使える高可用性インメモリRDBMS | Think IT(シンクイット)MariaDB Galera Clusterを試す (1) | さくらインターネット研究所dbts2013:MariaDB Galera Cluster 活用例< Related Posts >Node.js環境のためにMySQLからMariaDBに移行Singaporeで安いレンタルサーバーを探す自分用の専用サーバーが欲しくなった

体重計とBluetoothで連携するアプリを作りたい

イメージ
スマフォと連携できる体重計があるか調査。AppleとGoogleがデベロッパーカンファレンスで健康管理のSDK, APIを強化すると発表したのでスマフォ+医療は何か出来そうな感じがする。Apple - iOS 8 – HealthGoogle Fit下記製品と連携するアプリは作れそう。健康製品セレクション | WellnessConectedBluetoothのHDP (Health Device Profile)というプロファイルに対応している機器ならアプリとの連携もしやすい。Bluetooth - Wikipedia私自身は体重管理しても嬉しくないけど、我が家のにゃんことわんこ向けに健康管理アプリを作るのは楽しいかもしれない。

PhpStormエディタでPhalcon PHP開発向けの設定

イメージ
Phalcon PHPの開発をするときにPhpStormを設定したときの覚書。クライアント環境: Windows 7 64bit, PhpStrom 8 EAP 138.567
サーバー環境: CentOS6.5, Nginx 1.6.0, PHP 5.4.291.自動補完出来るように参考サイトPhalcon Developer Tools | Phalcon 1.3.0 documentationPhpstormでPhalcon PHPの補完が出来るように | レリッシャブル {{ relishable }}phalcon-devtoolsをダウンロード適当な場所に解凍(C:\Users\daiki\PhpstormProjects\phalcon-devtools)PhpStormのプロジェクトの「External Libraries」を右クリック → 「Configure PHP Include Paths...」 → Include path → Add参照するフォルダを選択(C:\Users\daiki\PhpstormProjects\phalcon-devtools\ide\1.3.2)2.voltテンプレートを認識出来るようにデフォルトで用意されているTwigとして登録する。Settings → File Types → Twigを選択 → 「*.volt」を追加3.リモートデバッグ出来るように参考サイトPhpStormでXdebugのリモートデバッグを設定する方法まずはサーバー側にXdebugをインストール。yum経由は要remiリポジトリ。# yum install php-pecl-xdebug公式サイトのドキュメントを見ながら設定。# vi /etc/php.d/xdebug.ini; Enable xdebug extension module
zend_extension=/usr/lib64/php/modules/xdebug.so; see http://xdebug.org/docs/all_settingsxdebug.remote_enable=1
xdebug.remote_port=9001
xdebug.remote_autostart=1
xdebug.remote_connect_back=1# /etc/rc.d/init…

TitaniumのAPIDocをコンパイルしてPhpStormのコード補完機能に追加

イメージ
Titaniumの開発用エディタとしてPhpStormを利用したときの覚書。環境: Titanium SDK 3.2.3.GA, PhpStorm 8.0 EAP 138.567< 2015/06/26 Modified >
外部ライブラリを読み込んで少し設定すれば十分快適に開発できるようになってた。JavaScript → Libraries → Downloadで「titanium」を追加。「Node.js Globals」も追加なぜか「Node.js v0.12.5 Core Modules」を追加しないとLが「unresolved」になるDirectoriesで「Resources」ディレクトリを「Resource roots」に設定。requireを相対パスで記述すれば、「Cannot resolve directory」は解決できる。下記を参考にしたけど、jsca2jsに置いてあるTitaniumのバージョンが古いのと、提供されているコマンドも3.2.3.GAで動かなかったので、最新のAPIドキュメントをコンパイルしてみた。TitaniumのIDEとしてWebStormを使う(+補完機能の追加方法の紹介) - Seasons.NET最新のAPIドキュメントをダウンロードして、json形式でコンパイル。
参考: Titanium Mobileのapidocのビルド | Selfkleptomaniac$ git clone https://github.com/appcelerator/titanium_mobile.git
$ cd titanium_mobile
$ sudo easy_install pyyaml
$ sudo easy_install markdown
$ sudo easy_install mako
$ sudo easy_install Pygments
$ cd apidoc
$ ./docgen.py --format=jsonTiAutocompleteを利用して変換する。$ cd ../../
$ git clone https://github.com/netpro2k/TiAutocomplete
$ cp titanium_mobile/dist/apidoc/api.json TiAutocomplete/
$ cd Ti…

CentOS6 + Nginx + Phalcon PHP + MongoDBの環境構築手順

イメージ
Phalcon PHP Frameworkの環境を構築したときの覚書。環境: CentOS 6.5 x86_64, nginx 1.6.0, php 5.4.29, mongodb 2.6.1-2PhalconはPHPのエクステンションとしてC言語で実装されたMVCフレームワーク。特徴は何と言っても速さ。Hello World Benchmark | Phalcon 1.3.0 documentation最近はWordPressをベースにすることが多いけどシステム系のサイトを構築するのにいい選択肢になりそう。1.Phalcon PHPをインストール公式サイトを参考に。インストール | Phalcon 1.3.1 documentation# yum install gcc make php-devel git
# git clone git://github.com/phalcon/cphalcon.git
# cd cphalcon/build
# ./installInstalling shared extensions:     /usr/lib64/php/modules/# vi /etc/php.d/phalcon.iniextension=phalcon.so# /etc/rc.d/init.d/php-fpm restart確認
# php --info | grep Phalcon2.Phalcon Developer ToolsをインストールPhalconの開発ツール群。公式サイトを参考に。Phalcon Developer Tools on Linux | Phalcon 1.3.0 documentation# cd
# git clone https://github.com/phalcon/phalcon-devtools.git
# cd phalcon-devtools/
# ./phalcon.shシンボリックリンクを作成
# ln -s phalcon.php /usr/bin/phalcon
# ldconfig3.nginxの設定これも公式ドキュメントが十分詳しい。# vi /etc/nginx/conf.d/hoge.confserver {
    listen       80;
    server_name  dev.hoge.jp; …

xyzzyからPhpStormに乗り換え。設定メモ

イメージ
今までxyzzyを使ってきたけれど、他人が書いたPHPコードを読むのにさすがに限界を感じて評判のいいPhpStormを試してみた。環境: Windows 7 64bit, PhpStorm 8.0 EAP 138.567, TortoiseSVN 1.8.7PhpStormにしようと思った理由似たような思いを持っている人がPhpStormで満足している
参考: PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
参考: それPhpStormで出来るよ #phpstudyPhpStorm 8でWordPressがサポートされる
参考: PhpStorm 8 EAP最新版リリース | JetBrains ブログNode.jsをサポート Titaniumの開発でも使えそう 各プラットフォーム(Windows, Mac, Linux)向けに提供しているので端末に依存せずに長く使えそう1.PhpStorm 8 EAPをインストールWordPressの機能を試したかったのでEAP(Early Access Program)バージョンを公式サイトからダウンロードしてインストール。30日間の試用ライセンスが含まれているらしい。PhpStorm Early Access Program - PhpStorm - Confluence2.Subversionとの連携TortoiseSVNをインストールする際に「command line client tools」を選択しておく。binフォルダにsvn.exeがインストールされる(環境変数Pathにも追記される)。Settings → Version Control → Subversionの「Use command line client:」でsvnと入力(Pathに追記されているから)。PhpStormをインストールする前に設定しておけば自動で補完される。3.外観設定初回起動時に選択するテーマは「Darcula」を選択。Settings -> Colors & Fontsから「Save As...」をクリックしてコピー。下記を変更Primary font: Consolas Size: 14 Line Spacing: 1.1その他行番号を表示(Show line numbers)
Sett…

[Titanium][Android] 端末のGPS機能で現在位置を取得する

イメージ
定期的に現在位置を取得する方法を調査したときの覚書。環境: Titanium SDK 3.2.3.GA, AndroidGPSの有効・無効の判定など、KitchenSinkを見るのが分かりやすい。titanium_mobile/demos/KitchenSink/Resources/examples/geolocation.js at master · appcelerator/titanium_mobile · GitHub下記のサンプルコードも参考になった。位置情報の連続取得について | Don't Fall - Titanium Mobileユーザー会サポートBBS私が書いたgeolocation.jsはこんな感じ(一部)var U = require('/lib/utils');
var _gpsProvider;exports.init = init;
exports.release = release;/**
* Initialization
*
* @api public
*/
function init() {
    if (!U.isAndroid()) {
        return;
    }    //
    // "preferredProvider" is deprecated.
    // @see http://docs.appcelerator.com/titanium/3.0/#!/api/Titanium.Geolocation.Android
    //    //Ti.Geolocation.preferredProvider = 'gps';
    //Ti.Geolocation.accuracy = Ti.Geolocation.ACCURACY_HIGH;
    //Ti.Geolocation.distanceFilter = 10;    _gpsProvider = Ti.Geolocation.Android.createLocationProvider({
        name: Ti.Geolocation.PROVIDER_GPS,
        minUpdateTime: 30, // seconds
        minUpdateDist…

[Titanium][Android] 定期実行するServiceを起動してNotificationに表示

イメージ
バックグラウンドで定期的に動作するServiceを実装したときの覚書。環境: Titanium SDK 3.2.3.GA, Android参考サイトTitanium.Android.Service - Titanium 3.X - Appcelerator DocsTitaniumでAndroidのServiceを | Selfkleptomaniac第18回 ServiceとNotification:Titanium Mobileで作る! iPhone/Androidアプリ|gihyo.jp … 技術評論社JavaScript - Titanium Androidアプリで通知バーにメッセージを表示 - Qiitaサンプルコードは上記サイトを参考に。サービスが起動しているかどうかのチェックは次のようにする。if (Ti.Android.isServiceRunning(Ti.Android.createServiceIntent({url: 'testservice.js'}))) {
    console.log('Service IS running');
}この辺はKitchenSinkのコードを見るとわかりやすい。サービス起動中はNotificationの「進行中」に出しておきたい。Bring running Android app from background to foreground without notification? | Community Questions & Answers | Appcelerator Developer Center上記を参考に下記関数をserviceのstart, stopイベントにバインドする。_service.addEventListener('start', handleStartService);
_service.addEventListener('stop', handleStopService);
function handleStartService(){
    var pending, notification;    // Intent for Click Notification
    pending = Ti.Androi…

iOSをDistributeするときにIDFAエラーで先に進めない

イメージ
いつものようにTitaniumで作成したアプリを公開しようとしたらValidationするときに下記エラーになった。Improper Advertiseing Identifier [IDFA] Usage. Your app contains the Advertising Identifier [IDFA] API but you have not indicated its usage on the Prepare for Upload page in iTunes Connect.このエラーは新しいバージョンを追加するときに表示される質問Does this app use the Advertising Identifier (IDFA)?に「No」と答えると「IDFA」のチェックが走るらしい。でも、アプリ内で広告は表示してない。Titaniumで作成したアプリで、もしかしたらFacebookモジュールで使っているのかな?ただIDFAの質問に対する回答を変更したくても出来ない。新しく追加したバージョンも「Waiting for Upload」のまま削除できない。とりあえずiTunes ConnectのContact Usから質問を送信(5月20日付)。どうなるか。< 2014/06/04 Modified >
Facebook Moduleを使っているのが原因みたい。[TIMODOPEN-391] Facebook module causing IDFA usage error on Xcode organizer validation - Appcelerator JIRA< 2014/06/19 Modified >
約1ヶ月待っても返事がないので、tiapp.xmlのfacebookモジュールの部分を削除して再Validation + Submit<module platform="iphone">facebook</module>無事完了したらiTunes ConnectのView Detail → Binay Details → Reject This Binaryをすると、再度「Ready to Upload Binary」が出来るようになり、IDFAの項目を選択出来るようになる。…

[Titanium] fontcustomをインストールしてアイコンフォントを作成

イメージ
アプリを作成する際にアイコン画像はフォントに変換した方がよさそうなので実際にやってみたときの覚書。環境: Mac OS X 10.9.3, Titanium SDK 3.2.3.GA前の記事の参考サイトではIconMoon AppというWebサービスを使っていたけど、Font Customというコマンドラインから利用できるソフトがあったのでこちらを利用することにした。Font CustomまずはFontForgeのインストール。Homebrewは既にインストール済み。$ brew install fontforge ttfautohintエラーcairo: Unsatisfied dependency: XQuartz
Homebrew does not package XQuartz. Installers may be found at:
  https://xquartz.macosforge.org
Error: An unsatisfied requirement failed this build.リンク先からXQuartz-2.7.6.dmgをダウンロード・インストール。再トライ
$ brew install fontforge ttfautohint無事完了。次はfontcustomをインストール。$ sudo gem install fontcustomDocuments/fonts/svg/にsvgファイルを置いて試してみる。$ cd Documents/fonts/
$ fontcustom compile svg/fontcustomフォルダに出力された。fontcustom-preview.htmlをGoogle Chromeで開くと確認出来る。Titanium公式サイトによると「fontFamily」で指定する値は環境によって違うらしい。iOSは「PostScript name」。Androidはファイル名。Custom Fonts | Titanium 3.X - Appcelerator Docsなのでフォント名を指定して出力。$ fontcustom compile svg/ -f 'icons'< 2015/06/24 Modified >
fontcustomを1.3.8にアップデートしたらオプションが変更にな…