Authy - 二步验证的好助手

因为大家都知道的原因,我的 Google 账号一直都在用 Google Authenticator 进行二步验证。但是这货一直没怎么更新,连 iPhone 5 都没有支持,在 iOS 7 beta5 里更是连 app 标签都不显示了。

然而真正的问题是昨天突然发现 Authenticator 里的 Google 账号被清空了,成了一个全新安装的 app。本想着干脆退回去用短信验证好了,这时候 双叶君 @leafduo 推荐了 Authy 给我。

试用了一下,确实不错。当然,核心功能和 Authenticator 是一样的 :P

除了更新比 Authenticator 更新要勤快、对新设备支持更好之外,还有一个很有意思的功能:Mac 和移动设备通过蓝牙配对后,不必打开移动设备就可以在 Mac 上复制验证码。

官方介绍视频:

推荐试试,反正我已经把 Google Authenticator 请出 iPhone 了 XD

Fiddler for Chrome Extension

相信做网页开发的没人不知道 Win 下的神级调试程序 Fiddler 吧?一直以来,Fiddler 都只支持 Win 平台,丝毫没有想要跨平台的迹象,Mac 用户感觉有点苦……

然而 @welefen 同学写了一个基于 Chrome 的 Fiddler 扩展,虽然初始功能还比较弱,但至少可以对请求进行简单的修改,比如以下规则:

Fiddler: redirect Weibo to Twitter

这条规则就把到微博的访问重定向到 Twitter 上了。此外还能模拟 deply、cancel 什么的。

我这刚好有个案例—— Pow 和 CDN 协同开发的问题。

最近有一个项目,是用 AngularJS 写的,本地开发时用 Pow 托管,push 到 Git 仓库的时候会通过脚本自动同步到 CDN 服务器,本地资源 URL 和 CDN 是不一样的,所以就要么在 push 时跑脚本处理,要么手动修改,要么用 server + hosts(但 Pow 不行),而有了 Fiddler 就轻松了很多,比如:

在 Jade 这么写:

script(src='//cdn.example.com/js/app.js')

在 Fiddler 加入以下规则:

Combine Pow and CDN server with Fiddler

这样既可以使用到本地的高速,也不必考虑上服务器时 URL 的修改。

Fiddler for Chrome Exntesion 的主页:http://welefen.github.io/Fiddler/

Vox: 一个漂亮的音乐播放器

用了三年的 Mac,真的没用过一个让我满意的音乐播放器。

在 Win,有 Foobar、千千静听,连老头子 Winamp 也是不错的,反观 Mac,iTunes 太重,Cog 停止了开发,Winamp for Mac 就是一坨屎,其他的不是要求 iTunes 常驻内存就是必须用(它们的)音乐库。

我一度绝望,用着 Jing.fm、Xiami radio 等等来解决听歌问题,直到我遇上了 Vox,它给了我想要的一切:

  • 简洁的界面
  • 不需要加入音乐库即可播放歌曲
  • 菜单栏的控制工具条
  • 自动扫描 iTunes 曲库

Vox

目前正在公测,bug 什么的肯定有,但我相当看好它,推荐试试。

官方网站:http://coppertino.com/vox/

觉得微博界面太乱?试试 Simplify Weibo

最近在微博看信息比较多,发现微博的界面实在太乱,不能满足我「看」的需求,因此写了一个 Simplify Weibo,基于 Stylebot,预览图如下:

Simplify Weibo

PS: Retina 屏下字体效果会好很多哦!

→ 一篇无节操的 CSS3 3D Transform 解释文

张鑫旭写了一篇介绍 CSS3 3D transform 的文章,内容虽然有点掉节操的节奏,但通俗易懂。

雷柏 RATV 体验

TL;DR

鉴于 RATV 糟糕的播放能力,强烈建议不要购买:在线视频不管是标清还是高清都一直会出现失帧、跳帧现象,播放本地 4.3GB 1080P Eva 新剧场版 Q 虽然比在线视频情况要好很多,但仍有声画不同步的情况。


