JS游戏引擎列表
这里有一个网址收集了关于JS游戏引擎开发库的一个列表,转过来。关于使用JS和HTML5做的一些小游戏,可参见《HTML5 小游戏展示》
目录
游戏引擎
3D 引擎
碰撞检测
动画
声音
图形
Math
其它
游戏引擎
Name
Latest Release
License
Type
Notes
The Render Engine
1.5.3
MIT
跨浏览器; 大规模 API; 开源. 2
gameQuery
0.5.1
CC BY-SA 2.5
和 jQuery 一起使用
gTile
0.0.1
Tile based
Akihabara
1.3
GPL2/MIT
Classic Repro
基于JS+HTML5的街机风格的游戏 3
The Java ...
Google 需要性爱
看到一篇趣文Google Needs Sex,翻译过来。
Brad DeLong 给我们写了 两篇关于“Google遇到的麻烦”的文章(墙),这两篇文章基本上是说, 制造网络欺诈和网络垃圾信息的人会尽其一切努力来和搜索引擎进行博弈,这样一来,其会让搜索到的结果对我们越来越没有帮助(译注:百度的竞价排名成为了制造网络欺诈和网络垃圾信息甚至洗脑的温床)。于是,人们开始去使用其它一些影响地较少的搜索引擎,准确的说,是那些垃圾信息和欺诈信息的东西还不适应于这些搜索引擎。
这让我想到了Sex。
如果你查看一下进化论,你就会知道为什么有性繁殖是有进化性的,是有可持续性的,而进化也是需要巨大的成本的。
为什么自然界不用克隆来繁殖呢?我所理解的最有说服力的答案是—— 防御寄生生物。如果每一代的生物体都和上一代完全的一样,寄生生物就总有一天可以破解生物体的防御,就是为什么!如果我们的某个香蕉园里种植着“克隆香焦” ,那么一旦某种病菌传播开来,那么我们整个香蕉园里的全部香蕉将毁于一旦。所以,混杂基因的模式会让寄生生物或病毒更难破坏我们的防御。
因此,Google的 ...
信XML,得自信
XML可能是计算有史以来最NB的发明了,以至于我们以没有XML的程序是难登大堂的程序,不用XML,你都不好意思当程序员。于是,我们看到了很多很雷人的用法(《信XML,得永生》),当然一些朋友当时并没有看懂,不过我不怪大家,因为我们依然深信使用XML可以让你有强大的Zhuangbility,于是我们有下面这两种相当Geiliable的用法。
一、XML中的XML
这个例子是某公司的一个SOAP实现——我们的Webservice需要返回一个XML字符串,这怎么办呢?其实很容易,因为——XML是无所不能的,那怕是封装自己。
<!-- ED: soap envelope omitted for readability -->
<string xmlns="urn:Initech.Global.Services">
<CompanyGetConnector>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs ...
一些有意思的网站和贴子
各位朋友,又到了介绍各种杂项的时候了,正如以前的这篇和这篇文章一样,本篇文章也给你介绍一些最近出现的一些有趣的东西。希望你能喜欢。
首先是华尔街的一篇报道,2011年最好和最不好的工作,其引用了CareerCast.com的数据,其列出了100个工作种类,并根据薪资、工作环境、工作鸭梨、体力消耗和就业前景做了一个排序。结果排第一位的是“软件工程师”,其理由是:高科技产品的需求呈爆炸式增长,以及人们对iPod、平板电脑、和其它科技产品应用软件的喜好,软件工程师被评为最佳职业。软件工程师有弹性工作时间,可以在家办公,而且每个月都有猎头找来。而最差是的则是码头工人。
接下来是一个叫“Java pass by value”的长贴,楼主说有一天在LinkedIn.com上看到了Java Group里有人讨论Java是pass by value的,长达240+贴子。贴子里说,如果你使用Java的原始类型如int, long,就是传值,如果你用object, array,其实传的是一个引用的拷贝,所以,Java是传值的。呵呵,你觉得有道理吗?于是,成就了这个大讨论战。r ...
Linux的cycle日历(你懂的)
这是一个开源项目:http://cycle.sourceforge.net/,其是用python写的。在项目的主页上说,这是一个给妇女用的日历程序,叫cycle,周期,给妇女的,我不多说了,你懂的。下面是一些介绍(请大家注意学习相关的英文单词)
当然,这个小程序不单单只是查看妇女的“周期”(menstruation),其还提供了以下的功能:
第一次的周期 – 在日历上显示为粉色。menstruation周期长度由用户输入的六次周期取平均值确定。
排卵期(Ovulation day)- 在日历上显示为亮绿色,
受精期 (Fertile period)- 在日历上显示为绿色
安全期(Safe Sex)
预产期(Date of birth)
还允许你记一些notes – 医生建议你服用一些荷尔蒙避孕药(hormonal contraceptive)
下面是屏幕截图 ——
注意以下的免责条款:
本程序并不能成为一种避孕的方法。
本程序也不能阻止各种性传染病,如:AIDS
本程序更不能取代你的妇科医生。
图解SQL的Join
对于SQL的Join,在学习起来可能是比较乱的。我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚。Coding Horror上有一篇文章(实在不清楚为什么Coding Horror也被墙)通过 文氏图 Venn diagrams 解释了SQL的Join。我觉得清楚易懂,转过来。
假设我们有两张表。
Table A 是左边的表。
Table B 是右边的表。
其各有四条记录,其中有两条记录是相同的,如下所示:
id name id name
-- ---- -- ----
1 Pirate 1 Rutabaga
2 Monkey 2 Pirate
3 Ninja 3 Darth Vader
4 Spaghetti 4 Ninja
下面让我们来看看不同的Join会产生什么样的结果。
SELECT * FROM TableA
INNER JOIN TableB
ON Tab ...
Sony PS3 Root Key 被破解
著名的黑客George “GeoHot” Hotz(其也帮助破解了iPhone)宣称破解了Sony P3的root key(也称front door key),并将这个key公布于 http://www.geohot.com/ (墙)。不但发布了root key,还做了一个hello world。Youtube上也有一个相关的视频:http://www.youtube.com/watch?v=UkLSXsCKDkg
erk: C0 CE FE 84 C2 27 F7 5B D0 7A 7E B8 46 50 9F 93 B2 38 E7 70 DA CB 9F F4 A3 88 F8 12 48 2B E2 1B
riv: 47 EE 74 54 E4 77 4C C9 B8 96 0C 7B 59 F4 C1 4D
pub: C2 D4 AA F3 19 35 50 19 AF 99 D4 4E 2B 58 CA 29 25 2C 89 12 3D 11 D6 21 8F 40 B1 38 CA B2 9B 71 01 F3 AE B7 2A 97 50 19
R: 8 ...
输出从1到1000的数
有这样一个面试题——请把从1到1000的数打印出来,但你不能使用任何的循环语句或是条件语句。更不能写1000个printf或是cout。用C/C++语言。
我相信,大多数人一开始你可能想到的是递归算法:
void f(int n){
printf("%d\n",n);
(1000-n) ? f(n+1) : exit(0) ;
}
int main(){
f(1);
}
当然,题目中说了不能使用条件语句,所以,上面那种解法的不符合题意的,因为还是变向地使用了条件表达式。不过,我们可以用别的方法来让这个递归终止,比如:
除以零,当程序crash,呵呵。
void f(int n){
printf("%d\n",n);
n/(1000-n);
f(n+1);
}
还有这样退出递归的:
void yesprint(int i);
void noprint(int i);
typedef void(*fnPtr)(int);
fnPtr dispatch[] = { yesprint, noprint };
void yesprin ...
一些杂项资源
以前给大家介绍过一些非常有意思的杂项资源,今天再给大家介绍一些。(虽然没有上次的多,也算是一个新年礼物吧)
首先,如果你想在你的web页上做一个小提示,你不妨到http://projects.nickstakenburg.com/tipped上看看,各种各样的提示风格,很不错。而且兼容于四大主流浏览器——Chrome, Firefox, IE, Safari。
如果你想让Java变成一个动态语言,你可以试试这个开源项目:http://code.google.com/p/ductilej/
如果你想把你的Windows蓝屏改成红屏或是绿屏,你可以看看这篇教程:http://blogs.technet.com/b/markrussinovich/archive/2010/12/14/3374820.aspx,还是挺Cool的。
如果你想使用HTML5+Javascript做一个游戏,就像制作这些HTML5的小游戏一样,你不妨考虑使用一下这个游戏框架:http://www.propulsionjs.com/
如果你想学习Emacs,而又不害怕这样的学习曲线,那 ...
6个有用的MySQL语句
以前本站给大家介绍过《MySQL性能优化的最佳20+条经验》,今天给大家介绍六条比较有用的MySQL的SQL语句,可能很多人都通过PHP来实现这些功能。
目录
1. 计算年数
2. 两个时间的差
3. 显示某一列出现过N次的值
4. 计算两个日子间的工作日
5. 查找表中的主键
6. 查看你的数库有多大
1. 计算年数
你想通过生日来计算这个人有几岁了。
SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(now()) - TO_DAYS(@dateofbirth)), '%Y') + 0;
2. 两个时间的差
取得两个 datetime 值的差。假设 dt1 和 dt2 是 datetime 类型,其格式为 ‘yyyy-mm-dd hh:mm:ss’,那么它们之间所差的秒数为:
UNIX_TIMESTAMP( dt2 ) - UNIX_TIMESTAMP( dt1 )
除以60就是所差的分钟数,除以3600就是所差的小时数,再除以24就是所差的天数。
3. 显示某一列出现过N次 ...
程序员的圣诞节
程序员Román Cortés用1021个字节写了一个3D 的圣诞树,很强大。(请使用Chrome浏览器查看),还记得本站介绍的那个叫js1k.com的网站吗?
其原理如下所示:
http://www.romancortes.com/blog/how-i-did-the-1kb-christmas-tree/
——————————————
还有另外一个叫Dustin DeWeese程序员,也做了一个贺卡给大家(请点下面的链接)。这个贺卡需要向下滚动网页才能看得出效果来,no Javascript。
http://www.hackerfoo.com.nyud.net/christmas/christmas.html
这种使用遮罩而产生的动画的东西确实很有意思:http://blogoscoped.com/files/stripes.html,有一个小工具可以用来创建这样的东西:http://dl.dropbox.com/u/15095913/Scanimation_Creation_v1.1.zip
呵呵。挺有意思的吧。
流体力学的演示
某人用Java搞了一个流体力学的演示。
http://grantkot.com/MPM/Liquid.html
不过,这仅仅是个开始。某同学将其发布上了reddit.com,于是,全世界的同学们开始给力了——
Flash的开发者首先不服,搞了个 flash版(带源码):
http://wonderfl.net/c/yxe9
看到了Flash版,Javascript+HTML5的同学们也不干了,于是出现HTML5版(带源码):
http://www.music.mcgill.ca/~sinclair/content/blog/liquid_simulator_ported_to_canvas
不过性能慢了很多,所以,又有人优化了一下HTML5版的程序:
http://jsbin.com/unovo4
SVG的同学们也不甘寂寞,不过,那真叫一个慢啊。
http://ulo.pe/js-liquid-svg/
这个时候,C/C++同学出来了,使用SDL库也搞了一个:
http://q3k.org/fluidsim.zip
——————
短短几天里,被人重写成各种语言。这个程序写起来真的 ...
偷了世界的程序员
本文译自美国时代(time.com)的《The Men Who Stole the World》,原作者:Lev Grossman。相当有传奇色彩,读起来很爽,翻译过来。译得不好,还请大家指正。本中的四个程序员可能并不是那么声名显赫,而且也很不老实,或许算不上成功,不过他们的确改变了世界。而本文有分析了互联网上P2P的那些事,相当的有参考价值。
2010年12月17日更新:修改了一些错误,理顺了一些语句。
2010年12月19日更新:增加了一些插图。
————————正文————————
十年前,有四个年轻人改变了这个世界的运作方式。他们使用的并不是法律或是武器或是金钱,而是使用软件来改变世界。他们当时有着激进和极具破坏性的想法,并把这些想法付诸于代码,在Internet上以免费自由方式发布。这四个人,没有一个完成了大学学业,却奠定了今天我们习惯的数字媒体环境的基础。然后,因为各种原因,他们也迅速地消失在公众视野中。
1999年,美国东北大学的一个叫Shawn Fanning的一年级新生开发Napster,从此,成为了P2P文件共享和不需要大型机构或零售商就可以获得音乐的先 ...
Facebook全球关系网
Paul Butler 是Facebook的Data Infrastructure Engineering Team的一个实习生,他把Facebook 5亿用户的人际关系网给图示了出来(见下图,源图片)挺赞的。从中我们可以看到,某些地方是一片漆黑……
Facebook全球关系网
(点击看大图,3.8M)
关于Paul是如何产生这个图的,你可以参看:http://www.facebook.com/notes/facebook-engineering/visualizing-friendships/469716398919 (墙)
编程语言流行度
下面是一个关于编程语言流行度的图(以前本站也有一篇编程语言流行度的文章)。其X轴是从Github中取来的数据(项目数),而Y轴是从StackOverflow取来的(tag数)。注意:Github提供了语言流行度:https://github.com/languages,而本图的原始数据在这里。
编程语言流行度(点击看大图)
来源:http://www.dataists.com/2010/12/ranking-the-popularity-of-programming-langauges/
五个免费开源的数据挖掘软件
在网上看到一篇文章介绍五个免费开源的数据挖掘软件,转过来。
目录
Orange
RapidMiner
Weka
JHepWork
KNIME
Orange
Orange 是一个基于组件的数据挖掘和机器学习软件套装,它的功能即友好,又很强大,快速而又多功能的可视化编程前端,以便浏览数据分析和可视化,基绑定了Python以进行脚本开发。它包含了完整的一系列的组件以进行数据预处理,并提供了数据帐目,过渡,建模,模式评估和勘探的功能。其由C++ 和 Python开发,它的图形库是由跨平台的Qt框架开发。
RapidMiner
RapidMiner, 以前叫 YALE (Yet Another Learning Environment), 其是一个给机器学习和数据挖掘和分析的试验环境,同时用于研究了真实世界数据挖掘。它提供的实验由大量的算子组成,而这些算子由详细的XML 文件记录,并被RapidMiner图形化的用户接口表现出来。RapidMiner为主要的机器学习过程提供了超过500算子,并且,其结合了学习方案和Weka学习环 ...
140个Google的面试题
来源:http://blog.seattleinterviewcoach.com/2009/02/140-google-interview-questions.html(墙)
某猎头收集了140多个Google的面试题,都张到他的Blog中了,主要是下面这些职位的,因为被墙,且无任何敏感信息,所以,我原文搬过来了。
Product Marketing Manager
Product Manager
Software Engineer
Software Engineer in Test
Quantitative Compensation Analyst
Engineering Manager
AdWords Associate
这篇Blog例举了Google用来面试下面这几个职位的面试题。很多不是很容易回答,不过都比较经典与变态,是Google,Microsoft,Amazon之类的公司的风格。对于本文,我没有翻译,因为我相信,英文问题是最好的。不过对于有些问题,我做了一些注释,不一定对,但希望对你有帮助启发。对于一些问题,如果你百思不得其 ...
Groovy是怎么实现createArray的
Groovy是一个基于 Java虚拟机的敏捷 动态语言。构建在强大的Java语言之上 并 添加了从Python,Ruby和Smalltalk等语言中学到的 诸多特征。为Java开发者提供了 现代最流行的编程语言特性,而且学习成本很低(几乎为零)。在以前的酷壳的五大基于JVM的脚本语言中也介绍过它。
下面,让我们看看他的一个createArray的实现,请大家前去围观下面的Groovy的trunk上的源码吧。真是很好很强大。
http://svn.codehaus.org/groovy/trunk/groovy/groovy-core/src/main/org/codehaus/groovy/runtime/ArrayUtil.java
这里摘上前几个createArray重载函数让大家看看,(一共有250个重载函数)
public class ArrayUtil {
... ...
... ...
public static Object[] createArray(Object arg0, Object arg1) ...
用Google Translate玩转beat box
在Reddit上有人发布了怎么使用Google的翻译来玩beat box,很有趣,转过来。
下面是相关步骤:
1) Go to Google Translate
2) 把翻译语言设置成从 German 翻译到 German。(德语)
3) 拷贝粘贴这个字符串到translate中:
pv zk pv pv zk pv zk kz zk pv pv pv zk pv zk zk pzk pzk pvzkpkzvpvzk kkkkkk bsch
4) 把声音开大,点击“朗读”,
另,如果你在Google里以 “Google beatbox” 作为关键词搜索,你会看到 Google Translate出现在最前面的搜索结果中。
JDK里的设计模式
下面是JDK中有关23个经典设计模式的示例,在stakeoverflow也有相应的讨论:http://stackoverflow.com/questions/1673841/examples-of-gof-design-patterns
Structural(结构模式)
Adapter:
把一个接口或是类变成另外一种。
java.util.Arrays#asList()
javax.swing.JTable(TableModel)
java.io.InputStreamReader(InputStream)
java.io.OutputStreamWriter(OutputStream)
javax.xml.bind.annotation.adapters.XmlAdapter#marshal()
javax.xml.bind.annotation.adapters.XmlAdapter#unmarshal()
Bridge:
把抽象和实现解藕,于是接口和实现可在完全独立开来。
AWT (提供了抽象层映射于实际的操作系 ...