2007年7月29日星期日

遗憾。。。。

常言道,家家有本难念的经,这话一点不假。还有,人无远虑,必有近忧,这话更是如真理般灵验。我们常人如此,就连一向风光无限的明星大腕们也常常遗憾多多。
记得有一道脑筋急转弯的题:大熊猫一生最大的遗憾是什么?我曾经苦思冥想,但始终没能猜到正确答案。当别人公布时,我才恍然大悟。原来,大熊猫虽然贵为“国宝”,然而它一生最大的遗憾是“没有一张彩照”。听完一乐,是啊,再怎么高档的照相机,恐怕也无法给这个只有黑白两色大熊猫拍一张彩色的照片吧?
其实,这里面渗透着一个人生的真谛。当我们最痛苦的时候,窗外有小鸟在快乐地歌唱;当我们快乐的时候,有人正受着病魔的折磨,和死亡搏斗甚至正在做着垂死的挣扎。事实上,世界对谁都是一样公平,只是我们的心情和遭遇不同而已。
人生如此!没有遗憾几乎是不可能的。德国作家格里美尔斯豪森曾经有段很精辟的话:世界上没有任何欢乐不伴随忧虑,没有任何和平不连着纠纷,没有任何爱情不埋下猜疑,没有任何安宁不隐伏恐惧,没有任何满足不带有缺陷,没有任何荣誉不留下耻辱。
人生如此!
面对遗憾,我们不妨这样去考虑:我们虽然不美丽,但我们健康;我们虽然不伟大,但我们庄严;我们虽然不完满,但我们努力。
这就是生活!换一个角度和心情去适应生活,你会发现生活原来如此美好。

现在我的遗憾
是那份
等了好久都不能忘记的痛
是那个
等了好久都没有回头的你

2007年7月27日星期五

不要沉湎过去

不要沉湎过去。这是我最重要的建议:让过去的成为过去,继续前行。这个世界上,人类的很多的愤怒、沮丧、痛苦和绝望都是因为沉湎于过去的伤害和问题。你越是在心里念叨着过去的那些事情,你越是感觉糟糕,那些事情会变得越沉重。让过去的成为过去,继续前行,如是你就卸下过去的包袱了。(菜刀注:活在当下)

不要让生活把你击倒,继续积极面对

不要让生活把你击倒,继续积极面对。如果你在生活中期盼厄运,你会常常和它们邂逅。一颗消极的心好比透过一面扭曲且肮脏的透镜观看世界,你过分聚焦在每个污秽的地方忽略了其他。当你开始寻找的时候,你惊奇地发现这些事物并不是预先就存在的。换一种思维,如果你决定去寻找积极的事物,你也会发现它们的。(菜刀注:既然消极和积极都是生活,为什么不积极面对,寻找方法呢)

2007年7月24日星期二

不要凭你的感觉行事

你如何想并不意味着事情就如你所想,仅仅是因为你感觉如此罢了,这并不会改变事实。大部分的时候,情绪意味着你累了、饿了、郁闷了,此外没有其他更深层处的意义了。未来并不会因为你感觉良好或痛苦而改变。感觉是可能是真的,但那不是真理。(菜刀注:感觉不是事实,不要太相信感觉,经验有时候也会是绊脚石)

不要自以为是

大部分人,甚至你的朋友和同事,在99%的时间里并没有讨论你、想念你或是关心你。你的很多同事或邻居甚至没有听说过你,更不必说谈论你。生活的起伏,他人的冷暖,于你都无关紧要。怀疑别人在谈论你只会让你更痛苦。(菜刀注:不要太自我中心,太在乎他人的看法,他人有他人的事要忙)

2007年7月22日星期日

不要过分放大

一两次的挫折并不表示永远的失败,几次的成功也不意味着你是个天才。一个独立事件---好的或坏的---或三四个事件并不代表一种持续的趋势。通常事物就是它们所存在的样子,此外没有其他了。(菜刀注:不要夸大成果,不管是成果或者失败)

别做完美主义者

生活并不是非黑即白,非此即彼;大部分时候,刚刚好意味着事物处于自然的状态。如果要寻找一份完美的工作,你有可能永远找不到。同时,他人并没有看起来那么好。追寻完美的人际关系,你有可能终生孤独。完美主义是一种精神毒瘤,它会摧毁你的一切快乐,让你终其一生在追寻你无法到达的目标。(菜刀注:有些遗憾的人生才是完整的,因为没有人可以完美)

2007年7月21日星期六

SQL Server2008的新语句MERGE

