Shared posts

20 Aug 11:06

给自己的字体课(一)——英文字体基础

by CDCer
给自己的字体课(一)——英文字体基础

这是一个给自己准备的字体学习课。

开始的初衷是想解决工作中一些关于字体的疑问(如排版、LOGO设计等),同时也想通过回顾设计的基础知识来提升自己。

所以给了自己这个课题,作为初学者只接触到一点皮毛,整理分享出来,如有不足之处烦请指正,所有参考文章标注在文末。

「字体排印」位于语言、文化、科技、美学的交汇处,是一个内涵与外延非常丰富的大话题,这次分享仅选择一些基础的有用知识。

1

2

3

4

5

6

英文字体最简化的分类:衬线体、无衬线体。二者区别在于衬线体有爪形的衬线并且笔划粗细有变化。

ppt2

一.衬线体

非常古老,可以追溯到古罗马时期的石柱铭文。它风格古典、正式,具有历史传统和意义。

按照历史发展顺序,衬线体可分类为:古罗马体(Old roman),旧风格字体(Old style),过渡字体(Transitional),现代字体(Modern)。我们选取其中两个节点——Old style和Modern字体,通过对比两者特征,就可以理解整个衬线体的发展。

ppt1

旧风格字体(Old style):

特征:对角强调线,倾斜、括弧型衬线,较缓和的粗细过渡。

风格:传统,常见于书籍、报章杂志的内文排版。

现代字体(Modern):

特征:垂直强调线,水平、极细衬线,强烈的粗细对比。

风格:横平竖直,现代感,高冷。

总结起来,在整个衬线体发展中,笔划对比变得越来越强烈,衬线越来越尖锐纤细,过渡字体的笔划粗细和衬线弧度恰好介于Old style和Modern之间。其一大原因是刻字师傅的技术越来越进步,刻工也变得细腻,使得精确的线条、更精细的粗细对比成为可能。而强调线的倾斜角度也逐渐被「扳直」,这是手工书写向现代排印转变的一个表现。

9

古罗马(Old roman)、旧风格(Old style)衬线字体案例:

《Kinfolk》是一本推崇慢生活的杂志,常介绍美食、旅行、有格调的家居设计,欣赏微小平淡,返璞归真的美。在此背景下,它的标题使用的是一种古罗马体(Old roman):Optimus Priceps,有一种手工感、古拙的趣味,以及书法的味道。可以注意F衬线左右两边的不对称,以及O笔划的凹凸不平。这种字体风格与kinfolk的定位是相符的。内文使用的有旧风格字体(Old style)Calson和Garamond,相比下我更喜欢下面第三张图内文使用的Garamond,搭配大背景图片和居中排版,显得传统、柔软,有一种诗歌般的美。

10

11

12

现代字体(Modern)案例:

因为现代字体(Modern) 有着锐利的工业感, 同时也保留着传统的衬线元素,显得现代而优雅。所以非常适合时尚工业,Vogue、Elle等杂志都使用了现代字体。许多奢侈大牌也用现代字体作为logo,强调自己百年的传统工艺和优良设计。如使用 Didot的 Giorgio Armani、Burberry,以及使用Bodoni的Valentino。

13

14

通常会认为,衬线体代表古典正式,无衬线体代表现代亲和。但衬线体真就不能传达出现代和亲民么?

15

答案是否定的。Converse所使用的字体Rockwell属于板状衬线体(Slab Serif),如下图所示。它的特点是衬线和字粗细相同,几何与单线设计呈现出现代、年轻的感觉,不似现代体(modern)的精细,适合复古潮牌。

16

所以字体的情绪其实是相对的,仅在衬线体内部,也有不同情绪的区分。

17

二. 无衬线体

无衬线体的特征和风格:

(1)完全抛弃装饰衬线,只剩下主干,造型简明有力,更具现代感

(2)适用于标题、广告,瞬间的识别性高

(3)笔画粗细对比小,视觉上看起来基本一致

(4)x高度较高

18

无衬线体也可以细致的分为四类:早期的无衬线体(Grotesk)、新无衬线体(Neo-Grotesk)、几何无衬线体(Geometric)、人文无衬线体(Humanist)。下文每类选择了一种代表字体来进行介绍,从新无衬线体(Neo-Grotesk)开始。

1. 新无衬线体(Neo-Grotesk):

代表字体是广为人知的Helvetica。用Helvetica作为logo用字体的品牌数不胜数。该字体诞生五十周年时曾有一部纪录片《Helvetica》客观的纪录了它的诞生背景、流行影响、以及各年龄层设计师对它的评价,相信很多设计师已经看过了。

19

20

“设计师的生活是战斗的生活,对抗丑陋的战斗。”——《Helvetica》马西莫.维涅里

21

先谈谈helvetica的优点

(1)中性

现代主义认为,字体本身只是传达信息的媒介,简明的字体可以让信息更准确地传达,这比视觉表现、风格更重要。因此Helvetica在设计中遵循这一设计理念,保持中性,正如那个比喻说的「字体应该像一个透明的容器」。由于它中性的特征,Helvetica既可以被运用到地铁导视系统,给人有一种现代、高效、清晰的感受,也可以被运用到AA这样的时尚品牌。因为中性,就有了更广阔的运用空间和更开放的解读方式。

22

23

24

(2)具有坚实的形式

在这里说「坚实的形式」而没有说「可读性佳」,是因为它的可读性是有挑战的,但Helvetica确实在字型设计上经过认真考量。在Helvetica之前,广告、杂志上的字体充斥着浮夸花俏的手写体,Helvetica的出现就像一股清流,它去掉了多余设计,关注字体本身的结构,给设计界带来更优质的可选方案。

25

26

整体感受是简洁、清晰,没有手工感,非常冷静的字体。细节:

a. 切口齐平,笔画始终以水平或垂直收尾

b. 顶端平坦

c. 方形点

d. 据说Helvetica字母包围的面积和它的笔画所占的面积是一样的

e. a的负空间呈水滴型

(3)与瑞士平面设计紧密相关

Helvetica的成功不是它一个字体能够完成的,是跟一系列的新无衬线体(Neo-Grotesk)的出现,以及与整个瑞士平面设计的融合,风靡全球分不开的。它们共同形成了一整套完整的理念:崇尚绝对的理性、客观、系统化。如我们所熟知的网格系统,就是推崇系统性、数学化的视觉体现。

27

28

瑞士平面设计的典型手法是以纯粹的文字编排来做极简传达。它在1960年后风行世界,是因为表现简洁、直接,并且在操作上容易标准化、系统化。当时的美国企业正在为全球化扩张寻求一种快速传播并且统一识别性的视觉解决方案,瑞士平面设计、Helvetica的出现加上各种大师的成功运用,把它们一起推向顶峰。

29

然而Helvetica并不是完美的,在这里归纳三个缺点:

(1)缺乏韵律。Helvetica的设计理念是一致、去个性,字母的整体造型都偏圆,因此缺乏阅读韵律,并且没有针对小字阅读优化,在优秀字体及细分领域都丰富的今天,Helvetica的优势减弱。

(2)中性也是一把双刃剑。冷静,客观的同时,也抹杀情感,忽略了形式可能为用户带来的愉悦。

(3)滥用。可参考今天Flat design的泛滥,误用、滥用造成人们的审美疲劳。

30

如果你喜欢中性感的字体,又想修正Helvetica的可读性缺陷,可以尝试Univers,比Helvetica更加洗练的造型,并且字重齐全。

31

另两款新无衬线体(Neo-Grotesk),分别是Helvetica的前身和号称Helvetica killer的字体。

32

2. 几何无衬线体(Geometric):

代表字体是的Futura。所谓“几何”就是将字母归纳为圆、方、三角等几何形状的字体。

33

Futura受到包豪斯的影响,造型有设计感。笔划以垂直、水平的硬朗笔划为主。细节:

(1)顶角和底角非常锐利

(2)字母正圆处理

(3)升部降部偏长,优雅

34

iPhone的报刊杂志icon,「ART」三个字母使用的就是Futura。

35

Futura在德语拉丁语中是「未来」的意思,因此它除了常见于有设计感的产品,如LV、Omega,也常用于「未来」题材。

36

37

在前面的图中可以看到Futura为了保持设计感,j、t省略了尾部,a、g使用单层结构,因此在可读性上有些问题,并不适于内文排版。并且它个性鲜明,有点「抢眼」。如果你喜欢几何无衬线的造型,但又想选择更温和、可读性强的字体,可以尝试Avenir。Avenir虽然同属几何无衬线体,但它在被设计时并不拘泥于几何形式,而是以视觉为准,显得人文、柔和,如a的尾部增加了一点点外翘的小细节。

38

3. 人文无衬线体(Humanist):

代表字体是Myriad。人文无衬线体具有更好的韵律感,气质开放、亲和,与Helvetica的相比更儒雅,不匠气。下图通过对比可以直观感受到什么是「人文」特征。

39

(1) 人文无衬线体的x-height相对较小,使整体更有韵律。

(2) 人文无衬线体的e、s等字母收尾采用半包围结构,更开放,不如Helvetica全包围的那么拘谨,显得亲和随意。

