编码规范是技术上的遮羞布

每个程序员都知道,在一个软件公司里,你需要有一套严谨的编码规范。每个程序员也都知道,为了能按自己的编程习惯制订这套规范,每个程序员都在而抗争。刚进入一个新公司时,每个程序员都会内心里绝望,对那套由某些强势架构师独断指定的编码规范恐惧不已。 扔掉编码规范吧,让程序员自由发挥,你会得到更多的好处。从加强代码统一性上获得的这点胜利根本解决不了问题。编码规范就是技术上的遮羞布。在 nearForm 公司,我从来没有想过要制定一个这样的规范,因为我希望每个人都只需按照自己喜欢的方式编程。 这世界太吵闹了。JavaScript的复兴要为此负全责。尤其有一个“特征”:可有可无的分号。无数的主张,猜想和反对声铺天盖地。停止,去实际写些代码好吗。你知道我在说谁。 本意是好的,各路程序员大仙发布各种JavaScript编码规范和风格指导。你们全错了。请停止这种要去拯救这个世界的行为。 编码规范从何来?过程是这样的:在你开始编码时,你跟本不知道会做出什么。这充满乐趣,这是一场游戏,直到你弄瞎一只眼睛。一旦你被自己垃圾的代码伤了太多次,你开始知道你是个菜鸟。于是你开始走上了通往编程大师的道路,你贪婪的咀嚼《代码大全》, 《程序员修炼之道》,当然,还有 Joel。 之后,事情开始发生了。在通往朝圣的路上,你参透了真经。满腹的技艺让你成为了编程巨星。你的开发效率整整翻了一倍。现在,你要向世界传播。让你有今天成就 的知识也同样能拯救他人。你笼络人心,你传道,你纠缠不休。你训导你的老板要采用最好的实践方法和开发规范。而最不可饶恕的,你竟然开始写博客了。 大多数程序员从来不发声。那些喜欢弄出声响的,都晋升了。你晋升了。你把你绝顶聪明的想法强加给他人。你编写了一套编码规范,你让它成为了法律。 可之后,一切如旧。同样苦干,同样最后期限迫在眉睫,同样bug无数,同样悲惨结局。银弹跟本不存在。 几年后,你不再编码,你成为了管理者。你仍然认定编码规范,条律,制度的至关重要。关键就在于正确的实施。你从来都没有真正的做到过,但你坚持要实现这个目标。不仅如此,你变本加厉。代码量化标准!作为一个管理者,你成了痛苦的化身。 也许事情可能会向另外一个方向发展。也许你重新回去编程,或从未离去。经过一段时间,你发现自己如此无知,所有你的梦想都建立在沙滩上。你放弃了,你放弃了给程序员制订枷锁。这是另一层次的参悟。 至此,你认识到,人不是机器。人需要把智慧发挥到极致。你应该丢掉枷锁,获取最大创造。 可为什么那些最聪明的程序员的做法却完全的相反?为什么他们喜欢控制其它程序员?是什么让他们如此独裁? 首先,你想把你的经验传授给他人。但并非每个人的思维都跟你一样。人的大脑是十分怪异的。 第二,控制别人的感觉良好。但这不可能真正有效的。你不能命令程序员去做什么。猫不是圈养出来的。 第三,你逃避责任。团队中的所有人都这样。我们遵守了规范!项目失败了。没错,可是我们是遵守了规范! 第四,好的意愿;最佳实践;很专业;很技术——诱人的开发过程。你仍在追逐你8岁时想摘到的那颗星星。但是,编程大师如何判断一件事的成败?看结果,这是唯一的标准。 第五,理想主义,你认为你理解整个世界,整个世界要尊崇你的意志。我们人类有些事情非常的在行….但那是在一万次的失败之后,一万次重复的失败。软件工程就是其中之一,不是有了规范就万事大吉的。 而最糟糕的不是这些。万恶之首是,只要你具有上面的任何一点,你最终就会制定出一套编码规范。 编码规范真正的罪恶在于,它们在伤你的心,伤整个团队的心。它们是一种耳语在说你不够优秀。他们不信任你。没有监管,你会搞的一团糟。 一年前我们开创 nearForm 公司,我们最在意的一件事就是要为客户写出最优秀的程序。在早先,我们尝试过所有的开发过程、方法、制度规范。所有都让人讨厌。没有一样真正起到作用。 于是我们开始实施这样的原则:相信我们的程序员是最有智慧的。这起作用了。 我希望所有人都能写出整洁优秀的代码。你自己判断这指的是什么。如果在代码脏乱、变量名不一致的情况下你还能安稳的睡大觉,这你自己决定。但你知道,也许这只是一个100行的用node.js写微型server,无关紧要。这你自己决定。 这你的责任,因为你一名程序员。 [英文原文:Why I Have Given Up on Coding Standards ] 转自: 每个程序员都知道,在一个软件公司里,你需要有一套严谨的编码规范。每个程序员也都知道,为了能按自己的编程习惯制订这套规范,每个程序员都在而抗争。刚进入一个新公司时,每个程序员都会内心里绝望,对那套由某些强势架构师独断指定的编码规范恐惧不已。 扔掉编码规范吧,让程序员自由发挥,你会得到更多的好处。从加强代码统一性上获得的这点胜利根本解决不了问题。编码规范就是技术上的遮羞布。在 nearForm 公司,我从来没有想过要制定一个这样的规范,因为我希望每个人都只需按照自己喜欢的方式编程。 这世界太吵闹了。JavaScript的复兴要为此负全责。尤其有一个“特征”:可有可无的分号。无数的主张,猜想和反对声铺天盖地。停止,去实际写些代码好吗。你知道我在说谁。 本意是好的,各路程序员大仙发布各种JavaScript编码规范和风格指导。你们全错了。请停止这种要去拯救这个世界的行为。 编码规范从何来?过程是这样的:在你开始编码时,你跟本不知道会做出什么。这充满乐趣,这是一场游戏,直到你弄瞎一只眼睛。一旦你被自己垃圾的代码伤了太多次,你开始知道你是个菜鸟。于是你开始走上了通往编程大师的道路,你贪婪的咀嚼《代码大全》, 《程序员修炼之道》,当然,还有 Joel。 之后,事情开始发生了。在通往朝圣的路上,你参透了真经。满腹的技艺让你成为了编程巨星。你的开发效率整整翻了一倍。现在,你要向世界传播。让你有今天成就 的知识也同样能拯救他人。你笼络人心,你传道,你纠缠不休。你训导你的老板要采用最好的实践方法和开发规范。而最不可饶恕的,你竟然开始写博客了。 大多数程序员从来不发声。那些喜欢弄出声响的,都晋升了。你晋升了。你把你绝顶聪明的想法强加给他人。你编写了一套编码规范,你让它成为了法律。 可之后,一切如旧。同样苦干,同样最后期限迫在眉睫,同样bug无数,同样悲惨结局。银弹跟本不存在。 几年后,你不再编码,你成为了管理者。你仍然认定编码规范,条律,制度的至关重要。关键就在于正确的实施。你从来都没有真正的做到过,但你坚持要实现这个目标。不仅如此,你变本加厉。代码量化标准!作为一个管理者,你成了痛苦的化身。 也许事情可能会向另外一个方向发展。也许你重新回去编程,或从未离去。经过一段时间,你发现自己如此无知,所有你的梦想都建立在沙滩上。你放弃了,你放弃了给程序员制订枷锁。这是另一层次的参悟。 至此,你认识到,人不是机器。人需要把智慧发挥到极致。你应该丢掉枷锁,获取最大创造。 可为什么那些最聪明的程序员的做法却完全的相反?为什么他们喜欢控制其它程序员?是什么让他们如此独裁? 首先,你想把你的经验传授给他人。但并非每个人的思维都跟你一样。人的大脑是十分怪异的。 第二,控制别人的感觉良好。但这不可能真正有效的。你不能命令程序员去做什么。猫不是圈养出来的。 第三,你逃避责任。团队中的所有人都这样。我们遵守了规范!项目失败了。没错,可是我们是遵守了规范! 第四,好的意愿;最佳实践;很专业;很技术——诱人的开发过程。你仍在追逐你8岁时想摘到的那颗星星。但是,编程大师如何判断一件事的成败?看结果,这是唯一的标准。 第五,理想主义,你认为你理解整个世界,整个世界要尊崇你的意志。我们人类有些事情非常的在行….但那是在一万次的失败之后,一万次重复的失败。软件工程就是其中之一,不是有了规范就万事大吉的。 而最糟糕的不是这些。万恶之首是,只要你具有上面的任何一点,你最终就会制定出一套编码规范。 编码规范真正的罪恶在于,它们在伤你的心,伤整个团队的心。它们是一种耳语在说你不够优秀。他们不信任你。没有监管,你会搞的一团糟。 一年前我们开创 nearForm 公司,我们最在意的一件事就是要为客户写出最优秀的程序。在早先,我们尝试过所有的开发过程、方法、制度规范。所有都让人讨厌。没有一样真正起到作用。 于是我们开始实施这样的原则:相信我们的程序员是最有智慧的。这起作用了。 我希望所有人都能写出整洁优秀的代码。你自己判断这指的是什么。如果在代码脏乱、变量名不一致的情况下你还能安稳的睡大觉,这你自己决定。但你知道,也许这只是一个100行的用node.js写微型server,无关紧要。这你自己决定。 这你的责任,因为你一名程序员。 [英文原文:Why I Have Given Up on Coding Standards ] 转自:http://www.oschina.net/news/42154/why-i-have-given-up-on-coding-standards

