编程语言流行度
下面是一个关于编程语言流行度的图(以前本站也有一篇编程语言流行度的文章)。其X轴是从Github中取来的数据(项目数),而Y轴是从StackOverflow取来的(tag数)。注意:Github提供了语言流行度:https://github.com/languages,而本图的原始数据在这里。
来源:http://www.dataists.com/2010/12/ranking-the-popularity-of-programming-langauges/
下面是一个关于编程语言流行度的图(以前本站也有一篇编程语言流行度的文章)。其X轴是从Github中取来的数据(项目数),而Y轴是从StackOverflow取来的(tag数)。注意:Github提供了语言流行度:https://github.com/languages,而本图的原始数据在这里。
来源:http://www.dataists.com/2010/12/ranking-the-popularity-of-programming-langauges/
Groovy是一个基于 Java虚拟机的敏捷 动态语言。构建在强大的Java语言之上 并 添加了从Python,Ruby和Smalltalk等语言中学到的 诸多特征。为Java开发者提供了 现代最流行的编程语言特性,而且学习成本很低(几乎为零)。在以前的酷壳的五大基于JVM的脚本语言中也介绍过它。
下面,让我们看看他的一个createArray的实现,请大家前去围观下面的Groovy的trunk上的源码吧。真是很好很强大。
这里摘上前几个createArray重载函数让大家看看,(一共有250个重载函数)
public class ArrayUtil { ... ... ... ... public static Object[] createArray(Object arg0, Object arg1) { return new Object[]{ arg0, arg1}; } public static Object[] createArray(Object arg0, Object arg1, Object arg2) { return new Object[]{ arg0, arg1, arg2}; } public static Object[] createArray(Object arg0, Object arg1, Object arg2, Object arg3) { return new Object[]{ arg0, arg1, arg2, arg3}; } public static Object[] createArray(Object arg0, Object arg1, Object arg2, Object arg3, Object arg4) { return new Object[]{ arg0, arg1, arg2, arg3, arg4}; } public static Object[] createArray(Object arg0, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5) { return new Object[]{ arg0, arg1, arg2, arg3, arg4, arg5}; } ... ... ... ... }
这里给了一些解释:
下面是JDK中有关23个经典设计模式的示例,在stakeoverflow也有相应的讨论:
http://stackoverflow.com/questions/1673841/examples-of-gof-design-patterns
Bridge:
把抽象和实现解藕,于是接口和实现可在完全独立开来。
Composite:
让使用者把单独的对象和组合对象混用。
下面这个网页上做一个乒乓游戏,左边是Flash,右边是HTML5,很有趣。这也算是一个Flash和HTML5通讯的例子吧。
http://labs.codecomputerlove.com/FlashVsHtml5/
这里向大家介绍一个C++的字符串格式化库,叫cpptempl,这个库支持对字符串格式的条件,循环,变量插入。看上去很不错,只不过其是基于boost库的。
下面是一个例子:
// The text template wstring text = L"I heart {$place}!" ; // Data to feed the template engine cpptempl::data_map data ; // {$place} => Okinawa data[L"place"] = cpptempl::make_data(L"Okinawa"); // parse the template with the supplied data dictionary wstring result = cpptempl::parse(text, data) ;
输出结果是:
I heart Okinawa!
是不是很方便?让我们看一个更复杂的例子:
以前给大家介绍过13个不错的Javascript和CSS的菜单、20个优秀的Javascript导航技术、30种时尚的CSS网站导航条,今天在网上看到一篇文章其收集了30多个下拉菜单(分为两类,jQuery和CSS+Javascript的),转过来。
原文:http://smashinghub.com/3-useful-drop-down-menu-scripts-to-enhance-header-navigation.htm
我们知道很多的Javascript的lib库了,比如:jQuery,YUI,Ext JS等等。今天看到一个很牛X的lib叫Raphaël [ˈrafēəl],这是一个很小的JavaScript library,可以让在你的Web上整一些向量图,并且可以完成一些动画和图形变化,很强大。
Raphaël使用的是 W3C 推荐的 SVG和VML 来创建图片。这意味着所创建的图形对象一样可以是一个DOM对象,可以被你的Javascript的事件来操作。Raphaël 支持所有的主流浏览器:Firefox 3.0+, Safari 3.0+, Chrome 5.0+, Opera 9.5+ d 和 Internet Explorer 6.0+,最强大的是,这个js文件被压缩后也就60K。
下面,让我们来看几个示例:
下面是一个图形变化的示例,点击两个图形间的箭头。
以前本站发布过《编程语言时间地理图》、《计算机编程简史图》,下面是两张关于编程语言的进化图。
第一张是比较宏观的,来源在这里,虽然是去年的,但还是比较不错的,其把计算机编程语言分成了五个时代——
下面是一张大图,让你看看整个编程语言的进代图。(点击看大图)
这里有一个POC(Proof of Concept)可以通过你Web浏览器后面的路由器XSS攻击得到一个准确的GPS坐标。注意:路由器和Web浏览器以及IP地址并不包含任和地理信息。其方法是使用了一个Google未公开的API。大约方法如下:
演示地点在这里:http://samy.pl/mapxss/
我试了一下,无论无线和有线都可以准确定位我的位置。很强大,你也试试看。