上传速度过慢,对App使用习惯的影响

用过iOS版Dropbox的人,都清楚App有个功能叫做Camera Upload,顾名思义就是将手机内的照片上传到Dropbox中,来保存不同设备中的照片。要是只有几张照片,只需要几分钟的时间照片就同步完成了。一旦有视频,就要用上个把小时了。这样一来,这个功能在国内这样的网络环境中就无法实现了。国内网速普遍都是1M的上传速度,仅有100KB/s。你可以算一下,理想情况下1M文件需要10秒,实际情况加上线路问题能达到50KB/s就不错了,所需时间又大大增加。

发表在 未分类 | 2 条评论

天津联通20M光纤实测linode各个服务器速度

大家都清楚,我们一般看服务器的快慢,直接在服务器上放一个文件看下载速度就知道了。究其本质,到一个服务器的速度快慢,是需要看经过了多少个路由,也就是传统意义上的线路好坏。国内的网络环境有着一个本质性的因素——垄断,举一个最简单的例子大家就都明白了,玩过网络游戏的都知道一句话——世界上最远的距离,莫过于网通(被联通合并)和电信之间的距离,同在国内联通用户和电信用户玩一个游戏却不能实现,这不是垄断是什么?太多太多此类客观现实,着实让人感觉不到快乐。

还有一个不快乐点,大家都清楚。联通光纤进入了20M时代,但是上传速度只有1M,下载2.3M/s,上传却只有1.2M/s。在铜线时代,上传速度的定义是因为铜线制约的,光纤本身就是对等网,为什么还有这个上传限制,我们不得而知。

下面让我们看一下具体的测试结果(测速地址):

Tokyo, JP Tokyo, JP Yes Place this Linode here
London, UK London, England, UK Yes Place this Linode here
Newark, NJ Newark, NJ, USA Yes Place this Linode here
Atlanta, GA Atlanta, GA, USA Yes Place this Linode here
Dallas, TX Dallas, TX, USA Yes Place this Linode here
Fremont, CA Fremont, CA, USA Yes Place this Linode here

日本本州岛東部的都市东京Tokyo, JP 几乎满速
大不列顛及北愛爾蘭聯合王國和英格蘭的首都伦敦London, UK 从三五百K/S,折腾到2M/S美國新澤西州紐華克Newark, NJ 1M/S到2M/S波动
美国佐治亚州首府及最大城市亚特兰大Atlanta, GA 1M/S到1.5M/S波动
美国德克萨斯州达拉斯Dallas, TX 几乎满速
美國加州舊金山灣區東南部的費利蒙市Fremont, CA 1.5M/S到满速之间徘徊

发表在 未分类 | 留下评论

USB 2.0 浪费了我们多少时间? USB 3.0 带来了什么?

来看如图数据,USB 2.0写入最高28MB/s,读取41MB/s。举一个最简单的例子,1GB大小的文件,写入需要36s,读取需要25s;再来进一步,1TB大小的文件,这种情况很常见吧,现在有很多提供高清视频拷贝服务的商家,写入需要36864s,合计10小时一刻钟,读取需要25600s,合计需要7小时。这个例子很常见吧,甚至有时候写入速度达不到USB 2.0的28MB/s,这样时间会更加漫长。况且现在2TB、3TB的硬盘随处可见吧?

让我们再来看看USB 3.0的传输数据带宽有多大,写入373MB/s,读取432MB/s。看到这个数据先别高兴得太早。硬盘的写入速度是有瓶颈的,细心的人一定记得,当我们用千兆网传输高清视频,写入速度差不多是70MB/s。从苹果发布最新款rMBPSSD硬盘写入应该是500MB/s,这也说明,也只有性能比较好一点的SSD才会榨干USB 3.0的传输速度。传统7200rpm SATA硬盘写入速度也就是70MB/s,即便可以达到最高写入速度,在USB 3.0情况下,速度比以往提高了1.5倍速度,这个效率还是很可观的。1TB写入,4小时,1TB读取,3小时。

