Fork me on GitHub
program/tech + commercialization = software

英语

出国常用单词和句型
摘要: 出国常用的单词和句型,包括问路,驾车,宾馆,机场等语境阅读全文

posted @ 2008-01-23 22:03 Mainz 阅读(705) | 评论 (1)  编辑

英语介词用法
摘要: 英语介词用法概述阅读全文

posted @ 2008-01-23 21:31 Mainz 阅读(4931) | 评论 (1)  编辑

英语语法手边书
摘要: 英语语法快速浏览阅读全文

posted @ 2008-01-23 21:22 Mainz 阅读(1026) | 评论 (1)  编辑

Exception Handling Best Practices in .NET
摘要: Contrary to common belief, creating reliable, robust software is not something near to impossible. Notice that I'm not referring to bug-free software, intended to control nuclear power plants. I'm referring to common business software, which can run unattended on a server, or even a desktop machine, for long periods of time (weeks or months) and work predictably without any significant glitch. By predictably, I mean that it has a low failure rate, you can easily understand failure conditions to 阅读全文

posted @ 2008-01-20 17:18 Mainz 阅读(270) | 评论 (1)  编辑

The Art of Maintenance Programming
摘要: I have seen and read numerous books and articles that cover new development, including design and architecture, coding, and project planning and management. Not so for humble and overlooked maintenance programming. Maintenance is often mentioned in studies on software life cycle, but actual design and coding techniques are usually taught with active development in mind, rather than maintenance.In this article, I present some practices that I found useful in my work; this is by no means an attemp阅读全文

posted @ 2008-01-20 16:27 Mainz 阅读(119) | 评论 (1)  编辑

项目沟通常用英语单词和词组
该文被密码保护。

posted @ 2008-01-01 20:58 Mainz 阅读(70) | 评论 (0)  编辑

架构与设计模式

领域驱动设计(DDD)在微软平台的设计架构实现
摘要: 领域驱动设计(DDD)在微软平台上的N层架构,看图(点击看大图): 源码下载请点击此处。阅读全文

posted @ 2011-11-10 16:39 Mainz 阅读(412) | 评论 (0) 编辑

UseCase用例怎么画_UML用例UseCase的几个理解误区
摘要: UseCase用例是什么?看一下官方定义:用例定义了一组用例示例,其中每个示例都是系统所执行的一系列操作。看个UML的用例图: 其他的内容大家都可以网上去找资料,关于use case的内容,我这里只想...阅读全文

posted @ 2011-05-10 11:09 Mainz 阅读(751) | 评论 (0) 编辑

[zt]Quora的用到的一些技术
摘要: 很多团队都在学习、研究 Quora 。前段时间看到这篇 Quora's Technology Examined ,阐述了 Quora 的技术架构,有一些值得关注的信息,记录并分享一下。使用云计算服务Quora 大量使用 Amazon EC2 与 S3 服务;操作系统部署的是 Ubuntu Linux,易于部署和管理;静态内容用 Cloudfront.服务分发,图片先传到 EC2 服务器,使用 Pyhon S3 API 处理后后传到 S3。从开始就使用云计算服务的的好处是节省了大量人工维护硬件服务器的成本,当然这个做法在咱这片土地上不太可行。Web 层与 CMS HAProxy 作为前端阅读全文

posted @ 2011-04-19 16:53 Mainz 阅读(280) | 评论 (0) 编辑

架构设计心得体会
摘要: 架构师不是那么好当的,架构设计首先最重要的一点是搞清楚需求,深刻理解业务,做业务和技术的桥梁,因为架构设计的最终目的是满足需求,为客户所用。我有以下一些心得:简单,不过度设计:架构设计需要设计模式,用成熟的设计模式来解决架构问题,但不要滥用而导致过度设计。 重视缓存,消息队列:架构设计当中要给以缓存足够的重视,而异步消息队列系统对分布式系统提高系统吞吐能力非常重要。框架的选择:选择成熟的很多人使用...阅读全文

posted @ 2010-09-11 11:48 Mainz 阅读(943) | 评论 (7) 编辑

Fixing Twitter - 提高世界上最流行的微博客系统性能和可扩展性(转)
摘要: Twitter 的运维专家 John Adams 在 Velocity 2009 上做了一篇题为 Fixing Twitter 的技术分享(点击下载pdf文件《Fixing Twitter》 ),人家也是一直在努力阿。John Adams 在 2008 年七月加入的 Twitter ,对于 Twitter 的站点稳定的确做了不少工作。看完这个接近 50 页的 PDF ,除了满足我们一小部分技术窥探...阅读全文

posted @ 2009-10-31 21:54 Mainz 阅读(1341) | 评论 (0) 编辑

可伸缩性最佳实践(翻译)
摘要: 这篇文章中总结了一些构建可伸缩性系统的最佳实践,总结的不错,于是翻译了下,原文在此:http://akfpartners.com/techblog/2009/08/11/scalability-best-practices/,翻译内容如下:下面是我们认为的一些可伸缩性的最佳实践: 异步;尽可能的使用异步,同步调用会导致两个服务的可用性绑在一起,意味着一个服务出问题或变慢,另一个也会受到影响,这点也...阅读全文

posted @ 2009-10-31 12:07 Mainz 阅读(1004) | 评论 (0) 编辑

开心农场的架构
摘要: Social Game的技术挑战View more presentations from Robbin Fan.或许您对以下文章有兴趣: Fixing Twitter - 提高世界上最流行的微博客系统性能和可扩展性 DAL - 手机之家的数据访问层实践 与冯大辉谈数据库架构(InfoQ) 大型网站系统架构分析 CTO谈豆瓣网和校内网技术架构变迁 程序员办网站创业,几个问题你想好了吗? SQLSer...阅读全文

