2013年8月17日 星期六

firefox 取消可以停掉javascript的選項

官方的說法是,因為許多人都不知道關掉javascript會影響許多網站的功能,因而怪罪於firefox的性能,在最新的version 23,終於將javascript的開關給取消了。但是有許多的惡意網站會使用javascript來進行攻擊,因此需要使用外掛來提供關掉javascript的功能。

目前官方的建議是使用NoScript。

Finally, Firefox 23 removes the option to disable JavaScript from the Options pane — and if you had JavaScript turned off, it has been turned back on. This contentious change derives from the fact that disabling JavaScript breaks many websites — and some people might turn off JavaScript without actually knowing  what it does, resulting in unpredictable and frustrating behavior that the user might blame on Firefox. JavaScript can still be disabled via about:config or with add-ons (such as NoScript).

2013年8月16日 星期五

一夜暴富之前的漫漫长路




“那你现在在做什么?”
 
唉,我讨厌这个问题。
 
事实上,我正在努力做一个新的项目,但没有取得任何的进展。
 
但是,我并没有抱怨什么,相反,我鼓起精神,热情的推销这个计划。人们都点头称是,但他们脸上狐疑的表情我不能视而不见。
 
当我说完后,人们有时会打击我一下,说:“难道这就是你整天在做的事情吗?”哈,他们的真正意思是:你是在说你把你所有的时间都花在这个荒诞的想法上了吗?
 
埋头苦干
2007年夏天,在放弃了给我们带来稳定收入的工作后,我们非常非常辛苦的创业着。到2010年二月,持续将近2年半没有任何收入。而我们又做出了什么能向人展示的成果吗?没有。
 
我们没有挣到一分钱。我们去找的投资者全部都拒绝了我们。我们不能招到任何愿意加入这个团队的人。我们没有吸引到任何人注意我们的这个创意。
 
这两年里我们想了各种办法,但我们的Yipit网站的月独立访问量始终没有超过1万。我们一直的低位徘徊:
 
从我个人而言,我的积蓄慢慢的在消失。我的信用卡因为逾期不还款而被冻结。并不是我没有现金去还,只是我们没有时间考虑它。看着我努力工作积累起来的银行存款慢慢在耗尽,那是一种十分沮丧的感觉。我记得当把存款从我的退休金401K账户上取出时,我再次确认了一下自己是否知道这样做带来的严重后果。
 
老实的说,我有可能早就放弃了。唯一让我坚持下来的原因是,我忠实的创业伙伴——Jim——他也是辞职出来的。他放弃了很多十分诱人的工作机会,和我一起工作,我不能抛弃他。
 
一切全变了
这样到了2010年2月份,距离我们开始创业2年半之后,我们又产生了另外一个想法:收集那些正在兴起但发展迅速的日常交易信息。这个想法来的很及时,正合我们的特长。因为最近9个月里我们一直在做本地交易信息收集。
 
只用了3天时间,一切全变了。 

3天的仓促编码,我们上线了这个新功能,做了一些简单宣传,用户十分喜欢这个功能,4个月后,吃惊的投资者向我们注入了1百万美元。一年之后,我们募集到了6百万美元,我们盈利了,我们吸引到了成百万的用户,我们招到了优秀的人才加入了我们的团队。并且,最重要的是,我们的事业才刚刚开始。
 
那么,这3天里究竟发生了什么?
 
我相信,如果我们早在2007年或2008年、甚至2009年就开始上这个日常交易收集功能,我们不会取得成功,反而会把事情弄糟。
 
但是,经过了2年半的失败和教训,我们完全知道了该怎么做:
 
1.产品策略。我们成了精益(lean)创业运动的一分子。我从一开始就参加纽约精益创业洽谈会,阅读Four Steps to Epiphany,我们认识到,我们要做的是一个最简化功能的产品。
2.做原型样品。近几年我一直在自学Web开发技术,而Jim也在自学前端的程序开发。我们不需要找人去做原型,我们能自己快速的开发出来。
3.设计用户界面。我们设计了大量的原型,我们很清楚如何设计登录页面来收集用户的email,我们设计在注册流程中收集用户信息并让人们向他们的朋友们散布我们的信息。
4.找到启动动力。我们知道如何加工我们的故事,让新闻记者注意到我们。我们在TechCruch成了重要话题,这给我们吸引了大量的初始用户。
5.让投资者感兴趣。过去两年里我们和很多纽约的天使资金投资者保持着良好的关系,我们能很快的争取到对我们感兴趣的投资者,因为他们很熟悉我们。
6.培养名声。我一直参与纽约科技界的活动,业内的朋友们在给Yipit创造话题的事情上帮了很大的忙。
 