RATV 是雷柏在 2012 年 9 月 4 日公布的家庭影音娱乐产品,目的是「山寨」和成为中国的 Apple TV。

设计上非常简洁有爱,和 Apple TV 风格非常相近,其他内容可以看评测,我就不复述了,只是说说它的致命缺点。

RATV 使用了 1GHz 的单核心 Cortex-A8,虽然这颗心能满足 Android 4.0 和 RA.UI 的使用需求,操作流畅度也不错,但是在播放视频上,却非常的糟糕。

播放在线视频(优酷、迅雷等官方 app)会出现失帧、跳帧的情况,并且不是短暂,而是每几秒就一次,标清和高清都一样,即使把输出设置为最高 720P 也没有改善。

而本地视频,我使用了之前流出的 4.3GB 1080P mkv 格式的 Eva 新剧场版 Q 作为测试。播放时整体效果比在线视频要好不少,失帧、跳帧现象并不明显,但仍会有声画不同步的情况,并且内置字幕显示有问题,漏了部分字幕,显示的字幕会不停闪烁,外置的 srt 字幕无法识别编码,出来是乱码的。

卖点之一的触控遥控器操作起来灵敏度有问题,经常会误操作,比如滑动会识别成点击等等;右侧和下方的滚动条灵敏度不足,很难用。此外,因为可以兼容 Android apps,所以在一些 apps 界面上是和 RATV 不一样的,比如启动后的功能简介,用遥控器跳过实在麻烦,估计还是外接键鼠比较省事。

BTW,RATV 遥控器接收器是独立的,并不是内置在机子里,所以预设的两个 USB 口实际只有一个能用在外部存储。如果要接键鼠,呵呵。

RATV 在各大搜索引擎里,几乎清一色是是发布新闻、评测软文,有提到不足之处的文章极少,真是一款宣传做得很好的产品。

结论:论播放能力,RATV 还不如 ¥399 的 GIEC HD-330(不推荐购买),实在不值得买,¥500 以下价位的网络播放器,目前就只有 TP-LINK TPmini 比较值得买吧。

为什么耐克会被评为 2013 年最具创新力公司?

知乎上有人提了一个问题:「为什么耐克能够排在 Fast Company 最具创新力公司榜的第一位?」。

杨半仙的回答简单明了,归纳起来就是 Nike 敢于

  1. 重塑生产流程来满足产品的需求;
  2. 独立推广数字化非鞋类运动产品。

杨半仙结尾的两段话点出了这种行为在大型企业里是有多难得:

创业公司经常是光脚不怕穿鞋的,所以能够出其不意地做出一些创新,但是大公司所面临的确实另一种情况。对于耐克这样一家身处传统行业,一年营收 230 亿美元,员工超过 4 万的公司来说,任何伤筋动骨的改革都是不容易的。但是耐克做到了,Flyknit 是对上游供应链的一次革命,Fuelband 则是对耐克最擅长的鞋服业务的一次颠覆。耐克这家老牌的运动巨头正在跳脱出曾经所属的服装行业,转型为一家运动概念的科技公司。

相对于众多互联网创业者的白手起家,能够以革自己命的激进方式完成的创新不是更值得敬佩吗?不是每家大公司都有这样的勇气和魄力的。

PS:Nike 数字化过程可以看看「数字耐克重生记」。

《航天飞机设计定律》摘录

