BillKnow.com

Who Know ? Bill Know!

Archive for the '互联网' Category

09 十二月
0Comments

木秀于林,风必摧之

    最近,在文化部、广电总急等部门的领导下,一场扫黄整风运动开展得如火如荼,大批网站纷纷倒下,很多网站、服务器只能搬迁至国外来躲避灾难。这次有关部门的扫荡是很彻底的,他们采取的是拔线断网这种宁可错杀一千,不可放过一个的大屠杀方式。这好比在山上发现一个马蜂窝,然后放把火将整个山都化为灰烬。

    整风运动也越来越频繁了,从过去的一年几次,再到月经扫(hecaitou亦有贡献),再到日日扫,站长们不搬家都不行了。设想一下,要是你住的地方每天有个疯狗在你家门口乱犬,而这个疯狗又是上头派来的,你除了搬家还能干啥?

    而整风的理由是什么呢?那就是屡试不爽的所谓保护青少年和保护版权。关于这两个话题不作评价,要不一不小心就被保护了。

    这样的监管体系,自然也就很难产生有创新、有价值的东西。最要命的是自己没有,别人给的还不能要,只能活活饿死。因此市场上充斥着大量的国产烂书、烂片,这样的情况下,我们还能看啥呢?宅男宅女们不是在家里打怪,就会在街上变态。对于不玩网游的我来说,还好有个特殊爱好,那就是花鼓戏,无聊至极我还可以在家哼个小调。当然在家唱个小曲我也是有担心的,当我放声歌唱“胡大姐,你是我的妻喽哦”,我担心隔壁的大妈,大婶上楼来抱怨:“XX同志,我们都是有夫之人了,你不要唱得那么深情啊!”。

     树大招风,在这个狂风肆虐的国度,甘愿做一颗小小草。

04 三月
0Comments

Feedly Greader的另一种阅读方式

习惯了通过google reader来阅读RSS的用户,可以尝试使用feedly来阅读gr中订阅的文章了。feedly在排版和体验上都进行了优化,界面布局类似于传统网站,同时也支持多种排版方式,例如按照文章日期,按照博主,按照digest的方式来重新排版文章。
用户可以从如下地址下载feedly,feedly为firefox插件,安装完毕后,会在地址栏左边显示feedly图标,点击此图标后就会进入阅读界面,插件会自动同步gr中的数据。另外feedly还支持将文章分享到几大常用网站,如del.

阅读方式的改进,极大的优化了用户体验,这就是艺术和创新啊,同样的数据,不同的排版方式,不一样的体验。GR是创造,feedly就是创新。

web2.0时代,新的网络产品层出不穷,有创新的,有整合的。例如这里又来了个制作视频列表的网站Embedr.com,可以将视频打包成“播放列表”后在发布。整合方面做得最成功的当属google了,因为他将各大网站的内容都收录了,还提供搜索功能,你写什么,他就收录什么,你要什么,他就给你输出什么,还有什么比这更强大的呢。

在这个资源丰富的互联网时代,如果能将别人的东西改造,整合,用好,也许就已经很成功了。

11 十一月
1Comment

WordPress反垃圾评论

前段时间困于垃圾评论,隔断时间就要手工删掉上百的垃圾留言,自从装上reCAPTCHA后,垃圾留言就销声匿迹了,腰不酸,背不痛了。

关于reCAPTCHA,这里还有段介绍,他的贡献不仅仅在于反垃圾邮件:

reCAPTCHA 是卡内基梅隆大学的一帮人搞出来的,它的技术并没有什么先进之处,但是创意有点意思。世界上面有很多将图书电子化的计划,基本是把书籍扫描了以后用 OCR 软件识别。有些情况下面 OCR 软件自己觉得某些词的识别结果并不是非常有把握。通常情况下面是通过雇佣劳力来肉眼校对。reCAPTCHA 项目认为这个工作不妨交给全世界大量填写认证码的人来完成。

一般图形认证码系统都是只生成一个单词的,reCAPTCHA 生成的图片里面有两个单词,其中一个是机器生成的,有正确结果的单词,另一个则是扫描出来的有问题的单词,这个词没有正确结果。如果用户提交上来的结果里面机器生成的那个是对的,那么系统就认为另外一个也很有可能是对的。一幅扫描图片展示给多个用户如果结果都是一样的,他就将这个结果作为最终校对结果。这样就实现了利用人力来分布式校对文稿的目的。更具体的细节可以看 http://recaptcha.net/learnmore.html

在使用中会显示两个单词,其中一个单词是已知正确的,必须输入正确,另外一个是未确定正确内容的,那么通过这个步骤,用户在输入验证码的过程中,就同时实现了两个功能,一个是防spam,另外一个就是人力OCR。

摘自:http://seo.g2soft.net/2008/03/10/recaptcha-help-ocr.html

安装地址如下,需要注册才能安装。

http://recaptcha.net/plugins/wordpress/

06 十月
0Comments

从李一男跳到百度有感

2006年港湾被华为收购后,李一男被迫回到华为并担任首席电信科学家,后来李一男离开了华为总部,到华为上海公司,担任终端公司副总裁并主要负责手机芯片的研发生产。

但近几年国产手机市场非常低迷,而跳到百度对于他来说也是不错的选择,对于百度来说正缺少通信、终端产品的专家。

互联网的发展带动了PC产业的发展,移动互联网的发展也将带动手机等移动终端产品的发展。作为在通信传输、手机芯片领域有着非常深厚的积淀的李一男,其加盟互联网公司,无疑是融合IT、通信与互联网的最佳选择。

