<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[提后在的博客]]></title><description><![CDATA[勤求知，尽人事]]></description><link>https://blog.youkuaiyun.com/blakeFez</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; blakeFez]]></copyright><item><title><![CDATA[Vuex源码解析]]></title><link>https://blog.youkuaiyun.com/blakeFez/article/details/82387989</link><guid>https://blog.youkuaiyun.com/blakeFez/article/details/82387989</guid><author>blakeFez</author><pubDate>Tue, 04 Sep 2018 18:07:31 +0800</pubDate><description><![CDATA[之前看了一下Vuex源码，在这里分享一下。 
准备阶段： 
先去github上把源码下载下来：



git clone https://github.com/vuejs/vuex.git
cd vuex
npm i

把依赖安装一下，这样就可以运行 npm run dev 
之后在浏览器上打开http://localhost:8080/ ，就可以看到如下页面： 
 
随便点击进入一个项目，之后，...]]></description><category></category></item><item><title><![CDATA[用php实现几种常见的排序算法]]></title><link>https://blog.youkuaiyun.com/blakeFez/article/details/62069860</link><guid>https://blog.youkuaiyun.com/blakeFez/article/details/62069860</guid><author>blakeFez</author><pubDate>Tue, 14 Mar 2017 22:41:26 +0800</pubDate><description><![CDATA[一、冒泡排序 
冒泡排序理解起来是最简单，但是时间复杂度（O(n^2)）也是最大的之一，实现代码如下：function bubbleSort($arr) {
    $len = count($arr);
    for ($i = 0; $i &lt; $len; $i++) {
        // 遍历i后面的元素，只要该元素小于当前元素，就把较小的往前冒泡
        for ($j = $i]]></description><category></category></item><item><title><![CDATA[php源码阅读----php5.3.27 mysqli扩展bug及修复]]></title><link>https://blog.youkuaiyun.com/blakeFez/article/details/60881607</link><guid>https://blog.youkuaiyun.com/blakeFez/article/details/60881607</guid><author>blakeFez</author><pubDate>Wed, 08 Mar 2017 20:34:11 +0800</pubDate><description><![CDATA[最近在做一个功能，需要设置mysql查询超时。于是就使用mysqli的options(MYSQL_OPT_READ_TIMEOUT,5)或者options(11,5)，但结果却出人意料。首先，我写了如下的测试代码：<?php
    $mysqli = mysqli_init();
    $r = $mysqli->options(11, 1);
    var_dump($r);
    $my]]></description><category></category></item><item><title><![CDATA[centos 6.5 docker安装]]></title><link>https://blog.youkuaiyun.com/blakeFez/article/details/60780287</link><guid>https://blog.youkuaiyun.com/blakeFez/article/details/60780287</guid><author>blakeFez</author><pubDate>Tue, 07 Mar 2017 21:30:33 +0800</pubDate><description><![CDATA[docker这东西火了挺久了，最近就抽空来玩一下。但由于我的虚拟机centos6.5的内核版本是2.6.32-279.el6.x86_64的，所以安装前，需要升级一下。升级步骤如下：一、下载如下两个文件：
    kernel-ml-aufs-3.10.5-3.el6.x86_64.rpm.gz
    kernel-ml-aufs-devel-3.10.5-3.el6.x86_64.rpm.gz]]></description><category></category></item><item><title><![CDATA[mysql大表更新comment方案]]></title><link>https://blog.youkuaiyun.com/blakeFez/article/details/59486198</link><guid>https://blog.youkuaiyun.com/blakeFez/article/details/59486198</guid><author>blakeFez</author><pubDate>Thu, 02 Mar 2017 11:34:27 +0800</pubDate><description><![CDATA[最近由于业务需要，要更新一个mysql大表的部分字段的comment，于是，首先想到的是用alter table xxx modify。本以为mysql的modify命令可以做到只是简单修改frm文件，然而它有一个致命的弱点，那就是modify命令必须加上字段定义。官方语法如下：| MODIFY [COLUMN] col_name column_definition
        [FIRST |]]></description><category></category></item><item><title><![CDATA[主机无法用ssh连接虚拟机问题]]></title><link>https://blog.youkuaiyun.com/blakeFez/article/details/52939757</link><guid>https://blog.youkuaiyun.com/blakeFez/article/details/52939757</guid><author>blakeFez</author><pubDate>Wed, 26 Oct 2016 23:42:02 +0800</pubDate><description><![CDATA[今天遇到一个很神奇的问题，打开虚拟机，然后执行ifconfig，结果如下： 
 
