- 博客(295)
- 资源 (28)
- 收藏
- 关注
原创 为什么我们依然困于柏油坑?
《人月神话》发表了近30年了,柏油坑依然在那里。如果软件零缺陷是个神话,为什么我们还始终将陷于Bug修复视为常态?为什么普遍认为软件是解Bug解出来的? 虽然以前微软总被嘲笑补丁打不完,而我们也常常是在打补丁。 一个问题发生了,我们运用智慧的大脑先分析,再找方案! 大部分情况想到的是以最小的代价修复Bug,从而新方案反而引入新Bug。如此往复,构成了程序员工作的主要内容。为
2012-08-24 23:33:36 2231
原创 X公司的流程改造之路 (二) [课程报告]
在整个流程改造过程中,公司高层的支持必不可少。敏捷开发模型带来不单单是纯粹流程和方法上的变化,也会带来公司制度层面,甚至是文化层面的改变。只将流程改造限制在项目级别,只能产出一个勉强而来的结果,并不是真正的敏捷开发。上一篇:X公司的流程改造之路 (一) 开端 Beck为团队进行了两天的培训,并逐一解答了大家的问题。在随后的团队的启动会议上,总经理Drucker亲自出席鼓励团队,
2012-08-24 22:43:55 12012 22
翻译 JavaScriptCore, WebKit的JS实现(完)
什么是method JIT? 什么是DFG JIT? JSC的DFG JIT与V8 Crankshaft相比有何优劣?JIT:一个方法式的JIT(a method jit)*关于method JIT,可以参考另一份档案。关于解释器(interpreter)和堆栈(stack,也就是寄存器文件,register file)都是应用了方法式JIT(method JIT). 所谓简单方法JI
2012-08-23 00:07:46 10465 1
原创 Webkit中HTML5 Video的实现分析 (四) - 视频加载及播放的时序图
MediaPlayer同MediaPlayerPrivateInterface,再同播放控件的交互过程应当要简单、清晰。MediaPlayer通过自身的状态(Network States 和 Ready States)来控制操作的步骤。MediaPlayerPrivateInterface具体到不同的平台和视频格式,使用的具体的播放控件会不同。这里仅贴一张时序图,其中没有特别区分HTM
2012-08-21 23:45:13 15784 1
翻译 JavaScriptCore, WebKit的JS实现(一)
目前,JavaScript的实现已经成为编译领域的一个重要组成部分。主要包括Google的V8, Mozilla的SpiderMonkey, 还有Webkit使用的JavaScriptCore。 jsc:WebKit的JS引擎( js for webkit)JavaScriptCore (JSC)正是WebKit的JavaScript实现。 起初,JavaScriptCore是
2012-08-21 01:03:36 11372 1
转载 爱迪生的致命大跟头
人生路上,起起落落。我们经常学习如何面对困境,有时也要学习下如何面对顺境。 被人称为“美国之父”的富兰克林少年得志,豪情满怀,意气风发,他的表现自然也是挺胸阔步,昂首视人。一位爱护他的老前辈意识到,一位有成就的普通人如此表现无可厚非,但作为国家领导人,这样很危险。于是他将富兰克林约出来,地点选在一所低矮的茅屋。富兰克林习惯于昂首阔步、大步流星地走路,于是一进门只听“嘭”的一声,他的额头
2012-08-19 00:07:11 3524
原创 Webkit中HTML5 Video的实现分析 (三) - MediaPlayer & MediaPlayerPrivate的生命周期
明确主要类的生命周期有助于更好理解Webkit中视频的工作流程。下图展示了类间的引用关系。如HTMLVideoElement与一个MediaPlayer对应,MediaPlayer与MediaPlayerPrivate一一对应,它们都是一个组合关系,当所有者自身被析构时,会自动释放引用的实例。这个过程都是使用OwnPtr智能指针来实现的。 OwnPtr赋值操作的代码:
2012-08-17 01:00:59 10380
原创 Webkit中HTML5 Video的实现分析 (二) - MediaPlayerFactory & RenderVideo的绘制操作
MediaPlayerFactoryMediaPlayerFactory像是一个解码库一样,初始化时,各个可用的播放器(MediaPlayerPrivate)向它注册。当需要解码时,由它给出一个合适的播放器(呼叫MediaPlayerPrivate::constructor,即MediaPlayerPrivate::create)创建一个实例[由MediaPlayer:: loadWith
2012-08-14 00:11:51 14162 2
原创 Webkit中HTML5 Video的实现分析 (一) - 基本结构及HTMLMediaElement & MediaPlayer
以下为针对Webkit中HTML5 Video实现原理的分析和学习总结。至于其中的UML图档,可以到下面的github链接中下载。首先预览一下Webkit中和Video相关的主要的类的层次结构:其中主要的类为HTMLMediaElement, MediaPlayer以及RenderVideo(左下角).HTMLMediaElement代表了DOM结点,其继承关系可以追溯到Nod
2012-08-11 23:14:05 21800 3
原创 推荐一个HTML5视频转换工具
在开发过程为了便于测试,经常需要准备些视频,于是找到了这一款轻便的转换软件, Easy HTML5 Video。它可以很方便视频转转换为HTML5的三种格式和Flash格式,并可以为你生成一个简单的页面。Windows和Mac都有相应的版本。当然,转出来的视频有水印。但做测试已经够了。官网地址:LINK
2012-08-10 22:28:17 5645
原创 Chrome中的开发者插件
在这里列举几个在Chrome下的开发插件,希望可以帮助提高工作效率,更主要的是抛砖引玉,更多的好工具还要不断发现。1. Developer Tool 第一位的自然是Chrome集成的开发工具了,几乎涵盖了所有你需要的功能。查看组件、获取XPath、性能分析、更改浏览器UA、调试JavaScript等等。特别值得一提的是在Element中获取xpath的功能,对于解析HTML数据会很
2012-08-08 23:03:48 5275 2
翻译 掌握HTML5中的多媒体--音频(audio)
使用音频标签音频标签的使用和视频是非常相似的:指定多个音频文件,浏览器会播放其中支持的第一个。1. "audio.ogg" controls>2. 你的浏览器不支持标签.3. audio> Figure 5列出了所有可用的属性. 因为不需要像视频播放器那样显示整个控件,所以高、低和预览图(poster)都不再需要了。Fig
2012-08-08 22:10:17 5145
原创 思维惯性引发的编程问题
为什么程序要了解思维的障碍,并要练习有意识的加以克服?这里举一个实际发生的问题。写代码像写作一样,有时思如泉涌,顺着思路就把一段代码写得有模有样。下面是一个状态码检查的例子(这种写法本身并不严谨,但这里要讨论是一个更为严重的问题.):typedef enum { STATE_DEFAULT, STATE_A = 1, STATE_B = 2, S
2012-08-07 22:03:53 2173
转载 WebKit网页布局实现之主要架构篇
转自: http://www.fanzehua.com/blog/15.html在有了对CSS网页布局标准及相关概念的认识之后,我们可以更加深入的理解WebKit究竟是如何实现其网页布局,同时实现对CSS布局标准的支持。毕竟标准归标准,要高效的实现这些标准,不同的实现肯定有其不同的实现方式,就像不同的Web服务器对HTTP协议标准的实现有所不同一样,当然不同的实现也会增加一些自身特有的属性
2012-08-06 23:35:11 2432 1
原创 函数的单一职责原则(SRP)
结构化编程强调单一出口的原则,其目的在于增强函数流程的逻辑性。本身这个原则有些过于死板,但其保持代码逻辑性的目的是非常正确的。在面向对象设计,我们都知道要遵循单一职责原则(SRP),而函数也应遵循这一原则,以保证函数体逻辑的清晰并且高内聚。 以下示例中,UpdateValue函数与下面m_value的赋值语句造成了逻辑的分散:当需要变更m_value的赋值逻辑时,往往会修改Up
2012-08-06 23:08:51 4653
翻译 掌握HTML5中的多媒体--视频(video)
除非你一直生活在一个偏远的岛屿上,过去一年左右的时间,你应该已经听说过HTML5的各式炒作。HTML5将重塑富Web应用的未来。下面 Figure 1的示例展示了HTML5中video标签与传统的object标签的不同.Figure 11. section>2. h1>使用HTML5的video标签播放视频h1>3. videosrc="video1.
2012-08-06 01:33:37 24048 3
翻译 39个让你受益的HTML5教程
闲话少说,本文作者为大家收集了网上学习HTML5的资源,期望它们可以帮助大家更好地学习HTML5. 好人啊! 不过,作者原来说的40个只有39个,因为第5个和第8个是重复的。原文在此!1. 五分钟入门HTML5 (Learn HTML5 in 5 Minutes!) By Jennifer Marsman毫无疑问,HTML5是一个热门话题。如果你需要一个迅速了解HTML基础的速成
2012-08-04 23:51:33 76198 11
原创 顾客细分:互联网行业要从农业精耕中学习
转载请注明出处:http://blog.csdn.net/horkychen 顾客或用户细分说白了和农业的精耕细作是一样的道理,这在咱们八九千年(说法不一)的农业发展史中早就被认定为农业可持续发展的灵魂(详见左淑珍关于免耕法与传统精耕法的论文)。 依据最简单的想法,要想获取更好的食物或收成,播散越多的种子或使用越大的渔网,收成应当越好。如果真是这样,事情就简
2012-08-01 00:42:42 2853
原创 HTML5 Video/Audio网页信息汇总
基础: HTML5视频简介 (CN,2012) Introduction to HTML5 video - Opera Dev (En,2010) 所有你应该了解的有关HTML5 Video和Audo的那些事 (En,2010) Working with Media in HTML5 Getting Started - Navigating H
2012-07-30 23:19:15 2969
原创 GDB秘技--调试时执行代码中的特定函数
在使用GDB调试程序时,有时遇到看到数据不知所云,必须对照定义才能看懂, 有时还要做些运算才能看出来,这样效率显然不高. 如果需要查看一个变量类的当前值,简单的数据类型还好说,如果遇到一些枚举型的变量或特殊条件,想要看到清晰的数据输出,就会比较繁琐. 好在GDB提供了一个调试时执行某个函数的功能:call, 在需要时能帮你解决大问题. 举个简单的例子,如果有一个类定义了一
2012-07-29 22:26:35 26046 8
翻译 10件开发者和老板都要知道的HTML5的那些事
1. HTML5 标签没什么大不了的.理解这句话你需要先了解HTML 5。它仅仅是一个html4.01的一个升级版本?或者是它是完全不同的新版本(无处不在的大肆宣传可能会让你有这种感觉)?答案是两种理解都有部分正确。HTML 5包括许多简化和附加的网页标记,所以称它为升级版本也是公平的(虽然也有一些大的补充标签,如视频和画布)。但是,HTML 5也可以被认为是一个技术组合,包括
2012-07-27 00:11:49 4202
原创 负责任的公司从尊重用户做起
越来越多的企业开始提到要做负责任的公司,诸如社会责任、全球化责任之类的提法不绝于耳。战略口号之下企业又是如何作为呢? 总有些漂亮的事情可以给公司贴金,但容我直言,这些都不长久!原因很简单,战略规划并不丰满。 我要说的是公司要负责任,第一优先的是要对产品的用户负责。用户是公司存在的基础,这些衣食父母不照顾好,还说跑去负社会责任,缺少内涵。古时候不是孝子,想在官场上混是很难的
2012-07-26 08:21:31 4229
转载 知识=经验×反思2
管理大师查尔斯•汉迪曾经在伦敦商学院教书。在培训一些经理人的时候,他讲了这么一段话:“你们不会把这次培训看成什么难忘的学习机会,除非它能帮助你们反思过去,理解从前的经验。如果能达到这个目的,它才能帮助你们更好地解决将来出现的难题。” 汉迪的这一段话,包含三个重要的公式。最重要的是第一个:经验+反思=知识。经验本身不是知识,只有经过反思才形成知识。你做了五年或者十年的管理工作,骄傲地
2012-07-25 23:54:54 1765
转载 如何使用搜索技巧来成为一名高效的程序员(Google, Bing, Yahoo or Baidu)
没有人是完全独立的孤岛,每个人都是整体的一部分。——约翰·多恩 (至少你拥有95%以上的知识在网上都可以找到! 你遇到的问题中至少80%是别人也可能遇到过的!) 对于缺乏编程知识的人来说,完全有可能编写一个网页或小程序。如果在用Google搜索相关示例时幸运的话,可以搜到现成的代码。即使是经验丰富的程序员,通常也会为了节省时间和精力而在网上搜索解决方案。如果不借助搜索技术、
2012-07-25 23:50:27 4386
翻译 谦卑的程序员(The Humble Programmer) by E.W.Dijkstra,1972
谦逊的长者——Edsger Wybe Dijkstra,1930年出生于荷兰阿姆斯特丹,2002年逝世于荷兰纽南。他在祖国荷兰获得数据和物理学学士,理论物理博士学位,2000年退休前 一直是美国Texas大学的计算机科学和数学教授。以发现了图论中的最短路径算法(Dijkstra算法)而闻名于世,1972年因为ALGOL第二代编 程语言而获得图灵奖。“Go To Statement Consid
2012-07-25 23:34:24 7655
原创 关于代码布局(Coding Layout)
研究发现,缩进可以提高程序员的理解能力(Program Indentation and Comprehensibility>>, Miaria et al. 1983)。缩进是代码布局的一项技术。作为代码布局并不像命名和注释那样明确,它更像一种感觉。比如摄影的构图,或者国画的留白。虽然很难给一个标准的评价标准,但是>的作者Steve.McConnell和>的两位作者还是给了一些建议。 首先
2012-07-25 23:10:49 2468
转载 使用 Sonar 进行代码质量管理
Sonar 概述Sonar 是一个用于代码质量管理的开放平台。通过插件机制,Sonar可以集成不同的测试工具,代码分析工具,以及持续集成工具。与持续集成工具(例如 Hudson/Jenkins等)不同,Sonar并不是简单地把不同的代码检查工具结果(例如 FindBugs,PMD等)直接显示在 Web页面上,而是通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码
2012-07-24 23:49:00 2871
翻译 关于好的代码(Aspects to good code)
我常常思考是什么造就了好的代码 (good code).使用最新的语言特性、最佳的模式(best pattern)、最好的层次化设计(best layered design)、使用最少内存、亦或最佳的执行性能(performs the best)?很明显,这些项目都会在设计时考虑,但它们是首先要最主要的原因吗(the first things you think of)?或许并不是!
2012-07-24 23:32:18 2369
原创 开发工作中使用的软件列表
工欲善其事,必先利其器! 在这管理我的工具列表了:Team Suite - GForge, FusionForgeVersion Control: Subversion,Git,Bazaar Mac OS:svnX,SCPlugin, Versions Windows: Tortoises SVN Linux:KDESVNLOC counting: B
2012-07-23 22:51:54 4154 1
翻译 应当避免的JavaScript编程问题
如果刚开始学习JavaScript,无论完全自己写程序,或者使用一些框架 (jQuery, Mootools, Dojo, YUI) ,下面这几个错误你必须要避免, 它们都是我学习JavaScript的经验之谈。等价比较(Equality Operator) JavaScript中有两个相等比较操作符.第一个就是两个等于号(==),它只比较值是否相等,而不关心数据类
2012-07-23 22:08:13 2231 1
转载 结构化思维
对于结构化思维引入我用了Matrix里面的一张宣传图片,Matrix矩阵本身就很好了体现了结构化思维的一个重点,即事物是分维度的,是分层的。同时用 这张图还强调一点结构化思维的包含了数字思维,用数据来说话,通过数据来分析和论证本身也就是结构化思维的体现。 结构化思维的三个步骤是:确定目标——资源分析——制订计划。如果从这点上来看,结构化思维更加像目标驱动的项目管理思维。而这三个步
2012-07-23 00:28:03 1795
转载 不做专业做不强,只做专业做不大
“不想当将军的士兵不是个好厨子”,《武林外传》中的一句台词,让我们捧腹大笑的同时,更让很多人都记住了编剧宁财神这个才子。当一个人在某些时候被称之为“人才”的时候,实际上是因为此人在某一“专业”方面具有扎实的功底,这些“专业”本身也许并没有很大价值,但是发挥“专业”后却能够为他人创造出非凡的价值,这也是一个人有其个人价值的原因。网上很多人都在说,在美国请律师是一个很烧钱的事儿,你向他
2012-07-23 00:05:26 2163
原创 在Perl中读写Excel表
Perl中读写Excel很方便,贴段代码为以后参考。读写Excel的组件需要另外安装,指令如下: perl -MCPAN -e shell -> install Spreadsheet::WriteExcel perl -MCPAN -e shell -> install Spreadsheet::ParseExcel #!/usr/bin/perluse Spr
2012-07-20 08:24:18 4348
原创 编程语言与自然语言
转载请注明出处:http://blog.csdn.net/horkychen 编程语言的发展和自然语言是相似的,根本上都是以满足沟通需求为驱动力的。其中也不乏沟通的障碍,这里做个简单的探讨! 1. 语言是什么语言是沟通工具,是为了交流信息而产生的。(语言包含说和写两个方面,这里主要探讨写。) 从结绳记事到现代语言,语言(包含文字)的每一次变革都是为了促进交流而进行的
2012-07-19 21:54:04 6089
翻译 为什么V8引擎这么快?
转载请注明出处:http://blog.csdn.net/horkychenGoogle研发的V8 JavaScript引擎性能优异。我们请熟悉内部程序实现的作者依源代码来看看V8是如何加速的。作者:Community Engine公司研发部研发工程师Hajime MoritaGoogle的Chrome中的V8 JavaScript引擎,由于性能良好吸引了相当的注目。它是G
2012-07-18 23:47:01 65987 10
原创 将Chrome Extension加到快捷菜单中
转载请注明出处:http://blog.csdn.net/horkychen接着上一篇Chrome插件的实作。Step 1. 修改manifest.json, a. 增加权限"contextMenus"和"notifications" contextMenus -> 表示插件要操作快捷菜单 notifications -> 表示插件将弹出消息通知 (处
2012-07-17 13:05:53 3623 1
翻译 编码工艺Coding Techniques)-命名和注释
转载请注明出处:http://blog.csdn.net/horkychen(节选自MSDN-Coding Techniques and Programming Practices)命名 (Names)命名最有利于了解程序的逻辑结构。一个名字说明是"什么(what)”比说明"如何(how)"更重要。通过命名可以避免暴露底层的实现,从而保留一个抽象层,简化了程序的复杂性。例如,你可以
2012-07-17 01:15:58 2973
转载 程序员谈如何掌握计算机专业英语
转自:http://www.kuqin.com/english/20080512/8356.html (准备写篇相似的东西,看到这篇比较早的文章,很有启发。) 干程序员是一项很辛苦的工作,要成为一个高水平的程序员尤为艰难。这是因为计算机软件技术更新的速度越来越快,而这些技术大多来源于英语国家,我们在引进这些技术时往往受到语言障碍的制约,严重影响到对新技术的理解和消化。首先编程本身就依赖于
2012-07-16 13:09:43 7453 6
原创 实作一个二维条码生成的Chrome插件
转载请注明出处:http://blog.csdn.net/horkychen360浏览器的团队确实做了一件好事,将Chorme开发文档翻译成了中文, 可以点击这里。我简单依据这个例子,做了一个二维条码的插件,默认将当前网页地址转为二维条码。 (*使用UC浏览器可以很方便用二维条码录入。)文件目录: 3个ICON文件: 16.png, 48.png, 128.png
2012-07-14 22:54:48 3243
翻译 XCODE 4.0.2 & 4.1分布式编译
转载请注明出处:http://blog.csdn.net/horkychen(译注:我一直思考如何把旁边的电脑也用来一起编译一个大工程,今天发现了这份资料。先翻译一下,找时间实践。)不知道是什么原因,XCode 4.x似乎不支持分布式编译了。虽然可以通过定义distcc服务器启用分布式编译,但基本上还是在本地工作。仔细看看编译日志:setenv DISTCC_H
2012-07-12 23:46:20 4605 1
Google Chrome中的高性能网络
2013-09-03
面向 HTML5 的图形加速和面向移动设备的 JAVASCRIPT 引擎 JIT 优化
2013-06-09
主动自我优化的编译器
2013-06-09
LLDB查看数据类型的示例脚本
2013-01-14
Lenovo LJ2000打印机驱动
2010-12-06
STL Documents from SIG.com
2009-09-20
实战KDevelop进行Linux软件开发
2009-03-11
实战KDevelop进行Linux软件开发
2009-03-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人