SQL Server 2008将包含用于合并两个行集(rowset)数据的新句法。根据一个源数据表对另一个数据表进行确定性的插入、更新和删除这样复杂的操作,运用新的MERGE语句,开发者用一条命令就可以完成。
  对两个表进行信息同步时,有三步操作要进行。首先要处理任何需要插入目标数据表的新行。其次是处理需要更新的已存在的行。最后要删除不再使用的旧行。这个过程中需要维护大量重复的逻辑,并可能导致微妙的错误。
  Bob Beauchemin讨论了MERGE语句,这个语句将上述的多个操作步骤合并成单一语句。他给出了如下的例子:
以下是引用片段:


merge [target] t
using [source] s on t.id = s.id
when matched then update t.name = s.name, t.age = s.age -- use "rowset1"
when not matched then insert values(id,name,age) -- use "rowset2"
when source not matched then delete; -- use "rowset3"

如你所见,具体操作是根据后面的联合(join)的解析结果来确定的。在这个例子中,如果目标和源数据表有匹配的行,就实行更新操作。如果没有,就实行插入或者删除操作来使目标数据表和源数据表保持一致。
  这个新句法的一个美妙之处是它在处理更新时的确定性。在使用标准的UPDATE句法和联合时,可能有超过一个源行跟目标行匹配。在这种情况下,无法预料更新操作会采用哪个源行的数据。
  而当使用MERGE句法时,如果存在多处匹配,它会抛出一个错误。这就提醒了开发者,要达到预想的目标,当前的联合条件还不够明确。

避免僵化地或贴标签式地看待人和事

避免僵化地或贴标签式地看待人和事。你使用的话语能够影响你的情绪,消极和挑剔的言辞同样影响你的思维。把事物放进预置的类别里,隐藏他们的真实意思,你的思维会变得漫无目的。不要贴标签,看看会发生什么,你会为你所发现的大吃一惊。(菜刀注:不要先入为主,避免一成不变)

不要制造规则

大部分那些你所遵循的“应该如何如何”之类的规矩几乎都是没有必要的。它们对你的唯一作用是让你觉得紧张或有负罪感。什么意思?当你往身上套那些想象的规则时,你给你的心扣上了枷锁和强加了幼稚的命令。当你试图把这些向他人推行时,你让你自身变成了暴君,一只聒噪的蝉,一个伪善的老顽固。(菜刀注:不要给自己或他人强加枷锁)

2007年7月20日星期五

不要小题大做

大部分人将小挫折膨胀为一生具有威胁性的事故并做出相应的反应。小题大做的习惯让人们感到忧虑,不是因为不存在的事物就是因为不值得一提的小事。为什么人们要这样?也许为了这让他们感觉或看起来更重要一些。不管理由是什么,小题大做是愚蠢且具有破坏性的。(菜刀注:不要把事情看的太重)

不要过早下结论

追寻结论的习惯通过两个普遍的方式增加人们的困扰。其一,人们假定他们知道将要发生什么,于是反而他们开始吧注意力和行动放在他们的假设上了。人类是憋足的预言家,人类的大部分假设都是错误的,错误的假设导致了错误的行动。其二,人们扮演“读心者”,他们假设知道他人为什么要干这个事情或他人在想些什么----又错了,大错特错。比起其他任何方式,大部分的人际关系因这种典型的愚蠢方式而破坏掉较多。(菜刀注:不要追求居于你的假设基础上的结果,往往这是你的自以为是)

2007年7月17日星期二

在任何站点用flash调用你的blog

支持中文!
POQUE可以读取blog的XML(RDF)文件,并且以flash形式显示图片的blog工具。原以为中文进去乱码,没想到支持得很好哦。想使用的话,至少需要blog可以自行添加代码,像blogchina这样的BSP,MSN space有限制的添加HTML代码,但是没有测试过。
■如果blog有空间可以上传文件,在这里http://blog.ekndesign.com/poquedl.html下载Flash文件,上传到blog空间,然后来这里http://blog.ekndesign.com/archives/000174.html在线生成代码,简单说明一下アッブロードしたpoque.swfのURLお入力,这里是填入刚上传的swf文件地址;あなたのサイトのRDFファイルのURLを入力,填入blog的RDF地址;背景色を選択,选择背景颜色;ソースを作成する;生成代码。右边有个很直观的即时变换示例。(LBS的feed.asp竟然不适用,所以演示是用下面第二种方法。)
■如果没有空间,只能添加代码,可以来这里http://poque.jp/,选择背景框架颜色,有个预览,觉得可以的话,次のステップへ,然后填入RSS地址,就可以生成代码了。复制到blog需要显示的位置就行了。
简单说明下:把鼠标放在Flash之上会出现5个按钮,中间的按钮是查看当前图片的所在日志;左边的按钮是缩小略图查看所有照片;右边的按钮是查看首页日志列表(RSS读取的);上面的按钮是新窗口打开当前日志;下面的按钮是关于这个程序。
可以拿来做首页调用玩,是不是很酷?或者是在站外引用blog,或者可以整合几个blog。只要支持HTML的地方就可以调用你的blog:)还能调用支持rss的相册空间。

