<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[godop的博客]]></title><description><![CDATA[自己的学习的一些知识分享]]></description><link>https://blog.youkuaiyun.com/godop</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; godop]]></copyright><item><title><![CDATA[nodejs 使用cheerio解析带域名的xml格式]]></title><link>https://blog.youkuaiyun.com/godop/article/details/102674641</link><guid>https://blog.youkuaiyun.com/godop/article/details/102674641</guid><author>godop</author><pubDate>Tue, 22 Oct 2019 00:08:32 +0800</pubDate><description><![CDATA[如这样一个标签中带有作用域的xml:
&lt;cas:serviceResponse xmlns:cas='http://www.hhhh.edu/cas'&gt;
    &lt;cas:authenticationSuccess&gt;
        &lt;cas:user&gt;jason,102&lt;/cas:user&gt;
        &lt;cas:attributes&g...]]></description><category></category></item><item><title><![CDATA[VM2 VMScript预编译]]></title><link>https://blog.youkuaiyun.com/godop/article/details/98457041</link><guid>https://blog.youkuaiyun.com/godop/article/details/98457041</guid><author>godop</author><pubDate>Sun, 04 Aug 2019 23:44:44 +0800</pubDate><description><![CDATA[简介
vm2是一个沙箱，可以使用列入白名单的Node的内置模块运行不受信任的代码。安全！
特征

使用您的代码并排在一个进程中安全地运行不受信任的代码
完全控制沙盒的控制台输出
Sandbox对进程方法的访问权限有限
沙箱可以要求模块（内置和外置）
您可以限制对某些（或所有）内置模块的访问
您可以安全地调用方法并在沙箱之间交换数据和回调
免疫while (true) {}（这点应该是vm2可以设置...]]></description><category></category></item><item><title><![CDATA[Redis分布式锁浅析]]></title><link>https://blog.youkuaiyun.com/godop/article/details/95872357</link><guid>https://blog.youkuaiyun.com/godop/article/details/95872357</guid><author>godop</author><pubDate>Sun, 14 Jul 2019 12:28:34 +0800</pubDate><description><![CDATA[1. 前言
开发时，碰到互斥问题，需要保证在分布式环境下，避免重复性操作修改用户状态，如：用户订单状态，购票时，修改票的余额等
2. 分布式锁的条件
分布式锁需要满足下列条件
锁需要有充足的可访问的存储空间
锁必须被唯一标识
锁至少要有两种状态
同时，要保证
安全特性：互斥访问，永远只有一个client能拿到锁
避免死锁：client最后可以拿到锁，不会出现死锁，即使原本上锁的client出现问题...]]></description><category></category></item><item><title><![CDATA[django 采坑]]></title><link>https://blog.youkuaiyun.com/godop/article/details/89680561</link><guid>https://blog.youkuaiyun.com/godop/article/details/89680561</guid><author>godop</author><pubDate>Mon, 29 Apr 2019 18:21:53 +0800</pubDate><description><![CDATA[1、最近在使用django，报了一个错误：
UnicodeDecodeError: 'gbk' codec can't decode byte 0xa6
根据提示找到 python安装路径\Lib\site-packages\django\views\debug.py ，打开后，修改约在 332 行处，将：
with Path(CURRENT_DIR, 'templates', 'technica...]]></description><category></category></item><item><title><![CDATA[python爬虫之scrapy]]></title><link>https://blog.youkuaiyun.com/godop/article/details/89680358</link><guid>https://blog.youkuaiyun.com/godop/article/details/89680358</guid><author>godop</author><pubDate>Mon, 29 Apr 2019 18:09:42 +0800</pubDate><description><![CDATA[scrapy框架scrapy整体框架结构Scrapy 流程scrapy.Spider爬虫实例
scrapy框架
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Scrapy，Python开发的一个快速、高层次的屏幕抓取和web抓取框架，用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛，可以用于数据挖掘、监测和自动化测试。
&nbs...]]></description><category></category></item><item><title><![CDATA[进程的创建fork和vfork]]></title><link>https://blog.youkuaiyun.com/godop/article/details/83830396</link><guid>https://blog.youkuaiyun.com/godop/article/details/83830396</guid><author>godop</author><pubDate>Thu, 08 Nov 2018 10:43:05 +0800</pubDate><description><![CDATA[1.写时拷贝

      传统的fork()系统调用直接把所有的资源复制给创建的进程。这种实现过于简单并且效率低下，因为它拷贝的数据也许并不共享，更糟的情况是，如果新进程打算立即执行一个新的映像，那么所有的拷贝都是白费的。linux的fork()使用写时拷贝页实现。写时拷贝是一种可以推迟甚至免除拷贝数据的技术。内核此时不复制整个进程空间，而是让父进程和子进程共享同一个拷贝。只有在需要写入的时候，...]]></description><category></category></item><item><title><![CDATA[Linux线程之线程 线程组 进程的关系]]></title><link>https://blog.youkuaiyun.com/godop/article/details/82775647</link><guid>https://blog.youkuaiyun.com/godop/article/details/82775647</guid><author>godop</author><pubDate>Wed, 19 Sep 2018 17:44:02 +0800</pubDate><description><![CDATA[一直对于线程 线程组 进程 理解不是很深刻，今天看了这篇文章，感觉讲解很透彻。

