<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Huntinux]]></title><description><![CDATA[你会感谢曾经努力的自己  新博客地址：huntinux.github.com]]></description><link>https://blog.youkuaiyun.com/chj90220</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; chj90220]]></copyright><item><title><![CDATA[brpc : example-echo-c++]]></title><link>https://blog.youkuaiyun.com/chj90220/article/details/81124091</link><guid>https://blog.youkuaiyun.com/chj90220/article/details/81124091</guid><author>chj90220</author><pubDate>Thu, 19 Jul 2018 22:42:02 +0800</pubDate><description><![CDATA[
  https://github.com/brpc/brpc/tree/master/example/echo_c%2B%2B


这里学习下brpc的example：echo-c++。先学会使用brpc，载了解了brpc的基本特性之后，再去深入研究。



client


  https://github.com/brpc/brpc/blob/master/docs/cn/client.md...]]></description><category></category></item><item><title><![CDATA[SNMP]]></title><link>https://blog.youkuaiyun.com/chj90220/article/details/80527190</link><guid>https://blog.youkuaiyun.com/chj90220/article/details/80527190</guid><author>chj90220</author><pubDate>Thu, 31 May 2018 17:06:27 +0800</pubDate><description><![CDATA[参考


  http://www.net-snmp.org/wiki/index.php 
  https://www.cnblogs.com/sddai/p/5911031.html 
  https://www.cnblogs.com/oloroso/p/4599501.html 
  https://blog.youkuaiyun.com/hepeng597/article/details/87828...]]></description><category></category></item><item><title><![CDATA[enable_shared_from_this 分析]]></title><link>https://blog.youkuaiyun.com/chj90220/article/details/80498741</link><guid>https://blog.youkuaiyun.com/chj90220/article/details/80498741</guid><author>chj90220</author><pubDate>Tue, 29 May 2018 16:55:33 +0800</pubDate><description><![CDATA[
  http://monkeycn.iteye.com/blog/1135901 
  http://vyloy.iteye.com/blog/1808547
]]></description><category></category></item><item><title><![CDATA[C++ string类的简单实现 (2)]]></title><link>https://blog.youkuaiyun.com/chj90220/article/details/80451716</link><guid>https://blog.youkuaiyun.com/chj90220/article/details/80451716</guid><author>chj90220</author><pubDate>Fri, 25 May 2018 14:50:40 +0800</pubDate><description><![CDATA[参考


  https://coolshell.cn/articles/10478.html#jtss-tsina


分析

如果一个class带有指针类型的数据成员，那么请思考默认的copy ctor和copy assign是否合适。如果你需要深拷贝那么默认的行为就不合适了（默认为浅拷贝）。并且如果你的编译器支持c++11，可以考虑是否可以利用右值引用来提高效率，这时需要实现move cto...]]></description><category></category></item><item><title><![CDATA[Linux kernel 3.10 sg 驱动分析]]></title><link>https://blog.youkuaiyun.com/chj90220/article/details/80309331</link><guid>https://blog.youkuaiyun.com/chj90220/article/details/80309331</guid><author>chj90220</author><pubDate>Mon, 14 May 2018 14:33:17 +0800</pubDate><description><![CDATA[源码地址


  https://elixir.bootlin.com/linux/v3.10/source/drivers/scsi/sg.c


主设备号


  https://elixir.bootlin.com/linux/v3.10/source/include/uapi/linux/major.h#L40


#define SCSI_GENERIC_MAJOR  21



fil...]]></description><category></category></item><item><title><![CDATA[The Linux generic SCSI driver]]></title><link>https://blog.youkuaiyun.com/chj90220/article/details/80306588</link><guid>https://blog.youkuaiyun.com/chj90220/article/details/80306588</guid><author>chj90220</author><pubDate>Mon, 14 May 2018 10:41:42 +0800</pubDate><description><![CDATA[前言


  https://elixir.bootlin.com/linux/v3.10/source/drivers/scsi/sg.c


本文的分析的内核版本为Linux kernel 3.10， 上面为驱动的源码



The Linux generic SCSI driver


  http://www.tldp.org/HOWTO/SCSI-Generic-HOWTO/index....]]></description><category></category></item><item><title><![CDATA[动态规划]]></title><link>https://blog.youkuaiyun.com/chj90220/article/details/80142089</link><guid>https://blog.youkuaiyun.com/chj90220/article/details/80142089</guid><author>chj90220</author><pubDate>Sun, 29 Apr 2018 11:46:05 +0800</pubDate><description><![CDATA[相关题目


最大连续子序列和  
dp[i] 表示以a[i]结尾的子序列最大和，那么状态转移方程为：dp[i] = max(a[i], dp[i-1] + a[i])
上台阶问题


  有一段楼梯有N级台阶，规定每一步只能跨一级或两级，要登上第N级台阶有几种不同的走法?


