<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[CPP_CHEN的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/CPP_CHEN</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; CPP_CHEN]]></copyright><item><title><![CDATA[Python Patterns - An Optimization Anecdote]]></title><link>https://blog.youkuaiyun.com/CPP_CHEN/article/details/38637699</link><guid>https://blog.youkuaiyun.com/CPP_CHEN/article/details/38637699</guid><author>CPP_CHEN</author><pubDate>Sun, 17 Aug 2014 11:26:21 +0800</pubDate><description><![CDATA[Python Patterns - An Optimization Anecdote

Python Patterns - An Optimization Anecdote
The other day, a friend asked me a seemingly simple question: what's the best way to convert a list
 of integ]]></description><category></category></item><item><title><![CDATA[Install Oracle 11g R2 in Centos 6 X64]]></title><link>https://blog.youkuaiyun.com/CPP_CHEN/article/details/38080499</link><guid>https://blog.youkuaiyun.com/CPP_CHEN/article/details/38080499</guid><author>CPP_CHEN</author><pubDate>Thu, 24 Jul 2014 10:41:29 +0800</pubDate><description><![CDATA[If the prereuisite 
CV_ASSUME_DISTID=OEL4 to CV_ASSUME_DISTID=OEL6]]></description><category></category></item><item><title><![CDATA[Rich Comparison Methods]]></title><link>https://blog.youkuaiyun.com/CPP_CHEN/article/details/37563681</link><guid>https://blog.youkuaiyun.com/CPP_CHEN/article/details/37563681</guid><author>CPP_CHEN</author><pubDate>Tue, 08 Jul 2014 14:03:58 +0800</pubDate><description><![CDATA[One of the nicest features of the Data Model is the ability to override the behavior of rich
 comparison operators:

import functools

@functools.total_ordering
class Generic(object):
    def __ini]]></description><category></category></item><item><title><![CDATA[Optimizing Linux Memory Management for Low-latency / High-throughput Databases]]></title><link>https://blog.youkuaiyun.com/CPP_CHEN/article/details/37522183</link><guid>https://blog.youkuaiyun.com/CPP_CHEN/article/details/37522183</guid><author>CPP_CHEN</author><pubDate>Mon, 07 Jul 2014 17:27:30 +0800</pubDate><description><![CDATA[Table of Contents

IntroductionSetting
 up the contextReproducing
 and understanding Linux's zone reclaim behaviorNUMA
 memory rebalancing also triggers direct page scansLessons
 learned

Intr]]></description><category></category></item><item><title><![CDATA[The ultimate SO_LINGER page, or: why is my tcp not reliable]]></title><link>https://blog.youkuaiyun.com/CPP_CHEN/article/details/29864509</link><guid>https://blog.youkuaiyun.com/CPP_CHEN/article/details/29864509</guid><author>CPP_CHEN</author><pubDate>Tue, 10 Jun 2014 17:22:19 +0800</pubDate><description><![CDATA[This post is about an obscure corner of TCP network programming, a corner where almost everybody doesn’t quite get what is going on. I used to think I understood it, but found out last week that I did]]></description><category></category></item><item><title><![CDATA[Iterables, Iterators and Generators: Part 2]]></title><link>https://blog.youkuaiyun.com/CPP_CHEN/article/details/29853033</link><guid>https://blog.youkuaiyun.com/CPP_CHEN/article/details/29853033</guid><author>CPP_CHEN</author><pubDate>Tue, 10 Jun 2014 16:13:22 +0800</pubDate><description><![CDATA[This is the second part of the talk I gave January 24, 2013 at the Ottawa Python Authors Group.
Part One introduces Python iterables and iterators and generators. This part covers
 the advanced use ]]></description><category></category></item><item><title><![CDATA[Top 10 Mistakes that Python Programmers Make]]></title><link>https://blog.youkuaiyun.com/CPP_CHEN/article/details/26852223</link><guid>https://blog.youkuaiyun.com/CPP_CHEN/article/details/26852223</guid><author>CPP_CHEN</author><pubDate>Sat, 24 May 2014 17:48:01 +0800</pubDate><description><![CDATA[About Python

