<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[bertzhang的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/bertzhang</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; bertzhang]]></copyright><item><title><![CDATA[codereview工具]]></title><link>https://blog.youkuaiyun.com/bertzhang/article/details/9066669</link><guid>https://blog.youkuaiyun.com/bertzhang/article/details/9066669</guid><author>bertzhang</author><pubDate>Sun, 09 Jun 2013 17:51:05 +0800</pubDate><description><![CDATA[https://code.google.com/p/rietveld/

http://baidutech.blog.51cto.com/4114344/744432]]></description><category></category></item><item><title><![CDATA[libcurl的使用]]></title><link>https://blog.youkuaiyun.com/bertzhang/article/details/7653681</link><guid>https://blog.youkuaiyun.com/bertzhang/article/details/7653681</guid><author>bertzhang</author><pubDate>Mon, 11 Jun 2012 19:14:09 +0800</pubDate><description><![CDATA[参考资源：
http://www.cppblog.com/qiujian5628/archive/2008/06/28/54873.html
http://blog.youkuaiyun.com/jgood/article/details/4787670]]></description><category></category></item><item><title><![CDATA[shell 编程]]></title><link>https://blog.youkuaiyun.com/bertzhang/article/details/7595288</link><guid>https://blog.youkuaiyun.com/bertzhang/article/details/7595288</guid><author>bertzhang</author><pubDate>Wed, 23 May 2012 16:41:49 +0800</pubDate><description><![CDATA[1、for循环
for i in {1..18}; do echo $i; done]]></description><category></category></item><item><title><![CDATA[emacs中文输入的解决]]></title><link>https://blog.youkuaiyun.com/bertzhang/article/details/7496474</link><guid>https://blog.youkuaiyun.com/bertzhang/article/details/7496474</guid><author>bertzhang</author><pubDate>Wed, 25 Apr 2012 09:38:35 +0800</pubDate><description><![CDATA[解决的还不是很完善，secureCRT下解决了，但是putty不行，
传输都设置成utf-8
在~/.emacs中输入：
 
(set-language-environment 'Chinese-GB)
(set-keyboard-coding-system 'euc-cn)
(set-clipboard-coding-system 'euc-cn)
(set-terminal-co]]></description><category></category></item><item><title><![CDATA[SecureCRT的配置]]></title><link>https://blog.youkuaiyun.com/bertzhang/article/details/7486162</link><guid>https://blog.youkuaiyun.com/bertzhang/article/details/7486162</guid><author>bertzhang</author><pubDate>Sun, 22 Apr 2012 11:22:07 +0800</pubDate><description><![CDATA[http://www.kuqin.com/linux/20091118/73768.html
backupspace和delete键的修改：
http://www.linuxso.com/linuxrumen/17868.html
home|end|pageup|pagedown键的修改，测试不好用
http://onlyzq.blog.51cto.com/1228/517497]]></description><category></category></item><item><title><![CDATA[chromium不完全总结]]></title><link>https://blog.youkuaiyun.com/bertzhang/article/details/7446525</link><guid>https://blog.youkuaiyun.com/bertzhang/article/details/7446525</guid><author>bertzhang</author><pubDate>Tue, 10 Apr 2012 17:54:33 +0800</pubDate><description><![CDATA[1、Document被设置url


2、Document的open函数


3、Webkit中的消息事件处理机制：


4、关于Document的加载
关于FrameLoader、DocumentLoader以及DocLoader的关系[1]，在新的Chrome版本中，DocLoader已经被remove掉了，因此哪个图也就应该更新了，我猜想现在的资源下载应该都是通过Docu]]></description><category></category></item><item><title><![CDATA[gtest使用简单总结]]></title><link>https://blog.youkuaiyun.com/bertzhang/article/details/7401955</link><guid>https://blog.youkuaiyun.com/bertzhang/article/details/7401955</guid><author>bertzhang</author><pubDate>Wed, 28 Mar 2012 16:11:49 +0800</pubDate><description><![CDATA[因为阅读chromium的需要，想简单学习一下gtest的使用，因为通过chromium的unit_test是了解webkit chromium port的一个途径。其实gtest的相关文章比较多，本文后面的参考文献列出了一些代表性的文章，是学习使用gtest的有价值的资料。
首先看一下逻辑概念：
  一个test_program可以包含多个test_case，而一个test_case又可以包]]></description><category></category></item><item><title><![CDATA[GYP(Generate Your Project)一个很有价值的构建系统]]></title><link>https://blog.youkuaiyun.com/bertzhang/article/details/7387954</link><guid>https://blog.youkuaiyun.com/bertzhang/article/details/7387954</guid><author>bertzhang</author><pubDate>Fri, 23 Mar 2012 17:00:11 +0800</pubDate><description><![CDATA[因为阅读chromium的需要，也熟悉了一下chromium使用的GYP构建系统，其实这个系统和我原来所在的一个公司的构建系统非常相似，因此学习起来也比较容易。
