英语中有几个表示商品的词 goods commodity product merchandise wares 区别

来源:https://www.zybang.com/question/c92b94d22116484221401ba7990b3676.html

英语中有几个表示商品的,goods,commodity,product,merchandise,wares 区别

goods,commodity,product,merchandise,wares这些名词都可表示“商品,货物”之意.

但是products是产品,goods是物品,commodity是日用品,merchandise是货物
详细点就是:goods一般生活或商业用词,指销售或购入的商品.Goods 货物!
commodity作“商品”解时系经济学名词,也可指日用品.
product一般指工业产品,也可泛指各种各样的产品.
merchandise正式用词,指商业上销售或商家拥有货物的总称.
wares 指上市待卖的商品或货物.多用复数形式.
merchandise 商品,泛指商品,不特指某一商品

高富帅们的Git技巧

Git是一个分布式版本控制系统,拥有许多神奇而易用的特性(比如:分支),这让它可以轻松适应各种工作流程。这篇文章不涉及Git的基本使用,而是介绍了一些高级却有用的小技巧。让我们一起来看看高富帅们的Git技巧,准备好逆袭吧!

以“块”形式暂存你的改动

你肯定已经很熟悉的使用git add命令来将改动暂存到暂存区(staging area)了。你可能也会偶然因为两个不同的原因而做了一次改动,却没有分别提交(仅仅提交了一次),所以,当你执行git log时,会看到诸如这样的提交信息:“修改X,改动无关的Y”。如果这看起来像是你的工作方式,交互式add将是你的有力工具。

交互式add(或者叫add块),将会一个块一个快的循环你的改动。使用命令git add -p时,你可以在每个改动“块”(即:连续的改动会被组织到一起)时进行一些选择,比如:切分当前块为更小的块、跳过一个改动块、甚至手动的编辑该块,你 可以敲入?来查看所有该命令提供的选项。

开始以“块”形式暂存改动简单到只需一条命令(括号部分替换为特定文件):

git add -p (path/file)

译者注:感觉这条命令平常用的较少,我遇到需要分别提交的情况时,都是手动来add然后提交,该命令是这种方法的高级版本。我们平常可能对提交历史的重视比较低,常常出现一些无用的、无意义的提交信息,可以试试这条命令。

切换到最后所在分支

作为一个善良的码农,当你需要快速做些修正或是清理工作时,你都应该花些时间来对待。如果你的工作流程是十分依赖分支的话(译者注:强烈建议如 此),你可能不希望无关的修正影响到现在正在进行功能开发的分支。这意味着,你应该使用git stash命令来暂时存放你的改动,然后切到master分支(译者注:或是其它啥分支,我一般是取名为fix),在那个分支进行修正。(译者注:修正完 了,可以切回正在进行功能开发的分支,执行git stash pop来弹出之前暂存的改动,继续进行开发)。在不同分支间切换很乏味,幸好这里有个快捷命令可以切换到你最后所在的分支:

git checkout -

这个语法对于使用linux的高富帅们来说一定不陌生,cd命令有个类似的缩写cd -,表示切换到你最后所在的目录。当你需要切回功能开发分支时,你根本不用关心那个分支是啥名,只需git checkout -。

译者注:感觉tab键的自动补全也挺好用的,不过这条命令可以少敲点字。有了这条命令,妈妈再也不用担心我的分支切换了。

显示哪些分支被合并了(或是哪些没有被合并)

在使用git时,你可能会创建许多分支,导致执行git branch命令列出分支时变得有些杂乱。于是,你想处理那些已经合并到master分支的无用分支,但是,当你执行git checkout -d 来删除分支时可能会遇到“麻烦”(译者注:git会拒绝删除未合并的分支并提示你),如果使用以下命令,你将不再需要三思而后删,可以自信的处理那些已经 合并了的分支。

如果你想要看看你的本地分支里哪些分支是已经合并进你当前所在的分支时,可以使用:

git branch --merged

反过来,如果需要查看哪些分支还没有合并进当前所在的分支,可以使用:

git branch --no-merged

结合高富帅的UNIX工具,你可以轻松的删除那些已经合并了的分支:

git branch --merged | xargs git branch -d

译者注:xargs是UNIX平台的一个工具,它的作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题。如果git branch –merged显示的是a,b,c三个分支已经合并,上面的命令会转换为:git branch -d a b c。更多xargs的信息:http://zh.wikipedia.org/wiki/Xargs

从另一分支获取文件内容而不用切换分支

设想你正在进行重构,你创建了好几个分支并在各分支下进行改动。这时,你想把另一个分支里某一个文件的改动引入到当前工作的分支里,为了达到目的你 可能需要好几步:git stash你的改动;切换到那个分支;获取文件的改动;切回工作分支(当然是使用git checkout -);继续进行编辑(译者注:别忘了git stash pop)。但是,你也可以直接检出另一分支的文件,并且合并到你当前所在的工作分支,使用命令(括号部分替换为对应的分支和文件):

git checkout (branch) -- (path/file)

以最后提交排序的Git分支

想必你已经使用上面的tip处理了杂乱的分支,有一些是用–merged选项标志来清理的吧。那其它的分支咋办呢?你咋知道哪些是有用的,哪些是 完全过期无用的呢?git for-each-ref命令可以打印出一个列表,该列表显示每个分支最后一次提交的引用(reference)信息。我们可以自定义输出来包含一些有用 的信息,更重要的是我们还可以按日期排序。可以使用下面的命令来输出一个列表,该表将显示按时间先后排序的每个分支的最后提交信息、提交者等信息:

git for-each-ref --sort=-committerdate --format="%(committername)@%(refname:short) [%(committerdate:short)] %(contents)"

还可以把它定义在gitconfig里:

[alias]
  latest = for-each-ref --sort=-committerdate --format=\"%(committername)@%(refname:short) [%(committerdate:short)] %(contents)\"

译者注:定义后就只需执行git latest了。注意双引号需要转义!

在玻璃房内的人们别用git blame

或者说,在玻璃房内的人们不应该直接使用git blame而不带下文的选项标志。(译者注:玻璃房内的人是完全能被别人看到的人。这里的意思应该是想说,你每一次提交的变动都会被记录到git仓库的历 史,对于git仓库来说,你就像是住在玻璃房里的人,没有任何秘密,你根本逃不过git的”责问“)git blame是很有用的命令,它就像使用科学来证明你是正确的!但是请注意,许多文件的变动是很表面的,发现问题的来源需要更多的探索。像是移除空白、移动 内容到新行、移动内容到另一文件等动作都可以使用选项来忽略掉,以便更容易的找到代码变动的始作俑者。

在你blame(责备)他人前,记得用以下命令看看结果:

git blame -w  # 忽略移除空白这类改动
git blame -M  # 忽略移动文本内容这类改动
git blame -C  # 忽略移动文本内容到其它文件这类改动

译者注:git blame用来显示一份文件每一行的最近一次提交的提交hash值和提交者。当你跟别人说“我真的没改过这个文件啊”之前,就得git blame下。

在整个git仓库提交历史中找寻内容(然后删掉它)

你有时可能需要查找一行你写的代码,但是就是无法找到。它可能安放在了一些已经被遗忘的分支,或是删除了很久,又或是就在那显而易见的地方。无论哪种方式,你都可以通过一些命令在整个git仓库的历史中搜寻特定的字符串。

首先,我们需要拿到所有的提交,然后,使用git grep来搜寻特定的字符串。如下:

git rev-list --all | xargs git grep -F '搜寻的字符串'

你可能有一个粗心的朋友不小心在仓库里提交了诸如,用户名、密码、外婆的大蒜食谱等敏感信息。首先,他们得更改用户名、密码(并向外婆道歉)。然 后,你需要搜寻这些得罪人的文件,并将他们从整个仓库的历史里抹去(这听起来好像很容易)。经过这个处理,那些执行git pull的伙计们就会发现所有提交中包含的敏感信息都被清理干净了,而那些没有合并你的远程改动的家伙还是拥有敏感信息(所以,千万别忘记先改用户名和密 码)。我们来看看怎么操作。

首先,重写每个分支的历史,移除敏感信息:

git filter-branch --index-filter 'git rm --cached --ignore-unmatch (filename)' --prune-empty --tag-name-filter cat -- --all

然后,将记录敏感信息的文件增加到.gitignore文件,并提交(括号部分替换为对应文件名):

echo (filename) >> .gitignore
git add .gitignore
git commit -m "Add sensitive (filename) file to gitignore"

接着,由于我们改写了历史,我们需要“强制”的将改动推到远程:

git push origin master --force
# 译者注:还可以使用命令
git push origin +master

最后,这个文件还在你的本地仓库里,还需要将它完全抹除:

rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now
git gc --aggressive --prune=now

你这粗心的朋友从敏感文件的危机中解脱,而你用你高超的git知识成功逆袭,成为了他的英雄!

译者注:一天,妹子叫我去她家帮她把她的三围信息从git仓库的历史里完全删除,我研究了很久不得要领。妹子说,不如我们做点其它的事吧。我觉得我的git知识被她鄙视了,坚定的说,我一定要把它删掉!然后,就没有然后了… …

忽略文件跟踪

在和他人合作时可能常常意味着你需要更改一些配置才能让应用在环境里跑起来,这时,常常会不小心把这些只对你有意义的配置文件也给提交了。为了不再 常常关注这些文件,看着它们在git status时放肆的显示“modified”,你可以告诉git忽略它们的改动。这种方式,可以看成是一种和仓库绑定的gitignore文件(括号部 分替换为对应文件):

  git update-index --assume-unchanged (path/file)

译者注:感觉,.gitignore文件更方便和好理解。

让分支的历史归零

不管出于啥理由,有时从头开始正是你需要的。也许是你接手了一个不确信能安全开源的代码仓库;也许是你要着手做些全新的事情;也许是你想创建用于其 它目的一个新分支,又希望继续在仓库里维护它(比如:github页面,项目的文档一类的东西)。上述的情形下,你可以非常简单的创建一个没有提交历史的 分支(括号部分替换为对应分支):

  git checkout --orphan (branch)

译者注:我们知道,分支只是对提交的一个引用,所以,每当从当前分支创建一个分支时,被创建的分支都会延续之前的历史,但是这种方式却不会,是一个完完全全干净的git分支,没有任何的提交!

你一定离不开的别名

不讨论能节省大量敲击时间的“git别名(git alias)”技巧的git文章一定都是在耍流氓。停止输入冗长的命令,使用超级有用的别名吧!git别名可以加到.gitconfig文件里,或是使用 命令(译者注:本质就是改写.gitconfig命令)来增加(括号部分替换为别名和对应的命令):

    git config --global alias.(name) "(command)"
  1. 在依赖分支的工作流程中,你常常要在不同分支间切换,每次敲击节约你6个字母。
    co = checkout
    
  2. 在提交前瞧瞧你将要提交的都有什么改动是一个好习惯,这可以帮助你发现拼写错误、不小心的提交敏感信息、将代码组织成符合逻辑的组。使用git add暂存你的改动,然后使用git ds查看你将要提交的改动动。
    ds = diff --staged
    
  3. 你可能十分熟悉git输出的详细状态信息了,当到达一定境界时,你可能需要忽略所有那些描述,直击问题的核心。这个别名输出将输出git status的简短形式和分支的详细信息。
    st = status -sb
    
  4. 你是否在提交后才发现忘记git add某个文件了,或是提交了才想再改动些啥?amend(修正)暂存区到最近的一次提交吧。(译者注:这个命令不太好理解,–amend是重写提交历 史,-C是重用某次提交的提交信息。场景是当你提交完了发现还有些改动没提交,又不想写什么“改动了X,再次提交”这种狗血的提交信息。重新git add并git amend后,重用上次的提交信息再次提交,替换上次的不完整提交。特别注意–amend重写了提交,如果你已经push到远程了,慎用这条命令!)
    amend = commit --amend -C HEAD
    
  5. 有时上面的修正可能不好使了,你需要undo(撤销)。undo会回退到上次提交,暂存区也会回退到那次提交时的状态。你可以进行额外的改动,用新的提交信息来再次进行提交。
    undo = reset --soft HEAD^
    
  6. 维护一个多人编辑的代码仓库常常意味着试着发现何人在改动什么,这个别名可以输出提交者和提交日期的log信息。
    ls = log --pretty=format:'%C(yellow)%h %C(blue)%ad %C(red)%d %C(reset)%s %C(green) [%cn]' --decorate --date=short
    
  7. 这个别名用来在一天的开启时回顾你昨天做了啥,或是在早晨刷新你的记忆(括号内替换为自己的email)。
    standup = log --since '1 day ago' --oneline --author (YOUREMAIL)
    
  8. 一个复杂的仓库可能很难用直线式的输出来查看,这个别名可以用图表的形式向你展示提交是怎样及何时被加到当前分支的。
    graph = log --graph --pretty=format:'%C(yellow)%h %C(blue)%d %C(reset)%s %C(white)%an, %ar%C(reset)'
    