最近看了一篇文章,叫《航天飞机设计定律》,其中有些也适用于学习和工作,特摘录于此:

  1. 工程设计的实现依赖数据。没有数据的分析只是一种观点。
  2. 正确的设计出航天飞机需要你付出无限的努力。这就是为什么最好要考虑当遇到故障时的处理办法。
  3. 设计是一种迭代的过程。必要的迭代次数是在你目前正在做的次数上加一。在任何时候都是这样。
  4. 你付出最大努力做出的最好设计不可避免的会在最终的设计中变得毫无用处。要学会在失望中生存。
  5. 自然界中,最好的通常会在中部。对那些出现在极端点的最好的东西持怀疑态度。
  6. 没有足够的需要的信息永远不能成为令人信服的不开始分析的借口。
  7. 有怀疑,进行判断。情况紧急,那就猜测。但一定要在真实数据出来后重新进行整理,清理错误。
  8. 有时,最快的得到结果的方法是丢掉所有的东西,重新开始。
  9. 问题永远不会只有一种解决方案。尽管有很多是错误的。
  10. 设计要基于需求。不会有任何的理由可以让设计出的东西要比需求要求的“更好”。
  11. (Edison 定律)“更好”是”好”的敌人。
  12. (Shea 定律)改进一个设计切入点主要是体现在接口上。这也是主要的把事情搞砸的地方。
  13. 之前做过相似分析的人并没有一个直接的途径将他的智慧穿越岁月传递。因此没有理由相信他们的分析而不相信你的。更没有理由把他们的分析用在你的分析中。
  14. 出现在打印刊物中的分析事实上跟它们的正确性很可能没有关系。
  15. 过往经历是一种极好的判断设计是否现实的能力。但过于现实同样会毁了一个在其它方面有价值的设计。
  16. 机遇会严重的阻挡你成为比同领域里其它人聪明万倍的人。如果你的分析说你的最大速度是光速的两倍,你很可能发明了曲速引擎(warp drive),但更有可能的是你被怀疑有精神病。
  17. 一个坏的设计但有好的表现形式,它最终会被判死刑。一个好的设计但表现形式糟糕,它会被判死刑立即执行。
  18. (Larrabee 定律)你在课堂里听到的东西有一半都是垃圾。教育的目的是来让你知道哪一半是垃圾。
  19. 有疑问,写下来。
  20. 给开发定计划总像是在虚构一个小说,直到当你的客户因为你没有按计划完成而炒了你时你才知道它的意义。
  21. (Bowden 定律)寻找测试失败的可能,永远可能改进你的分析设计,这显示了你真的进行了边界分析。
  22. (Montemerlo 定律)不要做哑巴。
  23. (Varsi 定律)日程表只会向一个方向进行。
  24. (Tiesenhausen 定律)为了能精确的估计出最终开发程序需要的投入,你需要把最初估计时间乘以 π,把估计出的成本上的小数点向右移一位。
  25. (Tiesenhausen 定律)如果你愿意往一个新设计的系统中投入最大的精力,那就学习绘画。工程师设计出的飞行器最终会看起来有些艺术概念。
  26. (Mo 定律)你不可能通过爬到更高的树上来到达月亮。
  27. 太空是一个绝对无情的环境。如果你工程出了问题,有人会死(而且尽管你的分析大部分都是对的,也不会有任何的功劳…)

Google 和 Mozilla 宣布开发新的浏览器引擎,后 IE 时代来临?

在昨天(2013 年 4 月 3 日),Google 和 Mozilla 分别宣布要开发新的浏览器引擎,分别命名为 Blink 和 Servo。

Chromium 开发新引擎属于意料之中的事,毕竟 Google 的野心是称霸桌面(Chrome OS)和移动端(Android),不够强劲的引擎是不能满足他们的需求的。

Mozilla 开发新引擎就属于被迫无奈,好不容易在 IE 6 时代成功推广了 CSS3 等概念,让市场份额慢慢赶了上来,却被 WebKit 系列渔翁得利,Apple 和 Google 都是要资源有资源、要平台有平台的主,乔大爷一说 iOS 只能有 WebKit,Mozilla 奈何得了么?接着又因 Chrome 的快速启动、安装插件无需重启、强制静默更新等等措施而使 Firefox 从藐视 IE 的地位变成被藐视的处境(joking :P)。Opera 也是处于这样的窘境,最后妥协换用 WebKit 引擎。