2007年7月16日星期一

70多个基于Adobe Air技术构建的应用程序(收藏)

blogger被和谐还在继续,自己的心情也还在低落。不止一遍告诉自己要振作,自己是活在今天和明天。。。。。找了一些关于Adobe Air技术的资料,最近就研究这吧。懂不懂,先看看!
Pownce by Leah Culver, Daniel Burka, Kevin Rose, Shawn Allen
Pownce Desktop Client by the guys above
San Dimas by eBay
mxnaQUBE by Phil Chung
VEED by Ben Honda-Rottler
Apollo Twitter Application by Lee Brimelow
MyMovieMatch beta by matchmine
Kuler Desktop by Adobe
Tweetr by Bluespark
SearchCoders Dashboard by Searchcoders
StudioCloud by StudioCloud
yourminis.com Desktop Widgets by goowy media, inc.
Finetune Desktop by Finetune
CodePeek PureMVC Demo by PureMVC
Apollo 3D Test Application by rost
Employee Directory by Adobe
Fresh by Adobe
MapCache by Adobe
Maptacular by Adobe
PeekAgenda by Adobe
PixelPerfect by Adobe
Salsa by Adobe
Scout by Adobe
ScreenPlay by Adobe
Signet by Adobe
MINI DIGG by Joe Johnston
D'Lite by Thai Huynh
DiggGraphr Desktop by Arpit Mathur
AppleCare Search for AIR by Jack in The Box Software, Inc.
Apollo Picasa by Denis V.
OnAIR by Edward Mansouri
AddressBookExtreme by Edward Mansouri
Adobe-Announcements by Razvan Andrei Surdu
AIR in Flight by Mike Givens
AIR Flex by Mike Givens
AIR Math Quiz Bowl by Mike Givens
Adobe AIR Music Player by Peter Ent
AIR Video Player by Mike Givens
Air's eyes by lafabrick.com
AIRTV by Edward Mansouri
Apollo Desktop Photos by Janvarev Vladislav
CleVR Stitcher by Sphex LLP
DiggTop by gskinner.com
EarthStats by Xe-Media
Educator Desktop by Edward Mansouri
FlexManiacs by Edward Mansouri
Flickrin by Ashwinee Dash
FotoBooth by Rich Tretola
HTMLExample by Edward Mansouri
iPhone by Knoware 2007
Limitless Quest by Andrew Wooldridge
MAX 2007 Countdown by Mike Givens
Mii Editor by MiiEditor.com
Model Selector by Kaushik Datta
MonitR by Brandon Ellis
MyVacation by Edward Mansouri
NabAIR by Niels Bruin
Onyx-VJ by Onyx-VJ
Project Tracker by Jacob Wright
Qurl by Ronnie Liew
scripKeepR by Chris Seahorn
Spirograph by Kaushik Datta
StudioCloud by DaVinci's Desk Inc.
test-browser by saumya ray
toteNpost by Chris Seaborn
Tweetr by Bluespark Interactive
TwittAIR by theflexblog
twitterAIR by Aaron West
Vehicle Comparison by Kaushik Datta
WebSnapshot by Daniel Wanja

2007年7月13日星期五

用AJAX编写用户注册时的应用实例(实例收藏)

我所举的这个例子是一个企业用户注册时的一个应用,当用户注册时检查用户名和企业名是否可用,以前的做法是在旁边加一个按钮,点击“检查”,就向服务器发出请求,然后等待……服务器返回信息,继续操作。

  如果我们用AJAX技术来实现以上的操作则不必等待服务器返回信息,用户输入用户名或企业名称的时候,当输入文本框失去焦点的时候,则会自动向服务器发出请求,用户继续做下面的操作,不必点击“检查”,也不必等待服务器返回信息,检查与用户操作是异步的,可同时进行。当服务器信息返回的时候,会自动在面页相应位置显示返回信息,不必刷新页面,相当于局部刷新的效果。 下面我们来看代码吧。

  HTML页面的完整代码如下:
以下是引用片段:
1<%@page language="java" contentType="text/html;charset=GBK"%>
2<script language="javascript" type="text/javascript">
3<!--
4/**//**Ajax 开始 by Alpha 2005-12-31*/
5
6 var http = getHTTPObject();
7
8 function handleHttpResponse(){
9  if(http.readyState == 4){
10  if(http.status == 200){
11   var xmlDocument = http.responseXML;
12    if(http.responseText!=""){
13     document.getElementById("showStr").style.display = "";
14      document.getElementById("userName").style.background= "#FF0000";
15      document.getElementById("showStr").innerText = http.responseText;
16    }else{
17     document.getElementById("userName").style.background= "#FFFFFF";
18     document.getElementById("showStr").style.display = "none";
19    }
20
21   }
22   else{
23    alert("你所请求的页面发生异常,可能会影响你浏览该页的信息!");
24    alert(http.status);
25   }
26  }
27 }
28
29 function handleHttpResponse1(){
30  if(http.readyState == 4){
31   if(http.status == 200){
32    var xmlDocument = http.responseXML;
33    if(http.responseText!=""){
34     document.getElementById("comNmStr").style.display = "";
35     document.getElementById("comNm").style.background= "#FF0000";
36     document.getElementById("comNmStr").innerText = http.responseText;
37    }else{
38     document.getElementById("comNm").style.background= "#FFFFFF";
39     document.getElementById("comNmStr").style.display = "none";
40    }
41
42   }
43   else{
44    alert("你所请求的页面发生异常,可能会影响你浏览该页的信息!");
45    alert(http.status);
46   }
47  }
48 }
49
50 function chkUser(){
51  var url = "/chkUserAndCom";
52  var name = document.getElementById("userName").value;
53  url += ("&userName="+name+"&oprate=chkUser");
54  http.open("GET",url,true);
55  http.onreadystatechange = handleHttpResponse;
56  http.send(null);
57  return ;
58 }
59 function chkComNm(){
60  var url = "/chkUserAndCom";
61  var name = document.getElementById("comNm").value;
62  url += ("&comName="+name+"&oprate=chkCom");
63  http.open("GET",url,true);
64  http.onreadystatechange = handleHttpResponse1;
65  http.send(null);
66  return ;
67 }
68
69 //该函数可以创建我们需要的XMLHttpRequest对象
70 function getHTTPObject(){
71  var xmlhttp = false;
72  if(window.XMLHttpRequest){
73   xmlhttp = new XMLHttpRequest();
74   if(xmlhttp.overrideMimeType){
75    xmlhttp.overrideMimeType('text/xml');
76   }
77  }
78  else{
79   try{
80    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
81   }catch(e){
82    try{
83     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
84    }catch(E){
85     xmlhttp = false;
86    }
87   }
88  }
89  return xmlhttp;
90 }
91/**//**Ajax 结束*/
92
93//检测表单
94function chkpassword()
95{
96 var m=document.form1;
97 if(len(m.password.value) > 20 || len(m.password.value) < 5 || !isStr(m.password.value))
98 {
99  document.getElementById("passwordStr").style.display = "";
100  document.getElementById("password").style.background= "#FF0000";
101  document.getElementById("passwordStr").innerText = "对不起,密码必须为英文字母、数字或下划线,长度为5~20!";
102 }
103 else
104 {
105  document.getElementById("password").style.background= "#FFFFFF";
106  document.getElementById("passwordStr").style.display = "none";
107 }
108}
109
110function chkconfirmPassword()
111{
112  var m=document.form1;
113  if (m.password.value != m.confirmPassword.value)
114  {
115   document.getElementById("confirmPasswordStr").style.display = "";
116   document.getElementById("confirmPassword").style.background= "#FF0000";
117   document.getElementById("confirmPasswordStr").innerText = "对不起,密码与重复密码不一致!";
118  }
119  else
120  {
121   document.getElementById("confirmPassword").style.background= "#FFFFFF";
122   document.getElementById("confirmPasswordStr").style.display = "none";
123  }
124}
125
126function checkfield()
127{
128 var m=document.form1;
129 if(m.userName.value.length==0)
130 {
131  alert("对不起,用户名必须为英文字母、数字或下划线,长度为5~20。");
132  m.userName.focus();
133  return false;
134 }
135 if(m.password.value.length==0)
136 {
137  alert("对不起,密码必须为英文字母、数字或下划线,长度为5~20。");
138  m.password.focus();
139  return false;
140 }
141 if (m.password.value != m.confirmPassword.value)
142 {
143  alert("对不起,密码与重复密码不一致!");
144  m.confirmPassword.focus();
145  return false;
146 }
147 if(m.comNm.value.length==0)
148 {
149  alert("对不起,企业名称不能为空!!");
150  m.comNm.focus();
151  return false;
152 }
153 m.submit();
154}
155
156//-->
157</script>
158<body topmargin="0">
159<form name="form1" method="post" action="/Control?act=Register">
160<table width="100%">
161 <tr><td align="center"> <H2>Ajax 演示程序</H1></td></tr>
162 <tr><td align="center">    ------ 企业注册 By Alpha</td></tr>
163</table>
164
165<HR>
166 <table width="400" border="0" cellpadding="1" cellspacing="1" align="center" >
167 <tr>
168  <td><font color="red">*</font></td>
169  <td>用户帐号:</td>
170  <td>
171   <input type="text" name="userName" maxlength="20" style="background:#FFFFFF" onBlur="chkUser()" value=""/>
172   <div id="showStr" style="background-color:#FF9900;display:none"></div>
173  </td>
174 </tr>
175 <tr>
176  <td><font color="red">*</font></td>
177  <td>企业名称:</td>
178  <td>
179   <input type="text" name="comNm" maxlength="100" style="background:#FFFFFF" onBlur="chkComNm()" value=""/>
180   <div id="comNmStr" style="background-color:#FF9900;display:none"></div>
181
182  </td>
183 </tr>
184 <tr>
185  <td><font color="red">*</font></td>
186  <td>用户密码:</td>
187  <td><input type="password" name="password" maxlength="20" style="background:#FFFFFF" onBlur="chkpassword()"/>
188   <div id="passwordStr" style="background-color:#FF9900;display:none"></div>
189  </td>
190 </tr>
191 <tr>
192  <td><font color="red">*</font></td>
193  <td>确认密码:</td>
194  <td><input type="password" name="confirmPassword" maxlength="20" style="background:#FFFFFF" onBlur="chkconfirmPassword()"/>
195   <div id="confirmPasswordStr" style="background-color:#FF9900;display:none"></div>
196  </td>
197 </tr>
198 </table>
199
200 <div align="center">
201  <input type="button" name="ok" value=" 确 定 " onclick="checkfield()">
202  
203  <input type="reset" name="reset" value=" 取 消 ">
204 </div>
205
206</form>
207</body>
208</html>

