“Embrace in Love and Dream” for 2008 Olympics

2008年04月16号

[MEDIA=18]

Stand next to me
I want to see you in this place
You are everywhere I look
As the light falls all around your face

你紧拉我的手 (Ni jing la wo de shou)
我们相守已很久 (Wo men xiang shou yi hen jiu)
时间在歌唱,朋友 (Shi jian zai ge chang, peng you)

请永远留在此刻 (Qing yong yuan liu zai ci ke)
让我们拥抱爱的梦想 (Rang wo men yong bao ai de meng xiang)

这里有希望 (Zhe li you xi wang)
这里圣火亮 (Zhe li sheng huo liang)
这里是我们世代的友谊故乡 (Zhe li shi wo men shi dai de you yi gu xiang)

You are me
And I am you

同一个世界 (Tong yi ge shi jie)
同一个梦想 (Tong yi ge meng xiang)

My name is hope
My name is love

同一个世界 (Tong yi ge shi jie)
同一个梦想 (Tong yi ge meng xiang)

你在我身旁 (Ni zai wo shen pang)
我们共享梦的时光 (Wo men gong xiang meng de shi guang)
今天直到永远 (Jin tian zhi dao yong yuan)

请永远留在此刻 (Qing yong yuan liu zai ci ke)
让我们拥抱爱的梦想 (Rang wo men yong bao ai de meng xiang)

When there is hope
There is a chance
That all our dreams will come to pass

You are me
And I am you

同一个世界 (Tong yi ge shi jie)
同一个梦想 (Tong yi ge meng xiang)

When there is hope
There is a chance

That all our dreams will come to pass

When there is hope
When there is love

And then we can open our arms
And fly
And we fly

怎样使用sIFR——sIFR技术初探

2008年04月16号

什么是sIFR?

