<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Always__的代码世界]]></title><description><![CDATA[你所做的就是将简单的做到最好]]></description><link>https://blog.youkuaiyun.com/Always__</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Always__]]></copyright><item><title><![CDATA[录音播放系统(实现pcm转码mp3,wav)]]></title><link>https://blog.youkuaiyun.com/Always__/article/details/58750294</link><guid>https://blog.youkuaiyun.com/Always__/article/details/58750294</guid><author>Always__</author><pubDate>Wed, 01 Mar 2017 01:39:26 +0800</pubDate><description><![CDATA[本文介绍了基于waveX低级音频API采集音频，然后播放的技术，也支持实时的播放。对于将录音和播放分开的做法原因是为了保存pcm文件(未经压缩过的音频文件)，
然后转码wav和mp3格式。


PCM(Pulse code modulation)：脉冲编码调制 ,即对波形按照固定周期频率采样。为了保证采样后数据质量,采样频率必须是样本声音最高频率的两倍,这就是 Nyquist 频率 .]]></description><category></category></item><item><title><![CDATA[内存屏障解析]]></title><link>https://blog.youkuaiyun.com/Always__/article/details/51933186</link><guid>https://blog.youkuaiyun.com/Always__/article/details/51933186</guid><author>Always__</author><pubDate>Sun, 17 Jul 2016 17:03:49 +0800</pubDate><description><![CDATA[当你看到“内存屏障”四个字的时候，你的第一反应是什么？寄存器里取出了错误的值？ifence,sfence之类的指令？还是诸如volatile之类的关键字？好吧，我第一次看到这四个字的时候，脑子里浮现出的是魔兽争霸里绿油油的铺满苔藓的岩石屏障－
 －#，并且，当我搞明白内存屏障具体是什么，而且自认为对其很熟悉之后，我的第一反应依然是那几块绿油油的石头，而且很想上去A一把！

言归正传，先解释下]]></description><category></category></item><item><title><![CDATA[解决mysql无法远程登录的问题]]></title><link>https://blog.youkuaiyun.com/Always__/article/details/51873747</link><guid>https://blog.youkuaiyun.com/Always__/article/details/51873747</guid><author>Always__</author><pubDate>Sun, 10 Jul 2016 22:26:21 +0800</pubDate><description><![CDATA[基于安全考虑root账户一般只能本地访问，但是在开发过程中可能需要打开root的远程访问权限。
下面我们将列出解决方案。

若要允许Linux系统中的mysql数据库可以被远程连接，需要执行以下两个步骤：
1、进入mysql，创建一个新用户，将用户赋予远程登录操作数据库的权利。 
       格式：grant 权限 on 数据库名.表名 用户@登录主机 identified by "用]]></description><category></category></item><item><title><![CDATA[列出rpm包内容和解压rpm包内容]]></title><link>https://blog.youkuaiyun.com/Always__/article/details/51873722</link><guid>https://blog.youkuaiyun.com/Always__/article/details/51873722</guid><author>Always__</author><pubDate>Sun, 10 Jul 2016 22:09:46 +0800</pubDate><description><![CDATA[总是记不住这个命令，每用一次就google一次，有时候google的结果还找半天，记录在此。

列出rpm包的内容：
rpm -qpl *.rpm

解压rpm包的内容：（没有安装，就像解压tgz包一样rpm包）
rpm2cpio *.rpm | cpio -div

你的linux下可能没有rpm2cpio这个命令，用过简单指令安装即可。

