基于WEBRTC的免插件点到点视频分享

WebRTC

WebRTC 是基于浏览器的实时通信协议(Real-Time Communications),通过WebRTC,可以在浏览器中直接进行点到点视频聊天和数据通信。WebRTC目前尚在协议开发中,但是已经在Chrome stable版和Firefox’s Nightly中实现,并且 能够互相通信了。通过WebRTC,浏览器将不仅限于和服务器通行,它将能够直接在浏览器间传输数据。通过 STUN 协议,即使有防火墙也没问题。

DEMO: https://webrtc-experiment.appspot.com/ (需翻墙)

但是,WebRTC作为发布不到一年的协议,还存在非常多的问题:

  • 文档少
  • 协议繁琐,实现与W3C标准有出入
  • 实现不完全,Chrome下的DateChannel不支持可靠传输,只能传text,还有长度限制
  • 浏览器依赖

但是相信随着标准慢慢完善,支持的实现变多,这样点到点的通信方式一定能给Web带来更多的可能。

入门建议:参照 W3C标准 文档,对比 https://apprtc.appspot.com/ 实现自行尝试(apprtc是封装最浅的实现版本)。另外需要指出的是,HTML5 Rocks 的文档是错误的。

WebRTC-video

GitHub: https://github.com/binux/webrtc_video
DEMO: http://webrtc.binux.me/

这是一个用WebRTC的DataChannel特性实现的,免插件,基于浏览器P2P文件/视频分享DEMO。
只要打开浏览器就能使用,每个访问者都是分享节点:

  • 免插件,仅依赖浏览器随时随地地文件分享
  • HTML5视频边下边播
  • Peer-to-Peer通信,像BitTorrent一样在多用户间加速分享,传输
  • 支持额外的HTTP,WebSocket节点,保证内容随时可用,并能保持P2P加速的特性
  • 通信数据量统计,等等。。。

注:

  • 视频边下边播需要MP4、webm、ogg格式
  • HTTP节点需要CORS来源允许
  • WebSocket节点,文件置于 project_path/data/ 下,文件名只能包含英文和数字,通过 ws://host:port/file/filename 添加

因为WebRTC协议还非常不完善,这个项目更多的是demo性质的,但是这个demo展现了WEB+P2P的更多可能。

Google+评论组件测试

Google+给Blogger添加了Google+的评论组件,看起来可以移植到别的地方,于是:
  <div id='gpluscomments'></div>
  <script src='https://apis.google.com/js/plusone.js' type='text/javascript'></script>
  <script>
    gapi.comments.render('gpluscomments', {href: '{{ site.production_url }}{{ page.url }}', first_party_property: 'BLOGGER', view_type: 'FILTERED_POSTMOD'})
  </script>




Google Apps Script

#google你个sb 把Google Reader关闭了,就像 #google你个sb 里说的,永远不要相信有什么免费的东西,即使他是google提供的。比如今天介绍的这个 Google Apps Script,请不要相信它能长久运行下去,请准备好迁移的方案。

Google Apps Script

简称GAS,是一个JavaScript脚本驱动的云平台,通过GAS可以方便的连接Google和其他各种服务,执行各种自动化的任务。

平台API提供了:

  • Google服务访问(mail, docs, charts, maps, calendar甚至还有翻译)
  • 界面
  • 数据库
  • urlfetch!(可以post、可以修改header、可以修改body、甚至有一个帮助使用OAuth的类)
  • 定时任务触发器
  • 可以发布为web apps,可以获得get、post参数等

甚至还有cache、lock,俨然要什么有什么啊!虽然有配额限制,虽然HTML会被 重新渲染,无法在页面中完整使用JavaScript,但是,冲着免费的 urlfetch定时任务 就大有可为啊!我能想到的各种应用可以有:

  • RSS转烧
  • 各种HTTP代理,转换,绕过
  • 数据统计、采集
  • 各种WebHook的定时触发、检测HTTP服务是不是挂了
  • 各种ifttt功能(特别是google自己的服务之间的)
  • 建一个简单的动态网站,或者给自己的静态网站提供直接API

