Archive for the Category “拿来主义 ”

The Story of A Software Company

今年到目前为止看到的最内涵的一篇文字,前两天网上在流传精简版的,今天终于看到完整版了,转贴如下,IT民工们自由围观。原帖地址:http://www.dapenti2.com/blog/more.asp?name=xilei&id=50130,以下转载除修改了第一段的一个bug(俄罗斯 => 苏联)以外,未做其他任何改动。

 

60多年前,我们公司一群无知无畏充满理想的程序员从苏联那里里找了一个免费的开源软件框架,进行了汉化以后,写了几行漏洞百出的代码,产品居然上线运营了。系统试运行期间还算正常,但是随着系统外围接口的增加,系统固有的问题就暴露出来了。30年前,新CTO实在看不下去了,重构了部分代码,改进了部分用户体验,但框架依旧是原来的旧框架。这几年,新代码和旧框架严重不兼容,产品濒临崩溃,用户流失严重。关键是那个开源框架设计思路有问题,还没哪个使用它的产品长期稳定运行过,后来连俄国人自己都抛弃不用了。

其实这个软件最初设计思路就是单线程设计,这有一个前提就是单线程必定是强壮和稳固的,但是这个前提只是存在于理论上,并没有实例证明。因此当世界开始流行多核处理,并行处理,甚至已经有部分软件实现了云计算的时候,单线程设计的先天缺陷就暴露出来了,主要问题在于单线程占有所有系统资源而且不受控制,甚至连原来系统的保留资源都被占用了,线程的运行方向就变得不可控,系统鲁棒性经受了严重的考验。

这一切在用户界面上,就是隔三差五跳出应用程序错误。当用户试图开启调试模式的时候,由于单线程控制了所有的输入和输出,象资源利用率、资源效率等指标都被屏蔽了或被修改了,但是系统还告知用户“由于你的操作不当,系统资源暂不可用”,用户还只能点“确定”按钮,然后等待资源可用。

相对而言,多线程的设计考虑到了多线程并行运行,或暂时某一线程优先、其他线程等候等情况,虽然存在线程之间切换成本,有时候也存在算法不当致使多线程抢夺资源的情况,但是多线程毕竟保证了系统的稳定性,用户可以借助不同的线程完成程序的运行,至少在用户体验上没有本质差别,运算结果也能基本准确。

云计算则更为领先,云计算使用了更先进的虚拟技术,采用分布式计算的方式来处理用户请求,在短时间内作出响应。用户可借助某些通用组件和程序包,实现跨软件联合计算运行。但是目前,在虚拟技术的耦合度上还存在一些问题,比如某些虚拟技术一发动全身、存在安全组件等级下降等问题。

当然了,单线程、多线程和云计算互相并不兼容。单线程指责多线程技术在业界形成了垄断;多线程则一直都在打压云计算的市场份额;云计算呢,到现在还没承认单线程资源分配方式的技术标准!

但是从目前的用户体验来说,单线程已经到了几乎难以为继的地步了。这时我们该怎么办呢?第一种方法是继续修bug打补丁,补丁实在太多,工程师和现有的经费几乎耗尽了,而且不知道打补丁还能几年。第二种方法是换个框架重构代码,但是这种重构会引起系统巨大的变动,也许是一个崭新的系统,也许系统会崩溃。第三种方法是干脆换掉这些程序员。但是程序员号称他们对软件开发作出了革命性的贡献,只可以程序员控制用户行为,绝不允许用户另行选择。可是用户居然发现这些程序员拿到了其他公司的Offer!

大家说说,这个软件公司该怎么办?

Category: 拿来主义  2 Comments

Angry Birds Live and All the Cool Ads T-Mobile Made

今天在网上晃的时候看到了T-mobile一个月前的一段愤怒的小鸟的广告视频,继而回想起了这几年T家制作的一系列的让人印象深刻的广告,突然来了兴趣,简单汇总如下,看过的可以扒高清的回来收藏,没看过的进来饱饱眼福 ^_^

 

以下视频除了最老的利物浦地铁站的群舞没有高清版本,其他在youyube上面都可以抓出720p以上的版本。09年T-Mobile其实是在一系列城市搞过这样的群舞广告,包括爱丁堡,格拉斯哥,伯明翰,布里斯托,伊普斯维奇……详情可以在youtube搜索 T mobile dance。 看不到视频的,绿坝娘教导我们:为革命,保护河蟹,预防敏感词,YY开始,闭眼……

 

 

Angry Birds Live

Barcelona

11 May 2011

41s version:

100s version:

 

Royal Wedding Dance

15 April 2011

 

Welcome Back