译者注:我根据上面的别名进行了一些整理修改,这是我现在的.gitconfig里的别名配置:

[alias]
  st = status -sb
  co = checkout
  br = branch
  mg = merge
  ci = commit
  ds = diff --staged
  dt = difftool
  mt = mergetool
  last = log -1 HEAD
  latest = for-each-ref --sort=-committerdate --format=\"%(committername)@%(refname:short) [%(committerdate:short)] %(contents)\"
  ls = log --pretty=format:\"%C(yellow)%h %C(blue)%ad %C(red)%d %C(reset)%s %C(green)[%cn]\" --decorate --date=short
  hist = log --pretty=format:\"%C(yellow)%h %C(red)%d %C(reset)%s %C(green)[%an] %C(blue)%ad\" --topo-order --graph --date=short
  type = cat-file -t
  dump = cat-file -p

via alimama mux
作者:Chris Kelly 译者:栖邀
英文原文

来源:http://segmentfault.com/a/1190000002448847

linkedIn今日正式入华 专访中国总裁沈博阳

专访 中国 总裁 沈博阳

腾讯科技 朱旭冬 2月25日报道

筹备已久的linkedIn简体中文版网站终于在今天正式上线了,并且宣布的中文名“领英”。虽然目前中文网站仍被称为“测试版”,但这标志着linkedIn正式进入中国。

作为全球最大的职业社交网站,linkedIn在全球有近3亿用户,在中国有约400万用户——这个数字可以从两面来看,相比linkedIn全球,这只是很小的一部分;从另一面看,在尚未发布中文版的时候能获得400万用户,这已经是一个不错的成绩。

对于linkedIn入华,外界最多的质疑无非两点,一是跨国互联网公司在中国没有成功先例;二是在中国可能并不存在职业社交这样的需求,因为中国的类似网站也没有成功先例。

linkedIn中国区总裁沈博阳在接受腾讯科技专访时表示,他现在无法证明linkedIn一定会成功,跨国公司的挑战一定存在,但是linkedIn为此也做了充分的准备,“本地团队和运作加上国际平台的支持,成功可能性至少大于50%”。

他也相信中国用户有职业社交的需求,因为中国年轻人也越来越多会换工作,对职业生涯会有很多追求。而linkedIn也不仅仅是帮助人们找工作,同时还能拓展人脉,帮助自己做好手头上的工作。

在采访中,除了老生常谈的本土化,他强调的另一个词是“耐心”。不过谷歌(微博)在进入中国时也强调过耐心,但最终选择了退出。对linkedIn中国来说,心态或许比战略更为重要。

中文版上线遵循MVP原则

发布中文版网站对linkedIn来说是非常重要的一件事,但这次发布的网站并非完美。

对此,沈博阳表示,linkedIn中国的产品发布会遵循MVP原则,即先发布一个基本功能可用的产品,然后进行改善。这也是linkedIn创始人、董事长里德•霍夫曼(Reid Hoffman)非常推崇的产品发布原则。

“我们这次主要是做了中文化,在一些地方打通了腾讯微博和微信。但是你会发现有一些英文版的功能缺失了,一些功能并不适合中国用户,这些是我们未来要改进的。”沈博阳说。同时,linkedIn也计划将为中国用户服务的服务器搬到中国,一方面改进访问速度,同时也适应中国互联网监管需要。

社交网站能否做成,用户量是一个非常重要的指标。但linkedIn中国并不打算做太多活的或者推广来获取用户,更多还是希望通过产品和品牌让网站用户能有机的增长。沈博阳表示,互联网服务都有网络效应,容易形成强者更强弱者更弱的局面,一个服务做好了就会像黑洞一样吸引用户。

沈博阳并不愿意过多评价国内其他职业社交网站,但他表示这些网站没有做到非常成功的一个原因就是有linkedIn的存在,虽然linkedIn之前并未进入中国,但仍然吸走了大量有职业社交需求的用户,尤其是高端用户。

对于职业社交来说,高端用户有为重要。这些人更有影响力,更能够吸引其他人的加入。同时,linkedIn通过为企业提供人才招聘解决方案来获得收入,高端用户对企业的吸引也更大。

虽然linkedIn在中国成功必须要本土化,但是沈博阳并不打算一下子让linkedIn变得非常“本土”。他表示,linkedIn在中国发展初期还是会主打英文名,因为现在来说,用英文名更能唤起用户的品牌感知。

近期重点仍为团队

对于任何一家公司来说,团队都是最重要的,而团队的领导者则是重中之重。对linkedIn中国来说,找到合适的领导者非常重要。

沈博阳告诉腾讯科技,linkedIn为进入中国至少非常认真细致的调研了两年,而他也是两年前第一次和linkedIn接触。“当时我在做糯米,并没有离开的打算。不过他们说的是从我这里了解一些中国互联网的情况,于是先交了朋友。”沈博阳说。

真正让他开始考虑linkedIn的工作机会的时候是在2013年下半年。2013年8月,百度宣布收购59%糯米网股份。这让沈博阳在糯米网所扮演的角色会发生变化。另一边,linkedIn也加快了入华的脚步,他们需要一个合适的领导者。

2013年9月-10月,沈博阳和linkedIn CEO 杰夫•韦纳尔(Jeff Weiner)以及创始人兼董事长里德•霍夫曼(Reid Hoffman)见面。韦纳尔的一句话打动了沈博阳,他说linkedIn的使命是连接世界上所有职场人士,让他们的工作更有效率并帮助他们成功,如果不能连接中国,那么这个使命就得改了。

回国后沈博阳就开始准备从糯米网离职,并于今年1月1日正式加入到linkedIn。这标志着linkedIn入华已经进入冲刺阶段。

沈博阳的linkedIn档案里有他所有工作记录。在加入linkedIn之前,他服务过最重要的三家公司分别是雅虎、谷歌和糯米,担任过技术、管理、商务拓展、创始人等多个角色。谷歌的工作经历帮助沈博阳积累了跨过公司的工作经验,而糯米这个人人公司内部的创业项目,则让他有了在大公司创业的经验——linkedIn中国兼有这几项特质,也让沈博阳成了最合适的linkedIn中国区总裁人选。

linkedIn中国由linkedIn联手国内两家投资公司红杉中国和宽带产业基金共同成立,这让linkedIn不仅仅是跨国公司,同时也更像一家本土创业公司。联手国内投资机构进入中国,亚马逊AWS入华也是如此。

“这种方式可以让linkedIn中国获得linkedIn全球的支持,同时也能向创业公司一样运作。”沈博阳说。另外,沈博阳直接想韦纳尔汇报,并且每周有一次和韦纳尔、霍夫曼分别一对一沟通的机会。这也让linkedIn中国可以更灵活同时更受重视。

对沈博阳来说,当前最重要的事情仍然是团队的搭建。他表示,虽然linkedIn是国际公司,但除了直接向他汇报的员工,其他员工都没有英语要求。“中国有很多人才,但是加上英语这一项,可能三分之二都被挡在了外面。我们还是一家中国公司,我也不希望以后大家开会用的语言是英文。”他说。

xp系统50天后停止服务

突然发现,原来这个时空也是流动的!黄家驹去世20年了,不老神话林志颖39岁了,还珠格格赵薇都当妈了,蜡笔小新之父死了,火影忍者就快结局了,XP还有不到两个月就停止服务了……十年前我们盼青春, 十年后我们致青春,真的开始老了。

1392728669401

据了解,4月8日以后,微软将正式停止对XP系统 包括Office 2003的服务支持,微软官方网站对于XP用户的建议是换个新电脑,因为只有极少数的XP电脑可以支持直接升级至微软最新的Windows8.1系统。然而数据显示,我国XP系统的用户高达2亿,因此XP系统停止服务”引来高度关注。

1392728706760

XP哭着问Win8:”为何停止为我服务?”Win8无辜的看了看Win7。Win7顿时冒火了,”你看我干嘛?又不是我干的!”XP哭得愈加厉害了,骂道:”TMD,老子出来混的时候,你们还没有生呢!你们也有被停止服务的一天!我们走着瞧!”听见这话,Win7看了看正得意的Win8,内心一股恐惧袭来。

1392728722223

总归是长江后浪推前浪,前浪死在沙滩上!xp君,一路走好!这个时候很多爱国青年又跳出来说我们应该迅速拥有自己的操作系统,你确定我们真的能制造出”自己”的国产操作系统?

1392728849643

上周,中科红旗北京总部的大门上粘贴了一张最新的公告,通知全体员工,公司正式解散,员工劳动合同全部终止,公司进入清算程序。这家成立了14年之久的国产操作系统厂商最终是没能熬过这个冬季,比XP还先去一步。

国产操作系统厂商中科红旗破产清算

近日,著名开源专家、北大数学教授袁萌连续在个人博客上撰文,揭露国产COS操作系统的一些真相,指出上海联彤公司实际上并无实力自主研发国产COS操作系统,因此被戴上国产”桂冠”的COS操作系统只能算是一个”杂种”操作系统,不能算作中国操作系统”梦”!

1392728887580

cos说到底就是cosplay嘛~

中科红旗倒闭 国产操作系统研究画上句号

【PConline 资讯】2月10日,一家中科院领头的系统研究企业贴出清算公告:由于经营发生严重困难,董事会于12月13日决议即日解散公司,并成立清算委员会进行清算。公司与全体员工的劳动合同也在即日起终止。这家企业就是中科红旗,一个曾以挑战微软为己任成立的中国公司。自此,这家公司的国产操作系统的研究工作彻底画上了句号。

中科红旗倒闭 国产操作系统研究画上句号

事起缘由

2000年,这家以研究能挑战微软的国有操作系统为己任的公司成立,当时的公司董事长以及首席科学家是在中国科学院软件研究所副所长孙玉芳,秉着“中国必须拥有自主软件操作系统”共识,这家公司由中科院牵头成立。早在2004年,公司就宣布主营业务实现盈利,红旗Linux算是公司较为成熟的产品,中石油、邮政以及各大银行等多个部门上均有采用并予以付费。

公司的转折发生在13年4月,一封在Linuxeden社区上贴出的员工请愿书称:13年的4月,公司上百名员工被召集起来开会,总裁贾栋告诉员工们,公司资金链出现问题,当月工资无法如期发放。此外,由于资金链断裂,公司所处大厦一直处于无交费状态,12月大厦物业已经采取断水断电等措施,督促公司结算。

自此,员工工资拖欠持续至今,直到13年12月,董事会决议公司成立清算委员会对公司进行清算。

请愿书指出核高基项目为罪魁祸首

这封在技术社区发表的员工请愿书道出公司衰败的转折点。

2010年的核高基重大转型中,中科红旗承担了“通用桌面操作系统研发及产业化”主要课题,并和中科方德联合承担了4个子课题。按照规定来说,在政府拨款专项项目基金的同时,企业和地方政府也需要提供相近的资金支撑,然而在中科院承诺补齐资金的前提下,但最终没有补齐专项资金导致公司资金链断裂,很多市场员工随机出现了自垫资金的情况,公司高层为了实现项目,也将储备和支撑公司发展的资金全部投入到项目当中。

同时,中科院称,中科红旗的每年收入不超过1000万元,而2010年和2011年的主要收入来自核高基项目。在2012年,核高基项目资金用尽出现了资金链断裂问题。这跟中科院软件是无关的,并称中科红旗目前的问题是经营造成的。

随着资金链完全断裂,员工工资以及公司运营资金难以支撑,员工提出辞职。中科红旗股东达成一致,解散公司进入清算程序。

 本文来源:太平洋电脑网

从Google备份互联网看“数据安全”

【编者按】作者Todd Hoff是High Scalability创始人,为我们解读Google数据保密和数据安全负责人Raymond Blum的演讲。数据安全的一个重要工作就是备份,备份的容量扩展、存储备份的媒介、备份的效率……通过对互联网中庞大数据多样化、复杂的备份,使数据在任何情况下都能简单地还原、恢复。数据安全不仅仅是一个技术问题,它还受到现实的种种限制,做好数据安全,是任何一个企业都要考虑的问题。


CSDN推荐:欢迎免费订阅《Hadoop与大数据周刊》获取更多Hadoop技术文献、大数据技术分析、企业实战经验,生态圈发展趋势。


以下为译文:

