卡巴斯基悲催:美国全力封杀全球第一杀软

虽然在AV-TEST最新杀软评测中,卡巴斯基得到了满分成为第一,但美国依然不允许它出现在政府采购名录中,而这个封杀的事态还在加剧。

据外媒CNET报道称,除了美国的政府机构外,FBI也在悄悄暗示那些私营机构停止使用卡巴斯基,情况十分严重。

报道中提到,能源行业以及使用工业控制系统等企业,都在被警告的名单中,而按照美国的意思,就是先让该国企业尽可能快的从其系统中移除卡巴斯基。

虽然卡巴严正否认自己进行涉嫌收集不法信息的“间谍”活动,甚至可以交出软件源代码,但目前的情况是,这丝毫没有打动当局控制者,而消息中还透露,俄罗斯也正努力移除美国科技公司如微软的操作系统。

对于微软来说,这件事他们暗地里非常开心,因为这样可以让更多的用户来换用Windows Defender,尤其是随着创意者更新全面升级的“新安全中心”。

来自:驱动之家

转自:https://www.oschina.net/news/87919/kaspersky-banned-by-american-government

据说只有程序员才能看懂的时钟 [转]

据说只有程序员才能看懂的时钟,你看明白了吗?

最近发现一个关于程序员的“数学钟”,也就是非常流行的下面这幅图:

以前,只知道其中十一个点钟的分析;对于3点钟,一直没有思路。于是发了一条朋友圈,求助大神解释其中的3点钟。在刘梓溪、贾顾森、黎鸣等大神的指导下,明白了其中是怎么回事。所以这里介绍下这十二个点,应该如何解释。个人观点,仅供参考。

12点

不用说了,1728的立方根。

1点

可能很多人不大知道,这是勒让德常数:

其中的π(x)表示不大于x的素数的个数,可以用近似。

这个值经过勒让德、高斯等一批数学大佬的努力,最后被数学家Charles Jean证明为1。

2点

无穷递缩等比级数的求和,首项为1,公比为1/2,所以它的和为

3点

在刘梓溪、贾顾森、黎鸣等大神的帮助下,终于知道了。

广泛用于XML、HTML中。&#后面接十进制字符,&#x后面接十六进制字符。相当于转义序列吧。

其中十六进制33,等于十进制51,即’3’。

4点

同余问题(Modular Multiplicative Inverse)

5点

ϕ表示黄金分割比,

黄金分割比在斐波那契数列的通项公式中出现。

不过这个地方,我没搞懂,不知道这是不是这幅图作者的笔误?个人认为应该是 而不是 

6点

不用说了,阶乘。

7点

表示6.999999999…其中9的头上一横,表示循环节是9。

那么,6.9999….为什么等于7呢?恩,还是无穷递缩等比级数的视角来考虑,就老少皆宜了。

6.9999…= 6 + 0.9 + 0.09 + 0.009 + 0.0009 + …

后面的那个,

0.9 + 0.09 + 0.009 + 0.0009 + …

首项为0.9,公比为0.1,收敛于1。

因此6.9999… = 7

8点

代表1000(二进制),因为只有第一个是亮的,其他是暗的。(亮为1,暗为0,bitmap的感觉。可能是盲文),因此为8。

9点

四进制。21(四进制) = 2 * 4 + 1 = 9。

10点

组合数,5! /(2! * 3!) = 10

11点

十六进制,A是10,B是11,C是12。注意,注意,这里是0x0B,不是0x08。哈哈。

点评:知识点有点重复,比如进制就有好几个。

来源:程序师

原标题:程序员的时钟

原文:https://www.oschina.net/news/87686/programmer-clock

【UCHome二次开发】模板解析

UCHome模板文件位于/template文件夹下,每个模板文件单独一个文件夹,默认模板文件夹为default。

1、模板的使用配置

在根目录下的config.php中进行配置,确定系统使用的模板,如下:

1

$_SC['template'] = 'default'; //选择模板目录

2、模板的处理

程序中使用到模板文件时,先去模板缓存目录/data/tpl_cache/下查找是否存储模板缓存文件。模板缓存文件命名合适为 “template_模板目录名_模板文件名.php”。如存在则直接使用该缓存的模板文件;如不存在,则先解析对应的模板文件,生成模板缓存文件再进行使用。