用JavaScript来创建XmlHttpRequest 类向服务器发送一个HTTP请求后,接下来要决定当收到服务器的响应后,需要做什么。这需要告诉HTTP请求对象用哪一个JavaScript函数处理这个响应。可以将对象的onreadystatechange属性设置为要使用的JavaScript的函数名,如下所示:Xmlhttp_request.onreadystatechange =FunctionName;

  FunctionName是用JavaScript创建的函数名,注意不要写成FunctionName(),当然我们也可以直接将JavaScript代码创建在onreadystatechange之后。

  我们调用request.open()-它用服务器打开套接字频道,使用一个HTTP动词(GET或POST)作为第一个参数并且以数据提供者的URL作为第二个参数。request.open()的最后一个参数被设置为true-它指示该请求的异步特性。注意,该请求还没有被提交。随着对request.send()的调用,开始提交-这可以为POST提供任何必要的有效载荷。在使用异步请求时,我们必须使用request.onreadystatechanged属性来分配请求的回调函数。(如果请求是同步的话,我们应该能够在调用request.send之后立即处理结果,但是我们也有可能阻断用户,直到该请求完成为止。)

  再看看数据提供者的URL,url = "/chkUserAndCom",servlet如下:

以下是引用片段:
1/**//*
2 * Created on 2005-12-31
3 *
4 * TODO To change the template for this generated file go to
5 * Window - Preferences - Java - Code Style - Code Templates
6 */
7package com.event;
8
9import javax.servlet.ServletException;
10import javax.servlet.http.HttpServletRequest;
11import javax.servlet.http.HttpServletResponse;
12
13import com.beans.EBaseInfo;
14
15/** *//**
16 * @author Alpha 2005-12-31
17 *
18 * <P>Ajax 演示---企业注册时检查企业用户名和企业名称</P>
19 *
20 * TODO To change the template for this generated type comment go to
21 * Window - Preferences - Java - Code Style - Code Templates
22 */
23public class CheckUserAndComNm {
24 private String msgStr = "";
25 protected void doGet(HttpServletRequest request,HttpServletResponse response)
26 throws ServletException
27 {
28
29  EComBaseInfo info=new EComBaseInfo();
30  String oprate=request.getParameter("oprate")).trim();
31  String userName=request.getParameter("userName");
32  String passWord=request.getParameter("password");
33  String comName=request.getParameter("comName");
34
35  try
36  {
37   if(oprate.equals("chkUser"))
38   {
39    response.setContentType("text/html;charset=GB2312");
40    if(userName.length()<5||userName.length()>20)
41    {
42     msgStr = "对不起,用户名必须为字母、数字或下划线,长度为5-20个字符!";
43    }
44    else
45    {
46     boolean bTmp=info.findUser(userName); //找查数据库中有无该用户名
47     if(bTmp)
48      msgStr ="对不起,此用户名已经存在,请更换用户名注册!";
49     else
50      msgStr ="";
51    }
52    response.getWriter().write(msgStr);
53   }
54   else if(oprate.equals("chkCom"))
55   {
56    response.setContentType("text/html;charset=GB2312");
57    if(comName.length()<6||comName.length()>100)
58    {
59     msgStr = "对不起,公司名称长度为6-100个字符(不包括字符内的空格)!";
60    }
61    else
62    {
63     boolean bTmp=info.findCom(comName); //找查数据库中有无该企业名
64     if(bTmp)
65      msgStr ="对不起,此企业名称已经存在,请更换企业名称注册!";
66     else
67      msgStr ="";
68    }
69    response.getWriter().write(msgStr);
70   
71   }
72  }
73  catch(Exception ex)
74  {
75  }
76  finally
77  {
78   request.setAttribute("url",url);
79  }
80 }
81
82 protected void doPost(HttpServletRequest request,HttpServletResponse response)
83 throws ServletException
84 {
85  doGet(request,response);
86 }
87}
88