转载出处：http://www.it165.net/os/html/201305/5123.html#about

然后看到例子中如果对于gettid()和 pthread_self() 函数不熟悉的，请看这篇文章：gettid 和 pthread_self 的区别

Thread Local Storage，线程本...]]></description><category></category></item><item><title><![CDATA[今日头条2017后端工程师实习生笔试题第一题：最大映射]]></title><link>https://blog.youkuaiyun.com/godop/article/details/81952088</link><guid>https://blog.youkuaiyun.com/godop/article/details/81952088</guid><author>godop</author><pubDate>Wed, 22 Aug 2018 22:30:03 +0800</pubDate><description><![CDATA[有 n 个字符串，每个字符串都是由 A-J 的大写字符构成。现在你将每个字符映射为一个 0-9 的数字，不同字符映射为不同的数字。这样每个字符串就可以看做一个整数，唯一的要求是这些整数必须是正整数且它们的字符串不能有前导零。现在问你怎样映射字符才能使得这些字符串表示的整数之和最大？

输入描述:

每组测试用例仅包含一组数据，每组数据第一行为一个正整数 n ， 接下来有 n 行，每行一个长度不超过...]]></description><category></category></item><item><title><![CDATA[Linux编辑器vim中删除行尾的^M]]></title><link>https://blog.youkuaiyun.com/godop/article/details/81508645</link><guid>https://blog.youkuaiyun.com/godop/article/details/81508645</guid><author>godop</author><pubDate>Wed, 08 Aug 2018 15:12:44 +0800</pubDate><description><![CDATA[亲测有用，转载。

有时候，在 Linux 中使用打开曾在 Windows 中编辑过的文件时，会在行尾看到 ^M 字符。看起来总是感觉很别扭。
删除方法如下：
在 Vim 的命令模式中输入 :%s/^M$//g 后，回车即会自动删除该文件中的所有 ^M 字符。
注意： ^M 要用 Ctrl + v，然后回车来输入，M 后面的 $ 代表匹配行尾的内容，最后的 g 则表示每行中匹配到的内容都要置换。（...]]></description><category></category></item><item><title><![CDATA[c++在windows下打开文件和如何访问文件夹下的所有文件]]></title><link>https://blog.youkuaiyun.com/godop/article/details/81080835</link><guid>https://blog.youkuaiyun.com/godop/article/details/81080835</guid><author>godop</author><pubDate>Tue, 17 Jul 2018 15:59:39 +0800</pubDate><description><![CDATA[一，通过stream流方式打开文件

ifstream  从硬盘到内存，读文件

ofstream 从内存到硬盘，写文件

在C++ 中，有一个stream这个类，所有的I/O都以这个“流”类为基础，包括文件I/O。

1）插入器（&amp;lt;&amp;lt;）

