Jacky Wei


About Jacky Wei

I am a programmer, welcome to my blog: http://rg4.net.

EasyIPCam原先的时候在部分型号的手机(或平板)上出来的图像颜色不正,原因就是在于我错误的把NV12当作YUV420P来处理了,后来已更正,但一直未对此问题作记录,现补上。以供其他碰到类似问题的朋友参考。 以下是,关于几种常见YUV格式的一点扫盲知识: NV16就是 YUV422SP NV21就是 YUV420SP NV12就是 YUV420SP格式,Y分量平面格式,UV打包格式。 1)YUV420SP中的S和P分别是什么意思? SP(Semi-Planar)指的是YUV不是分成3个平面而是分成2个平面。Y数据一个平面,UV数据合用一个平面。UV平面的数据格式是UVUVUV…。 2)yuv格式中的interlace \ progressive分别是什么意思阿 ? interlace指的是隔行扫描,是把一帧图像分成上下两场,上场(Top field)的数据是整个图像的奇数行(1,3,5,7…),下场(Bottom field)的数据是整个图像的偶数行(2,4,6,8…)。两场穿插组合起来变成一帧完整图像。而progressive指的是逐行扫描,一帧图像 的每一行都按顺序排放。 若您发现EasyIPCam存在什么Bug,或者对EasyIPCam有什么意见、建议或者想法,可直接在http://bbs.rg4.net/thread-13892-1-1.html留言,或者通过mail与我联络,感谢您的支持和回馈。

Android 视频采集相关格式


前两天收到QA回馈说Android版的机顶盒客户端在浏览Panasonic BL C1A设备的时候出现下半部分画面绿屏的问题。具体状况如下图: 后来经确认是由于该设备用ffmpeg解码只能解出YUVJ422P格式,而实际上在该版的程序里未判断ffmpeg解码成功后的实际格式(default为YUV420P),就把它当作YUV420P去用,去转RGB565了,结果就出现这个Bug。 记之。

Android STB(机顶盒)客户端Motion JPEG视频下半部分绿屏问题


让你的Freescale i.MX 53 Quick Start Board 支持SATA硬盘。 由于项目使用中需要大容量硬盘,而Freescale i.MX 53 Quick Start Board又没带完整的SATA硬盘支持。事实上板子上有SATA数据库线接口,但却不给带电源线接口,我….。 所以,如果你要接SATA硬盘到i.MX53 QSB就相当于必须要自己外接电源(除非你自己重新layout板子),如:从一台PC中接一根电源出来,然后接到硬盘的电源上,接法如下:

Freescale i.MX 53 Quick Start Board 接SATA硬盘



这句话来自于Star Wars, The Clone Wars (IV) – Episode 18,很经典,原文是:Trust is the greatest of gifts, but it must be earned,中文被翻译为:信任如至宝,取之须躬行。我也一直拿来作为自己的一句警言来提醒自己。 而前两天长假前的一件事情,又让我间接的想起了这句话。 9月29日,周六。 对于大陆的员工来说,这是长假前最后一天班,而对于台湾的员工来说,则是正常休假。 下午两点多,考虑到园区里大部分的公司都已经没人(提前下班),而且,部门下有的人已经于十多天前就已经请好假,买好回家的车票,甚至所有行李都已经带到 了office就等着下班的情况下。我就未经请示台湾那边的主管,自己擅作主张,并发mail给我台湾那边的主管说:“由于大陆这边马上放假,部分路段车 流限制/管制,故上海这边研发将下午3点半 提前下班(包括我在内的部分同仁因有比较urgent的 assignment,还会在office 正常上班)。若有什么事情,请以电话或mail方式联系。” 事实上整个office,就只有研发部门几个人,再加一个行政主管(她后来在3点多一点就走人,说是请假了),其他人都已经不在了(跟往常一样),但其他 部门怎样怎样,跟我们没有任何关系,所以我也只能写研发部门要提早下班。另外,真正需要提前走的只有两人,而我又不想在mail里指名道姓的写的那么清 楚,以避免影响那两位员工在HQ主管眼中的观感(或者也可以上升一个层次到: Trust)。 应该说,在我写这封mail的时候,是不曾想到会收到回复的,因为毕竟台湾今天休假,而且在写之前我也专门打过我的主管的office的分机,没人接。 然而事情的发展,根本不是像我自以为是的那样。 三点左右,收到了我的主管的回复:“不宜有此行為.E600 每個人都有未完成的工作 (such as: Maggie CM 必需在 10/31 前完成, Michael 有 GV 及行安, …..).若有不得已, 非早離開不可, 必需請假, […]

Trust is the greatest of gifts, but it must be ...