只要你想,大有可为。
API请参考 Default Services,上方的 Execution Methods for Scripts 等文章对环境以及常见的需求有一些介绍,建议阅读。

应用示例

RSS转烧

虽然HTML输出有限制,但 XML、JSON、JSONP 却没有限制的,配合 urlfetch,非常适合用来做RSS转烧,全文输出(这里建议用上缓存或者数据存储)等功能。

示例:
yande.re高画质转烧 / 源码
发布指南:

  1. 阅读Deploying Your Script as a Web App
  2. 以自己的身份执行、访问权限为允许匿名

说明:这里展示的是图站 yande.re 的sample画质输出以及title修改,这是我的第一个脚本,这里稍微尝试了一下环境以及urlfetch的功能,应该还是蛮简单的。更多转烧:

danbooru 源码
konachan 源码

reader2gplus

自动将Google Reader中加星的条目同步到Google+上(反正Google Reader也快死了。。这个也用不了多久了吧。。)

示例:reader2gplus / 源码
发布指南:

  1. 阅读Deploying Your Script as a Web App
  2. 首先前往 Google API Console 生成一个API,启用Google+ API,并为其生成一个Web Apps的key
  3. 在script脚本编辑页面中,Project Properties新建两个key:client_id, client_secret,填写上一步生成的key和secret
  4. 发布为以访问者身份执行,分享您fork的脚本与访问权限相一致

说明:这里使用了 urlfetch 更多的参数,实现了OAuth2.0认证,尝试了一下 Google+的新API,使用了 定时任务 、GET参数、界面 以及 用户数据存储

迅雷离线预约下载

自动将迅雷离线中完成的任务添加到Aria2上

示例:xunlei2aria2 / 源码

使用说明:

  1. 访问示例页面,将【】中的脚本拖拽到书签栏中保存
  2. 访问迅雷离线页面(建议先新建一个文件夹),登陆,点击书签
  3. 选择要预约的文件夹,填写JSON-RPC地址需要能被外网访问
  4. 将需要下载到aria2中的任务添加或移动到预约的文件夹中,当文件从文件夹消失,文件已经被添加到aria2中了

发布指南:

  1. 阅读Deploying Your Script as a Web App
  2. 发布为以访问者身份执行,分享您fork的脚本与访问权限相一致

说明:终于到了一个比较实用的脚本了,这里演示的是urlfetch真正有用的地方——跨API操作。所有的东西在reader2gplus中都已经用过了,但是结构要比reader2gplus好不少。

总结

GAS比起 GAE 更加简单,但是功能足够强大,通过在线的调试器,写一两行代码比GAE要轻松不少。我JavaScript是在 w3school 学的,完全野生程序猿,在这里只是为了抛砖引玉,希望您能通过 GAS 能玩出更多有意思的东西。

收图自动化

从小开始,我对“自动”特别着迷。小时候,去妈妈的工厂帮忙折包装盒,每个动作都是一样的,很无聊。我就想,如果我发明一个机器,重复折纸盒的动作,那我不就可以什么都不干,在家领工资了吗?于是,你也知道了,这份工作叫程序员。。。

虽然机器在不断地自动运行,我也没能在家什么都不干就领到工资。互联网的大潮下,自动变得如此简单,甚至有人说,互联网就是印钞机,只要程序还在执行,编写程序的人都放半年假都能赚钱。所以说,程序员这个职业是自我毁灭的,他们从来不自己干活,他们编写自动的程序不断填充着这个世界,直到他们自己都不再被需要。这不,互联网已被竞相涌入的程序员和他们的程序占满,“用户需求”已经不能满足程序员的饥渴,他们又开始创造需求,这个世界上只要有互联网公司和快递公司就好了,他们想。

