<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.2.1" -->
<rss version="0.92">
<channel>
	<title>潘魏增</title>
	<link>http://panweizeng.com</link>
	<description>活在回忆里,细数时间下过的蛋.</description>
	<lastBuildDate>Sat, 05 Jul 2008 10:55:08 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	
	<item>
		<title>软件使用时间统计</title>
		<description>用timesnapper对我现在这台笔记本上的软件使用时间做了一个统计，统计周期为一个月，结果如下：

可见，在俺的业余时间，使用电脑的主要目的是上网冲浪，占据使用时间的45%（opera+iexplore+ttraveler+firefox+fterm）。其次是开发，占据使用时间的17%（devenv+editplus+pietty），然后是游戏和聊天并列9%（游戏：war3，聊天：qq+msn+skype）。结果和我预想的基本一致，除了感觉游戏有些偏高。

更新20080705：
从WebLeOn's Blog了解到提供类似功能的软件还有Wakoopa和RescueTime。我正在试用Wakoopa。 </description>
		<link>http://panweizeng.com/archives/150</link>
			</item>
	<item>
		<title>有意思的魔方</title>
		<description>前段时间微软给技术部送来了几个魔方，办公室就开始流行玩这个东西。有个同事是玩魔方专家，我让他给捎了一个国丙的三阶魔方，花了40人民币，质量很不错，非一般地摊货可比。然后照着教程鼓捣鼓捣，基本也算可以弄全六面，当然都是照着教程一边看一边转的。

魔方的初级玩法一般按六步走：
1.拼好底面和底面的四个棱、四个角。这一步转转就弄会了，非常简单。
2.调整第二层的棱；
3.顶面划十字；
4.对好顶面；
5.调整顶面四角顺序；
6.排列好最后的棱色块。

每一步都有两种算法，但是其实所有的算法都是另一种算法的对角线镜像，转两遍的效果和另外一种是相同的，负负得正嘛:)，所以不追求速度的话每一步记住一种算法就可以了。

教程地址：魔方的入门玩法
PDF下载：http://panweizeng.com/download/rubik-tutorial.pdf
为大家都能学好初级玩法，在这里特别免费放出秘笈图纸一张，打印出来每天演练一遍，十日可成。

更新(20080621):
我已经可以脱离教程和图纸完成六面。 </description>
		<link>http://panweizeng.com/archives/149</link>
			</item>
	<item>
		<title>工作变化</title>
		<description>昨天办完了交接手续，正式从凤凰新媒体(www.ifeng.com)离职，如果一切顺利的话，我将在6月初加盟一个做SNS社区的创业团队。

从毕业入职到现在刚好满两年，要离开已经熟悉的人和熟悉的事情，有点感伤。在工作交接的两周时间，每天都恍恍惚惚，好像我是在做梦一样，怀疑自己是不是真的做出了离职的决定。每天都一如既往地按时上班，每天中午聚餐的时候也都和同事们海阔天空的聊天，每天晚上回家才发现距离最后的离职日期又少了一天。

在凤凰的两年，是我职业生涯的第一步。在这两年中我有很多的收获，技术能力和业务经验都有了一些积累，在人际交往方面也有很大的长进（这个方面最大的收获就是要经常站在别人的角度考虑问题）。部门在2006年和2007年都获得了优秀团队的奖励，这是我最值得骄傲的事情。昨天资讯中心的刘老师请我在魏公村的鑫百万吃饭，每人三瓶啤酒下肚之后，得知我在资讯中心的口碑还是比较高的，工作也得到了编辑们的肯定。凤凰所有共事的同学们，多谢了。

离职的原因很简单，我想有一个拼命学习的环境，把技术能再提高一些。那为什么一定要离开凤凰呢？其实我也不算是真的离开，加入凤凰的时候自己注定这辈子是个凤凰人，说不定只是一次暂别。最后祝凤凰新媒体的事业蒸蒸日上，更上一层楼，也希望自己在互联网行业能走得更远。


 </description>
		<link>http://panweizeng.com/archives/148</link>
			</item>
	<item>
		<title>有意思的lambda表达式</title>
		<description>有这么一种场景，有一个Category的实体类对应着一个名为Category的数据库表。Category类中有Name和Path属性，在新建或更新Category对象时要保证这两个属性在数据库中的值唯一。当然你可以在数据库中的Name和Path字段都建一个唯一索引，那如果不采用这种做法应该怎么做呢？最简单的方法就是写两个名为CheckNameValid和CheckPathValid的函数。很明显这种做法不易于维护，比如说当Category类增加其他需要保证唯一的属性或者属性名字需要改变的时候。我的写法如下：

