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 硬解码与播放器的选择

暴风影音2009不支持Dell D620 NVS110M 的H264硬解码,而PowerDVD支持!

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线)。


VGA是鸡肋?15款电视PC连接横向评测!


有了D-SUB接口,基本上就能够满足所有朋友用电脑连接电视的需求了。但是这里还有一个玄机。提供了D-SUB接口的电视也不一定能够享受到等同于显示器的显示效果。由于电视所使用的液晶面板和显示器不同,所以在驱动IC
和接口芯片
上都需要对PC分辨率进行特别优化才能够实现点对点的全屏幕显示,而据笔者调查,目前市面上绝大多数产品都没有对VGA接口进行过优化设置,这
样一来用电脑连接电视虽然能够显示出画面,但却无法开启电视真正的分辨率,或则出现严重的过扫描现象,导致无法点对点显示,如此就会产生比例不依,惨不忍
睹的粗糙画面。






● 总体测试结果报告


    本次14款测试机型中,只有一款1366×768分辨率的机型,其余产品一律为1920×1080分辨率,本次测试结果并不理想,下面我们来看看测试结果。


   


































































产品名称VGA接口PC连接分辨率是否通过测试?
LG 47LB5RE1920×1080(点对点)是
TCL 42E77F1360×768否
创维52L16HF1920×1080(过扫描、偏色)否
东芝40XF300C1360×768否
东芝42C3000C1360×768否
海信TLM46V681920×1080(过扫描)否
日立L42X1011280×1024否
三星 46N81B1920×1080(点对点)是
厦华42R351600×1200否
松下37LX7D(1366×786)1360×768(点对点)是
索尼 46W300A1920×1080(点对点)是
夏普52RX11400×1050否
优派 4250p1680×1050否
长虹52700FHD1280×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 controllernVidia RIVA TNT2
Memory32 MB SGRAM
RAMDACBuilt-in 300 MHz
Bus typeAGP (4x/2x/1x) with full sideband/Execute mode support
VGA connectorDB-15 analogue monitor connector VESA DDC2B, DPMS, VBE 2.0/3.0
TV outputS-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 frequency60 Hz - 240 Hz
Horizontal frequency172.8 K
Fill rate (pixels/sec)250 M
Triangles/second5 M
Bandwidth2.4 GB/s






























































































Resolution, colour and refresh rates supported
ResolutionColourRefresh rate
640 × 480256, 65 K, 16 M60 - 240
800 × 600256, 65 K, 16 M60 - 240
1024 × 768256, 65 K, 16 M60 - 200
1152 × 864256, 65 K60 - 170
1152 × 86416 M60 - 150
1280 × 1024256, 65 K60 - 150
1280 × 102416 M60 - 120
1600 × 1200256, 65 K60 - 100
1600 × 120016 M60 - 85
1920 × 1080256, 65 K60 - 85
1920 × 108016 M60 - 85
1920 × 1200256, 65 K60 - 85
1920 × 120016 M60 - 75
2048 × 1536256, 65 K60 - 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:



另外,上面没有提到需要安装Zope

http://www.zope.org/Products/

注意事项:

  • Zope对于Python有特殊的版本依赖关系,不能太早,也不能太新;例如 
         Zope 2.11/2.10 requires Python 2.4.5 (Python 2.4.4 is still acceptable). Older 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 的原因
         例如RHEL5.3自带的版本是Python2.4.3,所以不行。要先下载Python编译安装后,再重新编译Zope。因此,上面所说的需要Python 2.5 or newer是错误的。
         另外


./configure --prefix=/usr/local/zope2 --with-python=/usr/local/bin/python2.4
make
make install



2009年4月10日星期五

新闻也开始植入式广告

新闻也开始植入式广告

   感觉中国人民太有才了。06年还《天下无贼》,一本正经的介绍什么叫“植入式广告”,免费为全国人民做科普知识,如今已经是普天盖地,近乎离谱,超越人民群众的心里底线了。如下:
==============================
专家揭秘IC卡安全危机:破解最慢仅需三小时

http://tech.QQ.com 
2009年04月10日17:01   腾讯科技  孟鸿 


腾讯科技讯
4月10日消息,今日北京晨报一则IC卡安全算法已遭破解
的报道引发网友强烈关注,腾讯科技连线汉王科技的专家石践先生,对这场IC卡引发的安全危机进行独家解读。


近日,工信部发文要求各地开展对IC卡使用情况的调查及应对工作,其北京市主要应用于IC卡系统的MI芯片的安全算法已遭到破解,全国约1.4亿张应用此技术的IC卡都将面临巨大的安全隐患。


