英语中有几个表示商品的词 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,提供新功能的建议与意见。根据各地用户分布及产品的运行状态,修正我们的容量规划及故障转移策略,进一步提升用户体验。

结语

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

http://www.csdn.net/article/2014-02-11/2818365-yahoo-datacenter-view

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

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

营销的真相

“互联网思维”的营销案例,并不是近一、两年才产生的,也不是互联网的专利。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揭搜狗泄密视频 一次罕见的互联网安全事故?

4

据站长之家(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。一起交流,共同进步!

十款开源在线视频播放器

10 Free Open Source embeddable Video Players,在现在网络中比较流行在线视频播放器,比如优酷、土豆、酷六、六间房、腾讯等都自带有在线视频播放的功能。

今天我就目前收集到的十个开源视频播放器与大家一起分享。

Vcastr 3.0 – flash video(flv) player (开源 Open Source)

这是一款国内开发的在线视频播放器,值得首先推荐。在财经网中得到应用。

Vcastr 3.0 – flash video(flv) player (开源 Open Source) image

官方地址:http://www.ruochi.com/main/2008/03/19/vcastr-30/

源码下载:http://vcastr.googlecode.com/svn/trunk/vcastr3/release/src.zip

特点:

  • 使用as3.0重新写了播放器
  • 可以设置循环播放,自动播放,是否直接开始下载,控制栏的颜色和模式
  • 控制栏可以适应超小的尺寸
  • 播放器大小缩小,在20+k左右
  • 可以通过xml对播放器设置
  • 可以播放多个影片,并且有影片列表
  • 可以使用插件扩充播放器的功能
  • 可以用插件设置logo及连接
  • 可以用插件来用javascript控制播放器

JW Player The Web’s top video player. Now with HTML5 support.

The JW Player is JW Player for Flash Version 5 and for Flash is the Internet’s most popular and flexible media player. It supports playback of any format the Adobe Flash Player can handle, as well as HTTP and RTMP streaming and various XML playlist formats. A wide range of configuration options can be set, and an extensive JavaScript API is available. The player’s skinning functionality allows you to completely customize its look, and the plugin architecture allows you to easily extend the player with features such as sharing, analytics and ad serving.

The JW Player’s source code is freely available and can be built entirely using free and open-source software.

JW Player The Web's top video player. Now with HTML5 support.image

官方网址:www.longtailvideo.com/players/jw-flv-player/

源码下载:http://developer.longtailvideo.com/trac/browser/

Flowplayer – Flash Video Player for the Web

flowplayer的是一个开源(GPL3)视频播放器的网站。它经常被网站所有者,开发商,爱好者,企业,程序员所使用。

Flowplayer - Flash Video Player for the Web image

官方网址:http://flowplayer.org/

源码下载:http://releases.flowplayer.org/flowplayer/flowplayer-3.2.7-src.zip

f4Player :: Open Source Flash Video Player (FLV, F4V, MP4)

f4Player是一个开源的Flash(AS3)视频播放器和库项目。它是如此之小只有13kb,完全免费的LGPL许可。

f4Player :: Open Source Flash Video Player (FLV, F4V, MP4) image

特点:

  • 免费,小,快,可定制和互联网上最好的FLV播放器!

 

官方网址:http://f4player.org/

源码下载:http://code.google.com/p/f4player/downloads/detail?name=f4player-beta-v1.00.zip

Open Standard Media (OSM) Player

With the onset of HTML5, there is a dramatic paradigm shift in the wake for online media content delivery. For well over 6 years, this industry has been dominated by the proprietary Adobe Flash Player, which has been used to deliver high quality media to audiences far and wide. This reign is coming to a dramatic end as new Open Standard technology takes its place. Yes, HTML5 is here, and we present to you the Open Standard Media (OSM) Player!

官方还提供有drupal的视频模块开源下载。

Open Standard Media (OSM) Player image

官方网址:http://www.mediafront.org/project/osmplayer

源码下载:https://github.com/mediafront/osmplayer/zipball/v1.0-rc4

OSFlvPlayer The Open Source, Embeddable FLV Player

这是一款超简单的基于flash的FLV视频播放器。OSFlvPlayer是一个开源的,Flash嵌入式播放器。该播放器提供了可在嵌入代码大量更改的选项。还提供了由JavaScript编写的一个自动生成代码,PHP的函数库等功能,完全开放的源代码!

OSFlvPlayer The Open Source, Embeddable FLV Player image

官方网址:http://www.osflv.com/

源码下载:http://www.osflv.com/Downloads/OSFlvPlayer_v4.2.zip

Projekktor Zwei – Free HTML5 video player

Projekktor是一个自由,开源(GPL)的基于HTML5的由Javascript写的视频播放器。它解决了跨浏览器和兼容性问题,提供了极其强大的非标功能。

Projekktor Zwei - Free HTML5 video player image

官方网址:http://www.projekktor.com/

源码下载:http://downloads.projekktor.com/archives/projekktor-0.8.20.tar.gz

Jaris  Flash Video Player

Jaris是一个Flash视频和音频播放器,可用于haxe自由发展。它是开源的,并已在其他商业公司找到了最重要的基本特征。

Jaris  Flash Video Player image

Features:

  • Aspect ratio switcher
  • Fullscreen support
  • H.264 playback support
  • Http pseudostreaming support
  • RTMP streaming support
  • Youtube player api support
  • Poster image
  • Use your own logo with link
  • Hide controls on fullscreen
  • Custom control colors
  • Hardware scaling
  • Keyboard shortcuts
  • Javascript interface to control the player
  • and many more…

官方网址:http://jarisflvplayer.org/

源码下载:http://jarisflvplayer.org/download

FLV Player

FLV Player image

FLV Player – Play your web movies, is an open source, free and customizable FLV player to play flash movies. It has 5 different versions that lets you only use a “play button” on player. Here are the versions mini, normal, maxi, multi, js.

官方网址:http://flv-player.net/

flvplayer Flash FLV player

官方网址:http://code.google.com/p/flvplayer/

源码下载:http://code.google.com/p/flvplayer/downloads/list

这是目前总结的最全面的、市场上仅有的开源、免费使用的在线flv视频播放器。

您在使用过程中请更新自己的需求适当选择。

880万行代码已删,Google在Blink之路上愈斗愈勇

880万行代码已删,Google在Blink之路上愈斗愈勇

几乎在一个半月前,Google 才宣布会用 10 周的时间,以新的渲染引擎 Blink 取代旗下所有平台的现有浏览器引擎。而昨天的 Google I/O 开发者会场上,Blink 团队更新了目前的项目进度:他们已经删除了原有 WebKit 中的 880 万行代码。

Google 最初宣称要以 Blink 取代 WebKit,因为 WebKit 对几个平台的兼容性太差时,表示需要移去 7 个构建系统并删除 7000 个文件包,大约包含 450 万代码。而照如今的进度看,Google 在移除 WebKit 上的工作效率已经远远超出预期。

这一额外的效果使得 Blink 团队成员在开发 Blink 时也变得更有生产力,他们甚至表示已经不需要再招聘什么工程师了,目前这几个独立的开发者的效率就可以按时完成工作。他们目前的工作除了删除代码以外,还包括了一些新的实验,比如Lazy Block布局——检验能否通过先处理屏幕中的显示内容来加快引擎对大型 Web app 的渲染速度。根据现场的 demo 展示,目前实验的结果是,渲染时间从原来的 4 秒降低到了 32 毫秒。

Blink 团队现在已经得到了 Adobe、Intel 和 Microsoft 的支持。Microsoft 已经和 Blink 团队达成合作,会向他们开放 Pointer Events(指针事件)API 以在浏览器中实现鼠标、触摸和手写笔的交互。

关于 WebKit 和 Blink 的恩恩怨怨,可以看这里《历史在重演:从KHTML到WebKit,再到Blink》

来源:http://www.36kr.com/p/203333.html

创业者,请解决真正的问题!

来源: i黑马

1

本文摘译自”Inspire Talk“,作者为 openfi.re 技术总监 Joshua Ellis。此为他参与美国创业家 Tony Hsieh(谢家华)的“Delivering Happiness”计划所发表的演说笔记。

几个月以前,一个初创公司开发者朋友跟我说:“我真是不明白,为什么穷人家的小孩或贫民窟的孩子,不想办法创业以摆脱贫穷。”他是个好人,我也知道他想表达的意思。不过让我直话直说,他的谈话里面有一点千真万确:他确实不怎么明白。

我观察 2013 年的科技产业创新所谓何来─有个让你租私家车从旧金山机场开到 Moscone Center 饭店的 app,只是叫一辆出租车有那么麻烦吗?或者请人来你家帮你送干洗衣物,只是下班回家途中顺道到洗衣店,像个大人一样,有那么困难吗?我很确定,这个世界实在有太多我们无法理解的事情。

我们称自己为“创新者”,不过大部分人只不过是个迭代器(iterator,程序语言用语);我们说自己的使命是解决问题,不过仅限于存在于“第一世界”的麻烦事。

我们这么做是为了什么?因为我们想要大发利市,这无庸置疑,这也没错。但就像电影《大国民》中所述:“发财没什么诀窍,只要你一心一意想着这件事,你就能赚大钱。”那就去做投资银行家吧。如果真想在科技产业轻松致富,就弄个色情网站,我说真的,低成本高收益,色情网站是不二选择,如果金钱是你的唯一信仰。

不过,技术人员曾经致力于解决“大问题”,不只第一世界问题,而是整个世界的问题─把人类送上月球、终结贫穷、遏止疾病。做这些事没有 IPO 黄袍加身,也无法登上科技新闻网站头条,更不会获得他人奉承。

他们的付出,是因为科技关乎改善人类生活条件。

而改善,还有很大很大的空间。

很久很久以前,我曾为《Las Vegas CityLife》写专栏,我的编辑有一天打电话给我,问我想不想知道城市下水道里头藏着什么东西。我的自保能力是出了名的脆弱,但我仍一把抓着手电筒向黑暗走去。

我在这座霓虹炫烂、纸醉金迷的城市地底看到的是,几百个人住在里头。他们有些是染上毒瘾、或赌博成瘾、或酒精上瘾。很多人都疯了,很难说是不是因为精神错乱将他们带来这里,总之,这里的人多不胜数。

但是,他们存活下来了。他们从建筑工地或家得宝(编按:Home Depot,美国家饰公司)的垃圾箱偷取建材,凭借己力建立了自己的庇护所,即便只是狭小的屋子;他们用煤砖渣充当架子,他们把自己的床架高以防被突如其来的暴雨冲走。他们存活下来了,纵使境地看起来恐怖悲惨,他们为自己打造了一方空间,即使那彷彿地狱般诡异肮髒。

这是我对创新的定义。

另外一个比较近期的例子是我在 SXSW 上遇到的创业家 Susan Qguya,她是肯亚奈洛比的新创公司 mFarm 的创办人。透过 mFarm,肯亚农夫能立即得知他们的农产品目前在市场上的价值。虽然 90% 的肯亚人都有手机,不过大多都不是智能手机,因此 mFarm 是以短信的方式传送通知给农夫。

mFarm 既不热门又不迷人,硅谷创投家肯定对它兴趣缺缺。不过 mFarm 正在改变肯亚的农业经济,这是真挚的创新,这是紮实的破坏性(disruptive)。

那么为何我不这样做?为何你不这样做?为何我们不这样做?

这个问题的答案就跟我的朋友疑惑为什么贫民窟小孩不出来创业一样。如果您正在阅读这篇文章,您很有可能是诞生在充满资源与机会的环境里,而那是一个 95% 的地球人无福享受的世界。您拥有获取资讯与力量的管道,令众人钦羨不已;不过地位、资源与机会却反倒可能令我们盲目而行。我们的视野被孤立在育成中心和骇客空间内,看不见他人的面孔,看不见真正的问题。

今晚下班路上,不要再走原路回家,不要马上回到那座专为科技人打造的安全区域 East Fremont。改变路线,去 Maryland Parkway 绕绕,到 Sunflower Apartments 晃晃,买杯啤酒坐在路边喝,提高警觉,观察周遭地区,观察当地人,观察他们彼此怎么互动,观察他们的生活环境,跟他们说说话。

接着想想,你该如何运用你机智的脑袋、丰富的资源、强大的力量,改善他们的生活。我不是要你开一间救济厨房或者成为泰瑞莎修女的接班人,而是一个礼拜花个一天,甚至一个月一天就好,你可以尝试解决这些人的问题,真正的问题。

这里就有几个点子:开发一个巴士到站通知 app,让民众上完大夜班后不必孤单的坐在站牌底下枯等公车。协助人们得以用便宜的 Android 手机就能进入的社区网站。成立课程班级让没钱上社区大学的人们也有机会学习科技。想办法引入 Raspberry Pis 或小笔电到连教科书都买不起的学校里头。

这些做法并不是无利可图的慈善事业,如果你的产品价格他们负担无虞,他们会由衷感激。每当你为 Facebook 的估值恼怒不已时,想想营收超过奥地利 GDP 的全球第三大企业(编按:作者应是指沃尔玛超市),目标客户瞄准的是蓝领阶级,他们赚的钱买下十几个 Facebook 都不是问题。Susan Oguya 跟我说过,金字塔底端宽广无比。

我们能运用心智、技术、资源,为缺乏机会的人们创造一个更好的世界吗?我们小小的付出,可能带来无与伦比的改变。

我们会更好,我们会更惊人,我们会成为英雄。

http://www.chinaz.com/start/2013/0407/298558.shtml

马化腾,你就把微信卖给运营商得了!

马化腾,你就把微信卖给运营商得了!

虎嗅特别提示:千万别看到作者这标题读者您就开始喷!作者在末尾说了,这个建议纯属一玩笑扯淡。他只是想以此作由头,牵扯出对为何运营商怕微信、却又自己做不了微信、同时又难以联合箝制微信的分析。

最近看新闻都在争论微信该不该收费,工信部也插手到具体某个业务该不该收费的事情,我就忍不住想跟马化腾说:“你把微信卖给运营商得了”!

创新者的窘境
我们先看看为什么运营商逼着微信收费?收不收钱,向谁收钱都不是关键。问题的本质在于微信对于运营商来说,是颠覆性创新,是对电信运营商基于话音的传统商业模式的彻底颠覆。
拿 一个不到一百亿的市场,去彻底颠覆千亿级别的话音和短信市场。这是电信运营商高层都能看到的市场变化,但问题在于运营商会纠结于现有庞大的话音收入。如果 一听说有人要来抢自己碗里面的肉,就索性把肉都扔掉了,那是十足的“Silly Bite”!但要让自己割自己的肉,除非迫不得已,心狠手辣,非关羽之类的普通人是下不来手的。

作为运营商高层来说,是需要权衡资源投入和利益的,这是令人伤心的纠结事!在国资委投资回报率KPI考核下,理性决策是倾向于往老产品投入资源,保住现有话音收入,而不愿意在新领域上投入,尤其是短期内不会带来收入的移动互联网产品。
运营商的理想策略是自己做一个,万不得已自己主动割自己的肉!
但对运营商来说,最理想策略是自己做一个类似产品,拿出来跟微信竞争。根据市场竞争状况,逐步释放话音风险。与其让人割自己的肉,还不如自己主动割自己的肉,还能看看停停,主动权掌握在自己手上。就像当年电信主推IP长话一样,一下子就把各种IP长话竞争对手都打趴下了。
但 问题关键是运营商自己做不了微信这样的OTT产品。不是没做过,是尝试去做过,但运营商发现自己根本做不起来;不是一次做不起来,而是试过好多次,但结果 都是那么让人伤心欲绝的。这个挑战不单单是针对移动电信和联通三家国有运营商,全球的传统电信运营商都面临这个问题,也几乎是束手无策的。
砂枪打不死野猪!
农村打猎,有一种砂枪,上面装铁砂,用火药激发。威力不大,只能打打兔子。如果碰到野猪,野猪皮厚实,想着说我一定要逮一只回去,过年就有肉吃了。可万一没打死,激怒了野猪,冲过来说不定自身小命都难保。因此,带着一把砂枪想去挑战野猪是很危险的。
你会说我可以采取挖坑、设埋伏等土办法去打野猪,这个理论上可以有。但是就像兔子撞死在树上一样,属于撞大运的小概念事件。
运营商现有机制就是一把砂枪!
现在运营商手头拿着的就只有一把砂枪。对运营商来说,IM和手机操作系统等之类的都是属于野猪老虎狮子之类的,正常情况下是打不死,也惹不起的。
运营商从本质上来说是以服务和营销见长,自己研发产品的能力很弱!是华为等厂家把设备都安装调试好,运营商依靠政府特许牌照开展服务和营销,有些设备维护之类的甚至都外包给华为等厂家来做了。
而互联网则是产品见长,需要不停地去试错,去打磨产品,通过快速响应客户需求来满足客户体验。这中间存在巨大的基因和运营差异。而要让有着上百年历史的传统电信运营商转型来适应互联网运营模式,这个是很难转变的!
当然,现在据说中国电信在跟网易合作,想重新开发翼聊,那就是属于“借枪”了,但能不能做起来,我个人判断是很难,因为错过了市场发展的最佳时机,要靠简单粗暴的手段将市场抢过来,是太难了。
大企业病阻碍了运营商创新
“大企业病”最早由日本欧姆龙的创始人立石一真于1983年提出,是指企业发展到一定规模之后,在管理机制和职能等诸方面,滋生出阻滞企业继续发展的种种危机,使企业逐步走向衰败的一种慢性综合病征。
企业大了,事项增多,决策过程复杂。管理层级多了,高层就看不到市场一线情况,决策机制失灵。机构臃肿,人浮于事,企业便滋生了因人设事以及多数人无所事事。
一句话归纳,从本质上来说,“大企业病就是官僚化带来的行动缓慢”!。我相信但凡跟运营商打过交道的人,都很清楚运营商身上存在的大企业病。
而互联网产品是需要面向客户体验快速迭代。腾讯的“小步快跑,快速迭代”灰度创新法则,这是大公司面对不确定性时的稳健保守做法。而传统运营商强调全程全网、电信级的传统运营模式是根本无法做到这一点。
一切不以赚钱为目的的公司都是耍流氓!小马哥是想收钱的!但不敢收!
说完运营商,我们来说说腾讯。
毫无疑问,马化腾是想收钱的。作为上市公司,是需要给投资者回报!三亿微信用户,如果能每人收10块钱,一个月就是30亿,这个日子不要太好过啊!
但是马化腾很清楚,只要他跟用户一伸手,那3亿用户转眼就变成几千万、几百万级别了。因为微信好友都跑光了,你发消息给谁啊?没有了接收端,自然也就没有了发送端。收费只会把客户赶到竞争对手那里,给自己再培养更多、更强大的竞争对手,比如LINE等。
另 一方面,马化腾很清楚运营商的话音蛋糕是不能轻易碰的。因为三家运营商背后是国资委,这个是惹不起的。轻易打破人家的玻璃房子,只会给自己惹来无穷麻烦! 当初产品设计时采取对讲机模式,也是打政策擦边球,规避政策风险。(顺便问一句,有谁知道为什么line敢明目张胆地走话音模式?)
因此,马化腾处于两难窘境。想收银子,但怎么收费不影响客户体验,这是小马哥面临的巨大挑战。
我个人相信,现在对于微信来说,是属于黎明前的黑暗,只要把客户体验做好,假以时日,是一定能找到合适的商业模式的。
恰恰是时间是最宝贵的
错过了关键时间点,很多事情就不再是困难。马化腾和三大运营商都很清楚这一点。
对于马化腾来说,赶紧找到合适的商业模式,突破烧钱的阶段是第一要务。一旦找到钱,分一半给三家运营商,那就是皆大欢喜的事情了。另外则是微信赶紧走国际化,做大规模和影响力。假如过3年,全球有30亿用户在用微信,是否可以说已经是一种事实上的通信国际标准了?
因此,马化腾策略是拖,赖着不给运营商信令资源占用费,给自己争取更多的时间来找到解决办法。我自己辛辛苦苦做出来的产品,凭什么给你啊!
对三家运营商来说,过了这个村就没有下一家店了。现在3亿微信用户已经够可怕了,完全有能力一夜之间彻底颠覆运营商。现在只是政策在约束微信不让越界,如果让微信继续做大,一旦运营商对微信采取任何手段,都会变成轩然大波,千夫所指。
另一方面,很多潜在的OTT企业也都虎视眈眈地盯着运营商话音这一块肥肉,比如新浪微博很明智地隐藏了手机客户端IM通话功能,不敢当出头鸟来公开挑战运营商。只要你运营商开了这个口子,就等着决堤吧!
这是运营商高层和各政府衙门都不愿意看到的结果。所以,工信部就赶紧出来协调“大家都退一步吧”?“该交点钱就交点钱吧?”“别越界了…….”
运营商三兄弟同床异梦,很难共事
但现在问题是三家运营商本身很难扭到一块去。
三家里面,中移动最大,绝大部分客户都是他的,抢的都是它的蛋糕,因此移动最性急,恨不得一手就掐死微信;而联通规模最小,同行是冤家,认为最自己威胁最大的是移动电信,所以还想着能跟微信合作,弄个鱼水情啥的。电信居中,则不吭声自己在做IM。
一条船上的三兄弟,心思各异,你说要让这三家联合起来,做个IM,或者各自做个IM,搞个互通,按照运营商的决策机制和国企性质,是属于天方夜谭,根本不可能的事情!
将微信卖给运营商,再让QQ重新山寨微信!
要破解这个局,小马哥就学学人家马云,你要支付宝,我贡献出来就给你呗!我相信马云只是表表态而已,假装很大方,如果真要他拿出来,我估计他打死也不肯的。
把微信卖给三家运营商,把商业化的难题交给运营商去想呗!卖个几百亿人民币,这点钱对于运营商来说,毛毛雨不算啥的!你想想一个飞信中移动就至少投入了60亿,三家凑一块,掏出这点钱不算啥的!
当 年3Q大战,马化腾意识到“QQ与其被竞争对手颠覆,还不如自己颠覆自己”,咬咬牙,自己割下自己的肉,这才有了微信成功。现在把微信卖了,不用再顾忌左 右手互博了,小马哥都没必要“喊破嗓子“,完全可以“甩开膀子”重新山寨一个微信!毕竟现在QQ客户群都还在,只是手机QQ活跃度低了。把手机QQ功能再 丰富起来,按照腾讯的实力,过几年又是一条好汉的!这样也避免了微信市场垄断的潜在指控。
而三家运 营商拿到微信这个产品后,互联互通的事情也省了,各自动动脑子,好好做一做,把话音风险逐步释放掉。等到一天,流量能支撑起运营商这棵大树,话音免不免费 也就无所谓了,更不用担心话音被颠覆了。当然,按照现在运营商的机制,过几年,产品老化,还是会照样遇到这一问题的。以后事情就以后再说呗,小平同志说 了:“下一代人会比我们聪明,会找到解决办法的”。你说呢?
作者 陈斓 http://www.huxiu.com/article/12403/1.html

库克第二次道歉 中国挑战加速苹果内部改革

中国挑战或加速苹果内部改革

苹果CEO库克向中国消费者发出了上任后的第二封公开道歉信,这位自称热爱中国的CEO在今年1月访华时仍在向腾讯科技反复强调中国市场对苹果的重要性。可以想象的是,在过去半个月,漫长的流程和繁琐的内部沟通机制让CEO的重视演变成了一种企业层面近乎傲慢的姿态。

库克在这封信里详细的解释了苹果的保修政策,并为忽略中国消费者的感受道歉。遗憾的是,此时距离央视3.15晚会曝光该公司售后问题已超过2周时间,与上次拖延了10天才为iOS地图的诸多使用问题道歉一样,苹果再次暴露了自身在危机公关上的短板和对中国市场的不了解。

尽管有声音认为外资企业对中国市场的反应速度较慢是普遍现象,但大部分的外资厂商在3.15这样重大的问题都能迅速的做出回应——同样在今年央视3.15晚会上被曝光变速器质量问题的德国大众,在晚会当天就承诺会给消费者答复,并在5天后宣布了召回计划;曾被1999年3.15晚会曝光笔记本质量问题的惠普,在晚会第二天就承诺延长笔记本保修期并解决散热问题。

显然,苹果的反应迟缓已经影响到了外界对该公司的信心,在中国媒体连续数天的炮轰之中,已有投资者为苹果在华的市场份额感到忧虑。花旗分析师Glen Yeung在昨日表示,对苹果在中国的市场份额感到担忧,目前不向投资者推荐这只股票。截止昨日收盘,苹果股价已下跌了3.11%。

1993年,随着北京办事处的成立,标志苹果公司正式进入了中国市场;20年后,苹果仍在了解中国的过程之中,有了这次的危机,苹果或许明白,中国市场并不仅仅需要同步的产品,也需要同步的沟通。

库克道歉

昨日,苹果中国官网发布了苹果CEO库克致中国消费者的一封信。信中表示,苹果意识到,由于对外沟通不足而导致外界认为Apple态度傲慢,并非不在意或不重视中国消费者的反馈。对于由此给消费者带来的任何顾虑或误会,表示诚挚的歉意。

库克还透露了苹果针对售后实施的四项重点改进,其中包括:一、改进iPhone 4和iPhone 4S维修政策;二、在Apple官方网站上提供简洁清晰的维修和保修政策说明;三、加大力度监督和培训Apple授权服务提供商;四、确保消费者能够便捷地联系Apple以反馈服务的相关问题。

库克称,iPhone 4和iPhone 4S均以以下三种方式中的一种进行维修:如自购买之日起15日内发现问题,为消费者退款或更换一部享有重新计算1年保修期的iPhone;如15日之后发现问题,根据具体情况更换相关部件;如果通过更换部件亦无法快速修好iPhone,为消费者提供一台部分重新装配的设备,采用全新部件,仅保留消费者现有iPhone 4或iPhone 4S后盖。

他承认,关于在华运营和沟通苹果还有许多需要学习的地方,并表示“始终对中国怀有无比的敬意,中国的消费者始终是我们心中的重中之重”。

苹果危机

就在库克发布道歉信的当天,花旗分析师Glen Yeung表示,对苹果在中国的市场份额感到担忧,目前不向投资者推荐这只股票。这是中国央视3.15晚会以来首次有分析师对苹果在华业绩表达关注。据央视3.15晚会节目组报道,苹果公司在在售后服务问题频现,不仅违反《移动电话商品修理退还责任规定》,并且多款产品的服务标准违反国家三包规定。

在央视的强烈指责之下,苹果于3月15日当天发出了首个回应,“苹果公司致力于生产世界一流的产品,并为所在市场的消费者提供无与伦比的用户体验。这也是为什么我们在每一家苹果零售店的Genius Bar 天才吧提供深受消费者喜爱的面对面支持。我们也与全国270多个城市的超过500个授权服务点密切合作。我们的团队一直努力超越消费者的期望,并高度重视每一位消费者的意见和建议。”

因为这一“回应”实际上并未回应就央视所质疑的任何问题,被视为苹果“傲慢”的一大证据,随后央视《新闻联播》、《焦点访谈》、《经济半小时》等多套节目中,苹果问题被反复曝光。

3月23日,苹果再次回应,“中国消费者享有Apple最高标准的服务。我们的政策完全符合本地法律法规。Apple在中国所提供的保修政策和在美国及世界各地大致相同。”“鉴于iPhone 5的独特设计,在绝大多数情况下,我们都会根据Apple的政策提供整机更换服务。”

随后,在人民日报连续5天对此事跟踪报道之后,苹果CEO库克出面致歉。

中国挑战

过去23年里,央视3.15晚会保持了被曝光者全部道歉的记录,在库克的道歉信发出后,这一记录又添上了浓墨重彩的一笔。尽管电视媒体的影响力在逐年下降,但央视的地位在中国地区仍难以替代,尤其是被消费电子产业视为重要目标的四六级市场,央视多个栏目的报道及人民日报的连续追踪足以影响当地消费者者的购买意向。

对苹果CEO库克来说,这是继产品创新,供应量管理之后的又一大挑战。在区域市场的管理上,库克时代的苹果与乔布斯时代仍未有明显变化。尽管中国区的营收已经仅次于美国市场,但苹果中国区仍未被下放足够的权利,有媒体人士称,苹果亚太区副总裁卢雷在苹果内部所扮演的角色更类似驻京办主任,无权对任何重大问题作出即时回应,这也是事件初期苹果动作缓慢的原因。

在今年1月接受腾讯科技专访时,库克表示,由于中国与其他国家产品上市的时间差及售价问题,许多消费者放弃了苹果行货转而选择水货。未来库克会继续加大和中国政府的合作,来确保能够更快地让中国的消费者获得苹果的产品。

对自称热爱中国,热爱中国文化的库克来说,这次危机是苹果了解中国市场的宝贵机会,显然,中国市场需要的不仅仅是同步的产品,还需要同步的沟通。过去数年苹果忽视了全球各个地区各个阶层用户的客观区别,用统一的产品创造了一系列的商业神话,但苹果若想在创新不够颠覆性的情况下继续谋求更大的市场份额,到了直视这一问题的时候了。

1993年,苹果在中国建立了北京代表处,正式进入了中国市场,20年后,苹果却仍在了解中国市场的过程之中,这是库克,也是苹果需要尽快补上的作业。

腾讯科技 http://www.chinaz.com/news/2013/0402/298057.shtml

百度站长工具 拒绝外链工具内测

百度站长工具  拒绝外链

今天打开站长平台发现站长 工具第一个上面出现了一个拒绝外链内测中 的项目,这是百度在打击连接买卖中出的新功能。

百度的说明是:

  1. 我们建议您仅在以下情况拒绝外链:您认为指向您网站的垃圾链接、虚假或低质量链接数量可观,同时确定这些链接会给您的网站造成负面影响,否则请勿使用该工具。
  2. 链接拒绝后不能撤销或删除,请谨慎使用。

但是有个限制提示:

  • 每个站点每月可拒绝的链接次数为500次,超出500次则无法成功拒绝链接。
  • 我们需要一段时间来处理您提交的信息,拒绝链接生效周期为数周。

原文:http://www.liyunde.com/zhanzhanghome/baidu/20130301/036386.htm

百度绿萝算法上线了

2.19日百度绿萝算法上线了。三个多月前,我们与各位站长朋友分享了百度对超链链作弊的态度,经过一段时间的观察和数据积累,我们很欣喜地看到部分网站已经停止了这种行为并逐步的清除掉了此前的作弊超链,这对我们互联网生态环境正向发展是十分难能可贵的;但与此同时,我们仍然痛心的发现,反复强调过的买卖链接行为仍然大量存在,在此,我们再一次提醒这部分站长,此类链接早已被系统所识别并且已经从链接计算中清除。
       我们有必要再次强调:买卖链接行为一方面影响用户体验,干扰搜索引擎算法;另一方面投机建站者得利,超链中介者得利,真正勤勤恳恳做好站的站长却在这种恶劣的互联网超链环境中无法获得应有的回报。因此针对买卖链接行为在清除外链计算的基础上,我们将对站点本身作出进一步调整。
       此次调整中,以下三个类型网站将会受到不同程度的影响:

       1.超链中介
       超链本应是互联网上相对优质的推荐,是普通用户及网站之间对页面内容、网站价值的肯定,但是现在种种超链作弊行为使得真实的肯定变成了一些人谋取利益的垫脚石,用户无法根据链接的推荐找到需要的优质资源,并且严重干扰搜索引擎对网站的评价。超链中介便是这畸形的超链市场下形成的恶果,我们有义务维护超链的纯净维护用户利益,也有责任引导站长朋友们不再支出无谓的花销,所以超链中介将在我们的目标范围内。

      2.出卖链接的网站
       一个站点有许多种盈利方式,利用优质的原创内容吸引固定用户,引进优质广告资源,甚至举办线下活动,这些盈利方式都是我们乐于见到的,是一个网站的真正价值所在。但是一些网站内容基本采集自网络,以出卖超链位置为生;一些机构类网站或被链接中介所租用进行链接位置出售,使得超链市场泡沫越吹越多。此次的调整对这类站点同样将有所影响。

       3.购买链接的网站
       一直以来,百度对优质站点都会加以保护和扶植,这是从用户需求以及创业站长的角度出发的必然结果。而部分站长不将精力用在提升网站质量上,而选择钻营取巧,以金钱换取超链,欺骗搜索引擎进而欺骗用户。对于没有太多资源和金钱用于此类开销的创业站长来说,也是一种无形的伤害,如果不进行遏制,劣币驱逐良币,势必导致互联网环境愈加恶劣。此次调整这类站点本身也将受到影响。
       最后,感谢专心做好站的站长们的支持,也感谢用户多年的使用,这些就是我们一直努力净化互联网环境的动力。请仍身处超链买卖漩涡中的站长朋友们尽快停止这种无效的行为,并且认识到优质的原创内容,独一无二的服务,为用户着想的信息组织,才是一个网站逐步成长的正确道路。今后我们也会从这些角度出发,继续为用户提供便捷的服务,为更多站长带来更丰厚的收益。
       原文内容出自于:http://zhanzhang.baidu.com/wiki/142

2013谷歌pr更新的大概时间

第一次PR值更新预计会在2月4号到2月10号之间,第一个是时隔2012年11月8日大约三个月,第二个则是2012年也是2月7日大更新的,所以第一次更新应该会在2月4号到2月10号之间。

第二次更新,会在5月初旬,预计5月4号到5月10号之间,在2012年的5月份的PR值更新中,谷歌是分批更新的,分别在4号、5号、6号、27号小范围更新,但是更新的总和也超过20%,在2011年的PR更新中完全不具规律性,所以难以作为参考来源。

第三次更新,会在8月初,预计在8月3号到8月8号之间,在2012年是8月3日更新的,而且在2011年的8月5号谷歌的更新也在25%,所以3013年的这个时候,相信谷歌也是会更新的。

第四次更新,11月8日左右,为什么这一次那么具体呢?因为在2011年和2012年的这一天谷歌的PR值都是大范围更新,不知道这一天对于谷歌是否有特殊意义,这两年都选择在11月8号更新,依照这个势头的话,2013年的这一天也是会更新的。

我们要的是搜索流量,而不是搜索排名

许多网站还是会把「搜索排名」当成SEO操作的重要目标,但是却没有思考提升「搜索流量」的策略。我们应该如何面对「搜索排名」与「搜索流量」的真正意义呢? 让我们来看下去 …

所谓「搜索排名」就是使用者使用「某些关键字」在搜索引擎上搜索网页,当你的网站可以出现在自然搜索结果列表中,并且被使用者看到,代表你的网站具有「搜索排名」,并且通常许多网站都在追求「搜索排名」的前三页。

但是问题是,你所认定的「某些关键字」是否会是使用者用来搜索的关键字呢? 有多少使用者会使用那些关键字进行搜索呢?

所谓「搜索流量」就是当你的网站可以出现在自然搜索结果列表中,并且被使用者点选而导引到你的网站,代表你的网站具有「搜索流量」。

我们来看看一般搜索关键字的比例关系,如下图:

红色的部分表示许多的使用者使用该关键字进行搜索 (我们姑且称这个关键字为关键字A),占了总搜索量的5.21%,也就是100个搜索中,约有5个搜索是使用关键字A。

将所有占总搜索量较大的总和起来共是11.39%,其他小额搜索量的总和是88.61%。

所以各位应该看出来了,追求搜索排名有两个盲点,第一个是关键字盲点,也就是你根本无法确定~ 你锁定的关键字真的是使用者使用的关键字吗? 第二个是主关键字流量盲点,就算你锁定的关键字是正确的,但是其流量总和竟然只是总流量的少数,反而更大的流量来自于长尾关键字,上面的例子中,长尾关键字的流量总和是88.61%,你到底是要11.39%的流量,还是88.61%呢? 答案应该非常明显。

所以我们当然要的是搜索流量~而不是搜索排名,但是许多网站知道如何争取搜索排名,但是却不知道如何增加搜索流量。

我们在”没有内容怎么作SEO? 没有内容可能有搜索流量吗?”说过,如果网站没有内容,而靠内容之外的其他内容来争取搜索排名的话,其实也可能只有某些特定关键字的「搜索排名」,而不可能有太好的「搜索流量」。

要争取好的「搜索流量」,方法就只有内容营销,只有适当的内容才能引进「搜索流量」。所以虽然我们说,也可以靠内容以外的其他优势进行SEO,但是搜索排名只是一个象征性的胜利,真正的胜利则看搜索流量来决定。

文章来源:台湾搜索引擎优化与行销研究院

微软发布Windows 8操作系统:升级需支付248元

 来源: 新浪科技微软windows部门总裁史蒂芬·辛诺夫斯基介绍Win 8特性

微软windows部门总裁史蒂芬·辛诺夫斯基介绍Win 8特性

微软CEO史蒂夫·鲍尔默:Win 8打造了最好的PC

微软CEO史蒂夫·鲍尔默:Win 8打造了最好的PC

两位微软windows部门副总裁着重介绍了宏碁与联想的超极本与平板硬件设备

两位微软windows部门副总裁着重介绍了宏碁与联想的超极本与平板硬件设备

10月26日凌晨消息,微软今天在美国纽约召开发布会,正式宣布Windows 8上市,用户从现有操作系统升级至Windows 8需要支付39.99美元(中国用户需要支付248元)。

发布Windows 8操作系统

对熟悉Windows的人来说,Windows 8本次的改版不可谓不激进。该产品的新界面主要为触摸屏设计,采用Windows UI,并去掉了原有Windows操作系统中一直存在的“开始”按钮、开始菜单、Windows桌面小工具等功能。

微软全球Windows与Windows Live事业部总裁史蒂芬·辛诺夫斯基(Steven Sinofsky)在会上表示,目前已经有1600万部设备预装Windows 8。

辛诺夫斯基表示,正式上市前,Windows 8已经经过了12.4亿小时的测试,新系统在多个方面进行了改进:具有更好的续航能力,启动速度更快,占用内存更少,并兼容Windows 7所支持的软件和硬件等。

辛诺夫斯基说,新版系统Windows 8是为键盘和鼠标操作而设计,但是兼容触摸。他透露,已经有超过1000个型号的个人电脑得到Windows 8授权,部分产品售价低于300美元。他同时透露,作为Windows 8系统一大亮点的Windows Store已经在全球231个市场上线。

随后登台的微软CEO鲍尔默在会上表示,Windows 8系统将有6.7亿潜在升级用户,以及每年高达4亿的新用户增量。

中国用户248元可升级Win 8

在微软正式发布Windows 8之后,微软中国在线商店也作出更新,宣布中国用户支付248元便可以从现有系统升级到Windows 8专业版(升级地址)。微软中国未公布更为具体的Windows 8销售价格。

微软中国表示,本次优惠升级具有时间限制,此优惠从2012年10月26日至2013年1月31日,每个客户限五个升级许可证。若要安装Windows 8 Pro,客户必须运行Windows XP SP3、Windows Vista 或 Windows 7。

作为Windows 8正式上市前全球预演活动的一部分,微软10月23日在上海展示了最新的Windows 8操作系统。微软大中华区董事长兼首席执行官贺乐赋(Ralph Haupter)在该活动上表示,“中国对微软,对全球产业都是一个重要的机遇。”

在上海的发布会上,微软共展示了来自15家微软OEM合作伙伴的52款为Windows 8设计并优化的硬件设备。同时,还展示了中国应用商店的一些应用,其中涉及新浪微博、高德地图、美图秀秀等。

大胆变革引来争议

微软在Windows 8上赌得很大,微软CEO史蒂夫·鲍尔默(Steve Ballmer)日前接受媒体采访时表示,“Windows 95显然是微软最近20年来最重要的产品,但我认为Windows 8显然会超过它。”

微软希望Windows 8可以吸引更多用户,尤其是移动用户的关注,从而夺回被苹果和谷歌蚕食的市场份额。

市场研究公司Forrester(微博)的最新调查显示,受智能手机和平板电脑的影响,微软在全球计算设备操作系统市场所占份额从四年前的70%降低到今天的30%。这主要缘于新操作系统的出现,如谷歌Android和苹果iOS等。

鲍尔默坚定的认为,Windows 8是一款非常优秀的产品,肯定会表现很好。不过市场上也出现了很多质疑的声音。

美国科技网站BusinessInsider的马特·罗索夫(Matt Rosoff)几个月前曾经测试过预览版Windows 8,他认为,该系统的设计令人困惑,而且难于使用。

美联社也认为,这款新系统的界面令用户摸不着头脑。Salesforce.com CEO马克•本尼奥夫(Marc Benioff)甚至认为,“Windows 8将成为Windows绝唱。”

很多体验过Windows 8的普通用户也感到不适应。他们经常会抱怨,怎么找不到开始按钮和关机键,界面该如何切换……

对于用户而言,如果要完整体验Metro界面,用户就需要升级现有的硬件,选购具备触摸屏幕的电脑;而如果坚持使用现有的硬件,似乎又没有了升级的必要。因为Window 8的桌面版本与Window 7几乎没有区别。

铁路部门推新客票系统:含手机购票及网上预约

来源: 新华网

新华社北京9月12日电(记者齐中熙)记者从铁道部获悉,为进一步满足旅客购票乘车需求,铁路部门通过研发新一代客票系统,陆续推出多项便民利民新举措。9月底,铁路部门拟推出“掌上12306”手机购票业务,并实现在线支付。手机购票系统支持苹果和安卓平台系统,届时旅客可免费下载和使用。其中,苹果平台应用从APP store下载,安卓平台应用可从www.12306.cn网站直接下载。铁路部门提示,“掌上12306”应用图标为中国铁路路徽,路徽下方标有“铁路客服中心”,请广大旅客注意。

今年“十一”期间,为了减少旅客在www.12306.cn网站上购票等待时间,解决网站售票高峰堵塞问题,铁路部门在上海地区试行了预约订票业务。对9月29日、30日,10月1日及10月5日、6日、7日共六天,上海地区开往郑州、武汉、南昌和成都四个方向的共42趟直通旅客列车的始发车票开展预约订票。旅客可通过www.12306.cn网站提前提交预约请求,系统将按照旅客需求自动进行配票。具体预约流程请登录www.12306.cn网站或上海地区火车站公告查看。

此外,铁路部门对互联网售票系统进行了优化升级,在www.12306.cn网站还增设了退票绿色通道,在网站繁忙时,可确保旅客正常办理退票业务。

据了解,新一代客票系统还规划设计了一些新的服务功能,将随着系统的建设开发陆续推出。

铁路新一代客票系统自2011年初开始研发,采取了分步建设的方案,分三个阶段实施。2012年底前完成一期工程建设任务,预计2013年底前完成二期工程建设,2015年底前完成全部工程建设。目前,一期工程已基本准备就绪,自2012年9月至年底,新功能将陆续投入使用。(完)

Google是世界第五大服务器生产商

 来源: Solidot

英特尔数据中心集团负责人Diane Bryant透露,Google是世界第五大服务器生产商,但它生产的服务器只供自己使用。 2008年,英特尔四分之三的服务器芯片业务收入来自惠普、戴尔和IBM,全球大多数企业都是向这三大服务器生产商购买服务器。

但到了2012年,英特尔四分之三服务器业务收入来自八家公司,其中一家公司不销售服务器,它是为自己生产服务器。服务器市场正从传统的服务器供应商模式逐渐转向原设计制造商 (original design manufacturers,ODM)模式,大型Web公司如Facebook、亚马逊和Google都采用ODM减少中间环节降低成本。

除了 Google外,Bryant没有透露八大服务器公司的具体名字,但她列出了正在崛起的ODM供应商如广达、超微(Supermicro)、Wiwynn 以及华为。

360搜索、搜狗愿配合盛大文学屏蔽盗版网站

 来源: 新浪科技新浪科技讯 9月9日晚间消息,盛大文学呼吁搜索引擎屏蔽盗版侵权网站一事又有新进展,目前已经收到360和搜狗的积极回应。

据内部人士透露,360搜索和搜狗积极回应盛大文学的要求,愿无条件配合清理。而中国最大的搜索引擎百度(微博)则尚未回应。

9月6日,盛大文学联合旗下百名作者发布联合声明称,呼吁百度、360等搜索引擎保护网络著作权人的合法权益,降低搜索引擎中盗版网站权重,并进而屏蔽盗版侵权网站。

此前,盛大文学公布的数据显示,排名前十的小说,通过百度搜索引擎,平均被盗版800万次以上,最受欢迎的小说有5000多万条链接,这些链接中有99%的都是盗版。(爱文)

公司环境好坏,决定程序员水平高低?

千万不要惹程序员不开心,否则吃亏是你自己

千万不要惹程序员不开心,否则吃亏是你自己

是什么造就了最优秀的程序员?丰富的工作经验、优厚的待遇,还是多年的实践?答案都是否定的。

在科技界,有一个奇怪的现象:来自同一家公司的程序员的水平相差无几。为什么会是这样?因为最重要的因素是程序员所处环境的舒适程度,这一点决定了他们的水平高低。

为了验证这种看法是否正确,美国软件工程专家汤姆•德马克(Tom DeMarco)和蒂莫西•李斯特(Timothy Lister)设计了一个名为“编码战争游戏”(Coding War Games)的研究。这项研究旨在确认最好的程序员和最差的程序员有哪些共同特征。

超过600名程序员参加了研究,他们来自92家公司,每个人都要设计、编码和测试一个程序,他们不仅要在上班时间完成编程,工作环境也与以前不变。此外,每名参与者都要与一名来自本公司的同事配对,但二人独立工作,相互间没有任何的交流——这也是“编码战争游戏”研究的一个重要特点。

研究结果表明,不同程序员的水平有着天壤之别:最好的是最差的10倍,顶尖程序员的水平是平均值的2.5倍。

当德马克和李斯特试图揭开程序员水平差距如此之大的谜团时,他们发现工作经验、待遇和完成这项工作所需要的时间等因素,都与之没有太大关联。

例如,拥有10年经验的程序员并不比只有2年经验的程序员优秀。一半能力处于平均值以上的程序员的收入还比另一半能力处于平均值以下的程序员少了10%——即便前者的水平是后者的两倍。相对于那些在编程中出现多处错误的程序员,没有出现任何错误的程序员完成测试的时间即便没有超过他们,但也没有少很多。

至于程序员之间的水平为何相差如此之大,这仍然是个迷,但有一个线索颇令人感兴趣:来自同一家公司的程序员的水平都差不多,即便他们不在一起工作。这是因为顶尖程序员所在的公司,会给予他们最大的隐私权和私人空间,同时让他们完全可以支配自己的物理环境,不受任何打扰。

62%最优秀的程序员说,公司十分尊重他们的隐私权,而表现最差的程序员中只有19%的人这样说。在表现最差的程序员中,76%的人说他们经常无缘无故被打扰,而在最优秀的程序员中,只有38%的人这样说。

本文编译自bakadesuyo。

(清辰)

来源: 新浪科技

百度大规模反制360:双方趁夜上演攻防战

用户在360浏览器中使用360综合搜索时,点击来自百度相关服务,会被直接带至“网页快照”页面。

新浪科技讯 8月28日晚间消息,百度今晚悄然对360搜索业务展开反制,用户通过360综合搜索访问百度知道、百科、贴吧等服务时,将会强行跳转至百度首页。这也是360本月中旬发力搜索服务以来,百度首次展开相应的反制行动。

已经承平太久的互联网搜索行业,今晚悄然展开攻防暗战。交锋的双方则是行业老大百度,以及近日在搜索业务上风头正劲的360。

这场意料之中的较量,开始于今晚9时左右,百度选择这个时刻开始在小范围进行测试:用户通过360综合搜索访问百度知道、百科、贴吧等服务时,将会强行跳转至百度首页。不过在一段时间内,不同的浏览器下使用这一服务,百度处理的方式略有差异。

根据新浪科技得到的反馈,在Firefox、360浏览器以及IE中,百度均采取上述强行跳转的策略。而谷歌Chrome浏览器似乎并未受到影响。更进一步,是在360综合搜索中默认为百度的新闻、图片、MP3、地图等服务中,进行任何搜索都会跳转至百度首页。

360随后展开对攻,用户在360浏览器中使用360综合搜索时,点击来自百度相关服务的搜索结果,会被直接带至“网页快照”页面。根据新浪科技测试的一个关键词,相应的“网页快照”上清晰的提示,这个页面是360存储于傍晚六时。

双方的攻防的涉及面积越来越大,百度知道、百科、贴吧等分别占据百度整体流量超过10%以上的重要服务,都对来自360综合搜索的请求采取限制措施。

一个小时之后,360浏览器逐渐改变了提供百度网页快照的对策。

本月中旬,360悄然推出综合搜索业务。来自Hitwise的数据显示,在360浏览器、网址导航等产品的推动下,360综合搜索的流量份额快速攀升至10%左右;与此同时,360还在搜索结果中有意降低百度相关服务的权重,而此前百度仅有轻微回应。

至截稿时,百度今晚股价上涨近3%,而360股价下跌超过5%。而百度和360官方均未针对今晚的事件作出回应。(孟鸿)

福建境内访问百度搜索出现Google香港页面

来源: 站长之家

站长之家8月23日晚间消息,23日晚多位网友微博称访问百度搜索时自动跳转至Google香港地址,网友惊呼“七夕夜,百度与Google终于在一起了”。

据站长之家了解,自23日晚19时30分左右起,有福建厦门地区的网友在访问百度搜索引擎时发现,原本应该出现百度首页的页面却出现了Google香港的内容。

微博上多名福建省电信用户发博称访问百度跳转至Google香港(站长之家配图)

随后,这一现象被福建省内的泉州、福州、龙岩等多个电信用户发现,并第一时间通过微博发布,有部分网友则在访问百度时出现了Google的404错误页。

根据观察,大部分网站使用的DNS地址多为福建电信DNS,218.85.152.99与218.85.157.99,网友戏称,打开百度变谷歌,牛郎织女共七夕。

网友提供的访问百度跳转至Google错误提示页截图

除福建境内的多数电信用户访问百度会出现Google香港网页以外,经站长之家记者测试与调查发现,其他地区用户暂无此现象,截至23日晚9时10分左右,福建用户访问百度均恢复正常。

目前尚不确定福建电信DNS是否遭劫持。

哈佛开发DNA硬盘:1立方毫米存储704TB数据

来源: 新浪科技

新浪科技讯 北京时间8月21日早间消息,早期的研究已经可以把DNA做成电路或小工厂,但从没见过将DNA当做存储介质的。哈佛大学的研究人员却将这一梦想变成了现实。

这个由乔治·切齐(George Church)、瑟里拉姆·库苏里(Sriram Kosuri)和高原(Yuan Gao,音译)领导的团队可以将96比特数据存储到DNA链中。具体方法则是为腺嘌呤、鸟嘌呤、胞嘧啶和胸腺嘧啶分别赋予二进制值,随后通过微流体芯片对基因序列进行合成,从而使该序列的位置与相关数据集相匹配。

这项技术表面看起来似乎没有什么了不起,但用微观物质存储宏观数据却会达到意想不到的效果:1立方毫米即可存储704TB的数据,相当于数百个硬盘的容量。虽然这一成果令人振奋,但流程还很缓慢,因此不能存储对时效性要求较高的数据。另外,DNA中的细胞可能会破坏DNA链,所以不适合数据传输。

但无论如何,如此大的数据密度还是有望备份全人类的知识。不过,多数人的想法可能更加实际——什么时候能用可以承受的价格买到一块有机硬盘?(书聿)

CEO做什么其实是在传达一个信号

 来源: 36氪

站长之家Chinaz.com 配图

编者按:我们很荣幸请到百姓网创始人、CEO王建硕作为36氪的特约作者,王建硕写了十年博客,他的很多文章对创业者非常有启发,以后大家将可以在36氪上看到他的文章。这是他的博客,这里是他的新浪微博。今天晚上在大学街的意大利煎饼果子铺,我们几个人在聊Facebook的高管在做什么。几个细节引起了我的注意。CEO Zuck每年还是要Checkin一行代码的(显然这是一个象征性的动作),COO Sandberg每天都自己盯着解决几个用户的问题。这个小动作其实大有值得借鉴的地方。每个人做任何事情其实都有至少两部分的力量:一部分,我做完了这件事情;第二部分,我向其他人发送了一个信号,说明了些什么。在自己一个人干活的时候,前者或许更重要,而当一个领导者,后者的比重越来越大,甚至变成最重要的部分。

如果CEO在写代码,哪怕只是一行,这明确的传达了一个信号。显然一家公司不会因为一个人写的一行代码有实质性的变化,但这个信号是如此明确,就是技术对于这个公司是重要的。这种态度是组织需要的。

COO把头埋下来,每天哪怕只解决一个问题,这也是一个信号。显然在上万的问题中一个是如此渺小以至于不会有任何实质影响,但这个明确的信号是,我在乎用户。这个信号会被组织放大,变成整个组织的行为。

为什么这个信号如此重要呢?

第一个原因应该就是“认可”。人都需要被认可,自己写的代码,自己帮用户解决的问题,或者自己和用户的一个电话,内心里都希望有人可以认可。当公司里有人,尤其是CEO,愿意花时间去看一段代码,或者看一个问题,或者听一段电话,其实最重要的信号就是,这个工作很重要。没有人愿意感觉到自己的工作对于公司的成功没有贡献。这种认可可以通过一个小小的行动达到。上次和康俊会所的一个按摩师聊天,他说他们的最高奖励就是他们大老板会给获奖者亲自按脚一个小时。这是一个按脚出身的淳朴的CEO对这份工作的认可,其他人都能感知道。这也就是为什么很多做得很成功的企业都是创始人就是这个行业里出来的原因。一个蛋糕师虽然不比MBA更懂管理,但他开的面包店更懂得做面包的自豪感。

第二个原因是“抽样“。一旦CEO开始听电话,审核用户问题解决的纪录,或者看或写代码,这方面的工作就会暴露在CEO的眼下。这其实是一种敦促。虽然谁都知道自己做的部分被看到的可能性其实不大,但只要CEO在做这件事情,又有谁能确定自己的工作不被“抽到”呢?不做这件事情,可能性是零;做了,可能性就有了。人是感性动物,不区分可能性的大小的,而仅仅区分有或者没有这种可能性。这可能就解释了为什么没有人会去买不可能中奖的彩票却对哪怕可能性再小的彩票感兴趣,或者解释了为什么一个几千万人的城市里哪怕一起凶杀案会让所有人不安。一旦有了这种可能性,大家个工作状态的确会有改变。

在领导团队的时候,领导者可以用上百种细微的方式在散发着各种信号。这些细小的信号组成了一个团队只可意会不可言传的气质。传达什么信号,其实就是由这一件件小事情完成的。

文章来源:36氪

谷歌推出人体浏览器展示3D人体模型(图)

作者:书聿 | 出处:新浪科技

谷歌人体浏览器其实相当于一款针对人体推出的谷歌地球(Google Earth),可以对人体模型进行3D浏览。WebGL尚未进入主流浏览器,但是谷歌Chrome测试版、Safari和火狐都支持该技术。

谷歌人体浏览器

谷歌人体浏览器

  北京时间12月17日上午消息,谷歌刚刚推出了一款名为谷歌人体浏览器(Google Body Brower)实验项目,可以浏览3D人体模型。

谷歌人体浏览器其实相当于一款针对人体推出的谷歌地球(Google Earth),可以对人体模型进行3D浏览。

谷歌在WebGL Camp环境中展示了这款应用。WebGL是一种跨平台的低级3D图形API(应用编程接口),无需任何插件,即可将3D图形引入万维网。由于使用了HTML5 Canvas元素,因此不需要借助Flash、Java或其他图形插件来运行。

如果使用支持该技术的浏览器访问bodybrowser.googlelabs.com,便可以获得一个人体解剖学3D模型,还可以放大、缩小、旋转甚至搜索。

WebGL尚未进入主流浏览器,但是谷歌Chrome测试版、Safari和火狐都支持该技术。

使用兼容浏览器访问人体浏览器的主页时,便会看到一个人体模型,可以对皮肤、肌肉、组织和骨骼系统等多个视图层进行调节。当用户输入一个器官或骨骼名称时,还可以直接切换到对应的视图,并进行放大处理。用户可以自行启动或关闭标签,而且该应用还支持多点触控,因此可以通过多点触控板和多点触控鼠标进行操作。

业内人士认为,该应用不仅对于医疗行业有所帮助,相关学科的老师和学生也可以从中受益。(书聿)

Jquery瀑布流插件

瀑布流布局在目前貌似很火爆,具体的分析、原理、用到的知识等等可以看看以下几位牛人写的东西。

瀑布流布局浅析

浅谈个人在瀑布流网页的实现中遇到的问题和解决方法

折腾:瀑布流布局(基于多栏列表流体布局实现)

javascript 瀑布流各大瀑布流简析与建议

因为自己用jquery比较多,便萌生了把瀑布流做成插件的想法,图片就借用迅雷UED上的那些美图吧。

先看看Demo

把代码放出来吧

;(function($){
   var
   //参数
   setting={
      column_width:204,//列宽
       column_className:'waterfall_column',//列的类名
       column_space:10,//列间距
       cell_selector:'.cell',//要排列的砖块的选择器,限定在瀑布流的容器内
       img_selector:'img',//要加载的图片的选择器
       auto_imgHeight:true,//是否需要自动计算图片的高度
       fadein:true,//是否渐显载入
       fadein_speed:600,//渐显速率,单位毫秒
       insert_type:1, //砖块插入方式,1为插入最短那列,2为按序轮流插入
       getResource:function(index){ }  //获取动态资源函数,必须返回一个砖块元素集合,传入参数为加载的次数
   },
   //
   waterfall=$.waterfall={},
   $container=null;//容器
   waterfall.load_index=0, //加载次数
   $.fn.extend({
       waterfall:function(opt){
          opt=opt||{}; 
              setting=$.extend(setting,opt);
          $container=waterfall.$container=$(this);
          waterfall.$columns=creatColumn();
          render($(this).find(setting.cell_selector).detach(),false); //重排已存在元素时强制不渐显
          waterfall._scrollTimer2=null;
          $(window).bind('scroll',function(){
             clearTimeout(waterfall._scrollTimer2);
             waterfall._scrollTimer2=setTimeout(onScroll,300);
          });
          waterfall._scrollTimer3=null;
          $(window).bind('resize',function(){
             clearTimeout(waterfall._scrollTimer3);
             waterfall._scrollTimer3=setTimeout(onResize,300);
          });
       }
   });
   function creatColumn(){//创建列
           waterfall.column_num=calculateColumns();//列数
      //循环创建列
      var html='';
      for(var i=0;i<waterfall.column_num;i++){
         html+='<divjs plain" style="border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-left-radius: 0px !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: initial !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 2em !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; overflow-x: visible !important; overflow-y: visible !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: 'Courier New', Consolas, 'Bitstream Vera Sans Mono', Courier, monospace !important; font-weight: normal !important; font-style: normal !important; font-size: 12px !important; min-height: inherit !important; white-space: pre-wrap; color: rgb(0, 0, 0) !important; background-position: initial initial !important; background-repeat: initial initial !important; ">+setting.column_className+'" style="width:'+setting.column_width+'px; display:inline-block; *display:inline;zoom:1; margin-left:'+setting.column_space/2+'px;margin-right:'+setting.column_space/2+'px; vertical-align:top; overflow:hidden"></div>';
      }
      $container.prepend(html);//插入列
      return $('.'+setting.column_className,$container);//列集合
   }
   function calculateColumns(){//计算需要的列数
           var num=Math.floor(($container.innerWidth())/(setting.column_width+setting.column_space));
      if(num<1){ num=1; } //保证至少有一列
      return num;
   }
   function render(elements,fadein){//渲染元素
      if(!$(elements).length) return;//没有元素
      var $columns = waterfall.$columns;
      $(elements).each(function(i){                                    
          if(!setting.auto_imgHeight||setting.insert_type==2){//如果给出了图片高度,或者是按顺序插入,则不必等图片加载完就能计算列的高度了
             if(setting.insert_type==1){
                insert($(elements).eq(i),setting.fadein&&fadein);//插入元素
             }else if(setting.insert_type==2){
                insert2($(elements).eq(i),i,setting.fadein&&fadein);//插入元素  
             }
             return true;//continue
          }                    
          if($(this)[0].nodeName.toLowerCase()=='img'||$(this).find(setting.img_selector).length>0){//本身是图片或含有图片
              var image=new Image;
              var src=$(this)[0].nodeName.toLowerCase()=='img'?$(this).attr('src'):$(this).find(setting.img_selector).attr('src');
              image.onload=function(){//图片加载后才能自动计算出尺寸
                  image.onreadystatechange=null;
                  if(setting.insert_type==1){
                     insert($(elements).eq(i),setting.fadein&&fadein);//插入元素
                  }else if(setting.insert_type==2){
                     insert2($(elements).eq(i),i,setting.fadein&&fadein);//插入元素 
                  }
                  image=null;
              }
              image.onreadystatechange=function(){//处理IE等浏览器的缓存问题:图片缓存后不会再触发onload事件
                  if(image.readyState == "complete"){
                     image.onload=null;
                     if(setting.insert_type==1){
                        insert($(elements).eq(i),setting.fadein&&fadein);//插入元素
                     }else if(setting.insert_type==2){
                        insert2($(elements).eq(i),i,setting.fadein&&fadein);//插入元素  
                     }
                     image=null;
                  }
              }
              image.src=src;
          }else{//不用考虑图片加载
              if(setting.insert_type==1){
                 insert($(elements).eq(i),setting.fadein&&fadein);//插入元素
              }else if(setting.insert_type==2){
                 insert2($(elements).eq(i),i,setting.fadein&&fadein);//插入元素 
              }
          }                    
      });
   }
   function public_render(elem){//异步数据渲染接口函数      
       render(elem,true);
   }
   function insert($element,fadein){//把元素插入最短列
      if(fadein){//渐显
         $element.css('opacity',0).appendTo(waterfall.$columns.eq(calculateLowest())).fadeTo(setting.fadein_speed,1);
      }else{//不渐显
         $element.appendTo(waterfall.$columns.eq(calculateLowest()));
      }
   }
   function insert2($element,i,fadein){//按序轮流插入元素
      if(fadein){//渐显
         $element.css('opacity',0).appendTo(waterfall.$columns.eq(i%waterfall.column_num)).fadeTo(setting.fadein_speed,1);
      }else{//不渐显
         $element.appendTo(waterfall.$columns.eq(i%waterfall.column_num));
      }
   }
   function calculateLowest(){//计算最短的那列的索引
      var min=waterfall.$columns.eq(0).outerHeight(),min_key=0;
      waterfall.$columns.each(function(i){                        
         if($(this).outerHeight()<min){
            min=$(this).outerHeight();
            min_key=i;
         }                            
      });
      return min_key;
   }
   function getElements(){//获取资源
      $.waterfall.load_index++;
      return setting.getResource($.waterfall.load_index,public_render);
   }
   waterfall._scrollTimer=null;//延迟滚动加载计时器
   function onScroll(){//滚动加载
      clearTimeout(waterfall._scrollTimer);
      waterfall._scrollTimer=setTimeout(function(){
          var $lowest_column=waterfall.$columns.eq(calculateLowest());//最短列
          var bottom=$lowest_column.offset().top+$lowest_column.outerHeight();//最短列底部距离浏览器窗口顶部的距离
          var scrollTop=document.documentElement.scrollTop||document.body.scrollTop||0;//滚动条距离
          var windowHeight=document.documentElement.clientHeight||document.body.clientHeight||0;//窗口高度
          if(scrollTop>=bottom-windowHeight){
             render(getElements(),true);
          }
      },100);
   }
   function onResize(){//窗口缩放时重新排列
      if(calculateColumns()==waterfall.column_num) return; //列数未改变,不需要重排
      var $cells=waterfall.$container.find(setting.cell_selector);
      waterfall.$columns.remove();
      waterfall.$columns=creatColumn();
      render($cells,false); //重排已有元素时强制不渐显
   }
})(jQuery);

貌似把代码贴进来格式有点乱了,哎先不管了。上面的代码要是看不清可以在demo页直接查看源文件。

插件使用方法:

1
$(selector).waterfall(opt); //其中selector为瀑布流容器的选择器,opt为配置参数对象

所需的html结构:html结构可以就是一个空容器元素,如<div id=”container”></div>,里面的砖块元素通过动态加载进来。当然也可以预先放一些砖块进去,如demo页中的

<div id="container">
    <div class="cell"><img src="http://cued.xunlei.com/demos/publ/img/P_000.jpg" /><p>00</p></div>
    <div class="cell"><img src="http://cued.xunlei.com/demos/publ/img/P_001.jpg" /><p>01</p></div>
    <div class="cell"><img src="http://cued.xunlei.com/demos/publ/img/P_002.jpg" /><p>02</p></div>
    <div class="cell"><img src="http://cued.xunlei.com/demos/publ/img/P_003.jpg" /><p>03</p></div>
    <div class="cell"><img src="http://cued.xunlei.com/demos/publ/img/P_004.jpg" /><p>04</p></div>
    <div class="cell"><img src="http://cued.xunlei.com/demos/publ/img/P_005.jpg" /><p>05</p></div>
    <div class="cell"><img src="http://cued.xunlei.com/demos/publ/img/P_006.jpg" /><p>06</p></div>
    <div class="cell"><img src="http://cued.xunlei.com/demos/publ/img/P_007.jpg" /><p>07</p></div>
    <div class="cell"><img src="http://cued.xunlei.com/demos/publ/img/P_008.jpg" /><p>08</p></div>
    <div class="cell"><img src="http://cued.xunlei.com/demos/publ/img/P_009.jpg" /><p>09</p></div>
    <div class="cell"><img src="http://cued.xunlei.com/demos/publ/img/P_010.jpg" /><p>10</p></div>
    <div class="cell"><img src="http://cued.xunlei.com/demos/publ/img/P_011.jpg" /><p>11</p></div>
    <div class="cell"><img src="http://cued.xunlei.com/demos/publ/img/P_012.jpg" /><p>12</p></div>
    <div class="cell"><img src="http://cued.xunlei.com/demos/publ/img/P_013.jpg" /><p>13</p></div>
    <div class="cell"><img src="http://cued.xunlei.com/demos/publ/img/P_014.jpg" /><p>14</p></div>
    <div class="cell"><img src="http://cued.xunlei.com/demos/publ/img/P_015.jpg" /><p>15</p></div>
    <div class="cell"><img src="http://cued.xunlei.com/demos/publ/img/P_016.jpg" /><p>16</p></div>
    <div class="cell"><img src="http://cued.xunlei.com/demos/publ/img/P_017.jpg" /><p>17</p></div>
    <div class="cell"><img src="http://cued.xunlei.com/demos/publ/img/P_018.jpg" /><p>18</p></div>
    <div class="cell"><img src="http://cued.xunlei.com/demos/publ/img/P_019.jpg" /><p>19</p></div>
</div>

下面详细说下配置参数对象opt的各属性的作用及其默认值。

column_width:204  //瀑布流是由列组成的,该参数规定了每列的宽度,该参数会直接影响到瀑布流的列数

column_className:’waterfall_column’   //列的类名,便于自定义样式

column_space:10    //列与列之间的间距

cell_selector:’.cell’   //要排列的砖块的选择器,限定在瀑布流的容器内,即插件是通过这个选择器来获取砖块元素的,并且是在瀑布流的容器内来查找这个选择器匹配的元素。

img_selector:’img’  //要加载的图片的选择器。如果你的瀑布流要加载的砖块元素的主题内容是大小不固定的图片,则该参数就是这些图片的选择器,插件需要获取这些图片来进行计算。

auto_imgHeight:true  //是否需要自动计算图片的高度,如果图片的大小是固定的,则把该参数设为false吧

fadein:true  //是否渐显载入

fadein_speed:600  //渐显速率,单位毫秒

insert_type:1  //砖块插入方式,1为插入最短那列,2为按序轮流插入

getResource:function(index,render){ } //获取动态资源函数,必须返回一个砖块元素集合,传入的第一个参数index为已加载的次数,第二个参数为渲染函数,它可以接受一个砖头元素集合作为参数,如果是使用ajax加载数据,则得到数据后要手动调用该函数来进行渲染 。每次到达瀑布流底部时会自动触发该函数来加载更多资源。

 

吐槽时间:

瀑布流加载的内容一般都宽度相同,高度不同的图片,如果能预先知道图片的高度,那就简单多了,但如果不能,则必须等到图片加载后才能计算出图片的高度,这是瀑布流最烦人的地方,也正是因为这样,如果是那些不知道高度的图片,则插入的顺序可能会有些混乱,而且每次刷新顺序都不同,因为每张图片加载完成的先后顺序并不是固定的,也许这次这个快一点,下次那个快一点。所以如果图片高度事先不知道,则整个砖块的高度也会不知道,必须等砖块里的图片加载完成后才能算出砖块的高度。如果是这样但又想保证砖块的插入顺序,则建议使用按顺序轮流插入的方式插入砖块,即把insert_type参数设为2。因为是插件,所以要考虑使用简便,但使用起来越简便,插件内部就会越复杂,漏洞、bug也会增多,所以我会继续完善这个插件。

本插件支持IE6+、chrome、firefox、opera、safari等主流浏览器。

来源:http://www.cnblogs.com/2050/archive/2012/05/03/2480702.html

robots妙用,开启伪静态后禁止搜索引擎抓取动态页面

我的应用:

由于在正式环境中有个测试环境(主要是为了update更新准确性,减低直接部署到正式环境BUG风险)

在网站根目录下

测试环境:

echo -e “User-agent: *\nDisallow: /” >/data0/app/apache2-test/htdocs/lbs/robots.txt

正式环境:

echo -e “User-agent: *\nDisallow: /api/\nDisallow: /trd\\nDisallow: /test/\nAllow: /”>/data0/app/apache2/htdocs/lbs/robots.txt

robots妙用,开启伪静态后禁止搜索引擎抓取动态页面!

说之前还是先分析下静态、伪静态、动态的不同点

动态、静态、伪静态

静态网址:纯静态HTML文档,能使用filetype:htm 查询到的网页。

伪静态网址:使用 Rewrite 将动态网址进行重写,使动态网址看起来像静态网址。

现在很多的后台,充分考虑到SEO,支持URL的重写,链接中带关键词,且链接清晰明了。

动态网址:内容存于数据库中,根据要求显示内容,URL中以 ? # & 显示不同的参数,如:news.php?lang=cn&class=1&id=2。动态网址的会话标识(sid)和查询(query)参数,容易造成大量相同页面,有时蜘蛛进入了会进入死循环,出不来。所以到现在为止,蜘蛛还是不太喜欢动态的。

robots指令

在开启伪静态后,打开网址是显示的静态页面,google这样的搜索引擎,在抓取你网站的页面时,同样会抓取网站的静态页面和动态页面,这样会造成抓取大量内容重复的页面(我的网站就存在重复抓取,网址是http://www.hyledlighting.com)。

现在,我们可以只接在robots.txt文件里写入规则,禁止搜索引擎来抓取动态页面,动态页面都有一个共同的特征,就是在链接里会带有“?”这个问号的符号,具体的robots指令规则看下面:

User-agent: *
Disallow: /*?*

如果想只接接指定搜索引擎抓取指定类型文件,如html格式的静态页面,其规则看下面:

User-agent: *
Allow: .html$
Disallow: /

如果要禁止搜索引擎抓取你网站的所有页面,可以写入以下规则:

User-agent: *
Disallow: /

对于robots.txt文件的路径,应该在你网站的根目录中,写入规则有一个简便的捷径,登陆google网站管理员工具,只接在里面写入规则后,生成robots.txt文件即可。

以上主要是针对伪静态网站禁止抓取动态页面,robots.txt文件中的配置规则很多,具体可以查阅相关资料。

MemSQL:“世界上最快”的数据库

 来源: ITeye

近日,Eric Frenkiel(前Facebook员工)和Nikita Shamgunov(前微软SQL Server高级工程师)推出了MemSQL数据库,该数据库的目标旨在提高关系型数据库的运行速度。

MemSQL通过将数据放置在内存中,并将SQL语句翻译为C++,来达到查询执行最优化。这使得MemSQL以难以置信的速度写入和读取数据。Frenkiel称,MemSQL比磁盘型数据库的执行速度快了30倍。

MemSQL提供了一个关系型接口,你可以将通常存储在暂时媒介(缓存或键值存储)中的数据进行统一,并连同现有数据直接放置到数据库中。

除了速度快外,对于开发者来说,MemSQL的另一个优势是可以与MySQL很好地结合。从本质上讲,当磁盘中的MySQL数据需要更少的性能和更高的持久性时,MemSQL则扮演一个高性能内存层的角色。MemSQL使用一个SQL接口和MySQL API,这意味着开发者不必学习新的东西。

MemSQL项目主页:http://memsql.com/

文档:http://developers.memsql.com/docs/1b/

网站安全–站长成功路上的最严重的一道绊脚石

来源:a5团购

  运营一个成功的网站有很多要素,定位要做好、美工要优化、推广要到位、要时间的积累。曾经我以为,当这一切都具备的时候,我就成功了,但事实并非如此。

事情是这样的,从最初接触SEO开始,我就一直致力于自己一个商城网站的运营和建设,从2009年开始,差不多已经快3年时间了。一直坚持手工外链,坚持原创内容,也投入了大量精力,自己做客服。努力总有回报,随着百度更新,网站排名越来越好,流量也越来越多。最好的时候,百度指数1000的词,我做到了百度第三位。由于是来的精准流量,每天给我带来的销售额也是相当可观的。我也梦想着,年入30万马上就要实现了,非常欣喜。

但是好景不长,排名上去没到一个星期,网站莫名其妙打不开了。我气愤地去问空间商是怎么回事,答案如下:网站被DDOS攻击,已经关闭了。完全懵了,原本一直致力于网站优化、推广方面的研究,但对网路安全方面的内容却一无所知。突击学习了几天,才大致明白怎么回事情。好说歹说,让从空间商那边备份了网站数据,换了国内某知名IDC的空间,想这回安全性应该高一些了。

不过接下来的事情更令我手足无措,网站更换空间后,一开始几天运转正常,但没过几天,攻击又来了,虽然这次没有被关闭,但访问速度奇慢。原本PV/IP一直维持在5以上,现在一下子降到一点几。想必大部分客户是刚点开网页就关了。接下来,网站排名也掉了。而由于我使用的CMS被爆出有漏洞,居然还给挂上了黑链。真是屋漏偏逢连夜雨!万般无奈,我只好把一个盈利前景大好的网站转手卖了。

痛定思痛,我想这次教训对我以后的发展也是有帮助的。至少,通过这次实践,我明白了自己的模式是行得通的,同时,也了解到做网站不仅仅是推广,网络安全对于网站成功是至关重要的。前一阵的新闻相信大家都看到了,从去年底开始CSDN、51CTO、CNZZ、eNet、UUU9、YY语音、百合网、开心网、人人网、美空网、珍爱网等各大网站用户数据相继被破解,这些大站尚且如此,我们草根站长的小站被入侵实在太简单了。因此,多学习点网络安全防护知识,应对各种网络攻击。保障服务器、网站安全,防止被入侵、挂马非常必要。

Chrome源代码中首次出现扩展同步代码

chromi.org

相信很多人像笔者一样白天在单位用一个电脑,晚上回家又用另一个电脑,甚至还可能不是同一种操作系统。那么在这种情况下,我们会发现 Chrome/Chromium 的同步功能非常实用。从最初支持的书签同步,到现在可以同步很多东西,包括皮肤、自动填写以及偏好设置等等。唯一差的就是 Chrome 扩展的同步了,而且这也是用户最需要的一个同步功能。

Chrome源代码中首次出现扩展同步代码

然而,从最新的 Chrome 源代码来看,我们应该不需要等太久了。在今天更新的Chromium Revision 49234中,终于出现了有关扩展同步的代码。更让人兴奋的是,这些代码默认就处于启用状态,也就是意味着不需要通过命令行参数来开启这项功能。当然,目前也仅仅是出现了相关的代码而已,还不能使用。

Chrome源代码中首次出现扩展同步代码

  也就是说,目前要不就是没有完全开启这项功能,要不就是还不能良好的工作。这种情况其实也很正常,毕竟是第一次出现了相关的代码。

很显然 Chrome 的开发者已经在这方面投入工作了,其实从本质上来说同步扩展应该和同步皮肤差不多,毕竟都是.CRX 的文件结构,既然 Chrome 皮肤同步功能已经可以很好的工作了,那么加入扩展同步应该也不是太困难。

那么,什么时候才能在 Chrome Dev 分支使用扩展同步呢?让我们一起期待吧!

仅硬盘大小电脑问世:无CPU无内存无系统

  国内第一台无CPU、无内存、无系统的电脑主机在沪投产

一只与移动硬盘大小相仿的金属盒子,“身上”长着4个USB接口和电源、网络、耳麦、投影仪专用接口,只需连接上显示器、键盘、鼠标等外接设备并插上网线,轻轻点击登录窗口,熟悉的Windows界面即刻展现在显示器或投影屏幕上,开机启动时间几乎可以忽略不计……

经过上海科研人员的数年攻关,国内第一台无CPU、无内存、无系统的“零终端电脑主机”近日在沪问世,并于7月初投入量产。目前,上海黄金交易所已经“抛弃”掉笨重的PC主机,配置完成300台这样的“零终端电脑”,成为全国第一家进入云电脑办公时代的公共机构。

节电95%零电磁辐射

记者日前在上海金图信息科技有限公司看到,这台可以完全替代PC主机的“宝盒子”KT8000长12厘米、宽8厘米、高1.5厘米,只相当于两包香烟大小,重量只有80克,比便携式移动硬盘还轻。

“KT8000是目前世界上唯一真正做到无CPU、无内存、无系统的零终端电脑,盒子内只有一块高度集成的电脑芯片,而上网浏览、操作软件、编辑保存文件、播放视频等所有工作,都通过网线另一端强大的服务器软硬件系统来完成。”金图科技总裁宋代明表示,由于“宝盒子”将传统PC主机内的数据运算、管理程序、操作系统等全部“转移”到了基于云计算概念的远程服务器,办公桌上的电脑终端得以大幅度“瘦身”,电力消耗只有3.5瓦不到,是通常台式电脑的5%,以一家100人规模的办公企业测算,能源消耗只有独立主机方案的1/10,3年下来可节省5万元电费。

无CPU、无内存、无系统,对电脑使用者来说还意味着——让办公族头疼的开机等候时间长、电磁辐射、电脑病毒都一一迎刃而解。

初步上市约3000元

在沪问世的KT8000“零终端电脑”已通过中国质量认证中心的中国国家强制性产品认证,被中科院上海科技查新咨询中心认定为国际领先技术,并于7月初正式投入量产。

目前,一台“宝盒子”的市场价格约3000元左右,今年第三季度可望量产4500台,已具备年产10万台的生产能力。

家庭版“零终端电脑”也在研制中,有望明年年中面市,届时价格也会大幅降低,一台家庭用“宝盒子”不会超过1000元人民币

网站第三方社会化插件推荐

 来源: 卢松松博客

从评论系统到分享按钮,从智能推荐插件到社会化登陆,社会化插件已经入侵了网站的方方面面,我就推荐写适合个人网站使用的第三方社会化插件。
搜索引擎认为最有价值的(按先后顺序):

1:内容

2:社会化

3:用户体验

4:链接建设

5:SEO

这是从ZAC博客中分享的一个Bing人员总结的高度浓缩的SEO技术,其实适用于所有搜索引擎。由此可见社会化的重要性。

那么,既然知道了社会化分享的重要性,今天卢松松推荐的插件可以用过一张图来表明。

我们看到,如果网站全权使用第三方社会化插件的话,除了网页基本框架和内容之外,其他功能都可以由插件来完成了。

1:分享插件

现在在各个网站上我们都能见到分享的按钮,目前Jiathis、bshare、百度分享这三款算是很火的分享按钮了。

下面的示意图可以说明分享按钮的作用,例如:通过用户A分享到他的微博下,这样他的粉丝就能看到该网站的内容,从而影响更多的人。

卢松松博客目前用的是Jiathis,因为它出是早,而且可分享的网站也非常多,而且在分享数据分析方面做的也很全面。Bshare还没用过,不过多评论了。

后起之秀,百度分享是很厉害,因为还不清楚百度的分享和它的收录、排名有什么关系,为了保险起见,许多站长都换成百度分享了,而且刷百度分享数的人也不在少数。

2:评论插件

第三方社会化评论系统我在之前的博文中已介绍过,目前评论插件有:评论啦、友言、贝米,和刚刚诞生的“多说”。

它们的功能大多类似,如上图所示,去处装上一段JS代码即可使用,比如社会化登陆、分享按钮、添加图片视频等等,在评论框中一应俱全。而且现在这些社会化评论系统已经支持SEO了,同时评论的数据也支持导入/导出了。

3:智能推荐插件

无觅是一个较早推出智能推荐插件的,我真正使用无觅这个插件还是在去年,因为之前Truman Lam给我推荐了好久。在加上他们的工具确实靠谱,所以我就用上了。智能推荐插件就是可以把同一个网站不同程序下的相关文章聚合到一起,主要是增加相关文 章精准度。同时无觅的“喜欢”功能就类似于分享按钮,可以把“喜欢”的文章推送到绑定的微博中,

友荐:和无觅一样的功能,不过部分还在内测中,它最大的特色就是JS代码只有一行。

需要注意的是友荐、友言已被Jiathis(加网)收购,从“分享按钮”到“智能推荐”再到“评论框”,Jiathis已经形成了一套完整的社会化插件体系。

同时Jiathis推出的趣一网的个性化阅读也与新版无觅网的个性化阅读形成了正面竞争。需要注意的是,只有你的博客安装了其中任何一方插件的用户才可能进入他们自家的热门排行榜,带来流量,二选一,你选吧。

写在最后:

分享按钮,可以让用户帮你推广网站;社会化评论框,可以提交评论、载入速度,方便管理评论;智能推荐插件,可以提高网站PV,增强用户黏性。

它们有很直接有优点,也有最大的缺点:你会发现网页中有一大堆第三方JS,牵一发则动全身。

作者:卢松松 本文地址:http://lusongsong.com/reed/436.html

微软诉四大PC品牌国内经销商 涉惠普戴尔等

来源: 新京报

昨日,微软(中国)有限公司宣布,在过去的两周内,已向联想、惠普、戴尔和宏碁四家PC厂商的9家授权电脑经销商提起侵权诉讼。微软称,这9家经销商涉嫌在其销售的品牌电脑中预装了盗版Windows系统软件。

涉及惠普等品牌电脑

微软大中华区首席法律顾问关挺立称,过去的两周内,微软已向中国的法院提起了对9家电脑经销商的侵权诉讼。微软认为,有证据表明,它们在其销售的电脑中安装了盗版Windows系统软件。

据悉,这9家电脑经销商为:北京天晴东方科贸有限公司、深圳市艾格信息技术有限公司、广州市鑫凌锐计算机科技有限公司、深圳市鑫鹏程实业有限公司、广州市盛盈达电子有限公司、济南大唐科技有限公司、南京卓品(卓邦)电子科技有限责任公司、重庆商达(商骏)电脑科技有限责任公司和成都世纪远达科技有限公司。

“它们都是联想、惠普、戴尔、宏碁等知名电脑生产厂商正式授权的经销商。”微软大中华区首席法律顾问关挺立称,与普通消费者的认识有所出入,安装盗版Windows系统绝不仅只是组装电脑的做法,品牌电脑也大面积地涉及在内。

关挺立称,清华同方的电脑大量安装了“雨林木风”这一盗版Windows的软件,“约82%的神舟电脑所预装的Windows都是盗版的”。

赔偿将用于推动正版化

“在电脑销售渠道预装盗版Windows,不仅侵犯了微软的知识产权,还给使用者带来了严重的安全隐患。”据关挺立介绍,根据微软技术部门对104台装有盗版Windows电脑的检测,恶意软件感染率高达94%。

关挺立表示,微软希望通过诉讼得到一些经济赔偿,“要让电脑经销商知道,预装盗版Windows,从经济角度来说并不值得做”。

此前,有业内人士称,微软在中国“打击盗版比卖正版赚的钱更多”。但关挺立称,微软未来将把从经销商处得到的赔偿投入到“3E”策略的实施中去。据悉,2007年微软制定了意为“教育、技术、执法”的“3E”策略,以推动在中国的软件正版化。

放大镜

微软在华维权步伐加快

起诉电脑经销商,对微软来说,已经不是第一次了。2010年11月30日,微软(中国)有限公司就以非法预装盗版软件为由,将国内10家电脑经销商送上了法庭。

昨天,据关挺立透露,上述10个案子中,“有5个案子正在等待宣判结果,另外5个则已结案。”据悉,5个已完结案子的解决方式,“有的是双方和解,有的是法院判决”,“结果都十分令人满意”。

事实上,诉讼已成为微软维权的常态性“武器”。关挺立称,中国对于知识产权保护意识的提高,特别是2010年中国政府开展的打击侵犯知识产权的制售假冒伪劣产品的专项整治行动,“让微软觉得可以通过法律程序打击盗版”。

据不完全统计,2010年微软借助官方的力量发起了两个较大维权行动,分别为向国家版权局和公安部投诉番茄花园版Windows XP作者洪磊和起诉北京思创未来科技发展有限公司的12台电脑中安装了盗版Windows XP及Office 2003。

在2010年及以后,加上上述两起起诉电脑经销商案,微软已提起了6次规模较大的侵权诉讼。其中包括2010年时以非法使用Windows软件为由向东莞动感网吧索赔158万元,2012年时起诉两家网站索赔1000万元。

而在今年1月,微软向法院提起了上海国美电器和北京朝阳百脑汇的著作权侵权诉讼,要求其停止侵权并赔偿损失。

从最终的结果看,微软在国内的维权行为“基本是战无不胜”。关挺立称,未来微软的维权不再只集中于北京、上海等大城市,“将下沉到一线以下的城市中去”。

新京报记者 尹聪

HTML5性能分析面面观

 来源: InfoQ
以下这篇文章是由一位名为张黎明的IT技术人员所写,其发表于InfoQ的网页上。这次他在全文里面从9个不同的方面分析HTML5的性能,还是很值得相应的开发人员阅读的。
从性能角度来说,HTML5首先是缩减了HTML文档,使这件事情变得更简单。第一,从用户可读性上说,原先一大堆东西,像初学者第一次看到这些东 西是看不懂的,而HTML5的声明方式对用户来说显然更友好一些。 第二,文档编码的声明,用HTML5方式的话,就很简单。很多人问HTML5是什么?我们说可以先用HTML5的方式就是把DOCTYPE先改了,因为目 前很多页面都还是用传统的方式。HTML5的方式,本身是兼容IE浏览器的,从IE6到IE10都可以,包括高级浏览器都支持。所以说拥抱HTML5最简 单的方式就是把DOCTYPE给改了。

1.更简洁的标签

接下来可能并不是一件很常见的事情,但是却是我比较推崇的,使用更简洁的标签方式。HTML5从这个名字大家可以听出,它是从HTML4继承过来 的。HTML4里面有严格模式跟过渡模式,HTML5是支持这种过渡模式的,就是你可以不把一些标签闭合。但是,我并不推荐所有的标签,比方说BODY标 签的不闭合,这种我们不推荐。但是像P标签最常用的,还有列表标签LI。为什么这样说?首先从视觉的角度来说,这样的方式更简洁一点。然后关键的是在文档 传输过程中,内容会更少。

HTML5标签属性的声明支持三种方式:单括号、双括号和不加括号。为了减少文档大小,我是选择不加双引号的方式或单引号的方式。但是要注意,假设 是类属性的声明,因属性可能包括多个类,多个类的时候则必须用括号括起来。在这方面,给大家看一下谷歌的一个实践。谷歌自己有一个页面完全实践了上面的东 西,文档的大小减少了20%,使HTML文档的传输减少了20%。如果把整个都实践起来,可以达到5%—20%之间的减少。这是第一步,缩减HTML文档 的大小。

2.图片优化

接下来是关于图片的优化,图片永远是又爱又恨的元素。因为当图片多的时候,会严重拖垮整个页面的加载速度。关于图片的优化方式,《高性能网站》书中已有很多介绍,总结起来主要有三点:使用精灵图、优化图片的大小,使用DATA URI,具体这里就不细说了。

图片优化的另一个思路是:no-image。抛弃图片,拥抱CSS3。原先需要设置一张圆角效果的图片,现在使用CSS3中的 border-radius;原先需要设置阴影效果的图片,现在使用CSS3中的box-shadow;原先需要设置渐变的背景图片,现在使用CSS3中 的gradient。

3.预取

接下来讲Prefetching,预取,是优化的另一个思路。我们现在优化的思路无非就是少。很多都是从少的角度,比方说前面把文档大小减少,把图 片的大小减少。很多张的图片变成一张精灵图,都是为了把发送请求的数量减少。预取的话,是另一种思路,提早加载好资源,用户去点的时候,实际上已经加载 好,那肯定是更快了。

预取,一共有两部分:一部分是资源的预取,还有一部分是DNS的预解析。

资源预加载有几个点需要注意:

预加载只是在浏览器空闲的时候才会去拉,但不保证一定会去拉,这是很重要的一点。因为本身浏览器有一个全局的监听器,这是内部的一个接口,当浏览气空闲的时候,它会去执行浏览器空闲的时候应该做事情,但是这个空闲的回调不一定被触发,所以说并不保证一定会执行预加载。

Chrome不支持HTTPS资源的预加载,像Alipay是HTTPS的页面,Chrome不会去预拉取。

一个预拉取的页面虽存在后不可见,实际上它是在正常解析。假如说我预拉取登陆页面,登陆页面有很多资源,比方说有图片,有CSS文件,JS文件。它 是从上往下正常的会被解析,解析的过程中,这个页面没有显现,但是它实际上是存在的。在HTML5里面,可通过 document.visibilityState得到当前页面状态,通常页面有两种状态,可见与不可见,但是现在有一个新的状态,叫做预渲染的状态。可 以直接通过document.visibilityState 是否等于 prerender 来判断页面是否在预渲染状态。

4.DNS解析

接下来是关于DNS的解析。有时候我们登入页面,对用户可能点的地方相对而言是比较难探测到,当然有时候我们会做一些埋点来探知用户下一步行为大部 分是往里走。但有些情况下,我们不知道用户下一步具体会走到哪一个页面的时候,但是我们知道他要走到哪一个域。这个时候,我就可以预解析DNS。因为实际 上,整个页面的请求过程中间有一个很长的DNS的解析过程,如果说这个我们提前做了,就可以更进一步让用户看到这一页面。

以下是Q+壁纸的案例。Q+壁纸是Q+某一个系统系统,首先Q+整个的架构是基于WEB + 客户端。我们现在看到的就是一个WEB的页面,虽然它外面是一个客户端的壳,但是它的心是WEB的。整个过程在我们第一次在完成的时候,因为图片比较多, 所有的静态资源是分配到十几个静态服务器上。也就是说,如果我要去拉的时候,我就要解析10个DNS,这个时间是相当耗时的,最慢的时候可能会延迟几秒 钟,这是我们肉眼能感觉到的。如果进行DNS预解析,因为本身资源我不知道具体是哪一个,所有图片都是随机的,所以我们只能说在DNS预解析上下功夫,来 提升它的速度。这样的话,从原来可能需要2秒钟,我就变成1秒钟。

接下来讲Q+中的应用。我们会像QQ里面一样,QQ里面跟Q+都有很多文字链,就是窗口的左下角有一个文字APP信息的推送。这边是通过WEB时时 去拉取后端,后端拉取过来然后在前台显示。但是在某一个时期,其实所有的APP它一共推送的运营信息是固定的。如果说按某个具体APP去分析每个文字链对 应数组的话,这个时候是非常大数据。因为这里一个就大概有达到三四百个字节,从优化的角度说,我们把这些每次拉区过来的存在本地。再存上本地的 localStorage,我们是同一域,所有的APP之间的信息都是可以相互访问的。然后就是把所有拉过的ID,就不会再重新拉一遍。

在这里也有一个需要注意的点,localStorage目前很多厂商的实现是同步的。如果你大量地调用localStorage这个接口,实际上他 会阻塞你的渲染进程。这个时候,当用户往下拖动页面的时候,然后你这个时候又正好在做存储数据,这个数据又比较大,这个时候用户就会感觉你这个页面非常 卡。之前他们都有讨论这个问题,本身这个接口的设计IE是设计成异步的,他们设计是成同步。这个会导致在调这个借口的时候,假设你程序比较多,因为有一个 序列化的过程,序列到磁盘。这样的话,整个过程就会显得比较慢。再加上本身localStorage可以做不同的窗口之间共享这个数据,它会在这个数据上 加锁。如果大量地数据在调用这个本地接口,它就会显得比较卡。所以目前没有什么特别好的解决方案,但是这是需要记住的。即使说目前最大的五点多兆,如果你 用了五点多兆,会让用户很悲催。因为你如果一去调用这个借口,用户在拖用鼠标,就觉得非常卡。

5.离线存储

接下来讲离线存储在性能方面给用户带来的好处。首先是进离线存储的定义文件,在Q+中所有的系统模块,都是有定义离线支持。就是说所有的应用,如果 网断了,还是可以用。在文档中加入MANIFEST的文件,MANIFEST是一个定义文件,声明当前页面哪些是需要存储在本地的?哪些是不需要存储的? 哪些如果说请求失败,应该用哪些新的图片或者什么来代替?这样分三块:

第一,CACHE,哪些需要存储到本地。

第二,NETWORK,是不会存储在本地的,它每次都回去请求一遍但是这里需要指出的是,本地存储跟浏览器存储实际上是两回事情,他们存的是两块不 同的地方。即使NETWORK这边需要告诉APP说,我需要每次都拉一次,因为像Chrome,他这个存储缓存是非常可恶的,比较难清除的,必须通过手动 去清除,才能完全生效。所以说你即使设置了不要让它存储在本地,但是浏览器可能本身把它存储起来了,因为他存的是两块不同地方。

第三,FALLBACK。如果说一个图片假如说请求失败,它是404。那要用什么图片代替?我觉得这个比较好玩。

MAEIFEST怎么设置? MANIFEST这里需要注意的是三点:

MANIFEST同源限制;

MIME类型必须为text/cache-manifest,这是标准的,如果是其他格式,都不会生效;

CHROME,如果要看这个东西有没有生效,可能通过CHROME这个伪协议的方式在浏览器输入,chrome://appcache-internals。

关于如何去更新应用的缓存。为什么要离线存储?离线存储在本地,当浏览器知道你有离线存储你,它会首先去离线存储的目录下,去找这个资源是否已经被 Cache。当它已被Cache的时候,他就直接从这边拿到这个资源,不会再去发送一个请求。因为浏览器的请求是这样的,当有离线存储的话,就连请求都不 会发,所以说会更快。 如果说有的时候我们需要更新,更新的时候怎么办?

用户可以手动去清除浏览器的Cache,这个时候自动把本地存储给清除了。

修改MANIFEST的任何内容,这是比较推荐的方式,也是我们线上用的方式。就是说我们可以修改里面的的具体项目,但是这里应该最好是修改注释, 因为我每次发布的时候,我们自动发布机制,发布的时候在上面注释修改一下就可以了。这样的话,每次发布的内容,都会实时同步到客户端的本地;

通过程序去执行,程序的就是window.applicationCache.update()。就是我要去操作离线存储,其实我有时候叫应用存储,因为它的语意就是应用存储。我们去手动的更新应用存储。

6.Web Worker

接下来Web Worker。 Web Worker是一个多线程的JS进程。应用场景其实我们在线上的话,是没有的,我就不讲了。但是可以讲下具体我看到过的应用场景。

首先介绍一下WEBWORK是什么东西?它是一个OS级别的线程。之前我们模仿多线程,实际上都是多开一个窗口。但是现在的话,浏览器本身就提供了,这个会让操作带来更多便利,是让我们整个文档比较重,并不是很建议的方式。

然后WebWorker访问能力是有限的,它并不能访问到很多全局对象。比如说documnet对象它是访问不了的。 WebWorker最适合的场景就是CPU密集型的计算操作。之前我们做游戏的时候,我们用BOX2D。应该很多人听到过,它涉及到大量的计算,就是整个 页面里面,下面所有的物体要去计算它们的碰撞关系,这个计算量是非常大的。但是如果放在当前的JS的进程里面去执行,这个计算量一大,一计算,整个页面就 非常卡。但是如果用WebWorker去做,它是异步的过程,实时的发送过去,在计算的过程中还能干其他事,这就是多线程。

7.设备API

讲一下设备API。设备API我觉得最重要在性能方面,也是目前实现最早的API。一个是CONNECTION,就是网络带宽。这个有什么作用?在 中国这个场景下,必须得记住,很多用户的网速依旧是很低的。我们希望让用户网速低的时候,能够自动降级到一个比较低的方案。如果用现有的技术,我们是做不 到的。但是使用设备API我们是可以的。因为我们知道,从设备上可以取到这些信息。它的宽带是多少,多少宽带的时候我们能干的事情。比方说宽带好的时候, 我就用高清图片。宽带比较低的时候,就用清晰度比较低的图片。

8.电池

下面一个是关于电池的。我觉得从性能角度来说,主要是电量方面。假如说用户电池电量比较低的时候,我觉得是应该尽量少做一些事情。本身手机现在电池的技术来没有突破,我觉得让APP看起来比较高性能,也是一个宣传亮点。

9.CANVAS

接下来是CANVAS。讲CANVAS的几个性能优化点,用了这些东西,性能会有10倍的提升。

第一,每个CANVAS就是一个画布,我们要去渲染一个图形的时候, 我们是可以把它分层的。就是像PS里面一样,是一层两层三层。很多用户在做游戏的时候,直接把所有东西仿放到一个层里,一更新所有的东西都要更新。但如果 你把它分层,你让背景放在背景层,角色放到角色层。这样的话,我要更新角色的时候,只会更新角色,背景层不需要变。让CPU干的事情更少了,性能自然而然 就提升了。

第二,context.drawImage。不要去缩放图片,我们一开始就犯了一个错误,我们的美工做的图片始终跟我们不一致,然后我们要去缩放图 片。因为本身设备它的图片大小是这样的,我们必须按比率缩放图片。缩放图片以后发现在低端设备下,比方说iPad或者iPhone就会非常卡,我们就想为 什么?就进行代码上的分析,当用这个方法时候,花费的时候特别多。

第三,requestAnimationFrame。这是专门为渲染优化的一个方法。它本身的原理是这样的,当浏览器每过一桢的时候,会触发这个方 法,当我在触发的时候,Canvas得到这个浏览器已经准备好做下桢的事情。如果用传统的方法,是不会去考虑你更多的东西,它只会知道我过了多少时间,我 就要执行。假如说用户之前被阻塞了,每10秒钟执行这一方法,在10秒之内,实际他之前的事情还没有做完,然后这个事情就会被延后。它就是为了动画看上去 更流畅而优化的,因为每一桢的时候,它就告诉你说,你可以做一些事情。(文:infoq

QQ同时在线人数地图发布 沿海“大亮”全球最“光亮”的地方

来源: 太平洋电脑网

【PConline 资讯】腾讯发布了一幅QQ同时在线人数“亮点”地图,用地图上的“亮点”展示大中华地区QQ同时在线用户的数量。根据地图显示,腾讯QQ同时在线人数历史最高峰是:1.6亿左右。而在今天早上10:26分左右,则有1.3亿QQ用户同时在线。

值得注意的是,东南沿海的省份一片“大亮”,表示这些地区有大量的QQ在线用户。

QQ同时在线人数地图

腾讯发布QQ同时在线“亮点”地图

点击这里查看QQ同时在线人数地图

腾讯的这幅地图不由得让笔者想起了全球最大的社交网站Facebook也发布过一幅Facebook社交峰值地图,地图上越亮的地方表示使用Facebook的用户越多。(因众所周知大原因,国内用户无法正常访问Facebook)

而这幅地图上唯一暗淡的几个地方就是:南美的亚马逊森林、非洲中部及撒哈拉沙漠、中国大陆。

QQ同时在线人数地图

Facebook社交活跃度地图

此外,网络上也流传着一幅反映全球各地区繁华程度的热感地图,地图上越亮的地方表示越繁华、人口越多、用电量越大。

QQ同时在线人数地图

北美、欧洲、印度和东亚是全球最“光亮”的地方。