0

MacにhomebrewでMySQL5.1.58インストールした

OSX Lionにosx-gcc-installerCommand Line Tools for XCodeHomebrewを入れてある。

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/
launchctl load ~/Library/LaunchAgents/com.mysql.mysqld.plist
ps aux | grep mysql
loadで起動、unloadで止めれる


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;

0

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"

0

顔アイコンでファイルアップロード

顔が描かれたアイコンにファイルをドラッグアンドドロップすると、相手のサーバーにファイルをアップロードできるアプリを作った。
複数のファイルもまとめてアップロードできる。

俺が作ったのは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がメールなのでメールが滅びればもっと電池も持つし回線も太くなるはずだ。

0

PhidgetsのサーボモーターをHTTPサーバー化した

phidgets-servo-serverというのを作った。

上のリンク先のgithubにphidgets関連のライブラリのインストール方法は書いてある。準備すると、

phidgets-servo-server --port 8901
でサーバーが起動する。
eventmachine_httpserverでphidgets-ffiをHTTPから使えるようにしただけ。

使い方は簡単で、HTTP-GETでサーボモーターの現在の角度が取得できる
% curl http://localhost:8901
HTTP-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ポートに接続する特殊なデバイスは、同時に複数のプログラムからアクセスする事ができなかったり、ハードウェアと同じマシン上でプログラムを実行しないとならないんだけどサーバー化してしまえばどこからでも使えるようになる。格段に実装しやすくなる。

特殊デバイスはどんどんサーバー化しよう。

他にも
なんかがある。

0

Twitter Stream APIで授業チャット作った

Twitterにfilter APIという単語で検索してstreamを受信できるAPIがあるので、授業のハッシュタグでfilterしてチャットを作った。
プログラムと起動方法は https://github.com/shokai/twitter-stream-api にある。

 

まず先週は、Terminalで動くバージョンを作って文字をデカくして全画面表示で教室の前に表示させて使ってた。
mitukiiiさんのuserstreamというgemのAPI参照先をfilter APIに変更したらすぐできた。@username の部分はrainbow で色を付けた。
twitterのログもテキストファイルで生成される。

 

次に今週はHTMLで表示させるようにした。Stream APIをem-websocketでwebsocketにして、文字をデカくした全画面表示SafariにWebSocketで表示させている。
表示用のHTMLとWebSocketサーバー起動方法は githubのtwitter-stream-api/viewer にある。