3、模板的解析

模板解析是调用/source目录下的function_template.php文件中的parse_template函数来实现的。

解析过程并不复杂,主要是读取模板文件(.htm),用正则表达式替换标记为对应的PHP代码,最终生成一个标准的PHP文件,保存到模板缓存目录/data/tpl_cache/供后续使用。

具体的模板解析过程不做说明,直接查看代码即可。

function parse_template($tpl) {

global $_SGLOBAL;

//包含模板

$_SGLOBAL['sub_tpls'] = array($tpl);

$tplfile = S_ROOT.'./'.$tpl.'.htm';

$objfile = S_ROOT.'./data/tpl_cache/'.str_replace('/','_',$tpl).'.php';

//read

$template = sreadfile($tplfile);

if(empty($template)) {

exit("Template file : $tplfile Not found or have no access!");

}

//模板

$template = preg_replace("/\<\!\-\-\{template\s+([a-z0-9_\/]+)\}\-\-\>/ie", "readtemplate('\\1')", $template);

//处理子页面中的代码

$template = preg_replace("/\<\!\-\-\{template\s+([a-z0-9_\/]+)\}\-\-\>/ie", "readtemplate('\\1')", $template);

//解析模块调用

$template = preg_replace("/\<\!\-\-\{block\/(.+?)\}\-\-\>/ie", "blocktags('\\1')", $template);

//解析广告

$template = preg_replace("/\<\!\-\-\{ad\/(.+?)\}\-\-\>/ie", "adtags('\\1')", $template);

//时间处理

$template = preg_replace("/\<\!\-\-\{date\((.+?)\)\}\-\-\>/ie", "datetags('\\1')", $template);

//头像处理

$template = preg_replace("/\<\!\-\-\{avatar\((.+?)\)\}\-\-\>/ie", "avatartags('\\1')", $template);

//PHP代码

$template = preg_replace("/\<\!\-\-\{eval\s+(.+?)\s*\}\-\-\>/ies", "evaltags('\\1')", $template);

//开始处理

//变量

$var_regexp = "((\\\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)(\[[a-zA-Z0-9_\-\.\"\'\[\]\$\x7f-\xff]+\])*)";

$template = preg_replace("/\<\!\-\-\{(.+?)\}\-\-\>/s", "{\\1}", $template);

$template = preg_replace("/([\n\r]+)\t+/s", "\\1", $template);

$template = preg_replace("/(\\\$[a-zA-Z0-9_\[\]\'\"\$\x7f-\xff]+)\.([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)/s", "\\1['\\2']", $template);

$template = preg_replace("/\{(\\\$[a-zA-Z0-9_\[\]\'\"\$\.\x7f-\xff]+)\}/s", "<?=\\1?>", $template);

$template = preg_replace("/$var_regexp/es", "addquote('<?=\\1?>')", $template);

$template = preg_replace("/\<\?\=\<\?\=$var_regexp\?\>\?\>/es", "addquote('<?=\\1?>')", $template);

//逻辑

$template = preg_replace("/\{elseif\s+(.+?)\}/ies", "stripvtags('<?php } elseif(\\1) { ?>','')", $template);

$template = preg_replace("/\{else\}/is", "<?php } else { ?>", $template);

//循环

for($i = 0; $i < 5; $i++) {

$template = preg_replace("/\{loop\s+(\S+)\s+(\S+)\}(.+?)\{\/loop\}/ies", "stripvtags('<?php if(is_array(\\1)) { foreach(\\1 as \\2) { ?>','\\3<?php } } ?>')", $template);

$template = preg_replace("/\{loop\s+(\S+)\s+(\S+)\s+(\S+)\}(.+?)\{\/loop\}/ies", "stripvtags('<?php if(is_array(\\1)) { foreach(\\1 as \\2 => \\3) { ?>','\\4<?php } } ?>')", $template);

$template = preg_replace("/\{if\s+(.+?)\}(.+?)\{\/if\}/ies", "stripvtags('<?php if(\\1) { ?>','\\2<?php } ?>')", $template);

}

//常量

$template = preg_replace("/\{([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)\}/s", "<?=\\1?>", $template);

//替换

if(!empty($_SGLOBAL['block_search'])) {

$template = str_replace($_SGLOBAL['block_search'], $_SGLOBAL['block_replace'], $template);

}

//换行

$template = preg_replace("/ \?\>[\n\r]*\<\? /s", " ", $template);

//附加处理

$template = "<?php if(!defined('IN_UCHOME')) exit('Access Denied');?><?php subtplcheck('".implode('|', $_SGLOBAL['sub_tpls'])."', '$_SGLOBAL[timestamp]', '$tpl');?>$template<?php ob_out();?>";

//write

if(!swritefile($objfile, $template)) {

exit("File: $objfile can not be write!");

}

}