sudo apt-get inst]]></description><category></category></item><item><title><![CDATA[/usr/bin/ld: skipping incompatible解决方案]]></title><link>https://blog.youkuaiyun.com/Always__/article/details/51873674</link><guid>https://blog.youkuaiyun.com/Always__/article/details/51873674</guid><author>Always__</author><pubDate>Sun, 10 Jul 2016 22:05:05 +0800</pubDate><description><![CDATA[今天在做项目的时候，用make命令后出现了/usr/bin/ld: skipping incompatible......问题。
这个问题实质是链接库文件时，库文件版本与平台版本不对应的问题。
解决方法：objdump -p libmylib.a  看一下该库的版本是32为还是64位的，或是ARM版还是..等等。仔细分析一下。你就会恍然大雾。（我的碰到的问题是：编译器选择的是64版，但是xxx]]></description><category></category></item><item><title><![CDATA[Ubuntu下忘记MySQL root密码解决方法]]></title><link>https://blog.youkuaiyun.com/Always__/article/details/51873640</link><guid>https://blog.youkuaiyun.com/Always__/article/details/51873640</guid><author>Always__</author><pubDate>Sun, 10 Jul 2016 21:54:57 +0800</pubDate><description><![CDATA[Linux下忘记MySQL root密码解决方法，基于Ubuntu 14.04 LTS。
忘了mysql密码，从网上找到的解决方案记录在这里。

编辑mysql的配置文件/etc/mysql/my.cnf，在[mysqld]段下加入一行“skip-grant-tables”。



重启mysql服务


@ubuntu:~$ sudo service mysql restar]]></description><category></category></item><item><title><![CDATA[linux 文件的atime,ctime,mtime]]></title><link>https://blog.youkuaiyun.com/Always__/article/details/51867457</link><guid>https://blog.youkuaiyun.com/Always__/article/details/51867457</guid><author>Always__</author><pubDate>Sat, 09 Jul 2016 16:55:59 +0800</pubDate><description><![CDATA[Linux系统文件有三个主要的时间属性，分别是 ctime(change time), atime(access time), mtime(modify time)。这三个时间很容易混淆，准备深入了解linux的童鞋请区分这三者的区别

atime：Access time，是在读取文件或者执行文件时更改，即文件最后一次被读取的时间。
说明： st_atime
           Time]]></description><category></category></item><item><title><![CDATA[【项目】HuffMan编码--文件压缩]]></title><link>https://blog.youkuaiyun.com/Always__/article/details/51712818</link><guid>https://blog.youkuaiyun.com/Always__/article/details/51712818</guid><author>Always__</author><pubDate>Sun, 19 Jun 2016 16:31:28 +0800</pubDate><description><![CDATA[HuffManTree,又称为最优二叉树，是加权路径最短的二叉树。


使用贪心算法来构建哈夫曼树。贪心算法：是指在问题求解时，总是做出当前看起来最好的选择。也就是说贪心算法做出的不是整体最优解，而是某种意义上的局部最优解。贪心算法不是对所有的问题都能得到最优解。


如下图哈夫曼树我们来分析下文件压缩的原理：






如图的哈夫曼树，我们将叶节点作为每个字符出现的次]]></description><category></category></item><item><title><![CDATA[【Git】Git指令学习与其原理探究（一）]]></title><link>https://blog.youkuaiyun.com/Always__/article/details/51693203</link><guid>https://blog.youkuaiyun.com/Always__/article/details/51693203</guid><author>Always__</author><pubDate>Thu, 16 Jun 2016 20:53:06 +0800</pubDate><description><![CDATA[这篇文章记录我学习Git的过程中遇到的问题及对于某些问题的看法，如有错误，还望不吝赐教！
ps:这篇文章介绍本地库，下篇将介绍与远程库的交互。


Git是什么 & 为什么要有Git？


    既然您能看到这篇文章，相信你对Git也有了一点点的了解，或者您本来就是大神，来观望下博主而已。
    言归正传，那么到底什么是Git呢！

    Git是目前世界上最先进的分布式]]></description><category></category></item><item><title><![CDATA[【网络】HTTP协议中的长连接和短连接（keep-alive状态）]]></title><link>https://blog.youkuaiyun.com/Always__/article/details/51606155</link><guid>https://blog.youkuaiyun.com/Always__/article/details/51606155</guid><author>Always__</author><pubDate>Tue, 07 Jun 2016 19:57:34 +0800</pubDate><description><![CDATA[什么是长连接


 HTTP1.1规定了默认保持长连接（HTTP persistent connection ，也有翻译为持久连接），数据传输完成了保持TCP连接不断开（不发RST包、不四次握手），等待在同域名下继续用这个通道传输数据；相反的就是短连接。