Raymond Blum带领Site Reliability Engineers团队负责谷歌的数据保密和数据安全。当然Google从来都不会如实说有多少数据,但从评论上看目前还没到 yottabyte级(1YB=280B),不过也有很多exabyte级(1EB=260B)的数据了。仅Gmail就有接近exabyte的数据。

Blum先生在名为“ 谷歌如何备份互联网”的视频中解释,常见的备份策略对谷歌无效,原因听起来让人吃惊:它们大多是在努力用容量实现扩展。如果备份两倍多的数据,那时间、能源、空间也会消耗两倍,如果不这么做,就不能进行扩展。要让容量比支持容量的能力扩充更快,必须要有效率。从备份1exabyte数据转变到备份2exabyte数据,需要一个不同的计划。演讲的内容的主要关于Google是如何实现容量扩展的。

演讲的一些主要议题:

  • 从无数据丢失。甚至影响颇为不好的GMail停电事件也没有丢失数据,这远比备份许多磁带要复杂的多。数据从整个堆栈检索,每一层都需要管理,包括对人的管理。
  • 备份无用。还原你想要的部分,这是指还原系统而不是备份系统。备份是你要为还原付出的高昂代价。将工作转移到到备份上并使备份适当的复杂,是为了让还原尽可能的简单。
  • 不可以线性扩展。不可能有100倍的数据,你就能得到100倍的人力和机器资源。你只能去寻找使能力倍增的方法。自动化是提高利用率和效率的主要途径。
  • 冗余。谷歌的存储设备一直在老化。这当然不用说都知道,就像我们身体的细胞会死一样,Google并没有幻想着事物不会消亡,它只是为事物的消亡做好准备。
  • 多样性。如果你担心某个站点的位置不安全,那就把数据放在多个站点。如果你是担心用户错误,那就将用户交互与数据隔离。如果你想要避免软件bug的损害,那就把数据放在不同的软件上。从不同的供应商获取存储设备,以减少供应商的bug影响存储的数据。
  • 将人从繁琐的劳动中解放出来。通过GMail保留一封电子邮件有多少备份?这不应该是人关心的事情。通过GMail配置一些参数,系统会具体安排。这是不变的主题,高级别策略设置和系统实现了它。只有规范之外的事情发生才会需要人的参与。
  • 证明。如果你不试用它,那它就不会起作用。备份和还原就是不断的测试,以验证它们的工作的过程。

无论组织大小,都有很多要学习的东西。Blum先生的 演讲很风趣、信息量大、很值得一看。看起来他真的很喜欢工作中的挑战。

以下是我对这个演讲的注释,从中我们可以了解到许多不为人知的秘密:

  • 数据可用性必须是100%,不能有数据丢失
  • 统计学上,2GB文件中如果丢失了200K数据,似乎没什么大不了,但这个文件或许就不能用了,比如说可执行文件或报税表。
  • 数据的可用性比可访问性更重要。如果系统关闭,后果并不特别严重。但如果数据丢失,那就不是小事了。
  • 谷歌保证用以下所有可能组合保证数据安全:
  • 位置隔离
  • 隔离应用层问题
  • 隔离存储层问题
  • 隔离媒介故障
  • 想象一下移动滑块的情形。让软件像纵向滑块那样,让地址像横向滑块那样。如果你想要包含一切,你需要不同地址的软件层备份。你可以在不同的地址使用虚拟机。
  • 冗余不等于可恢复性
  • 制作多个备份不能保证数据不会丢失。
  • 多个备份对某些种类的停机是有效的。例如一颗小行星击中一个数据中心,而在一个很远的地方,你有这个数据中心的备份。
  • 如果你在存储堆栈中有一个bug,那把它复制到N个地方也没有用,因为bug破坏了所有备份。示例:请参阅GMail停机。
  • 相比小行星,代码中的bug、用户错误或已损坏缓冲区的写入,这些故障发生要多得多了。
  • 冗余对访问局部性有帮助。当你想要所有的数据引用与正在使用位置的数据尽可能接近时,备份是个不错的选择。
  • 因为这么多的备份,整个系统非常稳健
  • 谷歌的设备一直在老化。这不用说也知道,我们身体的细胞也同样会死。我们并没有幻想事物不会消亡,我们只是在为消亡做准备。机器也一直在损耗。
  • 冗余就是答案。合计一下,这要比单一的高质量机器更加可靠。单一机器可能会被一颗小行星摧毁。想要摧毁放在50个不同地点的机器就难说了。
  • 大规模并行系统的数据丢失几率更大
  • MapReduce在30000台机器上运行得很好,当然是在没有bug的前提下。一旦有bug出现,造成的影响也是成倍的。
  •  本地备份不能防止站点停机
  • 如果你的服务器机房中发生灾难性的破坏,那RAID也帮不了你。
  • Google文件系统(GFS),大约一年前,整个Google都在使用这个文件系统,它将RAID的概念又升级了一次。使用 编码技术将数据写入不同城市的多个数据中心,只需要N-1个数据片段,即可还原完整的数据。所以即使3个数据中心中一个停机了,也不会影响数据可用性。
  • 可用性和完整性是组织广泛的特点
  • 谷歌的工程师们,BigTable,GFS,Colossus都知道数据持久性和完整性是第一任务。很多系统需要检查并更正在数据可用性和完整性上的错误。
  • 多样性
  • 如果你担心某个站点的位置安全,那就把数据放在多个站点。
  • 如果你担心用户错误,那就把用户交互和数据隔离。
  • 如果你想要避免软件bug的破坏,那就把数据放在不同的软件上。从不同的供应商获取设备,以减少供应商的bug影响存储的数据。
  • 磁带备份真的很不错
  • 磁带好是因为它不像磁盘那样。如果可能他们甚至会使用打孔卡。
  • 想象一下假如你SATA磁盘的设备驱动程序里有一个bug。磁带就避免了这一问题。因为不同的媒介意味着不同的软件,这就增加多样性。
  • 磁带容量遵循摩尔定律,所以他们对磁带作为备份介质都很满意,虽然他们还在寻找替代品,现在很难说这些替代品是什么。
  • 磁带加密意味着有着不良企图的家伙们将很难从磁带中得到有用的东西。
  • 备份是无用的,真正需要关心的是还原
  • 在有人需要数据之前发现数据是否存在问题,你确定需要数据时再还原。
  • 持续还原。不断随机选择5%的备份,还原并对它们进行比较。为什么呢?因为需要在数据丢失之前查明数据是否还能用,找出存在的问题。
  • 自动比较。因为原始文件已更改,所以不能与原始进行比较。所以将校验码和校验码进行比较。把它带到源媒介、磁盘或闪存,或者其它的媒介。请确保数据可以做一次往返,自动比较是一直都在做的事情。
  • 故障率变化的警报
  • 你可能想要知道是不是有什么发生了变化。如果一切运行正常,那就没有必要告诉我了。
  • 预期会有一些失败,但别第一次尝试还原的文件失败就发出警报。
  • 假设首次尝试的失败率是N,第二次尝试的失败率为Y。如果故障率发生变化那一定是哪里出问题了。
  • 损坏
  • 磁盘随时都有可能中断,但因为你监视它,所以你能及时的了解到。
  • 要是磁带的话,只有你使用它的时候,才知道是不是坏了。虽然磁带保存的时间很长,但是你想在用它之前检测它是不现实的。
  • 不要将数据仅写到一盘磁带上。他们是墨盒,随时会有意外发生。
  • 向磁带写入数据时,编写器要保持数据不变,直到数据被完全写入。
  • 建立4盘完整磁带,然后通过XOR(逻辑运算)生成第五盘代码磁带。你可以失去5磁带的任何一个,也能恢复数据。
  • 现在告诉编写器它们可以更改源数据,因为数据已经到了到最终的物理位置,有冗余了。
  • 谷歌备份的每一bit数据都要经历这个过程。
  • 数以百计的磁带每个月都将丢失,并没有造成数据的丢失,就是得益于这个过程。
  • 假设当检测到一盘磁带丢失,通过使用连续还原和同级磁带重新生成另一个磁带,一切都没问题。在那种两个磁带都被损坏的罕见情况下,如果磁带上的受损的两个点相同,那数据就只好丢失了,只能在subtape一级完成重建。
  • 实现这些技术的成本很高,但是为了不丢失数据,很值得。
  • 备份是你为奢侈的还原付出的代价
  • 它是指还原系统而不是备份系统。还原是一个不可屏蔽的中断,他们胜过一切。
  • 让备份变得复杂而且只要需要就这样做。让还原变得快捷而且越自动化越好。
  • 恢复应该是傻瓜式、快速和简单。就算是一只猫也能完成还原操作。
  • 无论你休息得很好还是累的很惨,还原时才不会问你是不是准备好了。所以不要让人为因素决定服务数据还原的成功与否。
  • 大部分的系统都是这样工作的。
  • 数据源或许能够将数据存储一段时间,也许是在它备份之前的几天。但一旦备份完成,它随时都可以还原,而且还原得很快。
  • 为了使还原速度更快,不能将全部资源用于备份。花两个小时来读取磁带是不可行的。只写一半磁带,并行读取它们,这样你仅用一半的时间就可以获取数据。
  • 扩展是个问题
  • 当你有exabyte级的数据时,也会有现实世界的限制。如果你要复制10exabyte数据,然后它会花10周时间备份每一天的数据。
  • 考虑到分布在世界各地的数据中心,可供选择的方案并不多。你能给每个站点无限的备份容量吗?你会按区域划分所有备份吗?转移数据的带宽呢?你难道不需要带宽来为挣钱的流量服务吗?
  • 看看有关的费用。也有一些妥协方案,比如不是每个网站都有备份设施。必须平衡网络中的可用容量。怎样才能最划算?例如,只在有足够带宽的站点中进行备份。
  • 不能线性扩展
  • 你不能只是说想要更多的网络带宽和更多的磁带驱动器。驱动器中断的情况,如果你有10000个驱动器坏了,你需要10000个运算器来替换它们。你有10000个装卸码头来放磁带驱动器,直到一辆卡车把它们运走。这一切都不可以是线性的。
  • 虽然磁带库的数量提高了一个数量级,但参与其中的人并没有随之线性增长。
  • 比如早期曾有人预测,随着电话的增多,30%的美国人会被雇佣为电话接线员。显然他们没预见到未来的自动接线。
  • 自动化
  • 调度被自动化。如果你有一个服务,你说:我有一个数据存储,每N天我需要一个备份,在M时必须还原。内部系统完成这些事情:计划备份、运行还原测试和运行完整性测试等等。并且磁带故障的处理也是全自动的。
  • 人是无法看到这些的。也许有一天,你可能会问平均多少个磁带损坏了。或如果磁带破损率从每天100盒磁带变成每天300盒磁带时,就会发出警报。但在那之前不要问我:如果一天100盒磁带损坏是不是在正常水平内?
  • 人不应参与稳态操作
  • 装载和运输驱动器仍然是人类的活动。自动化的接口准备装运标签,得到RMA号码,检查已经出来的软件包,拿回执,如果出现故障,人才会进行干涉。
  • 库软件维护也类似。例如固件更新时,人不会将这些更新运行在每一个系统中,系统会自动下载这些更新,并进行验证、运行。这些常规的操作不需要人的干预。
  • 自动处理死机事件
  • 机器平均一分钟死两台。如果一台机器在进行MapReduce作业期间使用30,000机器,有一台机器死机了,那就不要告诉我了,处理完它,继续工作。找到另一台机器,转移任务,重新启动。
  • 如果有依赖关系那就先等待。如果你等得太久,就让我知道。你处理你自己的计划。这是算法的工作,不需要人为的操作。
  • 保持效率正向提高
  • 大幅提高利用率和效率。不能有100倍的数据就需要100倍的人或机器资源。
  • 2011年Gmail停机和还原,谷歌如何丢失数据又找回
  • 在周日的上午10:31他看到了一个网页,上面写:“Holly Crap打电话给xxx-xxxx”。关于中断要想了解更多,请看在 这里
  • Gmail的数据量达exabyte级别。这意味着大量的磁带。
  • 100%恢复并不意味着可用性也是100%,数据恢复要过段时间才能正常使用。
  • 一系列的bug和意外事件会产生在备份的过程中。即使是单元测试、系统测试和集成测试,对一些bug也是无能为力。
  • 从磁带中还原意味着大量的工作。还原时间和规模相关。还原gigabyte级数据可以在几毫秒到几秒时间内完成。还原200,000个收件箱中的几个gig,每个都得花去不少时间。
  • 把欧洲的几个同事叫醒,因为他们刚休息完、很清醒。这就是分布式劳动力的优势。
  • 从许多磁带还原和检验数据。不需要花几个星期或几个月时间,只需要花几天的时间。这使他们很开心。在类似情况下的其他公司花了一个月时间才意识到他们找不回数据了。需要采取一些措施以确保这个处理下一次更快。
  • 一个磁带驱动器需要2个小时来读。这些磁带分布在各地。否则在还原过程中,任何单一地点都不会有足够能力读取还原过程中涉及的所有磁带。
  • 压缩和校验码实际上不需要读取200K磁带。
  • 还原过程自那时以来已大为改善。
  • 优先还原
  • 已存档的数据可以在更重要的数据之后还原,比如你当前收件箱和发送的电子邮件。
  • 一个月内没用过的帐户可以等活跃用户优先恢复之后还原。
  • 备份系统被看作是一个巨大的全球有机体
  • 例如,不要只考虑GMail在纽约备份,因为如果该数据中心增长或收缩,备份需要适当调整规模。
  • 把备份看成一个横跨世界的巨型系统。备份时它可能完全是在别的地方完成。
  • 在磁带上的还原必须是在磁带所在的位置。但到它制作磁带时,数据可能在纽约而备份可能在俄勒冈州,因为在那里有容量。位置隔离是自动的,客户不知道自己的数据被备份在哪里。
  • 容量可以被迁移。只要有全球的容量和网络支持,磁带被放在哪无关紧要。
  • 拥有的数据越多,保存好它就越重要
  • 越大越重要的是他们的一条准则。谷歌曾经只是搜索引擎。现在它还是Gmail,还有驱动器、文档一类的东西。它现在变得更大也更重要了。
  • 有良好的基础结构
  • 处理问题时,有通用的解决方案再好不过了。在写MapReduce时可能从来没有想到它会被用于备份。但要是没有MapReduce,利用它进行备份的想法也是不会有的。
  • 扩展的重要性不言而喻,软件、基础设施、硬件、流程都要可以扩展。
  • 你不能说:我要去部署更多的磁带驱动器,就需要两倍的员工。你会雇这么多的人吗?你有两倍多的停车点吗?还有食堂房间?厕所?一切都要扩大规模。你会遇到一个瓶颈,然后寸步难行。
  • 证明
  • 别把什么事情都当作理所当然。希望毕竟不是一种战略。
  • 如果你不检验它,那就起不到作用。还原操作必须要检验备份。直到你结束了你还没证明什么。这种态度已发现有很多的不足。
  • DRT.灾难恢复测试
  • 每N个月都要模拟一场灾难恢复,看系统每一层的反应。
  • 如何做到无论灾难带走什么,公司都能生存下去?答案只有一个:必须学会适应。
  • 在基础设施和物理安全发现无数漏洞。
  • 想象有一个数据中心,一条通向数据中心的路,路上的卡车满载了备用发电机的燃料。那如果这条路不通了怎么办?最好有另一条路,另一供应商可以提供柴油燃料。
  • 必须要有供应链冗余策略。
  • 不同时间点不同地点不同软件堆栈中的冗余
  • 不要仅仅通过堆栈迁移数据。特别是暂停期间堆栈不同层中保留的数据。丢失的数据可以在其它地方找到。所以记住:时间、地点和软件。
  • 想一下Gmail的中断示例。如果备份损坏,数据怎样才能不会丢失?这是演讲时,听众的一个问题,他不想透露太多。数据是持续备份的。假设我们有下午9点的数据,假设下午8点出现损坏,但还没有做出磁带。这时损坏被停止了,软件被回滚到上一个工作版本。在一些还原点,所有堆栈中的数据是还在那里。这些就是磁带上的东西。磁带会备份这些东西。在前端上有,在日志中有。所有数据都可以实现重建。但要在所有数据被转移到另一个堆栈中之后再对其进行操作。
  •  删除问题
  • 不去重写磁带而只是删除数据的成本太高。
  • 一种办法是聪明地使用加密密钥。他没有告诉我们谷歌是怎么做的。
  • 当你信任你的同事,并给他们分配各自的职责时,一个巨型的组织就运作起来了
  • 相信他们能胜任自己的岗位。
  • 确定组织和软件接口定义得很好。执行层与层之间的检验测试。
  • 白名单和黑名单
  • 确保数据在安全的地方,保证数据不会在某些地方,保证数据位置多样性和位置独立性。
  • 最初并不是堆栈的功能。因为要满足政府的要求,必须添加进来。
  • 这些功能尽可能放在堆栈的最底层。填写正确的配置文件,就都完成了。

