Office文件的奥秘——.NET平台下不借助Office实现Word、Powerpoint等文件的解析(1)
在.NET平台下如何不使用Interop方式(即不借助Office软件)读取Office文档的内容,讲述了微软Office文档的存储结构及解析的方式,读取Office文件的文档摘要信息以及文档文本内容。本文为第一篇,介绍了如何解析文档的摘要内容(DocumentSummaryInformation和... ...
Fish Li 该如何帮助您呢?
不知不觉中,来博客园写博已经二年了。经过二年时间的积累,人气提高了许多,或许正因为这个原因,最近一年中经常会收到一些朋友的提问。在所有的提问中,有些问题被多次问过了,还有部分问题是没有结果的。对于一些没有结果的问题,Fish Li也表示遗憾。趁着3月12日这个对于我来说特殊的日子里,我也想谈谈另一个... ...
优化反射性能的总结(下)
在前二篇博客中,我分别介绍了二种优化反射的方法:1. Delegate:委托。2. CodeDOM:动态代码生成。这是二种截然不同的方法,性能的差距也很大。今天的博客将着重比较它们的优缺点,以及给出它们的使用建议。用Delegate优化反射的缺点在评价委托方案时,我认为有必要细分一下委托方案:1. ... ...
网易财经前端开发总结
作为门户网站的前端,有许多说不出的苦楚:有些代码虽然自己也看不下去,但还是不得不硬着头皮把页面给拼上去,比如跟其他频道公用的部分:因为是公用,js、css必须写在该部分,调用的js库(网易的很多频道头部都调用了两个大同小异的js库)等都身不由己。而且作为财经门户来说,页面分多屏是显然的、再者N多异步... ...
优化反射性能的总结(中)
问题回顾在上篇博客中,我介绍了优化反射的第一个步骤:用委托调用代替直接反射调用。然而,那只是反射优化过程的开始,因为新的问题出现了:如何保存大量的委托?如果我们将委托保存在字典集合中,会发现这种设计会浪费较多的执行时间,因为这种设计会引发三个新问题:1. 代码的执行路径变长了。2. 字典查找是有成本... ...
DIY 一套正版、免费、强大的 Visual Studio 2012 IDE
作为开发软件的程序员,应在力所能及的情况下使用正版软件。最近一直在用VisualStudio 2012 Express Desktop/Web 版本开发项目。VisualStudio 2012 Express 是免费的,功能基本上够用,但是还是有很多不足,如: (1)无法安装扩展;这个很致命,比如,... ...
版本管理三国志 (CVS, Subversion, git)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!最近有一则和git有关的新闻很火:12306的抢票插件拖垮了GitHub (GitHub基于git)git是一款版本控制软件(VCS,Version Control System)。V... ...
从jQuery谈库与框架的设计之优劣
jQuery是业内知名的javascript框架,它的实现和设计可以说代表了javascript界最高的水平,本文试从四个方面来以jQuery为例总结库与框架设计的原则和优劣判断。解决问题首先请看一个我实现的框架,我把这个库称为四则运算。function add(a,b) { return a+b;... ...
GIS:揭开你神秘的面纱
GIS从出现到为人所知,只不过经历的短短的几十年时间,尤其是近几年,大有欣欣向荣之势,越来越多的人开始了解GIS。自己和GIS打交道也快10年时间了,所从事的工作也是把“阳春白雪”变成“下里巴人”,让更多的人能理解并使用GIS,但每每向其他行业的人介绍GIS,还真不是三言两语可以讲清楚的事情,于是近... ...
优化反射性能的总结(上)
反射是一种很重要的技术,然而它与直接调用相比性能要慢很多,因此如何优化反射性能也就成为一个不得不面对的问题。目前最常见的优化反射性能的方法就是采用委托:用委托的方式调用需要反射调用的方法(或者属性、字段)。那么如何得到委托呢? 目前最常见也就是二种方法:Emit, ExpressionTree 。其... ...
逆变与协变详解
逆变(contravariant)与协变(covariant)是C#4新增的概念,许多书籍和博客都有讲解,我觉得都没有把它们讲清楚,搞明白了它们,可以更准确地去定义泛型委托和接口,这里我尝试画图详细解析逆变与协变。 变的概念 我们都知道.Net里或者说在OO的世界里,可以安全地把子类的引用赋给父类引... ...
程序员面试什么最重要?
程序员面试一直是社区乐于讨论的热门话题,在有了两年面试别人的经历后,我打算通过文章站在面试官角度对于程序员面试问题的一个阶段性反思和经验总结。 ...
About me [my way]
就要除夕了。假日的到来,心情瞬间就闲适了下来。早早上了床,看看电脑还有30%的电,想到一些事情,顺带纪录一下吧。今年坚持上班到了除夕的前一天,爸妈来工作的城市陪我过年了。感谢他们。前几天就已经看帖子有说仍在上班的人都是屌丝,我今天自嘲一下,说我这种冒雪上班到旧年最后一天的人不是极品屌丝?开个玩笑 :... ...
Python简史
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!Python是我喜欢的语言,简洁,优美,容易使用。前两天,我很激昂的向朋友宣传Python的好处。听过之后,朋友问我:好吧,我承认Python不错,但它为什么叫Python呢?我不是很... ...
有效预防.NET应用程序OOM的经验备忘
根据个人的开发和系统调优经验,大部分的内存溢出(及内存泄漏)都和不好的开发习惯有直接关系,有几个开发经验可以有效预防OOM,总结下贴出来和大家分享。一、批量和分页老生常谈的话题,简单,但是非常实用。每个合格的coder对数据的处理,必须要有分页或批量多次的意识。大数据量的读取或查询结果集是内存占用大... ...
HTTP Live Streaming(HLS)直播技术分析与实现
前些日子,也是项目需要,花了一些时间研究了HTTP Live Streaming(HLS)技术,并实现了一个HLS编码器HLSLiveEncoder,当然,C++写的。其功能是采集摄像头与麦克风,实时进行H.264视频编码和AAC音频编码,并按照HLS的协议规范,生成分段的标准TS文件以及m3u8索... ...
浅谈count(1),count(*)和count(column_name)
最近看到群里有位仁兄,问到关于count(column_name)和count(*),还有count(1)效率和不同点的问题,我记得,在很久之前提到过关于这块的问题,很多人对怎么用这三个统计都模糊不清的,所以,今天抽个空,自己做个实验,测试测试这种情况,我测试的思路是从执行效率上和输出的数据量这两方... ...
协议森林14 逆袭 (CIDR与NAT)
作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁任何形式转载。 IPv4由于最初的设计原因,长度只有32位,所以只提供了大约40亿个地址。这造成了IPv4地址的耗尽危机。随后,IPv6被设计出来,并可以提供足够多的IP地址。但是IPv4与IPv6并不兼容,IPv ...
SQL语句的解析过程
由于最近需要做一些sql query性能提升的研究,因此研究了一下sql语句的解决过程。在园子里看了下,大家写了很多相关的文章,大家的侧重点各有不同。本文是我在看了各种资料后手机总结的,会详细的,一步一步的讲述一个sql语句的各个关键字的解析过程,欢迎大家互相学习。SQL语句的解析顺序简单的说一个.... ...