<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qwidget的专栏]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/qwidget</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; qwidget]]></copyright><item><title><![CDATA[用Cpp11新template feature尝试metaprogramming]]></title><link>https://blog.csdn.net/qwidget/article/details/7638353</link><guid>https://blog.csdn.net/qwidget/article/details/7638353</guid><author>qwidget</author><pubDate>Wed, 06 Jun 2012 15:59:51 +0800</pubDate><description><![CDATA[Cplusplus 11 发布大半年了， 基本上浏览了一遍wiki pedia上关于新feature的介绍， 个别feature已经迅速被大家广泛运用了， 剩下的由于编译器的支持问题未敢大肆使用。由于 新标准在core language中就提供了以前要一堆template才能实现的feature以及std lib中把boost的一些container搬字过纸，所以熟悉boost的人可能一看介绍马上]]></description><category></category></item><item><title><![CDATA[tips to include tcmalloc]]></title><link>https://blog.csdn.net/qwidget/article/details/7229832</link><guid>https://blog.csdn.net/qwidget/article/details/7229832</guid><author>qwidget</author><pubDate>Thu, 02 Feb 2012 22:53:41 +0800</pubDate><description><![CDATA[vim /etc/ld.so.conf 

ldconfig -v
-ltcmalloc]]></description><category></category></item><item><title><![CDATA[读完了the practice of programming]]></title><link>https://blog.csdn.net/qwidget/article/details/7061504</link><guid>https://blog.csdn.net/qwidget/article/details/7061504</guid><author>qwidget</author><pubDate>Sun, 11 Dec 2011 17:55:51 +0800</pubDate><description><![CDATA[the practice of programming是第二本读完的英文原版技术书籍，很多内容早已了解，抱着锻炼英语阅读能力和顺便回顾一下一些技术知识的心态读吧，利用下班的空当，不到两个星期读完，发现自己在调试方面的观点跟作者非常相像，都更喜欢深入看代码并且打印信息，最后才是一步一步跟着debugger step through程序，最后关于notation的阐述还算小有得益，好吧，下一本是看雪的]]></description><category></category></item><item><title><![CDATA[日本人的技术书]]></title><link>https://blog.csdn.net/qwidget/article/details/7038381</link><guid>https://blog.csdn.net/qwidget/article/details/7038381</guid><author>qwidget</author><pubDate>Sat, 03 Dec 2011 23:06:23 +0800</pubDate><description><![CDATA[最近看了两本日本人写的技术书籍，大致感受就是严谨加谦虚，第一本是debug hacks，主要讨论linux平台的调试技术，第二本是大规模web服务开发，全面讨论了一下web系统的构建，都不算太深入，但能起启迪作用，我觉得这才是最重要的，说不算太深入是没有像工具使用说明书一样一步一步介绍具体操作和各种陷阱，这真没太大必要，所以我还挺喜欢这种写法的技术书籍。]]></description><category></category></item><item><title><![CDATA[Pattern Hatching讲了什么]]></title><link>https://blog.csdn.net/qwidget/article/details/6960360</link><guid>https://blog.csdn.net/qwidget/article/details/6960360</guid><author>qwidget</author><pubDate>Fri, 11 Nov 2011 16:24:02 +0800</pubDate><description><![CDATA[两三天内读完PatternHatching小册子，有点小幸福。
 
从一个文件系统设计开始讲，使用composite建立树状模型，使用proxy处理连接，访问方式上用了visitor，文件保护上用了template method，多用户保护上用了扩展的singleton，组映射上用了mediator，真有点小壮观，如同all stars game一样让人兴奋。
 
接着作者又八了八sing]]></description><category></category></item><item><title><![CDATA[六大OO设计原则]]></title><link>https://blog.csdn.net/qwidget/article/details/6783549</link><guid>https://blog.csdn.net/qwidget/article/details/6783549</guid><author>qwidget</author><pubDate>Fri, 16 Sep 2011 22:17:17 +0800</pubDate><description><![CDATA[套用各种DP写一个系统，跑起来了，但后来发现真有变化来临的时候想扩展还得大规模改动甚至重写，这就是传说中的DP乱套了，达不到效果反而徒增工作量，内心惭愧，于是细读OO大师的设计信条，才慢慢明晓DP要怎么样实作才能真正达到效果，记下六大原则原文，肃清乱套之风，以作警戒。

