<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[guiwin的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/guiwin</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; guiwin]]></copyright><item><title><![CDATA[理解MySQL——索引与优化]]></title><link>https://blog.youkuaiyun.com/guiwin/article/details/103627715</link><guid>https://blog.youkuaiyun.com/guiwin/article/details/103627715</guid><author>guiwin</author><pubDate>Fri, 20 Dec 2019 10:06:36 +0800</pubDate><description><![CDATA[写在前面：索引对查询的速度有着至关重要的影响，理解索引也是进行数据库性能调优的起点。考虑如下情况，假设数据库中一个表有10^6条记录，DBMS的页面大小为4K，并存储100条记录。如果没有索引，查询将对整个表进行扫描，最坏的情况下，如果所有数据页都不在内存，需要读取10^4个页面，如果这10^4个页面在磁盘上随机分布，需要进行10^4次I/O，假设磁盘每次I/O时间为10ms(忽略数据传输时间)，...]]></description><category></category></item><item><title><![CDATA[do {...} while (0) 在宏定义中的作用]]></title><link>https://blog.youkuaiyun.com/guiwin/article/details/103416970</link><guid>https://blog.youkuaiyun.com/guiwin/article/details/103416970</guid><author>guiwin</author><pubDate>Fri, 06 Dec 2019 09:49:33 +0800</pubDate><description><![CDATA[如果你是一名C程序员，你肯定很熟悉宏，它们非常强大，如果正确使用可以让你的工作事半功倍。然而，如果你在定义宏时很随意没有认真检查，那么它们可能使你发狂，浪费N多时间。在很多的C程序中，你可能会看到许多看起来不是那么直接的较特殊的宏定义。下面就是一个例子：


			1

			2
			
			
			#define __set_task_state(tsk, state_value) ...]]></description><category></category></item><item><title><![CDATA[RTSP/RTP 媒体传输和控制协议]]></title><link>https://blog.youkuaiyun.com/guiwin/article/details/84843032</link><guid>https://blog.youkuaiyun.com/guiwin/article/details/84843032</guid><author>guiwin</author><pubDate>Wed, 05 Dec 2018 20:58:16 +0800</pubDate><description><![CDATA[1 前言

本文档主要描述了 NewStream Vision 系统中前端视频服务器(DVR, 网络摄像机), 中心转发服务器以及客户端之间的多媒体通信以及控制协议.

本协议主要基于标准的 IETE 的 RTSP/RTP 以及相关协议, 并针对具体应用定义了部分扩展.

本协议只是当前实现的总结和整理, 具体的协议细节以实际实现为准

2 定义

RTSP

实现流协议

SDP

会话描述协议...]]></description><category></category></item><item><title><![CDATA[AUTH:basic认证和digest认证]]></title><link>https://blog.youkuaiyun.com/guiwin/article/details/84838552</link><guid>https://blog.youkuaiyun.com/guiwin/article/details/84838552</guid><author>guiwin</author><pubDate>Wed, 05 Dec 2018 16:26:52 +0800</pubDate><description><![CDATA[Http authentication....BASIC:

In the context of an HTTP transaction, basic access authentication is a method for a web browser or other client program to provide a user name and password when making ...]]></description><category></category></item><item><title><![CDATA[第二章 信息的表示和处理]]></title><link>https://blog.youkuaiyun.com/guiwin/article/details/82839005</link><guid>https://blog.youkuaiyun.com/guiwin/article/details/82839005</guid><author>guiwin</author><pubDate>Tue, 25 Sep 2018 15:13:16 +0800</pubDate><description><![CDATA[
	信息存储
	
三种最重要的数字编码：

无符号：编码是基于传统的二进制表示法的。表示大于或等于零的数字。

二进制补码：编码时表示有符号整数的最常见的方式。有符号整数就是为正或者为负的数字。

浮点数：编码是表示实数的科学记数法的以二为基数的版本。


	整数表示
	