综上,USB 3.0 比 USB 2.0节省了60%的时间,提高1.5倍速度。在现今,这个追求效率的世界里,赶紧抛弃USB 2.0的设备吧。我更加期待的是USB 3.0的SSD移动硬盘,那样提高的速度是12倍,节省时间1000%以上了。想想吧,1TB 十几分钟就搞定了,是不是很期待呢?

发表在 未分类 | 留下评论

Web开发和App开发的几点不同

1.Web开发有10年以上的技术积淀,App开发从2009年火了起来以后到现在不超过5年的积淀。

2.Web开发弱耦合+积淀比较深,调用类的时候,考虑比较全面,出现bug的可能性会低很多;App开发强耦合+积淀较浅,共用类如果设计不好,后期频繁修改,相关功能出现bug的概率大大提高。

3.Web开发测试较容易,App开发测试因为强耦合性,对于开发人员测试不熟悉的功能上可能要学习非自己开发的功能,尤其开发人员用在测试上的时间越多,对于开发成本上的损失越大,独立测试人员才是正道。

4.Web开发功能点修改产生bug的几率要明显低于App开发,体现在一个功能点的调用上,App要比Web多出几倍以上。如果这个功能点修改,很可能关联的几个功能都跑不通,对相关功能修改后产生bug的概率又要高很多,所以对于测试会产生很大的压力。

5.Web开发需求可以快速调整,App开发需求如果快速调整,会对强耦合的功能造成致命的打击,有些地方甚至要完全重写。

发表在 未分类 | 留下评论

Linksys E4200 1.0 真是折腾的不二选择

1.0      Broadcom BCM4718 @ 480 MHz      64 MB      16 MB      2.4 GHz, 5 GHz
300Mbit/s, 450Mbit/s     01C10C      FCC ID: Q87-E4200
DD-WRT Work in Progress DD-WRT Forum
Tomato supported. TomatoUSB Tomato RAF Toastman Shibby

用Asus RT-N16也有一年二个月的时间了,作为折腾了不下十台路由器的人,最近心里又燃起了折腾的火花,一番调查之后,发现很多牛人都推荐E4200,于是开始搜集资料。其实,一款便于折腾的路由器主要还是在于它的CPU和做工,E4200和N16都采用了BCM4718的CPU,后者不支持5G。搜集了BCM4718 CPU的路由器,如下:

Linksys
WRT610N      v2      WIP      brcm4716 brcm47xx w/ GK patches      Broadcom BCM4718      480      8      64      Broadcom (integrated) + BCM4322 (onboard)      11b/g/n + 11a/n      5 gigE      Yes      1x 2.0      No
E3000      1.0      WIP      brcm4716 bcrm47xx w/ GK patches      Broadcom BCM4718      480      8      64      Broadcom (integrated) + BCM4322 (onboard)      11b/g/n + 11a/n      5 gigE      Yes      1x 2.0      No

Asus
RT-N16      1      brcm47xx      Broadcom BCM4718      480      32      128      Broadcom (integrated)      11b/g/n      5 gigE      2x 2.0

Belkin
Play Max (F7D4301)      1      brcm47xx      Broadcom BCM4718      480      8      64      Broadcom (integrated) + BCM43224      11b/g/n + 11a/n      5 gigE      2x 2.0
Play (F7D4302)      1      brcm47xx      Broadcom BCM4718      480      8      64      Broadcom (integrated) + BCM43224      11b/g/n + 11a/n      5      1x 2.0

Linksys
E3200      1.0      brcm47xx      Broadcom BCM47186      500      16      64      Broadcom (integrated) + BCM43236 (onboard)      11b/g/n + 11a/n      5 gigE      1x 2.0
E4200      1.0      brcm47xx      Broadcom BCM4718      480      16      64      Broadcom (integrated) + BCM4331 (onboard)      11b/g/n + 11a/n      5 gigE      1x 2.0

Netgear
WNDR3400      ?      brcm47xx      Broadcom BCM4718      480      8      64      Broadcom (integrated) + BCM43224 (onboard)      11b/g/n + 11a/n      5      1x 2.0
WNDR4000      ?      brcm47xx      Broadcom BCM4718      480      8      64      Broadcom (integrated) + BCM4331 (onboard)      11b/g/n + 11a/n      5 gigE      1x 2.0