据石践介绍,上述所谓MI芯片指的就是恩智浦半导体Mifare经典芯片。2006年,飞利浦将半导体业务部门拆分出来,成立恩智浦半导体公司。


“采用MI芯片的IC卡全球有10亿张,在中国约有1.4-1.5亿张”,来自石践的数据显示MI芯片在全球IC市场的占有率在八成左右。


破解IC卡最慢仅需三小时


尽管IC卡危机近日才广泛见诸报道,但实际上MI芯片遭破解已经是2008年的事情了。去年8月,Mifare的破解软件及硬件已在网络上公开售卖,售价仅为500美金。


“实际这已是公开的东西”,石践告诉腾讯科技对于这套破解的方法,只要是有些基础的或者业内人员就可以很快搞明白。


石践说这种破解方法的基本原理近似于“穷举法”,即便用一般的计算机,三个小时也足以完成分析和破解的整个过程。IC卡一旦被破解,就可以被肆无忌惮的复制了。


据悉,生产IC的是一种标准的机器,个人就可以买到,并不需要非常复杂的手续。


只要获得相应的机器,就可以复制被破解的IC卡。石践表示大多数IC卡系统在使用规则方面并没有进行更多限制,被复制的IC卡完全可以畅通无阻的使用。


可升级为人脸识别系统应对


“威胁主要在公交卡、门禁卡”等方面,石践说广州已经出现私下复制、更改IC卡内容,为公交卡进行充值的现象了,“这个影响非常恐怖”。


相对于公交卡,门禁卡等领域遭遇的威胁更为严峻。“公交卡被复制对个人的影响相对较小”,石践指出一旦门禁卡等安全级别更高的IC卡被复制,后果可想而知。


而解决的办法目前只能是等待系统升级。石践表示对于安全系数要求更高的单位,可以考虑采用生物特征进行加密的系统。


“比方升级为人脸识别系统,或者在卡片里面放入更多的个人数据和信息”,石践说采用上述更高级的技术之后,就算卡丢了或被复制了,也不会出现被恶意使用等安全隐患。


实际上汉王已在3月推出人脸识别产品,而这正是石践领导开发的。据透露,人脸识别技术算是指纹识别技术的一种升级,目前已经达到一秒识别15次的水平。(文/孟鸿)

==================================

专家揭秘IC卡安全危机:破解最慢仅需三小时

专家揭秘IC卡安全危机:破解最慢仅需三小时

http://tech.QQ.com 
2009年04月10日17:01   腾讯科技  孟鸿  我要评论(0)


腾讯科技讯
4月10日消息,今日北京晨报一则
IC卡安全算法已遭破解的报道引发网友强烈关注,腾讯科技连线汉王科技的专家石践先生,对这场IC卡引发的安全危机进行独家解读。


近日,工信部发文要求各地开展对IC卡使用情况的调查及应对工作,其北京市主要应用于IC卡系统的MI芯片的安全算法已遭到破解,全国约1.4亿张应用此技术的IC卡都将面临巨大的安全隐患。


据石践介绍,上述所谓MI芯片指的就是恩智浦半导体Mifare经典芯片。2006年,飞利浦将半导体业务部门拆分出来,成立恩智浦半导体公司。


“采用MI芯片的IC卡全球有10亿张,在中国约有1.4-1.5亿张”,来自石践的数据显示MI芯片在全球IC市场的占有率在八成左右。


破解IC卡最慢仅需三小时


尽管IC卡危机近日才广泛见诸报道,但实际上MI芯片遭破解已经是2008年的事情了。去年8月,Mifare的破解软件及硬件已在网络上公开售卖,售价仅为500美金。


“实际这已是公开的东西”,石践告诉腾讯科技对于这套破解的方法,只要是有些基础的或者业内人员就可以很快搞明白。


石践说这种破解方法的基本原理近似于“穷举法”,即便用一般的计算机,三个小时也足以完成分析和破解的整个过程。IC卡一旦被破解,就可以被肆无忌惮的复制了。


据悉,生产IC的是一种标准的机器,个人就可以买到,并不需要非常复杂的手续。


只要获得相应的机器,就可以复制被破解的IC卡。石践表示大多数IC卡系统在使用规则方面并没有进行更多限制,被复制的IC卡完全可以畅通无阻的使用。


可升级为人脸识别系统应对


“威胁主要在公交卡、门禁卡”等方面,石践说广州已经出现私下复制、更改IC卡内容,为公交卡进行充值的现象了,“这个影响非常恐怖”。


