2010年3月22日星期一

主流智能交通相机要求

由于各地用户要求和应用环境的原因,目前各地在建和已投入使用的"电子警察"系统功能不尽相同,其主要功能应包括如下几个方面:
(1)设计、制造和安装应符合GA/T496-2004《闯红灯自动记录系统通用技术条件》的要求。
(2)一般采用线圈检测或视频检测方式,抓拍机动车超速行为的"电子警察"采用雷达检测方式较多。
(3)违法证据照片应能清晰分辨停止线、"红灯"信号和号牌号码。
(4)应采用工业级技术标准,保证在户外能够稳定、高效的全天候运行。
(5)应适用于多相位、多车道的信号控制路口,并能有效保证违法证据照片的信号灯"红色"突出、轮廓分明、无法律异议。
(6)应具有自动补光设备,采用LED灯或节能灯补光,避免干扰驾驶员视线。
(7)应具有人工下载、无线下载、USB自动识别下载和联网传输等多种方式。
(8)应具有录像功能,能够提供交通事故回放功能,录像可自动循环覆盖。
(9)前端主机应具有时钟自动校对和死机自动复位功能。
(10)在行业标准的标定检测条件下,应满足机动车闯红灯捕获率95%,闯红灯记录有效率90%。
(11)软件界面友好大方,中心管理软件应采用B/S架构,支持WEB浏览方式。
(12)数据接口应符合公安部统一数据平台要求,数据库采用Oracle9i以上版本。
(13)升级换代应不受限制,具有良好的拓展型和兼容性。

从百度学到的:做事一求真、二求精

在百度虽然短短不到两年,但是却从百度人身上学到很多,春节期间就在构思如何总结自己的收获,几易其稿,还是决定用这听起来很教条的标题:做事一求真、二求精。
求真:站在事实一边,你将立于不败之地

我这里说的"求真"与浙大校训"求是"是同一含义,浙大校歌唱到"昔言求是,实启尔求真",两者均指追求真理,seek
the
truth,通俗点来说就是要活得明白。可是,到底什么算"真理"呢,老板说的话是真理?有关部门下的文件是"真理"?百度让我认识到:客观事实才是真理!为什么么要"求真"?因为别人的态度会变,你自己的看法也会变,唯一不变的是客观事实。站在事实这一边,从长期来看,是风险低,回报率高的处事方式,你还能拥有心灵的安稳。

具体来说:

1、满足真实需求。发现用户的真实需求,而不是创造高端需求,因为创造需求可能会因为负责人不同或成功或成仁,但是某个时段用户的真实需求是客观存在的,就看谁能够更快更准地认识到,并更好的满足它。在百度,你得习惯"这是用户需要的吗"的"质疑"。

2、让数据说话。数据是诚实且不带情绪的(排除人为做数),虽然数据有时存在片面,但是我们不能因此就因噎废食放弃了这种相对客观且人人平等的做法。很多时候,不是"让数据说法"这种做法无效,而是你挑选的数据不对。当一时找不到合适的表征数据时,我们可以在实践中不断摸索出更有代表性的指标。

3、用结果证明自己。没有开始行动之前,谁也无法给出真相,所以大家都在同一起跑线上,一切就看谁最终找到了真理。谁能高效地达成结果,谁就是强。

4、下级指导上级。对负责的事情,下级比上级能更直接地接触到真相,所以下级更有发言权。下级要告诉上级什么是真相我们要怎么做,而不是请或者等上级告诉你接下来怎么做。

5、拥抱冲突。在公司里,不同的人有不同的立场,冲突是必然的,冲突中各方观点能交锋修正,是逼近事实真相,优化资源配置的有效途径。不用担心因为冲突而被人记恨,business
is
business,一个成熟的公司人是不会把冲突跟个人情绪挂钩的。如果为了维持表面的和谐,而刻意回避冲突,所带来的伤害反而更大。