但是,那些后来者发现,所有现实世界都几乎都被搬上网了,那我们干什么?很快,他们将目光看向了现实世界,他们开始将互联网搬到现实中,智能手机,pad,glass。终于,他们开始在自己的现实世界中自我毁灭了,自动驾驶,智能家居——他们开始将带电的,不带电的,能动的,不能动的物体自动化。嗯,对了,这有个很热的名字——物联网。

主人早上好,北京的雾霾天气已被weather block plus拦截,室内健康指数98分,已打败73.5%的北京用户,赶快购买空气清新插件提升您的健康指数。室内壁纸5D(试用版)已根据您的喜好为您挑选了壁纸,10分钟广告后显示。冰箱余菜已更新,您是要先洗澡,先吃早餐还是打一炮?【选择】使用左手还是右手?(67.8%的用户推荐使用左手)【选择】今日热榜 / Kimer猜 。。。。。。

##正文
咳咳,扯远了,虽然G+福利满地,但是有收不全、怕收重、格式命名不统一,还是喜欢自己收图。最常用的方案是用支持内容离线的RSS阅读器订阅图站的RSS。我订阅的有

使用google reader订阅,看到好图就标星,月底统一收。但是每个月几百张收到手软。现在使用的方案是:

  1. google reader订阅,标星
  2. ifttt将url追加到dropbox的文件里
  3. 脚本收图
    ifttt

###脚本收图

