備忘録

開発でつまったところの備忘録.不定期に更新します.

IRKitをiOSで動かす

今日のお題は です。 こいつはリモコンなどの赤外線信号を記録して、スマホから家電等を操作できるよ!っていうアイテムです。 Android、iPhoneともに公式アプリが無料で出ていて、使うことができます。 今回は、公式アプリを使わずに、ゼロからこいつを操作…

HueSDKを使ったiOSアプリの動かし方

今日のお題はPhilipsのHueです。↓ これはスマホからアプリを通してon/offや色を制御できるという照明で、 PhilipsからSDKが公開されており、アプリが開発できるようになっています。 最近これをiOSで動かすというタスクが発生し、よくわからないながらもなん…

cgcolorrelease(cgImage)でassertion failedする問題

iOS上でのOpenCVの、UIImageとmatを変換するときに cgColorRelease(cgImage) という処理をするのですが、 これが Assertion failed: (!space->is_singleton), function color_space_dealloc, file ColorSpaces/CGColorSpace.c.... みたいなエラーをはいて落…

iOS上でOpenCVを動かす

iOS上のOpenCVは糞って聞いた覚えがあるのですが、とりあえず必要だったのでやってみました。 導入は http://www.casleyconsulting.co.jp/blog-engineer/iphone/cocoapodsとopencv-2-4-6で始める画像処理-for-ios/ を習って、cocoaPodsを使ってプロジェクト…

vimのノーマルモードでIMEをオフにする

ってことは,macだとkeyremap4macbookみたいなやつで,escを英数切り替えに割り当てて簡単にできます. そのwindows版としてyamyを使っていたのですが,不具合が多いのでやめて http://hotolab.net/blog/vim_ime/ のブログに書いてあるとおり,google imeの…

.bashrc編集

いいかげんcdとlsのコンビもうざいので.bashrcをいじりました. まずcdしたらlsするように変更 http://it-scrap.blogspot.jp/2009/12/bash-cdls.html [bash] cdと同時にlsするエイリアスコマンド cd したらどうせ ls するので、cd ついでに ls しちゃう Alia…

Mac修復

卒論発表前日に動かなくなった僕のmac. どう動かなくなったかというと,起動するとりんごのマークとともにインジケータが出てそのインジケータが1/5くらいまで進んだところで落ちる,という状態でした. 復旧しようと思ってぐぐると,起動の時に「Command+r…

screenの導入

minttyでタブを使うためにscreenを導入したのでメモ 基本的には http://futurismo.biz/archives/1352 を参考にすれば多分出来る. ./configureする前に他のインストールを済ませないとエラーが出る. http://keisanbutsuriya.blog.fc2.com/blog-entry-49.htm…

cygwin環境構築

久しぶりにcygwin とりあえず適当にぐぐって http://www.kkaneko.com/rinkou/cygwin/cygwin.html とか見てインストール 環境変数はいじっていない. そのかわり http://qiita.com/d9magai@github/items/b988f4c881cfa1261512 みたいにcygwinのetc/passwdを書…

AndroidでOpenCV(1)

をやらなきゃいけなくなったのですが、Androidはほぼノータッチだしそもそもjavaも全然わからない。 ということで一日目は環境構築から まずandroidのサイトからsdkをダウンロード http://developer.android.com/sdk/index.html けっこう時間がかかります。 …

vim再設定

会社のmacでiterm2+vimの環境を再構築。 ちょうど前のmacが壊れて.vimrcも保存してなかったので完全に最初からです。 とりあえず http://vimblog.hatenablog.com/entry/vimrc_plugin_management でneobundleのインストールとかして http://vimblog.hatenablo…

docomo Wi-FiのPC利用

開発とは全然関係ないのですが。。 最近携帯をsoftbank→docomoにしたのですが、キャンペーンでdocomoのWi-Fiサービス0001docomoが永年無料で使える状態にあることに気づきました。 調べてみたらスマホだけじゃなくPCからも使えるようなので、 http://ground-…

oscpack(c++)+xcode

OpenSoundControl(OSC)とはインターネットに用いられている通信方式(TCP/IP,UDP/IP) を活用することで柔軟な連携を可能にした通信プロトコルです。 元々は電子楽器を連携するために作られたようですが、現在ではその簡易さと柔軟性から様々なアプリケーショ…

Openframeworks+ofxOpenNI+Kinect

ついでにofxOpenNIも入れてみたのでメモ OFのaddonページで探すと恐らく一番評価が高いのが、 https://github.com/gameoverhack/ofxOpenNI です。 OpenNIとかNiTEとかのインストールは不要なようです。 ここのREADMEに使い方が書いてあるのでこれを参照しま…

OpenNI2+NiTE2+Xcode5+Xtion環境構築

引き続きNiTEのサンプルを動かしてみました。 NiTEのインストールは NiTEの最新版を落とす sudo ./install.sh ~/ .bash_profileにsource /Users/......./NiTEDevEnvironmentを追加 でサンプルが動くはずです。 Xcodeでの動かし方は OpenNI2をXcodeで動かした…