6、感谢批评。不足基本可以分两类:要么是你没做到;要么就是你做错了。无论是哪种不足被暴露出来,你就能因此查漏补缺,改进现状,更快地逼近真相。所以,当别人对事不对人地指出你的不足时,感激他帮助你成长!
求精:把事情做到极致,拼得是成功的加速度

求精,就是要做best of the
best,把事情做到极致。我也曾为"为什么要做到极致"而困惑,因为边际效用是递减的,而边际成本是递增的,可能刚开始花2小时写一份文档就60分及格了,后面再花2小时也只能做到80分,后面再花2小时甚至更多可能只能做到90分,那后面的那4个小时值得吗?百度让我认识到:值!如果不是以"做到极致"来自我要求,我们可能永远只能做到60分,但是如果我们投入了4小时来追求做到90分,那么第二次,第三次,后续我们只用花2小时就能做到90分了,到时区别就出来了。

具体来说:

1、知其然还要知其所以然。没有人比谁特别聪明,也没有人比谁特别笨,你刚做几个月就能发现的一大堆不合理之处,难道那些工作了三年五年甚至十年的人就没察觉,就不想改进?很多时候,是初出茅庐的我们只看到了不合理的表象,但是没有发现表象背后的合理之处。当你看得更广,想得更深时,你可能就会慢慢发现当前安排的合理之处。然后基于全面的判断再去改进现状,才能系统性地解决问题。同样的,每一个需求背后,都有丰富的逻辑。当别人有问题找你时,第一要务是思考别人为什么会有这个问题,而不是急于行动来完成交代的任务。尤其是当问题比较怪异的时候,最好直接和问问题的人口头沟通了解其思考逻辑,这样子去解决这个问题时才能有的放矢,真正输出解决问题的结果。

2、解决问题而不只是暴露问题。提问题并不难,一通用户调研或者数据分析后,我们总能收集或者发现些问题,甚至你也能理解这些问题产生的背后原因。可是,当你把这些问题提出来时,你同时提出解决方案了吗?如果不是,这样的分析报告你为什么要发出来呢?发现问题不是目的,解决问题更好满足用户需求才是目的,所以,提出问题时要同时给出解决问题的设想。

3、在约束条件下还能做出点事情。"我知道了这里有问题,我也想解决啊,可是没资源,条件不成熟,我也没办法",这种论调,是我们在工作场合会经常听到的。可是,如果都等各方面条件齐备了,换个人也很容易解决这个问题,我们自己的意义又在哪呢。"一个人真正的价值就在于有约束的条件下做出点事情来",有很多约束时往往也意味着有很大的机会。

4、坚持不懈。凡事最怕"坚持"二字。水滴石穿,绳锯木断。做到极致是终极目标,而在朝这个方向努力的过程中,量变会产生质变,但也要清醒意识到:量变到质变需要一个过程,要熬得住,无论是做什么工作,都要经历过一个初级阶段。认识到了这个规律,才能够心不浮气不躁不跟风不动摇地做下去。
小结

忘却起点(不管你是初出茅庐还是位高权重),只要求真——活得明白,求精——做到极致,我们就能在相同的时间内迭代更多次,收获更多。有的人活了1年相当于别人活了3年,就是这个道理,这也是我努力的方向,与诸君共勉。

DaVinci DM365资源列表

DM365_CODECS 1_00_003 Product Download Page
http://software-dl.ti.com/dsps/dsps_public_sw/codecs/DM365/index_FDS.html

DM365 Audio Codecs Integration with DVSDK 2.10.01.18 Demos
http://wiki.davincidsp.com/index.php/DM365_Audio_Codecs_Integration_with_DVSDK_2.10.01.18_Demos

几种计算机语言的评价 作者:Eric Raymond 摘自《Unix编程艺术(第十四章)》

一、C
C语言的优点是,运行效率高和接近机器语言。它特别适用于以下几种程序:
  1. 对运行速度要求很高的程序。
  2. 与操作系统内核关系密切的程序。
  3. 必须在多个操作系统上移植的程序。
