uc2.3下载内测哪里去了呢

现在位置:小站会根据您的关注,为您发现更多,
看到喜欢的小站就马上关注吧!
下一站,你会遇见谁的梦想?
&&&&&&&嘘&!别出声!&
国外程序员推荐:每个程序员都应读的书
& & & &如果能时光倒流,回到过去,作为一个开发人员,你可以告诉自己在职业生涯初期应该读一本,你会选择哪本书呢?我希望这个书单列表内容丰富,可以涵盖很多东西。&  很多程序员响应,他们在推荐时也写下自己的评语。以前就有国内网友介绍这个程序员书单,不过都是推荐数 Top 10的书。其实除了前10本之外,推荐数前30左右的书籍都算经典,笔者整理编译这个问答贴,同时摘译部分推荐人的评语。下面就按照各本书的推荐数排列。  1. 《》&史蒂夫&迈克康奈尔  推荐数:1684  &优秀的编程实践的百科全书,《》注重个人技术,其中所有东西加起来,就是我们本能所说的&编写整洁的代码&。这本书有50页在谈论代码布局。& && Joel Spolsky  对于新手来说,这本书中的观念有点高阶了。到你准备阅读此书时,你应该已经知道并实践过书中99%的观念。& esac  2. 《》  推荐数:1504  对于那些已经学习过编程机制的程序员来说,这是一本卓越的书。或许他们还是在校生,但对要自己做什么,还感觉不是很安全。就像草图和架构之间的差别。虽然你在学校课堂上学到的是画图,你也可以画的很漂亮,但如果你觉得你不太知道从哪儿下手,如果某人要你独自画一个P2P的音乐交换网络图,那这本书就适合你了。&& Joel  3. 《》  推荐数:916
  就个人而言,这本书目前为止对我影响醉倒的一本编程书。
  《》、《》和《》这些经典书会教给你高效的工作习惯和交易细节。其他像《》、《计算机编程心理学》和《》这些书会深入软件开发的心理层面。其他书籍则处理算法。这些书都有自己所属的位置。
  然而《》与这些不同。这是一本会启发你的书,它会燃起你编写出色程序的热情;它还将教会你认识并欣赏美;它会让你有种敬畏,让你难以抑制地渴望学习更多的东西。其他书或许会让你成为一位更出色的程序员,但此书将一定会让你成为一名程序员。
  同时,你将会学到其他东西,函数式编程(第三章)、惰性计算、元编程、虚拟机、解释器和编译器。
  一些人认为此书不适合新手。个人认为,虽然我并不完全认同要有一些编程经验才能读此书,但我还是一定推荐给初学者。毕竟这本书是写给著名的6.001,是麻省理工学院的入门编程课程。此书或许需要多做努力(尤其你在做练习的时候,你也应当如此),但这个价是对得起这本书的。
  你还不确信么?那就读读第一版的前言或序言。网上有。&-&Antti Syk&ri
  4. 《》
  推荐数:774
  这本书简洁易读,会教给你三件事:C 编程语言;如何像程序员一样思考;底层计算模型。(这对理解&底层&非常重要)&& Nathan
  5. 《》
  推荐数:671
  《》教你如何正确编程;《》教你如何正确管理;《》教你如何正确设计&&
  在我看来,代码只是一个工具,并非精髓。开发软件的主要部分是创建新算法或重新实现现有算法。其他部分则像重新组装乐高砖块或创建&管理&层。我依然梦想这样的工作,我的大部分时间(&50%)是在写算法,其他&管理&细节则留给其他人&& && Ran Biron
  6. 《》
  推荐数:617
  我想我不得不推荐《》:改进现有代码的设计。&& Martin
  我必须承认,我最喜欢的编程语录是出自这本书:任何一个傻瓜都能写出计算机能理解的程序,而优秀的程序员却能写出别人能读得懂的程序。&& Martin Fowler
  7. 《》
  推荐数:617
  就我而言,我认为四人帮编著的《》是一本极为有用的书。虽然此书并不像其他建议一样有关&元&编程,但它强调封装诸如模式一类的优秀编程技术,因而鼓励其他人提出新模式和反模式(antipatterns),并运用于编程对话中。&& Chris Jester-Young
  8. 《》
  推荐数:588
  9. 《》
  推荐数:542
  这是高德纳倾注心血写的一本书。&& Peter Coulton
  10. 《》(龙书)
  推荐数:462
  我很奇怪,居然没人提到龙书。(或许已有推荐,我没有看到)。我从没忘过此书的第一版封面。此书让我知道了编译器是多么地神奇绝妙。- DB
  11. 《》
  推荐数:445
  我知道四人帮的《》是一本标准书,但倒不如先看看这部大部头,此书更为简易。一旦你了解了解了基本原则,可以去看四人帮的那本圣经了。- Calanus
  12. 《:集异璧之大成》
  推荐数:437
  如果下昂真正深入阅读,我推荐道格拉斯&侯世达(Douglas Hofstadter)的《哥德尔、艾舍尔、巴赫书》。他极为深入研究了程序员每日都要面对的问题:递归、验证、证明和布尔代数。这是一本很出色的读物,难度不大,偶尔有挑战,一旦你要鏖战到底,将是非常值得的。 & Jonik
  13. 《》
  推荐数:329
  虽然《代码整洁之道》和《》有很多共同之处,但它有更为简洁更为实际的清晰例子。 & Craig P. Motlin
  14. 《》和《》
  推荐数:297
  在我职业生涯早期,Scott Meyer的《Effective C++》和后续的《More Effective C++》都对我的编程能力有着直接影响。正如当时的一位朋友所说,这些书缩短你培养编程技能的过程,而其他人可能要花费数年。
  去年对我影响最大的一本书是《》,该书教会我很有关开源开发过程如何运作,和如何处理我代码中的Bug。 & John Channing
  15. 《》
  推荐数:282
  尽管我不得不羞愧地承认,书中一半的东西我都没有理解,但我真的推荐《》,书中有些令人惊奇的东西。 & Matt Warren
  16. 《》by Michael Feathers
  我认为没有任何一本书能向这本书一样影响了我的编程观点。它明确地告诉你如何处理其他人的代码,含蓄地教会你避免哪些(以及为什么要避免)。- Wolfbyte
  同意。很多开发人员讨论用干净的石板来编写软件。但我想几乎所有开发人员的某些时候是在吃其他开发人员的狗食。& Bernard Dy
  17. 《》
  我推荐Charles Petzold的《编码》。在这个充满工具和IDE的年代,很多复杂度已经从程序员那&抽取&走了,这本书一本开眼之作。 & hemil
  18. 《/ Zen and the Art of Motorcycle Maintenance》
  对我影响最大的那本书是 Robert Pirsig 的《禅与摩托车维修艺术》。不管你做什么事,总是要力求完美,彻底了解你手中的工具和任务,更为重要的是,要有乐趣(因为如果你做事有乐趣,一切将自发引向更好的结果)。 & akr
  (编注:关于这本书,也可以看看。)
  19. 《&/&人件集:人性化的软件开发》
  Demarco 和 Lister 表明,软件开发中的首要问题是人,并非技术。他们的答案并不简单,只是令人难以置信的成功。第二版新增加了八章内容。 & Eduardo Molteni
  20. 《Coders at Work /&》
  一本非常有的书,可以从中学到一些业界顶级人士的经验,了解他们如何思考并工作。 & Jahanzeb Farooq
  21. 《Surely You&re Joking, Mr. Feynman! /&》
  虽然这本书可能有点偏题,但不管你信不信,这本书曾在计算机科学专业课程的阅读列表之上。一个优秀的角色模型,一本有关好奇心的优秀书籍。 & mike511
  22. 《&中文版》
  此书第二版教你如何编写漂亮并高效的代码,虽然这是一本Java书,但其中有很多跨语言的理念。 & Marcio Aguiar
  23. 《Patterns of Enterprise Application Architecture /&》
  很奇怪,还没人推荐 Martin Fowler 的《》- levi rosol
  24. 《》和《》&nmiranda
  这两本是LISP的英文书,尚无中文版。美国东北大学网站上也有电子版。
  25. 《》英文名:《The Inmates Are Running The Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity》该书作者:Alan Cooper,人称Visual Basic之父,交互设计之父。
  本书是基于众多商务案例,讲述如何创建更好的、高客户忠诚度的软件产品和基于软件的高科技产品的书。本书列举了很多真实可信的实际例子,说明目前在软件产品和基于软件的高科技产品中,普遍存在着&难用&的问题。作者认为,&难用&问题是由这些产品中存在着的高度&认知摩擦&引起的,而产生这个问题的根源在于现今软件开发过程中欠缺了一个为用户利益着想的前期&交互设计&阶段。&难用&的产品不仅损害了用户的利益,最终也将导致企业的失败。本书通过一些生动的实例,让人信服地讲述了由作者倡导的&目标导向&交互设计方法在解决&难用&问题方面的有效性,证实了只有改变现有观念,才能有效地在开发过程中引入交互设计,将产品的设计引向成功。
  本书虽然是一本面向商务人员而编写的书,但也适合于所有参与软件产品和基于软件的高科技产品开发的专业人士,以及关心软件行业和高科技行业现状与发展的人士阅读。
  他还有另一本中文版著作:《》
  26. 《&》
  如果你不是程序员,阅读此书可能会很有趣,但如果你已经是个程序员,可能会有点乏味。
  27.&《》
  It is useful regardless operating system you use. & J.F. Sebastian不管你使用什么操作系统,这本书都很有用。 & J.F. Sebastian
  28. 《Practices of an Agile Developer /&》
  45个习惯,分为7个方面:工作态度、学习、软件交付、反馈、编码、调试和协作。
  每一个具体的习惯里,一开始提出一个谬论,然后展开分析,之后有正队性地提出正确的做法,并设身处地地讲出了正确做法给你个人的&切身感受&,最后列出几条注意事项,帮助你修正自己的做法(&平衡的艺术&)。
  29. 《Test-Driven Development by Example. /&》
  前面已经提到的很多书都启发了我,并影响了我,但这本书每位程序员都应该读。它向我展示了单元测试和TDD的重要性,并让我很快上手。 & Curro
  我不关心你的代码有多好或优雅。如果你没有测试,你或许就如同没有编写代码。这本书得到的推荐数应该更高些。人们讨论编写用户喜欢的软件,或既设计出色并健壮的高效代码,但如果你的软件有一堆bug,谈论那些东西毫无意义。& Adam Gent
  30. 《Don&t Make Me Think /&》
  取决于你所追求的目标。我喜欢《代码大全》是因纯编程,《点石成金》是一本有关UI设计的卓越书籍。 & Justin Standard
  除这个书单之外,曾经也有微博网友推荐《》,大约在50本。
  编译:伯乐在线&& 黄利民
