巴科斯-诺尔范式 (BNF) 基本语法[转]

语法规范:BNF与ABNF

BNF 

巴科斯范式(BNF: Backus-Naur Form 的缩写)是由 John Backus 和 Peter Naur 首先引入的用来描述计算机语言语法的符号集。现在,几乎每一位新编程语言书籍的作者都使用巴科斯范式来定义编程语言的语法规则。

在BNF中,双引号中的字(“word”)代表着这些字符本身。而double_quote用来代表双引号。

在双引号外的字(有可能有下划线)代表着语法部分。

< > : 内包含的为必选项。
[ ] : 内包含的为可选项。
{ } : 内包含的为可重复0至无数次的项。
|  : 表示在其左右两边任选一项,相当于”OR”的意思。
::= : 是“被定义为”的意思
“…” : 术语符号
[…] : 选项,最多出现一次
{…} : 重复项,任意次数,包括 0 次
(…) : 分组
|   : 并列选项,只能选一个
斜体字: 参数,在其它地方有解释

下面是是用BNF来定义的Java语言中的For语句的实例:

FOR_STATEMENT ::= 
      "for" "(" ( variable_declaration | 
  ( expression ";" ) | ";" ) 
      [ expression ] ";" 
      [ expression ] ";" 
      ")" statement

 

理解巴科斯-诺尔范式 (BNF) 语法

语法结构使用BNF范式形式给出,先做一个简单了解。

在双引号中的字(“word”)代表着这些字符本身。而double_quote用来代表双引号。
在双引号外的字(有可能有下划线)代表着语法部分。
尖括号( < > )内包含的为必选项。
方括号( [ ] )内包含的为可选项。
大括号( { } )内包含的为可重复0至无数次的项。
竖线( | )表示在其左右两边任选一项,相当于”OR”的意思。
::= 是“被定义为”的意思。

BNF 语法使用下表中显示的表示法。

约定/符号 含义
::= 等效
| OR
X+ 一个或多个 X。
[X] X 可选。可选的分隔符由 [] 表示。
任何粗体文本 字符串。
任何斜体 文本 如何构造字符串。

正如前表中所指出的,注册器脚本使用字符串。这些值是必须出现在脚本中的实际的文本。下表描述 ATL 注册器脚本中使用的字符串。

字符串 操作
ForceRemove 完全移除下一项(如果存在),然后重新创建它。
NoRemove 在“注销”期间不移除下一项。
val 指定 <Key Name> 实际上是一个命名值。
Delete 在“注册”期间删除下一项。
s 指定下一个值为字符串 (REG_SZ)。
d 指定下一个值为 DWORD (REG_DWORD)。
m 指定下一个值为多字符串 (REG_MULTI_SZ)。
b 指定下一个值为二进制值 (REG_BINARY)。

  ABNF

RFC2234 定义了扩展的巴科斯范式(ABNF)。近年来在Internet的定义中 ABNF 被广泛使用。ABNF 做了更多的改进。扩充巴科斯-瑙尔范式(ABNF)基于了巴科斯-瑙尔范式(BNF),但由它自己的语法和推导规则构成。这种元语言的发起原则是描述作为通信协议(双向规范)的语言的形式系统。它建档于 RFC 4234 中通常充当 IETF 通信协议的定义语言。

ABNF 规定是一组推导规则,写为:

规则 = 定义 ; 注释 CR LF

这里的规则是大小写敏感的非终止符,定义由定义这个规则的符号序列,一个文档注释组成,并结束于回车换行。

规则名字是大小写不敏感的: <rulename><Rulename><RULENAME> 和 <rUlENamE> 都提及同一个规则。规则名字由开始于一个字母的字母、数字和连字符组成。不要求用尖括号(“<”, “>”) (如 BNF 那样)包围规则名字。但是它们可以用来界定规则名字,比如在冗文中识别出规则名字的时候。ABNF 使用 7-位 ASCII 编码,在 8-位域中把高位置零。

终结符由一个或多个数值字符指定。数值字符可以指定为跟随着基数(b = 二进制, d = 十进制, x = 十六进制)的一个百分号“%”,随后是这个数值,或数值的串联(用“.” 来指示)。例如回车可以指定为十进制的 %d13 或十六进制的 %x0D。回车换行可以指定为 %d13.10

文字正文通过使用包围在引号(")中字符串来指定。这些字符串是大小写不敏感的,使用的字符集是 US-ASCII。所以字符串“abc”将匹配“abc”, “Abc”, “aBc”, “abC”, “ABc”, “AbC”, “aBC” 和 “ABC”。对于大小写敏感匹配,必须定义明确的字符: 要匹配 “aBc” 定义将是 %d97 %d66 %d99

操作符

空白被用来分隔定义的各个元素: 要使空格被识别为分割符则必须明确的包含它。

串联

规则1 规则2

规则可以通过列出一序列的规则名字来定义。

要匹配字符串“aba”可以使用下列规则:

fu = %x61; a
bar = %x62; b
mumble = fu bar fu

选择

规则1 / 规则2

规则可以通过用反斜杠(“/”)分隔的多选一规则来定义。

要接受规则 <fu> 或规则 <bar> 可构造如下规则:

fubar = fu / bar

递增选择

规则1 =/ 规则2

可以通过使用在规则名字和定义之间的“=/”来向一个规则增加补充选择。

规则

ruleset = alt1 / alt2 / alt3 / alt4 / alt5

等价于

ruleset = alt1 / alt2
ruleset =/ alt3
ruleset =/ alt4 / alt5

值范围

%c##-##

数值范围可以通过使用连字符(“-”)来指定。

规则

OCTAL = "0" / "1" / "2" / "3" / "4" / "5" / "6" / "7"

等价于

OCTAL = %x30-37

序列分组

(规则1 规则2)

元素可以放置在圆括号中来组合定义中的规则。

要匹配“elem fubar snafu”或“elem tarfu snafu”可以构造下列规则:

group = elem (fubar / tarfu) snafu

要匹配“elem fubar”或“tarfu snafu”可以构造下列规则:

group = elem fubar / tarfu snafu
group = (elem fubar) / (tarfu snafu)

可变重复

n*n规则

要指示一个元素的重复可以使用形式 <a>*<b> 元素。可选的 <a> 给出要包括的元素的最小数目,缺省为 0。可选的 <b> 给出要包括的元素的最大数目,缺省为无穷。

对零或多个元素使用 *元素,对一或多个元素使用 1*元素,对二或三个元素使用 2*3元素

特定重复  

n规则

要指示明确数目的元素可使用形式 <a> 元素,它等价于 <a>*<a>元素

使用 2DIGIT 得到两个数字,使用 3DIGIT 得到三个数字。(DIGIT 在下面的核心规则中定义)。

可选序列

[规则]

要指示可选元素下列构造是等价的:

[fubar snafu]
*1(fubar snafu)
0*1(fubar snafu)

注释

; 注释

分号(“;”)开始一个注释并持续到此行的结束。

操作符优先级

上述操作符有从最紧绑定(binding)到最松绑定的给定优先级:

  1. 字符串,名字形成(formation)
  2. 注释
  3. 值范围
  4. 重复
  5. 分组,可选
  6. 串联
  7. 选择

与串联一起使用选择操作符可以造成混淆,建议使用分组来做明确串联分组。

核心规则

核心规则定义于 ABNF 标准中。

规则 形式定义 意义
ALPHA %x41-5A / %x61-7A 大写和小写 ASCII 字母 (A-Z a-z)
DIGIT %x30-39 数字 (0-9)
HEXDIG DIGIT / “A” / “B” / “C” / “D” / “E” / “F” 十六进制数字 (0-9 A-F a-f)
DQUOTE %x22 双引号
SP %x20 空格
HTAB %x09 水平tab
WSP SP / HTAB 空格和水平tab
LWSP *(WSP / CRLF WSP) 线性空白(晚于换行)
VCHAR %x21-7E 可见(打印)字符
CHAR %x01-7F 任何 7-位 US-ASCII 字符,不包括 NUL
OCTET %x00-FF 8 位数据
CTL %x00-1F / %x7F 控制字符
CR %x0D 回车
LF %x0A 换行
CRLF CR LF 互联网标准换行
BIT “0” / “1”

例子

在巴科斯范式(BNF)条目中的邮政地址的例子可以被指定为:

postal-address = name-part street zip-part

name-part = *(personal-part SP) last-name [SP suffix] CRLF
name-part = / personal-part CRLF

personal-part = first-name / (initial ".")
first-name = *ALPHA
initial = ALPHA
last-name = *ALPHA
suffix = ("Jr." / "Sr." / 1*("I" / "V" / "X"))

street = [apt SP] house-num SP street-name CRLF
apt = 1*4DIGIT
house-num = 1*8(DIGIT / ALPHA)
street-name = 1*VCHAR

zip-part = town-name "," SP state 1*2SP zip-code CRLF
town-name = 1*(ALPHA / SP)
state = 2ALPHA
zip-code = 5DIGIT ["-" 4DIGIT]

引用

参考

来源:http://kb.cnblogs.com/page/189566/

来源:http://tianya23.blog.51cto.com/1081650/633141

Thrift 数据类型

要编写Thrift定义文件,肯定要熟悉Thrift常见的数据类型:

1.基本类型(括号内为对应的Java类型):
bool(boolean): 布尔类型(TRUE or FALSE)
byte(byte): 8位带符号整数
i16(short): 16位带符号整数
i32(int): 32位带符号整数
i64(long): 64位带符号整数
double(double): 64位浮点数
string(String): 采用UTF-8编码的字符串

2.特殊类型(括号内为对应的Java类型):
binary(ByteBuffer):未经过编码的字节流

3.Structs(结构):
struct定义了一个很普通的OOP对象,但是没有继承特性。

struct UserProfile {
1: i32 uid,
2: string name,
3: string blurb
}

如果变量有默认值,可以直接写在定义文件里:

struct UserProfile {
1: i32 uid = 1,
2: string name = “User1”,
3: string blurb
}

4.容器,除了上面提到的基本数据类型,Thrift还支持以下容器类型:
list(java.util.ArrayList):
set(java.util.HashSet):
map(java.util.HashMap):

Thrift容器与类型密切相关,它与当前流行编程语言提供的容器类型相对应,采用java泛型风格表示的。Thrift提供了3种容器类型:
List<t1>:一系列t1类型的元素组成的有序表,元素可以重复
Set<t1>:一系列t1类型的元素组成的无序表,元素唯一
Map<t1,t2>:key/value对(key的类型是t1且key唯一,value类型是t2)。
容器中的元素类型可以是除了service意外的任何合法thrift类型(包括结构体和异常)。
用法如下:

struct Node {
1: i32 id,
2: string name,
3: list<i32> subNodeList,
4: map<i32,string> subNodeMap,
5: set<i32> subNodeSet
}

包含定义的其他Object:

struct SubNode {
1: i32 uid,
2: string name,
3: i32 pid
}

struct Node {
1: i32 uid,
2: string name,
3: list<subNode> subNodes
}

5.Services服务,也就是对外展现的接口:

service UserStorage {
void store(1: UserProfile user),
UserProfile retrieve(1: i32 uid)
}

写给自己也写给你 自己到底该何去何从

写给自己也写给你,自己到底该何去何从

能有一项长期爱好,看电影或者听歌收集旧书都行。这些爱好说白了就是让无聊的日子看起来有那么一点意义。

不要担心长时间不读书,你刷的微博,是在刷新信息量。看的电影也能充斥知识量。

看书看电影无须在意评论家说什么,有你喜欢的作家或演员就行。

过了三十岁,不管在什么地方吵架,都挺二的,尤其在网上。

五毛从来不值一提,更不配顺口一骂。

无论是谁,一有空就随便抓个人骂来骂去的,都不是什么好人。

别轻易贬低别人,同一个世界,同一个泥潭,无论黑衬衫白衬衫都带着污渍。

接下来说点小事 :))

不要占用别人车位,临时占用要留电话,否则车被划了轮胎被扎了都不好意思嚷嚷。

记得排队,记得上扶梯站右边,记得打车时别抢到别人前面,记得让自己方便的时候别给别人制造不快。

飞机没停稳何苦打开行李舱拿着背包就往外冲呢?我们不是最讨厌拥挤吗?

既然你改变不了什么,就改改自己的暴脾气,顺便去做一个正常人,当正常人越来越多,活着就没那么纠结,就会舒服一些,这就是改变。

别人给的伤害不能让你变强大,但你要学会躲避他们,不是说你惹不起,是你浪费不起那时间。把时间浪费在那种人身上,与自残无异。

关于朋友这件事,合得来就多加珍惜,不合拍就别浪费精力浪费时间辛苦维持了。

说到爱情,别为此寻死觅活,也别要求对方爱自己爱一辈子,那就是一段经历而已。

别问朋友借钱,除非是治病救人。欠钱到期还不了,要提前说,别羞于启齿错过时间等朋友问起时再支支吾吾闹得彼此都不痛快。

过去会越来越多,未来会越来越少,直到没有。当过去变成记忆,就变成身体的一部分,你忘不掉的。

当你感到自己真笨,这也干不好,那也做不好的时候,你已经是聪明人了。

不要担心这个致癌,那个致癌,这个不吃那个不吃,放心,我们最后都要死于癌症。

别人让你点菜,不会点就老老实实说不会点,别一张嘴就出来俩字:随便。

只要活着就总有那么一段时间,充满灰暗,躁动不安,可是除了面对,好像也没有别的办法。

当你感到时光漫长,实际上已经没有多少时间了。

老人倒了要扶,当年的坏人变老了,但不是所有的老人都变坏了。相信我,只有看热闹的越来越少,我们的下半生才有希望。

你会臃肿,你会白头,你将来也会倒在路边,但你不会去诬赖那个扶你的人。

你不会,我相信。

最后,

移民不是真正的理想,真正的理想是留在这个国家,管好自己并力所能及的帮助他人,以及,参与它的每一次改变。

来源:http://www.myexception.cn/other/1768786.html

2016世界最烂密码出炉 排名第一的还是123456

据Business Insider报道,安全公司Keeper在对1000万个泄露的密码进行分析后,得出了今年最常用的密码。排名第一的密码就是123456,而它几乎每年都会当选。
2016年,这些超简单的密码也频频给黑客们助攻,最令人记忆犹新的就是Facebook CEO扎克伯格“dadada”的密码。
在这1000万个泄露的密码中,有17%的用户都选择了123456最为自己的密码。排名第二的常用密码比123456高明不了多少,因为它是123456789。排在第三的这是qwerty(键盘第一排的几个字母)。
Keeper表示,安全专家三番五次提醒用户增强密码的安全级别都被大多数人当成了耳旁风,“过去几年里,这个榜单上的密码几乎没变过,这就意味着安全专家的善意提醒根本没多少人接受。如果用户在设置密码时不负责任,网站管理者应该替用户把关。”
2016年最常用密码TOP 25:
1. 123456
2. 123456789
3. qwerty
4. 12345678
5. 111111
6. 1234567890
7. 1234567
8. password
9. 123123
10. 987654321
11. qwertyuiop
12. mynoob
13. 123321
14. 666666
15. 18atcskd2w
16. 7777777
17. 1q2w3e4r
18. 654321
19. 555555
20. 3rjs1la7qe
21. google
22. 1q2w3e4r5t
23. 123qwe
24. Zxcvbnm
25. 1q2w3e
来源:第一财经|YICAI

[转] UltraEdit_16.10.0.22 破解

2016-11-20 增加16.10.0.22破解

去官网下载原载,先运行一次,再在终端里执行下面代码就可以破解完成!
printf ‘\x31\xC0\xFF\xC0\xC3\x90’ | dd seek=$((0x92D370)) conv=notrunc bs=1 of=/Applications/UltraEdit.app/Contents/MacOS/UltraEdit

论坛里有很多锋友发消息问我怎么找skProtectionPlus::IsActivated函数地址,下面我把找函数地址的方法发一下:

你下载个IDA pro,然后用打开idaq64,然后把Applications/UltraEdit.app/Contents/MacOS/UltraEdit拖到IDA里,
在导出函数里找到skProtectionPlus::IsActivated

2016-11-17 增加16.10.0.21破解

去官网下载原载,先运行一次,再在终端里执行下面代码就可以破解完成!
printf ‘\x31\xC0\xFF\xC0\xC3\x90’ | dd seek=$((0x92B240)) conv=notrunc bs=1 of=/Applications/UltraEdit.app/Contents/MacOS/UltraEdit

16.10.0.19破解:

去官网下载原载,先运行一次,再在终端里执行下面代码就可以破解完成!

printf ‘\x31\xC0\xFF\xC0\xC3\x90’ | dd seek=$((0x92D540)) conv=notrunc bs=1 of=/Applications/UltraEdit.app/Contents/MacOS/UltraEdit

其实就是修改skProtectionPlus::IsActivated函数,会修改的后续版本可以自已改!

来源:http://bbs.feng.com/read-htm-tid-10828753.html

WordPress 4.7 “Vaughan”发布,内容管理系统

WordPress 开发团队发布了 WordPress 4.7 正式版 —“Vaughan” 。取名“Vaughan”以纪念传奇的爵士乐歌手Sarah“Sassy”Vaughan。现在可以更新了。新版带来全新的默认主题,定制器加入了新功能,REST API 内容端点,更多开发者工具。

更新如下:

  • 新的主题 — Twenty Seventeen。全新的默认主题可让您的网站通过引人入胜的精选图片和视频头部生动呈现。

  • WordPress 4.7 为自定义程序添加了新功能,帮助您完成主题的初始设置,在一个不间断的工作流程中对所有更改进行非破坏性实时预览。
  • WordPress 4.7 带来了针对帖子、评论、条款、用户,元和设置的 REST API 端点。

来源

下载地址:https://wordpress.org/download/

女友PMS期间男生超安全生存指南

跟处在PMS或“经前综合症(Pre-Menstrual Syndrome,估计你们有人猜错了吧)”期的女性——任何女性——呆在一起可谓置身雷区,男人们再小心翼翼也随时可能一步迈错踩爆地雷。有鉴于此,特此收录助你顺利渡过下一轮PMS的重要信息和指导攻略:

危险:晚饭做了什么?
较安全:我帮你做晚饭好吗?
最安全:晚上想去哪儿吃?
超安全:来,吃点儿巧克力。

危险:你要穿这件衣服?
较安全:天耶,你穿棕色真好看!
最安全:哇!你真是绝了!
超安全:来,吃点儿巧克力。

危险:你在那儿激动什么呀?
较安全:我哪儿不对,告诉我好吗?
最安全:拿着,这是五十块。
超安全:来,吃点儿巧克力。

危险:那玩意儿能吃吗?
较安全:你看,咱家还有好多苹果哪。
最安全:我给你倒杯酒就着吃?
超安全:来,吃点儿巧克力。

危险:你今天一天都干嘛啦?
较安全:希望你今天没累着。
最安全:我一直都喜欢看你穿这件睡袍。
超安全:来,吃点儿巧克力。

_____________________________________

PMS可以代表的13样东西:

1.拿我的枪来Pass My Shotgun
2.神经病心境转移Psychotic Mood Shift
3.永恒大嚼盛宴Perpetual Munching Spree
4.膨化中段Puffy Mid-Section
5.让我恶心的人People Make me Sick
6.给我糖果Provide Me with Sweets
7.原谅我哭Pardon My Sobbing
8.痘痘终将上脸 Pimples May Surface
9.把我的”裆劲”裤递给我Pass My Sweatpants
10.拧巴情绪综合症Pissy Mood Syndrome
11.男人可耻滴失败鸟Plainly; Men Suck
12.我收拾东西Pack My Stuff
13.潜在杀人嫌疑犯Potential Murder Suspec

2016编程语言受欢迎排行榜

Python部落组织翻译

IEEESpectrum出品的"最受欢迎编程语言排行榜"的第三张榜单出炉了.尽管不可能统计到每一个程序员的喜好,Spectrum从10个数据来源选取了12个维度来表示编程语言受欢迎的程度.然后综合12个维度的评价得出最后的榜单.

由于每个人看重的方面不一样,比如你可能关系开源社区哪些编程语言最火?他可能关心工作的人最喜欢哪些语言?Spectrum允许你自由调整构成榜单结果的每个维度的权重.你也可以根据选项过滤榜单的结果,比如查看嵌入式系统或者移动应用中哪些语言最受欢迎?

