Monthly Archive for August, 2010

WordPress, Blog or CMS?

wordpress_ex2

随着Wordpress3.0的横空出世, 随着自定义菜单的支持, 我们不禁疑问,Wordpress到底是CMS系统还是BLOG系统?


让我们来看看什么是CMS.

简介

CMS是Content Management System的缩写,意为“内容管理系统”。

CMS具有许多基于模板的优秀设计,可以加快网站开发的速度和减少开发的成本。

CMS的功能并不只限于文本处理,它也可以处理图片、Flash动画、声像流、图像甚至电子邮件档案。

CMS其实是一个很广泛的称呼,从一般的博客程序,新闻发布程序,到综合性的网站管理程序都可以被称为内容管理系统。

可以很明显的看出,CMS(内容管理)系统也包括了Blog.

但是大家一般都是把两者分开的, CMS一般选用来做门户网站,新闻网等等..

门户网站又分为搜索引擎式门户网站,综合性门户网站,地方生活门户。

其实了解Wordpress的人都知道这几项除了搜索引擎不支持以外其他的都可以完美胜任而且工作效率不比国内常见的PHPCMS,DEDECMS这些高。

其实也有许多设计师喜欢在Wordpress这个平台上写模板直接进行简单的网页设计,

原因有以下几点:

  1. WordPress可扩展性极强,众所周知,Wordpress有其他CMS程序达不到的插件数,其功能也能全部达到。
  2. WordPress后台操作简易强大,衡量门户网站好坏的一个重要因素就是后台操作的简易度和强大的程度,很显然Wordpress可以胜任。
  3. 因为插件能力强,品种众多,我们可以说它采集能力强,就像是一个差了电源的采集器一样
  4. 对搜索引擎非常友好,大家都知道Wordpress有个显著的特点就是对Google这些世界级搜索引擎非常友好,并且有Ping服务可以利于搜索引擎及时收录。
  5. 很强的安全性,Wordpress在PHP中属于安全性极高的源码了,你也可以下载安全类插件增强安全性。
  6. 免费。

CMS分类

根据不同的需求,CMS有几种不同的分类方法。比如,根据应用层面的不同,可以被划分为:

  • 重视后台管理的CMS
  • 重视风格设计的CMS
  • 重视前台发布的CMS

看了CMS内容管理程序的分类我们就能发现,第三点在Wordpress中是不支持的,

但是通过自己写模板我们就能发现其实是可以实现的,例如网站: http://fiona.clyee.com 该博客是我给女朋友弄着玩儿的,用的主题名字叫P2.

默认你是看不到发布栏的,但是一旦通过管理员认证你就可以在前台直接发布信息了!

例图:

通过更改模板我们还能实现在相应位置添加表情一类的标签,

其实会更改主题的人都会发现其实Wordpress可编辑性是相当强大的。

如果你懂点皮毛,你可以修改主题一些地方。如果你懂的中层,你可以写些插件。如果你是个高手你可以用Wordpress做出任何网站源码。

因为用的国外人较多,在中国用户趋势也是逐渐上涨。 所以你可以发现一款又一款的插件和主题再发布,更新。

如果你懂得PHP还蛮多的话你可以发现你可以用Wordpress做成社区,做成论坛等等.. 甚至强大的新闻发布站。

还有一点为Wordpress给予了绝对优势的就是免费,开源,但是相信Wordpress收费只要不是很多相信用户也是非常多的。

WordPress在不断改善,不断优化,主题和插件也在不断增加。

当有一天全民写插件,写主题,

当有一天原本定义为个人信息,博客发布系统的开源程序占据CMS市场,那将是怎么样的壮丽?

疯狂的神父 世界电影精选(英语类)

logo

推荐非常喜剧电影 – 疯狂的神父 :

昨天在外图书城买了一本叫《世界电影精选(英文类)》,听这名字就知道还有世界电影非英文类的。

其实这种书蛮多的, 但是这本书给我的感觉就是它的电影储存量很大,将近两千部电影。

每部电影都有配一张海报, 翻开书让我第一个看到的就是电影《疯狂的神父》,