以下是几点看法::

1.百度有可能学习google推出自己的手机终端;

2.未来移动互联网将会更加蓬勃发展;

3.多媒体、终端产品、网络将会更加融合

PS:我一直比较看好手机软件市场的另一家公司,我们公司创始人创办的另一家公司:北京易路联动

02 九月
0Comments

Google Chrome浏览器发布

Chrome发布后,我第一时间下载进行了适用,感觉就是一个字:爽。

下载地址: http://www.google.com/chrome

以下是Chrome一些特点:

1.界面清爽,支持多标签浏览

2.支持Firefox的书签、密码导入

更详细的介绍看下面google官方的说明:

为什么要开发Google Chrome呢?因为我们相信它能给用户带来更多价值,同时有利于推动Web创新。

在谷歌,大量的工作都是通过浏览器进行的,搜索、聊天、收发邮件和协同开发等。在空闲时间,我们通过浏览器购物,登录网络银行,读新闻,与好友交流等。每天花费在浏览器上的时间如此之多,我们不得不考虑什么样的浏览器最适合当前的Web发展趋势。如今,网页已经从简单的文本页面发展到富媒体页面,这就需要我们重新设计网络浏览器。我们真正需要的不仅仅是一款浏览器,而是一个现代化的网页及应用平台。这就是我们开发Google Chrome的初衷。

从外观即可看出,Google Chrome的设计简单、高效,是一款真正的Web浏览工具。与谷歌主页一样,Google Chrome的特点是简洁、快速。

Google Chrome支持多标签浏览,每个标签页面都在独立的”沙箱”内运行,在提高安全性的同时,一个标签页面的崩溃也不会导致其他标签页面被关闭。Google Chrome基于更强大的JavaScript V8引擎,这是当前Web浏览器所无法实现的。

当然,这只是一个开始,Google Chrome在很多方面还需要进一步完善。此次,我们即将推出的是Windows下的测试版本,供大家讨论,我们也希望能够得到用户的反馈。目前, Mac和Linux版本尚在开发之中,同样将秉承快速、高效的特点。

Google Chrome是一款开源软件,借鉴了苹果的WebKit、Mozilla的Firefox及其他相关应用。同样,我们也将开放Google Chrome的全部源代码。我们期望与整个开源社区合作,共同推动Web创新。

在当前Web市场,选择和创新越来越多,我们希望Google Chrome能成为一个新选择,推动Web服务更上一层楼。

另外Google 之前还发布了一本38页的漫画,介绍了Google Chrome的更多技术细节,你可以通过点击这里来观看该漫画。

21 六月
0Comments

国内外开源SNS应用

SNS网站风起云涌,涌现了一批大众化的、专业化的SNS,对于想自己架设SNS网站又不想花力气开发的人来说,以下开源SNS应用是不错的选择。

国外:

DotNode:功能和界面完全是Orkut的克隆版。最早的开源SNS系统。目前还处于开发的初期,功能和安全都还比较脆弱。DotNode更像是一个实验版本(因为Orkut本身就不算是一个成功的产品)。

AroundMe:定制性强。默认提供的功能就比较多,如果要达到自己的使用标准,需要进行一些二次开发。因为AroundMe已经递交到SF.Net,这看起来更像是程序员们使用的一个实验品,所以在功能上比较全,包括Blog、WIKI、论坛、圈子、频道等功能。

Elgg:更像一个博客程序,每个人拥有自己的blog地址,类似于 donews.net的url方式。每个作者之间可以互加好友。与blog.donews不同的是,Elgg每个人都可以建立自己的社区主题板块,并且这个社区的形式跟Google Group类似。值得一提的是,Elgg的汉化是这四个程序中最好的。

PeopleAggregator:相比之下,PeopleAggregator更像是MySpace的翻版。从官方的示例站点来看,不论是色调布局,还是相关功能,都有MySpace的影子。PeopleAggregator在用户体验上做的比较好,几乎每一步要做什么、怎么操作,都能够一目了然。从对PeopleAggregator相关介绍来看,PeopleAggregator系统不论是从程序结构还是产品结构,都做的比较严谨。在国外的对SNS社区软件的消息中,PeopleAggregator也是备受关注的项目,TechCrunch上就有消息说看好PeopleAggregator倡导的”开放识别标准 ”。很多人认为”PeopleAggregator将是真正意义上的Web2.0门户。”

 

国内:

OpenPNE

OpenPNE 拥有精心设计的架构和强大的功能机制,适合从个人到企业各方面应用的要求,提供一个安全、稳定、高效、易用而快捷的 SNS 系统。OpenPNE 根据用途不同分为校园版、商务版、大众版、免费版等不同版本。

OpenPNE 是基于 Openpne 开发的版本,很大程度上应该算作 Openpne 的汉化加强版。

预览 | 下载

OpenKaku

OpenKaku 同样也是派生于日本知名 SNS 系统 Openpne,致力于 Openpne 中文本土化,以及英文国际化开发。主要针对日本、欧美和国内的公司及团体。

应该说 OpenPNE 和 OpenKaku 都是 Openpne 在中国的汉化和变体。

预览 | 下载

ThinkSNS

ThinkSNS 源于办公圈项目,WEB 端基于国内技术领先的 ThinkPHP 框架开发,另外还有 IM 客户端软件。这也是我最看好的 SNS 系统。