dp[i] 表示i级台阶的走法数量，那么 dp[i] = dp[i-1] + dp[i-2];
正则匹配


  htt...]]></description><category></category></item><item><title><![CDATA[assert() : 如何正确的使用]]></title><link>https://blog.youkuaiyun.com/chj90220/article/details/80060264</link><guid>https://blog.youkuaiyun.com/chj90220/article/details/80060264</guid><author>chj90220</author><pubDate>Tue, 24 Apr 2018 09:59:07 +0800</pubDate><description><![CDATA[请先阅读一下man page，不要急躁。



ASSERT(3)                            Linux Programmer's Manual                           ASSERT(3)

NAME
       assert - abort the program if assertion is false

SYNOPSIS
     ...]]></description><category></category></item><item><title><![CDATA[Perf:  Performance analysis tools for Linux]]></title><link>https://blog.youkuaiyun.com/chj90220/article/details/79755015</link><guid>https://blog.youkuaiyun.com/chj90220/article/details/79755015</guid><author>chj90220</author><pubDate>Fri, 30 Mar 2018 11:22:55 +0800</pubDate><description><![CDATA[参考


  https://www.ibm.com/developerworks/cn/linux/l-cn-perf1/


gperftools 是Google开发的profile工具，这里介绍的perf是Linux上的性能分析工具。

// 以后需要用到时再补充心得...]]></description><category></category></item><item><title><![CDATA[gperftools]]></title><link>https://blog.youkuaiyun.com/chj90220/article/details/79744400</link><guid>https://blog.youkuaiyun.com/chj90220/article/details/79744400</guid><author>chj90220</author><pubDate>Thu, 29 Mar 2018 16:06:27 +0800</pubDate><description><![CDATA[安装



$ git clone https://github.com/gperftools/gperftools.git
$ cd gperftools
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install



使用



CPU Profile


  https://gperftools.github.io/gperftools/...]]></description><category></category></item><item><title><![CDATA[Go: Gin]]></title><link>https://blog.youkuaiyun.com/chj90220/article/details/79744261</link><guid>https://blog.youkuaiyun.com/chj90220/article/details/79744261</guid><author>chj90220</author><pubDate>Thu, 29 Mar 2018 16:00:55 +0800</pubDate><description><![CDATA[0. 简介

Gin是一个使用golang编写的HTTP web框架，主页在此：


  https://github.com/gin-gonic/gin




1. 使用记录



1.1 POST

binding tag 加入太多tab会有问题，目前只加一个空格没有什么问题，就是格式上有点丑，尚不清楚原因。



1.2 Database


  http://www.01happy.co...]]></description><category></category></item><item><title><![CDATA[listen : backlog]]></title><link>https://blog.youkuaiyun.com/chj90220/article/details/79656538</link><guid>https://blog.youkuaiyun.com/chj90220/article/details/79656538</guid><author>chj90220</author><pubDate>Thu, 22 Mar 2018 16:58:31 +0800</pubDate><description><![CDATA[listen



NAME
       listen - listen for connections on a socket

SYNOPSIS
       #include &amp;lt;sys/types.h&amp;gt;          /* See NOTES */
       #include &amp;lt;sys/socket.h&amp;gt;

       int listen(int soc...]]></description><category></category></item><item><title><![CDATA[Go : OAuth2.0]]></title><link>https://blog.youkuaiyun.com/chj90220/article/details/79485682</link><guid>https://blog.youkuaiyun.com/chj90220/article/details/79485682</guid><author>chj90220</author><pubDate>Thu, 08 Mar 2018 15:59:27 +0800</pubDate><description><![CDATA[引用


  http://blog.youkuaiyun.com/wangshubo1989/article/details/77980316


引文以google为例子，这里使用github为例子（访问google有问题T_T）。



获取 oauth2



$ go get golang.org/x/oauth2

如果出现错误(被墙？)，请参直接使用github下载即可。