相对于公交卡,门禁卡等领域遭遇的威胁更为严峻。“公交卡被复制对个人的影响相对较小”,石践指出一旦门禁卡等安全级别更高的IC卡被复制,后果可想而知。


而解决的办法目前只能是等待系统升级。石践表示对于安全系数要求更高的单位,可以考虑采用生物特征进行加密的系统。


“比方升级为人脸识别系统,或者在卡片里面放入更多的个人数据和信息”,石践说采用上述更高级的技术之后,就算卡丢了或被复制了,也不会出现被恶意使用等安全隐患。


实际上汉王已在3月推出人脸识别产品,而这正是石践领导开发的。据透露,人脸识别技术算是指纹识别技术的一种升级,目前已经达到一秒识别15次的水平。(文/孟鸿)





内地1.4亿IC卡安全有隐患:掌握技术可修改钱数

2009年04月10日 02:54北京晨报【大 中 小】 【打印】 已有评论0条


日前,工业和信息部发布了《关于做好应对部分IC卡出现严重安全漏洞工作的通知》,要求各地各机关和部门开展对IC卡使用情况的调查及应对工作。工信部的这则通知的背景是什么呢?北京晨报记者从专业人士处获知了惊人的消息:主要应用于IC卡系统的MI芯片的安全算法已遭到破解!目前全国170个城市的约1.4亿张应用此技术的IC卡也都将面临巨大的安全隐患。


事件:命门被破


IC卡


专家不公布破解方法


卡的加密与解密永远都是一枚硬币的两面,每天在世界的各个地方,都有无数的科学家、学者和黑客们不停地在研究着各种加密和解密的技术与技巧,成功与失败也在永远上演着。2008年,德国研究员亨里克·普洛茨和美国弗吉尼亚大学计算机科学在读博士卡尔斯滕·诺尔就享受到了成功的喜悦:他们最先利用电脑成功破解了恩智浦半导体的Mifare经典芯片(简称MI芯片)的安全算法。但对于这项科研成果,亨里克·普洛茨和卡尔斯滕·诺尔却在第一时间宣布绝不公布其破解的成果。那么,他们为何对自己的科研成果讳莫如深呢?原来,他们所破解的MI芯片的安全算法,正是目前全世界应用最广泛的非接触IC卡的安全算法!可以想见,如果这一科研成果被人恶意利用,那么大多数门禁系统都将失去存在的意义,而其他应用此种技术的IC卡,如各高校学生使用的校园一卡通、高速公路缴费一卡通等也都将面临巨大的安全隐患。


掌握技术可修改钱数


看过美国大片的人都有印象,片中的主角可以利用电脑轻易复制各种卡,随意出入机关重重的机密场所。MI芯片的安全算法如果被不法分子利用,现实生活中,影片主角的行为可能就发生在你身边。


中国信息产业商会智能卡专业委员会理事长潘利华教授对记者表示,“Mifare非接触逻辑加密卡的安全性目前确实存在一定问题,这对目前广泛应用的城市IC卡项目是一个不小的隐患。”据潘教授介绍,一旦不法分子攻破这一技术,“就可以随意修改自己卡内的信息,比如原来充值10元,他就可以随意改成1000元或者10000元,甚至更多。而且一旦复制了别人的卡片,也可以随意修改信息。这对广大持卡人来说,无疑是极大的安全隐患。”


影响范围涉及公共领域


据建设部IC卡应用服务中心常务副主任马虹介绍,“截至2008年11月,全国共有170余个城市在公共交通领域建立了不同规模的IC卡应用系统,比2007年增长30%,90%的城市实现了城市IC卡的一卡多用。”值得注意的是,目前,这部分城市均采用逻辑加密卡。Mifare算法遭破解后,引发业界高度关注。潘利华教授认为,卡片信息一旦遭到大规模复制,可能给城市公共事业造成极大安全隐患。所以目前,如何解决这个安全漏洞,是业内和相关部门亟待思考及解决的问题。


目前城市IC卡正在向“一卡多用”方向发展。在北京,IC卡已扩展到了超市消费领域,“一旦有不法分子复制卡片后恶意充值倒卖或自己消费,后果将不堪设想。”潘教授也对此表示了自己的担忧。


应对:等待升级


IC卡


政府推广CPU卡