　HTTP首部的Connection: Keep-alive是HTTP1.0浏览器和服务器的实验性扩展，当前的HTTP1.1 RFC]]></description><category></category></item><item><title><![CDATA[一致性哈希算法分析]]></title><link>https://blog.youkuaiyun.com/Always__/article/details/51589540</link><guid>https://blog.youkuaiyun.com/Always__/article/details/51589540</guid><author>Always__</author><pubDate>Sun, 05 Jun 2016 15:14:51 +0800</pubDate><description><![CDATA[转自：http://blog.youkuaiyun.com/cywosp/article/details/23397179 




一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希（DHT）实现算法，设计目标是为了解决因特网中的热点(Hot spot)问题，初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题，使得分布式哈希（DHT）可以在P2P环境中真正得到]]></description><category></category></item><item><title><![CDATA[【DS】堆操作及其应用]]></title><link>https://blog.youkuaiyun.com/Always__/article/details/51586300</link><guid>https://blog.youkuaiyun.com/Always__/article/details/51586300</guid><author>Always__</author><pubDate>Sat, 04 Jun 2016 22:33:24 +0800</pubDate><description><![CDATA[堆数据结构是一种数组对象，它可以被视为一棵完全二叉树结构。
堆结构的二叉树存储是
最大堆：每个父节点的都大于孩子节点。
最小堆：每个父节点的都小于孩子节点。
代码如下：
#include
#include
#include
using namespace std;


//最大堆：每个父节点的值都大于孩子节点
//最大堆：每个父节点的值都小于孩子节点

//仿函数来确定创建大堆还是小堆]]></description><category></category></item><item><title><![CDATA[【DS】哈希表实现]]></title><link>https://blog.youkuaiyun.com/Always__/article/details/51584907</link><guid>https://blog.youkuaiyun.com/Always__/article/details/51584907</guid><author>Always__</author><pubDate>Sat, 04 Jun 2016 16:28:05 +0800</pubDate><description><![CDATA[哈希表的介绍和扩展请查看这篇文章：http://blog.youkuaiyun.com/always__/article/details/51584446


基于线性探测，二次探测的哈希表结构，实现字典查询。
代码如下：#pragma once
#include
#include
using namespace std;

////命名空间First--线性探测法
//namespace First]]></description><category></category></item><item><title><![CDATA[【DS】Hash表及布隆过滤器]]></title><link>https://blog.youkuaiyun.com/Always__/article/details/51584446</link><guid>https://blog.youkuaiyun.com/Always__/article/details/51584446</guid><author>Always__</author><pubDate>Sat, 04 Jun 2016 16:10:28 +0800</pubDate><description><![CDATA[什么是Hash
     Hash，一般翻译做“散列”，也有直接音译为“哈希”的，就是把任意长度的输入（又叫做预映射， pre-image），通过散列算法，变换成固定长度的输出，该输出就是散列值。这种转换是一种压缩映射，也就是，散列值的空间通常远小于输入的空间，不同的输入可能会散列成相同的输出，而不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数]]></description><category></category></item><item><title><![CDATA[HTTP状态码]]></title><link>https://blog.youkuaiyun.com/Always__/article/details/51544836</link><guid>https://blog.youkuaiyun.com/Always__/article/details/51544836</guid><author>Always__</author><pubDate>Tue, 31 May 2016 13:05:50 +0800</pubDate><description><![CDATA[转载自http://blog.youkuaiyun.com/irean_lau。




HTTP协议状态码表示的意思主要分为五类 ,大体是 :

1×× 　　保留 
2×× 　　表示请求成功地接收 
3×× 　　为完成请求客户需进一步细化请求 
4×× 　　客户错误 
5×× 　　服务器错误

