简约至上:交互式设计四策略 读后感

在重构一个遗留前端系统的时候,我觉得需要有一些指导原则来引领我做设计。正好看到了这本书,摘录一些有益的观点。

普适观点

  • 人们喜欢简单、值得信赖、适应性强的产品
  • 考虑大多数用户的体验,让他们觉得产品井然有序,轻松自在。他们正在掌控着一切。
  • 改变会产生影响,需要有办法(最好是公式)来衡量究竟是正面影响大,还是负面影响大
  • 描述你的设计
  • 使产品的设计符合用户使用产品的环境,要意识到影响用户体验的因素极多
  • 简单的用户体验是初学者、新手的体验,或者是压力之下的主流用户的体验
  • 想要实现简单的体验,需要将目标定得极端,这样能保持产品迭代朝着正确方向前进。例如将目标定位“瞬间响应”而不是“快速响应”,这样我们能在开发新功能时时刻提醒自己。

实现简化的4个策略:

删除

  • 去掉不必要的功能,直到不能再减

组织

  • 按照有意义的标准将他们划分成不同的组

隐藏

  • 隐藏不是最重要的功能,避免分散用户注意力

转移

  • 将复杂性转移到其它地方。例如遥控器保留具备最基本功能的按钮,而将其它控制放到电视屏幕的菜单上

对待客户需求

  • 不要简单地因为客户要求就增加功能,应该对用户的要求做逆向工程——搞清楚用户到底遇到的问题是什么,然后仔细斟酌这个问题是不是应该由软件来解决。
  • 增加功能不一定能让用户体验更简单,反而经常导致更多的迷惑。

Simplicity is the ultimate sophistication
– Leonardo Da Vinci

Share

Sync two Git remote repositories

In Yahoo we use Gerrit as our code review tool. Engineers commit code changes to Gerrit for review. After code has been reviewed by peers, Gerrit help push to Github. However sometimes bad thing happens.

For example, if a committer forget to setup Gerrit env and the code is committed and pushed to Github directly (because he has this permission to do so), he will notice this soon because future changes from Gerrit might break. Then he try to submit a review for the missing commit to Gerrit with an “git commit –amend” to generate a change-id (which is used by Gerrit). Because “–amend” generate different commit-id, so after the review is passed, even the content is the same, the commit-id in two remote repo (Gerrit and Github) is different, which leads to future reviews are still not able to pushed to Github from Gerrit and sometimes new review could not be submitted.

So how could we fix it? It would be a good idea to push changes from Github to Gerrit to get them in sync. Here are two options.

Read More / 继续阅读

Share

Recommended workflows in Alfred

Finally I purchase Alfred for workflows.

A Workflow is a combination of actions, and the killer feature in Alfred powerpack. In Alfred, we can import existing workflows or create our own workflows – to run a series of actions, which will dramatcially improve productivity.

My workflow lists

Before writing this post, I spent about half an hour on Alfred Workflows to go through all existing workflows based on the AlfredWorkflow repo by hzlzh and select following workflows as enhancement of Alfred.

There is another workflow repo by @zenorocha.

And here’s my lists.

Read More / 继续阅读

Share

Apache Pig in Practice 1


I write many pig script in the past few months and have explored some tricks with my buddies. hopes it could help someone.

Let’s focus on some interesting topics in this first article and get prepared for the later Pig rush.

IDE & Environment

Vim

I use Vim to write most script language and those are my favourite plugins to write Pig:

  • Pig Syntax Highlight. Latest update on Jun 2014, Pig 0.12 supported.
  • You complete me. Best auto-complete plugins ever. If you don’t use a MAC, Supertab is also a reasonable choice.
  • Tabularize Align and keep cleaness of the Pig codelet. Most common usage is :Tab/AS to align FOREACH ... GENERATE clause.

To improve debug efficiency, I like to run pig with short cut. Here are my simple approach: add the following in .vimrc for quick run with F5

1
2
3
4
5
6
7
8
9
10
11
12
13
14
map <F5> :call Compile_Run()<CR>
function Compile_Run()
if &filetype=="coffee"
:w
!coffee % 2>&1
elseif &filetype=="cpp"
:w
!g++ -g -o %< %; ./%<
elseif &filetype=="python"
:w
!python %
elseif &filetype=="pig"
:w
!./run_pig.sh %

revise run_pig.sh as you like. General idea is reduce redundant work and typo.