posted @ 2009-10-31 11:56 Mainz 阅读(3166) | 评论 (0) 编辑

与冯大辉谈数据库架构(InfoQ)
摘要: 冯大辉,是支付宝网络中国科技有限公司的DBA。现在主要是负责支付宝相关的数据库架构的工作,在工作之余,我也比较关注Web2.0的一些发展情况,会在BLOG上写一些架构相关的文章,和大家分享,BLOG的...阅读全文

posted @ 2009-10-31 11:47 Mainz 阅读(1805) | 评论 (0) 编辑

DAL - 手机之家的数据访问层实践
摘要: 手机之家的数据访问层实践View more presentations from xcq.或许您对以下文章有兴趣: 开心农场的架构 Fixing Twitter - 提高世界上最流行的微博客系统性能和可扩展性 CTO谈豆瓣网和校内网技术架构变迁 大型网站系统架构分析 与冯大辉谈数据库架构(InfoQ) 程序员办网站创业,几个问题你想好了吗? SQLServer索引调优实践 SQLServer索引调...阅读全文

posted @ 2009-10-31 11:30 Mainz 阅读(1011) | 评论 (0) 编辑

CTO谈豆瓣网和校内网技术架构变迁
摘要: 豆瓣网CTO洪强宁讲述网站架构变迁 罗马不是一天建成的,豆瓣的技术架构也是随着用户规模的增长一直在持续变化中。洪强宁,2002年毕业于清华大学,现任北京豆瓣互动科技有限公司首席架构师。洪强宁和他带领...阅读全文

posted @ 2009-06-28 18:24 Mainz 阅读(9420) | 评论 (4) 编辑

中小型网站的缓存策略
摘要: 大型网站往往使用Squid前端缓存服务器群,memcache分布式缓存,负载均衡,CDN等来提升性能。但中小型网站使用这些大家伙就有杀鸡用牛刀的感觉,但毋庸置疑,缓存是需要的,开发者开发程序的时候若没有并发思维,一味注重业务逻辑,往往导致并发用户可能在差不多相同的时间请求相同的数据,网站再请求数据库,如果使用缓存,对这种相同的请求,或者不变的数据,可以缓存起来,直接从内存读取,可以大大提升并发访问的性能,减少数据库访问次数。阅读全文

posted @ 2009-05-05 13:32 Mainz 阅读(1880) | 评论 (2) 编辑

大型网站系统架构分析
摘要: 千万级的注册用户,千万级的帖子,nTB级的附件,还有巨大的日访问量,大型网站采用什么系统架构保证性能和稳定性?本文从服务器操作系统与Web服务器、数据库、服务器集群与负载均衡、缓存、独立的图片服务器、其它等几个方面来分析大型网站的系统架构 ... ...阅读全文

posted @ 2009-04-28 14:36 Mainz 阅读(22049) | 评论 (10) 编辑

说说企业架构(企业级架构)和应用程序架构
摘要: 企业架构与应用程序架构之间关系的常见比喻是把企业比作城市规划,把应用程序比作建筑结构。城市规划者必须考虑获得水、电、污水和其他服务才能使城市运转。一栋大楼使用的自来水不能多于提供给它的配额。企业架构需要为应用程序考虑同样的事情:您不可以允许一个应用程序使用所有网络带宽,而如果基础设施服务崩溃,就会出现大量问题。阅读全文

posted @ 2009-03-31 20:56 Mainz 阅读(2385) | 评论 (0) 编辑

可扩展性(Extensibility): 构建灵活系统的思考
摘要: 从我理解,在软件范畴上,是软件系统本身的属性,或者进一步说是设计的属性,代码的属性。因为我们经常说设计的可扩展性,代码的可扩展性。那与之相对应的是什么呢?是变化,软件环境的变化(可能是业务环境,运行环境)导致软件要进行改动才能满足人们对它的要求,这种系统本身适应变化的能力就是可扩展性。 阅读全文

posted @ 2009-02-28 13:17 Mainz 阅读(950) | 评论 (0) 编辑

Singleton模式与多线程
摘要: Singleton模式在多线程环境下是否线程安全?本文实现了线程安全的单件模式。阅读全文

posted @ 2008-07-29 17:55 Mainz 阅读(737) | 评论 (0) 编辑

谈谈设计不足(under-engineering)与过度设计(over-engineering)
摘要:

什么是设计不足?设计出来的系统复用性差,扩展性不强,不能灵活的应对变化,简言之,设计没到位。设计不足,多半是因为经验有限,设计能力有限。什么是过度设计?设计出来的系统比恰到好处要复杂臃肿的多,过度的封装、一堆继承、接口和无用的方法,超复杂的xml配置文件,简言之,客户需求是要一把杀鸡的刀,你给设计了一把牛刀(杀鸡用牛刀)。中国的架构师,缺乏的不仅仅是经验、技术、创意、设计能力,也许最缺乏的是思想和心境的沉淀。

阅读全文

posted @ 2008-07-06 22:09 Mainz 阅读(2396) | 评论 (3) 编辑

数据库系统内部架构 (Architecture Of Database System)
摘要: 大学时候有一门课叫做《数据库系统概论》,里面有些数据库系统的理论。比如关系数据库RDBMS,外模式,内模式,关系代数,SQL基础,视图,GRANT,数据字典等等。但到底数据库系统内部如何实现的?看过Oracle和DB2的白皮书都只是讲一些逻辑分层等等抽象的架构图,没有对系统内部进行详细介绍。这儿是一篇最近找到的系统讲述数据库内部架构和实现的论文,由研究生和微软的人共同撰写。 阅读全文