ThinkPHP 内置支持 WordPress 式插件开发,而且提供完善的 API,非常适合二次开发,同时也会等到更多爱好者的支持,看好 ThinkSNS。

预览 | 下载

UCenter Home

UCenter Home 是一套采用 PHP+MYSQL 构建的社会化网络软件,强调家的理念。并且整合了康盛公司 Discuz! 论坛、SupeV 视频、ECShop 商店等众多功能。

在 SEO、页面静态化处理、整体运行效率以及国内插件整合等各方面 UCenter Home 要远远强于其他的 SNS 程序。

预览 | 下载

24 四月
0Comments

实时股票数据获取方式

股票数据的获取目前有如下两种方法可以获取:

1.   http/javascript接口取数据

1.1              Sina股票数据接口

以大秦铁路(股票代码:601006)为例,如果要获取它的最新行情,只需访问新浪的股票数据接口:http://hq.sinajs.cn/list=sh601006这个url会返回一串文本,例如:

var hq_str_sh601006="大秦铁路, 27.55, 27.25, 26.91, 27.55, 26.20, 26.91, 26.92, 22114263, 589824680, 4695, 26.91, 57590, 26.90, 14700, 26.89, 14300, 26.88, 15100, 26.87, 3100, 26.92, 8900, 26.93, 14230, 26.94, 25150, 26.95, 15220, 26.96, 2008-01-11, 15:05:32";

这个字符串由许多数据拼接在一起,不同含义的数据用逗号隔开了,按照程序员的思路,顺序号从0开始。
0
大秦铁路,股票名字;
1
”27.55″,今日开盘价;
2
”27.25″,昨日收盘价;
3
”26.91″,当前价格;
4
”27.55″,今日最高价;
5
”26.20″,今日最低价;
6
”26.91″,竞买价,即买一报价;
7
”26.92″,竞卖价,即卖一报价;
8
”22114263″,成交的股票数,由于股票交易以一百股为基本单位,所以在使用时,通常把该值除以一百;
9
”589824680″,成交金额,单位为,为了一目了然,通常以万元为成交金额的单位,所以通常把该值除以一万;
10
”4695″,买一申请4695股,即47手;
11
”26.91″,买一报价;
12
”57590″,买二
13
”26.90″,买二

14
”14700″,买三

15
”26.89″,买三

16
”14300″,买四

17
”26.88″,买四

18
”15100″,买五

19
”26.87″,买五

20
”3100″,卖一申报3100股,即31手;

21
”26.92″,卖一报价
(22, 23), (24, 25), (26,27), (28, 29)
分别为卖二卖四的情况
30
”2008-01-11″,日期;

31
”15:05:32″,时间;

这个接口对于JavaScript程序非常方便,通常的使用方式为,静态或动态地在页面中插入:

<script type="text/javascript" src="http://hq.sinajs.cn/list=sh601006" charset="gb2312">

</script>

 <script type="text/javascript">

 var elements=hq_str_sh601006.split(",");

document.write("current price:"+elements[3]);

</script>

这段代码输出大秦铁路(股票代码:601006)的当前股价

current price:14.20

如果你要同时查询多个股票,那么在URL最后加上一个逗号,再加上股票代码就可以了;比如你要一次查询大秦铁路(601006)和大同煤业(601001)的行情,就这样使用URL
http://hq.sinajs.cn/list=sh601003,sh601001

但如果你要查询大盘指数,情况会有不同,比如查询上证综合指数(000001),使用如下URL
http://hq.sinajs.cn/list=s_sh000001
服务器返回的数据为:

var hq_str_s_sh000001="上证指数,3094.668,-128.073,-3.97,436653,5458126";

数据含义分别为:指数名称,当前点数,当前价格,涨跌率,成交量(手),成交额(万元);

查询深圳成指的URL为:
http://hq.sinajs.cn/list=s_sz399001

 

对于股票的K线图,日线图等的获取可以通过请求http://image.sinajs.cn/…./…/*.gifURL获取,其中*代表股票代码,详见如下:

查看日K线图:

http://image.sinajs.cn/newchart/daily/n/sh601006.gif

分时线的查询:

http://image.sinajs.cn/newchart/min/n/sh000001.gif

K线查询:

http://image.sinajs.cn/newchart/daily/n/sh000001.gif

K线查询:

http://image.sinajs.cn/newchart/weekly/n/sh000001.gif

K线查询:

http://image.sinajs.cn/newchart/monthly/n/sh000001.gif

1.2              Baidu Google的财经数据

baidu ,google中搜索某只股票代码时,将会在头条显示此股票的相关信息,例如在google搜索601006时,第一条搜索结果如下图:

通过点击左边的图片我们发现会将此图片链接到sina财经频道上,也就是说google股票数据的获取也是从sina获取。后经抓包分析,发现google也是采用1.1中介绍的接口。

Baidu的股票数据来自baidu的财经频道http://stock.baidu.com.

1.3              其他方式

除了sinabaidu等网站提供股票信息外,其他网站也有类似的接口。我们分析了一款论坛上采用的股票插件,其中有关于实时股票数据获取的介绍,详见如下代码,其中可以看到有些数据来自sina

<%

‘==========================

‘ file: stock_getdata.asp

‘ version: 1.0.0

‘ copyright (c) czie.com all rights reserved.

‘ web: http://www.czie.com