其实书里面的海报大小是不定的, 有的大有的小,有可能是电影的经典“程度”的定义吧。

昨晚就选了这部电影看了看,还是蛮有感触的一部电影,

这是一部喜剧片, 讲的是神父纳丘(在福利院负责烧饭)喜欢上了摔跤,并且不顾整个福利院反对和一个叫花子合作参加摔跤比赛最终打败了历届冠军的故事。

影评的无厘头令人捧腹大笑,然而在这笑声的背后大家看清了一个教父善良纯真的心,他为了孩子改善伙食参加摔跤大赛。

并且让我看到最重要的就是影片反映了教父与圣女的个人生活,

其实人都是有欲望的,但是作为一个教父(或者圣女)他们的生活被一双无形的手束缚,

影片中同样讲述了教父纳丘喜欢上了才来到的圣女卡纳西昂,但是由于双方信仰和工作导致双方的爱困难重重。

但是最后双方的关系也十分暧昧..

圣女卡纳西昂的扮演者是安娜·德拉·雷格拉,是个非常美女,以圣女的装束出场即让各位男性目不转睛~ :)

看看安娜·德拉·雷格拉在电影里的样子和实际生活中的样子

不过话说回来这反正都是一部以搞笑博得票房的电影,全片长92分钟, 内容很新颖也很逗。

相信不会给喜欢搞笑片的人带来失望,这就是我推荐的票房过亿的喜剧片。

中国程序员的"版权意识"

images

程序员应该养成在保护知识产权上做的严谨的好习惯。:

常看到博友的日志里经常说到中国没有版权一说,或者中国是个盗版大国。
确实, 从即时通讯软件还是游戏, 从虚拟到现实生活。

在实物上先让我们看看电影的数据:中国盗版DVD去年达400亿 电影票房仅60亿
文学呢:中国每年文学盗版市场总规模约为50亿元

更不用说我们最贴近的软件业了.. 软件业随处可见破解版或者绿色版。

在这儿我讲讲我对“中国程序员应该如何保护自己的知识产权”这一说的看法。

付费软件被crack无非是几种情况:

  1. 一个注册码可以反复使用
  2. 算法不严谨,研究算法后cracker可以写出相应的注册机
  3. 代码保护不好,没有加壳或者加壳能力弱,对待没有加壳保护的软件破解是99%可以进行的,就像反编译中可以跳过或者修改验证过程一样,对于一些加壳能力弱的Cracker可以轻易的脱壳, 脱壳可以自动化或者手动。

当然处理过程不止以上这几个,这几个只能说是常见的。

因为我本身破解过一些小软件, 对反编译和PE文件结构和文件重建免杀这块还是有研究过些”皮毛”的, 所以断言,中国人写的软件并不是没有安全保护, 而大多是用常用的UPX或者ASPACK等等这些主流加壳软件进行加密, 没有强烈的产权意识,

并且中国的软件大多数都是单层壳并明文显示加壳名称,我们甚至可以找到脱壳机直接进行脱壳,

如果你写了软件并且想把它定义为付费使用软件, 那你一定要站在Cracker(破解者)的角度想你加密或者压缩的可破解可能性。

再者我们说说用户体验这方面, 用户体验是肯定包括让用户试用你的软件, 但是殊不知很多时候Cracker都能抓住这点延长试用期, 所以在试用期的处理方面千万不要过于忽视, 不要普通的注册表验证或者时间验证(现在应该很少了)。

据我的观察发现大多数中国程序员都只注重软件的一次性收入而不是长期稳定的, 中国的软件大多规模不大不小, 对于这点程序员一定要重视你的代码! 因为那是你的劳动成果,是受法律保护的。

其实我本身写的这篇文章没有什么技术含量, 但是因为我本身也算大半个程序员并且研究过破解所以告诫中国的程序员很多时候应该和外国人学学, 试着写下自己的算法,或者加壳之前查查是否有轻易就能破解的方法或者软件, 是否能加重壳等等着一系列问题, 处理好试用期和正式注册这个过程。

记住,也许你一时疏忽, 你辛辛苦苦写的软件的绿色版破解版就会遍布天下。

Flash+XML小型博客

ActionscriptIcon_400

