代码改变世界

关于stacking context和CSS z-index的总结

2015-07-30 18:08 by Colin Han, 1389 阅读, 0 推荐, 收藏, 编辑
摘要:HTML中决定元素叠加顺序的CSS属性最有名的应该是z-index了。但是,往往在项目中发现有些情况和我们的预期不太一致。经过研究和学习,总算搞清楚了其中的关系。简单总结记录一下。 阅读全文

2012新年愿望

2012-01-08 22:17 by Colin Han, 921 阅读, 1 推荐, 收藏, 编辑
摘要:时间就像一个杀猪刀,2011过去了,2012来了。给自己列几个目标:工作方面:1. 将SSL顺利发布首要工作是将SSL的第一个版本顺利的按时发布。SSL从刚开始筹划到最终发布经历了近一年半的时间。很多兄弟为这个项目付出了心血。虽说大家都对产品平台持悲观态度,但我还是希望这个产品能够有一个不错的市场回报。2. 提炼SSL的架构新的一年,SSL产品可能会在新的平台上寻求一些突破,如果我继续负责这个新产品的开发工作,我希望能够将SSL的架构进行一些提炼。我希望新的平台下可以做到:a) 在两个平台之间共享代码现有SSL中的大多数代码进行一些提炼,就应该可以在两个平台之间共享。我希望能够做到让90%的数 阅读全文

100%测试覆盖率真的有用吗?

2011-05-15 14:17 by Colin Han, 1134 阅读, 0 推荐, 收藏, 编辑
摘要:背景最近看到一篇博客,作者是一名ThoughtWorker,文中提到要在他的项目中贯彻100%单元测试覆盖率。我在留言中对100%测试覆盖提出了一些质疑。看到“透明"的回复并且阅读了他的《Why is 100% test coverage easier to achieve》(需FQ)。有些想法,但是Blogbus的评论有字数限制。因此,贴在自己博客里面,希望和dreamhead和透明继续讨论@透明拜读了你的博文。FQ确实很辛苦。对ThoughtWorks的敬仰又进一层。但是,对你的观点依然有一些质疑。你认为没有测试覆盖的代码就是不必要的(MUDA)。例如:getter, sette 阅读全文

“外部质量”还是“内部质量”

2011-02-14 16:45 by Colin Han, 3544 阅读, 2 推荐, 收藏, 编辑
摘要:这几天看了看《硝烟中的Scrum和XP》,其中作者将产品质量分为两种——“外部质量”和“内部质量”。作者认为,在项目工期紧的时候,外部质量是可以妥协的。而内部质量是不容妥协的。但是,哪些问题属于内部质量呢? 阅读全文

使用SvrAny和InstSvr将应用程序作为Window服务启动

2010-08-13 17:59 by Colin Han, 1876 阅读, 0 推荐, 收藏, 编辑
摘要:如果你想让一个任意的执行文件以Windows Service的方式执行,可以使用微软Windows 2000 Resource Kit中的InstSrv和SrvAny来实现。为了方便期间,你可以直接从这里下载到这两个执行文件。第一步,你先要在系统中注册一个新的服务,并且指定服务的执行文件为SrvAny.exe。通过命令行执行如下的命令:instsrv [服务名] c:/path/to/srvany... 阅读全文

收到Google Wave要求,想要的留下信箱。

2009-10-30 22:03 by Colin Han, 783 阅读, 0 推荐, 收藏, 编辑
摘要:前几天收到Google Wave的邀请。今天抽时间激活了一下。看到有一些邀请。这里放出10个。要的,请给我发站内短信息,告诉我你的邮件地址。我会以接到短信的顺序发放。强调一下:Google Wave的邀请很奇怪,并不是我给你了,你就可以得到。似乎是Google还有算法来决定是否给你。我会在留言中标明都给了谁邀请,你能不能得到就看造化了。-----------------------2009-10-... 阅读全文

简哲,请让我的生活简单一点。——批《输入法破局研究——联盟推广》

2009-09-14 23:31 by Colin Han, 861 阅读, 2 推荐, 收藏, 编辑
摘要:今天看到“月光博客”转载一篇用户投稿《输入法破局研究——联盟推广》,看后让我很不以为然,在做深入的思考后,反而有种义愤填膺的感觉。于是,写了下面的文字。本想在原文中回复呢,结果,月光有字数限制。那就贴在自己博客里吧。-=-=-=-=-=-=-=-=-=-=- 不明真相的分割线 -=-=-=-=-=-=-=-=-=-=-=-简哲,你观点和你的名字正好背... 阅读全文

[经验总结] 关于单元测试

2009-08-26 09:33 by Colin Han, 3166 阅读, 2 推荐, 收藏, 编辑
摘要:今天看到@jeffz_cn在twitter上问:“私有方法真的不应该单元测试吗?为什么?我觉得有的组件只是逻辑复杂一些,因此会提取私有方法,并且测试这些私有方法的逻辑。如果把这些内容统统从外部“注入”,这样私有的逻辑就变公开了……但是这样难道没有过渡设计的味道吗?”。然后就想起来我在项目中推动单元测试的经过。觉得还是应该总结一... 阅读全文

