<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-33715330</id><updated>2012-02-07T22:21:27.728+08:00</updated><category term='DDoS'/><category term='DNS'/><category term='Image'/><category term='C'/><category term='Slide'/><category term='CodeIgniter'/><category term='Windows'/><category term='Security'/><category term='Route'/><category term='Programming'/><category term='Web'/><category term='虚拟机'/><category term='HTTP'/><category term='Job'/><category term='互联网'/><category term='CPP'/><category term='BookNote'/><category term='PowerShell'/><category term='OPNET'/><category term='Audio'/><category term='HASH'/><category term='FTP'/><category term='Software'/><category term='GFW'/><category term='广告'/><category term='中文'/><category term='Chart'/><category term='Book'/><category term='Android'/><category term='QQ'/><category term='劫持'/><category term='Network'/><category term='Mobile'/><category term='DNSSEC'/><category term='Script'/><category term='SSH'/><category term='MySQL'/><category term='PDF'/><category term='Music'/><category term='Visio'/><category term='Perl'/><category term='Blogger'/><category term='Word'/><category term='Google'/><category term='Editor'/><category term='红晋江'/><category term='Haskell'/><category term='Utility'/><category term='PHP'/><category term='Regex'/><category term='Algorithm'/><category term='Lftp'/><category term='网盘'/><category term='Vim'/><category term='Firefox'/><category term='乱码'/><category term='PostgreSQL'/><category term='ImageMagick'/><category term='HARDWARE'/><category term='Database'/><category term='Linux'/><category term='CHM'/><category term='输入法'/><category term='HTML'/><category term='TeX'/><category term='ThinkPad'/><category term='Sed'/><category term='郑码'/><category term='DNSCURVE'/><category term='JavaScript'/><category term='Battery'/><category term='SVN'/><category term='绿晋江'/><category term='返利'/><category term='Mplayer'/><category term='Excel'/><title type='text'>江天一色</title><subtitle type='html'>业精于勤荒于嬉,行成于思毁于随</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default?start-index=101&amp;max-results=100'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>543</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-33715330.post-5344852690568114771</id><published>2012-02-07T22:21:00.001+08:00</published><updated>2012-02-07T22:21:27.757+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='互联网'/><title type='text'>高性能，高可用，高可运维，灵活性</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a href="http://djt.open.qq.com/portal.php?mod=view&amp;amp;aid=33"&gt;庄泗华《1亿在线背后的技术挑战》&lt;/a&gt;&lt;/p&gt; &lt;p&gt;N个监控和报警，智能调整阈值&lt;/p&gt; &lt;p&gt;区域自治&lt;/p&gt; &lt;p&gt;快速迭代&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-5344852690568114771?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/5344852690568114771/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2012/02/blog-post_07.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/5344852690568114771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/5344852690568114771'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2012/02/blog-post_07.html' title='高性能，高可用，高可运维，灵活性'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-2328710409397490555</id><published>2012-02-04T21:49:00.001+08:00</published><updated>2012-02-04T21:49:11.276+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HARDWARE'/><title type='text'>笔记本硬盘与台式机硬盘互转</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;台式机硬盘 做 USB移动硬盘 ：易驱三用USB转SATA/IDE线&lt;/p&gt; &lt;p&gt;台式机硬盘 做 笔记本外置硬盘 ： 用易驱三用线的电源，加上一个SATA转ESATA线 （速度暴快）&lt;/p&gt; &lt;p&gt;移动硬盘 做 台式机硬盘 ： 笔记本2.5寸IDE转SATA卡&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-2328710409397490555?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/2328710409397490555/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2012/02/blog-post.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/2328710409397490555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/2328710409397490555'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2012/02/blog-post.html' title='笔记本硬盘与台式机硬盘互转'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-7544504519838318268</id><published>2012-01-25T12:35:00.001+08:00</published><updated>2012-01-25T12:35:14.834+08:00</updated><title type='text'>vmware : 设置从光盘启动</title><content type='html'>&lt;div&gt;启动，鼠标按近vmare窗口，载入速度很快，没等按F2就从硬盘启动过去&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;因此，要按ctrl+alt+insert让系统重启，然后赶快按F2进bios设置&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-7544504519838318268?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/7544504519838318268/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2012/01/vmware.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7544504519838318268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7544504519838318268'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2012/01/vmware.html' title='vmware : 设置从光盘启动'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-6243908119301726321</id><published>2012-01-22T17:36:00.001+08:00</published><updated>2012-01-22T17:36:18.806+08:00</updated><title type='text'>Puppy Linux ：U盘启动时卡在searching for puppy files in computer disk drives</title><content type='html'>&lt;div&gt;Puppy Linux，U盘启动时卡在searching for puppy files in computer disk drives&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;可以在boot时，输入puppy pmedia=usbflash 跳过&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-6243908119301726321?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/6243908119301726321/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2012/01/puppy-linux-usearching-for-puppy-files.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/6243908119301726321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/6243908119301726321'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2012/01/puppy-linux-usearching-for-puppy-files.html' title='Puppy Linux ：U盘启动时卡在searching for puppy files in computer disk drives'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-3727146141858810462</id><published>2012-01-22T15:10:00.001+08:00</published><updated>2012-01-22T15:10:10.271+08:00</updated><title type='text'>U盘启动后提示：vesamenu.c32 Not a COM32R image boot</title><content type='html'>&lt;div&gt;U盘启动后提示：vesamenu.c32: Not a COM32R image boot&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;直接按tab键，根据自动列出来的选项，键盘输入即可&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-3727146141858810462?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/3727146141858810462/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2012/01/uvesamenuc32-not-com32r-image-boot.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/3727146141858810462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/3727146141858810462'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2012/01/uvesamenuc32-not-com32r-image-boot.html' title='U盘启动后提示：vesamenu.c32 Not a COM32R image boot'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-1508903974124576585</id><published>2012-01-17T16:49:00.001+08:00</published><updated>2012-01-17T16:50:55.095+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><title type='text'>Perl : JSON解码字符串后，提交MySQL查询失败的问题</title><content type='html'>&lt;p&gt;用json格式存mysql查询的条件，调用JSON模块的from_json函数解码，拼接出mysql查询字符串&lt;/p&gt;&lt;pre class="brush:pl"&gt;$json_text =  '{ "abc" : "测试" }';

$json_scalar = from_json($json_text, { utf8 =&amp;gt; 0 });

$sql_str = “select * from sometable where abc=’$json_scalar-&amp;gt;{abc}’”
&lt;/pre&gt;
&lt;p&gt;通过DBI模块将此$sql_str提交到Mysql，查询总是失败。要用utf8:: downgrade把字符串存储模式换过来才行。&lt;/p&gt;&lt;pre class="brush:pl"&gt;#!/usr/bin/perl
# 文件是cp936编码

use JSON;
use Encode;
use Data::Dumper;

my $str = '{ "abc" : "测试" }';
print $str,', ',Dumper($str),"\n";
#{ "abc" : "测试" }, $VAR1 = '{ "abc" : "测试" }';
print "-----\n\n";

$t = from_json($str, { utf8 =&amp;gt; 0 } );
print $t-&amp;gt;{abc},', ', Dumper($t-&amp;gt;{abc}),"\n";
#测试, $VAR1 = "\x{b2}\x{e2}\x{ca}\x{d4}";
#=&amp;gt; 可见$t-&amp;gt;{abc}内部存储是 UTF8=1
print "-----\n\n";