AJAX技术小结

  1. AJAX(Asynchronous JavaScript and Xml)是一个结合了Java技术、Xml、以及JavaScript的编程技术,可以让你构建基于Java技术的Web应用,并打破了使用页面重载的惯例。

  2. AJAX,异步JavaScript与Xml,是使用客户端脚本与Web服务器交换数据的Web应用开发方法。这样,Web页面不用打断交互流程进行重新加裁,就可以动态地更新。使用AJAX,你可以创建接近本地桌面应用的,直接的、高可用的、更丰富的、更动态的Web用户接口界面。

  3. 对于Mozilla.Netscape﹑Safari、Firefox等浏览器,创建XmlHttpRequest 方法如下:

  Xmlhttp_request = new XmlHttpRequest();

  4. IE等创建XmlHttpRequest 方法如下:

  Xmlhttp = new ActiveXObject("MsXml2.XmlHTTP") 或 Xmlhttp = new ActiveXObject("Microsoft.XmlHTTP");

  5. Xmlhttp_request.open('GET', URL, true); Xmlhttp_request.send(null);

  6. open()的第一个参数是HTTP请求方式—GET,POST或任何服务器所支持的您想调用的方式。 按照HTTP规范,该参数要大写;否则,某些浏览器(如Firefox)可能无法处理请求。第二个参数是请求页面的URL。第三个参数设置请求是否为异步模式。如果是TRUE,JavaScript函数将继续执行,而不等待服务器响应。这就是"AJAX"中的"A"。

  AJAX技术运用的好的话,给我们的网页增添了许多友好的效果,给用户还来更好的感觉。AJAX是个好东西。

2007年7月12日星期四

Google Adsense合作伙伴交流论坛

昨天参加了Google Adsense 2007合作伙伴推广优化论坛,会议主要内容以Google Adsense介绍、优化广告投放、账户安全、Google Analytics统计工具、站长问答等方面展开..
会议主题:恒久信任 携手共赢,

会议具体安排如下:
13:30-13:40 欢迎致辞
13:40-14:10 同心共赢 决战未来
14:10-14:30 提高广告效果 维护帐户安全
14:30-15:00 问答环节

会议其他方面觉得没什么必要介绍的,都是关于Goolge Adsense的介绍,我觉得值得注意的是账户安全方面,值得关注的是对于广告优化中关于下载站广告投放的位置与态度问题,请各位站长注意了,对于放在下载地址上面或者下面的诱导点击广告,基本确定判断为无效点击,请各站长及时修改广告投放的位置,确保账户安全,以及你每月能够按时收到Google Adsense支票,请及时修正.稍后有图片为例.

