Node.js之绝对选择 几年前,完全放弃Asp.net,彻底脱离微软方向。Web开发,在公司团队中,一概使用Node.js、Mongodb、Git,替换Asp.net mvc、Sql server和Tfs。当时来看,这是高风险的决定。所有人都习惯了Asp.net,知识和技术积累也集中在这个方向。
表面看来,仅仅是我个人对多年跟从微软的厌烦,导致整个技术路线嘎然而止,从技术角度而言,团队由此南辕北辙。几年过去,各种辛苦和折腾,间或的彼此抱怨之后,我们终于天经地义的,习惯了新的方向,没有人再有回到Asp.net的意思,恍若隔世,但...一定要比较,今天显然更为轻松。
当然,最初并非一切顺畅,每个选择,每一方都是王婆婆,她的瓜绝对是举世无双滴。面对诸多王婆的时候,我们也很难得到客观的比较,选择往往需要自己来做。经过两个项目,才真正让一切顺畅起来。其中所涉的编程方式、各类细节甚至由此引发的不同设计思维,很明显经历了多处的反复。这个没有办法,node.js相对较新,大规模在一些公司应用的情形并不多,这类文字当然也稀少,我们很难找到其他人归纳的常规的团队开发模式。
在ES5中实现MapReduce 简单说来,映射就是创建了一个新的列表来保存新的答案。而化简操作指的是对一个列表的元素进行适当的合并;
这项功能已经被大量使用在NoSQL数据库中,其实在ES5中已经默认加入了这种支持;如Array中的filter, map, reduce:
[1,2,3,4,5].filter(function(obj){
return obj < 3
});
[9,8,5,2,3,4,5].map(function(obj){
return obj + 2;
});
[9,8,5,2,3,4,5].reduce(function(sum, val){
return sum += val;
}, 0);
这里有个老外详解了它们的用法;
为什么JavaScript有能力成为未来企业级编程语言? 毫无疑问,自从上世纪90年代中期发行以来,JavaScript就已经成为最流行的Web开发语言之一了。在2012年9月份,行业分析公司RedMonk就公布了JavaScript在开发语言里已经处于遥遥领先的地位。这主要归功于JavaScript提供丰富的、动态的网页内容的能力,以及JavaScript的轻便性和高易用性。
尽管JavaScript最初只是一个浏览器脚本语言,但是近几年,我们已经能够明显看到它在不断地演变:在桌面端、移动设备和服务端Web App领域都有所发展。在不久的将来,JavaScript有望成为IT企业里占据主导地位的开发语言——最终取代现在普遍使用的C,C++和Java开发语言。
图解C++、CoffeeScript、Ruby复杂度 这里拿来比较的概念既包括类和操作这样大的范畴,也包括if-else状态和while循环这样的较细节的地方。从不同的角度比较语言的复杂度肯定会大不相同,所以这些数字只能粗略地反映语言复杂度。但无论如何,我觉得还是得到了一些有趣的数据。
同样,我对其它静态语言,比如F#和Scala一起做比较也很感兴趣,可惜我并不熟悉它们,所以很难做出正确的比较。
Adobe为Photoshop CC开发的'Generator',基于Node.js Adobe Generator是一个新的工具,可以让您更轻松地在工作流程中自动化创建Photoshop文档。 Generator基于Node.js的平台,可以用JavaScript编写的插件。
通常我们在使用PhotoShop时都是手动的,现在你可以使用JavaScript将你某个文件夹中的图片导入到一个图层组,通过复制,裁剪等操作后,再导出为JPG/PNG或GIF图片, 这就意味着你文件夹中的图片会始终和PhotoShop中的设计保持一致。
Adbode官网还提供了几个Demo的视频,不过可能需要翻墙才能看到。
5个有用的Unix命令,我真希望早点发现他们 我使用unix系统已经有一段时间了,但我忽略了一些非常重要的命令,真希望我能早几年发现他们:
1. man ascii
这可以打印以2、16、10进制打印出ascii表格。
2. cal
打印出显示当前日期的日历,其实很多系统都有支持,你只要打个 cal
3. xxd
xxd可以从文件中读取二进制流,而且可以编辑这些二进制文件后, 再转换回去。
4. ssh
ssh 是我第一次接解unix就熟悉的命令,但比起登录远程录,它还有更多的用法。
5个最好的php框架 程序员有很多原因应该使用PHP框架,但最主要的原因还是框架可以提高我们开发速度,尤其是开发那些比较类似的系统时,它可以节约我们大量的时间和功夫。5个最好的php框架:
1) Symfony
2) Zend Framework
3) CodeIgniter
4) CakePHP
5) Qcodo
当然,如果你是PHP大牛,你完全可以使用自己的框架,不过前人的经验还是很值得借鉴的。
Web App框架发展趋势及现状分析 摩尔定律作为指引PC发展最重要的定律,同样也在移动设备的发展上起着重要的作用。国内某款按照互联网思路开发手机的大佬曾宣称:手机CPU的发展速度可能会超过PC的发展速度。按照这个思路可以预见,手机的处理能力将会达到甚至超过PC的处理能力。与此同时,手机浏览器的处理能力将会和PC浏览器能力不相上下。在硬件飞速发展的同时,操作系统和软件的更新也在快速演进。继iOS超强的硬件加速能力之后,在Android 4.0中,为系统默认引入硬件加速功能成为了最大卖点。这将会为Android系统带来更加流畅的界面体验,同时也会为浏览器带来更好的Canvas绘制性能以及CSS Animation的效果。不仅如此,在2012年2月,Chrome for Android的发布也进一步推动了手机浏览器的发展。Chrome for Android直接移植了桌面版Chrome 16.0的代码,同样延续了Chrome在启动速度、渲染速度、网页加载速度以及基于V8引擎的JavaScript执行速度这些可以秒杀同行的能力。
PaaS乱局:Container的新机遇 从技术上看,Container并非近几年的创新,OpenVZ、FreeBSD jails、Solaris Zones等都是Container技术(轻量级虚拟化技术,OS层虚拟化技术)的实现,而Fedora和Mozilla中国的区代表Gerard Braad在接受CSDN采访时进一步扩展了Container的概念:
浏览器的沙箱从资源隔离的角度,以及Java的J2EE Container从标准抽象化的角度,其实跟Container的概念是一致的。
当下,PaaS越来越多的和Container联系在一起,Container的高资源利用率等特性恰恰是PaaS需要的。
Container的优势
程显峰将Container的优势总结为以下四点:
Tessel:用JavaScript做嵌入式开发 Tessel是一个针对软件开发者的可连接网络的微控制器。
嵌入式开发就像写一个网络应用或手机应用一样简单。只不过是建立一个真实产品的原型,改善遥感技术的体验以及通过WiFi来更新罢了。它创造了一种新与屏幕之外的生活互联的新方式。
$ npm install hardware -g
$ tessel shell
> var tessel = require('tessel')
> tessel.led(1).blink()
> tessel.led(2).blink()
详见官方主页:
technical.io