有符号数到无符号数的隐式强制转换导致了某些与直觉不相符的行为，而且我们常常会忽视了它的影响。为了避免这类错误的一种方法就是绝不...]]></description><category></category></item><item><title><![CDATA[第一章 计算机系统漫游]]></title><link>https://blog.youkuaiyun.com/guiwin/article/details/82837806</link><guid>https://blog.youkuaiyun.com/guiwin/article/details/82837806</guid><author>guiwin</author><pubDate>Tue, 25 Sep 2018 14:15:01 +0800</pubDate><description><![CDATA[       计算机系统是由硬件和系统软件组成，它们共同协作以运行应用程序。计算机内部信息被表示为一组组的位，它们依据不同的上下文又有不同的解释方式。

      操作系统内核是应用程序和硬件之间的媒介。它提供三个基本的抽象概念：文件是对I/O设备的抽象概念；虚拟存储器是对主存和磁盘的抽象概念；进程是处理器、主存和I/O设备的抽象概念。

      上下文：操作系统保存进程运行所需的所有状态信...]]></description><category></category></item><item><title><![CDATA[System V IPC vs POSIX IPC]]></title><link>https://blog.youkuaiyun.com/guiwin/article/details/82782151</link><guid>https://blog.youkuaiyun.com/guiwin/article/details/82782151</guid><author>guiwin</author><pubDate>Thu, 20 Sep 2018 10:28:41 +0800</pubDate><description><![CDATA[TIP：

What are the differences between System V IPC and POSIX IPC ?
	Why do we have two standards ?
	How to decide which IPC functions to use ?
ANS:

Both have the same basic tools -- semaphores, shar...]]></description><category></category></item><item><title><![CDATA[机器学习概要3]]></title><link>https://blog.youkuaiyun.com/guiwin/article/details/82595710</link><guid>https://blog.youkuaiyun.com/guiwin/article/details/82595710</guid><author>guiwin</author><pubDate>Mon, 10 Sep 2018 21:01:28 +0800</pubDate><description><![CDATA[31 | 建模连续分布：高斯网络

高斯网络采用高斯线性模型建模连续变量，其数字特征为均值向量和协方差矩阵；
	高斯贝叶斯网络利用多元高斯分布生成独立图，利用信息矩阵计算网络中的条件概率；
	高斯马尔可夫随机场具有成对马尔可夫性，通过高斯分布可以确定结点势和边势；
	混合网络是同时具有离散型结点和连续型结点的概率图模型。


32 | 从有限到无限：高斯过程

高斯过程由无穷多个随机变量组成，定义...]]></description><category></category></item><item><title><![CDATA[机器学习概要2]]></title><link>https://blog.youkuaiyun.com/guiwin/article/details/82595214</link><guid>https://blog.youkuaiyun.com/guiwin/article/details/82595214</guid><author>guiwin</author><pubDate>Mon, 10 Sep 2018 20:33:45 +0800</pubDate><description><![CDATA[19 | 非参数化的局部模型：K近邻

基于实例的学习方法学的不是明确的泛化模型，而是样本之间的关系；
	k近邻算法是非参数的局部化模型，具有无需训练的优点，但分类新实例的计算复杂度较高；
	k 近邻算法的性能取决于超参数 k 的取值和距离的定义方式；
	核方法和近邻算法都可以用于数据的概率密度估计。


20 | 基于距离的学习：聚类与度量学习


	聚类分析是一类描述模型，它将数据按照相似度分...]]></description><category></category></item><item><title><![CDATA[virtualbox无法打开虚拟机，"error in supR3HardenedWinReSpawn"终极解决方法]]></title><link>https://blog.youkuaiyun.com/guiwin/article/details/82419379</link><guid>https://blog.youkuaiyun.com/guiwin/article/details/82419379</guid><author>guiwin</author><pubDate>Wed, 05 Sep 2018 11:18:53 +0800</pubDate><description><![CDATA[解决方法:
那是因为vboxdrv服务没有安装或没有成功启动，
64位的系统经常这样，
找到安装目录下的vboxdrv文件夹，
如D:\Program Files\Oracle\VirtualBox\drivers\vboxdrv，
右击VBoxDrv.inf，选安装，然后重启。...]]></description><category></category></item><item><title><![CDATA[机器学习概要1]]></title><link>https://blog.youkuaiyun.com/guiwin/article/details/82354503</link><guid>https://blog.youkuaiyun.com/guiwin/article/details/82354503</guid><author>guiwin</author><pubDate>Mon, 03 Sep 2018 20:40:23 +0800</pubDate><description><![CDATA[模型的误差包括三个部分：偏差（bias），方差（variance）和噪声（noise）。

模型的设计准则

当模型本身过于复杂时，特征和类别之间的关系中所有的细枝末节都被捕捉，主要的趋势反而在乱花渐欲迷人眼中没有得

到应有的重视，这就会导致过拟合（overfitting）的发生。反过来，如果模型过于简单，它不仅没有能力捕捉细微的相关性，甚

至连主要趋势本身都没办法抓住，这样的现象就是欠拟合（...]]></description><category></category></item><item><title><![CDATA[多重指针--函数外申请动态内存]]></title><link>https://blog.youkuaiyun.com/guiwin/article/details/81411244</link><guid>https://blog.youkuaiyun.com/guiwin/article/details/81411244</guid><author>guiwin</author><pubDate>Sat, 04 Aug 2018 15:31:19 +0800</pubDate><description><![CDATA[一、申请动态内存函数 int apply_memory(const char **pcDesAddr, const int len)：