同时也介绍与解答了在使用Goolge Adsense中我们所担忧的一些问题.

1、google是鼓励优化的,但是绝对不是鼓励他人去点击.
2、对于站点涉及到版权问题的,请及时查看自己的邮件与纠正问题.
3、可以和其他广告联盟放在一起.但所放广告联盟必须有明显标志.(这问题我提问的)
4、自己无意点击到了GG广告几次是没有关系的.但不要经常点击.
5、Google Adsense其实是很不愿意封帐号的,通常有无效点击都会给于先警告,但严重的作弊份子是直接封号,所以不要去衡量Google Adsense的技术.
6、不要想着和Google Adsense玩技术,他们的技术已经超越了IP跟踪限制.
7、广告不是放的越多越好,要找到好位置于选择好格式.
8、单价的高低不是Google Adsense控制的,是广告主决定的,而且有季节性等因素决定.
9、渠道和单价高低没有任何关系,但渠道对广告展示起着重要作用.
10、优质站点内容是提高站长收益的基本前提.
11、如果帐号是无辜(且自己没作弊)被封的情况下,可以用标准格式发邮件给Google Adsense申述,等他们审核与检查,只要是冤枉的,不会影响你的收入,会再次开通的,不要无理取闹.
12、最佳广告代码格式为:300x250、600x160、728x90.
13、针对付款问题,再次声明正在协调中.
























2007年7月9日星期一

世界新七大奇迹(地标下载收藏)

据中新网报道,在葡萄牙里斯本7日晚举行的世界新7大奇迹评选中,中国长城、约旦佩特拉古城、巴西里约热内卢基督像、墨西哥奇琴伊察玛雅城邦遗址、意大利古罗马斗兽场、秘鲁马丘比丘印加遗址和印度泰姬陵当选世界新7大奇迹。

上述“新七大奇迹”是全球投票者从主办方提供21个评选名单中通过电话、短信、网络等方式选出的。而仅存的原七大奇迹之一的埃及金字塔,在新七大奇迹选出后,仍会保留。   该活动的主办方“世界新七大奇迹”基金会是1999年由瑞士商人、旅行家贝尔纳·韦伯先生创立的。2006年1月1日,由6名世界建筑师和文化界人士组成的基金会专家委员以不记名投票的形式从77个备选的景点名单中选出了最后21个评选名单。2007年7月8日选出“新世界七大奇迹”。   联合国科教文组织注册的世界遗产有851个,该组织没有参与这次的评选活动。   下面分别是这新七大奇迹的介绍和图片。

Great Wall 长城(公元前220年和公元1368年 – 公元1644年) 中国
  长城是难以置信的坚毅和恒心的见证。中国的万里长城是中国古代为抵御蒙古人入侵而建造的,它将已有的单个要塞连成一体,从而形成一个完整的防御体系。长城是世界上最大的人造工程,也是唯一可以从外太空看到的地球景观。为了修建巨大的长城,曾有上千万人为此献出了生命。

Chichen Itza 奇琴伊查金字塔(公元800年前) 尤卡塔半岛,墨西哥

  奇琴伊查是膜拜和知识的象征。位于墨西哥尤卡塔半岛上的奇琴伊查是玛雅古国最著名的城邦遗址,它曾是古玛雅文明的政治和经济中心。城内至今仍可见的古迹主要有库库尔坎金字塔、Chac Mol寺庙、千柱林和囚犯竞技场。这些建筑在空间和造型组合上均充分体现出了玛雅人杰出灵动的建筑意识。而金字塔本身,则是众多玛雅寺庙中最后、也是最杰出的代表作。

Christ Redeemer 基督像(1931) 里约热内卢,巴西

  基督像是热情接纳和宽阔胸怀的象征。在里约热内卢的科尔科瓦杜山上有一座基督雕像,高达38米左右,雕像中的基督似乎正深情地俯瞰着美丽的里约热内卢。这座基督像是由一个叫Heitor da Silva Costa的巴西人和一个叫Paul Landowski的法国雕刻家分别设计和创造的,是世界上最著名的古迹之一。巨型雕像的制作共花费了五年时间,最终于1931年10月12日完成了落成典礼。巨大的基督像张开双臂,似乎正在欢迎来参观的游人。如今,基督像已成为美丽的里约热内卢和巴西人热情的象征。