utf8::downgrade($t-&amp;gt;{abc}, 1);
print $t-&amp;gt;{abc},', ', Dumper($t-&amp;gt;{abc}),"\n";
#测试, $VAR1 = '测试';
#=&amp;gt; 通过downgrade把$t-&amp;gt;{abc}切回 UTF8=0　内部存储
print "-----\n";
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-1508903974124576585?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/1508903974124576585/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2012/01/perl-jsonmysql.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/1508903974124576585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/1508903974124576585'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2012/01/perl-jsonmysql.html' title='Perl : JSON解码字符串后，提交MySQL查询失败的问题'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-3787022918003724640</id><published>2012-01-12T16:58:00.001+08:00</published><updated>2012-01-12T16:58:45.032+08:00</updated><title type='text'>mysql：主从同步</title><content type='html'>&lt;div&gt;参考：&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://shenzhenchufa.blog.51cto.com/730213/279560"&gt;mysql master-slave方式同步&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://database.ctocio.com.cn/291/12219291.shtml#"&gt;Mysql-Master与Slave配置&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;只导出表结构：mysqldump --opt -d --skip-lock-tables &amp;nbsp;testdb &amp;gt; testdb.sql&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;可以只导出表结构，配好主从，master不停机，slave慢慢自动同步（注意：有些一直没变化的数据slave会缺，可以后续再备份）&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-3787022918003724640?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/3787022918003724640/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2012/01/mysql.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/3787022918003724640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/3787022918003724640'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2012/01/mysql.html' title='mysql：主从同步'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-8276895251278285952</id><published>2012-01-11T09:29:00.001+08:00</published><updated>2012-01-11T09:29:30.273+08:00</updated><title type='text'>CodeIgniter：指定页面默认编码</title><content type='html'>&lt;DIV&gt;在index.php中添加：&lt;/DIV&gt;  &lt;DIV&gt;header('Content-Type: text/html; charset=gb2312');&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-8276895251278285952?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/8276895251278285952/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2012/01/codeigniter.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/8276895251278285952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/8276895251278285952'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2012/01/codeigniter.html' title='CodeIgniter：指定页面默认编码'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-970505505964036353</id><published>2012-01-10T22:32:00.001+08:00</published><updated>2012-01-11T00:04:40.032+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HASH'/><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><title type='text'>笔记：关于构造冲突串使hash退化为链表</title><content type='html'>&lt;p&gt;论文：&lt;a href="http://www.cs.rice.edu/~scrosby/hash/CrosbyWallach_UsenixSec2003.pdf"&gt;CrosbyWallach_UsenixSec2003.pdf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;先汗一个，这论文都整出来多少年了……&lt;/p&gt;
&lt;p&gt;问题在于各基础语言用的是“伪HASH”，桶长较小，冲突串容易构造。&lt;/p&gt;
&lt;p&gt;加随机数初始化，且限制提交字符的串长度缓解。&lt;/p&gt;
&lt;p&gt;参考：&lt;a href="http://events.ccc.de/congress/2011/Fahrplan/attachments/2007_28C3_Effective_DoS_on_web_application_platforms.pdf"&gt;2007_28C3_Effective_DoS_on_web_application_platforms.pdf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;perl的fix说明：&lt;a href="http://perldoc.perl.org/perlsec.html#Algorithmic-Complexity-Attacks"&gt;perlsec.html#Algorithmic-Complexity-Attacks&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;perl5.8.1之后，大体上是加个随机种子&lt;a href="http://perldoc.perl.org/perlrun.html#PERL_HASH_SEED"&gt;PERL_HASH_SEED&lt;/a&gt;，且运行时一些操作可以动态改变hash值在桶内的位置，增加构造冲突串的复杂度。&lt;/p&gt;
&lt;p&gt;由于这个随机处理，两次执行相同脚本，相同hash打出来的key顺序也不同。并且每次插入hash值也会导致key顺序发生变动。perl并不保证hash的key顺序一直固定。&lt;/p&gt;
&lt;p&gt;可以把PERL_HASH_SEED置0，则不做随机处理，用于一些特殊的函数，如List::Util::shuffle()。&lt;/p&gt;
&lt;p&gt;可以参考这个说明：&lt;a href="http://perldoc.perl.org/Hash/Util.html"&gt;http://perldoc.perl.org/Hash/Util.html&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-970505505964036353?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/970505505964036353/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2012/01/hash.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/970505505964036353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/970505505964036353'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2012/01/hash.html' title='笔记：关于构造冲突串使hash退化为链表'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-6544751551137843878</id><published>2011-12-26T14:41:00.001+08:00</published><updated>2011-12-26T14:41:20.684+08:00</updated><title type='text'>ntp同步时间</title><content type='html'>&lt;DIV&gt;假设 ntp 服务器 是 xxx.xxx.xxx.xxx，要更新时间&lt;/DIV&gt;  &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;  &lt;DIV&gt;原来用&lt;/DIV&gt;  &lt;DIV&gt;ntpupdate&amp;nbsp; xxx.xxx.xxx.xxx&lt;/DIV&gt;  &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;  &lt;DIV&gt;现在用&lt;/DIV&gt;  &lt;DIV&gt;sntp -P no -r xxx.xxx.xxx.xxx&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-6544751551137843878?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/6544751551137843878/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/12/ntp.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/6544751551137843878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/6544751551137843878'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/12/ntp.html' title='ntp同步时间'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-6411587818672451349</id><published>2011-11-20T13:32:00.001+08:00</published><updated>2011-11-20T13:32:35.821+08:00</updated><title type='text'>DNS：检查NS配置</title><content type='html'>&lt;a href="http://www.intodns.com/"&gt;http://www.intodns.com/&lt;/a&gt;&lt;br&gt;&lt;br&gt;写的很清楚&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-6411587818672451349?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/6411587818672451349/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/11/dnsns.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/6411587818672451349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/6411587818672451349'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/11/dnsns.html' title='DNS：检查NS配置'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-4188980668699879464</id><published>2011-11-14T16:11:00.001+08:00</published><updated>2011-11-14T16:11:25.913+08:00</updated><title type='text'>Perl :  10进制转换成16进制</title><content type='html'>&lt;DIV&gt;&lt;includetail&gt;&lt;SPAN lang=EN-US&gt;#!/usr/bin/perl &lt;/SPAN&gt;&lt;/includetail&gt;&lt;/DIV&gt;  &lt;DIV&gt;&lt;SPAN lang=EN-US&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;use strict;&lt;/SPAN&gt;&lt;/:includetail&gt;&lt;/DIV&gt;  &lt;DIV&gt;&lt;SPAN lang=EN-US&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;use warnings;&lt;/SPAN&gt;&lt;/:includetail&gt;&lt;/DIV&gt;  &lt;DIV&gt;&lt;SPAN lang=EN-US&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;use Math::BigInt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;  &lt;DIV&gt;  &lt;DIV style="COLOR: #000"&gt;  &lt;DIV class=WordSection1&gt;  &lt;P class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;#&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;需求：将一个&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;10&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;进制的大数，用&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;16&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;进制分解成&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;4&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;份&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;  &lt;P class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;  &lt;P class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;#&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;法&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;1&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;：类似&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;C&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;的写法&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;  &lt;P class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;my $l = 281474983985353;&lt;/SPAN&gt;&lt;/P&gt;  &lt;P class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;my $a = $l % 0x100000000;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;  &lt;P class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;my $b = ($l-$a)/0x100000000;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;  &lt;P class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;my $major = $b &amp;gt;&amp;gt; 16;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;  &lt;P class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;my $minor = $b % 0x10000;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;  &lt;P class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;my $build = $a &amp;gt;&amp;gt; 16;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;  &lt;P class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;my $ext = $a % 0x10000;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;  &lt;P class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;print "$major $minor $build $ext\n";&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;  &lt;P class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;  &lt;P class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;#&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;法&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;2&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;：用&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Math::BigInt&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;大数库&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;  &lt;P class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;my $t = new Math::BigInt('281474983985353');&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;  &lt;P class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;my @result;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;  &lt;P class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;while($t){&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;  &lt;P class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; my ($t, $s) =$t-&amp;gt;bdiv(0x10000); &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;  &lt;P class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; unshift @result, s;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;  &lt;P class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;  &lt;P class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;print join(" ", @result, "\n");&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;  &lt;P class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;  &lt;P class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;#&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;法&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;3&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;：可以用&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;pack&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;，需要支持&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Q&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;选项，与&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;perl&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体"&gt;编译的版本有关&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/:includetail&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-4188980668699879464?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/4188980668699879464/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/11/perl-1016.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/4188980668699879464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/4188980668699879464'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/11/perl-1016.html' title='Perl :  10进制转换成16进制'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-707841665446152427</id><published>2011-11-14T06:06:00.001+08:00</published><updated>2011-11-14T06:06:55.073+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DNSSEC'/><category scheme='http://www.blogger.com/atom/ns#' term='DNSCURVE'/><category scheme='http://www.blogger.com/atom/ns#' term='DNS'/><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><title type='text'>笔记：关于DNSCURVE</title><content type='html'>&lt;p&gt;资料：&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://curvedns.on2it.net/get/shaping_dns_security_with_curves.pdf"&gt;Shaping DNS Security with Curves&lt;/a&gt;  &lt;li&gt;&lt;a href="http://www.dnscurve.org/index.html"&gt;DNSCurve: Usable security for DNS&lt;/a&gt;  &lt;li&gt;&lt;a href="http://curvedns.on2it.net/"&gt;CurveDNS&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;注意，DNSCURVE提供&lt;font color="#ff0000"&gt;点到点&lt;/font&gt;的安全，而非端到端；也就是说，能保证采用DNSCURVE通信的相邻两节点DNS查询/应答通信数据的&lt;font color="#ff0000"&gt;加密&lt;/font&gt;、认证。&lt;/p&gt; &lt;p&gt;DNSCURVE：&lt;/p&gt; &lt;ul&gt; &lt;li&gt;针对“&lt;font color="#ff0000"&gt;NS&lt;/font&gt;”的公钥认证，维护成本较低；一个NS可以有多个公私钥对  &lt;li&gt;挑战码+DH交换协商对称密钥，支持加密通信  &lt;li&gt;客户端时间不准对解析结果无影响，抗重放攻击  &lt;li&gt;不会降低外部探知整个域配置的难度  &lt;li&gt;没有引入新RR，域名配置文件略微增大，主要是NS记录比以前长，可以继续用UDP  &lt;li&gt;耗CPU的攻击威胁增大，每个包都要涉及加解密计算，否定缓存应答不需要特殊处理  &lt;li&gt;放大攻击的风险较小&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;DNSSEC：&lt;/p&gt; &lt;ul&gt; &lt;li&gt;针对“&lt;font color="#ff0000"&gt;域&lt;/font&gt;”的公钥认证，维护成本较高  &lt;li&gt;不支持加密通信  &lt;li&gt;客户端时间不准可能导致新公钥认证的域名配置被判为错误，需要NTP严格校准时间，会有重放攻击的问题  &lt;li&gt;NSEC/NSEC3会降低外部探知整个域配置的难度  &lt;li&gt;引入新RR，域名配置文件显著变大，以后用TCP比较靠谱  &lt;li&gt;耗CPU的攻击威胁增大，否定缓存应答需要特殊的临时计算  &lt;li&gt;放大攻击的风险大增&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;二者可结合使用，例如，解析some.test.com，用DNSSEC认证“.”与“com.”，到test.com的ns再开始用DNSCURVE&lt;/p&gt; &lt;p&gt;opendns支持DNSCURVE&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-707841665446152427?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/707841665446152427/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/11/dnscurve.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/707841665446152427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/707841665446152427'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/11/dnscurve.html' title='笔记：关于DNSCURVE'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-7009166946047022429</id><published>2011-11-03T23:06:00.001+08:00</published><updated>2011-11-03T23:06:39.389+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='互联网'/><title type='text'>结网 by 王坚 (2)</title><content type='html'>&lt;p&gt;嘿嘿，写的很好：&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-MPxN2ImsUtY/TrKtnNHSNuI/AAAAAAAACOg/XANk-U-xQEM/s1600-h/image_thumb112.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image_thumb11" border="0" alt="image_thumb11" src="http://lh3.ggpht.com/-VTXCtXmj684/TrKtq7H535I/AAAAAAAACOo/yXOlPtzfG0c/image_thumb11_thumb.png?imgmax=800" width="644" height="270"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-vwutM0GwnAE/TrKtvBopfcI/AAAAAAAACOw/OB49gBOTdrM/s1600-h/image_thumb122.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image_thumb12" border="0" alt="image_thumb12" src="http://lh4.ggpht.com/-rfJja8hgzMk/TrKt1q2D7pI/AAAAAAAACO4/bMPpiQmuavw/image_thumb12_thumb.png?imgmax=800" width="644" height="183"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-Q11HJOQPeZg/TrKt4dberCI/AAAAAAAACPA/t3dbREpBykI/s1600-h/image_thumb132.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image_thumb13" border="0" alt="image_thumb13" src="http://lh3.ggpht.com/-aN6vMuCZbpw/TrKt9B00TrI/AAAAAAAACPI/_0pjrRSWVgY/image_thumb13_thumb.png?imgmax=800" width="644" height="176"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-7009166946047022429?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/7009166946047022429/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/11/by-2.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7009166946047022429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7009166946047022429'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/11/by-2.html' title='结网 by 王坚 (2)'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/-VTXCtXmj684/TrKtq7H535I/AAAAAAAACOo/yXOlPtzfG0c/s72-c/image_thumb11_thumb.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-6783489983182800028</id><published>2011-11-03T23:03:00.001+08:00</published><updated>2011-11-03T23:03:45.829+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='互联网'/><title type='text'>结网 by 王坚 (1)</title><content type='html'>&lt;p&gt;觉得《结网》里面这几句话很有意思，摘录一下：&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-Ku9i0pfzays/Tq1nLde9baI/AAAAAAAACM4/1G2gu23cswA/s1600-h/image38.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/-iiUWcy-rjXE/Tq1niV9Og_I/AAAAAAAACNA/cBOwPb3Iij4/image_thumb16.png?imgmax=800" width="644" height="228"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-HSIUM-NSvEk/Tq1nzJ0ir7I/AAAAAAAACNI/66CepzI0AHo/s1600-h/image30.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/-3DoY8ooiYyU/Tq1oJ3JbznI/AAAAAAAACNQ/7bVXnc-XPps/image_thumb10.png?imgmax=800" width="644" height="115"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-XkWSsPv5Kc4/TrKtMnfAzvI/AAAAAAAACOQ/QgI762arluk/s1600-h/image34.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/-yKZ2rHn32Mo/TrKtTVuH26I/AAAAAAAACOY/Kv4C7I13bNo/image_thumb14.png?imgmax=800" width="644" height="181"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-6783489983182800028?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/6783489983182800028/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/11/by-1.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/6783489983182800028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/6783489983182800028'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/11/by-1.html' title='结网 by 王坚 (1)'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-iiUWcy-rjXE/Tq1niV9Og_I/AAAAAAAACNA/cBOwPb3Iij4/s72-c/image_thumb16.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-9180889720915773630</id><published>2011-11-03T22:50:00.001+08:00</published><updated>2012-01-08T19:45:59.686+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DNS'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>Pro DNS and BIND 10 : 附录</title><content type='html'>&lt;p&gt;附录A：一些域名的FAQ&lt;/p&gt; &lt;p&gt;附录B：DNS的RFC列表，很长，重点看过的几份：&lt;/p&gt; &lt;ul&gt; &lt;li&gt;RFC1034/1035/2181 DNS介绍，基础必看&lt;/li&gt; &lt;li&gt;RFC2308 否定缓存，写的挺好&lt;/li&gt; &lt;li&gt;RFC3833 威胁分析，关键资料&lt;/li&gt; &lt;li&gt;RFC4592 泛域名，感觉不错&lt;/li&gt; &lt;li&gt;RFC4033/4034/4035 讲DNSSEC， 这几份读的很烦躁&lt;/li&gt;&lt;/ul&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-9180889720915773630?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/9180889720915773630/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/11/pro-dns-and-bind-10.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/9180889720915773630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/9180889720915773630'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/11/pro-dns-and-bind-10.html' title='Pro DNS and BIND 10 : 附录'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-6271561712422681747</id><published>2011-11-02T21:03:00.001+08:00</published><updated>2012-01-08T19:45:59.649+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DNS'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>Pro DNS and Bind 10 : chap 9</title><content type='html'>&lt;p&gt;一些返回码：&lt;/p&gt; &lt;ul&gt; &lt;li&gt;FORMERR：NS无法识别该查询&lt;/li&gt; &lt;li&gt;SERVFAIL：由于NS的故障无法执行查询，或由于NS配置问题无法支持指定的查询请求&lt;/li&gt; &lt;li&gt;NXDOMAIN：只能由权威给出，表示该域名不存在&lt;/li&gt; &lt;li&gt;NOTIMP：NS不支持指定的查询请求&lt;/li&gt; &lt;li&gt;YXDomain：域名存在，但它不该存在&lt;/li&gt; &lt;li&gt;YXRRSet：配置存在，但它不该存在&lt;/li&gt; &lt;li&gt;NXRRSet：配置不存在，但它应该存在&lt;/li&gt; &lt;li&gt;NotAuth：服务器不是该域的权威&lt;/li&gt; &lt;li&gt;NotZone：域名不在该域内&lt;/li&gt;&lt;/ul&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-6271561712422681747?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/6271561712422681747/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/11/pro-dns-and-bind-10-chap-9.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/6271561712422681747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/6271561712422681747'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/11/pro-dns-and-bind-10-chap-9.html' title='Pro DNS and Bind 10 : chap 9'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-2267202008754479590</id><published>2011-11-01T00:19:00.001+08:00</published><updated>2012-01-08T19:45:59.563+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DNS'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>Pro DNS and Bind 10 : chap 3</title><content type='html'>&lt;p&gt;迭代查询可能有几种返回：&lt;/p&gt; &lt;ul&gt; &lt;li&gt;域名的cname记录，需要标识是权威应答还是缓存应答&lt;/li&gt; &lt;li&gt;域名或主机不存在NXDOMAIN，包括CNAME到一个不存在主机的情况&lt;/li&gt; &lt;li&gt;出现临时错误，例如网络故障等&lt;/li&gt; &lt;li&gt;referral应答，给出一个更加靠近权威DNS的ns记录&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;最好只有单个IP的PTR指向mail域名，否则可能会丢信。而不是单个IP的PTR指向多个域名。&lt;/p&gt; &lt;p&gt;两种Dynamic DNS：&lt;/p&gt; &lt;ul&gt; &lt;li&gt;允许从外部源实时更新zone RRs，而不中断服务（无法动态新增或删除一个域名/域；已存在域名的RR，除SOA之外，都可以被增/删/改）&lt;/li&gt; &lt;li&gt;从数据库读取zone RRs做解析，数据可以动态更新（BIND-DLZ、PowerDNS、BIND10；域名/域可以动态增/删/改，但是查询性能较差）&lt;/li&gt;&lt;/ul&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-2267202008754479590?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/2267202008754479590/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/11/pro-dns-and-bind-10-chap-3.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/2267202008754479590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/2267202008754479590'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/11/pro-dns-and-bind-10-chap-3.html' title='Pro DNS and Bind 10 : chap 3'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-135759373131365269</id><published>2011-10-30T23:00:00.001+08:00</published><updated>2011-10-30T23:00:35.178+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FTP'/><category scheme='http://www.blogger.com/atom/ns#' term='SSH'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>SFTP客户端软件：WinSCP</title><content type='html'>&lt;p&gt;之前ftp客户端软件用的是&lt;a href="http://www.wftpserver.com/ftprush.htm"&gt;ftprush&lt;/a&gt;，其实&lt;a href="http://winscp.net"&gt;WinSCP&lt;/a&gt;也不错，还可以SSH登录。&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-135759373131365269?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/135759373131365269/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/10/sftpwinscp.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/135759373131365269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/135759373131365269'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/10/sftpwinscp.html' title='SFTP客户端软件：WinSCP'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-7525861699183668636</id><published>2011-10-26T09:45:00.001+08:00</published><updated>2011-10-30T21:01:28.934+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>PowerShell 网络指令包 : NetCmdlets</title><content type='html'>非常好用的单行powershell网络指令：&lt;a href="http://www.powershellinside.com/powershell/netcmdlets/" target="_blank"&gt;NetCmdlets&lt;/a&gt;&lt;br&gt;&lt;br&gt;支持发邮件、查dns、下http、算md5、发tcp/udp包、traceroute、zip压缩等等！&lt;br&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-7525861699183668636?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/7525861699183668636/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/10/powershell-netcmdlets.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7525861699183668636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7525861699183668636'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/10/powershell-netcmdlets.html' title='PowerShell 网络指令包 : NetCmdlets'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-5124414417154051813</id><published>2011-10-17T23:45:00.000+08:00</published><updated>2012-01-08T19:42:07.562+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Algorithm'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>智能Web算法 2</title><content type='html'>有可能你的分类器在一个小规模数据集工作良好，但当它作用于一个充分大的数据集时，表现急剧下降。&lt;br&gt;如果一个分类器极其精确但极其缓慢，它其实与废物差不多！&lt;br&gt;如果你使用的是基于规则的系统，也许会遇到可用性问题，学习的过程－规则的收集－会导致生产环境中的系统整体变得缓慢起来。&lt;br&gt;分类方案应该易于维护、易于测试、并且还要能够迅速的产生结果。&lt;br&gt;更多的数据并不一定意味着更多的信息量。&lt;br&gt;监督学习：我们告诉分类器应该懂得什么，然后它就尝试着通过修改自身的参数来同化这些知识，例如贝叶斯、神经网络权重、基于规则。&lt;br&gt;如果你没有告诉分类器什么是正确的，那它该如何工作？&lt;br&gt;分类器融合：降低单分类器用于未知数据的风险；平滑每个分类器在训练集中的敏感性；表达性组合效果更好。&lt;br&gt;一个分类器如果输入受到轻微的扰动时会产生不一样的输出，就称为是非稳定的。&lt;br&gt;搜索、推荐、聚类、分类&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-5124414417154051813?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/5124414417154051813/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/10/web-2.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/5124414417154051813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/5124414417154051813'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/10/web-2.html' title='智能Web算法 2'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-6533151088333617436</id><published>2011-10-17T14:36:00.001+08:00</published><updated>2011-10-30T21:03:21.435+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DDoS'/><title type='text'>笔记：Checkmate with Denial of Service</title><content type='html'>&lt;div&gt;&lt;a class="l" href="http://www.google.com.hk/url?sa=t&amp;amp;source=web&amp;amp;cd=1&amp;amp;ved=0CCkQFjAA&amp;amp;url=https%3A%2F%2Fmedia.blackhat.com%2Fbh-dc-11%2FBrennan%2FBlackHat_DC_2011_Brennan_Denial_Service-Slides.pdf&amp;amp;rct=j&amp;amp;q=checkmate%20with%20denial%20of%20service&amp;amp;ei=IsqbTsCpOMyQiAernfyrAg&amp;amp;usg=AFQjCNFJlkF3q0YPFXTbIYABbxc5eVwcSA&amp;amp;cad=rjt" target="_blank"&gt;&lt;font color="#d14836"&gt;Checkmate with Denial of Service&lt;/font&gt;&lt;/a&gt;&lt;/div&gt;  &lt;div&gt; &lt;/div&gt; &lt;div&gt;2个点比较有意思：&lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt;慢速POST数据耗资源&lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt;websocket不限制数据流长度问题&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-6533151088333617436?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/6533151088333617436/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/10/checkmate-with-denial-of-service.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/6533151088333617436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/6533151088333617436'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/10/checkmate-with-denial-of-service.html' title='笔记：Checkmate with Denial of Service'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-7176011931383840972</id><published>2011-10-16T23:43:00.001+08:00</published><updated>2011-10-30T21:11:30.059+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='劫持'/><title type='text'>深圳电信对返回为空的http请求插广告</title><content type='html'>请求 http://btui.it/h6MN &lt;br /&gt;
&lt;br /&gt;
1) DNS解析正常&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-slTiR6wALO8/Tq1Mw82hYxI/AAAAAAAACMo/cLwvNVq9GgE/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="175" src="http://4.bp.blogspot.com/-slTiR6wALO8/Tq1Mw82hYxI/AAAAAAAACMo/cLwvNVq9GgE/s320/1.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
2) 对User-Agent头含某些关键字、且最终返回内容为空的http请求，插广告跳转到电信114页面 &lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-qRsLtuUtoTY/Tq1MzfCrZVI/AAAAAAAACMw/tL3YdS7IzE8/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="163" src="http://2.bp.blogspot.com/-qRsLtuUtoTY/Tq1MzfCrZVI/AAAAAAAACMw/tL3YdS7IzE8/s320/2.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-7176011931383840972?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/7176011931383840972/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/10/http.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7176011931383840972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7176011931383840972'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/10/http.html' title='深圳电信对返回为空的http请求插广告'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-slTiR6wALO8/Tq1Mw82hYxI/AAAAAAAACMo/cLwvNVq9GgE/s72-c/1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-4033746635134300656</id><published>2011-10-16T00:07:00.001+08:00</published><updated>2011-10-30T21:04:10.259+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DNS'/><title type='text'>firefox：查看whois信息的扩展</title><content type='html'>&lt;h1 class="addon" dir="ltr" lang="en-us"&gt;&lt;/h1&gt;&lt;h1 class="addon" dir="ltr" lang="en-us"&gt;&lt;a href="https://addons.mozilla.org/zh-CN/firefox/addon/whois-mind/?src=userprofile"&gt;&lt;/a&gt;&lt;/h1&gt;可以一键查看当前网址的域名whois，关键信息也提出来了，很不错：&lt;a href="https://addons.mozilla.org/zh-CN/firefox/addon/whois-mind/?src=userprofile"&gt;Whois Mind&lt;/a&gt; &lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-4033746635134300656?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/4033746635134300656/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/10/firefoxwhois.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/4033746635134300656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/4033746635134300656'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/10/firefoxwhois.html' title='firefox：查看whois信息的扩展'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-2666138816508827724</id><published>2011-10-15T23:50:00.001+08:00</published><updated>2011-10-30T21:04:24.287+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='虚拟机'/><title type='text'>VMware tools 安装</title><content type='html'>见：&lt;a href="http://hi.baidu.com/appcn/blog/item/43c4eafce7888042d6887df9.html"&gt;彻底了解虚拟机VMware tools安装&lt;/a&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-2666138816508827724?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/2666138816508827724/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/10/vmware-tools.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/2666138816508827724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/2666138816508827724'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/10/vmware-tools.html' title='VMware tools 安装'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-186945476991894289</id><published>2011-10-14T14:37:00.001+08:00</published><updated>2011-10-30T21:05:05.252+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><title type='text'>MySQL : 删除mysql-bin.000xxx日志文件的方法</title><content type='html'>&lt;div&gt;注释掉my.cnf里面的&lt;br&gt;&lt;/div&gt; &lt;div&gt;#log-bin=mysql-bin&lt;br&gt;#binlog_format=mixed&lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt;重启mysql&lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt;删除mysql-bin.000xxx文件&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-186945476991894289?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/186945476991894289/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/10/mysql-mysql-bin000xxx.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/186945476991894289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/186945476991894289'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/10/mysql-mysql-bin000xxx.html' title='MySQL : 删除mysql-bin.000xxx日志文件的方法'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-2071666357656589581</id><published>2011-10-10T13:35:00.001+08:00</published><updated>2011-10-30T21:27:42.930+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>Windows Power Shell : find 的等价语句</title><content type='html'>find . -name '*.html' -exec mycmd {} \;&lt;br /&gt;
&lt;br /&gt;
等价语句&lt;br /&gt;
&lt;br /&gt;
Get-ChildItem -Filter '*.html' -Recurse | Foreach-Object {&amp;nbsp; mycmd&amp;nbsp; $_.fullname }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-2071666357656589581?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/2071666357656589581/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/10/windows-power-shell-find.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/2071666357656589581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/2071666357656589581'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/10/windows-power-shell-find.html' title='Windows Power Shell : find 的等价语句'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-726543651892361951</id><published>2011-10-09T20:26:00.000+08:00</published><updated>2011-10-30T21:06:01.435+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>根据CUE分割音乐的软件</title><content type='html'>Medieval CUE Splitter：&lt;a href="http://www.medieval.it/cuesplitter-pc/menu-id-71.html"&gt;http://www.medieval.it/cuesplitter-pc/menu-id-71.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;还不错。&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-726543651892361951?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/726543651892361951/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/10/cue.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/726543651892361951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/726543651892361951'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/10/cue.html' title='根据CUE分割音乐的软件'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-448415466930801743</id><published>2011-10-08T14:46:00.001+08:00</published><updated>2011-10-30T21:05:05.265+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><title type='text'>MySQL: 修改列的取值类型</title><content type='html'>alter table  t1  alter column  testcol varchar(200) default &amp;#39;&amp;#39;;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-448415466930801743?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/448415466930801743/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/10/mysql.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/448415466930801743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/448415466930801743'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/10/mysql.html' title='MySQL: 修改列的取值类型'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-2467800453952079035</id><published>2011-10-08T14:40:00.001+08:00</published><updated>2011-10-30T21:05:05.258+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><title type='text'>MySQL必知必会 chap 23-28</title><content type='html'>存储过程可认为是一条或多条MySQL语句的集合&lt;br&gt;&lt;br&gt; CREATE PROCEDURE testgetavg()&lt;br&gt;&lt;br&gt; BEGIN&lt;br&gt;&lt;br&gt; select avg(some_value) from sometable;&lt;br&gt;&lt;br&gt; END&lt;br&gt;&lt;br&gt; 调用存储过程 call testgetavg();&lt;br&gt;&lt;br&gt; CREATE PROCEDURE productpric ( OUT pl DECMAL (8,2) )&lt;br&gt; &lt;br&gt; BEGIN&lt;br&gt;&lt;br&gt; SELECT Min(prod_price) INTO pl FROM products;&lt;br&gt;&lt;br&gt; END;&lt;br&gt;&lt;br&gt; 关键字OUT指定存储过程输出，IN　传入，INOUT　传入传出&lt;br&gt;&lt;br&gt; 查看存储过程：SHOW PROCEDURE STATUS;&lt;br&gt;&lt;br&gt; MySQL游标只能用于存储过程&lt;br&gt;&lt;br&gt; 触发器是MySQL响应Delete/Insert/Update事件时自动执行的一条语句&lt;br&gt; &lt;br&gt; 事务处理，保留点提供回退，COMMIT/ROLLBACK/SAVEPOINT&lt;br&gt;&lt;br&gt; 字符集：字母和符号表示&lt;br&gt;&lt;br&gt; 编码：某个字符集成员内部表示&lt;br&gt;&lt;br&gt; GRANT 授权　REVOKE取消授权 &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-2467800453952079035?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/2467800453952079035/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/10/mysql-chap-23-28.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/2467800453952079035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/2467800453952079035'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/10/mysql-chap-23-28.html' title='MySQL必知必会 chap 23-28'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-1514850130437274544</id><published>2011-10-08T14:39:00.001+08:00</published><updated>2011-10-30T21:05:05.246+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><title type='text'>MySQL必知必会 chap 17-22</title><content type='html'>用UNION组合多个select查询，默认会去掉重复行；用UNION ALL则会保留重复行&lt;br&gt;&lt;span&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt; MyISAM引擎支持全文本查询，InnoDB不支持全文本查询&lt;br&gt;&lt;span&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt; 指定全文索引FULLTEXT(some_column)，不要在导入数据时使用FULLTEXT。在所有数据都导入完毕后，再添加FULLTEXT&lt;br&gt;&lt;span&gt;&lt;/span&gt;&lt;br&gt; &lt;span&gt;&lt;/span&gt; 全文搜索时，Match指定列，Against指定搜索表达式，默认不区分大小写：select node_text from products WHERE  Match(note_text) Against('rabbit');&lt;br&gt;&lt;span&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt; 指定IN BOOLEAN MODE可以进行更细致的全文搜索，但性能较差&lt;br&gt;&lt;span&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt; 如果数据检索较为重要，可以指定INSERT LOW_PRIORITY INTO降低插入操作的优先级&lt;br&gt; &lt;span&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt; 将select结果写入另一张表：INSERT INTO table_a(column_a, column_b) SELECT column_a,  column_b from table_b;&lt;br&gt;&lt;span&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt; 指定更新数据在某些行出错的时候也继续执行：UPDATE IGNORE sometable …&lt;br&gt;&lt;span&gt;&lt;/span&gt;&lt;br&gt; &lt;span&gt;&lt;/span&gt; 删除表中所有行　TRUNCATE TABLE sometable;&lt;br&gt;&lt;span&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt; 建表：&lt;br&gt;&lt;span&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt; CREATE TABLE IF NOT EXISTS customers (&lt;br&gt;&lt;span&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt; id int NOT NULL AUTO_INCREMENT,&lt;br&gt; &lt;span&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt; name char(50) NOT NULL　DEFAULT 'test_name',&lt;br&gt;&lt;span&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt; PRIMARY KEY (id)&lt;br&gt;&lt;span&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt; ) ENGINE=InnoDB;&lt;br&gt;&lt;span&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt; 每个表只允许一个AUTO_INCREMENT列，并且它必须被索引（成为主键）&lt;br&gt; &lt;span&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt; 几个引擎：&lt;br&gt;&lt;span&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt; InnoDB　支持事务处理，不支持全文本搜索&lt;br&gt;&lt;span&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt; MyISAM 不支持事务处理，支持全文本搜索&lt;br&gt;&lt;span&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt; MEMORY 功能等同于MyISAM，但数据存在内存中（不在磁盘中），速度很快（特别适合临时表）&lt;br&gt; &lt;span&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt; 定义外键：ALTER TABLE sometable_a ADD CONSTRAINT sometable_a_column  FOREIGN KEY  (vend_id) REFERENCES vendors (vend_id);&lt;br&gt;&lt;span&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt; 重命名表 RENAME TABLE table_a  TO table_b;&lt;br&gt; &lt;span&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt; 视图只包含使用时动态检索数据的查询，视图不能索引，也不能有关联的触发器或默认值&lt;br&gt;&lt;span&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt; 查看视图：SHOW CREATE VIEW someview;&lt;br&gt;&lt;span&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt; 建立视图：CREATE VIEW someview  AS SELECT column_a,column_b FROM sometable;&lt;br&gt; &lt;span&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt; 视图一般用于检索，而不用于更新或删除 &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-1514850130437274544?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/1514850130437274544/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/10/mysql-chap-17-22.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/1514850130437274544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/1514850130437274544'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/10/mysql-chap-17-22.html' title='MySQL必知必会 chap 17-22'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-5706911867251072750</id><published>2011-10-08T14:37:00.001+08:00</published><updated>2012-01-08T19:42:07.568+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Algorithm'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>智能WEB算法</title><content type='html'>Lucene 读取文档，分词，索引，搜索　＝》　其中，分词至关重要&lt;br&gt;&lt;span&gt;&lt;/span&gt;PageRank 链接分析，认为用户更有可能点击他认为正确的搜索结果&lt;br&gt;&lt;span&gt;基于用户相似度的推荐是可靠的，但用户量大时会比较低效&lt;/span&gt;&lt;br&gt;&lt;span&gt;基于条目相似度数量级相对较小，较为可行&lt;/span&gt;&lt;br&gt;&lt;span&gt;基于内容相似度有词法分析精度的问题&lt;/span&gt;&lt;br&gt;&lt;span&gt;商用推荐系统的一个要求是，在不牺牲推荐质量的前提下具有进行实时推荐的能力&lt;/span&gt;&lt;br&gt; &lt;span&gt;数据的特性决定了算法能否成功&lt;/span&gt;&lt;br&gt;&lt;span&gt;聚类没有任何先验知识，因此是"无监督学习"&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt;层次型聚类是在分组中识别分组&lt;br&gt;&lt;span&gt;凝聚型&lt;/span&gt;聚类自底向上关联分组&lt;br&gt;&lt;span&gt;&lt;/span&gt;高维度扩大了数据点所分布的空间，就很难判断出聚类的优劣；并且，在高维度空间中，任何数据集的数据点，无论用何种距离度量，数据点之间的差异都会变小 &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-5706911867251072750?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/5706911867251072750/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/10/web.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/5706911867251072750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/5706911867251072750'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/10/web.html' title='智能WEB算法'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-502348739626866688</id><published>2011-10-08T14:35:00.001+08:00</published><updated>2011-10-30T21:02:19.365+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>PHP 提示时间错误的问题</title><content type='html'>apache的error_log提示：&lt;br&gt;&lt;span&gt;&lt;/span&gt;[Thu Sep 29 11:12:14 2011] [error]  [client xxx.xxx.xxx.xxx ] PHP Warning:  date() [&amp;lt;a   href=&amp;#39;function.date&amp;#39;&amp;gt;function.date&amp;lt;/a&amp;gt;]: It is not safe to rely  on the  system&amp;#39;s timezone settings. You are *required* to use the  date.timezone setting  or the date_default_timezone_set() function. In  case you used any of those  methods and you are still getting this  warning, you most likely misspelled the  timezone identifier. We  selected &amp;#39;Asia/Chongqing&amp;#39; for &amp;#39;CST/8.0/no DST&amp;#39; instead  in  /data/htdocs/xxx.php on line 19&lt;br&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt;在php.ini里指定timezone即可：&lt;br&gt;  date.timezone = &amp;quot;PRC&amp;quot; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-502348739626866688?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/502348739626866688/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/10/php.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/502348739626866688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/502348739626866688'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/10/php.html' title='PHP 提示时间错误的问题'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-5134249435959530625</id><published>2011-09-18T23:55:00.001+08:00</published><updated>2011-09-18T23:55:08.803+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><title type='text'>MySQL 必知必会 chap 1-16</title><content type='html'>&lt;p&gt;显示表的列：show columns from sometable;&amp;nbsp; 或 describe sometable;&lt;/p&gt; &lt;p&gt;查看创建表的语句：show create table sometable;&lt;/p&gt; &lt;p&gt;限制查询返回的开始行和行数：select somecolumn from sometable limit&amp;nbsp; 3&amp;nbsp; offest 5;&lt;/p&gt; &lt;p&gt;查询某个列取值在5和10之间的行：select somecolumn_a, somecolumn_b from sometable where somecolumn_b between 5 and 10;&lt;/p&gt; &lt;p&gt;查询某个列取值在某个集合内的行：select somecolumn_a, somecolumn_b from sometable where somecolumn_b in (3, 5, 7);&lt;/p&gt; &lt;p&gt;下划线匹配单个任意字符：select * from sometable where somecolumn like&amp;nbsp; '_test';&lt;/p&gt; &lt;p&gt;尽量不要把通配符置于搜索模式的开始处&lt;/p&gt; &lt;p&gt;REGEXP正则匹配默认不区分大小写，要区分大小写，可使用BINARY关键字：select somecolumn_a from sometable where somecolumn_b REGEXP BINARY ‘abc .999’;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-VSXeBj_qIkU/TnYUVilh6FI/AAAAAAAACMY/D0343Gpp0to/s1600-h/2011-09-18_230234%25255B2%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="2011-09-18_230234" border="0" alt="2011-09-18_230234" src="http://lh4.ggpht.com/-VoIGYibFi6Y/TnYUWzGC6wI/AAAAAAAACMc/xe8aQP1yEDE/2011-09-18_230234_thumb.png?imgmax=800" width="244" height="38"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;日期比较：select * from sometable where Date(somedate) between ‘2011-07-01’ and ‘2011-09-30’;&lt;/p&gt; &lt;p&gt;过滤分组：select cust_id count( * )&amp;nbsp; as orders from ordertable group by cust_id having count( * ) &amp;gt;= 2 ;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-5134249435959530625?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/5134249435959530625/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/09/mysql-chap-1-16.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/5134249435959530625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/5134249435959530625'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/09/mysql-chap-1-16.html' title='MySQL 必知必会 chap 1-16'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/-VoIGYibFi6Y/TnYUWzGC6wI/AAAAAAAACMc/xe8aQP1yEDE/s72-c/2011-09-18_230234_thumb.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-1648694078771269182</id><published>2011-09-12T23:20:00.001+08:00</published><updated>2012-01-08T19:48:17.268+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>JavaScript 高级程序设计 第2版 (Nicholas C.Zakas)</title><content type='html'>&lt;p&gt;如果将document.domain设置为wrox.com之后，就不能再将其设置回p2p.wrox.com，否则将会导致错误。&lt;/p&gt; &lt;p&gt;使用innerText/innerHTML/outerText/outerHTML替换子节点可能会导致浏览器的内存问题，尤其是在IE中。最好先手工移除被删除子树中的事件处理程序及javascript对象属性。&lt;/p&gt; &lt;p&gt;addEventListener，最好将事件处理程序添加到事件流的冒泡阶段，可以最大限度的兼容浏览器。&lt;/p&gt; &lt;p&gt;添加到页面上的事件处理程序数量将直接关系到页面的整体运行性能。&lt;/p&gt; &lt;p&gt;CSRF　未被授权的系统伪装自己，让服务器认为它是合法的，从而获取某个资源。可选的方案：1）SSL连接；2）每次请求均附验证码。无效的方案：1）用POST而非GET；2）检查来源URL；3）验证cookie。&lt;/p&gt; &lt;p&gt;如果某个域的资源并没有允许访问，javascript就不应该能够请求该域中的资源。js默认只能访问包含它的页面的同一个域下的资源。&lt;/p&gt; &lt;p&gt;跨域请求和响应中不应携带cookie，且要确保未经授权无法访问相应资源。&lt;/p&gt; &lt;p&gt;访问内部资源时用相对url，访问远程资源时用绝对url。&lt;/p&gt; &lt;p&gt;json解析很快，但是eval()比较危险，需要对传给eval的参数进行检查，避免恶意内容XSS的攻击。&lt;/p&gt; &lt;p&gt;同源策略：相同的域，相同的端口，相同的协议&lt;/p&gt; &lt;p&gt;cookie数据并非存储在一个安全环境中，其中包含的任何数据都可以被他人访问。&lt;/p&gt; &lt;p&gt;不要在客户端机器用javascript存储敏感数据，因为数据缓存并不加密。&lt;/p&gt; &lt;p&gt;避免创建多个全局变量和函数，使用命名空间。&lt;/p&gt; &lt;p&gt;最小化现场更新，即，最小化对用户的显示进行更新，可以使用文档碎片createDocumentFragment。&lt;/p&gt; &lt;p&gt;HTML跨文档消息传递，用于支持不同域名的文档通信；不允许对另一个文档的DOM和相关信息直接访问，但允许发送和接收包含数据的消息。&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-1648694078771269182?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/1648694078771269182/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/09/javascript-2-nicholas-czakas.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/1648694078771269182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/1648694078771269182'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/09/javascript-2-nicholas-czakas.html' title='JavaScript 高级程序设计 第2版 (Nicholas C.Zakas)'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-6759267155589494812</id><published>2011-09-11T14:34:00.001+08:00</published><updated>2011-09-11T14:34:36.837+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>html的&lt;frameset&gt;</title><content type='html'>&lt;p&gt;当html主体中有&amp;lt;body&amp;gt;时，&amp;lt;frameset&amp;gt;里&amp;lt;frame&amp;gt;指定的url浏览器是直接忽略的（不会建连接）。&lt;/p&gt; &lt;p&gt;也就是说，有&amp;lt;body&amp;gt;时，即使有&amp;lt;frameset&amp;gt;也不会生效，也就不用取这部分的&amp;lt;frame&amp;gt;了。&lt;/p&gt; &lt;p&gt;html5把frameset、frame去掉了。&lt;/p&gt; &lt;p&gt;参考：&lt;a href="http://www.w3schools.com/tags/tag_frameset.asp"&gt;HTML &amp;lt;frameset&amp;gt; Tag&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-6759267155589494812?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/6759267155589494812/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/09/html.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/6759267155589494812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/6759267155589494812'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/09/html.html' title='html的&amp;lt;frameset&amp;gt;'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-5863081955281565152</id><published>2011-09-11T14:19:00.001+08:00</published><updated>2012-01-08T19:48:17.424+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>JavaScript 权威指南 chapter 12</title><content type='html'>&lt;p&gt;html解析器遇到script时，必须停止解析文档，等待script执行。如果script指定defer属性，表示这块script不生成任何文档输出，浏览器可以继续解析html文档，推迟执行script&lt;/p&gt; &lt;p&gt;脚本执行过程是浏览器进行HTML解析的一部分，如果一个脚本在&amp;lt;head&amp;gt;出现，那么该文档的&amp;lt;body&amp;gt;就还没有被定义，也就是说文档主体还没有被创建，脚本不能对它作操作&lt;/p&gt; &lt;p&gt;onload是当文档或框架被完全装载时调用的，onunload是在刚要卸载页面之前执行的(浏览器要显示新页面了)&lt;/p&gt; &lt;p&gt;reload()重新载入当前页面，replace()替换当前页面(history会失效)&lt;/p&gt; &lt;p&gt;如果一个frame设置了name，例如&amp;lt;frame name=”test_frame” src=”test.html”&amp;gt;，则兄弟框架可以用parent.test_frame引用之&lt;/p&gt; &lt;p&gt;document.write()动态生成文档&lt;/p&gt; &lt;p&gt;cookie的secure属性为真时，表示只有在https和安全协议连在一起时被传输&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-5863081955281565152?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/5863081955281565152/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/09/javascript-chapter-12.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/5863081955281565152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/5863081955281565152'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/09/javascript-chapter-12.html' title='JavaScript 权威指南 chapter 12'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-1322653040587847210</id><published>2011-09-11T14:17:00.001+08:00</published><updated>2011-09-11T14:17:59.904+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='返利'/><category scheme='http://www.blogger.com/atom/ns#' term='广告'/><title type='text'>互联网广告、返利扫盲</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a href="http://blog.sina.com.cn/s/blog_605b0e2e0100wcpb.html"&gt;漫谈互联网广告盈利模式、CPS及返利业务&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://hi.baidu.com/smile5117/blog/item/7a813ada3c4e2dd5b6fd48bd.html"&gt;网站盈利模式分析:返利网站&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-1322653040587847210?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/1322653040587847210/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/09/blog-post.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/1322653040587847210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/1322653040587847210'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/09/blog-post.html' title='互联网广告、返利扫盲'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-7334518336478883494</id><published>2011-08-03T23:54:00.001+08:00</published><updated>2012-01-08T19:48:17.456+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>JavaScript 权威指南 chapter 11</title><content type='html'>&lt;p&gt;function定义的函数使用词法作用域&lt;/p&gt;&lt;pre class="brush:js"&gt;var x = “global”;