Python is
 an interpreted, object-oriented, high-level programming language with dynamic semantics. Its high-level built in data structures, combined with dynamic typing and dynamic b]]></description><category></category></item><item><title><![CDATA[The Light and Dark sides of Python name binding]]></title><link>https://blog.youkuaiyun.com/CPP_CHEN/article/details/26345605</link><guid>https://blog.youkuaiyun.com/CPP_CHEN/article/details/26345605</guid><author>CPP_CHEN</author><pubDate>Tue, 20 May 2014 10:22:15 +0800</pubDate><description><![CDATA[The Light and Dark sides of Python name binding



Posted on 2014-04-04, last modified 2014-04-09.

What does bar.foo do? - An exploration of Python assignment, objects, attributes and descripto]]></description><category></category></item><item><title><![CDATA[Benchmark of Python WSGI Servers]]></title><link>https://blog.youkuaiyun.com/CPP_CHEN/article/details/24851437</link><guid>https://blog.youkuaiyun.com/CPP_CHEN/article/details/24851437</guid><author>CPP_CHEN</author><pubDate>Thu, 01 May 2014 22:48:33 +0800</pubDate><description><![CDATA[Benchmark of Python WSGI Servers
Nicholas Piël |
 March 15, 2010

It has been a while since the Socket Benchmark of Asynchronous server. That benchmark looked specifically at the raw socket perfor]]></description><category></category></item><item><title><![CDATA[Asynchronous Servers in Python]]></title><link>https://blog.youkuaiyun.com/CPP_CHEN/article/details/24851357</link><guid>https://blog.youkuaiyun.com/CPP_CHEN/article/details/24851357</guid><author>CPP_CHEN</author><pubDate>Thu, 01 May 2014 22:44:04 +0800</pubDate><description><![CDATA[Asynchronous Servers in Python
Nicholas Piël |
 December 22, 2009

There has already been written a lot on the C10K problem and it is known that the only viable option
 to handle LOTS of concurre]]></description><category></category></item><item><title><![CDATA[A collection of not-so-obvious Python stuff you should know]]></title><link>https://blog.youkuaiyun.com/CPP_CHEN/article/details/24559615</link><guid>https://blog.youkuaiyun.com/CPP_CHEN/article/details/24559615</guid><author>CPP_CHEN</author><pubDate>Sat, 26 Apr 2014 23:18:16 +0800</pubDate><description><![CDATA[A collection of not-so-obvious Python stuff you should know!










I am really looking forward to your comments and suggestions to improve and
extend this little collection! Just send ]]></description><category></category></item><item><title><![CDATA[openssl CLI]]></title><link>https://blog.youkuaiyun.com/CPP_CHEN/article/details/24193079</link><guid>https://blog.youkuaiyun.com/CPP_CHEN/article/details/24193079</guid><author>CPP_CHEN</author><pubDate>Sun, 20 Apr 2014 20:05:33 +0800</pubDate><description><![CDATA[1) Create a self-signed certificate
2) Check if a certificate is self-signed
openssl x509 -in cert.pem -inform PEM -nou]]></description><category></category></item><item><title><![CDATA[OOP Concepts in Python 2.x - Part 2]]></title><link>https://blog.youkuaiyun.com/CPP_CHEN/article/details/23560821</link><guid>https://blog.youkuaiyun.com/CPP_CHEN/article/details/23560821</guid><author>CPP_CHEN</author><pubDate>Sat, 12 Apr 2014 22:41:41 +0800</pubDate><description><![CDATA[OOP Concepts in Python 2.x - Part 2



Published on: Mar 10th, 2014

Tags: python

Posted by Leonardo
 Giordani

Abstract