posted @ 2008-06-26 10:05 Mainz 阅读(348) | 评论 (0) 编辑

XUL: 快速开发跨平台富客户端的新途径
摘要:

桌面应用程序的UI构建有没有突破常规的方法?能否结合web的优点?例如使用XML、XSLT、CSS来描述UI,用JavaScript来响应事件。XUL使运用 Web 开发技能构建桌面应用程序变得容易。使用 XUL,可以直接与 HTML 混合使用并可大量使用 JavaScript和CSS。更可贵的是,它是一种跨平台的轻量级的基于 XML 的用户接口语言。

阅读全文

posted @ 2008-05-01 13:13 Mainz 阅读(1352) | 评论 (0) 编辑

用户界面设计的技巧与技术(By Scott W.Ambler)
摘要: 对于应用软件来说,一个基本现实就是:用户界面是面向用户的。用户需要的是开发者开发的应用软件满足其需求,并且易于使用。太多的开发者自以为是艺术天 才,他们不去尽力遵循用户界面设计标准,或花精力使得产品好用;相反,他们错误地认为编写更灵巧的代码或是使用一套确实有趣的颜色方案才是重要的事。 Constantine指出,好的用户界面使得人们不用阅读用户手册或接受培训就能使用应用软件。阅读全文

posted @ 2008-04-05 21:27 Mainz 阅读(509) | 评论 (1) 编辑

也谈系统设计的一些原则
摘要: 
在进行系统设计时,不仅要考虑软件的功能性需求,还要考虑非功能性需求,比如软件的性能(Performance)、可扩展性(Scalability),系统的稳定性(Reliability)、部署(Deployment)和更新(Upgrade),可维护性(Maintainability),版本的管理,系统的安全(Security),界面的友好程度可用性(Usability, User experience)等。要想覆盖所有需求,实现一个简单而优秀的系统,可谓艰难。文章讨论了系统设计的一些原则:“大道至简,合适最好”,“稳定压倒一切”,针对可扩展性,灵活性,高性能,可用性,用户友好性,以及可维护性,可管理性的设计阅读全文

posted @ 2008-01-13 18:37 Mainz 阅读(4978) | 评论 (4) 编辑

架构设计之性能设计经验
摘要: 
性能(performance)设计非常重要,对于服务器端实时交易系统来说系统性能的重要性不言而喻,对客户端软件来说性能好的软件也会获得良好的用户体验,从而给用户留下高质量软件的良好印象。因此在进行架构设计中性能设计非常重要。本文总结了一些性能设计的经验。阅读全文

posted @ 2007-12-15 17:08 Mainz 阅读(8528) | 评论 (8) 编辑

状态模式和策略模式的比较
摘要: 状态模式(state pattern)和策略模式(strategy pattern)的实现方法非常类似,都是利用多态把一些操作分配到一组相关的简单的类中,因此很多人认为这两种模式实际上是相同的。但实际上他们的应用思想和场合不同,只是实现方式上有类似之处。本文比较了状态模式和策略模式的主要不同。阅读全文

posted @ 2007-12-15 17:04 Mainz 阅读(2028) | 评论 (2) 编辑

C#

使用Task.Wait和Cancel解决Remoting超时Timeout问题
摘要: 在Remoting客户端用TcpChannel链接服务端的时候,如果地址不存在会尝试连接到超时Timeout大概21秒左右,例如连接到"tcp://192.192.192.192:8080/Serve...阅读全文

posted @ 2012-03-21 22:03 Mainz 阅读(304) | 评论 (0) 编辑

ASP.NET调用多Endpoint多Contract的WCF Service
摘要: 本文主要讲述ASP.NET调用多Endpoint多Contract的WCF Service,包括以下实现: ASP.NET调用WCF Service WCF Service Libra...阅读全文

posted @ 2012-03-20 21:48 Mainz 阅读(297) | 评论 (0) 编辑

基于ASP.NET MVC3 Razor的模块化/插件式架构实现
摘要: 本文主要探讨了一种基于ASP.NET MVC3 Razor的模块化(Plugin)/插件(plugin)式架构的实现方法。本文借鉴了《Compile your asp.net mvc Razor vi...阅读全文

posted @ 2012-03-06 21:36 Mainz 阅读(3050) | 评论 (24) 编辑

ASP.NET MVC3中用内置的MEF实现IoC
摘要: 本文讲述关于用Managed Extensibility Framework (MEF) 的方法来实现IoC和Asp.net的集成。很多人不知道,这个MEF貌似是个大框架,其实已经内置在.NET Framework 4.0里面了,只需要添加引用System.ComponentModel.Composition即可。MEF在Microsoft的人看来不是一个IoC/DI的工具,而是一个提供轻量级的、可扩展的、类似插件式的系统架构的、且无需配置的(Attribute Based)框架。虽然微软的人极力否认MEF是一个IoC/DI的工具,但事实是它的确可以实现Ioc/DI。而且相对于Spring.n阅读全文

posted @ 2012-02-10 17:50 Mainz 阅读(2180) | 评论 (17) 编辑

私有静态方法private static method-值得用吗?
摘要: 用Resharper的同学都知道,如果你写了一个私有函数,这个函数没有访问类里面的其他参数和方法,那么它建议你标记这个方法为私有静态方法,提示是这样的: 值得这样做吗?看看微软的建议: ...阅读全文

