2009年12月16日星期三
文件名编码转换convmv
手动操作文件夹很麻烦,工具convmv解决了这一问题。并支持批量转换。
注意:
不要在NTFS或FAT文件系统上做此种操作,否则可能产生意外结果。如果要在Linux中正确显示NTFS和
FAT的中文件名,请参阅挂载Windows分区。
convmv存在于常见操作系统的源中。如果当前没有工具,可以直接安装。
实时股票数据接口大全
1. http/javascript接口取数据
2. web-service接口
1.http/javascript接口取数据
1.1Sina股票数据接口
以大秦铁路(股票代码: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):
http://hq.sinajs.cn/list=s_sh000001
服务器返回的数据为:
var hq_str_s_sh000001="上证指数,3094.668,-128.073,-3.97,436653,5458126";
数据含义分别为:指数名称,当前点数,当前价格,涨跌率,成交量(手),成交额(万元);
查询深圳成指数:
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
1.2 Baidu&Google的财经数据
在baidu,
google中搜索某只股票代码时,将会在头条显示此股票的相关信息,例如在google搜索601006时,
第一条搜索结果如下图:
通过点击左边的图片我们发现会将此图片链接到sina财经频道上,也就是说google股票数据的获取也是从sina获取。后经抓包分析,发现google也是采用1.1中介绍的接口。
Baidu的股票数据来自baidu的财经频道
http://stock.baidu.com/
1.3 其他方式
除了sina,baidu等网站提供股票信息外,其他网站也有类似的接口。我们分析了一款论坛上采用的股票插件,
其中有关于实时股票数据获取的介绍,详见如下代码,其中可以看到有些数据来自sina。
以下是ASP示例:
<%
'==========================
' 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 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>
返回的数据如下:
R0lGODlhIQIsAfcAAAAAAAwLBxkGBQ4ODhAQEBsSChUVFS4TDB8eGQkA9koPCDAAzy4mFVgAp2UYC0IqEUYuBVwiDEAsI1QnFX8AgDU1NUozFlgxD6cBWVY5FnIwEmQ4Gc0AMlhDHPEADlVJMEpKSm1IHOUBWpY3FZMyVY9IGXRWIEFmWGNYUmpdPXJgHQB8HK9EGGBgX4lXIACoAHhkMyt4m4VkJtstbv8A
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线图字节数组
R0lGODlhIQIsAfcAAAAAAAwLBxkGBQ4ODhAQEBsSChUVFS4TDB8eGQkA9koPCDAAzy4mFVgAp2UYC0IqEUYuBVwiDEAsI1QnFX8AgDU1NUozFlgxD6cBWVY5FnIwEmQ4Gc0AMlhDHPEADlVJMEpKSm1IHOUBWpY3FZMyVY9IGXRWIEFmWGNYUmpdPXJgHQB8HK9EGGBgX4lXIACoAHhkMyt4m4VkJtstbv8A
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服务器获取相关的数据。
利用雅虎查中国股票
http://quote.yahoo.com/d/quotes.csv?s=MSFT&f=slc1wop
返回微软的股票价格
"MSFT","4:00pm - 30.70",+1.04,"21.46 - 30.75",29.77,29.66
http://quote.yahoo.com/d/quotes.csv?s=000969.SZ&f=slc1wop
这个返回安泰科技的,一般有半个小时的延迟。
但是s=000969.sz 这个后面的sz是深圳的意思, 沪市是SS后缀
ubuntu9.10 使用
号称可以叫板windows7,功能方面相当强悍。比如可能引起下一波屏幕手写浪潮的多点触摸,ubuntu9.10也同样具有,而且还有ubuntu
one云计算2G 免费空间。
至于3D桌面等炫酷功能,也是更早版本就已经带了。不过由于本人电脑一直比较破,还没有试用过这些功能。
在参加linux
内核大会时,坐旁边的是canonical上海公司的员工,看到他把苹果笔记本装了ubuntu
9.10 beta版,很是羡慕。因此一直翘首等待9.10正式版发行。
-------------------------------
1. 下载ubuntu9.10和在windows下安装
-------------------------------
在ubuntu 刚刚发布当天,我就下载来最新官方正式版。
国内下载比较快的地址是sohu和163的镜像,推荐一下。
http://mirrors.sohu.com/ubuntu-releases/karmic/
http://mirrors.163.com/ubuntu-releases/9.10/
但ubuntu.com网站上并没有列举国内的镜像。
下载完毕,可以用ultraiso 虚拟到光驱,如下图:
虚拟光驱完成后点开相应的盘,看到一个wubi.exe,双击看到安装提示界面:
该版本非常人性化。可以用虚拟光驱在windows下面安装,并可以选择liveCD
方式进入再全面安装,也可以直接安装在windows分区。我选择后一种方式,提示是硬盘访问会稍微慢一点。但实际上感觉不到。
点了"在windows中安装"后,奇怪的是语言包里各种语言都有,包括Japanese,居然没有Chinese的选项,只好选English(US),挺郁闷的。如下图,一共提供了110多种语言选项,居然没有中文,害得我反复寻找,以为自己看花眼了。
用English(US)选项安装,不仅安装过程是英文的,安装完毕的系统也是英文的,没有切换为中文的选项。必须手动从网上下中文语言包。
系统解压,重新启动,会看到启动菜单里除了原来windows的选项,还有一个ubuntu的选项,选择该选项。系统自动安装,非常简单,没有指定安装任何驱动,即全部支持,包括网卡和声卡显卡。大概10多分钟就装完了。重启。
------------------
2.缺省安装没有中文支持
------------------
进入后,全是英文界面,当然也不会有中文输入法。在System的Preferences(首选项)的Network
Connections(网络链接)里,不是dhcp, 配好wired/wireless的 IP 和DNS
,即可上网,可以浏览中文网页。
进入System->administrator->Language support,
里面可选的语言也只有English,没有中文。
-------------
3.配置大陆更新源
-------------
先配一下大陆的下载源。可以将sohu和163的作为主要的。
cd /etc/apt
sudo cp sources.list sources.list.bk
sudo gedit /etc/apt/sources.list
将原来的us源清空,配置sources.list如下:
view plaincopy to clipboardprint?
#搜狐Ubuntu 9.10更新源
# Ping平均时长:40ms
deb http://mirrors.sohu.com/ubuntu/ karmic main restricted
deb-src http://mirrors.sohu.com/ubuntu/ karmic main restricted
deb http://mirrors.sohu.com/ubuntu/ karmic-updates main restricted
deb-src http://mirrors.sohu.com/ubuntu/ karmic-updates main restricted
deb http://mirrors.sohu.com/ubuntu/ karmic universe
deb-src http://mirrors.sohu.com/ubuntu/ karmic universe
deb http://mirrors.sohu.com/ubuntu/ karmic-updates universe
deb-src http://mirrors.sohu.com/ubuntu/ karmic-updates universe
deb http://mirrors.sohu.com/ubuntu/ karmic multiverse
deb-src http://mirrors.sohu.com/ubuntu/ karmic multiverse
deb http://mirrors.sohu.com/ubuntu/ karmic-updates multiverse
deb-src http://mirrors.sohu.com/ubuntu/ karmic-updates multiverse
# 网易163 Ubuntu 9.10更新源
# Ping平均时长:60ms
deb http://mirrors.163.com/ubuntu/ karmic main restricted universe
multiverse
deb http://mirrors.163.com/ubuntu/ karmic-security main restricted
universe multiverse
deb http://mirrors.163.com/ubuntu/ karmic-updates main restricted universe
multiverse
deb http://mirrors.163.com/ubuntu/ karmic-proposed main restricted
universe multiverse
deb http://mirrors.163.com/ubuntu/ karmic-backports main restricted
universe multiverse
deb-src http://mirrors.163.com/ubuntu/ karmic main restricted universe
multiverse
deb-src http://mirrors.163.com/ubuntu/ karmic-security main restricted
universe multiverse
deb-src http://mirrors.163.com/ubuntu/ karmic-updates main restricted
universe multiverse
deb-src http://mirrors.163.com/ubuntu/ karmic-proposed main restricted
universe multiverse
deb-src http://mirrors.163.com/ubuntu/ karmic-backports main restricted
universe multiverse
保存。
sudo apt-get update更新源。
----------------
4.解决中文界面问题
----------------
然后,进入System->administration->Language Support
Install/Remove Languages,安装语言,选Chinese
simplified.装完注销,选界面语言为中文简体,进入即看到了熟悉的中文界面。
系统会提示是否将此前缺省的英文目录改为相应的中文目录,我选择了否。
系统会自动安装huang peng的基于python的
ibus中文输入法,而不是苏哲的scim。我第一次用该输入法。本文也是ibus输入法输入的,非常好用。ibus输入法源码地址:http://code.google.com/p/ibus/
。
ibus输入法支持多种双拼方案,但双拼全拼不能同时支持,这是和搜狗拼音不一样的地方,也不太习惯。我用自然码输入本文时,碰到"安"字,不知如何输入。偶然发现是字母"o"可以作为元音开头,终于解决了这一问题。使用中又碰到输入法的面板突然变成了竖排,非常不习惯,后面发现可以在"系统"->"首选项"->"ibus"里面选候选表是横排还是竖排。
系统自带的软件也相当好用。openoffice 3.1功能强大,支持ms office
2007的格式。自带字典软件不是胡正写的stardict,功能没有胡正的强大。
-----------------
5.解决即时通讯客户端
-----------------
empathy是一款IM 客户端软件,支持windows
live,gtalk,jabber,yahoo,icq,irc等多种服务协议,甚至还支持QQ,不过我试用QQ
登录失败,用windows live(msn)成功。
qq deb包下载:
http://im.qq.com/qq/linux/download.shtml
http://softdl1.tech.qq.com/soft/21/linuxqq_v1.0.2-beta1_i386.zip
http://ppa.launchpad.net/portis25/ppa/ubuntu/pool/main/l/linuxqq/
下载完毕双击即可安装,试用登录OK。
--------------
6.ubuntu one试用
--------------
在 应用程序->internet->ubuntu one
进入了https://login.launchpad.net/+openid
如有launchpad.net的用户,可以直接登录,没有则需要注册。
登入后,提示是否将本计算机加入 ubuntu
one帐号,我将计算机改名为zhouhh,点"Subscribe and Add This Computer"
进入https://one.ubuntu.com/
有files,notes,contacts,account四个标签页。但系统提示客户端比较新,因而不支持,说正在更新服务端,不日可用。
在files下可以创建目录,上传文件时报
Service Temporarily Unavailable
错误。
notes
里添加了一份备忘,但不支持中文,保存后会将中文直接抹去。下面是用Alt+print
screen键直接抓的图。
设置完,在 位置->ubuntu one
可以打开一个窗口,该窗口里面的文件应该可以和网上保持同步。由于我的系统总报兼容性问题,所以没有自动同步成功。
--------------
7.音乐和电影播放
--------------
由于自由软件的版权问题,linux发行版一般不分发私有版权和版权或法律受限的软件,因此播放音乐和看电影经常不是自带的功能。
缺省的ubuntu 9.10也有同样的问题。
为来测试,本人下载了 "陶喆 蔡依林"的
"今天你要嫁给我.mp3"。但双击播放时,movie
player提示不能播放,需要下载插件。同意后,自动下载了具有不同版权协议的gstream
3个插件。重启后即可播放
mp3音乐了。但mplayer的播放列表中的中文歌名却变成了乱码了。但通过菜单打开乱码又变正常。而拖动时间条,会导致屏幕影像停滞不动。下载插件后同时对wma格式也支持。
播放mts高清视频,同样自动下载gstreamer0.10-plugins-bad后可以播放,但停顿严重,并且有很严重锯齿。
7.1 解决播放网络在线视频和flash的问题
firexfox3.5自动下载flash
播放器,可以下载adobe或gnu或gnome的,都可以。下载完后重启firefox,即可播放flash。测试http://v.youku.com/上的视频OK。
--------------------
8. 解决sudo输密码的问题
--------------------
zhouhh@ubuntu:~$ sudo visudo
找到
root ALL=(ALL) ALL
依样画葫芦,在下面添加一行
zhouhh ALL=(ALL) ALL
其中zhouhh是我的用户名。
%sudo ALL=NOPASSWD: ALL
至此,体验了一下最新版的ubuntu9.10,
除了中文问题以及没有单独的中文发行版,其余都很满意。使用起来和windows一样,没有什么障碍。
一直以来伴随我的一些学习习惯
1. 趁着对一件事情有热情的时候,一股脑儿把万事开头那个最难的阶段熬过去 。
万事开头难,因为从不了解到了解基本的一些事实,是一个新知识暴涨的阶段,这个时候的困难是最大的。有人熬不过去,觉得困难太大就放弃了。不过,狂热的兴
趣可以抵消对困难的感觉,所以趁着对一件事情有热情的时候,开一个好头是很重要的。(当然,这并不是说持之以恒就不重要了)。当然,也许这个是因人而异
的,对我来说我会在对一件事情有浓厚兴趣的时候非常专注地学习,把很多
groundworks 做掉。后面就会顺利一些了。
2. 根据主题来查阅资料,而不是根据资料来查阅主题 。以前读书的时候是一本一
本的读,眼里看到的是一本一本的书,现在则是一章、甚至一节一节的读,眼中看到的不是一本一本的书,而是一堆一堆的章节,一个一个的知识主题,按照主题来
阅读,你会发现读的时候不再是老老实实地一本书看完看另一本,而是非常频繁地从一本书跳到另一本书,从一处资料跳到另一处资料,从而来获得多个不同的人对
同一个主题是如何讲解的。比如最近我发现在看蒙特卡罗算法时就查了十来处资料,其中有三四篇
paper
和六七本书;这是因为即便是经典的书,你也不能指望它对其中每一个主题的介绍都是尽善尽美的,有些书对某个主题(知识点)的介绍比较到位,有些书则对另一
些知识点介绍得比较到位。而有时候一篇紧凑的 paper
比一本书上讲得还要好。我硬盘里面的书按主题分类,每个主题下面都有一堆书,当我需要学习某个主题的知识时(譬如贝叶斯学习或者神经网络),我会把里面涉
及这个主题的书都翻开来,索引到相关章节,然后挑讲得好的看。那么,如何判断一个资料是好资料还是坏资料呢?
3. 好资料,坏资料 。好资料的特点:从问题出发;重点介绍方法背后的理念(
rationale
),注重直观解释,而不是方法的技术细节;按照方法被发明的时间流程来介绍(先是遇到了什么什么问题,然后怎样分析,推理,最后发现目前所使用的方法)。
坏资料的特点是好资料的反面:上来就讲方法细节,仿佛某方法是从天上掉下来的,他们往往这样写"我们定义...
我们称... 我们进行以下几个步骤...
"。根本不讲为什么要用这个方法,人们最初是因为面对什么问题才想到这个方法的,其间又是怎样才想出了这么个方法的,方法背后的直观思想又是什么。实际上
一个方法如果将其最终最简洁的形式直接表达出来往往丢失掉了绝大多数信息,这个丢掉的信息就是问题解决背后的思维过程。至于为什么大多数书做不到这一点,
我在这里 试着分析过。
4. 学习一个东西之前,首先在大脑中积累充分的"疑惑感" 。即弄清面临的问题
到底是什么,在浏览方法本身之前,最好先使劲问问自己能想到什么方法。一个公认的事实是,你对问题的疑惑越大,在之前做的自己的思考越多,当看到解答之后
印象就越深刻。记得大学里面的课本总是瀑布式地把整个知识结构一览无余地放在面前,读的过程倒是挺爽,连连点头,读完了很快又忘掉了,为什么?因为没有带
着疑问去学习。
5. 有选择地阅读 。很多人觉得我读书速度很快,其实我只是有选择地阅读。这里
的选择体现在两个地方,一是选择一本书中感兴趣的章节优先阅读。二是对一本书中技术性较弱或信息密度较低的部分快速地略读。一般来说,除了技术性非常强的
书之外,大多数书的信息密度很低,有很多废话。一般来说在阅读的时候应该这样来切分内容:1.
问题是什么?2. 方案是什么?3.
例子是什么?如果是需要解释一个现象的(譬如《黑天鹅》),那么1.
现象是什么?2. 解释是什么?3. 支撑这个解释的理由是什么?4.
例子是什么?一般来说,这一二三四用不了多少字就可以写完了(如果假设只举一到两个精到的例子的话),这样的无废话著作的典型是《合作的进化》;那为什么
有些书,明明核心观点就那点东西(顶多加上几个精要的例子罢了)却写得长得要命呢?因为人的思维都有一个"联想"的特点,写着写着就容易旁逸斜出,而且作
者自己也往往觉得引申出去挺牛逼,有时候很多与主题无关的废话就掺和进来了;那么,阅读的时候就应该有选择性地滤掉这些不相干的废话;此外还有一种可能性
就是大量冗余的例子。一般来说组织得比较好的书会有详细且一目了然的目录和索引,根据目录首先就可以滤掉一部分(比如某个子章节的内容你以前是看过的),
然后有时候作者还会举很多冗余的例子,如果你已经觉得印象够深刻了这些例子完全可以不看(一些书就非常厚道地对每个观点只辅以一两个最最经典的例子,譬如
《与众不同的心理学——如何正视心理学》,这样的书我最是喜欢)。
6. 为什么看不懂 ?如果看不懂一个知识,一般有如下几个可能的原因:1.
你看得不够使劲。对此古人总结过——书读百遍其义自现。虽然这个规律不是任何时候都成立的,但是从认知科学的角度看是完全可以解释的,我们在阅读的时候,
注意力往往会有选择性地关注其中的某一些"点",而忽略了另一些"点",于是一遍看下来可能因为某一些忽略导致无法理解整体。或者干脆看的时候就没注意其
中一些细节但重要的东西。此外,大脑理解一个东西需要一定的处理时间,人脑的处理速度很慢,神经冲动每秒传输速度不过百米,所以不能指望看到哪懂到哪。最
后,我们可能因为思维定势的原因会从某个特定的角度去看一句话而忽略了从不同角度去理解的可能性。对于这类情况,仔仔细细地再多读两遍,多试着去理解两
遍,往往会"哦!原来这样。"地恍然大悟。2.
其中涉及到了你不懂的概念。这是技术性的不理解。这种情况就需要 Cross
Reference
。如果一句话中用到了你不懂的概念,那就去查,现在很多书都是电子书,直接搜索一下,或者,对于纸书,看一下书后面的索引就行了。奇怪的是很多人看不懂也
不分析一下为什么不懂,就直接放弃了。正如解决问题一样,问题卡住解决不了,第一时间要做的就是分析到底为什么解决不了,而不是直接求救。3.
作者讲述的顺序不对,你接着往下看,也许看到后面就明白了前面的了。
杂项
7. 如何在阅读之前就能获得对一本书质量的大致评估 。在深入阅读之前能够迅速
评估一本书的质量可以节省很多时间。基本上有几个线索:1.
看作者。牛作者写的书一般都不错。2.
看目录和简介。一份好的目录和简介能够透露这本书质量的相当一部分信息。目录结构是否清晰,是否直白(而不是装神弄鬼),都是衡量的线索。3.
看 Amazon
上的评价,这里要注意的是,除了看整体打分之外,更要看打分最低的人是怎么说的,因为小众意见往往有可能来自那些真正懂行的人(除了来踢馆的),如果在打
分最低的意见里面看不到真正有价值的反驳意见的话就相当肯定书是不错的了。4.
看样章。Amazon
上一般都可以随机浏览一些章节的,表达是否清晰,论证是否严谨,内容是否深刻,基本是几页纸就能看出来的。
8. 如何搜寻到好书 。几个线索:1. 同作者的著作。2. Amazon
相关推荐和主题相关的书列(类似豆瓣的豆列)。3.
一本好的著作(或一份好的资料——不管是书还是网页)在参考资料里面重点提到的其他著作。4.
有时对于一个主题,可以搜索到好心人总结的参考资源导引,那是最好不过的。
2009年12月15日星期二
ubuntu 9.10下linux qq 自动退出的问题
qq经常会自动退出,不清楚什么问题,导致我用了一段时间的web qq
昨天发现是可以处理的,修改/usr/bin/qq,添加一个环境变量
export GDK_NATIVE_WINDOWS=true
修改后:
#cat /usr/bin/qq
#!/bin/sh
export GDK_NATIVE_WINDOWS=true
cd /usr/share/tencent/qq/
./qq
附:GDK_NATIVE_WINDOWS是什么意思?
GDK has been rewritten to use 'client-side windows'. This means that GDK
maintains its own window hierarchy and only uses X windows where it is
necessary or explicitly requested. Some of the benefits of this change are
* Reduced flicker
* The ability to do transformed and animated rendering of widgets
* Easier embedding of GTK+ widgets, e.g. into Clutter scene graphs
Launching an app with GDK_NATIVE_WINDOWS=1 application turns off this
feature. This is needed if the application manipulates the windows it
creates using direct X API calls or a mixture of X API and GDK instead of
just going through GDK. When using "client-side windows" all window
manipulation by an application must go through GDK. Adobe needs to update
Acroread to be compatible with this feature.
网络视频监控系统的国际标准趋势- ONVIF vs. PSIA
根据Freedonia
Group预测,全球安全市场2011年的产值,将从2001年的802亿美元,成长到2,658亿美元,成为全球重要产业之一。
另外,根据知名分析机构DATAMONITOR的报告,在安全产业中,「数位影像监控」又是成长速度最快的项目之一,其市场总营收值已由2003年的13亿美元,成长到2007年的74亿美元。
影像安全监控需求逐渐「质变」
随著人们的安全意识抬头,近年来,监控摄影机已被广泛装设在城市中的大街小巷、重要路口、交通运输系统、大楼内外及公共设施,成为吓阻犯罪的重要利器之一;以英国为例,全国就已建置约420万支的摄影机。
传统的影像监控系统,必须在控制中心配置大量监控画面,并以紧盯萤幕的方式来进行影像监控,在摄影机布建数目大幅增加的情况下,也对后端监控人员造成极大的负担。
另一方面,目前的影像安全监控,大多属於被动式的录影方式,只能在事后提供查证,已无法满足大多数使用者期待安全系统应提升到「事发」当下即时告警,甚或做到「事前预警」的需求。
为因应这些需求,相关厂商相继投入开发具备智慧功能的影像监控产品及系统,也促使全球安全监控系统的演进(详见附图)。如今,智慧化及数位化已成为趋势所在,后端软体和系统整合的产值,也势必快速成长。
监控系统朝向网路化发展
此外,随著资讯通讯技术(ICT)日新月异与网路设施的普及化,监控系统也已朝向网路化发展及结合。
而在监控系统演变的过程中,各家的网路化数位监视产品,并不像传统监视设备传输影像的讯号,拥有共同规范(ex.
NTSC/PAL)。由於规格不统一,不同产品或系统之间,彼此难以相容,导致厂商生产的前端设备(如Network
Camera、Video
Server),因无法和其他厂商生产的后端接收设备(如NVR)相互连通,造成客户在使用上的困扰,甚至进而影响其购置意愿。
标准化课题越来越受重视
随著数位影像安全监视市场蓬勃发展,业者开始认真思考,制定网路前端设备(例如摄影机)与后端系统(例如影像管理)之间统一标准的必要性。但为避免资源浪费,以及为达成产品间的互通性(Interoperability)(注一)等目标,国际上已有两个团体(ONVIF及PSIA)分别於去年(2008年)成立,针对IP-Based影像监控产品提出建议草案,来制定前后端设备的介面(Interface)共通标准,期望经由共同规范的订定,为未来建构可互通的数位监控连结网路,预作准备。
虽然两者采用的作法,不尽相同,但比对两者目前草拟的规范草案,可发现它们一致使用XML作为资料交换格式,所要求的交换资料内容,也相去不远,只是部分内容涵括的范围,程度上有所不同。
现就该两大国际团体之起源、目标、进展及草案内容,简单说明如下:
一、#ONVIF (Open Network Video Interface Forum,开放式网路影像介面论坛)
Axis Communications(注二)、Bosch Security Systems 及 Sony
Corporation等三家公司,於2008年5月对外宣示,将致力发展网路影像产品介面标准的构想,其主要目标在於促进不同品牌网路影像设备间的整合,并帮助生产制造商、软体开发商及独立软体供应商确保产品的可互通性。
他们认为,经由统一开放的标准,将能提供终端使用者更大的选择弹性,让使用者能够从一堆不同供应商的产品中,更加自由的选用,以整合出一套适合不同需求的监视系统。
该标准化的原始动机,就是来自於上述三家厂商对於类此转往数位的观察与信念。
依据该论坛网站中的资料,自去年(2008年)10月开放会员登记后,截至今年2月底止,共已有40多家公司成为该团体的成员。最近新加入的会员,甚至还包括CISCO、Samsung
和 Siemens。
该团体目前的核心规范为1.0版(有兴趣的读者可至官方网站www.onvif.org下载),并已於去年12月在美国华盛顿D.C.所召开的第一次会议中,获得充分讨论。
该规范定义了网路影像产品(network video
products)间的统一通讯流程,让不同制造商的设备,可透过共通及定义完整的介面,来建置其网路影像监视系统。
该规范中的管理及控制介面,均以网页服务(Web
Services)来作叙述,并包含网路影像服务的XML schema及WSDL(Web Service
De-ion Language)定义,其所涵盖的内容包括近端与远端设备的探索(local and
remote device discovery)、设备管理(device
management)、影像组态(imaging configuration)、媒体组态(media
configuration)、影音的即时串流(real-time streaming of audio and
video)、事件处理(event handling)、影像分析(video
analytics)、PTZ(Pan、Tilt、Zoom)控制与安全机制等。
二、#PSIA (Physical Security Interoperability
Alliance,暂译为「实体安全互通联盟」)
主要由Cisco
Systems(注三)、Genetec、IBM、ObjectVideo、Panasonic、Pelco、Texas
Instruments及Verint等公司,於2008年2月成立,主要目标也是推动网路型安全设备间的可互通性,参与成员包括来自监视摄影机、影像管理软体、门禁控制与系统整合等不同性质的厂商,该团体也同样致力於开放标准的推动。
依据该论坛网站中的资料,截至今年3月底止,大约有40家公司参与该团体,目前的规范为1.0版(有兴趣的读者可洽官方网站www.psialliance.org),已被该联盟所组成的一群来自影像管理软体、摄影机制造、影像分析软体、网路影像录影及系统整合等不同领域成员厂商的专家们审查过,并在今年3月底於美国召开的第一次开发商会议(Developers
Meeting)中,获得确定,同时已有厂商宣称将会实现此规范。
另外,该团体在今年第二季前,也将公布举办插拔测试大会(PlugFest)的相关资料,希望藉此让厂商们透过实际介接,来测试其所开发产品彼此间的互通情形。
该规范中定义媒体装置(Media
devices)及其功能所需的HTTP(S)应用程式介面(Application Programming
Interfaces,
APIs),其所涵盖的内容,包括:系统、管理、网路、IO、影音输入/出、设备、PTZ、动态侦测、串流及事件处理等功能与设定。
六大观察指标
综观这两个团体,他们都努力追求相同的目标(亦即不同网路影像产品间的可互通性),但两者之间,却仍有以下几项观察指标,值得持续注意及追踪:
一、成员角色
ONVIF有网路摄影机代表性厂商Axis担任三大发起成员之一,这点可能使得Axis在该团体中具有举足轻重的角色,进而影响或操控ONVIF规范的方向及发展步调。
反观PSIA,则无类似可以比拟的要角,但却可对CISCO这家公司来作探讨。虽然CISCO很难像Axis一样,有能力撼动整个规范的方向及发展步调,却可解读为网通厂商欲借由标准化,来切入安全市场。
然而,CISCO也在今年初加入ONVIF,并成为其full
members的一员,未来动向值得持续观察。
二、市场性
以目前各厂家的市场来区分,ONVIF成员厂商的销售市场,主要以欧亚地区为主,PSIA则以美洲地区为多,产品的市场竞争性略有区隔。
三、实施性
ONVIF采定义平台、指令及需求方式,以Web Service的SOAP (Simple Object
Access Protocol)为主要结构;PSIA虽也架构在Web
Service之下,却以API(Application Programming
Interface)方式,并采HTTP(Hypertext Transfer
Protocol)来支持互通性的实施,相较而言,后者可能会比较容易施行。
四、智慧性
两个团体均已将Analytics及Metadata纳入规范中,这意味网路影像设备将朝向智慧化前进。虽然两者的规范程度,略有差异(即ONVIF的要求较多且程度较高,PSIA则稍嫌落后),但目标(i.e.智慧化)却是一致的。
五、积极性
相较於ONVIF,PSIA显得更为积极,主要原因可能来自於部分成员的网路摄影机产品市占率,远低於Axis,因此希望藉由这次机会,稍微扭转情势,即使无法超越,也不要落后太多。
六、提案申请
在成为国际标准前,必须先取得共识,并经由一个组织,例如电机电子工程师学会(Institute
of Electrical and Electronics
Engineers,简称IEEE)或美国国家标准协会(American National Standards
Institute,简称ANSI),正式采纳成为产业标准后,再向国际标准组织提出申请,并且经过不同阶段的审查及确认后,才能正式成为国际上认可的标准。
可惜ONVIF跟PSIA都不是IEEE及ANSI的成员,因此他们很有可能必须透过安全工业协会(Security
Industry
Authority,简称SIA,该协会也尝试制定安全相关的IP标准,只是步调上比较缓慢)来立案。
至於未来究竟将如何发展?值得持续观察。
最终结果还有待竞合
总之,前述团体研拟的草案,势必经过一番竞合,最终结果虽可能以大一统或并存方式来完成,但也不排除先由较易实施的规范先行,再逐步过渡到两者并存。
但不管以何种方式作结尾,该历程所必须花费的努力与时间,必然不下於现阶段所有的投入;而发展脚步的快慢,则端赖未来凝聚共识的情况而定。
但可预期的是,所谓的国际标准,恐怕很难在短短一、两年内,大势底定。
我国应该提早因应
不过,国内各相关单位∕团体(包括权责部会、产业公协会、研究单位及学界等)与厂商(包括影像管理软体、摄影机制造、影像分析软体、网路影像录影装置制造和安全监控方案整合等厂商),在制定策略、订定国内统一规范或开发产品∕系统的同时,也必须投入时间观察前述国际标准的后续发展和演进,并提前预作准备(以厂商为例,可押宝其中之一,也可采两者兼容作为产品的未来规划)或预作伏笔,以期在国际间形成共识时,即可在最短的时间内,快速因应。
当然,更积极的作为,也可以由国内厂商∕团体单独、国内厂商∕团体代表,或者与国外大厂策略联盟等方式,来参与前述组织。
但无论如何,我国究竟应以何种方式参与,以获取多数厂商的最大效益?现在该是提前构思、规划及整合的时候。
文件批量改名和批量替换文件内容
1.批量改名采用命令rename
rename 语法:
rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
-v表示显示详细信息,-n表示不实际执行替换,只是看哪些文件会受影响。 -f
表示强制,不管是否有重名。
perlexpr是perl语法的表达式,
files则是匹配项。因此,该命令执行结果与perlexpr有关,不一定就是改文件名。
实例: 将所有文件名*.html 改为对应的.htm
rename 's/\.html$/\.htm$/' *.html
去bak后缀
rename 's/\.bak$//' *.bak
将文件名大写改为小写
rename 'y/A-Z/a-z/' *
但rename不能递归修改。
2.递归改名,用find+rename
将文件名的abc改为xyz
find . -name "abc*" -exec rename 's/abc/xyz/' {} \;
该命令可以将当前目录下所有子目录的文件都改名。
3.内容替换,用find+sed
将所有ablo 替换为ablozhou
find . -type f -exec sed -i -e "s/ablo/ablozhou/g" {} \;
sed 命令 -i 表示 --in-place,文件原地替换。-e 后跟替换表达式。