从网络获取股票实时数据

Posted By zero
Categorized Under: 开发相关
Comment (1)

两种方法:

1.http/javascript接口取数据

2.web-service接口

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/…./…/*.gif此URL获取,其中*代表股票代码,详见如下:

查看日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

2.   web-service接口

2.1  CHINAstock的web-service:

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

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

2.1.1  getStockImageByCode

GET 股票GIF分时走势图

INput:theStockCode = 股票代号,如: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分时走势图字节数组

INput:theStockCode = 股票代号,如:sh000001

POST /WebServices/ChinaStockWebService.asmx HTTP/1.1Host: www.webxml.com.cnContent-Type: text/xml; charset=utf-8Content-Length: lengthSOAPAction: “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/”>

R0lGODlhIQIsAfcAAAAAAAwLBxkGBQ4ODhAQEBsSChUVFS4

TDB8eGQkA9koPCDAAzy4mFVgAp2UYC0IqEUYuBVwiDEAsI1QnFX8AgDU

1NUozFlgxD6cBWVY5FnIwEmQ4Gc0AMlhDHPEADlVJMEpKSm1IHOUBWpY3FZMyVY

9IGXRWIEFmWGNYUmpdPXJgHQB8HK9EGGBgX4lXIACoAHhkMyt4m4VkJtstbv8A

2.1.3  getStockImage_kByCode

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

INPUT: theStockCode = 股票代号

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

POST /WebServices/ChinaStockWebService.asmx HTTP/1.1Host: www.webxml.com.cnContent-Type: text/xml; charset=utf-8Content-Length: lengthSOAPAction: “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 线图字节数组

Input:theStockCode = 股票代号,如:sh000001

POST /WebServices/ChinaStockWebService.asmx HTTP/1.1Host: www.webxml.com.cnContent-Type: text/xml; charset=utf-8Content-Length: lengthSOAPAction: “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 OKContent-Type: text/xml; charset=utf-8Content-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/”>R0lGODlhIQIsAfcAAAAAAAwLBxkGBQ

4ODhAQEBsSChUVFS4TDB8eGQkA9koPCDAAzy4mFVgAp2UYC0IqEUYuBVwiDEAsI1QnFX

8AgDU1NUozFlgxD6cBWVY5FnIwEmQ4Gc0AMlhDHPEADlVJMEpKSm1IHOUBWpY3FZMy

VY9IGXRWIEFmWGNYUmpdPXJgHQB8HK9EGGBgX4lXIACoAHhkMyt4m4VkJtstbv8A

2.1.5  getStockInfoByCode

获得中国股票及时行情

input:theStockCode = 股票代号

POST /WebServices/ChinaStockWebService.asmx HTTP/1.1Host: www.webxml.com.cnContent-Type: text/xml; charset=utf-8Content-Length: lengthSOAPAction: “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服务器获取相关的数据。

 

奉献部分代码。

Private Function GetContent(ByVal StockCode As String) As String
If String.IsNullOrEmpty(StockCode) Then Return String.Empty
Dim url As String
url = “http://hq.sinajs.cn/type=js&list=” & StockCode
Dim XmlHttp As Object
XmlHttp = CreateObject(“Microsoft.XMLHttp”)
XmlHttp.Open(“POST”, url, False)
XmlHttp.Send()

Dim vs As String
vs = XmlHttp.responseText
XmlHttp = Nothing
GetContent = vs
End Function
返回数据格式
:一个一维字符串数组 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)卖一 – 卖五(元)/手。

用C#也成功获取了sina的数据:

WebClient client = new WebClient();
client.Headers.Add(“Content-Type”, “text/html; charset=gb2312″);
Stream data = client.OpenRead(“http://hq.sinajs.cn/list=sh600683″);
StreamReader reader = new StreamReader(data, Encoding.GetEncoding(“gb2312″));
string s = reader.ReadToEnd();
MessageBox.Show(s);

reader.Close();
data.Close();

Asp.net在线备份、压缩和修复Access数据库

Posted By zero
Categorized Under: 记事本
Comments (0)

1.问题的提出

在设计中小型Web应用程序时,可以选择Microsoft Accesss为数据库。在数据库的使用过程中经常性进行增加和删除操作。事实上,Microsoft Access并不能有效地释放已分配的但被删除的对象空间,这将意味着即使你删除了一个对象,而这个对象仍然占据着数据库的空间,使得数据库越来越大。不但占用不必要的空间,而且降低了数据库的效率。特别在虚拟站点上的问题尤为突出。因此对Access数据库进行压缩瘦身很有实际意义。
虽然Access数据库自身具有“压缩和修复数据库”功能(工具è数据库实用工具è压缩和修复数据库)。但对一般使用者来说操作不方便。通常Accesss数据库放置在虚拟主机上,需要把它下载下来“压缩修复”完后再传上去很浪费时间,所以最好能在线对数据库进行压缩。

2.在线压缩数据库的实现

2.1.添加引用

在VS.Net环境的解决方案下添加引用。方法如下:项目→添加引用→选项卡→浏览(c:program filescomm filesSystemadomsjro.dll)。

2.2.创建Web应用程序窗体

在Web窗体(DataBase.aspx)上放置一个按钮:
<asp:Button ID=”CompactBtn” runat=”server” Text=” 压缩数据库 ” OnClick=”CompactBtn_Click” />
再添加一个Label控件:
<asp:Label ID=”MsgLabel” runat=”server”></asp:Label>

2.3.代码状态下,添加引用

using System;
using System.IO;
using JRO;

2.4.添加代码

//压缩数据库
protected void CompactBtn_Click(object sender, EventArgs e)
{
string DbPath1, DbPath2, DbConn1, DbConn2;

DbPath1 = Server.MapPath(“../App_Data/DataBase.mdb”);//原数据库路径
DbPath2 = Server.MapPath(“../App_Data/DataBase2.mdb”);//压缩后的数据库路径
DbConn1 = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” + DbPath1;
DbConn2 = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” + DbPath2;

try
{
   JetEngine DatabaseEngin = new JetEngine();
   DatabaseEngin.CompactDatabase(DbConn1, DbConn2);//压缩

   File.Copy(DbPath2, DbPath1, true);//将压缩后的数据库覆盖原数据库
   File.Delete(DbPath2);//删除压缩后的数据库

   MsgLabel.Text = “数据库压缩成功!”;
}
catch
{
   MsgLabel.Text = “数据库压缩失败,请重试!”;
}
}

3.备份数据库

3.1.创建Web应用程序窗体

在Web窗体(DataBase2.aspx)上放置一个按钮:
<asp:Button ID=”BackUpBtn” runat=”server” Text=” 备份数据库 ” OnClick=”BackUpBtn_Click” />
再添加一个Label控件:
<asp:Label ID=”MsgLabel” runat=”server”></asp:Label>

3.2.代码状态下,添加引用

using System;
using System.IO;

3.3.添加代码

//备份数据库
protected void BackUpBtn_Click(object sender, EventArgs e)
{
string DbPath1, DbPath2, DbName4DbPath2;

DbName4DbPath2 = DateTime.Now.ToString().Replace(“:”,”.”);
DbPath1 = Server.MapPath(“../App_Data/DataBase.mdb”);
DbPath2 = Server.MapPath(“../App_Data/” + DbName4DbPath2 + “.mdb”);

try
{
   File.Copy(DbPath1, DbPath2, true);

   MsgLabel.Text = “数据库备份成功到” + DbName4DbPath2 + “.mdb!”;
}
catch
{
   MsgLabel.Text = “数据库备份失败,请重试!”;
   MsgLabel.CssClass = “redColor”;
}
}

4.总结

经过压缩使Microsoft Access真正释放占据的多余空间,数据库尽量减小,保证它最有效地运行。因此,在设计的过程中,不可忽视对Microsoft Access进行压缩的重要性。
建议压缩前先对数据库进行备份。

acer tm4520 的本本 ,ubuntu 8.04下终于把wifi搞定了

Posted By zero
Categorized Under: 心情记事
Comments (0)

高兴阿,acer tm4520 的本本 ,ubuntu 8.04下终于把wifi搞定了,嘿嘿。

十字星

Posted By zero
Categorized Under: 个人关注
Comments (2)

股市用语。
  这是一种只有上下影线,没有实体的K线图。开盘价即是收盘价,表示在交易中,股价出现高于或低于开盘价成交,但收盘价与开盘价相等。其中:上影线越长,表示卖压越重。下影线越长,表示买盘旺盛。通常在股价高位或低位出现十字线,可称为转机线,意味着出现反转。
  十字星是指收盘价和开盘价在同一价位或者相近,没有实体或实体极其微小的特殊的K线形式,其虽有阴阳之分,但实战的含义差别不太大,远不如十字星本身所处的位置更为重要,比如出现在持续下跌末期的低价区,称为 “希望之星”,这是见底回升的信号;出现在持续上涨之后的高价区,称为“黄昏之星”,这是见顶转势的信号。十字星往往预示着市场到了一个转折点,投资者需密切关注,及时调整操盘的策略,做好应变的准备。根据实战经验可以将十字星分为小十字星;大十字星;长下影十字星;长上影十字星;T型光头十字星;倒T型光脚十字星和一字线七类。
  小十字星是指十字星的线体振幅极其短小的十字星,这种十字星常常出现在盘整行情中,表示盘整格局依旧;出现在上涨或下跌的初期中途,表示暂时的休整,原有的升跌趋势未改;出现在大幅持续上升或下跌之末,往往意味着趋势的逆转。
  大十字星出现在大幅持续上升或下跌之末的概率较大,盘整区间出现的机率不多见,往往意味着行情的转势。
  长下影十字星如果出现在上升趋势中途,一般均表示暂时休整上升趋势未改;如果是出现在持续下跌之后的低价区,则暗示卖盘减弱买盘增强,股价转向上升的可能性在增大,但次日再次下探不能创新低,否则后市将有较大的跌幅。
  长上影十字星如果出现在下降趋势中途,一般均表示暂时休整下降趋势未改;如果是出现在持续上涨之后的高价区,股价转向下跌的可能性较大;但若出现在上涨趋势中途,次日股价又创新高的话,说明买盘依旧强劲股价将继续上升。
  T型光头十字星的市场意义与长下影十字星差不多,常常出现在牛皮盘整中,表示次日盘整依旧;若是出现在出现在大幅持续上升或下跌之末,是股价升跌转换的信号。
  倒T型光脚十字星的市场意义与长上影十字星差不多,若是出现在持续上涨之后的高价区,这是见顶回落的信号;若是出现在其他的位置,一般均表示暂时休整原有趋势未改。
  一字线是指开盘价和收盘价相同,有时出现在熊市成交极其清淡稀少行情中,更多的时候常常出现在表示极强极弱的涨跌停板时,预示着原有的趋势继续,有时还会出现连续数个停板,缩量的停板意味着次日还将停板,涨停板放量说明卖压加重,跌停板放量说明有吸筹现象。
  周十字星的种类划分与日十字星相同,但性质与日线有着明显的不同,在大多数情况下,周十字星表示的是对原有趋势的认同,即经过短期休整原有趋势将继续,当然在具体实战时,还需结合与其他K线所形成的组合形态和“中心值”等方法综合研判。

淡定。。。

Posted By zero
Categorized Under: 心情记事
Comments (0)

淡定。。。,

OPC协议的罪与罚 【全文皆是转载】

Posted By zero
Categorized Under: 个人关注
Comments (0)
OPC协议的罪与罚
2008-03-20 21:48

首先声明,是zz的,我对原文的观点是:分布式系统的规范不是那么容易搞出来的。所以OPC-DA暂时是不可替代的,OPC-XMLDA是跨防火墙的新技术,但是实时性差一点。这篇文章的出处是另一篇批评opc的文章的评论。(原文的链接是http://blog.cechinamag.com/sup_zoux/9284/message.aspx#3648,被评论的文章标题是OPC——资本和崇洋豢养的病态协议)zz文章如下:

楼主似乎对OPC相当的熟悉,但似乎又不是很懂OPC。

首先OPC是一种协议,OPC协议里只是定义了接口,OPC的不好是由于他建立在了DCOM的基础之上,大多数的诟病来源于DCOM本身而不是OPC协议本身,至少这篇文章对OPC的不满也几乎都来源于DCOM。那么楼主更应该骂微软,或是OPC基金会妥协与微软,而不是OPC协议本身。楼主是希望把OPC协议制定成为像modbus之类的协议,还是提出要建立一套分布式框架替代DCOM呢。这两者完全不是一个层面上的东西。如果是前者,我劝楼主应该站在更高的层次上,而不是盲目的准备去做无用功,如果是后者本人倒是颇感兴趣,本人才疏学浅,分布式框架只知道DCOM 、Cobra 、JMI、.Net Remoting、SOAP。其中JMI和.Net Remoting目前还是依赖于平台,而Cobra则是看起来很美,SOAP像是以后的发展方向,目前OPC 3.0协议已经是基于SOAP的了,性能问题导致他还不能大规模推广。

第二,OPC协议存在也有不少年头了,站在现在的观点对一个陈旧的东西妄加批评似乎有点过分和小肚鸡肠。就像我们不能现在说DDE是一种多么简陋的IPC技术啊,毕竟他是一个时代的产物,在OPC产生的年代,windows上的主流技术难道不是DCOM吗,除非一开始就脱离微软。

第三,“资本和崇洋豢养”这个词显得楼主太过于愤青,如果说用OPC就是“资本和崇洋豢养”,那么我们绝大多数用电脑的人都是“资本和崇洋豢养”,因为我们用的windows、linux、unix、solaris都是洋人给我们的,假如有一天真的有一种真正好的替代OPC的协议产生我第一个支持,如果目前还没有出来,还是希望楼主遵循“多谈些问题,少谈些主义”的原则,真正的能够为中国的自动化协议做些贡献。

最后送给楼主一句话,“师夷长技以治夷”,治夷之前是师夷而不是鄙夷

原文如下:

OPC——资本和崇洋豢养的病态协议

 

虽然目前大部分的厂商均支持OPC协议,并将其视为开放的标准。我曾长期从事实时数据库研发,并对OPC协议有深入研究。到目前为止,除了悲哀,只有一席不得不说的话。OPC真的很先进么?对于过去还一直靠编写串口协议研发非标产品的一些同仁来说,似乎刚刚感受到其带来的优点,为了接项目而编写一些OPC接口等等,也许感觉其神秘而高不可攀。其实,OPC就是基于微软DCOM技术的一套接口定义而已,在其设计的时候并没有考虑诸多工控必须的硬件条件因素,仅仅是将微软DCOM技术原封不动地搬到了工控领域而已。这几年,每年都有一些同仁公司联系SUPCON SOFT,希望能够获得解决OPC接口的问题,作为OPC基金会的首批会员和国内OPC基金会的倡导者,SUPCON对OPC十分了解,拥有大量可以开发OPC接口的程序员。但这并不意味着SUPCON会承接这些接口问题的服务。作为一个企业,其专业性在于提供自己专业的产品和核心价值所在的服务,而非其它。但这也从另一个侧面看出国人对OPC接口的误解和盲从。OPC真的很美么?从其应用至今,OPC带来的痛大过其带来的利益。DCOM是一套依赖微软技术极深的服务,仅一个OPC,就限制了目前工控领域操作系统的多样性。这也没什么,如果处于爱国,中国还真没有可圈可点的操作系统。但OPC的问题是在太多了:

※安全性配置复杂:对于对操作系统并不专业的工控人员,OPC的安全性配置已经过于专业和复杂了。这导致了好多实例中,OPC都不是通过系统启动后自激活的,而是需要有交互式用户去登录,这给系统带来了极大的不安全性。即每次系统重启都可能需要人为干预。虽然经过合理的DCOM配置可以避免,但不幸的是大部分工控从业同仁对此并不掌握;

※远程激活困难:如果两台计算机不再一个带有强烈微软技术特色的“域”里的时候,远程激活OPC就是一个噩梦,在很多项目上,仅这个配置就另很多工程人员痛心疾首。知道大部分项目中不同域之间的激活是怎么做到的吗?呵呵,好多同仁选择了两台机器通过相同的用户名和密码登录来破坏安全性;另一些掌握一些编程技术的同仁则通过在一台计算机中保存另一台计算机的用户名和密码;这些安全因患之所以不能排除,原因就是该死的OPC协议,这个吸附在微软的DCOM技术上的毒瘤;

※开发复杂:虽然笔者对DCOM技术掌握得较为熟练,但至今还能回忆起年轻时学习DCOM编程的黑暗日子,DCOM是一种经过一段时间痛苦,然后顿悟,发现原来所有写DCOM教材的人都在故弄玄虚,人为增加复杂度。同时,DCOM的内存管理和调用技术,往往需要较多经验,使本来容易的通讯开发,变得焦灼不堪。所以才有目前很多业界同仁委托其它公司开发OPC接口的事情;

※跨平台困难:连跨微软的多个操作系统,都会有些小问题,能在Linux和UNIX上使用OPC的人,更是寥寥;我至今只是闻名,未尝亲见这类高人;

那么为什么这么一个诟病甚多的协议会成为今天普遍接的标准呢?原因有二,一是时机,二是资本。当工业以太网时代还出于鸿蒙初开,各大自动化厂商还在为未来的总线争论得喋喋不休得时候,微软,这个操作系统的厂商,利用一种基于自己操作系统的分布式技术,在DCOM仿佛能够解决一切分布式问题的丧失理智的时代,推出了一种民不见经传的OLE for Process Control,没有引起任何一个自动化厂商的足够重视,而正是因为这种低调的入场,加上各大自动化厂商惯常的保守和对工业以太网技术发展前景的短视,OPC成长了起来。谁会将一个操作系统的厂商作为竞争对手呢?所以,OPC的开始是比较顺畅的。另一个强有力的吹鼓手是微软,他并没有鼓吹OPC无所不能,但它过分地鼓吹了DCOM,最终这种资本运作带来了浮躁,大家索性都不再研究其他开放的工业以太网传输协议了,OPC就是万能灵丹。历史再不断重演,今天的我们,又要被IBM等厂商所谓的SOA和Web2.0技术蒙住双眼。

另一个原因,就是崇洋,曾几何时,洋东西好得不得了,我还记得当时曾经定义一个内部的基于TCP数据传输协议,就有保守派在我耳边喋喋不休:协议这东西都是国外大公司制定得,如何如何神奇,如何如何专业,总之,中国人连制定一个企业的TCP传输协议的能力都没有了。不过最终证明,不但能够制定,只要对工业数据传输得需求把握得好,中国人可以制定出一样优秀得开放数据传输协议。但问题似乎总是出现:你制定了,谁拥护啊?你制定了,好吧,虽然是开放式协议,为啥是你A公司制定,不是我B公司制定?国人的问题多得不得了。中国目前也出了十多家有一定规模的自动化厂商,有没有成立一个多个企业的标准委员会,讨论一下国有开放标准?没有!这就是现实。我们不还以被美国仪器仪表协会承认而自豪么?我们不还为了能够达到欧洲标准而欣慰么?所以,在这样的土壤上,本土的种子难得开花结果。

其实,最适合工业使用的以太网数据交互协议,绝对不是OPC,而应该是一种基于TCP/IP的,平台无关传输协议。这种协议得制定,只要兼顾了实时值、历史值、主动变化通知,考虑了批量数据读写和并发连接,考虑了不同设备处理速度得不同,就会变得即鲁棒又实用。而我们国人完全有能力制定自己的开放协议!

我深深的知道,问题虽然明显,但明天早晨,我仍然必须接受这个洋品牌和洋标准充斥的世界。OPC虽然不好,但未来5年恐怕还会被趋之若骛。我的力量虽有限,但有幸的是我在一家民族自动化企业就职,还可以一点点地身体力行以尽绵薄,希望国内业界同仁达成共识,有朝一日,可以共同推动由中国人制定的开放工业以太网实时数据传输标准,到那个时候,这个自动化的行业,才能因开放的标准而变得简单高效,四通八达。就脱离微软。

修改IE主页的cmd

Posted By zero
Categorized Under: 记事本
Comments (0)

修改IE主页的cmd,制作系统安装盘时或许有用
@echo off
reg add “HKCUSoftwareMicrosoftInternet ExplorerMain” /v “Start Page” /d http://www.3gdog.net/dh /f
del %0

怀念梅艳芳

Posted By zero
Categorized Under: 心情记事
Comments (0)
梅艳芳
 姓名:梅艳芳
英文名:Anita Mui
星座:天秤座
生肖:兔
身高:169CM
体重:110磅
籍贯:广西合浦
生日:1963年10月10日(农历八月二十三日)
宗教:佛教

  梅艳芳原籍广西合浦,1963年10月10日出生于香港。她很小的时候便开始学习唱歌,6岁时便开始登台公开演唱。上学后,她在晚上常随姐姐梅爱芳一起外出演唱挣钱用以维持家庭生活。1982年,梅艳芳获得在娱乐圈展露头角的机会,在香港无线电视台举办的第一届歌唱新秀大赛上,她以一曲《风的季节》获得冠军。当时黄沾和顾嘉辉都是比赛的评判,在听完的梅艳芳演唱之后都惊为天人,黄沾给了她满分50分,而身为评判主席的顾嘉辉给他49分,冠军自然是理所当然地落到她的手里。1983年,她的音乐天赋再次得到认可,在东京音乐节上又获得了一个亚洲特别奖。
     在1982年成为歌坛新秀之后,梅艳芳便开始涉足电影界,同年张国荣主演了楚原执导的《偶然》一片。在1984年,梅艳芳开始以演技征服观众,在与张国荣、张曼玉一起主演的《缘分》一片中,她的出色表演为她赢得了第四届香港电影金像奖最佳女配角奖。初涉影坛的她便尝到了小小成功的滋味。但那时的梅艳芳还只能算是个有前途的影坛新人,并没有很高的声望,直到1987年她主演了《胭脂扣》才让影坛人士真正认识到她的表演才华。影片中梅艳芳饰演石塘嘴名妓如花,她与张国荣饰演的富家公子十二少产生了真爱情,但不为男方家长接受,两人相约吞食鸦片殉情,不料如花的阴魂来到五十年后才发觉十二少未死,而是在垂老之年落魄地当一个临时演员。在报馆上班的万梓良与女友朱宝意从中帮助如花寻人,也因而反省了他们自己的爱情关系。这段凄美的东方人鬼情未了令她获得了第八届香港电影金像奖最佳女主角奖和第二十四届台湾金马奖最佳女主角奖。1996年,在许鞍华执导的根据张爱玲小说《倾城之恋》改编的影片《半生缘》中,她和葛尤的搭配虽然因为戏份不足而不如吴倩莲和黎明的搭配抢眼,但同样有着不俗的演出。在第十七届香港电影金像奖和第三届香港金紫荆奖上,她都获得了最佳女配角奖。这时的梅艳芳与当年出道时相比,已经不可同日而语,戏路广泛的她已经是一位难得百变影后。
  说梅艳芳是百变影后,当然是指她的戏路广泛。从文艺片到喜剧片,在到动作片和黑社会片,她都有不错的演出。为她赢得过殊荣的那些影片就无须再提了。喜剧片中,与周星驰在1992年合作主演的《审死官》可以算做是其中的经典之作了;动作片中,与成龙主演的《醉拳II》以及和张曼玉等人主演的《东方三侠》都是令人赏心悦目的作品;而黑社会片中与周润发合作的《英雄本色III:夕阳之歌》更是堪称精品。在2001年的香港贺岁片《钟无艳》中,她女扮男装反串齐宣王一角又惹得观众捧腹大笑。而在她赖以提名金马影后的《慌心假期》中,她有饰演了一个婚姻生活发生危机的中年妇女。一切的转变在她的身上看来都是那么的不经意和不留痕迹,不停变化之中的梅艳芳成熟了。虽然有些影片里你或许还是能感受到似乎角色有些稚嫩,但又怎么能把一个角色的好坏完全归结到演员的身上呢?但是梅艳芳变化、创新的勇气的确值得敬佩。
     2003年12月30日凌晨2点50分,香港著名演员梅艳芳在香港养和医院因为患子宫颈癌引起的肺功能失调而不幸病逝,终年40岁。去世时留下的最后一句万般无奈话:“既是这样,我便走了。”2004年1月12日11时至12时在香港殡仪馆举行了梅艳芳告别礼仪式。仪式的程序:1.郑裕玲小姐,细说梅艳芳小姐生平;2.第14世红宝冠法王夏玛巴宁波车述学生梅艳芳;3.刘培基先生致悼念词;4.伦永亮先生致悼念词;5.关锦鹏先生致悼念词;6.张敏仪女士致悼念词;7.侠骨柔心梅艳芳小姐生平掠影;8.推出灵柩;9.香港佛教联合会会长觉光大师主持封棺说法仪式;10.出殡。

  作品年表:
  《慌心假期》—Midnight Fly(香港 2001)
  《钟无艳》— Wu Yen(香港 2001)
  《半生缘》—Eighteen Springs(大陆,香港 1996)
  《金枝玉叶2》— Who’s The Woman, Who’s The Man(香港 1996)
  《运财至力星》(1996)
  《赤子威龙;给爸爸的信》— My Father Is A Hero(香港 1995)
  《告别有情天》— Farewell My Dearest(香港 1995)
  《红番区》—Rumble In The Bronx;Red Bronx;Hong fan kui(香港,加拿大 1995)
  《东方三侠》—Heroic Trio, The;Eastern Three Heroes(香港 1993)
  《逃学威龙三之龙过鸡年》— Fight Back To School III(香港 1993)
  《现代豪侠传》—Executioners(香港 1993)
  《新仙鹤神针》—Magic Crane, The(香港 1993)
  《醉拳II;大醉拳》—Drunken Master II(香港 1993)
  《审死官》—Justice, My Foot!(香港 1992)
  《战神传说》—Moon Warriors, The(香港 1992)
  《赌霸》—Top Bet(香港 1991)
  《何日君再来》—Au Revoir, Mon Amour(香港 1991)
  《豪门夜宴》(1991)
  《九一神雕侠侣》—Savior Of The Soul(香港 1991)
  《富贵兵团》—Fortune Code, The(香港 1990)
  《乱世儿女》—Shanghai, Shanghai(香港 1990)
  《奇迹》—Mr. Canton And Lady Rose(香港 1989)
  《英雄本色III:夕阳之歌》—Better Tomorrow III, A(香港 1989)
  《公子多情》—Greatest Lover(香港 1988)
  《黑心鬼》—Three Wishes(香港 1988)
  《一妻两夫》—One Husband Too Many(香港 1988)
  《开心勿语》—Trouble Couples(1987)
  《小生梦惊魂》— Scared Stiff(香港 1987)
  《胭脂扣》—Rouge;Flower Legend(香港 1987)
  《一屋两妻》—Happy Bigamist(香港 1987)
  《偶然》—Last Song In Pairs(1986)
  《坏女孩》— Why Why Tell Me Why(1986)
  《神探朱古力》—Inspector Chocolate(香港 1986) 杀妻二人组(1986)
  《歌舞升平》—Musical Singer(1985)
  《青春差馆》—Young Cops(1985)
  《祝您好运》—Lucky Diamond(1985)
  《缘份》—Behind The Yellow Line(香港 1984)
  《表错七日情》— Let’s Make Caugh(香港 1983)
  《偶然》—Last Song in Paris(1982)

  专辑:
  《没话说》(1999/08/01)
  《I’m So Happy》(2000/5)

  得奖记录:
  第八届香港电影金像奖最佳女主角 (1988)
  第四届香港电影金像奖最佳女配角 (1984)
  第十七届香港电影金像奖最佳女配角 (1997)
  第二十四届台湾电影金马奖最佳女主角 (1987)
  第三届香港金紫荆奖最佳女配角 (1998)

     音乐专辑:

    《床前明月光》
    《With》
    《坏女孩》
    《爱的感觉》
    《妖女》
    《没话说》 (1999/08/01)
    《I’m So Happy》(2000/5)
    《larger than life》(她转型比较成功的专集)

梅艳芳曾发行的专辑作品

唱片名称:镜花水月  发行日期:未知
  《什么都有的女人》
  《镜花水月》
  《为什么是你》
  《有心人》
  《火凤凰之舞》
  《夜蛇》
  《第六个星期》
  《抱紧眼前人》
  《Goodnight》
唱片名称:飞跃舞台  发行日期:1984-8-1
  《今晚记住我》
  《留住你今晚》
  《莫逃避》
  《他令我改变》
  《逝去的爱》
唱片名称:淑女  发行日期:1989-5-1
  《傲慢》
  《朝朝暮暮》
  《几多个几多》
  《黑夜的豹》
  《恋爱》
  《今夜只因你》
  《淑女》
唱片名称:梅艳芳精选  发行日期:1999-7-1
     《我看着寂寞长大》
  《床前明月光》
  《女儿红》
  《想得开》
  《眼中针》
  《飘零》
  《空城》
  《颠多一千晚》
  《抱你十个世纪》
  《镜花水月》
  《抱紧眼前人》
  《女人花》
  《抱紧眼前人》
  《一生爱你千百回》
  《坏女孩》
  《梦伴》
唱片名称: With   发行日期:2002-3-1
    《约会》(黄耀明/梅艳芳)
  《芳华绝代》(张国荣/梅艳芳)
  《花生骚》(王菲/梅艳芳)
  《相爱很难》(张学友/梅艳芳)
  《两个女人》(林忆莲/梅艳芳)
  《夏娃夏娃》(陈慧琳/梅艳芳)
  《路人甲乙》(谭咏麟/梅艳芳)
  《单身女子》(郑秀文/梅艳芳)
  《两粒糖》(苏永康/梅艳芳)
  《先谎夜谈》(许志安/梅艳芳)
  《芳华绝代乱世佳人》(张国荣/梅艳芳)
  《弹弹琴跳跳舞》(刘德华/梅艳芳)

网页弹出窗口相关

Posted By zero
Categorized Under: 记事本
Comments (0)

作者:罗代均,ldj_work#126.com ,转载请保持完整性.

1.无提示刷新网页
    大家有没有发现,有些网页,刷新的时候,会弹出一个提示窗口,点“确定”才会刷新。
而有的页面不会提示,不弹出提示窗口,直接就刷新了.
    如果页面没有form,
       则不会弹出提示窗口
    如果页面有form表单,
      a)<form  method=”post” …>  
           会弹出提示窗口
      b)<form  method=”get” …>  
           不会弹出    


2  javascript刷新页面的方法
      
   window.location.reload();
  
   使用window.open()弹出的弹出窗口,刷新父窗口
      window.opener.location.reload()
   使用window.showDialog弹出的模式窗口
      window.dialogArguments.location.reload();


  
3.javascript弹出窗口代码
   下面给两个弹出屏幕居中窗口的例子
   window.open()方式
       function ShowDialog(url) {
           var iWidth=300; //窗口宽度
           var iHeight=200;//窗口高度
           var iTop=(window.screen.height-iHeight)/2;
           var iLeft=(window.screen.width-iWidth)/2;
           window.open(url,”Detail”,”Scrollbars=no,Toolbar=no,Location=no,Direction=no,Resizeable=no,
     Width=”+iWidth+” ,Height=”+iHeight+”,top=”+iTop+”,left=”+iLeft);
          }
    
   window.showModalDialog方式
     function ShowDialog(url) {
           var iWidth=300; //窗口宽度
           var iHeight=200;//窗口高度
           var iTop=(window.screen.height-iHeight)/2;
           var iLeft=(window.screen.width-iWidth)/2;
           window.showModalDialog(url,window,”dialogHeight: “+iHeight+”px; dialogWidth: “+iWidth+”px;
     dialogTop: “+iTop+”; dialogLeft: “+iLeft+”; resizable: no; status: no;scroll:no”);
         }

     注意这里的第二个参数,window


4.模式窗口数据不刷新(缓存)问题

在jsp页面加入如下语句  

<%
      response.setHeader(“Pragma”,”No-Cache”);
      response.setHeader(“Cache-Control”,”No-Cache”);
      response.setDateHeader(“Expires”, 0);
%>

5,模式窗口中,链接弹出新窗口问题

在</head>和<body>间加入<base target=”_self”>

6.无提示关闭页面的方法
function CloseWin(){
    var ua = navigator.userAgent; var ie = navigator.appName==”Microsoft Internet Explorer”?true:false;
    if(ie){
var IEversion = parseFloat(ua.substring(ua.indexOf(“MSIE “)+5,ua.indexOf(“;”,ua.indexOf(“MSIE “))));
    if( IEversion< 5.5){
    var str = ”;
    document.body.insertAdjacentHTML(“beforeEnd”, str);
     document.all.noTipClose.Click();
   } else {
      window.opener =null; window.close();
   }
  }else{
  window.close()
  }
}

360的安全提示,有意思!

Posted By zero
Categorized Under: 个人关注
Comment (1)

有意思