十二年,虎年来了

2010年焰花

十二生肖就像一个钟表的轮盘,在零点的时刻开始,在零点的时刻结束,每一分,每一秒,表盘上都在滴滴答答的演绎着或美好或悲伤,或惊喜或忧愁的故事。

过去的12年,是一个纯情的年代,在表盘归零的时候,恍然发现,这种纯情早以被遗弃,世界在变化,我们每一个人也在变化。

人如宝剑,少年时是随心所欲剑从心生,我们在那个年代挥舞着,挥霍着,虽然毫无章法,但也能不时画出几下凌厉的招式,但终究只是“几下”。

如今,归零时刻,我默默的磨剑,我知道了要想仗剑行天涯,必要十年磨一剑!

过去的十二年,江湖没有哥的传说;将来的十二年,江湖将会流传哥的传说。

12年,一个归零,12年,一个启始。

十二年,虎年来了。

原文链接(24 views)|暂无评论(赶紧抢沙发)

Rel与CSS的联合使用

Rel-License 是微格式的开发标准之一,简单的说就是通过给引用标签(通常是链接)加上REL属性,来标明所引用链接/数据与文章的关系。

WordPress很早就引入了rel标准,在我们添加新链接的时候就可以看到“关系”属性。

早期某些社交类搜索引擎可根据这个标签来判断人与人之间的关系,但它对网页开发来说并无意义,值得庆幸的是随着浏览器的逐渐升级,我们可以利用CSS属性选择器以及REL来做一些有意思的功能。

这是一段带有REL属性的HTML结构。

<ul>
<li><a href="#" rel="civil">小李</a></li>
<li><a href="#" rel="party">局长</a></li>
</ul>

页面中他呈现这个样子
example_01

因为局长和小李是两个不同的阶级,所以我们应该有区分他们,我打算在小李和局长后面增加两张图片让他表现出这个样式。
e2

过去,我们需要在两个链接标签上增加不同的class来实现这种样式,并且我们需要针对不同的样式书写不同的CSS

 .c,.b {background:url(01.png) right center no-repeat;}
 .b {background-image:url(02.png);}
<ul>
<li><a href="#" rel="civil" class="c">小李</a></li>
<li><a href="#" rel="party" class="b">局长</a></li>
</ul>

现在,我们可以利用REL属性以及属性选择器来完成这个工作。

a[rel~="civil"]{background:url(01.png) right center no-repeat;}
a[rel~="party"]{background:url(02.png) right center no-repeat;}

同时,我们的HTML结构也可以剔除那些多余的样式了。

<ul>
<li><a href="#" rel="civil">小李</a></li>
<li><a href="#" rel="party">局长</a></li>
</ul>

另外:ie6不支持属性选择器,但我们可以用JS来修复这个问题。

原文链接(80 views)|暂无评论(赶紧抢沙发)

Luhn 算法的Perl实现

Luhn 算法主要应用在校键数字卡号的合法性,例如我们常见的银行卡,信用卡,ICCID号等等。

Luhn 算法简单的说,既从低位开始,基数位相加的和,与处理过的(将当前偶数位数字×2,若结果大于9,则将2位数字相加得到个位数,若结果小于等于9,直接记录这个值)偶数位相加的和的总和,若可被10整除,则合法,反之则不合法。

算法如下:

#!/usr/bin/perl
use strict;
use warnings;
 
#定义一个卡号
my $cardNum = "4367421590502289184";
 
sub luhnCheckNum{
	my $oddSum = 0;
	my $evenSum = 0;
	my $isOdd = 1;
	for(my $i=length($_[0])-1; $i>=0; $i--){
		my $iNum = substr($_[0],$i,1);
		if($isOdd){
			$oddSum += $iNum;
		}else{
			$iNum = $iNum*2;
			if($iNum>9){
				my @iNumArry = split(//, $iNum);
				$iNum = $iNumArry[0]+$iNumArry[1];
			}
			$evenSum += $iNum;
		}
		$isOdd = !$isOdd;
	}
	return (($evenSum + $oddSum)%10==0)
}
 
if(luhnCheckNum($cardNum)){
	print "您输入卡号合法";	
}else{
	print "您输入的卡号不合法";
}

原文链接(76 views)|暂无评论(赶紧抢沙发)

Perl 压缩 Js

sub compress {
	my ($codevalue)=@_;
	$codevalue =~ s/不支持Flash//;
	$codevalue =~ s/^\s+//;
	$codevalue =~ s/<!--(.*?)-->//g;
	$codevalue =~ s/(http|https):\/\//$1:~~/g;
	$codevalue =~ s/\s*\/\/.*?\n/\n/g;
	$codevalue =~ s/(http|https):~~/$1:\/\//g;
	$codevalue =~ s/(^| |\t)\/\/.*$//g;
	$codevalue =~ s!/\*.*?\*/\s*!!sg;
	$codevalue =~ s/(;|\n)\t+/$1/g;
	$codevalue =~ s/\n{2,}/\n/g;
	$codevalue =~ s/(if|else)\s*(\(.*?\))?\s*([\w\{])/$1$2$3/sg;
	$codevalue =~ s/[ \t]*([\=\,\+\-\*\&\|\:\?\< \>\{\}\(\)\[\]]+)[ \t]*/$1/g;
	$codevalue =~ s/^\s*\n//mg;
	$codevalue =~ s/(;)\s*/$1/g;
	$codevalue =~ s/(\r\n|\n)//g;
	$codevalue =~ s/({)(\s*?)(\S)/$1$3/g;
	return $codevalue;
}

原文链接(73 views)|暂无评论(赶紧抢沙发)

用我喜欢的字体(Cufon)

优雅的设计经常包含一些特殊的字体,而这些字体并不存在于用户的字体库中,我们并不能奢求每一个访客都是设计师。  :-)

虽然CSS3标准给我们带来了@font-face属性,但他也仅仅限于使用在“Gecko 1.9.1,Applies to Firefox 3.5, SeaMonkey 2, and Thunderbird 3 and later

不是Type2呢?不是Firefox3.5呢?显然这并不是一个现实的解决方案,毕竟我们有90%以上的用户在使用IE。

为了解决这个问题,我们使用了sIFR框架,但是这玩意一点也不好,首先是大,其次是慢,而Cufon可以很好的代替它。

什么是 Cufon 呢?Cufon 是一个实现在网页中对文字字体进行渲染的纯 JavaScript 开源类库。

使用Cufon非常简单,只需要在页面中引入Cufon得核心文件,然后在http://cufon.shoqolate.com/generate/ 将你的字体转换为JS字体文件并引用到页面中。

接下来,就可以使用相应的Cufon API对页面中的字体进行渲染了。

那么Cufon是如何对页面字体进行渲染的呢? 当然是VML、Canvas、SVG,因为网上已经有了相关的文章,所以我就不复制粘贴了。如果你有兴趣,可以看这里了解详细。

最后,因为Cufon是将字体以JSON格式进行编码,所以如果字体是中文的话,这个JS库会增大数倍,使用的时候一定要谨慎。

参考资料:
http://www.ibm.com/developerworks/cn/web/0911_zhuzh_cufon/
http://www.mikeindustries.com/blog/sifr/
https://developer.mozilla.org/index.php?title=en/CSS/%40font-face
http://wiki.github.com/sorccu/cufon/api

原文链接(316 views)|暂无评论(赶紧抢沙发)