OpenNI2+Xcode5+Xtion環境構築

OpenNI2のインストールからサンプルをXcode5で動かすまでに詰まったのでメモ OpenNI2のインストールは http://blog.totakke.net/ を参考にしましょう。 やった手順は OpenNIのページから最新版を落とす sudo ./install.sh ~/.bash_profileにsource /Users/..…

ofAddListenerでエラーが出るの解決した

ofEventsのイベント通知メソッド ofAddListener、ofRemoveListenerで No matching function call to 'ofAddListener' と出てどうしようもなく困っていたのですが、 ofAddListener(ard.EInitialized, this, &testApp::setupArduino); の、setupArduinoを もと…

ofxOpenCV使ってみた

ofxOpenCV使ってみました。 使い方は、 アドオンにofxOpenCVを追加して、 Header Search Path にof_v0.8.0_osx_release/addons/ofxOpenCv/libs/opencv/includeを追加してライブラリのパスを通せばOKです。 使い方として一つ注意するのが、ほとんどのサイトで…

iOSでカメラプレビュー

iOSアプリでカメラプレビューの実装。 先輩に訪ねたところ、カメラは基本的にAVFoundation、画像処理はCoreMediaあたりを使って、OpenCVは糞ということです。 とりあえずまずカメラプレビューを実装してみます。 一番はやっぱりappleの公式ドキュメント http…

xcode5にしたときにOFのiOSコードでエラーが出る問題

xcodeを5にしたら今まで動いていたopenframeworks for iosのコードで "Use of undeclared identifier 'GL_STENCIL_INDEX'" とかいうエラーが出るようになりました。 解決策っぽいのがここのブログ http://verytired.hateblo.jp/entry/2013/10/16/144808 に乗…

macにopenframeworksを導入

macにofを入れたので一応メモ。 http://www.myu.ac.jp/~xkozima/lab/ofTutorial1.html を見れば基本できる。 インストールしてxcodeでビルドするだけ。 ただこれでexampleを実行しようとするとsuceedにはなるけど何もおこらない。 http://nazo-works.hatenab…

FFTの窓関数とオーバーラッピング

FFTの窓関数とオーバーラッピングが何なのかやっと分かったのでメモ まずここ http://www.toyo.co.jp/page.jsp?id=2399 を読むと FFTでは一定のブロック幅でデータを切り出して解析するけど、一つのブロックを並べたときに連続になるように切り出さないと(…

キー値コーディング

キー値コーディングとはオブジェクトが持つ情報を表す文字列をキーとして用いて間接的にその値にアクセスする仕組みです。基本的にはアクセサメソッドか宣言プロパティ、またはインスタンス変数が存在していれば、その名前を文字列として指定してアクセス可…

通知センター

何かの事象の発生を複数のオブジェクトに発信したいとき、通知と呼ばれるメッセージ送信方式を使います。 プログラム内に通知センタと呼ばれるオブジェクトが用意されており、あるオブジェクトがメッセージ送信の依頼を通知センタに送る(ポスト)と、その通…

デリゲート

デリゲートは簡単に言うと、あるオブジェクトが別のオブジェクトに処理を代行してもらう機構です。 既存のクラスに新しい機能を付け加えたり、情報を取得して利用するための柔軟性の高い仕組みとして便利に使うことができます。継承でも同様なことは実現でき…

ブロックオブジェクトまとめ

ブロックオブジェクトはObjective-CではなくC言語の機能として実装されています。 他のプログラミング言語ではクロージャとして知られている言語機能に相当します。 ・定義(ブロックリテラル) ^( 引数列 ) { 本体 } ・変数宣言 返り値の型 (^ブロック変数)…

無名カテゴリを用いたprivateなproperty宣言について

これもよく忘れるのでまとめときます まずカテゴリとは あるクラスの一部分のメソッドを実現するモジュールのこと で、具体的には @interface クラス名 (カテゴリ名) メソッド宣言; @end @implementation クラス名 (カテゴリ名) メソッドの定義; @end で書き…

プロパティ変遷まとめ

なんども忘れるので一回まとめときます ・昔 @interface A : NSObject { int member; //インスタンス宣言 } @property (retain) member; //プロパティ宣言 @end @implementation A : NSObject { @synthesize member; //セレクタ(インスタンス、アクセサ宣言…

objective-cでのprivate宣言

@interface A : NSObject { id protected; @public id public; @private id private; } - (id) method1; @end @implementation A { id private2; } - (id) method1{ ..... } このときprivate2はヘッダーに現れないので実質隠蔽されてprivateと同じ扱いになり…

YouTubeの元ファイルをダウンロードする方法

適当にググってでてきたパイソンスクリプトをつかってみたところ古くて使えませんでした。 Youtubeの仕様ってのは頻繁にかわるらしくがんばって解析した方法もすぐ使えなくなってしまうらしいです。 なんですが、youtube-dlっていう頻繁に更新されるyoutube…