默认权重情况下的榜单显示了各方关切程度综合出来的平均值.那么2016最受欢迎的编程语言有哪些呢?

连续两年位居第二之后,C语言终于超越了Java,登顶榜首.在前五名中,Python超过C++成为第三名,C#被R顶出前五.最近几年R一路飙升,主要是由于乘上了大数据分析的浪潮.

Google和Apple也在榜单上刷了一下存在感.Google的Go语言打败Apple的Swift进入了榜单的前十名,不过Swift也不赖,去年它上升了5个座次,从16名上升到了11名,要知道它是去年才进入榜单的.其他语言也上上下下地发生了分化,不过值得注意的是,今年没有一门新语言进入了榜单.

另外一个比较明显的变化是Ladder Logic,它上升了5位,排名第34.Ladder Logic主要用在逻辑控制器上,主要是工厂在使用它.尽管工厂使用是一个比较小的场景,但是它能排到当前的位置,一定程度上反映了这个场景的实际规模.HTML还是很受欢迎,今年上升到了第16位.

在受欢迎程度下滑的语言中,最令人惊讶的是Shell语言,系统管理员编写脚本几乎无不依赖于它,但是它今年下滑了7个位置,到第19位.也许这反映了在相对更复杂的系统中,或者基于云的数据中心中系统管理的一些现状.不过我们需要继续关注这个趋势,来确定Shell是会持续地下滑,还是这只是统计方法上的疏漏.

从趋势来看,编程语言的前10名是

在公司雇员中,编程语言的前十名是

在开源社区中,编程语言的前十名是

英文原文:http://spectrum.ieee.org/computing/software/the-2016-top-programming-languages

译者:诗书塞外

PHP CMS系统排行榜

CMS系统中文名称为网站内容管理系统,大概在2002年左右,如果想进行网站的内容管理,那么基本上都是靠手工维护,但是一个网站的内容成千上万,如果还继续靠手工完成那是基本上不可能的事,如果有CMS系统来支撑你的网站,那将节省了不少的人力,只要你能够配置好!站长只需要定时更新就可以了!这样通俗的解释,很容易理解的!

TOP 4

帝国CMS

帝国CMS是不同于以往的CMS系统,他可以直接在后台通过新建表、自定义字段,然后组成新的系统模型。从而实现各种适合用户自己的系统。如下载系统、音乐系统、商城系统、产品库等等……并且此功能为数据量较大的网站进行数据部署(将信息量分配于不同的信息表)。并且系统内置还是用户自定义的模型,每个模型都有自己的采集。如果会点程序,可以扩展更多更复杂的系统。

它采用了系统模型功能:用户通过此功能可直接在后台扩展与实现各种系统,如产品、房产、供求、等等系统。采用了模板分离功能:把内容与界面完全分离,灵活的标签+用户自定义标签,使之能实现各式各样的网站页面与风格;栏目无限级分类;前台全部静态:

(帝国CMS后台界面示意图)

TOP 3

PHPCMS

phpCMS是一个开源的PHP开发框架。Phpcms由内容模型、会员、问吧、专题、财务、订单、广告、邮件订阅、 短消息、自定义表单、全站搜索等20多个功能模块组成,内置新闻、图片、下载、信息、产品5大内容模型。Phpcms 采用模块化开发,支持自定义内容模型和会员模型,并且可以自定义字段。

PHPCMS采用PHP5+MYSQL做为技术基础进行开发。采用OOP(面向对象)方式进行基础运行框架搭建。模块化开发方式做为功能开发形式。框架易于功能扩展,代码维护,一般的二次开发能力,可满足网站的应用需求。

(PHPCMS后台界面示意图)

TOP 2

ECShopCMS

ECShopCMS是一款B2C独立网店系统,系统是基于PHP语言及MYSQL数据库构架开发的跨平台开源程序。随着3G网络的普及,智能手机的大量使用,手机上网的用户越来越多,使手机购物成为可能,手机购物势必会成为一种趋势,ECshop新增手机浏览html功能。并且新增商品规格分库存功能,方便商家管理不同规格货品的库存。在商品详情页新增购买记录,提高网店的活跃性。html编辑器上传图片后增加水印功能。改进编辑快递单功能,增加可视化编辑,方便管理员修改打印快递单。上传商品相册图片,使之能够支持外链图片。

(ECShopCMS后台界面示意图)

TOP1

dedeCMS

dedeCMS采用XML名字空间风格模板,模板全部使用文件形式保存,对用户设计模板、网站升级转移均提供很大的便利,模板标签为站长DIY自己的网站提供了支持。高效率标签缓存机制:允许对类同的标签进行缓存,在生成 HTML的时候,有利于提高系统反应速度,降低系统消耗的资源。模型与模块概念并存:在模型不能满足用户所有需求的情况下,DedeCMS推出一些互动的模块对系统进行补充。

(DEDECMS后台界面示意图)

每个程序员都应该收藏的算法复杂度速查表

英文:http://bigocheatsheet.com/
编译:Linux中国
链接:https://linux.cn/article-7480-1.html

这篇文章覆盖了计算机科学里面常见算法的时间和空间的大 OBig-O 复杂度。我之前在参加面试前,经常需要花费很多时间从互联网上查找各种搜索和排序算法的优劣,以便我在面试时不会被问住。最近这几年,我面试了几家硅谷的初创企业和一些更大一些的公司,如 Yahoo、eBay、LinkedIn 和 Google,每次我都需要准备这个,我就在问自己,“为什么没有人创建一个漂亮的大 O 速查表呢?”所以,为了节省大家的时间,我就创建了这个,希望你喜欢!

— Eric[1]

图例

数据结构操作

数组排序算法

图操作

堆操作

大 O 复杂度图表

Big O 复杂度

推荐阅读

  • Cracking the Coding Interview: 150 Programming Questions and Solutions[33]
  • Introduction to Algorithms, 3rd Edition[34]
  • Data Structures and Algorithms in Java (2nd Edition)[35]
  • High Performance Java (Build Faster Web Application Interfaces)[36]

关注「算法爱好者」

我们程序员的属性 [转]

俗话说:三句不离本行,对于程序员这个可爱的群体来说也是一样。

他们在编程中养成的一些思维方法会不自觉地在日常生活中表现出来。

我们这里总结了程序员日常生活中经常表现出来的8个编程思维。

你有没有同感呢?

0.在正常交流中掺杂编程规范和语法

职业原因:编程语言都有自己特定的语法,程序员在开发者都要遵守这些。

当然,还有一些约定俗成的编程规范,如代码缩进(是缩进4个字符还是8个字符)、注释风格,采用骆驼式(CamelCase)或帕斯卡式(Pascal)来命名变量或函数等等。

日常行为:这些编程习惯可能就会影响到程序员的日常文档书写习惯,比如写邮件时会用分号来结束一行内容等。

例子:

iWriteInCamelCaseEveryNowAndThenItAnnoysMySisterWhoReadsMyEmail.(小骆驼式拼写法)
IF you have tea I’ll have it ELSE I’ll just take wate.(利用了IF-ELSE判断语句)

1.真实生活中习惯讲操作快捷键

职业原因:程序员玩快捷键操作软件应该很熟练了,一般来说,Ctrl-C表示复制、Ctrl-V表示粘贴(对特定编辑器如Vi、Emacs来说会有不同)。

日常行为:这些快捷键有时在程序员的行为和话语中表现的很常见,这也会在一些场合引起尴尬。

例子:

“Mentally trying to Ctrl-Z on things I just said.(Ctrl-z表示撤消,这句话意思是我收回我刚才说的话)
In life there is no undo.(生活中没有撤消)

2.从0开始计数

职业原因:大多数编程语言中的“数组”初始值都是从0开始而不是1。

日常行为:这种约定使得程序员经常在生活中数数都是从0开始,没有编程背景的人们很难理解这种计数方式,如果你的程序员朋友祝愿你在3千米长跑中获得第0名,你就偷着乐吧。

例子:

– How many beers are left?(啤酒还剩多少杯?)
– Zero, one, two, three… We have four left!(0,1,2,3,……我们还有4杯呢~)

3.生活方式不健康

职业原因:程序员写起程序来有时一坐就是大半天,眼镜不离电脑屏幕,甚至在灵感爆发时熬夜。
日常行为:作息无规律,锻炼不足,与外界接触过少。

例子:
Eating lunch at 3pm and going to bed at 3am.(下午3点吃饭,凌晨3点睡觉)
Lack of exercise -> Eating too much -> unhealthy life style.(缺乏锻炼->吃得过多->生活方式不健康)

4.试图优化任何事情

职业原因:软件开发者会不断地优化自己的代码,让它越来越快、越来越高效。常用的方法有多线程处理任务、代码复用等,并在任何有可能自动化执行的情况下使其自动化。

日常行为:会尝试优化真实生活中的事情,尽量省力、高效,往往会被认为太懒惰,比如脏衣服经常堆到一定规模,实在没有可穿的了才去清洗(往往一次全部清洗完)。

例子:
don’t solve a problem until you absolutely, positively have to.(不到万不得已,不解决问题)

5.过于强迫症、完美主义

职业原因:程序中一般不能使用模糊语义,因为计算机不理解“差不多”,“基本”。程序中即使有一点小错误,也会导致程序编译不过、运行不起来。

日常行为:程序员也经常是过于认真,不放过任何小细节,“打破沙锅问到底”,这有时会给周围的人造成压力。

例子:
Requesting clear spec for favors and errands. ‘Wait what do you mean by ‘some eggs’? What is the lower and upper bound?'”(老婆让去买些鸡蛋,会追问到底买几个啊?)

6.希望人们都和电脑一样循规蹈矩

职业原因:计算机会按照程序设定的方式运行,运行出错,那就是程序出Bug了。

日常行为:程序员有时会忽略人们是和电脑不一样的,人不可能完全按照逻辑和理性来做事,更多的是“跟着感觉走”。

例子:
Having to explain what a logical fallacy is, first, everytime someone says something completely wrong gets frustrating fast.(经常去解释逻辑上存在的错误,如果人们否定整个事情则很容易感到沮丧)

7.总是想到2的乘方

职业原因:计算机存储信息的基本单位是bit(比特)。二进制系统中,每个0或1就是一个bit。

日常行为:常常不以10进制而是以2进制进行计算。一些平常的日子在程序员眼里也变得很神奇,如程序员日就是每年的第256天(2^8),也有人推荐将每年的10月24日作为程序员日(2^10)。

例子:
Everything has to be in powers of 2.(一切皆为2的乘方)
Imagine you have 1,000 bucks; or better a round number—imagine you have 1,024 bucks.(假设你有1000块钱,最好这样说,假设你有1024块钱)

好啦,总结完毕了。

如果你有孩子,还会让他去当程序员么?

“我以后绝对不会让我的儿子也当程序员的。”三十二岁的程序猿老张心酸而又坚定的说。

“嗯,但是,”路人甲一针见血的指出了一个问题:“你有老婆吗?没有老婆怎么可能有儿子呢?”

老张:“……你大爷的!我的心好痛!”

注定孤独一生?

程序员A和程序员B的对话。

 

程序员A说:昨晚帮个美女装路由器,装到12点都没装好,美女对我说:“装不好就别装了,我们做点其他事情把!”我听了,顿时怒火就上来了,你他妈不是在考验我么?然后我快速的把路由器装好就回去睡觉了。

程序员B说:你做的对,昨晚我和一个女同事出差住旅馆,旅馆只有一张床了,我打算睡沙发,女同事对我说:“你跟我一起睡吧,不过不能做什么坏事情哦!”我听了,顿时怒火就上来了,你他妈这不是怀疑哥的人品么?然后我硬是在沙发睡了一晚。

简单说就是:“智商高 情商低?”

是呀,没事。就爱怼老板。

老板:汉字中,凡带三点水的,一定都有水,比如,江,河,湖,海……

程序猿:沙漠

老板:滚!

情商低的表现。

一个程序员骑着一个很漂亮的自行车到了公司,另一个程序员看到了他,问 到,“你是从哪搞到的这么漂亮的车的?”
骑车的那个程序员说, “我刚从那儿过来, 有一个秀丽的姑娘骑着这个车过来, 并停在我跟前,把衣裳全脱了,然后对我说,‘你想要什么都可以’”。
另一个程序员马上说到, “你必定做了一个正确的选择, 因为那姑娘的衣裳你并不一定穿得了”。

宅也是我们的属性表现啊。

“嘿,兄弟,犯什么事进来的?”

“入室偷窃。”

“咋啦,被人赃俱获?”

“屁!货还没到手呢,刚进屋就冲出两宅男,亏我还观察那屋三天!”

宅-没朋友-更宅-更没朋友的死循环。

 

【彩蛋】

小小编辑送给乱弹精英和程序员的礼物。

