MacにhomebrewでMySQL5.1.58インストールした
OSX Lionにosx-gcc-installerとCommand Line Tools for XCodeとHomebrewを入れてある。
MySQLほぼ使ったことなかったのでおっかなびっくりインストールした
brew install mysql++
brew tap homebrew/versions
brew search sql
brew install mysql51
portsが入ってるのでlinkを解決
brew link mysql51
unset TMPDIR
/usr/local/Cellar/mysql51/5.1.58/bin/mysql_install_db
LaunchAgent登録
cp /usr/local/Cellar/mysql51/5.1.58/com.mysql.mysqld.plist ~/Library/LaunchAgents/loadで起動、unloadで止めれる
launchctl load ~/Library/LaunchAgents/com.mysql.mysqld.plist
ps aux | grep mysql
test DBを消したりrootパスワード設定したりする
/usr/local/Cellar/mysql51/5.1.58/bin/mysql_secure_installation
新規ユーザー追加する
mysql -uroot -p
GRANT ALL on *.* TO shokai@"localhost" IDENTIFIED BY "password";
FLUSH PRIVILEGES;
ログインしてみる
mysql -ushokai -p
mysql> show databases;
GoldFishが日経BP Android Application Awardで優秀賞もらった
イエーイ
GoldFish
畑山さんがキャプチャしてくれた授賞式のようす
GoldFishという、Android NFCとJavaScriptで実世界GUIを作れるフレームワークを作っています。
- 橋本商会 » Interface(雑誌)に記事を書いた
- 橋本商会 » ORF2011で実世界コピペ、実世界ユーザインタフェース等を展示した
- 橋本商会 » AndroidとNFCで研究室の鍵を開けるシステムができた
- AndroidでNFCタグに触るとアプリが起動する
- アプリはJavaScriptで書く
- JSだけどAndroidの各種センサー使える(ネイティブとのブリッジがある)
- アプリはタグタッチ時にロードされるので、Marketでインストールしてない人もすぐ使える
最近よく作っているPhidgetsやプリンタや赤外線リモコンやシリアルポートやNFCタグリーダやらをHTTPサーバ化するのも、GoldFishの部品的な位置づけです。
目の前にある物を操作するなら直接操作でできるべきだし、そのためには物理的に存在する全てがHTTPでアクセスできた方がいい。
当日使ったスライド(pdf)
どうやらslide shareが容量のリミットに達したらしくアップロードできない・・
twitterのlistに自分を追加できない件
自分が作ったリストに自分を追加できない(昔はできた)
API使ったら追加できた。rubygemsのtwitterを使った場合
Twitter.list_add_member("test", "shokai")
ここに置いた
https://github.com/shokai/twitter-api-console/blob/master/cmds/add_list.rb
こんな感じで使えるはず
git clone git://github.com/shokai/twitter-api-console.git
cd twitter-api-console
gem install bundler
bundle install
cp sample.config.yml config.yml
ruby auth.rb
# oauthで認証される
ruby cmds/add_list.rb "shokai" "test"
顔アイコンでファイルアップロード
顔が描かれたアイコンにファイルをドラッグアンドドロップすると、相手のサーバーにファイルをアップロードできるアプリを作った。
複数のファイルもまとめてアップロードできる。
俺が作ったのは2種類あって、増井先生も作ってるので今5種類ぐらいある気がする。
■face-upload
https://github.com/shokai/face-upload
増井先生が作った研究室のサーバーにファイルをアップロードするscriptを参考にした。
アップロード先のサーバーとはscp/sshでやりとりする。sshでログインできるサーバー相手なら使えるはず。
git cloneして、icon.pngを自分用のに入れ替えて、config.ymlを修正して ./setup すればアプリが生成される。
例えば、SFC-CNSのサーバーにアップロードする場合、config.ymlはこう書く。
ssh : "shokai@ccz01.sfc.keio.ac.jp"
dir : "public_html/file/"
url : "http://web.sfc.keio.ac.jp/~shokai/file/"
アップローダのコードはPlatypusを使って作ったので超短くできた。
■face-app
https://github.com/shokai/face-app
アップロード先のサーバーとはHTTPでやりとりする。
サーバーはSinatra+MongoDBで実装されている。送信前にmd5を比較して、既にサーバーにあればファイルは送らずに、送信したという情報だけが書き込まれる。
専用のwebページとRSSがある。
feed-imでRSSをIMにしてケータイやGoogleTalkに送信するようにしているので、アップロードされると通知が来る。
自分の顔アプリを配布すればメールをオワコン化させれる気がしている。
実際俺のAndroidでパケット通信量を見ると、今週446MB使っているうち318MBがメールなのでメールが滅びればもっと電池も持つし回線も太くなるはずだ。
PhidgetsのサーボモーターをHTTPサーバー化した
phidgets-servo-serverというのを作った。
上のリンク先のgithubにphidgets関連のライブラリのインストール方法は書いてある。準備すると、
phidgets-servo-server --port 8901でサーバーが起動する。
eventmachine_httpserverでphidgets-ffiをHTTPから使えるようにしただけ。
使い方は簡単で、HTTP-GETでサーボモーターの現在の角度が取得できる
% curl http://localhost:8901HTTP-POSTで指定角度に回転する。
% curl -d '90' http://localhost:8901
リポジトリのWebUIディレクトリにHTML+JSでサーボを回すサンプルがある。
phidgets-servo-serverを起動したマシンのディスク上でWebブラウザで開けば、警告がでるがスライダーを回す毎にサーボが回る。
サーバーに置いたらcross domain問題があるのでそのままでは使えない。
Webブラウザ →(ajax)→ サーバー →(HTTP-POST)→ phidgets-servo-server のように中継するwebアプリをSinatraかなんかで書いて使う。
このような1つのマシンのUSBポートに接続する特殊なデバイスは、同時に複数のプログラムからアクセスする事ができなかったり、ハードウェアと同じマシン上でプログラムを実行しないとならないんだけどサーバー化してしまえばどこからでも使えるようになる。格段に実装しやすくなる。
特殊デバイスはどんどんサーバー化しよう。
他にも
- serial-http-gateway : シリアルポートをHTTPで読み書き
- NFCタグサーバー : IOデータのNFCタグリーダーをHTTP/WebSocket/Socketで使える

最近のコメント