<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[xSong Studio]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/boygrass</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; boygrass]]></copyright><item><title><![CDATA[小趴趴--知乎精华回答的非专业大数据统计]]></title><link>https://blog.youkuaiyun.com/boygrass/article/details/50675863</link><guid>https://blog.youkuaiyun.com/boygrass/article/details/50675863</guid><author>boygrass</author><pubDate>Tue, 16 Feb 2016 17:04:01 +0800</pubDate><description><![CDATA[入坑知乎三年有余，数月前灵光闪现，做个网页爬虫，专爬知乎下的精华回答，作统计分析。 
以下，即是此项目的分析结果，希望能从另一个角度呈现出不一样的知乎。代码“talk is cheap, show me the code!” －－屁话少说，放码过来。心急的朋友可以直接戳链接看源码，用的是Python3： 
https://github.com/SmileXie/zhihu_crawler算法简述1.]]></description><category></category></item><item><title><![CDATA[javascript this指针的陷阱]]></title><link>https://blog.youkuaiyun.com/boygrass/article/details/38471353</link><guid>https://blog.youkuaiyun.com/boygrass/article/details/38471353</guid><author>boygrass</author><pubDate>Sun, 10 Aug 2014 17:14:49 +0800</pubDate><description><![CDATA[function BackImg(jqObj) {
	……
	this.init = function() {
		this.jqObj.dblclick(function() {
			this.slideUp();
		});
	};
	……
	this.slideUp = function() {
		this.jqObj.animate({top:'-250px'});
	};
}

]]></description><category></category></item><item><title><![CDATA[多线程程序中，fork易导致死锁]]></title><link>https://blog.youkuaiyun.com/boygrass/article/details/27103383</link><guid>https://blog.youkuaiyun.com/boygrass/article/details/27103383</guid><author>boygrass</author><pubDate>Mon, 26 May 2014 18:31:03 +0800</pubDate><description><![CDATA[fork creates a child process that differs from the parent process only in its PID and PPID, and in the fact that resource utilizations are set to 0. File locks and pending signals are not inherited.
]]></description><category></category></item><item><title><![CDATA[codecademy html+css课程搞定，值此纪念]]></title><link>https://blog.youkuaiyun.com/boygrass/article/details/26171163</link><guid>https://blog.youkuaiyun.com/boygrass/article/details/26171163</guid><author>boygrass</author><pubDate>Sun, 18 May 2014 22:06:49 +0800</pubDate><description><![CDATA[我是个好折腾的人。
发现codecademy上]]></description><category></category></item><item><title><![CDATA[状态机编程]]></title><link>https://blog.youkuaiyun.com/boygrass/article/details/22790925</link><guid>https://blog.youkuaiyun.com/boygrass/article/details/22790925</guid><author>boygrass</author><pubDate>Wed, 02 Apr 2014 12:21:39 +0800</pubDate><description><![CDATA[有限状态机FSM思想广泛应用于硬件控制电路设计，也是软件上常用的一种处理方法(软件上称为FMM--有限消息机)。它把
复杂的控制逻辑分解成有限个稳定状态，在每个状态上判断事件，变连续处理为离散数字处理，符合计算机的工作特点。同
时，因为有限状态机具有有限个状态，所以可以在实际的工程上实现。但这并不意味着其只能进行有限次的处理，相反，有限
状态机是闭环系统，有限无穷，可以用有限的状态，处理无穷的事务]]></description><category></category></item><item><title><![CDATA[javascript中对象的销毁]]></title><link>https://blog.youkuaiyun.com/boygrass/article/details/12274065</link><guid>https://blog.youkuaiyun.com/boygrass/article/details/12274065</guid><author>boygrass</author><pubDate>Fri, 04 Oct 2013 10:42:41 +0800</pubDate><description><![CDATA[ECMAScript有无用存储单元收集程序，意味着不必专门销毁对象来释放内存。当再没有对对象的引用时，该对象就被废除了。 运行无用存储单元收集程序时，所有废除的对象都会被销毁。每当函数执行完它的代码，无用存储单元收集程序都会运行，释放所有的局部变量，还有在一些其它不
 可预知的情况下，无用存储单元收集程序也会运行。 
　　把对象的所有引用都设置为null，可以强制性的废除对象。例如：　

]]></description><category></category></item><item><title><![CDATA[ARP欺骗，骗你没商量]]></title><link>https://blog.youkuaiyun.com/boygrass/article/details/11535615</link><guid>https://blog.youkuaiyun.com/boygrass/article/details/11535615</guid><author>boygrass</author><pubDate>Tue, 10 Sep 2013 18:46:52 +0800</pubDate><description><![CDATA[今天BOSS让我总结ARP欺骗的原理和防范策略，在这里把总结的结果贴出来吧。求人品，求速转正。


ARP原理：
在局域网内部，各主机之间以MAC地址作为标识通信对象的标志。然而，有时通信发起的主机并不知道目标主机的MAC地址，仅知道其IP地址。ARP协议就是将IP地址转换MAC地址的协议。