“sIFR表示scalable Inman Flash Replacement,是一种在web上准确发布自定义排版的技术。这种技术的实现方法是,当页面下载时,在一个指定的元素中用Flash渲染的文字来 代替一些文本。理解下面这点是很重要的,这个元素并不是被Flash完全替换,文本仍在元素内,这个元素仍可以像通常那样被样式化或者被定位。”——详情 参考[url=http://www.w3cn.org/article/translate/2005/117.html]网页设计师[/url]

在这篇文章里你将学会如何在你的网站上使用sIFR。

设计你的站点
首先用常规方法设计你的站点,并且保证你的标题用CSS定义好了,这是为了保险,如果访问者没有flash播放器或者浏览器不能执行javascript的话,sifr就失效了,浏览者还是可以看到文字文本的标题的。(国外设计师就是考虑周到)

你应该用sIFR来做什么?

sIFR是冲着为“标题”服务而来的。当然你用sIFR取代其他元素也无可厚非,比如“段落paragraphs”或者“列表什么的list items”,但是不推荐你这么做!请同样不要用sIFR取代链接:浏览器对flash中的链接与常规html中的链接是区别对待的,因此如果你用 sIFR取代链接会使网页可用性受到损伤。

先看我做的一个最简单的例子:
代码如下:

复制内容到剪贴板

代码:
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″ />
<title>sIFR简单示例</title>
<SCRIPT src=”http://pqq.sundns.com/sifr/sifr.js” type=text/javascript></SCRIPT>
<style type=”text/css”>
<!–
/*替换html标签的css*/
.sIFR-replaced {
visibility: visible!important;
}
/*替换文本的flash*/
.sIFR-flash {
visibility: visible!important;
}
/*放在FLASH中的文本*/
SPAN.sIFR-alternate {
display: none;
}
/*定义FLASH中的文本*/
.sIFR-hasFlash H1 {
font-size: 50px;
}
.sIFR-hasFlash H2 {
font-size: 30px;
}
.sIFR-hasFlash H3 {
font-size: 30px;
}
–>
</style>
</head>
<body>
<h1>h1:www.blueidea.com</h1>
<h2>h2:pengqaqa.bokee.com</h2>
<h3>h3:pengqaqa.bokee.com</h3>
<SCRIPT language=Javascript type=text/javascript>
if(typeof sIFR == “function”){
//首选的语法格式
sIFR.replaceElement(named({sSelector:”h1″, sFlashSrc:”http://pqq.sundns.com/sifr/hancock.swf”, sColor:”#990000″, sLinkColor:null, sBgColor:null, sHoverColor:null, nPaddingTop:0, nPaddingLeft:0, sFlashVars:”textalign=left&offsetTop=10″,sWmode:”transparent”}));
//缩写的语法格式
sIFR.replaceElement(”h2″, “http://pqq.sundns.com/sifr/ITCAvaGarMM.swf”, “#000000″, null, null, null, 0, 0, 0, 0);
sIFR.replaceElement(”h3″, “http://pqq.sundns.com/sifr/Times New Roman.swf”, “#000000″, null, null, null, 0, 0, 0, 0);
};
</SCRIPT>
</body>
</html>

解释一下:
1、

复制内容到剪贴板

代码:

<SCRIPT src=”http://pqq.sundns.com/sifr/sifr.js” type=text/javascript></SCRIPT>

调用一个外部的JS文件,这个JS文件已经有现成的。至于这个JS文件里面讲什么,我也看不懂~~

2、

复制内容到剪贴板

代码:

<style type=”text/css”>
<!–
/*替换html标签的css*/
.sIFR-replaced {
visibility: visible!important;
}
/*替换文本的flash*/
.sIFR-flash {
visibility: visible!important;
}
/*放在FLASH中的文本*/
SPAN.sIFR-alternate {
display: none;
}
/*定义FLASH中的文本*/
.sIFR-hasFlash H1 {
font-size: 50px;
}
.sIFR-hasFlash H2 {
font-size: 30px;
}
.sIFR-hasFlash H3 {
font-size: 30px;
}
–>
</style>

由于元素中的文本会被flash中的文本所替代,所以用上面的css定义flash中的文本。为什么那样定义?尤其是那几个visibility: visible!important;我还不是很明白~~

3、当当当!sifr使用的重点!看看下面这段Javascript代码:

复制内容到剪贴板

代码:

<SCRIPT language=Javascript type=text/javascript>
if(typeof sIFR == “function”){
//首选的语法格式
sIFR.replaceElement(named({sSelector:”h1″, sFlashSrc:”http://pqq.sundns.com/sifr/hancock.swf”, sColor:”#990000″, sLinkColor:null, sBgColor:null, sHoverColor:null, nPaddingTop:0, nPaddingLeft:0, sFlashVars:”textalign=left&offsetTop=10″,sWmode:”transparent”}));
//缩写的语法格式
sIFR.replaceElement(”h2″, “http://pqq.sundns.com/sifr/ITCAvaGarMM.swf”, “#000000″, null, null, null, 0, 0, 0, 0);
sIFR.replaceElement(”h3″, “http://pqq.sundns.com/sifr/Times New Roman.swf”, “#000000″, null, null, null, 0, 0, 0, 0);
};
</SCRIPT>

sSelector: css选择器,选择你所要用sIFR替换的元素,其中的h1当然也可以是ul或ul li或.header或#header或#header ul

sFlashSrc: flash的地址,绝对或者相对地址。这个flash的实际上起字体的作用,字体包含在这个flash中。如何产生这个flash字体在后面介绍。

sColor:”#990000″, sLinkColor:null, sBgColor:null, sHoverColor:null 依次flash中的字体颜色,有链接的字体颜色,背景色,鼠标滑过的颜色,和css中的color,a:link,background-color, a:hover是一样的。没有的话,用null代替或者省略这句不写。

nPaddingTop:0, nPaddingLeft:0,npaddingright:0,npaddingbottom 和css中的padding-top,padding-right,padding-bottom,padding-left一样的。这里的单位是PX, 但是不要把“px”写上去,值为0的话可以省去不写。

sFlashVars: flash中的其他变量,这些变量用&隔开。textalign=left文字居左;offsetTop我认为相当于css中的margin-top,同理有offsetright、offsetbottom、offsetright。

sWmode:选择flash是否透明,默认不透明,使用“transparent”透明(文章中不建议使用透明,说是在Opera 7.x、linux、Mozilla早期版本不支持,国外设计师考虑得太周到了,我在IE6和FF1.X下测试都支持,用用也无妨。)

还有一个sCase: “upper”这个搞不明白是做虾米的。

OK,大家对sIFR的使用有个大致了解了吧。

下面说一下如何产生那个包含字体的swf文件:

1、下载一个压缩包:sIFR2.0.1.zip,地址:http://www.mikeindustries.com/sifr(里面有些东西是别人做好的,直接用就OK了,厉害点的完全可以自己写)

2、解压出来,两个文件夹:sIFR 2.0.1和__MACOSX,__MACOSX估计给苹果用的咱们用windows的不用理他,进入sIFR 2.0.1,看看里面有什么~~sifr.fla(flash源文件)和customize_me.as、dont_customize_me.as (Flash Actionscript文件):这三个文件是用来输出swf文件用的,文件夹内的tradegothic.swf和vandenkeere.swf就是 现成的例子。你也可以把那个三个文件复制出来使用,但确保这三个文件在同一个目录!

3、用flash打开sifr.fla,选择“选择工具”在空白出双击,出现“do not remove this text”这几个字,在属性面板中自己喜欢的字体,然后发布(shift+f12),然后在目录里就可以看到产生一个sifr.swf文件,为了方便辨认 把它重命名为其字体的名称,如“Arial.swf”。

sIFR2.0.1.zip里包含sifr.js文件。

这里还有一个flash的Macromedia的官方对这种技术的介绍 ,是E文的,在iLoug’s bLog看到的。不听声音看画面也能搞清楚了。

但是很遗憾,我还没发现如何使sIFR支持中文:(

探索CSS实现三行三列等高布局

2008年04月16号

第一步:创建一个结构
xhtml开始于header, footer, and container

<div id="header"></div> <div id="container"></div> <div id="footer"></div>

CSS先定义container,给将要加入的sideleft,和sideright留下个位置

#container { padding-left: 200px;   /* LC width */ padding-right: 150px;  /* RC width */

}

我们的布局现在看起来是这样的

图1——创建框架

第二步:增加内容元素
在第一步基础上增加内容元素

<div id="header"></div> 

<div id="container"><div id="center" class="column"></div>

 <div id="left" class="column"></div>

 <div id="right" class="column"></div>

</div> 

<div id="footer"></div>

然后分别定义widths和float 让元素排列在一条线上,还有清除footer的浮动对齐

#container .column {

 float: left;}

#center {

 width: 100%;

}

#left {

 width: 200px;  /* LC width */

}

#right {

 width: 150px;  /* RC width */

}

#footer {

 clear: both;

}

这里给center元素定义了100% width,让它占满montainer的可用空间,现在的布局变成了这样

9bf4e68ba79c06c3fd1f10c5jpg.gif

图2:增加内容元素

第三步:把left放到正确的位置
要把left放到正确的位置,我们分两步
1.让left和center在同一水平线

#left {

 width: 200px;        /* LC width */ margin-left: -100%;

}

看看效果

cd3668d72b9139cda144dfb6jpg.gif

图3——left移动完成一半

2.用相对定位,把left继续移动到正确的位置

#container .columns {

 float: left; position: relative;

}

#left {

width: 200px;        /* LC width */

 margin-left: -100%;

 right: 200px;        /* LC width */

}

上一步,left还需要左移200px,就可以了,所以就采用相对定位,将他再向左推200px,就达到了想要的效果。让left距离他右边元素center 200px后,行了,left终于到自己位置上了。

a4fdb3cae97fa456f21fe7b0jpg.gif

图4——left到了自己的位置

第四步:让right也到自己的正确的位置上

从上图看,我们只需要把right推倒container的padding-right里面,看看怎么做

#right { width: 150px;          /* RC width */ margin-right: -150px;  /* RC width */

}

cad796d320aabfcfa9ec9ac2jpg.gif

图5——right到了自己正确的位置

第五步:解决bug让布局更完美
如果浏览器类型变更,center就变得比left小了,完美的布局就被打破,我们给body 设置一个min-width
来解决这个问题,因为IE不支持他,所以不会有负面影响,调整如下

body { min-width: 550px;  /* 2x LC width + RC width */}

这时在IE6(完全打开的窗口)下,left元素距离左侧又太远了,再调整

* html #left { left: 150px;  /* RC width */}

这些大小调整是根据上面已经定义的宽度来的,你调整的时候也要根据自己的实际情况。
现在增加padding
内容文字贴着容器的边,相信你看得时候,不会很舒服,调整一下

#left { width: 180px;        /* LC fullwidth - padding */ padding: 0 10px;

 right: 200px;        /* LC fullwidth */

 margin-left: -100%;

}

当然不能只增加left就算完事,要给一系列元素都必须加上,也要调整增加padding,带来的新的bug,调整如下

body { min-width: 630px;      /* 2x (LC fullwidth + CC padding) + RC fullwidth */

}

#container {

 padding-left: 200px;   /* LC fullwidth */

 padding-right: 190px;  /* RC fullwidth + CC padding */

}

