Mozilla 目前正在开发一个新的编程语言,名为“Rust”,由web语言的领军人物Brendan Eich(js之父),Dave Herman以及Mozilla公司的Graydon Hoare 合力开发。 创建这个新语言的目的是为了解决一个很顽疾的问题:软件的演进速度大大低于硬件的演进,软件在语言级别上无法真正利用多核计算带来的性能提升。Rust是针对多核体系提出的语言,并且吸收一些其他动态语言的重要特性,比如不需要管理内存,比如不会出现Null指针等等。 Rust 最早是在今年7月的Mozilla的社区峰会上公之于众的,当时就有人问以后是否会用Rust重写Firefox,Brenda说希望如此。Rust目前还处于初期的开发阶段,开发团队目前并不想花太多的时间在语法上,不过他们还是提供了一小段代码: iter pairs() -> tup(int,int) { let int i = 0; let int j = 0; while (i < 10) { put tup(i, j); i += 1; j += i; } } fn main() { let int i = 10; let int j = 0; for each (tup(int,int) p in pairs()) { log p._0; log p._1; check (p._0 + 10 == i); i += 1; j = […]
View Details中广网北京7月4日消息 据中国之声央广夜新闻报道,这两天引发了热烈讨论的一则消息——人大代表提出的关于优抚抗战老兵的提案获得了民政部积极的反馈。媒体注意到这则消息,源头是来自香港的全国人大代表王敏刚先生7月2号在微博里贴出了两张图片,显示的是一份来自民政部的文件,全称叫《民政部对十二届全国人大一次会议第8260号建议的答复》。原来,在今年两会期间,王敏刚联合香港特区多位人大代表提交了“关于优抚抗战老兵的建议案”,希望在抗战胜利68年后的今天,对那些年事已高、生活困苦的老兵们给予应有的照顾和关怀。提案中说,此前,受到历史原因的影响,有部分原国民党抗日老兵生活贫困,甚至孤苦一人,老无所依,因此建议由民政部牵头,民间机构作为补充,为这些老兵提供更多的帮助。提案上交三个月后,民政部给予了正式回复,表示近期已下发通知,将原国民党抗战老兵纳入相应社会福利保障范围,社会养老服务体系将优先照顾原国民党抗战老兵;同时建议各地党委、政府在重大节日邀请老兵参加纪念活动并予以慰问。 既然说到原国民党抗战老兵的生活今后可能会获得进一步的改善,那我们就要来看一看现在他们生活的状况了,第一站,云南,昨天,在民政部回复人大代表建议的消息被热烈讨论的同时,我们也看到,在云南昆明有一条消息让人唏嘘不已,93岁的抗战老兵陈士麟,60年前,曾凭独特的“听风”本领干掉了敌占区武汉的伪市长。但此后长达30余年的时间内,都蜗居在昆明一个公厕旁的幽暗小屋里,直到最近,才在爱心人士的帮助下住进老年公寓。 记者:搬过来住还适应吗? 陈士麟:其是还不习惯。 记者来到昆明知青老年工作室,工作人员正准备帮陈爷爷从一楼搬到二楼,一间更亮堂的房间,陈爷爷的新家在公寓的四栋自理区,除了桌椅床等家具外还有一个彩电,全新的被褥挂着蚊帐,陈爷爷最珍贵的就看着英雄字样的绶带挂在墙上。 记者:没来这个地方吃什么呢?自己做? 陈士麟:吃,该咱吃自己做,习惯了。我们以前有50块钱用不了。 记者:儿女来看望您吗? 陈士麟:我姑娘们在宁江,回不来。儿子们来。 记者:陈爷爷叫陈士麟,抗战期间曾经是国民党重庆军队警备司令部情报组组长。 陈士麟:当天我是知识青年参军的,有的头衔。 记者:您这么干掉武汉的伪市长呢? 陈士麟:干那个市长是市长的侄子,我是搞情报的,他是搞行动的。 记者:抗战结束后,离开部队的他一直任职于昆明蓄电池厂,为千家万户亮上电灯。但由于历史原因,老人一直没有分到住房。 陈士麟:因为我的身份不好,盖房子这些没有我的份。 在长达30多年的时间里,陈爷爷和老伴一直蜗居在昆明一个公厕旁的一间小屋,前些年老伴去世了,陈爷爷就一直一个人住,如今他最大的心愿是能够台湾去看一看。 记者:您有什么心愿呢? 陈士麟:想要去一趟台湾。 记者:想要去一趟台湾。 陈士麟:就是台湾居住了,台湾还有我的老二哥。 记者:还有您的亲人在那边。 爱心人士武思奇(音)告诉记者,陈爷爷入住养老院的所有费用都由志愿者分免担负,现在还有很多爱心人士都向他伸出了援助之手。陈爷爷今后的生活衣食无忧,知情老年公寓院长谢会英(音)告诉记者,陈爷爷身体还硬朗,性格独立,所以先安排他在自理区。老人除了需要自己洗鞋子、袜子外,其他都由工作人员来大理。 陈会英:陈士麟老人入住我们知青老年公寓,我们一定尽我们的能力,为抗战英雄做好每一件事,让他们安度晚年。 (原标题:蜗居公厕93岁抗战老兵搬进养老院 曾干掉敌占区伪市长) 转自:http://news.sina.com.cn/s/2013-07-05/002627580057.shtml
View Details当你开始成为一个程序员的时候,在编程的时候很容易陷入下面所述的一些坏习惯。 作为一名程序员,犯错误不可避免,这是你学习编程课程中的一部分。在你的职业生涯中你会犯很多错误 – 有的特别、有的普遍 – 通过这些错误你可以学习如何避免在将来再犯同样的错误。 但是如果你是一个初学者,你犯的错误可能会比其他人更频繁。那么如何才能避免大部分程序员每天都犯的这些普遍的错误呢? 想要避免错误,就要对它有所了解。这也是为什么我要和大家分享一些在我们的程序员生涯中阻碍我们成长的普遍错误。 在开始之前,你可能想知道为什么我知道这些是错误,不是最佳的方法? 有一个简单的回答就是 – 在我的职业生涯中,所有这些情况我都遇到过。有些情况经常遇到,有些只遇到过几次。每次犯错之后,我都后悔莫及。 最坏的情况是我根本你不知道我在做错的东西。一旦我意识到我在做错事,我就开始避免这些失误。至少,我现在写的代码比以前写的要好多了。 现在你们也可以避免这些错误。首先要知道你现在在做的是错误的。我知道大部门程序员都不会做任何错事,因为他们认为那是正确的,所以他们的行为会对程序和程序员的职业成长产生不利影响。 绝大部分的不良编程习惯都源于无知,而没有任何其他原因。 要成为一个好的程序员,我们必须一个一个的去掉这些无知。这也是那些好的编程书籍所尽力展示给我们的。 我们犯这些错误的部分原因在于它们确实完成了工作。并不是我们要做的 – 让我们的程序运行起来,完成我们日常的工作。 但是让什么好用只是你工作的一部分。如果想要让你的应用程序好用,你将不得不定期更新,修复任何新的bug,这些将有可能变得很频繁。这样一来能让你的工作变得比较容易的方法就是遵循好的编程实践。 另外,即使你在小型程序中能够摆脱这些错误,在大型程序中你也可能碰到他们。 如果你仍然犯这些错误,可能你的程序依然正常运行,能够完成需要的任务,但是它会变得易出bug,充满低效率的代码,难于维护。并且,当你很长时间后再来看它的代码的时候,你会发现代码很难理解。 作为程序员,我们的工作不仅仅是让我们的程序工作,而让用户来处理bug。我们的工作是确保用户即使输入错误也不会得到意外的结果。 所以要创建高品质的应用程序,请确保你不会在编程的时候犯下面的这些普遍的错误: 不加理解的拷贝代码 你经常会发现你需要的代码在一些别的程序里面有。整段的拷贝代码并且就这么使用它而不去烦恼于理解每一行代码是很诱人的。 有时候你拷贝的代码可能太大了以至于没有时间去完全理解它。如果你拷贝任何代码都像这样,就会有让你的程序变得脆弱易出bug等风险。 这样可能让工作完成,但是如果这段代码在某种情况下产生了一些意外的行为将会怎么样?如果使你的程序变慢或者有恶意行为将会怎么样?因此需要恰当的理解这些代码,或者需要绝对的确信你拷贝的代码的出处。 如果以后产生了bug,你会发现很难理解这些代码,因为你从来没有写过它。甚至于你会发现很难去找出bug并且修复它,特别是如果拷贝了很多代码在程序的不同地方。 所以当拷贝代码的时候要小心,即使很少的代码。确保你完全理解它了。如果你以前用过一段代码并且可以百分之百的保证它可以工作,那么它是安全可用的。但是如果不是的话,就要当心了。 每次都从头开始 这和我之前说完全相反,但是这确实是初学者容易犯的另外一个错误。 也许你认为每次都从头开始会很好,但是实际上它浪费了太多资源--时间,精力和思维,你可以更好的在其他方面使用它们。 如果你需要的东西已经存在了,那么使用它们。不要反复重复最基础的东西。 你可以使用这些时间让你的应用在其他方面更加优秀。 如果一个API、框架或者游戏引擎让你的任务更加轻松,你没有理由不适用它们。你的目标不是展示你有多么的优秀,也不是证明你可以独立完成任何任务。你的目标是保证你的应用完美工作,并且尽可能少花费一些资源去创造它们。 如果你这样做,你可以用更少的时间去完成同样地工作。时间就是金钱,即使是你为你自己工作,你也应该试着在同样的时间赚更多的钱。 没自己尝试就开始Google 很多次,出于习惯,每次出现新的问题,你都会通过Google来找找解决方案。对于程序来说,这不是个好办法。如果你总是没有自己试一试就通过外部方法来搜索答案,那么你的思维永远都不会受到挑战。 当你的思维停止挑战,你自身的编程技能就会停止增长。把你自己的任何技能都练得很棒,你就可以自己解决问题,这也适用于程序开发。 你是创建一个已经存在的东西,你从来不进行原创。这真是你想要做的吗? 搜寻存在的解决方案看起来很聪明,但是这会蒙蔽你的双眼,你的懒惰会阻止你成为一个好的程序员。如果你真的你想要搜寻一个解决方案,至少,开始的时候你在这个问题上先花一点事件思考一下。 也许你自己不花多少事件就能解决掉它。也许你会有比其他人更好的解决它。也许你的解决方案比其他人的更加精确。 如果你不尝试,你永远都不知道。 忽略警告 这是一个早期我进行程序开发时犯的另一个错误。我不能告诉你当你的程序中出现几百个警号和一次都不出现有什么大的不同-最重要的是忽略掉它就出现新的问题。 警告通常是你做的东西可能不是每次都能正常工作的一个标志。有时,忽略这些警告会造成很大的安全问题。但是真正的问题通常是出现在程序出现几百个警告,或者程序不能正常工作时。 很难确定到底是什么原因造成了那个错误,你必须花更很多的时间来分析每一个警告来找出造成问题发生的根本原因。相反,你可以在警告发生的时候就处理掉它。 通常你仅仅需要使用正确的变量或者正确的函数来处理这些警告。不会花你几小时,只需要几分钟遇到它们就把它们处理掉。 要尽早的处理警告。干净的代码看起来舒服工作起来也会很高。记住- 对待警告和对待错误一样 . 快速修复而不是永久性解决 是的,我对这样做感到愧疚。我不为此而自豪。但通常,我们仅仅是草草的修复一下,很少会去从根本上解决这个问题。 它能正常工作了,问题也处理掉了。但是如果你一不小心,问题又会以不同的方式重新出现。 无论你怎么修复一个问题,都应确保你不会把整个系统破坏掉。修复应该提升整个系统的运行状况,而不是让它更慢或更笨重。 同时,进行一个修复要能永久性的解决这个问题。要长期,不要短期。有时,由于懒惰和无知,我们通常喜欢快速的把问题解决掉,而不想在上面花太多时间。这就是为什么我们的写的代码能正常的工作,但是却不是在所有情况下都能工作。 如果你在工作的时候把它忽略掉,你会在后面花更多的时间。 了解上面这些错误能有助于你避免它们。如果你知道你所做的是错误的,一般来说你就不会去做。 为了把工作干好你应该热爱你所做的。如果因为某些原因你不喜欢编程了那么你几乎不会花额外的功夫来编写好的可维护的程序。 如果你打算写一手好程序那么你就应该 改变你对编程的看法。 你要把编程看成一门艺术而你自己则是一个艺术家。那么你就不会因为懒惰和不小心而犯错。 作家会把一篇未完成的文章发表么?画家会把未完成的画作拿来出售么?歌手会在他的歌中唱没有用的歌词么? 绝不会。 对编程来说也一样。任何情况下,都别编写未经测试的半吊子代码。在你的程序未写完前,不要发布它。别编写不会使用的无用代码。 这都是一些我们犯的一般性错误,因为我们喜欢在工作花更少的时间而去干其他事情。但这是不行的,迟早你都会为确保你的代码不出问题而负责。 越早的练习正确的编程方法,就对你的用户和自己越好。有时成为一个好的程序员意味着你不会犯糟糕程序员同样的错误。 谢谢大家的阅读。如果你知道谁不知道这些编程技巧的,请你把这篇文章发给他们,以便让他们成为好的程序员。 转自:http://www.oschina.net/translate/5-programming-mistakes-you-should-stop
View Details所谓JavaScript库就是预先写好的可以简化基于JavaScript的应用程序开发的,尤其是Ajax和其它以web为中心的技术的JavaScript代码集。JavaScript主要用于写内嵌于HTML页面并和文档对象模型(DOM)进行打交道的各种函数(Function)。 一些JavaScript库很容易的和其它Web技术行进整合,譬如CSS, PHP, Ruby和Java。许多库可以检测不同的运行环境,并且消除应用程序为了兼容不一致而需要写的代码。 本文搜集了20个 JavaScript 库,它们能理清你遇到的开发相关的问题,让你的网站在竞争中领先一步。我们希望你能发现这个JavaScript库的列表对你的开发工作方便有用。尽情享受吧! 1. Tracking.js Tracking.js 是一个独立的JavaScript库,用于跟踪从相机实时收到的数据。跟踪的数据既可以是颜色,也可以是人,也就是说我们可以通过检测到某特定颜色,或者检测一个人体/脸的出现与移动,来触发JavaScript 事件。它是非常易于使用的API,具有数个方法和事件(足够使用了)。 Source 2. Aristochart Aristochart 是一个不依赖于其他库的 JavaScript 库,其功能是绘制二维的静态线图,使用 Canvas 绘制。该库特点是可定制,提供大量选项来更改设计、标签等等。 Source 3. Hitch Hitch是一个轻量级的JavaScript库,它添加了CSS文件表现能力。它拥有CSS前缀或者变量强大的预处理能力,但也有一些其它的东西。这个类库出现了多个现成的选择器,比如"anyof, allof, has.."同时允许我们去定义任何新的(叫做 hitches)。 Source 4. Cesium Cesium,一个基于WebGL的 JavaScript 绘图库, 通过其内部机制提供了这个能力。它支持3种不同的视图: 3D globe, 2D map,和 2.5D Columbus View ,从一种到另一种转换只需要一行代码。 画任何类型的形状,突出显示特定的地区以及使用鼠标或触摸与地图交互,都相当简单。Cesium只有一个 JS 文件,可在包括手机在内的所有主流浏览器运行。 Source 5. Two.js Two.js 是一个令人激动的JavaScript库。它为SVG,Canvas和WebG提供二维和单一绘图API。这个类库目前仅仅支持形状(没有文字或图像)。它允许引入SVG数据。有用的地方在于它能够聚合多种元素,当需要将他们转化在一起。有一个内置的动画循环,方法去绘制知名的形状和多种选择去自定义它们。 Source 6. Sequel.js Squel.js 是一个轻量级的JavaScript库。通过面对对象的API,它很容易就帮助我们建立SQL查询字符串。 它工作在所有的浏览器上(不被建议,因为查询可见)。通过node.js的帮助,它能够支持标准的SQL查询(它能够被定制去操作非标准的查询) Source 7. Draggabilly Draggabilly使得jQuery UI的拖拽交互变得容易了。它是一个独立的,轻量级的JavaScript库,元素的拖动可以限制在一个有此特性的容器当中,并且拖拽过程中每个事件(开始、移动、结束)都存在回调函数,它们也可以返回该元素的位置。 Source 8. Zebra Zebra是一个JavaScript库,带有一批用来创建类似桌面效果布局的富用户界面组件。UI元素通过HTML5 canvas创建,由CSS着色,预期在所有现代浏览器中渲染出相同的效果。有30+ UI 组件,包括grid, tabs, menu, form elements, menu 等许多许多. Source 9. Formula.js Formula.js 是一个JavaScript类库。对web开发者而言,它实现大部分公式。列出了公式的多个分类例如日期/时间,文本,逻辑,金额等。此外,客户端它需要和node.js(即将被发布)工作。 Source 10. Chart.js Chart.js 是一个令人印象深刻的图表类库,建立在HTM5 canvas之上。目前,它支持6种图表类型 (折线图,条形图,雷达图,饼图,柱状图和极地区域区)。而且这是一个独立的包,大小小于5kb。颜色,字体,边框和它们的尺寸都可以定制,图表可以动画的形式加载,非常炫。 Source […]
View Details