(3) 人文无衬线体线条柔美,不是Helvetica的工程感,更流线型,具有一定的手写味

40

41

42

案例:苹果的VI字体,用于宣传:广告、网站、产品铭文等。港铁地图的部分字体。

43

44

同属于人文无衬线体的字体还有:Frutiger、Segeo

45

46

通常会认为,衬线体代表古典正式,无衬线体代表现代亲和。那么无衬线体就不能表现优雅和古典吗?

47

答案是否定的。无衬线字体Optima融入了衬线基因,虽然没有衬线,但粗细变化相对明显,比划末端加粗,显得非常优雅有韵味。(在处理logo时如想要既优雅古典,又不显得老陈迂腐,可参考这种思路。)

48

无衬线字体的情绪轴。

49

50

51

 1.视觉平衡

52

(1)同样粗细的线条,由于视觉误差,水平的看起来要比垂直的更粗。因此在设计英文字母时,就应当充分考虑到视差。小林章的书籍内讲解了很多这样的案例。

53

(2)Futura是几何无衬线体,它的O看起来像是正圆,当我们和真正的正圆对比时,就会发现Futura的几何形状也是经过优化的,水平方向笔划微调修细。三个「圆」相比,Avenir虽然最不似正圆,但作为字母O却是看起来空间最舒服、最稳定的。

54

55

(3)这是是用圆弧和直线拼接起来的O,然而由于视差,却看起来有两侧内陷的错觉。因此在处理时,会讲两侧稍微向外隆起一点点,并微调水平方向的线条,就能把生硬不圆润的圆形变为视觉柔和的O字母了。

56

57

(4)X的造型原来不是斜线直接相交的结果,而是把斜线稍微错开,才能看起来像是相连的状态。并且为了避免四条斜线相交造成中间黑色部分太密集,中心位置的笔划略调细了一些。

58

(5)虽然无衬线体的比划粗细基本一致,但实际还是有着细微的差距。从正面看到的A(左侧图)非常正常,然而当A被水平翻转后(右侧图),立刻就有了略怪异和不稳的感受。A的右侧比左侧笔划粗,是受到历史上平笔书写以及衬线体延续下来的习惯的影响。翻墙看视频《罗马体大写字母使怎么形成的?》

59(6)绘制图标时我们都有经验,由于图标外形轮廓和内部复杂程度的不同,视觉体量感是不同的,不能完全依照尺寸大小而要根据视觉感受来判断。字体设计有共通之处。同样字号的文字,圆形O和三角形的A要高于参考线。在做LOGO时可以留心这点,参考案例NIVEA。

60

61

62

2. 负空间

63

64

负空间指的是字母内部的空间,以及字母与字母之间的空间。在字体设计过程中,设计师不仅要设计字母的笔划结构,更重要的要考虑负空间的设计,使之平衡和协调。引用字体大师马西莫的一句话:「我们通常认为,字体排印就是黑色与白色。而排印实际上是白的,而不是黑的。因为字体是由形体之间的空间来定义的。这有点像音乐,音乐不是由音符,而是由音符之间的停顿来定义的」。据说英文字体设计师对负空间关系的斟酌时间可能占整体字体设计内容的1/3左右。

(1)单个字母内部的空间:「B」上下两个内部空间,必须上面小于下面,如果上下相同,那上面的视觉上看起来会更大,字母就会重心不稳。类似的字母还有S。

65

(2)各字母间的相互平衡:字母之间也要取得负空间视觉上的一致。

66

(3)字与字之间的间距:调整字母与字母之间的空间,追求视觉上分布匀称,而非数值上的均匀,以达到一种视觉的节奏感和平衡感。比如字体中的I和小写l之间距离应该大些,因为两根竖线之间的空间是最小的; V、Y 和其他的字母相邻时间距应该缩小,因为倾斜笔划所产生的空间比较大。

67

68

1. 信息该如何设计

69

与其说我们在学习字体设计与排印,不如说我们借由字体思考“信息该如何设计”这个问题。

在这个问题上「字体设计」至少为我们提供了两条可参考的路。

(1)形式追随功能

英文字体一向就是「形式追随功能」的设计典范。有什么功能、在什么场景、要解决什么问题,就有怎样的字体产生与之相适应,甚至细分非常清楚。历史上,有为报纸设计的Times;有为电话本黄页设计的Bell Centennial,应对文字极小且印刷纸张、油墨极差的恶劣环境;还有我们熟悉的专为显示屏设计的Georgia、Verdana,解决低分辨率的问题。

1913年,伦敦地铁的主管Frank Pick曾为当时的地铁企业形象和字体设计提出这样的要求:「这种字体必须准确地反映我们所处的时代,能让乘客快速无误的阅读。字母就算被用作单一符号(没有上下文环境),也必须能清楚辨认。而且,这种字体要有系统性,必须要能与周围的广告文案等无关系统的信息清楚的区分。」这些要求都明确了设计的功能性目标:高度的准确性、可识别性,极端情况下都能保证清晰识别等。

以下是为法国戴高乐机场设计的Frutiger字体,由于其字碗大、开口大,并且字的粗细适中的特点,使得文字在光晕的干扰下也能保持相对清晰不黏糊。

70

71

(2)透明的容器

现代主义的理念认为,优秀的字体像一个「透明的容器」,字体仅起到承载的作用,重要的是信息的传达。

另一个来自大师Frutiger的有趣比喻是,「喝完汤后如果你还能记住汤匙形状的话,这只汤匙的设计就是失败的。」比喻略极端,其实信息和设计并不互斥,二者完全融入,浑然一体,才是完美的搭配。设计可以作为空气一样的存在,不可或缺,但用户不会明显感知到它。

2. 技术与设计的关系

72

设计过Georgia、Tahoma、Verdana、Meiryo等著名的字体的大师马修·卡特,在TED上做了演讲——My Life in typefaces。看后令人非常感动,能够深深感受到一个设计师对自我的要求以及专业精神。

字体设计实际与技术的关联非常紧密。书写工具、纸张、书籍、电子屏幕、网络,每一次媒介和印刷技术的革新,都改变着字体的呈现,也影响着设计师的理念和方法。然而在那个技术革新的年代,设计者并未回避技术,而想要被未知的想法所影响,想回应未知,想推进自己探索未知的世界。在探索技术与设计的过程中,必然有矛盾和疑惑:为缓解技术问题而做的设计是否会因为技术的更迭而彻底消失?因技术而「不完美」的设计是否因此而缺乏价值?

马修的设计做出了回应:字体的价值取决于它在实际应用场景中能否有效工作,字体的品质决定了它能否独立于技术存在。马修在演讲中说:「所有设计师的工作都有局限性,设计不是艺术。问题是,局限性是否会导致妥协呢?是否会降低设计的品质呢?局限性和妥协之间有着非常微妙的区别,但这区别却是我工作态度的核心。」

73

3. 设计趋势与轮回

74

(1)世界正在变得更加柔软

可能经历两次工业革命、两次世界大战的激烈后,大家都缓和多了。从政府公关,到企业管理,再到个人生活趣味,都逐渐人性化。举大旗喊口号的宣传方式不再那么有效,甚至会引起人心反弹。再也不是只要音量大就有人听的时代了。

上图两个LOGO的改版,不管是字体,还是图形造型,还是颜色都愈发柔和了。从LOGO上看,American Airline的形象仿佛从过去「我们是专业的航空领域专家」的严肃转换到了「我们提供舒适愉快旅途」的亲民。

75

76

77

(2)传统复兴

Gotham的设计师Frere-Jones对于机械技术的到来,传统手工制牌的终结十分惋惜。他的灵感取材于纽约1930到40年的旧建筑牌、商店招牌、店面广告,认为这些由当年美国普通民众手画的文字代表了纽约的「直率、诚恳、坚韧,富有个性」。因此Gotham字体既让美国人民感到熟悉,又具备新字体的现代感,既拥有可信任的稳重造型,又非常朴素亲切。这款字体在奥巴马竞选后,成为大热的字体。网站Squarespace,特斯拉都使用了Gotham。

历史上很多代的艺术家、设计师都会经历对当下社会的不满,对古典经典推崇,追求复兴传统,例如文艺复新、手工艺运动等。然而与字体设计一样,这些领域在不断轮回的同时,也在不断往其中注入新鲜活力,从而螺旋式的上升与发展。

78

79

80

最后:

看回我们的UI设计,Windows Phone网格、瓷片的设计,既是对瑞士平面设计的回溯,同时也开启了新的扁平化时代,遵循「简约现代、去除装饰、内容为核心」。然而过度的极简却造成了单一无趣的印象,且容易流于形式。此后,iOS7用细细优雅的线条,更柔和的图形方式,柔和地解决Flat design的情感、差异化问题。再到Google的新设计,不管是充满人情味和细节的插图,还是Geek精神的有趣插画,都能更多的感受到个性和细节。拟物是否也在以另一种插画的形式复兴呢?

81

82

83

84

参考书籍: 

《西文字体》 (日) 小林章

《字型之不思議》 (日) 小林章

《新概念字体基础&应用》苏克

《文字设计的原理》(日)伊达千代