Read More / 继续阅读

Share

如何准备技术演讲

难得在知乎上认真回答问题,也摘到这里来。原问题:如何做一个优秀的技术分享?

做一次成功的presentation性价比是很高的,请把握好每一次。

内容的准备

  • 多讲目标听众不知道/感兴趣的内容。听众投入最宝贵的时间来听分享,Speaker的一个起码责任是保证听众在这段时间的收获。
  • 设计一个有创意的开头。提升自信良方。好的开头会影响观众对speaker的第一印象,也使听众更容易包容后来可能出现的失误。
  • 设计一个强而有力的结尾。想一句推而广之有哲理的话,再来强而有力的”Thank you!”,告诉大家是时候鼓掌了。结尾推而广之的例子可见 一个关于数学归纳法的悖论问题:到底是第N天有N个红眼睛自杀,还是什么都不会发生? 的最高票答案补充,我恨不得点3个赞。
  • 避免常见错误或者明显缺陷。可以参考http://www.slideshare.net/heypig/caffeinenicotine-ppt 蔡老师就如何组织内容说得很好。
  • 平日的大量积累。没有切身体验的死记硬背和摸爬滚打后的娓娓道来,听众的收获和感觉是大不一样的。在接受一次分享邀请之前,最好先掂量一下自己对这个话题的理解。

幻灯片(Slides):

  • 有时间的话尝试用新软件去设计幻灯片。我用过的有impress.js, Prezi, Slidify。Prezi上手更容易一些,但是收费。Impress.js用HTML5实现了Prezi的大部分功能。Slidify比较适合数据分析师使用。花点时间稍加运用,绝对会让人耳目一新。
  • 所有元素风格一致。包括但不限于字体,色调,标点,对齐方式,动画出现退出的方式。
  • 用无衬线字体。中文字体里面比较保险的是微软雅黑或者苹果丽黑。宋体只会让人质疑你的品味。英文字体没什么研究,可以根据自己审美选择了,当然也有保险的Helvetica,或者Impact。

    Read More / 继续阅读

Share

Agile Data Science 译者序


大数据时代到来。或者至少可以说,它在概念层面上到来了。然而读者朋友,有没有想过数据的核心价值是什么?

是信息量。数据携带的信息量赋予了人们进一步洞察这个复杂世界的可能性。数据是现实世界的快照。通过分析数据,我们可以对世界有更深入,更准确的理解。若我们能越快、越好地理解这个世界,就越有可能在行动中占得先机。

因此各行各业,都开始讲究数据驱动决策。为了更好地利用数据带来的价值,我们开始构建数据分析应用程序,通过搜集、清洗、聚合、存储、分析、学习数据,挖掘出数据的内在价值,以指导行动。然而构建数据分析应用程序是一项艰苦的工程——构建过程中,用户需求在变化,系统负载在增大,数据质量经常难以保证,改动不断甚至困难重重。究竟如何用有限的资源构建出一条真正带来价值的数据流水线呢?

现在你拿在手里的,就是作者给出的答案–一份帮助读者高效构建数据分析产品,以更快更好地洞察这个复杂世界的实践指南。

Read More / 继续阅读

Share

Learn d3 the Hard Way (3)-- Force


This is a very useful sketch for node placement. Rather than the original force only move nodes, this sketch also place label in it. Origin from Mortiz’s Force-based label placement.

The basic idea is to have labels orbit around their target node at a fixed distance, but repeal each other, so that they don’t overlap, and orient themselves to the outside of clusters. To support that, labels on the right of their target node are left-aligned, and labels on the left of their target node are right-aligned; in between, we interpolate. In this example, one force layout governs the node placement, and the second one the label placement, but of course, the node placement could be computed by any other algorithm.

Read More / 继续阅读

Share

Learn d3 the Hard Way (2)--yet another collision detection


Another collision detection work. Very elegant.

Here’s a little bit background about this sketch. As we can see, this sketch is composed by non-touching circles in a canvas. This algorithm generate a random sample by generating K candidates, and choose the best one and add it to the system. The definition of best is that it’s the farthest away from the previous sample. By this way, the emergance of new sample would be more natural, compared with the uniform random sampling.

Some people ask, “is this useful? I can’t see how I can use it into my work.” They are probably wrong, an English artist use exactly the same effect in his work Silent Buddha. It’s a really impressive work.

Now take a look from the inside.

Read More / 继续阅读

Share