解决RSS输出时的编码问题

最近发现blog的RSS输出有问题,出现如下报错

This page contains the following errors:

error on line 34 at column 291: Input is not proper UTF-8, indicate encoding !

这是在post editor录入文章时,引入了不合理的字符,有时候因为隐藏而不容易发现
简单的解决方法就是找到出错行,然后讲html信息剪贴到notepad中查看特殊符号,删除后再帖回post editor中
那么如何定位到哪行出错?推荐这个工具:http://validator.w3.org/feed/

快速定位并修改,解决RSS输出时的编码问题

吃货在澳门

计划好久的澳门之行终于完成,本来计划在威尼斯人住一夜,但实在岁末年关资金吃紧,只得行程压缩在一天,尽可能多走一些地方多吃一些美食,希望再有机会去弥补遗憾,另外网络上很多关于澳门吃的攻略,尤其是什么100文澳门,我只能说,物价飞涨,大家也要与时俱进,我们到澳门的第一餐就吃了100文,这趟下来不算手信两个人1000人民币,另外作为在港澳旅行的一个常识,就是人民币=港币=澳币,所以出发前要换好钱,一般小吃摊是没办法刷卡的,另外就算你用港币买单,找零也都是澳币

我们从蛇口往返,早上8点45坐船出发到新港澳码头,晚上8点45远路返回,单人往返320人民币。新港澳码头有很多酒店的免费bus,如果就在澳门玩的话就坐普京的车,到凼仔岛的话就坐威尼斯人的车,另外因为澳门取消了一些入境港口以及工作效率偏低(与香港比),所以通关时间会比较久,建议当天往返的同学早点出发

我们此行目的很简单,就是吃,在赶路的时候偶尔遇到一些风景就停下来看看,听说澳门有很多不错的博物馆,时间充足的同学可以再安排博物馆路线,因为时间有限,我们就选了to eat list上优先级最高的几家

美食篇:

大利来记猪扒包
在新港澳码头坐威尼斯人的巴士就可以到凼仔岛了,威尼斯人旁边就是银河酒店,沿着银河酒店往北走不到10分钟就可以到,我们点了两份猪扒包,两杯冰鸳鸯,一份咖喱鱼蛋,一共$92,鸳鸯味道醇厚,猪扒包也不必多说,什么“外脆内软”“焦嫩可口”网上好多介绍,因为已经带了很高的预期,反而觉得鱼蛋是亮点,鱼蛋大而Q,咖喱味道很浓,这才是鱼蛋界的良心,比后面吃到的专卖鱼蛋的店都好吃,另外看到其他人喝很传统方式的奶茶,大家有兴趣也可以去试一下
具体地址:凼仔巴波沙总督前地18号

再来一张菠萝猪扒包的特写

被咬开的猪扒!

诚昌饭店
在凼仔岛上的官也街上,从大利来记出发也就5分钟,澳门真的是小死了,官也街上有几个小店也可以逛逛
这家就是吃正餐的店,因为之前有了猪扒包打底,我们就点了两个招牌:水蟹粥和鲜炸鲮鱼球
水蟹粥更加自然没有砂锅粥那么稠,砂锅粥里的辅料味道更重,比如味精,而水蟹粥就是原材料的鲜味,蟹肉和蟹黄融合在粥里非常鲜甜。

鲮鱼球,辅以甜醋刚刚好,也可以和老板要一些椒盐。

诚昌饭店的店面,方便大家去找一下。

恒友鱼蛋
这家店找了最久,因为网络上的攻略实在是弱!!爆!!了!! 到了新马路后,沿着议事厅前庭广场这条路往里走,在SK-II专卖店对面的巷子里,这家店非常适合作为夜宵来吃,店面如下:

我们按照网上攻略点了基本款:牛杂,萝卜+鱼蛋,一共30,但吃过之后发现鱼蛋并没有预想中的好吃,反而是萝卜很香,于是我们又自己点了下面的第二碗

第二碗主要是牛筋,萝卜,蘑菇,大家去的时候记得跟老板要煮在锅里的萝卜而不是新加的,这样才比较入味

由于时间有限,这次遗憾也颇多,比如这家蔡澜推荐的牛杂店,虽然路过,但真心吃不下了

以及这家据说超正的葡国菜

手信
大家买手信的话就买这家咯,反正澳门到处都是

观光篇
牌坊

炮台,这张取景不错吧

澳门博物馆

十字路口

教堂

明信片从这里寄出

再见,澳门

[Python] 整数除法问题

最近开始 Learn Python The Hard Way,第三个练习中发现2个整数除法的问题

print 1/4  结果 0

print -9/4 结果 -3

原因是

1. Python设计之初借鉴C语言的规则:返回值与操作数同一类型

2. 但是当操作数之一为负时,结果是向下取整的,也就是远离0(接近负无穷方向)

对于一些数学计算时这两种情况很容易产生问题,问题1据说在python3000中会进行修改