本文链接:http://witmax.cn/uchome-template-analysis.html

框计算中的需求分析概述

框计算的目标是为用户提供基于搜索框的一站式搜索服务。举例来说,当用户在搜索框中输入“非诚勿扰”时,系统就能明确该query有寻求电视节目视频、电影视频、查找影评、参与讨论及查看相关新闻等需求,然后将这些不同的需求分配给最优的内容资源或应用进行处理,最终精准高效地将满足这些需求的结果展现给用户。图1展示了“框”对query“非诚勿扰”的满足情况。从上面的分析中,我们不难看出,框计算的第一步,就是识别出一个query具有哪些需求,而这正是需求分析要完成的任务。

图1 “非诚勿扰”的框计算结果

需求分析是框计算的入口,因为只有分析出query的需求,才能更好地展现出相应的结果来满足用户的需求。因此对query的需求分析得越准确、覆盖的query准多,用户的满意度则越大。需求分析是框计算中最重要也是难度最大的地方之一。

识别query的需求,最容易想到的方法是查词表。比如将所有的电影、电视剧名都事先收集起来,放到词表中,只要用户输入该词表中的词,就能识别出一个query是否有寻找视频的需求。这种方法的优点是快,但缺点非常明显:首先,这种方法只能将query划分为2个维度,要么有视频需求,要么没有视频需求。但很多视频的名字,具有多方面的含义,在视频上面只是其中一个微弱的含义,如果直接出视频需求,则会极大地伤害用户。比如,有一个广告片的名字叫“百度一下”,这个广告片可能60%以上的用户都不熟悉,如果这60%以上的用户输入“百度一下”,直接给出一个名为“百度一下”的视频观看结果,则这60%以上的用户会感觉非常困惑。其次,这种方法不能很好地满足大部分用户的需求。用户在寻找视频时,表述方法是多种多样的,比如:士兵突击全集、士兵突击 高清、士兵突击全集在线观看等,这3个query都具有强烈的寻找视频需求,但通过查表的方法,却无法识别出该需求。再次,这种方法对电影、电视剧外的视频需求无法满足。有视频需求的往往不止电影、电视剧,流行或新闻时效性的很多东西,都具有强烈的视频需求。比如:西单女孩、中关村男孩、钓鱼岛撞船、朝韩炮击等,多数用户往往都有查看相关视频的需求。最后,这种方法缺乏预测性,识别出的query数量有限。即对于词表中的词条,能够识别出视频需求,但词表外词条,无法识别出视频需求。因此,如果词表的规模为N,则最多只能识别出N个query具有视频需求。

从上面的分析中,我们可以总结出,一个好的需求分析方法,至少要满足如下需求:1)具有很高的准确率以及召回率,即能在识别出90%以上query需求的同时,又能保证识别出来的需求,95%以上都是正确无误的;2)具有良好的预测能力,即能够准确地预测出未知query的需求;3)具有识别需求与解析字段功能,即在识别出query需求的同时,还能高效地从中解析出所需信息。

下面是几个典型的例子。通过这些例子,大家就能对需求分析要完成的任务有一些大体的了解了。

在图2中,需求分析需要完成的任务就是解析出query具有汇率转换的需求,并解析出数额56.7,以及源货币为美元,目标货币为人民币。

图2 直接展现汇率结果

在图3中,需求分析需要识别出该query具有查找火车时刻表的需求,并解析出起点站为北京,终点站为上海。进而直接为用户展现出从北京到上海的火车时刻表,极大地方便了用户获取相关信息。