‘==========================

         function gethttp(rurl)

                   dim xml

                   on error resume next

                   set xml=server.createobject("Microsoft.XMLHTTP")

                   xml.open "get",rurl,false

                   xml.send

                   if not xml.readystate=4 or not xml.status=200 or err then gethttp="":exit function

                   gethttp=xml.responsetext

                   set xml=nothing

         end function

         function getstockdata(code)

                   ’0=股票名称,1=开盘价格,2=昨收盘价格,3=当前价格,4=最高价,5=最低价,30,31=更新时间

                   dim checkcode,stockdata,stockdatasplit

                   if len(code)<5 then stockdata="0,0,0,0,0,0,0,0,0,0,0,0":exit function

                   checkcode=mid(code,len(code)-5,1)

                   if int(checkcode)<=4 then

                            stockdata=gethttp("http://hq.sinajs.cn/list=sz"&code&"")

                            if not len(stockdata)=0 then stockdata=split(stockdata,chr(34))(1)

                   end if

                   if int(checkcode)>=5 then

                            stockdata=gethttp("http://hq.sinajs.cn/list=sh"&code&"")

                            if not len(stockdata)=0 then stockdata=split(stockdata,chr(34))(1)

                   end if

                   if len(stockdata)=0 then

                            stockdata="0,0,0,0,0,0,0,0,0,0,0,0"

                   else

                            stockdatasplit=split(stockdata,",")

                   stockdata=""&exstock.checkstr(stockdatasplit(0))&","&stockdatasplit(1)&","&stockdatasplit(2)&","&stockdatasplit(3)&","&stockdatasplit(4)&","&stockdatasplit(5)&","&formatdatetime(""&stockdatasplit(30)&" "&stockdatasplit(31)&"",0)&""

                   end if

                   ’0=股票名称,1=开盘价格,2=昨收盘价格,3=当前价格,4=最高价,5=最低价,6=更新时间

                   getstockdata=stockdata

         end function

         function getstockimg(code)

                   dim rndnum,addnum,checkcode,imgsource

                   if len(code)<5 then exit function

                   addnum=4

                   randomize:rndnum=cint(rnd*addnum)

                   select case rndnum

                            case 0

                                     getstockimg="http://www.10jqka.com.cn/curve/kline/?code="&code&""

                                     imgsource="http://www.10jqka.com.cn"

                            case 1

                                     getstockimg="http://stock.jrj.com.cn/htmdata/KLINE/"&code&".png"

                                     imgsource="http://stock.jrj.com.cn"

                            case 2

                                     checkcode=mid(code,len(code)-5,1)

                                     if int(checkcode)<=4 then

                                               getstockimg="http://image.sinajs.cn/newchart/daily/n/sz"&code&".gif"

                                     end if

                                     if int(checkcode)>=5 then

                                               getstockimg="http://image.sinajs.cn/newchart/daily/n/sh"&code&".gif"

                                     end if

                                     imgsource="http://finance.sina.com.cn"

                            case 3

                                     getstockimg="http://hq.gazxfe.com/stockchart/realline.chart?"&code&"&1003&SZ 500 330"

                                     imgsource="http://hq.gazxfe.com"

                            case 4

                                     getstockimg="http://chartse.stockstar.com/chartserver?code="&code&""

                                     imgsource="http://www.stockstar.com/"

                   end select

                   getstockimg=split(""&getstockimg&"||"&imgsource&"","||")

         end function

         function getastockimg()

                   dim rndnum,addnum,checkcode

                   dim getastockimgb,imgsource

                   addnum=6

                   randomize:rndnum=cint(rnd*addnum)

                   select case rndnum

                            case 0

                                     getastockimg="http://202.109.106.1/gifchartse/gif/000001.gif"

                                     getastockimgb="http://202.109.106.1/gifchartse/gif/399001.gif"

                                     imgsource="http://www.stockstar.com/"

                            case 1

                                     getastockimg="http://money.163.com/special/100.gif?C39"

                                     getastockimgb="http://money.163.com/special/101.gif?HrS"

                                     imgsource="http://www.163.com"

                            case 2

                                     getastockimg="http://www.10jqka.com.cn/curve/realtime/index2.php?code=1a0001&w=180&h=140"

                                     getastockimgb="http://www.10jqka.com.cn/curve/realtime/index2.php?code=399001&w=180&h=140"

                                     imgsource="http://www.10jqka.com.cn"

                            case 3

                                     getastockimg="http://chart.cnlist.com/stockchart/realline.chart?1a0001&1002&SZ 180 140"

                                     getastockimgb="http://chart.cnlist.com/stockchart/realline.chart?399001&1002&SZ 180 140"

                                     imgsource="http://chart.cnlist.com/"

                            case 4

                                     getastockimg="http://image.sinajs.cn/newchart/small/ish000001.gif?1189176558328"

                                     getastockimgb="http://image.sinajs.cn/newchart/small/isz399001.gif?1189176558328"

                                     imgsource="http://www.sinajs.cn"

                            case 5

                                     getastockimg="http://218.1.72.66/cgi/pic/sh/realtime/JA000001164143.png"

                                     getastockimgb="http://218.1.72.66/cgi/pic/sz/realtime/JA399001164143.png"

                                     imgsource="http://www.cnstock.com/"

                            case 6

                                     getastockimg="http://222.73.29.85/img/000001.png"

                                     getastockimgb="http://222.73.29.85/img/399001.png"

                                     imgsource="http://www.eastmoney.com/"

                   end select

                   getastockimg=split(""&getastockimg&"||"&getastockimgb&"||"&imgsource&"","||")

         end function