Heathrow Terminal 5

27 October 2010

 

Sing-along (Hey Jude)

Trafalgar Square

6pm 30 April 2009

extended version:

 

Liverpool Street Dance

11am 15 January 2009

London Liverpool Street Station

extended version:

 

Category: 拿来主义  2 Comments

IT-exam

无意中看到了一份这几日流传于网络的文理综合试卷,相当有想法。个别题目细究起来有牵强附会的嫌疑,但整个试卷的出题思路别有心意,相当有新鲜感,转贴如下(原出处已不可考,从略):

 

程序员文史综合题目一,选择题(皆为单选):

1,以下谁是二进制思想的最早提出者?
a,伏羲;b,姬昌;c,莱布尼茨;d,柏拉图。

2,以下哪个概念和公孙龙的《指物论》中的“指”字含义相近?
a,变量;b,数组;c,对象;d,指针。

3,蔺相如,司马相如;魏无忌,长孙无忌。下列哪一组对应关系与此类似?
a,PHP,Python;b,JSP,servlet;c,java,cdth;d,C,C++。

4,秦始皇吞并六国采用了以下哪种算法思想?
a,递归;b,分治;c,迭代;d,模拟。

5,雅典王子忒修斯勇闯克里特岛斩杀米诺牛的时候采用了以下哪种算法?
a,动态规划;b,穷举;c,记忆化搜索;d,Dijkstra算法。

6,印度电影《宝莱坞机器人之恋》中的机器人七弟采用的智能算法最有可能是以下哪一种?
a,神经网络;b,遗传算法;c,模拟退火;d,穷举算法。

7,《公孙龙子》记载:“齐王之谓尹文曰:‘寡人甚好士,以齐国无士,何也?’尹文曰:‘愿闻大王之所谓士者。’齐王无以应。”这说明了齐王:
a,昏庸无道;b,是个结巴;c,不会下定义;d,不会定义自己的需求。

8,惠施曾提出过“卵有毛”的命题,以下哪一项是导致这个错误命题的原因:
a,混淆了命名空间;b,引入了错误的包;c,衍生类未重载;d,调用了危险的指针。

9,下面哪种面向对象的方法可以让你变得富有?
a,继承;b,封装;c,多态;d,抽象。

10,明朝时期张居正改革的一条鞭法的主要思想是:
a,面向过程;b,万物皆数;c,统一接口;d,泛型编程。

 

二,匹配题(分析A中的句子所体现的算法,和B中的算法一一匹配):
A:
1,江南可采莲,莲叶何田田,鱼戏莲叶间。鱼戏莲叶东,鱼戏莲叶西,鱼戏莲叶南,鱼戏莲叶北。——汉乐府《江南》
2,众里寻他千百度,蓦然回首,那人却在灯火阑珊处。——辛弃疾《青玉案》
3,从前有座山,山里有座庙,庙里有个老和尚,再给小和尚讲故事,故事内容是:从前有座山,山里有座庙,庙里有个老和尚,再给小和尚讲故事,故事内容是:从前有座山,山里有座庙,庙里有个老和尚,再给小和尚讲故事,故事内容是……
4,只劝楼台追后主,不愁弓矢下残唐。——孔尚任《桃花扇》
5,飞鸟之影,未尝动也。——《庄子》

B:
1,贪心;
2,回溯;
3,穷举;
4,分治;
5,递归;

 

三,阅读理解(阅读下文,回答后面的问题):
美国的贝尔实验室设计了最初的C语言
刻在UNIX操作系统距今已有三四十年
你在屏幕前凝视数据的缱绻
我却在旁轻轻敲打键盘把你的梦想展现
循环 递归 贪心 动规 是谁的从前
喜欢在匈牙利算法中你我牵手的画面
经过MSRA门前我以大牛之名许愿
思念像斐波那契数列般漫延
当软工沦落在设计的文档间
算法依旧是永垂不朽的诗篇
我给你的爱写在程序间
深藏在最长不下降子序列里面
几万组数据流过后发现
我的心依然不变
我给你的爱写在程序间
深藏在最长不下降子序列里面
用无尽的代码刻下了永远
那已保存千年的誓言
一切又重演我算了很多遍
时间复杂度还是趋于无限
我只想要这样永远链接在你的身边
1,题目中的MSRA是什么的缩写?
2,试赏析“思念像斐波那契数列般漫延”一句。
3,请结合时代背景,谈谈你对“当软工沦落在设计的文档间,算法依旧是永垂不朽的诗篇”一句的理解。
4,“几万组数据流过后发现,我的心依然不变”一句体现了算法的什么特性?

Category: 拿来主义  3 Comments