向流输出数据。系统有一个默认的标准输出流，一般情况下是指显示器；例如在 c++ 大家常用的 cout &amp;lt;&amp;lt; &quot;hello world&quot;...]]></description><category></category></item><item><title><![CDATA[gcc/g++ 如何指定链接库和头文件路径]]></title><link>https://blog.youkuaiyun.com/godop/article/details/81005455</link><guid>https://blog.youkuaiyun.com/godop/article/details/81005455</guid><author>godop</author><pubDate>Wed, 11 Jul 2018 19:20:58 +0800</pubDate><description><![CDATA[在此篇文章里我使用的方法是将库和头文件路径添加到环境中去1.先添加头文件路径export C_INCLUDE_PATH=$C_INCLUDE_PATH头文件路径                             #cexport CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH头文件路径        #c++在我的操作里，此处PATH后面直接添加路径，但也有可能...]]></description><category></category></item><item><title><![CDATA[tcpdump抓包wireshark分析]]></title><link>https://blog.youkuaiyun.com/godop/article/details/80986966</link><guid>https://blog.youkuaiyun.com/godop/article/details/80986966</guid><author>godop</author><pubDate>Tue, 10 Jul 2018 15:46:49 +0800</pubDate><description><![CDATA[分别转自https://www.cnblogs.com/senlinmilelu/p/6876650.html 和https://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html简介用简单的话来定义tcpdump，就是：dump the traffic on a network，根据使用者的定义对网络上的数据包进行截获的包分析工具。...]]></description><category></category></item><item><title><![CDATA[带外数据]]></title><link>https://blog.youkuaiyun.com/godop/article/details/80542568</link><guid>https://blog.youkuaiyun.com/godop/article/details/80542568</guid><author>godop</author><pubDate>Sat, 02 Jun 2018 22:02:36 +0800</pubDate><description><![CDATA[许多传输层有带外数据的概念，它有时也称为经加速数据。其想法是一个连接的某端发生了重要的事情，而且该端希望迅速通告其对端。这里“迅速”意味着这种通知应该在已经排队等待发送的任何“普通”数据之前发送。也就是说，带外数据被认为具有比普通数据更高的优先级。带外数据并不要求在客户和服务器之间再使用一个连接，而是被映射到已有的连接中。（udp没有实现带外数据）TCP并没有真正的带外数据，只不过提供了我们紧急模...]]></description><category></category></item><item><title><![CDATA[ubuntu下第一次如何上传本地代码到github]]></title><link>https://blog.youkuaiyun.com/godop/article/details/80500704</link><guid>https://blog.youkuaiyun.com/godop/article/details/80500704</guid><author>godop</author><pubDate>Tue, 29 May 2018 19:55:27 +0800</pubDate><description><![CDATA[在github上有两种方法上传代码，一种是通过https，一种是通过SSH，这篇主要分享的是通过https的方法上传

首先，将你项目的所有代码放在一个文件夹中，然后在github上创建一个新的仓库



如果是初次上传项目到github则需要先配置密匙：

