<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>~~天狼星技术博客~~ &#187; 编程技巧</title>
	<atom:link href="http://blog.painiu.com/category/%e5%bd%b1%e8%a7%86%e5%a8%b1%e4%b9%90/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.painiu.com</link>
	<description>淡定在黑暗和黎明时分!!!</description>
	<lastBuildDate>Mon, 16 Mar 2009 19:31:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>HTTP header中的 Cache-control</title>
		<link>http://blog.painiu.com/2008/11/77.html</link>
		<comments>http://blog.painiu.com/2008/11/77.html#comments</comments>
		<pubDate>Sat, 08 Nov 2008 14:51:11 +0000</pubDate>
		<dc:creator>数字人</dc:creator>
				<category><![CDATA[用户体验]]></category>
		<category><![CDATA[编程技巧]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Nginx]]></category>

		<guid isPermaLink="false">http://blog.painiu.com/?p=77</guid>
		<description><![CDATA[Cache-control常见的取值有private、no-cache、max-age、must-revalidate等


网页的缓存是由HTTP消息头中的“Cache-control”来控制的，常见的取值有private、no-cache、max-age、must-revalidate等，默认为private。其作用根据不同的重新浏览方式分为以下几种情况：
（1） 打开新窗口
如果指定cache-control的值为private、no-cache、must-revalidate，那么打开新窗口访问时都会重新访问服务器。而如果指定了max-age值，那么在此值内的时间里就不会重新访问服务器，例如：
Cache-control: max-age=5
表示当访问此网页后的5秒内再次访问不会去服务器
（2） 在地址栏回车
如果值为private或must-revalidate（和网上说的不一样），则只有第一次访问时会访问服务器，以后就不再访问。如果值为no-cache，那么每次都会访问。如果值为max-age，则在过期之前不会重复访问。
（3） 按后退按扭
如果值为private、must-revalidate、max-age，则不会重访问，而如果为no-cache，则每次都重复访问
（4） 按刷新按扭
无论为何值，都会重复访问
当指定Cache-control值为“no-cache”时，访问此页面不会在Internet临时文章夹留下页面备份。
另外，通过指定“Expires”值也会影响到缓存。例如，指定Expires值为一个早已过去的时间，那么访问此网时若重复在地址栏按回车，那么每次都会重复访问：
Expires: Fri, 31 Dec 1999 16:00:00 GMT
在ASP中，可以通过Response对象的Expires、ExpiresAbsolute属性控制Expires值；通过Response对象的CacheControl属性控制Cache-control的值，例如：
Response.ExpiresAbsolute = #2000-1-1# ‘ 指定绝对的过期时间，这个时间用的是服务器当地时间，会被自动转换为GMT时间
Response.Expires = 20 ‘ 指定相对的过期时间，以分钟为单位，表示从当前时间起过多少分钟过期。
Response.CacheControl = “no-cache”


]]></description>
		<wfw:commentRss>http://blog.painiu.com/2008/11/77.html/feed</wfw:commentRss>
		<slash:comments>545</slash:comments>
		</item>
		<item>
		<title>开源数据库 Sharding 技术 (Share Nothing)</title>
		<link>http://blog.painiu.com/2008/10/74.html</link>
		<comments>http://blog.painiu.com/2008/10/74.html#comments</comments>
		<pubDate>Sun, 19 Oct 2008 09:44:47 +0000</pubDate>
		<dc:creator>数字人</dc:creator>
				<category><![CDATA[编程技巧]]></category>
		<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[Sharding]]></category>

		<guid isPermaLink="false">http://blog.painiu.com/?p=74</guid>
		<description><![CDATA[从 Shard 到 Sharding
&#8220;Shard&#8221; 这个词英文的意思是&#8221;碎片&#8221;，而作为数据库相关的技术用语，似乎最早见于大型多人在线角色扮演游戏(MMORPG)中。&#8221;Sharding&#8221; 姑且称之为&#8221;分片&#8221;。
Sharding 不是一门新技术，而是一个相对简朴的软件理念。如您所知，MySQL 5 之后才有了数据表分区功能，那么在此之前，很多 MySQL 的潜在用户都对 MySQL 的扩展性有所顾虑，而是否具备分区功能就成了衡量一个数据库可扩展性与否的一个关键指标(当然不是唯一指标)。数据库扩展性是一个永恒的话题，MySQL 的推广者经常会被问到：如在单一数据库上处理应用数据捉襟见肘而需要进行分区化之类的处理，是如何办到的呢? 答案是：Sharding。
Sharding 不是一个某个特定数据库软件附属的功能，而是在具体技术细节之上的抽象处理，是水平扩展(Scale Out，亦或横向扩展、向外扩展)的解决方案，其主要目的是为突破单节点数据库服务器的 I/O 能力限制，解决数据库扩展性问题。
事关数据库扩展性
说起数据库扩展性，这是个非常大的话题。目前的商业数据都有自己的扩展性解决方案，在过去相对来说比较成熟，但是随着互联网的高速发展，不可避免的会带来一些计算模式上的演变，这样很多主流商业系统也难免暴露出一些不足之处。比如 Oracle 的 RAC 是采用共享存储机制，对于 I/O 密集型的应用，瓶颈很容易落在存储上，这样的机制决定后续扩容只能是 Scale Up（向上扩展） 类型，对于硬件成本、开发人员的要求、维护成本都相对比较高。
Sharding 基本上是针对开源数据库的扩展性解决方案，很少有听说商业数据库进行 Sharding 的。目前业界的趋势基本上是拥抱 Scale Out，逐渐从 Scale Up 中解放出来。
Sharding 的应用场景
任何技术都是在合适的场合下能发挥应有的作用。 Sharding 也一样。联机游戏、IM、BSP 都是比较适合 Sharding 的应用场景。其共性是抽象出来的数据对象之间的关联数据很小。比如IM ，每个用户如果抽象成一个数据对象，完全可以独立存储在任何一个地方，数据对象是 Share Nothing 的；再比如 Blog 服务提供商的站点内容，基本为用户生成内容(UGC)，完全可以把不同的用户隔离到不同的存储集合，而对用户来说是透明的。
这个 &#8220;Share Nothing&#8221; 是从数据库集群中借用的概念，举例来说，有些类型的数据粒度之间就不是 &#8220;Share Nothing&#8221; 的，比如类似交易记录的历史表信息，如果一条记录中既包含卖家信息与买家信息，如果随着时间推移，买、卖家会分别与其它用户继续进行交易，这样不可避免的 两个买卖家的信息会分布到不同的 <a href="http://blog.painiu.com/2008/10/74.html" class="more-link">更多 &#62;</a>]]></description>
		<wfw:commentRss>http://blog.painiu.com/2008/10/74.html/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>请不要忽视这些基础知识</title>
		<link>http://blog.painiu.com/2008/10/73.html</link>
		<comments>http://blog.painiu.com/2008/10/73.html#comments</comments>
		<pubDate>Thu, 16 Oct 2008 20:33:34 +0000</pubDate>
		<dc:creator>数字人</dc:creator>
				<category><![CDATA[编程技巧]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://blog.painiu.com/?p=73</guid>
		<description><![CDATA[第一，谈谈final, finally, finalize的区别。
final  用于声明属性，方法和类，分别表示属性不可变，方法不可覆盖，类不可继承。finally是异常处理语句结构的一部分，表示总是执行。finalize是Object类的一个方法，在垃圾收集器执行的时候会调用被回收对象的此方法，可以覆盖此方法提供垃圾收集时的其他资源回收，例如关闭文件等。
第二，Anonymous Inner Class (匿名内部类)  是否可以extends(继承)其它类，是否可以implements(实现)interface(接口)?
可以继承其他类或完成其他接口，在swing编程中常用此方式。　
第三，Static Nested Class 和 Inner Class的不同，说得越多越好(面试题有的很笼统)。
Static  Nested Class是被声明为静态（static）的内部类，它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。　　
第四，&#38;和&#38;&#38;的区别。
 &#38;是位运算符，表示按位与运算，&#38;&#38;是逻辑运算符，表示逻辑与（and）.　　
第五，HashMap和Hashtable的区别。
HashMap是Hashtable的轻量级实现（非线程安全的实现），他们都完成了Map接口，主要区别在于HashMap允许空（null）键值（key）,由于非线程安全，效率上可能高于Hashtable.　　
第六，Collection 和 Collections的区别。 　　
Collection是集合类的上级接口，继承与他的接口主要有Set  和List.Collections是针对集合类的一个帮助类，他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。　　
第七，什么时候用assert。
1.4新增关键字（语法），用于测试boolean表达式状态，可用于调试程序。使用方法 assert  ，表示如果表达式为真（true）,则下面的语句执行，否则抛出AssertionError。另外的使用方式assert  &#60;  boolean表达式&#62;:，表示如果表达式为真，后面的表达式忽略，否则后面表达式的值用于AssertionError的构建参数。注意编译时要增加-source  1.4 参数，否则报错。]运行时要增加 –ea参数，否则assert行被忽略　　
第八，GC是什么? 为什么要有GC? 　　
GC是垃圾收集的意思（Gabage  Collection）,内存处理是编程人员容易出现问题的地方，忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃，Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的，Java语言没有提供释放已分配内存的显示操作方法。  　　
第九，String s = new String(&#8220;xyz&#8221;);创建了几个String Object?
两个　　
第十，Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
Math.round(11.5)==12Math.round(-11.5)==-11round方法返回与参数最接近的长整数，参数加1/2后求其floor.　　
第十一，short s1 = 1; s1 = s1 + 1;有什么错?
short s1 <a href="http://blog.painiu.com/2008/10/73.html" class="more-link">更多 &#62;</a>]]></description>
		<wfw:commentRss>http://blog.painiu.com/2008/10/73.html/feed</wfw:commentRss>
		<slash:comments>248</slash:comments>
		</item>
		<item>
		<title>mysql sql 修改表名 建立外键 修改列名 删除列</title>
		<link>http://blog.painiu.com/2008/09/72.html</link>
		<comments>http://blog.painiu.com/2008/09/72.html#comments</comments>
		<pubDate>Fri, 19 Sep 2008 11:03:17 +0000</pubDate>
		<dc:creator>数字人</dc:creator>
				<category><![CDATA[编程技巧]]></category>
		<category><![CDATA[MYSQL]]></category>

		<guid isPermaLink="false">http://blog.painiu.com/?p=72</guid>
		<description><![CDATA[&#8211;重命名表
rename table t_softwareport to software_port;
&#8211;建立外键
alter table software_port add constraint fk_software_port_softwareprocessid foreign key (softwareprocessid)
references software_process (id) on delete restrict on update restrict;
&#8211;删除列
alter table software_type
drop column upid,
drop column orderid;
&#8211;修改列名
alter table software_process change  software_id  softwareid  int(11) not null;
]]></description>
		<wfw:commentRss>http://blog.painiu.com/2008/09/72.html/feed</wfw:commentRss>
		<slash:comments>652</slash:comments>
		</item>
		<item>
		<title>apache自带负载均衡的集群功能实战录（mod_proxy模块的应用）</title>
		<link>http://blog.painiu.com/2008/09/70.html</link>
		<comments>http://blog.painiu.com/2008/09/70.html#comments</comments>
		<pubDate>Sun, 14 Sep 2008 20:51:54 +0000</pubDate>
		<dc:creator>数字人</dc:creator>
				<category><![CDATA[编程技巧]]></category>
		<category><![CDATA[Apache]]></category>

		<guid isPermaLink="false">http://blog.painiu.com/?p=70</guid>
		<description><![CDATA[下面以在apache mod_proxy下做的反向代理负载均衡为配置实例：在站点www.test.com，我们按提供的内容进行分类，不同的服务器 用于提供不同的内容服务，将http://www.test.com/news的访问转到IP地址为192.168.1.1的内部服务器上处理，对 http: //www.test.com/it的访问转到服务器192.168.1.2上，http://www.test.com/life的访问转 到服务器 192.168.1.3上，http://www.test.com/love的访问转到合作站http://www.love.com上，从 而减轻本apache服务器的负担，达到负载均衡的目的。
首先要确定域名www.test.com在DNS上的记录对应apache服务器接口上具有internet合法注册的IP地址，这样才能使internet上对www.test.com的所有连接请求发送给本台apache服务器。
在本台服务器的apache配置文件httpd.conf中添加如下设置：
proxypass     /news     http://192.168.1.1
proxypass     /it     http://192.168.1.2
proxypass     /life    http://192.168.1.3
proxypass     /live    http://www.live.com
注意，此项设置最好添加在httpd.conf文件“Section 2”以后的位置，服务器192.168.1.1-3也应是具有相应功能的www服务器，在重启服务时，最好用apachectl configtest命令检查一下配置是否有误。
接下来也是我真正想要介绍的2.2版本后在mod_proxy中新添加的mod_proxy_balancer模块给我们带来的新功能。
首先将在主配置文件http.conf以下Module的注释去掉
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so
再并增加以下元素
ProxyRequests Off
ProxyPass <a href="http://blog.painiu.com/2008/09/70.html" class="more-link">更多 &#62;</a>]]></description>
		<wfw:commentRss>http://blog.painiu.com/2008/09/70.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Yahoo！社区架构(转载)</title>
		<link>http://blog.painiu.com/2008/09/69.html</link>
		<comments>http://blog.painiu.com/2008/09/69.html#comments</comments>
		<pubDate>Thu, 04 Sep 2008 09:21:38 +0000</pubDate>
		<dc:creator>数字人</dc:creator>
				<category><![CDATA[编程技巧]]></category>

		<guid isPermaLink="false">http://blog.painiu.com/?p=69</guid>
		<description><![CDATA[旧金山举行的 QCon 会议带给我们很多新鲜的信息。虽然没机会参加，但是看看各个网站&#8221;晒架构&#8221;也是个比较过瘾的事情。请参观并收藏这个页面：Architectures you&#8217;ve always wondered about。
eBay 的架构和去年相比基本是换汤不换药，倒是 Yahoo! 的 Ian Flint(这位老兄是 Bix 的运营总监. Bix 已被雅虎收购) 这个 PPT Yahoo! Communities Architecture: Unlikely Bedfellows  挺有意思，披露了一些鲜为人知的信息。
Yahoo! 社区包括我们比较熟悉的 del.icio.us、Flickr、Yahoo!群组、Yahoo! Mail、Bix等。相当于 Yahoo！把这些属性相近的应用放到一起运营。这个思路倒是和盛大对游戏的运营有些相近。
架构特点
有两点值得注意：1）层次化 2）模块化。这也是大规模作业下的比较经济的途径。
软件架构
首先是操作系统已经从 FreeBSD 逐渐迁移到 RHEL。这怕是雅虎不得已作出来的决定吧。FreeBSD 的开发力量的确不如 Linux，这也是不争的事实。数据库上 MySQL 与 Oracle 都有。Yahoo! 在 DW/BI 用的是 Oracle，构建了一个超大数据库。诸如 yapache、yts(反向代理服务器)、yfor(提供快速失败接管)、 ymon（监控），还有还有ysquid、ypan(cpan的 Yahoo! 克隆) 这些组件都是通过 yinst  来统计部署。关于 Yapache，请参考我以前写的 Yapache-Yahoo! Apache 的秘密
这是 <a href="http://blog.painiu.com/2008/09/69.html" class="more-link">更多 &#62;</a>]]></description>
		<wfw:commentRss>http://blog.painiu.com/2008/09/69.html/feed</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
		<item>
		<title>网站压力测试工具集</title>
		<link>http://blog.painiu.com/2008/08/68.html</link>
		<comments>http://blog.painiu.com/2008/08/68.html#comments</comments>
		<pubDate>Wed, 27 Aug 2008 05:01:38 +0000</pubDate>
		<dc:creator>数字人</dc:creator>
				<category><![CDATA[编程技巧]]></category>
		<category><![CDATA[网站压力测试]]></category>

		<guid isPermaLink="false">http://blog.painiu.com/?p=68</guid>
		<description><![CDATA[工具 相关网址
LoadRunner http://www.mercuryinteractive.com/products/loadrunner/
SilkPerformer http://www.segue.com/products/load-s &#8230; nce-testing/index.asp
QALoad http://www.compuware.com/products/qacenter/qaload.htm
WebLoad
OpenSTA 开源
Jmeter 开源
自动测试工具集
工具 相关网址
WinRunner http://www.mercuryinteractive.com/products/winrunner/
SilkTest http://www.segue.com/products/functio &#8230; l-testing/silktest.asp
QARun http://www.compuware.com/products/qacenter/qarun.htm
SAFS http://safsdev.sourceforge.net/Default.htm
Bug追踪系统
工具 相关网址
JIRA http://www.atlassian.com/software/jira/
Bugzilla http://www.bugzilla.org
TestDirector http://www.mercuryinteractive.com/products/testdirector/
GNATS http://www.gnu.org/software/gnats/
TestTrackPro http://www.seapine.com/ttpro.html
软件测试网站
http://www.51cmm.com
http://www.sqe.com
http://www.qadirect.com
http://www.bonoy.com
http://www.sztest.net
http://www.testage.net
http://www.sqatester.com
http://www.testingfaqs.org
软件测试工具集锦见正文
类型 名称 公司 网址
测试设计工具
ALLPAIRS http://satisfice.com/
Caliber-RBT http://www.tbi.com
Caliber-RM http://www.tbi.com
DARTT http://home.t-online.de/home/bsse.info/
Datatect http://www.datatect.com
DGL http://www.csee.usf.edu/~maurer/
McCabe Test http://www.mccabe.com
McCabe TestCompress http://www.mccabe.com
Multi http://www.testing.com/
Panorama C/C++ http://www.softwareautomation.com
Reactis Tester http://www.reactive-systems.com
TDGEN http://www.soft.com/Products/index.html
T-VEC Test Generation System http://www.t-vec.com
GUI测试驱动器 Android http://www.smith-house.org/open.html
Atesto Functional Testing Service &#8220;http://www.atesto.com/
&#8221;
AutoTester for Windows http://www.autotester.com
AutoTester for <a href="http://blog.painiu.com/2008/08/68.html" class="more-link">更多 &#62;</a>]]></description>
		<wfw:commentRss>http://blog.painiu.com/2008/08/68.html/feed</wfw:commentRss>
		<slash:comments>5136</slash:comments>
		</item>
		<item>
		<title>MYSQL系统优化与系统设置参数</title>
		<link>http://blog.painiu.com/2008/08/67.html</link>
		<comments>http://blog.painiu.com/2008/08/67.html#comments</comments>
		<pubDate>Tue, 26 Aug 2008 10:23:06 +0000</pubDate>
		<dc:creator>数字人</dc:creator>
				<category><![CDATA[编程技巧]]></category>

		<guid isPermaLink="false">http://blog.painiu.com/?p=67</guid>
		<description><![CDATA[MYSQL系统优化与系统设置参数的一次调查
对mysql进行优化意味着适当地分配内存，并让mysqld了解将会承担何种类型的负载。减少磁盘访问的次数。
类似地，确保 MySQL 进程正确操作就意味着它花费在服务查询上的时间要多于花费在处理后台任务（如处理临时磁盘表或打开和关闭文件）上的时间。
记录慢速查询
在一个 SQL 服务器中，数据表都是保存在磁盘上的。索引为服务器提供了一种在表中查找特定数据行的方法，而不用搜索整个表。当必须要搜索整个表时，就称为表扫描。通常 来说，您可能只希望获得表中数据的一个子集，因此全表扫描会浪费大量的磁盘 I/O，因此也就会浪费大量时间。当必须对数据进行连接时，这个问题就更加复杂了，因为必须要对连接两端的多行数据进行比较。
当然，表扫描并不总是会带来问题；有时读取整个表反而会比从中挑选出一部分数据更加有效（服务器进程中查询规划器用来作出这些决定）。如果索引的使用效率 很低，或者根本就不能使用索引，则会减慢查询速度，而且随着服务器上的负载和表大小的增加，这个问题会变得更加显著。执行时间超过给定时间范围的查询就称 为慢速查询。
您可以配置 mysqld 将这些慢速查询记录到适当命名的慢速查询日志中。管理员然后会查看这个日志来帮助他们确定应用程序中有哪些部分需要进一步调查。清单 1 给出了要启用慢速查询日志需要在 my.cnf 中所做的配置。
启用 MySQL 慢速查询日志
[mysqld]
; enable the slow query log, default 10 seconds
log-slow-queries
; log queries taking longer than 5 seconds
long_query_time = 5
; log queries that don&#8217;t use indexes even if they take less than long_query_time
; MySQL 4.1 and newer only
log-queries-not-using-indexes
这三个设置一起使用，可以记录执行时间超过 5 秒和没有使用索引的查询。请注意有关 log-queries-not-using-indexes <a href="http://blog.painiu.com/2008/08/67.html" class="more-link">更多 &#62;</a>]]></description>
		<wfw:commentRss>http://blog.painiu.com/2008/08/67.html/feed</wfw:commentRss>
		<slash:comments>45</slash:comments>
		</item>
		<item>
		<title>关于邮件群发的经验和技巧</title>
		<link>http://blog.painiu.com/2008/07/65.html</link>
		<comments>http://blog.painiu.com/2008/07/65.html#comments</comments>
		<pubDate>Wed, 23 Jul 2008 07:13:51 +0000</pubDate>
		<dc:creator>数字人</dc:creator>
				<category><![CDATA[用户体验]]></category>
		<category><![CDATA[编程技巧]]></category>
		<category><![CDATA[Email]]></category>

		<guid isPermaLink="false">http://blog.painiu.com/?p=65</guid>
		<description><![CDATA[一、关于邮件群发的经验和技巧 
1、强力推荐使用免smtp服务器的群发软件。这种软件将您的电脑虚拟成发信服务器，邮件直接地送至对方的邮箱，可以清楚地知道发送成功的数量，还可以知道邮址不能发送成功的原因。如亿虎Email邮差和WorldCast等。
2、尽量不要使用多smtp服务器的群发软件。多smtp的服务器软件，由于先将邮件发送至smtp服务器进行中转，现在，一般的邮件服务器都做了 设置，如果smtp服务器检测到短时间内来自同一个IP地址的大量连接请求，就会中止转发邮件，从而产生大量退信现象。况且，现在免费的smtp服务器已 经很难找了。
3、建议将邮件地址打乱发送，效果最佳。您可以使用一些电子邮件地址列表筛选和管理软件，如Mail List Management和欧阳邮件列表管家可以轻松实现这一要求。
4、发送信件的时候，建议申请多个hotmail、yahoo等免费信箱作为发送信箱，轮流使用，而将自己常用的信箱作为回复信箱，这样可以避免常 用的信箱受到封锁，从而也可以避免因此产生的大量退信现象。如sohu.com的邮箱，经常使用同一个信箱发送信件的话，服务器会屏蔽您的邮址，从而不能 发送，碰到这种情况，就需要更换发送信箱了。
5、合理使用群发线程。群发线程越多，速度自然越快，但现在很多的服务器自动检测，如163.net、263.net的邮箱，如果线程数使用很多， 服务器马上显示太多的连接请求，拒绝再转发。具体多少线程数为好，用户可以根据自己的电脑进行测试，从而找到最佳的发送线程数，既要保证发送速度快，同时 也要保证最高的成功率，还要保证发送邮件的时候不死机。
6、群发软件的选择使用。由于每一款群发软件在设计时发送参数都略有不同，所以不是每一款群发软件都能发送邮件到任何一个邮箱。如：一款群发软件可 发送邮件至21cn.com、sohu.com、263.net等，但却不能够发送邮件至sina.com、etang.com。而另一款群发软件却可发 送邮件至sina.com、263.net、etang.com、sohu.com等，但它不能发送邮件至21cn.com。这种情况在免SMTP群发软 件中尤为突出。因此，要尽可能全面的群发邮件到不同的邮箱，建议用户使用不同的群发软件，一种软件不能发送成功的邮址，可以导入到另一种群发软件，试试 看。
7、由于网络速度和服务器设置等多方面的原因，发送的时候可能经常会出现服务器连接失败的提示，您可以将这些邮址重新发送一次，很多又可以成功的。
二、关于邮件地址收集的经验和技巧
1、搜集网站邮址软件。通过扫描网页及相关链接方式，不断搜索网页上公布的Email地址。重点推荐亿虎Email扫描大师、Fast Email Spider和商舟邮箱搜集大师。这些软件对收集行业邮件地址比较有用。建议您先收集一些行业网站的网址，然后利用这些软件搜索这些网站，可以得到大量活 跃程度比较高的邮址。
2、搜索服务器邮址软件。利用字典文件直接从邮件服务器收集邮址，重点推荐邮件地址探索者和伊妹捕神，本站已经整理了一份比较全面的中国邮件服务器和国际邮件服务器的清单以及字典文件，如果您觉得本站提供的邮址不够，可以利用这种搜索软件自行搜索服务器邮址。
3、搜索硬盘、光盘邮址软件。快速搜索电脑硬盘、光盘、软盘中的文本文件、网页文件及*.eml格式文件中的电子邮件地址，重点推荐：小不点 Email地址提取大师和科蓝邮件地址搜寻工具。基于这种软件的用途，您还可以利用teleport等网站下载软件将那些供求信息BBS信息，“拉回”到 自己的电脑，然后用这种软件进行搜索邮址，可以得到大量的有效Email地址。
三、关于邮件地址和管理和验证
1、邮址管理软件。电子邮件地址列表筛选和管理软件，可以帮助客户管理好自己的电子邮件列表，避免发送大量重复垃圾邮件， 重点推荐：Mail List Management(MLM)和欧阳邮件列表管家。MLM软件是我们使用过的邮址管理软件中功能最强，速度最快的软件，100万的邮址几分钟就可以完成 过滤重复邮址、重新排序等。欧阳邮件列表管家则可以快速将一个很大的邮址文件分割成较小的文件，以方便群发。
2、邮址验证软件。采用模拟向被校验邮箱发信，而实际上又并没有发出的方式来对检查邮件地址的存在与否，重点推荐： Advanced Email Verifier和Advanced Maillist Verify。我们在实际使用中发现，很多验证有效的邮址，在群发的时候就是不能发送成功，这是由于邮件服务器设置的原因，所以，如果您需要建立一个自己 的高效率的邮址列表，可以直接使用免smtp服务器的软件导入邮址群发，将那些发送成功的邮址保存下来以便今后使用。
四、关于信息发布软件
由于现在对邮件发送的越来越多的限制，群发邮件很容易产生“垃圾邮件”，很多的人采用供求信息BBS进行推广。这样的软件现在也很多，比较有名的如 商务快车、环球商务信息发布系统、营销之星和网际营销等等。这些软件可以将您的信息发布至国内外上千个BBS站点或者新闻组。但这些软件相对比较贵。
]]></description>
		<wfw:commentRss>http://blog.painiu.com/2008/07/65.html/feed</wfw:commentRss>
		<slash:comments>55</slash:comments>
		</item>
		<item>
		<title>Yupoo相册插件 phpwind UTF8版本</title>
		<link>http://blog.painiu.com/2008/07/60.html</link>
		<comments>http://blog.painiu.com/2008/07/60.html#comments</comments>
		<pubDate>Wed, 16 Jul 2008 11:04:59 +0000</pubDate>
		<dc:creator>数字人</dc:creator>
				<category><![CDATA[编程技巧]]></category>
		<category><![CDATA[phpwind]]></category>
		<category><![CDATA[yupoo]]></category>

		<guid isPermaLink="false">http://blog.painiu.com/?p=60</guid>
		<description><![CDATA[————–安装配置开始—————-
安装说明:
首先访问 http://www.yupoo.com 申请一个站长自己的api key
申请过程见图( yupoo申请api_step_x.jpg )
1.解压插件到hack文件夹下面，使目录保持 hack\pw_yupoo\
2. 编辑 hack\pw_yupoo\config.php
根据申请api最后一步获得的api key 和 secretKey 配置config.php文件
$apiKey=”b40a95b25e0451b8aa0120f5xxxxx”;
$secretKey=”gv8lthgvpjexxxx”;
3.修改( \js\wind_c_editor.js )[注意:下面有两个参数因虚拟主机服务器目录修改IMGDIR和HackDIR]
将如下代码复制这个文件最末尾(横线之间的代码):
———————————————-
function $(id) {
return document.getElementById(id);
}
function _attachEvent(obj, evt, func) {
if(obj.addEventListener) {
obj.addEventListener(evt, func, false);
} else if(obj.attachEvent) {
obj.attachEvent(”on” + evt, func);
}
}
function doane(event) {
e = event ? event : window.event;
if(is_ie) {
e.returnValue = false;
e.cancelBubble = true;
} else if(e) {
e.stopPropagation();
e.preventDefault();
}
}
var hiddenobj = new Array();
var pmwinposition = new Array();
function <a href="http://blog.painiu.com/2008/07/60.html" class="more-link">更多 &#62;</a>]]></description>
		<wfw:commentRss>http://blog.painiu.com/2008/07/60.html/feed</wfw:commentRss>
		<slash:comments>42</slash:comments>
		</item>
		<item>
		<title>Yupoo相册插件 phpwind gbk版本</title>
		<link>http://blog.painiu.com/2008/07/58.html</link>
		<comments>http://blog.painiu.com/2008/07/58.html#comments</comments>
		<pubDate>Wed, 16 Jul 2008 10:52:21 +0000</pubDate>
		<dc:creator>数字人</dc:creator>
				<category><![CDATA[编程技巧]]></category>
		<category><![CDATA[phpwind]]></category>
		<category><![CDATA[yupoo]]></category>

		<guid isPermaLink="false">http://blog.painiu.com/2008/07/16/58/</guid>
		<description><![CDATA[&#8212;&#8212;&#8212;&#8212;&#8211;安装配置开始&#8212;&#8212;&#8212;&#8212;&#8212;-
安装说明:
首先访问 http://www.yupoo.com 申请一个站长自己的api key
申请过程见图( yupoo申请api_step_x.jpg )
1.解压插件到hack文件夹下面，使目录保持 hack\pw_yupoo\
2. 编辑 hack\pw_yupoo\config.php
根据申请api最后一步获得的api key 和 secretKey 配置config.php文件
$apiKey=&#8221;b40a95b25e0451b8aa0120f5xxxxx&#8221;;
$secretKey=&#8221;gv8lthgvpjexxxx&#8221;;
3.修改( \js\wind_c_editor.js )[注意:下面有两个参数因虚拟主机服务器目录修改IMGDIR和HackDIR]
将如下代码复制这个文件最末尾(横线之间的代码):
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-
 function $(id) {
return document.getElementById(id);
}
function _attachEvent(obj, evt, func) {
if(obj.addEventListener) {
obj.addEventListener(evt, func, false);
} else if(obj.attachEvent) {
obj.attachEvent(&#8220;on&#8221; + evt, func);
}
}
function doane(event) {
e = event ? event : window.event;
if(is_ie) {
e.returnValue = false;
e.cancelBubble = true;
} else if(e) {
e.stopPropagation();
e.preventDefault();
}
}
var hiddenobj = new Array();
var pmwinposition = new <a href="http://blog.painiu.com/2008/07/58.html" class="more-link">更多 &#62;</a>]]></description>
		<wfw:commentRss>http://blog.painiu.com/2008/07/58.html/feed</wfw:commentRss>
		<slash:comments>71</slash:comments>
		</item>
		<item>
		<title>Yupoo相册插件 for Netvibes</title>
		<link>http://blog.painiu.com/2008/07/56.html</link>
		<comments>http://blog.painiu.com/2008/07/56.html#comments</comments>
		<pubDate>Sun, 13 Jul 2008 15:33:36 +0000</pubDate>
		<dc:creator>数字人</dc:creator>
				<category><![CDATA[编程技巧]]></category>
		<category><![CDATA[netvibes]]></category>
		<category><![CDATA[widget]]></category>
		<category><![CDATA[Yupoo相册插件]]></category>

		<guid isPermaLink="false">http://blog.painiu.com/?p=56</guid>
		<description><![CDATA[安装事项:
其实安装很简单只需一个链接到netvibes,安装平时安装widget 步骤就可以&#8230;
我想跟你分享这个 Netvibes 的模块。想要加到你的页面请按下这个连结。
 
点击以下连接安装上述组件:
安装 UWA
 
]]></description>
		<wfw:commentRss>http://blog.painiu.com/2008/07/56.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>tar打包一个目录时，去掉其中的几个子目录</title>
		<link>http://blog.painiu.com/2008/07/55.html</link>
		<comments>http://blog.painiu.com/2008/07/55.html#comments</comments>
		<pubDate>Wed, 09 Jul 2008 06:03:56 +0000</pubDate>
		<dc:creator>数字人</dc:creator>
				<category><![CDATA[编程技巧]]></category>

		<guid isPermaLink="false">http://blog.painiu.com/?p=55</guid>
		<description><![CDATA[tar cvfz chenxu.tar.gz dir &#8211;exclude dir/dir1 &#8211;exclude dir/dir2/dir3 可以陆续添加, 注意添加排队目录时不要加“/”根符号
]]></description>
		<wfw:commentRss>http://blog.painiu.com/2008/07/55.html/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>YUPOO相册插件-boblog2.0.X</title>
		<link>http://blog.painiu.com/2008/07/51.html</link>
		<comments>http://blog.painiu.com/2008/07/51.html#comments</comments>
		<pubDate>Wed, 09 Jul 2008 04:58:46 +0000</pubDate>
		<dc:creator>数字人</dc:creator>
				<category><![CDATA[编程技巧]]></category>

		<guid isPermaLink="false">http://blog.painiu.com/?p=51</guid>
		<description><![CDATA[安装说明:
1.把yupoo这个文件复制到pulins下，进入blog后台进行相对应绑定设置（也可以直接在yupoo文件下define.php(此文件必须可写0777权限)进行就设置就可以了）
不用后台进行帮绑定的话，就可以直接对这个define.php进行修改，其userid可以这样得到http://www.yupoo.com/api/rest/?m &#8230; gsf810429@gmail.com
2.将文件夹lightbox复制到boblog根目录下面，这一步功能是让相册达到一个 幻灯片浏览效果（可选）
3.最后template目录下找到自己相对应模板文件夹，找到这个elements.php，然后将一个脚本代码插入到一个loadSidebar();这个脚本之前或之后)
&#60;script language=&#8221;javascript&#8221;&#62;
initLightbox();
&#60;/script&#62;
4.在根目录下index.php最后插入一些引用js文件和CSS文件:
acceptrequest(&#8216;act,go,page,part&#8217;) 修改为 acceptrequest(&#8216;act,go,page,part,id&#8217;);
$csslocation.=&#8221;&#60;link rel=\&#8221;stylesheet\&#8221; rev=\&#8221;stylesheet\&#8221; href=\&#8221;lightbox/css/yupoo.css\&#8221; type=\&#8221;text/css\&#8221; media=\&#8221;all\&#8221; /&#62;\n&#8221;;
$csslocation.=&#8221;&#60;link rel=\&#8221;stylesheet\&#8221; rev=\&#8221;stylesheet\&#8221; href=\&#8221;lightbox/css/lightbox.css\&#8221; type=\&#8221;text/css\&#8221; media=\&#8221;all\&#8221; /&#62;\n&#8221;;
$csslocation.=&#8221;&#60;link rel=\&#8221;stylesheet\&#8221; rev=\&#8221;stylesheet\&#8221; href=\&#8221;lightbox/css/moobox.css\&#8221; type=\&#8221;text/css\&#8221; media=\&#8221;all\&#8221; /&#62;\n&#8221;;
$ajax_js=&#8221;&#60;script type=\&#8221;text/javascript\&#8221; src=\&#8221;lightbox/js/prototype.js\&#8221;&#62;&#60;/script&#62;\n&#8221;;
$ajax_js.=&#8221;&#60;script type=\&#8221;text/javascript\&#8221; src=\&#8221;lightbox/js/effects.js\&#8221;&#62;&#60;/script&#62;\n&#8221;;
$ajax_js.=&#8221;&#60;script type=\&#8221;text/javascript\&#8221; src=\&#8221;lightbox/js/scriptaculous.js?load=effects\&#8221;&#62;&#60;/script&#62;\n&#8221;;
$ajax_js.=&#8221;&#60;script type=\&#8221;text/javascript\&#8221; src=\&#8221;lightbox/js/lightbox.js\&#8221;&#62;&#60;/script&#62;\n&#8221;;
还没有yupo API就是去申请Key，如API很明白话，可以参考yupoo API 文档




修正功能如下：
1.file_get_contents和curl函数不支持时BUG
2.修正了绑定时一些复杂问题，现在可以不需要去申请API Key就可以绑定，因为我给大家一个公用API Key,以减少用户在绑定时出现大量问题，而减少时间，给用户带来方便
3.修正了原来图片不能显示问题
yupoo_boblog20相册插件
]]></description>
		<wfw:commentRss>http://blog.painiu.com/2008/07/51.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Yupoo相册插件2.0-wordpress</title>
		<link>http://blog.painiu.com/2008/07/49.html</link>
		<comments>http://blog.painiu.com/2008/07/49.html#comments</comments>
		<pubDate>Wed, 09 Jul 2008 04:49:34 +0000</pubDate>
		<dc:creator>数字人</dc:creator>
				<category><![CDATA[编程技巧]]></category>

		<guid isPermaLink="false">http://blog.painiu.com/?p=49</guid>
		<description><![CDATA[安装事项：
安装说明：(http://zhangsf.yupoo.com/profile/)
1.把文件夹复制到wordpress插件包plugins文件夹中，进入wordpress后台启用yupooalbum插件
2.进行yupoo账号绑定和得到Authtoken ID进行相应操作,如没有账号API Key 就从(http://www.yupoo.com/services/api/apply)申请API，注意(选择认证为桌面认证)，如果修改过此项用户 绑定接口要修改一下，默认这个绑定时接口桌面认证，所以默认下无需修改此项配置!
3.编码环境调整问题
a.在windows上面请把ypablum.php：$xmlOptions = array(XML_OPTION_CASE_FOLDING =&#62; TRUE, XML_OPTION_SKIP_WHITE =&#62; FALSE);修改成$xmlOptions = array(XML_OPTION_TARGET_ENCODING =&#62; ‘UTF-8′, XML_OPTION_SKIP_WHITE =&#62; FALSE);
b.在linux,freebsd系统就不用修改。
认证绑定式：
1.web绑定 2.桌面绑定 3.移动手机绑定
更新功能 ：
1。更方便绑定API，无需callback一个页面！！直接绑定就可以了！！（注意绑定认证方式采用一个桌面绑定方式！！这样就无需一个返回一个文件什么，这样就更加方便了，申请好API后就可以去后台进行绑定操作）
2。修改一些用户说有些照片看不见问题
wp-ypalbum2相册插件
]]></description>
		<wfw:commentRss>http://blog.painiu.com/2008/07/49.html/feed</wfw:commentRss>
		<slash:comments>4241</slash:comments>
		</item>
		<item>
		<title>Yupoo相册插件&#8211;discuz6.0/5.5</title>
		<link>http://blog.painiu.com/2008/07/46.html</link>
		<comments>http://blog.painiu.com/2008/07/46.html#comments</comments>
		<pubDate>Wed, 09 Jul 2008 04:37:48 +0000</pubDate>
		<dc:creator>数字人</dc:creator>
				<category><![CDATA[编程技巧]]></category>
		<category><![CDATA[Discuz]]></category>
		<category><![CDATA[Yupoo相册插件]]></category>

		<guid isPermaLink="false">http://blog.painiu.com/?p=46</guid>
		<description><![CDATA[安装说明：
1.解压缩插件包下，把yupoo文件夹复制到plugins插件文件夹中，把templates目录下yupoo.htm复制到当成模板目录下
2.将CSS和语言变量添加到原来文件中，具体添加配置如下：
复制内容到剪贴板
代码:
/**************************************************************/
yp_show{width:10%;border:0px #eee dotted;float:left;margin:0px;padding:0px;}
.yp_set_show{width:10%;border:0px #eee dotted;float:left;margin:0px;padding:0px;}
.yp_img {margin:5px;border:5px #eee solid;}
.Set { width: 130px; text-align: left; margin-bottom: 15px; overflow: hidden;}
.Set h4  { width: 120px; margin-top: 0px; margin-bottom: 0px; font-size: 15px; font-weight: bold; }
.Set p { margin-top: 2px; font-size: 12px; color: #777; }
.Sets { position: relative; width: 115px; height: 180px; text-align: left; float: left; padding-right: 4px;   <a href="http://blog.painiu.com/2008/07/46.html" class="more-link">更多 &#62;</a>]]></description>
		<wfw:commentRss>http://blog.painiu.com/2008/07/46.html/feed</wfw:commentRss>
		<slash:comments>38</slash:comments>
		</item>
		<item>
		<title>awstats安装和配置</title>
		<link>http://blog.painiu.com/2008/07/43.html</link>
		<comments>http://blog.painiu.com/2008/07/43.html#comments</comments>
		<pubDate>Wed, 02 Jul 2008 06:27:27 +0000</pubDate>
		<dc:creator>数字人</dc:creator>
				<category><![CDATA[编程技巧]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[awstats]]></category>

		<guid isPermaLink="false">http://blog.painiu.com/2008/07/02/43/</guid>
		<description><![CDATA[1.下载&#38;&#38;安装
http://awstats.sourceforge.net/
tar .. &#38;&#38; cd …. &#38;&#38; perl awstats_configure.pl
#然后根据提示操作,可以不要这步,直接根据自带的模版定义
#cp  ../cgi-bin/awstats.model.conf /etc/awstats/common.conf
2.按照一下样例设置配置文件：
#cd /etc/awstats
#vi awstats.www.zhangjianfeng.com.conf
Include &#8220;common.conf&#8221;
LogFile=&#8221;/home/apache/logs/access_log.%YYYY-24%MM-24%DD-24&#8243;  %YYYY-24%MM-24%DD-24&#62;&#62;&#62;
是指用24小时前的年月日日志文件名,如access_log.20061206
SiteDomain=&#8221;www.zhangjianfeng.com&#8221;
HostAliases=&#8221;zhangjianfeng.com&#8221;
DefaultFile=&#8221;index.html&#8221;
DirData=&#8221;/home/cgi-bin/awstats/data/&#8221;
3.更新数据
perl awstats.pl -config=mysite -update
4.配置apache
# Directives to allow use of AWStats as a CGI
Alias /awstatsclasses &#8220;/app/awstats-6.5/wwwroot/classes/&#8221;
Alias /awstatscss &#8220;/app/awstats-6.5/wwwroot/css/&#8221;
Alias /awstatsicons &#8220;/app/awstats-6.5/wwwroot/icon/&#8221;
ScriptAlias /awstats/ &#8220;/app/awstats-6.5/wwwroot/cgi-bin/&#8221;
&#60;Directory &#8220;/app/awstats-6.5/wwwroot&#8221;&#62;
Options None
AllowOverride None
Order allow,deny
Allow from all
&#60;/Directory&#62;
5.对要分析的虚拟主机, 将CustomLog logs/access_xxx_log &#62;&#62;&#62;
&#60;&#60;&#60;common中的common改成combined
6. 重启apache,如果虚拟主机或目录配置好了,
就http://server/awstats/awstats.pl?config=mysite
7.添加定时分析指令
crontab -e
* */1 * * * (cd /path/to/apache/cgi-bin/; ./awstats.pl &#62;&#62;&#62;
&#60;&#60;&#60;-update -config=blog.zhangjianfeng.com)
8.直接分析gunzip压过的log
查了一下,如果是gz格式的压缩包，可以在配置文件中参考如下格式修改：
LogFile=&#8221;gzip -d <a href="http://blog.painiu.com/2008/07/43.html" class="more-link">更多 &#62;</a>]]></description>
		<wfw:commentRss>http://blog.painiu.com/2008/07/43.html/feed</wfw:commentRss>
		<slash:comments>253</slash:comments>
		</item>
		<item>
		<title>如何编写兼容各主流邮箱的HTML邮件</title>
		<link>http://blog.painiu.com/2008/06/40.html</link>
		<comments>http://blog.painiu.com/2008/06/40.html#comments</comments>
		<pubDate>Fri, 13 Jun 2008 04:14:14 +0000</pubDate>
		<dc:creator>数字人</dc:creator>
				<category><![CDATA[编程技巧]]></category>
		<category><![CDATA[HTML邮件]]></category>

		<guid isPermaLink="false">http://blog.painiu.com/?p=40</guid>
		<description><![CDATA[1、全局规则之一，不要写&#60;style&#62;标签、不要写class，所有CSS都用style属性，什么元素需要什么样式就用style写内联的CSS。
2、全局规则之二，少用图片，邮箱不会过滤你的img标签，但是系统往往会默认不载入陌生来信的图片，如果用了很多图片的邮件，在片没有载入的情况下，丑陋无比甚至看不清内容，没耐心的用户直接就删除了。图片上务必加上alt。
3、不要在style里面写float、position这些style，因为会被过滤。那么如何实现左右布局或者更复杂的布局呢？用table。
4、 style内容里面background可以设置color，但是img会被过滤，就是说不能通过CSS来设置背景图片了。但是有一个很有意思的元素属 性，也叫background，里面可以定义一个图片路径，这是个不错的替代方案，虽然这样功能有限，比如无法定位背景图片了，有总比没有好。例如要给一 个单元格加一个背景，必须这样写：
5、div模式的邮箱不支持flash，iframe模式的有待验证。
]]></description>
		<wfw:commentRss>http://blog.painiu.com/2008/06/40.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Imagemagick安装和配置</title>
		<link>http://blog.painiu.com/2008/04/38.html</link>
		<comments>http://blog.painiu.com/2008/04/38.html#comments</comments>
		<pubDate>Mon, 31 Mar 2008 18:34:27 +0000</pubDate>
		<dc:creator>数字人</dc:creator>
				<category><![CDATA[编程技巧]]></category>
		<category><![CDATA[Imagemagick]]></category>
		<category><![CDATA[安装和配置]]></category>

		<guid isPermaLink="false">http://blog.painiu.com/2008/04/01/38/</guid>
		<description><![CDATA[首先到http://www.Imagemagick.org去下载有关软件包来安装和配置
１．安装Imagemagick(6.3.9-10):　
　　./configure &#8211;prefix=/usr/local/ImageMagick &#8211;enable-shared &#8211;enable-lzw LDFLAGS=&#8221;-L/usr/lib&#8221; CPPFLAGS=&#8221;-I/usr/include&#8221;
２．安装Imagemagick2.1.0-rc（PHP客户端工具为例）:
    ./configure &#8211;with-php-config=/usr/local/php/bin/php-config &#8211;with-imagick=/usr/local/ImageMagick
３．安装附加软件magickwand1.7.0(PHP为例):
   ./configure &#8211;with-php-config=/usr/local/php/bin/php-config &#8211;with-magickwand=/usr/local/ImageMagick
以上安装测试在linux AS4上调试成功．WEB环境是：Apache２.0.55+Php5
大家要以在ＰＨＰ4版上可以进行调试一下．ＰＨＰ４这个环境我没有试过．请大家也要以尝试一下．
关于其他Imagemagick客户端软件有java、perl、python、C++等等有兴趣可以调试一下。  
]]></description>
		<wfw:commentRss>http://blog.painiu.com/2008/04/38.html/feed</wfw:commentRss>
		<slash:comments>52</slash:comments>
		</item>
		<item>
		<title>MySQL4.1以上版本字符集</title>
		<link>http://blog.painiu.com/2008/03/37.html</link>
		<comments>http://blog.painiu.com/2008/03/37.html#comments</comments>
		<pubDate>Sun, 23 Mar 2008 10:46:02 +0000</pubDate>
		<dc:creator>数字人</dc:creator>
				<category><![CDATA[编程技巧]]></category>
		<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[字符集]]></category>

		<guid isPermaLink="false">http://blog.painiu.com/2008/03/23/37/</guid>
		<description><![CDATA[MySQL 4.1开始，对多语言的支持有了很大变化 (这导致了问题的出现)。尽管大部分的地方 (包括个人使用和主机提供商)，MySQL 3、4.0 仍然占主导地位；但 MySQL 4.1 乃至5.0是 MySQL 官方推荐的数据库，已经有主机提供商开始提供并将会越来越多；因为 latin1 在许多地方 (下边会详细描述具体是哪些地方) 作为默认的字符集，成功的蒙蔽了许多 PHP 程序的开发者和用户，掩盖了在中文等语言环境下会出现的问题。
MySQL 4.1开始把多国语言字符集分的更加详细，所以导致数据库迁移，或则dz论坛升级到4.0后（dz4.0开始使用gbk或utf-8编码）出现乱码问题。
MySQL 4.1的字符集支持(Character Set Support)有两个方面：字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: 服务器(server)，数据库(database)，数据表(table)和连接(connection)。
查看系统的字符集和排序方式的设定可以通过下面的两条命令：
QUOTE:
mysql> SHOW VARIABLES LIKE &#8216;character_set_%&#8217;;
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+
&#124; Variable_name &#124; Value &#124;
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+
&#124; character_set_client &#124; latin1 &#124;
&#124; character_set_connection &#124; latin1 &#124;
&#124; character_set_database &#124; latin1 &#124;
&#124; character_set_results &#124; latin1 &#124;
&#124; character_set_server &#124; latin1 &#124;
&#124; character_set_system &#124; utf8 &#124;
&#124; <a href="http://blog.painiu.com/2008/03/37.html" class="more-link">更多 &#62;</a>]]></description>
		<wfw:commentRss>http://blog.painiu.com/2008/03/37.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