《字体设计数问:知乎许瀚文自选集》

参考文章:

《文字設計的指導原則》http://invisibledesigns.org/typography-principles/

《Helvetica 字体为什么如此受欢迎?》http://www.zhihu.com/question/20707495

《人文字体为什么人文》http://www.zhihu.com/question/20769417

《字体的发展与国家形象》http://www.typeisbeautiful.com/2009/10/1536/

《为了信息传达的更加有效/交通专用字体》http://www.typeisbeautiful.com/2010/01/1981/

《Grotesk 的过去与未来:Aktiv Grotesk 批评》http://www.typeisbeautiful.com/2010/09/2935/

《拉丁字體的歷史:過渡時期字體》 http://blog.justfont.com/2012/11/%E6%8B%89%E4%B8%81%E5%AD%97%E9%AB%94%E7%9A%84%E6%AD%B7%E5%8F%B2%EF%BC%9A%E9%81%8E%E6%B8%A1%E6%99%82%E6%9C%9F%E5%AD%97%E9%AB%94/

《最时尚的英文字体:现代样式》

http://blog.justfont.com/2012/12/%E6%9C%80%E6%99%82%E5%B0%9A%E7%9A%84%E8%8B%B1%E6%96%87%E5%AD%97%E9%AB%94%EF%BC%9A%E7%8F%BE%E4%BB%A3%E6%A8%A3%E5%BC%8F/

20 Jul 03:33

Inception的核心逻辑

by 熊子川

Inception是ThoughtWorks多年以来使用的启动软件设计和交付项目的方法,通过3天到两周的时间,采用集中式、互动式的设计工作坊,帮助客户在最短时间内达成对项目范围的一致,快速进入项目交付。

Y同学是我们最年轻的设计师,她问:

最重要的事情,我认为单词应该写对,是「硬塞噗婶」而不是「硬塞噗母」,然后我来用最轻松的、完全不同以往那么严肃的语调,讲讲什么是Inception。

问题

首先,让我们来到问题的情境当中,这个情境有以下几个元素:

  1. 一个企业
  2. 交付一个软件
  3. 解决一个业务问题

2001年,年轻的Luke叔叔和Marc叔叔还在爱深折工作的时候,就遇到了这样一个情境:

  1. 英国农业部
  2. 一个新的农业税计算平台
  3. 处理全国各个粮仓收粮时候的退税问题

Luke叔叔和Marc叔叔青葱少年自然依恋设计师自由的明媚、追求设计理想,然而现实并不是这样,他俩被安排写了9个月文档。

第十个月,英国农业部宣布农业税的重要改革,他俩的工作变成了然并卵。

年轻气盛的二人觉得「再也不能这样过,再也不能这样活」,毅然决然离开了公司,追求新的设计方式。

反思

这就是那个时代的故事,每个流程上的人,辛辛苦苦完成的工作,最后因为一个变动而变得毫无意义,聪明的二人开始反思:作为设计师的我们该如何面对更快的变化呢?

他们的思考逻辑是:

  1. 为什么变化可以让我们做的变得毫无意义?因为我们做的事情都基于某个「不会变化的假设」:农业部的税收制度在一年内不会变化;
  2. 事实上这些假设「被打脸」的频率从一年变成了9个月,而且会越来越高;
  3. 这些假设还来自于内部,领导在让我们写文档的时候说:「同志们,放心吧,真的不会变,写吧」,我们假设领导是对的;
  4. 我们能不能避免假设呢?似乎不能没有,不假设,不打包票,谁会干活?
  5. 那么在不能避免假设的情况下,我们要做的是降低「假设带来的潜在伤害」。

这就是Luke和Marc所思考的:

设计一种流程尽可能降低假设带来的潜在伤害。

假设

你发现你生长在一个充满假设的世界里,他们说市场不会变、他们说他们要的东西一定会成功、他们说他们完全理解你的意思、他们说改了这一版不会再改了,呵呵,都是骗子。

事实上,你的项目里,市场一定会变、他们说的东西根本就是个玩笑、他们根本不懂也不在乎你说什么、他们改了一版还之后的二百版。

为什么要有需求冻结,没有需求冻结,被玩死的是你,但是很遗憾,有了需求冻结,被玩死的可能是你的公司。

需求优先级中有「总裁需求」这样的定义,私下里,他们把这样的需求标记为「呵呵」。像一副牌里打出8对王炸,我就炸了,你咋滴!你之前听到的所有假设和承诺,全都不作数。

事实上,真正的王炸,可能来自市场,如果市场变化期缩短到6个月,意味这你所有的研发行为从想法到运营的时间,必须在6个月以内甚至更短,我把这个叫做「王炸周期」。

因此在做软件规划的时候,你如何能够保证从想法到投入市场,短于6个月?

Inception的最核心含义在于:

如何规划一个从想法到运营时间短于「王炸周期」的软件项目?

8年以来,这个周期变得越来越短,在某些极端情况下,你可能只有6周时间。

对策

变化的周期越短,我们就越需要去除更多的假设,一个软件项目的假设有很多,他们包括:

  1. 买单的人知道我们在干什么、怎么干;
  2. 设计师和客户之间对于解决方案达成了一致;
  3. 可以实现;
  4. 可以在一定时间内实现;
  5. 有用户愿意使用我们的服务。
  6. 未来运营的人认同我们的方案并表示可以继续运营下去;

我们也许不能保证这些假设都能够成立,但是「一分也是爱」,能验证一个是一个。

验证这些假设也不容易,你怎么能保证买单的领导没有新的想法?大部分人的思路是:我要做一个尽可能完美的方案,让领导挑不出毛病。你错了,你在「憋大招」的同时,领导也在「憋大招」,意思是你自信满满打出「王炸」的时候,领导打出了8个。

你怎么保证你的设计交付团队就能完成?拍着胸脯说放心吧这个简单的技术骨干拍屁股走人之后,你就哭吧,这时候他们打出「对三」你都要不起。

你怎么保证你的用户会使用你的服务?你大概知道中国创业产品的生命周期平均不超过8个月,你花8个月做的产品,可能够在市场上死两回了。

那你该怎么办?

做小、多验证假设。

最有做得小、你才有时间进行验证,这便是Inception的逻辑,把大部分的时间花在验证假设上,而不在研发上。

过程

之前提到的6大假设正是Inception活动的精髓所在,它们是:

  1. 验证利益相关者的战略;
  2. 验证设计有效性;
  3. 验证方案可行性;
  4. 验证方案实现时间的合理性;
  5. 验证产品有效性;
  6. 验证产品可运营性。

传统方式中,这些假设的验证通常通过一系列活动打散在公司的决策过程中,例如总裁例会讨论决策、用户研究和设计由不同服务提供商完成、交付由IT或外包完成、最后交给产品运营团队完成。

而Inception则尝试用最短的时间(短至1周)完成以上的6大验证。最简单的一条Inception逻辑是:

这个过程充满着视觉化的工作坊,协助组织内的利益相关者进行互动,共同识别问题、设计方案:

设计流程也是快速而逐层演进的,而绝不使用一个完美的设计方案:

Inception不仅仅是业务和设计的整合,还包含技术,我们会根据设计梳理出完整的交付列表,请注意,这一切都只发生在一周之内:

当然我们也会注意用户测试,这样的用户测试可能主要来自于企业内部,测试内容主要在可用性、而不在产品策略,关于产品策略的验证,将有其他更具备精益特征的服务方式覆盖。

而Inception和敏捷软件交付的关系则是:

  1. Inception负责明确足够进入交付的工作量,并尽可能地去除这个工作量中的假设;
  2. 敏捷软件交付则基于这个「足够的设计」进行不断地迭代交付和设计、并进行测试和改进。

总结

话说回来,Luke叔叔和Marc叔叔就是我们引以为傲的Inception的创立者,10多年来这套方法帮助我们启动了超过200个软件交付项目,包括现在所说的服务设计,其中的逻辑并不出其左右,在这个基础上,我们又演进出来1天、3天、2周、4周、甚至8周的版本,根据不同项目情况进行定制,而核心逻辑一直没有变化,它们是:

  1. 我们认为软件交付需要拥抱变化;
  2. 假设越多、变化时候成本越大;
  3. 我们要尽可能消除6大假设,包括:决策者、业务需求与设计范围、技术实现、交付时间、产品有效、和可运营性;
  4. 我们通过做小来降低消除假设所带来的成本;
  5. 我们通过丰富的设计和沟通实践降低消除假设所带来的成本;
  6. 我们只计划和设计足够启动的体验,进入迭代式的交付过程。

到后来Marc叔叔写了一本《Agile Experience Design》的书,而Luke叔叔管理着ThoughtWorks在欧洲区的业务,遗憾地是,在2014年的一场车祸中丧生,请爱穿花衬衣的Luke叔叔放心,中国的小伙伴早已把薪火一代代传了下去,也要谢谢你。

07 Oct 08:28

不良编程文化

“这代码真垃圾”,当我们翻查一些代码寻找一个特别讨厌的bug时,同事大声这样说。“是吗”,我回答到。

像这样的谴责,以及其它一些类似的话,在办公室里经常会听到,而且频率在增加。而最令人不安的是,这代码并不是特别的糟糕。我这话是什么意思?不能把它们写的更好吗?当然!大多数的代码都有改善的空间——只要有足够的时间和资源。垃圾代码确实有,我们都看得见,而且都是我们自己写的,但这并不是问题。

问题是我们有一个不良的“这代码真垃圾”文化。

这是一种我感觉在web开发社区中越来越常见的文化。接着上面的例子,我请同事解释一下,解释为什么这代码很垃圾,我得不到一个直接的答复。

“这还不垃圾,你看这代码”,他回答说,那种趾高气扬我需要仰头才能看到他,紧邹的眉头就好象是说,如果不能看出这代码有多烂,那就是个傻子。结果你知道怎么着?我开始感觉有点傻了。我差点就忍不住开始跟着他一起嘲笑,认定这代码真的有多烂,多糟糕。

在我继续下面的内容之前,我发现上面的内容并没有在最好的光线下描绘我的同事。所以,让我弥补一下。他是个非常好的小伙。坦白的说,他是我见过的最和善的小伙之一。他友善,有一个他很爱的家庭,他跑马拉松,乐于助人,聪明,等等等等。还有一点要说明:他是一个经验不多的新手。他还在学一些基础的开发知识。这没什么好羞愧的,我们都经历过这个阶段。那么,为什么这样一个友善、聪明的小伙,在他参与的第一个大型web项目上,他的第一反应就是去指责一些代码很垃圾?——他甚至还没有真正的去理解它。

生活规律:垃圾往下倒。

这个问题并不单独出现在程序员新手中。很多精明人士都有这习惯。你也许是一个奇才,一个久经考验的程序员,但如果有这样一种习惯,整个团队和项目都会受到负面影响。因为新手们把你当作知识和经验的源泉。越多的人拥抱这种“这代码真垃圾”文化,这种文化就会越被认可,越成为模仿的对象。很快,程序员开始变的不是积极在项目上出力,而是去贬低别人在项目上的贡献。最大嘴、最反面的程序员很快就成了最受尊敬的人。所有人都受折磨,项目受影响,而一部分人却能能得到赞美,为倒是都是垃圾而感到心满意足。

我们应该怎么做?

没有人想显得愚蠢,没有人想自己的工作被认为劣质。一旦“这代码真垃圾”文化开始传播,唯一能确保自己在别人之上的办法就是贬低别人。最终,这变成了一种负能量,而不是想着去解决问题。

那么,对这样的一种特殊现象有什么解决方法?阻止它。不要不加思索的否定别人的代码——在没有原因、没有理解的情况下。有很多的方式可以处理那些看起来有问题的代码。如果发现代码中有异味,想办法改进它。从理解这些代码开始,在此基础上修正。如果你发现项目中有一些不良风气,不要跟随。如果有人对你说“这代码真垃圾”,问他为什么,然后了解查明,去做一些事情让它变的不垃圾。向最初写这些代码的人了解,也许他们这样写代码是有原因的。帮助他们,而不是诋毁他们。

下一次,当我发现从显示器里飘出可疑的异味时,我会转身问我的同事,“我们如何改进这段它?”因为,我们要面对它们,有时候代码会很垃圾,但这不意味着我们也去变成垃圾。

[英文原文:Code culture problem ]

# 来源:外刊IT评论


在微博上关注: 新浪, 腾讯   投稿

最新招聘

更多>>

07 Oct 03:10

Microsoft Connecting Nokia

by skin

旁观者总是这样,一开始总是期望有什么事情发生好看,待真的事情发生,又会叹息“真的变成这样了啊”,最后呵呵了之。今天微软(Microsoft)宣布以50多亿欧元的代价收购诺基亚(Nokia)手机业务及一干硬件资产、知识产权和团队。这岂不是许多人期望看到的一幕?一夜之间就成真了。

收购完成后后,诺基亚主要保留了NSN业务,不然不会在不久收购了诺西中西门子的全部股份,这块业务价值45亿美元。这种卖身的节奏与摩托罗拉出售给谷歌如出一辙:都是传统意义上的软件公司收购曾经如日中天的手机硬件巨头,所谓三十年河东三十年河西就是这样吧。如果我是芬兰人,一定会更桑心才对吧。

此次收购的两个关键人物,埃洛普和鲍尔默,一个是无间道亲手带着诺基亚走上绝路的人,一个是即将卸任shopping无压力的人,当他们签字画押之后,诺基亚将迎来新生命,而微软将面临巨大的消化难题。就好像微软搭台唱Windows Phone这出戏,结果只有诺基亚一个角到场,就算是把这个角给收买了,大戏还是出不来。

接下来,旁观者又会期望另一件叫人兴奋的事情发生:微软会步Google的后尘给诺基亚换身衣裳,再贴上个“这是我的”的标签吗?


#我的第一部诺基亚# Nokia 5110

07 Oct 02:47

基于python的开源游戏服务器端框架 Firefly 正式推出!

Firefly是免费、开源、稳定、快速扩展、能 “热更新”的分布式游戏服务器端框架,采用Python编写,基于Twisted框架开发。它包括了开发框架和数据库缓存服务等各种游戏服务器基础服务,节省大量游戏开发的工作时间,真正做到让使用者把精力放在游戏玩法逻辑上。用它可以搭建自定义的分布式架构,只需要修改相应的配置文件即可。

优势特性

采用单线程多进程架构,支持自定义的分布式架构;
方便的服务器扩展机制,可快速扩展服务器类型和数量;
与客户端采用TCP长连接,无需考虑粘包等问题;
封装数据缓存服务;
可实现实时热更新数据以及游戏逻辑,客户端玩家无感觉;
有几十个基础游戏玩法系统模块提供组装使用(v1.3.0提供);

框架介绍

management, firefly 是个多进程、分布式的游戏服务器。因此各游戏server(进程)的管理和扩展是firefly很重要的部分,框架通过抽象使服务器的扩展非常容易。

Network,客户端连接通信、server进程间的通信等构成了整个游戏框架的脉络,所有游戏流程都构建在这个脉络上。与客户端的通信采用的是请求/回应式的,所以受到的客户端的请求,服务端都会给出相应的回应,服务端也能主动的推送,广播给客户端消息。这些请求是基于指令号的请求。(例如定义101为登陆指令)server进程之间的通信时采用的异步回调的方式,这样就减少了的进程间通过网络通信中的时间消耗。

Data, 数据处理是网游的重要部分。在网游有大量的数据需要存储,需要更新,这使得数据库的读写效率成为服务器的最大的性能瓶颈。firefly的db处理能够将数据库表中的数据缓存到memcache中并能以对象的形式进行调用相应的对象方法对数据进行操作。可以在不同的进程中通过实例化相同的名称的缓存实例,得到同步的数据。并能将缓存对象中的数据写回数据库中。
框架思路
一个最基本的服务器就是一个在不停运行着的应用程序。在分布式游戏服务器中,我们需要的服务器具有的功能有,监听客户端的连接,监听其他服务进程的消息,连接其他的服务进程,有些需要有数据库连接和缓存服务。
net connect 做客户端连接,root监听其他服务进程消息,node连接其他服务进程,db数据库,cache缓存。是否需要监听客户端连接,是否监听其他服务进程消息等这是都是可以在config.json中进行配置。包括各个服务器的名称以及各个服务器之间的连接关系。这样就可以自定义出自己的分布式架构。

Firefly团队:我们或有不足,但我们不停努力!
Firefly官网: http://firefly.9miao.com
Firefly Github: https://github.com/9miao/firefly


在微博上关注: 新浪, 腾讯   投稿

最新招聘

更多>>

05 Oct 15:38

The Kazakhstan Pentagram explained

by Mickey Mellen

There’s been a lot of buzz online for the past few weeks about a huge mysterious pentagram that was found etched into the ground in the northern part of Kazakhstan.  Some had theorized that it may be a Russian military base or perhaps was the work of a satanic cult. It seems that we finally have an answer, and it’s not as exciting as some may have hoped.

pentagram

According to archaelogist Emma Usmanova (via NBC News), it’s simply “the outline of a park made in the form of a star”.

Ground-level photos of the park can be found on EnglishRussia.com and you can view it for yourself in Google Earth by loading this KML file.

The post The Kazakhstan Pentagram explained appeared first on Google Earth Blog.

12 Sep 15:12

The Google Earth Flight Simulator

by Mickey Mellen

When Google Earth was first released, one of the first thoughts that many users had was “wow, this could be an amazing tool for a flight simulator”.  With the the release of Google Earth 4.2 back in 2007, Google made their wish come true and added a flight simulator mode to Google Earth. To try it out for yourself, simply go to [Tools] –> [Enter Flight Simulator] and dive in!

flight-sim.jpg
Not long after it came out, Frank posted a list of tips and tricks for using the simulator, as it can be a bit tricky to get started.
  1. Start up the flight simulator as described above. I recommend you choose the SR-22 plane to start (it is a much slower plane than the F-16, and will help you learn the controls). Choose any airport, or just the default “Katmandu”. If you don’t have a joystick, you can’t select one. Next hit Start flight.
  2. You will see the HUD (Head Up Display) in green (click here for a guide to the HUD indicators). Make your window dimension roughly square (otherwise you may not see all of the HUD display elements).
  3. To get started, hold down the Page Up key briefly (this will add power to your plane). The throttle indicator is on the lower left (triangle should be at the top for full throttle).
  4. To control your direction on the ground, use the comma and period keys on your keyboard to apply left and right brakes. Just touch them briefly to change direction left and right.
  5. Important tip – mouse control – it’s best to use the mouse to control the plane (unless you have a joy stick). I wouldn’t bother with trying to fly with the keyboard. Simply click the mouse once in the center of the view and you should see your cursor change to a “+” sign. Don’t move your cursor outside the window or you will lose control! The mouse will only control your plane in the air, and if the cursor is inside the Google Earth window.
  6. Taking off – Once your plane is going faster down the runway, try moving the mouse back slightly from center. If you’re going fast enough you should take off. Remember: just make small motions with the mouse close to the center of the screen. Once you have the wings level, put the mouse in the center. A lot of first time fliers have a tendency to over correct.
  7. To make a turn – move the mouse slightly to the right or left and when your plane is tilted, pull back slightly. When you’ve made the turn you want, push the mouse back to the center then the other direction to tilt the plane back to level.
  8. Pausing – If you want to stop for a moment, simply hit the space key on the keyboard and it will pause the simulator. Hit space again to resume.
  9. Start higher – Position your view in Google Earth in the normal mode so you are at least 30,000 feet above ground. Tilt your view so you are looking at the horizon. Then restart the flight simulator mode (use Tools->Enter Flight Simulator…, or the keyboard shortcut CTRL-ALT-A) so you can choose what plane to use, and other options. Choose Select your start position->Current view in the window, and then choose Start flight. You should add power by hitting the Page Up key after starting it up. Now you can practice flying a while before you hit the ground!
  10. Landing – it is possible to land the plane. But, I’ll leave that for advanced tutorials.

Your other great option for flight in Google Earth is Xavier Tassin’s amazing GE Flight Simulator site, powered by the Google Earth Plugin. It’s quite an amazing site with dozens of aircraft to choose from (including paragliders and hot air balloons), real-time weather, and live multi-player (see other users flying around near you).

GEFS
It also has a creative multimonitor mode, for those of you with more than one screen that are looking for a more immersive experience. You can try it yourself right now at gefs-online.com.

The post The Google Earth Flight Simulator appeared first on Google Earth Blog.

16 Aug 14:21

2013年的技术趋势 — ThoughtWorks技术雷达阅读笔记

by 我是胡凯

边界正在变的更加模糊,传统上办公室是工作发生的地方,我们需要内部网络来登陆邮件系统,访问公司的知识库,利用电话会议系统和处于世界各地的同事交流。随着移动设备的普及,网络速度的提升以及越来越多的内部系统被迁移到同时提供外部访问的云平台上,工作正在从办公室扩展到生活的每一处,在出租车上,我们用手机阅读和回复邮件;在机场,我们使用Goto Meeting来和各地的同事举行电话会议;在客户现场,我们用手机访问Jive。新技术正在让工作变的更加方便,同时它也对企业提出了挑战:

  • TechOps如何快速的购买,安装,跟踪和远程管理这些设备?
  • 如何保护移动设备上的数据?如何在移动设备丢失时抹去这些数据?
  • 如何阻止恶意软件被无意的安装到这些设备上?

再看软件开发,传统上,需求纪录在内部的Jira上,代码被提交到公司内部的服务器上,测试人员利用公司的内部环境进行测试,再由运营人员安装到公司内部或者外部机房的服务器上,所有的工作都需要到办公室或者在虚拟内部网络上工作。现在我们使用SaaS的Mingle,把代码提交到Github Enterprise的仓库里,用Snap-CI进行持续集成,测试人员用一条命令在Amazon Virtual Private Cloud 上搭建出整套测试环境,运营人员最终把产品发布到同样处在Amazon上的云环境里。开发团队可以在任何地点进行全部的工作。除此之外一些有趣的工具比如,cloud9ide 和 screenhero 也开始进入大众的视野。

地理的边界也正在消失,随着网络带宽的提升和越来越多视频解决方案的出现,无间断视频正在把地理上分离的两地紧密的连接起来:

(参考去年8月CSDN上发表的建设分布式敏捷团队经验分享)

技术间的相互借鉴正在加剧,在服务器端,采用log4j采集日志再利用Logstash或者Graylog对日志分析是很普遍的技术实践,目前前端开发也在采用这一实践,rescuejs, getsentry, log4javascript 都是把前端错误纪录下来发向后端进行后续分析的平台和框架。

从头手写css的时代结束了,SASS,  LESS正在变的越来越流行,对象间的关系终于被借鉴到了css的领域,后端开发人员进行前端开发的难度进一步降低。

随着混合了Web页面的开发方式的流行以及TestFlightHockeyApp这样测试平台的出现,持续交付在移动领域的门槛变的更低,考虑到持续交付是一个从需求,开发,测试、部署、使用、反馈的流程,目前在测试方面,移动开发测试的成熟度离web开发还有一段距离,用户使用移动设备的方式更多,网络的状况更加复杂,单进程系统都让测试不能很好的覆盖所有场景,这也是接下来需要努力的方向。

5年前,在开发ThoughtWorks Go时,如果进行持续交付就必须对应用中的XML数据进行频繁的迁移,使它的格式与应用匹配,当时采取的策略是在应用启动时检测版本再寻找响应的xslt和java代码对目标文本进行迁移,这是把ruby社区的dbMigration迁移到java社区的一次尝试。随着NoSQL数据库的流行,一定会有类似的框架出现指导开发者采用最佳实践。

数据分析,用户正在生成更多的数据,分析家认为最近两年生成的数据占人类有史以来生成所有数据的90%。我们需要模式、技术选型来指导我们处理这些数据:

数据分析也会走出研究室,其中的专业术语和基本技能变成开发人员的一项必备技能。可以类比的是数据库技术,无庸置疑,程序员的数据库知识和DBA相距甚远,但所掌握的基础知识和术语让开发人员可以更方面的和DBA合作开展工作。未来一定会有数据分析专家加入团队,就像昔日的DBA和前端开发,数据分析也会卸去神秘的面纱被更多的人所掌握。

同时在应用设计的过程中,我们几乎要在第一时间考虑要记录哪些数据、如何记录以使数据对分析友好,它表明数据分析慢慢变成了应用设计的一等公民。

随着持续交付概念的流行,基础设施的管理正在变的愈加成熟,puppet开始支持windows平台,chef也不甘示弱,多年以后,微软社区终于出现了包管理器chocolatey ,Amazon向下游延伸,推出了OpsWork 方便Ops管理自家云平台上的节点。在应用层面越来越多的象 pkgr 的工具把应用也作为系统的一种依赖来进行管理。

在持续交付领域,Monitor Driven Deployment也开始出现,通过在产品环境上的一组测试,在部署和产品运行的过程中不断的检测产品是否正常。

除了这些,一些有趣的架构比如LMAX, microservice + microsite都开始让人觉得技术世界正在变的更加敏捷和激动人心。

参考:

ThoughtWorks技术雷达

 

16 Aug 12:28

学你妹的计算机!

by 王 聪

看了最近的新闻,心情久久不能平静……自己看吧,不多说了,说多了都是泪!我就想问:现在蓝翔技校还招人吗?

来自:http://www.zhihu.com/question/19684217/answer/17977765


来自:http://hzdaily.hangzhou.com.cn/dskb/html/2013-08/01/content_1547781.htm

来自新浪微博

06 Aug 12:03

外面的世界

by donglu
Haisheng HU

我也在非典那年毕业。

proxy

——这是1999年的新生运动会,左边是我在跑完400米接力后在场边查看分数;右边那张老照片,男孩倚着的宣传板,清晰可见的“新闻系”是当时在宣传部的我写的,但是那张画其实我已经不记得是谁画的了。

“外面的世界很精彩/外面的世界很无奈/当你觉得外面的世界很无奈/我还在这里耐心地等着你”。

毕业10年内的同学聚会上,所有人都说,当初来念书很不情愿,因为大家由于这样那样的原因都考砸了,师姐说他们班95%都是从北大清华掉下来的。我更是在见到学校第一眼就跟我爸闹着说不念了。有人说“大学四年就谈了场恋爱,别的什么也没干”,我觉得这是很赞的事。而我,似乎做了很多事,但在记忆里又淡的很,也不知道在大家出去玩儿、恋爱、打架的时候我都在干嘛。

这么说似乎也不客观,我其实也有坐在教室里好好听课;也有在早上第一节课的时候,坐在第一排用手都托不住快掉下来的瞌睡的脑袋;也有在考试前在走廊灯光下、宿舍应急灯下临时抱佛脚——理科生们不要效仿,临时抱佛脚是文科生的专利;也有在军训时趁脚崴了,在广播室里偷懒了快一个礼拜;也有想要去校广播站做主持人临面试时打了退堂鼓;也有很用功地半夜给系刊排版;也有带了系里的宣传部,学校的红十字会,那个红十字会,呃,我有1000多个会员呢,那会儿郭美美估计还在读初中;也有在宿舍掀起的一轮轮减肥热潮中,半夜去操场跑步……其实,是做了很多事情。

但是那时候的我,更向往的是外面的世界。这就是所谓的好奇心旺盛,啥事儿都三分钟热度,直奔各种新鲜感而去。我更热衷的是,去看校园围墙外的精彩世界。我去帮人做调查问卷,在这过程中,碰到了导演郑晓龙;我去帮人卖洗衣机,在这过程中,了解了大家电的销售渠道;我去能去的报社杂志社实习,在这过程中,见到了更广阔的世界。我当时并未像其他同学一样,在为前途忧心,什么找工作、什么考研、什么出国读书……对于我来说,这些从未经过我的大脑,我其实玩儿挺高兴,一高兴就把什么都忘了。

再加上,毕业那年非典盛行,连毕业典礼似乎都没有,连论文答辩都没被抽中,直到现在我都觉得我那个92分的优秀论文来路不明。5月的一天,我在杂志社刚完成了一篇关于非典的报道,采访了钟南山,关书之后,觉得熬了这几天有点累,于是想回学校休息一下,但是,刚回学校,就被关在里面再不能出来了,有两个月的时间,我们都在荒废光阴。

早上起床去食堂啃个沾了腐乳的馒头,就打着写论文的旗号去学校计算机中心,开始上网,上各种论坛和人吵架、辩论,我当时还是西祠某版的版主——也许现在还是,美名其曰活跃班内气氛,中午午休过后,还是忍不住要逃离蒸笼一样的宿舍,到计算机室去吹冷气,计算机室超级火爆,去得晚就得第二天再去虚度光阴,很多人在被关的那段时间,发展了阶级友情和阶级爱情,滋生了一对对的情侣,到了傍晚的时候,操场上,树丛里,总是一对对的。而我就happy地和同样被关的本系的同学,去——去喝酒了……。我记得那时候有一个老师总跟我们一起喝,直到某天我们把他灌倒了。

从学校铁门里被放出来的时候,拿着一纸毕业书,写稿来的3000多元稿费,不知道干嘛。因为非典,我那早早签了的三方协议,作废了,因为留京指标被卡了。我没有租房子、没有找工作、没有在等考研结果、当然也没有准备出国。现在想想,那真的是一段灰色的岁月,但当时的我毫不察觉,迟钝的孩子总是意识不到处境艰难,而且本着报喜不报忧的宗旨,家里人从来也不知道我的状况。好在很快我就找到了工作,一位离京的同学把她的房子转租给了我,于是乎,我就在这座城市待了下来,一待就是14年。

那肯定不是一个标准的大学生活。但凡事哪儿都会有标准呢?如果再重来一次呢?那么在懂事了的我,在知道别人如何度过大学时光的我,在看过了外面的精彩世界的我,现在要选的话,我一定会说:请让我再重来一次大学生活,再重来一次高中生活,……我一定在该恋爱的时候恋爱,在该打架的时候打架。

文/lulu
2013年7月17日

11 Jul 16:29

听小三讲美国

前几天跟出国留学两年不见的舍友吃个饭聊个天,带来一手美国感受,长点见识,记录一下。同学名曰三鲜,下面亲切地称之为小三。

环境

美国可居住面积比中国大1/3,人口却只有中国的不到1/4,人口密度很小,可以容得下每户自己盖栋别墅。美国是汽车国家,中产以上都在郊外住别墅型的房子,开车上班,穷人/学生等在市区里住公寓型房子。

市区里的房子也不多,小三住的区域里的房子最高3层,每层一户,一户三四个房,租金折成人民币比北上广贵一点,没贵很多。美国人对蟑螂之类的bug很敏感,只要出现bug就可以告房东退房租,房东也怕这样的情况出现,都会找杀虫公司杀虫。不过我看《纸牌屋》里的女主角房子里连蜘蛛都有,估计因为她住的是贫民窟。

听小三说美国乡村城市发展比较平均,他住的地方是农村,但跟我们农村的概念不一样,设施都有,不会破旧,而最豪华的纽约时代广场也只是跟广州市中心差不多,繁华的地方跟中国差别不大,落后的地方差别才大。

大街上一般很少人,可能因为同学的那里不是城市,到晚上大街更是一个人都没有,小三表示晚上从不出门,逛商场之类的娱乐活动似乎只可能出现在周末。

物价

美国有的东西贵有的东西便宜,跟国内差别略大。

食物物价上肉很便宜菜很贵,一大碗肉跟一颗白菜价格一样,粗略估计是因为美国人喜欢吃肉,肉多菜少导致价格这样。

汽车很便宜,不然怎么能人手一汽车呢,顶级豪华车也就4W美刀,宝马3W,同学买的只开过几天的二手车1W.似乎停车位挺多,不用怎么给停车费,油费也比国内便宜,养个车也不怎么花钱。

人工的费用很贵,机器的费用很便宜,跟国内对比,例如车坏了去4S店修换个零件,国内会说零件950块人工50块,国外会说零件50块人工950块。因为人工贵,所有商场什么的能用机器代替的就用机器代替了,沃尔玛只有一个收银员,其他都是自动收银机,麦当劳/银行之类的也很少员工。因为这个机器化程度高,也导致美国失业问题有点严重。

医疗非常贵,贵到离谱,商业保险一定要买,但什么商业保险都不能保全部的医疗费,只有一小部分,不买商业保险没法看病。商业保险也很贵,有的要上千美刀一个月,最低的也要一百美刀,一百美刀只能保证能看到病而已。小三说一同学滑雪骨折,直接直升飞机过来接送治疗了,但到最后医疗费要25W美刀。听起来看病问题在美国比中国严重得多,不知是不是小三没有了解清楚,他是在美国从没生病。

生活

小三表示留学生活很无聊,每天就是上课下课上网睡觉。没有什么娱乐活动,偶尔一两次参加party感觉很无聊,没法进入那种真正high的party。小三说如果定居美国,一辈子也不会有朋友,融不进美国人的圈子,你的儿子会有,但你不会有。

公共交通没什么人用,几乎大家都自己开车。所以美国人用手机的场景跟中国不一样,不会有地铁公车玩手机的机会。

很多美国人很迷twitter, facebook,聚会上也是各人不停玩手机,没传说中的健谈。

文化

美国人对体感的追求很高,xbox这类体感游戏到处可见,极受欢迎。用电脑玩游戏一定要用手柄,就算玩CS也一样,对键盘鼠标无感,对网游鼠标点点厮杀不是很热衷,对手柄xbox这类能直接带来操纵快感的游戏感冒。会不断创造出与现实结合可以让人玩弄到的东西,小三带了sphero这个感应球给我体验,配合iPad上的各种应用可以玩出不同的花样,很有意思。

中产阶级在美国占到百分之六七十,这些人的小孩物质上无忧无虑,所以若非真正对专业感兴趣,对自己进修有追求,是不会去读研究生混文凭的,不想读书的人在大学本科就结束学业了,读硕士的美国人都是真心想读的,所以小三碰到的美国研究生同学都很强,无论是理论知识还是动手能力,勤奋程度跟中国学生有一拼,可能是真正热情所在吧,不知是不是个例。

没有在美国生活的人,仅凭网上媒体电影书籍对美国的描述,没法真正了解美国人的生活,没法了解他们想要什么,中国的互联网公司就能难做到美国市场的生意。互联网行业的人看起来视野开阔,做产品都放眼全球,但实际上视野很窄,信息都是网上媒体来的,媒体靠谱的不多。

种族

最后小三说了一次坐长途大巴去旅游,车上全是黑人,然后他以后都不想坐大巴去旅游了,他说不是种族歧视,只是想象下一直坐在你旁边的人身材是你两倍大小,就算是普通人都觉得怪怪的,何况是肤色差别很大的人。想想也是。我小时候不理解为什么会有种族歧视这样的事情,人人平等的观念在我看来普及起来应该完全不会有难度,这种天真的想法是因为我一直生活在一个没有多种族的地区里,不知道那样的感觉和情况是怎样。要跟自己体形肤色差别很大的从天性上的排斥到理性和平共处需要很艰难的一段时期,但这样的时间总会过去的,各种歧视最终都会消失回归到人人平等,包括对同性恋的歧视,在我看来同性恋显然是合理且不应该被歧视和反对的,只是这跟小时候觉得种族人人平等理所当然一样,没有真正接触不知道这期间的困难,但相信这是趋势,最终所有人都会支持,如同消灭种族歧视一样。

# 来源:bang's blog


在微博上关注: 新浪, 腾讯   投稿

最新招聘

更多>>

05 Jul 17:30

《神秘的程序员》漫画四周年

by virushuo

到这个月,《神秘的程序员》漫画已经诞生了四年。我和西乔互相谦让了一番之后,写一篇纪念文章的任务最终还是落在了我的身上。