请戳(这里

 

【小树的世界之旅】

1、三天前,家住南京大厂某小区的盛先生带爱犬外出,结果爱犬被小轿车撞伤,车主驾车溜了。受伤的狗儿“盛怒之下”,将盛先生及妻子咬伤。夫妻被狗咬伤,又找不到肇事者,气愤的盛先生拨打12345政府热线求助。南京化工园公安分局扬子派出所民警接到工单后,通过监控找到了肇事车辆及车主,虽然车主否认,但车前的裂痕及粘着的狗毛“作证”,车主不得不承认这一事故。

南京真是个动物乐园。

2、10月12日,山东潍坊昌乐交警的一次查酒驾行动中,一名执勤交警被喝了酒的司机用车顶着狂奔了10分钟,最后从车前盖滚落下来,差点要了交警的命。司机行为令人发指,警方迅速展开抓捕。第二天早上7点45分,两名嫌疑人最终落网。经审讯,驾驶轿车的男子马某,和副驾驶位置男子徐某是朋友。为了庆祝自己入职,俩人中午就多喝了几杯。马某、徐某两人口口声声说着心里害怕,可是当天晚上两人醒酒后,并没有立即投案自首,而是一起再赴酒局。

刚入职就要去牢里上班了

3、10月17日晚,马先生朋友的父亲过生日,一家人前往位于宝塔区的延安中益嘉汇酒店吃饭。“由于桌上的女士较多,就说喝啤酒,刚好车上放有两箱啤酒,我就搬一箱。”马先生说,当时带啤酒进去时,服务员并没告知要收“开瓶费”,等吃完饭结账时发现,总共花了1330元,其中“服务费”就有100元。8日下午他已将此事反映给延安市宝塔区消费者协会,消协已经立案调查。

干脆,你用枪指着每一位进店的掏他钱包就是了。

 

【小树的角色Play剧场】

(本期剧本导演: @ 树和伊文 ,友情客串:@ 唐力个糖

看CCTV的普法栏目剧

一个貌似是坏女人对着男主角脱掉浴袍

镜头还马上切到坏女人的后背

没错露背了,虽然打了点朦胧的效果

然后男主角瞄了一眼,慢慢脱去西装并把身子靠过去

我勒个擦后面就是床啊心想央视这是要逆天了

男主角突然把脱去的外套披在坏女人身上

说:我警告你再有下次,滚

然后就走了,就走了

@ 唐力个糖 不禁叹息了一声,突然发现原来@ 唐力个糖 是和妈妈一起看啊

妈妈质问@ 唐力个糖 :“你唉什么?”

早已看惯云淡风轻的@ 唐力个糖 马上说道:

堂堂中央电视台居然要拍出这么俗的东西真是无话可说了

然后@ 唐力个糖 还不屑地摇摇头走开。

 

情绪不好?

关注同学们的生理心理健康

请进入大家喜闻乐见的【小树医生心理生理医务室】

“如何让‘二狗’这个外号有不一样的感觉?”

“犬次郎。 ”

“那‘狗蛋’呢?”

“犬丸。”

—- ———分割线————– ——

晚上稀里糊涂的做了个很奇怪的梦,

梦见自己有了个小女儿,

哄了大半夜,累得要死。

最冤的是,醒了之后,死活想不起来孩子她妈是谁。

—- ———分割线————– ——

小时候家里很穷,每当看见邻居家的狗吃的比我还好,

我就暗下决心,以后一定要好好学习、努力工作,

争取给自己找到一个有钱的主人。

—- ———分割线————– ——

无她,唯手熟尔。

 

【看片】

当你注视深渊的时候,深渊也在注视着你。

手机党少年们想看视频,请使劲儿戳(这里)。

 

最受欢迎编程语言又是谁?C 语言居首,大数据赢了

C语言占据榜首,但大数据类是最大赢家。

IEEE Spectrum的第三次“最受欢迎编程语言”交互式排行榜新鲜出炉。因为不可能顾及到每一个程序员的想法,Spectrum使用多样化、可交互的的指标权重来评测每一种语言的现行使用情况。

数据记者Nick Diakopoulos从10个线上资源中选取了12个指标,这其中的每一个都能反映某一种编程语言在某一方面的受欢迎程度,加权这些指标就能得出一个排名。

何为“交互式”排名?

因为我们每个人都可能会看重不同的东西,比如大众最热衷在开源代码中使用什么语言?哪种语言的客户需求量最大?Spectrum的“交互式编程语言排行”让用户可以根据自己的喜好调整不同评价指标所占的权重,从而得到所需的排名。

用户还能根据自己的需要过滤榜单中的结果,例如我们可以选择只显示用于嵌入式系统和移动终端的语言。当然,用户既可以定制榜单中的每一项权重,也可以使用榜单预设的评价方案。

榜单中的默认预设是根据IEEE成员的平均兴趣权重来设定的,那么2016年Spectrum评选出的排名前十的编程语言都有哪些呢?

在连续两年屈居亚军后,C语言终于替代了Java榜首的位置。放眼前五名,Python和C++在3、4名上互换了位置,C#跌出前五,其位置由近几年上升势头迅猛的R语言所取代。近年来,包括R在内的大数据类编程语言总体呈现出一种上升趋势。

谷 歌和苹果在榜单上同样你追我赶,最新的榜单显示谷歌的Go语言击败了苹果的Swift并杀入前十,但swift的上升同样不容小觑,其今年排到了第11 位,相比于去年上升了5个排名。值得一提的是,去年曾有若干新兴编程语言和Swift一起初涉榜单,但今年却不见了它们的踪影。

其 他引人瞩目的变化包括Ladder Logic,它从去年的39名上升到了今年的34名。LadderLogic用于PLC(可编程逻辑控制器),尤其是在工厂中的PLC上应用较广。通常人 们认为编程语言在制造业中无利可图,然而Ladder Logic的成功揭示了编程语言在制造业应用中的巨大商机。

另外HTML仍然流行,今年排名上升到了第16位,之前有用户甚至还在担忧其是否能入选榜单(为准确起见,我们秉承着实用至上的原则,并且将编程语言定义为一种给计算机下指令的特殊语法——就算这种语法只是用于数据的结构化——我们并不要求编程语言是图灵完备的)。

在 退步名单里,最出人意料的当属Shell的衰落(Shell是一种统称,指对脚本的直接创造,通常为系统管理员所钟爱,常见的有bash shell等),其下降了7个名次落到了第19位。这种趋势或许反映了用于云端数据中心的复杂系统的发展壮大,但现在我们还不能妄下结论,我们还需要观察 下一年的排名来确定这种趋势是否会持续,抑或仅是一种统计学上的偶然结果。

注:

IEEE Spectrum:一本IEEE(美国电气电子工程师学会)出版的旗舰杂志,其中文版名为《科技纵览》,旨在探讨未来技术发展趋势及其对社会和商业的影响,主要内容为报道国际航空航天、计算机和电信、生物医学工程、能源和消费电子等领域的最新技术进展和成果。

PLC:可编程逻辑控制器,是一种采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算、顺序控制、定时、计数与算术操作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程。

图灵完备:Turing Completeness,一切可计算的问题都能计算,这样的虚拟机或者编程语言就叫图灵完备的。

稿源:dy.163.com

苹果的 Safari 已成为新的 IE

IE 一直以来都因为不兼容标准而遭人诟病,因为早期的 IE 占有率太高,IE 不支持的 html/js 特性网站就无法使用。

而现在 Safari 的状态和当时的 IE 非常相似,几乎也成了 HTML5 标准的公敌。

以 HTML5 的 Flexbox 为例,作为网页弹性布局重要的特性,开发者却因为 webkit 里存在大量 bug 而不能使用。

谷歌的 blink 引擎也从 webkit 继承了这些 bug,在两年时间里 blink 收到了数十个 bug 报告,bug 被修好后开发人员甚至提醒用户 safari 仍有 bug,建议不要使用。而谷歌之所以花一年多才修复也是因为 safari 不支持的特性没人会用,bug 优先级不高。

反观 safari,bug 出现一年后才有人提交报告,至今甚至都没有任何开发人员对 bug 进行 review 或评论,bug 状态仍是 new。经常有设计师在其他浏览器里做好的效果发现在 safari 布局完全错乱而不得不重新设计。和当年的 IE 一样,兼容标准对苹果并没有什么好处。迫使开发人员针对 iPhone 优化手机网页反而能增加用户粘性。比如网页在隐私模式下的行为,或者屏幕触摸事件的属性,等等功能,苹果都选择不遵照标准而采用自己的定义。

苹果发明了非标准的 viewport 标签用来定义网页在手机上的缩放,如今苹果自家对 viewport 的定义竟成了其他浏览器必须遵照特性。

回想当年乔布斯还反复强调 flash 要死,html5 是未来,简直滑稽可笑。

科技行业最有钱途 15 个职位:第一竟不是程序猿

北京时间8月21日消息,根据Comparably.com提供的数据,财经网站TheStreet列出了科技行业最赚钱的15个职位,看看你的工作在列吗,排在第几位?

销售工程师。平均工资:122110.18美元,平均奖金:38589.20美元,平均薪水总额:157510.19美元。BLS表示,销售工程师负责向其他企业出售“复杂的科技产品或服务”,这些专业人士必须广泛具有“产品部件和功能相关知识,必须系统了解制造这些产品的过程”。

创意总监。平均工资:136573.01美元,平均奖金:19913.54美元,平均薪水总额:146886.79美元。创意总监通常负责一个组织某一特定产品或服务的品牌战略及概念定位。创意总监在艺术、音乐、时尚和广告领域较为普遍,但现在的科技公司也逐渐引入了该职位。

销售经理。平均工资:101899.23美元,平均奖金:51843.01美元,平均薪水总额:145807.08美元。销售经理负责一个公司的销售团队。他们负责“制定销售目标,分析数据和开发培训项目”。

首席工程师。平均工资:134748.01美元,平均奖金:16580.14美元,平均薪水总额:143921.79美元。首席工程师头衔包括首席软件工程师和首席程序员,负责公司的一个或多个项目。

高级开发人员。平均工资:126663.10美元,平均奖金:19338.86美元,平均薪水总额:138234.22美元。开发人员代表了任何参与软件或Web开发的工程师,前面冠以“高级”,代表了领导角色。

数据科学家。平均工资:122356 .37美元,平均奖金:21284.69美元,平均薪水总额:135450.98美元。数据显示,数据科学家是2016年美国最好的工作之一。《哈佛商业评论》称该职业是“21世纪最性感的工作”。

销售代表。平均工资:78609.75美元,平均奖金:60841.21美元,平均薪水总额:131964.44美元。科技行业内销售代表的薪酬,是销售职业当中最高的。

高级营销经理。平均工资:118127.57美元,平均奖金:17080.30美元,平均薪水总额:130255.59美元。该职位职责包括产品开发、趋势监测、品牌管理、客户定位和收购等。BLS预测到2024年该职位需求增长将达到9%,高出平均水平。

项目经理。平均工资:116703.79美元,平均奖金:17625.52美元,平均薪水总额:127652.98美元。项目经理负责“项目提案、计划、状态报告和变更请求”,同时还需要具有良好的人际交往能力和谈判技巧。

DevOps。平均工资:117616.84美元,平均奖金:12869美元,平均薪水总额:124927.63美元。DevOps就是开发(Development) 和运维(Operations)这两个职位的合并,该职位强调软件开发和IT运营之间的沟通、协作和集成。

高级UI/UX设计师。平均工资:116038美元,平均奖金:12438.95美元,平均薪水总额:121946.50美元。UX(用户体验)设计师关心用户的对产品感觉如何,而UI(用户界面)设计师关注的是产品布局如何,不过二者的界限有利于模糊。

移动开发者。平均工资:111140.05美元,平均奖金:16225.41美元,平均薪水总额:117727.81美元。据ABI研究提供的数据显示,今年移动应用开发行业营收规模将达到460亿美元,意味该行业将对移动应用开发人员有着更高需求。

高级设计师。 平均工资:109901.03美元,平均奖金:14653.16美元,平均薪水总额:117422.99美元。硅谷图形设计师和计算机科学家约翰梅达 (John Maeda)称,由于设计和技术对用户体验的影响日益增强,两个领域的界限正在模糊。在软件开发领域,设计师的作用正显得愈发重要。

人力资源经理。平均工资:98893.25美元,平均奖金:13129美元,平均薪水总额:106860.77美元。BLS表示,到2024年,人力资源经理需求将增长9%,“确保公司能够赶上不断变化且复杂的就业法律”。

开发人员。 平均工资:96220.28美元,平均奖金:12358美元,平均薪水总额:102625美元。美国劳工统计局(BLS:Bureau of Labor Statistics)表示,由于不断增长的计算机软件需求,到2024年,软件开发人员需求将增长17%,远超其他所有职位增长平均水平。

出处:凤凰科技

最新最准确各大搜索引擎蜘蛛名称(转)

1、百度蜘蛛:Baiduspider
网上的资料百度蜘蛛名称有BaiduSpider、baiduspider等,都洗洗睡吧,那是旧黄历了。 百度蜘蛛最新名称为Baiduspider。日志中还发现了Baiduspider-image这个百度旗下蜘蛛,查了下资料(其实直接看名字就可以 了……),是抓取图片的蜘蛛。
常见百度旗下同类型蜘蛛还有下面这些:Baiduspider-mobile(抓取wap)、Baiduspider-image(抓取图片)、Baiduspider-video(抓取视频)、Baiduspider-news(抓取新闻)。
注:以上百度蜘蛛目前常见的是Baiduspider和Baiduspider-image两种。
2、谷歌蜘蛛:Googlebot
这个争议较少,但也有说是GoogleBot的。谷歌蜘蛛最新名称为“compatible; Googlebot/2.1;”。还发现了Googlebot-Mobile,看名字是抓取wap内容的。
3、360蜘蛛:360Spider,它是一个很“勤奋抓爬”的蜘蛛。
4、SOSO蜘蛛:Sosospider,也可为它颁一个“勤奋抓爬”奖的蜘蛛。
5、雅虎蜘蛛:“Yahoo! Slurp China”或者Yahoo!
名称中带“Slurp”和空格,名称有空格robots里名称可以使用“Slurp”或者“Yahoo”单词描述,不知道有效无效。
6、有道蜘蛛:YoudaoBot,YodaoBot(两个名字都有,中文拼音少了个U字母读音差别很大嘎,这都会少?)
7、搜狗蜘蛛:Sogou News Spider
搜狗蜘蛛还包括如下这些:Sogou web spider、Sogou inst spider、Sogou spider2、Sogou blog、Sogou News Spider、Sogou Orion spider,
(参考一些网站的robots文件,搜狗蜘蛛名称可以用Sogou概括,无法验证不知道有没有效)
看看最权威的百度的robots.txt ,http://www.baidu.com/robots.txt 就为Sogou搜狗蜘蛛费了不少字节,占了一大块领地。
“Sogou web spider;Sogou inst spider;Sogou spider2;Sogou blog;Sogou News Spider;Sogou Orion spider”目前6个,名称都带空格。
线上常见”Sogou web spider/4.0″ ;”Sogou News Spider/4.0″ ;”Sogou inst spider/4.0″ 可以为它颁个“占名为王”奖。
8、MSN蜘蛛:msnbot,msnbot-media(只见到msnbot-media在狂爬……)
9、必应蜘蛛:bingbot
线上(compatible; bingbot/2.0;)
10、一搜蜘蛛:YisouSpider
11、Alexa蜘蛛:ia_archiver
12、宜sou蜘蛛:EasouSpider
13、即刻蜘蛛:JikeSpider
14、一淘网蜘蛛:EtaoSpider
“Mozilla/5.0 (compatible; EtaoSpider/1.0; http://省略/EtaoSpider)”
根据上述蜘蛛中选择几个常用的允许抓取,其余的都可以通过robots屏蔽抓取。如果你暂时空间流量还足够使用,等流量紧张了就保留几个常用的屏蔽掉其它蜘蛛以节省流量。至于那些蜘蛛抓取对网站能带来有利用的价值,网站的管理者眼睛是雪亮的。
另外还发现了如 YandexBot、AhrefsBot和ezooms.bot这些蜘蛛,据说这些蜘蛛国外噶,对中文网站用处很小。那不如就节省下资源。

程序员入门必读:编程语言争霸 霸主是他

世界上的语言有千万种,但是却不只有汉语、英语、法语和俄语,还有Java、C++、Python和PHP。计算机的快速发展,使编程成为一种职业,程序员也成为近年来备受关注的一种职业。

语言争霸 谁为王?

在编程世界中,也有着不同的门派,各个门派都在强调自己是武林独尊,互不相让。今天笔者无意挑起武林争端,却要给那些想成为程序员的莘莘学子一个建议,参考备受认可的TIOBE编程语言社区最新排行榜,推荐十款备受关注的编程语言供大家选择,总有一款适合你的。

TIOBE世界编程语言排行榜(2016年3月)

1、Java

相信Java是很多非专业编程人员也听说过的语言,仅这一点看来,就足以证明Java的知名度。Java最初由SUN公司推出,并将其定位在简单、开放、高性能的语言。Java是一个纯粹面向对象的程序设计语言,与C++语言面向对象技术很像,同时Java虽然推出与1995年,属于编程语言中的“老者”,但是,Java一直在做内部的迭代,这也是Java经久不衰的重要原因。Java广泛应用在PC、数据中心、超算平台、游戏和移动等领域。

Java

2、C/C++

笔者这里将本是同根生的C语言和C++列到了一起,因为C++本就是C的增强版,但是其出现后迅速获得了大量的支持者,进而成为一种独立的语言。C++语言灵活,运算符的数据结构丰富、高效,且是一种可移植的多用途程序设计语言。他主要用于系统开发、引擎开发、嵌入式软件、高性能服务器和娱乐软件领域。C语言和C++分别位于TIOBE世界编程语言排行榜中的第二名和第三名,编程语言第一名为Java(以2016年3月为准)

C/C++

3、C#

C#是微软公司开发的面向对象的、运行于.NET Framework之上的高级程序设计语言。C#继承了C家族强大功能的同时,去除了其中复杂的特性。可能有人会说C#与Java太像了,的确,但是他同时借鉴了Delphi的特点:与com是直接集成的,同时它也是微软.NET windows网络框架的主角。更现代化的C#也曾一度挤入TIOBE世界编程语言排行榜的前三名,不过在最新一次的排行中,C#屈居第四。

C#

4、Python

Python是比Java更古老的语言,发明与1989年,是一款纯粹的自由软件。Python最大的特点莫过于其强大的库,Python丰富的第三方库资源就是它的优势,Python库能够简化程序员的编程过程,节省时间。

在2016年年初,Python火了一把。主要原因是,美国科学家成功监测出引力波,引力波研究机构LIGO在检测过程中使用了这个语言,并将其(GWPY)公布在GitHub上。根据第三方机构TIOBE的排名显示,Python与去年同期相比上升了三名,跻身前五。

Python

5、PHP

PHP也叫做超文本预处理器(Hypertext Preprocessor),其语法吸收了Java、C语言的优点,同时也自创了PHP新语法,支持几乎所有流行的数据库和操作系统。PHP属于开源脚本语言,所以是完全免费的,PHP源代码也能够看得到。PHP的便捷性让新手学习起来十分容易上手,而且程序开发快运行快,经常用于Web开发。

PHP

6、Visual Basic .NET

Visual Basic .NET在2014年开始挤入排行榜前十名,而在最新版当中,Visual Basic .NET更上升到第7名。Visual Basic .NET作为微软Visual Basic 6.0 version的继承者,一直备受压力,在发布之处甚至受到一些开发者抵制。很多开发者表示,VB.NET丢到了很多VB6中的constructs和用户界面功能,并没有很好的继承VB6的优点;但微软似乎在吧VB .NET作为一个全新的语言,目前看来也取得了不错的成绩。

Visual Basic .NET

7、JavaScript

这个看起来很像Java的编程语言JavaScript(以下简称:JS)是由Java压法公司Sun和Netscape合作完成的。主要目的是为了解决服务器端语言遗留的速度问题(如Perl),为用户提供更优的浏览效果。

同时,今年也是JS最受欢迎的库jQuery也迎来了自己十周岁生日,jQuery虽然只发布之日起就备受争议,但似乎已成为JB的“默认事实标准”。

JavaScript

8、Perl

Perl也被称为“实用报表提取语言”(Practical Extraction and Report Language),其最初设计者为为拉里·沃尔(Larry Wall),其貌不扬却拥有天才般的开发能力,拉里·沃尔曾表示:”无论你们怎么评论,我仍然爱她!”如今,Perl也从最初的发布到现在走过了近三十年。Perl最重要的特性就是内部集成了正则表达式的功能,拥有强大的第三方代码库CPAN。同时,Perl的解释程序是开放源代码的,所以使用者不用为费用问题而担心。

Perl

9、Ruby

Ruby有日本人研发,最初由于语言不通,受到很多人的诋毁,但随着Ruby的更新和非日文资料的增多,Ruby逐渐开始被接纳。Ruby也有红宝石的含义,其logo也是一颗红宝石,而其语言本身也如红宝石般优雅,十分美丽。与JAVA不同,Ruby是一种动态的,侧重于简单高效的开源的语言。Ruby的设计者认为,减少编程时不必要的琐碎时间很有必要,所以简便、人性化成为Ruby的一大特性。

Ruby

10、Swift

Swift虽然在最新的TIOBE榜单中排位14名,但是相比去年3月的24名,进步速度可谓飞快。Swift拥有Python的易用性,还有Objective-C、C++和Ruby的影子。Swift一直是苹果生态系统中的一员,直到去年WWDC大会上,苹果宣布开源自己的Swift语言;Swift语法十分简单,且高效强大,但是他同样有一个缺点就是,只能运行在苹果的系统中(OS X和iOS)。

你用的是哪个编程语言?

总结:所谓术业有专攻,不同的程序员选择了不同的语言种类,对于任何一个想要学习编程语言的人来说,应该去选择适合自己工作场景的语言。这里给读者推荐了现在最流行的十款编程语言,你可以选择最适合自己的那个进行学习。

2015 年 JavaScript 开发者调查报告

年底将至,JavaScript 开发者调查也已经结束,此次调查总共有 5000 份回复,我真的迫不及待要分享这次调查的细节,感谢所有的参与者,这是 JavaScript 社区伟大的时刻。

你写什么类型的 JavaScript?

97.4% 的受访者写 JavaScript 的 Web 浏览器,其中有 37% 写移动 Web 应用。

一些参与者回复,他们会在其他地方用 JavaScript,特别是在开发中的 CLI 和桌面应用。有少部分还会在 Pebble 和 Apple TV 上开发。这些归类到其他类别上,占总选票的 2.2%。

An screenshot of the percentages for the first question

你在哪使用 JavaScript?

不出我所料,94.9% 的投票者用 JavaScript 工作。然而,有 82.3% 的投票者也在其他项目中使用 JavaScript。其他回复包括教学,好玩或者非盈利目的使用。

An screenshot of the percentages for the second question

你写 JavaScript 多久了?

超 过 33% 的人写 JavaScript 代码超过六年了。除去那些精准回答的选票,5.2% 在一年前开始写 JavaScript,12.4% 两年前开始写 JavaScript,还有 15.1% 三年前写 JavaScript。总共有 32.7% 的人在近几年开始写 JavaScript。

An screenshot of the percentages for the third question

你使用哪种 complie-to-JavaScript 语言,如果有的话?

85% 参与者表示,他们将 ES6 编译为 ES5。同时有 15% 使用 CoffeeScript,有 15.2% 用 TypeScript,只有可怜的 1.1% 使用 Dart。

这是我想要进一步合作的问题之一,因为它有 13.8% 的“其他”回复。这个问题绝大多数的答案是 ClojureScript、elm、Flow 和 JSX。

An screenshot of the percentages for the fourth question

你喜欢哪种 JavaScript 文体选择?

JavaScript 开发者绝大多数似乎青睐分号,总共有 79.9%。相比之下,11% 的人表示他们不喜欢使用分号。说到逗号,44.9% 的人赞成放置后的表达,而 4.9% 的人喜欢用逗号第一语法。当涉及到缩进,65.5% 更喜欢空格,而 29.1% 的人更喜欢使用制表符。

An screenshot of the percentages for the fifth question

你使用 ES5 哪个功能?

有 79.2% 的人使用 Array methods,并且有 76.3% 的人使用 strict mode。30% 的人使用 Object.create,而 getter 和 setters 只有 28% 的人使用。

An screenshot of the percentages for the sixth question

你使用 ES6 哪个功能?

值得注意的是,Arrow functions 是本次调查中最常用的 ES6 特点,占了总票数的 79.6。Let and const
总共占 77.8% 的投票,Promise 功能依旧强劲,有 74.4 %的人选择了它。不出人意料的是,只有 4% 的人使用 proxies。只有 13.1% 的人用 Symbols,超过 30% 的人使用 Iterators。

https://i.imgur.com/okcvuos.png

你写测试吗?

有 21.7%  的人来不写任何测试,大多数人写一些测试,34.8% 经常写测试。

An screenshot of the percentages for the eighth question

你运行连续集成测试吗?

和 CI 一样,很多人不用 CI 服务器 —— 超过了 40%。有 60% 的人偶尔使用 CI,有 32% 的人在 CI 服务器上运行测试。

An screenshot of the percentages for the ninth question

你怎么运行测试

59% 的人喜欢运行和 PhantomJS 相似的自动化浏览器测试,51.3% 的人也喜欢在网络浏览器上人工测试。自动化服务器端测试则占了 53.3% 的得票。

An screenshot of the percentages for the tenth question

你用什么单元测试库?

大多数人要么选择 Mocha 要么选择 Jasmine 运行 JavaScript 测试,Tape 收到 9.8% 选票。

An screenshot of the percentages for the eleventh question

你用什么代码质量工具?

似乎参与者都在 ESLint 和 JSHint 之间纠结,不过 JSLint 经过了这么多年依旧坚挺,几乎有 30%。

An screenshot of the percentages for the 12th question

你怎么处理客户端的依赖?

Npm 接管客户端依赖管理体系,拥有 60% 的选票。Bower 依旧占据了 20% 的选票,而普通的 <script> 下载和插入获得13.7% 的选票。

An screenshot of the percentages for the 13th question

你首选的构建脚本解决方案是什么?

Gulp 最流行,超过 40% 的投票。接下来的是 NPM,为 27.8%, Grunt 获得了 18.5% 的选票。

An screenshot of the percentages for the 14th question

你首选的 JavaScript 加载工具时什么?

大多数参与者在 Browserify 和 Webpack 之间徘徊,而后者领先前者 7 个百分点。

An screenshot of the percentages for the 15th question

你用什么库?

jQuery 依旧强劲,占据票数 50% 以上,而 XHR 微库只有票数的 8%。

An screenshot of the percentages for the 16th question

你用什么框架?

不出人意料,React 和 Angular 处于领先地位。Backbone 也在靠前的位置,有 22.8% 的选票。

An screenshot of the percentages for the 17th question

你用 ES6 吗。。。

有 20% 的人几乎从不使用它,有 40% 的人偶尔使用,接近 30% 的人广泛使用。

An screenshot of the percentages for the 18th question

你知道 ES2016 有哪些特性吗?

粗略地说,有一半的人不知道 ES2016  有哪些新特性。

An screenshot of the percentages for the 19th question

你理解 ES6 吗?

超过 60% 的人理解基本的概念,有 10% 的人完全不理解,有 25% 的人理解 ES6。

An screenshot of the percentages for the 20th question

你会说 ES6  是一种进步吗?

近 95% 的人认为 ES6 是一种进步。

An screenshot of the percentages for the 21th question

你首选文本编辑器是什么?

超过一半的人喜欢 Sublime Text,超过 30% 喜欢 Atom 和它的开源复制版。超过 25%  WebStorm  和 vi/vim。

An screenshot of the percentages for the 22th question

你首选的开发系统是什么?

超过 60% 的人用的是 Mac,而 Linux 和 Windows 用户接近 20%。

An screenshot of the percentages for the 23th question

你如何找到可重用代码,库和工具?

受访者似乎赞成使用 Github 和搜索引擎,也有用博客、Twitter 和 npm  网站。

An screenshot of the percentages for the 24th question

你参与 JavaScript 社交事件吗?

近 60% 的人至少参加一个会议,而 74% 的人表示,他们喜欢去的聚会。

An screenshot of the percentages for the 25th question

你的 JavaScript 应用程序里支持什么浏览器?

很多样的答案,但幸运的是大多数的受访者没有使用 IE6 了

An screenshot of the percentages for the 26th question

你了解 JavaScript 的定期最新的功能吗?

当 JavaScript 有更新时,80% 受访者保持会去了解。

An screenshot of the percentages for the 27th question

你在哪里了解最新的 JavaScript 功能?

Mozilla 开发者网络在 JavaScript 领域和新闻更新上处于领先地位。JavaScript 周刊也非常流行,占了 40%。

An screenshot of the percentages for the 28th question

这些功能你听说过吗?

超过 85% 的选民听说过 ServiceWorker,我很好奇有多少人用它!

An screenshot of the percentages for the 29th question

除了 JavaScript,你还用什么语言?

有这么多的语言可供选择,我肯定会忘了一些,但结果不言自明。

An screenshot of the percentages for the 30th question

Oracle与Mysql的高级查询与难点sql

Oracle与Mysql的高级查询与难点sql
mysql查询杨凯专属频道OracleSQL
一、连接查询
1.内连接
内连接用于返回满足连接条件的所有记录。默认情况下,在执行连接查询时如果没有指定任何连接操作符,那么这些连接查询都属于内连接。
Sql代码
  1. SELECT a.dname,b.ename from dept a,emp b where a.deptno=b.deptno and a.deptno=10;
在FROM子句中指定INNER JOIN选项,也可以指定内连接。
Sql代码
1. SELECT a.dname,b.ename from dept a INNER JOIN emp b where a.deptno=b.deptno and a.deptno=10;
从Oracle9i开始,如果主表的主键列和从表的外部键列名称相同,那么可以使用NATURAL JOIN 关键字自动执行内连接操作。
Sql代码
1. SELECT dname,ename FROM dept NATURAL JOIN emp;
2.左外连接
左外连接通过指定LEFT[OUTER] JOIN选项来实现。当使用左外连接时,不仅会返回满足连接条件的所有记录,而且还会返回不满足连接条件的连接操作符左边表的其他行。
Sql代码
1. SELECT a.dname,b.ename FROM dept a LEFT JOIN emp b ON a.deptno=b.deptno AND a.deptno=10;
3.右外连接
右外连接通过指定RIGHT[OUTER] JOIN选项来实现的。当使用右外连接时,不仅会返回满足连接条件的所有行,而且还会返回不满足连接条件操作符右边表的其他行。
Sql代码
1. SELECT a.dname,b.ename FROM dept a RIGHT JOIN emp b ON a.deptno=b.deptno AND a.deptno=10;
4.完全外连接
完全外连接是指定FULL[OUTER] JOIN 选项来实现的。当使用完全外连接时,不仅会返回满足连接条件的所有行,而且还会返回不满足连接条件的所有其他行。
Sql代码
1. SELECT a.dname,b.ename FROM dept a FULL JOIN emp b ON a.deptno=b.deptno AND a.deptno=10;
相当于没连接去掉where条件
Sql代码
1. SELECT a.dname,b.ename from dept a,emp;
5.使用(+)操作符
在Oracle9i之前,当执行外连接时,都是使用连接操作符(+)来完成的。尽管可以使用操作符(+)执行外连接操作。但Oralce9i开始Oracle建议使用OUTER JOIN执行外连接。语法如下:
SELECT table1.column, table2.column FROM table1, table2 WHERE table1.column1(+) = table2.column2;
当使用(+)操作符执行外连接时,应该将该操作符放在显示较少行(完全满足连接条件行)的一端。
一句话,左外连接时,(+)要放在右边表的一端。右外连接时,(+)放在左边表的一端。
左外连接:
Sql代码
1. SELECT a.dname,b.ename FROM dept a, emp b where a.deptno=b.deptno(+) AND b.deptno(+)=10;
右外连接
Sql代码
1. SELECT a.dname,b.ename FROM dept a, emp b where a.deptno(+)=b.deptno AND a.deptno(+)=10;
二、递归查询
1.语法
Sql代码
1. Select * from …. Where [结果过滤条件语句]
2. Start with [起始条件过滤语句]
3. Connect by prior [中间记录过滤条件语句]
2.例子
Sql代码
1. Select * from company t Where t.flag=1
2. Start with t.company_id=50500000
3. Connect by prior t.company_id=t.parent_id
说明:
Sql代码
1. select [level],column,expr from table [where condition]
2. [start with] //[起点]
3. [connect by prior + 主键=外键 或 外键=主键]
a.自顶向下: 左边放主键,右边放外键。
b.自底向上: 右边放主键,左边放外键。
c.level(伪列)层次的级别,不固定值。
三、更改数据库的时间格式
1、临时更改
alter session set nls_date_format=’YYYY-MM-DD HH24:MI:SS’
2.永久更改
在注册表[HKEY_CODE_MACHINE\SOFTWARE\ORACLE]里面,加入NLS_DATE_FORMAT,值为YYYY-MM-DD HH24:MI:SS。
3、Unix下,在用户的.profile文件中增加以下内容:
NLS_DATE_FORMAT=YYYY-MM-DD HH24:MI:SS
export NLS_DATE_FORMAT
附:在SQLPLUS下,实现中-英字符集转换
Sql代码
1. alter session set nls_language=’AMERICAN’;
2. alter session set nls_language=’SIMPLIFIED CHINESE’;
四、复制表和数据
1)建表
Sql代码
1. create table test as select * from dept; –从已知表复制数据和结构
2. create table test as select * from dept where 1=2; –从已知表复制结构但不包括数据
建立视图:
Sql代码
1. CREATE OR REPLACE VIEW dept_10 AS SELECT empno,ename,job,sal,deptno FROM emp WHERE deptno=10 ORDER BY empno;
建立实体化视图:
Sql代码
1. CREATE MATERIALLIZED VIEW summary_emp AS SELECT deptno,job,avg(sal) avgsal, sum(sal) sumsal FROM emp GROUP BY cube(deptno,job);
实体化视图管理是用于汇总,预计算,复制或分发数据的对象, 在大型的数据库中使用它可以提高涉及到的SUM,COUNT,AVG,MIN,MAX等的表的查询的速度,只要在实体化视图管理上创建了统计,查询优化器 将自动的使用实体化视图管理,这特性被称为QUERY REWRITE(查询重写).与普通的视图不同的是实体化视图管理存储数据,占据数据库的物理空间的.
2)不使用列的列表插入数据:
Sql代码
1. insert into test select * from dept;
3)使用DEFAULT插入数据:如果列存在默认值,则会使用其默认值;如果列不存在默认值,则自动使用NULL.
Sql代码
1. insert into dept values(10,’市场部’,default);
4)使用子查询插入数据
将查出来的内容全部插入
Sql代码
1. insert into employee(empno,ename,sql,deptno)
2. select empno,ename,sal,deptno from emp
3. where deptno = 10;
将查出来的内容部分插入
Sql代码
1. insert into employee(empno,ename,sql,deptno)
2. select empno,’杨凯’,sal,deptno from emp
3. where deptno = 10;
当要装载大批量数据时,用直接装载方式:
Sql代码
1. insert /*+APPEND */ into employee(empno,ename,sql,deptno)
2. select empno,ename,sal,deptno from emp
3. where deptno = 10;
5)使用多表插入数据。从Oracle9i开始,使用INSERT语句可以将某张表的数据同时插入到多张表中。
使用ALL操作符,在每个条件子句上都要执行INTO子句后的子查询。
Sql代码
1. insert all when deptno=10 then into t_dept10
2. when deptno=20 then into t_dept20
3. when deptno=30 then into t_dept30
4. when job=’clerk’ then into t_clerk
5. else into t_other
6. select * from emp;
使用FIRST操作符执行多表插入,如果数据已经满足了先前条件,并且已经被插入到某表,那么该行数据在后续插入中将不会被再次使用。
Sql代码
1. insert first when deptno=10 then into t_dept10
2. when deptno=20 then into t_dept20
3. when deptno=30 then into t_dept30
4. when job=’clerk’ then into t_clerk
5. else into t_other
6. select * from emp;
五、多列子查询
多列子查询是指返回多列数据的子查询语句。当多列子查询返回单行数据时,在WHERE子句中可以使用单行比较符;当多列子查询返回多行数据时,在WHERE子句中必须使用多行比较符(IN,ANY,ALL)。
如显示与Id为10000的人员部门和岗位完全相同的所有雇员:
Sql代码
1. SELECT ename,job,sal,deptno FROM emp WHERE (deptno,job)=(SELECT deptno,job FROM emp WHERE id=10000);
当执行成对比较是时,因为要求多个列的数据必须同时匹配,所以必须要使用多列子查询实现。
如显示工资和补助与部门30雇员的工资和补助完全匹配的所有雇员:
Sql代码
1. SELECT ename,sal,comm,dptno FROM emp WHERE (sal, nvl(comm,-1)) IN (SELECT sal, nvl(comm,-1) FROM emp WHERE deptno=30);
执行非成对比较时,应该使用多个多行子查询来实现。
如显示工资匹配于部门30工资列表、补助匹配于部门30补助列表的所有雇员:
Sql代码
1. SELECT ename,sal,comm,deptno FROM emp WHERE sal IN (SELECT sal FROM emp WHERE deptno=30) AND nvl(comm,-1) IN (SELECT nvl(comm,-1) FROM emp WHERE deptno=30);
六、相关子查询与FROM子句中子查询
相关子查询是指需要引用主查询表列的子查询语句,是通过EXISTS谓词来实现的。
如显示工作在“NEW YORK”的所有雇员:
Sql代码
1. SELECT ename,job,sal,deptno FROM emp WHERE EXISTS (SELECT 1 FROM dept WHERE dept.deptno=emp.deptno AND dept.loc=’NEW YORK’);
在FROM子句中使用子查询时,该子查询会被作为视图对待。因此也被称为内嵌视图。
如显示高于部门平均工资的雇员信息:
Sql代码
1. SELECT ename,job,sal FROM emp, (SELECT deptno,avg(sal) avgsal FROM emp GROUP BY deptno) dept WHERE emp.deptno=dept.deptno AND sal>dept.avgsal;
七、合并查询
集合操作符有UNION,UNION ALL, INTERSECT和MINUS。当使用集合操作符时,必须确保不同查询的列个数和数据类型都要匹配。
有以下一些限制:
1.对于LOB,VARRAY和嵌套表列来说,集合操作符是无效的。
2.对于LONG列来说,UNION,INTERSECT,MINUS操作符是无效的。
3.如果选择列表包含了表达式,则必须为为其指定列别名。
(一)UNION
UNION操作符用于获取两个结果集的并集。当使用该操作符时,会自动去掉结果集中的重复行。并且会以第一列的结果进行排序。
Sql代码
1. SELECT ename,sal,job FROM emp WHERE sal>2500 UNION SELECT ename,sal,job FROM emp WHERE job=’MANAGER’;
(二)UNION ALL
UNION ALL操作符获取两个结果集的并集,但不会取消重复值,而且也不会以任何列进行排序。
Sql代码
1. SELECT ename,sal,job FROM emp WHERE sal>2500 UNION ALL SELECT ename,sal,job FROM emp WHERE job=’MANAGER’;
(三)INTERSECT
INTERSECT操作符用于获取两个结果集的交集。当使用该操作符时,只会显示同时存在于两个结果集中的数据,并且会以第一列进行排序。
Sql代码
1. SELECT ename,sal,job FROM emp WHERE sal>2500 INTERSECT SELECT ename,sal,job FROM emp WHERE job=’MANAGER’;
(四)MINUS
MINUS用于获取两个结果集的差集。以第一列进行排序。
Sql代码
1. SELECT ename,sal,job FROM emp WHERE sal>2500 MINUS SELECT ename,sal,job FROM emp WHERE job=’MANAGER’;
八、CASE表达式和倒叙查询
通过CASE表达式,可以避免调用过程来完成条件分支操作。
Sql代码
1. SELECT ename,sal,CASE WHEN sal>3000 THEN 3 WHEN sal>2000 THEN 2 ELSE 1 END grade FROM emp WHERE deptno=10;
默认情况下,当执行查询操作时,只能看到最近提交的数据。从Oracle9i开始,通过使用倒叙查询(Flashback Query)特征,可以查看到过去某个时间点所提交的数据。注意,如果使用倒叙查询,那么要示数据库必须彩UNDO管理方式,并且初始化参数 undo_retention限制了UNDO数据的保留时间。
Sql代码
1. SELECT ename,sal FROM emp AS OF TIMESTAMP to_timestamp(‘2009-01-01 12:12:00′,’YYYY-MM-DD HH24:MI:SS’) WHERE ename=’CLARK’;
九、使用WITH子句重用子查询
从Oracle9i开始,通过WITH子句可以给子查询指定一个名称,并且使得在一条语句中可以完成所有任务,从而避免使用临时表。
如显示部门工资总和高于雇员工资总和三分之一的部门名称及工资总和。
Sql代码
1. WITH summary AS (SELECT dname,SUM(sal) AS dept_total FROM emp,dept WHERE emp.deptno=dept.deptno GROUP BY dname)
2. SELECT dname, dept_total FROM summary WHERE dept_total>(
3. SELECT SUM(dept_total) * 1/3 FROM summary);
十、oracle对记录进行去重sql
Sql代码
1. DELETE FROM [TABLE_NAME]
2. WHERE ROWID NOT IN (
3. SELECT MIN(ROWID) FROM [TABLE_NAME]
4. GROUP BY [COL1,COL2,COL3…]
5. );
统计酒店名不重复的总数
Sql代码
1. SELECT COUNT(DISTINCT(hotel_id)) FROM t_app_travel_hotel_comment;
十一、SQL排序后的NULL位置
可以把那些NULL值假想为所有内容中值是最大的,因此,升序排序后NULL值在最后,倒序排序后NULL值在最前!
当指定”NULLS FIRST”时,无论是升序排序还是倒序排序,NULL值都会排列在最前面;当指定“NULLS LAST”时,无论是升序排序还是倒序排序,NULL值都会排列在最后面。
Sql代码
1. SELECT * FROM t ORDER BY x DESC NULLS LAST;

