2009年1月31日星期六

身份证号码的含义

当今的身份证号码有15和18位之分。1985年我国实行居民身份证制度,当时签发的身份证号码是15位的,1999年签发的身份证由于年份的扩展(由两位变为四位)和末尾加了效验码,就成了18位。这两种身份证号码将在相当长的一段时期内共存。两种身份证号码的含义如下:

18位的身份证号码:450104197710101516

(1)1~6位为地区代码,其中1、2位数为各省级政府的代码(广西为45),3、4位数为地、市级政府的代码(南宁市为01),5、6位数为县、区级政府代码(西乡塘区为04)。

(2)7~10位为出生年份(4位),如1977

(3)11~12位为出生月份,如10

(4)13~14位为出生日期,如10

(5)第15~17位为顺序号,为县、区级政府所辖派出所的分配码,每个派出所分配码位10个连续号码,例如"150—159",其中单数为男性分配码,双数为女性分配码,如遇同年同月同日有两人以上时顺延第二、第三、第四、第五个分配码。

(4)18位为效验位(识别码),通过复杂公式算出,普遍采用计算机自动生成。

15位的身份证号码:

(1)1~6位为地区代码

(2)7~8位为出生年份(2位),9~10位为出生月份,11~12位为出生日期

(3)第13~15位为顺序号,并能够判断性别,奇数为男,偶数为


------------------
snigoal@Wang,HUST.Wuhan.China

SQL2000里的数据类型

(1)char、varchar、text和nchar、nvarchar、ntext
char和varchar的长度都在1到8000之间,它们的区别在于char是定长字符数据,而varchar是变长字符数据。所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度;而变长字符数据则不会以空格填充。text存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符。

后面三种数据类型和前面的相比,从名称上看只是多了个字母"n",它表示存储的是Unicode数据类型的字符。写过程序的朋友对Unicode应该很了解。字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。nchar、nvarchar的长度是在1到4000之间。和char、varchar比较:nchar、nvarchar则最多存储4000个字符,不论是英文还是汉字;而char、varchar最多能存储8000个英文,4000个汉字。可以看出使用nchar、nvarchar数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失。

(2)datetime和smalldatetime
datetime:从1753年1月1日到9999年12月31日的日期和时间数据,精确到百分之三秒。
smalldatetime:从1900年1月1日到2079年6月6日的日期和时间数据,精确到分钟。

(3)bitint、int、smallint、tinyint和bit
bigint:从-2^63(-9223372036854775808)到2^63-1(9223372036854775807)的整型数据。
int:从-2^31(-2,147,483,648)到2^31-1(2,147,483,647)的整型数据。
smallint:从-2^15(-32,768)到2^15-1(32,767)的整数数据。
tinyint:从0到255的整数数据。
bit:1或0的整数数据。

(4)decimal和numeric
这两种数据类型是等效的。都有两个参数:p(精度)和s(小数位数)。p指定小数点左边和右边可以存储的十进制数字的最大个数,p必须是从 1到38之间的值。s指定小数点右边可以存储的十进制数字的最大个数,s必须是从0到p之间的值,默认小数位数是0。

(5)float和real
float:从-1.79^308到1.79^308之间的浮点数字数据。
real:从-3.40^38到3.40^38之间的浮点数字数据。在SQL Server中,real的同义词为float(24)。

数据库定义到char类型的字段时,不知道大家是否会犹豫一下,到底选char、nchar、varchar、nvarchar、text、ntext中哪一种呢?结果很可能是两种,一种是节俭人士的选择:最好是用定长的,感觉比变长能省些空间,而且处理起来会快些,无法定长只好选用定长,并且将长度设置尽可能地小;另一种是则是觉得无所谓,尽量用可变类型的,长度尽量放大些。

  鉴于现在硬件像萝卜一样便宜的大好形势,纠缠这样的小问题实在是没多大意义,不过如果不弄清它,总觉得对不起劳累过度的CPU和硬盘。

下面开始了(以下说明只针对SqlServer有效):

1、当使用非unicode时慎用以下这种查询:
select f from t where f = N'xx'

原因:无法利用到索引,因为数据库会将f先转换到unicode再和N'xx'比较

2、char 和相同长度的varchar处理速度差不多(后面还有说明)

3、varchar的长度不会影响处理速度!!!(看后面解释)