前两天有位新晋程序猿网友“被遗忘的角落”(494932623@qq.com)来信,希望我能帮帮他,给你提供一个大概的规划、思路。以前也有很多网友给我来过许多这样那样的mail,但由于实在没时间,更因为懒,所以甚少回信。恰前阵子由于各种关系,我也希望自己日后能开始做一些更加有意义的情况(包括准备着手做一个开源项目),所以,今天晚上我就以我这些年来的经验,对他目前的状况作了一点回复。 以下是他的mail: 今日下午在公司搜索QDbus时,进入了阁下的站点,很幸运。认真的看了您的几编文章,我的感觉是很实际。 先自我介绍,今年毕业,专科,年初就职至今。 在ubuntu先开发qt。 目前的疑惑是,在编程过程发现很多自己的不曾接触过的概念,思想,技巧,总的说是能力、经验不多。 以前还弄不清,一个程序里的 instance 的存在必要。c++智能指针、泛型编程刚有初步的认识。 最近在调试进程间通讯,主管已经嫌弃我花的时间有点多了,就qdbus的基本使用我现在还是迷迷糊糊。 由于阁下的网站上关于qt、c++的资料不是十分的多,但我能感觉到你对编程的那种驾驭的能力。 我的奢望是,阁下能否在有时间空余的情况,给我提供一个大概的规划、思路。 朋友,感激。 以下是我的回复:   对于一个刚参加工作(不久)的人来说,可以说是从一个基本上一无所知的状态(很悲哀,中国的大学里所教的东西很少是你毕业后能真正派上用场的,不管你是专 科毕业,还是本科毕业),突然的发现有一大堆的知识需要学习和了解,这对绝大多数人来说都是一个很大的冲击,甚至打击。 所以,对于你这一类的人,我的建议是:好好学习你的工作。 工作入门: 一般新员工入职都会有一到三个月的培训期,这个时候主管会给一个或者几个学习任务,但总的来说培训内容都是那种相对单纯并且目标直接的题目,而且通常会有人对你进行一些必要的指导; 一个月,或者三个月的培训期过了之后,不出意外,你就转正了,这时候先不要急着高兴,这个时候往往是更重要的一段时间,主管会给你分派一些简单但正式的工 作,而这些简单的工作则可能会让你自己独立的去完成,这才是真正考验你的时候,公司会考察你的各方面表现,以决定给你委以什么样的任务和角色。对于一个应 届毕业生来说,没有几个公司会在一年半内对你抱太大的期待,而你的任务就是必须要让公司对你有所期待。 但切忌想法太多,这个也想学,那个也想学,结果就是什么也没学好;更别思想不端正,去想什么跳槽之类的事情,你要搞清楚,现在是你入门的时候。而要想入门快,唯一的方法就是努力把工作相关的技术/技能学好、掌握好,更多、更好、更积极地去参与到产品的开发中去。要知道,你自己学的东西永远都是半成品,或者一知半解就很容易会放弃深入的,而工作相关的技术和技能则是会做成一个真正的产品的,这个才是真正可以学到技术的方向和领域(这一条基本上对所有人都适用)。 在最初的时候,如果基础不是很好的话,切忌刨根问底,有些东西你只要做到“知其然,而不知其所以然”就可以了,等你逐渐的进入状态了,再来考虑“知其然,又知其所以然”。 同时,尽可能的多了解一下原理性的一些东西,如:把产品的框架都了解清楚,至少要从理论上知道这个框架有什么好,为什么好;另一方面在业余的时间,争取多 补充一些基础知识,像你这样的可以补补C/C++和Linux/Unix相关的知识,这样也可以解决你“就qdbus的基本使用我现在还是迷迷糊糊”的这 种问题。 中国现在的年轻人基本上都是独生子女,平时习惯了“拿来主义”,许多人都喜欢走“捷径”。而以你的状况,我看应该不是会去跟人“拼爹”的那种,自力更生是 你唯一的选择,而如果你想要的是一条“捷径”,我可以很负责任的告诉你,没有。只有一步一个脚印,才能走得更好、更远,从而走出一条捷径。 我的经验: 总的来说: 以我个人的经验(我的经验是一路撞墙撞过来的)来说,作为一个程序猿来讲,理想的一个练级过程(不是职业生涯)大致如下: 初级(通常是前两到三年):好好做好所在公司的工作。努力学习和掌握公司产品相关的技术(越多越好),多看多学多问多试多用,同时多阅读一些基础知识相关的资料,尽可能往“深”的方向走,为自己的将来打好基础。 中级(再两到三年):如果你前面的基础已经掌握,那经过那两三年,你应该已经成长为公司的一位主力(之一),然后,再来考虑把自己的视界扩大,逐步往“广”的方面发展。 高级(在一个领域有 五六年的工作经验,并且涉及范围相对广泛):这个时候,你就应该可以不再需要重点考虑“练级”了,自己来好好考虑“职业生涯”这个名词,相信到这个时候你 自己已经有相当的主见和见解,并且具备足够的经验和智慧来解决你所要面对的这种问题了,不管是要考虑继续深入,还是转型,抑或其他。 几点tip: 这是任何时候都有用的几点Tip,跟技术无关,却跟你的未来大大的有关。 1. 如果你真的真的一点也不喜欢自己现在在做的工作,那我劝你就不要做了,先好好的去搞清楚自己想要做什么。 2. 如果你有一天要跳槽,尽量做到每份工作做满两年,这样的经验积累才是真正有意义,否则,现实一点就是浪费时间、浪费自己的生命。也许有些人会说,没事,哥年轻,啥都缺,就不缺时间。 3. 要做好一个程序猿,English是very重要的! 推荐几本书 顺便给你推荐你现在的阶段可能会用得上的几本书: 《C++程序设计语言》:http://product.china-pub.com/196448 ,C++之父的大作。 […]

回复《编程之路的困惑》


1
马上十一了,又将有几天空,我在想要不要把我做过的一些东西整理一下,做成一个开源项目,以活跃QQ群和论坛。 但不知道有没有人兴趣。 先把几个选项放出来,如果感兴趣的人多,我就做,实在没有人感兴趣,那我就。。。自己玩吧。 现已经发了一个投票,希望大家踊跃投票。 投票地址:http://bbs.rosoo.net/thread-14364-1-1.html 以下是上面有写名字的几个软件的介绍及下载地址: RTSPPlayer: RTSP/RTP流媒体播放器,可以支持Windows,Linux,Android,iOS(目前只有做Linux和Android版),目标是做成一个ONVIF播放器。http://rg4.net/p/rtspplayer EasyPlayer: 一个基于ffmpeg的全格式播放器,支持Windows/Linux/Android,但每个版本都不怎么一样,Windows/Linux的网上太多了,Android上的也不少,但真正能跑的开源播放器很少,所以,优先Android上的版本。http://rg4.net/p/easyplayer EasyIPCam:一个RTSP/RTP流媒体服务器,目前软编支持Linux/Android(可以做到支持iOS),硬编支持Freescale i.MX27) http://rg4.net/p/easyipcam EasyRTMP: 将普通的视频文件,或者是来自网络的(如:Youku, IP Camera, DVR, DVS)视频转换成rtmp流,并喂给FMS/Red5,使你的客户端不需要安装任何插件即可浏览这些视频(条件是有Flash支持), http://rg4.net/p/easyrtmp EzStreamSvr: 基本功能类似于EasyIPCam,不同的是 EasyIPCam是小型应用,并且视频是采集上来的,而EzStreamSvr的目标是大型流媒体服务器,而且视频源同EasyRTMP,可以是任意来 源的视频,包括普通视频文件(全格式),以及网络上能访问到的任意视频, http://rg4.net/p/ezstreamsvr EasyDSS:支持DSS扩展的独立服务。 http://rg4.net/p/easydss 同时,上面这些软件都只是一些实验室的作品,未经严格测试,许多功能也有待进一步的完善,所以,我希望许多习惯潜水的大牛们也能出来一起帮我完善,而不是我一个人在傻干。 当然,如果你其他好的项目,也可以在此留言,若是的确不错,而且也是我力所能及范围以内的,也可以立项来做。