WordPress元老Alex King逝世 与癌症抗争两年半

wordpress alex king

WordPress初期开发者Alex King

北京时间9月29日下午消息,WordPress初期开发者Alex King昨天夜间在家中逝世。Alex King于2013年1月被诊断出癌症,与癌症抗争了两年半。

Alex King在WordPress生态系统中有着巨大的影响力,他参与了从该网站前身b2到现在的WordPress的重建,也参与构建了WordPress 第一个客户端,还建立了第一家针对WordPress的咨询机构。他为大量WordPress功能的开发奠定了基础,甚至包括如今广泛使用的“一键分享” 图标的原型。

8月24日,Alex King在博客上公布了他的遗愿,希望其他人写下对他以及他工作成就的印象,并提交给他的妻子。(李林)

高富帅们的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

unauthenticated user mysql 原因分析

最近常出现 客户端连接远程服务器失败问题

show processlist;

出现 unauthenticated user,一直到超时;

网上查了下,到处都是互相抄袭文章,类似:

解决的方案很简单,结束这个反查的过程,禁止任何解析。

打开mysql的配置文件(my.cnf),在[mysqld]下面增加一行:

skip-name-resolve

。。。

实际上我都用IP连接的,不会出现这种问题

最后网上有个说是网络慢也会影响连接,ping 测试了下果然慢

ping liyunde.com
PING liyunde.com (112.126.64.59): 56 data bytes
64 bytes from 112.126.64.59: icmp_seq=0 ttl=51 time=41.072 ms
64 bytes from 112.126.64.59: icmp_seq=1 ttl=51 time=40.965 ms
64 bytes from 112.126.64.59: icmp_seq=2 ttl=51 time=41.036 ms
64 bytes from 112.126.64.59: icmp_seq=3 ttl=51 time=42.662 ms
64 bytes from 112.126.64.59: icmp_seq=4 ttl=51 time=41.681 ms
64 bytes from 112.126.64.59: icmp_seq=5 ttl=51 time=41.701 ms
64 bytes from 112.126.64.59: icmp_seq=6 ttl=51 time=41.859 ms
64 bytes from 112.126.64.59: icmp_seq=7 ttl=51 time=43.713 ms

网络响应过慢,配置服务器不能解决这个问题,换个好点的网络,问题自然解决。

Beanstalkd 使用

一、安装

1、官网

https://kr.github.io/beanstalkd/

2、安装

yum install beanstalkd --enablerepo=epel

3、启动

/usr/bin/beanstalkd -l 0.0.0.0 -p 11300 -b /var/lib/beanstalkd/binlog -F

-b 开启binlog,断电后重启会自动恢复任务。

二、基本概念

1、Beanstalkd设计里面的核心概念:

  • job :一个需要异步处理的任务,是 Beanstalkd 中的基本单元,需要放在一个 tube 中。
  • tube :一个有名的任务队列,用来存储统一类型的 job,是 producer 和 consumer 操作的对象。
  • producer :Job 的生产者,通过 put 命令来将一个 job 放到一个 tube 中。
  • consumer :Job的消费者,通过 reserve/release/bury/delete 命令来获取 job 或改变 job 的状态。

2、job 的生命周期

Beanstalkd job life circle

当producer直接put一个job时,job就处于READY状态,等待consumer来处理,如果选择延迟put,job就先到 DELAYED状态,等待时间过后才迁移到READY状态。consumer获取了当前READY的job后,该job的状态就迁移到RESERVED, 这样其他的consumer就不能再操作该job。

当consumer完成该job后,可以选择delete, release或者bury操作;delete之后,job从系统消亡,之后不能再获取;release操作可以重新把该job状态迁移回READY(也 可以延迟该状态迁移操作),使其他的consumer可以继续获取和执行该job;有意思的是bury操作,可以把该job休眠,等到需要的时候,再将休 眠的job kick回READY状态,也可以delete BURIED状态的job。

正是有这些操作和状态,才可以基于此做出很多意思的应用,比如要实现一个循环队列,就可以将RESERVED状态的 job休眠掉,等没有READY状态的job时再将BURIED状态的job一次性kick回READY状态。

  • READY – 需要立即处理的任务,当延时 (DELAYED) 任务到期后会自动成为当前任务;
  • DELAYED – 延迟执行的任务, 当消费者处理任务后, 可以用将消息再次放回 DELAYED 队列延迟执行;
  • RESERVED – 已经被消费者获取, 正在执行的任务。Beanstalkd 负责检查任务是否在 TTR(time-to-run) 内完成;
  • BURIED – 保留的任务: 任务不会被执行,也不会消失,除非有人把它 “踢” 回队列;
  • DELETED – 消息被彻底删除。Beanstalkd 不再维持这些消息。

3、一些特性

优先级

任务 (job) 可以有 0~2^32 个优先级, 0 代表最高优先级,默认优先级为1024。

持久化

可以通过binlog将job及其状态记录到文件里面,在Beanstalkd下次启动时可以通过读取binlog来恢复之前的job及状态。

分布式容错

分布式设计和Memcached类似,beanstalkd各个server之间并不知道彼此的存在,都是通过client来实现分布式以及根据tube名称去特定server获取job。

超时控制

为了防止某个consumer长时间占用任务但不能处理的情况,Beanstalkd为reserve操作设置了timeout时间,如果该consumer不能在指定时间内完成job,job将被迁移回READY状态,供其他consumer执行。