%>

 

 


 

 

 

2.   web-service接口

2.1  CHINAstockweb-service

http://www.webxml.com.cn/WebServices/ChinaStockWebService.asmx

中国股票行情数据 WEB 服务(支持深圳和上海股市的全部基金、债券和股票),数据即时更新。输出GIF分时走势图、日// K 线图、及时行情数据(股票名称、行情时间、最新价、昨收盘、今开盘、涨跌额、最低、最高、涨跌幅、成交量、成交额、竞买价、竞卖价、委比、买一买五、卖一卖五)。此WEB服务提供了如下几个接口:

2.1.1  getStockImageByCode

GET 股票GIF分时走势图

INputtheStockCode = 股票代号,如:sh000001

POST /WebServices/ChinaStockWebService.asmx HTTP/1.1

Host: www.webxml.com.cn

Content-Type: text/xml; charset=utf-8

Content-Length: length

SOAPAction: "http://WebXml.com.cn/getStockImageByCode"

 

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

  <soap:Body>

    <getStockImageByCode xmlns="http://WebXml.com.cn/">

      <theStockCode>string</theStockCode>

    </getStockImageByCode>

  </soap:Body>

</soap:Envelope>

Output

2.1.2 getStockImageByteByCode

获得中国股票GIF分时走势图字节数组

INputtheStockCode = 股票代号,如:sh000001

POST /WebServices/ChinaStockWebService.asmx HTTP/1.1
Host: www.webxml.com.cn
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://WebXml.com.cn/getStockImageByteByCode"
 
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <getStockImageByteByCode xmlns="http://WebXml.com.cn/">
      <theStockCode>string</theStockCode>
    </getStockImageByteByCode>
  </soap:Body>

</soap:Envelope>

返回的数据如下:

<?xml version="1.0" encoding="utf-8" ?>

  <base64Binary xmlns="http://WebXml.com.cn/">R0lGODlhIQIsAfcAAAAAAAwLBxkGBQ4ODhAQEBsSChUVFS4TDB8eGQkA9koPCDAAzy4mFVgAp2UYC0IqEUYuBVwiDEAsI1QnFX8AgDU1NUozFlgxD6cBWVY5FnIwEmQ4Gc0AMlhDHPEADlVJMEpKSm1IHOUBWpY3FZMyVY9IGXRWIEFmWGNYUmpdPXJgHQB8HK9EGGBgX4lXIACoAHhkMyt4m4VkJtstbv8A

2.1.3  getStockImage_kByCode

直接获得中国股票GIF// K 线图(545*300pixel/72dpi

INPUT: theStockCode = 股票代号

      theType = K 线图类型(D:日[默认]W:周、M:月),

POST /WebServices/ChinaStockWebService.asmx HTTP/1.1
Host: www.webxml.com.cn
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://WebXml.com.cn/getStockImage_kByCode"
 
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <getStockImage_kByCode xmlns="http://WebXml.com.cn/">
      <theStockCode>string</theStockCode>
      <theType>string</theType>
    </getStockImage_kByCode>
  </soap:Body>

</soap:Envelope>

比如按照下图所示输入:

返回的结果就是周K线图:

2.1.4  getStockImage_kByteByCode

获得中国股票GIF// K 线图字节数组

InputtheStockCode = 股票代号,如:sh000001

POST /WebServices/ChinaStockWebService.asmx HTTP/1.1
Host: www.webxml.com.cn
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://WebXml.com.cn/getStockImage_kByteByCode"
 
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <getStockImage_kByteByCode xmlns="http://WebXml.com.cn/">
      <theStockCode>string</theStockCode>
      <theType>string</theType>
    </getStockImage_kByteByCode>
  </soap:Body>
</soap:Envelope>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length
 
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <getStockImage_kByteByCodeResponse xmlns="http://WebXml.com.cn/">
      <getStockImage_kByteByCodeResult>base64Binary</getStockImage_kByteByCodeResult>
    </getStockImage_kByteByCodeResponse>
  </soap:Body>
</soap:Envelope>

比如按照下图输入

返回的结果就是周K线图字节数组

<?xml version="1.0" encoding="utf-8" ?>

  <base64Binary xmlns="http://WebXml.com.cn/">R0lGODlhIQIsAfcAAAAAAAwLBxkGBQ4ODhAQEBsSChUVFS4TDB8eGQkA9koPCDAAzy4mFVgAp2UYC0IqEUYuBVwiDEAsI1QnFX8AgDU1NUozFlgxD6cBWVY5FnIwEmQ4Gc0AMlhDHPEADlVJMEpKSm1IHOUBWpY3FZMyVY9IGXRWIEFmWGNYUmpdPXJgHQB8HK9EGGBgX4lXIACoAHhkMyt4m4VkJtstbv8A

 

2.1.5  getStockInfoByCode

获得中国股票及时行情

inputtheStockCode = 股票代号

POST /WebServices/ChinaStockWebService.asmx HTTP/1.1
Host: www.webxml.com.cn
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://WebXml.com.cn/getStockInfoByCode"
 
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <getStockInfoByCode xmlns="http://WebXml.com.cn/">
      <theStockCode>string</theStockCode>
    </getStockInfoByCode>
  </soap:Body>
</soap:Envelope>