图3 直接展现火车车次相关信息

图4、图5分别展示了需求分析如何通过识别出query具有查找生僻字以及单位换算的需求,并直接给出答案的过程。这个过程对用户而言是不可见的,但是对系统而言,却需要进行一系列复杂的识别、解析与展现。

图4 满足生僻字查询需求

图5 满足单位换算需求

图6显示了需求分析识别出了用户的query具有寻求招聘职位信息的需求,并解析出公司名,职位2个字段,而后系统直接从相关数据源中检索出所需职位展示给用户的示例。

图6 满足用户搜索招聘职位需求

从上述分析与示例中可以知道,query需求分析的目标是识别出query的意图或感兴趣的领域,并从中抽取出所需字段。要完成这项任务,是一件非常有挑战性的工作。首先,用户query表述方式的多样性给需求分析带来了不少困难。比如,关于寻找天气这一种需求,用户就有上百种不同的表达方式。其次,相近query可能具有截然不同的需求。比如:“从北京到上海车距”与“从北京到上海车票”,前者具有较强的自驾需求,而后者具有较强的火车时刻查询需求。而同样为明星,王菲、张学友,都具有强烈的视频、图片等需求,而李开复、张亚勤等科技明星,从用户的需求来看,最强烈的需求是寻找百科信息,而非视频、图片。最后,用户输入的query往往使用自然语言进行表述,有时还包含缩略与拼写错误,比如:5新加坡元=?美元、5人名币等于多少美元等。这些客观存在的问题,都加大了需求分析的难度。

为更好地满足用户各式各样的需求,强大的需求分析是必须具有的。百度框计算的需求分析,是通过对query的语义分析,结合用户行为分析以及海量计算技术实现的。通过各种手段评估,目前已经达到了很好的效果。举例来说,通过对一天几百亿次用户检索query的分析,使用机器学习的方法,我们就能自动从中学习出用户的各种惯用或冷僻的表述方式,再结合语义分析、信息抽取等技术,就能准确高效地实时识别出query的需求并解析出所需信息,为广大网民提供最便捷的搜索服务以及搜索体验。

文章来源:百度搜索研发部官方博客 转载请注明出处链接。

关于7月5日部分网站收录恢复正常的一点小思考

CHINAZ用户 王骆 投稿

 

7月5号晚上12点之前,发现很多网站的百度收录都恢复了正常,首先说一句,大家赶快去site一下自己的网站,之前被k掉的收录已经在慢慢恢复中,不少站长朋友们可以放心了。

受628事件的影响,众多网站收录狂升或狂降,针对百度这次的抽风门事件不少站长们都处于崩溃的边缘,一开始大家以为是百度更新期的正常波动,过两天会恢复,可是在628事件后的一整个礼拜,百度收录依然没有变化,很多站长都陷入绝望中,都认为百度状况已成定局。

事情往往和我们想象的不一样,今天大家打开电脑的时候肯定会有惊喜,什么惊喜?当然是百度对网站的排名、收录等的恢复,7月5日晚十二点左右部分大中小网站收录、外链恢复正常,只能说百度通过几天的调配,将对网站重新发配兵符。

不知道为什么百度选择了在平时绝对不会跟新的周三进行了调整,不过这次的调整是好事儿了,对于收录狂升的站长,他们那颗悬着的心终于放下了;对于那些收录狂降的站长,终于又看到了手中网站的希望。

百度大幅变动的结果是显现在6月28日,其实早在6月24日百度站长俱乐部中就发出了site不正常的公告,所以准确的来说百度震荡已经马上两个星期了。百度工程师发出公告解释site语法查询不正常的的现象:“百度系统更新过程中出了些状况,导致site语法查询即site:xxx.com返回的数值非常不准”,可见site溶入了新算法,而这个算法是针对网站内容的重复性的,由于这一算法的调整,和之前的有了不兼容,才导致了20现象和首页现象的出现。虽然site的结果出现很大的差异,但是百度也声明不会影响网站收录和排序。

