令人感动的《春天里》

北漂,甚至是民工,是他们的命运,有许许多多这样的人,没有机会在他们的春天里绽放。

如同《老男孩》里唱的,有谁知道这世界他们来过。只有他们自己知道,他们努力过,为了音乐这个梦想,他们离开了土地,结局是什么,也许并不重要,因为大家殊途同归,每个人都会面对同样的生命终点。

又或许结局很重要,说不重要的我只是在站着说话不腰疼,因为如果他们梦想实现,就不会老无所依,就不会生活没有物质保障。否则……这差别很大。

但至少从央视的采访中,从王旭对老茧的珍惜中,我看到他对结局并没有大部分人想象的那么看重。老无所依的担忧固然是有,但不愿意回老家踏实养家体现了一种对梦想的付出,愿意拿稳定的生活去交换一样东西是痛苦的,但正是这种壮烈的痛苦折射出人生的伟大–愿意拿自己重要的有限的人生去交换实现梦想的机会,哪怕仅仅是机会。这不等价交换体现了人性,人性中的欲望,恐惧,无畏,矛盾,这些东西交织在一起,没有对与错,好与坏。无畏来自于欲望,欲望又可以滋生贪婪。人性是复杂的,但也是自然界最棒的东西。无数的人性交织在一起,才有了这个社会。

转载:WPF Rending(硬件加速、软件加速)

这里,除了有那个注册表禁用硬件加速的设定,内容还有对RenderCapability.Tier的介绍。既可以如msdn

RenderCapability.Tier >> 16,
也可以如文中的
 RenderCapability.Tier / 0x10000
因为该属性whose high-order word corresponds to the rendering tier for the current thread.
一个word是两个byte,16位,FFFF,所以/0x10000和右移位16位是一样的。为什么微软不定义Tier属性为Int16就完事了呢?
难道是为了扩展性?16位的枚举值也足够将来扩展的。何必让用户移位呢?
另外,这个银光中国是个不错的网站,可以常去看看。

一次用SSIS导入DTS文件的经历

西安的某DBA给了一个用,号作为column delimeter,用”号作为字符串列的text qualifier的数据文件。估计是DTS倒出来的,结果我用SSIS设好了column delimeter和qualifier,并设好哪一列用qualifier哪一列不用后,导入却仍然失败。看数据,发现是如果列中又再含有”号的情况出错。虽然这样的”号已经被用两个”号表示,也即是vb的转义方法。但不知为何SSIS仍然不能识别,按理说只要不是单独的一个”号,就可以仍然识别为字符串内部,这应该是没有岐义的。一时google不出答案,就想到把双引号改成单引号,结果发现这样的数据就可以正常导入了。

于是就开始想用方法实现这个替换,结果一下子花了大半天时间才完成这个导入。。。后面有点赌气的感觉--我就不信替换不掉。。。

最后用了一个vbs+正则表达式解决的。首先是考虑,””,不能替换,因为这可能是一个空串列。但我没考虑””在行首行末的情形--因为我是一行行应用RegExp的,如果对整个文件应用,怕机器吃不消。

中间还写过一个vbs,用纯粹的”转义的逻辑来处理--也就是用一个flag来判断是否在串内部的,顺序处理整个文件,但这个方法太慢,运行了十多分钟放弃。

正则式无非就是[^,]””[^,] 以及””\n和\n””,后面两个还是后来补上的,用editplus做替换也挺方便。而在vbs内如果不是用递归(循环)调用,而是想一次过替换,我就复制到另一个字符串里,然后记下所有的match来对复制品进行替换。这样才能在替换完一个match后matchs数组还有效。其间我还用了(?=)正向预查来确保多个连续”号里的每一个都没有错过。不过后来还是用了递归,因为发现””的第二个”号并不需要专门替换而且替换后字符位置提前了一位。后天上班再把正则式拷贝上来记录一下。这次还是没考虑完全,因为a””,这样的本来应该被替换的结果没替换,好像是用editplus补上的[^,]'”,。 还有,””[^,],还有行首行尾的情况。

总之,如果用regexp要注意的有点多,多亏了editplus支持正则。

vbs写些简单的小程序还是挺方便的,虽然性能对大文件一般。SSIS设置还是比较细的,如果不是不能识别这个文件的格式正确,还是挺完美的工具。还有就是由于collation可以随时方便地改变,SSIS导入文件时就直接用文件的code page好了,修改目标table的collation来匹配SSIS,省得match半天的。