返回的值一个一维字符串数组 String(24),结构为:String(0)股票代号、String(1)股票名称、String(2)行情时间、String(3)最新价(元)、String(4)昨收盘(元)、String(5)今开盘(元)、String(6)涨跌额(元)、String(7)最低(元)、String(8)最高(元)、String(9)涨跌幅(%)、String(10)成交量(手)、String(11)成交额(万元)、String(12)竞买价(元)、String(13)竞卖价(元)、String(14)委比(%)、String(15)-String(19)买一买五(元)/手、String(20)-String(24)卖一卖五(元)/手。

 

Web service的方法类似于现在concurrent项目的DBWS数据的获取,都是通过SOAP协议向DBWS服务器获取相关的数据。

 

 

07 四月
0Comments

FACEBOOK在中国为何会沦为“非死不可”

当今天你去问一个作互联网的人知不知道FACEBOOK,如果他不知道,会被很多业界人士耻笑,然而在我看来,这恰恰是中国互联网的悲哀和耻辱。一向迷信的中国人这一次不再迷信了,面对“非死不可”这样一个名字,却纷纷趋之若鹜,于是出现了一批“x内”,无论拿到钱的还是准备拿钱的还是没钱的,都在学习FACEBOOK,模仿FACEBOOK,讨论FACEBOOK,从SNS讨论到OPEN API,从开放架构讨论到定向广告。为什么我要说这是中国互联网的悲哀呢,不仅仅在于抄袭拷贝所反映的创新力的缺失,更在于这里面反映出的互联网从业思路的扭曲和畸形。

一、为什么大家都要学FACEBOOK

这道理很简单,MYSPACE火的时候,中国互联网一个个纷纷要做中国的MYSPACE,于是无论大小网站都忙着建自己的SPACE,YOUTUBE或的时候,中国互联网纷纷视频。可是MYSPACE火了,可中国的仿制MYSPACE哪一个成功了;YOUTUBE火了,可中国的仿制YOUTUBE们哪一个不是艰难度日?可还是有人会继续飞蛾扑火地奔向仿制之路,为什么呢?只因为缺乏互联网原创精神的中国互联网从业者们遇到了一批更加外行的冤大头——VC们。中国的互联网资本市场实际上比中国互联网创业者们更缺乏原创精神,他们的眼睛也更多地盯向了大洋彼岸的财富神话。的确,讲一个已经实现的神话远比讲一个基于本土创新的理想要更容易得到VC的认可。于是“X内”们用“复制神话”的“神话”把VC的钱忽悠到手了,然后再用这一神话去忽悠用户,可惜忽悠VC只需要面对几个人,但是忽悠用户就没那么容易了,无论从流量、用户数、活跃度,“X内”们都遇到了尴尬,于是又有一批以评论为糊口的评论者们纷纷出来说“你们都没有学到FACEBOOK的精髓”,“学到了表皮没有学到本质”“不在于SNS而在于开放架构”,可是大家有没有想过一个问题,即使这些所谓的“精髓”都学到了会怎样,就会在中国创造一个新的神话,迎来一个新的时代吗?

二、FACEBOOK在中国为什么“非死不可”

为什么说学到了“精髓”也没用呢?因为FACEBOOK在美国的成功我们不能光看它是如何做的,不能光研究它的结构它的产品功能,更要研究它之所以能够成功的环境因素,什么是FACEBOOK成功的环境因素呢?我认为有两点,第一是用户的需求特性,第二是众多的应用需求开放商。第一点是第二点的基础。

第一点,FACEBOOK成功的环境因素很多程度上在于美国年轻网民的的需求特性。事实上,美国年轻网民的需求特性跟中国年轻网民的需求特性差异非常大,这也是为什么FACEBOOK在中国“非死不可”的核心原因。因此,注定这种模仿无法形成大规模的用户粘性,只能迎合一部分尝鲜的用户。事实证明无论“海内”还是“蚂蚁”“一起”,用户在尝鲜之后,都难以再保留持续的粘度。而FACEBOOK现在尽管已经有24万的中国注册用户,但是连我这样一个业内人士也很难对它有持续的兴趣,更不用说对于普通网民了,这不仅仅是一个语言差异的问题,事实上我们可以看到当年MYSPACE火爆的时候,中文版MYSPACE尽管已经非常深入地进行了“本地化”改造了,但是依然难以逃避“门可罗雀”的境地。而相反,中国的qq会火,后来很晚进入的51.COM会火,但是美国最早的交友网站现在却无声无息了。这些现象背后的根本原因在于中外网民的需求特性的差异。

美国人不习惯在网上泡妞,美国要泡妞渠道很多,美国艳照门也不会火,总统绯闻都看过了,希尔顿的艳照最多也就是茶余饭后的谈资。美国的社会化成熟度高,共性需求已经极度满足,因此个性化社会关系拓展变成一种自由的享受,所以能够吸引年轻人乐此不疲。而中国的年轻网民则更多地还在把互联网当作是一个娱乐休闲平台。中国网民对于社会关系拓展缺乏清晰的目的,更缺乏运营的意识,他们中的大多数是内容的消费者,而非内容的创造者。中国的年轻网民所面临的社会压力使得他们对于互联网的社会化需求更多地倾向于获得公众性认可,而非自我满足,也就是说中国网民更倾向于在类似BBS这样的平台上获得个性展示和认可,而对于自我社交圈的拓展则缺乏兴趣。这实际上是由于中美整体社会文化环境的差异造成的。在这种差异下,中国的互联网从业者如果照搬美国的成功模式,除了忽悠同样吸收美国养分的VC们,其结果势必会沦为“非死不可”