互联网公司为何要推自己的智能手机
& & & & &随着盛大手机的登场,国内的几大互联网公司全部开始涉水移动终端这个领域。与此同时,一些通信设备厂商也开始在终端业务上发力,推出的一系列高端智能手机频频吸引着媒体和消费者的眼球。去年至今,小米造成的影响力可能在某种程度起到了一定的刺激作用,但是互联网公司对于移动终端的兴趣和投入远在这之前就已经开始。很多人不明白,这些互联网公司为什么要像一些通信设备厂商一样,开始自己做移动终端,并且往往以低到几乎是噱头的姿态现身这个市场。  在移动平台上大家是更习惯用 web 访问应用还是用 app ?这是我差不多一年前在知乎上的一个提问。当时提出这个问题是基于这样的思考,首先所谓的&移动互联网&并不是对现有互联网的一种替代,可以说它是某种形式上的延伸或者扩展,或者更直接点,不过就是互联网的一种新的接入方式,那不管以怎样的方式接入,互联网本身所承载的内容是一定的,W3C也正是为了使不同的接入平台能呈献给用户无差异的内容而存在,互联网本身并不会因为多了&移动互联网&这个概念性的产物就发生本质的变化。既然这样那为什么所有的人都认定&移动互联网&将会是一个有着巨大回报的市场?仅仅是因为数倍于桌面的接入设备和无时不可的接入时间?移动互联网相比桌面互联网有什么特殊的地方可以创造出新的盈利模式?当时注意到移动互联网同桌面互联网最大的区别,就是对应用访问方式的不同。  不管是因为客观条件还是用户的主观习惯,目前来看,移动终端上对应用上的访问绝大多数还是以app为主,以app接入访问应用,则设备本身就变成了这一入口的唯一载体,而对于互联网应用来说,用户群永远都是第一重要的,抢占移动终端意味着各大互联网公司对用户的争夺,是桌面互联网上对浏览器这一入口争夺的继续。  而对于移动终端来说,可以分为操作系统和硬件设备两个部分。对比几家互联网公司在移动终端上的行动,百度是推出定制的操作系统,将自家的应用包含在操作系统中提供给设备厂商;腾讯和阿里类似,采取与运营商和终端厂商合作的方式,将应用内置在设备上;盛大、小米则更直接,自己研发硬件,然后采用定制的系统,推出自有品牌的设备抢占这一市场。  看清楚互联网公司的意图,就比较容易理解他们的行为。对于同一块市场,不同的公司会根据自身已有的优势实施对应的商业行为,互联网公司认为他的盈利点主要是自身业务在移动平台上的延伸和拓展,传统的设备厂商按照思维惯性,还是期望从硬件设备上盈利,这样的区别造成了互联网公司期望通过低价的设备抢占足够多的用户数量,设备厂商则努力通过品牌、设计、工艺来增大硬件本身的价值。而且互联网公司受到研发能力和设计水平的制约,本身也不具备足够的品牌力量,并不适合在这个市场上推广高端设备。
  互联网公司一向喜欢赔本赚吆喝,这点在各大公司推出应用的时候已有体现,即使一个应用已经基本形成垄断地位,不可能留出机会给其他的产品,几大公司往往也会防御性的继续推出类似的应用。低廉的价格确实对很多用户有着巨大的吸引力,但是考虑到研发和采购成本,以及量产能力,互联网公司的设备在保持硬件规格的同时,必定要相应的牺牲掉一些其他东西才能维持自己的利润,另外售后和服务带来的成本也应该是消费者需要考虑的方面。最重要的一点,受到原来桌面互联网上开放环境的影响,互联网公司也许意识不到终端设备对于消费者来说更是一件私有物品,而人对私有物品的要求远远不止停留在&能用&的阶段,如果仅仅是想提供一个价格低廉的接入设备,可能会影响到产品的设计已经给用户带来的体验。  回到&通过web还是app访问应用&这个话题。可以发现,即使是在全新的移动设备上,能有实力和影响力做出移动平台操作系统的还是原来两家最大的桌面操作系统厂商的苹果和微软,而且苹果首先开创了付费app的移动互联网盈利模式,这点其实和桌面操作系统上的付费软件没有本质的区别,唯一的不同就是一个需要和操作系统提供商分成,另外一个则基本是免费使用。至于Android,从诞生到现在的发展来看,更像是谷歌为了阻止苹果的垄断而采取的一种防御手段。作为一个互联网公司,谷歌对于移动互联网的态度和思路还是比较模糊,唯一肯定的是,跟苹果和微软这样公司肯定有本质的不同。目光延伸的远一些,其实可以发现Palm/惠普的WebOS,英特尔和三星的Tizen,以及Mozilla的Boot to Gecko,甚至包括谷歌的Chrome OS都是以Web为中心,目标是开发出可以在浏览器上执行的应用。这是不是意味着app访问的方式不会持续很长时间,未来的接入趋势还是会回归到以浏览器为中心?那如果这会成为一种现实,对于互联网公司来说,投入就应该更多的放在正确的方向上,毕竟,智能终端设备的门槛并不像互联网那样低。  来源:投稿,作者:left_uestc
手机浏览器HTML5跑分完全调查
& & & &UC、欧朋、华为无线、腾讯无线最近在手机浏览器方面掐的火热,各种热炒HTML5跑分和自有内核。真真假假之间总是有着不少口水,但是其实很多人对HTML5的跑分完全没概念。  在这里做一下科普,目前对浏览器HTML5兼容性测试做的最好的是.它是一个在线网站,类似于Acid3.得分越高说明对HTML5的支持越好,日刚刚做过一次升级,目前的满分是475分。各个浏览器的HTML5跑分就是自家浏览器访问这个测试网站之后得到的分数。今天我们就把这些自称有自有内核的手机浏览器跑分都拿出来说一下,供各位了解。  整体情况&
UC浏览器8.2(U3)
欧朋浏览器H5体验版(Presto)
天天浏览器T9体验版(T9)
Q立方浏览器(X5)
For Android 2.3
For Android 4.0
UC浏览器8.2
海豚浏览器3.5
Opera Mini
&  在测试的过程中发现,只有UC和欧朋是支持Android 4.0的系统的,而天天和QQ的所谓自主内核在Android 4.0就跑不起来,显然UC和欧朋在内核实力上积累更深厚一些。  从总跑分来看,欧朋浏览器H5体验版的HTML5跑分最高,UC浏览器8.2次之, Q立方和天天T9体验版最低。在这几款手机浏览器中,UC浏览器是已经公开发布的正式版产品,其他家则都是&不约而同&的&实验室&版本,产品的稳定性还不足以到商用的程度,尚需要市场和大规模用户的检验。欧朋已经宣布会在半年内发布正式版本并推广,天天和腾讯并没有给出正式版发布的时间表,Q立方浏览器目前还是内测中的非正式产品。  跑分细节  上面看的是总分,接下来让我们看一下这几款浏览器在上跑分的各个细项得分表现:&
UC浏览器8.2
欧朋浏览器H5体验版(Presto)
天天浏览器T9体验版(T9)
Q立方浏览器(X5)
Parsing rules
User interaction
History and navigation
Web applications
Geolocation
Communication
Local multimedia
Notifications
1.测试网站&&2.测试环境&&& Android 2.3.7(Defy)&& Android 4.0.3(Nexus S)
3.浏览器版本
UCBrowser_V8.2.2.130_Android_pf145_(Build)
欧朋HTML5体验版 Version0.81.ADR-天天浏览器T9内核版 V100R001C01B01L001Q立方手机浏览器 1.0预览版Build0015
  从评分上来看,UC浏览器8.2正式版在2.3和4.0上的跑分还有一些差异,似乎4.0版本中的UC浏览器使用的UA是已经提交验证过的,不禁让人猜想UC未来的布局。另外UC对Files项目的支持已经跑到满分了,未来有可能会在本地Web App上做文章。在Form项上面,欧朋浏览器占有较大优势,跑分达到91分。HTML5的语义化一直是Opera所倡导的,所以能跑出这个强势分数还是有相当的底气的。天天浏览器T9体验版则在Communication这一项跑了最高分,已经支持了WebSocket,未来会基于这个通信协议可能有更多布局。  后记  现在做做过一段时间的开发者一定都知道,基于手机浏览器做HTML5应用还是比较困难的,对标准的支持有了较大提升,但是稳定性还是不足。浏览器对于HTML5的提升是一个渐进的过程,看看PC浏览器对于cookie、JS、XML等特性的支持进度历史就知道了,都不是一蹴而就的。在这种跑分和兼容性竞争持续一定时间之后,大多数浏览器厂商还都是会支持全部的新特性。而在在这个提升的过程中,&核能力&实力差距会比较明显的展现出来了,真正有实力的公司会很好的平衡对新特性的支持和产品稳定性,不会因为功能和标准支持的增加造成性能的滞后。  来源:读者投稿