主机A要向主机B发起通信，先本地的ARP缓存表，如果找到了B的IP地址对应的MAC地址，]]></description><category></category></item><item><title><![CDATA[linux下重定向，把标准输出和错误输出一起同定向到文件]]></title><link>https://blog.youkuaiyun.com/boygrass/article/details/11211989</link><guid>https://blog.youkuaiyun.com/boygrass/article/details/11211989</guid><author>boygrass</author><pubDate>Fri, 06 Sep 2013 12:52:32 +0800</pubDate><description><![CDATA[linux下重定向，把标准输出和错误输出一起同定向到文件
例如，要执行test里的脚本，把脚本的执行结果（包括标准输出和错误输出）一起重定向到 output
shell代码如下：
sh test 1>output 2>&1


代码中的1表示标准输出，2表示错误输出。2>&1表示把错误输出重定向到标准输出]]></description><category></category></item><item><title><![CDATA[神奇的container_of]]></title><link>https://blog.youkuaiyun.com/boygrass/article/details/9962161</link><guid>https://blog.youkuaiyun.com/boygrass/article/details/9962161</guid><author>boygrass</author><pubDate>Wed, 14 Aug 2013 12:03:43 +0800</pubDate><description><![CDATA[container_of是linux内核中常用的一个宏，这个宏的功能是，根据某个结构体字段的指针，找到对应的结构体指针。

这个宏的原理是结构体成员指针ptr，减去结构体成员与此结构体首地址的偏移量（这个偏移量由offsetof宏获得），就得出了结构体首地址。这个功能是由宏声明的第三行实现的。]]></description><category></category></item><item><title><![CDATA[C语言中的typeof关键字]]></title><link>https://blog.youkuaiyun.com/boygrass/article/details/9670109</link><guid>https://blog.youkuaiyun.com/boygrass/article/details/9670109</guid><author>boygrass</author><pubDate>Wed, 31 Jul 2013 16:50:32 +0800</pubDate><description><![CDATA[来源 http://module77.is-programmer.com/posts/22102.html
typeof关键字是C语言中的一个新扩展。
typeof的参数可以是两种形式：表达式或类型。
下面是使用表达式的的例子：
    typeof(x[0](1)
这里假设x是一个函数指针数组，这样就可以得到这个函数返回值的类型了。
如果将typeof用于表达式，则该表达式不会执行。]]></description><category></category></item><item><title><![CDATA[三层交换机报文转发流程]]></title><link>https://blog.youkuaiyun.com/boygrass/article/details/9389229</link><guid>https://blog.youkuaiyun.com/boygrass/article/details/9389229</guid><author>boygrass</author><pubDate>Sat, 20 Jul 2013 11:03:17 +0800</pubDate><description><![CDATA[PC1 --------------------------------三层交换机-----------------------------------PC2
  192.168.1.2       192.168.1.1       192.168.2.1       192.168.2.2
   请描述：PC1 ping PC2的完整过程，含报文流程，以及PC1、PC2、交换机各自的行为。]]></description><category></category></item><item><title><![CDATA[POSIX共享内存之shm_open oflag参数注意点]]></title><link>https://blog.youkuaiyun.com/boygrass/article/details/8884502</link><guid>https://blog.youkuaiyun.com/boygrass/article/details/8884502</guid><author>boygrass</author><pubDate>Sat, 04 May 2013 17:49:32 +0800</pubDate><description><![CDATA[int shm_open(const char *name, int oflag, mode_t mode);



shm_open的第二个参数oflag，可被设置为：O_RDONLY， O_RDWR， O_CREAT， O_EXCL， O_TRUNC

注意其属性设置是针对所有将会访问到它的进程而言的，而不仅仅是针对开辟它的这一进程的。


例如，一块共享内存，进程A创建它，]]></description><category></category></item><item><title><![CDATA[html5下的鼠标滚轮事件]]></title><link>https://blog.youkuaiyun.com/boygrass/article/details/8575813</link><guid>https://blog.youkuaiyun.com/boygrass/article/details/8575813</guid><author>boygrass</author><pubDate>Thu, 07 Feb 2013 16:05:19 +0800</pubDate><description><![CDATA[各家浏览器中的鼠标滚轮事件并未统一（主要是firefox比较另类），这给开发者造成了一点麻烦。
所以，先判断当前浏览器是否是firefox:

function isFireFoxFunc()
{
    var idx = navigator.userAgent.toLowerCase().indexOf("firefox");
	return idx >= 0;
}
var isFir]]></description><category></category></item><item><title><![CDATA[JavaScript中的值类型与引用类型]]></title><link>https://blog.youkuaiyun.com/boygrass/article/details/8489275</link><guid>https://blog.youkuaiyun.com/boygrass/article/details/8489275</guid><author>boygrass</author><pubDate>Thu, 10 Jan 2013 12:15:19 +0800</pubDate><description><![CDATA[一、值类型和引用类型话题