据了解,截至目前,我国170余个城市应用了不同规模的公用事业IC卡系统,发卡量已超过1.5亿张,约有95%的城市在应用IC卡系统时选择使用非接触式逻辑加密卡,相当于约有1.4亿张逻辑加密卡在我国城市公用事业IC卡系统中应用。其应用范围已覆盖公交、地铁、出租、轮渡、自来水、燃气、风景园林及小额消费等领域。Mifare算法遭破解后给我国城市公用事业IC卡系统安全性造成了极大隐患。卡片信息一旦遭到大规模复制,IC卡系统将会面临巨大的威胁。如何从根本上解决这个安全漏洞,防止危害的发生,是目前行业亟待思考及解决的重要问题。


“有效防范Mifare算法破解的根本解决方案就是升级改造现有IC卡系统,并逐步将逻辑加密卡替换为CPU卡。”据潘教授介绍。相比逻辑加密卡,虽然CPU卡出现的时间较晚,但因为CPU卡拥有独立的CPU处理器和芯片操作系统,可以更灵活的支持各种不同的应用需求,交易也更安全。“其生命力也更旺盛,优势主要体现在几个方面:数据安全性更高、应用更加灵活、应用能力更多。”握奇公司的周斌告诉记者。“目前,欧洲各国的银行卡都是采用CPU技术,至今未出现被破解和攻击等恶性事件,充分说明了CPU卡的优势所在。”潘教授告诉记者。


据潘教授介绍,升级后的新版牡丹交通卡是一张集芯片和磁条于一身的银联标准贷记卡,从卡种上来说,就是典型的接触式CPU卡,安全性也大大提高。从外观上来说,接触式CPU卡与非接触式CPU卡区别就是表面多一个芯片,而非接触式CPU卡与目前的逻辑加密卡看不出区别。


为改变目前逻辑加密卡的安全隐患现状,大力推进CPU卡应用就显得势在必行。而国家相关部门也做了大量工作,建设部IC卡应用服务中心在2008年就制订了两项国家行业标准,同时向建设部申报三项城市互联互通卡系列标准,为CPU卡的广泛应用及实现全国互联互通建立标准体系。


记者了解到,目前包括北京在内的全国各大城市都在稳步推进向CPU卡的过渡工作,一些新上项目都被要求采用CPU卡系统,而放弃使用目前的逻辑加密卡。业内一位知情人透露,山东淄博的城市一卡通项目就是一个例子,“原本打算50万张逻辑加密卡的招标工作都已结束,但随后还是决定从长远利益出发,重新招标使用CPU卡。”


专家释疑


IC卡


IC公交卡北京最安全


“安全算法可以被攻破,但只要从系统层面考虑周密,同时注重系统的安全建设,建设时留有足够的可升级和可拓展空间,那么卡片算法破解后出现的一系列安全隐患都将得到有效遏制。这就如同电脑遭到攻击后,我们需要下载补丁升级一样。对于大众而言,没有必要过于担心,更没有必要弃卡不用。”有关专家也表示。


日前在接受北京晨报记者采访时,北京市政交通一卡通公司总经理汪连启表示,目前,香港、上海等城市大部分采用的是S50卡,而北京现在已全部置换成S70卡,拥有48种功能,在全国的IC卡里,北京交通一卡通的安全等级是最高的。而根据国家有关部门的要求,北京正在逐步启用CPU卡,逐渐取代现在的S70逻辑加密卡。汪连启告诉北京晨报记者:“目前市民在一卡通售卡点买到的卡都已经是CPU卡。而原先市民手中的S70卡仍旧可以使用,不会要求市民在较短时间内换卡。”汪总同时表示,“市民手头的S70卡也没有必要去更换,因为S70卡目前在全国还是最先进的,安全性能也是最高的。”

=====================================

解读:

美国弗吉尼亚大学计算机科学在读博士卡尔斯滕·诺尔 Karsten Nohl

主页:http://www.cs.virginia.edu/~kn5f/

相关论文:

Reverse-Engineering a Cryptographic RFID Tag

http://www.usenix.org/events/sec08/tech/full_papers/nohl/nohl_html/index.html

学到的知识:

http://en.wikipedia.org/wiki/Rainbow_table

在拜读了Karsten Nohl的大作之后,感觉北京市政交通一卡通公司总经理汪连启 是有“道理”的,确实是“砖家”。市民的卡上如果钱少,当然无所谓。但是绝对存在丢失的可能。但更严重的,是公交公司会损失大笔钱,不过众所周知,天子脚下,做公交车每次4毛,一辆公交车一天的收入还不够发售票员的工资,这个大窟窿就由全国纳税人垫了。所以,即使破解了,也不用担心,全国纳税人替你们顶着,顶多再被多拔点毛而已。