存档

‘其他随笔’ 分类的存档

Java/Js如何使用正则表达式匹配嵌套Html标签

2010年7月30日

以前写过一篇文章讲解如何使用正则表达式完美解决Html嵌套标签的匹配问题(使用正则表达式匹配嵌套Html标签),但是里头用到了平衡组这样的高级特性,貌似只有DotNet还有Perl正则引擎支持,因此通用性不高。有朋友留言说Java直接使用的话会报错。我后来查了一下,发现Java正则引擎支持的特性相对比较少。在1.6版本中不能使用命名组(貌似1.7的时候开始支持了),否则会报以下错误,更别说平衡组了。因此感觉要实现无限级的嵌套匹配不大现实…

Kevin Yang 其他随笔 , , , , ,

Hilo: Windows 7下C++应用程序开发实战演练

2010年7月21日

"Hilo"由一系列文章以及示例代码组成的,它向你展示了如何释放Windows 7、Visual Studio 2010还有Visual C++的强大力量,来构建高性能,高响应的富客户端程序。Hilo提供了源代码以及编写指导,帮助你设计和开发令人瞩目的触摸式Windows应用程序。

在接下来的几周时间里,我们将会在MSDN上发布一系列文…

Kevin Yang 其他随笔 , , ,

Sql Tips——Update语句也使用表别名(Table Alias)

2010年7月2日

在编写Sql脚本时通过表别名可以大大缩减Sql代码,同时表别名也是解决同表多次引用的手段之一。在select中使用表别名大家应该都很熟悉了:

select * from TableA as A inner join TableB as B on A.Key1 = B.Key1

但是在Update中使用表别名可能就没那么多人知道了。

update T
set T.Key1 = 'xxxx'
from TableA T

这些天在写Sql Update脚本的时候需要引用两次同个表对象,如果直接像…

Kevin Yang BI/数据库, 其他随笔 , , , ,

关于字符编码,你所需要知道的

2010年6月18日

字符编码的问题看似很小,经常被技术人员忽视,但是很容易导致一些莫名其妙的问题。这里总结了一下字符编码的一些普及性的知识,希望对大家有所帮助。

还是得从ASCII码说起

说到字符编码,不得不说ASCII码的简史。计算机一开始发明的时候是用来解决数字计算的问题,后来人们发现,计算机还可以做更多的事,例如文本处理。但由于计算机只识“数”,因此人们必须告诉计算机哪个数字来代表哪个特定字符,例如65代表字母‘A’,66代表字母‘B’,以此类推。但是计…

Kevin Yang 其他随笔 , , , , , , , , , ,

Win7/Vista高级用户必备的右键菜单Take back my Ownership!

2009年12月6日

从Vista开始,Windows的权限控制就更为严格了,微软还很自豪地引入了UAC的功能。但结果却是让更多人讨厌这个系统(相信很多人都像我一样为了图省事直接把UAC关了)。Win7在权限控制上相比Vista稍微松了一点,但还是经常会出现很脑残的行为。

我曾经在整理电脑上的文件的时候,想删除某个软件的安装目录,但是却弹出一个窗口,提示我“此操作需要提供管理员权限”。但是窗口上只有一个“重试”和“取消”的按钮,你点重试吧,他会提示你一样的问题…

Kevin Yang 其他随笔 , , , , ,

Google Wave为什么这么火

2009年11月14日

Google Wave是Google目前力推的一个产品,老在很多地方看到有关Wave的介绍,无奈Wave采用的是和当年Gmail一样的邀请策略,除非有人邀请你,否则你通过注册申请的方式,需要等待很长一段时间才能生效。国庆的时候很幸运的我的申请很快就被批准了,还获得了20个邀请名额,开始投身Wave试用大军。

之前看Google IO大会上对Wave铺天盖地的介绍,觉得Google这次推的概念确实很不错。

如果电子邮件不是在30年前发明的,而是今…

Kevin Yang 其他随笔, 生活网事 , , , , , ,

慎用类型强制转换

2009年11月12日

类型转换是我们写代码经常需要打交道的事情,C#中类型转换有两种常见的形式:

(BaseClass)obj

obj as BaseClass

同时,Convert类也提供了很多常用类型的转换接口。

我接下来要说的是第一种转换形式。

当使用第一种转换形式的时候,要求obj是null,或者是一个BaseClass类或其派生类实例。否则转换会抛出异常(使用后一种形式则返回null)。这倒好理解,但是对于简单类型,就比较容易出错了。

object obj = 2;
do…

Kevin Yang 其他随笔 ,

C#中Readonly和const的区别

2009年11月12日

这个问题其实很常识。写代码的时候突然想到的,作此备忘。

const和readonly这两个关键字都是用来表示常量,只不过标记为Readonly的变量可以在构造函数中动态赋值,const需要在变量声明的时候就初始化;如果将这两种常量放到单独的动态链接库中,然后编译整个项目,则应用程序对于readonly变量,是每次都从动态链接库中读取最新的常量值,而对于const变量是在编译的时候就写死到应用程序代码中了(我不知道这是不是编译器优化行为,反…

Kevin Yang 其他随笔 , , , ,

DotNet中未退订事件引起的内存泄露问题

2009年11月12日

今天在InfoQ上看到一篇文章处理.NET中的内存泄露,里头提到说DotNet内存泄露的几种常见情况,

  • 使用静态引用
  • 未退订的事件-作者认为这是最常见的内存泄漏原因
  • 未退订的静态事件
  • 未调用Dispose方法
  • 使用不彻底的Dispose方法
  • 在Windows Forms中对BindingSource的误用
  • 未在WorkItem/CAB上调用Remove

当时对于第二点,“未退订事件”引起的内存泄露不是很理解。后来仔细分析了一下,又参考了MSDN上关于事件…

Kevin Yang 其他随笔 , , , ,

解决Wordpress自动将半角替换成全角的问题

2009年10月27日

今天在看自己写的Url编解码文章的时候,发现原本半角的字符全变成全角字符了。还以为是我笔误,在编辑面板中查看的时候,发现确实是半角字符。上网搜了一下,发现wordpress是会自动将半角字符自动输出为全角字符,不知道是出于什么原因。无怪乎以前逛别人博客的时候发现别人贴的代码总是带有全角字符,很不舒服,原来是这么回事。

网上倒是有插件Quotmarks Replacer可以解决这个问题,但是不想再整那么多插件了,麻烦。有人提供了更简单的办法,…

Kevin Yang 其他随笔 ,