posted @ 2011-12-14 12:06 Mainz 阅读(301) | 评论 (0) 编辑

今天代码Review发现的C#闭包问题,请做题
摘要: 今天给同事的代码做了一个CodeReview,发现了一些潜在的问题/bug,有很多是基于C#的语法糖很炫而又不理解其深层含义导致。下面就举个例子,是关于C#的闭包的,新手很容易犯,你看看下面的程序,能...阅读全文

posted @ 2011-11-02 12:04 Mainz 阅读(2266) | 评论 (34) 编辑

MEF的ImportingConstructor的异常处理
摘要: 在MEF的Import中,有属性导入和构造器导入两种方式,前者类似: 1: [Import] 2: public IMessageSender MessageSen...阅读全文

posted @ 2011-10-17 10:48 Mainz 阅读(376) | 评论 (0) 编辑

用并发队列(ConcurrentQueue)实现多线程任务中随时异步回调进度通知(.Net4.0)
摘要: 本文讲述实现抽象出来的异步通知回调进度通知,用在多层组件中,支持一组task的任意进度回调通知。本文中用到几个.NET 4.0的新方法和TPL方法:Tuple,ConcurrentQueue,Sema...阅读全文

posted @ 2011-10-13 10:56 Mainz 阅读(700) | 评论 (4) 编辑