三、Client Libraries For PHP

项目地址: https://github.com/pda/pheanstalk/

1、Producer 示例:向队列中添加job

$pheanstalk = new Pheanstalk_Pheanstalk('127.0.0.1');

$pheanstalk ->useTube('tubeName') ->put($jobData);

2、Consumer 示例:从队列中取出job

$job = $pheanstalk ->watch('tubeName') ->ignore('default') ->reserve();

echo $job->getData();

$pheanstalk->delete($job);

3、检查服务状态

$isAlive = $pheanstalk->getConnection()->isServiceListening(); //返回 true 或 false

4、获取某一 tube 的数据

try{
    $tubeStatus = $pheanstalk->statsTube('tubeName');
} catch (Exception $e){
    if($e->getMessage()=='Server reported NOT_FOUND'){     //tube 不存在
        $current_jobs_ready = 0;
    }
}

四、其他

1、PHP 版控制台

https://github.com/ptrofimov/beanstalk_console

2、Chrome 插件

https://chrome.google.com/webstore/detail/beanstalkd-dashboard/dakkekjnlffnecpmdiamebeooimjnipm

原文:segmentfault.com

查看windows系统当前哪些程序注册了哪些快捷键

Windows Hotkey Explorer – 显示当前已被占用的快捷键

如何查看windows系统当前哪些程序注册了哪些快捷键

Windows Hotkey Explorer 可以显示当前已被占用的快捷键,并定位到相关程序。@Appinn

2012120331

最近 Eclips  Ctrl+D老是提示出错,找不到目标,但总是找不到是被什么程序占用的。

放狗搜了下,找到个 Windows Hotkey Explorer,这玩意灰常强大,瞬间就找到了幕后黑手新浪微博

用 Windows Hotkey Explorer 找到快捷键后,就可以针对性收拾了,如果不配合,打入小黑屋。

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年,核高基项目资金用尽出现了资金链断裂问题。这跟中科院软件是无关的,并称中科红旗目前的问题是经营造成的。

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

 本文来源:太平洋电脑网

走进支撑过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

“我和小伙伴都吓坏了”——余额宝昨天没收益?!

截止12日上午9:29分 余额宝暂无收益

  荆楚网消息(记者李柯 见习记者潘倩 )余额宝显示暂无收益!12日一早,一条重磅消息在“宝粉”中传开。难道余额宝出现风险了?不少“宝粉”很是担心。

“今天早上打开手机,发现余额宝上显示暂无收益,我以为是网速不给力,结果连了WIFI还是没收益,打了一圈电话,才知道大家都没收益。”武昌区东湖路的吴小姐告诉记者,“我和我的小伙伴都吓坏了!”

记者同样发现,今早,手机版余额宝没有像往常一样,显示前一天的收益,而是显示“暂无收益”。

上午9点,记者开始拨打余额宝电话,一段新加入的电话录音提示余额宝用户收益将于下午三点到账,如未到账将延时到账,请大家耐心等待。记者继续拨打电话,一直都无法转接到人工客服坐席,均提示:“话务高峰繁忙,您将等待十分钟,系统已自动为您转接在线客服,请登录支付宝网站。”

“最近两天工作忙都没仔细看,今天一看暂无收益,就查了一下昨天的,显示我最近一次收益到账是2月10日,觉得很恐慌。”吴小姐表示,自己的余额宝是把自己所有的收入还有家里的存款都放进去了,一旦出问题,辛苦钱都打了水漂了。

手机版余额宝里也发布公告,收益已经陆续发放,预计最晚到账时间未15时,请关注。

早上9点9分,余额宝官方微博发布消息称:“由于系统升级,收益稍后发放。粉儿们别急,一分也不会少。”微博一发布网友留言近千条,网友纷纷表示对未到帐的担忧和疑惑。

据了解。余额宝自去年6月上线以来,首次出现收益暂时无法显示的状况。直至今日上午9时,余额宝官网也并未就升级提前发布公告,引起了许多用户的不安和猜测。

“还是不能把钱都放余额宝里。”对于这次收益未到账,余额宝遭到网友吐槽,小徐说,“我一直都跟周围人说余额宝很安全的,有全额赔付,经过这次我可能没那么信任余额宝了,关键时刻电话都打不进去。”

截止上午10点21分,余额宝11日收益陆续到账。网友家家表示:刚刚收到了,下次记得事先通知,比起收益,本金才是用户更关心的,如果因为系统问题或政策问题,产生任何非常规的现象,都会引起用户信心的动荡。也有网友表示,只是虚惊一场,还是会支持余额宝。

iOS 7 图标设计的七条黄金法则

你是怎样设计iOS7图标的?如果还没开始上手?不要紧,抓紧练习前,先看看 Craig Grannell 从设计大神那里总结的一些经验。

iOS7的图标设计,评论不一,肯定有优点,也有缺点,正如Bjango设计总监 Marc Edwards 说的那样:“不管iOS7好还是坏,大部分应用的图标都根据iOS7的视觉风格进行了调整,我个人怀疑iOS 8的视觉转变可能会更大,但无论如何,iOS7还会存在很久。”

从iOS6到iOS7,苹果的转变未免太激进了,这给很多设计师设置了障碍:原来在iOS6上的设计经验一点都用不上。

那么到底要怎样设计iOS7图标呢?我们一道来听听大师的看法,一道探索吧。

01.使用辨识度高的隐喻

(1)Edwards 首先注意到的一点便是图标通常尺寸都很小,因此图标设计的关键就在于:简单的勾勒出应用的整体概念

“一般的做法是使用一种或两种辨识度较高、能代表概念的物体。然后再用优秀的色彩和流畅的形状来塑造美感”

(2)而设计师 Jon Hicks认为除此之外,图标的隐喻性也要强(比如说拍照应用),图标应该是一种能够有所代表的符号,具有一种标识性(不可否认,Safari的品牌塑造就很成功,大部分人一眼都能认出来),Apple的游戏中心以及设置图标的隐喻性就很差。

(3)Soft Façade的创意总监 Dmitry Tsozik认为设计师不要自作聪明:“随随便便放上个白背景,再填几个彩色圆环,这能叫图标吗?”

这种图标不具备功能性,通过图标无法了解应用的功能、概念。

多研究研究色彩和隐喻,图标的作用是引导用户进入应用的窗口,最好让用户一眼皆知应用的功能,不要让用户猜。

1

照相机图标非常显眼,但是过于厚重,美感不佳,不过它的隐喻非常强烈,一眼皆知这款应用的用处。而游戏中心….隐喻糟糕透了。

02. 鲜活用色

Iconfactory 联合创始人 Gedeon Maheux认为即便你对iOS7的色彩体系不感冒,你也要研究研究iOS7的图标设计风格,毕竟苹果是设计风向标:“在设计中尝试打造鲜明的对照感。iOS7因明亮的边界、清晰的线条、大胆的色彩而著称”

他认为明亮的色彩能带来一种活力感和趣味性,柔和、细腻的色彩却无法做到这一点。

2

iWork应用色彩非常鲜活,辨识度极高

03. 使用栅格线

Maheux建议在开始iOS7图标设计时,使用当下流行的iOS7栅格线:“能让你分块的设计,并且能够构建界面中图标的整体感。采用栅格线方式进行设计的图标越多,在界面中就能更好的彼此匹配,界面中图标的整体感越强”

当然,他也认为,不应该太限制自我:“如果你觉得打破栅格线,你的设计会更出彩,那不妨试试”

3

苹果的栅格线能让你进行“各个击破”的设计,但是必要情况下可以打破栅格线的限制。

04. 避免信息过载

iOS7高度依赖字体。纤细的字体让按钮区域充满了大量的留白。

但是Edwards认为图标尽量不要和纤细的字体结合:“图标应该是一种符号化的元素,本身就是一种视觉语言,不应该和文字语言联系到一起。即便结合,文本也不宜过多。”

4

比如说设置中的VPN选项,微图标和文本结合让人有一种信息过载的感觉

05.适度添加深度感

iOS7的视觉风格可以看作是一种扁平化设计,Jony Ive特别强调了iOS7“层次”的概念,而不是一种单一的扁平。Maheux认为,若想要与众不同,必须设计的与众不同:“加入一点投影、加入一点渐变 也无妨,多做做实验,没准一种新的流行由此诞生,iOS7上的设计充满了无限可能,不一定要死板的扁平。”

5

Iconfactory的Scope

Mirror图标便具有深度感,效果比纯扁平设计好多了。

06.一致的视觉风格

(1)可以看看苹果应用商店套件的图标,很明显,他们都是一个系列的图标。

设计成套图标和设计一款图标,要考虑的东西不尽相同。设计成套图标还要考虑一致性。

设计师要刻意培养自己的这种整体感,即便你的工作是设计一款图标,你也可以这么想:“要是这款应用有了姊妹应用,那么图标该要怎么设计?”通过这种假象来锻炼自己的设计思维。

(2)不过Hicks还提醒,一致性不意味着拘泥于一种形式:“线条粗细不必完全相同、颜色也不必完全一致,但是整体风格一定要和谐、匹配”

他强调“白色符号搭配色彩渐变”这种方法最简单。(或者在白色背景上使用多彩、透明的图标)“整体风格统一——单个图标根据隐喻的不同来灵活设计”

(3)Edwards认为:“通过一致性设计,能够增加同一系列应用、图标的联系感”

6

打造一致性的方法有很多。

07. 追求完美

不管iOS7的视觉风格怎样,优秀图标的标准还是没有改变:优雅、简约、细节到位。

Tsozik推荐多读一点现代设计、建筑、字体类的书籍,不断追求完美。

原文出处: creativebloq   译文出处: uisdc

黑洞理论创始人霍金发文称黑洞并不存在

 

黑洞概念图

    黑洞不存在?开玩笑的吧。不过,这话既然出自黑洞理论创始人之一史蒂芬•霍金之口的时候,就得认真听了。据《自然》1月24日报道,霍金发表论文,质疑黑洞的存在。

如果霍金的理论正确,黑洞核心的奇点根本就不存在,甚至不排除“一切事物原则上能逃离黑洞”这种极端局面的可能性。霍金说:“在经典理论中,黑洞不会放过任何东西;但量子理论允许能量和信息逃离黑洞。”他同时表示,科学家需要结合重力和其他自然力构建新的理论才能明确解释整个过程。

霍金认为,受到黑洞引力的影响,能量和物质先是靠近——但不会到达——黑洞中心,最终还会被释放出去。不过,它们的信息在黑洞中不会毁灭,但是被完全打乱,逃离之后面目全非,几乎无法还原。

霍金1月22日就在网上发表题为《黑洞的信息保存和天气预报》的论文,写道:“从光也无法从中逃脱的角度来看,没有视界(event horizon)就意味着没有黑洞。”实际上,霍金2013年8月曾在学术会议上谈到过类似想法,以此为基础撰写论文。

“火墙”之谜

霍金此举意在解答黑洞的“火墙”之谜。

此前研究人员猜测过,假如一位倒霉的宇航员不幸落入黑洞将是什么情景。长久以来,物理学家以相对论为基础,默认宇航员会毫不知情地落入黑洞,在黑洞核心奇点处灰飞烟灭。后来又有科学家根据量子理论提出新的见解,认为黑洞的视界是一块类似“火墙”的高能区域,会把掉进去的宇航员直接烧焦。

霍金理论的核心内容是,量子在黑洞周围造成剧烈的时空波动,所以像“火墙”一样的边界根本不可能存在。

号外!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

免费大餐结束 央行拟对“超级网银”收费

超级网银

深受网银用户欢迎的实时跨行转账、跨行账户查询、资金归集等功能依赖于“超级网银”系统。而国内多家银行的手机银行转账都是免费进行,也归功于这一系统不收费。但免费策略引起的业务激增不利于维护正常的支付服务市场秩序,造成系统面临较大的业务处理压力,并多次导致业务处理异常,出现大面积延时。

“超级网银”的免费大餐或许很快就将结束了。记者昨天获悉,央行已给各银行下发了《支付结算司网上支付跨行清算系统业务收费方案(征求意见稿)》,制定了初步收费方案。据悉,央行新一代支付系统诞生三年多来,广受欢迎,业务繁忙,不胜重负,因此央行正在考虑对参与的银行收费。但相关知情人士透露,意见稿并没有明确具体收费方案。

“超级网银” 日处理业务超223万笔

网上支付跨行清算系统于2010年8月底建成运行,主要处理客户通过在线方式发起的跨行支付(金额在5万元以下)和账户信息查询业务。上线初期,为鼓励参与者充分利用这一系统办理业务,央行对系统参与者实行免收费策略。虽然央行这一系统并不直接服务社会公众,但因为它把各家银行的网银联通起来,又被人们俗称为“超级网银”。

目前,深受网银用户欢迎的实时跨行转账、跨行账户查询、资金归集等功能依赖于这一系统。而国内多家银行的手机银行转账都是免费进行,也归功于这一系统不收费。来自央行的数据显示,经过三年多的运行, 目前,共有130家商业银行法人接入,基本覆盖全国已开办网上业务的商业银行。2013年8月,系统日均处理业务223.37万笔、304.79亿元,同比增长176.27%、184.08%。

央行称收费 是为了更合理利用

有业内人士向北青报记者透露,因为这一系统好用又免费,很多银行甚至将大金额业务拆分成多笔小金额业务通过“超级网银”处理以规避业务收费。就此,昨天,央行有关人士称,“为引导参与者合理利用这一系统办理业务,有必要向参与者收费。”

他介绍,免费策略引起的业务激增不利于维护正常的支付服务市场秩序,造成系统面临较大的业务处理压力,并多次导致业务处理异常,出现大面积延时。同时,由于发起每笔业务都需要对方银行的系统配合处理方可完成,系统开销较大,部分银行办理业务没有积极性,甚至人为设置障碍,影响了客户正常业务办理。

征求意见稿 未明确具体收费办法

知情人士透露,央行此前已多次通过座谈会方式征求商业银行意见。根据征求意见稿,拟于2014年1月1日起向参与者收取费用;并拟规定央行开始收费后2个月内,目前免收费的商业银行不得调整向客户的收费标准。 北青报记者注意到,央行这次的意见稿并没有具体明确的收费方案。

对此,昨天,有商业银行专业人士告诉记者,超级网银到底是只向参与的银行按业务量的规模收取一个总费用,还是制定出每笔交易的价格,都没有最后的定论。这意味着央行最终收费之后,银行也不一定都会转嫁给消费者。有些一向采取低收费策略的股份制商业银行很可能自己承担全部费用,继续对客户免费。但也肯定会有银行出于成本考虑将费用转嫁给普通客户。如果各银行对超级网银收费标准不一,也会在市场上形成新的竞争局面。

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

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

Win下MYSQL主从数据库同步设置实现数据同步更新

系统的需要实时备份,但是之前考虑的webservice备份数据的方法,对程序运行的效率有较大影响。查阅资料后发现,可以设定主从服务器来达到数据备份的目的。数据备份的任务全部交给mysql服务器完成,对团购系统的程序运行影响较少,并且可以达到实时备份的效果

系统的需要实时备份,但是之前考虑的webservice备份数据的方法,对程序运行的效率有较大影响。查阅资料后发现,可以设定主从服务器来达到数据备份的目的。数据备份的任务全部交给mysql服务器完成,对团购系统的程序运行影响较少,并且可以达到实时备份的效果。下面是mysql主从服务器设定的一些步骤(测试环境:主服务器是win2003,mysql版本 5.1.51;从服务器是win7, mysql版本是 5.1.51)。

1、 在主服务器上新增一个用于备份的用户,全局权限设定为RELOAD, SUPER, REPLICATION SLAVE。将要备份的数据库的全部权限分配给改用户,并且该用户可以远程登录主服务器。

2、 在主服务器的my.ini中的[mysqld]下面添加:

server-id=1 #主服务器id

log-bin=D:mysqllogmysql.log #备份

binlog-do-db=tg #备份数据库

3、 重启主服务器。

4、 设定从服务器,在从服务器的my.ini中的[mysqld]下面添加:

server-id=2 #必须与主服务器的id不一致

master-host=***.***.***.*** #主服务器ip

log-bin=D:mysqllogmysql.log

master-user=slave #主服务器上新增的用户名

master-password=123 #密码

master-port=3306 #主服务器端口

master-connect-retry=60 #同步时间间隔为60秒

5、 重启从服务器mysql。在主服务器mysql上运行SHOW MASTER STATUS 记录下File、Position字段值。启动从服务器mysql,运行一下命令:

change master to master_host=***.***.***.*** ;

change master to master_user= ‘slave’;

change master to master_password=123;

change master to master_log_file=mysql.000001 # 刚刚记录的File值

change master to master_log_pos=38392;#刚刚记录的position值,

然后运行 start slave;show slave status如果成功的话,可以返回一条与主服务器有关的数据,

这是回到主服务器上运行 show processlist 就可以查看到从服务器的连接状态。到此主从服务器的设定完成

C/C++/Perl/汇编/Java效率比较

这篇文章真的不错,转载于此,盖因这里支持直接Copy网页,省去了排版的麻烦,^_^

本文适合初学编程的程序员阅读,它对比了几种编程语言在解决同一问题的时候的运效率。并通过具体的例子进行了量化分析。主要目的是帮助初学者认识各种编程语言的特质,并且能够理性的选择适合的编程语言来进行工作。

事发

我无聊的翻着散落案头的书籍,这些都是五花八门的关于编程和系统管理的著作。干了这么多年程序员,大大小小的软件和项目也做了无数。每每有新入行的朋友问我这个所谓的”老前辈”:哪种语言最好之类的问题,我总会作出一副知识渊博的样子,复述着从更老的老前辈那里听来的或者某些名著上看来的”知识”。就好比我们从学习编程的第一天起,就被计算机老师告知,COBOL语言是擅长处理商务事务、FOTRAN语言是用于科学计算一样。类似的知识还有”汇编语言比C语言快得多”以及”JAVA是一种效率很低的语言环境”在一代又一代的程序员中口耳相传,几乎成为了毋庸置疑的真理。

我产生了一个想法,能不能对于同一个应用用几种编程语言分别实现,来比较一下看看到底哪种语言效率最高?

老实说我自己都觉得这个想法很无聊,想想谁会反复用不同的语言写同一个程序呢?下雨天打孩子,闲着也是闲着。再说,对于某种语言的弱点和优势有一个量化的分析,对于我们今后在做项目的时候面临工具选择也少许有一点指导意义。另外,觉得好玩才是我做这件事情的真正原因。

选题

选择一个什么样的程序问题进行这样的测试呢?这是一个很关键的问题,也最容易影响测试的公平性。另外的,对于每种语言,各自的优势都是不同的。程序员的偏爱也是各不相同的。在网上和现实中,对于什么语言更好一些的争论从来就没有停止过。甚至的,各门各派的程序员所构成的各种阵营,把某种语言奉若神明的也不在少数。不信,你在CSDN的JAVA论坛说一句”JAVA执行效率太低了云云”试试?立刻会被铺天盖地的板砖掀翻在地。类似的,还有管理员对于操作系统的偏好和争论:在Linux论坛你要是表扬Windows,其惨烈程度简直是难以言状。因此,从这个意义上来说,程序员们对于编程语言的偏好,类似于战士之喜爱枪械,赛手之喜爱赛车,已经上升为一种精神层面的东西了。蔡学镛先生说得好:有人逢微软必反,有人逢微软必捧。这是一种纯粹的精神上的爱,但它可能会影响正常的、科学的思考。

可以预料的,我这篇文章一定会遭到各路豪杰的迎头痛击。

好了,让我们言归正转吧。首先的,我们的选题中要使用的各种程序语言的最常用的要素。什么是最常用的要素呢?当然了,大家都有的就是赋值、数组操作、循环、判断等。另外,对IO的操作也是编程语言重要的内容。其次的,操作时间一定要长,否则,对于解释性的语言来说是极不公平的:解释器还没调入内存呢,人家编译派的已经运行完了。最后,就是程序不能太复杂。除了我没有那么大的毅力用各种语言完成一个复杂算法的决心外,程序过于复杂,算法在测试中起的作用就越来越大,影响运行效率的原因也就增加了。算法过于复杂,开发工具的扩展部分用得也就越多。于是就成了语言附加库之间的竞赛了,这是我不愿意看到的。