#container .column {

 position: relative;

 float: left;

}

#center {

 padding: 10px 20px;    /* CC padding */

 width: 100%;

}

#left {

 width: 180px;          /* LC width */

 padding: 0 10px;       /* LC padding */

 right: 240px;          /* LC fullwidth + CC padding */

 margin-left: -100%;

}

#right {

 width: 130px;          /* RC width */ padding: 0 10px;       /* RC padding */

 margin-right: -190px;  /* RC fullwidth + CC padding */

}

#footer {

 clear: both;

} 



/*** IE Fix ***/

* html #left {

 left: 150px;           /* RC fullwidth */

}

header和footer的padding可以随意增加,这里就不提了,还有长度单位用em更具亲和力(em可以让用户使用浏览器来调整自己需要的字体大小)
但是不能混合使用,选择em和px的时候明智些,察看效果
翻译自:In Search of the Holy Grail
原文:http://www.alistapart.com/articles/holygrail
这个翻译的页面版权归greengnn所有,转载请注明出处

张靓颖献唱《功夫之王》片尾曲《Heroes》MV曝光

2008年04月16号

[MEDIA=4]

无锡二泉工作公益活动

2008年04月15号

07.12.30号,雪停了,地上积了很多雪,温度也降到0度以下.地面都结成了冰,非常的滑,给市民出行带来的不便,在这样的情况下,2泉网络公益部的支援者们组织了上街铲雪的活动,得到了过路行人的一致赞赏,同时也吸引了一些普通市民和城管一起参与了我们的行列.我们的活动还专门受到了第一看点的关注,来现场跟拍及采访.此活动举办的非常成功.以下发活动回顾照片,希望大家跟我们一起感受这份冬天里的温暖!

a6fa7fd5dab780cb51da4b93.jpg

0560b9c42802dcc439db4992.jpg

3ce0941f0dc870fae0fe0b9b2.jpg

78ac68f4227896e07609d797.jpg

59988_200813110211045155.jpg

59988_200813110204593447.jpg

59988_200813110175281221.jpg

59988_200813110234343200.jpg

30余个适用于Firefox的书签与搜索工具

2008年04月15号

ffaddons.PNG

如果不小心,那书签和搜索足够让你失去对 FireFox 的控制。而这里列举了30余个适用于 FireFox 的书签和搜索工具,这些可以帮助你很好的掌控 Firefox。书签

Smart Bookmarks Bar

2 Pane Bookmark - 将书签分割为两部分,顶部显示文件夹,底部显示该文件夹的内容Annotea Ubimarks - 将 Annotea 社会书签及文章添加到FireFox中

Bookmark Duplicate Detector - 检查并清除重复的书签

Bookmark Sync and Sort - 同步并备份书签

Bookmark Tags - 利用标签代替文件夹存储书签

Boox - 个性书签、输出为网页、强化的搜索功能

del.icio.us Bookmarks - 整合 del.icio.us 书签到浏览器

Enhanced Bookmark Search - 强化的书签搜索

Firefox Google Bookmarks - 连接到 Google bookmarks 并将 FireFox 书签提交到 Google

Flat Bookmark Editing - 自由的书签编辑

Foxmarks Bookmark Synchronizer - 备份并同步书签

gBrain - 将浏览器历史保存到 Google 书签中

GMarks - 便于导入/导出 Google 书签

OnlineBookmarkManager Synchronizer - 同步管理书签

Smart Bookmarks Bar - 鼠标悬停时链接图标及文字都会变大

Yoono - 用户可以推荐站点并且允许用户同步书签

搜索

BetterSearch

Add to Search Bar - 将站点搜索功能添加到FireFoxBetterSearch - 为搜索邀请添加缩略图功能:Google、MSN Search、Yahoo、A9、Answers.com、AllTheWeb、 Dogpile.com、del.icio.us 以及 Simpy.com

ConQuery - 上下文搜索引擎

Context Search - 每次选择特定搜索引擎

Cooliris Previews - 预览搜索结果

CustomizeGoogle - 自定义 Google 搜索页面

Googlepedia - 同时搜索 Google 和 Wikipedia

GoogleHotKeys - 使用关键字命令导航 Google 搜索结果

GooglePreview - 增加缩略图效果

Organize Search Engines - 将书签分开管理

Search Images on Google With a Single Click - 高亮关键字、右键弹出

SearchLoad Options - 协助管理搜索结果

searchOnTab - 可选择结果在何处打开

SmartSearch - 管理关键字、右键弹出搜索结果

TrackMeNot - 掩盖真实的搜索历史记录

Trexy TrailBar - 保持你的搜索记录

实用SQL语句收集

2008年04月15号

说明:复制表(只复制结构,源表名:a 新表名:b)
SQL: select * into b from a where 1<>1