第二点,FACEBOOK之所以能够成功,是因为有一大批美国互联网业者不断针对用户需求开发出好的有趣的应用,也许每一种都只针对一个不大的目标群体,但是整合起来,整体的服务就非常丰富了。而中国,恰恰最缺乏这样一个群体,甘于做小作精,这也使得即使中国能够做出一个FACEBOOK的开放架构,也会导致应用服务的匮乏而使得整体平台对用户缺乏吸引力,互联网业者往往都盯着海外新模式新应用,依然走的是COPY汉化的路子,真正的原创的应用开发非常缺乏,这实际上并不是一个技术问题,而是一个意识问题,更深层次的是整个产业的结构性问题——缺乏一种机制来激励和促使中小应用开发商能够以此生存和发展。

三、中国的互联网该向FACEBOOK学习什么?

国内要向FACEBOOK学习的我认为不是系统架构上的OPEN API,而是针对于用户需求选择的海纳百川的运营态度。往往国内只看到了海纳百川,但是没有看到它的基础是基于用户需求特性这一出发点。也就是说,我对用户的态度是你们来我这里,你们要啥我努力给,我给不了的我让能给的人给。并且充分给你们自由,象一个应用服务大超市,你们可以自由在里面选择和折腾。如果从这角度来看的话,我认为新站小站不该去学FACEBOOK,而是该去学FACEBOOK中那些受用户欢迎的API,也就是说新站该去琢磨如何能够在大用户群大核心应用中找准用户的需求,赢得用户的喜爱。可悲的在于,中国互联网10多年来已经无数次证明了这个道理,真正能够成功的模式基本上都是以贴近现实用户需求出发的原创模式,QQ、阿里巴巴、迅雷,但是依然中国的互联网业者们还是乐此不疲地飞蛾扑火地冲向这条不归路。
国内的互联网从业者,无论大公司还是小公司,在关注到FACEBOOK的神话的时候,需要根据自己的目标客户需求特性,自身的市场地位和资源情况,来学到FACEBOOK的神,而非FACEBOOK的形。比如,阿里巴巴也学,就不是在系统平台上的开放接口那么简单,而是整体运营思路上,即使技术接口短期无法实现,但是这种OPEN的人工接口以及合作机制是可以建立的。比如你的服务部门是否可以承接用户更多非普通功能的服务需求,是否可以介入第三方服务提供者等等。而对于QQ,它在“抓客户”这点上的确很强,但是在架构的开放性方面却一直非常保守,尽管用户基础很大,自身的资金和资源很很充足,但是在结构性的整合上是需要开始一定程度上的打通和开放了。而中小网站,则需要去认真研究FACEBOOK里那些众多的受欢迎的第三方应用是如何抓住用户需求的。

原创力的匮乏尽管有资本环境,从业人员知识结构,业绩媒体等环境的因素,但是从根本上,这是一个从业思维方式的问题,不从这个根子上改变,那么中国的互联网就没有希望,那些只盯着彼岸神话的“传教士”们,在这片土地上也许连一个“童话”都造不出来。

 

摘自:http://www.20ju.com/content/V20285.htm

27 三月
0Comments

CurrentTV:通过互联网重新定义电视

上周,在旧金山,我参观了Current的办公室,看了他们最新发布Current.com网站,并且和Robin Sloan(在线产品专家)和Joshua Katz(市场总裁)进行了交谈,他们给我演示了产品并且对Current的策略进行了讲解。我被Current.com华丽的设计深深的吸引了——不过更重要的是Current.com提出的基于互联网的电视观看的观点。在这篇文章中,我们对Current.com进行一下展示,或许不久之后,Current.com就会改变我们看电视的习惯。
 

current_pod2.jpg
 

    Current的介绍
    Current是由Joel Hyatt和Al Gore在2005年8月1日创建的,Gore是董事会主席,而且,因为Gore的知名度的关系,Current得到了大量的媒体的报道。(顺便说一下,我当时参观的时候就是坐在Gore的办公室里,当然,我并没有见到他)这个伴随电视网络的网站主要的目标客户是“年轻一代”,就是说MySpace和 Facebook一代。Current鼓励电视观众创建内容并且参与互动,因此对该网站来说“阅读(观看)/发表”是网站所大力提倡的。例如,电视观众可以创建自己的广告,称之为vcams(对于观众创建广告,他们告诉我说,观众更喜欢专业的广告),到目前为止,Current的电视网络已经在全球有52 万用户,其中42万来自美国本土。

    路透社在报道Current.com的时候提到,Current致力于“成为第一个完全集成互联网在线和电视的网络”,网站用户可以创建自己的内容,并且有一个类似Digg的界面供用户投票,新闻的评论可以包括文字、视频、图片和其他格式的媒体,比如,用户可以在网站上投递一个Youbue的视频。Current的工作人员告诉我说,在内部的 beta版,他们注意到用户发布的视频和其他媒体都是和原始新闻相关的,从而可能会造成某一个话题的暴涨,Current.com在8周前发布了内部测试的beta版,上周发布了正式版。

    另外一个需要提及的是,Current的内容并不仅仅由用户决定,它拥有一个编辑团队许多首页新闻是经过编辑选择的。

    视点
    第一个我希望介绍的创新的功能是视点,视点是网站的一个专题,Al Gore也参与了这个专题。针对一个话题,视点将发表观点用户的头像列成一排,通常话题是关于政治或者时事。如果第一次登录到视点页面的话,会弹出一系列的话题,今天的话题是“谴责战争”,当点击一个人的头像的时候,就会打开一个一分钟的视频,目前有11到12个话题,许多都和美国的选举有关。Al Gore也在视点发布了视频,但Current团队很快告诉我Gore只是其中的一员而已,并没有得到特殊的照顾。Gore希望这种类型的系统可以鼓励政客关注选举或者其他的政治议题。
 

