`
hanhg
  • 浏览: 137297 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

疯狂的程序员-第七十九章

阅读更多
关重大,绝影抽了点时间,洗了个澡,换了件衣服,然后端端正正地坐在电脑前,清了清嗓子,才郑重地给BOSS Liu打去了一个电话。
. q+ y2 w9 h# e# I0 E. r9 u: FBOSS Liu显然还没意识到事情的严重性,而且正一门心思地一边写着他的代码,一边听着MP3,一边在news.qq.com的角落到处翻花边新闻,一边跟MM们聊着QQ,一边和绝影讲着电话,简直把多线程或者说超线程技术在工作中运用到了极致。胡乱聊了两句,绝影突然换了口吻道:“BOSS,严肃点,大事不好了!”
* _2 u9 l" w5 D& _: [& Q要换成平时,BOSS Liu都对绝影的“大事不好了!”习以为常,“狼来了,狼来了”,喊一两次还能忽悠人,你要是天天喊,哪怕你突然有天改成“老虎来了”都没人理你。: _  G& l1 X9 {
这一次,BOSS Liu听他的语气不像在开玩笑。要是真有什么大事,怠慢了绝影,到时候让他秋后算起账来,可是自找的吃不了兜着走。. m  m' _0 n& F) `
于是BOSS Liu赶紧在VC中按下Ctrl+Shift+S,小心翼翼地保存好他的代码,关了还没看完的花边新闻,再给每个MM发一句:“BOSS来了!下了!”,用的还是“复制”,“粘贴”,赶紧把QQ调成隐身,还算是安全结束所有线程,然后才正经地对绝影说:“不急,冷静!”,这才把重点全部放到主线程上来。
- f. J) _1 w' i7 M0 {- t绝影却用更加焦急地语气说:“还不急呢,火都烧到眉毛了!那个代码,你究竟有没有编译过啊?”; D6 B5 H  p% D  N# }, q  j7 C
“当然编译过,怎么?有破绽?”
! r9 G" P3 a+ c/ n( r; B: V“当然有。”
2 s& S' N" v3 _$ q: M0 J; e: m1 t“我来解决。多不多?”
, M# u, {8 q7 o1 [8 h  e! q0 ]4 ?“不多,但都是致命错误,fatal error!”
- G9 T# d/ p- Z$ F& e6 g+ `这次换BOSS Liu焦急起来:“怎么回事?”
0 ?, j9 W1 i) u" _$ I6 q  M! L绝影却缓了缓语气:“我说BOSS啊,你这不是整我吗?你自己看看你那x264解码器部分,还有zlib库。”: `, h) Q3 C% }6 v8 B
“这两个库很好嘛。都是网上开源的,很有名,而且发布很久了,是经历过考验的,应该没什么问题。”- A/ q$ o9 h0 a: N
“我晓得,好是好,问题是这两个库都用了汇编语言,而且都是独立汇编,还非得汇编器来汇编。还不统一,x264用的nasm,zlib用的masm。”
: a9 m4 {( s3 S$ ]' UBOSS Liu这才一拍脑门:“坏了。”% [* u- c$ N3 [
绝影叹口气:“是啊。坏了。这S60 Platform SDK全是C++接口,根本没有提供汇编器,任凭你什么汇编代码,放到这里就是死,你总不可能让我去打听一下人家NOKIA用的什么处理器,找来《Develop Guid》,把那nasm的汇编翻译过来再拿它的汇编器汇编吧。再说,要是我们真有这么大本事,还不知道S60 Platform SDK的C++编译器和汇编器的目标文件兼不兼容呢!”
& j3 U: j( b( Y9 HBOSS Liu沉默了一会:“唉,当初我就在Linux下编译的,我看这两个库比较稳定,就直接把目标文件连接进去了,根本没想到这里面还有汇编代码。这可如何是好啊?”
& o) X( ]/ N/ X' |: ~6 _& f绝影也沉默了一会:“办法有两个,一:把这库里面的汇编代码翻译成C++的,工作量巨大,代码我也只是粗看了一下,发现x264的汇编代码分为AMD63和i386,zlib好像也分了masm64,masm32和masm686,估计还是跟CPU平台相关的,如果是这样,就不好翻译了。结论:方法一基本不可能。二:干脆就不要这部分的视频解码了,把主流解码器做出来差不多了,毕竟是移动平台嘛,想做得跟PC平台功能一样强大,还是比较困难呐。”+ u6 {5 p: S# l# G1 |  b
“那不行。”BOSS Liu一口打断他,“x264的可以暂时不要,但zlib就非要不可了,代码里面所有关于数据压缩的算法基本都用了这个库,这个库没了,等于我们那些代码都废了。”$ ~/ J: ]8 S2 X: V. {
“那我也不知道怎么办了,反正做到这里,做不动了。”
' q5 |" h# @% t: \" y“嗯你等等。”/ B7 X4 @1 S& G" @: h% a+ h- R8 @2 z( C
BOSS Liu说完,电话里沉默了几十秒,估计他正从办公室走到外面,确认周围安全了,他才压低声音说:“嗯,先放放,我马上请个假回来,再详细讨论下这事。反正zlib不能去,去掉了等于整个视频解码都不可用了,那我们做这CASE也没意义了。”
! G. r) {5 ?* t) z3 @( ~“嗯。对了,Bug Yang那边你跟进了没有?”
7 O& j7 g9 k2 y, @. F% P7 ]“当然有。”3 G- {! I# g6 R& R
“他那边怎么样?”! h+ m- L7 B& p7 p/ ?5 U
“他说没问题。”/ M5 i- L5 l! _+ O# ~: p' H* l
“放屁,要是真的认真做了,怎么没发现这么大的问题,还没问题呢。也不知道他真的认真了没有。”9 f8 F5 Y. d; Y3 n, u7 O
“唉,BOSS啊,你不要把每个人的水平都想得跟你一样,慢慢来嘛。”- Q/ L4 T2 J  t

7 ^- ~- Z2 h  ?3 D: D放下电话,绝影感到手脚都有点发麻。事情都做到这里了,才发现这么大的问题。原来以为只要有激情,肯拼命,啥事都不怕。现在看来,他还是错了。7 s6 ~6 T5 `: v) p
“人定胜天”的思想真是害死人啊。几千年了,中国人一直信仰孟子的教导,并且为了证明他的正确性而不断努力,结果呢?还是唯物主义一语道破天机:“人的主观能动性受客观条件制约”。
* C8 h$ m/ P3 W0 j8 L) ?  q这时候,大爷也看出一点端倪:“出问题了吧。我就知道,你们啊,当初你们就把问题想得太简单了。要创业,要做一个产品,哪里有那么容易的?想当初我们公司……”
9 H/ _; o5 z1 w8 J$ f“停停停。”见大爷又准备忆苦思甜,绝影赶紧打住他,“别笑我们。毕竟没有经验嘛,不过好歹我们敢去做,好多人虽然有想法,但没胆子去做。整天拿着他的优秀项目到处忽悠观众。这些人,才是值得鄙视的。”
$ h* ]; F: }. m; ?0 m! Z% e6 r大爷怎么听,觉得绝影这话中带话,但有说得不是很明显,只好说:“那是。我胆子就小,不过经验有一点,现在我也正调研项目,你有技术,我有经验,我们在一起还怕没饭吃。你们啊,自己去搞,风险还是很大。”: j7 Q2 i& u$ Y4 n+ `0 n3 N% o6 x
绝影点点头:“那你看看吧,这次是个大问题,致命错误,到这里,我都不知道这CASE还不知道做得走做不走,总之等BOSS Liu回来再说,问题总会有的,也总会解决的。”
& B: m, Y, G0 e0 x& R7 Q绝影一边给大爷说,一边安慰着自己:问题总会有的,也总会解决的。' }1 x$ V+ t$ x9 `6 x6 T
可这一次,问题实在太多了,第二天,工商代理又给他打来电话,头一句听着还挺顺心:“影总吗?我是XXXX公司啊。”
7 C6 Y8 s; N5 k$ ^1 X- d9 P听别人叫自己影总,虽然只是电话,绝影还是摆出一副自以为是老总的样子,正儿八经地说:“嗯,你说。”
% Z0 O! U) d# s& @“营业执照可能有点问题啊,今天工商局打回来了,主要是你们那办公场所的问题,工商局说今年下来新规定,所有新注册公司的营业场所必须要是商业用房或者商住房,可你们是住宅用房啊。”
! A. U! x; Q$ D: C  C0 S& z“当初不是专门问了你们的吗?你们说没问题啊。”8 |6 w; i  W, [' q( E0 z5 b; s/ `
“是啊,这问题我们以前也从来没遇到过,这也是新问题啊,我们今天才第一次遇到。你看你们能不能重新拿一份租房合同啊?”3 Z( X5 w8 R; u' n5 x7 z- K
绝影立刻在心里盘算了一下,拿份新合同,还得商业用房,现在哪家门面不是几百上千一个平方,就算写字楼,算下来也得几千块钱一个月呢。这可基本上相当于一个人的工资啊。现在啊,政策就是整死人,一面说要鼓励创业,要减税,一面又说开公司要这样那样的限制。说这些有什么用啊?我要真的一年能盈利过一两千万,我还会偷你那点税钱?我还会老想着少那几个点子?支持国家发展是再好不过的投资了,毕竟,只有国家发展起来了,企业才有可能有更好的发展。可是现在呢?公司还没开成,政策就准备把它扼杀在摇篮之中。
+ N$ \! ~% b+ R6 N9 `/ D! B/ r想到这,绝影气就不打一处来,干脆全部发泄到电话里:“当初你们不是拍着胸口说得好好的吗?现在我们根本没做这方面的准备,你今天说房子不对,明天又说公司名字不行,后天又说经营范围不符合要求,这要求没完没了,我们怎么做得下去?”4 H5 E; f) a$ g, G: G7 Z4 c7 B
工商代办听绝影生了气,生怕得罪了他掉了这份生意,明明听得绝影话中带刺,还得继续甜言蜜语地说:“影总你先别急,这样吧,你们先去想想办法,能拿到租房合同尽量去拿,我们这边也再看看能不能活动活动,但是也不能打保票。”其实她心里暗骂道:“一群黄毛小子,一没钱二没经验三没关系还敢出来开公司,这不明摆着送死吗?”
6 r$ i- f. F2 x4 j% J不过有这样的黄毛小子也好,有这样的人他们才有钱赚,要是全世界的黄毛小子都老老实实呆在公司,或者只敢背着BOSS接点私活,那工商代办还做个P的生意啊。正是黄毛小子们养着他们,对他们来说,黄毛小子才是他们的上帝。
) k' i: F! E. h' d1 z所以这个世界就是这样,有些有人有点钱了,就这也瞧不起,那也瞧不起,嫌打工仔穷了,嫌农民工脏了,你大不了就一个煤老板或者做房地产的地主么?挖煤要靠谁?盖房子要靠谁?还不是要靠广大农民工。煤挖出来卖给谁?房子修好了卖给谁?最终还是不要卖给广大人们群众,广大打工仔,广大农民工兄弟。你要晓得,和你一样的煤老板是永远不愁煤的,和你一样搞房地产的地主是永远不缺房子的。这么一想,你才晓得,其实广大农民工,广大打工仔才是你的衣食父母,你得尊敬他们,得供着他们。! s- F6 \* I3 O+ S* ^" B
所以写程序也是一个道理,你千万不要以为自己会点C++晓得啥是继承啥是封装了,就牛B得不得了,就有资格把那些还在问:“C语言的指针是什么意思。”的所谓“菜鸟”们鄙视到十八层地狱了。程序写出来给谁用?难道你还能拿他当饭吃当烟抽,还不是得拿给你称之为“菜鸟”的广大人们群众。或者是你有了研究成果,拿出来跟谁分享?技术低了,其他牛人们不屑一顾,你要记住,比你牛的牛人们永远不缺你拿点技术,技术高了,你又研究不出来。你还不是得跟“菜鸟”们分享啊,“菜鸟”们对你的成果津津乐道,对你万分追捧,满足你那一点点虚荣心,才是你不断进步的动力。所以,牛人啊,从某种意义上来说,“菜鸟”才是你们的衣食父母,“菜鸟”是拿来尊敬的,不是拿来“鄙视”的。
& `$ O$ n' L" E$ k* R" o8 d这么想,绝影又觉得平时把Bug Yang想像得那么龌龊,还是有点对不起他。( i6 y! }2 R& ?/ ?0 D
也不晓得现在代码交给他让他搞到一个什么程度了,BOSS Liu还没回来,这个时间也应该先和他沟通沟通,于是给他打个电话,约到了茶馆。4 T$ {. O4 n( f: Y$ V. \' Q
- D! h, [" ?. v  d
Bug Yang对绝影的主动邀请是有点受宠若惊的,心里就琢磨着一定有什么大事情,半天不敢开口说话。% J6 ^) D# g# c8 Z, {2 D  R  F
绝影喝了一口茶,首先问:“怎么样?代码研究得如何?”
/ K- |2 a" c; J, u  u: q; T( p4 vBug Yang这才抓抓头皮:“还在看。BOSS写的代码,深奥啊。”$ W# V2 [- C/ s# f  J, z) x
绝影叹口气:“也罢也罢,这代码里面有个致命的问题,现在做到这里我都没办法了。”  ~; a4 E* Y' z1 d7 N
Bug Yang有点吃惊问:“这么大的问题,我怎么没发现呢?”& f1 d" w9 J" g1 a
“当然了。这问题比较深,你看的BOSS Liu的代码,还没看到那里去,那是在x264和zlib库里面的。”
# w( G8 q5 X+ Z2 w1 p/ D听绝影说出这两个库,Bug Yang努力在脑海中搜索关于这两个库的印象,这时候,要是他说句:“x264,zlib是什么啊?我没听说过。”那还不被绝影笑死,这都不重要,反正绝影比自己技术好,被他笑也无所谓,技不如人,就是要不怕被耻笑,不怕被耻笑,才敢勇敢地问问题,才能提高。在这一点上,Bug Yang的想法是和绝影截然不同的。绝影就是死要面子活受罪,什么问题,明明晓得BOSS Liu在这方面造诣很深,问他一句几分钟就搞定,可是越是这样他越是不问,不能让BOSS Liu知道自己不懂啊,在BOSS Liu面前,一定要把自己装得跟全知全能的上帝一样。于是自己下来Google上到处找资料,看代码,写Demo去分析,搞个三五天终于搞出来,再找个机会在BOSS Liu面前“不经意”地露那么一点点,BOSS Liu也在心中暗暗惊叹:“这绝影,居然连这个也知道,这可是我的长项呀,这样下去,我跟他之间打比较的优势都没了,不得了,不得了。”. B4 G* c2 \! F9 V8 u3 j; b
回忆了老半天,Bug Yang终于觉得可以开口了,才说:“x264没听说过,我知道H.264,不晓得这两个之间有没有什么关系。但zlib我知道,一个压缩算法库嘛,很流行的,以前我们公司的程序都用了这个代码,这里面不会有什么大Bug吧?”
) V9 @' z- b/ e) [5 ~( b“不是Bug,是因为这里头有汇编代码,我根本没法把它移植到Symbian平台上去,因为S60开发包根本就没有汇编器。你那边我不清楚,Windows移动平台的SDK不熟悉,但估计也移植不过去,因为这些代码都跟具体的CPU相关。”8 {, h& O' d. ?. o( K- f
Bug Yang也点点头:“那这个问题大了,还好发现得早,那现在有什么办法好解决吗?”1 U) F% B: l, v/ j' s  n
“没有。”: M" z5 g5 h4 [4 t7 D6 Y6 ]4 @
“没有,那怎么办?CASE还做得下去?”
/ a0 A& M1 _6 {& A* @“现在还没有办法,我们等BOSS Liu回来。”
分享到:
评论

相关推荐

    程序员编程艺术--共二十七章-集锦与总结(教你如何编程)

    - **第七章:求连续子数组的最大和** - 解释如何求解连续子数组的最大和问题。 - 提供不同算法的比较和最优解。 - **第八章:从头至尾漫谈虚函数** - 讲解C++中的虚函数机制。 - 包括虚函数的使用场景和最佳实践...

    程序员编程艺术第一 ~二十七章

    - **第七章:求连续子数组的最大和** - 使用动态规划方法解决了最大子数组和的问题。 - **第八章:从头至尾漫谈虚函数** - 深入讲解了C++中虚函数的概念和用法。 - **第九章:闲话链表追赶问题** - 探讨了链表...

    代码大全第二版 中文版(1-20章)

    - 第七章“错误处理”讲述了如何有效地处理和报告程序错误。 - 第八章“类与对象”深入讨论面向对象的设计原则,如封装、继承和多态。 - 第九章“模块与包”讲解如何组织代码,形成清晰的模块结构。 - 第十章...

    程序员编程艺术

    - 第七章重点介绍了求解连续子数组的最大和问题。 **6. 虚函数与链表** - 第八章全面阐述了虚函数的概念和用法。 - 第九章则聚焦于链表问题,特别是链表的追赶问题。 **7. 文件排序** - 第十章提供了如何给...

    程序员编程艺术第一~二十七章集锦与总结

    - **第七章:求连续子数组的最大和** —— 分析了动态规划方法在解决这类问题中的应用。 - **第八章:从头至尾漫谈虚函数** —— 深入探讨了C++中虚函数的工作原理及其应用场景。 - **第九章:闲话链表追赶问题** ...

    程序员编程艺术第一~二十七章集锦与总结(教你如何编程)(by_July)定稿版.pdf

    - **第七章**:求连续子数组的最大和 - **第八章**:从头至尾漫谈虚函数 - **第九章**:闲话链表追赶问题 - **第十章**:如何给10^7个数据量的磁盘文件排序 - **第十一章**:最长公共子序列(LCS)问题 - **第十...

    程序员编程艺术第一~二十七章集锦与总结(教你如何编程)

    - **第七章:求连续子数组的最大和** - **知识点**:动态规划算法。 - **应用场景**:金融数据分析、时间序列预测等。 - **第八章:从头至尾漫谈虚函数** - **知识点**:面向对象编程、多态性。 - **应用场景*...

    C程序设计语言--第三章 数据类型

    总结,"C程序设计语言--第三章 数据类型"涵盖了C语言中至关重要的基础知识,包括基本数据类型、存储、转换、结构化数据(枚举、结构体)、指针、数组、变量声明和初始化、以及常量和类型定义。这些概念构成了C语言的...

    C语言高级程序员编程指南

    第七章 文件、目录和磁盘 第八章 数组、指针和结构 第九章 DOS和BIOS服务 第十章 内存管理 第十一章 日期和时间 第十二章 重定向I/O和进程命令行 第十三章 编程工具 第十四章 高级C语言编程 第十五...

    Professional C++

    - 第十九章:“附加的库实用工具”,介绍了一些不那么常见的库功能和工具,例如日期时间处理、数学运算等。 第四部分:“精通C++的高级特性” - 第二十章:“自定义和扩展STL”,涵盖了如何通过编写自定义的分配器...

    程序员编程艺术第一~二十七章集锦与总结(教你如何编程)(by_July)定稿版

    ##### 第七章:求连续子数组的最大和 这是一个经典的动态规划问题,本书提供了详细的解决方案和分析。 ##### 第八章:从头至尾漫谈虚函数 深入探讨了C++中的虚函数机制,包括其背后的原理和实际应用。 ##### 第...

    计算机组成与体系结构(性能设计)答案完整版-第八版

    - **第七章:输入/输出**:介绍I/O设备的基本原理和接口标准。 - **第八章:操作系统支持**:解释操作系统如何管理和调度硬件资源,为应用程序提供服务。 - **第九章:计算机算术**:探讨数字表示方法和基本运算的...

    讲述程序员如何单干创业

    第七章《你为什么不适合当一个自由代理商或特许经销商》则探讨了不同类型的创业方式及其适合的人群,提醒读者要根据自身情况做出最适合的选择。 第九章《从一些创新型公司中得到的经验》分享了成功企业的案例,以此...

    Head-First-Java(英文版)

    - **第七章:在对象城中生活得更好** - 强调规划的重要性,帮助读者为未来的设计做准备。 - **第八章:深入多态** - 探讨抽象类和接口的使用。 - **第九章:对象的生与死** - 覆盖构造函数和内存管理。 - **第十章:...

    C#程序开发范例宝典1(共20章)

    - **第七章:.NET Framework概述** - 深入理解.NET框架结构,包括CLR、BCL和ASP.NET等组件。 - **第八章:集合与泛型** - 阐述ArrayList、LinkedList、HashSet、Dictionary等集合类型,以及泛型的使用,提高代码...

    NASAL语言教程-完整版.pdf

    - 第七章介绍了面向对象程序设计在NASAL中的应用,包括类的定义、构造函数、析构函数、继承、虚变量、封装和成员函数的回调调用。 - 第八章阐述了名字空间的概念和作用,包括可见范围、名字空间和模块空间。 - 第九...

    programming perl 3rd.pdf

    - **第七章**:格式化输出 - 介绍了如何控制输出格式。 - **第八章**:引用 - 解释了引用的概念及其在内存管理中的作用。 - **第九章**:数据结构 - 深入探讨了数组和哈希表等数据结构。 - **第十章**:包 - ...

    Turbo C高级程序员编程指南

    【内容简介】  Turbo C 高级程序员编程...第七章 高级指针和内存分配技术 第八章 Turbo C通用编程 第九章 目录实用程序 第十章 高级文件I/O 第十一章 Turbo C图形 第十二章 高级计划——多维文本系统 第十三章 调试

Global site tag (gtag.js) - Google Analytics