<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[macchan的专栏]]></title><description><![CDATA[简简单单，热爱技术。]]></description><link>https://blog.youkuaiyun.com/macchan</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; macchan]]></copyright><item><title><![CDATA[C++ Cheat Sheet (keep updating ...)]]></title><link>https://blog.youkuaiyun.com/macchan/article/details/78941192</link><guid>https://blog.youkuaiyun.com/macchan/article/details/78941192</guid><author>macchan</author><pubDate>Sun, 31 Dec 2017 11:50:13 +0800</pubDate><description><![CDATA[有一阵子没有关注C++了，随着年纪增长记忆力下降，感觉需要一个小抄记录些C++的知识可以随时查阅，碰到什么值得记录知识点就记录在这里，时不时更新下这个文档。]]></description><category></category></item><item><title><![CDATA[Epoll的一些事情]]></title><link>https://blog.youkuaiyun.com/macchan/article/details/78941179</link><guid>https://blog.youkuaiyun.com/macchan/article/details/78941179</guid><author>macchan</author><pubDate>Sun, 31 Dec 2017 11:47:26 +0800</pubDate><description><![CDATA[Epoll出现使得Linux平台上C10K迎刃而解。这里不说epoll的使用，man/google一下即可，只关注三个微小的方面:线程安全，触发机制以及客户端断开。]]></description><category></category></item><item><title><![CDATA[C++11 Memory Model]]></title><link>https://blog.youkuaiyun.com/macchan/article/details/78941157</link><guid>https://blog.youkuaiyun.com/macchan/article/details/78941157</guid><author>macchan</author><pubDate>Sun, 31 Dec 2017 11:42:32 +0800</pubDate><description><![CDATA[Herb Sutter在一次对C++11内存模型的演讲中提到C++11的内存模型，让C++有了标准独立于编译器和平台线程库和标准的多线程内存控制方式。]]></description><category></category></item><item><title><![CDATA[分布式原理与工程 —— Quorum机制]]></title><link>https://blog.youkuaiyun.com/macchan/article/details/78941149</link><guid>https://blog.youkuaiyun.com/macchan/article/details/78941149</guid><author>macchan</author><pubDate>Sun, 31 Dec 2017 11:41:12 +0800</pubDate><description><![CDATA[Quorum机制是一种分布式系统中常用的，用来保证数据冗余和最终一致性的投票算法  其主要数学思想来源于鸽巢原理1。Quorum机制定义我们普遍使用副本(Replication)技术来保证一致的性能和高可用性2，Quorum是一种简单有效的管理副本的机制，我们先建立如下定以（[2]中也有描述）：
  N = 存储数据副本的节点的数量 
  W = 更新成功所需的副本更新成功的数量 
  R = 一次]]></description><category></category></item><item><title><![CDATA[[译]Eventually-Consistent - Revisited]]></title><link>https://blog.youkuaiyun.com/macchan/article/details/78941085</link><guid>https://blog.youkuaiyun.com/macchan/article/details/78941085</guid><author>macchan</author><pubDate>Sun, 31 Dec 2017 11:29:13 +0800</pubDate><description><![CDATA[译者注：这是AWS CTO Werner Vogels写的一致性模型的经典文章在其博客All Things Distributed上亦有发布。]]></description><category></category></item><item><title><![CDATA[Learning-Design-and-Coding-From-LevelDB (keep updating)]]></title><link>https://blog.youkuaiyun.com/macchan/article/details/78941064</link><guid>https://blog.youkuaiyun.com/macchan/article/details/78941064</guid><author>macchan</author><pubDate>Sun, 31 Dec 2017 11:23:40 +0800</pubDate><description><![CDATA[LevelDB is a fast key-value storage library written at Google by Jeff Dean that provides an ordered mapping from string keys to string values. We could learn design and coding from the source code.概述in]]></description><category></category></item><item><title><![CDATA[LeetCode with C++ and Java and little Scala (持续更新)]]></title><link>https://blog.youkuaiyun.com/macchan/article/details/78941007</link><guid>https://blog.youkuaiyun.com/macchan/article/details/78941007</guid><author>macchan</author><pubDate>Sun, 31 Dec 2017 11:10:52 +0800</pubDate><description><![CDATA[LeetCode的题目非常是碎片化时间来做，而且可以尝试最新的C++标准和多种语言， 正好要学习Java，就C++和Java两种语言来做题，如果碰到方便用immutable方式的题目就再用Scala做一下。]]></description><category></category></item><item><title><![CDATA[由一段代码来深入理解C语言宏]]></title><link>https://blog.youkuaiyun.com/macchan/article/details/42242803</link><guid>https://blog.youkuaiyun.com/macchan/article/details/42242803</guid><author>macchan</author><pubDate>Mon, 29 Dec 2014 20:19:38 +0800</pubDate><description><![CDATA[直接上代码吧，就5行：
