0

githubのmasterを1週間巻き戻した

1週間ぐらい作業した内容をgithubのmasterにpushした後、よく考えたらこれ全部別プロジェクトにしたほうがいい・・
という事に気づき、1週間前の状態に戻した。


せっかくの1週間分の作業を失ってしまうのも何なので、あとで別プロジェクトにコピペするために黒歴史ブランチとしてとっておく事にした。
git push origin :masterでgithubのmasterを削除してpushしなおせばいいかと思ったけど、なぜかmasterだけは削除できなかった。


masterを黒歴史branchにする

git checkout master
git checkout -b black_history
git push origin black_history
git branch -D master
黒歴史をgithubにもpushした。ローカルのmasterは削除。


1週間前の状態をmasterにする

git logでどこまで戻るか探してから
git checkout 3c39b88a29797649b35c3e3e8b5923a86773c8d4
git checkout -b master


masterを書き換える

git push -f origin HEAD:master
これで今のブランチのHEADをリモート(github)のmasterにできるらしい


wifi_locationを巻き戻せた。

0

githubのリポジトリ数が100超えた

去年のゴールデンウィークの増井研合宿でgithubの使い方を山プルギス氏に教えてもらってから18ヶ月、ついに公開リポジトリ数が100個に達した。


ぜんぜんgithub上で他人のプロジェクトに首を突っ込んだりしていなかったので、100個のうちほぼ全てが自分で開始したプロジェクトという事になる。だいたい週1つのペースでリポジトリが増えていったわけか


100個目のプロジェクトは、notify-lightだった。
これは家の電灯が点いているかどうかを明るさのセンサーで監視して、Skypeのshokai_botというアカウントが俺に通知してくれるシステム。便利である。防犯的な意味で。
60行ぐらいのRubyスクリプト1ファイルだけで実装されている。


botからSkypeのグループチャットでこういうのが来る。


センサーを使うのもSkypeへの通知も、すでに便利なツールが作ってあって全部HTTPでできる。
ruby notify-light.rb -light http://localhost:8783/ -skype http://localhost:8787/
という風に実行すればセンサーを定期的に監視してSkypeに送信できる。


■しくみ
CdSという明るさが検出できるセンサーをArduino等に適当に接続し、シリアル通信してMacやLinuxに送る。
serial-http-gatewayというプロジェクトを以前作ってあるので、これを使うとシリアルポートから受信したデータを溜めてjson形式で吐き出すHTTPサーバーが作れる。


読んだjsonにはタイムスタンプとセンサーの値(明るさが)入っているので、一定時間内の平均値を計算してノイズを消し、Skypeに通知する。

Skypeへの通知は先日作ったskype-chat-gatewayというのを使っている。
1年ぐらい前にskype-socket-gatewayというのを作ったけどwindows用だったのでもう使わなくなったし、socketよりもhttpから使えたほうが便利なのと、chat_idという概念がわかりにくいので1チャット1プロセス1portが対応するように作りなおした。
また、MacとLinuxでSkype APIを使う仕組みが違うので、それぞれ別々に実装した。

Linux版はまだちょっと微妙なんだけど、Mac版は出来がよくてWebブラウザからSkype Chatができるサーバーとかも付いているので便利です。