准备做一件有意义的事情:启动一个开源项目



其实刚毕业、工作两三年的时候,我就一直有在考虑是否该再去读一下研,而且当时在北京公司,我也买了一些相关的资料与书籍(像本科时的高数、线代、概率、英语等书我都没扔掉),但由于各种各样的原因,这个事情一直耽搁下来,直到前几天。 首先,还是必须得说一下,今年我的运气实在是不好,很不好。 且不说工作上的事情,因为工作顺利与否跟你自己的技术、职责领域,跟你的能力以及你对工作的估算和准备充分程度存在更多的关系。所以,我就从生活中碰到的 几桩“坏运气”来讲:先是年初的时候,我工作用的NB硬盘,存了工作以来十几年的资料硬盘坏掉,要命的是,在坏掉前几天,我刚刚由于另外几台电脑重装系 统,把所有的资料都备份到这个硬盘上,还没来得及再次备份,它,它,它就嗝屁了(WTF),且拿到数个数据中心做修复也都无法恢复,结果导致所有重要的、 不重要的数据都丢失了,然后紧接着第二天Office里的那台也PC坏掉,再然后不久,一天在回家路上被人撞车,又让我“休整”了很久,再再然后(也就是 前几天)骑车滑倒,再次变成一瘸一拐的,可以说,这半年多来,坏运气一直笼罩在我身旁,就连Facebook上许多朋友都劝我赶紧去拜拜。 而这一连串的坏运,虽然还没回家去拜拜,但是这也让我真的、好好的停下来思考了一通,再加上前两天给女儿买了一张新床,一张高低床,然后在整理房子,整理书架的时候,翻出了十二年前买的几本书,才想起,原来当年自己是多么认真的想再去读读书的。 既然如此,那好吧,我就来了。 经过几天的咨询,我准备报名中科大的软件工程硕士,今天是报名的日子(作为上海这边的第4期的插班生,明年年初参加考试),顺便参加了第4期的开学典礼。 中科大软件工程硕士第四期上海班开学典礼 中科大研究生院副院长 屠兢 在开学典礼上致词犹记当年一班人在那儿笑:考研是对自己没信心的一种表现,那么,好吧,同学们,你们想笑我的就来笑吧,而且,我的新同学里有许多人都要比我小十多岁(我整个就是一个小老头)。 但是,不管怎么样,我决定了,而且我一直相信那句格言:永远都不晚! 只要开始,永远都不晚!每个人都有懦弱的一面,有时是害怕,有时是焦急,有时是抱怨,但更多的时候是后悔,后悔当初没有把握住机会。但是,如果你好好想想,如果N年后自己才来做这件事,你会发现,现在做真的不晚,不管是什么事! ·爱,永远都不晚。 ·学习,永远都不晚。 ·微笑,永远都不晚。 ·相信自己,永远都不晚。 ·从现在开始,永远都不晚。 对于再次做一个学生,我同样相信,今天去做,不晚。即使等到毕业那天,我也快40不惑了。

决定重新开始做一个“童鞋”!