说明:拷贝表(拷贝数据,源表名:a 目标表名:b)
SQL: insert into b(a, b, c) select d,e,f from b;

说明:显示文章、提交人和最后回复时间
SQL: select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b

说明:外连接查询(表名1:a 表名2:b)
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c

说明:日程安排提前五分钟提醒
SQL: select * from 日程安排 where datediff(’minute’,f开始时间,getdate())>5

说明:两张关联表,删除主表中已经在副表中没有的信息
SQL:
delete from info where not exists ( select * from infobz where info.infid=infobz.infid )

说明:–
SQL:
SELECT A.NUM, A.NAME, B.UPD_DATE, B.PREV_UPD_DATE FROM TABLE1,(SELECT X.NUM, X.UPD_DATE, Y.UPD_DATE PREV_UPD_DATE FROM (SELECT NUM, UPD_DATE, INBOUND_QTY, STOCK_ONHAND FROM TABLE2 WHERE TO_CHAR(UPD_DATE,’YYYY/MM’) = TO_CHAR(SYSDATE, ‘YYYY/MM’)) X, (SELECT NUM, UPD_DATE, STOCK_ONHAND FROM TABLE2 WHERE TO_CHAR(UPD_DATE,’YYYY/MM’) = TO_CHAR(TO_DATE(TO_CHAR(SYSDATE, ‘YYYY/MM’) ¦¦ ‘/01′,’YYYY/MM/DD’) - 1, ‘YYYY/MM’) ) Y, WHERE X.NUM = Y.NUM (+)AND X.INBOUND_QTY + NVL(Y.STOCK_ONHAND,0) <> X.STOCK_ONHAND ) B WHERE A.NUM = B.NUM

说明:–
SQL:
select * from studentinfo where not exists(select * from student where studentinfo.id=student.id) and 系名称=’”&strdepartmentname&”‘ and 专业名称=’”&strprofessionname&”‘ order by 性别,生源地,高考总成绩

说明:
从数据库中去一年的各单位电话费统计(电话费定额贺电化肥清单两个表来源)
SQL:
SELECT a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, ‘yyyy’) AS telyear, SUM(decode(TO_CHAR(a.telfeedate, ‘mm’), ‘01′, a.factration)) AS JAN, SUM(decode(TO_CHAR(a.telfeedate, ‘mm’), ‘02′, a.factration)) AS FRI, SUM(decode(TO_CHAR(a.telfeedate, ‘mm’), ‘03′, a.factration)) AS MAR, SUM(decode(TO_CHAR(a.telfeedate, ‘mm’), ‘04′, a.factration)) AS APR, SUM(decode(TO_CHAR(a.telfeedate, ‘mm’), ‘05′, a.factration)) AS MAY, SUM(decode(TO_CHAR(a.telfeedate, ‘mm’), ‘06′, a.factration)) AS JUE,SUM(decode(TO_CHAR(a.telfeedate, ‘mm’), ‘07′, a.factration)) AS JUL, SUM(decode(TO_CHAR(a.telfeedate, ‘mm’), ‘08′, a.factration)) AS AGU, SUM(decode(TO_CHAR(a.telfeedate, ‘mm’), ‘09′, a.factration)) AS SEP, SUM(decode(TO_CHAR(a.telfeedate, ‘mm’), ‘10′, a.factration)) AS OCT, SUM(decode(TO_CHAR(a.telfeedate, ‘mm’), ‘11′, a.factration)) AS NOV,SUM(decode(TO_CHAR(a.telfeedate, ‘mm’), ‘12′, a.factration)) AS DEC FROM (SELECT a.userper, a.tel, a.standfee, b.telfeedate, b.factration FROM TELFEESTAND a, TELFEE b WHERE a.tel = b.telfax) a GROUP BY a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, ‘yyyy’)

说明:四表联查问题:
SQL: select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where …..

说明:得到表中最小的未使用的ID号
SQL:
SELECT (CASE WHEN EXISTS(SELECT * FROM Handle b WHERE b.HandleID = 1) THEN MIN(HandleID) + 1 ELSE 1 END) as HandleID FROM Handle WHERE NOT HandleID IN (SELECT a.HandleID - 1 FROM Handle a)

1.按姓氏笔画排序:
Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as