今天在这里发布个Flash的小型博客, 更新没有后台但是是可以靠XML进行更新的,

发出来给大家分享一下, 给喜欢Actionscript的人练练手,
测试地址是: 已删除地址
发布之后估计要有几天不会更新文章了, 学习明天军训..:(
好了废话不多说, 以下是Flash中的背景控制AS代码:

MovieClip.prototype.preload2 = function() {
	this.swapDepths(998);
	var speed = 0;
	this.pc.pc.onEnterFrame = function() {
		this._rotation -= Math.round(speed);
		speed += (-10-speed)/10;
	};
	this.pc.mset({_alpha:0, _xscale:1, _yscale:1});
	this.pc.mfade({_alpha:100, _xscale:100, _yscale:100},3);
	this._x = Math.round(900/2-this._width/2);
	this._y = Math.round(700/2-this._height/2);
};
attachpreloader = function(){
	attachMovie("preloader2","preloader", 997);
	preloader.preload2();
}
removepreloader2 = function () {
	preloader.pc.mfade({_xscale:1, _yscale:1}, 5);
	preloader.mfade({_alpha:0},5,true);
};
attachpreloader();
this.onEnterFrame = function(){
	var l = this.getBytesLoaded();
	var t = this.getBytesTotal();
	if(l==t){
		delete this.onEnterFrame;
		removepreloader2();
		//this._alpha = 0;
		//this.mfade({_alpha:100}, 3);
		gotoAndStop(2);
	}
}
stop();

下面是第一帧:

//第一帧
MovieClip.prototype.mfade = function(prop, de, rem, newdepth,tracer) {
	if(de <= 1){
		this.mset(prop);
		this.finifunc();
	} else {
	this.breakloop = 0;
	if (newdepth) {
		this.swapDepths(newdepth);
	}
	this.setnum = new Array();
	for (i in prop) {
		this.setnum.push(this[i]);
	}
	this.onEnterFrame = function() {
		this.inum = 0;
		for (i in prop) {
			this.setnum[this.inum] += (prop[i]-this.setnum[this.inum])/de;
			this[i] = Math.round(this.setnum[this.inum]);
			if (Math.abs(this.setnum[this.inum]-prop[i])<1) {
				this.breakloop++;
			}
			this.inum++;
		}
		if (this.breakloop==this.inum) {
			delete this.onEnterFrame;
			if (rem) {
				if (this.getDepth()<1) {
					this.swapDepths(999);
				}
				this.removeMovieClip();
			} else {
				this.finifunc();
			}
			for (i in prop) {
				this[i] = prop[i];
			}
		} else {
			this.breakloop = 0;
		}
	};
	}
};
//第二帧
MovieClip.prototype.square = function(x, y, w, h, col) {
	if(col==undefined){
		col=0xCCCCCC;
	}
	this.beginFill(col, 100);
	this.moveTo(x, y);
	this.lineTo(x+w, y);
	this.lineTo(x+w, y+h);
	this.lineTo(x, y+h);
	this.lineTo(x, y);
	this.endFill();
};
MovieClip.prototype.outline = function(x, y, w, h, col) {
	this.square(0, 0, w, 1, col);
	this.square(w-1, 1, 1, h-2, col);
	this.square(0, h-1, w, 1, col);
	this.square(0, 1, 1, h-2, col);
};
TextFormat.prototype.copyFormat=function(copystyle){
	for(i in copystyle){
		this[i]=copystyle[i];
	}
}
//....具体省略了

好了, 其实整体来说都很简单, 无非是一段控制背景的代码和XML的装载代码,
相信学好了ActionScript的都可以做出来这个效果!
看看效果图吧~:

下载地址: http://good.gd/672512.htm

你可以试着修改FLA文件达到最终效果!

内部提供了fla源码, XML和HTML以及控制全局的JS和CSS代码! :)
其实Flash的AS代码很强大并且正在越变越强大, 而且用XML更新的优势就在于他不用牵扯到数据库,


恩…这个…谢谢!
我相信一旦和操作数据库挂钩的网站一定不能说他是绝对安全的!

共 3 页, 当前第 1 页 123