这篇博文的背景是2010年元旦过后,当时苏大实习生集体离职的事情还未完全结束,然而许多问题都还在持续的发酵中。而事实上这些人离职的一部分原因也是 由于行政上的一些做法让部分人很不爽。对于我个人来说,应该说其实我自己本来是已经“习惯”了,说难听点爱咋地咋地,但对于部门下其他人来说,他们有想 法,我必须要找个理由为他们去争取,但是结果是搞到后来自己也被搞得一团火,而且最后的结果是什么也没争取到,没办法,我也只能对自己说我已经去争取过 了,其余的,你们自己也“爱咋地咋地”吧。 同时还有一点:沟通真的很重要(题外话:尽管年年的年终总结都列一项”沟通“,但有些沟通并不是你想沟通就能沟通的)。 以下为原文: ---------------------------- 今天中午我有和公司上海的行政主管做了一番非常深刻的沟通,在沟通中,根据她的表述,事实上去年开始严格施行的考勤制度及上周五的年假制度的事情都 是由总部来主持施行的,如果是这样的话,我想我真的有些误会她了,如果是这样的话,我真的需要向她说声不好意思,因为我真的有点误会她了,虽然对于上述事 情我也只是就事论事的在mail里跟她讨论(原本上周五的事,我也想先跟她讨论讨论先,但她最近真的不好找,天天在外面跑,再加上当时真的感到 很%*&5#~!),现在大家都明白事由、缘由了,所以,我也无需再去“OK”“OK” 了,呵呵。这是一番令人开心沟通。 除此之外,今天的讨论中,除了让大家都明白彼此的concern、想法外,其实还有她跟我说的一句话,让我impressed:该请假就请假,这世界没有说离开了谁就转不了的。 是的!我深深的明白这个道理,并且,事实上,这句话我早在几年前的一次部门周会里也有跟部门内的所有同仁讲过。但是我自己有时候就是想不开。所以我就吃了 点亏,不过,算了,过去让它过去吧。同时,这句话更容易让人理解的“含意”我想也不用我来说了,但到底应该如何来面对这个“含意”?我的想法是:合则聚, 不合则散。 以下是在当年的周会里我跟大家分享的那个童话故事,来自安徒生晚年的一个作品,很短,很现实,完全不同于其早年的那些让人耳熟能详、充满情感、充满幻想、 针对政治/社会/民情的童话,如:《丑小鸭》、《海的女儿》、《皇帝的新装》、《卖火柴的小女孩》等等,这篇童话描述的完全是针对个人的,当然,这跟他年 纪大了我想也有关系,年纪大了,许多事情见得多了,自然就会越来越对“个人”有更多的感触,当然这只是我个人的一点见解,不尽正确,仅供大家参考。 而对于这篇童话,我也不想多说什么,附上其中的一篇中文译文,让您自己慢慢品味吧! 安徒生 小猪储钱罐(又名:钱猪) 婴儿室里有许多许多玩具;橱柜顶上有一个扑满,它的形状像猪,是泥烧的。它的背上自然还有一条狭口。这狭口后来又用刀子挖大了一点,好使整个银元也可以塞进去。的确,除了许多银毫以外,里面也有两块银元。 钱猪装得非常满,连摇也摇不响——这的确要算是一只钱猪所能达到的最高峰了。他现在高高地站在橱柜上,瞧不起房里一切其他的东西。他知道得很清楚,他肚皮里所装的钱可以买到这所有的玩具。这就是我们所谓的“心中有数”。 别的玩具也想到了这一点,虽然它们不讲出来——因为还有许多其他的事情要讲。桌子的抽屉是半开着的;这里面有一个很大的玩具。她略微有点儿旧,脖子也修理过一次。她朝外边望了一眼,说: “我们现在来扮演人好吗?因为这究竟是值得一做的事情呀!” 这时大家骚动了一下,甚至墙上挂着的那些画也掉过身来,表示它们也有反对的一面;不过这并不是说明它们在抗议。 现在是半夜了。月亮从窗子外面照进来,送来不花钱的光。游戏就要开始了。所有的玩具,甚至属于比较粗糙的玩具一类的学步车,都被邀请了。 “每个人都有自己的优点,”学步车说。“我们不能全都是贵族。正如俗话所说的,总要有人做事才成!” 只有钱猪接到了一张手写的请帖,因为他的地位很高,大家都相信他不会接受口头的邀请。的确,他并没有回答说他来不来,而事实上他没有来。如果要他参加的话,他得在自己家里欣赏。大家可以照他的意思办,结果他们也就照办了。 那个小玩偶舞台布置得恰恰可以使他一眼就能看到台上的扮演。大家想先演一出喜剧,然后再吃茶和做知识练习。他们立刻就开始了。摇木马谈到训练和纯血统问 题,学步车谈到铁路和蒸汽的力量。这些事情都是他们的本行,所以他们都能谈谈。座钟谈起政治:“滴答——滴答”。它知道它敲的是什么时候,不过,有人说他 走的并不准确。竹手杖直挺挺地站着,骄傲得不可一世,因为它上面包了银头,下面箍了铜环,上上下下都包了东西。沙发上躺着两个绣花垫子,很好看,但是糊 涂。现在戏可以开始了。 大家坐着看戏。事先大家都说好了,观众应该根据自己喜欢的程度喝彩、鼓掌和跺脚。不过马鞭说他从来不为老人鼓掌,他只为还没有结婚的年轻人鼓掌。 “我对大家都鼓掌,”爆竹说。 “一个人应该有一个立场!”痰盂说。这是当戏正在演的时候他们心中所有的想法。 这出戏没有什么价值,但是演得很好。所有的人物都把它们涂了颜色的一面掉向观众,因为他们只能把正面拿出来看,而不能把反面拿出来看。大家都演得非常好,都跑到舞台前面来,因为拉着它们的线很长,不过这样人们就可以把他们看得更清楚。 那个补了一次的玩偶是那么兴奋,弄得她的补丁都松开了。钱猪也看得兴奋起来,他决心要为演员中的某一位做点事情:他要在遗嘱上写下,到了适当的时候,他要 这位演员跟他一起葬在公墓里。这才是真正的愉快,因此大家就放弃吃茶,继续做知识练习。这就是他们所谓的扮演人类了。这里面并没有什么恶意,因为他们只不 过是扮演罢了,每件东西只想着自己,和猜想钱猪的心事;而这钱猪想得最远,因为他想到了写遗嘱和入葬的事情。这事会在什么时候发生,他总是比别人料想得 早。 啪!他从橱柜上掉下来了——落到地上,跌成了碎片。小钱毫跳着,舞着,那些顶小的打着转,那些大的打着转滚开了,特别是那块大银元——他居然想跑到广大的世界里去。他真的跑到广大的世界里去了,其他的也都是一样。钱猪的碎片则被扫进垃圾箱里去了。不过,在第二天,碗柜上又出现了一个泥烧的新钱猪。它肚皮里还没有装进钱,因此它也摇不出响声来;在这一点上说来,它跟别的东西完全没有什么分别。不过这只是一个开始而已——与这开始同时,我们作一个结尾。 (1855年) 这是一起很有风趣的小品,最初发表在1855年哥本哈根出版的《丹麦大众历书》上。“钱 猪”肚子里装满钱,满得连摇动时连响声都不发,是一种大人物沉着庄重的样子。但它跌碎了以后,钱都光了,另一个新“钱猪”来代替它,“它肚皮里还没有装进 钱,因此它也摇不出响声来。”实际既然如此,“它跟别的东西完全没有什么区别,”因此它就谈不上是什么大人物了。世事就是如此。

安徒生童话-小猪储钱罐:世界离开了谁都照样转


实习生离职引发的思考:1. 到底该如何的、更好的去凝聚大家的向心力?2. 到底该如何的去协调我的下属和我的上司之间的一些关系?3. 到底是否有必要重新审视对自己工作职责的定位? 这篇文章写于2010年元旦,当时公司与苏州大学研究生院软件学院有人才输出协议,公司每年固定支持一笔费用给学校,然后其软件学院下的软件工程专业的研 究生,在第一年完成理论学习后,会直接到来我公司实习,实习期为2年,公司会负责所有来我公司实习的学习的学费,同时每月支付一笔实习费,实习期满后,有 优先录用这些实习生的权利。 但是08年年初过来的这一批学生基本上全部在实习期满后选择离开,原因很多,也很复杂,但作为这两年来一直带领着他们工作的部门主管,我真的觉得很痛心。 现在,又过去了两年多,这些人有的去了大公司(如:华为),有的跳了几次槽(但还在IT界),有的当了公务员,有的不知所终,但不管如何,再次祝福他们吧。同时,我自己也需要好好的继续总结。 以下为当时的原文: -------------------------- 今天看到一篇博文,讲述的实习生的事情,心想在过去两年里前前后后有11位来自苏大的实习生在公司工作和实习,但是到现在真正留下的只有一个人,我 作为研发的主管也真是感到的无比的心痛,无可否认这些人中有表现比较好的,也有表现比较差的,但总的来说绝大多数人都差不多在公司工作了将近两年,对公司 的产品研发相关技术、流程都已经有了相当的了解,但最终的结果实在是一个非常大的遗憾,这中间的因素也真的很多,很复杂。既然他们最终选择离开,那我也只 有祝福他们。同时也一直在思考: 1. 到底该如何的、更好的去凝聚大家的向心力? 2. 到底该如何的去协调我的下属和我的上司之间的一些关系? 3. 到底是否有必要重新审视对自己工作职责的定位? 如果要在这一点上做调整真的很难,但又真的很重要,尤其是现在已经开始着手激励制度的试行,而且以最近发生的几件事情(离职报告、考勤制度等等)来 看,这决非这么简单的事情,我只是尝试着去做一点点的调整,但事实上即使仅仅如此,就已经困难重重,每个公司内部都会有层层的利害关系,说难听点可能都会 有一些比较官僚的制度,尤其是将你所需做的一件事情是需要跨部门的时候,更甚之…… 下为原文: —————————————————————— 跳槽?跳槽! —————————————————————— 今天,我在微软全球技术中心实习的时候的同学兼同事告诉我他跳槽了,跳到了UBI去做游戏。理由有很多:工作太累,加班没有补贴,做得活太detail,没法对软件开发和软件工程形成一个宏观的理解,不可能转成正式员工…… 从他那里也了解到,由于GTEC换了新的大老板,Dennis Lam已经去其他地方工作了,大老板正在竭力压缩开支,免费的工作餐取消了,报销车费取消 了,正式员工也是能不雇佣就不雇佣,待遇已经今非昔比。去年我在的DSV组的同事,现在走的走,散的散,重组的重组,还剩下十几个人了。想当时我在那里实 习的时候,鼎盛时期DSV组有三十多个人,是Microsoft GTEC最大的组,没想到仅仅半年时间,现在却“人心惶惶”,真是时过境迁阿。虽然仅仅 实习了八个月,虽然最后没有选择留在微软,但是那毕竟是我的第一个工作的地方,就像一个人的启蒙老师一样,始终都还有一份感情,始终都还想着有朝一日能再 回Microsoft效力。 但是再想想,很多人尤其是vendor从GTEC跳槽也不是偶然的,工作强度高我是深入体会的,虽然理论上每天只需要工作八个小时,但是很多同事都是一天 干一天半的活,晚上加班到十点是正常的。当时凭着自己对Microsoft的激情,倒也干得任劳任怨。可是,仅仅是激情就够了么?激情过后,剩下的是什么 呢? 考虑的再多一点,现在好多的外资IT企业,尤其是一些享有国际声誉的知名大型IT企业,近年来在中国都建立分公司,或者“研发中心”。凭着“还说得过去的 薪水”和企业本身的名声,把大量中国的优秀IT人才揽于麾下,与此同时,具体工作的内容呢?很多都是与公司的核心技术根本不沾边的内容。还有些更直接,做 外包。记得某号称“玻璃巨人”的IT企业中国软件部门领导在同济大学软件学院做报告的时候更是赤裸裸的宣称“在中国这个环境下做软件,只能做外包。”。这 样拿着中国的优秀软件人才当廉价劳动力赚钱的外企,进去了除了能得到个听起来还不错的名声——“世界五百强XX公司员工”——之外,得到的还有什么呢?暑 假的时候我有幸在国内某个做国产系统支持软件的公司实习。实话实说,与那个公司的员工交流的时候,感觉他们的smart程度至少要比 Microsoft Guys低一个档次。国内最一流的软件人才都去了外企,留下了二流三流做中国的核心技术。这或许也是中国软件产业落后的一个原因 吧。。。

实习生离职引发的思考



最近从七月份还了那一大笔债务后,由于各种原因,公事、私事遭遇了很多事情,几近所有的事情都让人不爽,心情指数也急剧下降,但又苦于不知该如何叙述,更不知该向谁述说,总言之就是矛盾、复杂二词。于是开始对自己进行反思,今天先反思工作职责。 一. 关于工作职责,其实本来也可以很简单。 虽然我是公司在大陆地区唯一的一个研发部门经理,但由于我们公司的产品研发制度采取的是一种Matric模式的 管理制度,在这种制度下,从REQUIREMENT管理到SYSTEM ANALYSIS,再生成PRD,然后再到RD来做SD,并完成DEVELOP,然后交给QA,最近Release产品,每个环节都有很明确的分工,本身 来说,这应该是很标准、很完美的一套制度,而在这套“很完美”的制度下,由于,我并不需要处理太多的管理方面的工作,甚至也不需要我做太多的研发文档,所 以,一直以来我对自己的定位是: 1) 作为一个资深研发人员,负责公司核心技术产品的开发。 2) 协助SA & PM完成各种Spec or PRD document的撰写。 3) 对一些研发中的主要技术难点进行攻关。 4) 在协助Team下的员工(新同事或者老同事)完成一些他们无法完成的、或者是无法独立完成的工作。 5) 对Team下的员工做一些简单的激励和鼓励,如:阶段性的和Team下的员工一起打打球、唱唱歌什么的。 二. 在实际工作中碰到了问题 公司的制度是非常完美的,本来按上面讲的那样,我已经决定应该会工作得很快乐,并且绝对不应该产生“情绪”。然 而事实上,这套完美的制度在实际的操作与运营中,却又真的出现了很多不该出现的问题,最大的问题,我想应该跟所有的IT公司一样(或者说是跟所有的软件公 司一样),那就是Schedule的delay,并由此而引发各方面的不满。对于此很难用几句话来说明清楚,我只是想站在一个纯RD的角度来试得解释和说 明一下我的理解,同上配上我的一些不怎么make sense逻辑(由于最近一直很不爽,所以借机发泄一番),我认为导致目前的状况的原因,从简描述的话应该有以下几点: 1) 缺乏沟通; 2) 缺乏激励制度; 3) 产品研发管理中诸多环节无法得到很好的衔接; 4) 缺少起码的人文关怀; 以下是对于上述问题的一点我的理解(别的部门我无法对评论和指点,因为那不该是我去管的事情,所以,以下所有的观点仅仅针对大陆RD部门) 1 缺乏沟通 在这几点问题中,我把缺乏沟通放到了第一位是因为缺乏沟通直接导致了其他很多的问题。单纯的从RD部门来讲,缺 乏与HQ的沟通,缺乏跨部门之间的沟通,导致RD根本无从知道公司的运营状况,而这样的结果就是导致RD对自己的前景无法作出很好的判断(更别说是正确的 判断),在这样的背景下,有一句俗话更容易被放大,这句俗话就是“好事不出门,坏事传千里”,其结果就是直接导致部分“体质”较差的人“生病”。 而且对于这一点,我也必须数一数与此相关的“恶行”: 1.1. 公司层面 从来没有什么好消息。概念里根深蒂固的观念:RD不需要知道外面的任何事情。Sales拿到了什么单子,什么产品接了什么客户等等,从来不会有什么喜讯通告,更不会有人来告诉上海。 公司的对产品的一些规划、计划也从来没有到达过上海的RD,不管是讨论,还是结论。对于此,我听到下面的人抱怨最多的就是: 不知道自己在做什么东西,因为光从上海来讲,我们投入95% […]