function f() {

var x = “local”;

function g() { alert(x); }

g();

}

f();  //打印出local

&lt;/pre&gt;
&lt;p&gt;Function() 创建的函数不使用词法作用域，而是当作顶级作用域编译&lt;/p&gt;&lt;pre class="brush:js"&gt;var y = “global”;

function constructFunction() {

var y = “local”;

return new Function(“return y”);

}

alert(constructFunction()());  //打出global&lt;/pre&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-7334518336478883494?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/7334518336478883494/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/08/javascript-chapter-11.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7334518336478883494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7334518336478883494'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/08/javascript-chapter-11.html' title='JavaScript 权威指南 chapter 11'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-572866133575892351</id><published>2011-08-03T23:42:00.001+08:00</published><updated>2012-01-08T19:48:17.410+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>JavaScript 权威指南 chapter 1 - 10</title><content type='html'>&lt;p&gt;变量没有块级作用域，在函数中任意位置定义的变量，在整个函数体都可用&lt;/p&gt; &lt;p&gt;函数使用变量时，先从局部作用域开始找，然后才是全局作用域&lt;/p&gt; &lt;p&gt;typeof(null) 返回的是object，而不是undefined&lt;/p&gt; &lt;p&gt;void舍弃运算数的值，返回undefined&lt;/p&gt; &lt;p&gt;抛出异常 if(x&amp;lt;0) throw new Error(“x must not be negative”); 后javascript解释器会跳转到最近的异常处理器(一直往上找，如果没找到就作为错误处理)&lt;/p&gt; &lt;p&gt;try/catch/finally块，finally一定会执行，就算try中间要跳走，也要等finally执行了再说&lt;/p&gt; &lt;p&gt;object.property　这个属性名是标识符，静态对象硬编码，比较像C++中的静态对象&lt;/p&gt; &lt;p&gt;object[“property”] 这个属性名是字符串值，可以动态指定，相当于关联数组&lt;/p&gt; &lt;p&gt;slice函数返回指定数组的一个片段，splice函数用于插入或删除数组元素&lt;/p&gt; &lt;p&gt;search函数返回第一个匹配的位置&lt;/p&gt; &lt;p&gt;replace函数是正则替换&lt;/p&gt; &lt;p&gt;match函数是正则匹配&lt;/p&gt; &lt;p&gt;exec函数是每次调用执行一次匹配尝试，index往前走&lt;/p&gt; &lt;p&gt;test是尝试匹配一次，返回true/false&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-572866133575892351?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/572866133575892351/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/08/javascript-chapter-1-10.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/572866133575892351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/572866133575892351'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/08/javascript-chapter-1-10.html' title='JavaScript 权威指南 chapter 1 - 10'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-875903605141737858</id><published>2011-07-11T01:09:00.002+08:00</published><updated>2012-01-08T19:54:44.328+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>Learning Perl   6th</title><content type='html'>正则式描述符：&lt;br /&gt;
/a 表示匹配ascii字符&lt;br /&gt;
/u&amp;nbsp;&amp;nbsp; 表示匹配unicode字符&lt;br /&gt;
/l 表示匹配本地字符&lt;br /&gt;
命名匹配： (?&amp;lt;name&amp;gt;\w+) &lt;br /&gt;
在正则式中复用之前的命名匹配：\g{name} 或 \k&amp;lt;name&amp;gt;&lt;br /&gt;
匹配完取内容：$+{name}&lt;br /&gt;
&lt;a href="http://lh4.ggpht.com/-m0M8055saJ4/ThncrKp6yqI/AAAAAAAACL8/pq9bxzRdTqU/s1600-h/image%25255B3%25255D.png"&gt;&lt;img alt="image" border="0" height="313" src="http://lh5.ggpht.com/-M9DXfzQBuBE/Thnct9QAuNI/AAAAAAAACMA/fuQsaBMvVnY/image_thumb%25255B1%25255D.png?imgmax=800" style="background-image: none; border-color: -moz-use-text-color; border-style: none; border-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;
相对于given-when的默认smart match，也可以用以前正则匹配的dump match&lt;br /&gt;
在when的代码块末尾加continue，就会继续往下匹配，而不是默认的有个匹配后跳出given-when检查&lt;br /&gt;
获取外部命令输出的模块&amp;nbsp; IPC::System::Simple&lt;br /&gt;
执行指令挂掉检查，autodie配合Try::Tiny来用&lt;br /&gt;
每次取三个元素出来处理：&lt;br /&gt;
&lt;a href="http://lh5.ggpht.com/-z9STWyHeXNI/ThncvAEzQcI/AAAAAAAACME/QhLOP_VBwmw/s1600-h/image%25255B7%25255D.png"&gt;&lt;img alt="image" border="0" height="159" src="http://lh6.ggpht.com/-M2LLvv9JFM0/Thncxl2qNBI/AAAAAAAACMI/zW_Hp_iMbRg/image_thumb%25255B3%25255D.png?imgmax=800" style="background-image: none; border-color: -moz-use-text-color; border-style: none; border-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;
附录有介绍unicode&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-875903605141737858?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/875903605141737858/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/07/learning-perl-6th.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/875903605141737858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/875903605141737858'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/07/learning-perl-6th.html' title='Learning Perl   6th'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-M9DXfzQBuBE/Thnct9QAuNI/AAAAAAAACMA/fuQsaBMvVnY/s72-c/image_thumb%25255B1%25255D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-1145054764023661928</id><published>2011-07-04T22:29:00.003+08:00</published><updated>2011-07-04T22:32:51.634+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Network'/><title type='text'>mdns协议</title><content type='html'>参考：&lt;a href="http://www.ehow.com/facts_8184504_mdns-protocol.html"&gt;What Is the mDNS Protocol?&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
mdns适合快速小型组网，例如adhoc，wifi&lt;br /&gt;
&lt;br /&gt;
可以认为是一个节点，加入网络时，发组播跟别的节点说：我叫啥，ip是啥&lt;br /&gt;
&lt;br /&gt;
此时，同一无线局域网下的wifi节点无需专门的中转路由节点，可相互通信&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-1145054764023661928?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/1145054764023661928/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/07/mdns.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/1145054764023661928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/1145054764023661928'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/07/mdns.html' title='mdns协议'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-4162792898129687668</id><published>2011-06-28T00:09:00.001+08:00</published><updated>2012-01-08T19:47:42.608+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTTP'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>HTTP : The Definitive Guide Chapter 11 - End</title><content type='html'>&lt;p&gt;包含用户状态信息的url称为fat url，最好别用&lt;/p&gt;  &lt;p&gt;Content-Encoding 取 identity 表示没编码&lt;/p&gt;  &lt;p&gt;Delta Encoding ：server只传更新的那部分内容给client，不用把全部内容往回传。client先发A-IM请求给server，server返回IM、Etag、Delta-base头信息，返回码226&lt;/p&gt;  &lt;p&gt;Delta-base 表示与当前最新内容生成delta信息的源内容的Etag版本号&lt;/p&gt;  &lt;p&gt;WCCP (web cache coordination protocol) 路由器重定向web流量到代理缓存&lt;/p&gt;  &lt;p&gt;GRE(generic router encapsulation)：支持WCCP重定向HTTP数据包到一个特殊的server，IP头是到那个server的&lt;/p&gt;  &lt;p&gt;Internet Cache Protocol (ICP)：问临近的cache是否有client请求的数据，邻居返回一个HIT或MISS的应答；用UDP通信，挨个问一圈，实在没有再自己去源server请求内容&lt;/p&gt;  &lt;p&gt;Cache Array Routing Protocol(CARP)：对url做hash，一个cache server存一部分内容，每个cache server存的url各不相同；问题是，如果一个cache server挂掉，hash要打乱重来，消耗较大；&lt;/p&gt;  &lt;p&gt;Hyper Text Caching Protocol (HTCP)：允许通过url、http request、http response头查询邻居是否有请求的数据；与ICP的差别在于request和response的详细程度&lt;/p&gt;  &lt;p&gt;Hit Metering Protocol：扩展HTTP协议，在cache与server之间传递一些信息&lt;/p&gt;  &lt;p&gt;几个代理相关的头Via/X-Cache/X-Forwarded-For/&lt;/p&gt;  &lt;p&gt;APPENDIX B是HTTP状态码说明&lt;/p&gt;  &lt;p&gt;APPENDIX E是BASE64是编码方案说明，比较简单，把8位bit合并，再拆分成6位一组，映射到一个字符表中；最后的生成的bit串长必须是24整数位(6和8的最小公倍数)，不足的部分用=号填充&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-4162792898129687668?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/4162792898129687668/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/06/http-definitive-guide-chapter-11-end.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/4162792898129687668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/4162792898129687668'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/06/http-definitive-guide-chapter-11-end.html' title='HTTP : The Definitive Guide Chapter 11 - End'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-102241019603580089</id><published>2011-06-26T20:35:00.001+08:00</published><updated>2012-01-08T19:47:42.572+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTTP'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>HTTP : The Definitive Guide Chapter 5 - 10</title><content type='html'>&lt;p&gt;web server 处理并发连接的方式：&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;single thread &lt;/li&gt;    &lt;li&gt;multiprocess and multithread &lt;/li&gt;    &lt;li&gt;multiplex i/o &lt;/li&gt;    &lt;li&gt;multiplexed multithread &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;几种proxy：&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;surrogate，或称reverse proxy、server acccelerator &lt;/li&gt;    &lt;li&gt;transcoder，可以修改server给的response，比如原来给的是png，把它压缩成jpg传给用户 &lt;/li&gt;    &lt;li&gt;anonymizer，把用户个人标识、referer、email、cookie等涉及隐私的头部都去掉 &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;怎么配置才能让用户用上代理：&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;client 指定代理服务器 &lt;/li&gt;    &lt;li&gt;路由设备监听请求，转移到代理，又称intercepting proxy &lt;/li&gt;    &lt;li&gt;在用户使用的DNS SERVER上改IP &lt;/li&gt;    &lt;li&gt;web server把用户重定向到proxy &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;客户端自动设代理的配置文件PAC&lt;/p&gt;  &lt;p&gt;客户端自动配置代理的协议 WPAD，为客户端自动寻找可用的PAC file，支持好几种配置：&lt;/p&gt;  &lt;p&gt;DHCP&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;SLP &lt;/li&gt;    &lt;li&gt;DNS well-known hostnames &lt;/li&gt;    &lt;li&gt;DNS SRV records &lt;/li&gt;    &lt;li&gt;DNS service URIS in TXT records &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;HTTP TUNNEL：CONNECT 连外面的SSL，RESPONSE返回的时候，不用带Content-Type头，因为连接成功后，就开始传二进制流了&lt;/p&gt;  &lt;p&gt;SSL TUNNEL：HTTP头套在SSL数据的外面&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-102241019603580089?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/102241019603580089/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/06/http-definitive-guide-chapter-5-10.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/102241019603580089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/102241019603580089'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/06/http-definitive-guide-chapter-5-10.html' title='HTTP : The Definitive Guide Chapter 5 - 10'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-214636950362043304</id><published>2011-06-20T21:53:00.002+08:00</published><updated>2012-01-08T19:47:42.580+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTTP'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>HTTP : The Definitive Guide Chapter 1 - 4</title><content type='html'>Media Types：browser根据指定的MIME类型处理收到的数据&lt;br /&gt;
100 Continue :&amp;nbsp; 收到request的一部分内容，client得继续交&lt;br /&gt;
101 Switching Protocols : server按client要求的换协议了&lt;br /&gt;
如果client没发entity，就不要发100-continue的Expect头给server&lt;br /&gt;
如果server没收到client的100-continue Expect头，就不能发100 Continue的状态码给client&lt;br /&gt;
如果中间节点收到的response包含Connection header，它会按Connection header的做，然后把Connection头删掉再传给用户&lt;br /&gt;
中间透明代理如果不看Connection:Keep-Alive就转发给server，就会导致server一直到超时都不关连接，同时client给proxy的keep-alive信息被proxy忽略。因此，代理绝对不能转发Connection头&lt;br /&gt;
Proxy-Connection头，绕过上述问题：如果代理不认识Proxy-Connection，就当传了一个未知头；如果中间代理支持Connection:keep-alive，就把Proxy-Connection换成Connection传给server&lt;br /&gt;
连接方式：&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Parallel connection 同时起多个TCP连接，对内存/CPU要求高&lt;/li&gt;
&lt;li&gt;Persisten connection&amp;nbsp; 延长TCP连接使用时间，重用已有TCP连接发起新的HTTP请求，keep-alive；一次发一个request；server返回的内容要在length&lt;/li&gt;
&lt;li&gt;Pipeline connection ：只有确认已经使用了持久连接，才能用pipeline；不需等前一个request的response返回，就可以发新的request&lt;/li&gt;
&lt;/ul&gt;Keep-Alive: max=5,timeout=120 最多5个HTTP会话，120秒超时&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-214636950362043304?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/214636950362043304/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/06/http-definitive-guide-chapter-1-5.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/214636950362043304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/214636950362043304'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/06/http-definitive-guide-chapter-1-5.html' title='HTTP : The Definitive Guide Chapter 1 - 4'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-7478850229077962365</id><published>2011-06-08T23:53:00.001+08:00</published><updated>2012-01-08T19:47:42.651+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTTP'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>HTTP Developer’s Handbook Chapter 17 - 25</title><content type='html'>&lt;p&gt;SSL 缓存，可复用之前协商过的对称密钥&lt;/p&gt;  &lt;p&gt;TLS是IETF搞的，SSL是Netscape搞的&lt;/p&gt;  &lt;p&gt;Secure HTTP request 包裹着正常的HTTP request&lt;/p&gt;  &lt;p&gt;磁盘阵列介绍：&lt;a href="http://zh.wikipedia.org/wiki/RAID"&gt;RAID&lt;/a&gt;，最常用的是RAID5&lt;/p&gt;  &lt;p&gt;XSS 尝试插入恶意代码，获取用户cookie；针对特定站点的信任&lt;/p&gt;  &lt;p&gt;CSRF 伪造HTTP请求，利用已认证的用户身份绕过安全检查；针对特定用户的信任&lt;/p&gt;  &lt;p&gt;CSRF比XSS更难防，一些考虑做法：&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;重点表单禁用GET请求&lt;/li&gt;    &lt;li&gt;POST请求的结果会更容易看到，因为POST返回的内容是for parent resource，而非an embedded one&lt;/li&gt;    &lt;li&gt;表单加上随机数，在server端校验&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;SOAP服务，指定SOAPAction，通过POST方式发出请求，远程执行完毕后返回格式化的xml内容&lt;/p&gt;  &lt;p&gt;WebDAV服务，例如svn/cvs&lt;/p&gt;  &lt;p&gt;P3P 用户设置哪些隐私可以被收集，相关参考资料：《P3P Web隐私》&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-7478850229077962365?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/7478850229077962365/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/06/http-developers-handbook-chapter-17-25.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7478850229077962365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7478850229077962365'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/06/http-developers-handbook-chapter-17-25.html' title='HTTP Developer’s Handbook Chapter 17 - 25'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-8868460365266630208</id><published>2011-06-08T00:00:00.002+08:00</published><updated>2012-01-08T19:47:42.675+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTTP'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>HTTP Developer’s Handbook Chapter 15 - 16</title><content type='html'>缓存协议：&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Internet Cache Protocol (ICP)：最流行的，squid也用它；轻量级的，HIT/MISS两状态，用UDP通信&lt;/li&gt;
&lt;li&gt;Cache Digest Protocol ：通过内容的摘要比对确定是否要更新缓存；用TCP通信，摘要可通过http链接获取&lt;/li&gt;
&lt;li&gt;Cache Array Resolution Protocol：多个代理逻辑上并做一个代理；通过url和缓存id标识；有负载不均衡的问题；新添一个proxy，整个hash表要重算&lt;/li&gt;
&lt;li&gt;Web Cache Coordination Protocol：解析http request头，重定向到cache proxy；适合做透明代理；直接从底层看端口转流量&lt;/li&gt;
&lt;/ul&gt;负载均衡，是否总是由同一个server服务同一个特殊的client？&lt;br /&gt;
《Server Load Balancing》&amp;nbsp; by&amp;nbsp; Tony Bourke&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-8868460365266630208?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/8868460365266630208/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/06/http-developers-handbook-chapter-15.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/8868460365266630208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/8868460365266630208'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/06/http-developers-handbook-chapter-15.html' title='HTTP Developer’s Handbook Chapter 15 - 16'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-7172588218486079494</id><published>2011-06-07T23:16:00.003+08:00</published><updated>2012-01-08T19:47:42.642+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTTP'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>HTTP Developer’s Handbook Chapter 9 - 14</title><content type='html'>url用iso-8859-1编码&lt;br /&gt;
ascii字符表：&lt;a href="http://www.asciitable.com/"&gt;http://www.asciitable.com&lt;/a&gt;&lt;br /&gt;
Content-Disposition 如果想下载，指定attachment；如果想嵌入，例如流媒体，指定inline&lt;br /&gt;
session 除了保持用户的认证状态之外，还保持一些与应用相关的数据&lt;br /&gt;
server给的Set-Cookie一些属性不会再由client从Cookie提交回去(只提交name&amp;lt;-&amp;gt;value对)，这些属性只是用于browser决定何时该提交cookie&lt;br /&gt;
用户数据放在server比在网络中传来传去安全多了&lt;br /&gt;
cookie之类的状态管理机制的唯一用途在于标识客户端，不用于用户认证，或传用户数据&lt;br /&gt;
默认提交的表单参数写成hidden型的表单参数提交，不要放在表单url里&lt;br /&gt;
还有一种方案是在url里带上unique identifier&lt;br /&gt;
尽量不要把关键数据放在用户侧&lt;br /&gt;
缓存需注意避免三个问题：1) 用户获取过期的数据；2) 把别的用户数据发给当前用户；3) 敏感信息被缓存&lt;br /&gt;
Cache-Control 的取值：&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;public 可以任意缓存&lt;/li&gt;
&lt;li&gt;private 可以缓存，但不是公共缓存&lt;/li&gt;
&lt;li&gt;no-transform 可以缓存，但不能改内容&lt;/li&gt;
&lt;li&gt;must-revalidate 过期后缓存总是要重新验证&lt;/li&gt;
&lt;li&gt;proxy-revalidate 除了代理之外，过期都要重新验证&lt;/li&gt;
&lt;li&gt;max-age 可以把当前缓存send给用户的时间区间&lt;/li&gt;
&lt;li&gt;s-maxage 与max-age相同，但private-cache会忽略这个&lt;/li&gt;
&lt;li&gt;cache-extension 非明确指定通用的；proxy可以忽略这个&lt;/li&gt;
&lt;/ul&gt;GET发请求时，加上If-Modified-Since，如果没更新，Server返回304 Not Modified，可以省流量&lt;br /&gt;
返回的Content-Range: 600-900/1234 表示总共有1024字节，当前按请求仅返回600-900字节的内容，Content-Type为multi-part/byteranges&lt;br /&gt;
部分请求成功返回码为206 Partial Content，失败为416 Requested Range Not Satisfiable&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-7172588218486079494?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/7172588218486079494/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/06/http-developers-handbook-chapter-9.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7172588218486079494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7172588218486079494'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/06/http-developers-handbook-chapter-9.html' title='HTTP Developer’s Handbook Chapter 9 - 14'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-3447970528930419448</id><published>2011-06-07T20:42:00.001+08:00</published><updated>2012-01-08T19:47:42.601+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTTP'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>HTTP Developer’s Handbook Chapter 7 General Headers</title><content type='html'>&lt;p&gt;Cache-Control&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;no-cache 不是不让缓存，只是在给用户缓存内容前先检查下；如果指定no-cache=”Set-Cookie”这种，则是指定缓存中不保留的部分 &lt;/li&gt;    &lt;li&gt;no-store 不做缓存 (IE直接无视此信息) &lt;/li&gt;    &lt;li&gt;max-stale&amp;#160; 缓存系统不经检查直接返回内容给用户的最大时间 &lt;/li&gt;    &lt;li&gt;min-fresh 缓存系统只能返回过期时间比min-fresh长的资源给用户 &lt;/li&gt;    &lt;li&gt;no-transform 不修改内容 &lt;/li&gt;    &lt;li&gt;only-if-cached 缓存系统不能去找原始服务器，但还是要给用户返回缓存；一般是缓存系统与原始服务器通信有问题 &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Connection : 指定是否持久连接Keep-Alive/Close，HTTP/1.1默认是持久连接，HTTP/1.0默认是非持久连接；也可以设成Upgrade&lt;/p&gt;  &lt;p&gt;Pragma 是HTTP/1.0用于控制cache的，现在就一个用法，Pragma: no-cache跟人家说不要缓存&lt;/p&gt;  &lt;p&gt;Trailer 在content之后还可以带HTTP headers，只在Transfer-Encoding: chunked的时候可用&lt;/p&gt;  &lt;p&gt;Transfer-Encoding 持久连接的时候，不知道啥时候内容传完，所以要指定chunked传输&lt;/p&gt;  &lt;p&gt;Warning 经常用于跟client说缓存出了什么问题&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-3447970528930419448?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/3447970528930419448/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/06/http-developers-handbook-chapter-7.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/3447970528930419448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/3447970528930419448'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/06/http-developers-handbook-chapter-7.html' title='HTTP Developer’s Handbook Chapter 7 General Headers'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-1448737326402728461</id><published>2011-06-05T16:33:00.001+08:00</published><updated>2011-06-05T16:33:00.333+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>Win7 : 安装SP1提示系统缺少必备的组件</title><content type='html'>&lt;p&gt;解决见：&lt;a href="http://wenwen.soso.com/z/q271543638.htm?sp=1000"&gt;win7sp1补丁包无法安装&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;把 FileRepository 里缺的文件补上，就能装了。&lt;/p&gt;  &lt;p&gt;从去年买了笔记本就一直用的预装的系统，升级程序说缺了组件吧，还不说到底缺啥，鬼才知道它缺了啥，受不了。&lt;/p&gt;  &lt;p&gt;从11:00拆腾到16:30，按微软官网的帮助搞来搞去，下啥KB947821查查查，下独立安装包试试试，再下iso准备刻盘。。。&lt;/p&gt;  &lt;p&gt;服了我自己了，土啊！早点上百度知道、搜搜问问还快一点。&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-1448737326402728461?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/1448737326402728461/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/06/win7-sp1.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/1448737326402728461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/1448737326402728461'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/06/win7-sp1.html' title='Win7 : 安装SP1提示系统缺少必备的组件'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-8459067870745538037</id><published>2011-06-04T19:16:00.001+08:00</published><updated>2012-01-08T19:47:42.670+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTTP'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>HTTP Developer’s Handbook Chapter 6 Response Headers</title><content type='html'>&lt;p&gt;Accept-Ranges 是否支持分段请求&lt;/p&gt;  &lt;p&gt;Age 现在返回的内容已经从原始server拿过来多久了；代理算的时候会加上传输时间&lt;/p&gt;  &lt;p&gt;Content-Disposition 经常用做指定建议网页另存为的文件名&lt;/p&gt;  &lt;p&gt;Etag 资源版本&lt;/p&gt;  &lt;p&gt;Location 必须是绝对路径&lt;/p&gt;  &lt;p&gt;Vary 中间代理不能修改的头信息；例如Accept-Language，同一网址，有不同语言版本&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-8459067870745538037?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/8459067870745538037/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/06/http-developers-handbook-chapter-6_04.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/8459067870745538037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/8459067870745538037'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/06/http-developers-handbook-chapter-6_04.html' title='HTTP Developer’s Handbook Chapter 6 Response Headers'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-7382376928388396292</id><published>2011-06-04T16:49:00.001+08:00</published><updated>2012-01-08T19:47:42.647+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTTP'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>HTTP Developer’s Handbook Chapter 6  - 状态码</title><content type='html'>&lt;p&gt;HTTP/1.1 默认是持久连接，如果client在request加上Connection: close，那么，server可以在发完response后关掉连接&lt;/p&gt;  &lt;p&gt;状态码：&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;信息100-199 ：HTTP/1.1才开始用&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;100 Continue 客户端收到真正内容之前，server给个反馈&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;成功200-299：&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;203 Non-Authoritative Information 表示有数据，但不是之前设想的来源提供的数据&lt;/li&gt;      &lt;li&gt;204 No Content 返回内容为空，不用刷新document view&lt;/li&gt;      &lt;li&gt;205 Reset Content 需要刷新document view&lt;/li&gt;      &lt;li&gt;206 Partial Content 返回请求的部分内容，与request的Range头对应&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;重定向300-399：经常要带上Location指定资源的新位置&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;300 Multiple Choise 没法提供请求的资源，但可以在response content或Location头中给出建议的资源&lt;/li&gt;      &lt;li&gt;301 Moved Permanently 永久转向&lt;/li&gt;      &lt;li&gt;302 Found 临时转向；事实上客户端看到302咋会操作之前没有规定，由客户端自定；一般来说，不论之前资源请求方式是不是GET，在转向之后Location指定的新资源默认用GET取&lt;/li&gt;      &lt;li&gt;303 See Other 跟302一样是临时转向，只是显式指定Location指定的新资源要用GET方式取&lt;/li&gt;      &lt;li&gt;304 Not Modified 资源从某个时间点开始就没被改过，返回的content为空；与request的If-Modified-Since对应；一般还会带上个Date头，有时还有ETag和Content-Location头；而且由于这个经常是给proxy回的，还会出现Expires、Cache-Control、Vary头等等&lt;/li&gt;      &lt;li&gt;305 Use Proxy 要求用代理取，Location中给出指定代理的地址；注意，只有当前请求的这个资源是指定要用这个代理取&lt;/li&gt;      &lt;li&gt;307 Temporary Redirect 跟302一样是临时转向，只是取Location指定的新资源时采用跟原始请求相同的method&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;client错误400-499：&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;400 Bad Request 请求格式错误，比如少提交了Host之类&lt;/li&gt;      &lt;li&gt;401 Unauthorized 请求一个保护资源时，会先给个401，同时带上WWW-Authenticate的头，用户输入正确的认证的信息之后，浏览器一般会自动接下去请求内容&lt;/li&gt;      &lt;li&gt;402 Payment Required 要求付费？实际上基本没出现过&lt;/li&gt;      &lt;li&gt;403 Forbidden 没有权限请求该内容；不想被黑客盯上也可以直接返回404&lt;/li&gt;      &lt;li&gt;404 Not Found 资源不存在&lt;/li&gt;      &lt;li&gt;405 Method Not Allowed 不支持该请求指定的method&lt;/li&gt;      &lt;li&gt;406 Not Acceptable 没法满足request中指定的Accept条件&lt;/li&gt;      &lt;li&gt;407 Proxy Authentication Required 代理跟client说要求认证，带上个Proxy-Authenticate头&lt;/li&gt;      &lt;li&gt;408 Request Timeout 请求超时。例如server需要接到第2个request才给内容，但是client之前指定了Connection: close直接断连接了，然后就超时&lt;/li&gt;      &lt;li&gt;409 Conflict 冲突，比如client刚请求了某个版本的资源，资源版本又更新了。&lt;/li&gt;      &lt;li&gt;410 Gone 不再存在了&lt;/li&gt;      &lt;li&gt;411 Length Required&lt;/li&gt;      &lt;li&gt;412 Precondition Failed 不满足If-Match之类指定的条件&lt;/li&gt;      &lt;li&gt;413 Request Entity Too Large &lt;/li&gt;      &lt;li&gt;414 Request-URI Too Long&lt;/li&gt;      &lt;li&gt;415 Unsupported Media Type&lt;/li&gt;      &lt;li&gt;416 Requested Range Not Satisfiable&lt;/li&gt;      &lt;li&gt;417 Expectation Failed 不满足请求指定的Expect条件&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;server错误500-599：&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;500 Internal Server Error 不知道cgi出啥错了&lt;/li&gt;      &lt;li&gt;501 Not Implemented 服务器不支持该请求指定的method&lt;/li&gt;      &lt;li&gt;502 Bad Gateway 代理收到invalid reponse的时候，会返回502给client&lt;/li&gt;      &lt;li&gt;503 Service Unavailable 服务器暂时没法处理请求，一般会给个Retry-After跟client说啥时候再来请求&lt;/li&gt;      &lt;li&gt;504 Gateway Timeout 代理等server的应答等超时了，会返回504给客户端&lt;/li&gt;      &lt;li&gt;505 HTTP Version Not Supported&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-7382376928388396292?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/7382376928388396292/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/06/http-developers-handbook-chapter-6.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7382376928388396292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7382376928388396292'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/06/http-developers-handbook-chapter-6.html' title='HTTP Developer’s Handbook Chapter 6  - 状态码'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-3253721589662337493</id><published>2011-06-04T15:04:00.001+08:00</published><updated>2011-06-04T15:04:08.266+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PDF'/><category scheme='http://www.blogger.com/atom/ns#' term='CHM'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>chm转pdf 的软件: abc amber chm converter</title><content type='html'>&lt;p&gt;转的很快，效果也不错，试用版会在上头打个Trial Version的横条说明，我觉得无所谓啦。&lt;/p&gt;  &lt;p&gt;下载：&lt;a href="http://www.processtext.com/abcchm.html"&gt;abc amber chm converter&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-3253721589662337493?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/3253721589662337493/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/06/chmpdf-abc-amber-chm-converter.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/3253721589662337493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/3253721589662337493'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/06/chmpdf-abc-amber-chm-converter.html' title='chm转pdf 的软件: abc amber chm converter'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-5832508482571396223</id><published>2011-06-04T15:03:00.001+08:00</published><updated>2012-01-08T19:47:42.633+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTTP'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>HTTP Developer’s Handbook Chapter 1 - 5</title><content type='html'>&lt;p&gt;http 是无状态协议，一个请求不需要其他请求的信息&lt;/p&gt;  &lt;p&gt;头部信息有３种：&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;General headers : 请求和应答都能有的 &lt;/li&gt;    &lt;li&gt;Request headers：只有请求时才有的 &lt;/li&gt;    &lt;li&gt;Entity headers：与content相关的 &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;请求类型：&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;GET：url有限制，一般不超过1024字符；一般没有content，所以也就没有entity headers &lt;/li&gt;    &lt;li&gt;POST：支持提交大量数据；有一些entity headers说明content的信息，比如post提交的content的长度Content-Length，类型Content-Type &lt;/li&gt;    &lt;li&gt;TRACE：过一个代理会加一个Via头，就可以看出是经过哪些代理 &lt;/li&gt;    &lt;li&gt;OPTIONS：获取一些Web Server的支持信息 &lt;/li&gt;    &lt;li&gt;CONNECT：中转server向目标服务器发connect请求，但不解释HTTP头，只是透明转发。最常用的就是，客户端通过代理请求某个https资源 &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Max-Forwards的request header如果置0，则代理必须自己进行应答。要是这时请求类型是OPTIONS，代理还是得自己答&lt;/p&gt;  &lt;p&gt;Server发出Set-Cookie的应答后，并不知道browser有没有存cookie；除非browser再发一个请求过来。&lt;/p&gt;  &lt;p&gt;HTTP 1.1 要求每个请求都有Host头&lt;/p&gt;  &lt;p&gt;If-Match是请求时指定一些，要求返回的内容的ETag能满足的条件。例如ETag用作缓存版本号，这个时候指定If-Match作用就跟If-Unmodified-Since很像&lt;/p&gt;  &lt;p&gt;If-Modified-Since可以用于中间proxy给server请求内容，要是有更新，server就缓回带Last-Modified信息的新内容，否则就返回304给proxy&lt;/p&gt;  &lt;p&gt;图5.7/5.8给出了TRACE请求指定Max-Forwards时的例子，可用于测试。Max-Forwards只有在TRACE/OPTIONS请求时不能被忽略&lt;/p&gt;  &lt;p&gt;Range 指定请求某一部分的内容，比如只取前500字节，就可以写成0-499&lt;/p&gt;  &lt;p&gt;TE表示传输数据采用的编码方案，当server无法确定返回内容长度时，就没有Content-Length头，而是在TE头指定chunked&lt;/p&gt;  &lt;p&gt;gzip 与 deflate 的资料：&lt;a href="http://codingdao.com/wp/post/gzip-deflate-compress-web-content/"&gt;使用 gzip 或 deflate 压缩网页内容&lt;/a&gt;，&lt;a href="http://honwsn.itpub.net/post/41648/515769"&gt;与 deflate,说的还不错的文章&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-5832508482571396223?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/5832508482571396223/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/06/http-developers-handbook-chapter-1-5.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/5832508482571396223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/5832508482571396223'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/06/http-developers-handbook-chapter-1-5.html' title='HTTP Developer’s Handbook Chapter 1 - 5'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-2925256508143565690</id><published>2011-06-01T22:47:00.001+08:00</published><updated>2012-01-08T19:44:40.857+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><title type='text'>Head First SQL</title><content type='html'>&lt;p&gt;指定某个列默认值建表：&amp;#160; test_column varchar(100) NOT NULL DEFAULT ‘’&lt;/p&gt;  &lt;p&gt;_ 指定单个任意字符查询：select * from test_table where test_column like ‘_ttt’;&lt;/p&gt;  &lt;p&gt;坚持到200页，实在撑不住了，图太多，看的眼花，放弃了。&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-2925256508143565690?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/2925256508143565690/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/06/head-first-sql.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/2925256508143565690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/2925256508143565690'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/06/head-first-sql.html' title='Head First SQL'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-4459361331603457298</id><published>2011-05-31T22:24:00.001+08:00</published><updated>2012-01-08T19:45:59.618+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DNS'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>DNS and BIND Cookbook</title><content type='html'>&lt;p&gt;几个注册局：APNIC/ARIN/RIPE&lt;/p&gt;  &lt;p&gt;rr的顺序：[owner] [TTL] [class] &amp;lt;type&amp;gt; &amp;lt;RDATA&amp;gt;&lt;/p&gt;  &lt;p&gt;2.6 注意不能直接在zone下直接配CNAME，否则就表示除了CNAME没别的rr，导致不可用&lt;/p&gt;  &lt;p&gt;2.18 讲泛域名生效的情况，注意看下&lt;/p&gt;  &lt;p&gt;批量指定rr配置：$GENERATE 11-20 $.0.168.192.in-addr.arpa. PTR dhcp-$.foo.example.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-4459361331603457298?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/4459361331603457298/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/05/dns-and-bind-cookbook.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/4459361331603457298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/4459361331603457298'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/05/dns-and-bind-cookbook.html' title='DNS and BIND Cookbook'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-4047087525170727127</id><published>2011-05-14T20:20:00.001+08:00</published><updated>2012-01-08T19:54:43.995+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>Modern Perl</title><content type='html'>&lt;p&gt;The Empty List&lt;/p&gt;  &lt;p&gt;my $count = () = get_all_clown_hats();&amp;#160;&amp;#160; #$count表示get_all_clown_hats()返回的数组大小&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Iteration and Aliasing&lt;/p&gt;  &lt;p&gt;$_ **= 2 for @nums;&amp;#160; #把@nums里面的值都换成原来的平方&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Hash::Util可以锁定hash值&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;正则匹配的\G，记住上回匹配的位置&lt;/p&gt;  &lt;p&gt;while ($contents =~ /\G(\w{3})(\w{3})(\w{4})/g)   &lt;br /&gt;{    &lt;br /&gt;push @numbers, &amp;quot;($1) $2-$3&amp;quot;;    &lt;br /&gt;}&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;smart match ~~ 详情见 perldoc perlsyn&lt;/p&gt;  &lt;p&gt;use Try::Tiny;   &lt;br /&gt;my $fh = try&amp;#160;&amp;#160; { open_log_file( 'monkeytown.log' ) }    &lt;br /&gt;catch { ... };&lt;/p&gt;  &lt;p&gt;use autodie;&lt;/p&gt;  &lt;p&gt;use Carp;&lt;/p&gt;  &lt;p&gt;Path::Class&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-4047087525170727127?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/4047087525170727127/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/05/modern-perl.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/4047087525170727127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/4047087525170727127'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/05/modern-perl.html' title='Modern Perl'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-8067263052952635245</id><published>2011-05-02T23:18:00.001+08:00</published><updated>2012-01-08T19:45:59.680+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DNS'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>DNS in Action : chapter 4–chapter 10</title><content type='html'>&lt;p&gt;介绍常见的几种RR：A/CNAME/NS……&lt;/p&gt;  &lt;p&gt;此书作者认为泛域名容易出错，最好别用，除非用作MX、SRV。(PS：个人十分di赞同)&lt;/p&gt;  &lt;p&gt;介绍BIND配置&lt;/p&gt;  &lt;p&gt;介绍The BIND 9 lightweight resolver library ，简称lwres&lt;/p&gt;  &lt;p&gt;一些DNS排障的工具，rfc1713&lt;/p&gt;  &lt;p&gt;dnswalk检查DNS配置错误&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;NS记录的内容必须是一个域名，而不是一个IP&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;PTR、MX、NS、CNAME记录的内容不能是别名&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;6.1，6.2 讲子域授权，glue record，非常清楚！&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;chapter 7 讲IP反查的配置&lt;/p&gt;  &lt;p&gt;chapter 8 讲管域名，IP的组织&lt;/p&gt;  &lt;p&gt;chapter 9 讲内网DNS配置&lt;/p&gt;  &lt;p&gt;chapter 10 讲内外网配置＋防火墙&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-8067263052952635245?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/8067263052952635245/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/05/dns-in-action-chapter-4chapter-10.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/8067263052952635245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/8067263052952635245'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/05/dns-in-action-chapter-4chapter-10.html' title='DNS in Action : chapter 4–chapter 10'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-4452357856218651265</id><published>2011-05-02T22:03:00.001+08:00</published><updated>2012-01-08T19:45:59.613+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DNS'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>DNS in Action : chapter 3</title><content type='html'>&lt;p&gt;DNS update：rfc3007&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;可以动态更新域名配置；但只能修改已有的域名配置，不能新增一个域&lt;/li&gt;    &lt;li&gt;只能在primary master server上修改&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;DNS Notify&lt;/p&gt;  &lt;p&gt;AXFR &amp;amp; IXFR&lt;/p&gt;  &lt;p&gt;Negative Cache：rfc2308&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;NXDOMAIN 域名不存在[必须缓存，缓存时间不能超过5min]：返回RCODE为NXDOMAIN&lt;/li&gt;    &lt;li&gt;NOERROR_NODATA 域名存在，但没有配该类型的RR[必须缓存，缓存时间不能超过5min]：返回RCODE为NOERROR，answer section无内容，authoritative section包含SOA、NS记录&lt;/li&gt;    &lt;li&gt;服务器查询失败[可缓存]：返回RCODE为SERVFAIL，原因是zone file配置错误，或问不到master server&lt;/li&gt;    &lt;li&gt;服务器不可达[可缓存]&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;否定缓存的规则：&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;否定缓存是肯定要di&lt;/li&gt;    &lt;li&gt;非权威的否定应答不缓存&lt;/li&gt;    &lt;li&gt;应答里给的权威soa记录也要缓存&lt;/li&gt;    &lt;li&gt;没带SOA的否定应答不缓存&lt;/li&gt;    &lt;li&gt;已保存的SOA记录得加到应答里面&lt;/li&gt;    &lt;li&gt;NXDOMAIN的应答是以QNAME、QCLASS存的&lt;/li&gt;    &lt;li&gt;NOERROR_NODATA的应答是以QNAME、QTYPE、QCLASS存的&lt;/li&gt;    &lt;li&gt;master file里必须指定$TTL&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;支持IPV6的DNS，介绍A6、DNAME&lt;/p&gt;  &lt;p&gt;DNSSEC，介绍KEY，SIG，NXT&lt;/p&gt;  &lt;p&gt;DNS头部的保留字中切出AC（Authenticated Data）、CD（Checking Disabled）&lt;/p&gt;  &lt;p&gt;介绍TSIG，TKEY&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-4452357856218651265?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/4452357856218651265/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/05/dns-in-action-chapter-3.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/4452357856218651265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/4452357856218651265'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/05/dns-in-action-chapter-3.html' title='DNS in Action : chapter 3'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-2733584539293040517</id><published>2011-05-02T21:21:00.001+08:00</published><updated>2012-01-08T19:45:59.582+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DNS'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>DNS in Action : chapter 2</title><content type='html'>&lt;p&gt;NXT RR：下一个域名；认证一个不存在的域名及type&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;介绍DNS数据包格式&lt;/font&gt;，讲的很清楚&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_92lkWF-kRSk/Tb6v4DaaXbI/AAAAAAAACLA/dKnu0LvyE38/s1600-h/2011-05-02_211948%5B3%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 2px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="2011-05-02_211948" border="0" alt="2011-05-02_211948" src="http://lh5.ggpht.com/_92lkWF-kRSk/Tb6v7B_ig4I/AAAAAAAACLE/cCd0iw-Vq9Y/2011-05-02_211948_thumb%5B1%5D.png?imgmax=800" width="491" height="314" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;有查询&amp;amp;应答的数据包分析，可以看下&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-2733584539293040517?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/2733584539293040517/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/05/dns-in-action-chapter-2.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/2733584539293040517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/2733584539293040517'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/05/dns-in-action-chapter-2.html' title='DNS in Action : chapter 2'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_92lkWF-kRSk/Tb6v7B_ig4I/AAAAAAAACLE/cCd0iw-Vq9Y/s72-c/2011-05-02_211948_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-4324645965625436676</id><published>2011-05-02T21:15:00.001+08:00</published><updated>2012-01-08T19:45:59.605+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DNS'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>DNS in Action : chapter 1</title><content type='html'>&lt;p&gt;windows注册表配置DNS：HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Dnscache/Parameters&lt;/p&gt;  &lt;p&gt;stealth name server：不对外公布的权威server，用于帮助zone file传输、备份&lt;/p&gt;  &lt;p&gt;dns查询示例图：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_92lkWF-kRSk/Tb6uLHu51JI/AAAAAAAACKo/SF3aKf7XzuM/s1600-h/Image.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 2px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="缓存服务器" border="0" alt="缓存服务器" src="http://lh6.ggpht.com/_92lkWF-kRSk/Tb6uN1wEqNI/AAAAAAAACKs/OYz0YFQIJLc/Image.png?imgmax=800" width="408" height="309" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;master与slave示例图：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_92lkWF-kRSk/Tb6uPdySXRI/AAAAAAAACKw/doGIrdYJYyw/s1600-h/Image.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 2px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="master与slave" border="0" alt="master与slave" src="http://lh3.ggpht.com/_92lkWF-kRSk/Tb6uRNt0kZI/AAAAAAAACK0/ahA2O65eONs/Image.png?imgmax=800" width="414" height="289" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;forwarder dns示例图：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_92lkWF-kRSk/Tb6uVn2NPWI/AAAAAAAACK4/mUrBwjJCPZs/s1600-h/forwarder%5B3%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 2px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="forwarder" border="0" alt="forwarder" src="http://lh4.ggpht.com/_92lkWF-kRSk/Tb6uXU24oLI/AAAAAAAACK8/ymL0uSVrYlw/forwarder_thumb%5B1%5D.png?imgmax=800" width="420" height="240" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-4324645965625436676?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/4324645965625436676/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/05/dns-in-action-chapter-1.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/4324645965625436676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/4324645965625436676'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/05/dns-in-action-chapter-1.html' title='DNS in Action : chapter 1'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_92lkWF-kRSk/Tb6uN1wEqNI/AAAAAAAACKs/OYz0YFQIJLc/s72-c/Image.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-2456239455981856024</id><published>2011-05-02T20:45:00.002+08:00</published><updated>2012-01-08T19:45:59.569+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DNS'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>Pro DNS and Bind : Chapter 12 - Chapter 15</title><content type='html'>Chapter 12： Bind 配置说明，好长……&lt;br /&gt;
&lt;span style="color: red;"&gt;Chapter 13&lt;/span&gt;：zone file的说明，各种类型RR的详细介绍&lt;br /&gt;
Chapter 14：bind库函数、resolver的库函数&lt;br /&gt;
&lt;span style="color: red;"&gt;Chapter 15&lt;/span&gt;：DNS数据包结构&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-2456239455981856024?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/2456239455981856024/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/05/pro-dns-and-bind-chapter-12-chapter.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/2456239455981856024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/2456239455981856024'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/05/pro-dns-and-bind-chapter-12-chapter.html' title='Pro DNS and Bind : Chapter 12 - Chapter 15'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-2001092991324574995</id><published>2011-05-02T20:42:00.001+08:00</published><updated>2012-01-08T19:45:59.557+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DNS'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>Pro DNS and Bind : Chapter 11</title><content type='html'>&lt;p&gt;DNSSEC rfc 4033,4034,4035&amp;#160; 提供认证、完整性机制&lt;/p&gt;  &lt;p&gt;DNSKEY RR 指定公钥&lt;/p&gt;  &lt;p&gt;子域授权的NS，用DNSSEC认证，称为Delegated Signer RR (DS RR)&lt;/p&gt;  &lt;p&gt;域认证的两种密钥：Zone Signing Key (ZSK)、Key Signing Key(KSK)&lt;/p&gt;  &lt;p&gt;更新DS或name server的trusted anchor，都用KSK。更新RRSIG、DNSKEY可用KSK/ZSK&lt;/p&gt;  &lt;p&gt;DNSSEC Lookaside Validation(DLV)是另一种链式认证方案，在父域zone file内可以不签名&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-2001092991324574995?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/2001092991324574995/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/05/pro-dns-and-bind-chapter-11.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/2001092991324574995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/2001092991324574995'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/05/pro-dns-and-bind-chapter-11.html' title='Pro DNS and Bind : Chapter 11'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-2595075176827580348</id><published>2011-05-01T05:22:00.001+08:00</published><updated>2012-01-08T19:45:59.576+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DNS'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>Pro DNS and Bind : Chapter 10</title><content type='html'>&lt;p&gt;DNS 安全概览，每一步都可能出问题，orz…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_92lkWF-kRSk/Tbx9jnEQUfI/AAAAAAAACKg/GOHqeCxnCcw/s1600-h/dns_security_overview%5B4%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 2px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="dns_security_overview" border="0" alt="dns_security_overview" src="http://lh3.ggpht.com/_92lkWF-kRSk/Tbx9lo90IdI/AAAAAAAACKk/gc7WwxJxa-E/dns_security_overview_thumb%5B2%5D.png?imgmax=800" width="483" height="347" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;TSIG：对称密钥，zone transfer加密传输，rfc 2845&lt;/p&gt;  &lt;p&gt;SIG(0)：公钥认证，身份认证，加数据完整性，dynamic update时可以用，zone transfer时也可以用，rfc 2931&lt;/p&gt;  &lt;p&gt;TKEY：交换对称密钥用的，支持Diffie-Hellman，gssapi(generic security services api)；rfc 2930要求用tsig、sig认证一下&lt;/p&gt;  &lt;p&gt;Dynamic DNS(DDNS) ：RFC 3007, RFC 2136&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-2595075176827580348?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/2595075176827580348/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/05/pro-dns-and-bind-chapter-10.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/2595075176827580348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/2595075176827580348'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/05/pro-dns-and-bind-chapter-10.html' title='Pro DNS and Bind : Chapter 10'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_92lkWF-kRSk/Tbx9lo90IdI/AAAAAAAACKk/gc7WwxJxa-E/s72-c/dns_security_overview_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-5493709321601371904</id><published>2011-05-01T04:31:00.001+08:00</published><updated>2012-01-08T19:45:59.639+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DNS'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>Pro DNS and Bind : Chapter 9</title><content type='html'>&lt;p&gt;nslookup、dig的用法&lt;/p&gt;  &lt;p&gt;dns包状态：&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;qr(query response) 这是个应答&lt;/li&gt;    &lt;li&gt;aa(authorative answer)应答来自权威&lt;/li&gt;    &lt;li&gt;rd(recursion desired) 要求递归查询&lt;/li&gt;    &lt;li&gt;ra(recursion available) 支持递归查询&lt;/li&gt;    &lt;li&gt;ad(authenticated data)应答来自一个可信的name server，且数据已被认证(dnssec)&lt;/li&gt;    &lt;li&gt;cd(check disabled) 不想做任何验证(dnssec)&lt;/li&gt;    &lt;li&gt;do(dnssec ok) 支持dnssec&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;DNS server状态，RCODE&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;NOERR 正常&lt;/li&gt;    &lt;li&gt;FORMERR 无法识别该查询&lt;/li&gt;    &lt;li&gt;SERVFAIL 无法执行查询（可能是NAME SERVER本身的问题，也可能是网络问题，总之就是查询失败）&lt;/li&gt;    &lt;li&gt;NXDOMAIN 不存在此域名&lt;/li&gt;    &lt;li&gt;REFUSED 拒绝&lt;/li&gt;    &lt;li&gt;YXDOMAIN&amp;#160; 域名不该存在，但它存在了（RFC 2136）&lt;/li&gt;    &lt;li&gt;YXRRSET&amp;#160;&amp;#160; rrset不该存在，但它存在了（RFC 2136）&lt;/li&gt;    &lt;li&gt;NXRRSET rrset应该存在，但它不存在（RFC 2136）&lt;/li&gt;    &lt;li&gt;NOTAUTH&amp;#160; server不是该域的权威（RFC 2136）&lt;/li&gt;    &lt;li&gt;NOTZONE name不包含在该域内（RFC 2136）&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;rndc远程管理bind，默认 tcp 953，要求 tsig加密&lt;/p&gt;  &lt;p&gt;nsupdate 动态更新mater server的zone file&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-5493709321601371904?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/5493709321601371904/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/05/pro-dns-and-bind-chapter-9.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/5493709321601371904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/5493709321601371904'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/05/pro-dns-and-bind-chapter-9.html' title='Pro DNS and Bind : Chapter 9'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-6400423237009969007</id><published>2011-05-01T04:03:00.001+08:00</published><updated>2012-01-08T19:45:59.655+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DNS'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>Pro DNS and Bind : Chapter 6 – Chapter 8</title><content type='html'>&lt;p&gt;chapter 6&amp;#160;&amp;#160; bind 安装&lt;/p&gt;  &lt;p&gt;chapter 7&amp;#160; bind 配置&lt;/p&gt;  &lt;p&gt;chapter 8&amp;#160; 高级bind配置&lt;/p&gt;  &lt;p&gt;example.com中切出一个子域us.example.com，则在example.com中要指定us.example.com的NS：&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;假设为ns3.us.example.com(在example.com内)，则example.com的zone file中&lt;font color="#ff0000"&gt;必须&lt;/font&gt;配上ns3.us.example.com的A记录或AAAA记录，这个称为&lt;font color="#ff0000"&gt;glue record&lt;/font&gt;；不然查起来会无限循环&lt;/li&gt;    &lt;li&gt;假设为ns1.example.net(不在example.com内)，则example.com的zone file中，就不用配ns1.example.net的A记录或AAAA记录了，反正另外再去查一下IP就有了&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;优先选权值低的MX记录发邮件，低的发不了，才试高的；如果权值相同，一般就用round-robin负载均衡&lt;/p&gt;  &lt;p&gt;一个RR SET里多个RR返回的顺序用rrset-order选项调&lt;/p&gt;  &lt;p&gt;如果该域配置了泛域名(wildcards)，那么对不存在配置的域名会返回默认配置的RR，而不是返回NXDOMAIN。&lt;/p&gt;  &lt;p&gt;注意，泛域名配置只对授权域有效；如果有子域已经切割出去，当前域的泛域名配置不会对该子域内的任何域名生效，详见RFC 1034。&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-6400423237009969007?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/6400423237009969007/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/05/pro-dns-and-bind-chapter-6-chapter-8.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/6400423237009969007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/6400423237009969007'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/05/pro-dns-and-bind-chapter-6-chapter-8.html' title='Pro DNS and Bind : Chapter 6 – Chapter 8'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-7711975584786535935</id><published>2011-05-01T03:22:00.001+08:00</published><updated>2012-01-08T19:45:59.669+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DNS'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>Pro DNS and Bind : Chapter 5</title><content type='html'>&lt;p&gt;ip地址分配:&amp;#160; ICANN/IANA –&amp;gt; RIR –&amp;gt; NIR –&amp;gt; LIR –&amp;gt; END USER&lt;/p&gt;  &lt;p&gt;IPV6 地址:&amp;#160;&amp;#160; global routing prefix (48 bit) +&amp;#160; subnet id (16 bit) + interface id (64 bit)&lt;/p&gt;  &lt;p&gt;global routing prefix :&amp;#160;&amp;#160; 保留位 (3 bit) + TLA id (13 bit) + sub-tla (13 bit) + nla (19 bit)&lt;/p&gt;  &lt;p&gt;TLA ID、sub-tla 是IANA给RIR(例如APNIC之类)分配的&lt;/p&gt;  &lt;p&gt;nla 是RIR给下一层组织分配的，例如NIR、LIR&lt;/p&gt;  &lt;p&gt;AAAA用于正向查询，IP6.ARPA地址段用于PTR反向查IPV6地址；A6用于正向查询，DNAME用于反向查询；未来用A6 + DNAME&lt;/p&gt;  &lt;p&gt;AAAA形式的反向查询链太长了&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-7711975584786535935?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/7711975584786535935/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/05/pro-dns-and-bind-chapter-5.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7711975584786535935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7711975584786535935'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/05/pro-dns-and-bind-chapter-5.html' title='Pro DNS and Bind : Chapter 5'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-2845880131297610206</id><published>2011-05-01T03:03:00.002+08:00</published><updated>2012-01-08T19:45:59.589+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DNS'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>Pro DNS and Bind : Chapter 4</title><content type='html'>slave server : 总是返回该server上的域的权威回答&lt;br /&gt;
cache server ： 只有从master / slave server 刚刚问过来的回答才置为authoritative，从缓存搞出来的就标为no authoritative&lt;br /&gt;
如果一个server支持cache，那么它就必须支持recursive qurey&lt;br /&gt;
本地只用于cache的local dns，一般是用于向PC端的stub resolver提供应答，有时也称为proxy server，forwarding server；总是把请求转发给其他dns，自己把应答缓存起来&lt;br /&gt;
Stealth Name Server(或DMZ name server、split name server)，不让外界看到的name server，bind的view配置可以支持这种场景，区分内网外网配置&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-2845880131297610206?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/2845880131297610206/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/05/pro-dns-and-bind-chapter.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/2845880131297610206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/2845880131297610206'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/05/pro-dns-and-bind-chapter.html' title='Pro DNS and Bind : Chapter 4'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-5295116593086586754</id><published>2011-05-01T02:23:00.001+08:00</published><updated>2012-01-08T19:45:59.633+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DNS'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>Pro DNS and Bind : Chapter 3</title><content type='html'>&lt;p&gt;BIND 根据 RTT 选择查询的NAME SERVER，还会参考ROUND ROBIN&lt;/p&gt;  &lt;p&gt;stub resolver 是不支持迭代查询的；也就是说，PC上配的name server要支持递归查询，不然本机的resovler碰到迭代的应答就傻掉了&lt;/p&gt;  &lt;p&gt;.IN-ADDR.ARPA&amp;#160; 域用于IP反查域名&lt;/p&gt;  &lt;p&gt;PTR的配置文件中，RR取值必须为FQDN，以 . 结尾&lt;/p&gt;  &lt;p&gt;邮箱服务的MX域名得配对应的PTR，让一些邮箱软件反查&lt;/p&gt;  &lt;p&gt;.ARPA是ICANN/IANA在管（划IP段）；分到各个州就是RIR( Regional Internet Registries)，例如APNIC；再分到LIR(Local Internet Registry)或NIR(National Internet Registry)，各国运营商再各自划段&lt;/p&gt;  &lt;p&gt;域配置的全量传送AXFR (tcp 53)，增量传送IXFR(tcp 53)，更新通知NOTIFY&lt;/p&gt;  &lt;p&gt;slave收到NOTIFY的通知，会去问master的SOA，如果SOA的serial number比当前的记录大，就会发起AXFR或IXFR请求&lt;/p&gt;  &lt;p&gt;DDNS(Dynamic DNS) 允许在server执行时从外界动态更新域的RR配置；不过没法添加或删除一个域。&lt;/p&gt;  &lt;p&gt;一般外界更新域配置的时候，会加个密啥的，最常用的就是TSIG(RFC 2845)/TKEY(RFC 2930)，bind里的nsupdate就是ddns工具&lt;/p&gt;  &lt;p&gt;如果域配置用数据库存取，就可以动态添加或删除一个域了，相关软件：BIND-DLZ、PowerDNS&lt;/p&gt;  &lt;p&gt;DNS安全：&lt;/p&gt;  &lt;p&gt;zone file本身的安全&lt;/p&gt;  &lt;p&gt;动态更新：限源IP，加密&amp;amp;认证 TSIS SIG(0)&lt;/p&gt;  &lt;p&gt;zone transfer：限源IP，加密&amp;amp;认证 TSIS SIG(0)&lt;/p&gt;  &lt;p&gt;查询：缓存中毒，数据篡改 =&amp;gt; DNSSEC&lt;/p&gt;  &lt;p&gt;本地resolver查询：缓存中毒，数据篡改，本地IP欺骗 =&amp;gt; DNSSEC，SSL/TLS(用于resolver到local dns)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-5295116593086586754?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/5295116593086586754/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/05/pro-dns-and-bind-chapter-3.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/5295116593086586754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/5295116593086586754'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/05/pro-dns-and-bind-chapter-3.html' title='Pro DNS and Bind : Chapter 3'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-3987910106436922930</id><published>2011-04-28T00:05:00.001+08:00</published><updated>2012-01-08T19:45:59.599+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DNS'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>Pro DNS and BIND :  chapter 2</title><content type='html'>&lt;p&gt;RFC 1912 推荐 ZONE FILE里 $TTL &amp;gt; 1day ，一般默认是2天&lt;/p&gt;  &lt;p&gt;@ 表示默认域名串，即 $ORIGIN&lt;/p&gt;  &lt;p&gt;NS、MX记录的取值必须是个FQDN，也就是最后有一个点&lt;/p&gt;  &lt;p&gt;如果example.com.的一个ns记录是外部域名ns2.example.net.，那么ns2.example.net.上必须有example.com.的zone file，或者是example.com.的slave server。如果没有，就会出错，lame delegation，也就是说，NS记录被配置到无法给出权威回答的server。&lt;/p&gt;  &lt;p&gt;多层CNAME不大好&lt;/p&gt;  &lt;p&gt;如果一个域名是MX或NS指定的域名，就不要再配CNAME了，直接配A记录，RFC1034说的&lt;/p&gt;  &lt;p&gt;反垃圾邮件的SPF会用TXT记录登记信息&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-3987910106436922930?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/3987910106436922930/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/04/pro-dns-and-bind-chapter-2.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/3987910106436922930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/3987910106436922930'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/04/pro-dns-and-bind-chapter-2.html' title='Pro DNS and BIND :  chapter 2'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-7498548910699374718</id><published>2011-04-27T23:41:00.001+08:00</published><updated>2012-01-08T19:45:59.661+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DNS'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>Pro DNS and BIND ：CHAPTER 1</title><content type='html'>&lt;p&gt;RFC基础定义：1034，1035&lt;/p&gt;  &lt;p&gt;根 -&amp;gt; 顶级域TLD -&amp;gt; 二级域SLD&lt;/p&gt;  &lt;p&gt;gTLD : .COM , .EDU, .NET 之类，通用&lt;/p&gt;  &lt;p&gt;ccTLD: .US, .CN之类，国家&lt;/p&gt;  &lt;p&gt;ICANN管根，将gTLD分给一些注册局registry管，将ccTLD分给各国管&lt;/p&gt;  &lt;p&gt;有些注册局同时也是注册商registrar，例如verisign管.com，同时也给人提供域名注册服务&lt;/p&gt;  &lt;p&gt;TLD的server配置由注册局管理，注册商可以向注册局申请修改记录&lt;/p&gt;  &lt;p&gt;stub resolver : 一般是指操作系统内置的解析器&lt;/p&gt;  &lt;p&gt;glue recode ：指向下一级NS的记录，一般是NS域名对应的A记录&lt;/p&gt;  &lt;p&gt;dns server软件：bind，nsd，。。。&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-7498548910699374718?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/7498548910699374718/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/04/pro-dns-and-bind-chapter-1.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7498548910699374718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7498548910699374718'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/04/pro-dns-and-bind-chapter-1.html' title='Pro DNS and BIND ：CHAPTER 1'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-425415123209240306</id><published>2011-04-10T02:15:00.001+08:00</published><updated>2011-04-10T02:15:09.874+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>LG GT540 : android 2.1 刷机升级至 android 2.2</title><content type='html'>&lt;p&gt;参考：&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://forum.xda-developers.com/showthread.php?t=1018199"&gt;[ROM] SuperFast Froyo (OS 2.2) | Based on CM6 and Openswift 4.5&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://bbs.gfan.com/android-675802-1-2.html"&gt;【泡_茶】刷机必看1.6、2.1想升2.2、2.3的都进来，一次性扫盲&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://hiapk.com/thread-887784-1-1.html"&gt;【零基础】升2.2系统综合详细教程.加图.（修正By 小啈）&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.mobile01.com/print.php?f=581&amp;amp;t=2022320&amp;amp;p=1"&gt;GT540 Android 2.2.1放心刷下去！步驟教學~~&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://sjbbs.zol.com.cn/1/33672_385.html"&gt;【教程】fastboot新手刷机傻瓜教程&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;主要步骤如下：&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;下载带fastboot的android 2.1 kdz : &lt;a href="http://u.115.com/file/f8b4f04150"&gt;v20c_00.kdz&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;下载升级kdz的工具：&lt;a href="http://www.mediafire.com/?5eewpdb6vy7rp6v"&gt;test-version-upTest_EX&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;下载android的fastboot驱动：&lt;a href="http://www.mediafire.com/?4x9jvqn6y50ncr7"&gt;LG Android Fastboot Driver&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;下载fastboot工具：&lt;a href="http://yunfile.com/file/yxmno2/88c8c753/"&gt;Fastboot工具包.rar&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;下载android 2.2的img：&lt;a href="http://www.4shared.com/file/-tQivolD/superfast-froyo-fastboot.html"&gt;superfast-froyo-fastboot&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;解压&lt;a href="http://www.mediafire.com/?5eewpdb6vy7rp6v"&gt;test-version-upTest_EX&lt;/a&gt;，管理员权限执行windows_enabler中的exe，左键点击其状态栏图标，等待出现&amp;quot;on&amp;quot;字样；管理员权限执行UpTestEX_original.exe，选中v20c_00.kdz，点击upgrade按纽升级&lt;/li&gt;    &lt;li&gt;升级完毕后关机&lt;/li&gt;    &lt;li&gt;按开机键，震动后长按相机键，出现LG的LOGO后，进入黑屏背光的fastboot模式&lt;/li&gt;    &lt;li&gt;用usb线连接手机和电脑，在设备管理器中找到无驱动的android设备，选择安装&lt;a href="http://www.mediafire.com/?4x9jvqn6y50ncr7"&gt;LG Android Fastboot Driver&lt;/a&gt;的驱动(指定解压后文件夹安装)&lt;/li&gt;    &lt;li&gt;解压&lt;a href="http://yunfile.com/file/yxmno2/88c8c753/"&gt;Fastboot工具包.rar&lt;/a&gt;、及&lt;a href="http://www.4shared.com/file/-tQivolD/superfast-froyo-fastboot.html"&gt;superfast-froyo-fastboot&lt;/a&gt; ，让fastboot.exe与boot.img、system.img在同一文件夹下&lt;/li&gt;    &lt;li&gt;cmd命令行窗口进入fastboot.exe所在的文件夹，依次执行：&lt;/li&gt;    &lt;p&gt;fastboot.exe -w     &lt;br /&gt;fastboot.exe flash system system.img      &lt;br /&gt;fastboot.exe flash boot boot.img      &lt;br /&gt;fastboot.exe reboot&lt;/p&gt;    &lt;li&gt;重启后机器就是android 2.2版了&lt;/li&gt; &lt;/ol&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-425415123209240306?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/425415123209240306/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/04/lg-gt540-android-21-android-22.html#comment-form' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/425415123209240306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/425415123209240306'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/04/lg-gt540-android-21-android-22.html' title='LG GT540 : android 2.1 刷机升级至 android 2.2'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-7460688606949323886</id><published>2011-03-13T16:20:00.001+08:00</published><updated>2011-03-13T16:20:45.467+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PostgreSQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><title type='text'>PostgreSQL : 在windows下的安装配置</title><content type='html'>&lt;p&gt;1、安装&lt;/p&gt; &lt;p&gt;下载&lt;a href="http://www.postgresql.org/download/windows"&gt;安装包&lt;/a&gt;，语言要选"简体中文，新加坡"的，不然后面服务安装会失败。&lt;/p&gt; &lt;p&gt;2、配置&lt;/p&gt; &lt;p&gt;切换用户：runas /noprofile /env /user:postgres "cmd"&lt;/p&gt; &lt;p&gt;进入命令界面：psql&lt;/p&gt; &lt;p&gt;建数据库：create database mydb;&lt;/p&gt; &lt;p&gt;建新用户：create user someuser password 'somepassword';&lt;/p&gt; &lt;p&gt;授权：&lt;/p&gt; 
&lt;pre class="PROGRAMLISTING"&gt;
&lt;/pre&gt;
 &lt;blockquote&gt; 
