下文章来自于W3C 2016年12月17日发布在官网的英文纪念专题-CSS 20周年,总共5大部门,分别讲述了CSS诞生前后的故事,与之密切相关的浏览器,做出贡献的人和事,字体以及未来新方向:电子图书和图形处理接口。
在最后展望未来的章节中,提及目前现在常见的电子书都是由CSS制作的,EPUB这一最广泛的电子书格式标准将由W3C制定,也提及了最新发布的微信小程序对于APP的挑战以及对CSS的新要求。
https://www.w3.org/Style/CSS20/history.html
纪念网站中以时间线的形式显示了CSS发展各阶段的事件。
从1996年12月17日发布W3C发布第一个CSS标准,已经20年了
The saga of CSS starts in 1994. Håkon Wium Lie works at CERN – the cradle of the Web – and the Web is starting to be used as a platform for electronic publishing. One crucial part of a publishing platform is missing, however: There is no way to style documents. For example, there is no way to describe a newspaper-like layout in a Web page. Having worked on personalized newspaper presentations at the MIT Media Laboratory, Håkon saw the need for a style sheet language for the Web.
CSS的故事开始于1994年。HåkonWium Lie在CERN(--万维网的摇篮)工作 - ,Web当时正开始被用作电子出版的平台。 然而,发布平台的一个关键部分缺失:没有办法为文档设计样式。 例如,没有办法在网页中描述像报纸一样的布局。 有过在MIT媒体实验室工作过个性化的报纸展示的Håkon认为需要一种用于Web的样式表语言。
Style sheets in browsers were not an entirely new idea. The separation of document structure from the document's layout had been a goal of HTML from its inception in 1990. Tim Berners-Lee wrote his NeXT browser/editor in such a way that he could determine the style with a simple style sheet. However, he didn't publish the syntax for the style sheets, considering it a matter for each browser to decide how to best display pages to its users. In 1992, Pei Wei developed a browser called Viola, which had its own style sheet language.
浏览器中的样式表不是一个全新的想法。 文档结构与文档布局的分离从1990年开始就是HTML的一个目标。Tim Berners-Lee写了他的NeXT浏览器/编辑器,以使用简单的样式表来确定样式的方式。 然而,他没有发布样式表的语法,认为这是每个浏览器决定如何最好地向用户显示页面的事。 1992年,Pei Wei开发了一个名为Viola的浏览器,它有自己的样式表语言。
However, the browsers that followed offered their users fewer and fewer options to influence the style. In 1993, NCSA Mosaic, the browser that made the Web popular, came out. Stylewise, however, it was a backward step because it only allowed its users to change certain colors and fonts.
然而,随后的浏览器为他们的用户提供了越来越少的选择来影响风格。 在1993年,NCSA Mosaic,使Web流行的浏览器,出现了。 然而,在样式表,它落后一步,因为它只允许其用户更改某些颜色和字体。
Meanwhile, writers of Web pages complained that they didn't have enough influence over how their pages looked. One of the first questions from an author new to the Web was how to change fonts and colors of elements. At that time, HTML did not provide this functionality – and rightfully so. This excerpt from a message sent to the www-talk mailing list early in 1994 gives a sense of the tensions between authors and implementors:
同时,网页的作者抱怨说,他们对他们的页面看起来没有足够的影响。 来自刚接触Web作者的第一个问题是如何更改元素的字体和颜色。 当时,HTML没有提供这个功能 - 这是正确的。 摘自1994年初发送到www-talk邮件列表的消息,给出了作者和实现者之间的紧张感:
The message is available from the archives at http://www.webhistory.org/www.lists/www-talk.1994q1/0648.html
In fact, it has been a constant source of delight for me over the past year to get to continually tell hordes (literally) of people who want to -- strap yourselves in, here it comes -- control what their documents look like in ways that would be trivial in TeX, Microsoft Word, and every other common text processing environment: "Sorry, you're screwed."
事实上,在过去的一年里,这成为我高兴的不断源头,不断地告诉那些人们,希望在这里能够约束自己的文档。 像在TeX,Microsoft Word和其他常见的文本处理环境中一样:“对不起,你被拧了。"
The author of the message was Marc Andreessen, one of the programmers behind NCSA Mosaic. He later became a co-founder of Netscape, a company eager to fulfill the request of authors. On October 13, 1994, Marc Andreessen announced to www-talk that the first beta release of Mozilla (which later turned into Netscape Navigator) was available for testing. Among the new tags the new browser supported was center, and more tags were to follow shortly.
该消息的作者是Marc Andreessen,NCSA Mosaic背后的程序员之一。 他后来成为Netscape的联合创始人,Netscape渴望完成作者的要求。 1994年10月13日,Marc Andreessen在www-talk宣布,首次测试版Mozilla(后来改成Netscape Navigator)可以测试。 在新标签中,以支持新的浏览器为中心,并且很快会有更多标签。
The original is online.
Three days before Netscape announced the availability of its new browser, Håkon published the first draft of the Cascading HTML Style Sheets proposal. Behind the scenes, Dave Raggett (the main architect of HTML 3.0) had encouraged the release of the draft to go out before the upcoming Mosaic and the Web conference in Chicago. Dave had realized that HTML would and should never turn into a page-description language and that a more purpose-built mechanism was needed to satisfy requirements from authors. Although the first version of the document was immature, it provided a useful basis for discussion.
最开始是在线。
在Netscape宣布推出新浏览器前三天,Håkon发布了“级联HTML样式表”提案的第一稿。 在幕后,Dave Raggett(HTML 3.0的主要架构师)鼓励在即将到来的Mosaic和芝加哥网络会议之前发布草稿。 Dave意识到HTML将也不应变成页面描述语言,并且需要一个更专门的机制来满足作者的需求。 虽然文件的第一个版本不成熟,但它为讨论提供了有用的基础。
The Argo browser was part of a project to make the Internet accessible to scholars in the Humanities. It featured plug-ins (which it called applets) before Netscape added them. SeeStream-based Style sheet Proposal and Argo: summary of features.
Argo浏览器是让人文学者学习互联网的项目的一部分。 它的特色插件(它称为applets)在Netscape之前加入它们。 基于视图的样式表提案和Argo:特征摘要。
Among the people who responded to the first draft of CSS was Bert Bos. At that time, he was building Argo, a highly customizable browser with style sheets, and he decided to join forces with Håkon. Both of the two proposals look different from present-day CSS, but it is not hard to recognize the original concepts.
在回应CSS初稿的人中有Bert Bos。 当时,他正在建造Argo,一个高度可定制的浏览器与样式表,他决定与Håkon联手。 这两个建议与现在的CSS看起来不同,但是不难识别原始的概念。
One of the features of the Argo style language was that it was general enough to apply to other markup languages in addition to HTML. This also became a design goal in CSS and HTML was soon removed from the title of the specification. Argo also had other advanced features that didn't make it into CSS1, in particular, attribute selectors and generated text. Both features had to wait for CSS2.
Argo样式语言的一个特点是,除了HTML之外,它足够适用于其他标记语言。 这也成为CSS的一个设计目标,HTML很快就从规范的标题中删除。 Argo还有其他高级功能,没有使它进入CSS1,特别是属性选择器和生成的文本。 这两个功能都不得不等待CSS2。
Robert Raisch's message to www-talk is at http://www.webhistory.org/www.lists/www-talk.1993q2/0445.html
Cascading Style Sheets wasn't the only proposed style language at the time. There was Pei Wei's language from the Viola browser, and around 10 other proposals for style sheet languages were sent to the www-talk and www-html mailing lists. Then, there was DSSSL, a complex style and transformation language under development at ISO for printing SGML documents. DSSSL could conceivably be applied to HTML as well. But, CSS had one feature that distinguished it from all the others: It took into account that on the Web, the style of a document couldn't be designed by either the author or the reader on their own, but that their wishes had to be combined, or cascaded, in some way; and, in fact, not just the reader's and the author's wishes, but also the capabilities of the display device and the browser.
层叠样式表不是当时唯一提出的样式语言。 有来自Viola浏览器的Pei Wei的语言,大约10个其他的样式表语言提议被发送到www-talk和www-html邮件列表。 然后,DSSSL是一种复杂的样式和转换语言,在ISO下开发用于打印SGML文档。 DSSSL也可以应用于HTML。 但是,CSS有一个特点,它区别于所有其他:它考虑到,在Web上,文档的风格不能由作者或读者自己设计,但他们的愿望, 以某种方式组合或层叠; 事实上,不仅是读者和作者的愿望,而且还是显示设备和浏览器尚未具备的能力。
As planned, the initial CSS proposal was presented at the Web conference in Chicago in November 1994. The presentation at Developer's Day caused much discussion. First, the concept of a balance between author and user preferences was novel. A fictitious screen shot showed a slider with the label user on one side and author on the other. By adjusting the slider, the user could change the mix of his own preferences and those of the author. Second, CSS was perceived by some as being too simple for the task it was designed for. They argued that to style documents, the power of a full programming language was needed. CSS went in the exact opposite direction by making a point out of being a simple, declarative format.
按计划,最初的CSS提案在1994年11月在芝加哥的网络会议上提出。在开发人员日的演讲引起了很多讨论。 首先,作者和用户偏好之间的平衡的概念是新颖的。 虚拟屏幕截图显示了滑块,标签用户在一边,作者在另一边。 通过调整滑块,用户可以改变他自己的偏好和作者的偏好的混合。 第二,一些人认为CSS对于它设计的任务来说太简单了。 他们认为,要编写文档,需要一个完整的编程语言的力量。 CSS通过做出一个简单的,声明性的格式点走向了完全相反的方向。
WWW3, the third conference in the WWW series, was held on April 10–14, 1995, in Darmstadt, Germany
At the next WWW conference in April 1995, CSS was presented again. Both Bert and Håkon were there (in fact, this was the first time they met in person) and this time, they could also show implementations. Bert presented the support for style sheets in Argo, and Håkon showed a version of the Arena browser that had been modified to support CSS. Arena had been written by Dave Raggett as a testbed for new ideas, and one of them was style sheets. What started out as technical presentations ended up in political discussions about the author-reader balance. Representatives from the author side argued that the author ultimately had to be in charge of deciding how documents were presented. For example, it was argued that there may be legal requirements on how warning labels had to be printed and the user should not be able to reduce the font size for such warnings. The other side, where Bert and Håkon belong, argued that the user, whose eyes and ears ultimately have to decode the presentation, should be given the last word when conflicts arise.
WWW3是WWW系列的第三次会议,于1995年4月10 - 14日在德国达姆施塔特举行。
在1995年4月的下一次WWW会议上,再次提出了CSS。 Bert和Håkon都在那里(事实上,这是他们第一次见面),这一次,他们也可以显示实现。 Bert在Argo展示了对样式表的支持,Håkon展示了一个经过修改以支持CSS的Arena浏览器版本。Arena 由Dave Raggett编写,作为新想法的测试平台,其中之一是样式表。最开始的技术演示最终在关于作者 - 读者平衡的政治讨论。来自提交人一方的代表认为,提交人最终必须负责决定如何提交文件。例如,有人认为,可能存在关于如何打印警告标签的法律要求,并且用户不应该能够减小这种警告的字体大小。 Bert和Håkon所属的另一方认为,当眼睛和耳朵最终必须解码演示时,用户应该在出现冲突时给出最后一个词。
To subscribe to the mailing list or search the archives, see http://lists.w3.org/Archives/Public/www-style
要订阅邮件列表或搜索存档,请参阅http://lists.w3.org/Archives/Public/www-style
Outside of the political battles, the technical work continued. The www-style mailing list was created in May 1995, and the discussions there have often influenced the development of the CSS specifications. Almost 10 years later, there were more than 16,000 messages in the archives of the mailing list. And after 20 years, more than 80,000!
在政治斗争之外,技术工作继续。 www样式的邮件列表是1995年5月创建的,其中的讨论经常影响CSS规范的开发。 近10年后,邮件列表的档案中有超过16,000条信息。 而20年后,超过80,000!
Håkon Wium Lie, 12 December 1995
In 1995, the World Wide Web Consortium (W3C) also became operational. Companies were joining the Consortium at a high rate and the organization became established. Workshops on various topics were found to be a successful way for W3C members and staff to meet and discuss future technical development. It was therefore decided that another workshop should be organized, this time with style sheets as the topic. The W3C technical staff working on style sheets (namely Håkon and Bert) were now located in Sophia-Antipolis in Southern France where W3C had set up its European site. Southern France is not the worst place to lure workshop participants to, but because many of the potential participants were in the U.S., it was decided to hold the workshop in Paris, which is better served by international flights. The workshop was also an experiment to see if it was possible for W3C to organize events outside the U.S. Indeed, this turned out to be possible, and the workshop was a milestone in ensuring style sheets their rightful place on the Web. Among the participants was Thomas Reardon of Microsoft, who pledged support for CSS in upcoming versions of Internet Explorer.
1995年,万维网联盟(W3C)也开始运作。公司以高速率加入联盟并且组织成立。针对各种主题的研讨会被发现是W3C成员和工作人员会面和讨论未来技术发展的成功途径。因此,决定组织另一个讲习班,这次以样式表为主题。 W3C技术人员(即Håkon和Bert)现在位于法国南部的Sophia-Antipolis,W3C已经建立了其欧洲网站。法国南部不是吸引工作室参与者的最糟糕的地方,但由于许多潜在的参与者在美国,决定在巴黎举办工作室,国际航班提供更好的服务。该研讨会也是一个实验,以查看W3C是否可能组织美国以外的活动。事实上,这是可能的,这个研讨会是一个里程碑,确保样式表在Web上的合法位置。与会者包括Microsoft的Thomas Reardon,他们承诺在即将到来的Internet Explorer版本中支持CSS。
Bert Bos, 12 December 1995
At the end of 1995, W3C set up the HTML Editorial Review Board (HTML ERB) to ratify future HTML specifications. Because style sheets were within the sphere of interest of the members of the new group, the CSS specification was taken up as a work item with the goal of making it into a W3C Recommendation. Among the members of the HTML ERB was Lou Montulli of Netscape. After Microsoft signaled that it was adding CSS support in its browser, it was also important to get Netscape on board. Otherwise, we could see the Web diverge in different directions with browsers supporting different specifications. The battles within the HTML ERB were long and hard, but CSS level 1 finally emerged as a W3C Recommendation in December 1996.
在1995年年底,W3C成立了HTML编辑审查委员会(HTML ERB),以批准未来的HTML规范。 因为样式表在新的小组成员们感兴趣的范围内,CSS规范被作为一个工作项,目标是使其成为一个W3C推荐。 在HTML ERB的成员是Netscape的Lou Montulli。 在微软表示在浏览器中添加CSS支持后,获得Netscape支持也很重要。 否则,我们可能看到Web在不同方向上分歧,浏览器支持不同的规范。 HTML ERB中的战斗漫长而艰难,但是CSS level 1最终在1996年12月成为W3C推荐。
In February 1997, CSS got its own working group inside W3C and the new group set out to work on the features which CSS1 didn't address. The group was chaired by Chris Lilley, a Scotsman recruited to W3C from the University of Manchester. CSS level 2 became a Recommendation in May 1998. Since then, the group has worked in parallel on new CSS modules and errata for CSS 2.
1997年2月,CSS在W3C中有自己的工作组,新的小组开始研究CSS1没有解决的功能。 该小组由克里斯Lilley主持,一个苏格兰男子,从曼彻斯特大学招聘到W3C。 CSS level 2在1998年5月成为一个建议书。从那时起,该小组并行地为CSS 2工作了新的CSS模块和勘误表。
The W3C working group has members (around 15 in 1999, around 115 in 2016) who are delegated by the companies and organizations that are members of W3C. They come from all over the world, so themeetings are usually over the phone, and last about an hour every week. About four times each year, they meet somewhere in the world.
W3C工作组的成员(1999年约15名,2016年约115名)由W3C成员的公司和组织授权。 他们来自世界各地,所以会议通常是通过电话,每个星期大约一个小时。 每年大约四次,他们在世界上的某个地方见面。
The CSS saga is not complete without a section on browsers. Had it not been for the browsers, CSS would have remained a lofty proposal of only academic interest. The first commercial browser to support CSS was Microsoft's Internet Explorer 3, which was released in August 1996. At that point, the CSS1 specification had not yet become a W3C Recommendation and discussions within the HTML ERB were to result in changes that Microsoft developers, led by Chris Wilson, could not foresee. IE3 reliably supports most of the color, background, font, and text properties, but it does not implement much of the box model.
没有一章节在浏览器,CSS的故事是不完整的。 如果不是为浏览器,CSS将仍然是一个崇高的建议,只有学术兴趣。 第一个支持CSS的商业浏览器是微软的Internet Explorer 3,它于1996年8月发布。此时,CSS1规范还没有成为W3C推荐标准,HTML ERB中的讨论导致了微软开发人员, 由克里斯·威尔逊领导,无法预见的改变。 IE3可靠地支持大多数颜色,背景,字体和文本属性,但它未实现大多数箱模型。
The next browser to announce support for CSS was Netscape Navigator, version 4.0. Since its inception, Netscape had been skeptical toward style sheets, and the company's first implementation turned out to be a half-hearted attempt to stop Microsoft from claiming to be more standards-compliant than Netscape. The Netscape implementation supports a broad range of features – for example, floating elements – but the Netscape developers did not have time to fully test all the features that are supposedly supported. The result is that many CSS properties cannot be used in Navigator 4.
下一个宣布支持CSS的浏览器是Netscape Navigator 4.0版。 自成立以来,Netscape一直对样式表持怀疑态度,该公司的第一次实施是一个无热心的尝试,阻止微软声称比Netscape更符合标准。 Netscape实现支持范围广泛的功能 - 例如,浮动元素 - 但Netscape开发人员没有时间充分测试所有支持的功能。 结果是许多CSS属性不能在Navigator 4中使用。
Netscape implemented CSS internally by translating CSS rules into snippets of JavaScript, which were then run along with other scripts. The company also decided to let developers write JSSS, thereby bypassing CSS entirely. If JSSS had been successful, the Web would have had one more style sheet than necessary. This, fortunately for CSS, turned out not to be the case.
Netscape通过将CSS规则转换为JavaScript的代码段来内部实现CSS,然后与其他脚本一起运行。 该公司还决定让开发人员编写JSSS,从而完全绕过CSS。 如果JSSS已经成功,那么Web会再有一个样式表。 这个,对CSS来说是幸运的,结果没有成为现实。
Meanwhile, Microsoft continued its efforts to replace Netscape from the throne of reigning browsers. In Internet Explorer 4, the browser display engine, which among other things is responsible for rendering CSS, was replaced by a module code-named Trident. Trident removed many of the limitations in IE3, but also came with its own set of limitations and bugs. Microsoft was put under pressure by the Web Standards Project (WaSP), which published IE's Top 10 CSS Problems in November 1998 (see Figure 1).
Subsequent versions of Internet Explorer have considerably improved the support for CSS.
同时,微软继续努力取代Netscape从统治的浏览器的宝座。 在Internet Explorer 4中,浏览器显示引擎(其中包括负责渲染CSS)被替换为代码为Trident的模块。 Trident删除了IE3中的许多限制,但也带来了自己的一套限制和错误。 微软受到Web标准项目(WaSP,跟踪浏览器对W3C建议书的一致性)的压力,Web标准项目于1998年11月发布了IE的十大CSS问题(见图1)。
Internet Explorer的后续版本大大改进了对CSS的支持。
图1-Web标准项目于1998年11月发布的IE的十大CSS问题
The third browser that ventured into CSS was Opera. The browser from the small Norwegian company made headlines in 1998 by being tiny (it fit on a floppy!) and customizable while supporting most features found in the larger offerings from Microsoft and Netscape. Opera 3.5 was released in November 1998, and supported most of CSS1. The Opera developers (namely Geir Ivarsøy) also found time to test the CSS implementation before shipping, which is a novelty in this business. Håkon, was so impressed with Opera's technology that he joined the company as CTO in 1999. One important market for Opera's browser is mobile phones. By reformatting pages to fit on a small screen (@media is handy here), the Web has been freed from the desktop (see Figure 2).
冒险进入CSS的第三个浏览器是Opera,来自挪威的小型公司的浏览器在1998年成为头条新闻,因为它是微型的(它适合在软盘上),并且可以自定义,同时支持Microsoft和Netscape的大型产品中的大多数功能。 Opera 3.5于1998年11月发布,支持大部分CSS1。 Opera开发者(即GeirIvarsøy)投入时间来测试交付前的CSS实现,这在这个业务领域是新奇的。 Håkon对Opera的技术印象深刻,于1999年加入公司CTO。Opera浏览器的一个重要市场是手机。 通过重新格式化页面以适应小屏幕(@media在这里很方便),Web已从桌面脱离(见图2)。
Figure 2. Opera小屏幕渲染传送
The people at Netscape responded to the increasing competition with a move that was novel at the time: They released the source code for the browser. With the source code public, anyone could inspect the internals of their product, improve it, and make competing browsers based on in. Much of the code, including the CSS implementation, was terminated shortly after the release, and the Mozillaproject was formed to build a new generation browser. CSS was in important specification to handle and countless hours have been spent by volunteers to make sure pages are displayed according to the specification. Several browsers have been based on the Mozilla code, including Galeon and Firefox.
Netscape的职员对竞争的日益激烈作出反应,当时的小说是他们发布浏览器的源代码。 随着源代码公开,任何人都可以检查他们的产品的内部,改进它,并使竞争浏览器基于它。包括CSS实现的许多代码在发布后不久被终止,并且Mozilla项目组件以构建 新一代浏览器。 CSS是一个处理的重要规范并且志愿者花费了无数小时,以确保页面根据规范显示。 有几个浏览器基于Mozilla代码,包括Galeon和Firefox。
Apple is often seen as a technology pioneer, but for a long time, it did not spend much resources on Web browsers. Apple left it to Microsoft to build a browser for its machines, and Internet Explorer for Mac actually had better support for CSS than the Windows version of the browser. In 2003, Microsoft discontinued support for the Mac and Apple announced a new browser called Safari. Safari isn't entirely new – it is based on the open source Konqueror browser, which was developed for the KDE system running on Linux.
苹果通常被视为技术先驱,但很长一段时间,它没有在Web浏览器上花费太多资源。 苹果将它留给微软为其机器构建一个浏览器,而Internet Explorer for Mac实际上比Windows版本的浏览器更好地支持CSS。 在2003年,微软停止了对Mac的支持,苹果宣布了一个名为Safari的新浏览器。 Safari不是全新的 - 它是基于开源的Konqueror浏览器,是为在Linux上运行的KDE系统开发的。
Tantek Çelik is an editor of the CSS 2.1 specification and for a long time he was a Microsoft employee. His efforts within the company resulted in very good support for CSS in Internet Explorer for the MacIntosh. Unfortunately, the code was not been ported to the Windows platform.
TantekÇelik是CSS 2.1规范的一个编写者,很长一段时间他是一名微软员工。 他在公司内的努力导致在MacIntosh中非常好的支持CSS的Internet Explorer。 不幸的是,代码没有移植到Windows平台。
For Web designers, it is good news to have several competing products based on Web standards. Although some efforts to test that your pages display well in all browsers are necessary, the fact that Web pages can be displayed on a wide range of machines is a huge improvement from the past:
对于Web设计师来说,有几个基于Web标准的竞争产品是个好消息。 虽然一些努力在测试您的网页在所有浏览器中显示良好是必要的,但事实上从过去网页可以显示在广泛的机器上是一个巨大的进步:
Anyone who slaps a this page is best viewed with Browser X label on a Web page appears to be yearning for the bad old days, before the Web, when you had very little chance of reading a document written on another computer, another word processor, or another network.
– Tim Berners-Lee in Technology Review, July 1996
任何使用此页面的用户最好查看网页上显示的X标签,在Web之前,当您很少有机会阅读在另一台计算机上,另一个文字处理器, 或另一网络写的文档。
- Tim Berners-Lee在技术评论,1996年7月
The CSS saga isn't only about Web browsers. Many people outside of the few that program Web browsers have made important contributions to CSS over the past years.
CSS 的故事不仅仅是Web浏览器。 许多在少数几个Web浏览器项目之外的人在过去几年对CSS作出了重要贡献。
The CSS1 test suite was a landmark development for CSS and W3C. When the first two CSS implementations came out and could be compared, we realized there was a problem. You could not expect the style sheet tested only in one browser to work in the other browser. To rectify the situation, Eric Meyer – with help from countless other volunteers – developed a test suite that implementors would test against while there still was time to fix the problems. Todd Fahrner created the acid test in October 1998, which became the ultimate challenge. See Figure 3.
CSS1测试套件是CSS和W3C的一个里程碑式的开发。 当 前两个CSS实现出来并可以进行比较时,我们意识到有一个问题。 您不能期望只在一个浏览器中测试的样式表在其他浏览器中工作。 为了纠正这种情况,Eric Meyer在无数其他志愿者的帮助下开发了一个测试套件,实施者将在有时间解决问题时进行测试。 Todd Fahrner在1998年10月创建了酸性测试,这成为了最终的挑战。 参见图3。
Figure 3. The acid test.酸性测试
Brian's index dot CSS is still available from http://www.blooberry.com/indexdot/css/index.html
When a test suite is available, someone must do the testing. Brian Wilson has done a remarkable job of testing CSS implementations and making the results available on the Web.
Brian的index点CSS仍然可以从http://www.blooberry.com/indexdot/css/index.html获得
当测试套件可用时,有人必须进行测试。 Brian Wilson在测试CSS实现方面做了出色的工作,并使结果在网络上可用。
We should also mention the work in more recent years of Gérard Talbot and Geoffrey Sneddon on the official CSS testuite. And of course of Peter Linss, whose Shepherd server is a great help in seeing what tests exist, running them, and generating reports of results.
我们还应该提到最近几年的GérardTalbot和Geoffrey Sneddon在官方CSS测试中的工作。 当然,Peter Linss,,他的牧羊人服务器是一个伟大的帮助,看看什么测试存在,运行它们,并生成结果的报告。
Without compelling content, CSS hasn't served its purpose. Dave Shea created the CSS Zen garden to show fellow graphics artists why CSS should be taken seriously. He, along with the many people who created submissions, showed people how to use CSS creatively.
The Web site for the Prince formatter is http://www.yeslogic.com
没有引人注目的内容,CSS无法达到它的目的。 Dave Shea创建了CSS Zen花园,向同伴们展示为什么应该认真考虑CSS。 他和许多创建提交的人一起,向人们展示了如何创造性地使用CSS。
Prince formatter的网站是http://www.yeslogic.com
The Web has been trapped on the desktop for too long. Making it available on mobile phones is one important escape. Michael Day and Xuehong Liu have shown us another way out: The Prince formatter converts HTML and XML documents to PDF and is entirely based on CSS. This product enabled Håkon and Bert to abandon traditional word processors and use Web standards. Their book was written entirely in HTML and CSS.
Web已被困在桌面上太长时间了。 使它在手机上可用是一个重要的逃脱。 Michael Day和刘学红向我们展示了另一种出路:王子格式化器将HTML和XML文档转换为PDF,完全基于CSS。 该产品使Håkon和Bert放弃了传统的文字处理器并使用Web标准。 他们的书完全用HTML和CSS编写
CSS level 2 contained a feature called Web Fonts, i.e., the ability to embed fonts in a Web document. The idea was that a designer who wanted a specific font could actually provide the font along with the style sheet. During ten years, only Microsoft's Internet Explorer browser implemented that feature. (Netscape for a short period implemented an alternative, which didn't use CSS, wasn't as good, and was probably illegal in many countries because it slightly changed how each font looked.)
CSS level 2包含一个称为Web字体的功能,即在Web文档中嵌入字体的能力。 想法是,想要一个特定字体的设计师实际上可以提供字体和样式表。 十年来,只有微软的Internet Explorer浏览器实现了这一功能。 (Netscape在短期内实现了一个替代方案,它没有使用CSS,不是那么好,在许多国家可能是非法的,因为它稍微改变了每种字体的样子。)
The reason Web Fonts didn't get implemented was twofold. First of all there were few fonts whose copyright allowed them to be distributed. Most fonts could be used to print documents locally, but you weren't allowed to put them on the Web.
Web Fonts没有得到实现的原因有两个。 首先,没有几个字体的版权允许他们分发。 大多数字体可以用于在本地打印文档,但是不允许将它们放在Web上。
Secondly, Microsoft and Monotype had developed a format called EOT (Embedded OpenType), which contained inside the fonts the names (URLs) of the documents that could be rendered with them. This allowed an EOT font to be made available on the Web alongside a document, because it now couldn't be used for any other document. But, the format was proprietary and nobody else but Microsoft could use it.
其次,Microsoft和Monotype开发了一种名为EOT(Embedded OpenType)的格式,其中包含字体内可以用它们呈现的文档的名称(URLs)。 这允许EOT字体在文档旁边的Web上可用,因为它现在不能用于任何其他文档。 但是,格式是专有的,仅微软可以使用它。
All that changed in early 2008. By then there were many more free fonts, i.e., fonts whose designers allowed them to be distributed for free on the Web. Håkon therefore started lobbying browser makers to finally implement Web Fonts (for fonts in the standard TrueType and OpenType formats) and Bert asked Microsoft if they couldn't open up EOT, so that others could implement it, too. In May, Microsoft and Monotype submitted EOT to W3C under a royalty-free license. And browsers started implementing support for downloading TrueType and OpenType fonts.
所有这些都在2008年初发生了变化。那时,有更多的免费字体,即设计师允许他们在网上免费分发的字体。 Håkon因此开始游说浏览器制造商最终实现Web字体(对于标准TrueType和OpenType格式的字体),Bert询问Microsoft是否无法开源EOT,以便其他人也能实现它。 5月,微软和Monotype在免版税许可证下向W3C提交了EOT。 浏览器开始实现下载TrueType和OpenType字体的支持。
After further discussion, however, most browser makers decided not to implement EOT, but ask W3C to develop a new font format instead. The reason was that that they preferred to use the gzip compression algorithm (which was already used for HTTP) rather than add new code for the MicroType Express algorithm used by EOT.
经过进一步的讨论,然而,大多数浏览器制造商决定不实施EOT,而是要求W3C开发一种新的字体格式。 原因是他们更喜欢使用gzip压缩算法(已经用于HTTP),而不是为EOT使用的MicroType Express算法添加新的代码。
That new format became WOFF. Rather than embed the URL of a document in the font, it relies on an HTTP feature (the origin header), which allows to give the domain part of a document's URL: less precise than a full URL, but still good enough for most font makers.
这种新格式成为WOFF。 它不是将文档的URL嵌入到字体中,而是依赖于HTTP特征(原始标题),这允许给予文档的URL的域部分:不如完整的URL精确,但对于大多数字体制造商仍然足够好 。
In the end, however, WOFF still adopted parts of EOT's MicroType Express algorithm, and a new compression algorithm (Brotli), because it allowed better compression than gzip.
最后,WOFF仍然采用EOT的MicroType Express算法的一部分和一个新的压缩算法(Brotli),因为它允许比gzip更好的压缩。
Web Fonts have become very popular. Free fonts are used directly in the TrueType or OpenType format in which they were made. Less free fonts use the WOFF and EOT formats.
Web字体已经变得非常受欢迎。 自由字体直接在TrueType或OpenType格式中使用。 较少的免费字体使用WOFF和EOT格式。
Examples of font services are Font Library, Adobe Edge Web Fonts, Typekit (now owned by Adobe), Font Squirrel, Google Fonts,WebType and Type Network.
字体服务的示例是字体库,Adobe Edge Web字体,Typekit(现在由Adobe拥有),Font Squirrel,Google字体,WebType和类型网络。
There are now online services where you can find and download fonts (both free and non-free). And some even offer to host the fonts on their servers. In some cases even for free. (Which means they provide bandwidth, but in return they gather statistics on font usage).
现在有在线服务,您可以在其中找到和下载字体(免费和非免费)。 有些甚至提供在他们的服务器上托管字体。 在某些情况下甚至是免费的。 (这意味着他们提供带宽,但作为回报他们收集关于字体使用的统计数据)。
The development of CSS hasn't stopped. Far from it. CSS now has more than 60 modules that define different capabilities, some already part of the standard, some still in development.
CSS的发展还没有停止。 离停止还很远。 CSS现在有超过60个模块定义不同的功能,一些已经是标准的一部分,一些仍在开发中。
E.g., between the summer of 2010 and the summer of 2016, French publisher Hachette Livre sold fifty million books made with CSS. (Data provided by Dave Cramer.)
例如,在2010年夏天和2016年夏天之间,法国出版商Hachette Livre出售了五千万本用CSS制作的书籍。 (数据由Dave Cramer提供。)
It is now common that books are made with CSS. Not all books, though, because CSS is still missing features for the more complex layouts. That is one direction in which the language is being extended.
现在常见的是书籍是用CSS制作的。 不是所有的书,虽然,因为CSS仍然缺少的功能更复杂的布局。 这是扩展语言的一个方向。
E-books also use CSS, which requires yet other features. EPUB is the most widely implemented format for e-books. It was developed by IDPF. IDPF and W3C are currently (December 2016) in the process of merging their operations. The next EPUB version should then be made at W3C and the development of CSS features for books and e-books will be easier.
电子书也使用CSS,这需要其他功能。 EPUB是电子书最广泛实施的格式。 它是由IDPF开发的。 IDPF和W3C目前(2016年12月)正在合并其业务。 下一个EPUB版本应该在W3C制定,并且对于图书和电子书的CSS功能的开发将更容易。
The development of programs (apps) that use graphical user interfaces made out of HTML and CSS has also put new demands on CSS. Some of the latest modules of CSS deal with layout of user interfaces rather than documents. Although: as they are part of the same CSS, nothing prohibits their use for documents, too, if a part of a document happens to have a mark-up structure that allows it.
使用由HTML和CSS制作的图形用户界面的程序(应用程序)的开发也对CSS提出了新的要求。 CSS的一些最新模块处理用户界面的布局,而不是文档。 虽然:因为它们是同一CSS的一部分,所以如果文档的一部分恰好具有允许它的标记结构,则也不禁止它们用于文档。
Over time, some browsers and other implementations have disappeared, and new ones have been created. There are now also languages derived from CSS for other purposes than styling documents. Probably the first language that used the syntax of CSS (but not the cascading and inheritance model) was STTS, by Daniel Glazman. That was in 1998. Since then others have made their appearance. Three that are currently in use are Qt Style Sheets for styling widgets in the Qt GUI toolkit, JavaFX Style Sheets, which does the same for the JavaFX UI widgets of Java, and MapCSS for describing the style of maps.
随着时间的推移,一些浏览器和其他实现消失了,并创建了新的。 现在还有从CSS派生的语言用于其他目的,而不是样式文档。 使用CSS的语法(但不是层叠和继承模型)的第一种语言可能是由Daniel Glazman的STTS。 那是在1998年。从那时起,其他人出现了。 当前使用的三个是用于Qt GUI工具包中的样式小部件的Qt样式表,JavaFX样式表,其对于Java的JavaFX UI小部件也是相同的,并且MapCSS用于描述地图的样式。
It is difficult to count how widely CSS is used, but the number of HTML pages that does not use CSS is probably not more than a few percent. Many people make their living as CSS designers or from CSS conferences. And the number of books written about CSS can no longer be counted.
很难计算CSS的使用范围,但是不使用CSS的HTML页面的数量可能不会超过百分之几。 许多人将他们的生活作为CSS设计师或从CSS会议。 关于CSS书的数量不能再被计数。
Some day CSS will be replaced by something else. But before that, CSS will have time to celebrate its 21st birthday…
将来CSS会被别的东西取代。 但在此之前,CSS将有时间庆祝它的21岁生日...
On December 17, 1996, W3C published the first standard for CSS. And thus from December 17, 2016 until one year later, CSS is 20 years old.
January 2017
IDPF & W3C join to develop e-book standards
17 December 2016
20th anniversary of CSS level 1
7 November 2016
CSS Intro course, a MOOC on W3Cx
12 April 2016
First draft of 2nd revision of CSS level 2
12 November 2014
Philae lands on comet 67P
25 June 2013
W3C creates the Digital Publishing IG
13 December 2012
W3C Recommendation for WOFF 1.0
3 April 2012
Final version of jlreq
18 June 2011
MapCSS, CSS-like styles for maps
11 March 2011
Fukushima Daiichi nuclear disaster
27 July 2010
First draft of WOFF 1.0
April 2010
caniuse.com (‘Can I use?’) browser support tables
August 2009
LESS CSS pre-processor
2 June 2009
JavaFX CSS, CSS-like styles for GUIs
26 May 2008
Microsoft & Monotype open the EOT format
October 2007
EPUB 2.0 standard released
18 December 2006
Fuji CSS Validator released (more)
October 2005
Sass CSS pre-processor
17/18 October 2006
W3C Print Symposium in Heidelberg
4 October 2006
Qt Style Sheets, CSS-like styles for GUIs
13 April 2005
Acid2 test by Håkon Lie & Ian Hickson
13–29 August 2004
Summer Olympics in Athens
7 May 2003
Dave Shea launches the CSS Zen Garden
2 August 2002
First draft of revised CSS level 2.
11 October 2001
W3C Recommendation of XSL 1.0
4 September 2001
W3C Recommendation of SVG 1.0
15 January 2001
Start of Wikipedia
22 June 1999
First 3 CSS3 drafts: Color Profiles, Multi-column layout, and Paged Media
29 January 1999
CSS1 Test Suite (press release) with Todd Fahrner's Box Acid Test
11 January 1999
W3C revises CSS level 1 Recommendation
4 September 1998
Google is founded
12 May 1998
W3C publishes CSS level 2 Recommendation; read the press release
30 March 1998
First beta of CSS Validator announced.
4 November 1997
First Public Working Draft of CSS Level 2 (CSS2); read the press release
17 December 1996
W3C Recommendation of CSS level 1; read the press release
13 August 1996
MSIE 3 browser, with support for CSS
5 July 1996
Birth of Dolly the sheep
27 November 1995
Experimental support for CSS in W3C's Arena browser
6-7 November 1995
W3C Workshop on Style Sheets in Rocquencourt, France
24 August 1995
Release of Windows 95
10 October 1994
Håkon's e-mail to www-talk@w3.org
言
平时的工作中经常碰到很多疑难问题的处理,在解决问题的同时,有一些工具起到了相当大的作用,在此书写下来,一是作为笔记,可以让自己后续忘记了可快速翻阅,二是分享,希望看到此文的同学们可以拿出自己日常觉得帮助很大的工具,大家一起进步。闲话不多说,开搞。
最常用的tail -f
tail -300f shopbase.log #倒数300行并进入实时监听文件写入模式
grep forest f.txt #文件查找
grep forest f.txt cpf.txt #多文件查找
grep 'log' /home/admin -r -n #目录下查找所有符合关键字的文件
cat f.txt | grep -i shopbase
grep 'shopbase' /home/admin -r -n --include *.{vm,java} #指定文件后缀
grep 'shopbase' /home/admin -r -n --exclude *.{vm,java} #反匹配
seq 10 | grep 5 -A 3 #上匹配
seq 10 | grep 5 -B 3 #下匹配
seq 10 | grep 5 -C 3 #上下匹配,平时用这个就妥了
cat f.txt | grep -c 'SHOPBASE'
1.基础命令
awk '{print $4,$6}' f.txt
awk '{print NR,$0}' f.txt cpf.txt
awk '{print FNR,$0}' f.txt cpf.txt
awk '{print FNR,FILENAME,$0}' f.txt cpf.txt
awk '{print FILENAME,"NR="NR,"FNR="FNR,"$"NF"="$NF}' f.txt cpf.txt
echo 1:2:3:4 | awk -F: '{print $1,$2,$3,$4}'
2.匹配
awk '/ldb/ {print}' f.txt #匹配ldb
awk '!/ldb/ {print}' f.txt #不匹配ldb
awk '/ldb/ && /LISTEN/ {print}' f.txt #匹配ldb和LISTEN
awk '$5 ~ /ldb/ {print}' f.txt #第五列匹配ldb
3.内建变量
NR:NR表示从awk开始执行后,按照记录分隔符读取的数据次数,默认的记录分隔符为换行符,因此默认的就是读取的数据行数,NR可以理解为Number of Record的缩写。
FNR:在awk处理多个输入文件的时候,在处理完第一个文件后,NR并不会从1开始,而是继续累加,因此就出现了FNR,每当处理一个新文件的时候,FNR就从1开始计数,FNR可以理解为File Number of Record。
NF: NF表示目前的记录被分割的字段的数目,NF可以理解为Number of Field。
sudo -u admin find /home/admin /tmp /usr -name *.log(多个目录去找)
find . -iname *.txt(大小写都匹配)
find . -type d(当前目录下的所有子目录)
find /usr -type l(当前目录下所有的符号链接)
find /usr -type l -name "z*" -ls(符号链接的详细信息 eg:inode,目录)
find /home/admin -size +250000k(超过250000k的文件,当然+改成-就是小于了)
find /home/admin f -perm 777 -exec ls -l {} ; (按照权限查询文件)
find /home/admin -atime -1 1天内访问过的文件
find /home/admin -ctime -1 1天内状态改变过的文件
find /home/admin -mtime -1 1天内修改过的文件
find /home/admin -amin -1 1分钟内访问过的文件
find /home/admin -cmin -1 1分钟内状态改变过的文件
find /home/admin -mmin -1 1分钟内修改过的文件
批量查询vm-shopbase满足条件的日志
pgm -A -f vm-shopbase 'cat /home/admin/shopbase/logs/shopbase.log.2017-01-17|grep 2069861630'
tsar是咱公司自己的采集工具。很好用, 将历史收集到的数据持久化在磁盘上,所以我们快速来查询历史的系统数据。当然实时的应用情况也是可以查询的啦。大部分机器上都有安装。
tsar ##可以查看最近一天的各项指标
tsar --live ##可以查看实时指标,默认五秒一刷
tsar -d 20161218 ##指定查看某天的数据,貌似最多只能看四个月的数据
tsar --mem
tsar --load
tsar --cpu
##当然这个也可以和-d参数配合来查询某天的单个指标的情况
top除了看一些基本信息之外,剩下的就是配合来查询vm的各种问题了
ps -ef | grep java
top -H -p pid
获得线程10进制转16进制后jstack去抓看这个线程到底在干啥
netstat -nat|awk '{print $6}'|sort|uniq -c|sort -rn
#查看当前连接,注意close_wait偏高的情况,比如如下
首当其冲的要说的是btrace。真是生产环境&预发的排查问题大杀器。简介什么的就不说了。直接上代码干
1.查看当前谁调用了ArrayList的add方法,同时只打印当前ArrayList的size大于500的线程调用栈
2.监控当前服务方法被调用时返回的值以及请求的参数
其他功能集团的一些工具或多或少都有,就不说了。感兴趣的请移步。https://github.com/btraceio/btrace
注意:经过观察,1.3.9的release输出不稳定,要多触发几次才能看到正确的结果正则表达式匹配trace类时范围一定要控制,否则极有可能出现跑满CPU导致应用卡死的情况由于是字节码注入的原理,想要应用恢复到正常情况,需要重启应用。
Greys是@杜琨的大作吧。说几个挺棒的功能(部分功能和btrace重合):
sc -df xxx: 输出当前类的详情,包括源码位置和classloader结构
trace class method: 相当喜欢这个功能! 很早前可以早JProfiler看到这个功能。打印出当前方法调用的耗时情况,细分到每个方法。对排查方法性能时很有帮助,比如我之前这篇就是使用了trace命令来的:http://www.atatech.org/articles/52947。
其他功能部分和btrace重合,可以选用,感兴趣的请移步。http://www.atatech.org/articles/26247
另外相关联的是arthas,他是基于Greys的,感兴趣的再移步http://mw.alibaba-inc.com/products/arthas/docs/middleware-container/arthas.wiki/home.html?spm=a1z9z.8109794.header.32.1lsoMc
就说一个功能classes:通过修改了字节码,改变了类的内容,即时生效。所以可以做到快速的在某个地方打个日志看看输出,缺点是对代码的侵入性太大。但是如果自己知道自己在干嘛,的确是不错的玩意儿。
其他功能Greys和btrace都能很轻易做的到,不说了。
可以看看我之前写的一篇javOSize的简介http://www.atatech.org/articles/38546官网请移步http://www.lxlinux.net/
之前判断许多问题要通过JProfiler,但是现在Greys和btrace基本都能搞定了。再加上出问题的基本上都是生产环境(网络隔离),所以基本不怎么使用了,但是还是要标记一下。官网请移步https://www.ej-technologies.com/products/jprofiler/overview.html
可作为eclipse的插件,也可作为单独的程序打开。 详情请移步http://www.eclipse.org/mat/
集团内的开发应该是无人不知无人不晓了。简而言之一句话:有了zprofiler还要mat干嘛详情请移步zprofiler.alibaba-inc.com
我只用一条命令:
sudo -u admin /opt/taobao/java/bin/jps -mlvV
普通用法:
sudo -u admin /opt/taobao/install/ajdk-8_1_1_fp1-b52/bin/jstack 2815
native+java栈:
sudo -u admin /opt/taobao/install/ajdk-8_1_1_fp1-b52/bin/jstack -m 2815
可看系统启动的参数,如下
sudo -u admin /opt/taobao/install/ajdk-8_1_1_fp1-b52/bin/jinfo -flags 2815
jmap
两个用途
1.查看堆的情况
sudo -u admin /opt/taobao/install/ajdk-8_1_1_fp1-b52/bin/jmap -heap 2815
2.dump
sudo -u admin /opt/taobao/install/ajdk-8_1_1_fp1-b52/bin/jmap -dump:live,format=b,file=/tmp/heap2.bin 2815
或者
sudo -u admin /opt/taobao/install/ajdk-8_1_1_fp1-b52/bin/jmap -dump:format=b,file=/tmp/heap3.bin 2815
3.看看堆都被谁占了? 再配合zprofiler和btrace,排查问题简直是如虎添翼
sudo -u admin /opt/taobao/install/ajdk-8_1_1_fp1-b52/bin/jmap -histo 2815 | head -10
jstat参数众多,但是使用一个就够了
sudo -u admin /opt/taobao/install/ajdk-8_1_1_fp1-b52/bin/jstat -gcutil 2815 1000
时至今日,jdb也是经常使用的。 jdb可以用来预发debug,假设你预发的java_home是/opt/taobao/java/,远程调试端口是8000.那么
sudo -u admin /opt/taobao/java/bin/jdb -attach 8000.
出现以上代表jdb启动成功。后续可以进行设置断点进行调试。具体参数可见oracle官方说明http://docs.oracle.com/javase/7/docs/technotes/tools/windows/jdb.html
CHLSDB感觉很多情况下可以看到更好玩的东西,不详细叙述了。查询资料听说jstack和jmap等工具就是基于它的。
sudo -u admin /opt/taobao/java/bin/java -classpath /opt/taobao/java/lib/sa-jdi.jar sun.jvm.hotspot.CLHSDB
更详细的可见R大此贴http://rednaxelafx.iteye.com/blog/1847971
快捷键一次你记不住,多来几次你总能记住了吧?
分析maven依赖的好帮手。
-XX:+TraceClassLoading
结果形如[Loaded java.lang.invoke.MethodHandleImpl$Lazy from D:programmejdkjdk8U74jrelibt.jar]
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/admin/logs/java.hprof
集团的vm参数里边基本都有这个选项
把这个单独写个大标题不过分吧?每个人或多或少都处理过这种烦人的case。我特么下边这么多方案不信就搞不定你?
mvn dependency:tree > ~/dependency.txt打出所有依赖
mvn dependency:tree -Dverbose -Dincludes=groupId:artifactId只打出指定groupId和artifactId的依赖关系
-XX:+TraceClassLoadingvm启动脚本加入。在tomcat启动脚本中可见加载类的详细信息
-verbosevm启动脚本加入。在tomcat启动脚本中可见加载类的详细信息
greys:scgreys的sc命令也能清晰的看到当前类是从哪里加载过来的
tomcat-classloader-locate通过以下url可以获知当前类是从哪里加载的curl http://localhost:8006/classloader/locate?class=org.apache.xerces.xs.XSObject
1.列出容器加载的jar列表curl http://localhost:8006/classloader/jars
2.列出当前当当前类加载的实际jar包位置,解决类冲突时有用curl http://localhost:8006/classloader/locate?class=org.apache.xerces.xs.XSObject
gprefhttp://www.atatech.org/articles/33317
dmesg如果发现自己的java进程悄无声息的消失了,几乎没有留下任何线索,那么dmesg一发,很有可能有你想要的。
sudo dmesg|grep -i kill|less
去找关键字oom_killer。找到的结果类似如下:
[6710782.021013] java invoked oom-killer: gfp_mask=0xd0, order=0, oom_adj=0, oom_scoe_adj=0
[6710782.070639] [<ffffffff81118898>] ? oom_kill_process+0x68/0x140
[6710782.257588] Task in /LXC011175068174 killed as a result of limit of /LXC011175068174
[6710784.698347] Memory cgroup out of memory: Kill process 215701 (java) score 854 or sacrifice child
[6710784.707978] Killed process 215701, UID 679, (java) total-vm:11017300kB, anon-rss:7152432kB, file-rss:1232kB
以上表明,对应的java进程被系统的OOM Killer给干掉了,得分为854.解释一下OOM killer(Out-Of-Memory killer),该机制会监控机器的内存资源消耗。当机器内存耗尽前,该机制会扫描所有的进程(按照一定规则计算,内存占用,时间等),挑选出得分最高的进程,然后杀死,从而保护机器。
dmesg日志时间转换公式:log实际时间=格林威治1970-01-01+(当前时间秒数-系统启动至今的秒数+dmesg打印的log时间)秒数:
date -d "1970-01-01 UTC `echo "$(date +%s)-$(cat /proc/uptime|cut -f 1 -d' ')+12288812.926194"|bc ` seconds"
剩下的,就是看看为什么内存这么大,触发了OOM-Killer了。
子简历
把每一次机会都当作新的开始虚心且踏实用尽全力走好每一步
女28岁本科13800138000BD@100chui.com
求职意向
html5前端设计 广州 薪资面议 随时到岗
教育背景
2018.09 - 2022.06
锤子简历理工大学
前端开发
GPA3.72/4
GRE324
工作经验
2022.03 - 至今
锤子简历信息科技有限公司
html5前端设计
负责iOS/Android应用及前端站点的接口开发
提供各产品业务对应的管理后台
参与后端性能优化数据分析及各类中间件开发
2021.08 - 2022.03
锤子简历网络科技有限公司
html5前端设计
遵守研发部门工作流程开发规范主动发现并提出改善建议
维护现有产品的功能模块优化产品
参与软件产品功能模块的详细设计编码实现和单元测试保证开发进度及产品品质
项目经验
2021.11 - 至今
项目工程
负责人
项目介绍为外包项目主要为其他公司进行PC端建站
我的职责使用HTMLDIV+CSSCSS3jQueryJavaScript进行网站的结构布局把美工设计的效果图转化为可兼容多种浏览器的前端代码实现网页前端页面
与后台开发人员密切配合完成前后端数据对接工作
定期进行SEO优化工作提高网站排名
负责网站内容的采编策划完成相关栏目的日常更新工作
自我评价
本人掌握交际管理写作电脑分析研究等技能具有良好的适应性和熟练的沟通技巧相信能够协助主管人员出色地完成各项工作忠诚稳重坚守诚信正直原则勇于挑战自我开发自身潜力本人希望自己能成为一名出色的员工这是本人的梦想也是本人的目标本人愿意同贵公司共同发展感谢您在百忙之中阅览我的简历静候佳音
以上分享的简历案例范文,感谢您的阅读,祝每个认真求职的你都能收到满意的offer!
*请认真填写需求信息,我们会在24小时内与您取得联系。