Colosseum 古罗马斗兽场(公元70年 – 公元82年) 罗马,意大利   古罗马斗兽场是快乐和痛苦的象征。位于罗马中心的壮观的斗兽场是古罗马当时为取悦凯旋而归的将领士兵和赞美伟大的古罗马帝国而建造的。斗兽场的建筑设计并不落后于现代的美学观点,而事实上,大约2000年后的今天,每一个现代化的大型体育场都或多或少的烙上了一些古罗马斗兽场的设计风格。如今,通过电影和历史书籍等媒介,我们能更深切地感受到当时在这里发生的人与兽之间的残酷格斗和搏杀,而这一切,只是为了给作壁上观的观众带来一些原始而又野蛮的快感。


Machu Picchu 印加马丘遗址(1460-1470) 马丘比丘,秘鲁   印加马丘遗址是团社和奉献的象征。公元15世纪,印加王朝的国王Pachacutec在马丘比丘山脉(“古老山脉”)上修建了一座云中之城。这个非凡的居住地上延至安第斯山脉、下潜至亚马逊热带丛林,并位于Urubamba 河谷之上。历史上由于“天花”爆发,该城市遭到印加王朝遗弃。当西班牙人打败了印加帝国后,这座古城便“消失”了长达三个多世纪,直至1911年,耶鲁大学的考古学家海勒姆·宾厄姆发现了该城遗址。

Petra 佩特拉古城(公元前9年 – 公元40年)佩特拉,约旦   佩特拉是工程和保护的象征。在阿拉伯沙漠的边缘,佩特拉古城曾是国王阿莱塔斯四世(公元前9年 –公元40年)当政时的纳巴泰王朝的首都。纳巴泰人是水设施技术方面的杰出大师,他们为佩特拉修建了伟大的水渠和蓄水池等供水系统。佩特拉城中有一个大竞技场,以希腊罗马的建筑为蓝本而建,可以容纳最多4000个观众。今天,佩特拉陵寝(在El-Deir 修道院上有一个高42米的希腊式庙宇正面建筑)已成为中东文化遗产的重要代表。



Taj Mahal 泰姬陵(公元1630年) 阿格拉,印度

  泰姬陵是爱情和热忱的伟大象征。泰姬陵是莫卧尔王朝第五代皇帝沙贾汗为纪念其已故爱妻而下令修建的陵墓。陵墓由白色大理石砌成,四周是用红砂石筑成的高大围墙,非常宏伟壮观。泰姬陵被公认为穆斯林建筑艺术在印度最杰出、最完美的代表。人们传说,后来沙贾汗皇帝被囚禁起来,每天只能透过小小的囚窗来观望美丽的泰姬陵。



  Pyramids of Giza 古埃及金字塔(公元前2600年 – 公元前2500年) 开罗,埃及

  吉萨金字塔是古代七大奇迹中最古老且唯一得以保存的遗迹,它们在艺术和设计上均达到了完美的顶峰,以致没有后人能超越。这些金字塔是建筑师和工匠们为他们的统治者,也是他们的上帝,而建造的。由于在那个时期哲学思想还没有出现,因此,创造活动不会受到任何质疑。古埃及金字塔是人类史上最完美的建筑,它们是为永恒而诞生的。

  与此同时,我们还整理出来世界新七大奇迹的Google Earth地标,欢迎点击下载。

  点击下载地标文件:世界新七大奇迹

2007年7月1日星期日

一个人的生日,一个人的孤单

一个不想过生日就这样来临。共产党的生日,香港回归十周年,也是我的生日,对我来说,最好的祝福,莫过于亲人的问候,家里人和朋友都不在身边,一个人的生日,或许显得寂寞,或许长大了,慢慢去体验,人就是这样,自己才是值得去相守和陪伴的最好灵魂。
现在的我突然不喜欢热闹,不喜欢留恋于热闹的人群,喧嚣的都市।很孤单,不安。想要将就一点,就发现越将就越孤单。将就着让自己习惯一个人的孤单,没有人看电影,没有人吃饭,更不去看匆匆的人群,却发现如此更觉得孤单,原来将就不来。
依然害怕孤单,却依然一个人。就算心烦意乱,就算没有人做伴,或许它成为一种习惯。我要习惯这种孤单。
抬头望天空,还是找不到答案,想解释为什么总那么孤单,但孤单已经是一种心情,也就无所谓困扰了。
我得不到答案,我想我会一直孤单。今天,告诉自己,生日快乐。
宝贝,在2个星期前,你还告诉我要给我一个我想不到的生日礼物,现在我知道了,这个"礼物"我真的没有想到!