关于职责工作的反思(草稿)


这也是我在多年前针对公司的一些研发与测试之间的各种状况而发表的一点个人看法,原先po在我的另一个网站:http://www.rosoo.net/a/200909/7475.html。而事实上对于这个话题其实一直以来都是一个很大的课题,而且每个人,或者每种角色对此的看法都不尽相同,同时我相信这个话题也会一直延续下去,不管是数十年前,还是现在,亦或数十年后,永远都不会停止。同时,在这几年来又有持续出现一些与这个话题相关的讨论,如:“单元测试要做多细?”,一个测试人员的反思!,当然,还有更尖锐、直白的一个讲法:我们需要专职的QA吗? 这都说明了同一件事情:测试很重要,但具体测试的该怎么做?甚至谁来做?我们需要持续的、不断的探讨。另外,我还需要再声明一下的是,我讲的只是基于我个人所在的环境及当时的经历,在不同的环境,不同的经历,不同的时间,都会有不同的结论,简单讲就是:这一切都没什么对错,你只需要找到最适合你现在的状况的一种做法。 以下为原文: ------------------------------------ 鉴于公司目前的QA没有一个是拥有RD的背景,且在submit defect & bug的时候经常会出现一些非常低级的描述错误。 举个最简单的例子:        a) 看不到图像。QA submit一个bug说是看不到图像,但基本上没有一个QA会在bug现象里说明看不到图像的时候,Server有没有流量?Client有没有流量?相反许多时候,加了说明可能又是错误的。        b) PTZ不Work or delay。        c) 没有收到警报。几乎从来没人会认真的去观察哪底是哪一段的错误导致没有收到警报,是设备没发出来?还是UniArgus Server的几种可能性?        …. 当然,我这么说并不意味着我作为UniArgus整体产品开发的RD主要负责人想推卸责任,我只是觉得如果把所 有的责任都推到RD的身上,所有的问题都是由于RD在开发时没有做好测试而导致的这种说法感觉有些不能接受。可以肯定的是RD的确需要加强 integration test,但还有很多时候QA的整体能力和素质也有待提高,UniArgus的产品就这么一些功能,QA每天都很辛苦的重复重复再重复的测试,对于许多问 题其实我觉得他们早就应该很有“经验”了(QA应该早已很清楚出现一些常见的问题的时候可能是什么原因导致的,应该怎么去确定,也即诸如之前一直在上海强 调的FAQ管理),不过话又说回来,如果我是一个QA的话,每天就这么“机械的重复”,也是很容易会麻目的,所以坦诚的说,事实上我也很难去怪QA(因为 其实在这一点上,RD和QA是完全一样的),更何况UniSVR的QA就这么几个人,他们每天都那么忙,而且以目前的状况他们不可能把对Program的 理解上升的RD程度。 因此,考虑到实际的状况,我的观点是: 1. 测试规则的制订 如果要定测试规则的话,应该是由RD和QA一起来定才会比较合理,QA会告诉RD他们是怎么进行测试的,而RD 则可以真正的将所有功能的关联起来,因为RD可以将功能直接细到哪几行Code,而这些Code可能会影响到其他哪些功能,这样的规矩才是真正完善的规 矩,同时这也有助于提升QA测试的完美程度。 2. RD和QA需要定期or 不定期的保持沟通 这一方面是由于目前的UniArgus整体产品并没有真正定型,所以有时候的一些修改可能是颠覆性的修改,那样的话,与此相关的功能肯定需要重测,同时测试规则也可能需要重新定义。 另一方面,RD应该保持对QA做一些基础的、必要的training,并整理和完善与产品相关的一些FAQ。 3. 规则外的一些测试 RD的优点是对整个产品的流程比QA更清楚,但有许多许多时候这个优点其实是最大的一个缺点。就是因为RD太清 楚一个大功能的每个步骤,第一个做什么,第二步做什么,最后才能做什么,常常有状况是RD自己测没什么问题的功能,一到了QA就问题百出,所以,在测试上 还必须加入并加强规则外的一些测试。 4. 最后当然是政策的执行