This post continues the analysis of the Python OOP implementatio]]></description><category></category></item><item><title><![CDATA[OOP Concepts in Python 2.x - Part 1]]></title><link>https://blog.youkuaiyun.com/CPP_CHEN/article/details/23540659</link><guid>https://blog.youkuaiyun.com/CPP_CHEN/article/details/23540659</guid><author>CPP_CHEN</author><pubDate>Sat, 12 Apr 2014 17:02:16 +0800</pubDate><description><![CDATA[OOP Concepts in Python 2.x - Part 1



Published on: Mar 5th, 2014

Tags: python

Posted by Leonardo
 Giordani

Abstract

Object-oriented programming (OOP) has been the leading programmin]]></description><category></category></item><item><title><![CDATA[Linux I/O Performance Tests using dd]]></title><link>https://blog.youkuaiyun.com/CPP_CHEN/article/details/23204071</link><guid>https://blog.youkuaiyun.com/CPP_CHEN/article/details/23204071</guid><author>CPP_CHEN</author><pubDate>Tue, 08 Apr 2014 20:01:10 +0800</pubDate><description><![CDATA[﻿Under Linux, the dd command can be used for simple I/O performance measurements. This article will provide valuable information about which parameters should be used.






Contents
 [hide] ]]></description><category></category></item><item><title><![CDATA[Default Parameter Values in Python]]></title><link>https://blog.youkuaiyun.com/CPP_CHEN/article/details/21891983</link><guid>https://blog.youkuaiyun.com/CPP_CHEN/article/details/21891983</guid><author>CPP_CHEN</author><pubDate>Sun, 23 Mar 2014 22:53:06 +0800</pubDate><description><![CDATA[Default Parameter Values in Python


Fredrik Lundh | July 17, 2008 | based on a comp.lang.python post

(It happened to me in one of the first Python programs I ever wrote, and it took several yea]]></description><category></category></item><item><title><![CDATA[Playing with ptrace, Part I]]></title><link>https://blog.youkuaiyun.com/CPP_CHEN/article/details/20950375</link><guid>https://blog.youkuaiyun.com/CPP_CHEN/article/details/20950375</guid><author>CPP_CHEN</author><pubDate>Mon, 10 Mar 2014 20:59:26 +0800</pubDate><description><![CDATA[Using ptrace allows you to set up system call interception and modification at the user level.




Have you ever wondered how system calls can be intercepted? Have you ever tried fooling the kern]]></description><category></category></item><item><title><![CDATA[CherryPy architecture]]></title><link>https://blog.youkuaiyun.com/CPP_CHEN/article/details/19708633</link><guid>https://blog.youkuaiyun.com/CPP_CHEN/article/details/19708633</guid><author>CPP_CHEN</author><pubDate>Sat, 22 Feb 2014 22:31:35 +0800</pubDate><description><![CDATA[High Level Framework



Application Level Framework]]></description><category></category></item><item><title><![CDATA[Python debuggers]]></title><link>https://blog.youkuaiyun.com/CPP_CHEN/article/details/19499825</link><guid>https://blog.youkuaiyun.com/CPP_CHEN/article/details/19499825</guid><author>CPP_CHEN</author><pubDate>Wed, 19 Feb 2014 20:00:23 +0800</pubDate><description><![CDATA[1) pdb
2) Winpdb
3) pydev
4) gdb python extention

References:
https://code.google.com/p/winpdb/wiki/DebuggingTutorial
http://stackoverflow.com/questions/132058/showing-the-stack-trace-from-a-r]]></description><category></category></item><item><title><![CDATA[volatile in C++]]></title><link>https://blog.youkuaiyun.com/CPP_CHEN/article/details/19134593</link><guid>https://blog.youkuaiyun.com/CPP_CHEN/article/details/19134593</guid><author>CPP_CHEN</author><pubDate>Thu, 13 Feb 2014 10:03:13 +0800</pubDate><description><![CDATA[1) "volatile" has nothing to do with multiprocessing. So it is not atomic.
2) In a single threaded env, "volatile int vi = 0", vi = 1; int read_back = vi; assert (read_back == 1); the assertion may f]]></description><category></category></item></channel></rss>