/*************************************************
  Function:    	int apply_memory(const char **pcDesAddr, const int len)
  Descr...]]></description><category></category></item><item><title><![CDATA[数组指针和指针数组的区别]]></title><link>https://blog.youkuaiyun.com/guiwin/article/details/81407801</link><guid>https://blog.youkuaiyun.com/guiwin/article/details/81407801</guid><author>guiwin</author><pubDate>Sat, 04 Aug 2018 10:05:50 +0800</pubDate><description><![CDATA[ 

数组指针（也称行指针）
定义 int (*p)[n];
()优先级高，首先说明p是一个指针，指向一个整型的一维数组，这个一维数组的长度是n，也可以说是p的步长。也就是说执行p+1时，p要跨过n个整型数据的长度。

如要将二维数组赋给一指针，应这样赋值：
int a[3][4];
int (*p)[4]; //该语句是定义一个数组指针，指向含4个元素的一维数组。
 p=a;        //...]]></description><category></category></item><item><title><![CDATA[对文件或数据进行CRC校验]]></title><link>https://blog.youkuaiyun.com/guiwin/article/details/81327927</link><guid>https://blog.youkuaiyun.com/guiwin/article/details/81327927</guid><author>guiwin</author><pubDate>Wed, 01 Aug 2018 11:37:34 +0800</pubDate><description><![CDATA[用于对一个文件进行CRC校验，以确保文件数据传输的正确性。

废话不多说，直接上代码！

crc32.h

 



 


	#ifndef CRC_32_H
	
	
	#define CRC_32_H
	
	
	#ifdef __cplusplus
	
	
	extern &quot;C&quot; {
	
	
	#endif
	
	
	void init_crc_table(void);
	
	
	unsign...]]></description><category></category></item><item><title><![CDATA[合并烧写程序BIN文件的两种方法]]></title><link>https://blog.youkuaiyun.com/guiwin/article/details/81076468</link><guid>https://blog.youkuaiyun.com/guiwin/article/details/81076468</guid><author>guiwin</author><pubDate>Tue, 17 Jul 2018 10:14:46 +0800</pubDate><description><![CDATA[在单片机的开发过程中，经常需要将两个单独的BIN文件合并成一个文件，方便烧写和生产。下面结合STM32的IAP Bootloader Code和Application Code的合并，介绍两种合并BIN文件的方法。

      首先简单介绍一下STM32的IAP。IAP(In-application-programming)，即在应用中编程。有了它，产品发布之后，仍然可以方便的升级固件，而不需要...]]></description><category></category></item><item><title><![CDATA[Linux内核中Makefile、Kconfig和.config的关系]]></title><link>https://blog.youkuaiyun.com/guiwin/article/details/81069934</link><guid>https://blog.youkuaiyun.com/guiwin/article/details/81069934</guid><author>guiwin</author><pubDate>Mon, 16 Jul 2018 18:59:54 +0800</pubDate><description><![CDATA[我们在编译Linux内核时，往往在Linux内核的顶层目录会执行一些命令，这里我以RK3288举例，比如：make firefly-rk3288-linux_defconfig、make menuconfig、make firefly-rk3288.img、make zImage等等。先不管这具体的含义，首先提出几个疑问：

本文引用地址：http://emb.hqyj.com/Column/75...]]></description><category></category></item><item><title><![CDATA[贝叶斯学派与频率学派]]></title><link>https://blog.youkuaiyun.com/guiwin/article/details/80936017</link><guid>https://blog.youkuaiyun.com/guiwin/article/details/80936017</guid><author>guiwin</author><pubDate>Fri, 06 Jul 2018 09:41:05 +0800</pubDate><description><![CDATA[频率学派从「自然」角度出发，试图直接为「事件」本身建模，即事件A在独立重复试验中发生的频率趋于极限p，那么这个极限就是该事件的概率。



图1：频率视角下的机器学习

贝叶斯学派并不从试图刻画「事件」本身，而从「观察者」角度出发。贝叶斯学派并不试图说「事件本身是随机的」，或者「世界的本体带有某种随机性」，这套理论根本不言说关于「世界本体」的东西，而只是从「观察者知识不完备」这一出发点开始，构造一...]]></description><category></category></item><item><title><![CDATA[Shell 资料整理]]></title><link>https://blog.youkuaiyun.com/guiwin/article/details/80840649</link><guid>https://blog.youkuaiyun.com/guiwin/article/details/80840649</guid><author>guiwin</author><pubDate>Thu, 28 Jun 2018 15:00:38 +0800</pubDate><description><![CDATA[linux中shell变量$#,$@,$0,$1,$2的含义解释：变量说明： $$ Shell本身的PID（ProcessID） $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码（返回值） $- 使用Set命令设定的Flag一览 $* 所有参数列表。如&quot;$*&quot;用「&quot;」括起来的情况、以&quot;$1 $2 … $n&quot;的形式输出所有参数。 $@ 所有参数列表。如&quot;$@&quot;用「...]]></description><category></category></item><item><title><![CDATA[Makefile 使用总结]]></title><link>https://blog.youkuaiyun.com/guiwin/article/details/80604218</link><guid>https://blog.youkuaiyun.com/guiwin/article/details/80604218</guid><author>guiwin</author><pubDate>Thu, 07 Jun 2018 09:24:20 +0800</pubDate><description><![CDATA[1. Makefile 简介Makefile 是和 make 命令一起配合使用的.很多大型项目的编译都是通过 Makefile 来组织的, 如果没有 Makefile, 那很多项目中各种库和代码之间的依赖关系不知会多复杂.Makefile的组织流程的能力如此之强, 不仅可以用来编译项目, 还可以用来组织我们平时的一些日常操作. 这个需要大家发挥自己的想象力. 本篇博客是基于 {精华} 跟我一起写 ...]]></description><category></category></item><item><title><![CDATA[调试技巧--宏打印开关]]></title><link>https://blog.youkuaiyun.com/guiwin/article/details/79664036</link><guid>https://blog.youkuaiyun.com/guiwin/article/details/79664036</guid><author>guiwin</author><pubDate>Fri, 23 Mar 2018 11:16:46 +0800</pubDate><description><![CDATA[前言    在代码调试过程中，或多或少会添加printf()函数输出调试信息来协助代码地调试工作。但当代码调试OK进入发布阶段时，将printf()都注释会造成代码混乱不符合编程规范，将其删除又会带来后续调试地不便。所以很多人采用了，宏定义的方式来输出调试语句。正文常见地宏定义打印开关如下：#ifdef __DEBUG
#define DEBUG(info)    printf(info)
#el...]]></description><category></category></item></channel></rss>