除此之外,学习C语言有一个最大的理由,那就是它能帮助我们学会,在硬件层次上考虑问题。如果你想以编程作为自己的人生事业,C是一定要学习的。
C的最大缺点是,在编程过程中,你不得不花很多时间,考虑与你要解决的问题完全无关、且非常复杂的硬件资源管理问题。
二、C++
C++在80年代中期推出,支持OO(面向对象编程),原意是作为C语言的取代者。
但是它没能做到做一点,原因有以下几个:
  1. 它也没有解决"内存管理"问题,虽然比C有所改善。
  2.
标准化不成功。各个编译器都只支持自己选择的一个子集,导致跨平台性不如C。
  3. 过分的精细和复杂了。C++的复杂度,超过了C和OO的复杂度之和。
  4.
OO并没有带来多少优势,反而带来了一些副作用,比如厚重的胶合层和庞大的代码体积。
总的来说,C++的优势还是程序效率,以及面向对象编程能力,糟糕之处是它鼓励复杂的设计。
三、Shell
Shell程序写起来很容易,对于简单的任务,开发速度很快。
当程序变大时,它就不太适合了,很难维护,而且将变得非常专用(只能在你自己的机器上使用),因为
Shell必须调用各种外部程序,无法保证每一台机器都同样安装了这些程序。
最常见的Shell是bash,它的一些语法规则很混乱,会产生很难阅读的代码。另外,shell只能在Unix上使用,无法跨平台。
Shell的最佳用途如下:
  1. 执行简单的系统管理任务。
  2. 编写系统启动时的初始化脚本。
  3. 作为其他语言开发的程序的包装器。
四、Perl
Perl发布于1987年,基本上就是一个增强的Shell。
它的最大长处是强劲的文本处理能力,无以伦比的正则表达式支持,而且有全套Unix
API的内部支持,显著减少了对C的需求。
Perl的主要缺点是某些部分设计得非常丑陋,且无法补救,某些部分也过于复杂。当程序规模增大时,必须严格遵守约定,才能保证模块化和设计的可控性,难于维护。
五、Python
Python发布于1991年,是一种与C语言紧密集成的脚本语言。
Python的优点是非常干净优雅,鼓励清晰易读的代码,易学易用;提供了面向对象编程的可能,但并不把这个选择强加于设计者;具有出色的模块化特性,同Java一样,适合用来做需要协同开发的大型复杂项目。在很多方面,它都比Java简单。此外,Python标准中包括了对许多网络协议的支持,因此也很适合网络管理任务。
Python的缺点主要是效率低下,速度缓慢。在执行速度上,它不仅无法与C/C++竞争,而且也不如其他主要的脚本语言。但是,这其实并不是一个严重的问题,有时网络或磁盘的延迟,会完全抵消Python本身消耗的时间。而且因为Python特别容易和C结合起来,因此性能关键的
Python模块,可以很方便地转化成C语言来提高速度。
总的来说,对于小型项目和大量依靠正则表达式的项目,Python不如Perl的表达能力强。至于更小的项目,Python则是大材小用,shell也许更适合。
六、Java
Java发布于1995年,设计目标有两个。
一个是"write once, run
anywhere"(一次编写,到处运行),即不依赖于特定的平台;另一个是在网页中嵌入交互程序(applet),可以在任何一个浏览器中运行。由于它的所有者Sun公司的一系列失误,第一个目标并没有完全实现,第二个目标则是彻底失败。但是Java依然在系统编程和应用编程方面非常强大,足以挑战C和
C++。
Java的优点是比C++小巧简单,可以自动管理内存,支持类似C的语法和OO编程,与C程序的结合也很好。
Java的缺点是某些部分过于复杂,比如内部类和匿名类的运用会产生很混乱费解的代码;某些部分功能不完善,也无法利用操作系统提供的功能接口,比如在Java中读取和处理文本文件,并不像其他语言那样容易。此外,Java配置环境和版本的混乱,也让人很头疼。
总的来说,除了系统编程和某些对运行速度要求很高的编程之外,Java都是比C++更好的选择。如果和Python相比,Java可能在大型项目上有优势,但是也不是绝对的。
(完)