龙生   10 Jul 2013
View Details

SDN

防御网络 Self -Defending Network 思科自防御网络 思科自防御网络计划是一种全新的多阶段安全计划,它能够大大提高网络发现、预防和对抗安全威胁的能力。思科自防御网络计划增加了新的系统级威胁防御功能,与通过互联网协议(IP)网络将多种安全服务集成在一起的策略相比,又前进了一步。 制定企业的整体安全策略,是建立"自防御网络"的基础。随着网络技术不断地发展,网络安全要从以前被动的方式有所转变,在以前,企业不断在已有的计算机网络上不断添加防火墙,网络入侵检测设备,主机防病毒产品,网络身份认证系统,网络管理系统等等,其目的就是要加强网络的安全性,使计算机网络,网络上的通用操作系统,主机应用系统受到不同程度的保护。而今天,思科提出了一个崭新的概念,那就是,安全已经变成了网络的一部分,安全已经和网络密不可分,安全无处不在。而且,今后的计算机网络不但要具有保护网上主机系统,网上终端系统,网上应用系统的能力,关键是要网络本身也具有自我保护能力,自我防御能力,自我愈合能力,一旦受到网络蠕虫,网络病毒的侵扰甚至网络攻击时,能够快速反应,做到网络能够发现攻击,发现病毒,消除蠕虫,做到即保护网络应用的同时,又保护了网络自身,这就是思科所倡导的新一代的"自防御网络"计划(Self -Defending Network)。