Android能否引领移动互联网革命
& & & &也许在五年前拥有一部智能手机还是件让人羡慕的事,想想那时的诺基亚是何等的威风,对于普通的国人来说,智能手机一定程度上就是诺基亚N系列,HTC还叫多普达,黑莓貌似压根就不属于我们,智能手机市场的格局很清晰,可以说那时候并不是智能手机的天下,一款诺基亚1110就足够了。  s40已经达到娱乐的目的了,iPhone的诞生确实给了世界一个不小的轰动,智能手机风暴正在悄然来临,但是昂贵的价格还是让很多普通人望尘莫及,此时诺基亚依旧占有市场的很大份额,Symbian系统已经深入人心,有利可图的市场必然会出现搅局者,谷歌正如日中天,当起了这个搅局者的角色。  安迪.鲁宾发明的android系统基于linux内核,这是从系统级与苹果iOS的最大不同,众所周知iOS采用的是unix内核,内核不同,但这丝毫不影响android强大的图形化操作。
  最重要的是这样一款能和iOS媲美的手机操作系统是开源的,开源是一种精神,开源也让智能手机市场的格局骤变,智能手机生产商开始走向android阵营,MileStone想必体现的就是摩托罗拉要重新崛起,此时对于采用android操作系统的手机制造商可以说都是一个里程碑,接下来详细回顾下安卓带来的变革:  1.智能手机不再是奢侈品  开源的android使使用智能手机的门槛降低,如果你对手机硬件配置要求不太高,那么也许花几百元就能拿到一部智能手机,当然它的操作系统是android.  2.android开发者成为程序员中的新宠  为了打造了一个开放的开发者平台,谷歌在开源android的同时也开放了android API,开发的核心语言是程序员熟悉的java,因此对于很多传统的程序员来说,开发门槛较低,能从j2EE或者j2ME迅速转型,急需人才的android开发市场也让程序员的薪水大涨。  3.创业公司和它们的优秀应用  开放的android平台和较低的创业门槛吸引了众多的创业者,有的甚至打着曲线救国的口号研发自己的应用,可见创业青年们是何等的热血沸腾。  4.软件商店已成必然  即使有苹果的AppStore作为先例,但是AppStore毕竟只有一个,而第三方的android应用商店已经形成一道亮丽的风景线。  5.移动广告平台的爆炸式增长  依靠软件商店,好的app可以达到很高的下载量,但是别忘了这都是免费的,玩游戏大家都喜欢FTP,和谷歌的初衷一样,做平台,然后靠广告赚钱,app赚钱也可以采用广告模式,因此也造就了一个繁荣的移动广告平台市场。  6.成熟的第三方ROM市场  第三方可以修改android原生态的ROM,也基于原生态的android系统太过简单,所以第三方ROM几乎覆盖了所有的android设备。  7.引领移动互联网真正的革命  伴随着智能手机的普及以及基于智能手机的各种应用和服务的滋生,移动互联网真正意义上进入高速发展的阶段。  以下是android和iOS以及WP7的比较:  1)android和iOS相比  android是开源的,iOS是封闭的,对于开发者,android设备相对于iOS便宜,所以很多开发者还是乐于选择做android开发,对于系统本身,android接纳的其他服务会很多,但是封闭的iOS也许会排斥这些相关的服务,虽然iOS目前是开发者赚钱最多的平台,但是依靠广告以及其他模式,android也会厚积而薄发。  2)android和WP7相比  虽然之前微软出过WM系统,但是比起WP7来说还是后者更加成功,所以就拿android和WP7做一个比较,微软和手机巨头诺基亚合作,依靠诺基亚和微软的资本,WP7会取得一定的市场份额,但是具体的情况目前还是个未知数,不过也难抵android开源的力量。  以上可以说是对android一个大概的总结,出自本人对android的认识,也遗漏了些东西,比如android的第三方服务产业,典型的就是android开发者社区,再比如安卓培训等,在这里拿它和iOS,WP7比较,不是为了证明android就一定比其它的强,只是为了说明Android促使了移动互联网高速发展,可以说是一个风向标。  来源:供稿。