然后用secureCRT连接，发现老是连接不上。于是我在cmd命令行上执行：ping 192.168.154.10发现是ping不通的。这就尴尬了。后来发现，在“更改适配器选项”那里，看不到熟悉的“VMware Network Adapter VMnet8”。于是网上找了一下，其实问题很简单，在虚拟机的虚拟网络编辑器那]]></description><category></category></item><item><title><![CDATA[kafkaSpout工作流程简介]]></title><link>https://blog.youkuaiyun.com/blakeFez/article/details/52175284</link><guid>https://blog.youkuaiyun.com/blakeFez/article/details/52175284</guid><author>blakeFez</author><pubDate>Wed, 10 Aug 2016 18:59:36 +0800</pubDate><description><![CDATA[一切从kafkaSpout的open函数开始。 
     ①、new一个ZKState的类，这个类主要是用于读写zk的数据。接下来的很多类会调用这个类中的方法，来获取partition信息、broker信息和offset信息，并更新offset信息。 
     ②、new一个DynamicPartitionConnections类。这个类的_reader变量会存放哪个partition的lead]]></description><category></category></item><item><title><![CDATA[rtrim函数的一个坑]]></title><link>https://blog.youkuaiyun.com/blakeFez/article/details/51969310</link><guid>https://blog.youkuaiyun.com/blakeFez/article/details/51969310</guid><author>blakeFez</author><pubDate>Wed, 20 Jul 2016 16:00:47 +0800</pubDate><description><![CDATA[简述一下今天遇到的问题： 
在我的代码里面有如下代码段：<?php
    header("Content-type:text/html;charset=utf8");
    echo rtrim("威、","、");本来的预想是输出“威”。然而事与愿违，输出了几个乱码。这是为什么呢？容我细细道来。 
首先要知道rtrim函数的功能，它的第二个参数是一个string，其中的每个char都会被拿出来]]></description><category></category></item><item><title><![CDATA[mysql大量数据迁移]]></title><link>https://blog.youkuaiyun.com/blakeFez/article/details/51076588</link><guid>https://blog.youkuaiyun.com/blakeFez/article/details/51076588</guid><author>blakeFez</author><pubDate>Wed, 06 Apr 2016 17:09:03 +0800</pubDate><description><![CDATA[最近有个需求，要把机器a上的一个数据库迁移到机器b上，这个数据库的数据有100多个G。所以，果断抛弃用mysqldump的方法来迁移。这时候想到的就是直接复制文件来做迁移。 
     于是我按照网上的说法，步骤如下： 
     一、把机器b的mysql停掉。 
     二、把机器a上要迁移的库的整个目录复制到机器b的mysql data目录下。 
     三、修改目录权限为700，修改文件权]]></description><category></category></item><item><title><![CDATA[PHP session文件锁住及解决]]></title><link>https://blog.youkuaiyun.com/blakeFez/article/details/50917741</link><guid>https://blog.youkuaiyun.com/blakeFez/article/details/50917741</guid><author>blakeFez</author><pubDate>Thu, 17 Mar 2016 22:22:50 +0800</pubDate><description><![CDATA[最近项目遇到一个神奇的问题，当一个页面卡主的时候，用同一个浏览器打开的我们网站的其他页面，也会跟着卡主。但如果我把浏览器关掉，然后再打开，页面就不会卡了，或者换一个浏览器打开，页面也不会卡。我第一时间就觉得，应该是session的问题。 