现在,回顾往事,我认识到我错了,那挣扎的两年里我们并不是拿不出任何的成绩。从外面看来,我们没有任何可以成功的迹象,但我们学到了一些非常重要的东西:开创新事业的艺术和技术。我们花了差不多3年的时间才真正的明白在那3天里我们应该怎么去做。
 
所以,对于那些还在挣扎中,觉得自己拿不出任何成绩的人,我希望这篇博客能帮助你们坚持下去。你每天都在学习进步。你要知道,当灵机闪现时,你已经准备好捕捉它了。
 
 

程序算法与人生选择(好文章轉貼)

寫得挺有意思的,轉帖給大家分享
原址 http://www.cocoachina.com/gamedev/misc/2013/0808/6756.html
排序算法
你不可能要所有的东西,所以你只能要你最重要的东西,你要知道什么东西最重要,你就需要对你心内的那些欲望和抱负有清楚的认识,不然,你就会在纠结中度过。
所以,在选择中纠结的人有必要参考一下排序算法。
首先,你最需要参考的就是“冒泡排序”——这种算法的思路就是每次冒泡出一个最大的数。所以,你有必要问问你自己,面对那些影响你选择的因子,如果你只能要一个的话,你会要哪个?而剩下的都可以放弃。于是,当你把最大的数,一个一个冒泡出来的时候,并用这个决策因子来过滤选项的时候,你就能比较容易地知道知道你应该选什么了。这个算法告诉我们,人的杂念越少,就越容易做出选择。
好吧,可能你已茫然到了怎么比较两个决策因子的大小,比如:你分不清楚,工资>业务前景吗?业务前景>能力提升吗?所以你完全没有办法进行冒泡法。那你,你不妨参考一个“快速排序”的思路——这个算法告诉我们,我们一开始并不需要找到最大的数,我们只需要把你价值观中的某个标准拿出来,然后,把可以满足这个价值的放到右边,不能的放到左边去。比如,你的标准是:工资大于5000元&&业务前景长于3年的公司,你可以用这个标准来过滤你的选项。然后,你可以再调整这个标准再继续递归下去。这个算法告诉我们,我们的选择标准越清晰,我们就越容易做出选择。
这是排序算法中最经典的两个算法了,面试必考。相信你已烂熟于心中了。所以,我觉得你把这个算法应用于你的人生选择也应该不是什么问题。关于在于,你是否知道自己想要的是什么?
排序算法的核心思想就是,让你帮助你认清自己最需要的是什么,认清自己最想要的是什么,然后根据这个去做选择。
贪婪算法
所谓贪婪算法,是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择(注意:是当前状态下),从而希望导致结果是最好或最优的算法。贪婪算法最经典的一个例子就是哈夫曼编码。
对于人类来说,一般人在行为处事的时候都会使用到贪婪算法,
比如在找零钱的时候,如果要找补36元,我们一般会按这样的顺序找钱:20元,10元,5元,1元。
或者我们在过十字路口的时候,要从到对角线的那个街区时,我们也会使用贪婪算法——哪边的绿灯先亮了我们就先过到那边去,然后再转身90度等红灯再过街。
这样的例子有很多。对于选择中,大多数人都会选用贪婪算法,因为这是一个比较简单的算法,未来太复杂了,只能走一步看一步,在当前的状况下做出最利于自己的判断和选择即可。
有的人会贪婪薪水,有的人会贪婪做的项目,有的人会贪婪业务,有的人会贪婪职位,有的人会贪婪自己的兴趣……这些都没什么问题。贪婪算法并没有错,虽然不是全局最优解,但其可以让你找到局部最优解或是次优解。其实,有次优解也不错了。贪婪算法基本上是一种急功近利的算法,但是并不代表这种算法不好,如果贪婪的是一种长远和持续,又未尝不可呢?。
动态规划
但是我们知道,对于大部分的问题,贪婪法通常都不能找出最优解,因为他们一般没有测试所有可能的解。因为贪婪算法是一种短视的行为,只会跟据当前的形式做判断,也就是过早做决定,因而没法达到最佳解。
动态规划和贪婪算法的最大不同是,贪婪算法做出选择,不能回退。动态规划则会保存以前的运算结果,并根据以前的结果对当前进行选择,有回退功能。
动态规划算法至少告诉我们两个事:
1)承前启后非常重要,当你准备去做遍历的时候,你的上次的经历不但能开启你以后的经历,而且还能为后面的经历所用。你的每一步都没有浪费。
2)是否可以回退也很重要。这意思是——如果你面前有两个选择,一个是A公司一个是B公司,如果今天你错失了B公司,那到你明天还能不能找回来?
比如说:你有两个offer,一个是Yahoo,一个是Baidu,上述的第一点会让我们思考,Yahoo和Baidu谁能给我们开启更大的平台?上述的第二点告诉我们,是进入Yahoo后如果没有选好,是否还能回退到Baidu公司?还是进入Baidu公司后能容易回退到Yahoo公司?
Dijkstra最短路径
最短路径是一个Greedy + DP的算法。相当经典。这个算法的大意如下:
1)在初始化的时候,所有的结点都和我是无穷大,默认是达不到的。
2)从离自己最近的结点开始贪婪。
3)走过去,看看又能到达什么样的结点,计算并更新到所有目标点的距离。
4)再贪婪与原点最短的结点,如此反复。
这个算法给我们带来了一些这样的启示:
有朋友和我说过他想成为一个架构师,或是某技术领域的专家,并会踏踏实实的向这个目标前进,永不放弃。我还是鼓励了他,但我也告诉他了这个著名的算法,我说,这个算法告诉你,架构师或某领域的专家对你来说目前的距离是无穷大,他们放在心中,先看看你能够得着的东西。所谓踏实,并不是踏踏实实追求你的目标,而是踏踏实实把你够得着看得见的就在身边的东西干好。我还记得我刚参加工作,从老家出来的时候,从来没有想过要成为一个技术牛人,也从来没有想过我的博客会那么的有影响力,在做自己力所能及,看得见摸得着的事情,我就看见什么技术就学什么,学着学着就知道怎么学更轻松,怎么学更扎实,这也许就是我的最短路径。
有很多朋友问我要不要学C++,或是问我学Python还是学Ruby,是不是不用学前端,等等。这些朋友告诉我,他们不可能学习多个语言,学了不用也就忘了,而且术业有专攻。这并没有什么不对的,只是我个人觉得,学习一个东西没有必要只有两种状态,一种是不学,另一种是精通。了解一个技术其实花不了多少时间,我学C++的目的其实是为了更懂Java,学TCP/IP协议其实是为了更懂Socket编程,很多东西都是连通和相辅相成的,学好了C/C++/Unix/TCP等这些基础技术后,我发现到达别的技术路径一下缩短了(这就是为什么我用两天时间就可以了解Go语言的原因)。这就好像这个算法一样,算法效率不高,也许达到你的目标,你在一开始花了很长时间,遍历了很多地方,但是,这也许这就是你的最短路径。
算法就是Trade-Off
你根本没有办法能得到所有你想得到的东西,任何的选择都意味着放弃——当你要去获得一个东西的时候,你总是需要放弃一些东西。人生本来就是一个跷跷板,一头上,另一头必然下。这和我们做软件设计或算法设计一样,用时间换空间,用空间换时间,还有CAP理论,总是有很多的Trade-Off,正如这个短语的原意一样——你总是要用某种东西去交易某种东西。
我们都在用某种东西在交易我们的未来,有的人用自己的努力,有的人用自己的思考,有的人用自己的年轻,有的人用自己的自由,有的人用自己的价值观,有的人用自己的道德…… …… 有的人在交换金钱,有的人在交换眼界,有的人在交换经历,有的人在交换地位,有的人在交换能力,有的人在交换自由,有的人在交换兴趣,有的人在交换虚荣心,在交换安逸享乐…… ……
每个人有每个人的算法,每个算法都有每个算法的purpose,就算大家在用同样的算法,但是每个人算法中的那些变量、开关和条件都不一样,得到的结果也不一样。我们就是生活在Matrix里的一段程序,我们每个人的算法决定着我们每个人的选择,我们的选择决定了我们的人生。