今天百度恢复了一部分网站的收录和排序,可能还有一小部分未恢复,不知道何时才可以完全结束,或许根本就不会结束,因为百度算法是不断调整的,即使这个算法调整结束了又会有新的算法调整出来。针对百度的这种调整站长们可以不必太惊慌,因为如果是百度自身调整的问题,它总会再调整回来,即使我们惊慌那也不是我们能控制的,所以最关键的啊,还是老老实实做好自己的站。

百度啊,有悲也有喜,虽然曾经有SEO高人说,不要将网站依托于搜索引擎,做好自己就可以了,可是对于中小站长来说,搜索引擎就是评判我们网站未来的标准,你叫我们如何放得下呢?我只能说,大家尽量在在做好自己的同时依托搜索引擎,不要把搜索引擎看成唯一就行了。

站长朋友们不用担心自己的网站收录问题,也不用因为这次网站更新没有波及到自己感到郁闷,各位站长们保持一个平常心,做好自己该做的事情,继续更新网站、做好网站内容和外部链接,等到百度下次更新,一定会给你个惊喜!

最后帮所有的站长表达一个愿望,希望百度能稳定的持久点儿,毕竟,小站长们的心伤不起啊!最后弱弱的问一句,谷歌PR不会再降回去吧?本文由秀当网http://www.xiudang.com/ 原创,欢迎转载。

Google PR今日大面积更新

记忆中Google PR好久没有更新了,我的这个博客由于更新不怎么及时所以前段时间PR一直保持在PR=0这个样子,没想到今天一查已经到PR=1了,虽然很低总算有进步了,感谢google对我的支持呀。

看论坛一些站长说刚更新可能不会太稳定,未来几周可能还会有一些调整,还是先不激动了,等过几周再看吧。写这篇文章的目的主要是提醒你也去查一下你的网站PR值,看看你的网站PR值有没有变化。希望你能有意想不到的收获呀!

一个网站的价值如何评估

       笔者有个朋友,是国内某知名杂志的科技线记者。有一次她拟了一份问卷,想请国内的知名网站负责人作答。题目有些尖锐:你认为国内哪些网站值得投资?为什麽?如大家所知,这些网站目前都还看不见利润,那为什麽他们值得投资?贵公司的网站值得投资吗?为什麽?姑且不论最后的结果,这份问卷调查却点出了一个有趣的主题∶商业网站的价值究竟是如何被衡量的? 一般而言,一间公司之所以值得投资是因为它获利,或者有获利的潜力。即使在美国,现在绝大部分的网路公司都还不赚钱,不赚钱的公司为什麽值得投资?一个网站的价值又在哪里?在美国,这麽多投资人购买所谓网路股,这些人心目中所认定的网站价值又是什麽? 有人说,网站之间的战争可以称为眼球的战争。大家都在争取每个网路使用者的青睐。这种看法似乎说明了,一个网站被越多人看,它的价值也就越高。我们看到有一阵子新闻报导Yahoo!的网站页面被浏览次数(Pageview )被她的竞争对手 Lycos超越,它的股价马上就往下跌。投资人根本就不管Yahoo!已经是一间已经赚钱的公司,而 Lycos还不是。 Pageview的产生来自於两个因素。一个是上站人数,一个是每个上站的人看了多少页面。可以写成下列公式∶ Pageview = 上站人数 X 平均每人看多少页 一个网站如果上站人数少,但是每个上站的人停留在这个网站上的时间越久,看的页面越多,它的Pageview可能还是很高。反之也有可能一个站吸引了大量的人,但是每个人停留的时间都很短,所看的页面都很少。 一个网站在经营的时候很难两者都兼顾,因为这牵涉到经营者所要投入的成本会是在生产网路内容上面还是提供网路工具或服务上面。如果要两者都兼顾,大概只有一些所谓的入门网站才做得到。一方面发展内容( 可以吸引网友一页一页的看下去 ),一方面发展工具或服务 ,例如免费的电子信箱( 可以吸引注册的会员,确保每天上网的人数 )。 可是不论Pageview最后是怎麽产生的,慢慢的它的重要性正在降低当中。网路使用者的眼球当然是很重要的,但是如果眼球不能转换成利润,Pageview再高也没用啊,这也开始造成大家对於生产网路内容是否能从网路广告回收利润有了质疑。 华尔街的分析师以及投资人也不是傻瓜,慢慢的大家都发现要依靠卖网路广告来支撑一个网站不但短期来看不可能,就算网路广告的市场不断成长,长期来看广告收入也是不足以支撑网站营运。先前大家之所以这麽重视Pageview,是因为这某种程度代表了网路广告的收入可以增加。电视广告之所以贵,是因为收视率高,这种想法很合理吧! 但是当大家发现收视率再高,从广告所得的利润却不成比例的时候,网站经营者的经营方向就开始慢慢的改变了,华尔街投资人也开始用不同的方法在评估一个网站的价值。Pageview的数字大小不再代表一切,上站的人数,甚至一个网站的注册会员人数,要比Pageview来的重要的多。 原因很简单,因为电子商务未来将是一个网站收入的主要来源。因此,「人头」比「眼球」重要的多。一个电子商务的网站,Pageview不一定要高,只要上站的人多就好。甚至於上站的人不必多,只要上站的每个人的成交率高就好。在这样的想法背后最重要的是,网友的个人资料Database有着非比寻常的重要性。 以前的大型网站以网路媒体自居,提供内容以换取广告利润。现在的大型网站提供内容的目的在於经营会员,最后将会员的资料用於经营电子商务,整个网站的典范正在慢慢的转移当中。 如何评估一个网站的价值?我们不要忘了,虽然目前做网站大家都还不赚钱,但是评估一个商业网站的价值,最后还是要回归到它是否有获利的能力才是。 文章转自:中国站长资讯网