于是我用strace 跟踪了一下那个php进程，发现 
 
果然是session文件死锁了。 
于是网上找了下，大多是使用session_write_close(]]></description><category></category></item><item><title><![CDATA[nodejs安装提示express不是内部命令]]></title><link>https://blog.youkuaiyun.com/blakeFez/article/details/50889037</link><guid>https://blog.youkuaiyun.com/blakeFez/article/details/50889037</guid><author>blakeFez</author><pubDate>Mon, 14 Mar 2016 19:26:27 +0800</pubDate><description><![CDATA[今天在window下搭建了nodejs环境，下载安装包，并安装在指定目录，我放在D:\nodejs然后在命令行下，进入该目录，执行npm install -g express
npm install jade安装完后，发现执行express -v会报错。 
原来是express4.0版本以后，将命令工具分家出来了，所以我们还需要安装一个命令工具,命令如下：npm install -g express]]></description><category></category></item><item><title><![CDATA[用PHP实现n的阶乘--高精度算法]]></title><link>https://blog.youkuaiyun.com/blakeFez/article/details/50838396</link><guid>https://blog.youkuaiyun.com/blakeFez/article/details/50838396</guid><author>blakeFez</author><pubDate>Wed, 09 Mar 2016 20:27:11 +0800</pubDate><description><![CDATA[今天在IT届，最火的新闻莫过于李世石输给了alphago。看到新闻说，“围棋有361个落子点，所以下棋有10^171种可能。”然后我就突然想361的阶乘是多少呢？即361*360*359*358*......*5*4*3*2*1 = ?于是自己用php实现了一下算法。代码如下：<?php
    $result = "1";
    for($i = 1; $i <= 361; $i++){]]></description><category></category></item><item><title><![CDATA[angularjs $watch ng-include 中的变量引发的问题]]></title><link>https://blog.youkuaiyun.com/blakeFez/article/details/50698582</link><guid>https://blog.youkuaiyun.com/blakeFez/article/details/50698582</guid><author>blakeFez</author><pubDate>Fri, 19 Feb 2016 15:54:56 +0800</pubDate><description><![CDATA[最近接触一个新项目，用到了angularjs，之前对angularjs不熟悉，于是就被坑了，在这里小计一下。 
我有两个文件，文件a.html内容如下：<html>
     <head>
          <script src='angular.js'></script>
     </head>
     <body>
          <div ng-app="myApp" ng-con]]></description><category></category></item><item><title><![CDATA[mysql优化方案]]></title><link>https://blog.youkuaiyun.com/blakeFez/article/details/50110897</link><guid>https://blog.youkuaiyun.com/blakeFez/article/details/50110897</guid><author>blakeFez</author><pubDate>Mon, 30 Nov 2015 13:02:17 +0800</pubDate><description><![CDATA[1、当where语句后面有多列条件时，为这多个列建立一个联合索引比为每个列建立独立索引要好的多。由于为每个列建立独立索引，mysql在查询时，其实是先每个列的索引去查询数据，然后把查询回来的数据做一次合并。而联合索引的话，mysql只需要用一个索引去查询数据，然后就能得到结果。2、建立联合索引时，一定要注意各个列的顺序，mysql在使用联合索引时，会遵循“最左匹配”原则。（注意：最左匹配并不是说，s]]></description><category></category></item><item><title><![CDATA[【mysql】explain语句的输出格式]]></title><link>https://blog.youkuaiyun.com/blakeFez/article/details/49951069</link><guid>https://blog.youkuaiyun.com/blakeFez/article/details/49951069</guid><author>blakeFez</author><pubDate>Fri, 20 Nov 2015 19:39:01 +0800</pubDate><description><![CDATA[本文是翻译而来的，原文地址：EXPLAIN Output Formatexplain语句会为我们显示select语句的执行计划相关的信息。每个在select语句中用到的table，explain语句都会为其返回一行信息，而且这些table的顺序是按照MYSQL查询时的顺序输出的。MYSQL使用内嵌循环的方式来解决所有连表。这意味着，MYSQL会先从第一张表中读取一行数据，然后去第二张表中寻找匹配的行]]></description><category></category></item><item><title><![CDATA[[mysql]explain语句中的key_len计算]]></title><link>https://blog.youkuaiyun.com/blakeFez/article/details/49871165</link><guid>https://blog.youkuaiyun.com/blakeFez/article/details/49871165</guid><author>blakeFez</author><pubDate>Mon, 16 Nov 2015 20:15:13 +0800</pubDate><description><![CDATA[有时候表中有联合索引时，我们想确定我们的sql使用了几个索引字段，这时候就可以用explain查看该sql的key_len，然后通过key_len的值来判断该sql使用了几个索引字段。 
