<?xml version="1.0" encoding="UTF-8"?><!-- generator="WordPress/2.6.2" -->
<rss version="0.92">
<channel>
	<title>番茄's Blog</title>
	<link>http://www.tblog.com.cn</link>
	<description>回忆过去，你曾犯过多少错误？</description>
	<lastBuildDate>Mon, 13 Oct 2008 01:31:33 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	
	<item>
		<title>jQuery 表格 zebra crossing &#038; hover &#038; click 效果插件</title>
		<description>继续编写了一个 jQuery 插件，可用于表格中的 zebra crossing & hover & click 效果，使用方法很简单：

$('table').tablegrid(); //如果不做任何设置则可以直接这样调用
$('table').tablegrid({
    oddColor  : '#E0E0E0', //奇数行背景色
    evenColor : '#F0F0F0', //偶数行背景色
    overColor : '#C0D0E0', //鼠标悬停时背景色
    selColor  : '#FFCC99', //行选中时背景色
    useClick  : true   ...</description>
		<link>http://www.tblog.com.cn/archives/705.html</link>
			</item>
	<item>
		<title>jQuery Checkbox 全/反选操作插件</title>
		<description>编写了一个 jQuery Checkbox 全/反选操作插件，提供了自动切换/全选/反选/获取字符串值的功能，使用方法如下：

$('input[@name=checkAll]').checkbox().toggle('input[@name=checkbox]'); //自动切换全选/反选
$('input[@name=checkAll]').checkbox().checked('input[@name=checkbox]'); //全选
$('input[@name=checkAll]').checkbox().unchecked('input[@name=checkbox]'); //反选
$('input[@name=checkbox]').checkbox().val(); //获取字符串值


点击这里下载：
http://www.tblog.com.cn/down/jquery/jquery.checkbox.js
http://www.tblog.com.cn/down/jquery/jquery.checkbox.min.js


实现代码如下：
/**
 * checkbox 全选操作
 *
 * @author     Akon(番茄红了) 
 * @copyright  Copyright (c) 2008 (http://www.tblog.com.cn)
 * @license    http://www.gnu.org/licenses/gpl.html     GPL 3
 *
 * @example $('input[@type=checkbox][@name=checkAll]').checkbox();
 * 自动切换 : .toggle(element)
 * 全选 : ...</description>
		<link>http://www.tblog.com.cn/archives/700.html</link>
			</item>
	<item>
		<title>Web开发人员必须学习的5门课程</title>
		<description>
简介
web开发人员都应该学习的5门课程：

	你并不总是最聪明的那一个人
	经验肯定是有一定用处的
	没有银弹（即没有什么技术可以解决所有问题）
	一种新的好东西并不一直是好东西（这里的东西指技术或者应用）
	不是每一场仗都值得打  （不要总是认为自己的想法是正确的）


越来越多的Web开发人员通常都会问一些同样的问题。比如：哪一种开发语言最重要？初级开发人员的薪金会是多少？公司提供的免费培训有用吗？如何评估一个新的项目？尽管这些问题都很重要，但是开发人员往往对其他人的回答不以为然。一般来说，他们自己都不知道如何去寻找答案。以下五个建议或许有用。
你永远不是最聪明的人
在互联网泡沫到来之前我和一个同事一起从事语音识别系统扫描编码的工作。不久我们就发现通过电脑或者PDA可以很方便的上网，并且是无键盘操作。每当我质疑他的一些想法时但都遭到了他的坚决反对。他觉得他永远不可能犯错误。他曾经参加过技术讨论会的！在接下来的几个月里他有很多的设计都没能成功实现。

如果有一天你发现你与我的那位同事处境相似，那么也许你应该认识到你不一定总是正确的。你并不是办公室里面最聪明的人，所以主动接受别人的建议或许更能显示出你的大智慧。
经验真的很重要
作家永远不想承认这个事实，我们开发人员也是这样。尽管如此，我发现那些有过成功项目经验的人会更容易在接下来类似的项目中获得成功。当需求明确准备开发的时候，程序员通常都非常有自信有能力解决所有的问题，而不管所使用的方法是不是最佳的甚至可靠的。

事实上，经验从来都是很非常有用的。我的建议是相信别人的经验并向他们学习，而不是让自己嫉妒心无限膨胀。当自己犯错误的时候，多问几个为什么，多向别人寻求反馈并且尊重他人的意见。
没有“万能”的技术
不可否认的是现今任何一种开发语言、框架或者操作系统，都有他们忠实的追求者。当然他们的这种执著追求并没有什么不对，但是如果认为它们其中任何一种（技术、框架或者设计模式）可以解决在所有项目里遇到的任何问题那就不对了。我很反对在招聘Web开发人员的时候要求应聘人员必须掌握当前一些主流的开发语言。我认为只要对这些语言和技术有一些基本的了解就足够了，因为从来就没有什么万能的技术。

优秀的开发人员可能会成为新技术的倡导者，但不会成为狂热的追求者。除非他是在一家专门负责技术推广的软件服务公司工作，那样他必须开放思想并且愿意接受改变。
新的技术不一定是最好的
作为一名开发人员，长期专注于一种技术固然不好，但是总是倡导使用最新最时髦的技术更加不好。尽管新的技术很吸引人，但并不是任何时候都是最合适的。一些被成功实践过的技术往往能够给项目减少失误，缩短工期，并令客户满意。而且这样开发出来的网站往往更能被人接受。

当然，我并不是提倡对新的技术弃而不问。我们应该对Web新技术时刻保持敏感，一旦时机成熟，条件允许我们可以快速转向新技术的开发实践。我们可以经常学习并尝试使用新的技术来更新我们已有的系统。
不是每一场战役都值得去战斗
作为一名Web开发人员，我的经验证明网站在保持个性化的前提下很多原则是必须遵守的。但其他人并不这么认为。以前我会为了这种问题从头到尾据理力争，因为我觉得从任何角度出发我都是正确的。现在我倒觉得，大多数时候你只需要把你的想法清清楚楚明明白白的表达出来就够了。

尽管你的想法并不一定会被人接受，但你应该学包容别人犯错误，然后让管理层来协调。长此以往，你的同事就会发现你的宽容，慢慢的就会尊重你，感激你了。

FROM: http://www.yeeyan.com/articles/view/9884/13402 </description>
		<link>http://www.tblog.com.cn/archives/698.html</link>
			</item>
	<item>
		<title>Google Code Project中文翻译</title>
		<description>闲来无事，翻译了一下 Google Code Project 中的一些关于 wiki, issue, downloads 的描述，以便于更多不是非常熟悉英文的人加入到项目开发中来，英文水平有限，所以可能有些地方并不是很准确
Predefined Wiki Page Labels:
Featured             = 列出在项目主页
Phase-Requirements   = 项目规划和需求分析
Phase-Design         = 项目设计和关键问题
Phase-Implementation = 开发者指南
Phase-QA             = 测试计划和质量规范
Phase-Deploy         = 如何安装和配置程序
Phase-Support        = 计划支持的用户和宣传
Deprecated           = 废弃的，大多数用户不应该参照这个
Open Issue Status Values:
New                 	= 新添加并且未审核的问题
Accepted  ...</description>
		<link>http://www.tblog.com.cn/archives/695.html</link>
			</item>
	<item>
		<title>被否决的Google Logo</title>
		<description>FROM:http://www.yeeyan.com/articles/view/pestwave/11347?ad=referral

优胜劣汰，Google  Logo也不例外。幸福的Logo是一样的，不幸的Logo各有各的不幸······



原本打算庆祝：2003年儿童节
拒绝原因：太幼稚



原本打算庆祝：香烟问世150周年
拒绝原因：政治上欠妥



原本打算庆祝：植入式广告（Product Placement）发明50周年
拒绝原因： 星巴克给的钱太少



 原本打算庆祝：几年荷兰画家蒙德里安(以抽象几何图案等为特点的) 诞辰130周年
拒绝原因：太抽象



原本打算庆祝：Google 箴言“不做坏事”提出5周年
拒绝原因：太自恋



 原本打算庆祝：版权法案（Copyright Act）成立90周年
拒绝原因：使用©符号涉嫌侵权



原本打算庆祝：任天堂红白机成立20周年
拒绝原因：宠物鸭协会严正抗议



 原本打算庆祝：Googol（一个1后边跟100个0）提出65周年
拒绝原因：太极客



 原本打算庆祝：纪念艺术家M.C. Escher的草稿之一
拒绝原因：太恐怖



原本打算庆祝：庆祝JPEG图片压缩算法提出20周年
拒绝原因：压缩损失太严重 </description>
		<link>http://www.tblog.com.cn/archives/691.html</link>
			</item>
	<item>
		<title>用mysql触发器自动更新memcache</title>
		<description>不错的一篇文章，用于项目中可以带来更多的便利，按照方法已经调试成功，可以大大提高项目的速度。

FROM:http://www.ooso.net/index.php/archives/436

mysql 5.1支持触发器以及自定义函数接口(UDF)的特性，如果配合libmemcache以及Memcached Functions for MySQL，就能够实现memcache的自动更新。简单记录一下安装测试步骤。

安装步骤

安装memcached,这个步骤很简单，随处可见
安装mysql server 5.1RC，安装办法也很大众，不废话了
编译libmemcached，解压后安装即可
./configure; make; make install
编译Memcached Functions for MySQL，在http://download.tangent.org/找一个最新的版本下载就是，
./configure --with-mysql=/usr/local/mysql/bin/mysql_config --libdir=/usr/local/mysql/lib/mysql/
make
make install



接下来有两个办法让Memcached Functions for MySQL在mysql中生效
在mysql的shell中执行memcached_functions_mysql源码目录下的sql/install_functions.sql，这会把memcache function作为UDF加入mysql
运行memcached_functions_mysql源码目录下的utils/install.pl，这是一个perl脚本，作用同上一条


测试memcache function
以下测试脚本摘自memcached_functions_mysql的源码目录，有兴趣可以试试
drop table if exists urls;
create table urls (
  id int(3) not null,
  url varchar(64) not null default '',
  primary key (id)
  );
select memc_servers_set('localhost:11211');
select memc_set('urls:sequence', 0);
DELIMITER 
DROP ...</description>
		<link>http://www.tblog.com.cn/archives/683.html</link>
			</item>
	<item>
		<title>扩展ArrayObject</title>
		<description>使用过Zend_Config的朋友或许对下面这种数组使用方式并不陌生了：
 </description>
		<link>http://www.tblog.com.cn/archives/679.html</link>
			</item>
	<item>
		<title>is_file比file_exists快N倍</title>
		<description>for ($i=0; $i </description>
		<link>http://www.tblog.com.cn/archives/675.html</link>
			</item>
	<item>
		<title>在Firefox中开启Chrome的优秀功能</title>
		<description>FROM:http://www.yeeyan.com/articles/view/sunwell008/13529

喜欢Chrome的新功能？不舍得放弃Firefox？来看看这里有没有你用得上的……

整个互联网都在为了谷歌Chrome的创新功能而欢腾，但是在我们比较Chrome和Firefox的速度测试最 终却没有明确谁是胜者——这意味着你对于浏览器的选择将会仅仅取决于它们的功能。撇开一些特别的东西（即进程管理）不谈，很多Chrome的优秀功能已经 可以在Firefox 3上使用了，这再一次证明了其拓展性的力量。从匿名浏览到优化下载管理器再到地址高亮以及改良的搜索，让我们来看看如何将谷歌Chrome的优秀功能带入 Firefox。
潜入者开启匿名浏览

Chrome的匿名浏览使得你可以查看色情网站而不会在你的电脑上留下任何该浏览进程的记录。在Firefox中，潜入者扩 展可以做同样的事情。主要的区别在于：在Chrome中是将单一窗口变成匿名模式，而在Firefox中则是整个浏览器都变成匿名模式（这应该也可以在 Chrome中实现因为它将每个标签页当作单独的进程来进行管理）。不过坦白说来，你的多任务处理能力就真的那么强吗？  (来源)
下载状态栏把下载放到你的状态栏里（惊喜！）

Chrome的主题就是节省空间，所以你下载的文件就不会另开一个窗口。取而代之的是它们便住在了你的状态栏中。不错啊，瞧着吧：下载状态栏Firefox扩展已经致力于这一方面长达五年之久，而且它提供了更多附加选项并且能够节省更多宝贵的屏幕空间。 (来源)
快速拨号和自动拨号强化你的空白标签页

Chrome的空白标签页——显示了你最常浏览的网站，最常使用的搜索框，甚至你最近关闭的标签页——实在是太棒了。现在暂时没有任何能够完全拥有这些功能的Firefox扩展，不过有几个则非常接近了。快速拨号扩展（它本身是提取自Opera的快速拨号功能）提供了非常类似的基于预览图的新标签页，不同的是由你来决定那些网站是放在快速拨号标签页上的这样你可以很快地用键盘快捷键进入这些网站。(来源)
2号地址栏为地址栏添加域名高亮功能


谷歌Chrome的“无所不知栏”能找到根域名并高亮，是一个酷毙了的功能，比反钓鱼功能要好得多（如果你能很容易地就能看到根域名这样就不会那么容易地将自己的信息提交到冒名顶替的网站）。那样的域名高亮功能无论如何都不是什么新东西了：2号地址栏Firefox扩展早就在夸耀自己的同样的高亮功能——另外还有其他绝妙的功能——已经有超过一年的时间了。
棱镜插件把任何网站变成单独的应用程序

如果你想把一个网页应用分离出来成为一个单独的窗口或者是桌面快捷方式，Chrome使你很容易就能做到这一点。只要点击这个这个在那样那样一下就可以了。不过把网页应用分离成单独的应用程序也不是什么新鲜事了。在Mozilla他们早已经做出了棱镜来完成这些事情。有了棱镜以及安装了棱镜的Firefox扩展，只要进入Tools（工具） -&#62; Convert Website to Application（将网站转换成应用）来把网页应用分离成单独窗口和应用程序。现在这个扩展只能在Windows上使用，不过听好了——Chrome也是这样的。
关键词搜索书签使站内搜索融入地址栏
Chrome吹嘘道在使用了一个网站的搜索引擎后，下次你可以在地址栏中进行同样的搜索。比如说，你搜索了一次亚马逊，下次你就可以在你的地址栏里 输入 ‘a’在按Tab，然后就能进行搜索。这一点非常不错，不过这中关键词搜索对于Firefox来说也不是什么创新了。的确，你得要手动加入搜索引擎, （这里有我们的15个最受欢迎的Firefox快速搜索），不过你也可以定义你确切想要的快捷键。Chrome现在总的来说暂时也不支持 关键词书签，而它则是Firefox中最省时间的功能之一。

另一方面，前面提到的自动拨号能用你最常浏览的网站来自动填充空白的新标签页。尽管这并没有快速拨号或Chrome的新标签页那样吸引人。无论如何，给Firefox扩展开发者一些时间。我们会发现更多意想不到的改变。 </description>
		<link>http://www.tblog.com.cn/archives/673.html</link>
			</item>
	<item>
		<title>无耻的腾讯</title>
		<description>
kuhanzhu说这叫广播不叫广告，我无语了...

上个月因为有需要创建多个群，才付费成为了QQ会员

按照腾讯的声明，QQ会员是可以过滤腾讯的广告的，但是即使你选择了过滤广告，腾讯还是时不时给你发来些广告

哎，不知道怎么说好，腾讯啊腾讯，你怎么能无耻到这种地步

 </description>
		<link>http://www.tblog.com.cn/archives/671.html</link>
			</item>
</channel>
</rss>
