<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[codingkid的专栏]]></title><description><![CDATA[认真做好一件事，认真做好每件事！codingkid@qq.com]]></description><link>https://blog.youkuaiyun.com/codingkid</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; codingkid]]></copyright><item><title><![CDATA[2014第一篇]]></title><link>https://blog.youkuaiyun.com/codingkid/article/details/40519185</link><guid>https://blog.youkuaiyun.com/codingkid/article/details/40519185</guid><author>codingkid</author><pubDate>Tue, 28 Oct 2014 09:24:28 +0800</pubDate><description><![CDATA[这一年真的挺忙，没给自己找借口，还是坚持做笔记，只是没有写博客。
自从上手了]]></description><category></category></item><item><title><![CDATA[ping和traceroute]]></title><link>https://blog.youkuaiyun.com/codingkid/article/details/9397873</link><guid>https://blog.youkuaiyun.com/codingkid/article/details/9397873</guid><author>codingkid</author><pubDate>Sun, 21 Jul 2013 14:49:07 +0800</pubDate><description><![CDATA[看了看ping和traceroute的源码，对比了一下这两个基于ip层协议的应用小程序。
虽然实现原理都比较简单，却是十分有用的检测工具。


ping就像是潜水艇发射的雷达声波，发出一个icmp回显请求，等待接收icmp回显应答。
打印出的信息包括icmp保温序列号（发出/接收的第几对icmp报文），ttl（从255开始递减），应答和请求报文时间差。
一台主机可以开启多个ping进程]]></description><category></category></item><item><title><![CDATA[perl和python]]></title><link>https://blog.youkuaiyun.com/codingkid/article/details/9146621</link><guid>https://blog.youkuaiyun.com/codingkid/article/details/9146621</guid><author>codingkid</author><pubDate>Fri, 21 Jun 2013 16:43:49 +0800</pubDate><description><![CDATA[最近总在perl和python间切换作业，两者语法大不相同，机制也有些差别，忍不住吐槽一下。


语言之间优劣的比较是毫无意义的，因为各有所长:
perl内建了正则
python内建复数型别
perl擅长文字处理，python擅长数值处理.


python的内置类型有标量，list，tuple，dict
perl的内置类型有标量$,数组@，哈希%


python的模块]]></description><category></category></item><item><title><![CDATA[slab伙伴系统]]></title><link>https://blog.youkuaiyun.com/codingkid/article/details/9146419</link><guid>https://blog.youkuaiyun.com/codingkid/article/details/9146419</guid><author>codingkid</author><pubDate>Fri, 21 Jun 2013 16:11:49 +0800</pubDate><description><![CDATA[slab是Linux操作系统的一种内存分配机制。其工作是针对一些经常分配并释放的对象，如进程描述符等，这些对象的大小一般比较小，如果直接采用伙伴系统来进行分配和释放，不仅会造成大量的内碎片，而且处理速度也太慢。而slab分配器是基于对象进行管理的，相同类型的对象归为一类(如进程描述符就是一类)，每当要申请这样一个对象，slab分配器就从一个slab列表中分配一个这样大小的单元出去，而当要释放时，将]]></description><category></category></item><item><title><![CDATA[HTTP报文解析器]]></title><link>https://blog.youkuaiyun.com/codingkid/article/details/8572942</link><guid>https://blog.youkuaiyun.com/codingkid/article/details/8572942</guid><author>codingkid</author><pubDate>Tue, 05 Feb 2013 23:03:13 +0800</pubDate><description><![CDATA[1. 首先main函数里给全局接收参数的变量赋值

2. socket连接，监听通过该服务器的报文


3. 由于client是一个FILE *类型，即一个文件缓冲区，可以把buffer还原成为一个request结构体里。


4. 发出request报文，截获response。


