FC2ブログ

Wifi接続しているiMacを有線LANのハブにしたかった

なんでわざわざと言う話はありますけど、無線LANのインタフェースを持っていない機器をいじっていたので。しかも、自宅のルータはPPPoEの認証が掛かっていて、その機器じゃそんなもの越えられなかったのでした。

この辺を見つつ試行錯誤。

ネットワークをMacとiPhoneで共有 [Mac OSの使い方] All About

iMacはWi-Fi経由でAirMac→インターネットってなっているから、共有するのは「Wi-Fi」ってことね。で、つなげる機器はEthernetポート経由で接続したいから相手のコンピュータが使用するポートは「Ethernet」に。ここで一つ勘違いしていたのは「ケーブルはクロスである必要がない」ってことでした。

設定画面はこんな感じで普通のLANケーブルでiMac背面のEthernetポートと機器を接続したらうまくいきました。

networksetting


実験@2012/01/14 17:19   | 0 comments | 0 trackbacks |

スライム肉まんがあらわれた!

ここんところ話題となっているスライム肉まんを買ってみた訳ですが。

CIMG0216

以前に作ったこちらのアプリで試してみたいと思っていたのでした。

iTunes App Store で見つかる iPhone、iPod touch (第4世代)、iPad 2 Wi-Fi、iPad 2 Wi-Fi + 3G 対応 AR.PG

こんな感じに。
IMG_2322

こんな感じで頂いた訳ですが。
IMG_2323


実験@2011/12/03 15:25   | 0 comments | 0 trackbacks |

MacでKinect

ひょんなことから手を付けてみた。

準備したのはこちら。あ、Macはすでにあります。

Xbox 360 Kinect センサーXbox 360 Kinect センサー
(2010/11/20)
Xbox 360

商品詳細を見る


教科書その1。

KINECTセンサープログラミングKINECTセンサープログラミング
(2011/05)
中村 薫

商品詳細を見る


教科書その2。

キネクト ハッカーズマニュアルキネクト ハッカーズマニュアル
(2011/08/26)
西林 孝 + 小野 憲史 共著

商品詳細を見る


iMacで一通り動いた後で、MacBook Airでも動かそうとしたらいろいろ手順が必要なんだなと再認識。

まず、MacPortsが必要。こちらの右上のDownloadから落としてインストール。あ、XCodeとX11も別途必要とのこと。

The MacPorts Project -- Home

その後で、以下をターミナルで実行して追加。

sudo port install git-core
sudo port install libtool
sudo port install libusb-devel +universal
sudo port install cmake

で、一冊目の教科書に書いてあった「Homebrew」での「libfreenect」のインストール、iMac(Lion)では上手く行ったのですよ。

ruby -e "$(curl -fsSLk https://gist.github.com/raw/323731/install_homebrew.rb)"
cd /usr/local/Library/Formula/
curl --insecure -O "https://raw.github.com/OpenKinect/libfreenect/master/platform/osx/homebrew/libfreenect.rb"
curl --insecure -O https://raw.github.com/OpenKinect/libfreenect/master/platform/osx/homebrew/libusb-freenect.rb
brew install libfreenect

んが、Macbook Air(Snow Leopard)だと、どうしてもインストールでこける。なので、二冊目で紹介されていたソースコードからのインストールに方針変更。

git clone https://github.com/OpenKinect/libfreenect.git
cd libfreenect/
mkdir build
cd build/
cmake ..
make
sudo make install

で、この後でライブラリOpenNIとドライバSensorKinect、ミドルウェアのNITEをインストールします。この辺りのファイルはこちらからダウンロードしました。OpenNIのページからNITEなどもダウンロードできるのですけど、なぜかライセンスキーが受け付けられないのでした。

フロントページ - Kinect-wiki

OpenNI、SensorKinect、NITEのインストール方法は本やネットに載っているので行けたので割愛します。基本的に解凍、./install.shの流れ。

そして、ビルド環境の構築。これも結構ハマりました。この時点で同梱されているサンプルは動いていたので高をくくってたのですが。XCodeでビルドする際にOpenCVが必要なのに気づくのに時間が掛かりました…。

一冊目の教科書の最後の「補遺」に手順が記載されています。こちらからダウンロードして解凍して、cmake、make、sudo make installでオッケー。