龙生   10 Jul 2013
View Details

安装程序无法复制一个或多个文件。特定错误码是0x4b8

esentutl /p %windir%/security/database/secedit.sdb 故障现象安装IIS的时候一直提示如下错误,IIS无法正常安装。提示:安装程序无法复制一个或多个文件。特定错误码是 0x4b8。按“确定”以继续;或者按“取消”,停止安装并且再试一次。如果继续,组件可能无法正常运行。解决方案(1) 开始 > 运行 > 输入 CMD >再输入以下命令:esentutl /p %windir%/security/database/secedit.sdb,然后再安装一次,就搞定了。修复了安装IIS组件需要的系统数据库。这里的esentutl是一个系统的修复工具。主要用于修复系统的数据库。在Windows系统中,包含了多个数据库,最主要的数据库就是注册表,还包含了很多其他的数据库,他们都以系统数据库文件的形式保存,其后缀名为SDB。ESEnTUtl运行有几种模式。每种模式对SDB文件执行不同的任务。这里是每种模式的语法:Defragmentation  :  ESEnTUtl /d <database name> [options]碎片整理模式        :  ESEnTUtl /d <数据库文件名> [选项]Recovery      :      ESEnTUtl /r [options]恢复模式        :      ESEnTUtl /r [选项]Integrity        :      ESEnTUtl /g <database name> [options]完整性检查模式 :      ESEnTUtl /g <数据库文件名> [选项]Repair         :      ESEnTUtl /p <database name> [options]修复模式       :      ESEnTUtl /p <数据库文件名> [选项]Checksum       […]

