<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Butterfly_Dreaming的专栏]]></title><description><![CDATA[简简单单]]></description><link>https://blog.youkuaiyun.com/Butterfly_Dreaming</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Butterfly_Dreaming]]></copyright><item><title><![CDATA[vm linux网络配置]]></title><link>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/113431035</link><guid>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/113431035</guid><author>Butterfly_Dreaming</author><pubDate>Sat, 30 Jan 2021 14:31:03 +0800</pubDate><description><![CDATA[vmware NET模式网络配置注意
问题


配置好了网络后，怎么主机和虚拟机linux怎么也连接不上。
如果网络配置没有问题，复位vimware的网络配置功能


参考
https://blog.youkuaiyun.com/axing2015/article/details/81516627

...]]></description><category></category></item><item><title><![CDATA[Bug定位体会]]></title><link>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/109291784</link><guid>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/109291784</guid><author>Butterfly_Dreaming</author><pubDate>Mon, 26 Oct 2020 16:06:18 +0800</pubDate><description><![CDATA[有的时候，当出现一些自己不认为不可能出现的错误的时候，在反复检查代码的过程中，也没有发现问题，这个时候，就不用太纠结在自己的代码上。

要知道，你认为的代码没有问题，那只是你认为，有的时候，一些显而易见的错误，自己检查代码的时候，可能定位一整天也定位不到，但是其实是一个很小的问题。

这个时候，就需要实际运行调试，在出现错误的机器上面调试，问题复现的时候，就会很简单的找到错误，比起自己埋头检查代码要好很多。



复现问题，打日志调试，调试！！！！

不要老是埋在代码找问题，有时候很简单的错误就是找不到，.]]></description><category></category></item><item><title><![CDATA[POCO网络库]]></title><link>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/109063284</link><guid>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/109063284</guid><author>Butterfly_Dreaming</author><pubDate>Tue, 13 Oct 2020 23:28:04 +0800</pubDate><description><![CDATA[最近研究如何将POCO网络库应用在高并发项目中，发现POCO在windows下面使用select模型，不适合做高并发的TCP服务器。

当然用作HTTP服务器是可以的，因为HTTP服务器实现是这样的。

通过线程池来管理多个HTTP连接，当并发连接超过最大的线程池数量的时候，连接排队等待线程处理中，只要处理速度足够块，高并发请求也可以响应，因为HTTP连接处理完成后，就断开了。



但是如果是需要长连接，这种处理过程就无法满足了，而提供的select模型也不能应用，当然在linux下面可以使用epull.]]></description><category></category></item><item><title><![CDATA[C++继承中析构资源注意点]]></title><link>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/108617987</link><guid>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/108617987</guid><author>Butterfly_Dreaming</author><pubDate>Wed, 16 Sep 2020 11:09:43 +0800</pubDate><description><![CDATA[问题
在使用自己实现的线程类的时候，偶尔会出现奔溃
virtual ~thread() BOOST_NOEXCEPT {
try {
ensure_thread_over();
}
catch (…) {
//avoid exception;
}
}
class MyThread : public utils::thread
{
public:
void run() {
_run();
}
std::function&lt;void() &gt; _run;

};
这里， _run会析构掉，然后 ~thr]]></description><category></category></item><item><title><![CDATA[STL condition_variable一个bug]]></title><link>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/108502918</link><guid>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/108502918</guid><author>Butterfly_Dreaming</author><pubDate>Wed, 09 Sep 2020 21:43:37 +0800</pubDate><description><![CDATA[测试STL的 condition_variable 发现一个BUG
VS2019运行如下代码时

// condition_variable::wait_for example
#include &lt;iostream&gt;           // std::cout
#include &lt;thread&gt;             // std::thread
#include &lt;chrono&gt;             // std::chrono::seconds
#inclu.]]></description><category></category></item><item><title><![CDATA[有关内存分配，赋值的时间测试]]></title><link>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/108138367</link><guid>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/108138367</guid><author>Butterfly_Dreaming</author><pubDate>Fri, 21 Aug 2020 00:27:15 +0800</pubDate><description><![CDATA[有关内存分配，赋值的时间测试
#include &lt;iostream&gt;
#include &lt;common/utils.h&gt;
#include &lt;common/TimeSpan.h&gt;
using namespace std;


void Test(int mem_size) {
	cout &lt;&lt; "========================" &lt;&lt; endl;
	cout &lt;&lt; "Test mem size = ";
	if (me]]></description><category></category></item><item><title><![CDATA[关于boost log库]]></title><link>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/108016239</link><guid>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/108016239</guid><author>Butterfly_Dreaming</author><pubDate>Sat, 15 Aug 2020 00:22:02 +0800</pubDate><description><![CDATA[最近使用glog遇到一些问题，想着尝试使用boost log，然后开始研究源码，在使用一个库之前，我必须能对源码有掌控，但是研究了几天后发现，实在是太复杂了，代码量很庞大，很多东西都是自己实现，包括ostream 都是自己实现的，让看的人很痛苦，比起 stl 源码，stl源码是很简单易懂的，所以放弃使用，
当然boost也有简单的，比如pool， 代码量就很小，也简单，所有针对boost，那些用途广泛，会纳入到标准的，要研究透，然后使用它，比如bind，functional，有些没有必要研究，只是一个日志，]]></description><category></category></item><item><title><![CDATA[Android APP调试备忘]]></title><link>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/107973963</link><guid>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/107973963</guid><author>Butterfly_Dreaming</author><pubDate>Thu, 13 Aug 2020 10:30:42 +0800</pubDate><description><![CDATA[Android APP调试备忘
安装签名不一致，提示无法运行，安装不上问题等

检查 AndroidMainfest.xm 中 package=“com.example.whsarmclient” 和 build.grade 中 applicationId “com.example.whsarmclient” 是否一致
命令行卸载 adb uninstall com.example.whsarmclient  或者 adb uninstall com.example， 保证能卸载干净

日志文件不能生成

]]></description><category></category></item><item><title><![CDATA[linux问题备忘]]></title><link>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/107093112</link><guid>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/107093112</guid><author>Butterfly_Dreaming</author><pubDate>Thu, 02 Jul 2020 21:02:03 +0800</pubDate><description><![CDATA[#库路径加载不到

vi /etc/ld.so.conf
编辑后如下：
include ld.so.conf.d/*.conf
/usr/lib
]]></description><category></category></item><item><title><![CDATA[GIT使用备忘]]></title><link>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/104955981</link><guid>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/104955981</guid><author>Butterfly_Dreaming</author><pubDate>Wed, 18 Mar 2020 22:35:47 +0800</pubDate><description><![CDATA[GIT使用备忘一次添加多个修改文件
一次添加多个修改文件
git add -u

]]></description><category></category></item><item><title><![CDATA[C++流扩展 streambuff-转载]]></title><link>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/102516422</link><guid>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/102516422</guid><author>Butterfly_Dreaming</author><pubDate>Sat, 12 Oct 2019 10:55:17 +0800</pubDate><description><![CDATA[C++流扩展 streambuff结合socket流的扩展参考链接
结合socket流的扩展
#include &lt;WinSock2.h&gt;

/////               out
//no buffer
	class SocketOutStreamBuf
		: public std::streambuf
	{
	public:
		SocketOutStreamBuf(SOC...]]></description><category></category></item><item><title><![CDATA[github访问慢]]></title><link>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/101020523</link><guid>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/101020523</guid><author>Butterfly_Dreaming</author><pubDate>Thu, 19 Sep 2019 13:51:38 +0800</pubDate><description><![CDATA[1. 到https://www.ipaddress.com网站查询对应的域名的ip，然后添加到hosts文件即可

2. 将以下代码复制到C:\Windows\System32\drivers\etc的hosts文件中


#解决git clone 速度慢的问题
192.30.253.112 github.com
151.101.185.194 github.global.ssl.fastly.n...]]></description><category></category></item><item><title><![CDATA[map和hashmap性能测试]]></title><link>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/100054716</link><guid>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/100054716</guid><author>Butterfly_Dreaming</author><pubDate>Sat, 24 Aug 2019 17:00:35 +0800</pubDate><description><![CDATA[测试代码


#include "stdafx.h"
#include &lt;set&gt;
#include &lt;hash_set&gt;
#include &lt;ctime&gt;
#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;common\TimeSpan.h&gt;

#include &lt;win...]]></description><category></category></item><item><title><![CDATA[MFC文件的一个链接错误]]></title><link>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/97051259</link><guid>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/97051259</guid><author>Butterfly_Dreaming</author><pubDate>Tue, 23 Jul 2019 23:42:25 +0800</pubDate><description><![CDATA[记录遇到的一个诡异的编译问题

使用ButtonST的时候，一个工程没有问题，当一个新的工程使用的时候，提示找不到CreateFile 和GetObject函数，

但是这个两个函数在WINDOWS.H头文件里面肯定有的，花了好长时间，发现是链接到 POCO库里面去了，POCO的

头文件污染了MFC的WINDOWS头文件



所有在使用外部三方库或者类的时候，尽量不要在C源文件里面引用，不要...]]></description><category></category></item><item><title><![CDATA[编写Makefile]]></title><link>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/89682766</link><guid>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/89682766</guid><author>Butterfly_Dreaming</author><pubDate>Mon, 29 Apr 2019 20:58:20 +0800</pubDate><description><![CDATA[参考 https://www.cnblogs.com/prettyshuang/p/5552328.html





阅读目录

1、生成可执行文件的makefile
	2、生成静态链接库的makefile
	3、生成动态链接库的makefile


　　本文把makefile分成了三份：生成可执行文件的makefile，生成静态链接库的makefile，生成动态链接库的makefil...]]></description><category></category></item><item><title><![CDATA[boost库的编译总结]]></title><link>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/42885555</link><guid>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/42885555</guid><author>Butterfly_Dreaming</author><pubDate>Mon, 19 Jan 2015 22:20:18 +0800</pubDate><description><![CDATA[Boost官网的《Geting Started On Windows》（http://www.boost.org/doc/libs/1_38_0/more/getting_started/windows.html）提到了Boost库的命名，摘录如下：



以 libboost_regex-vc71-mt-d-1_34.lib 为例：

lib
	前缀：除了Microsoft Windows之...]]></description><category></category></item><item><title><![CDATA[explicit]]></title><link>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/39352983</link><guid>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/39352983</guid><author>Butterfly_Dreaming</author><pubDate>Wed, 17 Sep 2014 23:42:54 +0800</pubDate><description><![CDATA[class test
{
private:
	int _a;
public:
	explicit test(int a)
		:_a(a)
	{

	}

	void print()
	{
		cout<<_a<<endl;
	}
};


int _tmain(int argc, _TCHAR* argv[])
{
	test a = 4; // ERROR
	test a(3);   //必须]]></description><category></category></item><item><title><![CDATA[CTRLLIST用法]]></title><link>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/38548661</link><guid>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/38548661</guid><author>Butterfly_Dreaming</author><pubDate>Thu, 14 Aug 2014 00:29:47 +0800</pubDate><description><![CDATA[m_ctlList.EnableGroupView(TRUE);


LVCOLUMN lv;
lv.mask = LVCF_WIDTH | LVCF_TEXT;
lv.cx = 300;
lv.pszText = L"xxx";
m_ctlList.InsertColumn(0, &lv);
m_ctlList.InsertColumn(1, &lv);


UINT nG]]></description><category></category></item><item><title><![CDATA[log4cxx类的使用（简单封装）]]></title><link>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/38315229</link><guid>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/38315229</guid><author>Butterfly_Dreaming</author><pubDate>Thu, 31 Jul 2014 12:27:50 +0800</pubDate><description><![CDATA[Log4J采用类似C语言中的printf函数的打印格式格式化日志信息，打印参数如下： 
%m 输出代码中指定的消息 
%p 输出优先级，即DEBUG，INFO，WARN，ERROR，FATAL 
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目，通常就是所在类的全名
%t 输出产生该日志事件的线程名 
%n 输出一个回车换行符，Windows平台为“rn”，Un]]></description><category></category></item><item><title><![CDATA[Ubuntu下搭建FTP服务器]]></title><link>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/34202719</link><guid>https://blog.youkuaiyun.com/Butterfly_Dreaming/article/details/34202719</guid><author>Butterfly_Dreaming</author><pubDate>Tue, 24 Jun 2014 23:28:39 +0800</pubDate><description><![CDATA[后台一直提示wordperss版本和插件有更新，看着碍眼，决定把它们全都更新。不过更新文件需要服务器提供FTP服务，linode也没有提供到FTP，只能自己装一个了。我装的服务器系统是Ubuntu
 12.04 LTS，FTP软件当然是选择大名鼎鼎的vsftpd（very secure FTP daemon）， 用系统自带的FTP还好Ubuntu装vsftpd还是很简单，一句命令就行：
sud]]></description><category></category></item></channel></rss>