精华内容
下载资源
问答
  • 通讯协议Python解析器和发起者 Cpppo(在Python中发音为'c'+ 3 *'p'+'o')用于实现二进制通信协议解析器。 协议的通信元素是根据状态机描述的,这些状态机响应于输入事件更改状态,收集数据并生成输出数据工件。 ...
  • JavaWeb笔记

    千次阅读 多人点赞 2019-09-06 10:42:23
    发求请求到服务器响应结束,一般按照关闭浏览器,如果客户端在30分钟内没有发起任何数据交互则会话自动结束 六、跳转 内部跳转:转发 request 1、内部跳转可以携带数据 2、地址栏不会发生变化 外部跳转:重定向...

    javaweb

    一、JavaWeb的发展历程:静态技术、动态技术及Web2.0新时期

    二、什么是Web:
    World Wide Web 的简称,中文称为万维网
    作用:用于发布、浏览、查询信息的网络信息服务系统、由遍布在不同区域内的web服务器有机组成

    三、HTTP协议:
    超文本传输协议,用于web服务器传输超文本到本地浏览器的传送协议。是一种无状态协议,

    四、URL和Uri的区别:
    URL只是构成Uri的元素。
    1、url:统一资源标志符确定一个资源,
    2、统一资源定位符不但确定一个资源,而且还表示出它在哪里

    五、b/s与c/s
    C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。开发C/S架构可以采用多种语言,包括Java,C++,C#,以及Dephi等

    B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现。前端 在大部分企业就是做浏览器端展现相关的工作,会用到html,css,js,ps,ai等等,而“后端”的主要工作室程序开发、数据处理了,比如:php,asp,mysql,mssql。

    六、因特网与万维网的关系:
    1、“互联网”定义是:“指由若干电子机网络相互连接而成的网络”
    2、“因特网”定义是:“目前全球最大的一个电子计算机互联网,是由美国的ARPA网发展演变而来的”。
    3、万维网是无数个网络站点和网页的集合,它们在一起构成了因特网最主要的部分(因特网也包括电子邮件、Usenet以及新闻组)。

    七、tomcat服务器的各个目录的功能
    bin:启动、关闭脚本
    lib:日志
    conf:配置文件
    webapps:已发布的web程序

    八、常见的服务器:
    (1)ApacheApache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上。Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自"a patchy server"的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。
    (2)IIS是英文Internet Information Server的缩写,译成中文就是"Internet信息服务"的意思。它是微软公司主推的服务器,最新的版本是Windows2008里面包含的IIS 7,IIS与Window Server完全集成在一起,因而用户能够利用Windows Server和NTFS(NT File System,NT的文件系统)内置的安全特性,建立强大,灵活而安全的Internet和Intranet站点。
    (3)GFEGoogle的web服务器,用户数量激增。目前紧逼iis。
    (4)Nginx不仅是一个小巧且高效的HTTP服务器,也可以做一个高效的负载均衡反向代理,通过它接受用户的请求并分发到多个Mongrel进程可以极大提高Rails应用的并发能力。
    (5)Lighttpd是由德国人 Jan Kneschke 领导开发的,基于BSD许可的开源WEB服务器软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的web server环境。具有非常低的内存开销,CPU占用率低,效能好,以及丰富的模块等特点。Lighttpd 是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能。
    (6)Zeus是一个运行于Unix下的非常优秀的Web Server,据说性能超过Apache,是效率最高的Web Server之一。
    (7)Sun的Java系统Web服务器也就是以前的Sun ONE Web Server。主要出现在那些运行Sun的Solaris操作系统的关键任务级Web服务器上。它最新的版本号是6.1,可以支持x86版本Solaris,Red Hat Linux,HP-UX 11i, IBM AIX,甚至可以支持Windows,但它的大多数用户都选择了SPARC版本的Solaris操作系统。
    (8)Resin提供了最快的jsp/servlets运行平台。在java和javascript的支持下,Resin可以为任务灵活选用合适的开发语言。Resin的一种先进的语言XSL(XML stylesheet language)可以使得形式和内容相分离。
    (9)Jetty是一个开源的servlet容器,它为基于Java的web内容,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供网络和web连接。
    (10)BEA WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。 BEA WebLogic Server拥有处理关键Web应用系统问题所需的性能、可扩展性和高可用性。
    (11)Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

    第三章:Servlet

    一、什么是Servlet?
    用于接受客户端信息和响应客户端信息
    是网页之间的桥梁
    是用于Java编写的服务器段程序
    Servlet是Java类,继承了HttpServlet,重写dopost和doGet方法,负责服务器端响应与请求
    doget方法需要重编码request.setCharacterEncoding(“utf-8”);
    String 变量名 = new String(变量名.getBytes(“ISO-8859-1”),“UTF-8”);
    response.setContentType(“text/html;charset=utf-8”);
    dopost编码:request.setCharacterEncoding(“utf-8”);

    二、servlet的创建?
    1、创建Java类继承httpservlet
    2、重写doget与dopost方法
    3、配置web.xml的文件。servlet servlet-mapping

    <servlet>
    	<servlet-name>程序名</servlet-name>
    	<servlet-class>包名.类名</servlet-class>
    </servlet>
    <servlet-mapping>
    	<servlet-name>程序名与上相同</servlet-name>
    	<url-pattern>/访问路径(路径前必须加"/")</url-pattern>
    </servlet-mapping>
    

    4、访问Servlet
    超链接 get
    地址栏 get
    表单 get/post

    三、servlet的生命周期

    初始化【1次】–>服务[N次]–>销毁[1次]

    四、编码方式
    javaweb有哪些编码:gb2312 GBK UTF-8
    中文乱码处理:get提交中需要通过再编码方式来完成

    五、会话过程

    1、什么是会话?
    
    	客户端的1次请求与服务器端的一次响应
    
    2、什么是会话跟踪?
    
    	在多次会话过程中能够记录客户端信息
    
    3、为什么要使用会话跟踪?
    
    	http协议是属于一种无状态的协议,不会记录客户端的信息。
    
    4、有哪些会话跟踪
    
    	session,cookie
    
    	session:将数据保存到服务器中,客户端30分钟无操作或者关闭客户端将会销毁
    
    	cookie:将数据保存到本地,因为对网络用户隐私构成危害,目前正被禁止使用
    
    5、会话跟踪的技术
    
      	 HttpSession	session  =request.getSession();
    
    6、会话生命周期?
    
    	发求请求到服务器响应结束,一般按照关闭浏览器,如果客户端在30分钟内没有发起任何数据交互则会话自动结束
    

    六、跳转

    内部跳转:转发  request
    
    		1、内部跳转可以携带数据
    
    		2、地址栏不会发生变化
    
    
    外部跳转:重定向  response
    
    		1、不可以携带数据
    
    		2、地址栏会发生变化
    

    七、作用:

    1、根据客户端的请求动态生成完整的HTML网页,并返回给客户端
    
    2、接受和响应客户端的信息
    

    JSP

    一、什么是JSP?

    JSP是由java+javascript+page组合,JSP是一种能够支持Java代码的一种动态网页   
    

    二、为什么要使用JSP?

    JSP支持Java代码以及可以在JSP中实现页面展示
    

    三、JSP的运行原理?

    JSP最终会被编译成为Servlet
    
    JSP:编写--》翻译-》编译-->执行
    
    	JSP最终会变成一个class文件
    
    为什么JSP第一次打开会比较慢?
    
    	因为第一次的打开JSP要经过翻译,编译,执行过程需要消耗时间,而第二次打开不需要再经过翻译和编译,可以直接执行,后面没有改动的情况下打开速度很快
    

    四、JSP组成?

    1、HTML
    
    2、指令  <%@   %>
    
    		导入包,编码,error页面
    	
    		<%@ include  file="文件路径" %>  JSP中包含一个文件
    
    3、小脚本
    		<% 小脚本java代码 %>
    
    4、声明
    		
    		<%!   %>
    
    5、输出
    
    	<%= 输出内容  %> 不能以分号结尾
    
    6、注释
    
    	<%-- -- %>  JSP注释是给程序员看的注释  隐式注释
    
    	<!--  -->  HTML注释,是可以给所有看   显示注释
    
    7、动作
    
    	<jsp:include page="myfile.txt"></jsp:include>
    
    	<jsp:forward page="index1.jsp"></jsp:forward>跳转页面
    

    内置对象

    一、什么是内置对象?

    不需要使用new关键字创建则可以直接使用,在系统中自动编译
    

    二、JSP中有哪些内置对象?

    9个
    
    out、request、response、session、application、page、pagecontext、config、Exception
    

    三、每一个内置对象的作用以及方法?

    out:输出
    
    	out.write()
    
    	out.print()
    
    request:接收请求
    
    	request.setAttribute("name",value);设置存入的数据
    
    		getAttribute(name);
    
    		removeAttribute("name");
    
    		getParameter();得到请求的参数
    
    		getParameterValues();接收的多个请求的name一致
    	跳转:
    
    		request.getRequestDispatcher("index.jsp").forward(request, response);
    
    
    response:响应请求
    
    	response.sendRedirect(arg0);外部跳转
    
    	response.setHeader("refresh","刷新时间间隔;目的页面地址");
    
    session:会话
    
    	session.setAttribute("name",value);设置存入的数据
    
    		getAttribute(name);
    
    		removeAttribute("name");
    
    application:服务器开启到服务器关闭
    
    		setAttribute("name",value);设置存入的数据
    
    		getAttribute(name);
    
    		removeAttribute("name");
    
    pagecontext:对当前操作
    
    		setAttribute("name",value);设置存入的数据
    
    		getAttribute(name);
    
    		removeAttribute("name");
    
    config:获取web.xml的配置信息
    
    		config.getInitParameter("myservlet");
    
    exception:获取异常页面信息
    
    		注意:isErrorPage="true"必须为true否则exception无法使用
    
    			errorpage="错误.jsp";跳转到错误页面
    

    四、内置对象的作用域?作用域对象

    	page  request    session    application
    
    	page:当前页有效
    
    	request:内部跳转有效
    
    	session:整个会话有效
    
    	application:服务器开启到服务器关闭有效
    
    
    作用域的范围顺序:page <  request <  session   <  application
    
    
    问?
    
    	如果4个作用都能完成某一个操作,你会选择谁?
    
    		能使用小范围则不选择大范围作用。因为范围约到占用的资源越多,消耗性能越高.
    

    常用方法:

    //获取客户端访问的真实IP	
    request.getRemoteAddr();
    
    //刷新页面
    response.setHeader("refresh","刷新时间间隔;目的页面地址");
    

    JavaBean与动作

    一、什么是JavaBean?
    
    Javabean是一个Java类,拥有特殊的用途,和自己的封装方式 通过get和set对业务数据进行封装
    
    
    二、JavaBean的作用?
    
    1、封装业务逻辑
    
    2、减少代码,代码的重复使用
    
    三、JavaBean所拥有的特征?
    
    1、是Java类
    
    2、get和set方法
    
    3、必须有一个无参的构造方法
    
    4、公共的
    
    四、如何创建JavaBean?
    
    1、创建Java
    
    2、获取业务数据
    
    3、得到封装数据的方法
    
    4、得到一个无参的构造方法
    
    五、jsp+javabean的具体实现?
    
    登陆
    
    动作+JavaBean:减少JSP中出现的大量的Java代码
    
    
    六、动作的具体说明
    
    	<jsp:useBean id="创建对象名"  class="com.zuxia.JavaBean【JavaBean路径  包+类】" scope="作用域page/request/session/application" ></jsp:useBean>
    
    		替换的代码是:
    					//接收提交过来的用户名和密码
    				//	String name = request.getParameter("name");
    					
    				//	String pwd = request.getParameter("pwd");					
    					//创建一个实体类
    					//JavaBean  jab=new JavaBean();
    
    	<jsp:setProperty property="表单提交的name" name="对象名"/>	
    
    		替换的代码是:request.setAttribute(name, value);
    
    	<jsp:getProperty property="表单提交的name" name="对象名"/>	
    		替换的代码是:request.getAttribute(name)
    
    
    格式:
    
    创建对象、相当于——类名 对象名 = new 类名()
    	<jsp:useBean id="jab"  class="com.zuxia.JavaBean" scope="session" ></jsp:useBean>
    	<jsp:useBean id="创建的对象名" class="包名.类名" scop="作用域(page、request、session、application)"></jsp:useBean>
    
    设置对象中的属性值:相当于——request.setAttribute(name,value)
    
    	<jsp:setProperty property="name" name="jab"/>
    	<jsp:setProperty property="标签中name属性的值" name="对象名"/>
    
    得到对象中属性值:相当于request.getAttribute(name)
    

    第八章:MVC模式

    Model1:主要使用JSP和JavaBean开发web应用,JavaBean封装对数据库的操作盒部分业务逻辑的代码,JSP即会包含输出效果的HTML、CSS代码,也会包含业务逻辑的Java代码
    
    Model2:MVC即模型(Model)-视图(View)-控制器(Controller)它降低了代码的耦合度,提高了代码的重用性,是一种把JSP与servlet联合使用来实现动态内容服务的方法,项目越复杂,使用Model2体系结构的好处越大
    
    优点:
    
    	1、各司其职,互不干涉
    
    	2、有利于开发中的分工
    
    	3、有利于组件的重用
    
    缺点:
    	对开发人员技术水平要求高,模型和视图的分离也使得调试代码更困难,但是MVC仍然是web程序最好的架构模式	
    

    Ajax的应用

    js:
    	//获取XMLHttpRequest对象
    	var xml = new XMLHttpRequest();
    	//设置发送请求参数一:提交方式:post、get。参数二:提交路径,参数三:是否异步
    	xml.open("post","Servlet?name="+name,true);
    	//发送
    	xml.send();
    
    	//获取服务器状态
    	xml.onreadystatechange = function(){
    
    		if(xml.status==200&&xml.readyState==4){
    			//responseText是服务器端响应的数据
    			if(xml.responseText=="true"){
    				alert('用户名存在');
    			//	window.location.href="index.jsp";
    			}else{
    				alert('用户名不存在');
    			//	window.location.href="index.jsp";
    			}
    
    		}
    
    	}
    
    展开全文
  • Nulecule(发音类似:newly-cool)规范的初稿里尝试解决这个问题,将可移植性的概念拓展到整个应用,或者未来可以聚合的组件所提供的服务,并且允许描述多容器应用及其所有依赖组件。 因此组委会需要在AppC中解决...

    对于CoreOS Fest大会上,红帽、VMware等公司都宣布支持AppC,很多人还都觉得CoreOS的春天来了,更有甚者说,竞争是好事,避免一家独大。不过红帽的riekrh同学可不这么认为。他认为AppC的成员里都没有目前发展最好的Docker,这很明显就是商业之间的竞争。从行业的发展角度来看,AppC的出现很可能会让行业里出现多种容器打包格式,这很有可能会阻碍容器技术的发展。

    本周洛杉矶举行的CoreOS Fest大会上,主题演讲之后的第一个讨论会里,CoreOS不出意外地倾情推出应用容器规范(Application Container Spec,AppC)及其第一版实现,rkt,并展望了该规范未来被广泛采用的光明前景。

    Red Hat在做技术决策时,都会本着选出上游社区所支持的最佳技术方案的原则,持续评估所有可能的技术选择。这也是为什么Red Hat决定投入AppC并且积极为该规范做出贡献的原因。

    Red Hat参与了很多上游社区。但是这样的参与并不代表将全力支持,或者只是觉得AppC或rkt可能能用于企业级IT,也或者永远也无法用于企业级。基于此,下面是今天我参加完讨论会后的一些心得:

    rkt有很多招人喜欢的优点,比如围绕systemd的干净的执行模型,开放的开发和监管模型,或者规范本身。

    我们一起来看看规范吧。

    AppC(应用容器规范)绝对是朝着正确的方向迈出了一大步,它有效的解决了Docker v1在技术和部署模型上的缺陷。应用容器规范花了很多篇幅讲述容器规范可以做些什么,我觉得企业容器领域很需要这样的规范。同时我也觉得CoreOS有着构建规范及其周边社区的最强动力。

    除了。。。

    时至今日,AppC还是只涵盖了基于容器、应用中心模型的很小一部分内容。容器将会重新定义操作系统,也许很多人都低估了这一点。这是个告别传统的单实例,宏内核,UNIX用户空间,进入到使用容器和增量打包技术实现的多实例,多版本环境新纪元的转折点。我们现在讨论的事情是要去改变软件行业已经使用了20年甚至40年的核心范式。

    还有很多正在演化的领域,比如安全(security)、syscall、信号(signals)等等。AppC规范需要涵盖比现在更多的领域,它需要更加深入地定义兼容性,对底层系统的依赖性,操作系统,联合存储库命名空间和服务发现等领域。

    另外一个很重要的方面可能被规范名字的关键字“应用”弱化了,目前,AppC只包含了单个容器和单个pod,这也是Docker为什么要做集群,因为只有很少的应用能在单个容器/单个pod里就可以运行。今天的讨论会里也提到了这个问题。同样,AppC在应用的可移植方面考虑也欠妥。Nulecule(发音类似:newly-cool)规范的初稿里尝试解决这个问题,将可移植性的概念拓展到整个应用,或者未来可以聚合的组件所提供的服务,并且允许描述多容器应用及其所有依赖组件。

    因此组委会需要在AppC中解决这些问题,目前我们只是刚刚开始漫漫旅程,Red Hat会通过社区对此持续跟进。

    要注意,AppC目前还不成熟,但与之相比更让人忧虑之处是rkt在推出Docker模型兼容接口的同时,还推出了自己的容器打包格式。我一直认为Docker提出了非常棒的想法将增量打包,镜像分层和容器组合在一起。这个工具改变了业界软件交付的方式。而由于项目之间竞争而产生的多种不同的打包格式可能会给这个领域带来风险,并放缓技术发展的节奏。这将意味着生态系统的碎片化,给实际提供容器内容的公司带来痛苦,这些公司包括Red Hat,我们的ISV合作伙伴以及想要尝试引入容器化的用户们。

    在更为底层的组件级别,我们不得不使用dpkg,rpm和一些其他的东西,长期忍受这样的碎片化。回过头看看apt/dpkg和yum/rpm的 PK, 不难发现两种组件之间的竞争并不会给用户带来巨大的好处,相反会有副作用。因为这意味着用户需要用多种格式提供相同的内容,要么enable整个工具链,在系统架构里同时管理这两种高度冗余的格式,要么更为糟糕地强制用户在这两种生态系统中选择其中一种。容器层高级别的聚合只是轻微地改善了这个问题,但是又增加了高层的复杂性,和与现代分布式系统的深度集成。

    AppC不支持Docker,主导讨论并且控制格式的公司会很快主宰容器打包标准。甚至没给Docker公司发表自己观点的机会。这并不是过分指责Docker或者CoreOS,每个公司都有做自己想做的事情的权利。实际上,我们现在有两个直接竞争的公司来推动容器标准化,他们使用竞争的工具链,竞争的规范和互不兼容的打包格式。这看上去就像Groundhog Day的火车相撞的慢镜头。我们,在广义的Linux和开源社区里,过去十五年已经发生过很多次类似的事情了,尤其在打包格式领域。

    虽然需要更多的时间和空间来验证,但是两个创业公司各自推出不兼容的规范,试图差异化同时又直接竞争,这不是什么好事情。如果CoreOS和 Docker能够通力合作推出标准化的通用规范,镜像格式和分布式协议,那么会更有益于社区和所有需要使用这些技术的人们。目前,Red Hat会继续参与并推进这两种方式,期望以后能够合并统一。


    本文作者:崔婧雯

    来源:51CTO

    展开全文
  • 本文讲的是【观点】CoreOS发起的AppC一定是好事?红帽的riekrh可不这么认为,【编者的话】对于CoreOS Fest大会上,红帽、VMware等公司都宣布支持AppC,很多人还都觉得CoreOS的春天来了,更有甚者说,竞争是好事,...
    本文讲的是【观点】CoreOS发起的AppC一定是好事?红帽的riekrh可不这么认为 【编者的话】对于CoreOS Fest大会上,红帽、VMware等公司都宣布支持AppC,很多人还都觉得CoreOS的春天来了,更有甚者说,竞争是好事,避免一家独大。不过红帽的riekrh同学可不这么认为。他认为AppC的成员里都没有目前发展最好的Docker,这很明显就是商业之间的竞争。从行业的发展角度来看,AppC的出现很可能会让行业里出现多种容器打包格式,这很有可能会阻碍容器技术的发展。

    本周洛杉矶举行的CoreOS Fest大会上,主题演讲之后的第一个讨论会里,CoreOS不出意外地倾情推出应用容器规范(Application Container Spec,AppC)及其第一版实现,rkt,并展望了该规范未来被广泛采用的光明前景。

    Red Hat在做技术决策时,都会本着选出上游社区所支持的最佳技术方案的原则,持续评估所有可能的技术选择。这也是为什么Red Hat决定投入 AppC 并且积极为该规范做出贡献的原因。

    Red Hat参与了很多上游社区。但是这样的参与并不代表将全力支持,或者只是觉得AppC或rkt可能能用于企业级IT,也或者永远也无法用于企业级。基于此,下面是今天我参加完讨论会后的一些心得:

    rkt有很多招人喜欢的优点,比如围绕systemd的干净的执行模型,开放的开发和监管模型,或者规范本身。
    我们一起来看看规范吧。

    AppC(应用容器规范)绝对是朝着正确的方向迈出了一大步,它有效的解决了Docker v1在技术和部署模型上的缺陷。应用容器规范花了很多篇幅讲述容器规范可以做些什么,我觉得企业容器领域很需要这样的规范。同时我也觉得CoreOS有着构建规范及其周边社区的最强动力。

    除了。。。

    时至今日,AppC还是只涵盖了基于容器、应用中心模型的很小一部分内容。容器将会重新定义操作系统,也许很多人都低估了这一点。这是个告别传统的单实例,宏内核,UNIX用户空间,进入到使用容器和增量打包技术实现的多实例,多版本环境新纪元的转折点。 我们现在讨论的事情是要去改变软件行业已经使用了20年甚至40年的核心范式。

    还有很多正在演化的领域,比如安全(security)、syscall、信号(signals)等等。AppC规范需要涵盖比现在更多的领域,它需要更加深入地定义兼容性,对底层系统的依赖性,操作系统,联合存储库命名空间和服务发现等领域。

    另外一个很重要的方面可能被规范名字的关键字“应用”弱化了,目前,AppC只包含了单个容器和单个pod,这也是Docker为什么要做集群,因为只有很少的应用能在单个容器/单个pod里就可以运行。 今天的讨论会里也提到了这个问题 。同样,AppC在应用的可移植方面考虑也欠妥。 Nulecule (发音类似:newly-cool)规范的初稿里尝试解决这个问题,将可移植性的概念拓展到整个应用,或者未来可以聚合的组件所提供的服务,并且允许描述多容器应用及其所有依赖组件。

    因此组委会需要在AppC中解决这些问题,目前我们只是刚刚开始漫漫旅程,Red Hat会通过社区对此持续跟进。

    要注意, AppC目前还不成熟,但与之相比更让人忧虑之处是rkt在推出Docker模型兼容接口的同时,还推出了自己的容器打包格式 。我一直认为Docker提出了非常棒的想法将增量打包,镜像分层和容器组合在一起。这个工具改变了业界软件交付的方式。而由于项目之间竞争而产生的多种不同的打包格式可能会给这个领域带来风险,并放缓技术发展的节奏。这将意味着生态系统的碎片化,给实际提供容器内容的公司带来痛苦,这些公司包括Red Hat,我们的ISV合作伙伴以及想要尝试引入容器化的用户们。

    在更为底层的组件级别,我们不得不使用dpkg,rpm和一些其他的东西,长期忍受这样的碎片化。回过头看看apt/dpkg和yum/rpm的PK, 不难发现两种组件之间的竞争并不会给用户带来巨大的好处,相反会有副作用。因为这意味着用户需要用多种格式提供相同的内容,要么enable整个工具链,在系统架构里同时管理这两种高度冗余的格式,要么更为糟糕地强制用户在这两种生态系统中选择其中一种。容器层高级别的聚合只是轻微地改善了这个问题,但是又增加了高层的复杂性,和与现代分布式系统的深度集成。

    AppC不支持Docker,主导讨论并且控制格式的公司会很快主宰容器打包标准。 甚至没给Docker公司发表自己观点的机会。这并不是过分指责Docker或者CoreOS,每个公司都有做自己想做的事情的权利 。实际上,我们现在有两个直接竞争的公司来推动容器标准化,他们使用竞争的工具链,竞争的规范和互不兼容的打包格式。这看上去就像 Groundhog Day 的火车相撞的慢镜头。我们,在广义的Linux和开源社区里,过去十五年已经发生过很多次类似的事情了,尤其在打包格式领域。

    虽然需要更多的时间和空间来验证,但是两个创业公司各自推出不兼容的规范,试图差异化同时又直接竞争,这不是什么好事情。如果CoreOS和Docker能够通力合作推出标准化的通用规范,镜像格式和分布式协议,那么会更有益于社区和所有需要使用这些技术的人们。目前,Red Hat会继续参与并推进这两种方式,期望以后能够合并统一。

    原文链接:rkt, AppC, and Docker: A Take on the Linux Container Upstream(翻译:崔婧雯 校对:郭蕾)  
    ===========================
    译者介绍
    崔婧雯,现就职于IBM,高级软件工程师,负责IBM WebSphere业务流程管理软件的系统测试工作。曾就职于VMware从事桌面虚拟化产品的质量保证工作。对虚拟化,中间件技术,业务流程管理有浓厚的兴趣。

    原文发布时间为:2015-05-07
    本文作者:崔婧雯
    本文来自云栖社区合作伙伴DockerOne,了解相关信息可以关注DockerOne。
    原文标题:【观点】CoreOS发起的AppC一定是好事?红帽的riekrh可不这么认为
    展开全文
  • 自由软件运动与GNU项目

    千次阅读 2016-12-10 04:38:52
    GNU是“GNU’s Not Unix”的无穷递归缩写,意为GNU不是UNIX(注:Gnu在英文中原意为非洲牛羚,发音与new相同)。目标是构建一整套完全由自由软件构成的UNIX OS体系。 图2. GNU的牛头标志  最初,他几乎...

    自由的追求

    【内容摘要】
      自由软件意味着自由的权利,而不仅仅是免费获取软件的能力。自由软件的本质:“使用者可以以任何目的运行程序、研究该软件如何开展工作、重新分发拷贝,此外还可以向公众重新发布它的原版或修改版。”


      理查德·马修·斯托曼(Richard Matthew Stallman,简称RMS)是自由软件之父,他是自由软件运动的精神领袖、GNU计划以及自由软件基金会的创立者。作为一个著名的黑客,他的主要成就包括Emacs及后来的GNU Emacs、GNU C编译器及GDB调试器。他编写的GNU通用公共许可证(GNU GPL)是世上最广为采用的自由软件许可证,为copyleft观念开拓出一条崭新的道路。

    这里写图片描述

    图1. Richard Matthew Stallman

      提起自由软件运动,人们总是不由想起比尔·盖茨和理查德·斯托曼。也许在此之前你并不知道理查德·斯托曼是谁,但你肯定知道比尔·盖茨。概括来说,比尔·盖茨是微软公司的创始人,软件版权制度的受益者,世界上的头号富翁;理查德·斯托曼是自由软件基金会的创始人,自由软件运动的领袖。
      比尔·盖茨和理查德·斯托曼,一个疾呼保护版权,打击盗版;另一个提倡自由复制,源码共享。他们是软件世界的两极,一个代表金钱,另一个代表自由。他们是针锋相对的两方。但是,他们的人生又是如此相似。他们的年龄相仿,都在大城市出生和长大,都进了哈佛大学,最早都是程序员。因为后来一些偶然的事件,使他们选择了不同的信念,走上了不同的道路。
      在计算机工业的发展史上,是先有硬件,再有软件的。最早的软件都是由硬件厂商编写,附在硬件上一起发售的。通常,这些软件本身都是免费的,代码可以被共享。但是,从上个世纪70年代起,随着硬件平台的成熟,导致硬件价格不断下跌,制造商开始期望软件能够带来额外的收入。于是,开始出现种种保护软件、对其收费的措施,越来越多的厂商开始单独销售软件,也不再提供软件的源代码,软件工业开始独立出来了。
      1976年,比尔·盖茨发表了“致计算机爱好者的公开信”。当时他21岁,两年前刚刚从哈佛大学退学,为一种叫“MITS Altair”的小型计算机全职工作,开发可以在其上运行的一种BASIC语言版本。他写这封公开信的目的就是为了谴责盗版,因为有人把他写的软件视为共享品,而在非法拷贝。他写道:
      “大多数地计算机爱好者心里一定清楚,你们当中地许多人都盗窃别人的软件。硬件是一定要付钱的,而软件却成了要共享的东西。有谁会在于编写软件的人是不是得到了应有的报酬呢?”……他接着声称,这种盗版行为的后果只会阻碍大家去编写好的软件。最后,他反问道:“有谁肯去做一无所获的技术工作?又有哪一位计算机爱好者愿意投入三年的工作量用于编程、纠错、撰写产品文档,最后却免费发布其产品?”
      后来的事情都已经成了历史,他提倡的软件版权专有模式获得了胜利。微软公司成了巨无霸,他本人成了亿万富翁。但是,并不是每一个人都认同这种模式的。程序员不再能自由得到和交流代码,让很多人感到非常无奈。更有人认为这是一种阻碍自由进步、禁锢思想、抑制创造的犯罪,从而立志要反抗它。理查德·斯托曼就是一个这样的人。
      斯托曼1953年出生于纽约,比盖茨大两岁。1970年进入哈佛大学,1974年以优异成绩毕业于物理学专业,而这一年刚好就是盖茨从哈佛大学退学的那一年。在大学期间,斯托曼就为麻省理工学院的人工智能(AI)实验室工作,充当程序员。毕业以后,他继续留在那里。在人工智能实验室,斯托曼已经进行了很多自由软件的开发,感到需要一个更大的团队。但是,一次实验室设备的更新让他感受到MIT的专利软件LispOS和他的理念格格不入。并且,一家软件公司买走了他们使用的软件的版权,挖走了计算中心的程序员,最后只剩下了斯托曼和另一个人,无事可干。
      他为专有软件的增长和随之而来的用户不再能够修改他们电脑上的程序而忧心忡忡。软件开发者被束缚,有悖自由精神的现象随之普遍发生。从这件事以后,斯托曼就决心发起自由软件运动,提供开放源码的软件,让所有人自由使用,把使用软件的自由还给程序员。在1983年春天,斯托曼发起了GNU项目,旨在开发一个自由的类Unix的操作系统。GNU 项目的创立,标志了自由软件运动的开始。GNU是“GNU’s Not Unix”的无穷递归缩写,意为GNU不是UNIX(注:Gnu在英文中原意为非洲牛羚,发音与new相同)。目标是构建一整套完全由自由软件构成的UNIX OS体系。

    这里写图片描述

    图2. GNU的牛头标志

      最初,他几乎是一个人与整个业界对抗,他既无钱也无权,唯一有的只是理想。他知道自己的目标几乎是一个不可完成的任务。它需要极度的投入和牺牲,这可能也正是它的魅力所在。正因如此,GNU项目一开始只是开发在UNIX上运行的自由软件。他先写了一些软件,免费提供他人使用,以此打开了GNU的知名度。他后来回忆道,“我没有把握完成这项工作,但是对我来说,知道是否能完成这项工作并不重要。关键在于,我已经开始行动了”。
      后来,斯托曼靠出售Emacs的磁带赚了点小钱,于是在1985年10月,创立了自由软件基金会(Free Software Foundation, FSF)。说是基金会,实际上根本没多少钱。斯托曼本人睡在计算中心的办公室里,当时他根本没有把握自己能获得收入。他说,“关键在于,我已经下定决心要干这件事了,那时候没有什么能够阻止我”。
      同在1985年,自由软件基金会发布了“自由软件通用许可证”,即GPL。这个许可证开头第一句这样写道:“大多数软件的许可证,设计用来剥夺你分发和修改它们的自由。GPL许可证与此恰恰相反,它就是为了保护你分发和修改自由软件的自由,确保这些软件对所有用户都是自由的。”总的来说,GPL许可证允许你做所有的事情,除了限制别人的自由。任何采用它的软件就是自由软件。
      后来,斯托曼与志同道合者开发出了GCC(GNU C Compiler)编译器。这是一个伟大的编译器,不仅自由免费,而且比其他商用专利编译器性能都要好。如今的GCC不仅能够支持C的编译,还能支持C++、Java等多种程序设计语言的编译。GNU的拳头产品,大概在1990年左右全部发布:Emacs、GCC、GLIBC、Bash shell。GNU的所有产品为了反专利,都使用GPL(General Public License)。因为GNU的理念是“版权制度是促进社会进步的手段,版权本身不是自然权利。”而这恰恰和比尔·盖茨那封著名的信真是相映成趣。
      比尔·盖茨曾经说过,“有谁肯去做一无所获的技术工作?又有哪一位计算机爱好者愿意投入三年的工作量用于编程、纠错、撰写产品文档,最后却免费发布其产品?”现在,他应该知道他错了,这样的人是存在了。自由软件运动至少证明了一点,在和金钱的较量中,热爱自由的人们不一定会输。
      自由软件的概念提出以来,在世界范围内的影响越来越大,越来越多的程序员加入了自由软件运动。以Linux为代表的一个完整的操作系统已经形成,在性能上完全可以替代、并且超过了微软的Window系统。这证明了无数志愿者出于兴趣和理想的无偿劳动和奉献,也完全可以做出最复杂的、质量第一流的工作。
      现在,虽然自由软件基金会已经发展壮大了。但是,斯托曼依然过着简朴的生活。他没有自己的汽车,住在租来的房子里,也没有结婚没有孩子,因为他觉得那样会变成挣钱的奴隶。他说,“自由软件运动的目的就是使得人们可以在不接受其他什么人统治的前提下,使用计算机,如果我一直在开发经营性软件,我就是在把自己的人生用来建造囚禁他人的监狱”。(斯托曼的征婚广告:http://stallman.org/extra/personal.html
      附上一张有点意思的照片:

    这里写图片描述

    图3. Richard Stallman和Julian Assange共同拿着Snowden的照片

      最后,引用英国IT作家Glyn Moody的一句话:“自由软件不仅仅是关于软件代码的,它们也与自由、分享有关,与社会有关。它们与创造有关,与美有关。这些代码深处寄托着我们最美好的心愿以及对最丑恶的东西的反抗,它将和人们的恒心共久长。”


      更多关于自由软件运动及理查德·斯托曼的介绍,可以查阅《FREE AS IN FREEDOM》一书,此书中文名为《若为自由故》。值得一提的是,这本书使用的是GFDL许可证(GNU Free Documentation License),也就是说,这是市面上极为少有的一本“自由”图书。在GFDL条款的保护下,读者可以自由地复制、分发和修改本书。可以访问http://faifchs.github.io/获取本书(中文)的电子版本,读者可以像给自由软件打补丁那样为该书打补丁,将Free as in Freedom的故事延续下去。当然你也可以阅读英文原版http://www.oreilly.com/openbook/freedom/
      另外,推荐阅读《The Cathedral & the Bazaar》,中文名为《大教堂与集市》。这本书被称为开源运动的《圣经》,颠覆了传统的软件开发思路,影响了整个软件开发领域。作者Eric S. Raymond是开源运动的旗手、黑客文化第一理论家,他讲述了开源运动中惊心动魄的故事,提出了大量充满智慧的观念和经过检验的知识,给所有软件开发人员带来启迪。


      这个故事告诉我们:当你决定坚持一件事情,全世界都会为你让路。

    展开全文
  • GNU和LINUX到底怎么个发音?怀恋在子夜.GNU应该是G-NU,中文就是“革奴”计划。gnu,[nju:],n. 牛羚, 角马,不过一般读"革奴".2.根據Torvalds的說法,Linux的發音和「Minix」是押韻的。「Li」中「i」的發音類...
  • Seata简介

    千次阅读 2020-01-22 14:29:58
    事务发起方在一阶段执行 Try 方式,在二阶段提交执行 Confirm 方法,二阶段回滚执行 Cancel 方法。 TCC 三个方法描述: Try:资源的检测和预留; Confirm:执行的业务操作提交;要求 Try 成功 Confirm 一定要能成功...
  • t rkt,发音为“ rocket”,是Pod原生容器引擎。 它具有用于在Linux上运行容器的命令行界面(CLI)。 从某种意义上说,它类似于Podman ,Docker和CRI-O等其他容器。 rkt最初是由CoreOS(后来被Red Hat收购)开发的...
  • 996ICU项目由国内程序员发起,在知名代码托管平台GitHub上广泛传开。程序员可以在上面揭露"996ICU"互联网公司,以抵制公司的996工作制度。 实行996工作制的大多数为互联网企业,其中又以程序员为主要岗位,此前就有...
  • 如果您希望进行此类讨论,请以发起者的身份进行评论。 在自动化行业中,许多工程师在进行 PLC 编程时甚至不使用 C 语言,而是常常使用 IEC61131 语言。为了激发大家对 Python 的兴趣,我将演示如何通过 Revolution ...
  •  Myeclipse是收费软件。有很多实用的功能方便我等敲代码。  但是没有系统的去了解其到底提供了那些功能。觉着应该有的功能却不知道怎么调出来用。 ... 寻觅吧(善用浏览器的 Ctrl+F 哦,推荐Chrome浏览器)。...
  • Spring Cloud源码分析(二)Ribbon

    千次阅读 2017-06-26 14:09:46
    函数,向一个实际的具体服务实例发起请求,从而实现一开始以服务名为host的URI请求,到实际访问host:post形式的具体地址的转换。 apply(final ServiceInstance instance) 函数中传入的 ServiceInstance 接口是对...
  • 这已经不是什么秘密,微软产品在研发阶段总会起一些 漂亮的 codename ,比如:WinFX的组件 Avalon,Indigo....所以一个叫JonGallowsy的家伙,在他的blog里发起了有趣的活动。为,WCF,WPF,WWF 寻找好的读法。WCF =
  • nginx优化管理

    2019-05-06 23:05:41
    nginx历史 Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器.Nginx是由俄罗斯人 Igor Sysoev为俄罗斯...
  • 从log上看,我们的循环任务严格按照每一秒发起一次,sleep(3000)对于任务的开启是没有影响的,也就是以上一个任务的开始时间 + 延迟时间 = 下一个任务的开始时间。 然后是scheduleWithFixedDelay: 从log...
  • GNU计划

    2017-03-05 21:22:35
    GNU计划,有译为“革奴计划”,是由理查德·斯托曼在1983年9月27日公开发起的,它的目标是创建一套完全自由的操作系统。[1] 理查德·斯托曼最早是在net.unix-wizards新闻组上公布该消息,并附带一份《GNU宣言》等...
  • ajax 中断请求

    2020-11-18 11:23:50
    发音:[əˈbɔːt] 如果该请求已被发出,XMLHttpRequest.abort()方法将终止该请求 当一个请求被终止,它的 readyState将被置为XMLHttpRequest.UNSENT(0),并且请求的status置为 0 (二)原生js代码 <...
  • emoji一词源于日语的“絵文字”(假名为“えもじ”),其中“絵”=图片,“文”=写,“字”=字符,罗马读音同emoji,故此得名。 2014年8月,牛津词典在线版把“emoji”添加到词汇中,将其定义为“一种用于在电子...
  • Google 在 2010 年发布了 SPDY(取自 SPeeDY,发音同 speedy),其 开发目标旨在解决 HTTP 的性能瓶颈,缩短 Web 页面的加载时间 (50%)。 SPDY - The Chromium Projects http://www.chromium.org/spdy/ ...
  • } } 该switch关键字发起声明,其次是(),它包含了各种情况下将比较值。在示例中,switch 语句的值或表达式为grade。在此表达一个限制是它必须评估为整型(int,char,short,long,long long,或enum)。 在块内部{...
  • 大家好,我是 Guide哥!端午已过,又要开始工作学习啦! 我发现有很多小伙伴对认证授权方面的知识不是特别了解,搞不清 Session 认证、...首先先从读音上来认识这两个名词,很多人都会把它俩的读音搞混,所以我建议你先
  • Hadoop 简介

    2020-01-12 11:50:46
    我的命名标准就是简短,容易发音和拼写,没有太多的意义,并且不会被用于别处。小孩子恰恰是这方面的高手 [2]    。” 优点 编辑 Hadoop是一个能够对大量数据进行 分布式处理 的 软件 框架。 ...
  • 变幻莫测的发音和韵律意味着一个单词可以以几乎无限多的方式发音,这使得语音合成变得棘手。基于单元拼接的语言合成集合了真实人类的语音片段,这种参数化合成的方法一直是语音行业的“天鹅绒奶酪”。2017年8月Siri...
  • 首先先从读音上来认识这两个名词,很多人都会把它俩的读音搞混,所以我建议你先先去查一查这两个单词到底该怎么读,他们的具体含义是什么。 说简单点就是: 认证 (Authentication):  你是谁。 授权 (Authorization...
  • python web service开发

    2019-08-19 20:08:58
    发音同engine x)是异步框架的 网页服务器 ,也可以用作 反向代理 、 负载平衡器 和 HTTP缓存 。该软件由 伊戈尔·赛索耶夫 创建并于2004年首次公开发布。2011年成立同名公司以提供支持。2019年3月11日,Nginx公司...
  • 不但纠正了发音,还把演讲进度控制在秒上,连每个单词做什么手势,他都练习到位。 正是因为孜孜不倦的追求精神,他的演讲最终征服了在场的国外知名教授们。当听到掌声与赞扬时,薛其坤觉得“像夏天很渴时喝了冰水...
  • 在教育方面,我们看到一些公司正在用AI改善学生的英语发音,帮助学生提升成绩,用个性化和游戏化的方式帮助学生学习数学。这将使教师从日常工作中解放出来,并使他们能够花时间为新兴一代的学生做更多鼓励性的工作。...
  • 2021-08-13

    千次阅读 2021-08-13 11:07:36
    著名的Caffe框架的发音和“咖啡”相似,是“快速特征提取的卷积框架”论文的英文简称。巧合的是,这个框架像咖啡一样流行。 这是贾扬清第一个C++项目,多年以后,他在阿里巴巴回忆:“最开始的时候没有测试,代码...
  • 精通博大精深的汉语的我们,要发起英文的音来应该没有任何问题吧。结果今天上听力课,被外教巴顿说我们的发音不对,于是便一个一个地纠正。比如说我说了个nerd,巴顿马上指出这个e音发的不对。结果我费了很大的功夫....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,014
精华内容 1,205
关键字:

发起读音