<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>optman的专栏</title><link>http://blog.csdn.net/optman/</link><description /><dc:language>zh-CN</dc:language><lastUpdateTime>Fri, 24 Oct 2008 11:04:00 GMT</lastUpdateTime><ttl>60</ttl><item><dc:creator>黄海全</dc:creator><title>Thoughts on being a Solution Architect</title><link>http://blog.csdn.net/optman/archive/2008/10/24/3135555.aspx</link><pubDate>Fri, 24 Oct 2008 11:01:00 GMT</pubDate><guid>http://blog.csdn.net/optman/archive/2008/10/24/3135555.aspx</guid><wfw:comment>http://blog.csdn.net/optman/comments/3135555.aspx</wfw:comment><comments>http://blog.csdn.net/optman/archive/2008/10/24/3135555.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/optman/comments/commentRss/3135555.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3135555</trackback:ping><description>Solution
Architect都要做些什么呢？作者的想法跟我前面的经验比较吻合。比如，提出一个方案之前应该先确保可行，可以是先做一些原型或者技术贮备。在需求
还没有确定之前，尽量避免让开发人员加入讨论，以减少干扰。架构师应该先想好，如何把新需求纳入现有系统中。设计文档虽然也有重要，但是更好的是跟开发人
员面对面的交流，比如使用白板。经常也要写一些代码，至少要对熟悉产品的代码，这样才不至于脱离现实。开发人员遇到问题时，要参与讨论，这样就可以了解开
发中遇到的实际问题，并做好准备如何进行改进。开发人员在技术上一般都很专业，但是对全局的不是很了解。这时候，架构师就可以高瞻远瞩进行协调，提取公共
模块等，以帮助开发人员更好的配合，减少工作量。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;http://blogs.msdn.com/tomholl/archive/2008/04/29/thoughts-on-being-a-solution-architect.aspx&lt;br /&gt;&lt;img src ="http://blog.csdn.net/optman/aggbug/3135555.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>黄海全</dc:creator><title>软件开发需要常识</title><link>http://blog.csdn.net/optman/archive/2008/10/16/3087310.aspx</link><pubDate>Thu, 16 Oct 2008 21:19:00 GMT</pubDate><guid>http://blog.csdn.net/optman/archive/2008/10/16/3087310.aspx</guid><wfw:comment>http://blog.csdn.net/optman/comments/3087310.aspx</wfw:comment><comments>http://blog.csdn.net/optman/archive/2008/10/16/3087310.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/optman/comments/commentRss/3087310.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3087310</trackback:ping><description>生活中，我们也需要按照常识和惯例去做事，个人各司其职，才能有条不紊。&lt;img src ="http://blog.csdn.net/optman/aggbug/3087310.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>黄海全</dc:creator><title>WPF的几个关键点</title><link>http://blog.csdn.net/optman/archive/2008/10/15/3082237.aspx</link><pubDate>Wed, 15 Oct 2008 23:52:00 GMT</pubDate><guid>http://blog.csdn.net/optman/archive/2008/10/15/3082237.aspx</guid><wfw:comment>http://blog.csdn.net/optman/comments/3082237.aspx</wfw:comment><comments>http://blog.csdn.net/optman/archive/2008/10/15/3082237.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/optman/comments/commentRss/3082237.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3082237</trackback:ping><description>WPF很好很强大，它是如何做到的？ &lt;img src ="http://blog.csdn.net/optman/aggbug/3082237.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>黄海全</dc:creator><title>XAML的几个关键概念</title><link>http://blog.csdn.net/optman/archive/2008/10/14/3075331.aspx</link><pubDate>Tue, 14 Oct 2008 17:54:00 GMT</pubDate><guid>http://blog.csdn.net/optman/archive/2008/10/14/3075331.aspx</guid><wfw:comment>http://blog.csdn.net/optman/comments/3075331.aspx</wfw:comment><comments>http://blog.csdn.net/optman/archive/2008/10/14/3075331.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/optman/comments/commentRss/3075331.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3075331</trackback:ping><description>XAML有很强的表达能力，它是如何做到的？&lt;img src ="http://blog.csdn.net/optman/aggbug/3075331.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>黄海全</dc:creator><title>《Windows Presentation Foundation Unleashed》(书评)</title><link>http://blog.csdn.net/optman/archive/2008/10/12/3059490.aspx</link><pubDate>Sun, 12 Oct 2008 00:09:00 GMT</pubDate><guid>http://blog.csdn.net/optman/archive/2008/10/12/3059490.aspx</guid><wfw:comment>http://blog.csdn.net/optman/comments/3059490.aspx</wfw:comment><comments>http://blog.csdn.net/optman/archive/2008/10/12/3059490.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/optman/comments/commentRss/3059490.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3059490</trackback:ping><description>了解了WPF之后，你会对Declarative Programming有比较深入的认识。而WPF在实现思路上，也有很多值得借鉴和玩味的地方。即便没有机会去用，学习一下能够开阔思路也是值得的。&lt;img src ="http://blog.csdn.net/optman/aggbug/3059490.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>黄海全</dc:creator><title>Project Management Truisms</title><link>http://blog.csdn.net/optman/archive/2008/10/05/3017972.aspx</link><pubDate>Sun, 05 Oct 2008 17:32:00 GMT</pubDate><guid>http://blog.csdn.net/optman/archive/2008/10/05/3017972.aspx</guid><wfw:comment>http://blog.csdn.net/optman/comments/3017972.aspx</wfw:comment><comments>http://blog.csdn.net/optman/archive/2008/10/05/3017972.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/optman/comments/commentRss/3017972.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3017972</trackback:ping><description> 原文链接：http://www.mariosalexandrou.com/blog/?p=67&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;挺有意思的，于是加了一些自己的点评。&lt;br /&gt;&lt;br /&gt;Nothing is impossible for the person who doesn't have to do it.&lt;br /&gt;&lt;br /&gt;不记得有多少次，我总是对很多事情想当然，前提是不是我做。但是一旦是要我做的话，就会有很多抗拒的理由了。所以，站着说话不腰疼就是这个意思。&lt;br /&gt;&lt;br /&gt;You can con a sucker into committing to an impossible deadline, but you cannot con him into meeting it.&lt;br /&gt;&lt;br /&gt;你可以通过各种方式骗一个人答应你完成某事，但是你并不能保证他就一定能够兑现。所以，任何的承诺，都应该是在双方充分了解的情况下，经过理智思考&lt;img src ="http://blog.csdn.net/optman/aggbug/3017972.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>optman</dc:creator><title>《Release It! Design and Deploy Production-Ready Software》</title><link>http://blog.csdn.net/optman/archive/2008/06/06/2517367.aspx</link><pubDate>Fri, 06 Jun 2008 16:29:00 GMT</pubDate><guid>http://blog.csdn.net/optman/archive/2008/06/06/2517367.aspx</guid><wfw:comment>http://blog.csdn.net/optman/comments/2517367.aspx</wfw:comment><comments>http://blog.csdn.net/optman/archive/2008/06/06/2517367.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/optman/comments/commentRss/2517367.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2517367</trackback:ping><description>所有功能开发完成，并通过QA测试，就一切大功告成了--我们一直存在这样的认识误区。其实，从软件产品正式发布交付给用户使用的那一天起，挑战才刚刚开始，路还很长。&lt;img src ="http://blog.csdn.net/optman/aggbug/2517367.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>optman</dc:creator><title>try/catch的实现原理</title><link>http://blog.csdn.net/optman/archive/2008/06/03/2508323.aspx</link><pubDate>Tue, 03 Jun 2008 17:39:00 GMT</pubDate><guid>http://blog.csdn.net/optman/archive/2008/06/03/2508323.aspx</guid><wfw:comment>http://blog.csdn.net/optman/comments/2508323.aspx</wfw:comment><comments>http://blog.csdn.net/optman/archive/2008/06/03/2508323.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/optman/comments/commentRss/2508323.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2508323</trackback:ping><description>明白了几个道理， 1. VC++的try/catch是基于Win32的SEH实现的。 2. try/catch只能捕捉当前线程的异常，每个线程都有自己的异常处理入口。 3. 异常处理入口是由OS负责调用的，在异常发生时。 4. 为了使用SEH，VC++编译器自动生成了很多的代码。   MSDN上关于SEH的经典文章A Crash Course on the Depths of Win32™ Structured Exception Handling   CodeProject上的模拟实现How a C++ compiler implements exception handling   CLR的实现 The Exception Model&lt;img src ="http://blog.csdn.net/optman/aggbug/2508323.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>optman</dc:creator><title>危险的线程</title><link>http://blog.csdn.net/optman/archive/2008/05/29/2493361.aspx</link><pubDate>Thu, 29 May 2008 14:45:00 GMT</pubDate><guid>http://blog.csdn.net/optman/archive/2008/05/29/2493361.aspx</guid><wfw:comment>http://blog.csdn.net/optman/comments/2493361.aspx</wfw:comment><comments>http://blog.csdn.net/optman/archive/2008/05/29/2493361.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/optman/comments/commentRss/2493361.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2493361</trackback:ping><description>多核时代，我们需要更多的使用多线程。但是，目前的多线程编程模型，却是陷阱多多......&lt;img src ="http://blog.csdn.net/optman/aggbug/2493361.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>optman</dc:creator><title>std::set的insert会把新元素放在什么位置？</title><link>http://blog.csdn.net/optman/archive/2008/05/28/2491189.aspx</link><pubDate>Wed, 28 May 2008 17:41:00 GMT</pubDate><guid>http://blog.csdn.net/optman/archive/2008/05/28/2491189.aspx</guid><wfw:comment>http://blog.csdn.net/optman/comments/2491189.aspx</wfw:comment><comments>http://blog.csdn.net/optman/archive/2008/05/28/2491189.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/optman/comments/commentRss/2491189.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2491189</trackback:ping><description>我其实是希望放在第一个，这样我就可以用begin来访问到该新元素--正在在做一个连接池，希望把刚用完的连接放到最前面，这样就可以经常用到，而不常用的就逐渐废弃断掉了。从代码的实际运行情况来看，就是我所希望的模式，但是否偶然现象？   于是找到了这篇帖子，原来std::set内部并不是以数组来保存元素的，而是用树。这样的话，所谓的前后并没有什么意义！这个早就应该想到的！STL集合就是通过枚举器(iterator)来封装内部的存贮空间和算法的，只要用begin,next就可以遍历所有元素而不用管其内部的存贮位置。当然了std::set还是有一个固定“存贮位置”的，也就是说在其它元素没有变化的情况下，把位于begin位置的元素取出来(erase)，再放回去(insert)，还是会处于begin的位置的--这里说的是枚举的顺序。   如此看来，我前面的做法是没有错的。不过，这多半是因为运气好。因为，从insert这个函数名称上就没有任何保证说一定会放到begin位置。而且，很有可能换用了别的集合类型，比如把set改成list，就达不到前面的预期的效果了。所以，这段代码存在隐&lt;img src ="http://blog.csdn.net/optman/aggbug/2491189.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>optman</dc:creator><title>COM套间模型的相关文章</title><link>http://blog.csdn.net/optman/archive/2008/05/20/2462913.aspx</link><pubDate>Tue, 20 May 2008 16:48:00 GMT</pubDate><guid>http://blog.csdn.net/optman/archive/2008/05/20/2462913.aspx</guid><wfw:comment>http://blog.csdn.net/optman/comments/2462913.aspx</wfw:comment><comments>http://blog.csdn.net/optman/archive/2008/05/20/2462913.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/optman/comments/commentRss/2462913.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2462913</trackback:ping><description>关于COM套间模型，一开始你可以不关心，但是总有一天你会碰上......   COM和套间(Apartments) 1 - 基本知识 简洁明了的中文介绍   OLE 线程模型的说明和工作方式 微软的技术文章，太详尽了。   Understanding and Using COM Threading Models MSDN的文章，1998年。   difference between STA and MTA 普通程序员的认识   A Simple Example To Explain COM STA, MTA, and Auto-threaded Modules Geek的观点，用代码说话。 &lt;img src ="http://blog.csdn.net/optman/aggbug/2462913.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>optman</dc:creator><title>微软产品内部协议大公开</title><link>http://blog.csdn.net/optman/archive/2008/04/15/2295461.aspx</link><pubDate>Tue, 15 Apr 2008 23:34:00 GMT</pubDate><guid>http://blog.csdn.net/optman/archive/2008/04/15/2295461.aspx</guid><wfw:comment>http://blog.csdn.net/optman/comments/2295461.aspx</wfw:comment><comments>http://blog.csdn.net/optman/archive/2008/04/15/2295461.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/optman/comments/commentRss/2295461.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2295461</trackback:ping><description>有时候，历史也是一种包袱，就像Windows越来越臃肿一样。所以，与其自己扛着，还不如干脆放出来让大家一起扛，这样就可以解脱了，轻装上阵奔向新的目标。就像Windows 98/2000，虽然微软不愿意提供技术支持了，但总有人会愿意的。怕就怕在，包袱甩出来了没人接，还得自己扛着，呵呵。&lt;img src ="http://blog.csdn.net/optman/aggbug/2295461.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>optman</dc:creator><title>诡异的TLB文件</title><link>http://blog.csdn.net/optman/archive/2008/04/10/2279362.aspx</link><pubDate>Thu, 10 Apr 2008 19:45:00 GMT</pubDate><guid>http://blog.csdn.net/optman/archive/2008/04/10/2279362.aspx</guid><wfw:comment>http://blog.csdn.net/optman/comments/2279362.aspx</wfw:comment><comments>http://blog.csdn.net/optman/archive/2008/04/10/2279362.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/optman/comments/commentRss/2279362.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2279362</trackback:ping><description>COM组件IDL文件里大写的属性名称在生成的TLB文件里，竟然变成了小写！问题还不止这么简单，因为有时候变成小写，有时候又变成了大写！调用程序因此反复要修改，这不是折磨人嘛！   在Google Groups里搜索了一下，原来这是因为TLB里，所有的字符串存贮在一张表里，不管大小写，而且也不管是属性名还是参数名。第一个碰到的，就存贮到表里，并且保存大小写，以后同样的字符串（不分大小写）均以第一个为准......也不知道谁定的规矩。   在我的代码里，因为有些参数名跟属性名是相同的，而且参数名习惯以小写开头，属性名习惯以大写开头.......   知道了原因，修改起来也就很简单了，索性把所有的参数都改成大写的。   原帖： Interace property's case changed when viewed/used in tlb and c++ c&lt;img src ="http://blog.csdn.net/optman/aggbug/2279362.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>optman</dc:creator><title>如何等待进程树结束</title><link>http://blog.csdn.net/optman/archive/2008/04/02/2244049.aspx</link><pubDate>Wed, 02 Apr 2008 11:41:00 GMT</pubDate><guid>http://blog.csdn.net/optman/archive/2008/04/02/2244049.aspx</guid><wfw:comment>http://blog.csdn.net/optman/comments/2244049.aspx</wfw:comment><comments>http://blog.csdn.net/optman/archive/2008/04/02/2244049.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/optman/comments/commentRss/2244049.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2244049</trackback:ping><description>我们通常使用的WaitForSingleObject只能等待一个进程结束，如果进程中间又发起了另外一个进程，我们如何知道那个进程结束？&lt;img src ="http://blog.csdn.net/optman/aggbug/2244049.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>optman</dc:creator><title>Amdahl's law</title><link>http://blog.csdn.net/optman/archive/2008/03/29/2228816.aspx</link><pubDate>Sat, 29 Mar 2008 17:32:00 GMT</pubDate><guid>http://blog.csdn.net/optman/archive/2008/03/29/2228816.aspx</guid><wfw:comment>http://blog.csdn.net/optman/comments/2228816.aspx</wfw:comment><comments>http://blog.csdn.net/optman/archive/2008/03/29/2228816.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/optman/comments/commentRss/2228816.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2228816</trackback:ping><description>其大意是，如果一个占整个任务比重为P的组件的运行效率为原来S倍，那么当S-&gt;∞的时候，效率的最大提升也不过是1/(1-P)。&lt;img src ="http://blog.csdn.net/optman/aggbug/2228816.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>