100 Continue 
指示客户端应该继续请求。回送用于通知客户端此次请求已经收到]]></description><category></category></item><item><title><![CDATA[【Linux基础】静态库与动态库探究]]></title><link>https://blog.youkuaiyun.com/Always__/article/details/51451890</link><guid>https://blog.youkuaiyun.com/Always__/article/details/51451890</guid><author>Always__</author><pubDate>Thu, 19 May 2016 12:11:37 +0800</pubDate><description><![CDATA[在Linux操作系统中，普遍使用ELF格式作为可执行程序或者程序生成过程中的中间格式。ELF（Executable
 and Linking Format，可执行连接格式）是UNIX系统实验室（USL）作为应用程序二进制接口（Application BinaryInterface，ABI）而开发和发布的。工具接口标准委员会（TIS）选择了正在发展中的ELF标准作为工作在32位Intel体系上不同]]></description><category></category></item><item><title><![CDATA[【剑指offer】两队列实现栈与两栈实现队列]]></title><link>https://blog.youkuaiyun.com/Always__/article/details/51438496</link><guid>https://blog.youkuaiyun.com/Always__/article/details/51438496</guid><author>Always__</author><pubDate>Tue, 17 May 2016 19:04:54 +0800</pubDate><description><![CDATA[题目：用两个栈实现一个队列。队列的声明如下，请实现他的两个函数appendTail和deleteHead，分别完成在队列尾部插入节点和在队列头部删除节点的功能


在完成代码之前应该想清楚测试用例：
1，在空的队列(栈)里添加删除元素。
2，往非空的队列(栈)里添加删除元素。
3，连续删除元素直至队列(栈)为空。


两队列实现栈：

#include
#include
us]]></description><category></category></item><item><title><![CDATA[【Linux基础】常用服务器构建]]></title><link>https://blog.youkuaiyun.com/Always__/article/details/51429703</link><guid>https://blog.youkuaiyun.com/Always__/article/details/51429703</guid><author>Always__</author><pubDate>Tue, 17 May 2016 00:40:21 +0800</pubDate><description><![CDATA[在Linux下，有好多可以帮助我们更好工作的服务器，例如ftp，nfs，ssh服务器等，今天我就来记录一下我搭建的这几种服务器和具体他们的用法。
操作环境：Ubuntu14.04


ftp服务器
1.安装vsftpd服务器：sudo apt-get install vsftpd
2.配置vsftpd.conf文件
sudo vi /etc/vsftpd.conf
添加下面设置]]></description><category></category></item><item><title><![CDATA[【C语言】变长数组与柔性数组]]></title><link>https://blog.youkuaiyun.com/Always__/article/details/51376470</link><guid>https://blog.youkuaiyun.com/Always__/article/details/51376470</guid><author>Always__</author><pubDate>Wed, 11 May 2016 17:34:14 +0800</pubDate><description><![CDATA[前两天看程序，发现在某个函数中有下面这段程序：int n;              //define a variable n
int array[n];       //define an array with length n在我所学的C语言知识中，这种数组的定义在编译时就应该有问题的，因为定义数组时，数组的长度必须要是一个大于0的整型字面值或定义为
 const 的常量。例如下面这样in]]></description><category></category></item><item><title><![CDATA[【C语言】动态内存分配alloca]]></title><link>https://blog.youkuaiyun.com/Always__/article/details/51376225</link><guid>https://blog.youkuaiyun.com/Always__/article/details/51376225</guid><author>Always__</author><pubDate>Wed, 11 May 2016 17:17:58 +0800</pubDate><description><![CDATA[头文件#include
函数原型
void* _cdecl alloca(size_t);参数是申请分配内存的字节数，返回值为分配到的内存地址。


alloca主要的特征是，它是在栈上开辟的空间，当它作用域结束时会自动释放内存，不用像malloc那样，要用free动态释放空间。还有就是malloc开辟空间成功后，并未对内存空间初始化，必须调用memset来进行初始化，而alloca则初]]></description><category></category></item></channel></rss>