VisualStudioVS2010统计代码行数(免安装插件)
摘要: 按CTRL+SHIFT+F (Find in files),勾上支持正则表达式,然后输入搜索内容: ^:b*[^:b#/]+.*$#开头和/开头或者空行都不计入代码量。如果需要只统计代码文件的代码量...阅读全文

posted @ 2011-09-28 12:17 Mainz 阅读(1168) | 评论 (0) 编辑

[.NET]Event handler没有注销就会内存泄露吗?
摘要: 我们经常会写EventHandler += AFunction; 如果没有手动注销这个Event handler类似:EventHandler –= AFunction 会内存泄露吗?会! 这个Eve...阅读全文

posted @ 2011-09-10 14:20 Mainz 阅读(377) | 评论 (0) 编辑

C#的Dictionary值排序和SortedDictionary键排序
摘要: 对一个Dictionary<TKey, TValue>进行键排序可以直接用SortedDictionary, SortedDictionary<TKey, TValue> 泛型类是检索运算复杂度为 O(log n) 的二叉搜索树,其中 n 是字典中的元素数。 就这一点而言,它与 SortedList<TKey, TValue> 泛型类相似。 这两个类具有相似的对象模型,并且都具有 O(log n) 的检索运算复杂度。这两个类的区别在于内存的使用以及插入和移除元素的速度:SortedList<TKey, TValue> 使用的内存比 SortedD阅读全文

posted @ 2011-06-29 10:25 Mainz 阅读(2329) | 评论 (1) 编辑

WeakPropertyChangedListener用弱引用事件订阅防止内存泄露
摘要: GC对象回收机制一个对象会不会被回收,主要看垃圾回收器引用遍历的时候能不能访问到这个引用,如果访问不到,则将被回收,如果能够访问到,则不能回收。也就是说GC回收前GC会确定对象没有任何引用。GC对“无用”对象的识别机制就是判断对象是否被“根(Root)”所引用。在这里,“根”是对一组当前正被使用,或者以后可能被使用的对象的统称,大体包括这样的对象:类型的静态字段或当前的方法参数和局部变量、CPU寄存器等。如何确定对象已经被释放而没有内存泄露使用ANTS Memory Profiler(Redgate)这个工具,把程序运行起来,打开一个Form,然后拍一张快照;关闭那个Form,再拍一张快照,两阅读全文

posted @ 2011-06-25 15:25 Mainz 阅读(300) | 评论 (0) 编辑

Failed to access IIS metabase(IIS Exception Problem)
摘要: Failed to access IIS metabase. Description:An unhandled exception occurred during the execution of the current webrequest. Please review the stack trace for more information about the error andwhere it originated in the code. Exception Details:System.Web.Hosting.HostingEnvironmentException: Failed t阅读全文

posted @ 2011-05-18 09:40 Mainz 阅读(514) | 评论 (0) 编辑

[Silverlight入门系列]Silverlight卡片翻转动画效果/x轴Y轴Z轴旋转
摘要: 使用silverlight的PlaneProjection 类很容易创建对象透视效果和类似三维效果。这个类在System.Windows.Media类库中。使用该类可以使得对象沿着x轴,y轴,z轴和任...阅读全文

posted @ 2011-04-27 11:54 Mainz 阅读(850) | 评论 (1) 编辑

动态设置和修改Membership/Profile/RoleProvider的ConnectionString数据库连接字符串
摘要: 一般使用Membership的人都知道,其ConnectionString数据库连接字符串是在web.config/app.config里面设置的,例如:<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="15"> <providers> <clear /> <add name="SqlProvider" type="System.Web.Security.SqlMembershipProvider&qu阅读全文

posted @ 2011-04-14 16:12 Mainz 阅读(353) | 评论 (0) 编辑

LINQ使用细节之.AsEnumerable()和.ToList()的区别
摘要: 先看看下面的代码,用了 .AsEnumerable():1 var query = (from a in db.Table2 where a = SomeCondition3 select a.SomeNumber).AsEnumerable();4 5 int recordCount = query.Count();6 int totalSomeNumber = query.Sum();7 decimal average = query.Average();运行起来发现执行了3次而不是1次,查询了3次数据库可不是什么好事情。如果把第一行换成.ToList()那就是只查询一次数据库。.AsEn阅读全文

posted @ 2011-04-08 15:04 Mainz 阅读(1753) | 评论 (3) 编辑

初识LINQ中的Expression表达式树
摘要: 在上文中给C#菜鸟们介绍了《C#的delegate/event/Action/Func/Predicate关键字》和《C#4.0的dynamic和var及object关键字辨析》,今天继续说一下LIN...阅读全文

posted @ 2011-03-11 16:40 Mainz 阅读(615) | 评论 (0) 编辑

C#的delegate/event/Action/Func/Predicate关键字
摘要: 在上一篇《C#4.0的dynamic和var及object关键字辨析》中温习了.net 4.0的dynamic关键字,今天看看C#的delegate/event/Action/Func/Predica...阅读全文

posted @ 2011-03-11 12:53 Mainz 阅读(1302) | 评论 (4) 编辑

C#4.0的dynamic和var及object关键字辨析
摘要: 看看代码: 1: dynamic a = 10; 2: a = a + 10; 3: Console.WriteLine(a.GetType());此段代码会输出 System.Int32,第二行不需...阅读全文

posted @ 2011-03-10 18:01 Mainz 阅读(655) | 评论 (2) 编辑

protobuf/json/xml/binary/Thrift数据交换
摘要: 一条消息数据,用protobuf序列化后的大小是json的10分之一,xml格式的20分之一,是二进制序列化的10分之一,总体看来ProtoBuf的优势还是很明显的protobuf是google提供的一个开源序列化框架,类似于XML,JSON这样的数据表示语言,详情访问protobuf的google官方网站protobuf在google中是一个比较核心的基础库,作为分布式运算涉及到大量的不同业务消息的传递,如何高效简洁的表示、操作这些业务消息在google这样的大规模应用中是至关重要的。而protobuf这样的库正好是在效率、数据大小、易用性之间取得了很好的平衡。protobuf简单总结如下几阅读全文

posted @ 2011-03-07 10:58 Mainz 阅读(1716) | 评论 (0) 编辑

生产中遇到的IIS启用GZip的深层问题
摘要: 上线的系统想启用GZip压缩,在IIS中配置还是很顺利的,如何配置的话文章很多,搜一下“IIS6 GZip”就行了,比如《这篇》。但是遇到几个小问题:1. 用于GZip压缩的临时文件目录要给予权限,IUSR_MachineName或everyone的写权限2. 启用以后重启IIS,访问网站可以看到GZip后的文件会在临时文件夹出现,用Firebug的“Network网络”开启,或者Fiddler工具可以看到启用了GZip, deflate3. 如果你的网站使用了CDN,要联系你的CDN厂商,那边的配置是否支持了GZip,否则的话,IIS要做服务端和客户端的匹配,如果IIS不确定客户端是否支持G阅读全文

posted @ 2011-03-07 10:18 Mainz 阅读(251) | 评论 (0) 编辑

LINQ.Contains超过2100记录报异常Exception的问题
摘要: 今天遇到一个LINQ的异常:传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。此 RPC 请求中提供了过多的参数。最多应为 2100。代码是:Table<MyEntity> tbl = dataContext.GetTable<MyEntity>();tbl.where(t => AnotherList.Contains(t.EntityID)).select(....)报错的地方就是.Contains函数,当AnotherList的元素个数超过2100,LINQ的.Contains最大支持2100,超过就会报这个异常。这句LINQ背后的SQL语句阅读全文

posted @ 2011-03-04 17:49 Mainz 阅读(688) | 评论 (3) 编辑

读取xml包含问号的错误:Data at the root level is invalid
摘要: 使用XmlDocument的LoadXml方法加载xml字符串的时候,出现Data at the root level is invalid的错误。原来是读取的xml开头有三个问号。原来是因为写入xml的时候没有制定编码,没有写这个:<?xml version="1.0" encoding="utf-8"?>所以编码问题导致了xml中出现乱码解决方法:1. 写入的时候上面那个头要存在2. 读取的时候实在没有办法就过滤掉开头的<root>之前的乱码,System.Text.RegularExpressions.Regex.Replace(xmlString, "^[^<]+", "")阅读全文

posted @ 2011-01-18 16:19 Mainz 阅读(619) | 评论 (0) 编辑

搜索提示的实现(仿百度):附源码和在线demo
摘要: 智能搜索提示的功能大家都用过,百度搜索的时候一边输入一边会有搜索提示,这样的jQuery做的ajax智能搜索提示很方便,我也决定在我的个人网站上实现一下。不过我比百度更加提升一步,那就是不仅仅出搜索提示,而是结果不多的直接出搜索结果,当用户鼠标点击或键盘上下键选择以后回车自动到结果页面而不是搜索结果页面。出来的效果类似下图:而且还有一个功能,那就是支持空格和第二列重叠搜索,例如以上的示意图,我如果输入“IBM大连”,或者“大连IBM” ,或者“大连 IBM”照样能找到我需要的结果,更加智能,效果见下图:在线demo地址:请点击此处的google链接,点击第一个结果即可打开。功能实现思路:首先服阅读全文

posted @ 2010-12-24 23:13 Mainz 阅读(1215) | 评论 (11) 编辑

Aptana深色主题(编辑js,css,html)
摘要: Aptana编辑器用来编辑js,css和html还不错,这个深色主题可以下载。效果截图: css: 导入到Aptana的方法: 打开菜单window – Preferences - 搜索colors...阅读全文

posted @ 2010-12-06 16:57 Mainz 阅读(581) | 评论 (0) 编辑

使用Spring.NET统一ASP.NET异常处理并记录日志
摘要: Spring.NET是Spring Framework移植到.NET平台上的一个框架,与其他.NET框架比较:不仅仅是个DI容器——虽然Spring.NET常被拿来与其他的DI容器如Castle等进行比较,但准确地说,Spring.NET是个应用框架,因为它具有丰富的API,可以用在整个应用中,如数据访问、Web开发和集成测试等等。ASP.NET框架——Spring.NET ASP.NET框架并不是基于ASP.NET MVC的,它最大的好处是提升了生产率:新用户在探索DI和Spring.NET时常常会寻求某个ASP.NET框架。面向消息的中间件集成——与Apache ActiveMQ、TIBC阅读全文

posted @ 2010-12-06 11:53 Mainz 阅读(633) | 评论 (0) 编辑

新浪微博OAuth第三方登录C#源代码下载
摘要: 整合了使用新浪微博账号登录第三方网站的服务,也就是说:当你来到一个新的网站的时候,无需注册,使用新浪微博的账户即可登录。这种连接微博的服务是微博开放平台提供给第三方网站的一种服务。这种服务包括身份认证、用户关系以及内容传播。连接微博允许访问第三方网站的用户通过微博账号进行登录,分享内容,同步信息。通过使用连接微博的服务,第三方网站不仅能够降低用户注册门槛,也能够让用户更快的与微博上的关注者分享网站内容,从而提升网站的访问量、网站信息的进一步传播与分享。具体效果是:1. 在网站登录页面附近放置“连接微博”按钮,显示“用新浪微博账号登录”2. 用户点击后跳转到微博授权页面,输入新浪微博用户名和密码阅读全文

posted @ 2010-12-01 17:54 Mainz 阅读(7277) | 评论 (84) 编辑

静态方法(Static)到底该不该用?
摘要: 最近在review同事代码的时候发现一个问题,很多类里边穿插了一些静态方法,而且情况很普遍,调用的时候有的需要实例化,有些不需要实例化直接调用。我问他为什么要用那么多静态方法,他说“使用方便,不需要实例化,而且这些静态方法不需要保存状态,不需要调用外界变量,应该是线程安全的”。后来我们一起研究讨论了一下静态方法的使用问题,结论如下: 1. 静态方法不需要实例化,使用方便2....阅读全文

posted @ 2010-12-01 11:00 Mainz 阅读(592) | 评论 (2) 编辑

Remoting在多IP多网卡内外网环境下的问题
摘要: Remoting服务器端如果服务器有多块网卡,多个IP地址的情况下会出现客户端callback失败的问题,debug以后发现客户端会callback到服务器端另外一个IP地址(例如外网地址,而不是内网地址)。大家知道一般情况下Remoting服务器端的配置方式如下:[代码]或者用代码的方式:[代码]该问题有几种解决方案:1. 将Channel绑定到机器名(使用“machineName&...阅读全文

posted @ 2010-05-06 12:58 Mainz 阅读(584) | 评论 (5) 编辑

谈谈windows+IIS+.NET与Linux+Apache(Nginx)+Java之争
摘要: 最近做了几个项目,一个是Linux+Apache+PHP+MySQL的,一个是Window+IIS+Asp.net+SQLServer的,说句实话,自从IIS的那个网站上线之日起,就是噩梦的开始,在网站流量持续攀升的情况下,IIS和SQLServer的问题非常突出;当然小流量的没有问题,面对大流量的公网用户,Window+IIS+Asp.net+SQLServer问题实在太多, 不停的调整设置,打...阅读全文

posted @ 2010-04-26 16:49 Mainz 阅读(764) | 评论 (1) 编辑

自动给URL地址加上超链接
摘要: 用户发表帖子或回复,一般网站都有一个超链接的按钮,其实可以后台自动判断并自动给URL地址加上超链接(当然,名字只能是url地址)。例如用户输入“看我的博客:http://www.cnblogs.com...阅读全文

posted @ 2009-12-14 10:56 Mainz 阅读(303) | 评论 (0) 编辑

使用Office组件读取Excel,引用Microsoft.Office.Interop.Excel出现的问题
摘要: 操作背景:asp.net操作Excel 出现问题:在本地添加引用(com):Microsoft Office 11.0 Object Library,并写好程序调试正常,部署到服务器时,出现异常 E...阅读全文

posted @ 2009-11-11 16:49 Mainz 阅读(4221) | 评论 (3) 编辑

ASP.NET服务器控件刷新后仍旧保持滚动位置
摘要: 例如常见的服务器控件Repeater+分页控件实现重复性列表很好用,但如果这些控件放置在页面尾部,点击分页的“下一页”页面PostBack后将回到顶部,而不是原来的滚动条位置,很讨厌。如果要让页面自动...阅读全文

posted @ 2009-08-21 17:47 Mainz 阅读(247) | 评论 (0) 编辑

显示ASP.NET页面装载进度
摘要: ASP.NET的web应用越做越大,即便用了AJAX也是要装载很多JS或者外部框架,导致大型应用启动装载很慢。这儿演示了一个类似Splasher的显示ASP.NET页面装载进度的方法。只要继承LoadingNotifier,调用几个JS方法即可。阅读全文

posted @ 2009-03-24 15:17 Mainz 阅读(583) | 评论 (4) 编辑

实用正则表达式匹配和替换
摘要: 正则表达式非常有用,查找、匹配、处理字符串、替换和转换字符串,输入输出等。而且各种语言都支持,例如.NET正则库,JDK正则包, Perl, JavaScript等各种脚本语言都支持正则表达式。下面整理一些常用的正则表达式 ...阅读全文

posted @ 2009-03-14 12:54 Mainz 阅读(3998) | 评论 (1) 编辑

IList(T)转换DataSet
摘要: IList转换成DataSet阅读全文

posted @ 2009-01-04 11:17 Mainz 阅读(312) | 评论 (0) 编辑

读取SQLServer数据库存储过程列表及参数信息
摘要: C#读取数据库存储过程列表: select * from dbo.sysobjects where OBJECTPROPERTY(id, N'IsProcedure') = 1 order by name...阅读全文

posted @ 2008-11-23 16:52 Mainz 阅读(2904) | 评论 (8) 编辑

Windows系统单个进程最多线程数2000个?
摘要: 在Windows下写个程序,一个进程Fork出2000个左右线程就会异常退出了,为什么? 这个问题的产生是因为windows32位系统,一个进程所能使用的最大虚拟内存为2G,而一个线程的默认线程栈StackSize为1024K(1M),这样当线程数量逼近2000时,2000*1024K=2G(大约),内存资源就相当于耗尽。 阅读全文

posted @ 2008-09-23 20:35 Mainz 阅读(1826) | 评论 (0) 编辑

无缩进的XML字符串的处理

posted @ 2008-05-02 13:20 Mainz 阅读(213) | 评论 (0) 编辑

Tail -f
摘要: 用C#写了一个Tail -f 类似的小工具,用法说明:1. 编辑runTail.bat文件,修改路径和需要跟踪的文件路径和名称 2. 运行runTail.bat 
阅读全文

posted @ 2008-04-30 12:59 Mainz 阅读(111) | 评论 (0) 编辑

Array.Sort和快速排序
摘要: 最近测试了一个自己写的快速排序,和System.Array.Sort做了个性能对比,发现System.Array.Sort比自己写的排序算法要快很多,拿20W和1000W随机数来测试效率相差40%左右。微软MSDN上对System.Array.Sort的说明:“Array 中的每个元素均必须实现 IComparable 接口,才能与 array 中的其他所有元素进行比较。 如果排序不能成功地完成,则结果未定义。此方法使用 QuickSort 算法。此实现执行不稳定排序;亦即,如果两元素相等,则其顺序可能不被保留。相反,稳定排序保留相等元素的顺序。 一般情况下,此方法的运算复杂度为 O(n log n),其中 n 是 array 的 Length;最坏的情况下其运算复杂度为 O(n ^ 2)。” 阅读全文

posted @ 2008-04-22 13:06 Mainz 阅读(2081) | 评论 (10) 编辑

反序列化的性能(Deserialization Performance)
摘要: 反序列化xml配置文件到一个实体类,和直接读取xml到实体类相比,效率对比相当大,我简单测试了一下,各自占用的时间: 反序列化需要的时间是直接读取xml的几十倍。由此可见,反序列化的性能很差,占用时间非常大。在简洁代码的背后是效率的代价。应该根据需要按需选择。尤其是在系统启动的时候尽量避免Deserialization。最后分析了使用XSD装载XML,并反序列化到实体类的例子。阅读全文

posted @ 2008-04-16 11:24 Mainz 阅读(823) | 评论 (0) 编辑

[转]关于多线程并发:每个开发人员都应了解的内容
摘要: 现在多处理器计算机正在普及,很快,非多线程程序将处于劣势,因为它们无法利用可用计算资源中很大的一部分。 不幸的是,编写正确的多线程程序并不容易。这主要是因为程序员们还没有习惯“其他线程可能正在改变不属于它们下面的内存”这种思维方式。更糟糕的是,出现错误时,程序在绝大多数时候会继续运行下去。只有在有压力(正式运行)条件下,Bug 才会显示出来;发生故障时,极少有足够的信息可供有效地调试应用程序。本文讨论多线程和共享内存线程模型,争用及并发访问如何能够打破不变量,作为争用标准解决方案的锁定,何时需要锁定,如何使用锁定;理解开销,锁定如何能够各行其道。阅读全文

posted @ 2008-04-13 21:11 Mainz 阅读(1423) | 评论 (0) 编辑

记录log中的16进制和ASCII码字符输出
摘要: 写通信程序常常需要把发出和收到的包记录到log文件,而最常用的记录方式就是16进制和ASCII码左右对照的方式阅读全文

posted @ 2008-04-11 12:32 Mainz 阅读(489) | 评论 (0) 编辑

string和byte[]的转换 (C#)
摘要: C#中string类型转成byte[],byte[]转成string,string类型转成ASCII byte[],ASCII byte[] 转成string,byte[] 转成原16进制格式的string,16进制格式的string 转成byte[]阅读全文

posted @ 2008-04-09 10:40 Mainz 阅读(36621) | 评论 (8) 编辑

C#集合类(HashTable, Dictionary, ArrayList)与HashTable线程安全
摘要: HashTable中的key/value均为object类型,由包含集合元素的存储桶组成。存储桶是 HashTable中各元素的虚拟子组,与大多数集合中进行的搜索和检索相比,存储桶可令搜索和检索更为便捷。每一存储桶都与一个哈希代码关联,该哈希代码是使用哈希函数生成的并基于该元素的键。HashTable的优点就在于其索引的方式,速度非常快。如果以任意类型键值访问其中元素会快于其他集合,特别是当数据量特别大的时候,效率差别尤其大。阅读全文

posted @ 2008-04-06 13:50 Mainz 阅读(4543) | 评论 (2) 编辑

AppDomain以及如何改变web.config / App.config位置
摘要: AppDomain (应用程序域) 是.NET框架独有的概念。找不到其他技术体系中贴切的参照概念,是微软自己的东西。AppDomain,它是一个应用程序在其中执行的独立环境,为执行托管代码提供隔离、卸载和安全边界。本文还讨论了如何创建和卸载应用程序域,哪些情况下需要使用应用程序域,如何改变应用程序域的属性,以及如何改变web.config / App.config位置。阅读全文

posted @ 2008-04-03 10:47 Mainz 阅读(1446) | 评论 (1) 编辑

职场

[转]高薪是怎么跳出来的?
摘要: 一、配合猎头的流程,有章法的跳;二、再谈谈面试中应该注意的问题(仅限猎头推荐的);做猎头有5年了,每天至少看10份CV打几十个沟通电话; 感受颇多,亲眼目睹了有些候选人抓住了人生机遇一路飘红待遇翻番;有些候选人却因为一些很小的细节问题或心态错失机会原地踏步甚至王小二过年...阅读全文

posted @ 2008-03-09 14:02 Mainz 阅读(173) | 评论 (1)  编辑

[转]微软最需要三种人
摘要: 微软一直致力于发现和吸引业界的精英人才,在公司成立的早期,比尔·盖茨和史蒂夫·鲍尔默亲自参与所有新员工招聘,他们的用人哲学,招聘理念,面试智慧到现在都代代相传。基于这种态度,在微软多年来一直把招聘人才视为公司一大成功基柱。阅读全文

posted @ 2008-03-08 10:23 Mainz 阅读(178) | 评论 (1)  编辑

[转]微软面试技术题
摘要: 微软面试喜欢即写 C语言代码。特别有关链表,数组,字符串操作等。1 反转一个链表。循环算法。2 反转一个链表。递归算法。 3 判断一个链表是否有循环。4 广度优先遍历二叉树。5 输出一个字符串所有排列。注意有重复字符。 6 在一个链表中删除另一个链表中的元素。7 一个数组,下标从0到n,元素为从0到n的整数。判断其中是否有重复元素。8 两个链表,一升一降。合并为一个升序链表。9 在双向链表中删除指定元素。阅读全文

posted @ 2008-03-06 20:57 Mainz 阅读(474) | 评论 (1)  编辑

[转]Google台湾工程研究所所长:开发人员如何培养自己
摘要: Google台湾工程研究所所长简立峰建议台湾开发人员要培养国际化能力、源源不绝的创造力,以及具备说服优秀人才的领导力。阅读全文

posted @ 2008-02-02 18:42 Mainz 阅读(81) | 评论 (1)  编辑

[转]一些箴言
摘要: 为什么要成功比怎样成功更重要!!!行善与行孝——这是人生的两件不能等待的事情。世界上没有笨人,笨人都是骂出来的。所以一个赞美鼓励的家庭很重要。如何管理好人才?识才,留才,养才,用才。阅读全文

posted @ 2008-01-26 13:16 Mainz 阅读(62) | 评论 (1)  编辑

[转]为何你永远会是穷人?给职场白领们.
摘要: 如果你是小富即安的白领,请看看这篇文章。IT农民愈来愈多,为什么? 因为愈是大公司愈需要农民! 他们不需要你做高技术含量的活, 他们要的是你做重复劳动类的工作。全球商会BossLink.com已经是全球最大的免费的B2B平台,而员工不到10人,那么这个队伍就不会成为IT农民,因为有很大的空间发挥。百度前段时间发生过员工被辞退事件,根源在于这位被辞退员工手里有价值几百万的百度期权。阅读全文

posted @ 2008-01-26 13:11 Mainz 阅读(110) | 评论 (1)  编辑

[转]十个杠杆撬起领导力
摘要: 每位领导者所面临的问题的中心,都存在着一个可以加以利用的杠杆,即某种措施、某种战术或某种状况。如果领导者能够对之加以善用,那么他就能改变他的世界,而不是被其吓倒。那你呢,你有哪些杠杆可以加以利用呢?知识,勇气,还是可以信赖的合作伙伴?你的立足点是否牢固?你是否已经准备好改变世界,并且用杠杆撬起这个世界呢?有了合适的杠杆,你不仅可以撬起你的世界,还可以撬起他人的世界。个人行为将会带来强大且出人意料的涟漪效应,从而对为数众多的其他人产生影响。阅读全文

posted @ 2008-01-04 09:54 Mainz 阅读(51) | 评论 (1)  编辑

[转]35岁前成功的12条黄金法则
摘要: 一个目标, 两个成功基点, 三大技巧, 四项安身立命的理念, 五分运气, 六项要求 

阅读全文

posted @ 2008-01-01 20:16 Mainz 阅读(79) | 评论 (1)  编辑

(转)面试攻略
摘要: 包含很多英语面试常见问题的回答,面试英语词汇,面试中常见问题的回答,面试经验,以及一些公司的企业价值和高层简历参考等,微软面试者以及HR谈如何准备面试等详细资料。阅读全文

posted @ 2007-12-25 11:51 Mainz 阅读(1578) | 评论 (1)  编辑

[收藏]中国惠普前总裁孙振耀谈人生
摘要: 一、关于工作与生活 二、根源 三、普通人 四、跳槽与积累 五、等待 六、入对行跟对人 七 选择 八 选择职业阅读全文

posted @ 2007-12-25 11:09 Mainz 阅读(136) | 评论 (1)  编辑

posted on 2012-07-27 10:01  HackerVirus  阅读(225)  评论(0编辑  收藏  举报