存档

‘未分类’ 分类的存档

转 面向生产环境的SOA系统设计 by 支付宝程立

2009年8月31日 2 条评论
学习一下前辈的思路,也学习一下怎么做presentation。

关于 PPT 作者

程立是支付宝公司的首席架构师。他从2004年起参与支付宝与淘宝网的建设,2005年正式成为支付宝人,随着支付宝的业务与技术的成长,从开发工程师、架构师到首席架构师一路走来,全身心投入并见证了支付宝业务与系统发展的完整过程。

182d320b

分类: 未分类 标签: ,

转:内容型网站面向搜索引擎蜘蛛和搜索用户的优化

2009年6月28日 没有评论

作者:车东
http://www.chedong.com/blog/archives/001475.html

面向机器的抓取优化
1 缺省域名唯一化:缺省foobar.com 设置301跳转到 www.foobar.com 一方面减少搜索引擎页面消重的负担,一方面可以将针对相同内容的反向链接权重汇总。对于缺省使用https访问的网站,如果不跳转(比如以前的支付宝), 往往还会有浏览器提示安全证书路径不匹配的问题; 另外: 在Google Webmaster tools中也有缺省域名的配置;
2 被遗忘的流量:想办法搜集域名解析失败和拼写错误导致的流量流失;曾经启用过的域名,就尽量不要删除,一直保留并设置转向到最新的地址;有渠道取到DNS的这种记录吗?
3 404页面的运营:返回hard 404(返回http header而不是html 404 header),统计并跟踪带有referer的404日志,修正这些问题;
4 节省HEAD类请求:对于一些蜘蛛(主要是百度蜘蛛),经常使用head请求来检查旧链接的有效性,启示可以针对这些请求做直接返回304处理,以节省服务器的处理资源;
5 永久转向:避免302,转向尽量使用301到最终地址;
6 重视站内搜索: 利用搜索做内容之间的关联和发现,每篇文章提供相关文章等功能;而能解析出搜索来源关键词的404访问尤其应该通过站内搜索为用户提供其他可选内容。
7 利用google webmaster tools等跟踪收录和错误抓取问题并及时修正;
8 归档页面URL标准化:虽说搜索引擎声称动态页面和静态页面收录和RANK不受影响,但为了方便管理,最好还是将内容页面尽量标准化成静态地址,并页面中尽量加上唯一化的地址,减少搜索引擎抓到相同内容的不同链接后消重的麻烦,比如各种论坛的内页: <link rel=”canonical” href=”http://www.example.com/discuz/thread-405413-1-2.html” />
面向用户的内容优化
1 自身主动检查spam,防止大量的镜像内容,搜索引擎对于spam处理不利的站点,往往也只好使用整体降权的方式;
2 避免用户因为使用第三方计数器,JS小功能(比如:样式很炫的用户鼠标指针等)被植入病毒木马,Google会向比较严重的站点的webmaster@信箱发送邮件提醒相关问题,所以这个邮箱一定要创建并定期查看;
3 结构化数据源: RSS、sitemaps归档入口,而最高效率的是利用各种ping接口将最新内容即时发送给搜索引擎(最近百度也都支持相应接口和协议了);
4 重视标题和meta description在搜索结果页上的可读性: meta description不参与排序,但良好的标题和meta description往往比纯算法提示出来的摘要更接近用户目标,在现有排名位置下,争取吸引用户更多的点击也是一个有效的策略;
5 应有的反向链接的获得: 主动加上版权声明

分类: 未分类 标签: ,

2009互联网预言与分析

2009年1月2日 没有评论

年终年初,免不了各种盘点加预言,ReadWriteWeb 上有一篇关于2009年互联网走向的预言,翻译如下:

理查德·迈克马努斯(Richard MacManus):

1、iTunes增添社交网络功能,但仍然是一个封闭的开发系统。

2、Facebook签约使用谷歌的OpenSocial,谷歌将继续为OpenSocial寻求更多支持者。

3、雅虎将自己出售给一家大型媒体公司,但买主不是微软。

4、微软发布很酷的网络版Office,之后谷歌将发布新版Google Docs。

5、健康web应用软件获得主流用户和媒体关注。

6、Google Reader、Twitter、Facebook等服务获得具有过滤、推理、推荐功能的应用软件。

7、Digg、Twitter、Technorati不会被收购,FriendFeed可能被谷歌收购。

8、鉴于经济衰退,媒体推出与当前不同的创新型网络广告,新的广告效果评测标准横空出世。

马歇尔·柯克帕特里克(Marshall Kirkpatrick):

1、生活流(lifestreaming,指通过博客、微博客、多媒体等记录个人日常活动。)继续发展。2008年生活流迎来了大发展。

2、Facebook继续带来更多惊喜。

3、鉴于Facebook的主导地位,MySpace、AOL和雅虎等媒体巨头给予OpenID更多支持。

4、“双重登录”策略大行其道。例如,用户可以利用OpenID或Facebook Connect等专有标准登录网站。

5、出现1或2种让我们感到震惊的用户界面。

阅读全文…

十二月年终壁纸赏鉴 – 附送美女壁纸几张