考虑上述因素,我设计了一个简单的选题:从指定文本文件中搜索指定字符串,计算个数。并且打印出搜索到的个数作为结果输出。作为程序员的你粗粗过一下脑子,马上会想到这个算法里面包含了条件判断、循环、数组操作等基本的程序语言因素。这满足了上面第一个条件。另外的,为了满足第二个条件,我准备了一个多达2G的文本文件,总共有文本1500万行多。这保怔了足够的运行时间(但应该不会太长),而决不会一眨眼就执行完了。最后的,我们都知道,在文本串里面搜索子串的算法是数据结构课本中的一个典型的例子(考试也经常被考到的),也满足算法简单的要求。同时,为了让每个程序的环境都一样,我得每测试一次就重新启动一次机器,避免CACHE的影响。

准备

比赛嘛,就需要公平。首先的,硬件平台要统一。我找了一台看起来还不错的机器(服务器):两颗PIII800,1G内存。操作系统嘛,原来的机器上有新装的Windows2000Server版本。几乎没装什么别的应用。我偷懒了一下,没有重新安装OS,就这样用吧。

第一个选手:PERL

如果别人交给我这个题目,我会马上决定用PERL语言来做这件事。这个题目是完全的文本处理问题,还有比用PERL来做更合适的吗?因为PERL是专门为了文本处理而编制的语言。事实上也是这样,我用了2分钟,写了几行代码,就轻松实现了这个问题。这也说明了,选择适用的编程语言工具,比选择喜爱的工具更重要。

#!/usr/bin/perl
$filename=”d:/access.log_”;
$count = 0;
open(FILE , “<$filename”);
while(<FILE>)
{
@match_list = ($_ =~ /HIT/g);
$count=$count+@match_list;
}
close(FILE);
print “Count = $count “;
exit

PERL是一位语言学家Larry Wall发明的,事实上,早期这种语言是专门用于在UNIX平台处理文字文件的(Perl=Practical Extraction Report Language:实用报表析取语言)。后来人们发现有大量文本构成的HTML页面用PERL来做CGI程序生成动态页面再合适不过了。因为互联网的兴起,PERL跟着发大了起来。这种语言的语法和C语言基本类似,因此比较好掌握,并且的,其关于”正则表达式”处理的强大功能目前基本上无人能够望其项背。事实上,类似于”过滤出含有TOM或者ABC的、并且后者的第一个和第三个字母大写,前者最少出现2次,后者出现5次、而且中间间隔8个或4个字母或空格的文本行”。我猜你正在反复的揣摩这句话,事实上,这就是所谓正则表达式,这样的问题,在PERL只需要一行语句就可以完成。在C语言中需要多少语句才能实现呢。

我略略解释一下上面的程序,让没有用过PERL语言的程序员也有个感性认识。

第一行是在UNIX中才用得到,因为PERL是一种基于解释的脚本语言。

第四行是打开文件

下面的循环是一行一行的读文件的内容。循环中间的第一句话是把凡是文本行中含有的HIT全部放到一个数组中;循环中中的第二句话是统计一下刚才的数组中有几个HIT,然后累加起来。循环完成了,我们的任务也就完成了。怎么样,很简单吧?”/HIT/g”就是最简单的正则表达式。br />
现在的PERL语言早已经不是原来的脚本语言形象了,现代PERL几乎具备了其特语言的所有特性,并且的在模块的功能帮助下,可以实现很大的应用。而且还增加了一些面向对象的特点。尽管大多数人仍然在用它处理大量的文本,但也有使用PERL完成大型应用的,尤其是在WEB方面。值得一提的是PERL也是一个跨平台语言。

我的这个程序在测试平台上,使用PERL5.8解释器,用了8分18秒08完成了1500万行文本的扫描,并得出了正确的结果。

第二个选手:纯C

也许年龄大了,但是我真的很喜欢C语言。而且我最喜欢的就是使用指针和强制类型转换来任意操作数据。我甚至会在程序里通过指针手工拼凑一个长整性的数据。说句可能引起争议的话,我觉得JAVA语言抛弃可爱的指针的做法基本上就是逃避。因为掌握不好就不用,到头来就是牺牲了效率。

本文这个题目,用C语言来实现应该还是比较不错的选择。下面的代码就是在VC下面实现的纯C代码的字符串搜索程序(为了避免图形界面的干扰,一律做成控制台程序)。编译的时候使用速度优先编译选项。

#include <stdio.h>
#include <string.h>void main()
{
int len=2048;
char filename[20];//文件名
char buff[10000];//文件缓冲区
char hit[5];
FILE *fd;
int i,j,flag=0,over=0;
int max,readed;
int count=0;//最后的结果
strcpy(&filename[0] , “d:/access.log_”);
strcpy(&hit[0] , “HIT”);
buff[0]=0x0;
buff[1]=0x0;
//打开文件:
if((fd = fopen(&filename[0] , “rb”))==NULL)
{
printf(“Error : Can not open file %s “,&filename[0]);
}
//读取文件内容
while(over != 1)
{
readed = fread(&buff[2] , 1 , len , fd);
if(readed < len)
{
over=1;
max=readed;
}
else
{
max=len;
}
for(i=0;i<max;i++)
{
for(j=0;j<3;j++)
{
if(hit[j] != buff[i+j])
{
flag=0;//一旦有一个不相同就退出并且标志为0
break;
}
else
{
flag=1;//一个相同为1,如果连续都相同最后结果定是1
}
}
if(flag==1)
{
count++;
i+=j-1;
}
else
{
if(j==0)
{
i+=(j);
}
else
{
i+=(j-1);
}
}
}
//把最后两个字符转移到前面两个字节以防止切断搜索串.
buff[0]=buff[max];
buff[1]=buff[max+1];
}
fclose(fd);
printf(“count:%d “,count);
}

程序很好懂,用的也是教科书上面的标准字符串搜索算法,但是比前面的PERL程序长多了吧?那是因为人家PERL已经帮你完成了大部分工作。但是看到上面这段程序的运行结果你可能会高兴起来,它最快一次只用了2分10秒52,最慢也只用了2分20秒59就完成了1500万行文本的搜索任务。平均2分15秒多。为什么每次时间不一样呢?我不清楚具体原因,但学过操作系统的朋友会明白,只有在单道单任务的系统中,代码才能有执行上的可再现性。

有经验的朋友可能会说,你的缓冲区只用了2048字节,加大它速度还会增加呢。是的,而且我相信还有高手能作出更快的程序来,但这不重要,重要的是我们要考察的是不同语言完成同一件工作的效率。而且你能够明白,在程序中,改进什么能够提高效率,这就足够了。因为C语言程序中,这些都是自由可控的。

第三个选手:C++

C++和前面的C是亲戚。我简单的把前面的C代码移植过来,然后把文件输入部分改成了流类对象。至于算法部分嘛。跟前面的C是一模一样的。最后在编译的时候,除了使用速度最佳编译选项外,当然还用了C++的编译参数,因此执行文件的长度比前面的C要长一些,这说明我加的流类代码比标准C库要复杂。是的,C++应该说是目前流行的计算机编程语言中复杂度排名靠前的。其复杂的类和继承关系,以及各种初始化的次序和构造函数执行顺序等都需要考虑。还有多态以及动态联编技术等。C++也是我非常喜欢的语言,提供了面向对象的代码重用特性和足够的安全型,但是在效率上的确比纯C略逊一筹。你知道吗,大部分的操作系统核心几乎都是用纯C写成的,尽管很复杂,但很少有使用面向对象技术的。为什么,不是面向对象技术不好,也不是操作系统核心不够复杂(那什么复杂?),主要的考虑就是效率问题。

#include <stdio.h>
#include <string.h>
#include <fstream.h>void main()
{
int len=2048;
char filename[20];//文件名
char buff[10000];//文件缓冲区
char hit[5];
int i,j,flag=0;
int max;
int count=0;//最后的结果
strcpy(&filename[0] , “d:/access.log_”);
strcpy(&hit[0] , “HIT”);
buff[0]=0x0;
buff[1]=0x0;
//用输入流打开文件:
ifstream input(&filename[0]);
//读取文件内容
while(input)
{
input.getline(&buff[2] , len);
max = strlen(&buff[2]);
for(i=0;i<max;i++)
{
for(j=0;j<3;j++)
{
if(hit[j] != buff[i+j])
{
flag=0;//一旦有一个不相同就退出并且标志为0
break;
}
else
{
flag=1;//一个相同为1,如果连续都相同最后结果定是1
}
}
if(flag==1)
{
count++;
i+=j-1;
}
else
{
if(j==0)
{
i+=(j);
}
else
{
i+=(j-1);
}
}
}

}
printf(“count:%d “,count);
}

这段C++程序在测试平台上用了最快4分25秒95 到最慢5分40秒68的时间完成1500万行的文本检索,并在2G的文件中检索出10951968个”HIT”字符串。这结果是正确的。

第四个选手:汇编

本以为汇编程序能够达到前所未有的高速,把前面的选手远远抛在身后而笑傲江湖。这一想法支撑我完成了艰涩的代码。可事实上测试的结果缺让我大失所望,完全用机器指令书写的程序,去掉缓冲区才几百字节,算法和前面的C程序一模一样,扫描1500万行文本竟然最快也要2分14秒56!这甚至还比不过C语言的最快纪录。而平均下来,汇编程序的速度竟然和前面的C程序在伯仲之间。恐怕这样的结果也出乎大部分人的意外。因为我们从入行的那一天起,就被告知汇编是你所能够掌握的最快的语言!尽管代码坚涩难懂,但性能的代价是值得的。而从这里的测试看,你觉得向下面这样的代码,实现和C语言一样的速度和功能值得吗?

;堆栈段
STSG SEGMENT STACK ‘S’
DW 64 DUP(?)
STSG ENDS;数据段
DATA SEGMENT
rlength EQU 2048
fname DB ‘access.log_’,0
hit DB ‘HIT$’
fd DW ? ;文件句柄
resault DB ‘count : $’ ;结果提示
count DD 0 ;存放结果
disflag DB 0 ;显示标志
buff DB 5000 dup(0) ;缓冲区
DATA ENDS

;代码段
CODE SEGMENT
MAIN PROC FAR
ASSUME CS:CODE,DS:DATA,SS:STSG,ES:NOTHING
MOV AX,DATA
MOV DS,AX
;我的代码开始:
mov ah,3dh ;打开文件
lea dx,fname
mov al,00h ;文件打开方式
int 21h ;开始操作
;这里就不作错误处理了,偷懒喽!
;CF=0表示正确,CF=1表示错误,AX是文件句柄或者是错误代码
mov fd,ax ;保存文件句柄

READ: mov ah,3fh ;读文件
mov bx,fd ;文件句柄
mov cx,rlength ;要读length字节

lea dx,buff ;给出读缓冲区指针
add dx,2 ;缓冲区指针向后错两个(目的是解决边界问题:有一个HIT正好横跨rlength界限)
int 21h ;开始读
;AX里面是实际读出的字节数
;读完了以后,扫描缓冲区
push ax ;保存AX字节数
cmp ax,0
jz ALLEND ;文件读完了就退出

sub dx,2 ;指针向前错2个,
mov si,dx
add dx,2 ;把指针回到原来的位置
add dx,ax ;计算结尾
LOD3: cmp si,dx ;到头了就重新读一次文件
jz OVR
lods buff
lea bx,HIT
cmp al,[bx]
jnz LOD3 ;读第一个字节不相等就重新读一个

cmp si,dx
jz OVR
lods buff
cmp al,[bx+1]
jnz LOD3 ;如果第一个字节相等,就读第2个字节,不行等就从第一个字节再重比较。

cmp si,dx ;如果第二个字节也相等的话,就比较第三个字节。
jz OVR
lods buff
cmp al,[bx+2]
jnz LOD3 ;第三个字节不相等再从头开始
;有一个HIT匹配
push bx
lea bx,count
add WORD ptr [bx],1 ;计数器增加一个
adc WORD ptr [bx+2],0 ;进位
pop bx
jmp LOD3

OVR: mov ah,[si-1]
mov BYTE ptr buff+1 , ah
mov ah,[si-2]
mov BYTE ptr buff , ah

pop ax ;恢复这次总共读出的字节数
cmp ax,rlength ;看看是不是最后一次(剩余的零头)
jz READ
;如果是最后一次读文件,

ALLEND: mov ah,3eh ;关闭文件
mov bx,fd ;文句柄
int 21h ;关闭文件

mov ah,9 ;显示结果字符串
lea dx,resault
int 21h

;转换2进制结果到10进制ACSII形式
mov bx, WORD ptr count
call TERN

mov ax,4c00h ;返回DOS
int 21h
;结束代码,最大的数字已经排到了最前面
MAIN ENDP

TERN PROC ;这个子程序是转换并显示2进制数字的
mov cx,10000
call DEC_DIV
mov cx,1000
call DEC_DIV
mov cx,100
call DEC_DIV
mov cx,10
call DEC_DIV
mov cx,1
call DEC_DIV
ret
TERN ENDP
DEC_DIV PROC
mov ax,bx
mov dx,0
div cx
mov bx,dx
mov dl,al
add dl,30H
mov ah,disflag ;read flag
cmp ah,0
jnz DISP ;已经显示过有效数字了
cmp dl,30H
jz NODISP
mov disflag,1 ;作用是第一个有效数字出现前不显示0
DISP: mov ah,2
int 21H
NODISP: ret
DEC_DIV ENDP
CODE ENDS
END MAIN

上面这段代码我猜你也懒得仔细阅读。其实他不能”显示结果”。因为最后这段负责把最终结果转换成可显示ASCII码的程序实际上只能转换二进制十六位的数据,而最终的结果高达1000万挂零,显示会出错。由于这最终结果的显示已经和程序的运行没有大关系了,因此,我也就懒得去写一个32位的ASCII转换程序了。就这样吧。

第五个选手:JAVA

JAVA是一个不能不参加比赛的选手。有如此多的人热爱他,他们中的一半人是因为JAVA的面向对象特性以及良好的跨平台特性。而另一半人纯粹就是因为JAVA不姓”微(软)”,这就是意识形态在程序员头脑中对某种语言的注释。单纯从语言元素上来说,我还是比较喜欢JAVA的。因为他的语法干净、简洁。环境也好。虽然用虚拟机系统(JVM)的做法来实现跨平台特性并非什么了不得的创意(像不像30年前的BASIC解释器?别跟我说什么中间代码?几乎所有的解释器都是把语言因素翻译成中间代码的,JVM不过是分成2步来实现罢了,但从运行机制上应该是差不多的。),但JVM仍然将JAVA的跨平台特性做到了前所未有的地步。而且JVM是一个很干净的系统,让人用起来赏心悦目。说到这里我忍不住想提一下J2EE企业应用框架了。不知道有多少人能够看懂SUN出的J2EE的”理论著作”?满纸充斥着各种生造的概念,洋溢着溢美之词。JAVA的企业应用框架实在是比较复杂的东西,虽然赶不上后来的.NET框架,但足以让大多数初学者望而却步。一句话,东西太多了。事实上JAVA的企业级应用并没有想象的成功,iPlanet就随着电子商务概念的全面垮台而渐渐淡出。现在换了个名叫“SUNONE”――SUN公司员工原话。

我们回到JAVA的语言元素上来说,实际上JAVA可以被理解为被纯化的C++。JAVA去除了C++为了兼容C而增加的一些”非面向对象特质”,用其他的一些变通办法实现C++直接实现的功能,比如:多继承。在实现机制上,JAVA的程序会先编译成.CLASS文件,然后这种跨平台的中间代码就可以”一次编译,到处运行”了。当然必须运行在有JVM虚拟机的环境中,连图形什么的都可以照搬。换句话说,你用JAVA程序在PC屏幕上画一个圆,在JAVA-PDA上它还是圆的。

我在本次测试中,写了下面的代码,用JAVA做了同样的测试,测试中实际上用到了:JAVA的文件流类,运行了循环、条件判断、数组操作等基本的语言因素。环境是J2SE1.3.1-06。JAVA程序做1500万行的文本扫描用了8分21秒18。应该说是几种语言中最慢的,基本上和纯解释的PERL是在同一水准。J2EE的JVM环境还是经过优化的所谓HOTSPOT。

import java.io.*;
public class langtest
{
public static void main(String[] args)
{
String filename = “d:/access.log_”;
try
{
count(filename);
}
catch (IOException e)
{
System.err.println(e.getMessage());
};
}public static void count(String filename) throws IOException
{
long count=0;
long len;
String strline = “”;
char hit[] = {‘H’,’I’,’T’};//要搜索的字符串
char buff[] = new char[2100];

Reader in = new FileReader(filename);//用FileReader类构造产生一个Reader类对象
LineNumberReader line = null;//生成一个空指针
try
{
line = new LineNumberReader(in);//建立LineNumberReader类对象
while((strline = line.readLine()) != null)
{
//到这里已经读出一行了,用下面的代码分析这行有几个HIT
int i=0,j=0,max=0,flag=0;
buff = strline.toCharArray();//转换成字符数组
max = strline.length();

for(i=0;i<max;i++)
{
for(j=0;j<3;j++)
{
if(hit[j] != buff[i+j])
{
flag=0;//一旦有一个不相同就退出并且标志为0
break;
}
else
{
flag=1;//一个相同为1,如果连续都相同最后结果定是1
}
}
if(flag==1)
{
count++;
i+=j-1;
}
else

{
if(j==0)
{
i+=(j);
}
else
{
i+=(j-1);
}
}
}
}
System.out.println(“Count : “+count);
}
catch (IOException e)
{
System.err.println(e.getMessage());
}
finally
{
try
{
if(in != null) in.close();
}
catch (IOException e)
{
}
}
}
}

候捷先生翻译的宏篇巨著《JAVA编程思想》一书中第67页说到:”使用最原始的JAVA解释器,JAVA大概比C慢上20到50倍”之说法我在阅读的时候就心存疑虑,心想要是这样,JAVA完全没有存或与世间的必要了。在亲自动手试验过后,我觉得说JAVA在J2EE环境下,比C慢上2-3倍还是比较可靠的说法的。况且,目前越来越多的硬件JVM的诞生,也给JAVA越来越多的机会。不过我担心的正是这点,JVM的多厂家多样化很可能会造成某些兼容性方面的问题。例如我见过一篇文章就是讨论某种JAVA程序在IBM-JVM可用而在SUN-JVM上不可用之事例。但愿的,JAVA能健康成长。

总结

事实上,本文有两个基本的意义传递给初做程序员的读者:

一、 抛开你的意识形态好恶,选择最合适的编程语言来完成你的工作。每种流行的语言都有自己存在的意义。

二、 在编程中,有想法就自己做一做,你会得出自己的结论。

至此,你应该明白,前面的所有测试结果其实并不重要,重要的是你了解了这些语言的特质,也许在今后的编程生涯中会因此增加一点点”经验”呢。

后记

本来笔者还打算继续测试一下另外的一种颇为流行的解释语言Python和新贵C#以及在Linux平台完成这些测试,但终究还是被懒惰瓦解了斗志。好在的,Python和Perl比较相似,而C#和JAVA有异曲同工之妙。也可以略略做一点参考。

事实上,本文测试中有一个大大的不公平之处,相信仔细的读者已经发现了:其中C和ASM都是使用缓冲区直读的办法,不管三七二十一就进行判断(最后用指针检查缓冲区边界)。而C++等其他的语言虽然用了非常方便的流按行读出,但是多做了很多事情:每一个字符都要判断其是不是回车换行符,而按行读近来,每次缓冲的也要少很多。因此其他几种语言就大大的吃亏了。不过这并不影响结论性的东西,因为测试本身就说明越方便就效率越低。事情总是要有人做,不是吗?

2003-05-17■作者:阿谭■出处: yesky

只能说明文件的I/O操作是最费时的,其实应该说java和C的效率是有数量级的区别的,C代码中80%以上的时间都花费在I/O上了,C++除了I/O之外在流的处理上也发费了交多的时间,这是本次测试中C++比C慢就慢在这儿,很显然java的运行期消耗已经和I/O处于相当的数量级,因此实际消耗时间是C的3到4倍.perl的运行期原理不是很清楚.