原文链接: How Google Backs Up the Internet Along With Exabytes of Other Data?(编译/毛梦琪 审校/周小璐)

走进支撑过8亿用户的Yahoo!数据中心

【编者按】Yahoo!是一家全球知名的互联网公司,拥有过8亿的活跃用户,提供了60多个全球化产品,分别部署在20多个国家或地区的数十万台服务器之上,然而雅虎全球的运维团队却仅有数百人。下面,我们通过雅虎北京全球研发中心高级系统运维工程师刘元概述的三个方面来了解雅虎的技术运维体系,剖析超大规模网络应用的运维挑战,走进Yahoo!数据中心!以下为原文:

基础设施

“工欲善其事,必先利其器”——需要支撑超大规模的网络应用,超大规模的全球基础设施是必不可少的。所以我们先看Yahoo!数据中心和全球的骨干网络有哪些特别的设计和考虑,来帮支撑超大规模的互联网应用。

图1 Yahoo自主设计的数据中心

首先通过两张图片(图1)来了解Yahoo!数据中心。我们的数据中心大多是自主设计和建造的,尤其在北美地区,我们自主设计并建造了三个超大规模的数据中心。这三个数据中心初期设计的容量均为20兆瓦,大概可容纳25000到30000台服务器及相应网络设备,并均有能力通过后续容量扩展至50兆瓦以上。

如果有参观过国内数据中心,或者有数据中心建设经验的同学可能会有所了解。影响数据中心建设的最主要因素往往不是网络带宽,而是电力和制冷。所以,雅虎通过近20年的经验积累,在这两方面沉淀了大量的专利技术以提高数据中心的密集度。我们自行设计机架及其电源模块以保证所有机架都能满负荷工作,同时实现所有电源的远程网络控制,这样可以有效的提升可维护性,降低现场工程师的工作负担。满架的服务器机架还有另一个好处:所有的服务器都是前吸冷风,后排热风,我们将服务器机架相对排列(面对面,背对背),这样就可以实现冷热风道的隔离,甚至完全密封热风通道,促使冷空气在均匀通过所有服务器散热后,由热风通道排出。这样不仅降低了制冷面积,还提升了散热效率。通过建设超大规模的数据中心,我们不仅增加了数据中心的密集度,提升了单个数据中心的计算能力,满足了日益增长的超大规模应用需求,同时还能提升数据中心现场工程师的管理效率,降低维护成本。此外,我们也不断聚焦新技术的采用以降低能源消耗。我们数据中心通过精心的设计,实现PUE(能源使用效率=总体能源消耗/IT设备能源消耗,越接近1代表能源效率越高)仅为1.08的业界领先水平。

除了数据中心是我们自行设计并建造的,我们全球的骨干网络也是自主设计。我们通过自行铺设光缆或租用运营商网络,构建了自己的Yahoo!全球骨干网。所有的网络设备都由我们的网络运维团队管理,核心网络均是多链路冗余,实现单点网络故障的自动转移,而不依赖网络运营商提供的SLA。

图2全球骨干网络示意图(不代表Yahoo!全球骨干网络设计)

我们的全球骨干网络均为高带宽互联,区域内我们提供10Gbps-40Gbps乃至北美地区的200Gbps互联带宽,洲际间也提供20Gbps的多链路冗余。骨干网络主要是传输雅虎内部数据,分发应用所需的数据到全球所有数据中心,收集全球用户访问数据到后端计算网格进行汇总和计算。

Yahoo!全球骨干网络除了与传统运营商网络互联互通,以方便最终用户能通过其运营商网络快速接入雅虎的各项服务,同时我们还与其他的大型互联网公司有交换网络连接,这样我们与其他大型互联网公司间的数据交换(如邮件数据交换)即可通过我们的交换网络传输,不再依赖于运营商网络。这样不仅提高了交换能力,更大范围降低对网络运营商的依赖性。

技术生态圈

有了世界顶尖的硬件环境,软件环境也不可少。下面我们着重介绍下Yahoo!的技术生态圈,看看Yahoo!使用了哪些产品和技术来支持大规模网络应用。

在雅虎内部构建一个超大规模应用其实并不是那么的复杂,因为我们已经提供了一整套完整的技术体系来帮助开发人员快速建立起一个具有高可维护性的超大规模应用。

图3 Yahoo!数据中心技术生态圈

从这张图我们可以看到一个新应用在生态圈里和现有技术平台的关系:

新应用(APPLICATION)只需要更多的关注自身的业务逻辑。与应用密切关联的本地信息,我们有一些本地存储(LOCAL STORAGE)技术来供应用使用,比如关系性数据库MySQL、Oracle,存储Key-value型数据的MDBM和Memcache。另外,雅虎还提供了大量的平台服务(PLATFORM SERVICES)供我们各种应用使用。比如统一验证平台YCA来完成所有应用内及应用间的身份验证,统一防御平台Ydod来帮助我们识别并且隔离恶意/滥用的流量,用户信息服务UPS可以让应用方便的获取这个用户的相关信息,如地理位置,兴趣喜好等。个性化内容推荐服务Slingstone,可以直接向用户提供个性化的雅虎内部及合作伙伴的内容信息。另外新应用还能方便快捷的接入广告平台(AD SERVER),获取个性化推荐的广告。前端应用收集到的各种应用相关信息(如浏览点击数据),通过我们构建在全球骨干网络之上的数据高速公路(DATA HIGHWAY)这一统一数据通道,及时地回传到雅虎全球最大的商用Hadoop群集。在Hadoop群集上不同应用及平台服务根据各自的需求,处理对应的数据,并将处理好的数据在通过雅虎全球骨干网络分发到各个数据中心的服务端,以方便前端应用的调用。同时Yahoo!在云端(THE CLOUD)还提供共享的云存储(STORAGE),以方便全球化应用的同步和调用各种共享数据。

除了这些常见的技术来帮助快速构建超大规模应用,我们还提供了大量的技术和产品来进行高效的运维和管理:

  • 主机信息管理系统:通过主机信息管理系统管理所有系统硬件信息,如CPU、内存、硬盘、网卡地址、Console接口、电源接口、物理位置等。
  • 角色配置管理系统:主要是把主机根据角色分成不同的组,不同角色的主机会应用不同的配置。不同角色的主机有不同的运维团队、系统配置、应用配置等。
  • 网络设备管理系统:包括交换机上的访问控制列表、负载均衡设备的配置、全球负载均衡配置,以及访问状态数据的统计。
  • 统一的监控平台:用于从不同层面进行监控,我们有所有主机系统数据的监控,也有基于服务可用性的监控。然后我们也有访问量、访问延时等应用层面的数据监控,并可以和历史数据进行比较。

所有的这些平台大多都是雅虎运维团队自行开发和维护的,更贴合Yahoo!的使用体验,帮助对超大规模的主机进行统一和高效的管理。

运维团队

前面的两条分别是硬件和软件环境,除了一流的硬件和完备的软件环境,能够实现高可用性大规模应用的核心,还是人。所以我们在最后,会给大家介绍雅虎的全球运维团队是如何工作的。

在Yahoo!我们的运维团队除了基础设施的Operation团队,如数据中心现场工程师(SiteOps)、网络运维工程师(NetOps)、基础设施(DNS、DHCP等)运维团队(InfraOps)和安全团队(Paranoid)等。我们还会按照产品线划分出Service Engineer团队,来支持这项产品的应用运维。

SE(Service Engineer)团队和大部分公司的系统运维工程师一样,会负责生产系统维护,如部署应用、监控报警、配置管理、变更管理及故障管理。除此之外,在雅虎SE团队会更多的深入了解应用。

图4 团队协作

从产品设计之初,我们就会和产品经历及研发团队共同讨论系统架构设计,确保开发团队将要实现的是高可用性、高可扩展性及高可维护性的产品。产品测试阶段,我们也会和测试团队保持密切的沟通,使测试环境能够最大程度模拟生产环境的各种场景,以保证我们产品经过了完整有效的测试。系统上线前,我们还会和各个团队评估整个产品的可维护性,并确定应用的容量规划及其故障转移策略,确保SE团队充分了解如何在生产环境中维护该项产品。由于不同的团队可能在不同的国家和地区,所以只有更紧密的全球化协作,才能为用户提供一个高可用性、高可维护性的全球化产品。