看起来很简单是不，其实最核心的是后续的parse部分，现在只是可以show出里面的内容了。D]]></description><category></category></item><item><title><![CDATA[ubuntu下vim的配置和改造]]></title><link>https://blog.youkuaiyun.com/codingkid/article/details/7226776</link><guid>https://blog.youkuaiyun.com/codingkid/article/details/7226776</guid><author>codingkid</author><pubDate>Wed, 01 Feb 2012 21:44:47 +0800</pubDate><description><![CDATA[如果想所有用户生效 请修改 /etc/vimrc (建议先cp一份)，若只对当前用户则增加~/.vimrc这个文件。

我的简单配置如下：

  1 set nocompatible
  2 set number
  3 set ruler
  4 set hlsearch
  5 set smartindent
  6 set showmatch
  7 set display=last]]></description><category></category></item><item><title><![CDATA[leach和leach-c协议仿真]]></title><link>https://blog.youkuaiyun.com/codingkid/article/details/7215216</link><guid>https://blog.youkuaiyun.com/codingkid/article/details/7215216</guid><author>codingkid</author><pubDate>Wed, 25 Jan 2012 20:04:59 +0800</pubDate><description><![CDATA[1.复制leach_test为leach-c_test，修改里面的文件夹和输出文件名。并且手动建立相应的文件夹。
很多教程说只修改文件名，没提到修改文件夹，如果同时运行两个协议会覆盖一部分实验结果的，而且是并行的就更难分解出是哪个协议的实验数据了。所以还是分开较好。


2.添加到test文件最后，后台运行的，需要等待。


3.写脚本分析实验数据。

#计算不同时间剩余节点的数]]></description><category></category></item><item><title><![CDATA[让source insight支持tcl/tk]]></title><link>https://blog.youkuaiyun.com/codingkid/article/details/7211579</link><guid>https://blog.youkuaiyun.com/codingkid/article/details/7211579</guid><author>codingkid</author><pubDate>Thu, 19 Jan 2012 23:22:17 +0800</pubDate><description><![CDATA[转自：http://www.51testing.com/?uid-6165-action-viewspace-itemid-82509


先去下面的地址下载所有的tcl.clf文件 
http://www.sourceinsight.com/public/languages/

NS的源码底层是C++，采用了C++/Tcl分裂对象模型，架构完善，堪称OOP编程的典范。但是NS源码体系]]></description><category></category></item><item><title><![CDATA[GNUPLOT画图工具]]></title><link>https://blog.youkuaiyun.com/codingkid/article/details/7211492</link><guid>https://blog.youkuaiyun.com/codingkid/article/details/7211492</guid><author>codingkid</author><pubDate>Thu, 19 Jan 2012 22:09:13 +0800</pubDate><description><![CDATA[不得不说这个工具实在是太强大了。
1.首先命令简单，不会有那么多的语法问题。
2.其次画图速度非常快，因为输入数据是文本格式，输出格式如果也是文本就是眨眼功夫感觉不到渲染，当然输出格式非常丰富。
3.还有跨平台性能也很好，linux和windows+X11或windows版的支持的都非常好，工具小巧好用。
4.而且和C可以无缝结合，适合运营和运维人员来统计数据生成图例。