http://blog.csdn.net/worldpharos/article/details/3931483

电商导购过冬:蘑菇街酝酿出售 美丽说转型时尚

电商导购过冬:蘑菇街酝酿出售 美丽说转型时尚

腾讯科技讯 王可心 10月24日消息

一度红火的第三方导购网站正因为阿里巴巴过山车式的态度而呈现出急剧下滑的轨迹。

2011年,以美丽说、蘑菇街为代表的导购网站蜂拥而起。彼时,两者还能频繁出现在阿里巴巴的官方活动中。然而,2012年5月,阿里巴巴集团董事局主席马云在内部讲话时表示不扶持上游导购网站继续做大。此后,蘑菇街们就开始了“被打压”下的生存。据导购行业知情人士透露,阿里巴巴一直在收紧对导购网站开放的API接口。

据悉,前段时间阿里巴巴对蘑菇街等大型导购网站的佣金接口进行了限制,这将直接影响导购网站的营收来源。

不过,阿里巴巴并非要将导购网站“置于死地”。今年9月16日,淘宝网宣布,其导购类分享平台优站将正式向第三方导购网站开放。同时,阿里巴巴设立了5亿美元的基金,用于投资并扶持第三方导购网站等外部合作伙伴。

这笔基金将首先应用在收编蘑菇街。据丁香园技术负责人冯大辉透露,阿里巴巴正在与蘑菇街洽谈收购。腾讯科技从多处投资人士了解到,双方已达成初步意向,但尚未达成最终交易。阿里巴巴集团和蘑菇街双方也未对此事给予否认。

从打压到收购,有业内人士将其称为“打一巴掌,给个甜枣”。“从业务上看,阿里巴巴确实需要蘑菇街带来优质的流量,但又要对其掌握控制权;从估值来看,先打压,可降低蘑菇街的估值。”

如果难以独立发展,阿里巴巴也是蘑菇街较好的归宿。蘑菇街是“阿里系”创业团队,四位联合创始人中的三位(陈琪、岳旭强、李研珠)皆来自阿里巴巴,收购后在文化融合上不存在什么障碍。

打压

自从去年5月份,马云在内部发表“不扶持上游导购网站继续做大,阿里巴巴的流量入口应该是草原而不是森林;不扶持返利类网站”观点后,阿里巴巴对淘宝客政策进行了调整。

今年以来,有导购网站对腾讯科技透露,阿里巴巴对导购网站的政策进一步收紧,限制导购网站对API接口的调用次数,导致无法抓取更多的数据,无法扩大规模。

“就像一个水龙头,以前水龙头里的水是无限使用的,现在受到诸多限制。”上述人士称。

据某大型导购网站相关人士透露,淘宝开放的接口一直在缩减。目前,除了一些最基础的接口,技术类接口如商品评价接口、过往价格接口等都做了很多限制。

最近,淘宝对相关佣金接口进行了限制。有淘宝卖家对腾讯科技透露,之前的淘宝宝贝上架,名称中有“蘑菇街”的内容无法发布成功。

“限制佣金接口,意味着营收来源被切断,这对以佣金为主要收入来源的导购网站是致命的。”上述导购行业人士称。

但阿里巴巴方面表示并未封杀美丽说、蘑菇街,而是邀请其加入优站。今年9月份,淘宝网推出优站,优站是淘宝官方导购平台,由多家第三方导购、达人等提供导购内容,共同汇聚成一个社会化的导购平台。

优站与第三方导购的不同之处在于,优站可把握用户访问这些导购网站的数据。例如,以前,用户访问某导购网站,数据从导购网站,再到淘宝。导购网站加入优站之后,数据则从淘宝,到导购网站,再到淘宝完成交易。

财猫浏览器、好贷网创始人李明顺(微博)认为,淘宝对这些数据拥有控制权,实际上成为了导入“入口的入口”,“这对第三方导购是‘改良式的围剿’。”

据悉,淘宝网与蘑菇街此前曾就优站合作进行洽谈,但蘑菇街并没有入驻。“如果加入优站,需要按照优站的体系来做。而蘑菇街的用户习惯已经形成,如果从优站访问,会有一些不适应。”

收购

对于最近爆出的阿里巴巴欲收购蘑菇街的消息,李明顺认为,“这是一个意料之外,情理之中的事。”

先打压后收购的逻辑是什么?

李明顺认为,阿里巴巴对导购市场的态度是“打一棒子,给点糖吃”,这对于阿里巴巴来说,更有谈判权、控制权,也是压低估值的做法。

传闻称,阿里巴巴收购蘑菇街出资2亿美元。由于最终交易尚未完成,这一数字尚无从考证。不过可以比较的是,这一数字或不及蘑菇街第三轮融资时的估值。

此前,蘑菇街共进行过三轮融资:2011年,蘑菇街进行过两轮共计2000万美元的融资,A轮投资方中有贝塔斯曼,B轮投资方为启明创投。2012年10月,完成C轮融资,IDG领投。有消息称,蘑菇街第三轮融资时估值超过2亿美元。蘑菇街公关负责人徐达也未否认低价收购一事。

另一方面,从业务上来看,阿里巴巴收购蘑菇街可弥补社区产品短板。阿里巴巴对于外部优质流量有两种态度:一是渴求,二是担心不可控。因此,既要获得优质流量,又想可控,最好的办法是入股或收购。”互联网评论人士洪波(微博)说。

从打压到收购,洪波认为,最大的原因在于“压不住”。“对于阿里巴巴集团商户来说,内部流量买不起,有寻求外部廉价流量的需求。阿里巴巴很难真正封的住。”

除了入股新浪微博、收购蘑菇街等外部优质流量,阿里巴巴集团内部也一直在探索社会化产品,如推出类Pinterest产品哇哦、购物分享平台爱逛街、图片互动社区顽兔、兴趣图谱网站圈子等,但流量不及美丽说、蘑菇街等第三方导购站。

洪波认为,阿里巴巴自己难做成社会化产品的原因在于,缺少用户日常的关系,更多的是买卖关系。因此,阿里巴巴自己的社会化平台往往变成营销专家活跃的地方,而不是用户活跃的地方。

整体来看,阿里巴巴仍在加大对社区产品的资源投入力度,淘宝优站、爱淘宝皆在新版淘宝网首页呈现。

突围

经历了辉煌期和低迷期,蘑菇街的发展是导购行业的一个缩影。

导购业态的天花板明显。华平投资顾问黄若在其《我看电商》一书中指出,导购是一个主要依赖于淘宝环境生存的业态,其经营土壤,全仰仗阿里巴巴。“人家只要阀门一关,这个业态就集体下岗。”

在这个大环境下,导购网站正寻求突围。要么转型,要么多平台发展。

据了解,蘑菇街竞争对手美丽说已经淡化导购色彩,定位时尚媒体,做时尚杂志与互联网的结合体。一方面引导潮流,另一方面用户产生内容。除了导购收入,媒体可以带来的是影响力和广告收入。

“美丽说与蘑菇街的性质已经不同了。虽然在外部看来,美丽说还有导购的模式,但不管是内部架构还是未来策略,都在慢慢弱化导购的概念。”一位接近美丽说的人士说。

突围的另一种方式是提升其他电商平台的比例,如加大和京东、易迅、1号店、苏宁等平台的合作。

不过,在淘宝占据中国网购市场70%市场份额、导购需求主要集中在服饰护肤、母婴、家居等垂直领域的背景下,现阶段这一转变并不容易实现。

百度起诉高德地图 导航入口之争加剧

新浪科技讯 10月22日下午消息,百度公司近日把高德地图告上法庭,称高德在无依据的情况下指责百度“卖假药”、“把用户导入沟里”,对公司声誉造成不利影响。高德地图方面对此表示不评论。

今年8月底,百度导航与高德导航先后宣布免费,带动导航App一夜之间进入“免费时代”,并引发了一场口水战。

随着地图入口越发重要,各家将地图视为移动互联网上最重要的入口,离线地图的导航免费已经是大势所趋。

针对百度起诉消息,高德地图官方表示不评论。(林临)

福布斯发布2013十大软件厂商排行榜

据国外媒体报道,甲骨文10月17日引述IT行业财报数据宣布自己是全球第二大软件厂商,仅次于微软,超过了IBM。IBM最近报告称,其最近4个季度的软件销售收入为257亿美元。而甲骨文在此期间的软件销售收入为278亿美元。

甲骨文在给媒体的电子邮件中称,根据IBM最近发布的季度财报,我们想利用这个机会指出,甲骨文的软件业务增长速度超过了IBM的软件业务。现在,甲骨文上升为排名第二的软件厂商。IBM的排名下降到第三位。

在截至今年6月的财年,微软的企业和消费者软件产品的销售收入为610亿美元。

福布斯杂志全球200强上市公司年度排行榜是以4项指标为基础的。这些指标是销售收入、利润、资产和市值。福布斯2013年软件和编程行业10大厂商排行榜是:

1. 微软(美国)

2. 甲骨文(美国)

3. IBM(美国)

4. SAP(德国)

5. 赛门铁克(美国)

6. VMware(美国)

7. CA科技(美国)

8. Adobe(美国)

9. Fiserv(美国)

10.Amadeus IT Group(西班牙)

警惕USB键盘记录器

最近媒体报道了一种新型的能记录账号、密码输入的“USB键盘记录器”,引发网友关注,该设备看上去和普通U盘没什么区别,将其插入电脑USB接口,然后把键盘线和它连接,该设备就能够自动记录用户在电脑上输入的信息。

USB键盘记录器特点

该设备属于硬件式的木马病毒攻击设备,最大的特点是,目前所有防病毒软件都无法检测到这种新型木马,具有极高的隐蔽性。同时,这种键盘记录器可以记录下经键盘输入的所有信息,包括QQ账号、网银、游戏账号及密码,是一种应用广泛的盗号木马设备。

USB键盘记录器产品说明

根据这个产品的介绍,我也上淘宝和阿里巴巴搜索了一下,发现的确有一个名为“USB键盘记录仪 USB keylooger”的设备出售,价格为175元。其产品说明如下:

USB键盘记录器

产品说明:

键盘记录器是一种物理硬件设备,被安装在键盘和计算机之间,电脑上的键盘插槽与电脑进行连接。硬件记录器由高速微处理器和大容量EEPROM组成,这样的硬件记录器会记录下使用电脑时输入的任何信息。可以捕捉三个月到一年或者更长时间范围内键盘的动作。无需预先设定,直接在一文本文档输入密码,即可对所需要的信息进行提取和恢复。

这种硬件按键记录器是无法被任何软件发现的。它能够在几秒钟内安装,自动开始记录所有的键盘输入,记录的按键操作内容能够被任何文本编辑器在任何电脑上检索出来,无需专用分析软件记录内容。硬件按键记录器连接到计算机和键盘之间,不易发现硬件按键记录器的存在。

USB键盘内置记录器容量最低为2M,约为2000,000字符,约相当于电脑操作人员每天工作8小时、也能使用半年的键盘输入量。

安全键盘记录器的用途:

1.安全键盘记录器是一个安全工具。电脑用户使用它监控他们自己的计算机是非常有用的。例如:想要控制办公室机密文件的高级经理主管人员,能用它检测到非授权的侵入,篡改,和非法使用他们的计算机。父母可以用它监控他们孩子的计算机活动,访问互联网,电子邮件和聊天内容,安全键盘记录器几乎完整记录下了您的孩子每一次键盘输入。

2.安全键盘记录器被用于作为调查的工具。通常的,专业的安全人员在私营和政府机构中普遍的使用它。例如:调查人员可以用它作为一个追踪设备去追踪可疑的计算机。核计员,接受人和清算人能够用它在客户计算机上建立一个不能篡改的所有电子通讯的日志。

3.安全键盘记录器可以用作一个备份工具。它可以使人心情安宁。它减少了由于系统锁死丢失工作或者电子设备故障而产生的压力水平。系统开发人员,在市场测试阶段,声称它可以95%减少他们的压力水平。专业的作家可以用它来保护意外的计算机系统损坏,非常容易的恢复他们的数据而不需要专业的计算机知识。

4.安全键盘记录器可以作为一个威慑工具。如果雇员意识到它被安装在自己计算机键盘上,很可能会减少非正当的使用计算机。雇员将知道自己操作行为会被像这样一个设备捕捉到。它很容易记录收集到使用输入的互联网和E-mail。

性能简介:

☉适用通用型USB键盘

☉即插即用,免驱动软件

☉可自动记录键盘所有按键历程,所输入的内容

☉体积很小,易安装,不易察觉

☉无声响、无灯号、计算机开关机亦不影响其记录工作

☉记录完毕取下后,可在任何一台计算机上读取记录

☉本产品经过多种防毒软件、扫毒软件测试、木马清除程序,皆无法被发现,硬件装置中也不会有任何显示信息,保证隐匿性极佳。(安装记录软件、容易被电脑检查到、并以病毒形式删掉。)

产品适用于:

☉家长关心孩子:你可以用它来了解子女们用计算机情况,

☉雇主监管员工:了解员工在工作期间使用计算机情况

☉软件工程师:软件工程师可用于应对一些突发性的系统故障

☉安全人员:侦测一些未获授权进入到计算机,以及他们非法操作的一些情况

☉系统管理员:帮助他们修复系统,恢复密码等

☉办公人员:写作的重要文档丢失时,可用来恢复资料

安装说明:

本产品的安装方法非常简单,记录器的一端连接计算机的usb端口,别一端连接键盘的usb口即可,本记录器在工作时不需要任何驱动程序,插上即可用,非常方便,本产品适用于USB接口电脑。

USB键盘记录器的预防

从上面的产品说明可以看出,USB键盘记录器如果用于公用电脑的密码窃取,危害极大且隐蔽性极高,因此,如果大家使用公共电脑,一定要留心以下几点:

第一,尽量在自己的电脑上进行涉及钱款往来的程序操作,不要在公共电脑上操作;

第二,如果确实需要输入密码,可以采用软键盘鼠标输入,降低密码被盗的风险;

第三,在公共场所使用公共电脑,一定要多观察一下,若发现主机接口有什么异样,就不要使用。

USB键盘记录器的分析

一般USB键盘记录器会在网吧出现,我觉得,通常网吧自己应该不会做这种事,因为有法律上的风险,即使网吧自己要窃取用户密码,使用木马软件更方便,成本也更低,没必要用硬件。

因此,网吧里的这个USB键盘记录器大多应该是第三方投放的木马设备,用于窃取用户的QQ、游戏、网银的密码,既然第三方能接触到键盘接口,那么我们应该也可以,这个设备应该有单片机这样的CPU设备和EEPROM,因此价格不会特别低,成本也有一百多元。那么,用户去网吧上网前,可以先看看键盘接口有没有这个设备,有的话就可以把其拿下来,然后拿去淘宝出售,一个月上网费就有了。每个人都这么做的话,投放木马的人就彻底亏本了,这样他也就不会继续在网吧投放木马设备了。

谷歌推出反网络审查软件uProxy:不支持微软IE

“uProxy”目前还在测试阶段,初期将仅支持谷歌Chrome、火狐Firefox

【TechWeb报道】10月22日消息,据国外媒体报道,谷歌日前在纽约展示了一款名为“uProxy”网络代理软件,该软件旨在帮助用户绕过网络审查,自由访问互联网。

“uProxy”项目由华盛顿大学和非功利组织Brave New Software研发,由谷歌提供资金资助。该软件的工作原理是,通过将两个用户以加密的形式连接起来,构成一个虚拟网络,最终绕开审查。

“uProxy”目前还在测试阶段,初期将仅支持谷歌Chrome、火狐Firefox,不支持微软Internet Explorer。(小峰)

http://www.chinaz.com/news/2013/1022/323139.shtml

小米手机饥饿营销被指骗局 官方否认“欺诈”

来源: 新京报

小米公司近日在其官网开放小米智能电视抢购活动,3000台小米电视瞬间便宣告售罄。然而,随后有网友称该次“小米电视抢购”存在虚假行为,或是一场骗局,连日来引发各界关注和热议。

网友称“抢购按钮”形同虚设

10月15日中午12点,首批3000台小米电视正式在小米官网上开卖,价格仅为2999元。

仅仅半个小时后,小米官方微博发布消息称,3000台电视在2分钟内全部售罄,如果想要购买的朋友只能等到一周之后的第二批购买。

让人意想不到的是,针对此次小米电视的网上抢购活动,网友“TNITF”随后通过微博表示,他发现抢购页面上的“抢购”按钮形同虚设,因为按钮并没有经过post请求,而直接生成了“售罄了”页面。

“所谓的按钮只不过是把抢购热情高涨的提示框显示出来罢了。”网友“TNITF”指出。

上述微博一经发布,立刻在网上引起轩然大波。

小米称不存在欺诈作弊

针对上述质疑和对所谓“饥饿营销”的指责,小米公司相关负责人17日向记者表示,关于所谓“抢购欺诈”问题,前述描述存在误解,由于抢购人数众多,为了减轻服务器压力,保持购买过程顺畅,小米会对抢购流量进行分流,但完全不存在“欺诈”“作弊”。

该负责人还表示,至于“饥饿营销”是个伪命题,这种说法出现的根源是因为小米的“供不应求现象”。当需求量持续大于供给量时,就会出现在抢购时,有的用户能够买到,而有的用户买不到的现象。

据该负责人介绍,小米早先也曾尝试过按预约号顺序发货方式,但当时数万台手机预约能排队排到数月之后,排名靠后的消费者也非常不满。

小米科技董事长雷军近期曾公开解释说,小米手机产能持续提升也并非易事。手机的核心元器件需要提前四个月订货,由于小米手机一直在快速增长,所以预测手机销量是件难事。

据专家介绍,所谓饥饿营销就是针对消费者急于抢先购买的心理,商家有意调低供应量,以期达到调控供求关系,制造供不应求的“假象”,维持商品较高售价和利润率,或者只是为吸引眼球,增加人气。

http://www.chinaz.com/news/2013/1021/322942.shtml

“中式烹饪影响PM2.5”改变中国厨电命运

来源: 张书乐博客

文/张书乐

“中式烹饪影响PM2.5”的论战正酣,而这一话题最大的热点其实不在于其论据是否在现实中站得住脚,而在于给中国菜厨电一场革命的机会。

063032744.png

据媒体报道称,“中式烹饪影响PM2.5”也并非一个完全的笑谈,近日中科院大气物理研究所研究院发布的调查结果也显示在北京夏季,餐饮排放PM2.5占比到15~20%,并认为加强油烟过滤系统可减少很大一部分PM2.5。

您家里起火了吗?

这等于是一个科普,即中国菜烹饪无论是否影响PM2.5,但它的油烟确实太大了。

原因却不仅仅因为“重口味”的中国菜式,还在于中国人的厨电选购习惯。早前,广东省社科院公众参与和社会发展研究中心,联合国内厨电行业品牌万家乐,通过入户调研广大消费者对家庭烹饪过程中厨电使用上的意见进而制定的—《2013年国内家用厨电使用调研报告暨中国菜厨电选择标准》(以下简称《标准》)显示,作为舶来品的厨电产品,在刚引进国内时多采用的是国外流行技术,由于中西烹饪方式的巨大差异,导致很多适合国外烹饪的产品和技术并不能很好的服务于国内用户。

这不禁让笔者想起一个留学生朋友和我说过的一段经历,当时他在德国,还不容易和几个同乡聚会,便决定做做家乡菜打打牙祭。可没想到,菜没做到一半,邻居却拿着灭火器如临大敌冲了过来。原来如此之大的油烟通过排气扇飘出去后,邻居以为起火了……

而在中国,尽管“起火”般的油烟让人见怪不怪,可按照西方标准制造的产品则显然越发保持了这种“起火”效果。

不能改变饮食 就要改变厨电

显然,必须有完全中国标准的厨电产品,并且要适合中国各地不同菜式油烟需求的“个性化”厨电。

063002934.png

而“中式烹饪影响PM2.5”则为我们进行了这样一个难能可贵的科普,也为中国厨电带来了一个难得的市场蓝海。毕竟较之改变国人的饮食习惯而言,从厨电入手以适合中国菜的“重口味”风格,不仅很经济,而且有经济。