Link|Download | OpenCV.jp

その後で、XCodeの設定です。OpenNI、NITEの設定に加えて、OpenCVの設定が必要となります。

まず、ビルドするプロジェクトにライブラリを追加します。

xcode1

追加するライブラリなのですが、二冊目の教科書では/opt/local/lib以下にあるものをと書いてあったのですが、なぜか自分の環境ではそこに無い…。なので、OpenCVをビルドした場所のlib以下にあったもの(バージョン番号あり)をリネームして追加しました。動いているけどこれでいいのか?ちなみに上の写真の「.dylib」がそれです。

ビルドの設定はこちら。日本語で言うところの「他のリンカーフラグ」で二つのフラグを追加します。一冊目の教科書であったOpenCV系のフラグは設定しておくとなぜかリンクできませんでした。

xcode2

最後にヘッダ検索パス。三つ追加します。ライブラリ検索パスはライブラリ追加の際に自動補完された様子。

xcode3

これでビルドが通るようになりました。Kinectは公式SDKが出たりして動きが速いので、この記事もすぐに時代遅れになりそうですな。


実験@2011/11/13 15:30   | 0 comments | 0 trackbacks |

php.iniをいじっていたら携帯サイトでセッションが保持されなくなった

久々にPHPではまった…。

レンタルサーバのphp.iniをあーだこーだしていたら、携帯サイトでのセッション引き回しができなくなっていた訳で。いろいろ設定確認してもなんともならず。グーグル先生に訪ねてみたら、こちらのつぶやきに遭遇。

Twitter / @w.A.D.a: PHP 5.3.2の session.use_onl ...

PHP 5.3.2の session.use_only_cookies のデフォルトは1のようだ。明示的に0にしないと、session.use_trans_sid=1 が効かない。クッキーの効かない携帯は取扱が難しい。

ソースコード見てみたら、ini_setで上記設定がしていなかったことに気づいて、明示的に指定したら復活したのでした。むむー、これまではたまたま動いていたってことなのね。。


実験@2011/05/28 11:49   | 0 comments | 0 trackbacks |

ChromeOSをMacで動かしてみた

思った以上に簡単に動いた。

chromeOS

こちらから。
Run Google Chrome OS within Mac OS X

こちらにたどり着いて、あとは書いてある通りに。ただ、途中の「Virtual Media Manager」のくだりには遭遇せずに、Chrome OSのマシンイメージを選択したらサクサクと。

Want To Try Out Google Chrome OS For Yourself? Here's How.

使ってみたのですが、普段の利用であれば全然問題にならない機能セットだなーと。「何でもできる」は「何にもできない」ってことをしみじみ感じた次第。しばらく遊んでみようっと。

ただ、米国キーボードなのと音をどう出すかは調査しないとなー。


実験@2011/02/14 19:56   | 0 comments | 0 trackbacks |

PEAR::DBで大きいバイナリをinsertしようとしたら「Unknown Error」

Unknown Errorじゃわからねーってことで、他に情報は無いかと調べてたらこちらの手段がありました。いつもはgetMessageで済ましていたのでした。

わすれるまえのきろく DB Error: unknown error

そして、getDebugInfo()を使ってログに吐き出させてみたら…。あ、バイナリ自身もログに吐かれるので、読むのに難儀しました。いろいろ試行錯誤してたら、Firefoxで読めたと言う。

で、出てたのがこちら。

Got a packet bigger than ‘max_allowed_packet’ bytes

がー、前にも遭遇した覚えのあるメッセージ。

で、こちらの対策を講じたら解決と。

Got a packet bigger than ‘max_allowed_packet’ bytes : カフェ関連サイトのシステム開発日記


実験@2010/03/16 21:08   | 0 comments | 0 trackbacks |

CakePHPでpaginateを使ってハマる

そもそもこれまであまりpaginateを使ったことがなかったので、使用に至るまでにも時間食ってしまった。

で、やっとこ動き始めたと思ったら。

「PHP Fatal error: Allowed memory size of xxxxx bytes exhausted」

のエラー多発。動いたり動かなかったり。なんでだーと思ってたら、不要なアソシエーションしすぎてました。

$this->Model->recursive = -1;

で解決した次第。

つか、recursiveのことも良く分かってないんですよねー。こちらを読んで勉強しよう。