&lt;pre class="PROGRAMLISTING"&gt;
GRANT ALL PRIVILEGES ON database somedb TO someadmin;
&lt;/pre&gt;
 
&lt;pre class="PROGRAMLISTING"&gt;
&lt;/pre&gt;
 
&lt;pre class="PROGRAMLISTING"&gt;
REVOKE ALL PRIVILEGES ON somedb from someadmin;
&lt;/pre&gt;
 
&lt;pre class="PROGRAMLISTING"&gt;
GRANT select ON somedb.sometable TO someuser;
&lt;/pre&gt;
&lt;/blockquote&gt; &lt;p&gt;3、其他&lt;/p&gt; &lt;p&gt;备份数据库：pq_dump somedb &amp;gt; somedb.dump&lt;/p&gt; &lt;p&gt;恢复数据库：psql -d somedb -f somedb.dump&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-7460688606949323886?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/7460688606949323886/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/03/postgresql-windows.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7460688606949323886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7460688606949323886'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/03/postgresql-windows.html' title='PostgreSQL : 在windows下的安装配置'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-6227259199331124829</id><published>2011-02-21T23:40:00.002+08:00</published><updated>2011-02-21T23:40:49.491+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ThinkPad'/><category scheme='http://www.blogger.com/atom/ns#' term='Battery'/><title type='text'>ThinkPad T410 : 电池电量低的问题(FRU 42T4797)</title><content type='html'>过年的时候发现电池只能撑半小时，之前是可以撑两小时的。&lt;br /&gt;
周末终于想起来查一下，先照网上说的重置电源标尺，没效果。&lt;br /&gt;
google发现可以升级firmware解决：&lt;a href="http://www-307.ibm.com/pc/support/site.wss/MIGR-75738.html"&gt;ThinkPad  Battery Firmware Update for Windows to fix a low battery capacity problem -  ThinkPad (Full version)&lt;/a&gt;&lt;br /&gt;
照上面的贴子，按顺序装：&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;a href="http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/83ku11ww.exe"&gt;83ku11ww.exe&lt;/a&gt;   &lt;/li&gt;
&lt;li&gt;&lt;a href="http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/83vu54ww.exe"&gt;83vu54ww.exe&lt;/a&gt;   &lt;/li&gt;
&lt;li&gt;&lt;a class="fbox" href="http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/6ifu13ww.exe"&gt;6ifu13ww.exe&lt;/a&gt;  &lt;/li&gt;
&lt;/ol&gt;把firmware升级之后，FRU变成42T4911，关机重启之后，电池就恢复正常了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-6227259199331124829?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/6227259199331124829/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/02/thinkpad-t410-fru-42t4797.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/6227259199331124829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/6227259199331124829'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/02/thinkpad-t410-fru-42t4797.html' title='ThinkPad T410 : 电池电量低的问题(FRU 42T4797)'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-5334113927143472002</id><published>2011-02-19T16:38:00.001+08:00</published><updated>2011-08-30T13:17:06.671+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><category scheme='http://www.blogger.com/atom/ns#' term='Utility'/><title type='text'>论坛贴子下载</title><content type='html'>&lt;p&gt;见：&lt;a href="http://abbypan.googlecode.com/files/tiezi-0.1.zip"&gt;tiezi-0.1.zip&lt;/a&gt;&lt;/p&gt; &lt;p&gt;目前支持Discuz。&lt;/p&gt; &lt;p&gt;想起搞这个的原因是CJJ挂了一阵子，昨晚突然好了，怕是论坛回光返照，还是简单备份一下吧。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-5334113927143472002?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/5334113927143472002/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/02/blog-post_19.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/5334113927143472002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/5334113927143472002'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/02/blog-post_19.html' title='论坛贴子下载'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-484692870137442346</id><published>2011-02-02T22:07:00.001+08:00</published><updated>2011-02-02T22:07:54.057+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='郑码'/><category scheme='http://www.blogger.com/atom/ns#' term='输入法'/><title type='text'>输入法 : 换用极点郑码了</title><content type='html'>&lt;p&gt;一年一度发愤图强学郑码的时候又到了。&lt;/p&gt; &lt;p&gt;从&lt;a href="http://www.oschina.net/p/wqzm"&gt;文泉郑码&lt;/a&gt;换到&lt;a href="http://code.google.com/p/jidianzhengma/"&gt;极点郑码&lt;/a&gt;。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-484692870137442346?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/484692870137442346/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/02/blog-post.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/484692870137442346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/484692870137442346'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/02/blog-post.html' title='输入法 : 换用极点郑码了'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-2572606355278946271</id><published>2011-02-02T15:06:00.000+08:00</published><updated>2011-02-02T15:06:47.227+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='Utility'/><category scheme='http://www.blogger.com/atom/ns#' term='绿晋江'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Firefox Greasemonkey：显示绿晋江小说平均积分的脚本换到userscripts上了</title><content type='html'>反正也是Greasemonkey的脚本，懒得打包成firefox扩展了。&lt;br /&gt;
&lt;br /&gt;
原来在这：&lt;a href="https://addons.mozilla.org/zh-CN/firefox/addon/jjwxc-point-per-word/"&gt;Jjwxc-Point-Per-Word&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
现在搬到这：&lt;a href="http://userscripts.org/scripts/show/95315"&gt;jjwxc-point-per-word&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-2572606355278946271?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/2572606355278946271/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/02/firefox-greasemonkeyuserscripts.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/2572606355278946271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/2572606355278946271'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/02/firefox-greasemonkeyuserscripts.html' title='Firefox Greasemonkey：显示绿晋江小说平均积分的脚本换到userscripts上了'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-6349984900133268904</id><published>2011-01-22T03:32:00.001+08:00</published><updated>2011-01-22T03:32:02.490+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>系统加速 : SpeedUpMyPC</title><content type='html'>&lt;p&gt;windows系统的永恒主题：系统加速。。。&lt;/p&gt; &lt;p&gt;这回是SpeedUpMyPC，试用了一下，还行。&lt;/p&gt; &lt;p&gt;免费注册地址：&lt;a href="http://mag.uniblue.com/stores/sp/signup"&gt;http://mag.uniblue.com/stores/sp/signup&lt;/a&gt;        &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-6349984900133268904?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/6349984900133268904/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/01/speedupmypc.html#comment-form' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/6349984900133268904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/6349984900133268904'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/01/speedupmypc.html' title='系统加速 : SpeedUpMyPC'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-1531681577592784775</id><published>2011-01-22T03:29:00.001+08:00</published><updated>2011-01-22T03:29:11.397+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Windows Sysinternals 的小工具</title><content type='html'>&lt;p&gt;微软自己搞了个&lt;a href="http://technet.microsoft.com/zh-cn/sysinternals/default"&gt;Windows Sysinternals&lt;/a&gt; 系统实用工具集合，有些挺好用的：&lt;/p&gt; &lt;p&gt;&lt;a href="http://technet.microsoft.com/zh-cn/bb897435"&gt;Whois&lt;/a&gt;&lt;/p&gt; &lt;p&gt;查whois信息。&lt;/p&gt; &lt;p&gt;&lt;a href="http://technet.microsoft.com/zh-cn/sysinternals/bb963880"&gt;RegJump&lt;/a&gt;&lt;/p&gt; &lt;p&gt;直接命令行输入 regjump xxxxx，就能跳到xxxxx注册表处。&lt;/p&gt; &lt;p&gt;果然微软自己也受不了一层一层又一层的键值嘛！&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-1531681577592784775?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/1531681577592784775/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/01/windows-sysinternals.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/1531681577592784775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/1531681577592784775'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/01/windows-sysinternals.html' title='Windows Sysinternals 的小工具'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-7179072359644159886</id><published>2011-01-22T03:18:00.001+08:00</published><updated>2011-01-22T03:18:57.518+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>彻底卸载Office的工具</title><content type='html'>&lt;p&gt;微软自己出的：&lt;a href="http://support.microsoft.com/kb/290301/zh-cn"&gt;http://support.microsoft.com/kb/290301/zh-cn&lt;/a&gt;&lt;/p&gt; &lt;p&gt;要升级office之前，先到这边下工具彻底卸载掉旧版本，否则可能碰到新版office安装失败。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-7179072359644159886?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/7179072359644159886/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/01/office.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7179072359644159886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7179072359644159886'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/01/office.html' title='彻底卸载Office的工具'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-8166167885113102412</id><published>2011-01-02T22:11:00.000+08:00</published><updated>2011-01-02T22:11:00.936+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><title type='text'>Perl : 一些笔记</title><content type='html'>&lt;p&gt;读入文件时，如果指定$/，则$/必须是字符串；如果要用正则式分隔，就&lt;span style="FONT-FAMILY: Courier,Monospaced"&gt;用File::Stream。&lt;/span&gt;&lt;/p&gt; &lt;p&gt;例子：&lt;a href="http://blogs.perl.org/users/initself/2010/11/listing-all-installed-programs-in-windows-xp.html"&gt;用Win32::TieRegistry读出windows已安装软件的列表&lt;/a&gt;&lt;/p&gt; &lt;p&gt;模块推荐：&lt;a href="http://perladvent.pm.org/archives-Yd.html"&gt;Perl Advent Calendar Archivers&lt;/a&gt; 、&lt;a href="http://jff.googlecode.com/svn-history/r866/trunk/Perl/great-perl-modules.txt"&gt;Great Perl Modules&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Perl的MVC框架介绍：&lt;a href="http://www.perlmonks.org/?node_id=753411"&gt;What is the Perl Web Framework du jour?&lt;/a&gt; 看来可以试试&lt;a href="http://search.cpan.org/~kraih/Mojolicious-0.999950/lib/Mojolicious/Lite.pm" class="podlinkpod"&gt;Mojolicious::Lite&lt;/a&gt;、&lt;a href="http://search.cpan.org/perldoc?Mojolicious"&gt;Mojolicious&lt;/a&gt;、&lt;a href="http://search.cpan.org/perldoc?Jifty"&gt;Jifty&lt;/a&gt; 、&lt;a href="http://search.cpan.org/perldoc?Dancer"&gt;&lt;span style="FONT-FAMILY: Courier New"&gt;Dancer&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;PerlChina的Advent：&lt;a href="http://advent.perlchina.org/"&gt;http://advent.perlchina.org/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;pm.org的Advent：&lt;a href="http://perladvent.pm.org"&gt;http://perladvent.pm.org&lt;/a&gt;&lt;/p&gt; &lt;p&gt;cpanm ：替代cpan的模块工具，非常好用&lt;/p&gt; &lt;p&gt;snaked 任务调度器：类似crontab，但时间可以精确到秒&lt;/p&gt; &lt;p&gt;SSH::Batch ：远程SSH批量操作&lt;/p&gt; &lt;p&gt;Set::Array ：数组操作模块&lt;/p&gt; &lt;p&gt;XLSperl：命令行操作xls文件&lt;/p&gt; &lt;p&gt;Benchmark::Timer ：程序运行时间&lt;/p&gt; &lt;p&gt;Text::Xslate ：类似Text::Template的模块，速度很快&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-8166167885113102412?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/8166167885113102412/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/01/perl.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/8166167885113102412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/8166167885113102412'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/01/perl.html' title='Perl : 一些笔记'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-7752716021559946345</id><published>2011-01-02T20:09:00.000+08:00</published><updated>2011-01-02T20:09:00.616+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='CodeIgniter'/><title type='text'>CodeIgniter ：学习笔记</title><content type='html'>&lt;p&gt;&lt;a href="http://codeigniter.com/"&gt;CodeIgniter&lt;/a&gt;是个PHP的MVC框架，基础资料：&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://www.ibm.com/developerworks/cn/web/wa-codeigniter/"&gt;CodeIgniter 入门&lt;/a&gt;(照这个帖子做一遍，有个简单认识)&lt;/li&gt; &lt;li&gt;&lt;a href="http://codeigniter.org.cn/user_guide/toc.html"&gt;CodeIgniter 用户指南&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.google.com/cse/home?cx=013045469333536738157:6oogqxxgwh8"&gt;CodeIgniter 搜索引擎&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://net.tutsplus.com/articles/web-roundups/30-awesome-codeigniter-tutorials-for-all-skill-levels/"&gt;30+ Awesome CodeIgniter Tutorials for all Skill Levels&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;strong&gt;查询结果分页显示的教程：&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://dengkul.com/2010/07/08/codeigniter-pagination-with-multiple-unlimited-searching-criteria/"&gt;CodeIgniter pagination with multiple unlimited searching criteria&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://net.tutsplus.com/articles/news/codeigniter-from-scratch-day-7-pagination/"&gt;CodeIgniter from Scratch Day 7: Pagination&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;blockquote&gt; &lt;p&gt;在分页的url中，增加了index/50之类的参数，参数可以有多层。&lt;/p&gt; &lt;p&gt;每次根据分页url中的参数，载入查询函数，取回当前分页对应的内容显示。例如 someQueryFunction(记录偏移量, 每页显示多少行内容, 该分页查询的条件参数列表)。&lt;/p&gt; &lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;读取CSV文件的库：&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;见&lt;a href="http://codeigniter.com/wiki/CSVReader/"&gt;CSVReader&lt;/a&gt; ，把内容保存为csvreader.php(注意文件名都是小写)，放入systerm\libraries目录。&lt;/li&gt; &lt;li&gt;用$this-&amp;gt;load-&amp;gt;library('csvreader');载入库函数，后面就可以直接调用了。 &lt;br/&gt;&lt;/li&gt; &lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-7752716021559946345?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/7752716021559946345/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/01/codeigniter.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7752716021559946345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7752716021559946345'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/01/codeigniter.html' title='CodeIgniter ：学习笔记'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-7445370419782632042</id><published>2011-01-02T19:35:00.001+08:00</published><updated>2011-01-02T19:35:38.569+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='中文'/><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='CodeIgniter'/><category scheme='http://www.blogger.com/atom/ns#' term='乱码'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><title type='text'>CodeIgniter + Mysql : 中文表单乱码问题</title><content type='html'>&lt;p&gt;上周用&lt;a href="http://codeigniter.com/"&gt;CodeIgniter&lt;/a&gt;搞了2个简单的前台页面，发现表单传中文内容正常，往Mysql的表里写的时候总是乱码。&lt;/p&gt; &lt;p&gt;折腾了一阵，总算搞定，参考资料如下：&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx"&gt;MySQL 中文显示乱码&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://bbs.chinaunix.net/viewthread.php?tid=816729"&gt;调用mysql时候输出中文出现乱码&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://bugs.mysql.com/bug.php?id=10195"&gt;LOAD DATA INFILE and UTF-8&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://anmh.wordpress.com/2010/08/04/mysql-解决不能输入中文或中文乱码的三种方法/"&gt;mysql: 解决不能输入中文或中文乱码的三种方法&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;strong&gt;配置说明：&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;mysql编码配置：&lt;/p&gt; &lt;p&gt;&lt;img src="http://lh6.ggpht.com/_92lkWF-kRSk/TSBiTSCwEWI/AAAAAAAACKA/pUPPdvoSpaI/mysql_charset.png?imgmax=576" alt="mysql_charset.png" height="287" width="551"/&gt;&lt;/p&gt; &lt;p&gt;mysql建表命令：&lt;/p&gt; 
&lt;pre class="brush:bash"&gt;
   create table sometable (
   id int unsigned,
   user varchar(30),
   test text);