虽然很小]]></description><category></category></item><item><title><![CDATA[Windows下安装ns2-2.29和leach各种方法和遇到的问题]]></title><link>https://blog.youkuaiyun.com/codingkid/article/details/7209036</link><guid>https://blog.youkuaiyun.com/codingkid/article/details/7209036</guid><author>codingkid</author><pubDate>Wed, 18 Jan 2012 14:45:33 +0800</pubDate><description><![CDATA[两天内尝试了n种方法，分别在windows和ubuntu下安装了2.27 2.29 2.35ns2，之后又在各个版本ns2上安装了mit和mannaSim的leach，纯手工编译和修改历史遗留bug，真是生命不息折腾不止呀！
刚开始同时安装这么多种方法是抱着侥幸心理希望在各个环境下安装各种版本，并行的安装，看哪种成功了就用哪种，最后造成的结果是全都有bug，make比较耗费时间，于是就边修A的b]]></description><category></category></item><item><title><![CDATA[虚拟机virtualBox安装Ubuntu全过程详解|Ubuntu降低gcc版本]]></title><link>https://blog.youkuaiyun.com/codingkid/article/details/7208850</link><guid>https://blog.youkuaiyun.com/codingkid/article/details/7208850</guid><author>codingkid</author><pubDate>Wed, 18 Jan 2012 13:27:56 +0800</pubDate><description><![CDATA[从ubuntu8.04开始就已经是4.2版的gcc了，而很多情况下，由于一些历史遗留源码，特别是学嵌入式的目前最高支持2.6版的内核，因而需要降低gcc版本来编译。
正在更新源，闲来无事顺便把整个过程都细述一下好了：
1.virtualbox安装ubuntu
2.安装vm对虚拟机全屏和复制粘贴支持的工具：
virtualbox工具栏device里找到安装guest工具，这时ubuntu的m]]></description><category></category></item><item><title><![CDATA[在OMNET++上安装INET FRAMEWORK框架]]></title><link>https://blog.youkuaiyun.com/codingkid/article/details/7086815</link><guid>https://blog.youkuaiyun.com/codingkid/article/details/7086815</guid><author>codingkid</author><pubDate>Tue, 20 Dec 2011 10:55:16 +0800</pubDate><description><![CDATA[之前提到了omnetpp只是提供一个平台，具体的协议支持需要框架的支持。
下载了inet framework，安装过程中提示需要4.2版本以上的omnetpp，于是又下载了最新的omnetpp。
（安装4.2版本过程中最好关掉杀软）
./setenv
./configurate
make
ok！
之后把inet解压到omnet文件夹下，单独放在一个目录。用omnet控制台进到目录里:]]></description><category></category></item><item><title><![CDATA[统计一维数组中元素出现次数]]></title><link>https://blog.youkuaiyun.com/codingkid/article/details/7085318</link><guid>https://blog.youkuaiyun.com/codingkid/article/details/7085318</guid><author>codingkid</author><pubDate>Mon, 19 Dec 2011 19:28:03 +0800</pubDate><description><![CDATA[之前ms面试题的算法设计被问了这个。
也许这就是“挂面”的原因。反省自己的浮躁，还有更优的解法。
最近看chord收到二分查找的启发，其实可以这样设计算法的：
首先对数组排序，时间复杂度O(NlogN)。
之后变成了abbc……这样有序形式，接着用变形的二分查找，定位同一个元素出现的范围。
比如说第一个b的下标是1，那么二分范围是1~(len-1)，每一次根据end是否是b来划分区间（若]]></description><category></category></item><item><title><![CDATA[OMNET++工具的使用（2）]]></title><link>https://blog.youkuaiyun.com/codingkid/article/details/7085214</link><guid>https://blog.youkuaiyun.com/codingkid/article/details/7085214</guid><author>codingkid</author><pubDate>Mon, 19 Dec 2011 18:54:33 +0800</pubDate><description><![CDATA[首先解决一些概念上的问题：
1. 在omnetpp.org中提到的仿真模型和框架与OMNet++是什么关系？
OMNet++提供了基本的工具和机制来编写仿真代码，但它本身并不提供任何特定用于计算机网络仿真，系统架构仿真和任意其它领域的组件；具体的仿真是由一些仿真模型和框架如Mobility Framework或INET Framework来支持，这些模型独立于OMNet++开发，并有自己的发布]]></description><category></category></item><item><title><![CDATA[通过后缀数组求字符串中最长重复字串]]></title><link>https://blog.youkuaiyun.com/codingkid/article/details/6988736</link><guid>https://blog.youkuaiyun.com/codingkid/article/details/6988736</guid><author>codingkid</author><pubDate>Fri, 18 Nov 2011 15:42:35 +0800</pubDate><description><![CDATA[#include 
#include 
#include 

using namespace std;
#define MAXLEN 100

int print(char **a,const int len)
{
	for(int i=0;i<len;i++)
		cout<<*(a+i)<<endl;
	return 0;
}