首先看一下gyp的安装，如果你使用ubuntu系统那么安装可以通过下面的命令完成：

sudo apt-get install gyp
下面我们就通过一个例子来看看gyp的使用，假设我们编写三个文件hello_world.cc,]]></description><category></category></item><item><title><![CDATA[浅谈WebKit之Port篇]]></title><link>https://blog.youkuaiyun.com/bertzhang/article/details/7332912</link><guid>https://blog.youkuaiyun.com/bertzhang/article/details/7332912</guid><author>bertzhang</author><pubDate>Thu, 08 Mar 2012 14:57:17 +0800</pubDate><description><![CDATA[http://i.bbbug.com/blog/read.php?559


WebKit作为一个浏览器引擎，其相对于Gecko而言一个较大的特点就是便于移植，嵌入到其他程序中，目前大家已了解使用WebKit引擎的应用包括Safari、iPhone、Chrome、Android、Nokia S60 Browser及KDE QT4.4等，同时还有其他方面的移植如Gtk、wxWidget、3D等]]></description><category></category></item><item><title><![CDATA[WebKit页面加载]]></title><link>https://blog.youkuaiyun.com/bertzhang/article/details/7331582</link><guid>https://blog.youkuaiyun.com/bertzhang/article/details/7331582</guid><author>bertzhang</author><pubDate>Thu, 08 Mar 2012 13:40:25 +0800</pubDate><description><![CDATA[1、Document被设置url
2、Document的open函数
3、Webkit中的消息事件处理机制：
4、关于Document的加载[1]
关于FrameLoader、DocumentLoader以及DocLoader的关系：
1）FrameLoad在init函数中创建了PolicyDocumentLoader
2）DocumentLoader在DocumentLoader::]]></description><category></category></item><item><title><![CDATA[WebKit HTML解析的新理解与未解问题]]></title><link>https://blog.youkuaiyun.com/bertzhang/article/details/7313426</link><guid>https://blog.youkuaiyun.com/bertzhang/article/details/7313426</guid><author>bertzhang</author><pubDate>Fri, 02 Mar 2012 19:24:13 +0800</pubDate><description><![CDATA[1、脚本解析的过程中要暂停HTML的parse过程，因为脚本的执行可能会使用write方法写入HTML，但是当脚本执行时，会启动与scan过程，查看下面有那些需要预取的css和js文件，提前下载。
2、当解析CSS的过程虽然不会改变Dom，但还是要暂停script的执行，因为script可能会请求，element的style信息，如果此时css还没有解析完成，就会取得错误的样式信息，但webki]]></description><category></category></item><item><title><![CDATA[硬币翻转问题]]></title><link>https://blog.youkuaiyun.com/bertzhang/article/details/7312232</link><guid>https://blog.youkuaiyun.com/bertzhang/article/details/7312232</guid><author>bertzhang</author><pubDate>Fri, 02 Mar 2012 15:02:48 +0800</pubDate><description><![CDATA[题目：
有4枚硬币，初始状态未知。你的眼睛被蒙住，看不到硬币的状态，但可以随便翻任何几个硬币。你每翻一次以后，如果4枚硬币的状态是全正面朝上或者全背面朝上，旁边的人会告诉你翻成功了。现在问你，最少翻几次可以保证成功？每次翻哪几枚？（百度2008年面试题） 
解答：
这个题目的关键是分析翻转前后硬币组合中相同不相同的数目的关系，不必考虑硬币的顺序，因为考虑顺序的话，代价比较大。
方法一：尝试]]></description><category></category></item><item><title><![CDATA[分词算法介绍]]></title><link>https://blog.youkuaiyun.com/bertzhang/article/details/7312212</link><guid>https://blog.youkuaiyun.com/bertzhang/article/details/7312212</guid><author>bertzhang</author><pubDate>Fri, 02 Mar 2012 14:29:02 +0800</pubDate><description><![CDATA[===============================================================================
如有需要可以转载，但转载请注明出处，并保留这一块信息，谢谢合作！ 
部分内容参考互联网,如有异议,请跟我联系! 
作者:刀剑笑(Blog:http://blog.youkuaiyun.com/jyz3051) 

Email:jyz3051]]></description><category></category></item><item><title><![CDATA[求子数组和最接近0]]></title><link>https://blog.youkuaiyun.com/bertzhang/article/details/7311647</link><guid>https://blog.youkuaiyun.com/bertzhang/article/details/7311647</guid><author>bertzhang</author><pubDate>Fri, 02 Mar 2012 12:30:14 +0800</pubDate><description><![CDATA[题目：给定一个子数组，求子数组和最接近0
分析：
方法1：
这个问题和求子数组最大值优点相似，但解法不同，如果按照求子数组最大值的方法来求解，我们可以求出以j为截止的最大值和最小值，如果最大值和最小值都>0,那么最小值即为所求，如果都0而最小值
方法2：
我们先计算所有sum[0-j] 0
sum[i-j]= sum[0-j] - sum[0-i];
因为已经对sum[0-j]进行了]]></description><category></category></item><item><title><![CDATA[关于memcpy、memove的故事]]></title><link>https://blog.youkuaiyun.com/bertzhang/article/details/7305458</link><guid>https://blog.youkuaiyun.com/bertzhang/article/details/7305458</guid><author>bertzhang</author><pubDate>Wed, 29 Feb 2012 12:18:21 +0800</pubDate><description><![CDATA[关于memcpy和memmove的故事很多，但相关的主要有一下几个方面：
1、memcpy和memmove的差别：memcpy当地址出现重叠时，操作的效果是未定义的，而memmove则处理了这种情况，也就是说如果src地址小，我们就从后向前拷贝，如果src地址大，怎从前向后拷贝。[1]
2、通常实现时每次拷贝一个byte，加速的办法是copy4个byte，不足的部分再按照byte拷贝[2]]]></description><category></category></item><item><title><![CDATA[求一个字符串的最长重复字串问题]]></title><link>https://blog.youkuaiyun.com/bertzhang/article/details/7303048</link><guid>https://blog.youkuaiyun.com/bertzhang/article/details/7303048</guid><author>bertzhang</author><pubDate>Tue, 28 Feb 2012 17:37:32 +0800</pubDate><description><![CDATA[给定一个字符串，求出这个字符串的最长重复字串，例如abcdbcd，最长重复字串是bcd。
分析：
方法1：
  一种方法是先解决http://blog.youkuaiyun.com/bertzhang/article/details/7303010的问题，在对字符串进行循环处理。