#define QUOTEME_(x) #x
#define QUOTE(x) QUOTEME_(x)

#define LOG_DEBUG(fmt, ...) \
    write_log(log::DEBUG, "["__FILE__ ":" QUOTE(__LINE__)"]  " fmt, ##__VA_ARGS__



这一段代码有几个宏的相关技巧（下]]></description><category></category></item><item><title><![CDATA[RAII 想到AutoLock，Mutex类和C++11中的unique_lock]]></title><link>https://blog.youkuaiyun.com/macchan/article/details/40817397</link><guid>https://blog.youkuaiyun.com/macchan/article/details/40817397</guid><author>macchan</author><pubDate>Wed, 05 Nov 2014 09:31:01 +0800</pubDate><description><![CDATA[RAII（Resource Acquisition Is Initialization）]]></description><category></category></item><item><title><![CDATA[leveldb源码解析1——内存管理类Arena]]></title><link>https://blog.youkuaiyun.com/macchan/article/details/39271881</link><guid>https://blog.youkuaiyun.com/macchan/article/details/39271881</guid><author>macchan</author><pubDate>Sun, 14 Sep 2014 20:50:53 +0800</pubDate><description><![CDATA[leveldb的介绍这里不多说了，Jeff Dean其人：http://research.google.com/people/jeff/index.html，Google大规模分布式平台Bigtable和MapReduce主要设计和实现者。]]></description><category></category></item><item><title><![CDATA[使用mmap和posix semaphores做进程间通信与同步]]></title><link>https://blog.youkuaiyun.com/macchan/article/details/39255639</link><guid>https://blog.youkuaiyun.com/macchan/article/details/39255639</guid><author>macchan</author><pubDate>Sat, 13 Sep 2014 23:41:38 +0800</pubDate><description><![CDATA[为什么要使用mmap进行IPC呢，个人总结有三点：

接口简单好用多进程操作同一文件的时候使用mmap维护一下读写信息的meta数据非常方便方便在非亲属进程间同步时使用

为什么要用posix semaphore进程同步呢，个人总结有三点：

接口简单好用效率高，在Linux3.2.0开销只有0.41个Clock（而XSI semaphore有7.33）方便在非亲属进程间同步时使用
]]></description><category></category></item><item><title><![CDATA[一个简单实用的log类]]></title><link>https://blog.youkuaiyun.com/macchan/article/details/38827443</link><guid>https://blog.youkuaiyun.com/macchan/article/details/38827443</guid><author>macchan</author><pubDate>Mon, 25 Aug 2014 21:43:01 +0800</pubDate><description><![CDATA[自己写一些小代码的时候总是用fprintf来写log，感觉这样不太科学，还是写一个通用的简单带log level的log类，以后就拿来复用吧。这个类实现了非常简单的功能：如果指定了log文件path和name创建一个log文件，并将各种level的写入文件中，否则都打印到屏幕，其使用方式也和printf一样，比如log.msg("xxx%d %s", xx,xxx)。
代码：
//------]]></description><category></category></item><item><title><![CDATA[intptr_t详解]]></title><link>https://blog.youkuaiyun.com/macchan/article/details/38701811</link><guid>https://blog.youkuaiyun.com/macchan/article/details/38701811</guid><author>macchan</author><pubDate>Wed, 20 Aug 2014 09:46:03 +0800</pubDate><description><![CDATA[看leveldb代码时候发现inptr_t居然不知道是啥，]]></description><category></category></item><item><title><![CDATA[变长数据结构及其应用]]></title><link>https://blog.youkuaiyun.com/macchan/article/details/38617747</link><guid>https://blog.youkuaiyun.com/macchan/article/details/38617747</guid><author>macchan</author><pubDate>Sat, 16 Aug 2014 21:29:40 +0800</pubDate><description><![CDATA[在介绍编程数组之前先说一个应用场景，]]></description><category></category></item><item><title><![CDATA[C++简洁实现线程安全单例类]]></title><link>https://blog.youkuaiyun.com/macchan/article/details/38283625</link><guid>https://blog.youkuaiyun.com/macchan/article/details/38283625</guid><author>macchan</author><pubDate>Wed, 30 Jul 2014 00:34:26 +0800</pubDate><description><![CDATA[关于单例模式这里不再多说了，网上很多例子。这里实现一个很通用的，线程安全的单例类，具体应用场景如：线程池的任务队列，epoll事件框架类等。]]></description><category></category></item></channel></rss>