这么设计的历史背景作者已经在 the history of python 上解释了 文章如下:

 

Problem with Integer Division

英文原文链接:http://python-history.blogspot.com/2009/03/problem-with-integer-division.html

原文作者:Guido van Rossum

Python对整数除法的处理是一个早期犯错导致后患无穷的典型范例。前面已经提到创立Python时我抛弃了ABC中采用的数值处理方法。例如,在ABC中当你进行两个整数相除,结果是一个准确的有理数。而在Python中,整数除法的结果被截断为一个整数。

依据我的经验,ABC中的精确有理数并没有达到设计者的期望。写一个商业应用软件小软件就可以发觉(例如,计算一个人缴税多少),比通常想象的慢太多。调试程序可发现原因在于程序内部在运算时用数千位精度的有理数来表示数值,这些值在最后输出时精度只要求到小数点后两三位就足够了。这个问题可以利用计算起始时附加一个不完全精确的0来解决,但是这个思路对初学者来说并不直观,且难以调试。

所以在设计Python时,我参考了自己已经熟悉的C语言的数值模型。C包括各种长度的整数和浮点数。我就选了C的long类型为Python的整数(integer)(可以保证至少有32位精度),选择C的double表示Python的浮点数(floating point number)。然后我又增加了一个任意精度的整数类型,称为“long。”

我从C语言还借鉴了一条规则:标准的算术运算,包括除法,返回值总是和操作数同一类型,这条在C中实用的规则在Python这种十分高级的语言(very-high-level language)中则铸成大错。更糟的是,我最初还设定了一个禁止混合类型运算的错误规则,当时这么做的目的是为了让各个类型实现之间互不关联。所以,一开始不能计算int和floating相加,即使int和long也不行。Python公开发布之后,Time Peters很快就说服我禁止混合类型运算是个坏点子,于是我引入常用的强制转换规则(coercion rules)来支持混合类型运算。例如int和long的运算会先把int类型的参数转换为long类型,然后返回long类型的运算结果,任何一个参数为float时就把另外一个参数转换为float类型并返回float类型的运算结果。

至此大错已成–整数相除返回整数类型结果。你可能会奇怪“不会是杞人忧天吧?”或者庸人自扰吧?随后为了改变这一设定多次遭受Python社区用户坚韧的反对,他们坚持能明白“整除”的含义对是所有程序员必经的“成人礼”。那么,请让我来解释一下我认为这是一条设计缺陷的原因。

当你写一个实现数值运算的函数(假设,计算月相)你通常希望参数是浮点数类型。然而,由于Python没有类型声明,就无法阻止函数调用者传递整数参数。对于C这类静态类型语言,编译器可以强制转换参数为浮点数,然而这在Python中不存在-算法中各步骤将会一直用整形计算直到遇到和浮点数的混合运行后才会恢复中间计算结果为浮点数类型。

除了除法之外的其它运算,整数和浮点数的行为是一致的。例如1+1等于2,恰如1.0+1.0是2.0,其它运算也是。这就很容易造成一种假象:数值算法的参数是整数还是浮点数无关紧要。然而,当除法参与进来,两个运算数都是整数时,运算结果直接截断,这造成运算中一个潜在质的误差。虽然可以通过在函数入口强制转换所有参数为浮点数来进行保护,这样很不方便,也无助与代码的可读性和可维护性。另外,这样也限制了算法同时支持复数类型参数(当然这种情况很罕见)。

回过来还是要说,问题原因全在于Python不能自动转换参数到预先声明的类型。传递一个无效参数,例如字符串,通常很容易发现,因为很少有运算支持字符串/数值混合类型的运算(除了乘法)。然而传递整数参数时,可能会得到和正确答案相近却可能有相当大误差的结果-很难调试甚至不容易发现问题。(最近我又遇到这样的情况,是在画一个模拟时钟时候–表针的位置由于整除截断而不准确,但是错误却不容易看到,只有每天某些特定时刻才比较明显。)