2009年6月,我们还生活在北京,在那个月的月初,我们结了婚。婚礼之后,有一天我们发生了一段很好玩的对话,这段对话又囧又好玩,在我们哈哈大笑时,我突然想到是不是能改变成漫画,毕竟,程序员是一个有点特别的职业,这些人既傲慢又谦虚,既开放又封闭,对于和他们合作的其他行业,他们都显得神秘而难以理解,而他们自己的大量经验、教训和知识很难分享给别人,尽管这些往往是对的,但和他们合作的人以及管理层通常对此无动于衷。关于程序员、项目管理和工程的书汗牛充栋,但漫画几乎没有,甚至在英文世界这也几乎是空白。我们都意识到了这是一件值得尝试的事情,但在那个时候,西乔几乎没正式画过漫画,大概也从来没想到过竟然可以把一部漫画连载了四年之久。这部漫画和我们的两只猫咪(推特和翻墙)一样,是我们这四年生活中少有的一直陪伴我们的生命。

那天的对话,最后成了这部漫画的第一期,贴在了西乔的blog上,那一天是6月14日,距离我们的婚礼过去了10天。今天回头看来,那一期无论是人物对白还是形象都如此的粗糙和不成熟。转天她兴趣大发,又画出了第二期,同样贴在blog上。在同一个月,Google被封,于是有了第三期。这个时候,我们只有一个小的非凡数位板,为了画的更爽点,我们从当时的邻居口袋家借了一个影拓3来用。当时我们也没太认真思考这部漫画的未来,只是尽量把周围有意思或值得一提的故事表现出来。多谢我们的朋友,时任CSDN副总裁的韩磊,他把这部漫画转给了《程序员》杂志,让这部漫画得以成为杂志的一个栏目。成了固定的栏目之后,创作周期就不再像过去那样随心所欲,这种压力和动力倒是保证了漫画一直存在到了今天。

随着这部漫画的读者范围扩大,我们也一直尝试让它传达更多的意义,内容也就不仅局限在单纯好玩的故事。我们开始用它来表现项目管理,常见的陷阱,公司困境,以及一些感情生活。我们希望更多和程序员打交道的非程序员也愿意看这部漫画,并且希望通过漫画帮助程序员传达他们想说的。对于有几年实际项目经验的人,如果从头看一遍这部漫画,你会发现几乎所有的事情都在你身边发生过。这绝不偶然,漫画所用的题材多数都是取材于真实案例,就算是少数来自计算机工程经典书籍的,也是我们自己目睹或经历过的故事。我从高三时开始帮别人做项目,一直到现在始终都在和项目与技术团队打交道,西乔从大学时代开始帮别人做外包,至今也经历了很多大项目。不夸张的说,除了那些简单好笑的,大部分漫画的背后都是真实的血泪和金钱。

西乔是一个有毅力又喜欢创新的人,她一直试图尝试更多的表现形式,把这四年的漫画放在一起,你会看到很多不同的分格和排版方式,甚至还有一期尝试过利用众包获得内容,最后做成了强手棋的样子,这些都让漫画变得更有趣味,这些创新一直到最近仍然在发生,比如,最近她画过两期科幻故事,如果你认真看,会看到Spock和Kirk船长出现在漫画中的屏幕上。这样的彩蛋小趣味有很多,比如,在谈论一段充满补丁的代码时,我们节选了网上著名的恶搞Windows泄漏代码,在谈论早就改修改的代码时,做为BSD粉和GNU黑,我干脆直接从linux kernel里面找了一段丢给西乔做背景用,你还能看到当年风靡一时的LEGO MindStorm机器人,当年我们的朋友Tinyfool就买过一个,一度沉迷其中,还会看到西乔画的我曾经疯狂的挖Bitcoin......还有很多很多,我相信一定有一些读者看到这些时会心一笑,就像读到了那句著名的"所有的进程都是平等的,但有一些比其他更加平等。"

这部漫画本身也采用了工程的方法创作,所谓工程的方法,就是放大团队的优势,隐藏团队的弱势,分阶段进行。西乔采用了一种粗糙的画法,并使之成为了一种符合程序员和黑客文化的简单风格,就漫画本身来说,画法粗糙是弱势,但在黑客的文化背景下,这个弱项反而变成了优势。和软件工程一样,任何一个团队资源都是有限的,你不可能获得一个在各方面都完美的团队,如果你真的获得了,那么管理本身通常又不能匹配这样的明星团队从而变成弱势。如何利用有限的资源完成目标就成了工程管理的艺术,而当这个资源有限的团队长大之后,这些就成了公司的基因。接受资源的限制和世界的不完美,才能让项目持续和成长,这是我们在漫画中通过各种故事告诉大家的,也是这部漫画今天能够存在和发展的基础。

当然,我们也有很多遗憾,最遗憾的莫过于一直没能开始新媒体和跨媒体的尝试。在这么多年的时间里面,这部漫画始终就停留在了blog上的画稿和杂志上的印刷品,我们几次想尝试新媒体,但都因为时间和精力关系没能实现。除了漫画,我们希望把创作的背景故事重新写出来,放进app和网站中,而整理这些旧事又是一个巨大的工程,一直难以开始。无论如何,这会是我们下面一年努力的事情,希望能尽快让这部漫画在更多的载体上和大家见面。

所有的荣誉应该归功于西乔,虽然主意是我出的,但一直坚持画了四年之久的是她,这是了不起的毅力,我看着她在每一个截稿日之前的痛苦和彻夜难眠(主要是拖延症造成的),这些让这部漫画对我们来说尤其真实,所以之前我说了,对于我们来说,这部漫画是一个生命。 最后,感谢一直帮助和支持这部漫画的朋友们,感谢韩磊,刘江,李骏(Soulhacker),余晟(Yurii),冯大辉(Fenng),高春辉,李亮(Holly/Opensky2)...感谢你们提供的建议和帮助,最要感谢的还是漫画的读者们,是你们让这部漫画有了存在下去的意义。


2013年6月30日凌晨于上海
27 Jun 04:14

Only clear skies on Google Maps and Earth

by Lat Long

To celebrate the sunny days of summer (in the northern hemisphere at least), we're unveiling new satellite imagery for all Google mapping products today. This stunning new imagery of the earth from space virtually eliminates clouds, includes refreshed imagery for regions of the world where high-resolution imagery is not yet available, and offers a more comprehensive and accurate view of the texture of our planet's landscape.
The new, even more beautiful global view in Maps and Earth.

In 2002 NASA released the Blue Marble, a global image of the earth with a resolution of one kilometer per pixel, based on data from NASA’s MODIS instrument. Updated in 2005 to twice the resolution, it has remained the canonical globally-uniform picture of the earth for over a decade.

With the Blue Marble as inspiration, we used Google Earth Engine technology to mine hundreds of terabytes of data from the USGS’s and NASA’s Landsat 7 satellite. The result is a seamless, globally-consistent image of the entire planet with a resolution of 15 meters per pixel, far finer than is possible with MODIS data alone.

To get a feel for the difference, here’s a comparison of the Grand Canyon, first from the Blue Marble Next Generation (courtesy NASA’s Earth Observatory), and then in our new Landsat-based imagery.
The Grand Canyon, as seen by MODIS and by Landsat 7.

The Landsat 7 satellite suffered a hardware failure early in its life that introduced striped artifacts into all of its images. By analyzing a large number of images we were able to virtually eliminate these stripes, as well as clouds and other atmospheric effects. The process was very similar to how we produced the global time-lapse imagery of the earth that we released last month.

Castellón, Spain: One example Landsat 7 image, and the final combined image.

The resulting 800,000 megapixel global image is so big that if you wanted to print it at a standard resolution of 300 dots per inch you would need a piece of paper the size of a city block!
Northwestern South America: before and after.

Mining data from a large number of Landsat images of each area allowed us to reconstruct cloud-free imagery even in tropical regions that are always at least partly cloudy.

Central Papua, Indonesia: before and after.

We prioritized recent data when it was available, so this update also includes refreshed imagery in many regions of the world, especially in areas where high-resolution imagery is not available, including parts of Russia, Indonesia, and central Africa.

Agricultural expansion in Saudi Arabia: before and after.

This new picture of the earth also reveals the texture of the landscape with greater clarity than ever before.

Continuing deforestation in Brazil: before and after.

We're proud of the progress we have made, but there is always room to keep improving. For example, although we have tried to minimize the impact of the stripe artifacts in the Landsat 7 images, they are still visible in some areas. There is more good news though: the new Landsat 8 satellite, launched earlier this year, promises to capture even more beautiful and up-to-date imagery in the months and years ahead.

Mongolia and surrounds, before and after.

You can see our new satellite imagery by going to Google Maps and turning on satellite view, or by launching Google Earth, and zooming out. Have fun exploring!


Posted by Matt Hancher, Tech Lead, Google Earth Engine
21 Jun 15:32

原生应用 vs HTML 5

这几个月都在开发知乎日报的后端,让我对移动应用的开发有了更多的认识。

简单来说,我以前一直都认为原生应用才是王道,现在则觉得 HTML 5 才是未来。

不可否认的是,原生应用更快,能使用更完整的 API,但它有个致命的缺点——升级太麻烦。