关于QA与RD之间的互动


任何一个人,都会对自己所从事的行业,从事的工作产生一些自己的想法和观点,而这些想法如果一直都无法找到倾诉的对象,或者是complain的对象,难免心里郁闷,时间长了,甚至出现情绪(就像我最近的状态)。静下心来想想,不吐的确不快,但也可以自己在网上倾吐。 其实这是我在三年前写的一篇文章(原先的时候po在我的另一个网站:http://www.rosoo.net/a/200909/7435.html),可能有许多内容对于三年后的今天来说都已经不太一样,甚至不太合适,但为了保留“历史”,我还是原封不动的将其搬过来。 以下为原文: ---------------------------------- 做什么说什么,所以今天我想说说的是大型视频监控平台出路的一些看法,一些简单的、粗糙的想法。 我所在的公司是一家在安防行业及视频监控领域大型应用平台软件的提供商,经过了十来年的相关应用软件开发和摸索,现已据有一定领先优势的公司,在业 界竞争激烈的台湾同业公司中至少排名前三,在大陆也算是赫赫有名的一家视频监控平台的提供商,产品在全球布局上也具有相当的优势,远销欧、美、非,近销日 本、东南亚,但是这个竞争越来越激烈的行业里,在经济危机越来越严重的背景下,在行业技术更新越来越快的时代中,作为一个在此行业从事了多年的先行者,我 觉得有必要谈一点自己的一点感受。而这些感受则更多的是以公司目前的一些状况,以及行业现状为基础,努力探索此领域相关的一些前景、趋势和发展方向。 无论是什么公司,在发展了一段时间后,都可能会出现一些困惑,而跟这些困惑的具体内容关联最多的是公司自身的定位。定位不同,方向可能会完全不一 样,但是我要说的不是具体的公司定位这种高层次的话题(因为那不是我作为一个名义上的软件开发部门经理所能够关心的事情,就同我自己存在困惑,不代表上层 决策者也困惑一样),而仅仅是作为一个从业者,谈一下可能存在的一些出路。OK,直接切入主题。 1. 直接业务的拓展 作为软件平台的提供商,自身并不生产设备,但是在软件平台上具体相当的优势,所以直接业务包括两个方面:直接面对用户,并自行开拓发展业务;开拓设备制造商的接入市场。 1) 直接面对客户 首先,如果一个公司准备这么做,其必须有强大的背景实力的支撑,而直接面对客户意味着你需要大量的人力及资金投入,所以这条路一般只适合一些大公司,或者 是具有相当号召力及相当资源的大公司,对于一般的公司来说,显然是不合适的,但是如果是做一些行业典型应用,并以此作为成功案例则是任何公司都必需的。 2) 开拓设备制造商的接入市场 如果是一些小型的应用,那设备制造商自身的软件应用即完全可以应付,但是一旦碰到一些大型应用,或者是设备制造商想进入一些具有一定门槛限制的领域,那就 必须求助于专业的大型应用平台提供商。所以,对于平台软件提供商来说,这一块是其固有的优势。也正是因为如此,所以我并没有将设备制造商列入我目标中的行 业同盟,因为设备制造商与平台提供商的角色可以说是不对等的。作为强势的一方,平台软件提供商完全可以利用自身的这些优势,来开拓设备制造商的接入市场, 并可以为日后与设备制造商的更进一步合作打下基础。 2. 架构行业联盟 行业联盟的重要性我想无需我在此獒言,但如何来确定自己的行业联盟也是一个问题。 从狭义的观点上讲,所谓的行业联盟,应该是两家或者几家处于同一行业的公司,如设备制造商与平台提供商,才适合结成行业同盟,但是事实证明并非如此,因为通常这种联盟相对来说会比较短命、比较脆弱: 1)由于所面对的客户在一定范围内会重叠,这可能会导致双方在利益上产生一定的冲突,所以很容易导致日后的解体。现实的生活中最常见的就是这种类型的同 盟,而且这种同盟的产生通常都是因为行业受到外部的冲击导致的,所以其结盟所表现的形式也通常为自我保护性质的联盟,如:前阵子炒得火热的空调价格同盟 (现已基本解体,因为夏天即将过去,空调不再热销,大家又都互相开始打起价格战);诺基亚窜货纠纷经销商同盟以及OPEC石油产量同盟等等(与这些同盟相 关的案例,请自行百度,我就不在此浪费力气敲键盘了)。 2)由于在同一行业里,故所推的产品大都具体相同或相近性,所以在技术研发、产品研制方面无可避免的会产品竞争,并因竞争所排外,除非双方进行并购,合并 组成一个大的公司平台,以资源共享,否则这个同盟的结果还是很难预期(几年前我一直觉得Dlink来收购UniSVR,也许可以强强联合,但现时已晚,并 基本永远不可能再发生)。 所以,简单总结一下:我认为同行业的同盟,也许在特定的环境及背景下会有这个需要,但从长期来讲,不会绝不会是最重要的同盟。 那么,除了设备制造商之外,究竞应该去架构什么样的同盟呢?从我的观点看: 1) 电信运营商 本身安防、视频监控行业较其他行业就有相当的特殊性,在这个行业里,存在了太多的“强制性”因素(或称之为政府因素),从前端设备DVS(视频服务器)、 DVR(网络录像机)的入网,到视频监控服务平台的入网(如中国电信全球眼入网许可、交通厅的道路交通监控标准),每一个步骤都带有很大程度的政策性因 素;而在美国911事件之后,政府和政策因素对此的影响则是越来越大。而一般公司如果想拿到这种定单,无疑是相当困难的,而如果是政府旗下的大型国有企 业,或者是政府管制性行业的龙头企业来说,将会相对来说更容易,所以,这个时候四大电信运营商就是最佳选择,他们优点: a. 强大的政府背景; b. 坐拥电信基础设施、宽带接入; c. 绝对的话语权; […]

探讨:大型视频监控平台的出路



由于计划将一个原先在Linux下跑的NVR平台移植到Android上,而该程序有用了MySQL,并且是用C++写的。于是引出问题,到底移植过去之 后该用什么数据库?继续使用MySQL(使用非官方的版本,官方不支持)?还是干脆选用其他的数据库(如:Android自带的SQLite)? 在一开始,我安排了一个新人去做相关的research,research方向是MySQL,因为如果可以搞定mysql for Android,那意味着我们可以省掉很多的工夫,但结果是一团糟,一方面是这个新人没有做出来(也不可能做出来),另一方面,让一个新人去做这种事情, 本身就是非常的不合理。 所以,没办法,现在终于决定放弃mysql,直接朝着sqlite去了。 以下是ST(我的老板,VP)找到的一个各种关系型数据库之间的对比的资料,来自wikipedia Comparison of relational database management systems: http://en.wikipedia.org/wiki/Comparison_of_relational_database_management_systems

各种关系型数据库之间的对比


由于原来的ffmpeg + SDL版本存在一些问题,最近4D影院播放控制系统进行了一个大手术。现已基本完成,欢迎大家试用。 之前的版本是用ffmpeg + SDL来实现的播放器,然而ffmpeg并不支持Intel的 Indeo Video 5(IV5)的编码格式(许多4D影片都是这种编码格式的),并且,自己在手动控制一些时间戳存在问题的视频格式时也容易出来播放同步上的问题(在不同电 脑上的表现不一样),因此,我又花了大力气改了一版基于VLC的播放器,以实现这个4D影院播放控制系统。 不过,这个版本仍未实现控制命令协议的编辑(仍然需要自己手动的去更改excel中的控制命令/协议)。 注: 修改后的整个软件变得非常大,达到64M之多,而我的网站是放在国外的,国内连接下载速度有限,因此,我有同时在360云盘里放了一份copy,您也可以直接到那儿下载:http://yunpan.cn/lk/22gseek1ll

4D影院播放控制系统大手术


前两天深圳的林工反馈回来说4D影院控制系统在不同的电脑上会出现播放速度不同的问题。现初步断定为CPU利用率的原因所致。目前正在努力解决中。同时,又让我回来看了一下4D影院的介绍。摘录如下。 介绍 4D影院是从传统的立体影院基础上发展而来,相比较于其他类型影院,具有主题突出、科技含量高、效果逼真、画面冲击性强等特点和优势。随着影娱乐技 术的发展和娱乐市场的需求,人们不仅将震动、坠落、吹风、喷水等特技引入3D影院,还根据影片的情景精心设计出雨、光电、气泡等效果,形成了一种独特的 体验,这就是当今十分流行的4D影院。由于观众在观看4D影片时能够获得视觉、听觉、触觉、嗅觉等全方位感受,近年来4D影院的发展非常迅猛。 (一)4D 影院的银幕结构: 从视觉角度讲,采用180度的柱面环幕立体影像——它是指银幕保持在有相同圆心的一段弧度上,而不是一个平面(平幕)上。银幕的高宽比例为16 :9,柱面环幕3D物体运动影视范围大为扩展、开阔视野,摆脱了平面视觉束缚,使影视空间和现实空间更为接近,并且可以产生横越、环绕等多种运动方式,从 而产生时空变换的感觉。(区别于“平面四维影视”——限制了观众的视觉角度,也限制了物体的运动方向。) (二)、偏振光眼镜 针对柱面画面效果的需要,专门设计和制造了适合于观看柱面电影的柱面偏振光眼镜(即“立体眼镜”)。使观众看到的影片左眼和右眼的图像不同,这样反映到人脑中的影像就是3D影像,从而创造置身其中的立体视觉空间。 (三)、 4D特技座椅 座椅根据影片的故事情节包含由计算机控制做出五种特技效果:分别是坠落、震动、喷风、喷水、拍腿。另再配以精心设计出雨、光电、气泡、等等引入3D影视, 从而调动了人的所有感知系统,使人真正走进影片情节。由于在四维影视中的电影情节结合了以上的特技效果,将观众与现场感受紧密地结合在一起,所以观众在观 看4D影片时能够获得视觉、听觉、触觉、嗅觉等全方位的感受,体验身临其境、如梦如幻的感受。形成了一种独特的表演方式,这就是当今世界十分流行的4D影 院。通过这一系列的技术改进和革新,四维影视已经突破了传统意义中电影是光影艺术的概念,是全新的、真正的高科技产品。 (四)、数字音响系统: 采用高品质声音效果素材——多声道环绕声系统作为影院的音响系统。提供6.1甚至7.1声道系统从而增强环境声音效果。4D影院的多声道环绕声系统在设计 和制作时充分考虑到柱面4D影院能够使3D物体产生环绕运动的特点,可以精确的对运动物体进行定位,使4D影院的声音也立体起来,形成真实的立体空间感。 (五). 计算机控制系统: 上述各种要件都具备了之后,怎样才能使它们有机、有序的发挥自己的作用呢?这就需要针对不同影片内容专门设计的计算机控制系统来发挥功能了,控制系统的核 心是控制软件,程序工程师根据影片的内容,在准确的时间点设定命令,用以控制放映系统、特效座椅、特效设备、音响系统等的开关,使整个4D影院系统构成一 个有机的整体,为观众提供全方位的感官体验。 不管是4D立体电影的8个特效(喷气 扫腿气泡 雪花 闪电 吹风 喷水 喷雾)一样不少,就连特效4D立体电影动感坐椅也可180度三自由度摇摆。 以下是在网上看到的一个与我做的这个4D影院控制系统相类似的产品的说明 4D电影播放器 4D影片控制软件 动作编辑器 深圳市精敏数字机器有限公司做为国内工业级智能4控制领域的标杆性企业,是国内3D、4D、5D、6D影院核心控制系统最专业的研发商、提供商,为国内80%以上的4D影院设备提供商/集成商/经营者提供了定制化的4D影院控制软件:编辑软件和播放器。 深 圳市精敏数字机器有限公司是国内工业级高可靠智能控制领域领导者、单片机工控板创始者,工业级微控制自主研发商、生产制造商、控制系统方案提供商,具备硬 件、软件创新研发实力,一贯坚持“以客户为导向,自主创新、持续发展”的宗旨,多年来聚焦于数控领域,关注客户需求,致力于智能控制、可编程逻辑控制、单 片机控制、运动控制、机器人及机器人控制系统、嵌入式控制、机房现场环境数据采集、远程监控、各种通信控制、自动化、数字信息化、物联网等领域软硬件开发 和销售。 [说明]:编辑端软件用来编辑动作;客户端(播放器)用来命令控制器执行动作,配合控制器来实现4D影院内所有设备(座椅、特效设备、投影仪、音响等)随电影情节协同工作。 精敏数字4D动感影院控制软件分为编辑端(JMDM-4Dfilm editor)和客户端(JMDM-4Dfilm player)两部分,配合JMDM系列多款工业级4D座椅特效控制器使用,构成JMDM 4D影院座椅特效设备控制系统。 标准配置:1套软件只有1个编辑端、1个客户端软件的使用权限,一般标配2个加密狗,用于打开编辑端和客户端软件,即1个加密狗用于打开编辑端软件,1个加密狗用于打开客户端软件。 。也可根据客户需求,配备1个加密狗,仅提供播放器软件的功能。 […]

4D影院相关资料收藏