4、索引中列总长度最多支持总为900字节,所以长度大于900的varchar、char和大于450的nvarchar,nchar将无法创建索引

5、text、ntext上是无法创建索引的

6、O/R Mapping中对应实体的属性类型一般是以string居多,用char[]的非常少,所以如果按mapping的合理性来说,可变长度的类型更加吻合

7、一般基础资料表中的name在实际查询中基本上全部是使用like '%xx%'这种方式,而这种方式是无法利用索引的,所以如果对于此种字段,索引建了也白建

8、其它一些像remark的字段则是根本不需要查询的,所以不需要索引

9、varchar的存放和string是一样原理的,即length {block}这种方式,所以varchar的长度和它实际占用空间是无关的

10、对于固定长度的字段,是需要额外空间来存放NULL标识的,所以如果一个char字段中出现非常多的NULL,那么很不幸,你的占用空间比没有NULL的大(但这个大并不是大太多,因为NULL标识是用bit存放的,可是如果你一行中只有你一个NULL需要标识,那么你就白白浪费1byte空间了,罪过罪过!),这时候,你可以使用特殊标识来存放,如:'NV'

11、同上,所以对于这种NULL查询,索引是无法生效的,假如你使用了NULL标识替代的话,那么恭喜你,你可以利用到索引了

12、char和varchar的比较成本是一样的,现在关键就看它们的索引查找的成本了,因为查找策略都一样,因此应该比较谁占用空间小。在存放相同数量的字符情况下,如果数量小,那么char占用长度是小于varchar的,但如果数量稍大,则varchar完全可能小于char,而且要看实际填充数值的充实度,比如说varchar(3)和char(3),那么理论上应该是char快了,但如果是char(10)和varchar(10),充实度只有30%的情况下,理论上就应该是varchar快了。因为varchar需要额外空间存放块长度,所以只要length(1-fillfactor)大于这个存放空间(好像是2字节),那么它就会比相同长度的char快了。

13、nvarchar比varchar要慢上一些,而且对于非unicode字符它会占用双倍的空间,那么这么一种类型推出来是为什么呢?对,就是为了国际化,对于unicode类型的数据,排序规则对它们是不起作用的,而非unicode字符在处理不同语言的数据时,必须指定排序规则才能正常工作,所以n类型就这么一点好处。

14、 如何修改MSSQL中TEXT类型的长度及用JDBC插入该类型数据的方法 :

刚建立TEXT类型的时候,会发现默认情况下是它的长度是16,在MSSQL里面如何也改不了它的大小了。

可以通过以下的方法来修改该类型的长度:
sp_tableoption TestTable(《---此处为要修改表的名字), 'text in row', '1000'(《---此处为长度,值只能是24~7000)

如果用JDBC来插入该类型的值的时候。应该先将文件转换成STRING类型,在通过PreparedStatement中的

setString()方法来插入数据。



总结陈词:
1、如果数据量非常大,又能100%确定长度且保存只是ansi字符,那么char
2、能确定长度又不一定是ansi字符或者,那么用nchar;
3、不确定长度,要查询且希望利用索引的话,用nvarchar类型吧,将它们设到400;
4、不查询的话没什么好说的,用nvarchar(4000)
5、性格豪爽的可以只用3和4,偶尔用用1,毕竟这是一种额外说明,等于告诉别人说,我一定需要长度为X位的数据


------------------
snigoal@Wang,HUST.Wuhan.China

十大令女生动心的爱情句子

十大令女生动心的爱情句子

1) I love you not because of who you are, but because of who I am when I am with you.
我爱你,不是因为你是一个怎样的人,而是因为我喜欢与你在一起时的感觉。

2) No man or woman is worth your tears, and the one who is, won't make you cry.
没有人值得你流泪,值得让你这么做的人不会让你哭泣。

3) The worst way to miss someone is to be sitting right beside them knowing you can't have them.
失去某人,最糟糕的莫过于,他近在身旁,却犹如远在天边。

4) Never frown, even when you are sad, because you never know who is falling in love with your smile.
纵然伤心,也不要愁眉不展,因为你不知是谁会爱上你的笑容。

5) To the world you may be one person, but to one person you may be the world
对于世界而言,你是一个人;但是对于某个人,你是他的整个世界

6) Don't waste your time on a man/woman, who isn't willing to waste their time on you.
不要为那些不愿在你身上花费时间的人而浪费你的时间。