XML Schema 与 XML DTD的技术比较与分析

引言

XML DTD(XML的文档类型定义)是近几年来XML技术领域所使用的最广泛的一种模式。但是,由于XML DTD并不能完全满足XML自动化处理的要求,例如不能很好实现应用程序不同模块间的相互协调,缺乏对文档结构、属性、数据类型等约束的足够描述等等,所以W3C于2001年5月正式推荐XML Schema为XML 的标准模式。显然,W3C希望以XML Schema来作为XML模式描述语言的主流,并逐渐代替XML DTD。那么XML Schema与XML DTD相比到底有哪些优势呢,XML DTD是否真的会在XML的模式描述领域中逐渐消失呢?

XML模式与XML格式

XML模式是指用来描述XML结构、约束等因素的语言,例如XML Schema、XML DTD、XDR,SOX等等。XML格式则是XML文档本身所具有的格式。本文以XML Schema来代表W3C所推荐的XML Schema模式标准,而以”XML模式”来代表所有的XML模式描述语言。

从模式的描述语言来说,XML Schema和XML DTD都属于语法模式。与概念模式不同,语法模式在对同一事物描述时,可以采用不同的语法,例如在对关系模式描述时,无论是使用XML Schema还是XML DTD,都既可以用元素也可以用属性来描述关系模式的列。

模式必须以某种格式来表示,XML Schema的格式与XML DTD的格式有着非常明显的区别,XML Schema事实上也是XML的一种应用,也就是说XML Schema的格式与XML的格式是完全相同的,而作为SGML DTD的一个子集,XML DTD具有着与XML格式完全不同的格式。这种区别会给XML Schema的使用带来许多好处:

  1. XML用户在使用XML Schema的时候,不需要为了理解XML Schema而重新学习,节省了时间;
  2. 由于XML Schema本身也是一种XML,所以许多的XML编辑工具、API 开发包、XML语法分析器可以直接的应用到XML Schema,而不需要修改。
  3. 作为XML的一个应用,XML Schema理所当然的继承了XML的自描述性和可扩展性,这使得XML Schema 更具有可读性和灵活性。
  4. 由于格式完全与XML一样,XML Schema除了可以像XML一样处理外,也可以同它所描述的XML文档以同样的方式存储在一起,方便管理。
  5. XML Schema与XML格式的一致性,使得以XML为数据交换的应用系统之间,也可以方便的进行模式交换。
  6. XML有非常高的合法性要求,XML DTD对XML的描述,往往也被用作验证XML合法性的一个基础,但是XML DTD本身的合法性却缺少较好的验证机制,必需独立处理。XML Schema则不同,它与XML有着同样的合法性验证机制。

数据类型