产品上线以后,才是产品整个生命周期的开始,我们需要确保产品在其设计的生命周期内,都能够按照我们的预期提供高可用性的服务。所以在日常维护中,我们会和产品及研发团队一同分析产品运行状态,分析总结各种故障,不断的修正已有的Bug,提供新功能的建议与意见。根据各地用户分布及产品的运行状态,修正我们的容量规划及故障转移策略,进一步提升用户体验。

结语

以上只是雅虎在超大规模应用运维体系的简单概述,并没有太多的技术细节,瑾作抛砖引玉之用。雅虎全球运维团队的工程师利用他们的智慧,不断创新,一一应对各种挑战,完成一个个不可能完成的任务。

互联网思维下的传统企业转型思考

最近各大互联网思维的帖子引发热议,解读这些典型案例的玩法和手段,提出了很多的概念,如碎片化、用户至上、粉丝经济等等,仿佛一瞬间传统企业优质的产品、满意的服务、高超的资本运作手段都不再重要,全部被互联网思维的潮水所淹没。除了看热闹,我们是不是应该深入思考下隐藏在现象背后的真相以及所面临的挑战?

营销的真相

“互联网思维”的营销案例,并不是近一、两年才产生的,也不是互联网的专利。05年超女的成功从商业炒作而言,在于迎合了大众民主的社会参与意识,更重要的在于对后现代新型偶像的崇拜心理;甚至也有人说毛爷爷当年的革命胜利正是抓住了那个时代的屌丝代表——广大工农兄弟,“打土豪、分田地”的需求,也是那个背景下的人民大众追求公平、自由的精神诉求;今天小米的粉丝文化既是用户对产品参与感的强烈认同,但更重要的年轻一代的极客消费文化;如果我们真的明白了,也不会奇怪为什么差评无数的《小时代》依然有人捍卫,屌丝逆袭的《泰囧》能够拿下票房冠军。

无论是诺基亚的倒下,任天堂的老去、微软的疲软,我们都应该看到上一代以功能著称的产品正在走下神坛,功能比拼已经不是杀手锏。面对产品越来越丰饶的今天,80、90后更向往价值观层面的契合和精神引领,也需要更强的群体认同感,甚至在消费行为上更容易相互影响。这种精神需求催生了很多亚文化现象,而社区、博客、论坛更是为亚文化的诞生和传播提供了水土丰美的牧场,创造了亚文化产生的技术背景和条件。

如今,80、90后身边充斥着比以往任何一个时代更多的媒体介质,这里面所蕴藏的各种亚文化声音使得我们比以往任何一个时代更早地感受到当下的情景,传统的口号式鼓动和广告式推广只能让我们再一次感到窘迫的压力。因此,品牌的影响已经慢慢从大平台转向小圈子,从改造社会的大话题转向改造自己,从被动的接受指导变为我对你故事和价值观的认可……。

任何新品牌的崛起一定是在当前时代背景下,戳中了代表未来一代的精神诉求,并以这个点为中心完成从亚文化市场到大众市场的跨越。了解你的时代背景,了解这个时代的客户环境,这才是成功营销的本质。

0afbcc1c79490b186d5772a0f04ab6a4.png产品的颠覆

马化腾最推崇的一位硅谷大神——凯文·凯利前段时间在2014年的财经年会上表示:颠覆来源于非主流。革命性的技术都有一些共同点,最开始的时候,他们都是质量很差的,差到你可以完全忽视,所以他们更像是小玩意儿,风险也很高。比如,200年前,当蒸汽船出现时,远洋帆船嘲笑他们为玩具,但他们却忽视了蒸汽船可以逆风逆流,直到有一天全球性的帆船产业消失了;上世纪60年代本田发明减少燃料的电动引擎也不被当时巨无霸GM所关注,但是这些日本汽车企业的不断改良,他们取得了巨大成就,而GM却破产了;传统打印产业对点矩阵的不削一顾成就了后来的喷墨打印。正因为他们出现时的低质,亚文化特性,甚至“恶搞”,很容易遮盖了他们背后的严肃性和创新性。

事实上,这一代拥有比上一代人更为丰富的社群资源,web2.0的思维更是提供了更低门槛的创作机会,对经典元素的解构、戏仿、拼贴。我们不能忽视这些一开始看上去弱小的产品结构,以及在这些平台上所产生的二次创造,当诺基亚高层嘲讽第一代iPhone根本不经摔时,谁能预见后来智能手机及上面繁花似锦的APP主宰了现在的移动互联网。

传统企业产品上最大的挑战不是来自于已有技术的优化,不是来自同重量级产品的竞争,虽然你的公司一直在往上走,但具有破坏力的东西却在另一面悄然盛开,这里才是革命的发源地。

管理的挑战

在转型大潮下,技术的创新不是问题,商业模式也足够重要到时时引起大家的关注,但唯有管理,其实很重要,却往往被大家忽视。

一个伟大的企业,往往在其过去的发展过程中会形成规范的组织结构,完善的考核体系,优秀的战略管理,但是这些在过去几十年所沉淀下来的管理体系是否适合于新战略的管理需求?过去企业雇佣的是工人的手,过去可以通过标准化、量化的工作正在被智能设备所取代,工业时期的“劳动分工原理”、“制度化管理理论”等传统管理思想已经越来越不适合现在的社会需求。

为什么腾讯会采用项目组机制并允许彼此之间进行竞争,为什么阿里会提出小而美的公司结构,为什么海尔会实践“倒三角”理论来挑战过去“科层制”的管理结构,现在越来越多企业“去中心化”的特征是否得到我们足够的注意?

这次中国经营报重大的组织架构调整除了自媒体的狂欢,我们是不是更应该看到老一辈的媒体人感受到了世界是平的,这种觉醒也将产生巨大的颠覆力。这次转型所发表的演讲更应该引起我们的注意:未来的企业都是一个扁平化的组织,没有过多的层级结构。除了行政、法务、财务、人力资源、这些“支持部门”,以及信息中心这样的“平台部门”之外,其余的全部是以“产品”为中心的项目团队。这样的项目团队将来也许会有十几个之多,并且它的存在也是动态的,赢利即生,亏损即亡。团队内部的结构也是扁平的,以产品经理和客户经理为代表,实现不同工种人员的跨界合作。不同项目团队之间,也许会存在某种竞争,但更多的应该是为响应客户需求而进行协同作战,相互取长补短,共同营造生态化、“动成长”的新型组织形态。

从这种管理思想的调整可以预见:越来越多的巨无霸将形成这种“大平台+小团队”的组织结构,纵向压缩组织,使组织扁平化,横向实现集成,形成团队化的工作方式,推行并行工程。调整后,企业也将面临流程的重组,文化的重塑,信息系统的重建。

互联网思维是一种时代转型的信号,传统企业必须勇敢地面对这种冲击,主动变革比创业本身更需要勇气,所围绕的是新时代下顾客的生活方式,而不是互联网本身,所要克服的是过去的成功所造成的惯性思路。这次浪潮的冲击下,总会有一批企业被淘汰,但当越来越多的传统企业明白时代转型的要义后,依旧可跳上一曲优美的华尔兹,来一次华丽的转身。

WordPress通过文章ID获取文章标题内容等信息

使用Wordpress的朋友可能遇到这样的问题,在非single.php页面中我们有时候想要调用当前文章的标题、内容等信息,而Wordpress在生成文章页的时候在各个页面中唯一不变的只有当前的文章ID,那么如何根据这个ID获取到当前文章的标题、内容等信息呢?可以通过下面的代码实现:

<?php 
$id=//这里是文章的ID 
$title = get_post($id)->post_title;
echo $title;//输出文章的 标题
?>

其他信息可以通过改变get_post($id)->post_title中的post_title来实现:

post_author:(整数)文章作者的编号
post_date:(字符)文章发表的日期和时间(YYYY-MM-DD HH-MM-SS)
post_date_gmt:(字符)文章发表的格林尼治标准时间(GMT) (YYYY-MM-DD HH-MM-SS)
post_content:(字符)文章内容
post_title:(字符)文章标题
post_category:(整数)文章类别的编号。注意:该值在WordPress 2.1之后的版本总为0。定义文章的类别时可使用 get_the_category()函数。
post_excerpt:(字符)文章摘要
post_status:(字符)文章状态(publish|pending|draft|private|static|object|attachment|inherit|future)
comment_status:(字符)评论状态(open|closed|registered_only)
ping_status:(字符)pingback/trackback状态(open|closed)
post_password:(字符)文章密码
post_name:(字符)文章的URL嵌套
to_ping:(字符)要引用的URL链接
pinged:(字符)引用过的链接
post_modified:(字符)文章最后修改时间(YYYY-MM-DD HH-MM-SS)
post_modified_gmt:(字符)文章最后修改GMT时间(YYYY-MM-DD HH-MM-SS)
post_parent:(整数)父级文章编号(供附件等)
guid:(字符)文章的一个链接。注意:不能将GUID作为永久链接(虽然在2.5之前的版本中它的确被当作永久链接),也不能将它作为文章的可用链接。GUID是一种独有的标识符,只是目前恰巧成为文章的一个链接。
post_type:(字符)(日志 | 页面 | 附件)
post_mime_type:(字符)Mime类型(供附件等)
comment_count:(整数)评论总数

网页特殊字符对照表

网页特殊字符对照表

网页上的特殊字符对照表,不要小看了特殊字符,用好了这些不但会增色你的网页,而且也会节省网络资源,不再用图片去显示文字无法修饰的内容;特殊字符是由系统的特殊字体派生而来,这个对照表就向你说明了字体与字符的对应关系,方便你以后使用。