龙生   10 Jul 2013
View Details

Visual Studio 2012 Ultimate旗舰版序列号

Visual Studio 2012 Ultimate旗舰版序列号: YKCW6-BPFPF-BT8C9-7DCTH-QXGWC RBCXF-CVBGR-382MK-DFHJ4-C69G8 YQ7PR-QTHDM-HCBCV-9GKGG-TB2TM 点击帮助(help)-注册产品(Register Product)-输入Key就可以了

龙生   09 Jul 2013
View Details

再来 35 个响应式 HTML5 和 CSS3 模版

免费响应式模版 FlexApp Demo || Download zGallering – Free Responsive Html5 Theme Demo || Download Responsive HTML5/CSS3 template Demo || Download VividPhoto HTML5 and CSS3 Template Demo || Download ResponseEve HTML Template Demo || Download Brownie Responsive HTML5 Template Demo || Download Retina – Free Responsive HTML5 Template Demo || Download Digy Demo || Download Obscura – Free Responsive HTML Template Demo || Download ImCreative HTML5 Template Demo || Download Simple Responsive Template Demo || Download Keyners HTML5/CSS3 Responsive Template Demo || Download zParalexy – Free Responsive Html5 Theme […]

龙生   09 Jul 2013
View Details

为开发者准备的 15 款 Tooltip 工具提示 jQuery 插件