或许,对于许多开发人员来讲,XML Schema与XML DTD相比的一个最显著的特征,就是其对数据类型的支持了。这完全是因为XML DTD提供的数据类型只有CDATA 、Enumerated、NMTOKEN 、NMTOKENS等十种内置(built-in)数据类型。这样少的数据类型通常无法满足文档的可理解性和数据交换的需要。XML Schema则不同,它内置了三十七种数据类型,如long,int,short,double等常用的数据类型,并通过将数据类型表示为由value space、lexical space和facet三部分组成的三元组而获得更大的灵活性。但是, XML Schema数据类型的真正灵活性来自于其对用户自定义类型的支持。XML Schema提供两种方式来实现数据类型的定义。

1)简单类型定义(simpleType),即在XML Schema内置的数据类型基础上或其它由XML Schema内置的数据类型继承或定义所得到的简单的数据类型(simpleType)基础上,通过restriction,list 或者 union方式定义新的数据类型。

 

更多信息:http://www.ibm.com/developerworks/cn/xml/x-sd/

谷歌和微软等引入网址分享协议OExchange

2010年06月03日11:21       techcrunchchina.com 腾讯科技

[导读]Google(谷歌)开发网络提倡者是这样介绍这个新协议的:“提高在线内容分享数量和质量的关键在于改善用户互动。OExchange可以简化扩网站分享机制,让人们专注于分享内容,而不是分享方法。”

谷歌和微软等引入网址分享协议OExchange

OExchange 是一种适用于URL(网址)内容分享的简单协议,今天一些在线服务提供商和社交网站共同引入了该协议。这个开放链接分享协议获得了来自Google(谷歌)、微软、LinkedIn、Digg、Instapaper、StumbleUpon、Clearspring Technologies等公司的支持。

OExchange可以建立一种通用的方式,让Google Buzz、Posterous等服务接受内容。该协议可以定义第三方工具(如Clearspring的书签和分享工具AddThis)如何发现内容,并将内容分享到这些服务;并且可以确定分享工具如何读取和设定用户的分享习惯。

OExchange采用开放网络基金(Open Web Foundation)协议。

Chris Messina(Google开发网络提倡者)是这样介绍这个新协议的:“提高在线内容分享数量和质量的关键在于改善用户互动。OExchange可以简化扩网站分享机制,让人们专注于分享内容,而不是分享方法。”

Gmail talk 机器人 IMified API

IMified API

An application connected to the IMified platform is in its simplest form a dynamic web page that resides on any HTTP server and listens for incoming messages then outputs a response. You specify an endpoint URL in your bots’ settings. Developers may also "push" messages to users, as well as request a users presence via a REST api call to IMified’s server.

Receiving and Replying to Incoming Messages

When a user sends a message to your bot, IMified will forward the message along with some other post variables to a URL on your server. The table below outlines the post variables you can expect to receive.

botkey
botkey uniquely identifies the bot that the message is being sent to.

userkey
userkey uniquely identifies a user of your bot and can be used for instance, to associate the IM user with a user in your system. Userkey is variable length, no greater than 50 characters.

network
Possible values are:
Jabber, AIM, MSN, Yahoo, Gtalk, Twitter or SMS

user
user is the actual screen name of the user calling your bot

channel
Possible values are: public or private
Default: private
Primarily used to distinguish public @replies and private direct messages for twitter

msg
msg is the text of the message sent to your bot. This field is useful for quickly reading the value of the current message sent. For bots that are command based as opposed to "menu driven", and do not need to maintain "state", the msg variable can be used to read and respond to commands sent to your bot.

step
step is a numeric value which represents what step the user is on and is incremented each time a call to the bot is made. For instance, when an IM user first sends a message to your bot, the step variable will be 1. The second message sent will have a step value of 2 and so on, until you reset the bot or provide a function for your user to reset the bot.

valuex
value1 – valuex are the values entered by the end user for each respective step. These variables along with the step variable can be used to maintain state in your bot.

 

http://www.imified.com/developers/api

SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

最近写项目要做一个接口,服务器上使用正常,但拿到开发环境上发现老出问题,最后找到原因是因为SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed错误,其实在Windows下直接用一下语句即可解决

curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0); 
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);

修改apache日志记录Baidu蜘蛛爬行