Linux创建SSH密钥：ssh-keygen
	然后会让你输入密码，默认是将ssh密钥放在/home/xxxx/.ssh/id_rsa，接...]]></description><category></category></item><item><title><![CDATA[linux基础命令之进程的查看]]></title><link>https://blog.youkuaiyun.com/godop/article/details/80341407</link><guid>https://blog.youkuaiyun.com/godop/article/details/80341407</guid><author>godop</author><pubDate>Thu, 17 May 2018 15:18:52 +0800</pubDate><description><![CDATA[查看系统上正在运行的进程，可以利用静态的 ps 或者是动态的 top；静态即截取某一时刻的状态，动态即处于持续检测进程运行的状态。1、静态的psps：将某个时间点的进程运行情况选取下来；[root @www ~]# ps aux  &amp;lt;==查看系统所有的进程数据[root @www ~]# ps -lA  &amp;lt;==也是能够查看所有系统的数据[root @www ~]# ps axjf  &amp;...]]></description><category></category></item><item><title><![CDATA[互联网协议入门]]></title><link>https://blog.youkuaiyun.com/godop/article/details/80293039</link><guid>https://blog.youkuaiyun.com/godop/article/details/80293039</guid><author>godop</author><pubDate>Sat, 12 May 2018 17:09:28 +0800</pubDate><description><![CDATA[转载出处：阮一峰，原著是两篇分开，第二篇为客户端，这将两篇和为一篇我们每天使用互联网，你是否想过，它是如何实现的？全世界几十亿台电脑，连接在一起，两两通信。上海的某一块网卡送出信号，洛杉矶的另一块网卡居然就收到了，两者实际上根本不知道对方的物理位置，你不觉得这是很神奇的事情吗？互联网的核心是一系列协议，总称为&quot;互联网协议&quot;（Internet Protocol Suite）。它们对电脑如何连接和组网...]]></description><category></category></item><item><title><![CDATA[HTTP 协议入门]]></title><link>https://blog.youkuaiyun.com/godop/article/details/80292210</link><guid>https://blog.youkuaiyun.com/godop/article/details/80292210</guid><author>godop</author><pubDate>Sat, 12 May 2018 15:58:30 +0800</pubDate><description><![CDATA[转载出处：阮一峰HTTP 协议是互联网的基础协议，也是网页开发的必备知识，最新版本 HTTP/2 更是让它成为技术热点。本文介绍 HTTP 协议的历史演变和设计思路。一、HTTP/0.9HTTP 是基于 TCP/IP 协议的应用层协议。它不涉及数据包（packet）传输，主要规定了客户端和服务器之间的通信格式，默认使用80端口。最早版本是1991年发布的0.9版。该版本极其简单，只有一个命令GET...]]></description><category></category></item><item><title><![CDATA[MySQL触发器]]></title><link>https://blog.youkuaiyun.com/godop/article/details/80240690</link><guid>https://blog.youkuaiyun.com/godop/article/details/80240690</guid><author>godop</author><pubDate>Tue, 08 May 2018 17:26:21 +0800</pubDate><description><![CDATA[触发器可以让你在执行 INSERT、UPDATE或者 DETELE 的时候，执行一些特定的操作。可以在MySQL中指定是在 SQL 语句执行前还是在执行后触发。触发器本身没有返回值，不过它们可以读取或者改变触发 SQL 语句所影响的数据。所以，可以使用触发器实现一些强制限制，或者某些业务逻辑。使用触发器可以减少客户端和服务器之间的通信，所以触发器可以简化应用逻辑，还可以提高性能。另外还可以用于自动...]]></description><category></category></item><item><title><![CDATA[MySQL索引类型]]></title><link>https://blog.youkuaiyun.com/godop/article/details/80198679</link><guid>https://blog.youkuaiyun.com/godop/article/details/80198679</guid><author>godop</author><pubDate>Fri, 04 May 2018 21:35:18 +0800</pubDate><description><![CDATA[MySQL支持哪几种索引类型呢？从不同的角度讨论不一样，这篇文章是从数据结构的角度去分类，还有物理和逻辑角度只做简单说明。从物理存储角度1、聚集索引（clustered index）2、非聚集索引（non-clustered index）从逻辑角度1、主键索引：主键索引是一种特殊的唯一索引，不允许有空值2、普通索引或者单列索引3、多列索引（复合索引）：复合索引指多个字段上创建的索引，只有在查询条件...]]></description><category></category></item><item><title><![CDATA[lambda表达式（c++）]]></title><link>https://blog.youkuaiyun.com/godop/article/details/80150965</link><guid>https://blog.youkuaiyun.com/godop/article/details/80150965</guid><author>godop</author><pubDate>Mon, 30 Apr 2018 20:48:48 +0800</pubDate><description><![CDATA[1、lambda表达式是c++11 最重要也最常用的一个特性之一。lambda来源于函数式编程的概念，也是现代编程语言的一个特点。lambda有以下优点：    声明式编程风格：就地匿名定义目标函数或函数对象，不需要额外写一个命名函数或者函数对象。以更直接的方式去写程序，好的可读性和可维护性。    简洁：不需要额外在写一个函数或函数对象，避免了代码膨胀和功能分散，让开发者更加击中精力在手边的问题...]]></description><category></category></item></channel></rss>