tooltip或者infotip或者hint,是一种常见的图形用户界面元素。它用于连同一个光标,通常是一个鼠标光标。当用户将鼠标悬停在一个特定的地方,无需点击,就会出现一个包含关于悬停到这个地方的一些信息的tooltip或小的悬浮框。 jQuery tooltip是应该考虑在网页设计和开发中利用的最好的构件之一。Tooltip提供了额外的功能和通用型,可以被视为大多数网站的最重要的一个用户界面组件。 本文中我收集了15个最好的jquery tooltip插件,这些可以帮助你创建创新的和有创造性的网页设计,同时也可以帮助你来实现你的web项目所需要的结果。我希望这个jquery tooltip插件的列表对你即将到来或已经开始的web项目提供了便利并且是确实有用的。如果你知道一些其他的jquery tooltip插件请通过在评论区跟帖让我知道,非常期待。请享受本文! 1. Tooltipster Tooltipster是一个jQuery插件,用来快速创建HTML5验证的灵活的提示工具。这个插件很小(4.8kb大小),工作很快并且可以很容易的被定制。外观可以随意改变CSS(支持主题)和鼠标箭头的位置,展现的延迟/时间都可以被定义。 Source 2. Toolbar.js Toolbar.js允许你快速创建用于web应用程序和网站的提供工具类型的工具栏。这个工具栏可以很容易的用twitter启动图标定制,还提供自适应的环绕在工具栏周围显示一些图标。 Source 3.qTip2 qTip2是第二代先进的qTip插件,这是一个曾经很流行的jQuery框架。在1.0版本的友好的用户和丰富的功能的基础上,qTip2提供了一些增强的功能,比如气泡提示、影像映射等等。它是完全免费的,许可是MIT/GPLv2。 Source 4. Poshy Tip jQuery Plugin Poshy Tip jQuery Plugin是一个提示框插件,允许轻松创建时尚的提示框。通过Poshy Tip你可以把提示相对于鼠标光标或目标元素来定位,并可以将它们横向或纵向展示。 Source 5. Grumble.js Grumble.js提供了一个没有东西南北定位限制的特殊的提示框。它可以从360度的任何角度环绕一个给定的元素,可以指定任意的距离。 Source 6. Joyride Joyride是一个jQuery的插件,简化了指导用户发现一个网站的特点的过程。通过定义一个有序的步骤,可以在任何HTML元素附近通过提示框显示需要的信息。 Source 7. ImageMapster ImageMapster是一个可以通过添加更多地功能给旧图片来让它们更有生气的jQuery插件。使用这个插件,可以通过各种方式突出显示、选择(单个或多个区域)和操纵任何的图像。提示工具可以显示用户友好的可以与该图像互动的信息。 Source 8. Tooltipsy Tooltipsy是一个提供了创建提示工具的灵活基础的jQuery插件。它有最小的默认样式或动画,你都可以完全控制它们。它可以按你希望的方式来定位,外观和感觉均可以通过CSS来定制,任何类型的动画都可以被实现。 Source 9. jQuery Bubble Popup jQuery Bubble Popup是一个用来帮助创建容易控制的别致Tooltip的最流行的JS框架的插件。Tooltip通过淡入淡出的方式显示/隐藏,里面也可以显示任何的HTML内容。它们可以附加到任何一边的一个元素中,也可以获取Tooltip的状态(开/关,创建,最后一次修改或最后一次显示的时期时间)而采取相应的动作。 Source 10. Beauty Tips BeautyTips是一个使用canvas元素来实时绘制Tooltip的jQuery插件。每一个Tooltip默认显示在一个元素的有足够空间的一边,但是这个位置也可以强制放到一边。内容可以硬编码进去,或者从一个属性获取或者通过一次Ajax请求获取。 Source 11. Simpletip Simpletip是一个新生的轻量级的创建灵活的Tooltip的jQuery插件。Tooltip可以附加到任何的元素 & 轻松风格的演示 & 定位。Tooltip可以是静态的、动态的或者通过Ajax加载的。另外,可以应用任何组合的效果来使它们更有吸引力。 Source 12. Colortip 它将在你页面中元素的title属性转换为一系列丰富多彩的Tooltip。共有六个可用的颜色主题,所以你可以很容易的匹配你的设计。你也可以轻松地通过添加三个额外的样式类到你的stylesheet和在colortip-1.0-jquery.js中的支持颜色数组中添加一个元素来创建你自己的Tooltip。 Source 13.TipTip TipTip是一个非常轻量级和智能的自定义Tooltip的jQuery插件。它使用零图像,并且是通过CSS完全可定制的。TipTip会检测浏览器窗口的边缘以确保tooltip停留在当前窗口的大小。因此Tooltip将调整自身来显示在要使用TipTip的元素的上下左右,这取决于要保持在浏览器窗口中的哪些是必要的。 Source 14. (Mb) Tooltip (mb)Tooltip是为你的使用jQuery的页面提供的一个美丽的tooltip。只需很简单的将你的内容作为title属性的值,然后你就可以用这个聪明的漂亮的tooltip代替那丑陋的默认tooltip了。你也可以随时禁用或启用(mb)Tooltip。 Source 15. Hovercard 这是一个免费的轻量级jQuery插件,可以让你使用悬停的label、link或任何你选择的html元素来显示相关联的信息。hovercard可以用在显示个人简历、书籍作者和价格,通过Ajax加载相关联的信息,直接编辑等场景下。你也可以添加你的自定义数据源,使用已有的card格式来显示分析的数据。 Source 转自:http://www.oschina.net/translate/jquery-tooltip-plugins-for-developers

龙生   08 Jul 2013
View Details

60 个 Windows Store 的应用设计模版