Mozilla 顺利勾搭上三星这个有平台没资源的主也就顺理成章了。三星很明白跟着 Google 和微软混很难保证前景,比如 Android 阵营被 Apple 控告 Google 就爱莫能助,比如 Google 也大肆推广自有的 Android 品牌并收紧自由度,比如 Nokia 刚和微软合作没多久微软就宣布 WP 7 不能升 8,各种卖队友啊,所以三星一直没放弃拥有自主的平台。OS 虽然易做,但整个生态构建就很难,你必须保证开发者容易进入才能让这个生态健康成长——像 Android 使用 Java 作为开发语言就备受诟病,另一方面,由于 HTML5 的强势发展,三星很有可能希望有一套引擎来作为底层,就像 WebOS 那样——虽然不知道为什么不使用 WebKit 和 V8 而选择自主开发,可能担心会受限吧。总而言之,Mozilla 迫切地需要平台和资源,三星迫切地需要找到除 Android 和 WP 之外的出路。

个人而言,我并不关心谁开发新引擎、为什么开发新引擎,就像我在 Twitter 上说的:

其实哪个引擎我都不喜欢,搞一个强悍又标准的像 IE 6 那样垄断就好了(开发者心声

这真的是心声,我真的烦透了这样的事情:

div {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
var matches = (function(){
  var m = document.body.webkitMatchesSelector ||
          document.body.mozMatchesSelector ||
          document.body.oMatchesSelector ||
          document.body.msMatchesSelector ||
          document.body.matchesSelector
  return function ( elem, sel ) {
    m.call( elem, sel )
  };
})()

未来就可能这样:

div {
  -webkit-user-select: none;
  -blink-user-select: none;
  -whatever-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
var matches = (function(){
  var m = document.body.webkitMatchesSelector ||
          document.body.mozMatchesSelector ||
          document.body.oMatchesSelector ||
          document.body.msMatchesSelector ||
          document.body.blinkMatchesSelector ||
          document.body.whateverMatchesSelector ||
          document.body.matchesSelector
  return function ( elem, sel ) {
    m.call( elem, sel )
  };
})()

是不是想起了 IE 6 时代?

function getXMLHttpRequestObject() {
  var ref = null;
  if (window.XMLHttpRequest) {
      ref = new XMLHttpRequest();
  } else if (window.ActiveXObject) { // Older IE.
      ref = new ActiveXObject("MSXML2.XMLHTTP.3.0");
  }
  return ref;
}

此外,@ikarienator 提到:

WebKit 虽然名义上是 Apple 的项目,实际上代码量上 Google 的人是 Apple 的两倍多。所以如果 Google 的人离开 WebKit,那么 WebKit 的更新就必须依赖 Apple 投入更多人力了。总不能永远让他坐享其成。

我不认为 Apple 会把 Safari 迁移到新的引擎,至少会继续使用 WebKit 很长一段时间,那,缺少了 Google 的贡献,本来就比 Chrome 更新慢的 Safari 会变成怎样呢,也是一个未知问题。

Nimble Quest:贪食蛇版 RPG 游戏

最近发现一款好玩的小游戏——Nimble Quest。

Nimble Quest

玩的方式和 Nokia 手机经典游戏贪食蛇一样,通过滑动手指或方向键(OS X)来控制方向,规则也和贪食蛇一样,撞到障碍物人物会死亡,只不过由于融合了 RPG 要素,每个角色都有自己的血量,撞到障碍物或血量降到 0 就会死亡,而排头的队长死亡则 Game Over。

Nimble Quest 采用 IAP 收费,但是玩起来可以一分钱也不花,没有广告。游戏内类货币的物件分为两个,一个是宝石,一个为 token。宝石通过游戏内收集,用于升级角色和辅助道具;token 则可 IAP 购买,游戏过程中有极低机率掉落,主要用于 Game Over 时继续游戏或者购买队伍人员上限。

角色的解锁只要顺利推进进度即可,当然也可以 IAP 购买,而 Game Over 时如果不用 token 继续游戏就需要从头开始打,如果觉得进度不错,建议直接用 token 继续吧。

角色的升级有两个途径,杀怪和使用宝石。

作为一款悠闲小游,很适合无聊时玩玩;同时提供 iOS 和 Mac 版本:

iOS:https://itunes.apple.com/cn/app/id583638819?mt=8

Mac:https://itunes.apple.com/cn/app/id598685044?mt=12