对比摩拜和ofo,我觉得ofo更牛逼

最近给客户做了一个类似摩拜的应用, 采用的智能锁的技术方案与摩拜的类似: 锁带GSM和GPRS及蓝牙, 自动同步位置到服务器, 带太阳能充电, 由服务器控制开锁。
这种方案的成本比较高,每辆自行车的成本要上千元。
另外一种市场上的共享自行车ofo, 使用的是锁是比较简单的密码锁, 内部带有一个gsm的芯片, 可以进行不太精确的gsm定位, 精确的定位可由使用者的app提供。不使用太阳能电池板, 内置一块不需要充电的电池, 由于与服务器的通信数量特别少(或许只需要在开锁和关锁时向服务器提交一下数据即可),所以电池的使用时间可以达到数月甚至一年以上。

两家公司的技术方案相比,其实ofo是更牛逼的,主要包含以下几点:
1. 用户体验: ofo的体验肯定会差一点,因为服务器是通过提供密码,由用户手工输入密码开锁(两种可能,一是采用类似银行口令卡的模式,通过精确的时间来算出当前的密码;或者还有更简单的,就是类似短信验证码的方式, 服务器随机生成一个开锁码, 用户在锁上输入码后,由锁提交到服务器验证, 验证通过后开锁);而摩拜是由服务器控制开锁, 只需要app上操作好即可自动开锁, 看起来更牛;

2. 前期成本: ofo的方案肯定比摩拜低很多, 成本低可以带来更加友好的商业模式(比如你300押金我只要100, 你1元1小时我5毛等等等), 光这一点, 完全可以抵掉用户的软件体验上的不足;

3. 后期运维成本: 可能从直观上看来, ofo的运维成本是比摩拜高很多的, 但实际确不一定。

  • 首先,由于智能锁是运行在恶劣环境下的,所以报废率肯定都是比较高的。摩拜的锁技术含量更高,涉及的芯片和外围设备比较多,出现问题的概率肯定高于ofo的简单锁;而且摩拜换一把锁、一个太阳能电池板的成本也是大大高于ofo的成本;
  • 其次,摩拜因为是服务器控制开锁, 所以锁与服务器是要保持一个长连接状态,而ofo不需要与服务器保持长连接, 当用户输入了密码时、锁成功打开或者锁关上以后,再向服务器发个短连接交互一下状态即可, 如果一辆车不使用, ofo基本可以做到不交互数据,那么给运营商的流量费用,绝对是大大低于摩拜的;
  • 最后是电池,很多人觉得ofo到批量换电池的时候肯定是个大成本, 其实也不一定:ofo就算每一年所有车统一换一次低成本的不可充电电池, 成本也不一定比摩拜换电池的成本高, 在恶劣环境下运行的充电电池,我感觉差不多也就一年左右的寿命。而且如果ofo所有自行车统一换电池, 或许一两个月的工人就全部搞定, 而摩拜,估计得长期养着大量维护人员去给自行车换电池。

所以,从这些方面比起来, 我认为目前ofo其实是更胜一筹的。您觉得呢?

Careless Whisper – 纪念去世的歌手 George Michael

I feel so unsure
As I take your hand and lead you to the dance floor
As the music dies…
Something in your eyes
Calls to mind a silver screen
And all its sad goodbyes
I’m never gonna dance again
Guilty feet have got no rhythm
Though it’s easy to pretend
I know you’re not a fool
I should have known better than to cheat a friend
And waste a chance that I’d been given
So I’m never gonna dance again
The way I danced with you
Time can never mend
The careless whisper of a good friend
To the heart and mind
If your answer’s kind…
There’s no comfort in the truth
Pain is all you’ll find
I’m never gonna dance again
Guilty feet have got no rhythm
Though it’s easy to pretend
I know you’re not a fool
I should have known better than to cheat a friend
And waste a chance that I’d been given
So I’m never gonna dance again
The way I danced with you
Tonight the music seems so loud
I wish that we could lose this crowd
Maybe it’s better this way
We’d hurt each other with the things we want to say
We could have been so good together
We could have lived this dance forever…
But now, who’s gonna dance with me?
Please stay
I’m never gonna dance again
Guilty feet have got no rhythm
Though it’s easy to pretend
I know you’re not a fool
I should have known better than to cheat a friend
And waste a chance that I’d been given
So I’m never gonna dance again
The way I danced with you
Now that you’re gone…
Was what I did so wrong?
So wrong that you had to leave me alone?

