我们为毛不用CDN:一篇有关SPDY和SSL的童话

上周我们使用了个新的“SSL everywhere”来安装设置这个网站。虽然我们对于能够在整站使用SSL协议感到十分兴奋,但却还是不能确定应用新协议后网站性能如何,因此我们首先着重测试网站由旧到新交接过程中的实际性能。使用CDN本来是一个不应该使用的方法,因为它会让整个网站的运行速度上升;但在测试了几个不同的CDN后,我们得到了几个意想不到的结果。 继续阅读“我们为毛不用CDN:一篇有关SPDY和SSL的童话”

OmniGraffle (四)化繁为简

OmniGraffle 在内容组织上有页面和图层这两个层级,稍有点遗憾的是目前的版本还没有文件夹的管理层级,希望后续的版本能加上。页面、图层、共享图层实现对内容的组织和共享。另外,OmniGraffle 还能像Keynote一样进行演示,页面以及图层之间可以通过「动作」的设定进行跳转或者打开指定的文件,这种整合能力有助于我们在 OmniGraffle 中以项目的方式来推进工作。例如,一个文稿中可以包含思维导图、流程图、软件原型以及交互演示,在流程图中设置动作直接跳转到软件原型的展示页面,方便我们在逻辑和界面效果展示上平滑的切换。

流程图或思维导图一类的基础绘图中,一般也就1-2页的内容,用到图层的机会也不多,通常只是把页眉页脚这些公共元素用共享图层来统一。原型图、平面图这类绘图中,图层的作用更突出一些,可以用图层管理繁杂的绘图元素,按元素属性或者目的的不同来分层管理,例如,平面图中建筑平面的电源布局、网络布线、人员位置、设备位置等等都可以基于图层来分层管理,通过图层的显示或隐藏来获得不同的结果。

继续阅读“OmniGraffle (四)化繁为简”

OmniGraffle (三)基础绘图和模具

基础绘图中的流程图和思维导图在绘制上有一个共同点,就是希望软件在设计上能尽可能的减少对思考过程的干扰,用简单有效的方式先帮助我们完成记录,然后再进行加工和排版美化。

快速记录是首要的任务,因为很多时候想法稍纵即逝。面对电脑以及软件里那些绚丽的模板和模具时,往往我们忘记了记录时我们真正需要的是如纸笔般的朴素,美观和布局是排在后面的,这个顺序很重要。

OmniGraffle 的模板「Automatic Layout」分类中提供了针对组织结构图和思维导图的范例,基于这类模板新建文稿后,页面中已经包含了简单的图例,同时「版面」面板中「图表布局」的「自动布局」处于勾选状态,这意味着你创建的对象将依据「图表布局」中的样式自动排列。对于中心发散和树形结构的图表来说, OmniGraffle 的这种设计对绘图效率有很大的提升。不过如果你绘制的是流程图,就需要关闭「自动布局」,因为 OmniGraffle 中所包含的几种简单布局方案并不适用于流程图,这点上另一个绘图软件 yEd 更有优势。

继续阅读“OmniGraffle (三)基础绘图和模具”

OmniGraffle (二)对象的控制

OmniGraffle 里的对象可以分成四种:形状、文本、线条和图片,其中文本比较特殊一点,可以以文本框的属性独立存在,也可以按形状特性来控制其大小,此外,形状、线条和图像中都能以标签的形式包含文本,独立存在的文本不妨把它看做是没有填充和边框的形状,这样我们真正要面对的对象是形状、线条和图像。

继续阅读“OmniGraffle (二)对象的控制”

OmniGraffle (一)从工具栏开始

OmniGraffle的软件布局和大多数图形类软件类似,中间是编辑区,左边是页面和对象组织的管理,右边是参数设置和模具,顶栏有一些常用的快捷图标。从左到右由页面、对象的管理到细致的元素的定义和设置,纵深上用页(版面)来承载连续的内容,用层的堆叠将绘图过程化繁为简。

继续阅读“OmniGraffle (一)从工具栏开始”

性能分析,strace的用法

在linux系统中,strace 命令是一个强大的工具,它 能够显示任何由用户程序发出的系统调用。 strace能够显示这些调用的参数并返回符号形式的值。 strace 从内核接收信息,而且无需以任何特别的方式来构建内核。strace 的每一行输出包括系统调用名称,然后是参数和返回值.

在linux系统中我们可以通过man查看它的说明:

[code]

STRACE(1) STRACE(1)

NAME
strace – trace system calls and signals