2008年12月3日 没有评论

草稿里最容易搞定的莫过于每月的墙纸赏鉴了。这个月是2008年的最后一个月了,对于老外来说,有个非常重要的节日-圣诞节。这个节日在中国也快成了日常节日了。

顺手奉送几张美女墙纸,咔咔。

十二月壁纸 墙纸

十二月墙纸 壁纸

十二月壁纸

十二月墙纸桌面

 下载以上墙纸,请移步:http://www.smashingmagazine.com/2008/11/30/desktop-wallpaper-calendar-december-2008/

性感帅气的劳拉,为啥这两个形容词能放在一起

劳拉性感壁纸

http://www.deskcity.com/daily/index/330.html

精灵少女

暗夜精灵美女

http://www.deskcity.com/daily/index/323.html

分类: 未分类 标签: ,

CSS3中的伪类概览

2008年10月6日 3 条评论

CSS的目标,或者说是革命纲领就是:“将样式与内容分离”,这个目标能否实现,很大程度上依赖于CSS访问内容的能力。在CSS3中,这个任务得到了有力支持,强大的结构伪类Structural pseudo-classes出现了。提供了非常丰富的查询方式,让CSS选择器变得如此和蔼可亲了。让我们来快速概览一下,同时期待着浏览器整体换代的来到,毕竟只有最新的浏览器才支持CSS3选择器及其他特性。 支持浏览器:Firefox 3.1+, IE8+ (only in IE8 standards mode), and Safari 3.1+

CSS结构伪类

Method Description
E:root 选择文档的根结点,在HTML文档中也就是HTML节点
E:first-child 选择该节点的第一个子节点。
E:last-child 选择该节点的最后一个子节点。
E:nth-child(n) 选择指定节点的第N个子节点。
示例:

li:nth-child(1) /*选择Li元素的第一个节点*/

E:nth-last-child(n) 和上面的伪类逆序,选择指定节点从最后一个子节点开始的第N个子节点示例:

li:nth-last-child(1) /*选择Li节点的最后一个子节点*/

E:nth-of-type(n) 选择父节点之下,所有指定类型的的节点中的第N个,有点晦涩的一句话。还是看示例比较清楚:

ul li:nth-of-type(1) /*选择当前页面上所有Ul之下的第一个Li节点,包含嵌套的Ul之下的第一个Li*/
p:nth-of-type(odd) /*选择所有的奇数项的P元素,一下子解决了表格的交替背景色问题*/

E:nth-last-of-type(n) 选择父节点之下,所有指定类型的节点中倒序的第N个节点,和上面的正好顺序相反

示例:

option:nth-last-of-type(2) /*选择所有的select下倒数第二个option节点*/
option:nth-last-of-type(-n+3) /*选择倒数3个option节点,是多重选择*/

E:first-of-type 和上面的两个伪类类似,不过这个简单版,就是取第一个或者是最后一个示例:

p>quote:first-of-type /*选在所有P节点下第一个quote节点*/

E:last-of-type 同上:

tr>td:last-of-type /*选择每一行的最后一个单元格*/

E:only-of-type 选择在父节点之下,符合所有子节点中只有一个该类型节点条件的节点。又是比较难懂的一句话,也就是说,在子节点集合中,该元素必须符合指定类型,同时仅含有一个的情况。示例:

div>p:only-of-type /*s选择Div之下,如果只含有一个P节点,选择该节点*/
input[type="radio"]:only-of-type /*如果form中,只有一个input类型为radio的,选择该input节点*/

E:only-child 和上面类似,不过更加严格,仅当符合,该父节点下仅含有一个子节点的情况。示例:

div>p:only-child /*选择那些Div下只有一个p节点的p节点*/

E:empty 选择那些没有子节点的节点,也就是选择那些叶子节点(包含text节点). HTML注释不计入子节点数。来看一下具体例子:下面的都是空节点Empty Elements:

<p></p>
<p><!–Empty
paragraph</p>

以下都是非空节点Non Empty:

<p>Welcome to oncontextmenu=”return false;” id=KonaLink1
onmouseover=adlinkMouseOver(event,this,1);
style=”POSITION: static; TEXT-DECORATION: underline! important”
onclick=adlinkMouseClick(event,this,1); onmouseout=adlinkMouseOut(event,this,1);
href=”http://www.javascriptkit.com/dhtmltutors/structuralcss.shtml#” mce_href=”http://www.javascriptkit.com/dhtmltutors/structuralcss.shtml#”
target=_top>
style=”FONT-WEIGHT: 400; FONT-SIZE: 13px; COLOR: blue! important; FONT-FAMILY: Courier new; POSITION: static”
color=blue> style=”FONT-WEIGHT: 400; FONT-SIZE: 13px; COLOR: blue! important; FONT-FAMILY: Courier new; POSITION: relative”>JavaScript
Kit</p>
<p><b></b></p>