今天给大家介绍的 60 个应用模版,全部是关于 Windows 8 设计相关的,它们很适合在 Windows 8 的平板上使用。如果你接下来想开发 Windows 8 应用,相信对你会有很大帮助。 而且这些模版都是放在 CodePlex 上。 点击图片进入模版页面 Block Style Color template will help if you want to build an app which needs a Variable Size Content display block. The Block Style Color template contains placeholders for Category and Detail Page. You can leverage this style if your implementation scenario is closest to this template. Block Style Pic template is an emulation of a data storage app with placeholders for category and details data. Brick Style template will help if […]

龙生   08 Jul 2013
View Details

开始3D编程前需注意的十件事

开始3D编程不是一件容易完成的任务。这里有很多新的东西可以发挥作用,从选择语言到选择合适的3d建模软件。当这10个事情完成时,无论你选择何种语言,使用何种建模软件,你都可以认为自己是这方面的半个专家了。 #1:建立自己的图形初始化函数 现在有种类繁多的3d引擎和平台,所以这个任务一般交给它们来完成。我还记得以前的事情,你必须使用windows函数来初始化OpenGL,并管理窗口句柄和资源的加载。了解事情是如何进行内部管理的会让你更深刻理解你现在在干什么,这是非常有用的。 我建议从NEHE的教程开始。在教程的第一章中包含了一个C语言编写的利用Windows API的图形初始化函数。如果这里有很多东西需要你控制,你可以试试C++的相对的函数,或者使用托管语言,像C#、Java或者Python。在网络中有很多例子。 #2:实现自己的相机 您可以从互联网上复制和粘贴摄像头的代码,使用它并没有大的问题, 但它不是自己的相机,直到你从头开始,充分了解一些概念,如向量处理,矩阵变化,角度转换等等。你应该先从一个FPS(第一人称射击)的摄像头开始,它会给你需要的一切并让你为接下来的学习做好准备。 如果你以后想构建自己的游戏,你不能使用它。我建议你阅读这篇文章,以找出最适合您的需求类型的相机。 #3:了解初级的3D概念 当我开始,我就开始听到了很多新词,如抗锯齿,各向异性过滤,阻塞测试,Z-缓冲,alpha测试,着色器语言,凹凸贴图等。如果你是一个玩家,也许你已经在配置游戏的图形设置时看过它们了。请确保你花费一些时间来阅读相关内容,因为这将会给你一个3D编程的概述。 #4:学习所有向量和矩阵的知识 这始终被低估。我强烈建议,为了正确地管理如相机,光线追踪,地形跟踪的东西,你应该知道关于这个的一切。当然,你也需要学会最基础的三角知识。现在我才明白,如果我愿意花几分钟研究这个问题,我的生活本应该很轻松。 #5:编写你自己的3D模型加载器 我建议从使用OBJ文件或STL文件开始,因为他们用一个ASCII格式表示。之后你可以迁移到其他根伟复杂的格式上,比如3DS格式。有了这个,你不仅将了解如何保存3D模型,你还会理解如何绘制三角形,然后你就会明白图形引擎是如何绘制一切的。 #6:成功实现自己的碰撞算法 一个事情是绘制世界,另外一个是管理其他中几何形状。在一个虚拟的3D世界中,这里没有物理定律,所以你必须创建它们。如果你想要一个对象不能穿越墙壁,那么你必须在墙壁中创建一个几何图形并计算所有东西。有几种方法来管理碰撞,我建议从在一个迷宫项目实现两体碰撞开始。试试这个链接,了解更多信息。 #7:实现一个小的粒子引擎 当我发现3D游戏中火焰、烟雾、照明和一些其他令人惊艳的效果是由粒子组成,而那些粒子是由相机面前的贴图组成。你添加更多的粒子,效果看起来更加逼真,但是性能就有所损失了。我的第一个粒子引擎是为火箭的烟雾制作的,而且我这样做的时候还没有不参看粒子引擎教程。后来我意识到了,我已经改造了车轮。通过实现这些东西,你会明白一些诸如粒子发射器、粒子行为等想法。 # 8:了解一个3D建模软件的基本知识 为了修改在你的应用中使用的3D模型,你应该知道基本的操作,比如平移,缩放,旋转,变形,导出为其他格式,并制作简单的模型。如果你不这样做,你在制作第一个游戏时遇到事事依赖别人的情况。我曾用过几个建模软件,我强烈推荐3D MAX或Maya。 #9 :加载和播放动画 我做过的最困难的事情是加载并正确播放动画。我不得不对3D max的XAF文件进行大量的逆向。我不得不学习骨骼层次,矩阵插值等东西。在最后,看到自己的模型自行移动是一件让人相当高兴的事情。我建议从一个机器人动画开始,因为动物模型什么的还需要一种名为蒙皮的技术。 #10 编写2D自定义GUI控件 当我开始使用XNA时,由于XNA没有实现窗体控件,我不得不构建自己的图形用户接口。这也导致了两件事: 第一:我有了构建自定义的GUI控件的能力。 第二:我懂得了一些重要的概念,如事件控制和事件捕捉。 这不是容易的事,我实现的最难的一个控件是listbox,但是一旦做出来了,就可以在很多地方使用了。 结论 在这个过程中你将会遇到很多问题。你不得不花费很多时间来使你的代码可以正常工作,即使你很聪明。但是我可以告诉你的是,从一个程序猿的角度来说,没有什么快乐比的上你看着你的代码能顺利的工作。我仍然不能忘记当我第一次编出OBJ模块加载器时的喜悦。当时,我想要加载个人脸图像,然后数个小时过去了,在凌晨3:50时,突然一个非常诡异的人脸出现在我的屏幕,真是吓死爹了,每当我想起这件事时,就哈哈大笑.. 我确信当你设法完成这10件事后,你可以说你已经了解了3D编程的基础。我写篇文章是因为我花了很多时间来完成它(指走了弯路了),所以我希望每个开始接触3D编程的人,能有一个小小的指南。我的建议是开始做一个小小的游戏,并不断的完善它。我觉得这是一个很好的方式,因为如果只是单纯的去学习而看不到实际的效果的话,积极性不高。一段时间之后,你会觉得游戏对你来说不一样了,因为你会花很多时间来想它们是怎么解决你曾经碰到的技术难点的。以上,我试图使这篇文章结构保持清晰和易懂,如果你喜欢,你可以访问我的 博客来获取更多的这方面的内容。 转自:http://www.oschina.net/translate/ten-things-to-achieve-when-starting-3d-programming