移动开发中HTML5能否替代本地程序?
& & & & 随着移动设备越来越先进,对HTML5的支持度越来越高,我们进军移动领域的时候,都会遇到一个问题,是选择HTML5和还是Native(用原生代码编写的本地程序)?HTML5的前景无疑是诱人的,一句&Write once, run anywhere&就可以秒杀一切。笔者最近两年来对HTML5与Native有较为深入的研究,觉得两者之间不能仅仅是二分法来选择,还要根据企业自身的情况、团队的构成、公司的战略以及产品的特点来综合选择。  HTML5的发展前景我无疑是非常看好的,各大公司也不遗余力的推动,目前主流的三大智能机操作系统iOS、Android和WIndows Phone都已经支持大部分的HTML5特性。而移动设备硬件军备竞赛也为HTML5扫清硬件障碍。按照现在的发展速度,我判断是在三年以内甚至更快,移动设备运行HTML5将会完全没有压力,无论是标准还是硬件。现在主流的智能机已经配置双核处理器(之前笔误为浏览器)和1G及以上的内存,今年再出智能机没这个配置你都不好意思发布了。  谈谈HTML5  1.HTML5可以让你摆脱对平台的依赖,用户打开浏览器,直接就可以访问你的应用,而不需要经过各种Store的审核。  2.实时更新,通常平台的审核都需要七个工作日左右的时间,如果你发布之后发现问题怎么办?Web方式就不存在这种问题。  3.Write once, run anywhere?  这是多少程序员的梦想,也曾经是Java让人心动的地方,但真正做过跨平台解决方案的人都知道,这只是一句口号而已,跨平台没那么容易玩转的。没错,HTML5可以实现Write once, run anywhere,但我们总不能写一个Hello World来run anywhere吧。不同平台有自己的特性,不同平台用户也有自己的操作习惯,如果你想讨好所有人,也就意味着你无法讨好任何人。  4.减少开发工作量或者让开发变得更简单?  对老板来说,这是一个非常诱人话题,因为工作量的减少就意味着节省更多的钱,没有老板不喜欢用更少的钱办更多的事。而且目前一个非常大的问题是,移动设备开发人员特别是iOS开发人员非常不好找,因为技术好的都自己做应用了,人家自己也能赚个月薪上万甚至更多,为什么要进你的公司?怎么说也是自己的事业,拥有无限可能,还可以充分享受自由。但如果可以充分利用HTML5,那么我们就可以招聘Web前端的开发人员来构建移动应用,这样就不愁招人的有问题。因为在许多人的眼里,HTML5/CSS/Javascript都是没多大技术含量的东西,实在找不到人,找些实习生学学也就会了。  但问题是,工作量真的会减少吗?技术门槛真的那么低么?答案是NO!  我曾经花了半年的时间去开发一个基于HTML5的移动框架,用来模拟Native应用,让HTML5应用看起来尽可能看起来像本地应用,注意:是像。这有点像jTouch,但不一样的是,它能和Native程序很好地交互,并且能调用本地资源等等特性。但最后结果确不是那么令人满意,比如HTML5在动画切换的时候,有时候候会有一些莫名其妙的问题,当然你可以告诉我把动画效果关了,但这看起来很死板,最后我不得不关闭某些动画。而用Objective-c编写程序就没这么多事了,几句简单的代码可以实现很酷的动画,用HTML5需要更多的代码,甚至根本无法实现。  而且移动设备上的HTML5开发对开发人员的技术有非常高的要求,不是一般的Web前端人员能解决的,通常拥有这样技术的人才,工资水平也不会比Native开发人员低多少。如果你仅仅是要开发一个移动设备上的网站,这会简单很多,但如果你希望模拟Native应用,并且拥有较高的效率和优雅的用户体验,这就很有技术含量了。不要小看Javascript这类Web开发语言,通常我的看法是越简单的语言越会体现出技术人员的水平,特别是规划设计能力。  5.其它问题,资源调用的限制,比如说在iOS中有Javascript运行不能超过15秒的限制,不能调用本地硬件设备(如相机等),无法使用推送服务等。  如何选择?  是否这样,我们就不要选择HTML5了呢?我在前面说过:&要根据企业自身的情况、团队的构成、公司的战略以及产品的特点来综合选择&,我最近在关于HTML5讨论的微博上也有谈到:&HTML5是战略性方向,Facebook和Google已经布局,Google Mobile在iPhone上的体验可以媲美Native。基本上Native+Web App可以秒杀多数应用,如果不愿意受制于各种Store,单独的Web App也是一个不错的方向。对于游戏类和对硬件环境依赖严重的应用,只能是是Native&。仅管有这样那样的问题,但HTML5是一种趋势,在未来三至五年,HTML5将会取代很多本地应用,但就像多年前我们一直在谈B/S架构取代C/S架构一样,这需要一个过程。  通常在HTML与Native之间,我们有三种选择&&HTML5、Native App以及HTML5+Native,HTML5就是指纯Web的移动应用,用户需要打开浏览器,然后输入应用的网址访问。Native指的是基于特定平台开发的应用。Native+HTML5实际上是一种加壳的方式,将HTML5用和浏览器封装起来,但这对用户是不可见的,用户没有任何异物感,和Store上下载的App没有什么两样。  就我个人而言,我是比较推崇HTML5+Native的,这种加壳的方式,可以让你享受Native与HTML5的双重好处,但缺点是对技术含量要求较高。当然我这里指的不是简单地把HTML5封装到一个浏览器里面,Native与HTML5会有许多的交互,实际上这有点像混合硬盘,我们即便享受SSD的快速,但我们又想获得机械硬盘的高性价比。我认为在5-10年内,这都会是一种不错的解决方案,当HTML5和硬件发展到一定水平之后,我们再完全转向HTML5成本也会非常低的。  如何做?  假定现有一个对本地环境依赖不那么严重的项目,如微博客户端,各种社交美食甚至LBS应用,我们都可以采用HTML5+Native。如图所示,我们可以将核心的代码Core层用封装起来,这个代码和平台无关,主要是业务逻辑以及和Shell的交互,代码用Web语言编写。在Core层上我们再根据不同的移动平台制作不同的UI。最后我们将上述两层放到各平台的Shell中,这个Shell主要是由浏览器来完成工作,当然还包括一些硬件操作和读取本地资源,如GPS、重力感应、相机调用、地图、推送通知或者IAP等。
  我们可以把Web的升级部分部署到服务器上,用户运行App后,App会向服务器讲求获取最新的Web程序并下载运行,这样可以达到跳过各种Store的更新审核,达到快速更新的目的。而且假如用户无法访问互联网,我们可以让用户使用上一个版本的程序,不会像纯Web App那样要求用户一定要联网  好处  1.用户可以离线使用  2.更新下载量及少,可以全部更新,也可以选择替换部分文件  3.代码很安全安全,众所周知Web应用有一个很大的问题就是代码安全的问题,但现在我们可以将Web代码全部加密,本地应用解密后再运行,大大的提供了代码的安全性。  4.可以通过浏览器作为中介充分利用Native的好处,比如说可以使用GPS、照相机、本地相册、读取本地联系人,也可以使用推送功能等,最重要的是,某些Web无法实现的功能,我们可以利用Native来实现。  5.跨平台,多数核心代码不用重写,Javascript的代码用得好的话,在许多地方都可以用到,包括移动应用、移动网站、PC网站、各种浏览器插件,甚至可以用WebKit封装作为跨平台的应用程序。诚然,这种方式并非完全跨平台,但这样也足以减少很多工作量了,特别是后期的维护。而且完全的跨平台是没有意义的,不同平台有自己的风格,为了更好的用户体验,界面层还是需要针对性开发的。  坏处  我觉得最大的坏处是技术难度高,如果仅仅是简单的浏览器封装几个HTML文件,那没什么技术难度,但如果要打造一个系统级的东西,这就很有技术难度了。这要求有人要了解三个主流平台的浏览器特性,通晓Native程序的开发,要精通HTML5/CSS3/Javascript,最重要的是,要有较强的架构设计能力。  如果要再找一个坏处的话,就是它不能满足所有的需要,它并不能代替Native,但我认为他可以替代大部的Native。  适合我们吗?  首先从产品的角度考虑,你的产品是否严重依赖于本地环境,比如说图像处理和华丽的游戏之类的。第二要考虑的是你的技术团队的构成,如果你们的团队有一个能解决这些问题的牛人,并且有一些清通Web前端的人,那我觉得你可以考虑用这种方式。技术选型非常重要,稍有不慎,后患无穷。第三个要考虑你们公司的战略,对HTML5未来发展的看法,愿意在移动互联网上付出多少代价,是否愿意做前瞻性的事,是否愿意在前期投入较多的资源,是否允许试错等等。  本文来自涂雅
同为Android手机,为何HTC拼不过三星
& & & & 三星盈利45亿美金,超过了任何分析师的预期,收入则上升了12个百分点,达404亿美金,手机年销售数量超过3亿部,破三星历史记录。  而另一边HTC,在盈利两年之后,不管是利润还是总收入都在下降。HTC在声明中称,公司手机单价可能会有所下降,不会像之前那么高,同为Android手机制造商,为何HTC不如三星?  产品结构  1)与同生产Android机的三星相比,HTC产品种类单一,只有智能机。  目前三星还未透露具体销售组合,功能机的销售额尚不清楚,但可以确定的是,三星销售额的增加,大部分归功于功能机而不是Android机,其Bada功能机功不可没。  三星功能机的市场份额和销售额在去年第三季度均有所增加,Gartner将Bada手机归为智能机,因为这种功能机具有类似智能机的功能。市场份额从1.1%上升到2.2%,销售额是之前的两倍之多。  而HTC则只销售智能手机,由于不能吸引市场上的其它手机用户,存在局限性,而且,许多其它Android手机制造商都想方设法推出更廉价的智能机,这也是其收入下降的另一个原因。  2)而与在手机市场仅关注智能机的苹果相比,HTC又不够高端  除了要与同类Android手机制造商进行竞争以外,HTC还要与另一位在手机市场只生产智能机的厂商竞争,也就是生产高端手机的苹果,有分析师认为,HTC还未找到自己的竞争优势,若走低端路线,价格拼不过其它Android手机制造商,若走高端路线,品质拼不过苹果。
  品牌影响力  你会发现,苹果的智能手机系列名称都是iPhone,三星的都是Galaxy,而HTC的呢?很多,包括Sensation,Wildfire,Rhyme,而且在不同的市场有不同的名称,没有一个特定的主旋律,消弱了品牌认知度。  在为消费者提供多项选择过程中,没有找到一个平衡点,反而让用户感到困惑。分析师称,之前诺基亚在这方面犯过错误,现在HTC重蹈覆辙。  不过,Facebook曾宣布要与HTC合作开发Facebook Phone,如果这款手机真能为用户提供现在的手机不具备的功能,提供独一无二的体验,那么,HTC就还有希望扭转局面。  英文原文:
HTML 5游戏市场究竟有多大?
& & & &编者按:本文编译自SM的&&一文,部分内容有删改。  正如我最近在博客中写道的那样,我坚信2012会是HTML 5移动游戏大展身手的一年。在创建我自己的游戏开发工作室时,和其他的创业公司一样,我需要做很多功课,以下是我总结的HTML 5游戏创业公司通常会遇到的一些问题,以及我对这些问题的个人理解:  .  HTML 5游戏市场究竟有多大?  虽然我不知道该如何更好地回答这个问题,但过去几年智能手机的销售情况无疑是一个不错的参考。据computing.co.uk报道,2011年第二季度全球的手机销售总量为4.287亿,同比增长16.5%;其中智能手机占销售总量25%,并以74%的增速逐年递增;Google和苹果成为整个智能手机市场的两大主导力量,iOS和Android平台的智能手机共占62%的市场份额,而它们2010年同期的市场份额仅为31%。  更早一些的时候,2009年智能手机全年的销售量为1.724亿,2008年全年的的销售量为1.392亿,略多于2011年一个季度的销售量。  另外,值得一提的是,大屏幕设备正在逐步成为市场主导。  Google统计数据有何价值?  从我自己公司的统计数据来说,2011年11月我们游戏网站的访问量为3.3207万,其中独立访客数为2.4628万,也就是说有8579(约25%)是回头访客。这比我的预期要好。  另据Google的统计数据显示,我们网站平均每个页面浏览2次,这与我的预期大致相符,第一次是浏览游戏列表,第二次是离开页面开始玩选定的游戏。  更深入一些来看,我注意到平均每个访客在网站中的停留时间为2分钟左右,是真正所谓的&来去匆匆&。  游戏玩家的群体结构是怎样的?  从操作系统来看,55%的访问者使用Android系统,16%使用iPhone,15%使用iPad,12%使用iPod,其余的就是使用塞班、三星和诺基亚等等。另一份关于Kimia移动门户网站IOPlay.mobi的统计数据显示,在总量为150万的点击量中,Java 29.5%,Android 22%,Blackberry 21.5%,Symbian 14%,iPhone 13%。在这些数字中,19%的点击量来自HTML 5游戏。  从地理位置上来说,我们网站的大部分访客都是来自欧洲,少量来自美国和亚洲。我相信,一旦iOS 5找到市场立足点,将会有越来越多的iPhone/iPad用户会成为我们网站的访客。而在iOS 5成长起来之前,我将更多地注重Android平台。  玩家喜欢什么样的游戏?  自己开发的游戏是什么样的?这些游戏是否真的符合手机游戏玩家的口味?  我们公司开发的游戏大都是传统型的街机游戏,如Hypergunner和Galactians是传统的射击游戏, Danger Ranger是简单的平台游戏,Spy Chase是经典的赛车游戏,从用户反馈来看,我们最受欢迎的游戏是Galactians。我觉得喜欢反复玩我们游戏的人或多或少有一丝怀旧情节,当然,我们也十分注重游戏质量,因此吸引了部分年轻玩家。  当下有哪些热门游戏?  目前,已有很多游戏网站陆陆续续高调上线,随着HTML 5的日渐成熟,类似的游戏网站还会越来越多。为了吸引潜在用户,我们首先应清楚玩家需要的是什么。  当前人们喜欢玩的游戏有哪些?玩家的年龄构成是怎样的?以下是来自荷兰知名HTML 5游戏公司Spil的一份统计数据:
Girls (age: 8 to 12)&&Dress Up Games、Quizzes、Puzzle Games、Board & Card、Skill Games
Teens (age: 10 to 15)&&Action Games、Racing、Sports、Girls Games、Adventure
Family (age: 8 to 88)&&Puzzle Games、Girls Games、Skill Games、Racing、Board & Card、Quizzes、Time Management Games  据悉,Spil平均每月的主页访客高达1.4亿,其中8500万为女性。  小结:  开放式web技术的移动游戏市场正在以惊人的速度增长,在过去不到半年的时间里,移动游戏网站的数量增加了3倍。当前环境所提供的技术、技能、标准支持,以及各平台不断完善的浏览器功能,为HTML 5游戏开发者创造了前所未有的良机。  虽然目前我们还处于HTML 5游戏的早期阶段,但随着智能手机的普及,以及技术和标准的逐步成熟,HTML 5游戏的发展空间无疑会越来越大。  英文原文::The market for HTML5 gaming
& & & &最近,我们在讨论一个产品命名的时候,有人问我,现在一个完美的域名是否已变得不再重要?作为一个被域名折磨多年的人来说,我不得不承认域名真的已经不再重要,并且将越来越无关轻重,理由至少有如下五条。  1) Google  你还记得上一次说出朋友们或者亲戚的电话是猴年马月吗?你还记得上一次准确写出邮件联系人的确切地址是多久之前吗?对我来说,不用汽车导航穿过整座城市已经是很久之前的事了。软件已经代替了大脑,替我们完成诸如此类的工作。域名和电话号码和Email地址类似,唯一的标识让电脑比人脑更有优势。(尽管对人类来说,域名是可读的IP地址,但是电脑依然可以更好的处理和记忆域名。)  如果你在你的电邮界面地址框中输入:张三,它会给你提供很多你之前联系过的&张三&的地址,你基本可以在这些地址中找到你想联系的那个&张三&。如果自动联想失败,你会找到该地址并将它复制到地址框中。在这个过程中,你根本不会在意这个电邮地址究竟是什么。  很多人这样用google。当我第一次看到人们在google中搜索&&以登陆雅虎网站时,我震惊了。就像这条博客留言一样,成千上万的用户通过在google中输入&facebook login&登陆Facebook,google才是大家上网的入口。我很希望这不是真的。但是,google的确就像所有网站的入口一样。不对,google只是这些入口其中之一。  2) 自动完成地址框  对那些更高级一点的用户来说,浏览器地址框的自动完成功能替我们记住了各种网站地址&哪怕那些我们只登陆了一到两次的网站。事实上,google在Chrome浏览器的地址框做了完美的整合。有了Chrome,你啥都不用记。  3) 移动浏览器和隐藏地址框  我们之所以在意域名,是因为我们打开什么页面都能看到相应的地址。当然,在移动设备上并非如此。因为页面有限,移动设备上的浏览器地址栏往往被隐藏了。当我们打开一个页面的时候,往往看不到它的地址。  出于简化设计的考虑,google很有可能将隐藏地址栏引入桌面浏览器(当我写这些的时候,我很想知道google是否有个秘密计划要将域名做掉并取而代之。)  4) 应用程序  上一条理由中,我们谈论了用户手机上网的问题。但是大家现在不太关心域名的原因是:大家都开始用APP了。从我个人角度来说,我不认为未来是完全属于APP的。但是应用程序侵蚀了用户本来花在浏览器上的时间。现在基本每个APP都会对应一个网站,但是由于大家都是通过应用商店来安装这些APP,所以域名也就无关轻重了。  5) 小众域名的兴起  拥有一个理想的.com域名越来越不重要,因为大家有了其他选择。传统上,大家认为只有.com的网站才算是正统的网站。据我了解,在从前,大家对类似.biz或.cc的域名没什么兴趣。当你见到这些域名的时候,也许还会对其正规与否产生怀疑。但是现在,你不会再这样了。  Del.icio.us可谓是域名变革的先驱,其域名选择也让极客们称赞(尽管如此,Yahoo还是指出Del.icio.us太难输入)。Bit.ly让.ly域名在诸多新兴网站中流行起来。About.me让.me域名成为其网站名称的一部分,与之相似的还有Last.fm和最近风头正渐的turntable.fm。  有缺陷的.com域名也变得可以接受。例如,Facebook曾使用过域名。Dropbox曾用过。很明显的,我们可以得出结论,网站成功与否和域名是否理想已经没啥必然联系了。  37 Signals是最早如此认为的公司之一。当时其有一款产品叫Basecamp,但是使用的域名是。现在,这种设计优良,但却使用一个&烂&域名的产品越来越多。  因为这些事例,人们的想法改变了。  我不知道当新的顶级域名发布的时候会如何。我只知道我们将鉴证更多非.com域名的成功。这对于那些创业者们来说是好事。因为如果他们追求理想的.com域名,哪怕该域名没有被使用,哪怕忽略域名高昂的售价,光是联系域名持有者和讨价还价的繁琐过程也让人不堪忍受。  结论:品牌比域名重要很多  虽然一个好的.com域名依然价值不菲,但是它已经不像过去那么重要了。并且随着科技的进步,域名的作用将越来越小(特别是移动互联网相关的项目)。如果我需要选择一个域名,我当然会优先考虑一个合适的.com域名,但是这已经不是必需品。  另外一个角度来说,产品和品牌,依然是非常重要的(在互联网企业尤为如此)。太多的创业企业为了和域名匹配,不得已选了一个愚蠢的名称。令人欣慰的是,随着浏览器、应用程序等方面的发展,这样的悲剧将越来越少。  英文原文:&
技术演讲的技巧和经验
& & & &导读:如果你在编程大会上发表演讲,不论是开放式的BarCamp或是像OSCON那样精心组织的大型会议,你只有很短的一段时间将脑中的信息传达给听众,所以请仔细把握。  技术会议的成本非常昂贵,不仅仅是经济上的成本。即使像BarCamps这样的免费会议也需要与会者投入宝贵的时间。大家放下手头的工作或者割舍与家人一起的时光,而这段时间是无法用金钱衡量的。大会(按照主题)浓缩成45分钟的专题,演讲者和听众都因该充分利用这段时间。  开场白通常都是浪费时间,演讲一开始通常都是无用的信息。如果你是演讲者(我会告诉你):我不在乎你为哪个公司工作,除非这与你要演讲的主题有关;我也不需要了解你正在讨论的产品历史。如果你的演讲一共45分钟,那么花5分钟时间介绍自己就意味者浪费了11%的时间在介绍没有人会关心的信息。  作为听众,在演讲一开始我就想知道能否从中得到一些有用的东西,并确定是否需要收拾东西转向另一个会场。  下面是一位注重实效演讲者的开场白:&嗨!我叫 Sharon Bosworth,感谢参加今天的演讲。今天我要讲的主题是如何使用FooTest测试框架测试Perl程序。一年半以前我加入了 Amalgamated Widgets,我们有一个上千行的代码库,项目经常由于bug延期。现在,我所在的4人团队已经成功地将项目周期缩短到之前的一半,管理团队爱死我们了。接下来我要介绍我们是如何使用 FooTest达成这一目标的,与此同时还会介绍如何在你的公司中采用这个框架。&  在这个开场白中,演讲者介绍了她将要讨论的内容、为什么有趣以及听众能从中得到哪些收获。请留意Sharon没有介绍的内容。她没有介绍她住在哪里,为多少家创业公司工作过,或者参与的开源项目有哪些。她只向听众传达了演讲本身必要的信息,没有任何废话,并成功地抓住了听众的注意力。  作为一名听众,一般在开场几分钟内你就能辨别演讲者是否优秀,以及即将进行的演讲是否有价值。如果答案是否定的,请马上起身去别的会场。通常我会在日程安排中选择一个备份,如果我的第一选择失误,就可以马上去听那一场。不要在演讲一开始就上网、检查邮件、Twitter更新或者FarmVille收获如何。如果你浪费了开场的5分钟,请好好把握剩下的40分钟不要做其他的事情。演讲的时间是宝贵的。  译注: FarmVille是Facebook上的游戏,由美国的社交游戏开发商Zynga开发,类似于国内的开心农场。
  Farmville是一个很好的测试。它无须动脑,是人们在感到无聊时用来打发时间的游戏。如果你在演讲的内容还不如种虚拟土豆有意思,那么你的演讲肯定有问题。  如果在你演讲切换到下一个主题时看到有人在玩FarmVille。当然,不可能每位听众都会全神贯注,但是如果大多数人都是如此,即使你花费很多时间写了幻灯片并准备了示例,这时你还是应当夺回他们的注意力。也许你讲的内容与听众并不十分相关,因为他们没有使用最新的C++或者你所说的移动测试技术并不能在他们的平台上使用。除非你看到相当一部分的听众专注地看着你,这时你才可以说&这里只是简单的介绍,如果你希望了解更多请会下联系我&然后再切换到下一个主题。  永远不要把演讲变得乏味。我的导师之一,卓越演说家Mark Jason Dominus曾经说过:&如果要在娱乐性和知识性之间选择,作为演讲者你应该选择前者。人们会愿意把生命中45分钟交给你&。  务必让演讲变得有趣。即使演讲内容与听众需求无关,你也可以让演讲变得有趣。虽然我不想通篇都谈论FarmVille,但是CodeConf大会上的一场精彩演讲讨论的就是Zynga公司的基础架构,通过它FarmVille得以支持上百万用户。演讲者讨论了如何处理移动设备的延迟问题,以及Farmville后台进行异步通讯的同时,如何让用户在操作时仍然感觉程序在即时相应。这让我想到自己应用程序中的延迟问题。最重要的是,这个案例研究非常吸引人。  最优秀的演讲者不会让听众空手而归。如果可能的话,可以提供3到5个回到办公室就能做的练习。如果打印在纸上那就更好了。还有一个附加的好处是,听众不用疯狂的做笔记而可以专心听你讲解。  最后一个建议是,在让演讲变得有趣的同时一定要注意:使用幽默一定要小心。技术演讲中带有男权主义、性联想以及其他不专业内容的言论都会招来全场听众的愤怒并让他们觉得恶心。一段对女性&性感&打分的示例代码可能让你觉得有趣,但是起码会让听众分心甚至让他们觉得被冒犯。作为听众,如果你在某个演讲中发现不专业的内容,请不要害怕马上起身离开。即使你没有这么做,也可以让演讲的组织者知道这个问题。  你参加技术会议中见到的最好的和最糟糕的事情是什么?请在评论中与大家分享。也许这样我们就可以阻止一位,仅仅一位演讲者犯同样的错误从而浪费你宝贵的时间。  英文原文:&&