E:target 这是一个很玄妙的伪类,可以定位到当前页面url跳转位置。还是结合示例来看:当前页面的url:http://www.javascriptkit.com/dhtmltutors/structuralcss.shtml#该伪类可以选中跳转的anchor,在其前面加上一个箭头图标
<style
type=”text/css”>
*:target:before{
content: url(arrow.gif) /*adds an
image in front of the current active HTML
anchor*/
}
</style>
<body>
<a
href=”#whatsnew” mce_href=”#whatsnew”>Jump to what’s new</a>

<a
name=”whatsnew”></a><b>New content
1…</b>
</body>

Also see:
href=”http://www.javascriptkit.com/dhtmltutors/cssgenerate2.shtml” mce_href=”http://www.javascriptkit.com/dhtmltutors/cssgenerate2.shtml”>Added
Generated Content in CSS2.

:not(s) 这个被称为逆伪类(很不准确的翻译,还是看原文吧)negation pseudo-class, “:not(s)
选择不是指定类型的节点,节点类型由参数传入(不含伪类元素本身)示例:

:not(p) /*选择所有不是P的节点*/
input:not([type="submit"]) /*选择所有不是submit按钮的input元素*/
option:not([selected="selected"]) /*选择所有不是默认选中的option*/

E:enabled 选择enabled节点。示例:

input[type="text"]:enabled  /*选择所有enabled的text节点*/
input [type="submit"]:enabled /*选择所有类型为submit,且enabled的节点*/

E:disabled 选择diabled节点。示例:

input[type="text"]:disabled /* /*selects text boxes that
are disabled*/
input[type="submit"]:disabled /*selects submit buttons that
are disabled*/

E:checked 选择checked节点。通常为checkbox和radiobox元素。示例:

input:checked /*selects radio or checkbox elements that are
currently checked*/
input[type="radio"]:checked /*selects radio buttons that
are currently checked*/

CSS结构伪类中的表达式

在伪类“E:nth-child(n)” 和 “E:nth-of-type(n)”中,都支持参数传入,前面的例子中,我们只是简单的传入数字,选择指定位置的节点,其实这里的参数有着非常玄妙的表达式。我们来看一下:

首先他的表达式结构,或者说这个序列的通式为:

an+b

  • n n为该类型元素本身或者指定数字(大于等于0的整数)位置的元素。这是一个基数。
  • a 为n的系数。
  • b 偏移量。

单看公式是比较难以理解的,具体看些例子好了。

p:nth-of-type(n+1) /*选择所有第一个子节点之后的子节点,含第一个,等价于全部子节点,p:nth-of-type(n),其实是一个效果*/
p:nth-of-type(n+5) /*选择所有第五个子节点之后的节点,含第五个*/
p:nth-of-type(3n+2) /*选择,第二个,第五个,第八个节点,是一个数列,表达式即为通式。*/

tr:nth-of-type(-n+5) /*数学游戏,其实就是前五行,因为负数不具意义,所以当表达式结果为负数时,停止求值*/
tr:nth-last-child(-n+5) /*同上*/

所以原来可能让我们觉得很麻烦的交替显示,只需要这样:

option:nth-of-type(even) /*even OPTIONs in a SELECT*/
option:nth-of-type(2n) /*same as proceeding*/

option:nth-of-type(odd) /*odd OPTIONs in a SELECT*/
option:nth-of-type(2n+1) /*same as proceeding*/

大概的内容就这些了,剩下就是无尽的等待了。看他们什么时候开完会,有的时候也不只是中国人开会慢。

分类: 未分类 标签: ,

[转]原来今天是裸奔节

2008年4月9日 没有评论

原文地址:http://blog.ashchan.com/archive/2008/04/05/css-naked-day/ 

 今天在整理收藏夹的时候,发现好几个国外站点都裸奔了,一开始还以为是网络问题,后来突然想起来是因为css naked day。顺便转一篇css裸奔节的资料。

第三届CSS裸奔节来了,今年(CSS Naked Day ‘08)的时间定在4月9日。

活动目的

CSS裸奔节的目的是推动Web标准。简洁为美。使用正确的(x)html,语义标记,良好的层次结构。暂时把页面设计抛弃,直接展示<body>吧。

如何参与

这里填表报名,报名后一个小时内,你的网站会在官方列表中出现。

到了4月9日,将你网站上的CSS移除,抛掉页面设计。

你也可以在那天把以下HTML内容放置于网站顶部:

<h3>What happened to the design?</h3> <p>To know more about why styles are disabled on this website visit the <a href="http://naked.dustindiaz.com" mce_href="http://naked.dustindiaz.com" title="Web Standards Naked Day Host Website"> Annual CSS Naked Day</a> website for more information.</p>

注:加上这些标注仅仅是为了向你网站的访问者说明情况,并不是为了带来流量或赚钱。CSS裸奔官方网站上没有任何广告,以后也不会放置广告。

活动日期

很多人非常关心CSS裸奔节的活动时间。今年定于4月9日,理由如下:

  • 活动日期应该定于周二、周三或周四,这几天网站流量比较高
  • 时间应该在4月份的第一周前后
  • 不应该是4月1日(要不谁信呢,呵呵)
  • 在活动通告发出至活动日期,至少有五天时间

今年来不及了,等明年了,嘿嘿

分类: 未分类 标签: ,