龙生   08 Jul 2013
View Details

a标签的四个伪类

★a标签的四个伪类的意义及排序:    在支持css的各个浏览器中,a标签链接的不同状态都能以不同的方式显示,这些状态包括:未被访问状态、已被访问状态、鼠标悬停状态和激活状态。        a:link|a:visited|a:hover|a:active这是a标签的排列顺序,这样排列是有一定因素的:a、技术层面:a的这四个伪类,分别表示了a的四种状态,要注意的是,a可以只具有一种状态(:link),或者同时具有两种或者三种状态,任何具有href属性的a标签,在没有对它进行操作之前就已经具备了:link的条件了;b、css优先级角度:从css优先级来看,当排列顺序发生变化时,后者会覆盖前者的表现样式,所以一般来说,我们要按照正确的顺序来排列a标签的四个伪类,可以简写为love、hate;    在实际应用中,很少会出现4个伪类同时使用的情况,有时我们只用到一个a:hover的效果,而不再对四个伪类都设置一遍,但是如果有其他伪类的需求,就必须按照4个伪类的正确顺序来设置,需要注意的是,除a标签以外,其他标签也都具备伪类,但是在IE6不支持a标签以外的标签的伪类; 转自:http://hi.baidu.com/haohaizhaozhao/item/96570e34ef28f5bfb80c03d9

龙生   07 Jul 2013
View Details

Mozilla的编程语言 Rust

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 = […]

龙生   05 Jul 2013
View Details
1 344 345 346 410