current_viewpoints.jpg

    网站的设计确实是非常精美,而更重要的是其运作方式:用户被限定用一分钟的时间阐述自己的观点,社区的用户可以投票,也可以通过自己的一分钟视频予以回应。下面的例子显示了一个视频,该视频得到了73%的反对意见和一个用户的回应。Current的工作人员告诉我这种方式结果是可以得到更多人的意见。由于是“点对点”的方式(指人),人们可以快速的对观点做出反应,并且上传自己的视频。精彩的片段将会在Current TV shows中进行展示。
 

current_viewpoints2.jpg

    “On TV”和Pods的概念
    Current.com的另外一个主要特色是在On TV这个栏目下面的轮状的电视节目导航。网站使用了“pods”的概念,工作人员告诉我,这是Current方式的电视节目展现,每一个pod是一块内容,以交互的、轮状的模式进行展示,下面是截图。
 

current_pod.jpg

    和视点想必,这种设计方式更加华丽以及交互性更强,我不得不想Current的设计者们脱帽致敬,他们实在是太强了。

    pod设计里面所隐藏的思想也很吸引人,之所以这样设计,是为了投年轻观众所好,这些年轻观众是“多任务”模式的,据说,Current的用户中,有70 -75%是一边看电视,一边在上网。当他们看电视的时候,遇到感兴趣的电视节目的话,就会不断的刷新网站并且从社区里得到更多的信息,这就是大概的理论了,pod形式就是基于这种理论来设计的。这种界面使得用户观看媒体(音乐、视频)非常方便,点击回应(上传视频),查找关联信息,甚至是对所关注的话题进行“转让”。当然,也有节目清单。

    Current的Joshua Katz(市场总监)向我这样描述pod:“就像早些时候的FM收音机一样”,当从一首歌过渡到另外一首歌的时候,中间是有一些关联的,而且,内容是包罗万象的。

    根据统计,Current的用户中主要年龄段是18-34岁,更重要的是,他们的目标用户是那些希望持续不断的得到信息、并且在互联网上共享、平均每个人有25-60在线沟通对象(通过即时通讯工具等)。主要是互联网时代的用户,而不是那些嘴里吃着薯条,手里拿着遥控器的那些人。

    结论:新形式的电视
    我之所以喜欢Current,令人敬畏的设计是一个原因,另外一个原因就是他们试图改变看电视和电视节目产生的方式,集中了交互体验、用户参与、用户创造内容。

    我得到了这样的概念:年轻人在看电视的时候,同时还在互联网上,所以,从我的观点上来看,pod格式是一个非常好的创举,界面的设计符合年轻人新的看电视的习惯。这有点像Google创造的Gmail——Gmail是为了互联网的使用,而不是某一个桌面的客户端程序,同样的,Current基于新的电视/ 互联网体验,推出了他们自己的界面设计,而不是拷贝传统的电视节目格式。

    当时,对于任何电视网络来说,内容必须是强制性的,所以Current的表现如何还需要时日,不过对Current的概念和技术,你怎么看?将来的电视是不是会是电视/互联网格式呢?
 

相关连接:

 Yahoo Current Network-在电视台播放你的视频

Yahoo携手Current TV推出视频网络 

 

11 三月
0Comments

网络广告常用术语CPM CPC CPA CPL CPP CPS PFP解释

1、 CPM(千人成本),指的是广告投放过程中,听到或者看到某广告的每一人平均分担到多少广告成本。CPM取决于“印象”尺度,通常理解为一个人的眼睛在一段固定的时间内注视一个广告的次数,目前国内门户网站的广告多采用此模式。 
2、 CPC(每点击成本),在这种模式下广告主仅为用户点击广告的行为付费,而不再为广告的显示次数付费。这样的方法加上点击率限制可以加强恶意点击的难度,而且是宣传网站站点的最优方式。但是,此类方法就有不少经营广告的网站觉得不公平,比如,虽然浏览者没有点击,但是他已经看到了广告,对于这些看到广告却没有点击的流量来说,网站成了白忙活。有很多网站不愿意做这样的广告。 
3、 CPA(每行动成本),此计价方式是指按广告投放实际效果,即按回应的有效问卷或定单来计费,而不限广告投放量。 CPA的计价方式对于网站而言有一定的风险,但若广告投放成功,其收益也比CPM的计价方式要大得多。广告主为规避广告费用风险,只有当网络用户点击旗帜广告,链接广告主网页后,才按点击次数付给广告站点费用。因此,此计费模式对广告主来说是无风险,但在网站主中却不大受欢迎。 
4、 CPL(Cost Per Leads)以搜集潜在客户名单多少来收费。 
5、 另外还有CPR(Cost Per Response) 每回应成本、 
6、 CPP(Cost Per Purchase) 每购买成本 、 
7、 CPS(Cost Per Sales):以实际销售产品数量来换算广告刊登金额、 
8、 PFP(Pay-For-Performance) 按业绩付费、包月方式等方式。