程序员的全新全新兼职工作平台的设想。

2009-08-25 11:51 by Colin Han, 4521 阅读, 6 推荐, 收藏, 编辑
摘要:今天看到@金色海洋的《程序员的全新的兼职工作方式》一文,勾起了我一直期望实现的一个平台的想法。基于我这个人“只想不干”的特性,看来我实现和完善这个想法的可能性也很低了。这里发布出来,也许能够为别人带来好的启发。我的想法,就是建立一个《软件开发项目承接平台》。任何人都可以在这个平台上注册并发布自己的需求。任何人都可以在这个平台上注册并实现别人的需求。完成交易。听起来是不是和现... 阅读全文

智能播放器,也许有商业价值。

2009-08-13 09:00 by Colin Han, 3978 阅读, 3 推荐, 收藏, 编辑
摘要:几天前在路上想到一个点子,也许有些价值。和一些现有的音乐网站结合起来应该会有一个不错的发展空间。生产一个自动通过网络下载歌曲,随机播放的播放器。这个播放器会根据用户的喜好来下载音乐进行播放。(这一点,目前已经有网站实现了这个功能,为了避免成为软文,所以就不说网站名字了。这个播放器就需要利用这些网站现有的算法进行用户喜好分析)现在,山寨mp3播放器很多,大家功能基本一致,而且容量都很大。我不确定在播... 阅读全文

谁来代替博客园 —— C社区

2009-04-17 13:03 by Colin Han, 5074 阅读, 0 推荐, 收藏, 编辑
摘要:上一篇博客,我也掉到了首页之争中去了。这一篇,我就介绍一个可能替代博客园的社区。 阅读全文

谁来代替博客园——寄生博客

2009-04-16 21:48 by Colin Han, 1232 阅读, 0 推荐, 收藏, 编辑
摘要:我设想中的一个可以让我搬家的社区。 阅读全文

谁来代替博客园 -- 怎样提高自己博客的访问量

2009-04-16 13:05 by Colin Han, 4387 阅读, 0 推荐, 收藏, 编辑
摘要:博客园的一些改变实在让我觉得很不喜欢。于是就想搬家了。可是,谁能够替代博客园呢? 阅读全文

经典红白机游戏音乐。

2008-11-16 12:32 by Colin Han, 1060 阅读, 0 推荐, 收藏, 编辑
摘要:怀旧的感觉 阅读全文

郁闷的异常信息

2008-10-20 17:25 by Colin Han, 951 阅读, 0 推荐, 收藏, 编辑
摘要:今天编写单元测试的时候,出现一个奇怪的错误信息:[代码]网上搜了一下,说将你的Dll所在的目录设为FullTrust。但是,我就奇怪了,我的本地文件都是FullTrust的啊,为什么就唯独这一个文件无法使用呢? 只好继续Google了,终于让我找到了这篇文章。其中James Fuhr说什么Block,Unblock的东东,让我很是不理解。最后终于在文件的属性对话框中找到了这个按钮。郁闷啊,藏的还真... 阅读全文

[集成IronPython] 使CLR对象对动态语言更友好(三)—— 使用ExtensionTypeAttribute

2008-10-06 10:08 by Colin Han, 3609 阅读, 0 推荐, 收藏, 编辑
摘要: IronPython 2.0完全基于微软DLR平台实现的。并且提供了良好的和.NET CLR对象之间交互的能力。在本系列文章里,我们将尝试实现一个自定义控件,使得你可以象使用标准Python控制台一样在其中输入Python代码,并且运行。当然,为了能够让IronPython很好的操作CLR对象,其中还是有很多技巧,让你的CLR对象对IronPython更友好,这一节,我们就要使用ExtensionTypeAttribute为已有的CLR对象添加DLR友好性支持。 阅读全文

[集成IronPython] 使CLR对象对动态语言更友好(二)—— 支持切片

2008-08-25 10:32 by Colin Han, 3158 阅读, 0 推荐, 收藏, 编辑
摘要:IronPython 2.0完全基于微软DLR平台实现的。并且提供了良好的和.NET CLR对象之间交互的能力。在本系列文章里,我们将尝试实现一个自定义控件,使得你可以象使用标准Python控制台一样在其中输入Python代码,并且运行。 当然,为了能够让IronPython很好的操作CLR对象,其中还是有很多技巧,让你的CLR对象对IronPython更友好,这一节,我们就要实现一个集合对象,并且让这个集合类可以向IronPython的内置序列类型一样的支持切片操作。 阅读全文

[集成IronPython] 使CLR对象对动态语言更友好(一)—— 支持运行时添加删除属性