7) Just because someone doesn't love you the way you want them to, doesn't mean they don't love you with all they have.
爱你的人如果没有按你所希望的方式来爱你,那并不代表他们没有全心全意地爱你。

8) Don't try so hard, the best things come when you least expect them to.
不要着急,最好的总会在最不经意的时候出现。

9) Maybe God wants us to meet a few wrong people before meeting the right one, so that when we finally meet the person, we will know how to be grateful.
在遇到梦中人之前,上天也许会安排我们先遇到别的人;在我们终于遇见心仪的人时,便应当心存感激。

10) Don't cry because it is over, smile because it happened.
不要因为结束而哭泣,微笑吧,为你的曾经拥有

------------------
snigoal@Wang,HUST.Wuhan.China

2009年1月30日星期五

如何自动登录到英文版QQ邮箱

如果你安装了英文版的QQ2009 Beta, 肯定注意到了QQ邮箱链接会打开英文版的QQ邮箱界面. 不过我们不能直接在设置页面中找到切换语言的选项. 那么浏览器是如何判断用户语言, 又是如何自动登录到英文版的呢?
其实很简单, 英文版QQ邮箱有一个单独的服务器, 和其他QQ邮箱服务器地址不同. 只要直接敲入这个服务器地址, 即使电脑上的QQ是中文的, 也会转到英文邮箱界面, 连登陆框都是英文. 这个地址是:

m98.mail.qq.com
现在就可以在地址栏键入此地址试验一下.


------------------
snigoal@Wang,HUST.Wuhan.China

50个令人叹为观止的JavaScript应用站点

http://www.cnbeta.com/articles/75861.htm

随着诸如 jQuery, Mootools, Prototype 一类的 JavaScript 框架的崛起,Web 开发者们基于这些框架创建了众多令人叹为观止的效果。以下的50个站点全部基于 JavaScript,却拥有 Flash 一样的绚丽效果。在很多 Web 开发者看来,Flash 并不是他们的首要选择,因为 Flash 至今对搜索引擎仍是不透明的,另外,Flash 的渲染需要浏览器插件,而 JavaScript 的一切都是本地的。

Tabs Aviary - http://aviary.com/


Aviary 使用了非常圆润的 Tab 效果,点击 Tab 后,渐出渐入的栏目介绍性内容非常漂亮,它的基于 JavaScript 的下拉菜单也美轮美奂。
Toolani - http://www.toolani.de/


黄色内容区块下方的,基于 jQuery 的 Tabs 非常漂亮。
Podcasttuneup - http://www.podcast-tuneup.com/


漂亮的 Tab 带着有趣的上卷与下卷效果。作为对比,该 Tab 框上方还有一个基于 Flash 的 Tab 框,可以看出,Flash 的反应速度明细要快得多,然而却要等半天的时间加载。
Adworks - http://www.adworks.ro/


尽管这些 Tab 并不象前面提到的那几个,带渐入溅出效果,但那些大图标实在惹人喜欢。
We are Sofa - http://www.madebysofa.com/


如果你想用文字式 Tab 这个网站是个很好的例子。
幻灯式内容 monofactor -http://www.monofactor.com/


这个重新设计后的站点使用幻灯风格展示作者的作品。
Alex Buga - http://www.alexbuga.com/


Alex Buga 自诩为 Web 设计超级明星,使用了类似幻灯片的方式展示他最近的活动。位于右上角的那个主导航条也很 Cool,不过该站点大量使用了 Ajax。
Coda, one Window Web development - http://www.panic.com/coda/


这个站可谓家喻户晓。是很多人获得灵感的地方。
Kobe - http://www.arcinspirations.com/kobe/


漂亮的幻灯式内容效果,并结合了 Flash。(该站使用了单页式设计)
Dibusoft mmdv - http://www.dibusoft.com/


Dibusoft 使用了水平滚动图片加垂直滚动文字使用内容的幻灯式变换。它的主菜单则使用 JavaScript 实现 Lava Lamp 效果。
Jason Julien - http://www.jasonjulien.com/


Web 设计师 Jason Julien 使用水平滚动的方式来显示各个栏目下的内容。
engage interactive - http://www.engageinteractive.co.uk/

Juanid W. Hanif - http://www.jwhanif.net/


这个位于纽约的 Web 设计师 Juanid W. Hanif 的网站给人的总体感觉很不错。
Omnitech incorporated - http://www.omnitech-inc.com