颇有先见之明的《标准》中体现了一个极有意义的细节,消费者一直有使用最大风量、忘了开油烟机等使用习惯,更容易提高油烟pm2.5的产生以及增加对人体的伤害几率。而类似万家乐等国内厨电企业,则也开始根据这一细节,通过烟机和灶具智能联动的技术解决此问题。

而更多地细节,则也在给中国厨电许多改变市场的机会,毕竟从小被油烟熏大的中国人才是最懂得“舌尖上的中国”,也最懂得如何“善后”。这是国外厂商极难获得的本地化经验,而借助“中式烹饪影响PM2.5”的科普东风,率先从单一山寨国外流行技术和简单模仿国外厨电的瓶颈中走出来,找出适合中国菜“重口味”特征的个性化厨电的厂商,则不仅可以征服中国人的胃和厨房,击败原本占据市场优势的国外技术,更可以保护中国人的身体……

改变命运的机会稍纵即逝!只是,中国厨电们,是否真的都看清楚了这个市场大势呢?还是继续和沉默的大多数一样纠结在中式烹饪是否影响PM2.5的辩论之中呢?

http://www.chinaz.com/news/2013/1021/322880.shtml

浙报传媒35亿元收购盛大边锋浩方获审核通过

来源: 腾讯科技

腾讯科技讯(乐天)1月29日i消息,浙报传媒日前宣布定增收购边锋网络和浩方的申请获证监会审核通过,将打造新闻、影视、互动娱乐和文化产业投资三加一平台的“全媒体、全国化”之路即将开启。

据定增方案显示,公司本次拟向包括公司控股股东浙报传媒控股集团有限公司和上海祺禧投资管理合伙企业在内的不超过10名的特定投资者,非公开发行股份不超过1.8亿股,募集资金总额不超过25亿元,发行底价为13.90元/股,扣除发行费用之后募集资金净额将用于收购杭州边锋网络技术有限公司100%的股权、上海浩方在线信息技术有限公司100%的股权。

资料显示,边锋网络和浩方此前都属于盛大网络旗下,主营业务包括在线棋牌、电子竞技平台、桌面游戏及社区平台增值业务,同时拥有边锋游戏、浩方电竞、三国杀等众多知名游戏娱乐品牌。杭州边锋2011年实现营业收入4亿元,净利润达1.6亿元;上海浩方2011年实现营业收入0.59亿元,净利润达0.13亿元。有分析师认为,此次收购后预计未来利润占比将达到公司净利润的50%,成为公司利润主要增长点。

浙报传媒此次定增,也意味着浙报传媒全媒体之路正式开启。浙报传媒表示,公司意在通过收购,快速切入新媒体领域,整合其在传统媒体业务上的内容优势和收购标的在新媒体业务上的平台优势。由此,正式开启打造新闻、影视、互动娱乐和文化产业投资三加一平台的“全媒体、全国化”之路。

但此次收购34.9亿元价格甚至超过浙报传媒净资产的4倍,按杭州边锋、上海浩方2011年净利润计算,收购市盈率达到极高的21.8倍。而2011年,浙报传媒归属于上市公司股东的净利润2.18亿元,货币资金仅为5.6亿元。财务上的风险姑且不谈,还将考验浙报传媒的驾驭能力。

公司公告,盛大娱乐就标的公司杭州边锋和上海浩方2013年至2015年度的业绩作出补偿承诺:杭州边锋和上海浩方2013年至2015年度的预测净利润合计为25,443.46万元、32,127.31万元、37,933.98万元。收益法评估两家被收购公司价值为32亿元,对应2013年净利润为12.5倍。

在上述没有完成定增的情况下,公司原有业务2012/13/14年盈利预测分别为0.56/0.63/0.69元/股。参考业绩补偿承诺,假设公司能够在2013年完成收购,则对应股本摊薄后的备考业绩预测分别为0.71/0.82/0.93元。2013年预测业绩中,0.42元来自收购的新媒体业务,0.4元来自传统业务。

中信证券对浙报传媒“增持”评级,考虑到收购方案正式获得证监会通过,确定性提升,将其目标价由16元上调至18元(分别对应2013年业绩预测中新媒体业务30倍,传统媒体业务15倍)。

http://www.chinaz.com/news/2013/0129/291110.shtml

微软WP呈现大屏化 明年支持10寸消灭WinRT?

微软WP呈现大屏化 明年支持10寸消灭WinRT?

来源: 腾讯科技

腾讯科技 晨曦10月21日编译

最近,微软对Windows-Phone8操作系统推出了第三次更新包,其中开始支持更大的屏幕分辨率,开始进入五到七寸的小平板市场,有分析师指出,微软正计划让WP8支持更多尺寸的平板,甚至是十寸平板,从而扩大WP的市场地位。微软未来也将面临Windows-RT系统何去何从的问题。

上周,微软推出了WP8的第三个更新包,未来几个月内将会让用户全部更新完毕。微软WP8技术团队的一名工程师在官方博客中表示,此次的更新,为五寸和六寸WP8设备的推出,铺平了道路。

最新的第三个更新包,可以支持1080P分辨率(1920X1080),比目前支持的分辨率翻了一番。

10月22日,诺基亚将举行产品发布会,预计将会推出六寸手机Lumia1520,该手机将配置1080P屏幕,这也是史上分辨率最高的WP8设备。微软的更新包推出时间,安排在诺基亚发布会一周前。

目前在全球智能手机市场,所谓的“平板手机”(即大屏机)占到了两成的市场,大屏机尤其在中国、韩国等东亚国家受到欢迎。一些分析师指出,通过对系统进行更新,微软有望获得更多的大屏机系统份额,不过,如果微软更进一步,这当中的市场潜力仍然很大。

美国科技行业分析师高德(JackGold)表示,微软的移动系统战略,存在一个软肋,那就是Windows8系统,不太适合小尺寸、价格更便宜的平板。而WP8系统对于资源的要求更低,更适合小尺寸平板,从而提升针对安卓系统的竞争力。

市场调研公司“创新战略”的分析师巴加林(Ben-Bajarin)表示,如果微软想真心实意在小平板(小于八寸)市场获得机会,他们必须启用WP8系统。

这位分析师认为,和Windows8以及Windows-RT系统开发者相比,WP8的应用软件开发商,在开发小尺寸触摸屏设备的应用软件方面,经验更加丰富。如果微软将WP8延伸到小平板市场,这也会激发开发者的兴趣,因为同样的软件,改动之后将可以获得更多的装机用户。

市场研究公司IDC的分析师雷斯(RyanReith)上周表示,随着微软对WP8系统作出改动,这将会打开一个市场窗口,未来将会看到更多的WP大屏机上市。不过,雷斯的观点和上述分析师有所不同,他认为,微软并不会让WP8系统去占领平板市场,微软针对平板的操作系统选项,仍然是Windows8和Windows-RT。

微软针对ARM平板推出的Windows-RT操作系统,科技行业普遍认为已经彻底失败,几乎所有的电脑厂商,已经停止生产Windows-RT平板,微软的Surface-RT产品,已经成为货架上的孤家寡人。有许多分析师认为,微软应该彻底放弃已经失败的Windows-RT系统,在ARM芯片的移动设备上,统一使用功能升级的WP8系统(或许更改名称)。

最近,多名关注微软公司的科技业专家引述消息人士称,明年推出的WP8升级版,将会支持最大十寸的平板,这意味着WP支持的设备,将全面覆盖智能手机和平板。

实际上,在移动操作系统上,微软自身陷入了碎片化的怪圈,推出多个版本,但是每个版本的市场表现,均是惨不忍睹。根据IDC的统计数据,二季度在全球厂商交付的智能手机中,使用WP的仅仅占到3.7%,和去年同期相比,仅仅增长了0.6个百分点。

在黑莓公司“崩盘”之后,微软WP成为全球第三大移动生态系统,但是在市场份额上,WP甚至不如安卓和iOS的一个零头。有业内人士指出,微软应该结束自身碎片化,在智能手机和平板上,学习苹果iOS的做法,统一使用一种操作系统。这不仅有助于提高市场份额,而且会激励WP生态的软件开发者。

IDC的雷斯表示,随着WP支持更大的分辨率,这一系统的份额还会继续增长,但还远远谈不上追赶安卓和iOS。

http://www.chinaz.com/news/2013/1021/323040.shtml

“查开房”网址2000万数据曝光 网站被关

“查开房 “网址2000万数据曝光 网站被关

来源: 站长之家

站长之家(Chinaz.com)10月21日报道 根据实名认证的新浪微博账户@股社区的爆料,一个名为“查开房”的网址暴走网络,迅速引起轩然大波。经记者实测,只需输入姓名或身份证号,便可查询到顾客的真实信息。随后,又有网友称响应大数据时代的号角,曝光了2000万开房数据,并对其进行了细致的统计分析。

625282b9gw1e9slylnfy7j20c80c8mzn

该数据的原始格式是sql server的backup文件,经转换成了一个csv版本,被分享到了网盘上,有心的网友将其下载下来,据传,这个数据文件达1.7G,涉及约2000万人。

625282b9gw1e9slz6pvzbj20c81yrdlu

网友还对开房记录进行了分类统计,分别列出星座、年龄、性别、姓氏、地域的分析图表,虽说仅供娱乐无可靠性,却也一定程度反映当下社会的开房现状,而更令人担忧的是关于个人隐私安全的问题。

早前,国内安全漏洞监测平台乌云发布报告称,称多家酒店开房记录被无线上网认证管理系统供应商——浙江慧达驿站网络有限公司存储,并因系统有漏洞而存在泄露隐患。慧达驿站公司确认曾存在漏洞并已修复,并称未造成开房记录等住客个人信息泄露。不久后,便有“查开房”网址在网间相传,个人信息泄露已成不可遏制之势。不得不说,技术漏洞和人为的疏忽的确存在,俗话说“没有不透风的墙”,在互联网络上更是如此。目前网络110已将该网站屏蔽。

另一方面,网友为何如此热衷“查开房”?因为在潜规则、婚外情、贪腐等一系列丑恶社会现象的影响下,到旅馆开房这个中性词似乎也无端沾染了不堪色彩,“查开房”网站俨然披上某种正义的光晕,以至于网友跟帖说:普通百姓怕什么信息泄露? 不做亏心事,别人知道自己住哪里有什么关系呢?正是因为此类偏颇乃至错误的观点,导致“查开房”网站肆无忌惮、为所欲为。

个人信息毕竟是个隐私问题,在这个数字化的时代,人们很容易就暴露自己的个人信息,抛开所谓“反腐倡廉”不说,个人隐私荡然无存也不是个喜闻乐见的事。在我国公民隐私受法律保护,即便为了“抓现行”也不能无视法律屏障,公然泄露他人隐私,民众除了保护自己的隐私外也应尊重他人的隐私,否则,今日你揭他人之短难保他日自己也赫然纸上。

http://www.chinaz.com/news/2013/1021/323039.shtml

微信游戏成功的秘密:经典的产品推进布局

截至九月底,微信“游戏中心”一共推出了5款游戏:经典飞机大战、天天连萌、天天爱消除、节奏大师、天天跑酷。

自从微信推出“经典飞机大战”开始,手游界便遭腾讯横扫。微信的“游戏中心”使得腾讯由一家移动端游戏偏弱的公司,转瞬之间成为中国移动端游戏玩家数量最多(约1亿),收入最高的“手游公司”。经典飞机大战成为“全民游戏”,而最新推出的游戏“天天跑酷”仅用时一天半便在Appstore收入榜上正式超越《我叫MT》成为第一,日入500万元。

微信游戏的成功,并不是简单一句“用户多,再加入点社交”所能概括的,微信游戏的崛起蕴藏着腾讯深邃的产品观,值得探究。微信“游戏中心”推出的五款游戏,本质上可以分为三类,体现出了腾讯细腻的产品逻辑,以及稳健的产品推进大局观。

1.掀起全民游戏:经典飞机大战

其实,从微信推出游戏的名称中,便可以窥探出微信游戏战略推进的蛛丝马迹。经典飞机大战,主打的是“经典”怀旧,飞机大战这个游戏类型脱胎于最早红白机射击游戏《小蜜蜂》,被很多游戏继承过,只要对电子产品有所接触,从60后直到00后,对这个模式游戏都不陌生,这为“打飞机”成为全民游戏打下了基础。

而微信也刻意营造着“打飞机”的话题性,从微信5.0进入页面推荐“打飞机”,到让人遐想的名称,再到先推出iOS版刻意的饥渴营销,使得打飞机”话题性一时无双,人人欲打之而后快。

“话题性”+“经典怀旧”+“社交排名”,在三重力场的挤压之下,几乎所有微信用户都对打飞机这款游戏进行了尝试。不管“打飞机”这款游戏后续会如何,在战略意义上“打飞机”是极其成功的,它本身是作为微信游戏“攻城”之作:让所有人知道微信游戏,让大部分人尝试微信游戏。毫无疑问,“打飞机”出色的完成了任务。

2.碎片化标准手游:天天连萌、天天爱消除、天天跑酷

“天天系列”都是标准的手游类型游戏:易上手、符合碎片时间、轻操作。微信游戏在用“打飞机”制造出足够大的动静之后,需要用这些典型手游去留住“标准的”手游玩家。

手机游戏目前的主要功能还是供人们消遣,打发碎片时间用,远未达到端游或街机高粘性和深度游戏文化水准。微信游戏现在祭出三款“天天系列”手游,是标准的“守势”。“天天连萌”、“天天爱消除”游戏时长被限定在1分钟之内,以及易上手的操作方式,都是普通用手游来打发碎片时间用户的最好选择。一批玩家将被沉淀进入“天天系列”中,天天去玩一玩微信中的手游打发时间。

3.窥探手游的边界之重:节奏大师

“节奏大师”是微信游戏对现代手游形态天花板的探究之作,一探“手游不能承受之重”。“节奏大师”作为一款MUG(音乐游戏),其闯关模式、后期难度,游戏时长(平均2分半钟)、以及操作方式都过于“沉重”,不符合目前手游“用来打发时间”的游戏形态。与“节奏大师”相类似的MUG游戏如“太鼓达人”、“跳舞机”都是街机游戏中的经典,虽然不可能是最受欢迎的游戏,却能黏住一部分核心玩家,形成良好的“玩家圈子”和“游戏文化”,这也是目前手游所欠缺,所需要突破的瓶颈。

节奏大师的“重”,是腾讯期望“突破”手游轻形态的试水之作,但是目前看来,情况并不乐观。例如,有的玩家吐槽微信游戏每周清空排行榜,根本就不利于节奏大师这样的“重型游戏”核心玩家刷存在感,自己“闯了100关的记录就这么没了”——改变手游轻形态并没有那么容易,因为“轻”是手游现在的基本基因,手游设计者潜意识就这么认为,很难突破。

最后

微信游戏在产品布局上的逻辑,是根据现有手游产业产品形态进行三步推进:攻城(打飞机)→守势(天天系列)→试图突围(节奏大师)。这三步棋走得十分稳健并且具备紧密的逻辑性,攻守兼备的同时也让腾讯很好的探究到了手游的边界。目前看来,手游迈向“重型游戏”还有难以突破的藩篱。

关于作者

如果你也关注创业创新领域,那么请关注韦物主义(微信号:weiwuzy)

http://www.chinaz.com/start/2013/0925/319308.shtml

10000人阅读这个页面后,页面将消失

刚刚在Hacker News上瞄到一个有趣的标题: This page will disappear in 10,000 views,意即一万人阅读这个页面后,该页面将永久地消失。犹豫了一下,虽然担心我会成为第一万个阅读者,也就是让这个页面万劫不复的人,但我还是抱着试一试的心理点进去了。打开后的页面中出现了两行字以及一张图,分别是:

这条链接将会在下1位访客点击后失效;

如果你不想这条链接消失,那么在twitter上分享这条链接,它允许的点击量将增加1000。

乍看之下,这个idea有点像网页版的Snapchat,阅后即焚。但它恰恰抓住了人们不希望阅后即焚的心理,加了一条挽救规则——如果分享到社交网络上,那么它的存活几率将高一些。

我们已经看过很多分享到微信朋友圈、新浪微博而火起来的例子,比如百度魔图、疯狂猜图,不知道类似BlinkLink这种游戏性的设计会不会成为下一种病毒性营销的方式?

网站运营思维:网络营销不等于网站建设

来源: tengsj.com

相信所有营销性企业建设网站的起初原因都是站在营销为目的上的,或者说在宣传企业品牌形象的同时,提升企业的营销效果。没有哪个公司会愿意去花费数千元而不期待产生效果的,哪怕是我们拖朋友还是自己设计的网站,本意都为了扩大市场。

笔者在和客户交涉的几年中,有太多的中小型企业虽然所建网站中的flash动画,网站界面都非常给力,非常时尚,非常的漂亮,也花了不少的钱在搜索引擎上做推广和关键词广告,但是网络营销的效果却非常一般。笔者想要表达的观点其实是网站建设不等于是有了网站,有了流量就等于网络营销,虽然两者或者三者之间关联密切,但最终我们要看到的不只是互联网的展示和过客。

网站建设其实只是一个单纯的基础,我们不能将基础建设做为已经是运营的标准,我们需要有几个准备:

1、网络营销定位策略

毫无疑问我们首先要定位我们的网站主营销是什么,有哪些竞争对手,自己和他们的最大区别是什么,只有先了解这些基础的问题后,您才能从自己的产品中和竞争对手的分离出来,不然您无法取代先入者。

2、营销型网站建设策略

通过企业定位设计制作一个和竞争对手有区别的网站,让用户更方便的通过互联网了解企业(有网站但是定位不清楚,不能区分是用作品牌宣传还是产品销售);很多公司受制于预算有限,做网站的时候只看价格而忽视必要的质量,比如网站设计粗制滥造,服务器也非常不稳定。最终的结果是网站推广的费用花费很多,但是并没有产生积极向上的网络营销效果回报。

3、网络营销推广策略

我们不要将推广视为是花钱的游戏,网络营销不代表是关键词竞价广告,其实很多通过花钱买流量和关键词推广的企业经常没有网络营销效果,因为自身条件就欠缺,比如网站没有特殊性(可比性)、没有互动工具、关键词不明确、文章抄袭和复制别人的、外链很少、内链不够等各种原因;还有很多企业将企业网站全部外包,做甩手掌柜;虽然企业有专职团队但绩效不佳。这些都会导致网络营销推广不佳。

省钱的关键词:虽然单个长尾关键词流量低于核心词,但是转化率远高于核心词,采用多个长尾词投放的方式提高整体业务咨询量;

唯一的经验推广标准:重视百度、谷歌即可,适当的重视搜狗、搜搜和360搜索。

4、网络营销信任策略

很多中小型企业网站的外观和对互联网的意识经常由老总的眼光决定的,但是很多情况下界面的好坏不是直接影响网站信任度的原因,而是网站信息不详细,客户无法从您的网站上获取自己需要的内容,找到了内容却无法找到联系方式和咨询工具。当然藤设计不否认一个有时尚风格的网站不会得到用户的青睐,只是相对一个漂亮时尚的网站如果没有合理的引导用户购买产品的系统,那么再漂亮的网站也只是个展示品而已,客户欣赏的只是界面而不是为了和你下订单。

注:除了注重形象外,要有营销功能,促进产品销售,还要注重用户体验,导航清晰,结构合理,同时搜索引擎是否更快更多的收录了网站。

5、网络营销成交策略

商场如战场,但网络营销是一个没有硝烟的战场,借助互联网营销低成本,低风险,高效率,战胜传统行业龙头,成为第一名是相对容易的,相反竞争对手想超越你也不是一个难事。一个成功的将军经常是让自己的机会适应环境,在互联网如此发达的情况下,我们不能不掌握这个机会,我们要的是订单而不是展示,就算再美的网站,没有订单只是徒劳。

注:在互联网如此发达的时代,不做网络营销的企业只能等死,在2013这个时代,在互联网上找不到你,这是一个非常失败的事情。找到您,并且能和你促进合作,这是我们一直要努力的事情。

6、网络营销运营管理策略

网络营销运营是围绕企业核心业务建设的,突出网站的营销功能与互动功能,是以营销和销售为出发的,以提升高客户转化率为目标的网站建设。一个良好的管理策略才能将企业推的更高。