2008-08-18 11:59 by Colin Han, 3824 阅读, 0 推荐, 收藏, 编辑
摘要:动态类型语言(以下简称:"动态语言"),在10年前就已流行起来。JavaScript更是成为了WEB前台开发的事实标准。但它们进入普通开发 人员的视野也就在近几年。随着Web2.0和敏捷开发方法论的兴起,动态语言的灵活高效的特性成为了它被更多项目选择和使用的理由。一些大型网站已开始使 用动态语言来实现,其中,国内比较优秀的作品有“豆瓣”。微软更是不甘落后,建立了DLR(动态... 阅读全文

[集成IronPython] 使用Module扩展IronPython

2008-08-16 17:24 by Colin Han, 1743 阅读, 0 推荐, 收藏, 编辑
摘要:失败 在IronPython的源代码中,提供了一个PythonModuleAttribute,我原以为这个Attribute是为自定义Module建立的。在clr.AddReference时会检查Assembly中的所有PythonModuleAttribute。并将指定的类型作为Module导入到Python的运行环境中。但是,今天实际测试的结果并不是这样。IronPython仅在自己的Iron... 阅读全文

[集成IronPython] 添加方法到运行环境

2008-08-04 10:29 by Colin Han, 3229 阅读, 0 推荐, 收藏, 编辑
摘要:动态类型语言(以下简称:"动态语言"),在10年前就已流行起来。JavaScript更是成为了WEB前台开发的事实标准。但它们进入普通开发 人员的视野也就在近几年。随着Web2.0和敏捷开发方法论的兴起,动态语言的灵活高效的特性成为了它被更多项目选择和使用的理由。一些大型网站已开始使 用动态语言来实现,其中,国内比较优秀的作品有“豆瓣”。微软更是不甘落后,建立了DLR(动态... 阅读全文

[集成IronPython] 添加CLR对象到运行环境

2008-07-28 09:17 by Colin Han, 7036 阅读, 0 推荐, 收藏, 编辑
摘要:在本系列文章中,我们将逐步实现一个自定义控件,实现类似IDE的Immediate窗口的功能。用户可以在其中输入和运行IronPython代码。 在上一节中,我们建立了IronPython运行环境,并且在其上成功的运行了“print "hello world"”的命令。正如上一节的讨论中所看到的,大家都很关心如何让IronPython脚本和我们的运行环境交互。在这一节中,我们将会在DLConsole上添加两个方法,实现将运行环境中的Clr对象传递给IronPython脚本使用。 阅读全文

[集成IronPython] 建立运行环境并运行脚本

2008-07-19 16:24 by Colin Han, 4591 阅读, 0 推荐, 收藏, 编辑
摘要:动态类型语言(以下简称:"动态语言"),在10年前就已流行起来。JavaScript更是成为了WEB前台开发的事实标准。但它们进入普通开发人员的视野也就在近几年。随着Web2.0和敏捷开发方法论的兴起,动态语言的灵活高效的特性成为了它被更多项目选择和使用的理由。一些大型网站已开始使用动态语言来实现,其中,国内比较优秀的作品有“豆瓣”。微软更是不甘落后,建立了DLR(动态语言运行时)来吸引动态语言爱好者在其上实现动态语言。IronPython就是其主要成员之一。 在本系列文章中,我们将逐步实现一个自定义控件,实现类似IDE的Immediate窗口的功能。用户可以在其中输入和运行IronPython代码。 本文中,我们将实现最基本的代码,让IronPython脚本可以在其中运行。 阅读全文

[集成IronPython] 集成IronPython系列

2008-07-13 15:45 by Colin Han, 3607 阅读, 1 推荐, 收藏, 编辑
摘要:动态类型语言(以下简称:"动态语言"),应该说有很古老的历史了,10年前就已经在学术圈内流行起来。JavaScript更是成为了WEB前台开发的事实标准。但是他们进入普通开发人员的视野也就是在最近几年。随着Web 2.0和敏捷开发方法论的兴起。动态语言的灵活高效成为了他被大多数项目选择和使用的理由。一些大型的项目和网站都开始使用动态类型语言实现,其中,国内比较优秀的作品有“豆瓣R... 阅读全文

避免DateTimePicker闪烁的解决方案

2007-12-29 14:46 by Colin Han, 1765 阅读, 0 推荐, 收藏, 编辑
摘要:1. 在WinForm上放置一个TabControl,并设置其Dock属性为Fill。2. 在其中的一个Tab页上放置一个DateTimePicker控件你会发现,当你在XP系统下,ResizeForm时,DateTimePicker会闪烁。研究了很长时间,没有结果。最终放弃C#和Spy++,使用Google研究了一下 :-) 得出结论如下:需要为DateTimePicker控件添加WS_EX_C... 阅读全文

[自定义Component]WinForm的AutoScale能力

2007-10-20 13:46 by Colin Han, 4344 阅读, 1 推荐, 收藏, 编辑
摘要:AutoScale是.NET WinForm提供的一套让应用程序能够良好的在不同语言的操作系统和DPI设置下正常显示的功能。 在.NET 2.0中,微软对.NET 1.0中提出的WinForm的AutoScale能力进行了调整和增强。但是,微软始终没有跳出快速开发的圈子,因此,AutoScale做的并不彻底。其中有些工作还必须我们自己完成。 阅读全文