/// 
/// 检查数据库字段中的值是否唯一
/// 
/// Cateroy的集合
/// 表达式
/// 是否是新建Category
/// 
protected bool CheckValid(
				IEnumerable t, 
				Func func, 
				bool isNew)
{
	Category c = t.SingleOrDefault(func);
	if (isNew)
		return c == null;
	else
		return c == null &#124;&#124; (c != null && c.ID == Convert.ToInt32(ID.Text));
}

//调用方法一
protected Func func = null;
protected void Page_Load(object sender, EventArgs e)
{
	func = selectCategory;
}
protected bool selectCategory(Category c)
{
	return c.Name == this.Name.Text;
}
CheckValid(kr.Categories, ...</description>
		<link>http://panweizeng.com/archives/147</link>
			</item>
	<item>
		<title>静态列表页的分页</title>
		<description>相比于动态网站的列表页分页，静态列表页的分页是件麻烦的事情。因为旧的列表页发布出去以后就无法知道之后发布的总页数，而且也不可能每次更新列表页时去更新所有以前发布过的列表页（频道树节点多时，这个量非常大），所以一般的CMS处理得都比较简单。比如说新浪很多频道的列表页都是按日期归档的，一天发表的文章生成一个列表页，而有些专题的子频道列表页直接就没有处理分页。凤凰网的列表页分页就只有上一页和下一页的链接，系统在处理的时候就更新两个列表页-当前最新的列表页和最后更新过的列表页，规则是当上次处理分页后更新的文章数大于等于三分之五Pagesize时进行分页操作。搜狐的列表页就要复杂一些，有列表页首页链接，有输入页码跳转等，在页尾的Javascript脚本中里面有一个变量maxPage，猜测应该是后期include包含进去的。

在最近的一个项目中，对列表页的分页处理比上面说的几种要复杂一些。不看代码，先看效果。
这里的静态列表页是这样的，最早发布出去的第一页是列表页名字_1.html， 第二页是列表页名字_2.html，以此类推，到最后一页就是最新的一页是列表页名字.html或者列表页名字_列表页总页数.html。

下面是代码

var Paging = {
	holder:'paging',
	currentNo:1,
	currentFileName:'',//当前文件名，不包括后缀名和页码
	listSize:10,//列表项链接的显示数目
	totalNo:35,//列表页总页数
	//初始化currentFileName和currentNo
	preRender:function(){
		var _lastIndex = location.href.lastIndexOf('/');
		var _fileName = location.href.substr(_lastIndex+1);
		var matchItem = _fileName.match(/(.*)_(\d+).html/i);
		if(matchItem != null){
			this.currentFileName = matchItem[1];
			this.currentNo = parseInt(matchItem[2]);
		} else {
			this.currentFileName = _fileName.split('.')[0];
			this.currentNo = this.totalNo;
		}
	},
	render:function(){
		//在页面上显示的页码
		var realNo = this.totalNo - this.currentNo;
		//页码对listSize的倍数
		var tens = Math.floor(realNo / this.listSize);
		//页码对listSize的余数
		var units =  realNo % this.listSize;
		var html = '';
		html += '首页';
		//如果不是在第一个listSize，例如第一个十页，就显示上一页
		if(tens != 0) {
			html ...</description>
		<link>http://panweizeng.com/archives/146</link>
			</item>
	<item>
		<title>默哀三分钟</title>
		<description>为表达全国各族人民对四川汶川大地震遇难同胞的深切哀悼，国务院决定，2008年5月19日至21日为全国哀悼日。今天（5月19日）14时28分，公司给每人发了一朵白玫瑰，全体起立默哀三分钟。
 </description>
		<link>http://panweizeng.com/archives/145</link>
			</item>
	<item>
		<title>立春是部好电影</title>
		<description>尽管看的是阉割版，但依然能看出这是一部极为优秀的作品，其中蒋雯丽的演技可圈可点。看到梦想去巴黎唱歌剧而现实生活潦倒的王彩铃（蒋雯丽饰演），我马上想到了另一位同样热爱歌剧的有理想青年Paul Potts。对于理想青年来说，王彩铃带给我们的是幻灭，Paul带来的则是希望。关于立春的介绍和精彩点评，可以到豆瓣上面看看。

让Paul再感动我们一把！

 </description>
		<link>http://panweizeng.com/archives/144</link>
			</item>
	<item>
		<title>高中同学聚会</title>
		<description>趁着邓羽同学来京视察的机会，原来柳州地区高中021班的部分核心骨干成员今天晚上六点（2008年5月11日）在老根据地川军本色饭店举行了老邓来京欢迎晚宴。赴宴人员有老潘、老邓、沈雪、保智、老蒋、老古、温暖姐姐、阿牛以及远道而来的阿昌哥共九人。聚餐的桌子离上次阿冲女友出国践行宴会所在的桌子仅一拳之隔。时光荏苒，遥想当时阿冲在桌上意气风发，音容宛在。

此次宴会之上，爆料频出。聊起当年，尤其是以温暖姐姐为首的忻城女孩，多少精英少男，均成为她们的裙下之臣。俱往矣，同学们，为各自的理想继续努力吧。 </description>
		<link>http://panweizeng.com/archives/143</link>
			</item>
	<item>
		<title>在跑步机上跑一万米的心得</title>
		<description>if(你.经常锻炼 == true &#124;&#124; 你.意志力强 == true)  return;

1.万米跑这种耐力运动最大的敌人是你的身体。
2.运动前的几个小时应该保证摄入充足的食物，饿着肚子跑是不现实的。这些食物应该含有足够的碳水化合物，米饭和馒头都是不错的选择。
3.穿着舒适的运动裤和上衣，要保证一双合脚的布鞋或者跑鞋，不好的鞋容易引起膝关节的损伤。
4.准备一个随身听（Mp3或磁带机均可），播放一些快节奏的曲目，分散自己的注意力。
5.运动前需要进行热身，快走和慢跑都可以，这个非常关键。热身使运动神经开始兴奋，身体开始进入运动状态，能有效防止运动的损伤和过度的疲劳感。
6.根据自己的身体调整运动的节奏。我一般是：10-20分钟快走（6km/h）热身，10分钟慢速跑（8km/h），10分钟快速跑（12km/h），10分钟快走，10分钟慢速跑，10分钟中速跑（10km/h），10分钟快走，10分钟慢速跑，最后10分钟快走结束。这样70-90分钟就能完成万米跑。
7.运动中及时补充身体的水分。纯净水和运动饮料都可以，但是注意不要暴饮，否则会加重胃部的负担。
8.如果很久都没有参加运动了，前面几次应该量力而为，不要勉强自己。因为长期不运动，心肺功能跟不上，大脑会容易缺氧，万一晕倒在跑步机上面就要受伤了。
9.如果跑步的目的和我一样，减脂不减肌肉，那么就要好好把握一下运动的时间。我之前的《减肥参考数据》文章中提到，我认为最佳运动时间应该在[1,1.5]（单位：小时）之间。另外，即使你身上有很多的肥肉，但是运动也应该适量，毛主席教导我们：贵有恒，何必三更眠五更起；最无益，只怕一日暴十日寒。运动要持之以恒，偶尔突击一下肯定是不行的。

 </description>
		<link>http://panweizeng.com/archives/139</link>
			</item>
	<item>
		<title>Flash版倒计时</title>
		<description>原作品是06世界杯临近期间英文雅虎页面上的阿迪达斯倒计时牌冠名广告。设计富有金属质感，属于我比较喜欢的风格。反编译以后发现代码比较乱，然后手就有点痒，再然后就有了下面的代码。
首先是CountDown的类，其中handler是Function类型的公有变量，该函数将用于处理怎么显示倒计时代码。

class CountDown {
	private var finalTime:Date;
	private var currentTime:Date;
	private var timeDiff:Number;
	public var handler:Function = null;
	
	public function CountDown(date:Date) { 
		this.finalTime = date != null ? date : new Date(1900, 0, 0, 0, 0, 0);
	}
	
	private function init():Void {
		this.currentTime = new Date();
		this.timeDiff = finalTime.getTime() - currentTime.getTime();
		if (this.timeDiff < 0)
			this.timeDiff = 0;	
	}
	
	public function run():Void {
		init();
		var _day:Number ...</description>
		<link>http://panweizeng.com/archives/142</link>
			</item>
</channel>
</rss>