MD5算法的安全性
& & & &&泄密门事件&对用户影响最大的恐怕是明文保存密码的CSDN和天涯社区,如果当初他们使用散列算法将密码进行处理,就不会有这么大的影响,而对于散列算法,就不得不说一下MD5这个算法。  散列算法(Hash Function)中,最为常用的是MD5(Message-Digest Algorithm 5)算法,MD5是一个较为古老的算法,一度被广泛应用于安全领域。比如在UNIX系统中用户的密码就是以MD5(或其它类似的算法)经加密后存储在文件系统中。当用户登录的时候,系统把用户输入的密码计算成MD5值,然后再去和保存在文件系统中的MD5值进行比较,进而确定输入的密码是否正确。  通过这样的步骤,系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。这不但可以避免用户的密码被具有系统管理员权限的用户知道,而且还在一定程度上增加了密码被破解的难度。  不过,由于MD5的弱点被不断发现以及计算机能力不断的提升,通过碰撞的方法有可能构造两个具有相同MD5的信息,使MD5算法在目前的安全环境下有一点落伍。从实践角度,不同信息具有相同MD5的可能性还是非常低的,通常认为是不可能的,通过碰撞的方法也很难碰撞出复杂信息的MD5数值。  因此,MD5算法还是被广泛的用作检验文件是否变化的散列函数,很多类似迅雷、旋风这样的下载工具,都可以通过MD5来验证,用户下载下来的文件是否被修改。
  在用户密码的处理方面,MD5总的来看还算是安全的,至少比明文保存密码要好的多,目前破解MD5主要依靠大型字典的方法,将常用密码进行MD5后建立数据库,然后和MD5数值进行对比,通过这样的方法来&破解&MD5,因此,通常直接将密码进行MD5处理的话,一些弱密码很容易可以通过这种手段&破解&出来。  不过,如果在散列的过程中,加入足够长的salt(即干扰字符串),并且salt加入一些动态信息,例如username、随机码等,这样生成的MD5还是很难被破解的,因为仅仅从数据库无法看到MD5具体的处理过程,必须同时看到处理时的源代码才可以,这就给破解MD5带来相当大的难度。  还有一个方法,既然简单密码的MD5是不安全的,网站的开发者只需要一个简单的技巧就能提高密码的安全度:在用户注册的时候,录入新密码后进行判断,强制密码必须8位以上,并包含字母和数字,否则不让注册,这样用户注册后使用的密码就都是不容易被破解的密码了。  如果需要更安全的算法,建议不用MD5,而使用SHA-256, SHA(Secure Hash Algorithm,安全散列算法)是美国国家安全局(NSA)设计,美国国家标准与技术研究院(NIST)发布的一系列密码散列函数。目前还没有出现针对SHA-256算法的有效碰撞攻击方法,该算法也是开源算法,在很多地方可以找到,是MD5的一个不错的后继者。