举例来说,我们筛选出下个版本需要实现的功能,很快就能做出其中的一部分让内测人员体验。而等我们全部做完,已经过去一周多了。然后提交苹果审核,又要等一周。再等个良辰吉日发布,就过去 20 天了。
扯淡的是这期间 iOS 7 测试版发布了,然后各种原生控件都有问题。
与此同时,我们又做出了更多功能,调整了多处细节,还修复了几个 bug——但用户只能再等几十天才能体验到了。
而且还有的用户就是不升级。虽说我能强制要求用户升级,但这毕竟影响用户体验。
更让我不爽的是,新版本可能要使用不同的 API,于是服务器端要维护多个 API 版本;甚至还因为 iOS 和 Android 各自有不同的限制,导致 API 要做出各种妥协。而我把数据都放在了 Redis 里的,每个 API 版本都可能要生成不同的数据,于是得占用几倍的内存…
而在开发网站时,一个功能做好了就能上线,一天更新几十次毫无压力。如果客户端只是个浏览器,那一切都会变得很简单。

再来回顾一下原生应用的优势。
 

  • 性能好。
    从最新的测试来看,C gcc : Java 7 : JavaScript V8 在单核 x86 CPU 上的速度比约为 3 : 2 : 1。JavaScript V8 可是和 Go 一样快哦,我好像还没看到有抱怨 Go 慢的。
    没记错的话,在 1、2 年前,JavaScript V8 可是比 C 慢 20 倍的;甚至在一个月前,还是 4 : 1 的样子。因此你可以期待它更快。
    当然,手机大多用的是 ARM,不一定有 x86 的性能。而除了 V8,还有各种 JavaScript 引擎,例如 iOS 的 Nitro。甚至 V8 自己都在频繁更新,至少最新版本比 2 年前快了 6 倍。而手机上除了升级系统版本,不可能频繁更新 JavaScript 引擎。

    此外,JavaScript 是单线程的,但是 JavaScript 引擎在处理 IO 时,还是能通过多线程的方式利用到多核。当然也不排除 JavaScript 未来能直接利用多核,只是目前还有很多依赖 JavaScript 单线程特性的地方,因此设计起来会比较麻烦。
  • API 更完整。
    HTML 5 为了可移植性,只能定义通用的 API,所以必定会牺牲很多独有的功能。
    不过只要 HTML 5 还是未来的发展方向,那么能支持的 API 肯定会越来越多的。或者自己做个代理层,转发调用原生接口。
    而转向 HTML 5,就意味着得放弃很多开源的原生解决方案,慢慢用 HTML 5 去取代。
    总之,办法是有的,只是时间问题。

不过时间问题就是最大的问题,至少我几年内都不想再开发新的移动客户端产品了。

顺便再指出,JavaScript 语言本身还有不少缺点,而 CoffeeScript 也不能解决,我随便列举几个:

  1. 弱类型。例如 [] + {} 的结果是 "[object Object]",{} + [] 的结果是 0。不要问我为什么,我也不知道。
  2. 不区分整数和浮点数。整数溢出后就变成浮点数了,再加上它是弱类型,还能变成字符串。
  3. JavaScript 的 object 不如 Python 的 hash 好用。遍历麻烦就不说了,毕竟还能用 CoffeeScript,关键是 key 只能是字符串。如果拿一个对象作为 key,这个 key 就变成了 "[object Object]"。
  4. 还有些不是 JavaScript 语言本身的问题,而是 DOM API 的设计问题。例如 element.removeEventListener() 必须要传递 listener 函数,不能直接清空一个或所有类型;于是想要注入时,就拿那些匿名函数没辙了。


也别梦想 HTML 5 能直接兼容各种平台,只是平台相关的代码写得少些而已。

总之,我很看好 HTML 5,只是目前仍然太早。过渡期的解决办法就是混合使用(即在性能和体验可接受的情况下,用 Web 页面来做展示),然后等时机成熟,再用 HTML 5 替换原生代码。

# 来源:keakon的涂鸦馆


在微博上关注: 新浪, 腾讯   投稿

最新招聘

更多>>

18 Jun 13:52

Backupify Migrator Migrates Your Gmail Data to Another Account

by Adam Dachis

Backupify Migrator Migrates Your Gmail Data to Another AccountPreviously mentionedBackupify Migrator—the tool that transfers one Google Apps account to another—can now move Gmail accounts as well. If you ever want in or out of Google Apps or need to migrate your Gmail account to a different one, now you can. Details here.

Read more...

    


16 Jun 17:00

外行逼死内行

昨天和一个朋友讨论点医学问题,他说,现在医生最怕的就是你这种病人。依从度最差,而且还容易闹出纠纷来。我说哪儿的话啊,我要质疑医生,除非是另一个医生对同一病例做出了不同判断。我自己的话最多问问。毕竟有点医学常识,知道自己的斤两。要糊弄外行还行,和专业医生比是没得比的。他说每天病人那么多,鬼才有空给你慢慢解释呢。

回去想想,外行逼死内行的事情其实不限于医生。做程序员也是如此。现在弄QQ,用wps和office,我已经弄不过老婆了。电脑杀毒也很久没做了,幸好她一直用360。流氓是流氓了点,反正弄不到我头上就行。有的时候她感慨,真不知道你是不是做程序员的,要用的时候什么忙都帮不上。幸好,关于最后这点,在她写论文的时候,我花半个小时帮她写了一套数据和模拟计算程序,证明了自己的清白。

有的时候,一个朋友知道我在做程序员,于是打电话过来,咨询一些问题或者请我帮忙做点事情。当然,他们本身可能出于好意,同时也可以解决他们自己的问题。但是往往这些问题就让我哭笑不得。QQ被盗了怎么寻回啊。有人给他们发消息说网银被盗请赶紧往安全账号里汇款啊。做一个网站要多少时间多少钱啊。别人帮我们做了网站现在这人跑了怎么办啊。我这里有很多数据打算做大数据分析啊。诸如此类。

当然,里面有很多问题其实也是比较靠谱的。网银被盗那个,其实当事人也知道多半假的。但是不找个专家问问就是不安心。可是您不能直接问银行么?

问QQ被盗就不是很靠谱了。QQ被盗肯定是找腾讯啊,我长的很像企鹅还是怎么着?还有什么台式机坏掉的,支付宝可以登录但不能付钱的。谁给你提供服务你找谁,我不是他们的客服。你的问题就算到我这里,我还得找他们的客服。目前为止,网站什么的有问题,找我找对了的,就那么一例。因为那个问题是找不到网站客服。剩下统统是回掉问题,或者回不掉就帮他们打对方客服。

至于做网站的,倒是还对路。虽然我不完全是做网站的,不过网站至少还会做。不过你至少和我说一下,这个网站大概什么目标,要做多少规模。我大概给你估一下要多少人,大概多久,会花多少钱,什么一个章程。你光冲上来和我说,要做个网站,把上家的货卖给下家,大概要多少?我哪里知道啊。更神奇的是,居然还有人能根据他这样子的描述写成了,而且那人应该还是个新手。我大概看了一下,处理和钱有关的问题居然用的是myIASM。想想还是别说了,人家本来就对我不是很满意。罗嗦个一堆,事情还没给办成。

至于大数据分析就更搞笑了。一个学校的后辈跑过来说,我这里数据挺多,打算做大数据分析。我说多少。1000多W条呢。数据大小呢。好几十个G呢。我算了算预计计算时间,16小时。行了,您有空跑我这里讲需求,回去把电脑开着,一天就出来了。

偏偏就这个样子,还是有人当我专家,然后跑过来问各种各样问题。其实了解的越多,心里越有数。自己算哪门子的专家呢?反正首先肯定不是修电脑专家——偏偏还是修电脑的问题最多。其次,要说低成本程序开发,自己也算不上——我写程序的成本可不低。对大多数人来说,我唯一能做的是在特定领域里面帮你解决新手解决不了的问题——这里面大多数问题是外行无法理解,甚至都没听说过的。所以这注定了你找我唯一正确的理由是让我帮你介绍个合适的圈内人。

即便如此,在面对新手的时候,往往也底气不是很足。某朋友曾经show过一行代码,说是公司里设计师教的。我看了,确实也不知道可以这么写。有的时候新手兴冲冲的上来问个问题,顿时我就茫然了。或者皱皱眉头,好大的一坨东西。然后新手不管三七二十一就写。后面多半没了声音。但是也经常有就写成了的。看看实现,问题一大堆。但是能工作,确实能工作。透过时光,仿佛看到10多年前的自己写的代码。罗嗦,冗长,但是却实实在在的在工作,让我兴奋不已,并且把我带进了电脑的世界。

也许这堆新人里,有人可以也坚持个10年,并且成为其他人眼里的专家。然后苦恼于后浪追前浪的问题上吧。

# 来源:shell's home


在微博上关注: 新浪, 腾讯   投稿

最新招聘

更多>>

22 May 09:51

雅虎斥资11亿美元收购博客服务Tumblr

Haisheng HU

又有个互联网服务要沉。

路透旧金山/纽约5月20日 - 雅虎将以11亿美元现金,收购博客服务Tumblr,取得该公司急需的社群媒体平台,让服务扩及更年轻的世代,为雅虎品牌注入新活力。