智能技术的前端任务前端是什么意思

什么是人工智能技术_百度知道
什么是人工智能技术
什么是人工智能技术
  AI(Artificial Intelligence,人工智能) 。“人工智能”一词最初是在1956 年Dartmouth学会上提出的。从那以后,研究者们发展了众多理论和原理,人工智能的概念也随之扩展。人工智能是一门极富挑战性的科学,从事这项工作的人必须懂得计算机知识,心理学和哲学。人工智能是包括十分广泛的科学,它由不同的领域组成,如机器学习,计算机视觉等等,总的说来,人工智能研究的一个主要目标是使机器能够胜任一些通常需要人类智能才能完成的复杂工作。但不同的时代、不同的人对这种“复杂工作”的理解是不同的。例如繁重的科学和工程计算本来是要人脑来承担的, 现在计算机不但能完成这种计算, 而且能够比人脑做得更快、更准确, 因之当代人已不再把这种计算看作是“需要人类智能才能完成的复杂任务”, 可见复杂工作的定义是随着时代的发展和技术的进步而变化的, 人工智能这门科学的具体目标也自然随着时代的变化而发展。它一方面不断获得新的进展, 一方面又转向更有意义、更加困难的目标。目前能够用来研究人工智能的主要物质手段以及能够实现人工智能技术的机器就是计算机, 人工智能的发展历史是和计算机科学与技术的发展史联系在一起的。除了计算机科学以外, 人工智能还涉及信息论、控制论、自动化、仿生学、生物学、心理学、数理逻辑、语言学、医学和哲学等多门学科。  人工智能学科研究的主要内容包括:知识表示、自动推理和搜索方法、机器学习和知识获取、知识处理系统、自然语言理解、计算机视觉、智能机器人、自动程序设计等方面。  知识表示是人工智能的基本问题之一,推理和搜索都与表示方法密切相关。常用的知识表示方法有:逻辑表示法、产生式表示法、语义网络表示法和框架表示法等。  常识,自然为人们所关注,已提出多种方法,如非单调推理、定性推理就是从不同角度来表达常识和处理常识的。  问题求解中的自动推理是知识的使用过程,由于有多种知识表示方法,相应地有多种推理方法。推理过程一般可分为演绎推理和非演绎推理。谓词逻辑是演绎推理的基础。结构化表示下的继承性能推理是非演绎性的。由于知识处理的需要,近几年来提出了多种非演泽的推理方法,如连接机制推理、类比推理、基于示例的推理、反绎推理和受限推理等。  搜索是人工智能的一种问题求解方法,搜索策略决定着问题求解的一个推理步骤中知识被使用的优先关系。可分为无信息导引的盲目搜索和利用经验知识导引的启发式搜索。启发式知识常由启发式函数来表示,启发式知识利用得越充分,求解问题的搜索空间就越小。典型的启发式搜索方法有A*、AO*算法等。近几年搜索方法研究开始注意那些具有百万节点的超大规模的搜索问题。  机器学习是人工智能的另一重要课题。机器学习是指在一定的知识表示意义下获取新知识的过程,按照学习机制的不同,主要有归纳学习、分析学习、连接机制学习和遗传学习等。  知识处理系统主要由知识库和推理机组成。知识库存储系统所需要的知识,当知识量较大而又有多种表示方法时,知识的合理组织与管理是重要的。推理机在问题求解时,规定使用知识的基本方法和策略,推理过程中为记录结果或通信需设数据库或采用黑板机制。如果在知识库中存储的是某一领域(如医疗诊断)的专家知识,则这样的知识系统称为专家系统。为适应复杂问题的求解需要,单一的专家系统向多主体的分布式人工智能系统发展,这时知识共享、主体间的协作、矛盾的出现和处理将是研究的关键问题。  一、人工智能的历史  人工智能(AI)是一门极富挑战性的科学,从事这项工作的人必须懂得计算机知识,心理学和哲学。人工智能是包括十分广泛的科学,它由不同的领域组成,如机器学习,计算机视觉等等,总的说来,人工智能的目的就是让计算机这台机器能够象人一样思考。这可是不是一个容易的事情。 如果希望做出一台能够思考的机器,那就必须知识什么是思考,更进一步讲就是什么是智慧,它的表现是什么,你可以说科学  家有智慧,可你决不会说一个路人什么也不会,没有知识,你同样不敢说一个孩子没有智慧,可对于机器你就不敢说它有智慧了吧,那么智慧是如何分辨的呢?我们说的话,我们做的事情,我们的想法如同泉水一样从大脑中流出,如此自然,可是机器能够吗,那么什么样的机器才是智慧的呢?科学家已经作出了汽车,火车,飞机,收音机等等,它们模仿我们身体器官的功能,但是能不能模仿人类大脑的功能呢?到目前为止,我们也仅仅知道这个装在我们天灵盖里面的东西是由数十亿个神经细胞组成的器官,我们对这个东西知之甚少,模仿它或许是天下最困难的事情了。  在定义智慧时,英国科学家图灵做出了贡献,如果一台机器能够通过称之为图灵实验的实验,那它就是智慧的,图灵实验的本质 就是让人在不看外型的情况下不能区别是机器的行为还是人的行为时,这个机器就是智慧的。不要以为图灵只做出这一点贡献就会名垂表史,如果你是学计算机的就会知道,对于计算机人士而言,获得图灵奖就等于物理学家获得诺贝尔奖一样,图灵在理论上奠定了计算机产生的基础,没有他的杰出贡献世界上根本不可能有这个东西,更不用说什么网络了。  科学家早在计算机出现之前就已经希望能够制造出可能模拟人类思维的机器了,在这方面我希望提到另外一个杰出的数学家,哲学家布尔,通过对人类思维进行数学化精确地刻画,他和其它杰出的科学家一起奠定了智慧机器的思维结构与方法,今天我们的计算机内使用的逻辑基础正是他所创立的。  我想任何学过计算机的人对布尔一定不会陌生,我们所学的布尔代数,就是由它开创的。当计算机出现后,人类开始真正有了一个可以模拟人类思维的工具了,在以后的岁月中,无数科学家为这个目标努力着,现在人工智能已经不再是几个科学家的专利了,全世界几乎所有大学的计算机系都有人在研究这门学科,学习计算机的大学生也必须学习这样一门课程,在大家不懈的努力下,现在计算机似乎已经变得十分聪明了,刚刚结束的国际象棋大赛中,计算机把人给胜了,这是人们都知道的,大家或许不会注意到,在一些地方计算机帮助人进行其它原来只属于人类的工作,计算机以它的高速和准确为人类发挥着它的作用。人工智能始终是计算机科学的前沿学科,计算机编程语言和其它计算机软件都因为有了人工智能的进展而得以存在。  现在人类已经把计算机的计算能力提高到了前所未有的地步,而人工智能也在下世纪领导计算机发展的潮头,现在人工智能的发展因为受到理论上的限制不是很明显,但它必将象今天的网络一样深远地影响我们的生活。  在世界各地对人工智能的研究很早就开始了,但对人工智能的真正实现要从计算机的诞生开始算起,这时人类才有可能以机器的实现人类的智能。AI这个英文单词最早是在1956年的一次会议上提出的,在此以后,因此一些科学的努力它得以发展。人工智能的进展并不象我们期待的那样迅速,因为人工智能的基本理论还不完整,我们还不能从本质上解释我们的大脑为什么能够思考,这种思考来自于什么,这种思考为什么得以产生等一系列问题。但经过这几十年的发展,人工智能正在以它巨大的力量影响着人们的生活。  让我们顺着人工智能的发展来回顾一下计算机的发展,在1941年由美国和德国两国共同研制的第一台计算机诞生了,从此以后人类存储和处理信息的方法开始发生革命性的变化。第一台计算机的体型可不算太好,它比较胖,还比较娇气,需要工作在有空调的房间里,如果希望它处理什么事情,需要大家把线路重新接一次,这可不是一件省力气的活儿,把成千上万的线重新焊一下我想现在的程序员已经是生活在天堂中了。  终于在1949发明了可以存储程序的计算机,这样,编程程序总算可以不用焊了,好多了。因为编程变得十分简单,计算机理论的发展终于导致了人工智能理论的产生。人们总算可以找到一个存储信息和自动处理信息的方法了。  虽然现在看来这种新机器已经可以实现部分人类的智力,但是直到50年代人们才把人类智力和这种新机器联系起来。我们注意到旁边这位大肚子的老先生了,他在反馈理论上的研究最终让他提出了一个论断,所有  人类智力的结果都是一种反馈的结果,通过不断地将结果反馈给机体而产生的动作,进而产生了智能。我们家的抽水马桶就是一个十分好的例子,水之所以不会常流不断,正是因为有一个装置在检测水位的变化,如果水太多了,就把水管给关了,这就实现了反馈,是一种负反馈。如果连我们厕所里的装置都可以实现反馈了,那我们应该可以用一种机器实现反馈,进而实现人类智力的机器形式重现。这种想法对于人工智能早期的有着重大的影响。  在1955的时候,香农与人一起开发了The Logic TheoriST程序,它是一种采用树形结构的程序,在程序运行时,它在树中搜索,寻找与可能答案最接近的树的分枝进行探索,以得到正确的答案。这个程序在人工智能的历史上可以说是有重要地位的,它在学术上和社会上带来的巨大的影响,以至于我们现在所采用的方法思想方法有许多还是来自于这个50年代的程序。  1956年,作为人工智能领域另一位著名科学家的麦卡希(就是右图的那个人)召集了一次会议来讨论人工智能未来的发展方向。从那时起,人工智能的名字才正式确立,这次会议在人工智能历史上不是巨大的成功,但是这次会议给人工智能奠基人相互交流的机会,并为未来人工智能的发展起了铺垫的作用。在此以后,工人智能的重点开始变为建立实用的能够自行解决问题的系统,并要求系统有自学习能力。在1957年,香农和另一些人又开发了一个程序称为General Problem Solver(GPS),它对Wiener的反馈理论有一个扩展,并能够解决一些比较普遍的问题。别的科学家在努力开发系统时,右图这位科学家作出了一项重大的贡献,他创建了表处理语言LISP,直到现在许多人工智能程序还在使用这种语言,它几乎成了人工智能的代名词,到了今天,LISP仍然在发展。  在1963年,麻省理工学院受到了美国政府和国防部的支持进行人工智能的研究,美国政府不是为了别的,而是为了在冷战中保持与苏联的均衡,虽然这个目的是带点火药味的,但是它的结果却使人工智能得到了巨大的发展。其后发展出的许多程序十分引人注目,麻省理工大学开发出了SHRDLU。在这个大发展的60年代,STUDENT系统可以解决代数问题,而SIR系统则开始理解简单的英文句子了,SIR的出现导致了新学科的出现:自然语言处理。在70年代出现的专家系统成了一个巨大的进步,他头一次让人知道计算机可以代替人类专家进行一些工作了,由于计算机硬件性能的提高,人工智能得以进行一系列重要的活动,如统计分析数据,参与医疗诊断等等,它作为生活的重要方面开始改变人类生活了。在理论方面,70年代也是大发展的一个时期,计算机开始有了简单的思维和视觉,而不能不提的是在70年代,另一个人工智能语言Prolog语言诞生了,它和LISP一起几乎成了人工智能工作者不可缺少的工具。不要以为人工智能离我们很远,它已经在进入我们的生活,模糊控制,决策支持等等方面都有人工智能的影子。让计算机这个机器代替人类进行简单的智力活动,把人类解放用于其它更有益的工作,这是人工智能的目的,但我想对科学真理的无尽追求才是最终的动力吧。  二、人工智能的应用领域  1、问题求解。  人工智能的第一大成就是下棋程序,在下棋程度中应用的某些技术,如向前看几步,把困难的问题分解成一些较容易的子问题,发展成为搜索和问题归纳这样的人工智能基本技术。今天的计算机程序已能够达到下各种方盘棋和国际象棋的锦标赛水平。但是,尚未解决包括人类棋手具有的但尚不能明确表达的能力。如国际象棋大师们洞察棋局的能力。另一个问题是涉及问题的原概念,在人工智能中叫问题表示的选择,人们常能找到某种思考问题的方法,从而使求解变易而解决该问题。到目前为止,人工智能程序已能知道如何考虑它们要解决的问题,即搜索解答空间,寻找较优解答。  2、逻辑推理与定理证明。  逻辑推理是人工智能研究中最持久的领域之一,其中特别重要的是要找到一些方法,只把注意力集中在一个大型的数据库中的有关事实上,留意可信的证明,并在出现新信息时适时修正这些证明。对数学中臆测的题。定理寻找一个证明或反证,不仅需要有根据假设进行演绎的能力,而且许多非形式的工作,包括医疗诊断和信息检索都可以和定理证明问题一样加以形式化,因此,在人工智能方法的研究中定理证明是一个极其重要的论题。  3、自然语言处理。  自然语言的处理是人工智能技术应用于实际领域的典型范例,经过多年艰苦努力,这一领域已获得了大量令人注目的成果。目前该领域的主要课题是:计算机系统如何以主题和对话情境为基础,注重大量的常识——世界知识和期望作用,生成和理解自然语言。这是一个极其复杂的编码和解码问题。  4、智能信息检索技术。  受&()*+ (*) 技术迅猛发展的影响,信息获取和精化技术已成为当代计算机科学与技术研究中迫切需要研究的课题,将人工智能技术应用于这一领域的研究是人工智能走向广泛实际应用的契机与突破口。  5、专家系统。  专家系统是目前人工智能中最活跃、最有成效的一个研究领域,它是一种具有特定领域内大量知识与经验的程序系统。近年来,在“ 专家系统”或“ 知识工程”的研究中已出现了成功和有效应用人工智能技术的趋势。人类专家由于具有丰富的知识,所以才能达到优异的解决问题的能力。那么计算机程序如果能体现和应用这些知识,也应该能解决人类专家所解决的问题,而且能帮助人类专家发现推理过程中出现的差错,现在这一点已被证实。如在矿物勘测、化学分析、规划和医学诊断方面,专家系统已经达到了人类专家的水平。成功的例子如:PROSPECTOR系统发现了一个钼矿沉积,价值超过1亿美元。DENDRL系统的性能已超过一般专家的水平,可供数百人在化学结构分析方面的使用。MY CIN系统可以对血液传染病的诊断治疗方案提供咨询意见。经正式鉴定结果,对患有细菌血液病、脑膜炎方面的诊断和提供治疗方案已超过了这方面的专家。  三、人工智能理论的数学化趋势越来越突出  在现代科技高速发展的今天,许多科技理论都有赖于数学提供证明,有赖于数学对其的仿真。人工智能的发展也不例外,如何把人们的思维活动形式化、符号化,使其得以在计算机上实现,就成为人工智能研究的重要课题。在这方面,逻辑的有关理论、方法、技术起着十分重要的作用,它不仅为人工智能提供了有力的工具,而且也为知识的推理奠定了理论基础。人工智能中用到的逻辑可概括地分为两大类。一类是经典命题逻辑和一阶谓词逻辑,其特点是任何一个命题的真值或者是“真”,或者是“假”,二者必居其一。这一类问题可以用数学里的经典逻辑理论来解决。世界上事物千差万别,形形色色,除了确定性的事物或概念外,更广泛存在的是不确定性的事物或概念。这些不确定的事物是无法用经典逻辑理论来解决的。因此我们需要发展新的数学工具来表示这些问题。目前在人工智能中对不确定性的事物或概念是通过运用多值逻辑、模糊理论及概率来描述、处理的。多值逻辑、模糊理论及概率虽然都是通过在〔!,&〕上取值来刻画不确定性,但三者之间又存在着很大区别。多值逻辑是通过在真(&)与假(!)之间增加了若干中介真值来描述事物为真的程度的,但它把各个中介真值看作是彼此完全分立的,界限分明。而模糊理论认为不同的中介真值之间没有明确的界限,表现了不同中介值相互贯通、渗透的特征,从而更好地反映了不确定性的本质。概率用来度量事件发生的可能性,而事件本身的含义是明确的,只是在一定的条件下它可能不发生,它与模糊理论是从两个不同的角度来描述不确定性的,因而有人称模糊理论描述了事物内在的不确定性,而概率描述的是事物外在的不确定性。由上可以看出,数学使得人工智能能很好的模拟人类智能,大大推动了人工智能的向前发展。现在人工智能中还有一些问题用现在的数学很难表示出来,相信在数学知识不断发展之后,这些问题能很快得到解决。  五、人工智能的发展现状及前景  目前绝大多数人工智能系统都是建立在物理符号系统假设之上的。在尚未出现能与物理符号系统假设相抗衡的新的人工智能理论之前,无论从设计原理还是从已取得的实验结果来看,SOAr 在探讨智能行为的一般特征和人类认知的具体特征的艰难征途上都取得了有特色的进展或成就,处在人工智能研究的前沿。  80 年代,以Newell A 为代表的研究学者总结了专家系统的成功经验,吸收了认知科学研究的最新成果,提出了作为通用智能基础的体系结构Soar。目前的Soar 已经显示出强大的问题求解能力。在Soar中已实现了30 多种搜索方法,实现了若干知识密集型任务(专家系统) ,如RI 等。rOOks 提出了人工智能的一种新的途径。它认为无需概念或者说无需符号表示,智能系统的能力可以逐步进化。在它的研究中突出4 个概念:(1) 所处的境遇 机器人不涉及抽象的描述,而是处在直接影响系统的行为的境地。(2) 具体化 机器人有躯干,有直接来自周围世界的经验,他们的感官起作用后立即会有反馈。(3) 智能 智能的来源不仅仅是限于计算装置,也是由于与周围进行交互的动态决定。(4) 浮现 从系统与周围世界的交互以及有时候系统的部件间的交互浮现出智能。  五、结语  人工智能不单单需要逻辑思维与模仿,科学家们对人类大脑和神经系统研究得越多,他们越加肯定:情感是智能的一部分,而不是与智能相分离的。因此人工智能领域的下一个突破可能不仅在于赋予计算机更多的逻辑推理能力,而且还要赋予它情感能力。许多科学家断言,机器的智能会迅速超过阿尔伯特·爱因斯坦和霍金的智能之和。到下世纪中叶,人类生命的本质也会发生变化。神经植入将增强人类的知识和思考能力,并且开始向一种复合的人/机关系过渡,这种复合关系将使人类逐渐停止对生物机体的需求。大量非常微小的机器人将在大脑的感觉区里占据一席之地,并且创造出真假难辨的虚拟现实的仿真效果。  人工智能的实现,不是天方夜谭。虽然会很辛苦,但是没有人规定只有人类可以思考。就像是生命的不同表现形式,动物,植物,微生物,是不同的生命的形式。人类可以以未知的方式思考,计算机也可以以另一种(并非一定要和人相同的)形式思考。  著名软件公司ADOBE的专业制图软件Illustrator 的一种文件格式!  AI ( Artificial Intelligence ):人工智能。就是指计算机模仿真实世界的行为方式与人类思维与游戏的方式的运算能力。那是一整套极为复杂的运算系统与运算规则。  =============================================================  此外,AI还代表ALLEN IVERSON(阿伦·艾佛森),他生于美国,是全世界最好的篮球联盟——“NBA”96黄金一代的代表人物,是NBA有史以来最好的后卫之一,他以183cm身高在众多魁梧的球员中灵动跳跃,独领风骚。他先后摘取过NBA得分王、抢断王等称号,还在2001年带领76人队闯进NBA总决赛。他以特立独行的风格和满身的纹身成为全球篮球青少年疯狂追捧的偶像。  ————————————————————————————————————  歌手姓名: AI 英文名: AI  唱片公司: 环球唱片(Universal Music)  国 籍: 日本 语 言: 日语  兴 趣:  个人经历: *东瀛首席嘻哈女力、R&B歌姬 她是张力十足的嘻哈女力,也是柔情似水的R&B美声歌姬,AI,22岁的她在时尚一派与安室奈美惠合唱‘Uh、Uh…’,并在珍娜杰克森的音乐录影带中展现绝赞舞技,除了过人的歌舞才华之外,词曲创作力更是傲视东瀛R&B舞台,在嘻哈音乐大厂Def Jam Japan签下一纸合约之后,发行‘ORIGINAL A.I./原创A.I.’专辑立刻赢得媒体一致肯定,除了拿下SPACE SHOWER TV的R& B音乐录影带大奖外,更代表日本参加2004年MTV BUZZ ASIA演唱会,一举打进亚洲市场。  以过人演唱的天赋而获得日本“新时代音乐代言人”殊荣的HIP HOP小天后AI,近日参加了在台北举行的“台北流行音乐节”,同行的日本歌手还有一青窈以及藤木直人。在这场盛大的音乐节上,AI以她新颖而独特的演唱方式以及活力四射的表演令在场6万歌迷为之倾倒。 AI有着四分之一的意大利血统,骨子里就透出一种浪漫和前卫的气息。而她又是在美国长大,接触的音乐也很多元化。由于AI的母亲非常喜欢音乐,所以从小她就深受各种类型音乐的熏陶。在15岁时,AI还曾经参加过珍妮·杰克逊的MTV《GO DEEP》的录制。不过,在日本出道时却并不顺利,因为与工作人员在音乐理解上的不同,当大家对自己的音乐反映很冷淡时,她就很想去敲墙壁,可见其可爱之处。不过,AI并没有被现实所击败,仍然坚持走HIP HOP这条音乐路线,使得她的音乐风格也带给人们一种全新的感受。在今年日本最权威的公信榜票选中,AI从众多新晋女性中脱颖而出,成为新一代音乐天后接班人。对此,AI自己也非常满意,她表示自己想要成为一个很有朝气的歌手,给更多的人带来幸福感。这次的台北流行音乐节,AI也是做足了准备。除了带上偕同一起演出的DJ、化妆师、造型师、人声乐手AFURA以外,连日本报知新闻、电通、朝日电视台等日本媒体的高层人士以及自己经济公司的社长也都一同前来,浩浩荡荡23人的访华队伍令AI颇有面子。而赴台之前,AI也时常向安室奈美惠等曾经去过台湾的人请教,以进一步了解台湾。听说台北美食多多,AI兴奋地说想要常常小笼包、路边摊,所以这次的台湾之行,除了要参加音乐节和拍摄特辑,还顺带要向日本观众介绍台湾美食,这也使AI欣喜不已。 台湾表演大获成功后,AI也表示自己想要更了解华人音乐,有机会的话,也希望能够像平井坚、安室奈美惠等日本歌手一样,可以在台湾等地开演唱会,和台湾的歌手同台献艺。其实AI出国献艺已经不是第一次,在几个月前的韩国汉城MTV BUZZ ASIA演唱会中,AI也曾把歌词改为韩文,而这次为了更贴近观众,AI也把歌词改成了中文来演唱。为期四天的台湾之行,AI让更多的人领略了她的“小天后”风采,也顺便为自己今秋将要展开的全国巡演造势。