为了能更方便的了解Baidu蜘蛛来访的情况,
我们单独写了个只记录Baidu蜘蛛来访记录。

SetEnvIfNoCase User-Agent Baiduspider baidu_robot
LogFormat “%h %t \”%r\” %>s %b” robot
CustomLog “|/usr/local/apache2.2.0/bin/rotatelogs /usr/local/apache2.2.0/logs/liyunde.org_baidu_%Y%m%d.txt 86400 480″ robot env=baidu_robot

这样在logs目录下,就会每天产生liyunde.org_baidu_年月日.txt的日志了,每条的记录和下面的类似:
220.181.38.90 [24/Dec/2008:23:59:33 +0800] “GET / HTTP/1.1″ 200 8427

方法很简单,如果你要只记录其他蜘蛛的记录也很容易,如法炮制就行了,可能做英文站的站长会有这种需要

Alexa反向链接的算法

  做网站快两年了,www.xytv.cn的PR也达到了5,Alexa排名也100几万了,可是Alexa的反向链接却保持在63个,一直很不解,明明和不少同类且质量不错的网站交换了链接了,百度和Google查询反向链接也不少了。

  今天无意中看到一篇文章,然后通过对我的网站反向链接的分析,原来Alexa反向链接的算法有别于一般的搜索引擎。那么,什么样的链接才会被它视为反向链接呢?如果一个网站搜索引擎收录正常,而且链接到你的网站,而你的网站没有链接到这个网站,那么这就是一个有效的反向外链。所以一般的交换链接可能不会被Alexa视为反向链接,而应该从网站内容着手,内容做好了,自然会有人帮你无偿地宣传或链接;同时,在其它网站上适当的AD应该也是必要的

百度统计推出百度收录量查询功能

  作为百度联盟为站长提供的重要工具之一百度统计再出重拳——于7月27日正式上线“百度收录量查询”功能。即日起,使用百度统计的站长可免费及时查看网站被搜索引擎收录的情况和数据报告,这是史上第一次出现的,唯一能够准确看到百度搜索对网站收录情况的统计功能。

  对于大部分网站来说,搜索引擎的入口效应异常明显,通常约有超过半数的流量来自于搜索引擎的导入,网站页面被搜索引擎的收录状况将直接决定网站的流量表现。

  据悉,百度统计的“百度收录量查询”完全免费,网站站长通过它可以及时查看搜索引擎对自己网站的收录量及增减情况等指标,不仅可以查询网站全站的收录量,还可以输入查询网站下的子域名的收录量,百度搜索每次更新,“百度收录量查询”也会显示最新数据,趋势图的引入则更能直观地显示一定时间段内的收录变化曲线。

  此前,网站站长查询网站收录情况,只能借助百度搜索“site”命令,而得到的数字只是一个估算值,与真实的数据存在较大的误差。比如说某网站的真实收录值是5万,但用“site”命令搜索到的可能仅有1.5万篇,而“百度收录量查询”基于百度后台数据库样本,反馈回来的数据非常精准,基本能达到100%。从此以后站长查收录,可以告别“site”时代了。

  专业人士认为,百度统计收录功能的推出,使搜索引擎收录数据更加透明和开放,方便站长进行网站精细化管理,提高网站流量统计、分析和优化的决策质量和效果。之前各个网站搜索收录数量和动态变化数据的不精准,使网站做搜索引擎优化缺少依据。现在百度统计的收录报告功能可较好反映出网站对搜索引擎的友好性和健康度,以“百度收录量查询”作为参考数据,站长就可以清晰地了解自身网站的运行状况,优化路径和推广策略,为后续有计划地优化网站提供了依据,有效提高搜索引擎的收录数量,最终实现流量的增长和转化。而据悉,针对搜索引擎良性优化有益的相关数据,百度统计也正在酝酿更大胆的披露。

  百度联盟相关负责人指出, 百度统计的不断升级与免费开放,正是扶持广大网站站长成长发展的具体体现之一,也是百度联盟一直倡导的“让伙伴更强”的再次印证。未来,百度联盟将继续这一理念,持续优化各类产品,举办有益于站长成长的各种活动,切实帮助站长在获取收益的同时,提升综合实力,促进整个行业的健康、有序、繁荣发展。