<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[冰枫的随笔]]></title><description><![CDATA[石梯砺步，木棉情长]]></description><link>https://blog.youkuaiyun.com/xinhanggebuguake</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; xinhanggebuguake]]></copyright><item><title><![CDATA[博客迁移公告]]></title><link>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/104103529</link><guid>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/104103529</guid><author>xinhanggebuguake</author><pubDate>Tue, 28 Jan 2020 23:16:59 +0800</pubDate><description><![CDATA[感谢大家对本博客的关注，现已迁移到个人博客网站，地址：https://www.cyningsun.com

]]></description><category></category></item><item><title><![CDATA[struts2与struts2-spring-plugin的整合]]></title><link>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/14648151</link><guid>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/14648151</guid><author>xinhanggebuguake</author><pubDate>Sat, 09 Nov 2013 16:12:43 +0800</pubDate><description><![CDATA[原文名称：使用 struts2的 builder
 alias 机制加载objectFactory
以下代码基于 struts2 版本2.1.8.1 版本分析。
在使用 Struts2的过程中，我们都喜欢使用 struts2 的spring 插件来让 spring 作为struts2 的默认对象容器，原理就在于在加载 struts2 之前先加载 spring容器，然后将 spring 容器加]]></description><category></category></item><item><title><![CDATA[struts2核心流程源码分析]]></title><link>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/11907161</link><guid>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/11907161</guid><author>xinhanggebuguake</author><pubDate>Sun, 22 Sep 2013 19:47:12 +0800</pubDate><description><![CDATA[Struts2的初始化
StrutsPrepareAndExecuteFilter
属性摘要




protected  List


excludedPatterns




protected  ExecuteOperations


execute




protected  PrepareOperations


prepare]]></description><category></category></item><item><title><![CDATA[C++限定符总结]]></title><link>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/8979208</link><guid>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/8979208</guid><author>xinhanggebuguake</author><pubDate>Mon, 27 May 2013 11:47:18 +0800</pubDate><description><![CDATA[概念：
连接：在一个执行程序中，标识符代表存放变量或者被编译过的函数体的存储空间。连接用链接器所见的方式描述存储空间。连接的方式有两种，内部链接和外部链接：
内部链接意味着只对正被编译的文件创建存储空间。用内部链接，别的文件可以使用相同的标识符或全局变量，链接器不会发现冲突——也就是为每一个标识符创建单独的存储空间。在C和C++众内部链接由关键字static指定。
外部链接意味着为所有被编译]]></description><category></category></item><item><title><![CDATA[Linux快速目录切换]]></title><link>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/8976880</link><guid>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/8976880</guid><author>xinhanggebuguake</author><pubDate>Sun, 26 May 2013 16:28:21 +0800</pubDate><description><![CDATA[快速目录切换使用到的是成为目录栈的东东，通过三个命令实现。pushd目录入栈与切换、dirs查看栈中内容、popd栈中目录出栈。
1、pushd命令


pushd命令执行，会在内存中维持一张目录列表，便于随时切换列表内目录



pushd命令是切换到上一次访问的目录，同时调整目录记录列表的顺序（pushd命令的实际作用和“cd -”的命令相类似）

pushd [-n] []]></description><category></category></item><item><title><![CDATA[shell条件测试]]></title><link>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/8974317</link><guid>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/8974317</guid><author>xinhanggebuguake</author><pubDate>Sat, 25 May 2013 20:29:08 +0800</pubDate><description><![CDATA[写脚本时，有时要判断字符串是否相等，可能还要检查文件状态或是数字测试。基于这些测试才能做进一步动作。
1、文件测试
测试文件状态的操作符如下：



-d 目录    -s 文件长度大于0、非空
-f 正规文件 -w 可写
-L 符号连接 -u 文件有suid位设置
-r 可读    -x 可执行


测试时使用逻辑操作符
测试文件状态是否为OK，但是有时要比较两个文件状]]></description><category></category></item><item><title><![CDATA[shell基础第十五篇-引号]]></title><link>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/8973343</link><guid>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/8973343</guid><author>xinhanggebuguake</author><pubDate>Sat, 25 May 2013 14:14:01 +0800</pubDate><description><![CDATA[引用必要性

这里只讲述引用的基本规则。因为使用引用的例子很多。本书接下来的两个部分将一一予以讲述。脚本中执行行操作时， shell将对脚本设置予以解释。要采取一种方法防止shell这样做，即使用引用号，包括各式引用或使用反斜线。一些用户在对文本字符串进行反馈操作时觉得使用引用很麻烦。有时不注意，只引用了一半，这时问题出现了。最好在反馈文本字符串时使用双引号。下面是各种引用的例子。]]></description><category></category></item><item><title><![CDATA[Linux基本命令之grep]]></title><link>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/8973247</link><guid>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/8973247</guid><author>xinhanggebuguake</author><pubDate>Sat, 25 May 2013 13:51:14 +0800</pubDate><description><![CDATA[1. Grep含义：


grep是由 g/RE/p 拼起来的，其中g为global的意思，RE为regular expression的简写，p为print的意思；即grep的意思为“全局搜索正则表达式并打印该行”（grep名称起源于ex编辑器）。
grep的工作方式是这样的，它在一个或多个文件中搜索字符串模板。如果模板包括空格，则必须被引用，模板后的所有字符串被看作文件名。搜索的结果被送]]></description><category></category></item><item><title><![CDATA[SHELL十三问要点总结]]></title><link>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/8904831</link><guid>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/8904831</guid><author>xinhanggebuguake</author><pubDate>Thu, 09 May 2013 12:17:16 +0800</pubDate><description><![CDATA[1、shell 会依据 IFS(Internal Field Seperator) 将 command line 所输入的文字给拆解为"字段"(word)。然后再针对特殊字符(meta)先作处理，最后再重组整行 command line。
其中的 IFS 是 shell 预设使用的字段分隔符，可以由一个及多个如下按键组成： 
* 空格键(White Space) 
* 表格键(Tab)]]></description><category></category></item><item><title><![CDATA[memcached-items操作]]></title><link>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/8782392</link><guid>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/8782392</guid><author>xinhanggebuguake</author><pubDate>Wed, 10 Apr 2013 13:23:59 +0800</pubDate><description><![CDATA[今天主要总结items相关的操作，items的操作分布比较多，定义和实现在memcachd.h/c、thread.h/c、items.h/c都有，感觉完全可以放在items.h/c中。这里就对所有的这些操作（除去stats部分）进行一个简单的总结。

        首先对数据结构、ITEM_*宏和一些变量进行一个简单的说明，这里先建立一个宏观的概念，理解了它们的用途对后续阅读程序有很大的帮助]]></description><category></category></item><item><title><![CDATA[memcached-多线程模型]]></title><link>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/8782373</link><guid>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/8782373</guid><author>xinhanggebuguake</author><pubDate>Wed, 10 Apr 2013 13:22:20 +0800</pubDate><description><![CDATA[本来计划研究memcached的多线程模型，后来发现网上博文《Memcached源码分析(线程模型)》写的非常好，因此，也省去了我的大部分时间，这里并不打算自己再重新总结。

        不过首先奉上我自己画的一张图，就称为memcached多线程交互的活动图吧，通过此图就基本掌握了main thread与单个worker thread的交互过程，图中序号表示基本的处理流程（图中drive]]></description><category></category></item><item><title><![CDATA[memcached-hashtable]]></title><link>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/8782353</link><guid>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/8782353</guid><author>xinhanggebuguake</author><pubDate>Wed, 10 Apr 2013 13:19:13 +0800</pubDate><description><![CDATA[今天来介绍memcached中hashtable部分的源码，hash部分的源码主要分布在assoc.h/c、hash.h/c中，总得来说代码比较简单，这里就稍微介绍一下。

         hashtable通常包括哈希函数和解决冲突的方法两个最主要的因素，memcached使用的哈希函数为Bob Jenkins在1996年发明的，定义位于hash.h中，实现在hash.c中，作者与2006]]></description><category></category></item><item><title><![CDATA[memcached-内存管理机制slab allocator]]></title><link>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/8782348</link><guid>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/8782348</guid><author>xinhanggebuguake</author><pubDate>Wed, 10 Apr 2013 13:17:34 +0800</pubDate><description><![CDATA[前端时间大致浏览了一下memcached的源码，但是并没有对相关的知识点进行总结和记录，所以很快就忘了，这次打算将memcached的源码再学习一遍，并进行总结归纳。

    memcached模块化设计比较好，每个模块除了对外接口定义在头文件外，其它函数定义及实现都在源文件中，且定义为static类型，这样很好的降低了模块之间的耦合性。下面，浏览源码将按照功能模块进行划分，逐步学习总结。]]></description><category></category></item><item><title><![CDATA[Memcached 结构分析]]></title><link>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/8782333</link><guid>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/8782333</guid><author>xinhanggebuguake</author><pubDate>Wed, 10 Apr 2013 13:15:04 +0800</pubDate><description><![CDATA[Memcached 结构分析

     Memcached是一个分布式的内存缓存库，正好自己想写个cache的模块，那么就偷偷师吧。
     功能库看的是实现原理和思路，性能库看的是实现细节，memcahed是属于一个看性能的库(实现cache功能的模块很多，但是性能就有高低了) 

1、memcached的数据交互协议
    memcached是分布式的内存缓存服务器，它是通过]]></description><category></category></item><item><title><![CDATA[概率估计（极大似然估计、拉普拉斯平滑定理、M-估计的关系）]]></title><link>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/8765536</link><guid>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/8765536</guid><author>xinhanggebuguake</author><pubDate>Sat, 06 Apr 2013 22:55:39 +0800</pubDate><description><![CDATA[英文原文链接：http://www.temida.si/~bojan/probability_estimation.php
原文：

Probability estimation
1 Introduction
Let us assume that in an experiment we have conducted n independent trials, of which there]]></description><category></category></item><item><title><![CDATA[mallet源码分析之bagging与boosting]]></title><link>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/8743185</link><guid>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/8743185</guid><author>xinhanggebuguake</author><pubDate>Sun, 31 Mar 2013 15:58:10 +0800</pubDate><description><![CDATA[转载请注明原载地址：http://blog.youkuaiyun.com/xinhanggebuguake/article/details/8743185
   
   把mallet中Bagging算法与Boosting放在一起，其一是因为两者都是很著名的集成学习算法，并且有很大的相似性，对比着分析能加深对两者的理解；其二两者的实现确实很简单。
算法
Bagging算法：
For t = 1, 2]]></description><category></category></item><item><title><![CDATA[熵，信息增益，信息增益率，Gini]]></title><link>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/8735169</link><guid>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/8735169</guid><author>xinhanggebuguake</author><pubDate>Fri, 29 Mar 2013 10:15:09 +0800</pubDate><description><![CDATA[话说今天《机器学习》上课被很深地打击了，标名为“数据挖掘”专业的我居然连个信息增益的例子都没能算正确。唉，自看书以来，这个地方就一直没有去推算过，每每看到决策树时看完Entropy就直接跳过后面增益计算了。因而，总想找个时间再回过来好好看一下，这不，被逼上了呢。神奇的墨菲定律呢：你担心它发生的，它就一定会发生。

回正题了，这三个指标均是决策树用来划分属性的时候用到的，其中信息增益（Info]]></description><category></category></item><item><title><![CDATA[mallet源码分析之决策树C4.5]]></title><link>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/8728875</link><guid>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/8728875</guid><author>xinhanggebuguake</author><pubDate>Wed, 27 Mar 2013 22:33:19 +0800</pubDate><description><![CDATA[本来在此之前还应该有一篇介绍mallet中贝叶斯实现的文章。鉴于已经写过mahout下贝叶斯的博客，算法过程已经十分完整，所以直接进入决策树算法的部分。以cc.mallet.classify.examples包下的DocumentClassifier为驱动来介绍C4.5算法。由于知识浅薄，疏漏错误之处在所难免，所以恳请各位能不吝赐教。
文本预处理
DocumentClassifier]]></description><category></category></item><item><title><![CDATA[libSVM源码分析]]></title><link>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/8705648</link><guid>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/8705648</guid><author>xinhanggebuguake</author><pubDate>Fri, 22 Mar 2013 13:10:44 +0800</pubDate><description><![CDATA[转载请注明原载地址：http://blog.youkuaiyun.com/xinhanggebuguake/article/details/8705648 
 
在此之前，上海交大模式分析与机器智能实验室对2.6版本的svm.cpp做了部分注解，《LibSVM学习（四）——逐步深入LibSVM》也介绍了libSVM的思路，很精彩。而我写这篇博客更侧重与理解算法流程与具体代码的结合点。（环境：LibSVM2]]></description><category></category></item><item><title><![CDATA[SMO算法]]></title><link>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/8705631</link><guid>https://blog.youkuaiyun.com/xinhanggebuguake/article/details/8705631</guid><author>xinhanggebuguake</author><pubDate>Fri, 22 Mar 2013 12:31:48 +0800</pubDate><description><![CDATA[SMO算法由Microsoft Research的John C. Platt在1998年提出，并成为最快的二次规划优化算法，特别针对线性SVM和数据稀疏时性能更优。关于SMO最好的资料就是他本人写的《Sequential Minimal Optimization A Fast Algorithm for Training Support Vector Machines》了。

我拜读了一下，下]]></description><category></category></item></channel></rss>