$ mkdir ...]]></description><category></category></item><item><title><![CDATA[PNP : Work Cound & Frequence]]></title><link>https://blog.youkuaiyun.com/chj90220/article/details/78649517</link><guid>https://blog.youkuaiyun.com/chj90220/article/details/78649517</guid><author>chj90220</author><pubDate>Mon, 27 Nov 2017 21:46:19 +0800</pubDate><description><![CDATA[问题问题很简单，shell的几个命令就可以搞定。但是，如果输入文件很大不能一次载入内存呢？ 
文件分布在多个机器上呢？文件可以全部载入内存文件太大不能一次载入内存对于此类问题，即大数据问题，可以使用MapReduce两个MapReduce 
第一个MapReduce： WordCount
把每个单词映射成Key-Value pair  （Map）
把key相同的value加起来 （Reduce）
此]]></description><category></category></item><item><title><![CDATA[PNP : Distributed mean and median]]></title><link>https://blog.youkuaiyun.com/chj90220/article/details/78618902</link><guid>https://blog.youkuaiyun.com/chj90220/article/details/78618902</guid><author>chj90220</author><pubDate>Thu, 23 Nov 2017 20:53:11 +0800</pubDate><description><![CDATA[分布式的平均数和中位数。 
求平均数比较简单。怎么求第k大的数字呢？
先猜一个数guess，然后统计与这个数相等的数字的个数记为same，小于这个数的个数记为smaller
然后调整guess，直到 smaller < k and smaller+same >= k
具体点说，先猜一个guess，然后让10台机器告诉我，guess在第i台机器上的same和smaller，然后将same求和，smal]]></description><category></category></item><item><title><![CDATA[PNP : Remote Procedure Call (RPC)]]></title><link>https://blog.youkuaiyun.com/chj90220/article/details/78618761</link><guid>https://blog.youkuaiyun.com/chj90220/article/details/78618761</guid><author>chj90220</author><pubDate>Thu, 23 Nov 2017 20:36:34 +0800</pubDate><description><![CDATA[RPCRPC是构建分布式系统的基础。 
RPC不会限制所使用的语言，跨语言。
  brpc : https://github.com/brpc/brpc
protobuf提供了message passing的能力，可以在此基础之上实现一个RPC框架。type表示消息类型，是请求还是响应 
id用来标识一个请求service是一个string， 表示客户端想要调用哪个class 
method，表示客]]></description><category></category></item><item><title><![CDATA[PNP : Paralle N-queens puzzle]]></title><link>https://blog.youkuaiyun.com/chj90220/article/details/78544794</link><guid>https://blog.youkuaiyun.com/chj90220/article/details/78544794</guid><author>chj90220</author><pubDate>Wed, 15 Nov 2017 20:41:22 +0800</pubDate><description><![CDATA[多机数据处理单机解决
多线程
多个机器
负载均衡
N皇后问题：每一行只能有一个皇后，每一列只能有一个皇后，每一条对角线（反对角线）只能有一个皇后。求解的个数。一种解法：求全排列,然后去掉非法情况代码简洁，但是效率低回溯法回溯法，就是在失败点选择其他值进行试探，直到成功。通过将错误情况，过早的减枝，可以排除掉很多非法情况。所以相对上面的全排列方法要快很多。思路就是使用位数组，columns表示那些列被]]></description><category></category></item><item><title><![CDATA[PNP : TCP relay & Socks4a]]></title><link>https://blog.youkuaiyun.com/chj90220/article/details/78473272</link><guid>https://blog.youkuaiyun.com/chj90220/article/details/78473272</guid><author>chj90220</author><pubDate>Tue, 07 Nov 2017 22:19:12 +0800</pubDate><description><![CDATA[TCP relayTCP中继。 
带宽不匹配问题怎么应对？TCP half-closedmuduo的做法是： 
TcpConnection::shutdown() –> shutdown(sockfd, SHUT_WR) 
Keep read(sockdf) uitil it return 0, then close(sockfd)有可能数据没有读完，此时如果使用close关闭连接，那么TCP会发送]]></description><category></category></item><item><title><![CDATA[PNP : Chat server]]></title><link>https://blog.youkuaiyun.com/chj90220/article/details/78472134</link><guid>https://blog.youkuaiyun.com/chj90220/article/details/78472134</guid><author>chj90220</author><pubDate>Tue, 07 Nov 2017 20:32:14 +0800</pubDate><description><![CDATA[将某个连接上的消息发送到其他连接上。BroadcastingIP广播不支持TCP。需要自己实现 Pub/Sub。要考虑单台故障不影响其他机器。pub, hub, sub. 其中hub收到pub的消息，发送到sub上。使用shared_ptr实现copy on write ： example/asio/chat/server_thread_efficient.cpp使用thread_local: ex]]></description><category></category></item><item><title><![CDATA[C++ ： Object Model]]></title><link>https://blog.youkuaiyun.com/chj90220/article/details/78292048</link><guid>https://blog.youkuaiyun.com/chj90220/article/details/78292048</guid><author>chj90220</author><pubDate>Fri, 20 Oct 2017 09:45:25 +0800</pubDate><description><![CDATA[原文： http://spockwangs.github.io/2011/01/31/cpp-object-model.html

参考： http://lifegoo.pluskid.org/upload/doc/object_models/C++%20Object%20Model.pdf


The g++ implementation of C++ Object Model
Ja]]></description><category></category></item></channel></rss>