让libvlc视频截图时不显示预览图和路径

libvlc基本具有vlc的所有功能,同时能方便的嵌入到应用程序中, 所以很适合做视频相关类的应用.
当使用libvlc截图的时候, 可以发现它会在视频上显示一个略缩图和地址几秒钟, 对于程序自动截屏而言,很影响体验.
看头文件看了很久也没有找到办法,本来打算下个vlc源码来改改重新编译了,结果后来发现VLC客户端上,有关闭略缩图和地址的选项,就顺着找了一会, 发现这两个选项可以在创建vlc实例(调用libvlc_new函数)的时候设置.
libvlc_new的定义:

libvlc_instance_t * 	libvlc_new (int argc, const char *const *argv);

从参数上可以感觉这个argc和argv一般都是传应用程序启动参数,所以就试着使用了vlc的启动参数来关闭预览和字幕,

char* argv[2]={"--no-osd","--no-snapshot-preview"}; //不显示字幕和截图预览,可参考VLC的启动参数设置更多的参数.
inst=libvlc_new(2,argv);

果然有效,搞定!

自动IOS风格的HTML5滚动控件

ios上html5要做滚动, 可以用css实现, 用如下两句
overflow:scroll;
-webkit-overflow-scrolling:touch;
即可实现滚动, 不过目前这种控件有个小问题, 当滚动条停在最上方或最下方停止时, 再上拉或下拉, 不会滚动,而是将事件传递给了父容器; 另外,上面的css在android上没有弹性效果.
对于第一个问题,在ios上也有解决办法,即当用户开始触摸控件时,判断如果滚动位置在顶部,设置滚动位置在1像素,如果滚动位置在底部,设置滚动位置在底部像素-1
不过,目前的方式,还是只能让滚动用起来方便了,要做下拉刷新的话就真的没办法了.
所以我自己实现了一个滚动控件,效果基本上按ios的scroll控件做的, 可以做下拉的效果,而且ios和android效果一样.
可以扫下面的二维码试试.

页面地址:

http://www.hoverlees.com/diy/scroll.html

大学时候做的flash

记得是读大二的时候, 学校搞flash比赛,我就做了这个flash,后来主办方叫我去参加活动并上台讲解一下,我又觉得实在做得太差,不好意思上台去讲,就没有去,现在帖出来怀念一下了. 🙂 现在看起来,这个剧本编得真的是太幼稚了(其实当时也觉得)..
文件比较大,2MB多,要等一下才会出来(当时做的加载好像有问题,嘿嘿)
Continue reading “大学时候做的flash”

Facebook如何知道你可能认识的人

Facebook经常会向注册用户推荐可能认识的人,而且你会发现他推荐的人还挺对的,而且大多数是自己的同事,这种是怎么做到的呢?
其实实现也挺简单的,虽然我下面说的不一定是他们真正的做法:

1. Facebook向所有用户的注册邮箱发送广告邮件(或者这种推荐邮件),邮件里插入一张图片,图片中包含接收人的帐户信息. 这是常用的统计方法之一,实现方式比如在邮件里插入 <img src=’path/to/static?uid=收件人的uid’>
2. 当你查看这封邮件时,会自动请求这个地址,服务器可以得到你的ip和用户id关联的信息
3. 如果你的同事也注册了facebook,他也会收到广告邮件,如果他也点开来看了一下的话,同样可以搜集到他的uid对应他所在的ip. 如果你们都在公司上班的时候看了广告邮件,你们的ip一般来说就是一样的.
4. 如果同一天内,同一个ip里有不同的用户看了广告邮件,那他们是认识的人的可能性是非常大的.