SYNOPSIS
strace [ -dDffhiqrtttTvVxx ] [ -acolumn ] [ -eexpr ] … [ -ofile ] [ -ppid ] … [ -sstrsize ] [ -uusername ] [ -Evar=val ] … [
-Evar ] … [ command [ arg … ] ]

strace -c [ -D ] [ -eexpr ] … [ -Ooverhead ] [ -Ssortby ] [ command [ arg … ] ]

DESCRIPTION
In the simplest case strace runs the specified command until it exits. It intercepts and records the system calls which are called by
a process and the signals which are received by a process. The name of each system call, its arguments and its return value are
printed on standard error or to the file specified with the -o option.

strace is a useful diagnostic, instructional, and debugging tool. System administrators, diagnosticians and trouble-shooters will find
it invaluable for solving problems with programs for which the source is not readily available since they do not need to be recompiled
in order to trace them. Students, hackers and the overly-curious will find that a great deal can be learned about a system and its
system calls by tracing even ordinary programs. And programmers will find that since system calls and signals are events that happen
at the user/kernel interface, a close examination of this boundary is very useful for bug isolation, sanity checking and attempting to
capture race conditions.

Each line in the trace contains the system call name, followed by its arguments in parentheses and its return value. An example from
stracing the command ‘‘cat /dev/null’’ is:

open("/dev/null", O_RDONLY) = 3

Errors (typically a return value of -1) have the errno symbol and error string appended.

open("/foo/bar", O_RDONLY) = -1 ENOENT (No such file or directory)

Signals are printed as a signal symbol and a signal string. An excerpt from stracing and interrupting the command ‘‘sleep 666’’ is:

[/code]

继续阅读“性能分析,strace的用法”

一些商业术语

做网络营销的人,我们要知道以下常见名词解释:

   CPC (Cost Per Click): 按点击计费
   CPA (Cost Per Action): 按成果数计费
   CPM (Cost Per Mille): 按千次展现计费
   CVR (Click Value Rate): 转化率,衡量CPA广告效果的指标
   CTR (Click Through Rate): 点击率
   PV (Page View): 流量
   ADPV (Advertisement Page View): 载有广告的pageview流量
   ADimp (ADimpression): 单个广告的展示次数
   PV单价: 每PV的收入,衡量页面流量变现能力的指标
   RPS (Revenue Per Search): 每搜索产生的收入,衡量搜索结果变现能力指标

ROI: 投资回报率(ROI)是指通过投资而应返回的价值,它涵盖了企业的获利目标。利润和投入的经营所必备的财产相关,因为管理人员必须通过投资和现有财产获得利润。又称会计收益率、投资利润率。

CPT:即“Cost Per Try”的英文缩写,这种模式主要是移动应用渠道营销平台以试玩为付费标准,而不仅仅以应用的显示次数或者联网激活付费;这种方式的特点是按用户使用时长或使用周期计费,可以从根本上杜绝刷流量、激活作弊,是最真实的、有效的快捷的营销方式之一。

php中session的相关知识

近期在做登陆相关的东西,所以又重新接触了session的一些知识,可以分享出来。

因为http是无状态的,所以为了记住客户端和服务端之间的关系,http协议在其中增加了cookie这个东西,它也是附加在http协议中的。其中cookie的设置是在响应头中,Set-Cookie:,它会告诉客户端需要设置的cookie以及一些属性,而客户端在请求的时候也会在请求头中带上本地的Cookie内容。通过cookie我们就可以标识客户端(当然,该cookie必须只跟该客户端对应),如果客户端禁用掉cookie,还有一种方式就是将cookie的内容通过uri参数或者隐藏的post域提交。
继续阅读“php中session的相关知识”

Merkle_tree

Amazon Dynamo论文解读 – Merkle Tree的使用

Merkle Tree是Dynamo论文中用到的一个算法,读这篇论文前,我并不知道这个算法,所以找了相关资料了解了解,以便我对论文有更进一步的了解。

  什么是Merkle Tree

   Merkle Tree,是一种树(数据结构中所说的树),网上大都称为Merkle Hash Tree,这是因为 它所构造的Merkle Tree的所有节点都是Hash值。Merkle Tree具有以下特点:

    1. 它是一种树,可以是二叉树,也可以多叉树,无论是几叉树,它都具有树结构的所有特点;
    2. Merkle树的叶子节点上的value,是由你指定的,这主要看你的设计了,如Merkle Hash Tree会将数据的Hash值作为叶子节点的值;
    3 非叶子节点的value是根据它下面所有的叶子节点值,然后按照一定的算法计算而得出的。如Merkle Hash Tree的非叶子节点value的计算方法是将该节点的所有子节点进行组合,然后对组合结果进行hash计算所得出的hash value。