虽然我用google reader进行筛选,但是直接全收也是可以的,方法也类似。
首先,创建一个ifttt账号,现在应该已经开放注册了吧。

  1. 登陆 > Create a Recipe
  2. this选择 Google Reader Trigger选择 New starred item(如果全收,this选择 Feed Trigger选 New feed item
  3. then选择Dropbox Trigger选Append to a text file
  4. file name: (每个网站一个文件) content:
  5. 保存即可

现在在reader中标星,过一会就会收到Dropbox的文件更新提示。

第二步就是脚本(需要linux shell环境支持),脚本支持yande.re,konachan.com,danbooru三个站的原图地址解析(当原图大于5M时下载jpg格式)

  1. 下载 imgurl.py
  2. 在下载目录执行python imgurl.py [刚才ifttt创建的文件] | xargs -n 1 wget

###自动分享到pinterest

您需要一台VPS
本来是打算自动分享到pinterest和G+的,但是G+没有publish的API,唯一的write API——moments还没上线。等有了再弄吧。

  1. VPS环境需要python2.6+,easy_install requests tornado
  2. VPS下载 img_share.py
  3. 登陆http://pinterest.com/,提取cookie
  4. 访问http://pinterest.com/me/ > 查看源码,查找<ul class="BoardListUl">,提取要发布到board的id,在对应的<li data属性中,比如215258125878507279这样的串
  5. python img_share.py --pinterest_cookie='[第3步]' --pinterest_board=[第4步] 命令启动
  6. 登陆ifttt > Create a Recipe
  7. this选择 Google Reader Trigger选择 New starred item
  8. then选择 WordPress Blog URL: ifttt.captnemo.in, Username,password任意填。Trigger选Create a post
  9. Title: , Body: , Tags: http://[VPS的hostname/ip]:8888/

保存即可,比如我的pinterest。img_share.py可以设置--username --password验证(与第8步对应,不设置不验证),可以--port修改端口。具体python img_share.py --help 即可。

本文写于2013年02月31日

Ingress Portals Map

ingress是google出品的AR(增强现实)游戏,与以往的游戏不同的是,它真的需要在现实中移动,进行游戏。在《奋斗吧!系统工程师》也有看到类似的。虽然处于内测之中,在拿到激活码之后的第一个周末就难道地去天安门(游戏场景集中)转了一下午,玩起来还蛮新鲜的。

但是,这样就满足了吗?!不,出门活动这种和冬天、北京天气、宅等等词汇完全不搭的游戏方式,怎么看都适合我。于是,我开始了自己的decode ingress。

好吧,其实中间有很多内容,写一半又删掉了,但是有宣扬cheat的嫌疑,作为结论:bot是存在的,以上。
ingress_hello_world

作为可以公开的成果:

###ingress portals map

  • 每15分钟更新一次
  • 直接显示等级,中立portal
  • 显示24小时内即将变为中立portal

    求图标!

北京:http://s.binux.me/ingress/beijing.kmz | 坐标修正
香港:http://s.binux.me/ingress/hongkong.kmz | 坐标修正
台湾:http://s.binux.me/ingress/taiwan.kmz | 坐标修正
天津:http://s.binux.me/ingress/tianjin.kmz | 坐标修正
上海:http://s.binux.me/ingress/shanghai.kmz | 坐标修正
成都:http://s.binux.me/ingress/cengdu.kmz | 坐标修正
桂林:http://s.binux.me/ingress/guilin.kmz | 坐标修正
广州:http://s.binux.me/ingress/guangzhou.kmz | 坐标修正
重庆:http://s.binux.me/ingress/congqing.kmz | 坐标修正
澳门:http://s.binux.me/ingress/macao.kmz | 坐标修正
武汉:http://s.binux.me/ingress/wuhan.kmz | 坐标修正
南京:http://s.binux.me/ingress/nanjing.kmz | 坐标修正
郑州:http://s.binux.me/ingress/zhengzhou.kmz | 坐标修正
太原:http://s.binux.me/ingress/taiyuan.kmz | 坐标修正
哈尔滨:http://s.binux.me/ingress/taiyuan.kmz | 坐标修正
西安:http://s.binux.me/ingress/xian.kmz | 坐标修正
济南:http://s.binux.me/ingress/jinan.kmz | 坐标修正
海南:http://s.binux.me/ingress/hainan.kmz | 坐标修正
长沙:http://s.binux.me/ingress/changsha.kmz | 坐标修正
南宁:http://s.binux.me/ingress/nanning.kmz | 坐标修正
昆明:http://s.binux.me/ingress/kunming.kmz | 坐标修正
长春:http://s.binux.me/ingress/changchun.kmz | 坐标修正
汕头:http://s.binux.me/ingress/shantou.kmz | 坐标修正
廊坊:http://s.binux.me/ingress/langfang.kmz | 坐标修正
徐州:http://s.binux.me/ingress/xuzhou.kmz | 坐标修正
德阳:http://s.binux.me/ingress/deyang.kmz | 坐标修正
茂名:http://s.binux.me/ingress/maoming.kmz | 坐标修正
厦门:http://s.binux.me/ingress/xiamen.kmz | 坐标修正

如果上述城市范围不正确,或者您所在的城市不在上述列表中,欢迎留言。

如何添加到我的地图:
打开http://maps.google.com/ > 点击“我的地点” > 新建 > 导入。在弹出框内填入如:http://s.binux.me/ingress/beijing.kmz的url即可。
西安:http://s.binux.me/ingress/taiyuan.kmz | 坐标修正

QQ旋风离线页面 磁力链支持

我QQ不是会员,也没法挂旋风等级,所以一直以来我都没有用过QQ旋风,虽然它有免费的离线空间。直到后来外包的一个项目要求一些QQ旋风的功能,才不得不开通了90天试用。
比起迅雷来说,QQ旋风离线页面还真是够干净啊,同样干净的还有它的资源库。。东西实在太少了。

功能上,BT没分文件夹就不吐槽了。磁力链都不支持,G+有人向疼讯提意见,结果是直接被删除?!https://plus.google.com/u/1/117337204302188511498/posts/PMrLviy1inx

好吧,自己动手丰衣足食

使用了以下一些东西:

地址:https://gist.github.com/4585941 使用LGPL许可证发布
书签:xf_magnet

aria2配置示例

其实面对man的存在,写什么总结完全没有必要,一切宝藏都在manual。不过反正不会有人会读就是了。那我就写一下吧

##基础
首先,aria2或者叫做aria2c,它是一个下载器,嗯。
常用的两种模式是直接下载,比如 aria2c "http://host/file.zip" 这样,当它完成后就退出了,就像wget(估计你们也不知道吧)那样。
另一种就是rpc server模式,特点就是,它启动之后什么都不干,然后等着从rpc接口添加任务,下载完也不退出,而是一直等着。对,就像迅雷干的那样,当然,它不会上传你硬盘上的数据。

因为第一种方式要每次都敲命令,除非像我是原生nix,没有命令行就没法用电脑,估计也没什么用,于是常用的就是第二种。一般启动命令是 aria2c --enable-rpc --rpc-listen-all=true --rpc-allow-origin-all -c -D 。但是,其实*这个命令是不好的!不要使用这种启动方式。
首先,用命令方式导致配置不方便修改保存,-D导致无法看到出错信息。

推荐启动方式是使用配置文件 $HOME/.aria2/aria2.conf 。嗯,我知道路由上这个地址是无法修改或者重启后会丢失的,那么你可以放到别的地方,然后 aria2c --conf-path=<PATH> 注意 <PATH> 填完整路径,因为鬼知道这个程序是从那个路径启动的。-D (用于后台执行, 这样ssh断开连接后程序不会退出) 只有在确认OK之后在启动脚本中使用。

以下方案都基于配置文件方式

##图形界面
aria2是没有图形界面的,已知相对好用的图形界面有:

请使用chrome,firefox等现代浏览器访问。这两个东西都可以直接使用,除了看英文不爽以外,有什么必要下载回来使用?(吐槽:难道你们就不觉得webui-aria2的title总是被压成好几行,诡异的配色(对,说的就是那个蓝色背景,深蓝颜色的 Use custom IP and port settings 按钮)不难看吗?)
这两个东西上的配置在重启后都会失效! 使用配置文件保存您的设置

图形界面基本都基于RPC模式,所以一定确定开启了RPC,IP端口可访问,并且在管理器中填写了正确的地址

##配置

请将所有配置置于配置文件中
只有在确认配置无误后再加上 -D 选项
请阅读出错信息!

###RPC
需要1.14及以上版本
http://aria2.sourceforge.net/manual/en/html/aria2c.html#rpc-options

1
2
3
4
5
6
7
8
#允许rpc
enable-rpc=true
#允许所有来源, web界面跨域权限需要
rpc-allow-origin-all=true
#允许非外部访问
rpc-listen-all=true
#RPC端口, 仅当默认端口被占用时修改
#rpc-listen-port=6800

如果启动时出现 Initializing EpollEventPoll failed. 或相似错误, 在配置中加上 event-poll=select

使用token验证(建议使用,需要1.18.4以上版本,帐号密码方式将在后续版本中停用!)

1
2
# token验证
rpc-secret=secret

在YAAW中使用 http://token:[email protected]:port/jsonrpc 的地址格式设置secret.

如果需要使用密码验证(需要1.15.2以上,1.18.6以下版本)

1
2
3
4
#用户名
rpc-user=username
#密码
rpc-passwd=passwd

在YAAW中使用 http://username:[email protected]:port/jsonrpc 的地址格式设置密码.
对于RPC模式来说, 界面和后端是分离的, 只要给后端设置密码即可. 前端认证什么的是毫无意义的.
如果你比较新潮, 在YAAW中也可以用 ws:// 为前缀,只用websocket连接aria2c, 如果你不知道websocket是什么. 那就算了.

###速度相关

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#最大同时下载数(任务数), 路由建议值: 3
max-concurrent-downloads=5
#断点续传
continue=true
#同服务器连接数
max-connection-per-server=5
#最小文件分片大小, 下载线程数上限取决于能分出多少片, 对于小文件重要
min-split-size=10M
#单文件最大线程数, 路由建议值: 5
split=10
#下载速度限制
max-overall-download-limit=0
#单文件速度限制
max-download-limit=0
#上传速度限制
max-overall-upload-limit=0
#单文件速度限制
max-upload-limit=0
#断开速度过慢的连接
#lowest-speed-limit=0
#验证用,需要1.16.1之后的release版本
#referer=*

###进度保存相关
aria2c只有在正常退出时(ctrl-c), 突然断电是无法保存进度的. 在第一次使用的时候会出现会话文件不存在的错误, 手动创建一个空文件即可. 如果您编写的是自动启动脚本, 在启动aria2前加上 touch aria2.session 这句命令.

1
2
3
4
input-file=/some/where/aria2.session
save-session=/some/where/aria2.session
#定时保存会话,需要1.16.1之后的release版
#save-session-interval=60

###磁盘相关

1
2
3
4
5
6
7
8
9
#文件保存路径, 默认为当前启动位置
dir=/some/where
#文件缓存, 使用内置的文件缓存, 如果你不相信Linux内核文件缓存和磁盘内置缓存时使用, 需要1.16及以上版本
#disk-cache=0
#另一种Linux文件缓存方式, 使用前确保您使用的内核支持此选项, 需要1.15及以上版本(?)
#enable-mmap=true
#文件预分配, 能有效降低文件碎片, 提高磁盘性能. 缺点是预分配时间较长
#所需时间 none < falloc ? trunc << prealloc, falloc和trunc需要文件系统和内核支持
file-allocation=prealloc

###BT相关
http://aria2.sourceforge.net/manual/en/html/aria2c.html#bittorrent-specific-options

1
2
3
4
5
6
7
8
9
10
11
12
#启用本地节点查找
bt-enable-lpd=true
#添加额外的tracker
#bt-tracker=<URI>,…
#单种子最大连接数
#bt-max-peers=55
#强制加密, 防迅雷必备
#bt-require-crypto=true
#当下载的文件是一个种子(以.torrent结尾)时, 自动下载BT
follow-torrent=true
#BT监听端口, 当端口屏蔽时使用
#listen-port=6881-6999

aria2亦可以用于PT下载, 下载的关键在于伪装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#不确定是否需要,为保险起见,need more test
enable-dht=false
bt-enable-lpd=false
enable-peer-exchange=false
#修改特征
user-agent=uTorrent/2210(25130)
peer-id-prefix=-UT2210-
#修改做种设置, 允许做种
seed-ratio=0
#保存会话
force-save=true
bt-hash-check-seed=true
bt-seed-unverified=true
bt-save-metadata=true
#定时保存会话,需要1.16.1之后的某个release版本(比如1.16.2)
#save-session-interval=60

##常见问题

###Internal server error
手动访问你的JSON-RPC地址 http://hostname:port/jsonrpc?jsoncallback=1 如果没有返回, 请确认aria2是否启动以及连通性. 如果aria2在路由器后或没有公网IP, 请做好端口映射.

###如何使用迅雷离线

http://binux.github.com/ThunderLixianExporter/
安装后, 在迅雷离线的右上角的设置中设置RPC地址.
提供chrome插件: https://chrome.google.com/webstore/detail/thunderlixianassistant/eehlmkfpnagoieibahhcghphdbjcdmen

###如何使用旋风离线(QQ离线)
http://userscripts.org/scripts/show/142624安装脚本后, 在旋风离线页面使用.

###如何安装aria2
我也不知道, 看你的box上有什么开源包管理器之类的东西, 有什么用什么. 如果没有, google之, 如果没有, 放弃吧.

迅雷随便下

本来这个漏洞在loli.lu关闭的时候就已经被发现,并且也告知了相关人员,而且我一度认为这个漏洞是有意留下的。后来经+李草木提起,发现为数众多的迅雷云点播破解依旧用的是这个漏洞。既然要玩,就要玩票大的。

  • 任意地址,任意类型,立即提取下载链接
  • 管开坑,不管填
  • 您可能需要登陆一个迅雷账号(不需要VIP)

再也不会听不完电台了——萌否电台播放列表

一直不爽萌否电台的播放器,跳歌一首首跳太慢,mp3加载不了直接挂掉。想听个一百多首歌的电台不是时间不够,就是听到一半挂掉了。

于是,我有一个愿望,听完一次这个电台!。于是就有了这货

screenshot

代码依旧在github上,这里有一个书签,在播放页点一下即可使用:

javascript:void((function(){var d=document;var s=d.createElement('script');s.src='https://raw.github.com/gist/4087765/playlist.js';s.id='binux_js';d.body.appendChild(s)})())

#google你个sb

由于 #google你个sb 的原因,我的整个账号被disable了。任何与这个账号相关的包括但不限于:

  • 各种方式登陆
  • 各种服务
  • 各种同步失效
  • 向此邮箱发信=>被退信

都无法使用,能用的:

  • google code、chrome store上的项目能访问
  • app engine上的程序在运行

这已经是一周之前的事情了,期间无数次发信,论坛求助,没有收到任何回复。不过鉴于一年前起,所有账号都开始使用@binux.me进行注册,所有密码都使用lastpass接管,并且还是有挺多服务是允许修改邮箱的。一周之内竟然没有太大影响,只要我不忘记邮箱密码,应该就没问题。

###永远不要相信免费(包括google)
这是我领悟到的第一个道理。在disable的开始几天,我每天都发信,每天都幻想google会如何回复,会不会直接拒绝恢复账号。一个周末过去了,我发现我错了,非常严重的错了。那个“与我们联系”页面完全如同一个静态页面,无论你提交什么,它都会杉杉有礼地告诉你,“您的信息已收到”。然后,就没有然后了。

永远不要相信有什么免费的东西,即使他是google提供的。一个产品如果对你来说是免费的,这意味着你根本不是他们的客户,你只是他们的商品。他们从你这里拿走他们想要的隐私,然后卖给他们的客户。他们在乎的是大数量的用户,在乎的是他们的客户,一两个的用户他们根本不在乎。一旦你变得和其他用户不一样,他们会做的不过是抛弃你,就像那些残次的商品一样。

当有一天,他们终止了你的服务,没有警告,不负责任(这已经写在协议里了哦,亲)。然后,什么都没有了。你原以为所有的,创造的,购买的。没有了,都没有了。假如你用着chromebook,16G硬盘,云。。呵呵(有比“呵呵”更好的词吗?!)

###鸡蛋不要放在一个篮子里
这个google账号我已经用了7年,我注册时gmail还没有开始内测(这有另一个悲剧:因为我的账号早于gmail注册,开通gmail时,我惊讶的发现我的用户名不能用于gmail,必须另取一个。于是,我一开始注册的用户名占用了我的常用用户名,得到一个永远收不到任何信件的地址。这个问题直到7年之后的今天,也没有人想要去解决。)。我所有的服务都和它绑定在一起:

  • 我不再能收到gmail信件
  • 无法取回google+上都加了谁
  • 与原来的联系人聊天还要重新发送邀请
  • 不能看到自己网站的统计数据
  • 不能访问docs上的文档
  • chrome strore上的插件不再更新
  • app engine上的代码拿不下来
  • reader里面30w的阅读记录
  • 手机同步,购买的应用
  • chrome数据同步,openid登陆的网站

都是一个账号。好吧,不过是再也不能贴出2005年的搜索记录罢了。

###少于三个备份的数据是不存在的
云同步,云备份安全吗?这就是一个活生生的例子。云服务不过是使用权而已,什么你的还是你的,这仅限于它存在的情况下,不存在于你自己控制的,拥有所有权的永久存储设备上的数据都是不存在的!而且,为了防止存储设备损坏,至少要三个备份,分别存放于大于1千米范围外的地方。

云同步,云备份看起来多么美好。自家的硬盘有可能:

  • 使用时间过长,挂
  • 不小心清空,挂
  • 高空坠落,挂
  • 产品品质,挂

但是,比起不知道谁执行了rm /,不知道哪个机房电力供应故障,不知道什么时候倒闭。自家的硬盘至少挂得清清白白,挂也挂在自己手上,挂了也是自家的坏硬盘


总之,google你个sb,我跟你没玩!

我已经在考虑写一个自动提交与我们联系的脚本,每天一发,直到google玩完,要么我玩完。