<html>
<head>
<title>特殊字符、符号代码对照表</title>
</head>
<body>
<center style=”font-size:20px;”>
<form name=”font”>
<select name=”family” size=”1″ onChange=”JavaScript:chgFont();” style=”font-size:20px;”>
<option selected value=”Webdings”>Webdings</option>
<option value=”Wingdings”>Wingdings</option>
<option value=”Wingdings 2″>Wingdings 2</option>
<option value=”Wingdings 3″>Wingdings 3</option>
<option value=”Symbol”>Symbol</option>
</select>符号、常规符号及其代码对照表
</form>
</center>
<script language=”JavaScript”>
document.write(‘<table border=”1″ width=”100%” cellspacing=”0″ cellpadding=”0″>’);
for (j=0;j<4;j++) {
document.write(‘<td bgcolor=”menu” bordercolor=”menu” align=”center” valign=”middle” width=”7%” style=”font-size:; color:red; font-family: fixedsys”>代码</td>’);
document.write(‘<td id=”F’+j+'” bgcolor=”menu” bordercolor=”” align=”center” valign=”middle” width=”11%” style=”font-size:; color:red; font-family: fixedsys”>Webdings</td>’);
document.write(‘<td bgcolor=”menu” bordercolor=”menu” align=”center” valign=”middle” width=”7%” style=”font-size:; color:red; font-family: fixedsys”>常规</td>’);
}
for(i=32;i<256;i++){
if (i%4==0) {
document.write(‘<tr>’);
}
document.write(‘<td bgcolor=”menu” align=”center” valign=”middle” width=”7%” style=”color:blue; font-family: fixedsys”><a>&#</a>’+i+’;</td>’);
document.write(‘<td id=”f’+i+'” align=”center” valign=”middle” width=”11%” style=”font-size:30px; color:red; font-family: Webdings”>&#’+i+’;</td>’);
document.write(‘<td align=”center” valign=”middle” width=”7%” style=”font-size:26px; color:blue; font-family: Arial”>&#’+i+’;</td>’);
if (i%4==3) {
document.write(‘</tr>’);
}
}
document.write(‘</table>’);
</script>
<script language=”JavaScript”>
function chgFont() {
fontIndex = document.font.family.selectedIndex;
fontValue = document.font.family.options[fontIndex].value;
for (m=0;m<4;m++){
eval(‘F’+m+’.innerHTML=”‘+fontValue+'”;’);
}
for (n=32;n<256;n++){
eval(‘f’+n+’.style.fontFamily=”‘+fontValue+'”;’);
}
}

chgFont();
</script>
</body>
</html>

♤ & #9828
♡ & #9825
♧ & #9831
♠ & #9824
♣ & #9827
♥ & #9829
♦ & #9830
◈ & #9672
ღ & #4326
ზ & #4310
ო & #4317
ლ & #4314
დ & #4307
▩ & #9641
▣ & #9635
▤ & #9636
▥ & #9637
▦ & #9638
▧ & #9639
▨ & #9640
▩ & #9641
რ & #4320
ჟ & #4319
ფ & #4324
♨ & #9832
წ & #4332
ჭ & #4333
ჯ & #4335
ჰ & #4336
ჱ & #4337
ჵ & #4341
ტ & #4322
♩ & #9833
♪ & #9834
♫ & #9835
♬ & #9836
♭ & #9837
Œ & #338
& #8364
½ & #189
¾ & #190
¼ & #188
☞ & #9758
☜ & #9756
ஐ & #2960
☺ & #9786
☻ & #9787
►&#9658
◄&#9668
☜ &#9756
☞ &#9758
◐&#9680;
◑&#9681;

号外!CentOS 宣布加入红帽公司!

来自 CentOS 邮件列表的消息:CentOS 项目已加入红帽公司,作为红帽公司开源和标准团队( http://community.redhat.com/ ) 的一部分,培养快速创新平台之外的下一代新兴技术。将于 Fedora 和 RHEL 生态系统一起工作,我们希望通过新的平台进一步扩大社区服务。

我们已经发布了全新的 CentOS 网站:http://www.centos.org/

新计划将由新的 CentOS 管理董事会管理。最初的董事会由现有CentOS的核心团队成员包括:

– – Ralph Angenent
– – Tru Hyunh
– – Johnny Hughes JR
– – Jim Perrin
– – Karanbir Singh

此外还包括新成员:

– – Fabian Arrotin, 来自社区董事会提名
– – Carl Trieloff, Karsten Wade, and Mike McLean 红帽提名

董事会工作方针:公开、开放和包容。http://www.centos.org/about/governance/

CentOS 加入红帽后不变的是:

1. CentOS 继续不收费
2. 保持赞助内容驱动的网络中心不变
3. Bug、Issue 和紧急事件处理策略不变
4. Red Hat Enterprise Linux 和 CentOS 防火墙也依然存在

变化的是:

1. 我们是为红帽工作,不是为 RHEL
2. 红帽提供构建系统和初始内容分发资源的赞助
3. 一些开发的资源包括源码的获取将更加容易
4. 避免了原来和红帽上一些法律的问题

此新闻在 CentOS 和红帽官网上都已发布:

http://lists.centos.org/pipermail/centos-announce/2014-January/020100.html
http://www.redhat.com/about/news/press-archive/2014/1/red-hat-and-centos-join-forces

12306上的分布式内存数据技术GemFire

摘要:作为世界规模最大的实时交易系统之一,12306备受关注,尤其在特殊节日里。尽管昨天消息称其又宕掉了,但恢复时间明显缩短不少,且手机APP未受影响。多少有分布式内存数据技术GemFire的一些功劳。

编者按:打造高并发、大流量的网站一直是我们的关注的重要技术点,比如颇受欢迎的《高性能、高流量Java Web站点打造的22条建议》。所以,每年都会格外关注12306这面“旗帜”。刚刚读者分享了一篇文章,关于12306的分布式内存数据技术,原文来自IT专家网,节选并分享给大家。


中国铁路客户服务中心网站(12306.cn)是世界规模最大的实时交易系统之一。2012年初的春运高峰期间,每天有2000万人访问该网站,日点击量最高达到14亿。大量同时涌入的网络访问造成12306几近瘫痪。 为此,2012年3月开始,铁路总公司(原铁道部)开始调研、改造12306。2012年6月选择了Pivotal GemFire分布式内存计算平台改造12306,由铁科院和资拓宏宇(IISI)信息科技有限公司提供技术实施。

点击可看大图

一期先改造12306的主要瓶颈——余票查询系统。9月份完成代码改造,系统上线。2012年国庆,在网上订票高峰期间,可以登录12306,虽然还是很难订票,但是查询余票很快。2012年10月份,二期用GemFire改造订单查询系统(客户查询自己的订单记录)。2013年春节,在网上订票高峰期间,可以登录12306,虽然还是很难订票,但是查询余票很快,而且查询自己的订票和下订单也很快。

根据系统运行数据记录,技术改造之后,在只采用10几台X86服务器实现了以前数十台小型机的余票计算和查询能力,单次查询的最长时间从之前的15秒左右下降到0.2秒以下,缩短了75倍以上。2012年春运的极端高流量并发情况下,支持每秒上万次的并发查询,高峰期间达到2.6万QPS吞吐量,整个系统效率显著提高。

订单查询系统改造,在改造之前的系统运行模式下,每秒只能支持300-400个QPS的吞吐量,高流量的并发查询只能通过分库来实现。改造之后,可以实现高达上万个QPS的吞吐量,而且查询速度可以保障在20毫秒左右。新的技术架构可以按需弹性动态扩展,并发量增加时,还可以通过动态增加X86服务器来应对,保持毫秒级的响应时间。

GemFire分布式内存数据平台的原理为:

通过云计算平台虚拟化技术,将若干X86服务器的内存集中起来,组成最高可达数十TB的内存资源池,将全部数据加载到内存中,进行内存计算。计算过程本身不需要读写磁盘,只是定期将数据同步或异步方式写到磁盘。GemFire在分布式集群中保存了多份数据,任何一台机器故障,其它机器上还有备份数据,不用担心数据丢失,而且有磁盘数据作为备份。GemFire支持把内存数据持久化到各种传统的关系数据库、Hadoop库和其它文件系统中。12306之前采用Unix小型机架构,采用GemFire技术改造成Linux/X86服务器集群架构。

12306ng(12306网站的开源项目)对此尚无点评。不过,昨天是春运火车票发售首日,据悉12306网站“瘫痪”1小时,且出现“串号”问题,显然,单纯分布式内存数据技术还不足以应对12306所面对的技术挑战。毕竟,即使算上SAP的HANA,和Pivotal的GemFire,都还很新。

如果有这方面的好观点,欢迎投稿给我们(@CSDN云计算)。(编辑/郭雪梅)

360诉腾讯垄断案继续庭审 360盼此战有益全行业

有中国“互联网反垄断第一案”之称的垄断案,今天继续在最高人民法院开庭审理。这是《反垄断法》出台六年来,最高院审理的首例互联网反垄断案,对国内互联网反垄断的判决具有标志性意义。对于本案的审理过程,最高人民法院首次通过央视、湖南卫视、新浪官方微博等多种媒体方式进行直播,全面发布案件审理情况,属国内首次。

作为《反垄断法》出台六年以来最高院审理的首例互联网反垄断案,“3Q”大战也吸引了全社会的关注。对此,360曾发布公开信表示,表面上有活力和创新的互联网行业,其市场集中度已经远远超越了金融、电信、石油、电力这些老牌的垄断行业,并呼吁不要让巨头垄断扼杀年轻创业者的中国梦。360在公开信中指出,中国互联网表面上是创新和有活力的互联网行业,其实互联网巨头垄断市场的程度已经远远超越了金融、电信、石油、电力这些老牌的垄断行业。以腾讯一家公司为例,其市值已经超过全部40多家中国互联网海外上市公司总市值的50%。

然而巨头垄断却使中国互联网产业荒漠化。根据第三方数据统计,2006年之后在长达8年的时间里,中国互联网没有诞生一家新的有影响力的网站或公司,而同期美国却诞生了Facebook等一大批创新公司,中国互联网市场从与美国同步繁荣变成荒漠化。

对此,360方面表示,只有对互联网巨头在收购、合作、结盟方面的行为展开反垄断调查成为常态,对巨头公司滥用市场支配地位的竞争手段进行遏制成为惯例,公平竞争的市场环境才有可能形成,创新和活力才能够不断涌现,年轻创业者们的中国梦才有可能实现。

此外,360方面还表示,这场反垄断的标本之战最后的赢家不是360也不是腾讯,而将是全中国的年轻人、创业者。

庭审聚焦

两年前腾讯发布的《致广大QQ用户的一封信》让人记忆犹新,昨日这封信引发的“3Q”案二审在最高人民法院开庭审理。昨日在法庭上,主审法官归纳了这一诉讼5个主要焦点问题,庭审期间双方围绕“腾讯是否具有市场支配地位”展开激辩。

据悉,该案将连续审理2天,截至记者发稿时,今日庭审的情况还未发布。

1.腾讯是否具有市场支配地位?

在本次庭审中,360称在腾讯QQ和奇虎360软件中“二选一”,造成奇虎360的软件产品被用户大量卸载、删除,给该公司造成了巨大的经济损失,理应承担赔偿责任;腾讯实施了滥用市场支配地位的行为,构成行业垄断,应当承担法律责任。要求撤判并在查清事实的基础上依法改判。

腾讯公司则认为,一审的判决是正确的,QQ在市场中并没有支配地位,并且在一审中奇虎360也没有提交任何证据来证明其遭受了所谓的“巨大的经济损失”。

2. 360是否混淆了通讯服务?

在对相关市场的认定问题上,360认为“中国大陆的即时通讯市场”构成一个独立的市场。而腾讯则回应称,即时通讯、社交网站等都是属于平台级的产品,都是在全球范围内参与竞争,相关地域市场适用于全球市场。

腾讯举出咖啡的例子,认为360把单一即时通讯服务和综合即时通讯服务混淆,并认为它们彼此之间不能互相替代,就像咖啡市场被混淆细分为拿铁市场和摩卡市场,称360的观点毫无根据。

主审法官归纳的诉讼焦点

1.如何界定案件所涉及的相关市场?

2.腾讯公司是否具有市场支配地位?

3.腾讯公司是否构成《反垄断法》所禁止的滥用市场支配地位行为?

4.假如腾讯公司存在滥用市场支配地位行为,民事责任如何承担?

5.一审法院是否程序违法?

UIDesigner 3.0架构设计总结

UIDesigner 3.0架构设计总结

  UIDesigner是腾讯用户研究与体验设计部(CDC)设计研发的一款设计类软件,打造一款可以让设计师统一平台和团队协作的平台型设计工具,经过1.0和2.0版本的经验沉淀,我们决定对3.0版本进行全新的架构设计。

开发一个软件系统,前期的架构设计承载着整个软件的设计思想和关键决策,可以说是重中之重。

根据软件架构设计思想,关注分割和交互,好的架构必须使每个关注点相互分离。我们进行了最基本的需求分析,得出两个关注点:一是工具,二是设计绘图,关系如图1所示。

01

得到最基本的两个关注点后,接着将提取关键需求(包括:关键功能需求、关键质量需求和关键商业需求),根据两个关注点进行架构的细化设计。

一、关注点——工具

这里我们结合UIDesigner的实际需求,提取出属于“工具”范畴的关键功能需求、关键质量需求和关键商业需求。

首先,“工具”的关键功能需求,必须包括:磁盘文件读写、异常捕捉、日志记录、安全性管理;非工具所必须,但是UIDesigner本身所要求的,包括:配置管理、缓存管理、线程服务、服务器和客户端通讯管理、国际化服务。

其次,“工具”的关键质量需求,质量需求包括开发期质量需求和运行期质量需求两部分,经过分析和权衡,UIDesigner的性能主要取决于设计绘图,而稳定性、可扩展性和可维护性才是决定“工具”本身发展的质量需求,因此,对“工具”的质量需求设计将以稳定性、可扩展性和可维护性为主。

最后,“工具”的关键商业需求,因为UIDesigner本身并没有很复杂的业务需求,因此关键商业需求是在设计流程的优化和规范上得到体现,这方面的设计已经属于高层模块和使用流程的设计,对架构的影响非常小,可以暂时性的忽略。

经过关键需求的提取,我们得到了“工具”的设计目标——可以提供通用功能(关键功能需求)的高稳定性、扩展性和维护性的客户端应用。根据此目标,我们采取了DI(Dependency-Injection)和MVP(Model-View-Presenter)结合的架构,概念架构设计如图2所示。

02

1、将上层功能进行模块划分,每个模块内部都依赖于MVP架构,通过Model(继承至BaseModel)定义和注册模块,通过观察者模式,每个模块的View都可以通过Presenter(继承至BasePresenter)进行消息的发布和订阅,进行模块间的通信和交互。

2、定义集成了关键功能需求的PlatformService,并在BasePresenter中提供PlatformService的服务调用,这样每个功能模块都可以使用通用的关键功能。

3、为PlatformService的服务定义接口,根据关键功能需求,得到多个服务的接口,将定义和实现相分离,实现部分作为一个特殊的功能模块(核心模块,必须存在),集成到系统本身,方便前期的验证和后期的扩展和维护。 属于“工具”这个关注点的架构就已经设计好了,具体的上层功能模块将在后续的开发中,根据需求一个一个模块的来完成,每个模块之间不会有任何依赖关系(开发时),缺少某个或多个功能模块的时候,软件依然可以稳定的运行起来。

二、关注点——设计绘图

UIDesigner是为设计师打造的设计工具,其最核心的功能需求当然就是设计绘图了,这一块也是变化最多的。根据隔离变化点的原则,我们将这一块设计为绘制引擎框架,通过框架,为“工具”部分提供绘制相关的支持。

我们对绘制引擎框架进行细化分割,分离出三个关注点:图元、画板、辅助组件。

首先,图元是可以通过定义进而展示出自身的基础元件,由基础属性和基础绘制接口两部分组成,其中基础绘制接口的定义和实现分离,这样可以方便后期的扩展,特别是在性能改进方面发挥重要作用。概念设计如图3所示。

03

其次,画板作为各种图元集合的容器,支持对各种图元的操控和定位,被分为三层:点击测试层、图元设计器管理层和图元绘制层。概念设计如图4所示。

04

最后,辅助组件分为标尺、辅助线、全局缩略图、遮罩装饰器和自动对齐线等,这些辅助组件都依赖于画板而存在。

三、架构验证和后续开发

在概念架构设计出来后,我们对核心进行了进一步的细化设计,然后对设计的架构进行验证。为了达到敏捷开发和节省时间成本,结合设计的架构,我们最终选择了垂直演进型原型进行架构的验证和后续开发。

因为架构本身是基于DI(Dependency-Injection),是非常符合垂直架构设计的一种架构模式,因此我们搭建了简单的基础核心(只有核心模块,没有其他业务流程功能模块)和简易的绘制引擎框架实现了原型。

通过对原型的测试和验证,确定此架构满足我们的预期。在此原型的基础上,继续完善核心和绘制引擎框架,并且规划后续的业务功能,根据业务功能插件,可以合理的安排项目进度,最终按照计划顺利完成开发和测试。

四、后期仍待改进的一些地方

因为各种原因,在此架构之下,仍有一些细节需要在后续的开发和维护中进行进一步的深入,如:本地数据的存储、用户数据安全、客户端程序的进程安全和网络通信机制的优化等。

随着软件的不断演进,功能越来越多,复杂度越来越高,架构也在不断的磨损,我们需要不断的重构和细节改进,直到主体架构不能完成关键的核心需求(包括关键功能需求、关键质量需求和关键商业需求)时,再进行大改进。

(本文出自Tencent CDC Blog,转载时请注明出处)

360揭搜狗泄密视频 一次罕见的互联网安全事故?

据站长之家(Chinaz.com)11月8日报道“如果您曾经使用过搜狗浏览器登陆网银、支付、电商、企业内网等,这些账号密码可能均已被泄露。您的个人财产及隐私信息面临严重威胁。360建议您立即修改上述网站的账号密码……”始于360安全中心发布的一则红字大公告,一场你追我赶的公关对擂就这样上演了。

360:搜狗泄密造成重大安全事故 呼吁用户尽快更换密码

近日,在搜狗官方网站和一些安全论坛上,陆续有用户反馈搜狗浏览器出现异常的信息。他们称,使用QQ账号登录搜狗浏览器,可以查看到数千其他用户的个人账号,包括QQ、邮箱、支付宝、银行等涉及用户财产的账户信息,甚至可以直接进入其他人的支付宝进行转账购物,或者直接进行支付交易。

对此,360在7日下午紧急召开媒体沟通会,公布搜狗收集用户隐私信息并泄漏的相关资料之外,向大家展示法律公证、完整的搜狗泄密视频外,也呼吁用户尽快更换密码,而对于老朋友搜狗,360则指责其并未在发现漏洞的第一时间进行修复,且希望搜狗能承认这次过失,提醒用户更换密码。

“搜狗浏览器拥有几千万用户,泄漏的账号密码分类非常广泛,并且泄漏时间持续至少1周以上。这不仅仅是一个技术Bug和技术事件,技术的Bug和漏洞只是这个事件的一个导火索,实际上用户的密码和信息已经被泄露出去了,目前,没有其他产品出现过这种大规模的用户信息泄漏问题,这是互联网浏览器历史上罕见的安全事故。”360工作人员表示。

据360方面介绍,事情的来龙去脉是这样的。

早在10月18日,已有用户在搜狗论坛上反映此事。该用户表示,为什么别人帐户的表单数据进入到我的这个里面,已经是第二次出现了。电脑装完系统,装完搜狗浏览器,登录帐户就发现进的是别人的,而且很多,我又试了邮箱、QQ空间,建行、百度等等网站都是别人的帐号,也都能登录进去……

10月18号11:25分,搜狗论坛上显示技术支持已经跟进;11月5号上午8:00左右,微博上有大量用户反馈这个问题。“发现之后,我们立刻组织技术人员进行验证,验证之后,我们在上午9:54分给国家互联网应急中心发了邮件反映这个问题,同时也给搜狗公司发了邮件,邮件时间显示是10:00。”

10:40分,360通过微博发布了公告,希望用户尽快修改帐户和密码;12:00左右,搜狗浏览器的现象已不能重现;15:63分,搜狗官方发布申明否认此漏洞存在。

至于360展示的泄露视频证据,是在一台只有基本应用程序的电脑中,下载安装搜狗浏览器,点击搜狗浏览器的账号登录系统,使用QQ账号和密码进行注册和登陆,双击退出该系统。然后,在工具栏里点击“智能填表”,再选择管理表单数据,网页上就会弹出一个表单。继续点击,就会出现大量不同用户的个人账号密码等信息。视频显示,使用这些账号和密码能够进入到这些用户的淘宝、邮箱、QQ等系统中。

为什么会出现泄密这种情况?360技术人员表示,根本原因是搜狗浏览器自动填表的数据同步服务器发生了泄密,这个功能要用,实际上是我登录以后,把我自己跟我个人相关的填表数据,比如用户名和密码传到搜狗的服务器上,我下次登录我的帐号的时候,获取到的也应该是我自己的,而不应该获取到其他人或者任何人的。

据360所述,此次能够获取到泄漏数据的版本是搜狗浏览器4.2版本,但只要你用过搜狗浏览器,你的帐号、密码都可能被泄露到使用搜狗浏览器4.2版本的用户电脑中。由于搜狗浏览器的自动填表功能是默认开启的,而且搜狗浏览器4.2版本已经作为正式版在推广,因此此次安全事件影响面非常广。

尽管如此,面对360的连续“控诉”,搜狗浏览器产品负责人黎志否认并澄清该漏洞并不存在。“360公布的证据视频不具备信服力,因为只要通过账号同步功能,在A电脑上用某个臧虎登陆浏览器后,同时在B电脑浏览器上登陆同个QQ账号,就可以导入表单数据,再同步到A电脑上,这是账号同步机制的正常功能特性。”

微评:搜狗面临公关危机的大考

“希望你能理解,团队要独立,不要妨碍以后大家的合作。”据奇虎360董事长周鸿祎回忆,这是搜狐和腾讯召开战略投资发布会当天,搜狐董事局主席兼首席执行官张朝阳发给他的短信内容。

然而,很多事情往往是事与愿违的。

以王小川为例,虽信奉“智能是靠技术驱动的”,但被动接招、且有着“技术天才”称号的他这次无论如何被狠狠的绊了一跤。

其实,早在搜狗宣布腾讯向其注资后没多久,360与搜狗就因篡改默认浏览器的争议而“大打出手”。9月20日,搜狗CEO王小川转发了网友“龙才丁”一条关于360软件篡改搜狗默认浏览器的微博并评论称:“已经接收到全国各地大量用户对360的投诉,在微博上也看到大量反馈。这个流氓行为超越法律底线,也是对用户的极大伤害。我们的取证工作进展顺利。”对此,周鸿祎亦曾耿耿于怀地表示,搜狗浏览器最常用的推广方式就是提示用户升级输入法词库,然后偷偷给用户装上搜狗浏览器。事实上,360一直在针对此行为提示用户修复,王小川一直没说话,不知道这次为什么,中秋节就在微博开喷。

如此说来,360此次火力全开,是毕其功于一役?

“我不愿意卖给360,是因为更希望搜狗能独立自主的发展。如果卖给360,那就是把搜狗揉碎了放进360里,辅助360搜索的发展,但搜狗对未来有更大的梦想。”又或许,当搜狗决定选择与腾讯为盟的那一刻起,张朝阳的此番话无疑让双方走向对立面成为定格。

据CNZZ 11月6日关于桌面浏览器类型的统计数据显示,IE浏览器以42.38%稳居市场第一的位置,奇虎360旗下浏览器则以27.59%的市场份额位居第二位,值得一提的是,国内最有潜力的追赶者搜狗高速浏览器以6.41%的市场份额位列其后。

“在讨论漏洞本身影响力之余,双方你追我赶的公关对擂,既是360对有腾讯撑腰的搜狗的一次试探,也是对搜狗危机公关的一次严峻考验。”业内人士分析认为。

“有图有真相”,面对360此次的有备而来,尚且不知舆论热度过去是否会被大家遗忘,无论如何,“摊上大事儿”的搜狗恐怕要忙碌一阵子,着实吸取了教训且增长了经验。

http://www.chinaz.com/news/2013/1108/325747.shtml

微软正式发布Windows 7版IE11浏览器 比前代提速9%

微软称,IE11在实际使用中比其前代IE10提速9%

【TechWeb报道】11月8日消息,据国外媒体报道,微软IE浏览器团队在官方博客宣布,Windows 7版IE11浏览器正式发布,目前已经可以在官网下载。

微软称,IE11在实际使用中比其前代IE10提速9%,比其它竞争对手快至少30%,并整合各种最新技术,增加25种现代Web开发标准兼容,是Windows平台上最佳的浏览器。

IE11安装包支持95种语言,微软未来数周内还将通过系统自动更新的方式推送给所有Windows 7用户。

6月27日,针对此前有关“IE 11可能不会支持Windows 7系统”的消息,微软在2013Build确认IE 11最终会支持Windows 7系统。

下载地址:

http://windows.microsoft.com/zh-cn/internet-explorer/download-ie

来源:http://www.chinaz.com/news/2013/1108/325761.shtml

中国移动4G抢跑:覆盖还是大问题

移动4G抢跑:覆盖还是大问题

腾讯科技 郭晓峰 11月7日报道

中移动昨日在北京开售4G手机。尽管并未同步公布套餐计划,但作为4G产业化中最重要的一环,终端产品的加快成熟意味着4G生活真的已触手可及。

从腾讯科技了解的信息看,目前移动4G万事俱备,只待牌照发放。有最新消息称,工信部或将于12月中旬发布4G牌照。

千元4G终端明年引爆

腾讯科技从中移动了解到,首批推出的4G手机包括三星N7108D、索尼M35t等型号,用户可在10家营业厅选择合约计划或者直接购买裸机。以三星N7108D(Note II的TD-LTE版)为例,其裸机售价4999元,选择两年期每月328元合约,可零元购机。

对于用户关心的专属4G资费套餐还未推出,目前只提供预约办理。

4G手机的开卖,使中移动在国内三大电信运营商抢得终端首发的先机。经历了惨痛的3G教训后,中移动一直等待在4G时代卷土重来,终端或许是最好的切入点。

根据中移动的终端发展规划,2013年仍将以3G终端为主,2014年3G与4G终端并举,2015年以全面力推4G终端,并实现高中低端产品的全面覆盖。

让人意外的是,随着芯片厂商、终端厂商和运营商的协同发力,4G终端的价格普及化进程或将加速。中国移动终端副总经理唐剑峰此前曾对外透露,中移动在2014年将推出千元档TD-LTE手机,这对用户来说无疑是好消息。

回顾3G时代,千元智能手机的快速普及也使我国3G用户迅速增长。截至今年7月,国内3G用户总数已超过3.4亿,其中中国移动3G用户数达到1.47亿。

目前,联发科已经启动4G芯片的规模化试产,预计今年四季度或者明年一季度正式推出4G手机芯片。

依照联发科一贯的性价比路线,采用该公司芯片平台的4G手机很快就会进入千元时代。

中兴通讯高级副总裁叶卫民向腾讯科技透露,中兴首款4G手机Memo LTE,会首先推出移动版,随后推出联通版和电信版。叶卫民表示,该款4G手机的价格将会控制在1000-2000元区间。

华为终端中国区总裁王伟军对腾讯科技表示,“明年第三季度,华为将推出支持4G网络的千元智能机,推动4G手机价格平民化。”

其他国产手机厂商也不甘于后。联想、海信、酷派、天语等企业均表示,随着明年4G终端井喷期到来,千元级别产品将是各家主导策略。

据了解,中国移动在测4G手机类终端超过10款,数据类终端达到50款。苹果最新发布的iPhone 5s/5s,不出意外也将会被中移动在4G时代引入。

资费门槛没有3G高

此次中移动在北京开售4G手机,提供的依然是3G套餐。主要是由于国家尚未发放4G牌照,目前运营商还无法推出4G业务套餐。不过,腾讯科技从中移动内部得到一些消息,4G套餐已基本制定完毕。只要4G发牌商用,即可同时推出。

那么,用户关心的4G资费究竟会是什么样?

先来看下4G的网速。和3G相比,4G时代网络速度将得到大幅提升。目前4G手机理论最高下载速度超过100Mbps,是主流3G网络的10多倍。且使用延时小于0.05秒,仅是3G的1/4。

腾讯科技科技在广州、深圳、香港、杭州多地实测结果显示,TD-LTE 的4G网下行平均速率在31Mbps左右;上行平均速率在10Mbps左右。这意味着下载一部2GB大小的高清电影,只需要几分钟。

由于TD-LTE技术的先进性,4G网络承载能力得到成倍提升。且在提供更高容量的同时,并不显著增加运营商的网络建设成本。预计4G时代运营商资费政策将更加灵活,消费者花在4G上的费用不会比3G更多。

从目前推出试商用套餐的广东、青岛等地看,中移动的4G套餐性价比整体不错,共设有两档:每月138元套餐包含600M、可在2G、3G或4G网络中任意使用的数据流量,及500分钟通话时间;每月238元套餐则包含1G数据流量和1000分钟通话时间。

除套餐外,中国移动还制定了单独的4G上网流量包,每月50元可获得600M数据流量。

中移动全球通3G每月158元套餐,数据流量只有30M和900分钟语音通话。中联通的每月158元3G套餐也只包含500M数据流量和420分钟通话时间。

从上述信息可以看出,中移动希望通过增加套餐数据流量,来适应以流量为主、语音为辅的4G商业模式。但考虑到4G时代高网速带来的更多应用创新,每月600M左右的流量未必够用。如何在流量与价格之间寻找平衡点,是中移动4G套餐设计的一大考量。

有业内人士提出,在4G前期,中移动的资费应当采取多角度促销策略,让用户真正愿意体验4G是重点。后期在丰富套餐数量的同时,可加强与互联网公司合作,推出个性化定制服务的专属套餐。

覆盖是最大问题

国内4G牌照即将发放,全行业对这个可能高达万亿元的巨大市场充满了期待。

即便仅从从投资建设角度看,4G对中国经济的拉动力也是毋庸置疑的。一旦正式商用,其上下游产业链必会成为资本市场的投资热点。

据工信部和中科院等权威部门和机构预测,4G网络前期建设拉动的投资规模在5000亿元左右,网络正式商用后,还将带动终端制造和软件等上下游行业,产业规模有望突破万亿元大关。4G启动后,中国信息消费市场将掀起史无前例的热潮。

但在一片大好的背后,4G的发展也暴露出一些急需解决的问题。

工信部部长苗圩曾表示:“4G是通信业发展的趋势,但在推进过程中还存在一些问题。基站建设和终端产品研发是制约国内4G发展的最大短板。”

目前,终端随着芯片产业链的成熟,已不再是问题所在。但基站建设,即4G信号覆盖的问题,眼下并不乐观。

中移动今年在全国启动了20万个TD-LTE基站的建设,目标年底内实现100个重点城市主城区的4G连续覆盖。现在距离年底仅有一个多月的时间,实际覆盖情况又如何呢?

从腾讯科技在多个城市的实地测试来看,较早参与4G规模试验的十几个城市基本完成了目标覆盖。但后续启动的基站建设城市,目前覆盖并不理想。

以首都北京为例,目前4G网络还未实现全城覆盖,只到达东、西、北三环内,南至两广路,以及清华、北大、国贸、CBD及园博园等区域。且上述覆盖仅限于室外,室内信号表现非常不稳定。更边远的区域,信号会自动转换为3G或2G。类似情况在其他城市亦大多如此。

有相关人士向腾讯科技透露,“中移动要求的覆盖目标,年底前不太可能实现。从6月底发标到9月招标结束,已用去两个月时间,剩下3个月建设20万个基站,覆盖100个城市,即便是采用F频段基站升级和共址的方式,也很难完成。”

据中国移动此前透露的消息,今年将投资417亿元用于20万个4G基站建设;TD-LTE终端采购将超100万部,TD终端补贴超过300亿元。上述700多亿元投资,只是中国移动4G网络建设的启动序幕。

由此推断,4G建网和后续的投入,将对资金的依赖极高。一旦建网不到位,将直接影响用户体验,中移动期待的4G时代翻身也将无从谈起。

持续巨额投入之下,中移动必须思考盈利的问题,这也是其一直高调、加速推进4G的主要原因。

一旦4G信号覆盖不全,即便牌照发放,终端丰富,用户也很难买单。对中移动而言,当下乃至未来最需要解决的问题,就是覆盖、覆盖、再覆盖。

http://www.chinaz.com/mobile/2013/1107/325598.shtml

360搜索市场份额目标提至25% 将发力移动搜索

新浪科技讯 11月6日凌晨消息,360负责搜索业务的副总裁于光东接受新浪科技等媒体专访时透露,鉴于360搜索在今年十月市场占有率就已经完成原定20%的目标,公司已经将今年年底的目标份额提升至25%,并且计划在移动搜索领域发力。

今年初,360公司总裁齐向东曾宣布了360搜索三年发展目标,提出每年提高10%的市场份额,即2013年达到20%的市场份额,明年达到30%的市场份额,后年达到40%的市场份额。

“根据CNZZ的数据,今年10月360搜索的占有率就已经突破了20%大关,最高时曾达到22.85%,提前达成了目标,因此公司已经把年底前的目标份额上调至25%。”于光东介绍说,百度的份额由4月份的67%下跌至60%左右,而搜狗的份额基本上无变化,可以说,360搜索很大程度上是抢了百度的市场份额。

不过,于光东也承认,过去一年360搜索的发展非常艰难,一方面360主动放弃了医疗广告市场,盈利能力较对手更弱;另一方面,竞争对手坚强的阻击360,另360搜索发展的每一步都举步维艰。

他举例说,目前360搜索的PV大约是百度的三分之一,但是ARPU值(360从每个用户获取的平均收入)只是百度的十分之一。另外,竞争对手要求合作伙伴甚至是广告代理商二选一,如果有人和360合作,竞争对手就马上与停止其合作,这让360在省市代理商拓展方面遇到了不小的困难。

 360搜索独立性加强

“事实上,竞争对手由于先发优势已经在品牌、内容方面建立了很高的壁垒,360除了渠道之外,几乎没有任何优势。“于光东说,因此为360做了几方面的努力:

第一是做服务,与第三方合作迅速补充360在百科、知道等内容上的空白。另外,自己也做了ONE BOX、良医搜索、网购先赔等产品,希望通过干净、真实的搜索结果,逐渐产生用户口碑。

第二是新产品创新,与360其他产品更好的结合。例如在装有安全卫士的电脑上双击Ctrl,呼出360搜索框,这个产品用户留存率非常高,未来还会做更多类似的创新。

”事实上,360的渠道资源还尚未用尽,而且360搜索目前品牌推广还很少,另外我们也没有做流量联盟,未来在这些方面继续发力,将会把360搜索的份额推上新高。“于光东说。

另据内部人士透露,360搜索在集团的独立性正在加强,360搜索已经从一个事业部,成为一个相对独立的事业群,开始拥有独立的财务体系、市场和公关部等。

 下一步发力移动搜索

谈到移动搜索,于光东认为,移动端搜索与PC端区别很大,因为移动端用户并不以浏览器为入口,更多的是直接使用APP。因此,在移动端,很多需求并不是通过搜索完成的,比如移动端很少人会搜索视频,他们会直接从APP里看。

于光东透露,360正在与主流APP谈判,希望能抓取到APP内部的数据,形成一个开放平台,用户在移动端搜索相关信息可以直接跳转至对应的APP。

“搜索将变成一个超级App,不仅仅局限于信息的提供,更重要的是服务。”于光东举例说,在PC端输入餐馆,看到大众点评的信息,有地址、电话就行了。但在移动端,搜索餐厅,可以马上点击进入导航,或者通过手机一键电话预订。因此移动搜索更应该侧重更快捷的服务,而不是简单的信息。

于光东透露,360很快将发布新版的移动搜索,包含APP和HTML5两个版本。”在移动端我们必须要一个有特色的移动搜索产品,在服务和快捷直达方面做有益的尝试,不能让移动端成为PC端的复制品。“(张楠)

http://www.chinaz.com/news/2013/1106/325364.shtml

Firefox向IE团队赠送蛋糕祝贺IE10发布

自六年前 Firefox 2 开始,Firefox每推出一个新版本,微软都会向 Mozilla Firefox 团队赠送 IE 蛋糕祝贺产品发布,尽管蛋糕越来越小,这始终是一份向对手致敬的心意,不过从 Firefox 8 浏览器发布起,微软表示不再赠送蛋糕祝贺了。

如今,Firefox 团队也终于接受了 Internet Explorer 团队,在昨天向 IE 团队赠送了蛋糕祝贺 IE10 的发布。蛋糕图案是 Firefox 的 Logo,制作风格和 IE 团队之前赠送的颇为类似,并署上”Love Mozilla”。

Firefox 向微软 IE 团队赠蛋糕祝贺 IE 10 发布

微软 IE 在 Twitter 上感谢 Firefox 的同时,也表示了对 Firefox for Windows 8 的期待。

Firefox 蛋糕

看来对手之间除了竞争之外存在一些玩闹也是挺不错的,是吧?

文章引用地址:http://www.iefans.net/firefox-ie-zengsong-dangao-zhuhe-ie10-fabu/ 作者:iefans

作为站长到底需要什么?我们又缺少了什么

来源: 袁昆博客

最近由于比较忙,没有很好的和大家交流。今天一个朋友找守护聊天,说起他是做了6年的站长,可惜现在什么都没有,问我作为站长到底需要什么,缺少什么?

不知道现如今的数据是怎样的,在2010年左右月收入低于1000的站长朋友最少不低于50%,很多朋友也在找原因,为什么不能成功的运营网站,不能盈利。互联网上也兴起过大篇幅的文章,站长怎样实现盈利,站长怎样赚钱。对于这些,守护不想讲太多,我们有没有人想过为什么自己不能实现盈利?

如今的互联网巨头,他们当初也只是一个站长,只是一个小团队,为什么他们可以成功。根据网络上大家的观点,基本上可以分为以下三点:没有技术,没有资金,没有团队。

一:没有技术是大家心中的痛。

因为大多数的站长朋友都是因为兴趣等原因转入到这个行业,所以基本上很少有科班出生的站长,然而做网站真的需要那么厉害的技术吗?守护认为不需要,目前的开源程序技术已经非常不错了,大家可以免费使用,遇到问题也可以直接去官方论坛发问,所以技术不是问题。

二:没有资金是网站发展不下去的原因。

有一些站长朋友认为没有资金是网站不好发展的原因,在这里守护想问的是,有多少网站或者说个人站长在前期有资金的?腾讯因为资金问题差点卖掉QQ,网易最初也是借了50万资金成立的。所以没有资金并不是借口。

三:没有团队才是网站运营失败的根本。

对于大多数的站长朋友,我们是程序、美工、编辑、推广人员,因为任何事都亲力亲为,自然也做的不全面的地方。三国时诸葛亮的本领暂且不说,事事亲力亲为,五虎将之后蜀汉走向了灭亡。原因也是不言而喻的,我们需要的是一个团队,大家各自发挥优势,作为站长,我们只是一个管理者,一个倡导者,团队才是根本。

网站运营并不是缺少技术,也不是因为缺少资金,缺少的是团队,然而有了团队就一定会成功吗?答案是否定的,团队也有缺失,团队缺少的是什么?

站长朋友们看过亮剑吧,团队最主要的是什么,就是魂。作为网站运营来说,作为网站运营的最高领导者,我们缺少的就是魂,没有形成自己的一股独有的气势,大多数的站长没有创新能力,发现什么赚钱就盲目的去做,最后也只是在浪费时间;大多数站长不能坚定自己的信念,特别是一些新手站长,发现自己的网站出现问题了,或者看到一些站长行业网站上有些经验技术类的文章,不加思考的就去学习与执行。

网站运营失败缺少的不是技术也不是资金,缺少的是团队,而团队缺少的就是一种信念,缺少的就是创新。特别是大家在运营网站时遇到一些经验,遇到一些技术,大家应该多一些思考。做好自己的用户,不要被外在事物影响,需求是人最大的破绽,然而我们如果被外在事物影响,那么自己是危险的,因为我们随时会犯错。网站运营不正是这样吗?

本文由守护袁昆撰写,来源于http://yuankun0105.com/post/124.html。QQ:1029079293。一起交流,共同进步!