int comlen(char *a]]></description><category></category></item><item><title><![CDATA[一个计算GPA的工具]]></title><link>https://blog.youkuaiyun.com/codingkid/article/details/6988603</link><guid>https://blog.youkuaiyun.com/codingkid/article/details/6988603</guid><author>codingkid</author><pubDate>Fri, 18 Nov 2011 15:16:35 +0800</pubDate><description><![CDATA[#include 
#include 
using namespace std;

static void getscore(unsigned int *allp,unsigned int *allc,unsigned int opt,unsigned int score,unsigned int credit)
{
	unsigned int s_score;
	switch(op]]></description><category></category></item><item><title><![CDATA[倒水问题通用解法]]></title><link>https://blog.youkuaiyun.com/codingkid/article/details/6963708</link><guid>https://blog.youkuaiyun.com/codingkid/article/details/6963708</guid><author>codingkid</author><pubDate>Sat, 12 Nov 2011 22:05:18 +0800</pubDate><description><![CDATA[无穷多的水，A和B升容器，想要得到C升得水。
判断：有解条件为C%gcd(A,B)==0时。
方法：
min（A,B）一直往max(A,B)倒水，当B满时则倒出。
 

相当于一个n长度循环链表，每次步长为m去遍历这个链表，一定可以到达gcd(n,m)位置。]]></description><category></category></item><item><title><![CDATA[n阶方格的走法]]></title><link>https://blog.youkuaiyun.com/codingkid/article/details/6956258</link><guid>https://blog.youkuaiyun.com/codingkid/article/details/6956258</guid><author>codingkid</author><pubDate>Thu, 10 Nov 2011 15:03:20 +0800</pubDate><description><![CDATA[问题描述：有一个n*n的方格，从左上角走到右下角有多少种最短路径的走法？
 
分析：若不加最短路径则n^(n-1)种走法。加上了最短路径就是说横向的距离为n-1，纵向的距离为n-1.总共的距离是2(n-1)步走到。
解法：c(n-1,2(n-1))。组合问题。
 
分析：画图。
a
0'''''''1''''''1
1'''''''2''''''3
1''''''3''''''']]></description><category></category></item><item><title><![CDATA[虚假排名]]></title><link>https://blog.youkuaiyun.com/codingkid/article/details/6942966</link><guid>https://blog.youkuaiyun.com/codingkid/article/details/6942966</guid><author>codingkid</author><pubDate>Mon, 07 Nov 2011 12:36:29 +0800</pubDate><description><![CDATA[好久没认认真真的写技术博客了。
原因有三：
1.实习期间忙。
2.找工作期间忙。。
3.找完工作更忙。。。
自己知道这是个借口，有时候总感觉自己忙，殊不知盲目的跟着队伍奔跑还不如仔细观察地形之后选择一条捷径。
让生活慢下来，并不是一件坏事，但是最近整日游手好闲的，觉得是对自己纵容过度了，需要好好检讨一下。
 
整理好要看的书目和要做的事情，开始坐定整理博客。
由于之前写的一些博文]]></description><category></category></item><item><title><![CDATA[挨踢生涯]]></title><link>https://blog.youkuaiyun.com/codingkid/article/details/6940823</link><guid>https://blog.youkuaiyun.com/codingkid/article/details/6940823</guid><author>codingkid</author><pubDate>Sun, 06 Nov 2011 15:40:46 +0800</pubDate><description><![CDATA[本文所指的开发工程师，仅指程序开发人员和以数字电路开发为主的电子工程师。当你选择计算机或者电子、自控等专业进入大学时，你本来还是有机会从事其它行业的，可你毕业时执迷不悟，仍然选择了开发做为你的职业，真是自做孽不可活。不过，欢迎你和我一样加入这个被其它人认为是风光无限的“白领”吧。如果你不是特别的与人世隔绝，我想你一定看过金老先生的名著《笑傲江湖》吧，里面有一门十分奇特的武功叫做"辟邪剑法"，你看这]]></description><category></category></item></channel></rss>