2009年5月25日星期一
2009年5月12日星期二
联通GPRS包月重复收费问题
4月29号,给10010拨打电话,要求将10元包80M的GPRS流量包在下个月变更为5元套餐。当时10010客服回复会在48小时内变更成功。5月8号,在www.10010.com查询
4月份的月固定费用为37元。而此前的2,3月份都是32元。
05月12日,拨打10010电话,第一次,客服回答是GPRS包月产生15元费用,并回复其重复收费是应该的、合理的;第二次拨打10010,客服5991,答应过后回复电话。
我既然购买了10元包80M的GPRS流量包,且按照中国联通的说法,在4月初已经将10元扣除;在联通扣除10元费用时,我就拥有了在4月份使用80M流量的权利,不应再为GPRS支付任何额外的费用。
联通公司共有以下2条霸王条款:
1,开通GPRS包月,要在0-48小时生效,而取消GPRS包月,则会立即生效,不管你是否已经缴付费用。用户没有权利使用已经支付费用的服务。
2,用户变更GPRS包月,则会在变更时重复收取费用。用户需要为已经支付费用的服务再次付费。
要求联通公司返还重复收取的费用,并取消以上2条霸王条款。
2009年4月28日星期二
项目管理及C++基本编码守则-jhonglei
每天总结自己编写代码中所犯的错误,并反思出错的原因;总结所获取的经验;归纳编程的基本原则。
文档的编写:
以后所有提交的文档的文件名中写三部分:文件名-姓名-日期。文件名要简洁,语义清晰。这样文档多了容易查找程序开发
变量:命名规范函数的编写
注释:
错误处理 函数参数检查
内存管理
版本控制
日志系统
阅读以下书籍:
《C++ Primer》
《Effective C++》
以下几点是在程序开发过程中实际发现的应当遵守的地方。
- 错误处理:
- 有限状态自动机是保证 编程正确性,安全性的 有力武器。比如在网络编程时,状态记录有助于排错。
使满足状态的包才会被处理,不满足状态变迁的包将被丢弃。如只有登陆后才进行继续的处理。防止恶意包和欺骗行为。
任何不满足格式要求的包将被抛弃。
- 一定要对收到的数据包的每一个字段进行长度检查,不满足长度要求得数据包进行抛弃。
- 对数据包的源地址进行检查,不满足长度要求进行抛弃。
eyeBeam,语音和视频从不同的IP发送是不可以接受的。nettalk中途更换语音的发送IP也是不可以接受的。其语音包的负载大小:也必须是20个字节:20ms的数据。
对于大于20的语音包,直接抛弃。如我们的nettalk.当视频RTP包发送到语音RTP包的接收端口时,由于没有做长度检查,导致内存越界,使得接收SOcket被改写。。
指针越界问题:使用必要的边界检查。预防缓冲区溢出漏洞
如果可能,进行必要的协议分析,以保证程序的正确性。
2,函数必须有两种返回值,1),程序是否正确执行,2),程序执行的结果
错误检查是保证程序健壮性的必要因素。
3,能用if条件判断的,不使用异常。
4,对于两种不同的协议,使用不同的端口进行处理。RTPRelay的命令包和RTP数据流应当分开。
5, 遵守最基本的命名规范,成员变量全部为private, 以m_*开头。。变量名应当容易理解,见名知意。
不要使用什么 dd ,zhu等看不出含义的名字。
变量的作用域越大,变量的命名应当越谨慎。
如有可能,不要使用全局变量。
禁止使用如下方式:
#define PORT 18800
原因:很有可能出现宏重定义,且名字也不清晰。
6,动态内存的管理:尽量少用。
使用内存检查工具检查内存内存泄露,如valgrind,但不要完全把希望寄托到检查工具上。
编写内存安全的代码是程序开发人员的责任。Win32的RuntimeChecker
使用相匹配的new/delete
char *pbuf = new char[len+1];
delete [] pbuf;
使用valgrind:
[hongleij@hustp2psrv bin]$ valgrind -v --leak-check=full ./meridianClient
==11443== 1 errors in context 7 of 9:
==11443== Conditional jump or move depends on uninitialised value(s)
==11443== at 0x418AE16F: pthread_mutex_init (in /lib/libpthread-2.5.so)
==11443== by 0x418128DC: pthread_mutex_init (in /lib/libc-2.5.so)
==11443== by 0x4010877: CMeridianThread::CMeridianThread() (CriticalSection.h:55)
==11443== by 0x4015A80: StartRTPRelay (RTPMain.cpp:17)
==11443== by 0x804868B: main (Client.cpp:7)
使用必要的初始化函数:
CriticalSection()
{
pthread_mutexattr_t mutex_attribute;
pthread_mutexattr_init(&mutex_attribute);//add jianghonglei 081010
pthread_mutexattr_settype(&mutex_attribute, PTHREAD_MUTEX_RECURSIVE);
pthread_mutex_init(&mutex_, &mutex_attribute);
pthread_mutexattr_destroy(&mutex_attribute);//add jianghonglei 081010
}
7,使用CVS或SVN服务器来进行版本控制,并对文件目录的设置进行规范。
维护以下部分:
源代码,文档,参考资料
尤其是跨平台程序的开发。win工程文件使用单独的目录,代码与配置清晰
设置的目的不仅仅维护代码,而且包括文档,
每个用户有不同的权限,每次提交必须添加注释,表明这次修改的目的,和测试结果
8, 编写可复用的代码。相当于对代码进行了多次测试。品质更容易保障。
9,统一的日志输出格式:正确区分编程错误,网络IO错误,和异常情况。可以支持模块化调试。
如只输出某个或某几个模块的调试信息。
1), 调试信息以模块名开头如:KAD
2), 并区分错误信息的等级,类型:
3), 输出时间
10:绝不允许出现类似如下的情况:
char * pBuf =NULL;
std::cout<<pBuf;
11: 不允许出现函数需要返回值却没有返回值 的情况,例如
int func()
{
if(true)
{
return 1;
}
//this place should add return !!!
}
最好保证函数有单一的入口和出口。
12: 调用网络相关函数,必须对错误情况/返回值进行检查。不允许不做检查的情况出现。!!!
sendto, recvfrom
ReceiverAddr.sin_family = AF_INET;//IMOPTANT!!!!
ReceiverAddr.sin_port=htons(18888);
ReceiverAddr.sin_addr.s_addr=inet_addr(iter->ip);
13:为防止端口冲突,程序中所有端口在同一文件中配置。
14: 每行代码不超过80个字。目的:在比较时容易忽略掉。
15: C++异常的处理,如果使用,应当尽可能在最内层处理。
16:数据一致性是程序正确性最根本的保证。应当充分尊重数据库的黄金法则:“同一个意思只表达一次”。至少包括两层意思:代码简练,少冗余。
17.不得做如下调用,在同一函数中调用2次inet_ntoa函数;
RTPAdd(localIP,AVIO_PORT,
inet_ntoa(pMgr->m_CalleeAddr.sin_addr),ntohs(pMgr->m_CalleeAddr.sin_port),
inet_ntoa(pMgr->m_SuperNode.sin_addr),MERIDIAN_COMMAND_PORT
,NULL,NULL,GetTickCount());
18: 调用sendto()时,必须是系统支持的库函数
void CAVIOMgr::OnRelayCommand(const char * ppc,int recvPackLen,SOCKADDR *recvAddr)
{
SOCKADDR_IN pingAddr ;//TODO 为什么必须要进行一次转换??
memcpy(&pingAddr,recvAddr,sizeof(SOCKADDR_IN) );
int bytesSended = m_Socket.SendTo((const char *)tmpBuf.GetBufferPrt(),tmpBuf.GetWritePos(),(SOCKADDR*)&pingAddr);
//否则会产生10047 WSAEAFNOSUPPORT 错误
}
19,select的使用:
if( FD_ISSET( pMgr->m_Socket.GetSocket(), &writefds ) )
{
pMgr->processPackSend();
}
if( FD_ISSET( pMgr->m_Socket.GetSocket(), &readfds ) ) //不是 else if
{
}
20:创建项目的Bug错误列表。
表明程序的修订状况。
21: 出现Stack错误。
在调试状态没有问题,不调试出现问题。
原因:某些变量在使用时没有初始化。。
22: 保证程序的健壮
程序的
================================
l99.com -> 相机照片,时间,GPS数据整合 -〉应用
未来的信息搜索 --〉 依时间轴依次排列,关联度(where ,what,time),
拼车网 --〉撮合率 凡事预则立 (临时需求)
火车票
游戏组队
信息的过滤和筛选--〉有用信息,BBS,
51758855--719
但>2M*7K=
实际用户数:license
>30-40 CPS
2get 1put 30*2 =60读
用户数据量:IMS标准 3GPP 30K
CSF
话单
DNS 解析:
nokia sip stack
ims mar maa
2009年4月22日星期三
Dell D620 H264 1080P 硬解码与播放器的选择
Quadro NVS 110M/120M都采用G72M的显示核心,110M的性能相当于Geforce GO 7300,120M则相当于Geforce GO 7400。
Quadro NVS 140M采用G86M核心,性能应该相当于Geforce 8600GS或者8400GT。 Quadro NVS系列显示芯片的优势并不在强大的3D性能,如Quadro NVS 110M在3DMark 03下得分只有3308。根据nVIDIA的官方资料,Quadro NVS笔记本型电脑解决方案提供符合现今专业人士要求的可靠度、稳定度、易用性,并通过各种商业应用软件的兼容性测试。
硬件:Dell D620
CPU: T2300E
内存:2*512M
显卡:Quadro NVS 110M
OS :WinXP SP3
驱动: ForceWare 174.31 DEll网站的R181148.exe
电影:Transformers.Blu-ray.REMUX.H264.1080P.TrueHD.DD51.SILUHD.disk1.ts
根据本人的测试结果:
暴风影音2009 "1对1"特别版[3.09.03.25版]
不支持H.264硬件解码,播放1080P电影时CPU占用率100%.其所谓的“全面支持市面所有已知的74种高清加速显卡”纯属虚假宣传,误导消费者。
PowerDVD.Ultra.Deluxe.v7.3
支持H.264硬件解码,播放1080P电影时CPU占用率50-60%
分布式存储的研究现状
由于单一的服务器无法存储数百TB的数据,无法每秒处理百万级的并发请求,分布式存储系统应运而生。例如截至08年09月,eBay存储了超过2PB的数据,每天需要处理25PB数据,执行480亿次SQL查询。另外,出于规模经济的原因,大的数据中心比小的数据中心有显著的成本优势:在一个5万台服务器的数据中心和1千台服务器的数据中心相比较,平均网络带宽和管理成本前者是后者的1/7.1,而平均存储成本则只有后者的1/5.7。存储系统中数以万计的服务器,使得任何组件出现短暂或永久性故障都成为常态,网络的时延、带宽、成本约束,应用对高性能、高可用、高延展性、易于管理的要求,都对分布式存储系统的设计提出了严峻的挑战。
问题的来源
为了应对各种失效情况,提高可用性和性能,降低通讯成本,通常采用数据的冗余策略,而副本(采用多台失效相互独立的服务器)和纠删码是两种常用的方式。这样即使其中一些复本失效或出现网络分隔(Network Partition)的情况,用户也可以访问到一些服务器,从而继续操作。通过服务器复本以及协调客户端与服务器复本间的交互,复本状态机(Replication State
machine)成为实现容错服务的通用方法。Chubby[OSDI'06,PODC'07], ZooKeeper[Apache]和Boxwood
[OSDI’04]等服务都使用了复本状态机。这种方式也提供了用来理解和设计复本管理协议的架构。许多协议都包含了数据或软件的复本,用于屏蔽错误或者在没有中心控制的情况下协作。确定性(Deterministic)是一种理想可以提供容错的性质。直观上,如果一个系统有多个复本存在,错误很容易因不同复本的状态或输出不同而被发现。通常需要2F+1的节点来纠正F个错误节点的情况。特别的,如果失效复本不产生输出,则只需要F+1个复本。拜占庭错误是指错误节点会向不同节点产生不同输出,错误节点可以产生随机、伪造的错误或者恶意、有智能的攻击。这种情况至少需要3F+1才能纠正F个错误节点产生的错误信息,也即著名的Byzantine-Fault
Tolerance (BFT)问题。对于一个确定的服务,服务器状态和要执行的功能都复制到一个服务器集合中每台服务器复本,复本间使用协商协议(consensus protocols)就要执行的命令达成一致。常用的协商协议有Paxos、Fast Paxos[Distributed Computing'06]和CoReFP,Mencius[OSDI'08]是一种来源于Paxos的用于广域网的多领导状态机复本协议,以达到在高负载时达到高吞吐率、低负载时低时延的目的,自适应变化的网络和负载状况。近年,如OSDI’06、OSDI’08、NSDI‘09都有关于复本状态机相关的论文。特别对于BFT问题,SOSP'07、NSDI’08、NSDI'09都设有专题讨论,ICDCS'08和USENIX’09也有相关论文。MIT、CMU、RICE、德克萨斯大学、Intel、Microsoft都有学者从事相关研究,成为近年学术前沿的研究热点问题。例如,Zeno[NSDI'09]通过弱化一致性,来提高BFT的性能和可用性。德克萨斯大学奥斯汀分校的Allen Clement等人在NDSI'09的论文中发现现有BFT协议无法有效应对客户端的恶意请求,由此提出容忍拜占庭错误的BFT系统。
根据CAP理论(Consistency, Availability, and Partition-tolerance),数据一致性,数据的可用性和网络分隔容忍三者最多只能满足其中的两个。数据的一致性是指用户总是得到正确的数据;数据的可用性是指用户总是能够得到相应;网络分割容忍是指允许网络丢失节点间的任意消息。当网络分裂时,从一个网络分区节点发往另一网络分区中节点的消息都会丢失。对于只读存储系统,数据一致性很容易得到保障;而对于可以执行更新操作的存储系统,为保证业务逻辑的正确性,必须设计恰当的数据一致性模型,使一致性得到某种程度的保证。传统的关系性数据库通过提供我们熟知的串行化事务来提供并发操作的数据一致性。但是对于分布式系统,提供串行化事务在性能和可用性上是不可行的。而根据Yahoo!的许多Web应用的经验,这些应用倾向于每次操作一条记录,通用的事务机制通常并不需要;例如,用户更改个人形象,上传一张图片,邀请若干好友发起会议,即使新的个人形象对于一个好友没有马上可见,也是没有多少影响的。事实上许多分布式复本系统只提供了最终一致性(eventual consistency):客户端每次更新时,只需更新该对象的任一复本;系统只保证该对象的所有更新最终会应用到每个复本,而对于不同复本,更新顺序可能不同。但是,这种最终一致性通常太弱,而不适用于例如Web等应用。例如Amazon的Dynamo利用Vector clocks 在读取时重新排列更新以解决某些更新冲突,而Yahoo!的PNUTS,提供每记录的时间轴一致性模型来提供不同等级的一致性。而WheelFS允许应用程序通过语义线索(semantic cues)控制数据一致性。
分布式存储系统的分类
按照系统功能可以划分为:归档/备份、通用文件系统、发布/共享、高性能等等。按照存储架构:Client/Server、P2P;其中P2P架构又可划分为全局中心架构、本地中心架构和纯P2P架构。也可以按照操作环境,使用模式,对于数据一致性的要求,安全性,自动管理,路由策略和网络环境等进行分类。总的来说,根据应用场景,可以分为由广域网、非信任节点组成的存储系统和面向数据中心的存储系统。不同存储系统提供的接口也不同,有分层(文件系统)命名空间和扁平(P2P)命名空间;有的提供复杂的结构化查询,有的只提供简单的key-value查询。另外存储系统的节点规模、类型(PC或Server)、地理分布及网络连接方式也可以做为分类依据;有的提供开放的协议,而有的完全私有。另外,不同存储系统的业务需求,I/O模式也千差万别:有的是只读系统,有的则要求支持更新操作;不同应用对I/O时延的要求也不相同;例如对于电子商务,为了良好的用户体验,必须提供“总是可写”的方式,并且用户的请求必须在数百毫秒内的得到相应。下面就近年出现的工业界和学术界的存储系统大致归类:
广域网、非信任节点
Oceanstore, CFS, PAST, Ivy[OSDI’02],Glacier[NSDI'05],TFS[FAST'07],WheelFS
[NSDI'09,MIT],CA-NFS [FAST’09]
数据中心
分布式虚拟磁盘: Petal [lee’96]
分布式文件系统 : CEPH [OSDI'06], Farsite [Microsoft]
集群文件系统 : Sorrento [Supercomputing'04], Panasas [FAST'08], GoogleFS
[SOSP'03]
集群存储系统 : Ursa Minor [FAST '05], RADOS [PDSW '07], and FAB [SIGOPS'04].
Dynamo (SOSP’07,Amazon),PNUTS (VLDB'08,Yahoo!)
次级存储系统
归档:Venti
[FAST '02], EMC Centera, Pergamum [FAST'08]
备份:
Pond[FAST'03],DataDomain [FAST'08] ,Cumulus[FAST’09],SafeStore[USENIX’07],
归档+备份
: HYDRAstor [FAST'09]
其他:
Antiquity (EuroSys‘07, Berkeley),TieStore [FAST‘08] , Carbonite
[NSDI’06],Cimbiosys(NSDI'09),BitVault[SIGOPS'07]
主要存储系统简介
Coda:支持离线操作,C/S模式
CFS : 只读文件系统, CHORD,文件分块,存储数据块到负责节点及K个后继节点.
PAST:只读文件系统,Pastry,根据文件ID,存储文件到负责节点及K个后继节点
Low-Bandwidth File System (LBFS):改进NFS协议以降低带宽需求,关注一致性而不是在网络分割存在时的可用性
Farsite:创建一个可扩展的无服务器的分布式文件系统来提供中心化的NTFS文件服务器语义,并用POSIX协议严格兼容。Farsite的节点由同一大型组织的桌面计算机组成,基于高速低时延的网络环境,并能处理拜占庭失效问题。
TieStore(FAST’08,Berkeley)面向带宽受限、间断连接,利用DTN(Delay Tolerant Networking)的存储-转发网络组织覆盖网。
WheelFS 广域网文件系统,通过坚持“全局读,本地写”来降低通讯成本,提供语意线索由应用定制对时延、一致性等的需求。
Antiquity(EuroSys '07)使用安全日志结构来保证数据完整性,将每条日志复制到多台服务器来提供数据持久性,使用拜占庭容错协议来保证数据一致性,使用quorum修复协议来替代丢失的复本。在有超过quorum (threshold)数目的复本可用时允许用户执行写操作。
OceanStore 提供全局的、事务的、持久存储服务,并支持广域的复本数据串行化更新。采用冲突消除策略来降低事务被丢弃的数目。OceanStore基于Tapestry后缀路由算法设计,同时支持纠删码和完整复本两种冗余策略,不同于CFS和PAST。文件碎片及其复本能够自由的存储在任意节点上。为此OceanStore在文件ID对应的根节点处维护碎片位置信息,此外根节点负责通过心跳检测碎片所在的节点状态,当出现节点错误的时候,数据的多个根节点联合决定修复数据的策略。通过数据多版本化来支持数据更新,即数据的每次更新都不会覆盖原有数据,而是产生数据的一个新版本,从而绕开复杂的数据一致性维护问题。
GoogleFS
系统由价格低廉的服务器构成,分步式文件系统,由一台主服务器管理所有元数据,数据被切分成Chunk存储在Chunk服务器。设计用于应对大量的读操作,而基本不改写数据。
======================================
节点的成员管理和失效恢复,Gossip
连接、节点的异构性
问题分类:
CAP问题
广域网P2P存储
数据中心p2p存储:Dynamo
安全性
弱一致性存储系统
Weakly Consistent Storage Systems (i.e. Eventual Consistency)
Replication and Fault Tolerance
Scalability and Fault Tolerance
Wide-area file systems
Eventual Consistency:最终一致性
分布的,多复本,以及支持并发访问都是挑战一致性的因素,性能,可用性,架构选择与一致性之间的权衡。
reading notes for <<Above the Clouds: A Berkeley View of Cloud Computing>>
不知道在那里存这些技术笔记,索性先放在这里。将来再找更合适的地方。
今天读了《云之上》,还是有不少启发。看到Berkeley 和David Patterson的名头就进去了。顺便提一下,Randy的那本讲体系结构的书一直没有找到时间看,看到Patterson,又想了起来。
主要的东西原来也陆陆续续看到了一下,所以启发还是来自于细节。
1) 首先看到的一个规模经济的比较,可以看出来大的DC比小的DC还是有显著的优势(7X),可以预见,如果云计算普及,势必会是相当集中的行业,而现在
大型DC具有不可忽视的先发优势,这恐怕也是大公司拼命忽悠的主要原因。
Table 2: Economies of scale in 2006 for medium-sized datacenter (~=1000 servers) vs. very large datacenter (~=50,000
servers). [24]
|Technology | Cost in Medium-sized DC | Cost in Very Large DC |Ratio |
|Network | $95 per Mbit/sec/month | $13 per Mbit/sec/month |7.1 |
|Storage | $2.20 per GByte / month | $0.40 per GByte / month |5.7 |
|Administration | ~=140 Servers/Administrator | >1000 Servers/Administrator | 7.1 |
2)电力价格差距还是很大的,这样对于中国西部倒是一个机会,不知道电力占成本的比例。粗略的算一下,一台普通台式机,负载100%,一天大致3度电,一度电大约0.45元(上海峰谷平均),这样一年1000元,好像跟我们公司大体一致。这样,大致与一台计算机的一年折旧费用大体相当。这样,电费是运营成本中不可忽视的因素。
Table 3: Price of kilowatt-hours of electricity by region [7].
|Price per KWH | Where | Possible Reasons Why |
|3.6¢ | Idaho | Hydroelectric power; not sent long distance |
|10.0¢ | California | Electricity transmitted long distance over the grid;limited transmission lines in Bay Area; no coal
fired electricity allowed in California. |
|18.0¢ | Hawaii | Must ship fuel to generate electricity |
3) 毫无疑问,最为稀缺的资源是带宽。这跟我们平常计算一致。就我这次对我们cluster的性能简单评估的经验来看,瓶颈也是网络速度。可是这也是云计算所不能解决的问题。当然,如果数据也产生于云里,这个问题倒还好办。所以,云计算首先也解决的是云存储,一旦数据进了云里,很多问题就好说了。同时意味着数据的迁移成本也是巨大的。换句话说,还是巨大的先发优势。
Table 5: We update Gray’s costs of computing resources from 2003 to 2008, normalize to what $1 could buy in 2003
vs. 2008, and compare to the cost of paying per use of $1 worth of resources on AWS at 2008 prices.
| | WAN bandwidth/mo. | CPU hours (all cores) | disk storage |
| Item in 2003 | 1 Mbps WAN link | 2 GHz CPU, 2 GB DRAM | 200 GB disk, 50 Mb/s
transfer rate |
| Cost in 2003 | $100/mo. | $2000 | $200 |
| $1 buys in 2003 | 1 GB | 8 CPU hours | 1 GB |
| Item in 2008 | 100 Mbps WAN link | 2 GHz, 2 sockets, 4
cores/socket, 4 GB DRAM |
1 TB disk, 115 MB/s sustained
transfer |
| Cost in 2008 | $3600/mo. | $1000 | $100 |
| $1 buys in 2008 | 2.7 GB | 128 CPU hours | 10 GB |
| cost/performance improvement | 2.7x | 16x |10x
| Cost to rent | $1 | $0.27–$0.40 | $2.56 | $1.20–$1.50 |
4)值得注意的是,Amazon EC2并没有停运过,我想这会不会意味着EC2用户相比S3还是少? 大多数付费用户还是用云存储? EC2用的认证服务与S3不同? 相比较公司内部IT的故障,这个故障时间还是可以忍受的。
Table 7: Outages in AWS, AppEngine, and Gmail
Service and Outage Duration Date
S3 outage: authentication service overload leading to unavailability [39] 2 hours 2/15/08
S3 outage: Single bit error leading to gossip protocol blowup. [41] 6-8 hours 7/20/08
AppEngine partial outage: programming error [43] 5 hours 6/17/08
Gmail: site unavailable due to outage in contacts system [29] 1.5 hours 8/11/08
5)文中还讨论个老问题,皮鞋传输和网络传输的比较。就是用快递,可以达到1500 Mbit/sec的速度,而用网络,却是20 Mbit/sec。因此如果发展云计算,估计数据中心可以养活一大批快递。
BTW, how to create a table here?
Reference links:
http://www.hpcwire.com/features/Berkeley-Releases-Cloud-Computing-Study-39502692.html?page=1
http://www.amazon.com/Computer-Systems-Programmers-Randal-Bryant/dp/013034074X/ref=sr_1_1?ie=UTF8&s=books&qid=1235294059&sr=1-1
2009年4月20日星期一
VGA是鸡肋?14款电视PC连接横向评测!
VGA是鸡肋?14款电视PC连接横向评测!
CNET中国·ZOL 08年03月18日 【原创】 作者:
中关村在线 沈研 责任编辑:
今天我们要讨论一个事实,随着平板电视价格逐步的下降,许多朋友买电视已经不光是为了收看电视节目这么简单了。对于更多的玩家、IT、硬件爱好者来说,购买电视的主要目地在于游戏娱乐,例如连接电脑上网、玩游戏等,这样一来平板电视就成了一台大尺寸的液晶显示器。
平板电视比显示器发展更迅速,其数字接口提前进化到了HDMI,而目前绝大多数显示器点标准配置还停留在DVI接口。而且PC的显卡提供HDMI接口的也是少数,因此,平板电视也同样提供了更加普遍的D-SUB接口,通过VGA线来连接(提醒:最好买带磁环的好VGA线)。
有了D-SUB接口,基本上就能够满足所有朋友用电脑连接电视的需求了。但是这里还有一个玄机。提供了D-SUB接口的电视也不一定能够享受到等同于显示器的显示效果。由于电视所使用的液晶面板和显示器不同,所以在驱动IC
和接口芯片上都需要对PC分辨率进行特别优化才能够实现点对点的全屏幕显示,而据笔者调查,目前市面上绝大多数产品都没有对VGA接口进行过优化设置,这
样一来用电脑连接电视虽然能够显示出画面,但却无法开启电视真正的分辨率,或则出现严重的过扫描现象,导致无法点对点显示,如此就会产生比例不依,惨不忍
睹的粗糙画面。
● 总体测试结果报告
本次14款测试机型中,只有一款1366×768分辨率的机型,其余产品一律为1920×1080分辨率,本次测试结果并不理想,下面我们来看看测试结果。
| 产品名称 | VGA接口PC连接分辨率 | 是否通过测试? |
| LG 47LB5RE | 1920×1080(点对点) | 是 |
| TCL 42E77F | 1360×768 | 否 |
| 创维52L16HF | 1920×1080(过扫描、偏色) | 否 |
| 东芝40XF300C | 1360×768 | 否 |
| 东芝42C3000C | 1360×768 | 否 |
| 海信TLM46V68 | 1920×1080(过扫描) | 否 |
| 日立L42X101 | 1280×1024 | 否 |
| 三星 46N81B | 1920×1080(点对点) | 是 |
| 厦华42R35 | 1600×1200 | 否 |
| 松下37LX7D(1366×786) | 1360×768(点对点) | 是 |
| 索尼 46W300A | 1920×1080(点对点) | 是 |
| 夏普52RX1 | 1400×1050 | 否 |
| 优派 4250p | 1680×1050 | 否 |
| 长虹52700FHD | 1280×1024 | 否 |
| 最后成绩 | 4款产品通过 | 10款产品失败 |
● 总结
在显示器领域,液晶显示器无论是VGA接口还是DVI接口,均必须达到点对点显示。而在平板电视行业,由于电视多数用途都体现不到点对点显示的画面,所以许多厂商便没有刻意的去对VGA接口进行严格要求,导致了用VGA接口连接电脑无法识别出电视分辨率的问题,造成许多游戏爱好者或者发烧友的不便。
通过本次市场调查评测,刻意看到目前对VGA接口要求严格的品牌只有四家,其余产品均没有通过测试,对PC连接方面有要求的朋友可以做一下参考。
我来说几句:D-SUB接口(就是通常我们说的VGA接口)支持1920*1080分辨率或者更高的绝对没有问题,到QSXGA的2560*2048都没有问题,根本不存在某些人所说的带宽问题。电脑或笔记本的显卡也支持1080P,你能找到的不支持1920*1080分辨率的显卡基本是古董级显卡,我的nVidia RIVA TNT2(16M显存)都支持,估计没有谁比我的显卡差 。既然和VGA接口没有关系,和电脑也没有关系,那问题肯定就出现在电视上,由于液晶电视不只是需要液晶屏能够的物理分辨率达到1920*1080 ,其驱动IC
和接口芯片上都需要对对于VGA接口特别优化才能够实现点对点的全屏幕显示。从上面的测试结果来看,没有一款国内品牌的液晶电视的VGA接口能够完美支持1080P,可以在选购时看看电视说明书,VGA一般只到1024*768/60Hz。 另外,据说用HDMI的话,有相当一部分液晶电视会出现无法点对点显示的情况(具体表现多为画面整体偏移、压缩等),购买时最好实际测试。
| Specifications | |
|---|---|
| Graphics controller | nVidia RIVA TNT2 |
| Memory | 32 MB SGRAM |
| RAMDAC | Built-in 300 MHz |
| Bus type | AGP (4x/2x/1x) with full sideband/Execute mode support |
| VGA connector | DB-15 analogue monitor connector VESA DDC2B, DPMS, VBE 2.0/3.0 |
| TV output | S-Video Composite (RCA) |
LCD output - DFP connector (Optional) | DDWG (Digital Display Working Group) compliant Digital LCD Flat Panel output for up to 1280 × 1024 resolution |
| Vertical frequency | 60 Hz - 240 Hz |
| Horizontal frequency | 172.8 K |
| Fill rate (pixels/sec) | 250 M |
| Triangles/second | 5 M |
| Bandwidth | 2.4 GB/s |
| Resolution, colour and refresh rates supported | ||
|---|---|---|
| Resolution | Colour | Refresh rate |
| 640 × 480 | 256, 65 K, 16 M | 60 - 240 |
| 800 × 600 | 256, 65 K, 16 M | 60 - 240 |
| 1024 × 768 | 256, 65 K, 16 M | 60 - 200 |
| 1152 × 864 | 256, 65 K | 60 - 170 |
| 1152 × 864 | 16 M | 60 - 150 |
| 1280 × 1024 | 256, 65 K | 60 - 150 |
| 1280 × 1024 | 16 M | 60 - 120 |
| 1600 × 1200 | 256, 65 K | 60 - 100 |
| 1600 × 1200 | 16 M | 60 - 85 |
| 1920 × 1080 | 256, 65 K | 60 - 85 |
| 1920 × 1080 | 16 M | 60 - 85 |
| 1920 × 1200 | 256, 65 K | 60 - 85 |
| 1920 × 1200 | 16 M | 60 - 75 |
| 2048 × 1536 | 256, 65 K | 60 - 75 |
标准编号:SJ/T 11344-2006
标准名称:数字电视液晶背投影显示器测量方法
标准状态:现行
实施日期:2006-3-29
颁布部门:中华人民共和国信息产业部
内容简介:本标准规定了标准清晰度电视(SDTV)、高清晰度电视(HDTV)数字电视液晶背投影显示器(以下简称显示器)的测量条件和测量方
法,适用于高清晰度、标准清晰度液晶(LCD)背投影显示器、硅基液晶(LCoS)背投影显示器、数字光学处理(DLP)背投影显示器等固定分辨力背投影
显示器。
出处: http://www.csres.com/detail/173205.html
下载:http://www.csres.com/upload/qy%2Fin%2FSJT11344-2006.PDF
标准编号:SJ/T 11343-2006
标准名称:数字电视液晶显示器通用规范
标准状态:现行
实施日期:2007-1-1
颁布部门:中华人民共和国信息产业部
内容简介:本规范规定了数字电视液晶显示器(以下简称LCD显示器)功能和性能、检验方法、检验规则、标志、包装、运输、贮存等的通用要求。本规
范适用于数字电视液晶显示器,是产品设计、生产定型和检验的主要依据。对于兼容接收符合GB
3174-1995规定的液晶电视广播接收机和54cm以下的液晶显示器也可参照使用。
出处: http://www.csres.com/detail/173204.html
下载:http://www.csres.com/upload/qy%2Fin%2FSJT11343-20061.pdf
标准编号:SJ/T 11338-2006
标准名称:数字电视液晶背投影显示器通用规范
标准状态:现行
实施日期:2007-1-1
内容简介:本规范规定了数字电视液晶背投影显示器(以下简称“LCD背投”)功能和性能,检验规则、标志、包装、运输、贮存等的通用要求。本规范
适用于数字电视液晶背投影显示器,是产品的设计、生产定型、检验的主要依据。对于兼容接收符合GB
3174-1995规定的液晶背投影电视广播接收机也可参照使用。
出处: http://www.csres.com/detail/173199.html
2009年4月13日星期一
OpenCAP安装配置
Download and install OpenXCAP
The software has the following dependencies, which you must install on your
operating system:
- LibXML (http://xmlsoft.org/downloads.html)
- Python 2.5 or newer (http://www.python.org)
- Twisted framework (http://twistedmatrix.com)
- Twisted Core, Twisted Web and Twisted Web 2 (http://twistedmatrix.com)
- python-lxml (http://codespeak.net/lxml)
- python-application (http://pypi.python.org/pypi/python-application)
- python-mysqldb
- python-xml (_xmlplus package provided by pyxml library)
- GnuTLS library (http://www.gnu.org/software/gnutls)
- python-gnutls (http://pypi.python.org/pypi/python-gnutls)
另外,上面没有提到需要安装Zope
http://www.zope.org/Products/
注意事项:
- Zope对于Python有特殊的版本依赖关系,不能太早,也不能太新;例如
versions are no longer supported. Python 2.5 is not supported
at this time.
Zope-2.11.2-final.gz <-- Python-2.4.6.tar.gz
Zope-2.10.7-final.gz <--
这就是出现 error: package directory 'build/lib/linux-i686-2/4/zope/app' does not exist 的原因
另外
./configure --prefix=/usr/local/zope2 --with-python=/usr/local/bin/python2.4
make
make install