&lt;/pre&gt;
 &lt;p&gt;CodeIgniter的system\application\config\config.php中设置：&lt;/p&gt; &lt;p&gt;&lt;img src="http://lh4.ggpht.com/_92lkWF-kRSk/TSBiT9Y4MVI/AAAAAAAACKE/6rK-ahG47d8/codeigniter_config_charset.png?imgmax=400" alt="codeigniter_config_charset.png" height="51" width="369"/&gt;&lt;/p&gt; &lt;p&gt;CodeIgniter的system\application\config\database.php设置：&lt;/p&gt; &lt;p&gt;&lt;img src="http://lh3.ggpht.com/_92lkWF-kRSk/TSBiULBu-iI/AAAAAAAACKI/uyT1MJIp93Y/codeigniter_db_charset.png?imgmax=576" alt="codeigniter_db_charset.png" height="63" width="564"/&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;使用说明：&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;php文件的编码是gb2312，用 $this-&amp;gt;db-&amp;gt;insert($table, $data); 往表里插数据是正常的gb2312编码。&lt;/li&gt; &lt;li&gt;perl脚本的编码是gb2312，用DBI连接数据库时不用显式指定编码，可直接取回表中gb2312编码的内容。&lt;/li&gt; &lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-7445370419782632042?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/7445370419782632042/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2011/01/codeigniter-mysql.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7445370419782632042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7445370419782632042'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2011/01/codeigniter-mysql.html' title='CodeIgniter + Mysql : 中文表单乱码问题'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_92lkWF-kRSk/TSBiTSCwEWI/AAAAAAAACKA/pUPPdvoSpaI/s72-c/mysql_charset.png?imgmax=576' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-3917087247490420696</id><published>2010-12-20T13:02:00.002+08:00</published><updated>2010-12-20T13:08:47.450+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Slide'/><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><title type='text'>DBIx::Class introduction - 2010</title><content type='html'>&lt;div style="width:425px" id="__ss_4907432"&gt;&lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/ranguard/dbixclass-introduction-2010" title="DBIx::Class introduction - 2010"&gt;DBIx::Class introduction - 2010&lt;/a&gt;&lt;/strong&gt;&lt;object id="__sse4907432" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=dbix-100805075858-phpapp02&amp;stripped_title=dbixclass-introduction-2010&amp;userName=ranguard" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed name="__sse4907432" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=dbix-100805075858-phpapp02&amp;stripped_title=dbixclass-introduction-2010&amp;userName=ranguard" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="padding:5px 0 12px"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/ranguard"&gt;leo lapworth&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-3917087247490420696?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/3917087247490420696/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2010/12/dbixclass-beginners.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/3917087247490420696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/3917087247490420696'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2010/12/dbixclass-beginners.html' title='DBIx::Class introduction - 2010'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-7000752412685304650</id><published>2010-12-06T22:32:00.000+08:00</published><updated>2010-12-06T22:32:00.675+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Sed'/><title type='text'>笔记 : sed</title><content type='html'>&lt;p&gt;sed -e "= ; p" 打印行号，然后打印内容&lt;/p&gt; &lt;p&gt;sed -e '/^abc/ { n; /^$/d }' file.txt 删除以abc开头的行下面的一个空行&lt;/p&gt; &lt;p&gt;sed '100q' file.txt 到第100行的时候退出&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-7000752412685304650?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/7000752412685304650/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2010/12/sed.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7000752412685304650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7000752412685304650'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2010/12/sed.html' title='笔记 : sed'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-7555677892298118763</id><published>2010-12-06T22:12:00.000+08:00</published><updated>2010-12-06T22:12:00.161+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Linux : 一些笔记</title><content type='html'>&lt;p&gt;find . -name '*.log' -print 0 | xargs -0 rm -rf&lt;/p&gt; &lt;p&gt;sort -t 分隔符，-u 去掉重复项&lt;/p&gt; &lt;p&gt;wc -l !!:$ 上一条命令的最后一个参数&lt;/p&gt; &lt;p&gt;vi !^ 上一条命令的第一个参数&lt;/p&gt; &lt;p&gt;ls -l !cp:2 上一条cp命令的第二个参数&lt;/p&gt; &lt;p&gt;sar 查看系统信息&lt;/p&gt; &lt;p&gt;修改内核参数：vi /etc/sysctl.conf ; sysctl -p&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-7555677892298118763?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/7555677892298118763/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2010/12/linux.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7555677892298118763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7555677892298118763'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2010/12/linux.html' title='Linux : 一些笔记'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-1567200857806666753</id><published>2010-12-06T21:55:00.000+08:00</published><updated>2012-01-08T19:54:43.780+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>笔记 : Automating System Perl</title><content type='html'>&lt;p&gt;Perl6::Form、File::Temp、Path::Class、Text::Wrap&lt;/p&gt; &lt;p&gt;Filesys::Df 查看剩余空间&lt;/p&gt; &lt;p&gt;User::pwent、DBM::Deep、Term::Prompt、Proc::ProcessTable&lt;/p&gt; &lt;p&gt;netstat -ano&lt;/p&gt; &lt;p&gt;tcpvcon -anc&lt;/p&gt; &lt;p&gt;有个用IO::Socket发DNS请求和解析DNS应答的例子&lt;/p&gt; &lt;p&gt;Config::Scoped、XML::Simple(很简单)、XML::LibXML(很快)&lt;/p&gt; &lt;p&gt;XML::SAX 适用于体积较大的XML&lt;/p&gt; &lt;p&gt;XML::Twig 适用于大容量数据的一个小子集&lt;/p&gt; &lt;p&gt;XML::Rules、XML::Compile&lt;/p&gt; &lt;p&gt;Config::YAML、Config::Context、Config::Auto&lt;/p&gt; &lt;p&gt;Mail::Sender、Mail::Sendmail、Mail::Mailer、Email::Sender、Email::Simple&lt;/p&gt; &lt;p&gt;Email::Simple::Creator、Email::MIME::Creator&lt;/p&gt; &lt;p&gt;Text::Match::FastAlternatives&lt;/p&gt; &lt;p&gt;Net::Whois::Raw、Net::Whois&lt;/p&gt; &lt;p&gt;Logfile::Rotate、File::Tail、Parse::Syslog&lt;/p&gt; &lt;p&gt;Regexp::Log::DateRange、Regexp::Log::Common&lt;/p&gt; &lt;p&gt;Log::Statistics、Logfile、Log::Dispatch、Log4Perl&lt;/p&gt; &lt;p&gt;Algorithm::Accounting&lt;/p&gt; &lt;p&gt;lstat与stat的差别：lstat返回symbolic link本身的信息，stat返回symbolic link指向的目标文件信息&lt;/p&gt; &lt;p&gt;Net::Pcap、Sinffer::HTTP、NetPacket::IP、NetPacket::TCP&lt;/p&gt; &lt;p&gt;Net::PcapUtils、Net::Pcap::Easy、Term::Prompt&lt;/p&gt; &lt;p&gt;Nmap::Scanner、Text::Autoformat、Text::Beautify&lt;/p&gt; &lt;p&gt;Array::PrintCols、TextFormatTAble、Text::BarGraph&lt;/p&gt; &lt;p&gt;Text::More、Test::Harness&lt;/p&gt; &lt;p&gt;Net::ADNS、EV::ADNS&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-1567200857806666753?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/1567200857806666753/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2010/12/automating-system-perl.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/1567200857806666753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/1567200857806666753'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2010/12/automating-system-perl.html' title='笔记 : Automating System Perl'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-4709438183427249011</id><published>2010-12-06T21:38:00.000+08:00</published><updated>2010-12-06T21:38:00.423+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Network'/><category scheme='http://www.blogger.com/atom/ns#' term='Route'/><title type='text'>Network : 路由查找算法笔记</title><content type='html'>&lt;p&gt;路由查找 -&amp;gt; 报文转发速度 -&amp;gt; 路由器性能&lt;/p&gt; &lt;p&gt;路由查找算法的几个指标：&lt;/p&gt; &lt;ul&gt; &lt;li&gt;查找速度：软件实现，查找过程中需要访问存储器的次数；转发速度，线速转发；报文丢失&lt;/li&gt; &lt;li&gt;存储容量：存储空间小的算法可在cache或on-chip SRAM提高运行速度&lt;/li&gt; &lt;li&gt;路由波动更新速度：&lt;/li&gt; &lt;li&gt; &lt;blockquote&gt; &lt;ul class="noindent"&gt; &lt;li&gt;静态算法：完全重构，预处理速度？&lt;/li&gt; &lt;li&gt;动态算法：在原有基础上做更新&lt;/li&gt; &lt;/ul&gt; &lt;/blockquote&gt; &lt;/li&gt; &lt;li&gt;实现的灵活性：软硬件均可实现&lt;/li&gt; &lt;li&gt;可扩展性：支持IPv6？&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;路由查找算法测试：&lt;/p&gt; &lt;p&gt;Internet地址前缀分布(IPMA项目提供Internet五大骨干路由器中路由表的实时统计数据)&lt;/p&gt; &lt;p&gt;目的地址序列&lt;/p&gt; &lt;p&gt;一些查找算法：&lt;/p&gt; &lt;ul&gt; &lt;li&gt;hash链式表查找：表项少，查找快&lt;/li&gt; &lt;li&gt;动态前缀树查找：表项增多时，查找性能差不多，整体较慢&lt;/li&gt; &lt;li&gt;RAM快速查找：查找很快，算法使用的存储空间较大，适用于高速骨干路由器，高速转发&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;牺牲更新速度，换更快的查找速度？&lt;/p&gt; &lt;p&gt;骨干网使用MPLS&lt;/p&gt; &lt;p&gt;区别服务、策略路由支持？&lt;/p&gt; &lt;p&gt;最长前缀匹配不同于完全匹配，许多适用于完全匹配的算法，例如散列表，不适于最长前缀匹配。&lt;/p&gt; &lt;p&gt;基于树？&lt;/p&gt; &lt;p&gt;基于硬件？&lt;/p&gt; &lt;p&gt;内容可寻址存储器CAM，给出内容-&amp;gt;返回地址&lt;/p&gt; &lt;p&gt;缓存CACHE，给出数据地址-&amp;gt;返回内容&lt;/p&gt; &lt;p&gt;CAM在一个时钟周期内完全查找，O(1)完成最长前缀查找。&lt;/p&gt; &lt;p&gt;增加用于存放路由表的RAM用量=&amp;gt;提高查找速度&lt;/p&gt; &lt;p&gt;针对大量前缀 &amp;gt;8，&amp;lt;24 -&amp;gt; 算法优化&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-4709438183427249011?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/4709438183427249011/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2010/12/network.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/4709438183427249011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/4709438183427249011'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2010/12/network.html' title='Network : 路由查找算法笔记'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-4749212487080584901</id><published>2010-12-06T21:37:00.000+08:00</published><updated>2012-01-08T19:44:40.863+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><title type='text'>笔记 : Perl DBI</title><content type='html'>&lt;p&gt;Storable模块：nfreeze比freeze慢，但是保证可跨系统使用&lt;/p&gt; &lt;p&gt;Fcntl的flock&lt;/p&gt; &lt;p&gt;DB_FILE可以有三种存储形式 HASH、B树、RECNO（文本）&lt;/p&gt; &lt;p&gt;MLDBM 支持将复杂的数据结构写入文件&lt;/p&gt; &lt;p&gt;DBI的PrinterError对应warn，RaiseError对应die&lt;/p&gt; &lt;p&gt;错误消息：$DBI::errstr&lt;/p&gt; &lt;p&gt;quote函数自动转义引号&lt;/p&gt; &lt;p&gt;trace函数指定输出DB操作详情，debug用&lt;/p&gt; &lt;p&gt;dump_results打印执行结果，指定写入文件&lt;/p&gt; &lt;p&gt;bind_param_inout指定输出的参数写入到什么变量&lt;/p&gt; &lt;p&gt;bind_col&lt;/p&gt; &lt;p&gt;$sth-&amp;gt;{NUM_OF_FIELDS}返回的列数&lt;/p&gt; &lt;p&gt;$sth-&amp;gt;{NAME}-&amp;gt;[$i-1] 第i列的名字&lt;/p&gt; &lt;p&gt;AutoCommit如果设为0，在执行一系列操作后，$dbh-&amp;gt;commit(); if($@) { $dbh-&amp;gt;rollback(); }，较稳妥。&lt;/p&gt; &lt;p&gt;ODBC标准化了错误码，支持更多函数操作&lt;/p&gt; &lt;p&gt;DBI PROXY : 转发client的query给db，把db返回的结果转给client，这样中转一下，unix机器就能访问windows access的数据库&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-4749212487080584901?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/4749212487080584901/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2010/12/perl-dbi.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/4749212487080584901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/4749212487080584901'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2010/12/perl-dbi.html' title='笔记 : Perl DBI'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-5251643379974922721</id><published>2010-11-28T12:06:00.000+08:00</published><updated>2010-11-28T12:06:57.792+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Archlinux : 升级 libev 4.0 后 awesome 无法启动</title><content type='html'>出错提示：awesome: error while loading shared libraries: libev.so.3: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