可以看到,E4200算是这其中,做工把握最好的。海外转运的两本书快到了后,就开始E4200的海购,到时候再分享一下我的海购初体验。

发表在 未分类 | 一条评论

延长iPhone电池使用寿命和每次充满电后使用时间的方法

Apple全线的产品使用的是锂离子电池,这种电池充电上不拘泥于你是否完全用完电或只用了50%就开始充电了。计算的方法,是用一种叫充电周期的术语。

就是说,不管你每次使用iPhone,使用了百分之多少的电量,最终只有加一起达到100%才真正算是一个周期。达到一个周期的时候,你的电池的最高电量会随之减少。一般,当锂离子电池的电量低于50%的时候,如果你的iPhone在保修期内,苹果公司会免费给你更换锂离子电池,所以说锂离子电池最终是要被更换的。

而大多时候,我们充电的时候也不必在乎,是否这次充电就要充满。充电一般会经历两个过程:快速充电,这个期间充电电流会保持最高状态,设备会迅速将iPhone电量补充到80%;这个时候会进入,连续式补充充电状态,充电电流和电量会随着设备充电电量的升高随之降低的。所以说,不管你的iPhone电量是多少,只要插上充电器,这一切是自动进行的,不用担心电流和电量会具体会维持在什么程度。

有一点必须注意的是,一定要使用Apple指定的充电设备充电,比如iPhone的标配充电器输出电压/电流是:5V/1A,如果你用的充电设备输出电压和电流的标准,大于这个标准是肯定会对iPhone造成损害的,一般的USB输出电压/电流是:5V/0.5A,也在这个标准之下,也是没有问题的。而现在很多移动电源输出电压/电流是:5V/2A,这个要是给iPhone充电可是会造成损害的,大家自己权衡一下吧。虽然iPad的充电器输出电压/电流是:5.1V/2.1A,但是iPad一样是可以在5V/0.5A和5V/1A下良好充电,如果为了追求快速而使用高电流输出的移动电源,势必肯定会对设备本身和电池造成损害的。

然而到底那些因素会影响充满电后的使用时间呢?

1.定位:很多程序会使用定位服务,如果不是特别常用的程序关闭相应的定位服务或完全关闭定位服务会减少电量的消耗
2.推送通知:推送通知是一个杀手级的电量消耗因素,推送服务会频繁与apple服务器联络以快速响应推送,如果你的手机开启推送服务过多,或某个单一服务推送过于频繁,最终的结果就是你手机的电量会快速消耗完。
3.WLAN:如果不用就关闭掉。
4.蓝牙:如果不用就关闭掉。
5.信号不稳定或无信号覆盖的地方:频繁的切换3G/2G信号和超找信号会快速消耗电量,解决方法是使用飞行模式暂时挡一下。
6.2G比3G更省电:如果可以用WIFI的地方,尽量使用2G信号关闭蜂窝数据,这样电量会消耗较低。
7.WIFI比3G更省电:3G的蜂窝数据会消耗较高电量,WIFI比3G要省很多电。
9.调整屏幕亮度:还是尽量,调整到最舒服的亮度吧,尽量使用手动,自动侦测环境光线会消耗一定量的电量。
9.均衡器:听音乐的时候使用均衡器会消耗更多的电量,当然很多时候因为我们的音源和耳机的缺陷可能会借助均衡器。
10.锁定时间:时间尽量控制在一分钟,自动锁定。

最后,就是跟进iPhone iOS的更新,每次更新都会对iPhone的节能方面做出更优化的调整。还有一点就是不要越狱,因为越狱后安装的App你无法保证安全性,所以那些App对电量的消耗你也无法保证。

延伸阅读:

http://www.apple.com/batteries/iphone.html

http://www.apple.com/batteries/replacements.html

http://www.apple.com/batteries/

发表在 未分类 | 留下评论

程序员怎么提高英语阅读水平

今天在知乎上被邀请回答这个问题,一不小心写了很多,算算已经可以当作一篇博客了,于是记录下来。