recursiveの正しい理解CakePHP - CPA-LABテクニカル


実験@2010/03/12 22:25   | 0 comments | 0 trackbacks |

Google Analyticsではまった…

画面を覆うdiv要素…。クリックすらできねー。

で、解決策がこちら。

rono23: ga_shade に画面が覆われる

WindowsのFirefox3で白い半透明のDIVで覆われる原因はGoogle Analyticsだった - 我流天性 がらくた屋

助かりましたー。


実験@2010/03/06 23:08   | 0 comments | 0 trackbacks |

[AS3]マウスカーソルを動かさないと消えてくれるボタン

ってのを作りたかったのです。再生中とかに目障りと言うものあって。こちらのサイトで実装しました。

フォトストリーム ?眠っている写真に息吹を?

その際には、こちらが大変参考になりました。

Think About it: onMouseMove(1)

ただ、どうやらこちらActionScript2.0の模様。ActionScript3.0だといろいろ変わってるんだなーと。

気付いたところでは:


  1. アルファ値の設定は「_alpha」ではなくて「alpha」に
  2. アルファ値の範囲は「100?0」ではなくて「1?0」に
  3. タイマー機構も「setInterval」から「Timer」へ
などなど。

この辺りを七転八倒しながら翻訳しつつこんな感じに。btn_maximizeは消したり出したりしたいボタンです。


var speed:Number = 0.1;
var A:Number = 1;

//中心の円が徐々に消える
function transMc(event:Event):void {
btn_maximize.alpha += ( A - btn_maximize.alpha) * speed;
if ( btn_maximize.alpha < 0.1){
btn_maximize.alpha = 0;
btn_maximize.visible = false;
soundBtn.visible = false;
Mouse.hide();
}
if ( btn_maximize.alpha > 0.98){
btn_maximize.alpha = 1;
}
}


//ここがsetIntervalによって呼び出され、上記transMcが繰り返される
function setTrans(e:TimerEvent):void {
A = 0;
addEventListener(Event.ENTER_FRAME, transMc);
}

//マウスが動く度に読み出される
addEventListener('mouseMove', resetButtonDispapper);

// タイマーリセット
function resetButtonDispapper(e:MouseEvent):void {
_timer.reset();
A = 1;

btn_maximize.visible = true;
btn_maximize.alpha = 0.9;
Mouse.show();

addEventListener(Event.ENTER_FRAME, setEnterframe);
}

// 4秒周期でボタンを非表示するタイミングを伺う
var _timer:Timer = new Timer(6000);

//マウスが動いているか止まっているかの判定の核
function setEnterframe(event:Event):void {
if(!_timer.running){
//addEventListenerで関数とイベントを関連付ける
_timer.addEventListener(TimerEvent.TIMER, setTrans);
//タイマースタート
_timer.start();
}
}

ロジック自体は参照先からほとんど変えてませんので説明はそちらを見ていただければと。


実験@2009/12/23 23:01   | 0 comments | 0 trackbacks |

CakePHPのsaveメソッドってinsertなのupdateなの?

って、多くの方がハマられている模様。自分もそうでしたが。

memo-space :: CakePHP日記:insertかupdateか

cakePHPの$model->saveにおけるUpdateとInsert - 「最果て」の支部

この辺りを読んでいると、保存対象の「id」がセットされているかどうかで切り分けていると。そこまでは理解。で、ハマったのは、モデルの主キーが「id」じゃない場合。モデルで$primaryKeyを指定してうまく行く場合もあれば、そうでない場合も。配列覗いても主キーはセットされてるしなー。

で、結局配列で指定されているかよりも、上のリンク先で書かれているように「$this->Post->id = $id;」と言う形で指定したら上手く行った訳で。この場合、モデルの主キーは「ID」だったのですが。cakeの中まで見ていないのでなんともですけど。時間があるときに調べてみよう。


実験@2009/12/18 09:26   | 0 comments | 0 trackbacks |

«  | HOME |  »

いろいろ作ったり

プロフィール

icot

Author:icot
総合電気メーカで働く会社員でしたがいい年にも関わらずコンサルに転職。お酒、ジョギング、音楽、本、料理をこよなく愛してます。ここでは、日々感じた事を書き連ねるとともに、いろいろ実験してみたりしてます。
icotfeels[at]gmail.com

これまでに感じたこと