245cloudとは
24分間だけ仕事して5分間だけ他の人と交換日記をするサービスです。
http://245cloud.com
「ポモドーロテクニック」という仕事術があるのですが
それをみんなでできるサービスです。
もともとは自分の会社がコンテンツ版GitHubみたいなサービス
「ラフノート」 https://ruffnote.com/
を開発していて
https://ruffnote.com/pandeiro245/245cloud/13475
みたいな感じでコンテンツ管理できます。っていう
デモをするために作ったのですが
http://attrip.jp/138267/
で取り上げてもらったりして
1日10時間やってくれる人が出てきたりして
幸せです。
245cloudの実装
parse.comやPubNubなどを使っていてサーバ側の実装はこれだけ。
https://github.com/pandeiro245/245cloud/blob/master/app.js
あとはクライアントJSのみで開発しています。
これでfacebookログインまで対応しているのですが
parse.comはfacebookに買収されているせいなのか、
Twitterログインができないのです...。
そういう意味でもMilkcocoaには超期待しています!
(それができたら全部Milkcocoaでできちゃうな!)
参考記事:http://thebridge.jp/2014/10/milkcocoa
とりあえず入れてみた
こちら、下記のコードを自分の作業しているHTMLに貼り付けておくと
245cloud.comで集中するボタンを押したらその貼り付けられたページを
持つブラウザタブが強制的に開くという仕組みです。
(ちなみにchromeやsafariはJSのalertがそういう強制力あるけど
Firefoxはそうならないらしい)
<script src="//cdn.mlkcca.com/v0.2.8/milkcocoa.js"></script>
<script>
var userId = '#{user.id}';
var milkcocoa = new MilkCocoa("https://io-ui2n0gy4p.mlkcca.com:443");
var spartaDataStore = milkcocoa.dataStore("sparta");
spartaDataStore.on("push",function(data){
if(data.value.userId == userId) {
alert('24分間頑張ってください!');
}
});
</script>
本体側はだれかが誰かが集中するボタンを押したら
押した人のuserIdをMilkcocoaに送っています。
で、貼り付けられた側はuserIdが自分だったらalertを出すという仕組み。
これ自体はちゃんと動いたのですが
PubNubが動かなくなったのでPubNub部分までMilkcocoa化することに。
PubNubで実装していたチャット部分もMilkcocoa化
https://github.com/pandeiro245/245cloud/pull/36/files
これだけの差分で動きました!
PubNubにおけるsend
はMilkcocoaではpush
なのと
送る時のパラメータの中でidは予約語だったので取り急ぎid2としました。
(後でリファクタリングする予定)
タイミング見て本番反映予定
今本番反映するとPubNubバージョンで使っている人がチャットできなくなってしまうので
誰もいなくなったタイミングで
$ git push heroku pubnub-to-mlkcca:master
して本番反映予定。
本番反映後、
よろしければ使ってみてバグ報告等頂けると幸いですw
そして、前述しましたが
クライアントJSだけでのTwitterログイン対応、何卒よろしくお願いします!