Qlear Interaction Design - http://www.qlear.nl


大量的幻灯式内容,整体效果很漂亮。
Tap Tap Tap - http://www.taptaptap.com/

Hotel Oxford - http://www.hotel-oxford.ro/


这个站的效果看上去象 Flash, 也拥有 Flash 一样的行为,然而却是 JavaScript。
单页式网站
以下几个站点的共同点就是大量使用滚动窗口,甚至有些滥用了。
Bryan Katzel - http://www.webleeddesign.com/

Melissa Hie - http://melissahie.com/ volll humane communication - http://www.volll.com/

Tomas Pojeta -http://www.pojeta.cz/

Carrot Creative - http://carrotcreative.com/

Nofrks Design Studio - http://www.nofrks.com/

Viget Labs - http://www.teamviget.com/

Danny Blackmann - http://dannyblackman.com/

my kinetic Kreations - http://www.neftysworld.com/

DJ Folio - http://www.djfolio.com/

authenticstyle - http://www.authenticstyle.co.uk/

Trashstars - http://www.trashstars.com/

Designflavr - http://www.designflavr.com/

h4×3d.com - http://www.h4×3d.com/

杂效 phpcli - http://cliframework.com/ Vitamin j Kommunikation - http://www.vitamin-j.de/

Kyan - http://kyanmedia.com/

Green any Site - http://www.greenanysite.com/

Playground Blues - http://www.playgroundblues.com/

CSS moon - http://www.cssmoon.com

Creatividad - http://2d2.es/creatividad/

Dragon Interactive - http://dragoninteractive.com/

Marius Roosendaal - http://www.mariusroosendaal.com/

paramore|red online marketing - http://paramoreredd.com/

Pikaboo - Where Ideas Grow - http://www.pikaboo.be/

Nebonmedia - http://www.nebonmedia.com/

Helldesign - http://helldesign.net/

本文国际来源:http://www.kriesi.at/archives/50-websites-that-make-amazing-use-of-javascript
中文来源:COMSHARP CMS 官方网站


------------------
snigoal@Wang,HUST.Wuhan.China

2009年1月14日星期三

用 CSS3 实现未来的 Web

CSS 3 + HTML 5 是未来的 Web,它们都还没有正式到来,虽然不少浏览器已经开始对它们提供部分支持。本文介绍了 5 个 CSS3 技巧,可以帮你实现未来的 Web,不过,这些技术不应该用在正式的客户项目,它们更适合你的个人博客站点,Web 设计社区,或者不会有客户向你投诉的场合

1. 圆角效果


CSS3 新功能中最常用的一项是圆角效果,标准 HTML 方块对象是90度方角的,CSS3 可以帮你实现圆角。

  1. -moz-border-radius: 20px;
  2. -webkit-border-radius: 20px;
  3. border-radius: 20px;
甚至单个角也可以实现圆角,不过 Mozilla 和 Webkit 的语法稍有不同。
  1. -moz-border-radius-topleft: 20px;
  2. -moz-border-radius-topright: 20px;
  3. -moz-border-radius-bottomleft: 10px;
  4. -moz-border-radius-bottomright: 10px;
  5. -webkit-border-top-rightright-radius: 20px;
  6. -webkit-border-top-left-radius: 20px;
  7. -webkit-border-bottom-left-radius: 10px;
  8. -webkit-border-bottom-rightright-radius: 10px;
所支持的浏览器:Firefox, Safari , Chrome
用例: Twitter.

请参阅:


2. 图形化边界


顾名思义,图形化边界就是允许使用图片作为对象的边界,语法如下:
  1. border: 5px solid #cccccc;
  2. -webkit-border-image: url(/images/border-image.png) 5 repeat;
  3. -moz-border-image: url(/images/border-image.png) 5 repeat;
  4. border-image: url(/images/border-image.png) 5 repeat;
这里,border: 5px 设定了边界的宽度,然后,每个边界的图片定义告诉浏览器,使用图片的多大一部分来充当边界。边界图片还可以针对每一条边单独设置:
  1. border-bottom-rightright-image
  2. border-bottom-image
  3. border-bottom-left-image
  4. border-left-image
  5. border-top-left-image
  6. border-top-image
  7. border-top-rightright-image
  8. border-right-image