其他类似问题
为您推荐:
其他3条回答
就是人工 + 智能人工 可以理解成,人做出来的东西.智能 可以理解成, 有自己的逻辑,思想,判断.学习.
人工智能主要是让计算机也拥有人的智力,能够进行自主学习,逻辑推理等能力,以辅助人们做一些事,目前的人工智能发展水平并不高,离人的智力还相差很远,还有很大发展空间。
就是不用人来参于的能力
您可能关注的推广
人工智能的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁爱前端 - 专注Web前端开发,Web应用,JavaScirpt模式、框架,HTML5,CSS3……
点广告,有惊喜
点广告,有惊喜
今天一篇文章谈到Google的代码量已达到20亿行,并简单介绍了Google是如何管理这些代码的。
这20亿行代码,涉及搜索、Gmail、文档、地图、YouTube、Google+等绝大多数Google提供的服务,存储在“一个”代码仓库中,两万五千名Google工程师都可以访问——这可能是世界上最大的单一代码库。只有几个例外:涉及机要信息的代码,如PageRank算法,或者相对独立的项目,如Android和Chrome系统储存在其他单独代码库中。工程师之间可以方便的共享代码——这意味着所有新项目和功能都能利用之前已经写好的代码——20亿行已经几乎无所不包了,而且一处改进,所有相关项目都能受益。
20亿行是什么概念?14年前,Windows XP发布时,包含4500万行代码——Google的代码数量,约为40多个XP。
Google使用一个称为Piper的系统管理这个巨大的代码仓库——这套系统运行在10个不同的数据中心之上,管理的数据量约为85TB,Google工程师每天会进行45000次commit。这又是什么概念?相当于Google工程师每周就重写了一次Linux。
不仅如此,这套从前任Perforce演化而来的系统,还要帮助人类工程师打理各种琐碎的代码修改和提交工作,例如检查Bug和清理用不到的代码,生成必要的配置文件等等——维护代码库健康的工作不仅是工程师在做。
此外,Google正与Facebook合作,计划将类似的强大代码管理工具提供给外界,让公司之外的所有工程师都能受益。不过这套系统并非基于Git,而是Mercurial。当这套系统公之于众时,GitHub会受什么影响?
其实不仅Google的代码庞大复杂至此,微软也毫不逊色。上就有微软工程师讲到了自己了解的数据:仅Windows build system每天在微软内部网络产生的交换数据量,就相当于Netflix所有电影总和的数倍!
This article is automatically posted by WP-AutoPost :
极客头条分享了一则消息],指出“国内多个来源发现经过第三方途径下载的Xcode开发环境,其编译后应用会自动发送信息至 init. 远端服务器,后该病毒命名为 XcodeGhost。目前,有网友软件分析至少新版网易云音乐、中信银行动卡空间、12306和滴滴打车等应用被注入XcodeGhost代码。”
此事件出现之后,XcodeGhost代码作者在上公开代码源码,并发布声明:
###关于所谓”XcodeGhost”的澄清
首先,我为XcodeGhost事件给大家带来的困惑致歉。XcodeGhost源于我自己的实验,没有任何威胁性行为,详情见源代码:/XcodeGhostSource/XcodeGhost
所谓的XcodeGhost实际是苦逼iOS开发者的一次意外发现:修改Xcode编译配置文本可以加载指定的代码文件,于是我写下上述附件中的代码去尝试,并上传到自己的网盘中。
在代码中获取的全部数据实际为基本的app信息:应用名、应用版本号、系统版本号、语言、国家名、开发者符号、app安装时间、设备名称、设备类型。除此之外,没有获取任何其他数据。需要郑重说明的是:出于私心,我在代码加入了广告功能,希望将来可以推广自己的应用(有心人可以比对附件源代码做校验)。但实际上,从开始到最终关闭服务器,我并未使用过广告功能。而在10天前,我已主动关闭服务器,并删除所有数据,更不会对任何人有任何影响。
愿谣言止于真相,所谓的”XcodeGhost”,以前是一次错误的实验,以后只是彻底死亡的代码而已。
需要强调的是,XcodeGhost不会影响任何App的使用,更不会获取隐私数据,仅仅是一段已经死亡的代码。
再次真诚的致歉,愿大家周末愉快
推荐阅读: *
This article is automatically posted by WP-AutoPost :
P3-weixin-2.0.0版本发布(微信插件式开发框架)
1、P3-weixin为何诞生
现在微信越来越火,基于微信的公众号和服务号越来越丰富,单一的微信管家系统已经满足不了微信的需求。Jeecg社区推出插件式开发框架,P3-weixin 微信插件式开发框架,适合于微信管家系统,扩展第三方插件,插件以JAR形式存在,让微信营销更灵活。
3、架构技术说明
1.P3-weixin 采用SpringMvc + Mybatis + Velocity+ Maven(构建) 框架技术
2.插件引入方式
pom.xml文件中,引入新开发的插件
&dependency&
&groupId&org.jeecgframework&/groupId&
&artifactId&P3-Biz-gzbargain&/artifactId&
&version&2.0.0&/version&
&/dependency&
3.项目启动访问方式:采用maven方式,启动Web项目
http://localhost:8080/P3-Web/{页面访问地址}
4.页面层面不能采用jsp,需要采用模板语言Velocity
5.实现插件式开发,按照模块进行开发,每个模块可以单独达成jar包
6.数据库配置文件:src/main/resources/db.properties
4、微信活动插件列表 :
P3-Biz-gzbargain
5、源码下载地址:
源码下载地址
更多资料 (论坛):
插件发布频率: 每周一插件(持续更新…)
This article is automatically posted by WP-AutoPost :
P3-weixin-2.0.0版本发布(微信插件式开发框架)
1、P3-weixin为何诞生
现在微信越来越火,基于微信的公众号和服务号越来越丰富,单一的微信管家系统已经满足不了微信的需求。Jeecg社区推出插件式开发框架,P3-weixin 微信插件式开发框架,适合于微信管家系统,扩展第三方插件,插件以JAR形式存在,让微信营销更灵活。
3、架构技术说明
1.P3-weixin 采用SpringMvc + Mybatis + Velocity+ Maven(构建) 框架技术
2.插件引入方式
pom.xml文件中,引入新开发的插件
&dependency&
&groupId&org.jeecgframework&/groupId&
&artifactId&P3-Biz-gzbargain&/artifactId&
&version&2.0.0&/version&
&/dependency&
3.项目启动访问方式:采用maven方式,启动Web项目
http://localhost:8080/P3-Web/{页面访问地址}
4.页面层面不能采用jsp,需要采用模板语言Velocity
5.实现插件式开发,按照模块进行开发,每个模块可以单独达成jar包
6.数据库配置文件:src/main/resources/db.properties
4、微信活动插件列表 :
P3-Biz-gzbargain
5、源码下载地址:
源码下载地址
更多资料 (论坛):
插件发布频率: 每周一插件(持续更新…)
This article is automatically posted by WP-AutoPost :
什么是“野生程序员”
所谓“野生程序员”,就是没有计算机基础知识和相关教育经历,靠着对计算机开发的兴趣进入这个行业,虽然知识面比较广,但是各方面都一知半解的开发者。
这几年我从一个求职者,转变成一个招聘者,有一个感受就是,中国高等教育与市场需求不接轨。学校不了解市场究竟需要什么样的人才,其设立的课程和技术往往比市场技术现状落后了5年以上。我在大学学习用ASP建站,但是现在已经几乎没有人用ASP建站了。一个直接的后果是,很多高校毕业生不能满足企业的要求。
与此同时,中国互联网市场蓬勃发展,特别是移动互联网的发力,让中国跳过“WAP时代”,直接进入“App时代”。市场的热钱都投入到互联网行业,“BAT”等大公司不断扩张,创业公司也如雨后春笋,整个市场对软件工程师的需求缺口巨大,所以很多公司在招人的时候,没法招聘到“专业”的计算机专业毕业生。
在美国,因为教育与市场稳定发展了很多年,供求关系相对平衡,计算机相关专业本科已经成为基本要求。举例而言,美国的硅谷公司(如Google)绝大部分前端开发招聘岗位都有一个最低要求——本科学历,计算机相关专业。
相比而言,从中国的大公司(如腾讯)的招聘上可以看出,有一些前端开发岗位没有对学历的要求,也有一些要求“本科及以上学历”,少数才会要求“本科学历,计算机相关专业”。我们的团队中就有一些成员是大专学历。许多企业在招聘的时候往往放松了对学历的要求,只看重项目和经验,而不看重学历。这是一件好事,代表市场在高等教育的规模和质量都跟不上市场要求的情况下,给予更多有兴趣和能力的年轻人进入IT领域的机会,也填补了人才市场的空缺。
美国硅谷,是世界互联网公司的中心,是所有求职者梦寐以求的圣地。在最开始,硅谷之所以名字当中有一个“硅”字,是因为当地企业多数是从事加工制造高浓度硅的半导体行业和电脑工业。随后,互联网公司和软件公司渐渐取代传统的硬件公司,让硅谷获得了新的生命,但硅谷这个名字保留了下来。在硅谷从诞生到发展壮大的整个生命周期中,斯坦福大学起到了很大的作用,我认为称之为硅谷的母亲也不为过。
在中国,由于政策、环境、历史原因,还有大学教育投入上的差异,导致大学在整个互联网发展中起的作用没那么大。中美两国IT人才市场供求关系上的这些差别,也反映在整个行业文化中。
一个直观的反映就是软件工程师的“草根”化。其实很多软件工程师的收入都很高,处于中上层水平,相比金融行业的白领也毫不逊色,但是一谈起程序员,大家的印象还是“一年四季的T恤(在行业展会上免费拿的)牛仔裤,平时也喜欢宅在家里,不会像同样收入的金融白领,平时爱好听歌剧打高尔夫球”。这种差异一方面是外部人士对软件工程师职业的偏见,另一方面也是程序员行业的自黑习惯。在招聘时岗位要求就已经放到最低:不要求学历、上班不要求着装、上下班时间灵活,这样才好更方便地招聘。而金融行业有意识地塑造一种“精英”文化,从学历就设置高门槛,即使有些工作根本不需要那么高的学历。
回到毕业生的话题,很多跨专业的学生发现自己兴趣在互联网和计算机方向的时候,就开始了自学之路,基本上学习方式有这样几种。
* 书:在计算机图书领域,技术难度跟图书销量是成反比的,从标签教起的HTML/CSS基础书籍卖得最好,其次是关于JavaScript和jQuery的书,Angular和Node.之类的就没那么畅销了。
* 互联网:得益于全世界都在互联网上共享的资源,现在的学习者有了更多的选择,比如关于Web开发基础教学的W3CSchool,还有海量的技术博客。我个人喜欢订阅一些英文大站,比如Smashing Magazine(/)、tuts+(/)等。我在读大学的时候,Google Reader还没有永久关闭,那时候我很喜欢用RSS来关注这些站点的更新情况。Google Reader下线后,就基本上废弃了RSS阅读的习惯,转而用一些社交来追踪更新情况,但是有时还是会淹没在大量无用的信息里面。
* 社团:学校的社团也孕育了许多能力很强的开发者,社团经过历届的传帮带,技术有所积累,比如师兄会教师弟用Sublime编辑器,这就比还在用Dreamweaver的同学更有优势。此外,学校社团有一些定点客户,比如学校教务处、周边商户,所以有更多的实战经验,在毕业时作品集也丰富了不少。
因为有这样一些自学渠道,所以不一定只有计算机专业毕业的学生才有机会进入互联网行业。毕业之后,这些计算机爱好者进入不同的工作岗位,不同的是,有些进入大公司,有些进入小公司。这两者的成长轨迹往往会不太一样。
小公司有很多野生程序员
流水线工作流程有诸多优点,但一般来说,大公司才需要很多专精某种技术的工程师,组成一个Web开发团队。创业公司只需要几个技术全面的人来做开发和技术支持,有时候甚至只有一两个人而已。
当然,最主要的原因就是成本和回报的问题。招聘和维持庞大的IT研发团队需要一笔不小的开支,小公司并没有那么多Web服务的需求,一般企业可能只需要一个公司站点就可以了,现在甚至完全不需要Web站点,可以用微信公共账号或者淘宝这样的大平台来完成。如果招聘一个完整的Web研发团队,从用户研究到交互设计、从App开发到数据库管理,直接后果就是整个团队大部分时间都空闲着,无事可做。与之相比,聘请一个或多个全栈工程师会更高效、更省钱。
第二个原因是,很多传统线下公司并不会特别依赖IT技术,有些时候线下渠道占据了公司大部分收入来源,所以公司不需要架设十分完善的线上服务。由于线上服务的用户量少,所以Web服务对稳定性、承受压力、用户体验的要求都没有那么高。此外,由于没有太多重要的用户数据,所以异地容灾也不需要。
因为公司的开发团队小,所以无论出现什么问题,都需要他们去解决。从域名到服务器,从前端到后台,从设计到内容,都是一人包揽。野生程序员了解的知识越来越多,但是样样都不精通。我认识几个小公司的程序员,他们没有明确的职称,开发者都统称为程序员,设计师都统称为美工。
在Web技术的任何方向,比如前端开发或者服务器端开发,他们既没有很强的经验,也没有明确的兴趣。那么当他想跳槽到大公司的时候,会发现大公司对岗位和职责的细分非常明确,而自己的能力达不到某个细分岗位的要求。所以他们很难在专业上继续进步,从而陷入原地踏步的窘境。
大公司还是创业公司
在许多论坛上,常常会看到毕业生提出这样的问题:现在有一个大公司和一个创业公司的机会摆在我面前,我应该选择哪一个?其实每个人有不同的想法、不同的风险偏好,旁人没办法针对这个宽泛的问题给出标准的答案。但是既然提问者是毕业生,这种情况下我还是建议选择大公司,因为会选择创业公司的人往往有自己的主见,已经接受创业公司的邀请去工作了,不会去发帖询问大家的意见。当然这是开玩笑,真正的原因是,在大公司的头两年,是从学生到职场人士的一个转变,您可能会从大平台学习到一些规范的流程方法,养成一些足以影响您一生的习惯,认识更多的能对您职场有帮助的人脉。
大公司能给您的:
较小的风险:每个公司都有倒闭的可能,但是,显然大公司比小公司的风险低多了。如果您的风险承受能力较低,那么不得不考虑这个因素。
技术最佳实践:在大公司,对代码质量和一致性的要求很高,所以一般在最终发布前会有代码审查(Code Review)流程和项目总结会等。如果您完成了一个任务,但是没有采用最佳实践,只是hack{![所谓hack,就是不优雅的解决方案。比如一个界面的调整,如果采用最佳实践,需要用MVC架构来分离出界面相关的代码,并且把有可能相关的变量提取出来,合理命名并且放在合理的位置。如果是hack,可能就不管这么多,看见哪里需要修改就原地修改了,表面上看很快解决了问题,可是这会给后面跟进的同事造成很大的困扰。]}了一下,那么其他同事可能都会指出您的问题,并且要求您改正之后再提交。小公司或者创业公司人力比较紧张,在他们看来,快速实现和上线,比优雅地上线更重要,所以对于一些最佳实践类的问题,只能睁一只眼闭一只眼啦。
垂直专精的技能:大公司专业分工很细,而且有更多技术沟通和沉淀的氛围,所以容易让人在垂直专精的技术方向有足够的发展。在小公司更能锻炼技术的广度,深度上缺乏锻炼的环境。但是其实二者的利弊,都是外界的,技术人员的个人成长除了工作时间的锻炼,还要靠下班后的时间,外界只是给予一个环境或者机会。
服务海量用户的经验:同样是做一个,服务少数用户量和服务海量用户量时需要考虑的事情是完全不同的。小遇到的问题,大一定遇到过,而大遇到的问题,小就不一定遇到过了。当一个发展到业内最强时,它的问题没有人遇到过,这时候就不能凡事问百度、Google或Stack Overflow了,而要自己去探索解决方案。
软技能:硬技能是指每个职位需要的专业技能,软技能则是通用的技能,比如沟通、影响力、项目管理和演讲等。越是大公司,越是看重影响力,所以会有很多培训教您如何提高影响力。
我在面试一些来自小公司的应聘者时,就发现他平时的工作中,周边环境很少有分享和沉淀的习惯。沉淀和总结是很重要的,在腾讯,设计师做完一次设计定稿之后,就会把设计的思路,包括整体的设计风格、设计规范和色彩的确定等都总结成一封邮件或者PPT,发送给部门同事。每个人都要有意识地维护自己的作品集,它在半年一次的考核、晋升面试甚至以后的跳槽中都非常有用。但是小公司的设计师不太会总结个人作品集,时间紧急是一方面原因,另一个主要原因是环境不需要他这样做,因此就缺乏了这方面的锻炼。
人脉:每年都有不少人从大公司离职去创业,这是非常自然的事情。对于大公司出来的人来说,之前积累的人脉资源这时候会起到很大的作用,比如创业期间的一些合作机会或者资源的互利,等等。万一创业失败,也不会很惨,因为您之前接触的人脉可以给您提供工作机会。但如果您刚毕业就选择创业,创业失败之后没有人能给您提供工作机会。
心态:其实大公司能给予毕业生最大的优势,就是提供一个心智培育的土壤。之前参加面试官培训的时候,我大概了解过公司招聘一个毕业生投入的成本。从校园招聘,到安排面试官面试候选人,再到封闭培训和一些课程培训,再给一段时间熟悉项目,最后3个月试用期后可能还要淘汰掉一些。如果把成本平摊到每一个人身上,这些投入要一年才能收回来。而小公司不会有这么大的耐心去培育一个新人。如果没有足够的时间去学习和成长,可能在一两年后,员工的能力也比较全面,但是样样都不精通,也说不清楚自己的目标是什么,于是就变成了“野生程序员”。
综合来讲,在大公司中,从硬技能到软技能都会有很多经验丰富的前辈能够教您,您会在大平台上学习到很多东西。工作几年之后,员工的选择也很多,要么走技术路线继续发展下去,做高级工程师;要么学习管理和领导力;要么出去创业。
所以,我的个人建议是,从毕业生自己前途发展的角度来看,先加入一家上市大公司是个不错的选择。
本文摘自:《Web全栈工程师的自我修养》
This article is automatically posted by WP-AutoPost :
Apache Spark社区刚刚发布了,大家一定想知道这个版本的主要变化,这篇文章告诉你答案。
DataFrame执行后端优化(Tungsten第一阶段)
DataFrame可以说是整个Spark项目最核心的部分,在1.5这个开发周期内最大的变化就是Tungsten项目的第一阶段已经完成。主要的变化是由Spark自己来管理内存而不是使用JVM,这样可以避免JVM GC带来的性能损失。内存中的Java对象被存储成Spark自己的二进制格式,计算直接发生在二进制格式上,省去了序列化和反序列化时间。同时这种格式也更加紧凑,节省内存空间,而且能更好的估计数据量大小和内存使用情况。如果大家对这部分的代码感兴趣,可以在源代码里面搜索那些Unsafe开头的类即可。在1.4版本只提供UnsafeShuffleManager等少数功能,剩下的大部分都是1.5版本新加入的功能。
其他优化还包括默认使用 cache-aware算法对join, aggregation, shuffle, sorting的增强;window function性能的提高等。
那么性能到底能提升多少呢?可以参考DataBricks给出的这个例子。这是一个16 million行的记录,有1 million的组合键的aggregation查询分别使用Spark 1.4和1.5版本的性能对比,在这个测试中都是使用的默认配置。
那么如果我们想自己测试下Tungsten第一阶段的性能改如何测试呢?Spark 1.4以前的版本中spark.sql.codegen, spark.sql.unsafe.enabled等几个参数在1.5版本里面合并成spark.sql.tungsten.enabled并默认为true,只需要修改这一个参数就可以配置是否开启tungsten优化(默认是开启的)。
DataFrame/SQL/Hive
在DataFrame API方面,实现了新的聚合函数接口AggregateFunction2以及7个相应的build-in的聚合函数,同时基于新接口实现了相应的UDAF接口。新的聚合函数接口把一个聚合函数拆解为三个动作: initialize/update/merge,然后用户只需要定义其中的逻辑既可以实现不同的聚合函数功能。Spark的这个新的聚合函数实现方法和里面非常类似。
Spark内置的 得到了很大的增强,实现了100多个这样的常用函数,例如string, math, unix_timestamp, from_unixtime, to_date等。同时在处理NaN值的一些特性也在增强,例如 NaN = Nan 返回true;NaN大于任何其他值等约定都越来越符合SQL界的规则了。
用户可以在执行join操作的时候指定把左边的表或者右边的表broadcast出去,因为基于cardinality的估计并不是每次都是很准的,如果用户对数据了解可以直接指定哪个表更小从而被broadcast出去。
Hive模块最大的变化是支持连接Hive 1.2版本的metastore,同时支持metastore partition pruning(通过spark.sql.hive.metastorePartitionPruning=true开启,默认为false)。因为很多公司的Hive集群都升级到了1.2以上,那么这个改进对于需要访问Hive元数据的Spark集群来说非常重要。Spark 1.5支持可以连接Hive 0.13, 0.14, 1.0/0.14.1, 1.1, 1.2的metastore。
在External Data Source方面,Parquet的支持有了很大的加强。Parquet的版本升级到1.7;更快的metadata discovery和schema merging;同时能够读取其他工具或者库生成的非标准合法的parquet文件;以及更快更鲁棒的动态分区插入。
由于Parquet升级到1.7,原来的一个重要bug被修复,所以Spark SQL的Filter Pushdown默认改为开启状态(spark.sql.parquet.filterPushdown=true),能够帮助查询过滤掉不必要的IO。
Spark 1.5可以通过指定spark.sql.mitter.class参数选择不同的output committer类,默认是org.apache.parquet.hadoop.ParquetOutputCommitter,用户可以继承这个类实现自己的output committer。由于HDFS和S3这两种文件存储系统的区别,如果需要向S3里面写入数据,可以使用DirectParquetOutputCommitter,能够有效提高写效率,从而加快Job执行速度。
另外还有一些改动,包括:StructType支持排序功能;TimestampType的精度减小到1us;Spark现在的checkpoint是基于HDFS的,从1.5版本开始支持。这种类型的checkpoint性能更快,虽然不如基于HDFS的可靠,但是对于迭代型机器学习运算还是很有帮助的。
机器学习MLlib
MLlib最大的变化就是从一个机器学习的library开始转向构建一个机器学习工作流的系统,这些变化发生在ML包里面。MLlib模块下现在有两个包:MLlib和ML。ML把整个机器学习的过程抽象成Pipeline,一个Pipeline是由多个Stage组成,每个Stage是Transformer或者Estimator。
以前机器学习工程师要花费大量时间在training model之前的feature的抽取、转换等准备工作。ML提供了多个Transformer,极大提高了这些工作的效率。在1.5版本之后,已经有了25+个feature transformer,其中CountVectorizer, Discrete Cosine Transformation, MinMaxScaler, NGram, PCA, RFormula, StopWordsRemover, and VectorSlicer这些feature transformer都是1.5版本新添加的,做机器学习的朋友可以看看哪些满足你的需求。
这里面的一个亮点就是RFormula的支持,目标是使用户可以把原来用R写的机器学习程序(目前只支持GLM算法)不用修改直接搬到Spark平台上来执行。不过目前只支持集中简单的R公式(包括’.’, ‘~’, ‘+’和 ‘-‘),社区在接下来的版本中会增强这项功能。
另外越来越多的算法也作为Estimator搬到了ML下面,在1.5版本中新搬过来的有Naive Bayes, K-means, Isotonic Regression等。大家不要以为只是简单的在ML下面提供一个调用相应算法的API,这里面变换还是挺多的。例如Naive Bayes原来的模型分别用Array[Double&和Array[Array[Double]]来存储pi和theta,而在ML下面新的API里面使用的是Vector和Matrix来存储。从这也可以看出,新的ML框架下所有的数据源都是基于DataFrame,所有的模型也尽量都基于Spark的数据类型表示。在ML里面的public API下基本上看不到对RDD的直接操作了,这也与Tungsten项目的设计目标是一致的。
除了这些既有的算法在ML API下的实现,ML里面也增加了几个新算法:
MultilayerPerceptronClassifier(MLPC) 这是一个基于前馈神经网络的分类器,它是一种在输入层与输出层之间含有一层或多层隐含结点的具有正向传播机制的神经网络模型,中间的节点使用sigmoid (logistic)函数,输出层的节点使用softmax函数。输出层的节点的数目表示分类器有几类。MLPC学习过程中使用BP算法,优化问题抽象成logistic loss function并使用L-BFGS进行优化。
MLlib包里面增加了一个频繁项挖掘算法PrefixSpan,AssociationRules能够把FreqItemset生成关联式规则。
在MLlib的统计包里面实现了Kolmogorov–Smirnov检验,用以检验两个经验分布是否不同或一个经验分布与另一个理想分布是否不同。
另外还有一些现有算法的增强:LDA算法,决策树和ensemble算法,GMM算法。
ML里面的多个分类模型现在都支持预测结果的概率而不像过去只支持预测结果,像LogisticRegressionModel, NaiveBayesModel, DecisionTreeClassificationModel, RandomForestClassificationModel, GBTClassificationModel等,分别使用predictRaw, predictProbability, predict分别可以得到原始预测、概率预测和最后的分类预测。同时这些分类模型也支持通过设置thresholds指定各个类的阈值。
RandomForestClassificationModel和RandomForestRegressionModel模型都支持输出feature importance
GMM EM算法实现了当feature维度或者cluster数目比较大的时候的分布式矩阵求逆计算。实验表明当feature维度&30,cluster数目&10的时候,这个优化性能提升明显。
对于LinearRegressionModel和LogisticRegressionModel实现了LinearRegressionTrainingSummary和LogisticRegressionTrainingSummary用来记录模型训练过程中的一些统计指标。
1.5版本的Python API也在不断加强,越来越多的算法和功能的Python API基本上与Scala API对等了。此外在tuning和evaluator上也有增强。
从1.5开始,Standalone, YARN和Mesos三种部署方式全部支持了动态资源分配。
SparkR支持运行在YARN集群上,同时DataFrame的函数也提供了一些R风格的别名,可以降低熟悉R的用户的迁移成本。
在Streaming和Graphx方面也有非常大的改进,在这里不在一一赘述,详细可以参考。
作者简介:
梁堰波,现就职于明略数据,开源爱好者,Apache Hadoop & Spark contributor。曾任职于法国电信研究员,美团网技术专家,Yahoo!工程师,具备丰富的数据挖掘和机器学习领域的项目经验。
This article is automatically posted by WP-AutoPost :
早在拨号上网的时代,《星际争霸》(Starcraft)游戏曾吸引了无数网友的联机对战。不过一位名叫“Ryuta”的 GitHub 用户,却将它成功地移植到了 Web 上。当然,这要感谢 HTML5。网页版游戏的最大好处,就是无需像传统客户端那样费时去安装。尽管如此,这款移植作品还是演示了基本的操控部件,你可以进入战斗,甚至看到游戏的全局动画。
尽管该作品暂时还停留在演示(demo)阶段,但是相信会有爱好者们去进一步完善它的。
下载地址:
This article is automatically posted by WP-AutoPost :
早在拨号上网的时代,《星际争霸》(Starcraft)游戏曾吸引了无数网友的联机对战。不过一位名叫“Ryuta”的 GitHub 用户,却将它成功地移植到了 Web 上。当然,这要感谢 HTML5。网页版游戏的最大好处,就是无需像传统客户端那样费时去安装。尽管如此,这款移植作品还是演示了基本的操控部件,你可以进入战斗,甚至看到游戏的全局动画。
尽管该作品暂时还停留在演示(demo)阶段,但是相信会有爱好者们去进一步完善它的。
下载地址:
This article is automatically posted by WP-AutoPost :
我不是一个“充满激情的程序员”。我觉得,固定8小时工作之后,就应该去做点别的事情,比如说看看科幻小说,和我亲爱的妻子聊聊天等等。当别人问起,我会正儿八经地这么回答,“这才是所谓的生活。你也应该试一试”。
其实我内心非常看不上那些充满激情的程序员,他们所谓的激情就是一天花上12甚至16个小时坐在电脑前写代码,或者为了写代码而牺牲了自己的爱好、睡眠以及人际交往,有时候甚至连基本的生活自理都无暇顾及。这哪还是激情啊,这分明是一种强迫症。
大男子主义亦或是偏执狂?
我们的文化不对劲。如果我们迷恋上一个女子,用类似于在公司工作时孜孜不倦奉献的方式去追求她,会被当成是疯子!
然而,这种疯狂放到工作中就成为榜样了,只要能孜孜不倦勤勤恳恳地专注于写代码——哪怕你严重内向甚至有着自闭障碍,也会成为雇主们的最爱。
更糟糕的是,太多太多的男性程序员因此而心甘情愿地牺牲其他时间,用于写代码,并以此为荣。然后,这种工作至上的潮流驱使高科技领域的女性人员也不得不随波逐流。程序员就像是受虐狂一样,在被揍了之后,乐呵呵地说:“Thank you,sir。我能不能再要一个?”
从我的经验来看,真正的问题是,那些将所有醒着的时间全都奉献给工作的程序员尽写一些低劣的代码,害人害己。
技术高手表示要累死了
我是从一段惨痛的经历之后才了解了此基本真理。这也是我被一家现已解散的机构——Conduit Internet Technologies解雇的原因。
每天工作12到14个小时,如果幸运的话,周日的时候才可以休息。突然某一天,管理层发现我们有一项工作没有做好,于是能干的我奉命在第二天早上之前一定要干完它。我不得不熬夜赶工。
整整一个晚上我都在工作。但是在这个过程中我破坏了一个提供给产品使用的数据库,虽然有自动备份,但是我太累了——一直工作到清晨5点钟,以至于并没有发现这个情况。
直到当天下午我才意识到我的错误,然后马上开始在家里修复,但是管理层已经切断了远程访问。他们以为我已经彻底搞定了数据库,然后覆盖了。
我并没有刻意去抗议,但是他们还是多付了我一个月的薪资,并允许我找到工作后再离开办公室,怎么说呢,这做法明显比他们在这件事的责任认定中要显得宽容得多。不过,话又说回来,对于这份工作,我真的是要累死了,被炒鱿鱼更像是一个解脱。
Passion==痛苦
这里有一个小插曲。当雇主告诉你他们看重于开发人员的passion时,其实是在告诫你。听到这个词,那你就马上掉头跑吧,因为后面有老虎在追着咬你。
很多人并不知道,“passion”这个词是希腊语π?σχειν(paschein)翻译过来的,原意是“忍受痛苦”。其实,这才是工作的实质。但是我们没必要因为一份薪水而承受痛苦,除非你是CEO。否则,你的薪水是不足以支付你需要面对的各种狗屎。
当鼻子遇到磨刀石(埋头苦干)
但是,上面我所说的这些都不应该成为工作偷懒的借口。如果你在工作,那就好好工作。干好每天八小时的活,然后立马就走。对得起雇主发的薪水,就成了。
怎么才算是对得起雇主发的薪水呢?专心,避免一切不必要的分心。进入状态,写出你最好的代码。避免毫无意义的会议。避免干重复的活。将工作中的空余时间用于学习新的技术和设计模式上,提高自己的技巧。就像让程序员失去编程激情的5件事这篇文章中说的那样,不要经常做无用功。
然后八小时之后,你就可以手机静音,潇洒地离开办公室了。Email、通知和语音邮件通通抛之脑后,等到了第二天的工作时间再继续埋头苦干,但是可千万不要将自己榨干了。
你可以去做别的事情:喝点小酒、发呆、祈祷、做爱、和孩子嬉戏、遛狗、给喵星人挠肚皮、搞艺术、去搏击俱乐部和陌生人pk、阅读、手淫、做音乐、甚至是跳伞。只要不是写代码就行。
一切都是因为人性
你只是个人,不是神仙,所以没有必要舍身忘己榨干自己,为资本家创造财富。你创造的价值越高,他们在支付了你薪资之后所能获得的差额就越多。
保证每天的休息时间不但可以为第二天的工作提供充沛的精力,而且也是你的权力。所以,该休息时就休息,不要管雇主对你朝九晚五的工作时间的抱怨。
因为这些雇主是不会顾及你的健康和快乐的。但是健康和快乐才是我们人之所以为人首先应该为自己做的事情。如果你们国家的文化不是这样说的,那就是在骗你,亲。
你在办公室中的所作所为只是一个手段而不是目的。如果你将过程当作了目标,那只会让你忽略生活中最美好的事情。并且,如果你不能得到喘息的机会,只会让你渐渐地讨厌这份工作,乃至厌恶编程。
译文链接: 英文原文: 翻译作者: – 小峰
This article is automatically posted by WP-AutoPost :
我不是一个“充满激情的程序员”。我觉得,固定8小时工作之后,就应该去做点别的事情,比如说看看科幻小说,和我亲爱的妻子聊聊天等等。当别人问起,我会正儿八经地这么回答,“这才是所谓的生活。你也应该试一试”。
其实我内心非常看不上那些充满激情的程序员,他们所谓的激情就是一天花上12甚至16个小时坐在电脑前写代码,或者为了写代码而牺牲了自己的爱好、睡眠以及人际交往,有时候甚至连基本的生活自理都无暇顾及。这哪还是激情啊,这分明是一种强迫症。
大男子主义亦或是偏执狂?
我们的文化不对劲。如果我们迷恋上一个女子,用类似于在公司工作时孜孜不倦奉献的方式去追求她,会被当成是疯子!
然而,这种疯狂放到工作中就成为榜样了,只要能孜孜不倦勤勤恳恳地专注于写代码——哪怕你严重内向甚至有着自闭障碍,也会成为雇主们的最爱。
更糟糕的是,太多太多的男性程序员因此而心甘情愿地牺牲其他时间,用于写代码,并以此为荣。然后,这种工作至上的潮流驱使高科技领域的女性人员也不得不随波逐流。程序员就像是受虐狂一样,在被揍了之后,乐呵呵地说:“Thank you,sir。我能不能再要一个?”
从我的经验来看,真正的问题是,那些将所有醒着的时间全都奉献给工作的程序员尽写一些低劣的代码,害人害己。
技术高手表示要累死了
我是从一段惨痛的经历之后才了解了此基本真理。这也是我被一家现已解散的机构——Conduit Internet Technologies解雇的原因。
每天工作12到14个小时,如果幸运的话,周日的时候才可以休息。突然某一天,管理层发现我们有一项工作没有做好,于是能干的我奉命在第二天早上之前一定要干完它。我不得不熬夜赶工。
整整一个晚上我都在工作。但是在这个过程中我破坏了一个提供给产品使用的数据库,虽然有自动备份,但是我太累了——一直工作到清晨5点钟,以至于并没有发现这个情况。
直到当天下午我才意识到我的错误,然后马上开始在家里修复,但是管理层已经切断了远程访问。他们以为我已经彻底搞定了数据库,然后覆盖了。
我并没有刻意去抗议,但是他们还是多付了我一个月的薪资,并允许我找到工作后再离开办公室,怎么说呢,这做法明显比他们在这件事的责任认定中要显得宽容得多。不过,话又说回来,对于这份工作,我真的是要累死了,被炒鱿鱼更像是一个解脱。
Passion==痛苦
这里有一个小插曲。当雇主告诉你他们看重于开发人员的passion时,其实是在告诫你。听到这个词,那你就马上掉头跑吧,因为后面有老虎在追着咬你。
很多人并不知道,“passion”这个词是希腊语π?σχειν(paschein)翻译过来的,原意是“忍受痛苦”。其实,这才是工作的实质。但是我们没必要因为一份薪水而承受痛苦,除非你是CEO。否则,你的薪水是不足以支付你需要面对的各种狗屎。
当鼻子遇到磨刀石(埋头苦干)
但是,上面我所说的这些都不应该成为工作偷懒的借口。如果你在工作,那就好好工作。干好每天八小时的活,然后立马就走。对得起雇主发的薪水,就成了。
怎么才算是对得起雇主发的薪水呢?专心,避免一切不必要的分心。进入状态,写出你最好的代码。避免毫无意义的会议。避免干重复的活。将工作中的空余时间用于学习新的技术和设计模式上,提高自己的技巧。就像让程序员失去编程激情的5件事这篇文章中说的那样,不要经常做无用功。
然后八小时之后,你就可以手机静音,潇洒地离开办公室了。Email、通知和语音邮件通通抛之脑后,等到了第二天的工作时间再继续埋头苦干,但是可千万不要将自己榨干了。
你可以去做别的事情:喝点小酒、发呆、祈祷、做爱、和孩子嬉戏、遛狗、给喵星人挠肚皮、搞艺术、去搏击俱乐部和陌生人pk、阅读、手淫、做音乐、甚至是跳伞。只要不是写代码就行。
一切都是因为人性
你只是个人,不是神仙,所以没有必要舍身忘己榨干自己,为资本家创造财富。你创造的价值越高,他们在支付了你薪资之后所能获得的差额就越多。
保证每天的休息时间不但可以为第二天的工作提供充沛的精力,而且也是你的权力。所以,该休息时就休息,不要管雇主对你朝九晚五的工作时间的抱怨。
因为这些雇主是不会顾及你的健康和快乐的。但是健康和快乐才是我们人之所以为人首先应该为自己做的事情。如果你们国家的文化不是这样说的,那就是在骗你,亲。
你在办公室中的所作所为只是一个手段而不是目的。如果你将过程当作了目标,那只会让你忽略生活中最美好的事情。并且,如果你不能得到喘息的机会,只会让你渐渐地讨厌这份工作,乃至厌恶编程。
译文链接: 英文原文: 翻译作者: – 小峰
This article is automatically posted by WP-AutoPost :}

我要回帖

更多关于 前端是什么意思 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信