具体过程如下：
1）首先解决两个字符串的最长公共邻接子串问题；
2）将字符串,abcdbcd分成如下两个字符串的集合：]]></description><category></category></item><item><title><![CDATA[LCS问题变型，要求子序列必须连续]]></title><link>https://blog.youkuaiyun.com/bertzhang/article/details/7303010</link><guid>https://blog.youkuaiyun.com/bertzhang/article/details/7303010</guid><author>bertzhang</author><pubDate>Tue, 28 Feb 2012 17:22:53 +0800</pubDate><description><![CDATA[问题和LCS相似，但是要求最长的字串必须连续。
同样可以采取动态规划方法，分别使用两个数组来保存中间计算结果：
1）一个保存当到达位置i,j时，最大的字串长度；
2）另一保存以i,j为截止的位置的连续字串的长度；
每次如果a[i] == b[j]时，比较max_length[i-1][j-1]和length_endinghere[i][j]来进行决策，具体见程序
如果a[i] != b[]]></description><category></category></item><item><title><![CDATA[关于Hash的总结]]></title><link>https://blog.youkuaiyun.com/bertzhang/article/details/7298127</link><guid>https://blog.youkuaiyun.com/bertzhang/article/details/7298127</guid><author>bertzhang</author><pubDate>Mon, 27 Feb 2012 14:22:23 +0800</pubDate><description><![CDATA[hash函数
  hash函数常用的是mod 素数，或者使用乘法策略，取某些位，这些策略直接影响到hash table的resize，如果是mod素数的话，只能按素数来递增，如果是取乘法方法，只能以2^p来递增。
  参考文献[1][2]等给出了很多，常用的字符串hash函数，但更有价值的还包括下面这两个：
  murmur hash[3][4]，其中[3]无法直接访问，不过本文的例子中有具]]></description><category></category></item><item><title><![CDATA[itoa函数的编写]]></title><link>https://blog.youkuaiyun.com/bertzhang/article/details/7293521</link><guid>https://blog.youkuaiyun.com/bertzhang/article/details/7293521</guid><author>bertzhang</author><pubDate>Sat, 25 Feb 2012 15:02:26 +0800</pubDate><description><![CDATA[itoa函数的编写主要考虑一下几个方面的因素：
1）数字的正负号
2）如果是0时，影响value/radix的判断，所以要用do while循环来计算
3）如何反转转换后的数据，首尾两指针交换数据
4）扩展性方面使用radix
5）使用character数组来，实现转换，有利于扩展到16进制的情况
具体代码如下：
std::string Itoa(int value, int rad]]></description><category></category></item><item><title><![CDATA[HashTable的实现测试]]></title><link>https://blog.youkuaiyun.com/bertzhang/article/details/7292262</link><guid>https://blog.youkuaiyun.com/bertzhang/article/details/7292262</guid><author>bertzhang</author><pubDate>Fri, 24 Feb 2012 22:30:11 +0800</pubDate><description><![CDATA[1）冲突解决方式，通过链表解决
2）slot数组中是否保存数据的问题，这个是一个容易让人困惑的问题，解决方案是slot不是HashNode的数组，而是一组指向HashNode的指针，因此slot数组中肯定不会保存数据
3）slot大小的选择，在HashTable的构造函数中设定大小，但hash函数使用了乘法策略，因此需要找到一个2^p>用户给的size的p，以2^p作为size，但存在这样的情]]></description><category></category></item></channel></rss>