问题:作为一名程序员,虽说每天都在和英语打交道,但是当看到一篇英语文档或者英 语技术文章的时候还是比较头疼,理解他们的意思也只能是20%。尤其是使用google搜索的时候,很多问题解决办法都是英文的,还有一些国外比较有名的 网站比如 stack overflow,上面也有很多学习的资源。怎样才能让自己顺利阅读这些技术文章呢?


回复:

其实学英语和其他技能没什么太大区别,无论是你想在英语阅读、口语或写作方面提升 自己,都需要进行长期的不间断的练习,坚持一段时间后(时间长短根据你自己的效率、每天用时、频率都有关系),你会发现自己的水平自然就提升了。举个例 子,现在写博客似乎是最难坚持的,但是如果你每个月都能写一篇略有价值文章的话,5年就会有60篇高质量的博客,你几乎都能集结出书了。最简单的坚持,最 后的结果都是惊人的。但很多人往往每年只能写1篇,或者干脆一放就几年过去了。所以你知道,成事的人总是少数的。

作为程序员,英语阅读能力是最基本的要求,相对口语和写作来说也是最容易达到的,因为计算机类图书的那些常用单词就那么多,多读几本英语类技术图书,想不认识都难。

一个相对容易坚持的办法就是,找一本和当前工作相关的、急需的技术图书,每天拿出一小时阅读,不认识的单词,如果不影响阅读可以不查词典。如果某个单词多次出现,那么就该查下词典并计入生词本。如果你能坚持查阅英英词典,那么提高就会更快了。

每天坚持一小时,这本书读完,你就会发现自己的阅读能力提高了一大截。

这样看来提高阅读能力似乎很简单,但是,问题的关键是,你能否坚持下来,尤其是阅读初期,你只能看懂20%,需要不停的查字典,单词记了又忘,几个星期过去了,进展依然缓慢。这时候最容易放弃,你会痛苦的怀疑自己,我究竟是不是这块料。

毕竟人类的大脑都是倾向于舒适和懒惰的,谁都知道花一个或几个小时看看美剧或刷刷 微薄,是容易的,嗨皮的,时间在感知上也是,刷一下就过去了。学英语、学一门新的编程语言、写博客是痛苦的,有时候你甚至会有意识的去避免开始这件事情, 先干点这个,再干点那个,熬到最后,发现没时间了,再拿起书来读一会,困了,今天先睡吧。就这样,一天天很快过去了,你发现自己似乎每天都在坚持,但依然 没效果。但事实是,你既没坚持,也没效率。

所以,提高英语阅读能力这事,和学其他的技能区别不大,而且是相对容易的,比提高英语口语和写作能力容易多了。如果程序员缺乏英语阅读能力,这将是你非常大的一块短板,如果意识到了,尽早补上。

另外说一点,英语翻译对提升英语阅读有一定的帮助,但这个要求比较高,必须要查字典,遣词造句,力求原汁原味的表达作者的意图。并不是提升阅读能力的捷径。

最后说一句,10000小时的练习时间,真不是盖的!

 

知乎链接:http://www.zhihu.com/question/20306040

原文: http://www.cnblogs.com/chijianqiang/archive/2012/06/20/learn-english.html

发表在 未分类 | 留下评论

读 Joel on Software 的笔记

公司最重要的雇佣标准是:有头脑, 并且完成工作,就是这些了。

有能力学习新技术的人
事物变化的如此之快,我们需要的是在任何地方都能成功的人。
一个不合格的求职者如果进入了公司,将要消耗公司大量的金钱和精力。其他优秀员工的还要浪费时间来修复这个人的错误。

最后,链接在这里,你可以去读原文。

http://chinese.joelonsoftware.com/Articles/Interviewing.html

发表在 未分类 | 留下评论

再一次升级内存 iMac 16G内存达成

12G开虚拟机还是有临界的时候,这下好了,16G应该足够了。

发表在 未分类 | 留下评论

心静而编程

大家应该听过不少自学编程的例子,也听过不少因为缺少满足自己需求的软件而去自学编程的例子。