支持的浏览器: Firefox 3.1, Safari , Chrome.
用例: Blog.SpoonGraphics.

请参考:

3. 块阴影与文字阴影

阴影效果曾让 Web 设计师既爱又恨,现在,有了 CSS3,你不再需要 Photoshop,已经有网站在使用这个功能了,如 24 Ways website.
  1. -webkit-box-shadow: 10px 10px 25px #ccc;
  2. -moz-box-shadow: 10px 10px 25px #ccc;
  3. box-shadow: 10px 10px 25px #ccc;
前两个属性设置阴影的 X / Y 位移,这里分别是 10px,第3个属性定义阴影的虚化程度,最后一个设置阴影的颜色。文字阴影也可以这样设置:
  1. text-shadow: 2px 2px 5px #ccc;
支持的浏览器:Firefox 3.1, Safari, Chrome (只支持 Box 阴影) ,Opera (只支持文字阴影).前3个数字表示红绿蓝三色的值,最后一个值代表透明度,另外,我们还可以使用 opacity 实现透明度(目前的灯箱效果多使用该技巧 - 译者)

用例: 24 Ways.

请参考:

4. 使用 RGBA 实现透明效果



目前,Web 设计中的透明效果主要靠 PNG 图片实现(但在 IE 浏览器支持得并不好 - 译者),在 CSS3,可以直接实现透明效果。
  1. rgba(200, 54, 54, 0.5);
  2. background: rgba(200, 54, 54, 0.5);
  3. color: rgba(200, 54, 54, 0.5);
  1. color: #000;
  2. opacity: 0.5;
支持的浏览器: Firefox, Safari, Chrome, Opera (opacity) 以及 IE7 (opacity, with fixes).
用例: 24 Ways (RGBA).

请参考:

5. 使用 @Font-Face 实现定制字体



Web 设计中有几种字体是比较安全的,如 Arial,Helvetica, Verdana, Georgia, Comic Sans (中文的,一般来说宋体是唯一安全的 - 译者),现在,使用 CSS3 的 @font-face 可以自己指定字体,不过因为牵扯到版权问题,实际能用的字体也是有限的 (另外,体积庞大的中文字体也是一个不好解决的问题 - 译者)。

语法如下:
  1. @font-face {
  2. font-family:'Anivers';
  3. src: url('/images/Anivers.otf') format('opentype');
  4. }
支持的浏览器: Firefox 3.1, Safari, Opera 10 and IE7 (需要一番周折,如果你不怕麻烦,可以在 IE 实现这个功能,请参考: make font-face work in IE )

用例: TapTapTap.

请参阅:

虽然 CSS3 尚在开发中,上面提到的这些功能已经可以在部分浏览器中使用了,尤其是 Safari。不幸的是,Safari 并非主流浏览器。

Firefox 目前拥有大量用户基础,另外,即将推出的 Firefox 3.1 支持不少 CSS3 效果,因为 Firefox 用户的升级积极性很高,因此,会有不少用户可以提前体验 CSS3 的新功能。

Google Chrome 今年刚刚发布,它基于 Webkit 引擎,因此和 Safari 很相似,因为 Safari 主要用于 Mac 市场,Chrome 可以正好弥补 Windows 市场的空缺。

根据统计数据,2008年11月止,44.2% 的用户使用 Firefox, 3.1% 使用 Chrome, 2.7% 使用 Safari,意味着 CSS3 的部分功能已经可以支持近半 Internet 用户,而在 Web 设计圈子,这个比例可能更高,大约有 73.6% (Blog.SpoonGraphics 提供的数据)

6. 负面因素
上面讲述的这些 CSS3 功能会给你的网站带来出色的效果,但仍有一些负面的因素必须考虑:
  • Internet Explorer: 46% 的 Internet 无法看到这些效果,因此不要将这些东西用于重要的设计。同时保证,在这些效果不起作用的地方,有替代设计可用。
  • CSS 验证问题: 这些 CSS3 功能并非最终版本,目前不同的浏览器使用不同标签实现这些功能,可能为你的 Style Sheet 带来验证上的问题。
  • 臃肿代码: 因为不同浏览器要使用不同定义语法,最终将导致你的 CSS 代码十分臃肿。
  • 不当的使用: 对这些效果的不当使用,可能带来一些不良后果,阴影效果尤其如此。

------------------
snigoal@Wang,HUST.Wuhan.China

VISIT COUNT