Si]]></description><category></category></item><item><title><![CDATA[Gauss-Jordan elimination]]></title><link>https://blog.csdn.net/qwidget/article/details/6769638</link><guid>https://blog.csdn.net/qwidget/article/details/6769638</guid><author>qwidget</author><pubDate>Mon, 12 Sep 2011 20:33:32 +0800</pubDate><description><![CDATA[I suppose you know what Gauss-Jordan elimination is, so the note here was just simply tell you why it can work.


As you know that, if I]]></description><category></category></item><item><title><![CDATA[Ring a Bell : Three Sort Algorithms]]></title><link>https://blog.csdn.net/qwidget/article/details/6736819</link><guid>https://blog.csdn.net/qwidget/article/details/6736819</guid><author>qwidget</author><pubDate>Wed, 31 Aug 2011 18:03:32 +0800</pubDate><description><![CDATA[The detail contents of how to code and how it works just lie in the book written by Simon Harris and James Ross, want to know more? so check]]></description><category></category></item><item><title><![CDATA[性能改造小记]]></title><link>https://blog.csdn.net/qwidget/article/details/6734213</link><guid>https://blog.csdn.net/qwidget/article/details/6734213</guid><author>qwidget</author><pubDate>Tue, 30 Aug 2011 23:54:04 +0800</pubDate><description><![CDATA[一条专用线程负责接受连接，把新接收到的socket通知线程池，线程池派其中一条线程处理该连接，当接收连接数量超过最大线程数时不再接收新连接，直到线程池有成员空闲下来了再次通知专用线程进行接收连接，线程池中的线程皆是处理完业务立即关闭socket，认为是短连接，这里的业务暂时实现为]]></description><category></category></item><item><title><![CDATA[Substitution Failure Is Not An Error]]></title><link>https://blog.csdn.net/qwidget/article/details/6720195</link><guid>https://blog.csdn.net/qwidget/article/details/6720195</guid><author>qwidget</author><pubDate>Thu, 25 Aug 2011 23:43:49 +0800</pubDate><description><![CDATA[SFINAE原则初看是刺激的，写好之后是高效的，写错了就是既折磨编译器又折磨自己的。各种编译器对模板的支持程度又是不一样的，对待代码要有屈机精神，不然就只好向言不由衷的错误信息投降了。