重新编译安装awesome即可：&lt;br /&gt;
&lt;br /&gt;
yaourt -S aur/awesome&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-5251643379974922721?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/5251643379974922721/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2010/11/archlinux-libev-40-awesome.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/5251643379974922721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/5251643379974922721'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2010/11/archlinux-libev-40-awesome.html' title='Archlinux : 升级 libev 4.0 后 awesome 无法启动'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-7819640202545659804</id><published>2010-11-28T01:58:00.001+08:00</published><updated>2010-11-28T01:58:47.017+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mobile'/><title type='text'>LG GT540 : 刷机升级到 android 2.1</title><content type='html'>&lt;p&gt;见：&lt;a href="http://bbs.gfan.com/android-245870-1-1.html"&gt;GT540 2.1升级教程，方便新手，再附上ROOT方法&lt;/a&gt;&lt;/p&gt; &lt;p&gt;按这张贴搞了两次才成功。&lt;/p&gt; &lt;p&gt;忘了备份原始数据了，升级之后啥东西都没了，悲催。。。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-7819640202545659804?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/7819640202545659804/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2010/11/lg-gt540-android-21.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7819640202545659804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7819640202545659804'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2010/11/lg-gt540-android-21.html' title='LG GT540 : 刷机升级到 android 2.1'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-7968806705420657645</id><published>2010-11-21T17:09:00.003+08:00</published><updated>2012-01-08T19:44:40.875+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><title type='text'>笔记 : SQL Cookbook</title><content type='html'>&lt;p&gt;连接字符串: concat&lt;/p&gt; &lt;p&gt;条件逻辑： select col_a, case when col_b&amp;lt;100 then 'small' else 'big' end as state from sometable&lt;/p&gt; &lt;p&gt;按某个字段的最后两个字符升序：select col_a,col_b from sometable order by substring(col_b, length(col_b)-2)&lt;/p&gt; &lt;p&gt;重叠结果输出：[SELECT SQL A] union all [SELECT SQL B]&lt;/p&gt; &lt;p&gt;union all不删重复项；union删重复项；除非必要，否则不要用union、distinct&lt;/p&gt; &lt;p&gt;从一个表中取数据导入另一个表：insert into table1(col_a, col_b) select (col_aa, col_bb) from table2 where colcc='somevalue'&lt;/p&gt; &lt;p&gt;出现三次以上部门：select col_a from sometable group by col_a having count(*)&amp;gt;=3&lt;/p&gt; &lt;p&gt;列出索引：show index from emp&lt;/p&gt; &lt;p&gt;正则：select data from sometable where data regexp '[^0-9]' = 0&lt;/p&gt; &lt;p&gt;将同一部门的人名合在一行显示：select dept, group_concat(name order by id, ',') from emp group by dept&lt;/p&gt; &lt;p&gt;滚动结果集，每页五行(limit 5)，显示第2页(offset 5)：select col_a from sometable order by col_a limit 5 offset 5&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-7968806705420657645?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/7968806705420657645/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2010/11/sql-cookbook.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7968806705420657645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7968806705420657645'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2010/11/sql-cookbook.html' title='笔记 : SQL Cookbook'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-6407270983182534469</id><published>2010-11-21T17:09:00.001+08:00</published><updated>2012-01-08T19:54:44.172+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><category scheme='http://www.blogger.com/atom/ns#' term='BookNote'/><title type='text'>笔记 : Marstering Perl</title><content type='html'>&lt;p&gt;前向查找：(?=pattern) (?!pattern)&lt;/p&gt; &lt;p&gt;后向查找：(?&amp;lt;=pattern) (?&amp;lt;!pattern)&lt;/p&gt; &lt;p&gt;正则的debug：&lt;/p&gt; &lt;p&gt;脚本中 use re 'debug';&lt;/p&gt; &lt;p&gt;命令行 perl -Mre=debug script.pl&lt;/p&gt; &lt;p&gt;Regexp::Common 常用正则表达式&lt;/p&gt; &lt;p&gt;use Carp qw/carp croak cluck confess/;&lt;/p&gt; &lt;p&gt;cluck :打印堆栈后继续执行&lt;/p&gt; &lt;p&gt;confess:打印堆栈后停止执行&lt;/p&gt; &lt;p&gt;Hook::LexWrap 封装子程序，在子程序执行前后进行预定义代码&lt;/p&gt; &lt;p&gt;perl -d:SmallProf script.pl&lt;/p&gt; &lt;p&gt;DBI::Profile&lt;/p&gt; &lt;p&gt;perl -d:DProf script.pl&lt;/p&gt; &lt;p&gt;Devel::Profiler、Devel::Cover、Devel::Peek&lt;/p&gt; &lt;p&gt;Perl::Critic&lt;/p&gt; &lt;p&gt;临时修改某个库函数：*Some::Module::bar = sub { ... }&lt;/p&gt; &lt;p&gt;perl 命令行参数 -s ，简单置值(默认设为1)，例如：&lt;/p&gt; &lt;p&gt;perl -s script.pl -someval=abc -otherval&lt;/p&gt; &lt;p&gt;$someval="abc"、$otherval=1，二者为全局变量&lt;/p&gt; &lt;p&gt;ConfigReader::Simple、Config::Scoped、AppConfig&lt;/p&gt; &lt;p&gt;IO::Interactive&lt;/p&gt; &lt;p&gt;$! 操作系统或库函数调用得到的错误&lt;/p&gt; &lt;p&gt;$? 最近一次调用wait()得到的错误&lt;/p&gt; &lt;p&gt;$@ 最近一次调用eval()得到的错误&lt;/p&gt; &lt;p&gt;$^E 操作系统特有的错误信息&lt;/p&gt; &lt;p&gt;退出值：my $exit_value= $?&amp;gt;&amp;gt;8;&lt;/p&gt; &lt;p&gt;终止程序的信号值：my $signal=$?&amp;amp;127;&lt;/p&gt; &lt;p&gt;若子程序出现内核转储，则低字节第8位置1：my $core_dump = $?&amp;amp;128;&lt;/p&gt; &lt;p&gt;__LINE__ 当前所在行数&lt;/p&gt; &lt;p&gt;use Fatal; 作用是open失败时自动输出die错误信息&lt;/p&gt; &lt;p&gt;Log4perl&lt;/p&gt; &lt;p&gt;do 每次都重新解析文件，而require和use只解析一次文件。&lt;/p&gt; &lt;p&gt;如果找不到文件，$!；如果找到文件，但是无法读取或解析，$@&lt;/p&gt; &lt;p&gt;YAML、YAML::Tiny、YAML::Syck&lt;/p&gt; &lt;p&gt;Storable、Clone::Any&lt;/p&gt; &lt;p&gt;DBM::Deep&lt;/p&gt; &lt;p&gt;二进制数 my $value = ob 10; # $value=2&lt;/p&gt; &lt;p&gt;Devel::Size、Devel::Peek&lt;/p&gt; &lt;p&gt;vec 将一个字符串当成二进制位向量处理&lt;/p&gt; &lt;p&gt;Tie::Cycle、Tie::Hash::Word::Counter&lt;/p&gt; &lt;p&gt;创建一个模块的发布包：&lt;/p&gt; &lt;p&gt;$ Scriptdist Module.pm&lt;/p&gt; &lt;p&gt;$ make disttest&lt;/p&gt; &lt;p&gt;$ make tardist&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-6407270983182534469?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/6407270983182534469/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2010/11/marstering-perl.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/6407270983182534469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/6407270983182534469'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2010/11/marstering-perl.html' title='笔记 : Marstering Perl'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-4320182740708222377</id><published>2010-11-21T17:08:00.001+08:00</published><updated>2010-11-21T17:08:51.435+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Network'/><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>一些笔记</title><content type='html'>&lt;p&gt;smurf 攻击：攻击源向一堆机器发源伪造的icmp包，导致一堆机器向受害机器回复ICMP包，最终受害机器挂掉。&lt;/p&gt; &lt;p&gt;ssl依赖于客户端信任服务器证书的程度，如果客户端信任一个伪造的证书，那么安全也无法保证。&lt;/p&gt; &lt;p&gt;setuid 临时提升普通用户权限&lt;/p&gt; &lt;p&gt;sticky bit : 用户对目录具有写权限时，能增加文件，不能删除文件&lt;/p&gt; &lt;p&gt;修改mac地址：ifconfig eth0 hw ether [MAC]&lt;/p&gt; &lt;p&gt;traceroute 中间有些跳是 ***，没有显示IP地址，原因是这些跳没有响应ICMP超时消息。如果从某一跳开始，后续所有跳都是***，有可能是带***的第一跳试图过滤返回该源IP的ICMP超时消息。&lt;/p&gt; &lt;p&gt;lsof -i 列出所有使用中的tcp/udp端口&lt;/p&gt; &lt;p&gt;tcpdump 参数：-nn 禁止协议查找；-c 捕获包数&lt;/p&gt; &lt;p&gt;交换机通过CAM(内容可寻址)存储器来保存和维护ARP缓存&lt;/p&gt; &lt;p&gt;arp 毒化：arp -s &amp;lt;受害者IP&amp;gt; &amp;lt;自身MAC&amp;gt; pub&lt;/p&gt; &lt;p&gt;混杂模式网卡: ifconfig 显示 PROMISC标识&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-4320182740708222377?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/4320182740708222377/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2010/11/blog-post.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/4320182740708222377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/4320182740708222377'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2010/11/blog-post.html' title='一些笔记'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-7727862703934700271</id><published>2010-11-13T01:48:00.001+08:00</published><updated>2010-11-13T01:48:24.261+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Excel'/><title type='text'>Excel : 指定条件求和</title><content type='html'>&lt;p&gt;&lt;img src="http://lh4.ggpht.com/_92lkWF-kRSk/TN19l7EPoTI/AAAAAAAACJU/ZVSyW5pdbHE/2010-11-13_014535.png" style="DISPLAY: inline" height="123" width="655"/&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-7727862703934700271?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/7727862703934700271/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2010/11/excel_13.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7727862703934700271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7727862703934700271'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2010/11/excel_13.html' title='Excel : 指定条件求和'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_92lkWF-kRSk/TN19l7EPoTI/AAAAAAAACJU/ZVSyW5pdbHE/s72-c/2010-11-13_014535.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-6734756017847421784</id><published>2010-11-13T01:43:00.000+08:00</published><updated>2010-11-13T01:44:02.794+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Excel'/><title type='text'>Excel : 统计一行中，满足特定条件的列数</title><content type='html'>&lt;p&gt;例如，统计每行中，第2列到第4列间，取值为H的列数：&lt;/p&gt; &lt;p&gt;&lt;img src="http://lh6.ggpht.com/_92lkWF-kRSk/TN18uzqdYqI/AAAAAAAACJM/G7blxdMDzWg/2010-11-13_013453.png" alt="2010-11-13_013453.png" height="127" width="649"/&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-6734756017847421784?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/6734756017847421784/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2010/11/excel.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/6734756017847421784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/6734756017847421784'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2010/11/excel.html' title='Excel : 统计一行中，满足特定条件的列数'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_92lkWF-kRSk/TN18uzqdYqI/AAAAAAAACJM/G7blxdMDzWg/s72-c/2010-11-13_013453.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-1124008508331397598</id><published>2010-11-11T00:47:00.001+08:00</published><updated>2010-11-11T00:47:08.719+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vim'/><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><title type='text'>Perl ：一些笔记</title><content type='html'>&lt;p&gt;YAML::XS 读入或输出YAML格式的内容，只认unicode&lt;/p&gt; &lt;p&gt;Test::Output 测试stdout、stderr输出的内容&lt;/p&gt; &lt;p&gt;正则式的描述符介绍：&lt;a href="http://www.effectiveperlprogramming.com/"&gt;The Effective Perler&lt;/a&gt;-&lt;a href="http://www.effectiveperlprogramming.com/blog/174"&gt;Know the difference between regex and match operator flags&lt;/a&gt;&lt;/p&gt; &lt;p&gt;这篇文章不错：&lt;a href="http://www.perl.com/pub/2010/10/colonizing-the-lacuna-expanse-with-perl.html"&gt;Colonizing the Lacuna Expanse with Perl&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Text::CSV_XS 解析文本，注意几个参数：binary、sep_char、allow_loose_quotes，用getline将单行读入到数组，getline_hr将单行读入到hash（预先用column_names绑定hash的关键字）。&lt;/p&gt; &lt;p&gt;Email::Stuff 简单的邮件发送模块&lt;/p&gt; &lt;p&gt;Clone 复制数据结构，传入的参数必须为引用&lt;/p&gt; &lt;p&gt;Vim的Perl补全插件： &lt;span class="txth1"&gt;&lt;a href="http://www.vim.org/scripts/script.php?script_id=2852"&gt;perlomni.vim&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-1124008508331397598?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/1124008508331397598/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2010/11/perl.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/1124008508331397598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/1124008508331397598'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2010/11/perl.html' title='Perl ：一些笔记'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-370575215177261694</id><published>2010-11-11T00:42:00.001+08:00</published><updated>2010-11-11T00:42:26.065+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Network'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Wireshark : 命令行抓包分析工具 tshark、mergecap等</title><content type='html'>&lt;p&gt;Wireshark还配了一些命令行工具，例如：tshark, dumpcap, capinfos, editcap, mergecap&lt;/p&gt; &lt;p&gt;使用教学见：&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://www.euronet.nl/~sake/sharkfest08/"&gt;http://www.euronet.nl/~sake/sharkfest08/&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.wireshark.org/docs/man-pages/"&gt;wireshark手册&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.wireshark.org/docs/dfref/"&gt;tshark filter手册&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-370575215177261694?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/370575215177261694/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2010/11/wireshark-tsharkmergecap.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/370575215177261694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/370575215177261694'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2010/11/wireshark-tsharkmergecap.html' title='Wireshark : 命令行抓包分析工具 tshark、mergecap等'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-7731225057471132066</id><published>2010-11-10T13:20:00.000+08:00</published><updated>2010-11-10T13:20:49.313+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vim'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>SecureCRT : vim中文问题</title><content type='html'>SecureCRT下，vim查看utf8的文件中文显示乱码、vim下删汉字一次只删半个&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;SecureCRT设成gbk编码（option-&amp;gt;session option-&amp;gt;appearance -&amp;gt; character encoding选default）&lt;/li&gt;
&lt;li&gt;在/root/.vimrc中添加一行 set fileencodings=utf8-bom,ucs-bom,utf-8,cp936,gb18030,ucs,big5&lt;/li&gt;
&lt;li&gt;在/root/.bashrc中添加一行export LC_ALL=zh_CN.GBK&lt;/li&gt;
&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-7731225057471132066?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/7731225057471132066/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2010/11/securecrt-vim.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7731225057471132066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/7731225057471132066'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2010/11/securecrt-vim.html' title='SecureCRT : vim中文问题'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33715330.post-12694934630780213</id><published>2010-10-26T23:33:00.001+08:00</published><updated>2010-10-26T23:33:24.007+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><title type='text'>Perl ：ARP中毒例子</title><content type='html'>&lt;p&gt;见：&lt;a href="http://sharpsproductions.com/wordpress/?p=21"&gt;Sam's Blog - ARP Poisoning with Perl&lt;/a&gt;&lt;/p&gt; &lt;p&gt;正常节点：&lt;/p&gt; &lt;p&gt;&lt;strong&gt;A&lt;/strong&gt;, IP address: 192.168.1.100, MAC address: 00:e1:e2:e3:e4:e5 &lt;br/&gt;&lt;strong&gt;B&lt;/strong&gt;, IP address: 192.168.1.1, MAC address: 00:f1:f2:f3:f4:f5&lt;/p&gt; &lt;p&gt;恶意节点的MAC地址：00:aa:bb:cc:dd:ee&lt;/p&gt; &lt;p&gt;中间人攻击的一种形式。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33715330-12694934630780213?l=abbypan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbypan.blogspot.com/feeds/12694934630780213/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://abbypan.blogspot.com/2010/10/perl-arp.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/12694934630780213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33715330/posts/default/12694934630780213'/><link rel='alternate' type='text/html' href='http://abbypan.blogspot.com/2010/10/perl-arp.html' title='Perl ：ARP中毒例子'/><author><name>abbypan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='30' src='http://4.bp.blogspot.com/_92lkWF-kRSk/Scnka3LlXtI/AAAAAAAAAV0/KdaO7Ij31tQ/S220/%E5%9C%88%E5%9C%88.gif'/></author><thr:total>0</thr:total></entry></feed>