2.数据库加密:
select encrypt(’原始密码’)
select pwdencrypt(’原始密码’)
select pwdcompare(’原始密码’,'加密后密码’) = 1–相同;否则不相同 encrypt(’原始密码’)
select pwdencrypt(’原始密码’)
select pwdcompare(’原始密码’,'加密后密码’) = 1–相同;否则不相同

3.取回表中字段:
declare @list varchar(1000),@sql nvarchar(1000)
select @list=@list+’,'+b.name from sysobjects a,syscolumns b where a.id=b.id and a.name=’表A’
set @sql=’select ‘+right(@list,len(@list)-1)+’ from 表A’
exec (@sql)

4.查看硬盘分区:
EXEC master..xp_fixeddrives

5.比较A,B表是否相等:
if (select checksum_agg(binary_checksum(*)) from A)
=
(select checksum_agg(binary_checksum(*)) from B)
print ‘相等’
else
print ‘不相等’

6.杀掉所有的事件探察器进程:
DECLARE hcforeach CURSOR GLOBAL FOR SELECT ‘kill ‘+RTRIM(spid) FROM master.dbo.sysprocesses
WHERE program_name IN(’SQL profiler’,N’SQL 事件探查器’)
EXEC sp_msforeach_worker ‘?’

7.记录搜索:
开头到N条记录
Select Top N * From 表
——————————-
N到M条记录(要有主索引ID)
Select Top M-N * From 表 Where ID in (Select Top M ID From 表) Order by ID Desc
———————————-
N到结尾记录
Select Top N * From 表 Order by ID Desc

8.如何修改数据库的名称:
sp_renamedb ‘old_name’, ‘new_name’

9:获取当前数据库中的所有用户表
select Name from sysobjects where xtype=’u’ and status>=0

10:获取某一个表的所有字段
select name from syscolumns where id=object_id(’表名’)

11:查看与某一个表相关的视图、存储过程、函数
select a.* from sysobjects a, syscomments b where a.id = b.id and b.text like ‘%表名%’

12:查看当前数据库中所有存储过程
select name as 存储过程名称 from sysobjects where xtype=’P’

13:查询用户创建的所有数据库
select * from master..sysdatabases D where sid not in(select sid from master..syslogins where name=’sa’)
或者
select dbid, name AS DB_NAME from master..sysdatabases where sid <> 0×01

14:查询某一个表的字段和数据类型
select column_name,data_type from information_schema.columns
where table_name = ‘表名’

[n].[标题]:
Select * From TableName Order By CustomerName

[n].[标题]:
Select * From TableName Order By CustomerName

什么是Web2.0 有什么特点

2008年04月15号

 

 

  • 什么是Web2.0 有什么特点
  • 什么是Web2.0 Web2.0是以Flickr、43Things.com等网站为代表,以Blog、TAG、SNS、RSS、wiki等社会软件的应用为核心,依据六度分隔、xml、ajax等新理论和技术实现的互联网新一代模式。”

    Blog——博客/网志:Blog的全名应该是Web log,后来缩写为Blog。Blog是一个易于使用的网站,您可以在其中迅速发布想法、与他人交流以及从事其他活动。所有这一切都是免费的。

    RSS——站点摘要:RSS是站点用来和其他站点之间共享内容的一种简易方式(也叫聚合内容)的技术。最初源自浏览器“新闻频道”的技术,现在通常被用于新闻和其他按顺序排列的网站,例如Blog。

    WIKI——百科全书:Wiki–一种多人协作的写作工具。Wiki站点可以有多人(甚至任何访问者)维护,每个人都可以发表自己的意见,或者对共同的主题进行扩展或者探讨。

    Wiki指一种超文本系统。这种超文本系统支持面向社群的协作式写作,同时也包括一组支持这种写作的辅助工具。

    网摘:“网摘”又名“网页书签”,起源于一家叫做Del.icio.us的美国网站自2003年开始提供的一项叫做“社会化书签”(Social Bookmarks)的网络服务,网友们称之为“美味书签”(Delicious在英文中的意思就是“美味的;有趣的”)。

    SNS——社会网络:Social Network Sofwaret,社会性网络软件,依据六度理论,以认识朋友的朋友为基础,扩展自己的人脉。

    P2P ——对等联网:P2P是peer-to-peer的缩写,peer在英语里有“(地位、能力等)同等者”、“同事”和“伙伴”等意义。这样一来,P2P也 就可以理解为“伙伴对伙伴”、“点对点”的意思,或称为对等联网。目前人们认为其在加强网络上人的交流、文件交换、分布计算等方面大有前途。

    IM——即时通讯:即时通讯(Instant Messenger,简称IM)软件可以说是目前我国上网用户使用率最高的软件。聊天一直是网民们上网的主要活动之一,网上聊天的主要工具已经从初期的聊天室、论坛变为以MSN、QQ为代表的即时通讯软件。

    RSS 为Really Simple Syndication(简易供稿)的缩写,是某一站点用来和其它站点之间共享内容的一种简易方式,也叫聚合内容。网络用户可以在客户端借助于支持RSS 的新闻聚合工具软件(例如SharpReader NewzCrawler、FeedDemon RSSReader),在不打开网站内容页面的情况下阅读支持RSS输出的网站内容。可见,网站提供RSS输出,有利于让用户发现网站内容的更新。在高速 高质高效成为主流呼声的互联网时代,RSS无疑推动了网上信息的传播,提出了另一种看世界的方式。

    RSS,原意是把网站内容如标题、链接、部分内文甚至全文转换为可延伸标示语言(XML:eXtensible Markup Language)的格式,以向其它网站供稿,使用者可以用一般的浏览器观看,也可以用特殊的“阅读器”软件来阅读。

    ———————————————————————————————–

    历史很重要。对一个技术的学习也应当从历史出发,通过其在时间形成历史的流变,得以知晓现状,甚至能够预知未来。

    那Web1.0是什么呢?

    他们说,记得静态HTML的WWW时代么?

    (那个时代的WWW应用、人们的Web体验、对社会的影响如何?)

    那么动态HTML和静态HTML下的Web相比,是多少版本?1.5?对了,他们是真这么叫的。

    (在效果和影响上,与1.0相比,扩展和加深多少?)

    要呈现的数据存储在数据库中,通过Web服务端的程序,应用户的请求,取出数据,加上事先设计的模板,动态的生成Html代码,发送到用户的浏览器那里。

    他是1.0系列,应为用户在浏览器中所见和Web1.0一样,它有0.5的升级,因为数据不是事先制作并发布,而是动态生成,和用户的需要交互生成。

    那好,再加0.5,到Web2.0,变化是在哪里呢?

    (看到了正在崛起的和改变的,会继续朝着什么方向改变互联网和社会呢?)

    更新:关于各个版本的差别,看看亚马逊的例子。

    事情没有那么幸运,Web2.0并不是一个具体的事物,而是一个阶段,是促成这个阶段的各种技术和相关的产品服务的一个称呼。所以,我们无法说,Web2.0是什么,但是可以说,那些是Web2.0。

    WikiPedia的Web2.0条目下列出了这些条件:

    *CSS和语义相关的XHTML标记

    *AJAX技术

    *SyndicationofdatainRSS/ATOM

    *AggregationofRSS/ATOMdata

    *简洁而有意义的URLs

    *支持发布为weblog

    *RESTian(preferred)或者XMLWebserviceAPIs

    *一些社会性网络元素

    必须具备的要素有:

    *网站应该能够让用户把数据在网站系统内外倒腾。

    *用户在网站系统内拥有自己的数据

    *完全基于Web,所有的功能都能透过浏览器完成。

    (以上内容引用自英文版维基百科)

    虽然这只是一家之言,不过,对于其中谈到的几个要素,大家还是公认的。

    -基于RSS/ATOM/RDF/FOAF等XML数据的同步、聚合和迁移。

    数据不再和页面和网站混粘在一起,它独立了,它跟着用户走。这是Web2.0的很重要特征。这也是为什么Blog是Web2.0的代表的原因。在网志上,常主角的是相互独立的一则则的网志。

    独立,然后有物理表现。现在,就能让他们活跃起来。透过对XML数据的处理,这些内容能被自由的组合,被各种应用程序,不论是Web程序还是桌面程序等呈现和处理。

    当然,最重要的是背后的人。

    -社会性因素。

    内容跟着人走,内容又能够被用户自由的组合,也就是说,用户能够自由的借助内容媒介,创建起一个个的社群,发生各种社会性的(网络)行为。

    此外还有标签以及建立在开放标签系统之上的Folksonomy。

    -第三个公认的因素是开放API,

    这个技术性稍强些,得另花时间研习,可以先看看例子:amazon、flickr、googlemap等。

    从Web应用的产品/服务生产者角度来说,该如何创建Web2.0的产品呢?

    重要的是要抓住这么几点,一个是微内容(这里有定义),一个是用户个体。除了这两个最基本的之外,还可以考虑社群内的分享以及提供API。

    (cnbruce收藏的一些API内容:http://www.cnbruce.com/blog/showlog.asp?cat_id=34&log_id=709

    微 内容:英文是microcontent。用户所生产的任何数据都算是微内容,比如一则网志,评论,图片,收藏的书签,喜好的音乐列表、想要做的事情,想要 去的地方、新的朋友等等。这些微内容,充斥着我们的生活、工作和学习,它的数量、重要性,还有我们对它的依赖,并不亚于那些道貌岸然、西装革履的正统文 章、论文、书籍。

    对微内容的重新发现和利用,是互联网所开创的平等、民主、自由风气的自然衍生,也是互联网相关技术消减信息管理成本之后的一个成果。

    我们每天都生产众多的微内容,也消费着同样多的微内容。对于Web2.0来说,如何帮助用户管理、维护、存储、分享、转移微内容,就成了关键。

    用 户个体。对于Web1.0的典型产品/服务来说,用户没有具体的面貌、个性,它只是一个模糊的群体的代名词而已。但是对于Web2.0的产品和服务来说, 用户是个实实在在的人。Web2.0所服务的,是具体的人,而不是一个如同幽灵般的概念。并且,这个人的具体性,会因为服务本身而不断地充实起来。

    如何为这个具体的个体服务,是Web2.0设计的起点。

    因此,一类可以被称作Web2.0的产品/服务将是这样:

    服务于用户个体的微内容的收集、创建、发布、管理、分享、合作、维护等的平台。

    其他的呢?恐怕就设计到好些人提到的,微内容的XML表现;微内容的聚合;微内容的迁移;社会性关系的维护;界面的易用性等等。

    以及是否就是开源、参与、个人价值、草根、合作等等?

    Web2.0是许多方面起头并进又相互牵连的一个新的阶段的到来。因此,不同的人,有着不同的看法。那么,对于Web开发人员来说,Web2.0意味着什么呢?

    他们说Web2.0阶段,Web是一个平台,或者说,Web正在变得可编程,可以执行的Web应用。野心家们设想这个它的终极目标是WebOS。

    Web1.0时候,Web只是一个针对人的阅读的发布平台,Web由一个个的超文本链接而成。现在的趋势发生了变化,Web不仅仅是Html文档的天下,它成了交互的场所。

    Web2.0Conference网站的横幅引用JeffBezos的话说“Web1.0ismakingtheinternetforpeople,web2.0ismakingtheinternetbetterforcomputers”。

    具体来讲,他们说Web成为一个开发环境,借助Web服务提供的编程接口,网站成了软件构件。

    这些,就是WebService的目标吧,信息孤岛通过这些WebService的对话,能够被自由构建成适合不同应用的建筑来。

    一些例子:del.icio.us、flickr、a9、amazon、yahoo、google、msn等提供的编程接口衍生出的各种应用。

    为什么要开放APIs,这涉及到集市中的商业方面的技术策略。当然,还有更深层的原因,那是什么呢?

    这种交互不仅体现在不同的网站服务之间,同时还体现在用户和Web之间在浏览器上的交互。这也是为什么在美味书签的收藏中Web2.0和AJAX如此相关的一个原因。

    在Web页面上使用桌面程序有的那些便利,真的是很享受的事情。这恐怕也是Web可编程的一个方面,Web页面不再是标记和内容混合那样的简单,它就是一个可以编程的地方(是这样理解吧?)

    有 人反对说,AJAX的使用对搜索引擎不友好,只有Web1.0的站长才关心这个事情吧,在Web2.0时候,站长应该关心的是用户参与的便利、用户的自由 度,至于搜索,有RSS/ATOM/RDF等,更本用不着操心,Google不是已经顺应这个趋势,让大家主动提交了么?

    可编程的第三个方面,是否在于Web应用和桌面应用之间的无缝连接趋势的出现?类似这里说的“从工具上,是由互联网浏览器向各类浏览器、rss阅读器等内容发展”

    编程的一个重要目的是对数据的操作,因此,对于网站来说,除了WebService接口之外,最近为简便方式就是将内容以RSS/RDF/ATOM格式,或者有意义的XHTML格式输出,同时实现内容和表现的分离。

    [Web2.0是个历史学的概念,而非是个技术性的概念,它是对Web发展历史断代的成果。对这个概念的梳理,能帮助我更好的把握互联网正在发生的技术与文化。]

    —————————————————————
    中文网志圈谈论的Web2.0内容摘要:

    -“Web2.0 是用来研究现象、发现规律的东西,不是用来招商引资、搭台唱戏的东西。当越来越多的互联网应用采取与用户互动的方式,越来越多的内容是由用户产生,越来越 多的用户参与到互联网创造的过程中的时候,其实它代表了一种新的思潮。在这种思潮之下,一些新的技术开始出现,一些古老技术重新焕发了生机。随便你怎么表 述这样一种现象,但现象本身是实实在在存在的,不管是叫它Web2.0,还是社会化互联网。”[Keso:老冒给Web2.0浇了一桶冷水]

    -“我 觉得最有价值的一个是,web应用的数据格式开始逐渐出现了交换“标准”…这些标准…更加容易被机器自动化处理…能帮助人更好地过滤和定制化 信息。其次,更多的服务将以webservice的形式来提供,…这使得web服务可以被互相集成,从而诞生更多新的服务…人的重要性被提高了。 过去web更多注重在信息提供,而现在的越来越多的应用更加关注人,也就是所谓“社会性”。此外web的可用性改进正在被越来越重视…”[老冒:朝 web2.0泼点冷水]

    -“我认为Webx.x是人们为了区别不同时代Web的发展而使用的,而这些概念也是经过归纳出来的结果。抓 住对方向,如Wikipedia中所提到的朝向互动及社会网络的方向发展,不论应用何种技术,只要能达到目的都是很好的。甚至作为一般的使用者,都可以不 去理会Webx.x的讨论,因为我们都已经在使用这些技术或网站了。”[图书馆观点:Web2.0]

    -“RSS逐渐成为在线内容提供 服务的标准发行平台。Blog以及user-generated内容的兴起。MyYahoo提供的RSS整合型服务。同时提出了值得密切关注的一些发展中 领域,其中包括搜索技术,个性化,User-Generated内容(包括blog,评论,图像和声音),音乐,短视频和Accessibility(易 访问性)”[Owen:MaryMeeker新作-关于DigitalWorld的发展报告的摘取]

    -“我们谈论的Web2.0带给 我们的是一种可读写的网络,这种可读写的网络表现于用户是一种双通道的交流模式,也就是说网页与用户之间的互动关系由传统的“Push”模式演变成双向交 流的“Two-WayCommunication”的模式。而对于Web服务的开发者来说,Web2.0带来的理念是服务的亲和力,可操作性,用户体验以 及可用性。”[Owen:BaCKpACK-体验可读写的Web服务]

    -“web2.0是一种可以被分发的信息概述,web文档被格式化成了web数据。我们不会再看到不同旧地信息,现在我们所注意到是一种聚合、再混合内容的工具。”[songzhen:也说Web2.0的翻译]

    -“从 这些应用中可以看到:如果基于传统的HTML,同样的功能实现将变得非常复杂和不稳定,数据的再生产和交换成本是很高的。所以:RSS这个标准最终要的贡 献就是使得互联网的大部分网站变得可编程:类似的例子还有Blog中的:TrackBackPing等机制,这些机制都是依赖XML/RPC实现的。当初 为Lucene设计一个RSS/XML的接口也是为了这个初衷,它使得全文检索服务可以轻松的嵌入到各种应用中,通过关键词将各种内容之间实现更丰富的关 联(WellReferenced)。”[车东:RSS,简单协议使得互联网可编程]

    -“聚合的可能性以及如何更好地聚合(通常来 说,更好的聚合应该基于个人知识管理和人际关系管理)很显然应该成为新一代或者说web2.0架构的核心之一。还有,你会重新发现,恰好是分散带动了聚 合,聚合促进了分散,通过聚合的思维,互联网的网络状变得越来越丰富和密集,web2.0就变得越来越有趣味,它将web1.0时代的硕大节点即门户网站 不断消解,去努力创造一个更加和谐的自然网络图谱。”[Horse:rss,聚合的无数可能]

    -“新的web2.0网站都依赖于用户参与、用户主导、用户建设”。[Horse:Web2.0这个词]

    -Keso:Web1.0与Web2.0的区别

    -“表 面上看,Bloglines取代了门户,成为一个新的中心,但这里有一个重大的区别。门户是只读的,它带有某种锁定的性质。你可以离开门户,但你无法带走 门户的内容。Bloglines则完全不同,你觉得它好用,就会继续使用,有一天你不再喜欢Bloglines,你完全可以导出你的OPML,到另一个 RSS订阅网站,或者干脆用客户端软件浏览同样的内容。所以,像Bloglines这样的网站,是可写的,你可以导入,也可以导出。就像你对信息拥有选择 权,对服务提供商也同样拥有选择权,没有人可以锁定你,主动权在你自己手上。”[Keso:再说信息选择权]

    -“Flickr、 del.icio.us、Bloglines等Web2.0服务,通过开放API获得了很多有趣、有用的想法,并借助外部的力量,让用户获得了更好的体 验。更多大公司也加入到开放API的潮流中,Google、Yahoo!、Amazon、Skype。Google桌面搜索今年3月才开放API,很快就 产生了大量的创造,大大扩充了可搜索的文件格式。”[Keso:开放API]

    -“归纳:web1.0天天谈门户,web2.0谈个人 化;web1.0谈内容,web2.0谈应用;web1.0商业模式,web2.0谈服务;web1.0谈密闭、大而全,web2.0大家谈开放、谈联 合;web1.0网站中心化,web2.0谈个人中心化;web1.0一对一,web2.0谈社会性网络;web1.0不知道你是狗,web2.0你去年 夏天干了什么我一清二楚甚至想要干什么呢。。。”[van_wuchanghua:发现了N.HOOLYWOOD,我还知道你今年夏天要干什么]

    -“我认为Web2.0有下面几个方面的特性:个性化的传播方式.读与写并存的表达方式.社会化的联合方式.标准化的创作方式.便捷化的体验方式.高密度的媒体方式.”[飞戈:Web2.0与未来的网络]

    -“用 RAILS写的网站带有典型的读写网络的特征:RAILS创建的三个架构中的ACTIVERECORD这个模块中,如果你读读它最重要的基类 ActiveRecord::Base,你会发现有CREAT,EDIT,SAVE,DESTROY这些方法已经天然包含在内了,这让实现一个数据库的 CRUDS行为变得如此简单。由于这些类的方法直接和网页的名称映射到一起,这使得网页本身就像一个可以编缉的数据库的数据项。” [Blogdriver:RUBYONRAILS,wEB2.0世界新生的创造力]

    -“Greasemonkey一定名列前茅。这个通过UserScript就能修改任何网页输出效果的插件极大的提高了用户阅读的自主性,一推出就引起了轰动,同时也引来了不少争议。”[Webleon:platypus,完全可写的互联网]

    -“Web1.0 到Web2.0的转变,具体的说,从模式上是单纯的“读”向“写”、“共同建设”发展;从基本构成单元上,是由“网页”向“发表/记录的信息”发展;从工 具上,是由互联网浏览器向各类浏览器、rss阅读器等内容发展;运行机制上,由“ClientServer”向“WebServices”转变;作者由程 序员等专业人士向全部普通用户发展;应用上由初级的“滑稽”的应用向全面大量应用发展。”[Don:Web2.0概念阐释]

    Web2.0阶段的一个重要特征是开放,和Web初期的开放有很大不同,有以下几种突出的表现:

    内容方面。

    - 内容的创作共用授权。它的广谱和可选择性,让它具有了足够的生命力。CC先是在网志圈中广泛采用,后来许多商业公司也纷纷采用CC方式(比如BBC);先 是文本世界采用,后来逐渐推广到了多媒体世界,比如音频、视频、Flash动画等等。一场自由的文化(freeculture)运动在各个方面悄然铺开。

    -内容来源方面的开放。和早期的Web阶段相比,由于使用相关设备的成本降低,利用相关技术的门槛减低,人们可以自由生产并发布各种内 容,比如文本信息,比如语音记录,比如视频录制等。信息的生产和传播不再仅仅是商业资本或者技术精英的特权。在Web的新阶段,原来在商业、技术与大众之 间的信息生产和传播的落差被削平。消除信息垄断和去中心化已经成为可能。不仅如此,信息的生产和消费的模式也发生了变化,从原来的生产/消费的对立,变成 了参与式的信息集市。

    Web主体方面。

    -商业网站也渐渐采取了开放的、参与的模式。除了内容上的CC授权出现之 外。原来并不外露的内容,也随着blog、podcasting等的兴盛而对外开放。一些网站还在技术层面开放,比如开放源代码,比如开放APIs(编程 接口),让自己成为一个平台,让用户可以参与衍生产品的创造,用户本身也是产品的生产者。不仅是内容、技术层面,在鼓励用户的参与上,也有相应的开放出 现,比如一些新闻网站的RSS源的输出、引用通告(trackback)功能的采纳、blogthis便利的提供,无一不是让用户参与到内容生产、传播的 各个环节。

    -个人信息层面的开放。有开放,才有交流,才有社会行为和形态产生。个人内容的开放是与一类Web2.0服务的兴起有关。它涵盖了内容(文本、声音、影像、视频)、关系、行为等等。

  • 关键字: web2.0 特点
    参照:http://www.360doc.com/showWeb/0/0/449646.aspx

Iframe adapt its high about its content of the load

2008年04月15号

main.htm:________________________________________________________

<html>
<head>
<meta http-equiv=’Content-Type’ content=’text/html; charset=gb2312′>
<meta name=’author’ content=’F.R.Huang(meizz梅花雪)//www.meizz.com’>
<title>iframe自适应加载的页面高度</title>
</head>

<body>
<iframe src=”child.htm”></iframe>
</body>
</html>

child.htm:_______________________________________________________

<html>
<head>
<meta http-equiv=’Content-Type’ content=’text/html; charset=gb2312′>
<meta name=’author’ content=’F.R.Huang(meizz梅花雪)//www.meizz.com’>
<title>iframe 自适应其加载的网页(多浏览器兼容)</title>
<script language=javascript>
function iframeAutoFit()
{
try
{
if(window!=parent)
{
var a = parent.document.getElementsByTagName(”IFRAME”);
for(var i=0; i<a.length; i++) //author:meizz
{
if(a[i].contentWindow==window)
{
var h = document.body.scrollHeight;
if(document.all) {h += 4;}
if(window.opera) {h += 1;}
a[i].style.height = h;
}
}
}
}
catch (ex)
{
alert(”脚本无法跨域操作!”);
}
}
if(document.attachEvent) window.attachEvent(”onload”, iframeAutoFit);
else window.addEventListener(’load’, iframeAutoFit, false);
</script>
</head>
<body>
<div style=”width: 200; height: 400; background-color: yellow”>
iframe 自适应其加载的网页(多浏览器兼容)
</div>
</body>
</html>


 

main.htm:________________________________________________________




child.htm:_______________________________________________________


function iframeAutoFit() { try { if(window!=parent) { var a = parent.document.getElementsByTagName(”IFRAME”); for(var i=0; i<a.length; i++) //author:meizz { if(a[i].contentWindow==window) { var h = document.body.scrollHeight; if(document.all) {h += 4;} if(window.opera) {h += 1;} a[i].style.height = h; } } } } catch (ex) { alert(”脚本无法跨域操作!”); } } if(document.attachEvent) window.attachEvent(”onload”, iframeAutoFit); else window.addEventListener(\’load\’, iframeAutoFit, false);

iframe 自适应其加载的网页(多浏览器兼容)

How to display HTML(*) code in pages

2008年04月15号

hehe,i regret to talk about it ,of course ,you may directly put the codes into the page,it is absolutely right.
here i wanna to talk about it’s style
Css code(modified)
————————————————————————————————–

body {
font-family:"PMingliu",arial;font-size:0.8em;
padding:5px;
}
.quote {
MARGIN: 10px; BORDER-LEFT: #94cfd6 3px solid; BACKGROUND-COLOR: #edf9fa;text-align:left;
}
.quote-title {
PADDING: 5px; FONT-WEIGHT: bold; COLOR: #666666; BORDER-BOTTOM: #94cfd6 1px dashed
}
.quote-content {
PADDING: 10px; COLOR: #666666;
}

————————————————————————————————–
look at its html document.