- 08
- Sep
做这个项目最初的想法是来自4月左右的谷奥新浪引起的“我抵制新浪微博”运动:
大致看了事件经过,又联想到经常在新浪微博上看到对删帖的抱怨突然间有了这个想法:微博或在各服务商上的东西说到底都不是自己的,我们的数据没有保障,只有独立博客才是完全属于自己,完全可以自主的。如今很多geek都有自己的独立博客和VPS,为什么不可以有完全独立属于自己的微博呢。
比较了一下微博和博客的比较大的区别发现,微博带有很强的社会性,也就是如今常说的SNS社区,最大的特点就互通和互动。传统博客虽然也有pinback和feed输入这样的功能,但相比微博或SNS,互动通知的功能基本为0。又可以看到,如今的社会关系型应用遍地开花,各各都想做成平台级中心:FB,G+,开心,人人,Qzone,微博…. 每个人可能都有5个以上的社会化网络应用的账号。
这个项目的目标之一就是去掉这些所谓平台级的中心,所有独立站点集合在一起组成一个新的真正的分布式的SNS平台。
目标:
1.站点公钥做为站点唯一身份认证
2.完全开放,统一API接口
3.多语言多平台实现并完全互通:ruby, php, c#, java
4.尽可能消除单一站点感觉,做到与中心化SNS平台感觉一致
5.多客户端,调用服务器的开放接口:
– 手机:ios, android, sb
– 网站:flash或js框架
– 其它应用
6.多人多角色多账户维护一个站点,更适合组织发布信息
7.展示/主题站:可将站点设置成纯聚合或主题站,本身不发布内容,仅做为某些话题站点聚合用
潜在问题:
1.数据的一致性
2.站点内容出现变动:删帖,修改站点名称等属性
3.由公私钥加密解密带来的效率问题
4.“扩大的圈子”,就是被你圈了的站点圈了的站点
5.应用提供。这个可由应用(app)提供商提供一个中心服务,站点请求并提交自己的公钥和好友列表等所有必要信息给提供商,由提供商来查找决定当前站点的好友
所用技术:Rails3 + mongodb (mongoid)
目前完成:
1.后台管理 (/admin)
2.站点的多身份管理:admin, editor, register. 第一个注册默认为super(唯一的super用户),super的admin身份不能移除
3.生成公私钥对;与其他站点交換公钥(互加)
4.发帖同步到已加站点
5.显示时间线时动态加载由其它站点推送过来的帖子的评论
6.直接在本站评论同步过来的帖子自动作为评论加到原站点原帖下
7.给各站点加圈归类
暂想到的todo:
1.所发帖子如所属某些特定的圈子或站点,自动分类投递
2.分类显示timeline,并设各timeline的权限
3.完善数据一致性:多验证返回值,多发通知
4.完善其它细节
5.同步发布到其它平台:微博,qzone等
6.重新设计UI和UE。目前使用的是twitter的bootstrap,现在的UI屎一样。强烈希望懂rails并对UI和UE有研究的同学一起来玩
过段时间可能会架两个演示站点,目前只有代码
地址:https://github.com/sdpfoue/refraction ,GPL授权
一张边想边写的草稿:http://min.us/m0PcAYkzU
欢迎大家一起讨论
Difference
太牛逼啦