随着部分有大型面向对象语言基础朋友的介入，他们试着用JavaScript去模拟面像对象的各种特征，尽管有些模拟显得较为牵强，但也让我们见识到了JavaScript的强大与灵活性。本文暂不探讨JavaScript面向对象编程技术。就讲讲JavaScript中的两种变量类型：即值类型和引用类型，这通常又会让你联想到“堆栈”，另外还有“引用地址”或“指针”相关概念，有过J]]></description><category></category></item><item><title><![CDATA[javascript下对结构体数组元素的操作]]></title><link>https://blog.youkuaiyun.com/boygrass/article/details/8479069</link><guid>https://blog.youkuaiyun.com/boygrass/article/details/8479069</guid><author>boygrass</author><pubDate>Mon, 07 Jan 2013 23:16:50 +0800</pubDate><description><![CDATA[我主业是编写C/C++，今天发现一个细节，对javascript的数组操作不能按C语言下的习惯。


假设一个结构体数组
shapes = new Array();

结构体这样定义。
var shape = function( wh, radius, style, angle )   {
          this.radius = radius;
          thi]]></description><category></category></item><item><title><![CDATA[html5实现随机圆形的加速运动]]></title><link>https://blog.youkuaiyun.com/boygrass/article/details/8462271</link><guid>https://blog.youkuaiyun.com/boygrass/article/details/8462271</guid><author>boygrass</author><pubDate>Thu, 03 Jan 2013 21:16:10 +0800</pubDate><description><![CDATA[最近处于毕业到工作之间的gap month，终于有时间能学点自己喜欢的东西了。很早就想学html5了，希望不久以后能用canvas编出个游戏。
以下代码是最近在学习html5中写的，是一个用canvas实现的动画，随机大小，随机位置的圆饼在屏幕上以随机的初速度和随机的加速度运动。
当然，速度达到一定值后就保持恒定了。
左下角有一个按钮，点击play即开始演示

工程包括三个文件，一个ht]]></description><category></category></item><item><title><![CDATA[基于Adaboost人脸检测的打地鼠游戏]]></title><link>https://blog.youkuaiyun.com/boygrass/article/details/8070361</link><guid>https://blog.youkuaiyun.com/boygrass/article/details/8070361</guid><author>boygrass</author><pubDate>Sun, 14 Oct 2012 19:06:29 +0800</pubDate><description><![CDATA[我来卖萌了！人家打地鼠用锤，我用脸！美工很粗糙是吧？将就玩吧。
基于Adaboost人脸检测算法编写，调用了OpenCV图像处理库。

游戏演示戳这里：http://v.youku.com/v_show/id_XNDU4ODM5MTQ0.html]]></description><category></category></item><item><title><![CDATA[OpenCV中，在图像上覆盖绘制另一幅图圆形图像]]></title><link>https://blog.youkuaiyun.com/boygrass/article/details/8043044</link><guid>https://blog.youkuaiyun.com/boygrass/article/details/8043044</guid><author>boygrass</author><pubDate>Sat, 06 Oct 2012 13:38:55 +0800</pubDate><description><![CDATA[OpenCV中，在图像上绘制另一幅图像通常的作法是用cvSetImageROI + cvCopy，但是这种方式下，上层的那幅图像必须是矩形的。
我在写程序中出现这样一个需求，要在一幅图像中绘制一个足球，上述方法是不能绘出圆形的足球的。
我通过下下思路完成我的想法。
1、构造一个白底的，仅有足球的图像。
2、设置一个Mask，仅在足球的位置上为黑，其它位置为0
3、用cvCopy，把第三个]]></description><category></category></item><item><title><![CDATA[SmileRef V2.0 发布]]></title><link>https://blog.youkuaiyun.com/boygrass/article/details/7815818</link><guid>https://blog.youkuaiyun.com/boygrass/article/details/7815818</guid><author>boygrass</author><pubDate>Tue, 31 Jul 2012 20:11:06 +0800</pubDate><description><![CDATA[进一步解救纠结于论文参考文献编写的论文中，经过多日赶工，SmileRef V2.0版正式发布。
SmileRef帮助您快速按照标准格式生成参考文献。
下载地址：
“发现杯”软件设计大奖赛下载点

What's new:
1、完善了参考文献类型：2.0版包括了期刊论文、学位论文和报告、书籍、报纸、论文集、论文集或书籍中析出的文献、专利、标准等八大类。
2、修改了用户界面。
3、弃用M]]></description><category></category></item><item><title><![CDATA[vs2010英文版打包中文框架出错的解决办法]]></title><link>https://blog.youkuaiyun.com/boygrass/article/details/7803550</link><guid>https://blog.youkuaiyun.com/boygrass/article/details/7803550</guid><author>boygrass</author><pubDate>Mon, 30 Jul 2012 20:42:08 +0800</pubDate><description><![CDATA[错误信息： Error 3 The install location for prerequisites has not been set to 'component vendor's web site' and the file 'DotNetFX40Client\dotNetFx40LP_Client_x86_x64zh-Hans.exe' in item 'Microsoft .NET Fr]]></description><category></category></item></channel></rss>