假设有如下表：CREATE TABLE `tblGameRemain` (
    `id` int(11) not null auto_increment primary key,
    `RecDate` d]]></description><category></category></item><item><title><![CDATA[PHP扩展代码结构详解]]></title><link>https://blog.youkuaiyun.com/blakeFez/article/details/49863113</link><guid>https://blog.youkuaiyun.com/blakeFez/article/details/49863113</guid><author>blakeFez</author><pubDate>Mon, 16 Nov 2015 11:01:53 +0800</pubDate><description><![CDATA[PHP扩展代码结构详解 ：
 这个是继：使用ext_skel和phpize构建php5扩展 
 内容 （拆分出来）


Zend_API：深入_PHP_内核：http://cn2.php.net/manual/zh/internals2.ze1.php
我们使用ext_skel创建扩展 hello_module,该模块包含一个方法：hello_world。

使用ext_skel ]]></description><category></category></item><item><title><![CDATA[【php】foreach中使用引用引起的问题]]></title><link>https://blog.youkuaiyun.com/blakeFez/article/details/49785727</link><guid>https://blog.youkuaiyun.com/blakeFez/article/details/49785727</guid><author>blakeFez</author><pubDate>Wed, 11 Nov 2015 19:43:34 +0800</pubDate><description><![CDATA[废话不多说，直接看如下代码：     $arr = array('a','b','c','d');
     foreach($arr as &$v){}     foreach($arr as $v){
          var_dump($v);
     }运行后，结果如下：string 'a' (length=1)
string 'b' (length=1)
string 'c' (len]]></description><category></category></item><item><title><![CDATA[使用secureCrt端口转发连接远程服务器mysql]]></title><link>https://blog.youkuaiyun.com/blakeFez/article/details/49281787</link><guid>https://blog.youkuaiyun.com/blakeFez/article/details/49281787</guid><author>blakeFez</author><pubDate>Tue, 20 Oct 2015 19:51:28 +0800</pubDate><description><![CDATA[经常遇到这样一种情况，本地无法连接线上的服务器A的mysql。但是我们可以连接线上服务器B，然后B服务器可以连接到A服务器的mysql。这时候，我们如果想让本地搭建的开发环境连上服务器A的mysql，就可以使用secureCrt的端口转发功能。 
     这个东西的原理其实就是，secureCrt监听本地端口x，当x有请求时，把请求的信息获取，然后传给远程服务器的端口y，然后远程服务器的端口y返回]]></description><category></category></item><item><title><![CDATA[B-tree/B+tree/B*tree]]></title><link>https://blog.youkuaiyun.com/blakeFez/article/details/48973561</link><guid>https://blog.youkuaiyun.com/blakeFez/article/details/48973561</guid><author>blakeFez</author><pubDate>Thu, 08 Oct 2015 15:52:41 +0800</pubDate><description><![CDATA[1.前言：

动态查找树主要有：二叉查找树（Binary Search Tree），平衡二叉查找树（Balanced Binary Search Tree），红黑树 (Red-Black Tree )，B-tree/B+-tree/ B*-tree (B~Tree)。前三者是典型的二叉查找树结构，其查找的时间复杂度O(log2N)与树的深度相关，那么降低树的深度自然对查找效率是有所提高的；还有]]></description><category></category></item></channel></rss>