有个写作的软件叫Scrivener,它的作者同时满足上面两个因素。有想法的兄弟姐妹一起共勉吧,赶快把编程学好,编写出真正为自己想法的软件,献给世界。

发表在 未分类 | 留下评论

iMac 12G内存达成

从此再无内存压力。

开2-4个Xcode,30个tab的浏览器,几个常用软件驻留,大概会消耗7个G左右的内存。如果需要开虚拟机分配2-4G内存基本也不会超过11个G。

发表在 未分类 | 留下评论

12 个有效的提高编程技能的方法

1. 永远不要停止学习和阅读

阅读 书籍,而不只是网站

阅读 只为自我提升,而不是为了下一个项目

阅读 提升你的基础,而不只是最新技术

2. 跟比你聪明的人一起工作

跟比你更聪明的人或者是更有经验的人一起工作,可以让你快速提升

3. 变成一个全才

不要过于钻牛角尖,这可能会让你停滞不前和伤害你的就业前景。

4. 阅读并记录别人的代码

其实写代码比阅读并理解别人的代码要容易的多。

5. 在实际的项目中获取编程经验

只有在真实的项目中,各种压力下、真实善变的客户、不断变化的需求下,才能不断提升你的技能。

6. 教授别人编程技巧

这个可以强迫自己去理解不同水平的人的情况,而且你必须耐心的帮他们解释清楚,这对你本身而言也是一种提高。

7. 每年学习一种新的编程语言

用一年时间来学习一种新的编程语言,已经足够让你对它的基础了解透彻,同时你可以理解不同语言之间的风格。

8. 每年完成一个有意思的项目

每年做一个有意思的项目,不一定有什么用途,但一定是很有意思,让你非常有兴趣把它做得很棒。

9. 学习汇编语言

学习像汇编这样的低级语言可以让你了解计算机是如何工作的。

10. 与你的应用的客户交流获取信息

与最终用户交流可以知道他们的想法,他们是如何使用软件的,最终用户多数不是开发者,他们看到的是软件是一件神奇的工作,而你看到的软件是一套合乎逻辑的步骤。

11. 锻炼身体

身体是革命的本钱,只有好身体才能有好的工作、学习状态。

12. 练习快速打字

快速的键盘输入可以让编程工作更加高效。

http://www.dodgycoder.net/2011/10/how-to-become-better-programmer.html

发表在 未分类 | 一条评论

valid signing identity not found 解决办法

With Xcode 4.2 there is a better way to migrate your entire developer profile to a new machine. On your existing machine, launch Xcode and do this:

Open the Organizer (Shift-Command-2).
Select the Devices tab.
Choose Developer Profile in the upper-left corner under LIBRARY.
Choose Export near the bottom left side of the window. Xcode asks you to choose a file name and password.

On your new machine, launch Xcode and import the profile you exported above. Works like a charm.

http://stackoverflow.com/questions/6769345/xcode-4-valid-signing-identity-not-found-error-on-provisioning-profiles-on-a

发表在 未分类 | 一条评论

Instagram 两张图

发表在 未分类 | 4 条评论

iOS设备 各个版本支持区间

iPad 3.2 – 5.1.1

iPad2 4.3 – 5.1.1

new iPad 5.1-5.1.1

iPhone 1.0 – 4.2.7

iPhone 3G 2.0 – 4.2.1

iPhone 3GS 3.0 – 5.1.1

iPhone 4 4.0 – 5.1.1

iPhone 4 CDMA 4.2.6 – 5.1.1

iPhone 4S 5.0 -5.1.1

iOS 5.1.1
iOS 5.1
iOS 5.0.1
iOS 5.0
iOS 4.3.5
iOS 4.3.4
iOS 4.3.3
iOS 4.3.2
iOS 4.3.1
iOS 4.2.1
iOS 4.1
iOS 4.0.2
iOS 4.0.1
iOS 4.0
iOS 3.1.3
iOS 3.1.2
iOS 3.1
iOS 3.0.1
iOS 3.0

 

发表在 未分类 | 留下评论