为什么程序员的社会地位不高?
& & & & 到目前为止,在过去60年中在世界排名前20的国家中,没有哪条街是以程序员或者计算机科学家的名字命名的。没有任何一个世界主要城市拥有程序员或者计算机科学家的雕像。没有程序员或者计算机科学家获得过总统奖章(Presidential Medal)或者国会金质奖章(Congressional Gold Medal)。没有国家级别的针对程序员或者计算机科学家的颁奖典礼。  但是我们有艺术、运动、经济、娱乐等大型颁奖典礼。更没有红地毯或者类似诺贝尔奖来表彰程序员的成就和为人类作出的贡献。  即使程序员、计算机科学家的工作让整个世界大唱赞歌,他们也只是坐在后排座位,看着别人发表演讲,拿起奖杯。
  唯一的一个例外,是英国的计算机科学家 Alan Turing (图灵)被誉为计算机之父。图灵有以下荣誉:一座桥和一条街被命名为&Alan Turing Way&。图灵的雕像从日开始立在了曼彻斯特。从1966年开始,图灵奖每年都会颁发给在这个领域有杰出贡献的人。图灵奖被誉为计算机世界的最高奖项,等同于诺贝尔奖。  大部分的程序员和计算机科学家的薪水都不如销售,管理,设计,医生等等。当然程序员在约会方面也没有优势,他们不是艺术家,音乐家,设计师,建筑师,运动员&&程序员们绝对不处于男女关系链(Sexual food chain)的上层。  时代杂志在过去的85年中曾经提名过4位计算机领域的年度人物, The Computer & 1982年, Andrew Grove & 1997年, Jeffrey P. Bezos & 1999年, Mark Zuckerberg & 2010年。
  图为Facebook的创始人,Mark Zuckerberg 和他的华人女友Chen。  不管怎样,计算机明星要进入人们的日常生活,学校,街道,市场,媒体等等还有很长的路要走。  于是,我就在思考一个问题,为什么程序员和计算机科学家不能得到合理的认可和荣誉?我看看周围的世界,我在想假如没有这些怪人,世界将会怎样?从iPhone到其他最新的电子产品,少了这些疯狂工作的怪人,一切将不复存在。  还有一个令人不悦的事实:在日,C语言的发明人Dennis Ritchies和乔布斯差不多时间离开我们。但是关于Ritchie的报道寥寥无几,几乎被世人忽略。只有非常少的媒体,博客和论坛报道了这件事。全世界铺天盖地都是乔布斯的消息,包括美国总统在内的数不清的商界精英和媒体都在报道乔布斯的人生、成就以及遗留的问题。  我想问&Dennis Ritchie 的成就不如乔布斯吗?乔布斯的成就给我们的生活带来了更多的进步?&假如你的答案是NO,那么你怎么解释我上面说的事实、现状?!  于是,基于上述事实,我做了一些调查。我的发现令我震惊,也让我觉得很好笑。  第一个发现:这就是程序员的命。程序员的自我尊重和自我认知价值太低。  有一个现象可以证明这一点:程序员们互相厌恶。他们通常在非程序员面前抨击别的程序员。把一个程序员的代码给另外一个程序员,往往,常常,后者会给前者的工作以负面评价。  艺术家不会这样。  销售员不会这样。  管理者不会这样。  政治家这么做只是为了赢得选票。  其他专业人士他们会公开的支持同行,即使他们有竞争。(例如律师,请不要问我为什么美国事实上是被这帮混蛋统治的)。  简而言之,上面提到的这些行业人员拥有更大的行业事业,以自己的工作和行业自豪。
  螃蟹思维是要不得的!(螃蟹思维:一堆螃蟹在盒子里面,盒子是开口的,但是任何一个螃蟹尝试向上爬的时候,其他的螃蟹就会把它拉下来,不让它爬出去。)  第二个发现:大部分人讨厌程序员。  销售讨厌程序员。  管理者讨厌程序员。  设计师讨厌程序员。  政治明星讨厌程序员。  女孩们讨厌程序员。  为什么?我不知道。我们需要让少一些人讨厌我们!  第三个发现:程序员们并不追求浮华的头衔,性感的典礼、奖项、他们讨厌聚光灯。  程序员们喜欢编程。他们想要独自编程。编程是他们的目标,是他们的政治,是他们的荣耀。他们对公共演讲不感兴趣。他们讨厌不如他们聪明的人。他们讨厌不理解C++编程逻辑的人。  于是他开始慢慢说服自己生来就是内向的。所以他害怕外出,害怕接电话,害怕去泡吧,害怕去见陌生人,害怕所有能为他建立社会关系和社会地位的活动。
  图为Marissa Mayer,Google的美女高管,程序员出生,常常代表Google在公众场合发表意见,接受采访。  我有一个梦想:  1. 书呆子、怪人也有资格获得总统奖章、国会金质奖章以及其他能够承认他们贡献的高等级的奖项。  2. 我是一个程序员,我和其他程序员是朋友,不是敌人。我不在别人面前贬低程序员。  3. 程序员是聪明勇敢的,而且我们也很风趣。&内向不是我们的DNA,所以我们并不是生来就内向,我可以调整我的态度和社交能力。&  目前这个年代对程序员是非常有利的,起码我们很容易找工作而其他行业还得头破血流的抢饭碗,哈哈!程序员大复仇!  英文原文:
百度年会惊现度娘
& & & & &百度2012年会上,一位性感美女的出场引发了全场热潮,并迅速在新浪微博上走红,这位被誉为&度娘&的百度美女HR刘冬出尽风头,无数IT死宅争相表示:众里寻她签百度。  在百度年会的走秀中,优雅翩翩的刘冬一袭薄纱低胸长裙亮相,秀出事业线,刘冬的长裙本就低胸,在走秀过程中,刘冬还不时拉扯小坎肩,更加豪放秀出事业线,令人惊艳无比。刘冬的照片一上传到网络,立刻引发了网友的热捧,更有网友大赞刘冬的美貌,称其外型和气质酷似台湾第一名模林志玲。  下面的图片就是在新浪微博上最为走红的一张照片。该照片被网友冠以:长相甜美、神似林志玲、身形苗条、明星范儿十足、性感火辣等高度评价。该片发到微博后,至今被转发及评论三万多次。
原来这就是大家天天念叨的度娘啊  而在新浪微博上,刘冬的新浪微博认证资料为&百度公司HR Specialist 刘冬jocelin&,在1月9日的新浪微博热搜榜上,百度年会HR女刘冬jocelin几乎垄断了前十名,网友惊呼林志玲翻版,刘冬Jocelin的新浪微博瞬间爆发,粉丝数爆棚,从寥寥几千人,猛增到今日的15万粉丝,成为互联网界IT程序猿的焦点,更有众多IT精英大呼度娘,准备跳槽到百度。
  一夜在微博爆红的刘冬,引爆博友围观,而她的这组照片成功俘虏了众IT宅男们脆弱的小心灵。可见,苦逼的IT业界是多么地需要美女啊。
程序员的本质
& & & &很多人认为计算机变得如此智能,所以在不久的未来将不再需要程序员。另外一些人认为程序员是天才,他们在电脑前能不断地解决复杂的数学难题。甚至不少程序员对他们是做什么的都没有清晰的概念。在这篇文章中,笔者想给不知情的人解释一下程序员到底是做什么的。  程序员是将人类想法翻译成计算机语言的译者。  他们是两种世界之间的纽带。你认为维护这个纽带很容易吗?
  人类世界的背景  The problem with people is that they&re only human. & Bill Watterson  人类的问题是,他们只是人而已。&&比尔&沃特森  人类是生物进化的产物,并且拥有独特而宝贵的器官&&大脑,它能为程序员提供想法。大脑有组合复杂的新大脑皮层(对人类而言是独特的),还有从哺乳动物和爬行动物继承的旧结构。旧的大脑结构主要负责生殖(性)和生存(寻找食物或者躲避危险)。新大脑皮层进化成能够更好地支持这些功能,但是,它开始产生奇怪的副作用&&意识、思考和好奇心。幸亏这些副作用的影响,人类产生了文明并在数千年后发明了计算机。  一些人相信经过数千年的发展,人类应该变成完全沉闷的、理性的、可预测的生物,但是这并没有发生。人类旧的大脑结构、复杂的心理和社会行为往往使人们不理性,不可预测并带有欺骗性。并且,人类有糟糕的记忆力、强烈的情感和个人兴趣。但是,程序员没法选择与更理性的物种工作,他们不得不与人类共事并且把人类的想法翻译成计算机语言。  计算机世界背景  Part of the inhumanity of the computer is that, once it is competently programmed and working smoothly, it is completely honest. & Isaac Asimov  计算机非人性的一部分表现是,一旦完成编译并且顺利运行,它将忠实地完成工作。&&艾萨克&阿西莫夫  计算机是人类文明的最佳发明。它由CPU、主板、内存、硬盘驱动器、显示器和其他部分构成。计算机将我们的文明推入一个新的水平,使我们的生活更有意义并充满乐趣,还弥补了我们大脑的缺陷。很可能计算机比人类更聪明。(不过,我有点关心如果这成为现实后,计算机还需要人类程序员吗?)  现代计算机具有完全逻辑性、直接性和顺从性。如果你知道它应该做什么并且知道如何命令它,那么和计算机一起工作是快乐的。唯一的问题是,计算机只会做你告诉它去做的。因此,你应该有清晰的思路并且在见你的上司或客户时保证计算机不出岔子。  在人类和计算机之间的翻译  翻译中会遇到三个主要的挑战:
1. 语言歧义。人类语言是模糊、复杂并且双关的,例如:&这个程序不能提供良好的用户体验&。文化、背景和上下文语境都会对沟通和含义造成影响。与之相反,所有计算机语言都是准确、直接的,与上下文无关。
2. 细节层次。人类的沟通是笼统而不带有过多细节的,例如:&我想让这该死的程序运行起来&。这样可以节省时间与精力,但由于缺少详细信息,会产生两个比较大的问题&&误解和不确定性。而计算机需要所有细节&&每件事都要说清楚。
3. 思维模式。人类习惯于思考需求、结果与解决方案之间的关系,例如:&这份报告应该在2秒内运行,而不是2个小时&。然而,计算机需要算法&&按照步骤去达到想要得到的结果。  为了写出优秀的软件,程序员们必须克服这些困难,理解人们的想法并将之转换成计算机语言。  一名优秀程序员所具备的能力
  我们可以看到,一名优秀程序员应该具备应付两个不同世界的两套技能。  理解人类的需求并提出解决方案:
1. 沟通&&与人建立联系的能力,能够同他人亲密的交谈,并有勇气去尝试分享自己的观点。
2. 意图&&从谈话中提取有用的信息,理解并使之有意义。
3. 逻辑&&为不懂让步的计算机整理、剔除那些人类思想中含糊而有争议的内容。
4. 创造力&&挖掘、转变人类的想法,从而创建优秀的解决方案。
5. 构思&&利用人类友好的接口和便捷的互动性来包装编程思想。
6. 大局观&&清楚解决方案是如何适应全世界的用户、企业以及其他,从而使你的程序更有用。  告诉计算机该做什么,并建立解决方案:
1. 逻辑(再次强调)&&把程序员的想法组织整理成有凝聚力的软件思想和计算机指令
2. 技术&&发现并理解科技黑箱(对于99%的人来说是黑箱)。
3. 编程语言&&学习美观的、富有逻辑的、清晰明了的语言,从而把程序员的想法提供给电脑。
4. 算法&&精通让计算机完成任务最高效的方法。
5. 建模&&在软件代码中建立抽象和模型,从而掌握并操控想法。
6. 实践(比如代码重构、单元测试、持续集成)&&周期性活动,以保持系统可靠、健康与可改变。  面向人类和面向硬件对象/系统的程序员有很大不同。  不与人沟通的程序员不是好程序员。一个优秀的解决方案需要计算机世界与人类世界的双重技能。只有连接起两个世界,才能成为一个真正的优秀程序员。  英文原文: 
IT工作者是21世纪的矿工吗?
& & & & 几星期前,笔者向大家介绍了我的朋友Shawn。他是个强壮的系统思想家,一名退伍军人,一个在我少年时就尊敬与钦佩的人。Shawn在网络时代中成长,开始是一名程序员,然后是普通的技术人员,再之后成为了IT经理,而现在我不太清楚。最后一次见他时,他是一家IT管理服务公司的客户代表,那种在传统IT部分很吃得开的人。  Shawn关心他的领域,分享他在战壕生活中的观点。因此,当他一直在写他看到的发生在我们领域的事,并请我发布的时候,我没办法说不。  这个让Shawn一直夜不能寐的问题是:IT工作者是21世纪的煤矿工人吗?  以下观点来自于Shawn,并非本人。  搞IT就像挖煤一样  从19世纪70年代开始,一直到20世纪30年代的大萧条时期,煤矿工人都在忍受着雇主们的剥削。煤炭公司极大地剥削工人以获取最大利益:工作环境复杂多变,有些地方简陋不堪甚至极度危险。工资由工人从矿场里开采出的煤炭重量决定,没有人在在加固隧道,保证安全上浪费时间。他们被迫住在公司提供的房子里,拿着毫无价值的公司欠条,只能在公司内部商店花掉。
  我不是说如今的IT工作者处在塌方、受伤甚至死亡的高风险下,至少不像过去的煤矿工人一样。我们的塌方风险来自于服务器机房里堆着的已淘汰的100GB硬盘,心血管是我们大部分在职员工的伤害来源,对,我猜你肯定会死在你正在开发的地方,但是如果你少喝点咖啡,可能会好一点。  然而,如今的雇主们似乎不再顾虑直言不讳地谈论员工利益了,给员工时间,然后支付已完成的工作。  他们是如何做到这些的?这是通过之前一个&美妙的&机会,做一个&受薪&或&豁免&的员工吧。  而员工中有&豁免&种类的产生是因为,在按钟点获取报酬的&生产区工作&的工人与领薪水的办公室&上级&们之间有明显的区别。按钟点获取报酬的叫&蓝领&,领薪水的叫&白领&。  白领直接关系到生意。不像工作在生产线上的工人,他们的生产力可以用每小时生产的件数,每天生产的吨数或者其他的来计算。白领对底层的贡献并不能很容易地换算成每小时支付的基本工资。  2004年,联邦劳动法被修改,使得更多种类的员工能够成为豁免员工(尤其是行政人员)。很多员工很高兴能享有豁免资格。我知道当我从事第一个IT职业工作时就是这样的。即使我工作到下午6点,好吧,但是如果我不得不在下午4点离开去看病,我不必担心因为这周我的薪水会少而不能支付高额账单。  在今天的商业环境,更多的雇主不采用增加员工人数,而是使用&豁免&员工身份的方式来获得IT部门之外更广的覆盖面和更多的工作。  有公司在仓库里实行两班倒吗?现在,我们不需用两班倒的IT人员。上午7点在办公室做电话推销员的PC技术人员和下午6点前修好经理打印机的人可以是同一个,电话推销员的VoIP电话系统中的中断会在晚上7:15处理好,而且他会在晚上9:55接到电话,因为那该死的UPS系统又在打印联邦快递的标签了。  公平来说,他们这样做某种程度上是为了其他业务环节,但是我非常肯定营销经理不会因为新的产品宣传手册做好而早早地在凌晨2点起床。  回顾2000年之前的&可悲日子&,破产了,我工作于一家有大型机的软件公司。他们聘请&计算机操作员&采取合法的两班和三班倒的进度表。  英文链接:
被社交绑架——网络时代的悲剧
& & & &不知从什么时候开始,在路上、在电梯里、在饭桌前,和朋友间、同事间的寒暄和沟通突然少了,似乎大家一夜间都成了&手机控&。偶尔聊几句也是&三句话不离互联网&,譬如,我新浪微博粉丝已经多少多少了、我在淘宝上淘到一件XX宝贝、我在香哈网上找到一份XX外卖等等。网络已经成为我们每天生活中的必需品,现代人的基本需求可以称之为&衣食住行+网络&了。  然而,任何事物的存在总伴随产生两种截然不同的影响,网络改变了我们生活的模式,却也&绑架&了我们的生活,让我们迷失其中。  被网络&绑架&的生活
  这几天关于方舟子&打假&的新闻铺天盖地、四处泛滥,从草根到名人,大家都在评论,以至于笔者这个很少&凑热闹&的人都不得不去追根溯源的看下方舟子和李开复的故事,甚至还为此写了篇博文。因为,你不去了解这些&无所谓&的信息,你可能就out了。在这个事情上,笔者始终觉得自己是个被动的信息接受者,李开复给我们这一代80后留下了学生时代难得的精神财富,这个和他拥有的成就与荣誉没有多大的关系,方舟子这次&打假&的来龙去脉以及最终结果并不会影响笔者对李开复的看法,因此这些&打假&信息并不是笔者需要的。但事实上,笔者还是看了很多相关的报道,我觉得我是被网络&绑架&了,网络强加给我了很多我并不需要的信息。  笔者不是少数被网络&绑架&的人,当芙蓉姐姐、凤姐、小月月等&风靡&的时候,多少人去关注甚至参与其中啊!现在没听说过他们的人基本不存在。这便是网络的力量,信息大爆炸让碎片化的信息充斥着我们生活的每个角落,需要的或不需要的信息通过网络一股脑儿全塞给你,即使上厕所坐在马桶上,网络也不会让你闲下来&看网页、上微博等等。  于是,出现了一群称之为&社交控&的人,早上醒来第一件事便是打开手机刷微博;看到美食,不是先伸筷子而是先拍照片上传到微博;小学、初中乃至大学同学,所有人的近况都从网上了解;即使是面对面的同事,也要通过各类社交网站进行沟通。  因此,也出现了一种怪病&上网综合症&,不仅身体上出了毛病,心理上也有毛病了,害怕错过网络上每一秒发生的事情,一旦暂时脱离网络,就会出现焦虑、坐立不安等&戒断反应&,甚至脱离现实社会,导致抑郁症等等。  小时候看科幻片时总会幻想,地球上的人类哪天会不会成为机器人的奴隶,现在看来,全自动化的机器时代离我们还比较远,但是信息时代的到来却已经让我们成为了网络的奴隶。  迷失在碎片化的信息中  从门户时代到搜索时代,再到社交时代,一路走来的互联网越来越开放,我们每个人不再是&看客&,转身变成了信息的制造者和传播者。仅仅140个字符的微博却让每个人的自我表达欲望得到了充分的发挥,而&粉丝&的加入则让个人影响力呈几何级数地扩大。有人形容,微博就像一只小鸟,大家在上面自由鸣叫,而这种鸣叫会产生蝴蝶效应,甚至让世界的人都听到你的声音。因此,我们都着了迷似的在努力构建一个以&我&为中心的&社交圈子&,刷粉、申请达人等等,企图实现&自我价值&。  然而,虚拟的网络中没有了现实社会规则对每个个体的种种约束,开放的社交网络允许我们每个人都肆无忌惮地建立自己的圈子、无所顾忌地喊出自己的声音,网络已经成了一个去中心、无疆界、主客体交织的特殊空间,大量碎片化的信息渗透到现实社会的每个角落。似乎一切信息、知识都唾手可得,但高速流动的信息却稍纵即逝,这也就产生了所谓的信噪,每天对你有价值的信息可能就那么几条,如果你没有及时抓住,它很快会被裹挟着大量真实与谎言、精华与糟粕的信息洪流淹没,让你无处寻觅、难以筛选。  于是,淹没在信息洪流里的人们从带有思考的选择性的吸收变成了扫描式的快速浏览,人们越来越不习惯去思考,更愿意停留在浅尝辄止的阶段。碎片化的信息中夹杂着不少虚假、欺骗,&网怒者&的肆意谩骂已经司空见惯,水军的恶意攻击已经悄然泛滥。在这个真实与谎言并存、精华与糟粕共生的网络&碎片化&时代,我们犹如大海里的一叶扁舟,随波逐流、飘忽不定、迷失其中。
站长在关注

我要回帖

更多关于 uc2.3下载 的文章

 

随机推荐