先旨声明，调试这里的代码用vc2008会顺利很多，template就是把编译器的功能发挥]]></description><category></category></item><item><title><![CDATA[模板强化Template Method & Singleton 模式]]></title><link>https://blog.csdn.net/qwidget/article/details/6717855</link><guid>https://blog.csdn.net/qwidget/article/details/6717855</guid><author>qwidget</author><pubDate>Thu, 25 Aug 2011 12:00:38 +0800</pubDate><description><![CDATA[阅读之前期望你已经懂得模板方法模式及单例模式的原理。通俗软件设计模式的表述呈现由GoF先行打响头炮，其后各种版本的模式书籍层出不穷，大多示范实现都是以有多态特性的虚函数作为核心，每一个virtual function call是间接进行的，如此一来性能会有小小的损耗，但可读性良好]]></description><category></category></item><item><title><![CDATA[模板强化RAII]]></title><link>https://blog.csdn.net/qwidget/article/details/6715910</link><guid>https://blog.csdn.net/qwidget/article/details/6715910</guid><author>qwidget</author><pubDate>Wed, 24 Aug 2011 17:59:13 +0800</pubDate><description><![CDATA[RAII的应用在C++这种高危语言中尤其重要，结合模板，效果更爽。
先看应用：
#include "stdafx.h"
using namespace Loki;
void myFree(char* s)
{
 if (s != NULL)
 {
  free(s]]></description><category></category></item><item><title><![CDATA[实现无需OO机制的观察者（性能至上）]]></title><link>https://blog.csdn.net/qwidget/article/details/6706253</link><guid>https://blog.csdn.net/qwidget/article/details/6706253</guid><author>qwidget</author><pubDate>Sun, 21 Aug 2011 15:53:11 +0800</pubDate><description><![CDATA[模式大部分实现利用的是编程语言的继承多态等机制，以面向接口编程优先使用组合等等原则为实作的依归，把系统高内聚低耦合地划分了许多相对独立的类来实现拼装，模式套用多了难免出现很多类及各种子类，但却很大程度从结构上让系统的可维护性增强了，一般来说现在很多公司的OO系统就是这样做出来的。]]></description><category></category></item><item><title><![CDATA[boost:tuple解码]]></title><link>https://blog.csdn.net/qwidget/article/details/6703483</link><guid>https://blog.csdn.net/qwidget/article/details/6703483</guid><author>qwidget</author><pubDate>Sat, 20 Aug 2011 00:37:18 +0800</pubDate><description><![CDATA[tuple想必人人都会用，究之实质，其实就是模板全特化及部分特化的又一种应用而已。简要的实现如下：


 template
 struct Tuple
 {
  Tuple(){}
  Tuple(typename traits::type_traits::const_reference a,
   typename traits::type_traits::const_refer]]></description><category></category></item><item><title><![CDATA[linux app 无 core dump 退出的处理]]></title><link>https://blog.csdn.net/qwidget/article/details/6692503</link><guid>https://blog.csdn.net/qwidget/article/details/6692503</guid><author>qwidget</author><pubDate>Tue, 16 Aug 2011 17:55:10 +0800</pubDate><description><![CDATA[1，首先要淡定。
2，在程序退出之后马上echo $?，获得返回数字R。
3，计算信号码和退出码：
 R & 0x7f = signal_no
 (R & 0xff00) >> 8 = exit_no
4，这时就知道程序何故退出了。
至于我的状况，就是没有处理SIGP]]></description><category></category></item><item><title><![CDATA[Tips to Handle Linux APPs Crack Shit]]></title><link>https://blog.csdn.net/qwidget/article/details/6687952</link><guid>https://blog.csdn.net/qwidget/article/details/6687952</guid><author>qwidget</author><pubDate>Mon, 15 Aug 2011 11:39:05 +0800</pubDate><description><![CDATA[Problem 1: linux应用程序段错误挺常见，得淡定。一般处理手法：
Solution:
1.编译时加入标志-g。
2.设置core文件大小。
 struct rlimit res = { .rlim_cur = RLIM_INFINITY, .rlim_max]]></description><category></category></item><item><title><![CDATA[C++ traits两种用途]]></title><link>https://blog.csdn.net/qwidget/article/details/6687462</link><guid>https://blog.csdn.net/qwidget/article/details/6687462</guid><author>qwidget</author><pubDate>Mon, 15 Aug 2011 09:49:03 +0800</pubDate><description><![CDATA[C++ traits两种用途
1. 利用编译器为自己约束程序行为。
//拒绝使用double的traits，完全特化
template
struct type_restrict
{
 enum{value};
};
template
struct type_re]]></description><category></category></item><item><title><![CDATA[Thread-Specific Storage]]></title><link>https://blog.csdn.net/qwidget/article/details/6646511</link><guid>https://blog.csdn.net/qwidget/article/details/6646511</guid><author>qwidget</author><pubDate>Sat, 30 Jul 2011 13:51:33 +0800</pubDate><description><![CDATA[This article told the last pattern illustrated in POSA2 - Thread Specific Storage, which is such a common mechanism provided by some  operat]]></description><category></category></item><item><title><![CDATA[Leader/Followers]]></title><link>https://blog.csdn.net/qwidget/article/details/6646467</link><guid>https://blog.csdn.net/qwidget/article/details/6646467</guid><author>qwidget</author><pubDate>Sat, 30 Jul 2011 13:06:28 +0800</pubDate><description><![CDATA[This article outlined a global view of the Leader/Followers pattern  in POSA2 as my reading note.
The Leader/Followers architectural patter]]></description><category></category></item><item><title><![CDATA[Half-Sync/Half-Async]]></title><link>https://blog.csdn.net/qwidget/article/details/6646394</link><guid>https://blog.csdn.net/qwidget/article/details/6646394</guid><author>qwidget</author><pubDate>Sat, 30 Jul 2011 12:05:12 +0800</pubDate><description><![CDATA[This article makes a brief introduction of the Half-Sync/Half-Async pattern from POSA2 as my reading note.
The Half-Sync/Half-Async archite]]></description><category></category></item></channel></rss>