修正整除错误不是一件简单的事情,因为程序已经依赖整除截断行为了。语言增加了整除运算符(//)来提供原有截断语义。另外通过(“from __future__ import division”)机制可使整数除法使用不再截断的新语义。最后,还可以通过添加命令行参数(-Qxxx)使用新语义或者辅助代码转换到新语义。幸运的是,Python3000中除法的缺省行为是正确的。

 

 

 

Why Python’s Integer Division Floors

英文原文链接: http://python-history.blogspot.com/2010/08/why-pythons-integer-division-floors.html

原文作者: Guido van Rossum

今天(又)有人问我,为什么Python中的整除(integer division)返回值向下取整(floor)而不是像C语言中那样向0取整。

在正整数范围内,两者并无实质差别,例如:

>>> 5//2
2

但是当操作数之一为负时,结果是向下取整的,也就是远离0(接近负无穷方向):

>>> -5//2
-3
>>> 5//-2
-3

或许部分人不太适应,数学上有一个较好的解释为何这样做。整除运算(//)和与之密切相关的取模运算(%)满足如下优美的数学关系式(所有变量均为整数):

a/b = q 余数为 r

b * q + r = a 而且 0 <= r < b (假设a和b都>=0)

如果希望将这一关系扩展到a为负(b仍为正)的情况,有两个选择:一是q向0取整,r取负值,这时约束关系变为 0 <= abs(r) < b,另一种选择是q向下(负无穷方向)取整,约束关系不变,依然是 0 <= r < b。

在数学的数论中,数学家总是倾向于第二种选择(参见如下Wikipedia链接)。在Python语言中我也做了同样选择,因为在某些取模操作应用中a取什么符号并不重要。例如从POSIX时间戳(从1970年初开始的秒数)得到其对应当天的时间。因为一天有24*3600 = 86400秒,这一操作就是简单的t % 86400。但是当表达1970年之前的时间,这时是一个负数,向0取整规则得到的是一个毫无意义的结果!而向下取整规则得到的结果仍然是正确的。

另外一个我能想到的应用是计算机图形学中计算像素的位置。我相信这样的应用还有更多。

顺便说一下,b取负值时,仅需要把符号取反,约束关系变为:

0 >= r > b

那么,现在的问题变成,C为啥不采取(Python)这样的选择呢?可能是设计C时硬件不适合这样做,所谓硬件不适合这样做是说指那些最老式的硬件把负数表示为“符号+大小”而不是像现在的硬件用二进制补码表示(至少对整数是用二进制补码)。我的第一台计算机是一台Control Data大型机,它用1的补码来表示整数和浮点数。60个1的序列表示负0!

Tim Peters对Python的浮点数部分洞若观火,对于我想把这一规则推广到浮点数取模运算有些担心。可能他是对的,因为向负无穷取整的规则有可能导致当x是绝对值特别小的负数时x%1.0会丢失精度。但是这还不足以让我对整数取模,也就是//进行修改。

附言:注意我用了//而不是/,这是一个Python 3 语法,而且在Python 2 中也是有效的,它强调了使用者是要进行整除操作。Python 2 中的 / 有可能产生歧义,因为对两个操作数都是整数时或者一个整数一个浮点数或者两个都是浮点数时,返回的结果类型不同。当然,这是另外的故事,详情参见PEP238

Jack Dorsey谈创业之路

作为一个CEO主要关注三件事情

1. 团队:
吸纳最好的人进来,去除所有消极的元素,一切都为团队的凝聚力,说到底我们是一群为着一个共同目标努力的人,如果不能步调一致就会分崩离析

2. 内部和外部的交流:
内部交流是指协调,关于我们要做什么,为什么要做这个,以及我们的目标是什么,为什么是这样的目标,如果有3个月 6个月甚至一年的目标,那么对于设定优先级以及项目边界是非常好的事情
外部交流就是产品,产品就是我们给世界讲的故事,人们将怎样使用它,怎样将它融入生活,这是我们最强有力的故事

3. 关于往银行里弄钱,要么来自投资者要么来自营收

 

基本上只要做好一件事情:

在知道宏观方向的基础上:完美处理每个细节,限制细节的数量
you have to make every single detail perfect, and you have to limit the number of details
Every detail perfect, Limit the number ot details

 

故事驱动:

  • 要成为一个好的storyteller,要了解故事的力量
  • 设身处地的从目标用户角度去思考,从用户角度去写故事,就像一个剧本
  • 如果能把故事写好,那么这个产品所有的优先级,所有要做的优化、设计、协调就自然落地了,因为公司每个人,团队每个成员都会参与到这个故事并产生一定的共鸣
  • 不断思考这个故事,看是否有新的元素需要加进去对我们来说是非常重要的
  • 我们想要讲一个壮丽的故事,想要解决一个很大的问题,而不是琐碎的小的故事

当你有一个想法的时候,要想办法从脑子里取出来,可以把它记下来,画出来或者用代码实现出来,这样才能抽身出来看是不是一个好的想法,也可以拿给朋友去看咨询他们的意见,这样你就可以尽早决定是否要投入更多的精力在这个想法上还是等一段时间再说,要把这个想法当成一个故事,一个剧本,事先设定好我要如何讲给朋友听,以及他们会如何反应

有一家公司就是这样运作的,那就是apple,他们有很强的节奏意识,故事意识,执行意识,它是事件驱动型,舞台驱动型的

http://edu.sina.com.cn/video/open/JackDorsey.html

tumblr最近的数据

关于tumblr最近的几个数据:

  1. 日均PV超过2.6亿,UV超过1000万
  2. 超过1800万个blogs搭建在tumblr的平台上,搭建在wordpress的blogs为2000万,但同期tumblr的增长速度是wordpress的两倍!
  3. 根据google analysis的数据,用户平均在tumblr上的停留时间是14分钟

2010年11月,wordpress和tumblr的blog数对比:

2011年5月,wordpress于tumblr的blog数对比:

在同一时期,tumblr的增速是wordpress的两倍

wordpress创建于2005年,tumblr创建于2007年,虽然有两年的差距,但数量上两个服务即将并驾齐驱

再来看一下quantcast的数据,tumblr的PV在5月22日已经超过2.6亿

从这张图中可以看到tumblr增速迅猛

更详细的数据请看 tumblr@quantcast

通过google analysis可以看出tumblr的一些运营数据:

  • 18-34岁用户占比67%
  • 女性用户占比45%,男性用户占比55%
  • 主要用户群体集中在年收入2.5万-5万美金之间的美国上班族用户

 

今年是中国轻博客的元年,看着tumblr的涨势,估计会有更多的中国互联网企业投入其中

点点网的许朝军曾说,他当初选择创业的时候也没有方向,于是就遍寻美国最近两年最火的,国内还没有人涉及到的业务,这与他当年做校内网的思路相同,恰好发现tumblr的轻博客模式,于是便组建团队进入这个市场

虽然国内还没有过多人涉及轻博客,但这个产品形态先天很容易从现有的产品进行变种转移,比如从传统的blog向“轻”发展,或者从新兴的微博向“重”发展,所以这些独立存在的新产品难免会成为大公司新产品试验的炮灰

tumblr的起家,刚好契合了两个重要元素:碎片化+rich化

  1. 随着互联网的发展以及移动互联网的兴起,碎片化,已经成为当今互联网新的标签,高质量的内容创造者未来将及其稀缺,对于普通用户而言,微创作配图已经成为主流,在这种情况下,一些简单的操作与表现形式会越来越受到用户的青睐,尤其当这些简单的产品与移动互联网结合
  2. 我认为tumblr在美国的兴起,和twitter坚持信息流动是第一重要的原则有关,twitter坚持并围绕这个原则进行产品设计,所以twitter在表现上可谓乏善可陈,而tumblr则丰富了用户创作形式,同时也很好的利用了facebook和twitter的传播效应(tumblr可同步到facebook和twitter)

其实在美国类似的服务也有很多家,其中不乏Posterous这样的强劲对手,tumblr的发家与成长也是值得我们去好好研究的,后面会单独写一篇文章分析一下tumblr如何保持领先

 

Design @ Quora

Quora让人非常着迷,一方面是它的产品本身给用户带来的价值,另一方面也是这家公司鲜明的设计特征,在这里只有两种角色:Engineer和ProductDesigner,产品设计师从原型制作开始到最终的html+js的交付,而engineer更多关注算法层面,这要求产品设计师有极强的个人能力.

Rebekah Cox是Quora的产品设计师也是Quora第一名员工,在Web2.0大会上介绍了Quora的产品设计,并将其演讲内容发布在Quora上

Quora对设计的定义是
设计就是关于产品的一套决定。它不是一个界面或一种审美观,它不是一个品牌或一种颜色。设计是真正决定。

首先,它明确了产品及其界面之间的关系。你的产品的最终样子不是突然出现的大结局,而是你做的所有小决定的总和。
其次,这个定义让我们把注意力集中到最重要的地方:一个具体产品的用途和目标。你以做的事情有很多。但设计应该是搞清楚你应该做什么的过程。
最后,这个定义是让设计人员在责权平衡的公司里充当一个角色的载体。它提倡了积极的、早期的设计参与。

 


Good Morning. My name is Rebekah Cox. I was the first employee at Quora and I’m currently one of four product designers there. Quora’s a place for sharing your knowledge and expertise across a range of topics that interest you.

我是丽贝卡·考克斯(Rebekah Cox)。我是Quora的第一名员工,是目前Quora的四个产品设计师中的一个。Quora是一个让你交流专业知识的地方,它覆盖了很多你感兴趣的主题。


It’s an awesome time to be a designer, particularly in the Valley. There’s really a groundswell of support for and interest in design, because again and again it has earned its place as a clear competitive advantage.

设计很重要

现在是成为设计师的好时机,特别是在硅谷,人们非常支持设计,对设计也很感兴趣。因为作为一个明显的竞争优势,设计已经为自己赢得了一席之地。


At Quora we share in that enthusiasm. We care very deeply about design and have from the very beginning. It is very important to us that our culture encourages great design and enable great designers.

Quora爱设计

在Quora,我们对设计充满热情。我们从一开始就非常重视设计。Quora的文化鼓励优秀的设计并培养优秀的设计师,这对我们来说非常重要。


However, it’s not lost on me that Quora appears to be one of the least designed sites on the Internet. It’s dark and red and text-heavy. So, how can we claim to care about design but we create a minimal product?

然而,Quora似乎是互联网上设计最少的网站之一。它使用黑色、红色和大量文字。创建了设计元素如此之少的产品,我们怎么还能声称自己关心设计呢?


Well it’s important to understand that design is a word where people often hold a purely intuitive definition. Some people think design is only the aesthetic, some think it’s the interactions, others think it’s the logo.

设计是什么?

要明白,人们对设计这个词的定义常常是非常直觉化的。有些人认为设计在于审美,有些人认为它意味着互动,有些人则认为它是指logo标志。


Understanding how design can mean many things to many people meant that the most important task I had when I began at Quora didn’t have anything to do with Python or CSS or JavaScript; it was to create a simple definition of what design meant at Quora.

在Quora ,设计是指什么?

理解如何对于不同的人来说设计可以有很多不同的含义,意味着我最开始在Quora工作时,最重要的任务与Python或CSS或JavaScript没有半点关系;这个任务就是确立一个简单的定义:在Quora设计意味着什么?


And this is how we’ve defined design: Design is a set of decisions about a product. It’s not an interface or an aesthetic, it’s not a brand or a color. Design is the actual decisions.

设计就是关于产品的一套决定

我们对设计的定义是:设计就是关于产品的一套决定。它不是一个界面或一种审美观,它不是一个品牌或一种颜色。设计是真正决定。


There’s a lot packed in to this definition and it shapes our approach in a number of ways. And here are the big benefits of thinking about it this way:

好处

这个定义包含了很多内容,它在很多方面塑造了我们的方法。用这种方法思考带来了很大的好处:


First, it imposes a clear relationship between a product and its interface. The ultimate expression of your product isn’t any one big thing; it’s the sum of all the little decisions you’ve made along the way.

明确了产品及其界面之间的关系

首先,它明确了产品及其界面之间的关系。你的产品的最终样子不是突然出现的大结局,而是你做的所有小决定的总和。


So thinking critically about those little decisions means that… it’s not just about the location of a dropdown but also about all the reasons that component has to exist in the first place. How someone uses your product to accomplish a task should be driven by why that person must take an action.

一个下拉组合框的位置,表达了它存在的原因

所以要重视这些小决定……它不只涉及下拉组合框的位置,也涉及它为什么要存在的原因。一个人如何使用你的产品去完成一项任务,其驱动力是这个人为什么必须采取某一步行动。


Second, this definition concentrates attention where it matters most: the goals and purpose for a particular product. There will always be a lot of things you can do. But design should be the process of figuring out what you should do.

把注意力集中到最重要的地方:用途和目标

其次,这个定义让我们把注意力集中到最重要的地方:一个具体产品的用途和目标。你以做的事情有很多。但设计应该是搞清楚你应该做什么的过程。


You can have the coolest looking product in the world, but if there’s no incentive or utility for people, it doesn’t matter. Pay attention to your goals, spend the most time there, and always provide value.

真正酷的事情:创作出有用的东西

你可以做出世界上样子最酷的产品,但是如果它对人们没有用处和吸引力,那它就没有意义。你需要关注你的目标,在目标上花最多的时间,并总是提供价值。


Finally, this definition is the vehicle that empowers designers to have a role within the organization where responsibility and authority are balanced. It inherently requires proactive, early design involvement.

责权平衡的公司中的角色

最后,这个定义是让设计人员在责权平衡的公司里充当一个角色的载体。它提倡了积极的、早期的设计参与。


Designers should have the opportunity to do more than apply a coat of paint at the end on a finished product. We should focus as much energy as possible analyzing where a problem originates and have the authority to ensure the best solution in whatever form it may take.

设计师不是粉刷匠

设计师应该有机会做更多的事,而不只是粉刷成品。我们应该尽量集中精力分析问题的来源,并有威信来确保采取最佳的解决方案,不管解决方案以何种形式出现。


The reason for this is simple: Great design is all the work you don’t ask the people who use your products to do. All the decisions you don’t ask someone to make because you have already spent countless hours determining the best one.

伟大的设计

这样做的理由很简单:伟大的设计就是你不会要求产品使用者来做的事情,你不会要求别人来做的所有决定,因为你已经花了无数小时来确定最佳决定。


And this is our challenge. As designers our job is to make the world better through not only building awesome tools but also through understanding problems. The problems we decide to solve are as important as how we solve them.

选择问题很重要

这是我们的挑战。作为设计师,我们的工作是让世界变得更美好,既通过创建好的工具,也通过理解问题。我们决定要解决哪些问题,跟我们解决它们的方式一样重要。


Design itself can be a lot of things. It can take a lot of forms. Design can be as overwrought as our products can sometimes become. But how you think about design influences every tiny detail that will ultimately comprise your product.

你对设计的想法会影响细节

设计本身可以是很多东西,它也可以采取很多种形式。有时我们的产品会变得“过分装饰”,设计也可能同样如此。但你对设计的想法影响到每一个微小的细节,而这些细节最终将构成你的产品。


That is how we’ve defined design at Quora: Design is a set of decisions about a product. It’s the very decisions that comprise a product because those are what matter most — and those decisions drive everything forward.

设计就是关于产品的一套决定

在Quora我们就是这样定义设计的:设计是关于一个产品的一套决定。这些决定构成了一个产品,因为它们最为重要——这些决定推动一切向前进。


So at Quora designers are driving the product forward. They are working directly with insanely brilliant and talented engineers. They are solving extremely hard problems. And are bringing together people from all backgrounds to share their knowledge openly with the world.

Quora设计师推动产品前进

因此在Quora,设计师们正在推动产品前进。他们直接与工程师合作,解决极为困难的问题,并把来自不同背景的人们聚集在一起,让他们与世界公开分享他们的知识。

 

 

原文地址:http://www.quora.com/Rebekah-Cox/Design-Quora-Web2-0-Expo-Presentation

吃货在广州

作为一个吃货,生活最大的乐趣就是不断有新的美食刺激你的味蕾;但由于生活空间的相对固定,以及再好吃的食物也会吃腻的客观规律,你会逐渐对一日三餐,一周二十一餐都产生某种预期,这个时候生活也会就变得乏味无趣;

你会感觉,在吃货这条道路上,犹如遇到了职业发展的瓶颈!!!

所以,假期和旅行之于我,最大的意义便是到新的地区发掘新的美食–在旅行途中我不是在吃饭就是在去吃饭的路上

清明假期,我们非常明智的选择了广州–在我到达深圳快两年之后,我才第一次踏上了这个美食之都,真有种相见恨晚的感觉,这是一个极富生活气息的美食遍地的小资城市,因为时间的关系只吃了几处,以后一定会不断深挖。

在酒足饭饱之后,也一定要怀着一颗感恩的心说一句:感谢吃货届的各位前辈,尤其是太子同学的贡献,是你们的前赴后继不断迭代尝试,才逐渐总结出了更加精准的区域性美食攻略以泽润后人

今天也希望我的这篇文章能够为广州美食攻略的建设添砖加瓦

 

第一站:大头虾

我们下午两点半到达广州,马上就去北京路找到这家店,你看到的这张照片就是下午两点半时大头虾人头攒动的场景,没错,是下午两点半!可见广州人多么好吃!当你遇到一群和你一样的人时会多么的激动!于是我手抖了。。。

越式咖喱牛腩
这是我迄今为止吃过最好吃的咖喱,没有之一,浓浓的咖喱穿插着椰奶香,这个时候再配上一碗白饭或者蘸着法式面包,绝对无敌,我们战斗结束后第一次出现牛腩还剩下的场面,大家都是冲着咖喱去的有没有!

越式香茅豆腐

蔗虾

春卷

不记得名字的排骨,虽然不记得名字,但的确也是当天的惊喜

碎肉生菜包

第二站:表哥茶餐厅

一个广州土著的推荐,到这家店主要尝了港式奶茶和冰火菠萝油,不过公正的说一句,截止目前,我认为最好吃的冰火菠萝油还是上海的港丽茶餐厅,这家的菠萝包有点过热,造成黄油很快就融化了,没有冰火交加的感觉

第三站:太平沙财记

第二天的一早就跑到北京路上找这家店,告别一夜的喧哗,街道整洁宁静,这个时候坐在窗边看马路上步行的人群,吃着一碗招牌牛腩粉配和味萝卜,真是享受

在这家店发现一个很奇怪的现象,店里大多都是老人带着小孩来吃,碰巧遇到一个孩子站在店门口苦苦哀求母亲,大意是想来店里吃,母亲说好奇怪为什么你天天都想来这家店吃,今天妈妈想吃厚土司了就放过妈妈一次吧,非常欢乐。墙上赫然挂着获得广州美食称号的秘制肥肠汤粉。。。

第四站:黄鳝世家

这家店是太子特别推荐,特色非常鲜明,那就是以鳝鱼为主,招牌菜就是冰镇鳝片,我们也点了杏汁炖白肺,但可能是我对炖品并无大爱,所以也没有特别的好感

黄鳝饭

老娘肥叉,这家的叉烧非常了得,算是意外的收获

第五站:1920

离开广州前的最后一餐,选择了珠江边上的1920,主打德国菜,点了德式猪手伴泡菜薯蓉,香肠拼盘,烟熏马鲛鱼,北极鱼沙律,提拉米苏,德国咸猪手果然名不虚传,香脆的外皮,肉质鲜美,咸度适中,一点腻的感觉都没有,他家的黑啤也不错,晚上因为光线的原因拍了几张都不上镜,就暂时省去了

因为时间短暂,我们还有很多理应去吃的内容,比如陈添记鱼皮,达杨炖品,炳胜…不过这也为我们下次广州之行留下了一些憧憬,期待下一次的广州美食之旅

TO BE CONTINUED

 

 

 

从1到100万用户

如何将你的产品从1个用户做到100万的用户?这篇文章会给你几个答案,尤其是第一条,是一个显性却很少有人提及的内容,那就是ego stroke,你的产品要一定程度上可以满足用户的虚荣心来创造用户价值

翻译自Kevin Rose的 Taking your Site from One to One Million Users

Kevin Rose:Digg,WeFollow, Pownce的创始人,Twitter,Foursquare的投资者

1. 用户的自我性

问问你自己:你做的这个特性是否增加了用户的价值或者满足了用户的虚荣心?
如果一个用户为整个社区/系统做了贡献,那么他们可以获得什么情感上或者可见的奖励?

twitter是一个很好的例子,不断增长的粉丝数满足了用户的虚荣心

为什么粉丝对于提高自我性是可行的?

twitter提供了一个巨大的单向关系系统,零门槛,所有用户可触达
粉丝数某种程度上成为了一个社区中的货币符号–在用户看来当然越多越好
逐渐增加的粉丝数(即便有一些是spammers)会给用户造成一种就像在有很多观众的会场的感觉

Digg这个产品也会帮助用户提高自我性,比如Digg Leaderboard榜单和Digg Stories

我个人觉得微博成功的几个原因:

1. 140字,降低了大家创作门槛,也恰恰因为只能140字,限定了所有人的创作环境,一句话的创作你不会比别人太差
2. 单向关系链的快速扩展,同样是没门槛
3. 转发,快速传播,同时转发路径上的人的信息又加快了关系链的扩展
4. 微博每天新增的粉丝数,转发数,都是对用户很好的一种激励

 

2. 做产品一定要简洁

不要一味的做加法
只关注最重要的2-3件事情
不断的问自己,究竟增加一个特性对产品有多少好处

3. 不断的迭代发布

不要以为你理解用户
要根据数据分析用户真实的行为,不要自己以为他们会怎么样使用你的产品
build release iterate,and repeat 不断的迭代发布

4. 抓住媒体

通过主流媒体或者圈内的知名博客帮助你的产品推广

5. 利用好社交平台的推广,会有明显的杠杆效应,比如twitter和facebook

4.5以及后面的内容有一些我认为价值不大,就没有详细翻译

Facebook Design Principles

Facebook,SNS世界的鼻祖,互联网新的霸主,投资界的新宠,一个改变人们生活的产品,Facebook,不论在秩序的建立以及产品设计的细节把控有太多值得产品经理学习的地方,最近我们启动了一个Facebook的研究项目,借此机会可以系统梳理一下全貌,让我们对它看的更加透彻。

找到了Facebook design团队的官方page: www.facebook.com/design(需翻墙,你懂的),第一篇文章就介绍的Facebook的设计原则,作为一个多人参与设计的复杂的系统,确实需要设计原则来保证产品体验的一致性,设计的继承性,并成为大家平时PK时的共同的上下文环境(context)。

根据我自己的理解翻译了一下,有不妥之处请大家指正,以下供大家参考:

在Facebook,我们的设计是…

通用

我们的使命是使整个世界变得更加开放,这意味着我们的产品到达每一个角落,每一个人。因此,我们的设计需要为每个人服务,每一种文化,每一种语言,每个设备,每一个人生阶段。这就是我们为什么构建那些可以为90%的用户服务的功能,并砍掉那些只有少数用户使用的功能的原因,即便这使我们短期内有所倒退

人类

用户来到我们的网站是为了自己的好朋友和那些身边的人。你所关心的人都在同一个地方,这才是我们产品最重要的远景。这也是为什么我们的声音和设计风格藏在幕后,而让我们用户看到的是朋友的声音,朋友的脸,朋友的表情

简洁

我们的视觉风格简洁朴素,用户的生活体现在我们创建的空白画布上。而这种风格最可以鼓励用户参与和坦诚透明的沟通。简洁是不是最容易的视觉风格。相反,当我们减少所依靠的风格的数量时,外边距,渲染,色彩这些东西会变得越来越重要

一致

我们意识到当相似的部件使用相似的方式表达时可以大大提高我们产品的可用性,于是我们拥抱了“模式”,也节省了很多时间。我们的产品用同一种声音与用户交流,建立信任。减少,再利用,不重新设计。

有用

我们的产品比娱乐更实用,这意味着每天重复使用,有效地提供价值。这就是为什么用户每天都在使用的核心互动功能在不断的简化,清除掉不必要的点击和空间浪费。

快速

我们珍视我们用户的时间甚于我们自己的。我们认识到更快的体验会让用户感觉更高效、更轻松。因此,不应该让任何性能上的问题影响用户,我们的网站应该尽可能快的运转。

透明

用户将他们的身份,他们的照片,他们的想法和他们的对话托付给我们,这是对我们最大的信任。我们应该以最大的诚信度和透明度回报我们的用户。我们清楚,而且也能清楚预知到我们网站上正在发生什么以及为什么发生

原文:

At Facebook, our design is…

read more »

960 柵格系统设计

最近在进行产品设计的时候接触到了柵格设计系统(Grid System),在网上搜集了一些资料和文章,最后整理输出供大家参考:

 

什么是栅格设计系统?

栅格设计系统,即Gird System(又称网格设计系统、标准尺寸系统、程序版面设计、瑞士平面设计风格、国际主义平面设计风格),是一种平面设计的方法与风格。运用固定的格子设计版面布局,其风格工整简洁,在二战后大受欢迎,已成为今日出版物设计的主流风格之一。

栅格设计系统在印刷出版物的排版设计中十分普遍,网页设计常会从印刷排版中汲取灵感。在网页设计中采用栅格设计系统不单能够继承工整简洁的风格,还能大大的减少设计的工作量;从前端工程的角度来说,这种排版方式优点不言而喻:天然的规范性和可重用性。从整个团队来看,使用栅格设计系统能简化工作流程,便于交流,也便于分工和统一风格。

这是使用3*3的网格的960px页面设计草图,来自“The Principles of Beautiful Web Design”

 

为什么是960px?

柵格好理解,但为什么是960呢?在网上搜寻了大量的资料,发现既有机缘巧合也有可被证明的道理
那么是什么机缘巧合呢?
最早的设计师都很多都使用苹果电脑,当时在进行设计时会遇到一些约束:

1. 屏幕分辨率:1024 px wide by 768 tall
2. Firefox窗体大小:974 px wide by 650 px tall
3. 去掉左右两个边框7 px, 剩下的尺寸就是960 px wide by 650 px tall

所以960的宽度就自然的出现了
不得不感叹: Constraints are the mother of design invention

关于这部分的介绍,也可以看一下这篇文档:Grids Are Good

960可以分解为2的6次方乘以3和5, 这使得960可以分割成以下宽度的整数倍:

2, 3, 4, 5, 6, 8, 10, 12, 15, 16, 20, 24, 30, 32, 40, 48, 60, 64, 80, 96, 120, 160, 192, 240, 320, 480

共26种(26 = 7 * 2 * 2 – 2, 减去2是去掉1和960自身),我们标记为:

     N(960) = N(2^6 * 3 * 5) = 26

 
根据上面的算法,可以得到:

     N(360) = N(2^3 * 3^2 * 5) = 22
     N(480) = N(2^5 * 3 * 5) = 22
     N(720) = N(2^4 * 3^2 * 5) = 28
     N(750) = N(2 * 3 * 5^3) = 14
     N(800) = N(2^5 * 5^2) = 16
     N(960) = N(2^6 * 3 * 5) = 26
     N(1000) = N(2^3 * 5^3) = 14
     N(1024) = N(2^10) = 9
     N(1440) = N(2^6 * 3^2 * 5) = 34
     N(1920) = N(2^7 * 3 * 5) = 30

 

目前绝大多数显示器都支持 1024 x 768 及其以上分辨率。为了有效的利用屏幕宽度同时保证栅格的灵活度,可以看出960是非常合适的。

在960宽度下12栏的删格设计中,可以有如下的单位宽度可选:
60, 140, 220, 300, 380, 460, 540, 620, 700, 780, 860 和 940.

在960宽度下16栏的删格设计中,可以有如下的单位宽度可选:
40, 100, 160, 220, 280, 340, 400, 460, 520, 580, 640, 700, 760, 820, 880 和 940.

参考文章:The 960 Grid System Made Easy

960的柵格设计一方面可以保证网站灵活的控制结构化布局又便于前端开发的规范性和可重用性,所以何乐而不为呢?

 

 

更多的讨论:

 

960px是唯一的么?

960是否是唯一最优的页面宽度呢?当然不是。目前使用栅格系统的页面的宽度并不严格就是960px,也可能是950px,例如yahoo的YUI框架就是950px。关于网页栅格系统设计的介绍可以看看TaobaoUED的这篇文章。1024*768也不会永远是主流分辨率,随着分辨率的发展,下一个较优宽度很可能是1440(2^5*3^2*5),或者是一个没有分辨率的时代,页面能够按比例自动缩放(就像现在在移动版safari看到的那样)。另外,好的设计和创意常常需要打破规则,栅格设计系统也并非网页排版唯一可用的风格,在主流之外会一直存在一些很优秀的非960px页面(尤其是全flash网站);有时候人们会议论他们seo上的缺陷,或者兼容性、用户体验不够好,但从艺术的角度上他们依然很优秀。

当然,目前已经有实现好的960柵格设计的css框架:

960 Grid System是由Nathan Smith开发的CSS框架,有12列、16列、24列三个版本。CSS对于很多程序员来说可能完全不屑于优化,但它确实和其他的程序代码一样需要架构和优化。即使运营的是一个很小的网站,适当地组织、重用CSS代码能够节省相当多的时间和成本。CSS框架正是那个能让你在每个网站都屡试不爽的东西,把那些无聊重复的工作都交给它们吧,把自己的精力集中在怎么创造更令人动心的设计上!

而且,960.gs不仅仅提供了CSS框架,它还提供了可打印的缩略图表,Firewofks、Phototshop、OmniGraffle 和Vision的模板源文件⋯⋯你可以让项目组的很多人都用上它。

它也能为你减少了很多兼容性问题,它支持被yahoo评为A级别的浏览器:

 

 

相关文章: