一男一女男人女人在床上睡觉聊天

图灵社区 : 阅读 : 用Markdown来写自由书籍
{{ page.title }}
随着互联网的进步和技术积累,国内技术圈交流的气氛越来越浓,微博博客上到处可见有质量的技术贴,但是有时候想系统阅读时却不是很方便,如果能够整理成册自由分享该有多好。虽然少数人有幸通过出版社出书了,但代价太大,也不能普及大众,现在技术那么发达,有没有办法自己自助出版呢?
看了图灵社区的文章,作为爱书之人,我为什么不能想个办法来解决呢?
技术无极限,办法现在有好几种,在本文中,我就介绍用现在流行的Markdown格式的方式来产生专业的书籍,而且还可以做到利用互联网,不需要本地机器参与的完美方案。如果你喜欢微软的Word,觉得用它已经足够了,那我们不是同道,不用往下看了。
markdown能做出什么效果呢?
多说无益,先来看看效果吧。下面是我去年写的一本小册子: 在PDF阅读器中的效果。注意还有完整的目录和页眉。
书的内容就全是用markdown格式写的,上图相对应的文件内容(6.2节)片断如下。
## Cucumber 简介 ##
Cucumber(英文:黄瓜)(官方网站是&/&)是一个实例化需求的极佳实现伴侣。它是基于Ruby的开源测试工具,得益于Ruby便于创建和使用DSL的特性,它可以通过自然语言(文本文字)来描述需求(业务层),并通过关键字驱动和正则表达式匹配告诉去做哪些事情(驱动层),在运行自动化测试结束以后,还会给出详细的报告。
Insert 18333fig0601.png
图 6-1. Cucumber的架构
下面就是一个加法例子的需求描述,Cucumber文件以`.feature`结尾。
# 加法 adding.feature
Feature: Adding
In order to avoid silly mistakes
As a math idiot
I want to be told the sum of two numbers
下面就是书的全部markdown文件,每一章一个文件。我把它们分成了序、前言、致谢、正文和附录,蛮像回事吧。有兴趣的朋友可以看看,来了解标准的书是怎么组成的。
zh/0preface
zh/0preface/00-chapter1-preface.markdown
zh/0preface/00-chapter2-changes.markdown
zh/0preface/00-chapter3-acknowledgement.markdown
zh/1chapters
zh/1chapters/01-chapter1-agile-scrum.markdown
zh/1chapters/01-chapter2-git-gerrit.markdown
zh/1chapters/01-chapter3-ci.markdown
zh/1chapters/01-chapter4-java.markdown
zh/1chapters/01-chapter5-sbe.markdown
zh/1chapters/01-chapter6-cucumber.markdown
zh/1chapters/01-chapter7-workshop.markdown
zh/2appendix
zh/2appendix/02-chapter1-sample.markdown
zh/2appendix/02-chapter2-cc2git.markdown
全书的内容够可以在github上找到
样式的产生全部有模板完成,一般不需要改动,这个稍后讲。
什么是markdown
有兴趣了,就可以聊聊markdown了,简单来说,markdown格式的文件看着像一般的文本文件,里面只是加了很少的格式标记,因此看文本文件也不影响理解,这种格式也有很多工具帮你去转化,而且很容易自动化解决。并且这些技术大多数是开源或免费的。
如 ## Cucumber 简介 ##就可以转换成html的&h2&Cucumber 简介&/h2&或者书中的小节, 空四个就是表示代码,是否很简单。具体可以看图灵社区的文章
为什么要用markdown
原因也很简单,因为简洁和流行。markdown格式的普及要归功于Github和。因为它们越来越流行,它们支持markdown格式也越来越流行。这里要赞一个的是,国内的也支持markdown,用起来超级方便。
我的体会是,它让你关注内容,格式怎么显示不是要你在写得时候关注的。Word让我讨厌的原因就是老要关注格式。
实际上核心是软件思想中的分离,就像HTML关注内容,CSS关注格式表现一样。
背后的魔法
从Markdown源文件产生电子书一般有两种方案:一种是产生HTML中间格式再转换出电子书,另一种是对应地转换产生出文件格式,再和LaTeX模板合在一起,最后转换产生PDF,达到标准书籍出版的质量(完整的封面,目录,页眉等等),这里主要讨论第二种。
LaTeX(就是Donald E. Knuth(高德纳)发明的)是一个出版界(至少是科技界)常用的格式,PDF也能很容易地产生出来,它的好处是内容和形式是很容易分开的,感谢大师的设计。
Markdown可以通过工具自动转换出LaTeX的标准内容。
\section{Cucumber 简介} %
就是上面由## Cucumber 简介 ##自动生成的LaTeX内容,表示小节。
余下书的表现形式就有预先调好的LaTeX的模板来处理,像页眉、目录、字体之类的和内容无关的就全部有LaTeX搞定了。不同的出版社或者图书系列都会有特定的模板,这和作者的内容无关。
这有点像HTML和CSS的关系。下面这一段是调整小节标题显示:
\definecolor{colorsection}{RGB}{95,158,160}
% CadetBlue
\setromanfont[Mapping=tex-text,BoldFont="WenQuanYi Micro Hei"]
\titleformat{\section}
{\color{colorsection}\normalfont\Large\bfseries}
{\color{colorsection}\thesection}{1em}{}
\bfseries 是让 LaTeX 使用粗体字排版,这儿选择了文泉驿的微黑。
下面这一段是调出页眉左上角(LE=Left Head)的:显示页码和内容,颜色设定为钢铁蓝,
\definecolor{colorheader}{RGB}{70,130,180} % SteelBlue
\fancyhead[LE]{\color{colorheader}\quad\small\textbf\thepage\quad\quad\small\leftmark} %页眉左上角
初看有点复杂,学习曲线蛮陡的。不懂的话,知道里面含有样式就可以了,反正你可以用现成的模板,这也是出版的专业所在,不用写书的负责。
工具软件能帮着从markdown转换出LaTeX格式,然后通过软件中的xelatex再转成PDF格式。
强烈建议你到试一下。
这里主要讨论PDF的格式,实际上epub/mobi格式的用pandoc生成也很方便。
其他常用格式的出版方案
计算机类图书对格式要求不是很多,图文、章节、源代码基本就够了,就算有些复杂公式,也可用图来显示。这也从理论上说明,它不需要复杂的格式。现在对这类技术书出版我的理解主要有几种:
Microsoft的Word格式,虽然国内出版界如日中天,缺省就认它(对技术没追求,鄙视)。简单好学,但是不擅长自动化,是开源的死敌。
直接用LaTeX格式,这是很棒的东西,特别适合学术类的各种复杂的公式等,不过学习曲线很高,国内也只有几家学术期刊使用。
DocBook格式是最有名的(从SGML演化过来),O'Reilly和Pragmatic出版社缺省就用它,它能很方便地转化出出版要的各种样式。如开源书就是采用docbook。但由于是XML格式,很多人不习惯,而且多人网上协作不是很方便。
通过蒋鑫的开源书,我也了解reStructureText也是和markdown差不多纯文本(plain text)的,也是蛮流行的,结合也所向无敌。
自己动手产生电子书
讲了那么多,作为码农,该动手实践一下,其他读者可以跳过这一章。
你需要一台Linux机器(虚拟机就可以了)和简单的Linux命令就可以试验了。有git和ruby的知识那就更方便了。
我用的试验环境是Ubuntu 12.04 (Precise) 版本。
下载书的源代码
很简单,git clone一下就可以了,下载它的源文件包我觉得还是烦了点。
$ git clone /larrycai/sdcamp.git
生成PDF是一个比较复杂的东西,用到了和软件,用Ubuntu库里就可以了。关于Pandoc,可以看图灵社区翻译的文章,TexLive就是LaTeX的工具集。
$ sudo apt-get install pandoc
$ sudo apt-get install texlive-xetex texlive-latex-recommended texlive-latex-extra # 安装texlive 2011
因为是中文PDF,需要把字体嵌入在文件中,因此需要安装字体文件(如果不是Ubuntu中文版),具体可看我在图灵社区的文章
$ sudo apt-get install ttf-arphic-gbsn00lp ttf-arphic-ukai ttf-wqy-microhei ttf-wqy-zenhei
现在你就可以生成pdf文件了。
mkbok 脚本
pandoc本身也支持模板,但很多情况下,还需要调整,写个脚本就方便多了。我用的脚本mkbok是基于里面的脚本makeebooks和makepdfs开发的。原书作者Scott原来还用产生epub文件,我统一用pandoc。并原有的基础上进行了扩展,统一为mkbok脚本。
$ ./mkbok --build pdf,html,epub --lang zh --template latex/template.tex
这样就可一次性完成电子书的活,而且还改造了LaTeX模板(加了前言、致谢和页眉等,使它最后的结果更像一份标准的书。主要功能差不多,但是扩展应该会更好些,特别是有机会更方便地采用不同的专业模板。
基于Github和Travis-ci的互联网在线方案
你可以建一套基于上述技术的方便的出版系统。不过也可以利用互联网的服务,混搭一下。Github和Travis-ci就是我要利用的混搭服务。
Github和Travis CI这里就不介绍怎么使用了,具体可以先看和蒋鑫的,强烈建议你先试一下。要不下期码农吧。
简单道理就是当你把代码推送到Github时,就可以触发Travis-ci的构建。Travis-ci会启动一个基于Virtualbox的Ubuntu的虚拟机(当前是12.04版本),然后根据你的.travis-ci.yml中的配置来构建你的产品,也就是执行上面的步骤来产生PDF文件。
构建结束后,虚拟机会被删除掉,虽然Travis-ci网站本身没有提供归档功能,但是Github的API提供了极好的方法来上传文件。所以我们可以用Github API和Travis-ci的保密环境变量的方式来把Travis-ci的结果上传回Github。
具体请看我的博客。
李明老师的也是此方案的忠实用户,基本上可以全用浏览器解决。
里面的技术细节还有蛮多的,不知是否你都明白,实际上照着试一遍,你会发现不是那么复杂。如果有问题,尽管找我 (@larrycaiyu)。
我一直设想中有一天上面提到的各个环节都能打磨得非常流畅,吸引更多的使用者。然后能够有很多人有兴趣用它来写书,可能是自娱自乐,也可以免费出版。不管怎样都是促进图书业。
出版界或者LaTeX的高手可以提供设计些更好的LaTeX模板(可以收费)供大家使用。
图灵出版社也提供网上的编辑服务(当然是可以收费的),对一些想把书写得专业点的作者提供额外的帮助,这样或许是一个很好的增值服务。至少像我这样的文笔超烂的技术人员很想得到的。
这些本是我2012想做到的事情:,而且域名都买好了,留个遗憾放到明年吧。
技术无极限,只怕没追求。&
TA的推荐TA的最新馆藏[转]&Martin Reddy博士是软件行业的一名老兵,有着15年以上的从业经验,早年,他曾在SRI
International供职5年,他成功创建了在Web上描述3D地球空间信息模型的ISO标准,并且还连续两年被选为Web3D协会的会长。他曾在Pixar动画工作室工作过6年,担任内部动画系统的首席工程师,这些API在一些奥斯卡获奖及提名影片的制作中都发挥了关键作用,这些影片包括《海底总动员》、《超人总动员》、《赛车总动员》、《料理鼠王》,以及《机器人总动员》等。据说《超人总动员》中的超人爸爸的头部原型就是借用自Martin
Reddy。  
他还开办了一家咨询公司Code
Reddy,为各家软件公司提供技术咨询,为大型在线3D虚拟世界《第二人生》设计了API并改善了其基本架构。现在Martin
Reddy担任ToyTalk公司的首席技术官。我们联系他的时候,他正在为公司即将发布的第一个产品忙得不可开交。
图灵社区:恭喜你们公司在最近推出了新产品,你们的新产品是基于语音识别和人工智能技术,你认为语音识别和人工智能会是未来的主要发展方向之一?
Reddy:非常感谢!是的,在几年前,Siri问世之后,我们就开始看到越来越多的用语音作为输入机制的应用和设备。从控制电话,到电视,再到游戏控制。我认为我们想和计算机交流的方式应该和我们彼此间交流的方式相同。所以我预测我们将会看到语音识别技术的大规模飞跃,而且为了更好地理解我们说的话和做出合适的回应,自然语言处理和人工智能这些相关领域发展也会日新月异。
图灵社区:你曾经为Pixar动画工作室工作过,这是一家领先于世界的团队。你把它的成功更多地归功于创造力还是它在技术上的优越性?
Reddy:从基础的层面来说,Pixar的成功可以归功于富有创造力的故事设计。复杂的故事线,讨喜的角色,以及机智的对白会让你钟情于这部电影;而不是射线追踪反射,或者新的子面散射算法。但是,Pixar的独特之处更在于它能够把好故事和精彩的3D图像相结合。就像是John Lasseter(《玩具总动员》、《怪物公司》导演,《海底总动员》 和 《超人总动员》制片人)所说的那样:“艺术挑战科技,而科技激发艺术。”
图灵社区:除了C++你还喜欢什么语言?你喜欢什么工具?
Reddy:我喜欢用合适的工具来做合适的工作。C++对于开发可移植和性能优先的代码来说是一门很好的语言。但是其他的语言对于其他的工作很可能更加胜任,而且有些语言在某些环境下可以达到独霸天下的程度,比如Objective-C之于iOS,JavaScript之于网页。当我可以选择的时候,我就爱上了Python。我曾经喜欢使用perl或者shell脚本编程,我现在转向了Python。甚至对于很多GUI工具,我也转向了Python,PyQt和 PyInstaller环境下,我可以很快的开发代码,然后作为独立的二进制代码在Windows, Mac OS X, 以及Linux平台上运行。对于我来说Python的最大问题在于run-time类型查看的时候容易把代码运送给用户,这样就会因为类型不匹配或者未定义名称而造成运行时的异常。为了弥补这个缺憾,我会经常在我的Python代码上使用源码检查器,比如PyFlakes 或者 PyChecker。
图灵社区: C++的应用领域变得越来越小,你认为它未来会有什么样的发展?C++的强势领域在哪里?你认为C++的演进方向是什么样的?
Reddy:好问题!我一直以来看见的都是C/C++处在最受欢迎语言的前列,但是其他的语言也在变得越来越被大家接受。在我的公司我们仍然在很多场合使用C++,因为它可以成为在众多平台上都能运转的有效代码,同时也可以进入性能优先的3D图像库和语音识别系统。但是,新的设备和环境已经让其他语言变得越来越突出。比如移动、平板,以及web开发现在正值火热的时候,而且现在看来这样的势头在未来只会有增无减。我认为C++在我前面说过的领域中是很强势的,但是这些新涌现出的编程环境会有一些不同的需求,而C++对于这些需求来说未必是最好的选择。我认为这是一件好事。
图灵社区:你怎么看C++新标准?它会影响API的设计吗?现存的库如何保持更新呢?
Reddy: C++11对于C++来说有很多很棒的提升。对于API设计而言,有很多新的特性你可以拿来用在你的API上,包括向元组、匿名函数、线程基元、智能指针,以及崭新的重写和最终关键词。当然,如果你的API必须要被无法使用C++11编译器的客户使用的话,那么你就需要维持C++03语法了,或者为你的C++11客户提供一个API包装器。
图灵社区: C++的ACE框架相当复杂,但ACE是当年分布式框架的首选。现今可选的技术相当多,使用复杂的C++构建分布式应用还有优势吗?有没有更易用的C++网络技术框架?
Reddy:我对ACE不是十分了解,但是有一些可以选择的底层网络框架,包括Boost Asio, cpp-netlib, 以及Qt的网络访问API。
图灵社区:一个新设计的系统API,早期版本经常陷入“狂热”的增加特性(接口、参数、用途),而到了稳定期却常常成为升级时甩不掉的包袱,甚至连早期bug都会变成被迫持续支持的“feature”。请问设计第一版API时如何在表达力、易用性、兼容性方面达到平衡?
Reddy:这是API设计最为重要的部分之一:保持事情的简单性。有一点你说得很对,所有出现在早期版本API中的特性都必须在API的整个生命周期中得到持续支持(除非你打破向后兼容性的限制)。我支持不要在接口上添加任何东西的办法,除非真的有必要。不要添加任何现在没有用,但是你怀疑可能在未来会有用的东西。集中精力解决核心问题。
图灵社区: Go语言变得越来越流行了,你对这门打算要取代C/C++的语言是什么态度?
Reddy:我爱Go!它真是一门伟大的语言。事实上,在我们公司里,我们在服务器端的基础设施上用的都是Go语言。它的编译方式是静态类型的,这一点和C以及C++很像,但是设计上却比C++简单很多,而且Go有强大的网络支持以及内置并发性基元,这点真是太妙了。而且Go语言的设计人之一正是Ken Thompson,他也是C语言的最初设计人,所以这门语言注定是很靠谱的!
图灵社区:像Python这样的“可执行伪代码”被越来越多的人所接受,你能预测一下未来的编程语言会是什么样的吗?是写文章一样任人都会还是仍然属于程序员?
Reddy:像我上面说的那样,我喜欢Python。它解读清晰和动态类型的特性让它变得更容易上手,更好学习。加上大量的标准库以及垃圾回收存储器管理,我认为Python是最适合作为第一门编程语言来学习的。我也认同Python可以服务于非计算机科学家,来帮助大家实现计算和自动化,比如Python已经在生物信息领域里非常受欢迎。但是我认为我们始终会存在语言的分水岭,不同语言会有各自适合的领域。有一些语言对于普通人来说更加平易近人,但是我相信我们仍然需要以性能为目的,可编译、静态类型的语言,这些语言在效率和准确性至上的领域会更为重要。
图灵社区:作为程序员应该怎么学习?要变成编程大牛需要数十年的时间吗?有没有捷径可走?对于计算机专业的大学生们,你有什么特别的建议吗?
Reddy:我认为要变成编程大牛不需要数十年的时间。但是我认为要了解你的编程语言的深度和细节需要很多的热情,要理解你的编译器或注释器是如何帮助你的,它们在后台做的工作细节是什么样的。对于C++来说,你理解如何为模板生成代码吗?你知道虚函数表是如何工作的吗?或者多重继承的问题在哪里?对于Python来说,你理解引用计数是如何工作的吗?你知道变量是由值还是由引用通过的?对于你工作上最重要的工具,不要满足于表面的知识。你对自己的工具了解越深,你就会成为更好的程序员。
但是我个人认为一个好的程序员和一个好的工程师是不同的。优秀的程序员知道如何写代码,而一个优秀的工程师知道如何架构以及如何建造复杂的系统,在这样的结构上会有更多的工程师为其工作。要成为一个好的工程师更加困难,而最好的老师就是经验。所以我会建议在校生去拥有大型软件产品的公司做实习,同时作为工程师团队的一员,学习在复杂生产的软件上工作的流程和技巧。
图灵社区:在中国,很多人都更倾向于成为管理层。你认为程序员可以作为一生的事业吗?
Reddy:这是个有趣的现象,因为我看到的多数高级工程师都想一直写代码,而不想变成管理层。如果你很擅长你正在做的工作,你可能就会得到升职,从传统意义上讲,这就意味着管理层。但是我现在看见很多“双轨”型的事业发展,尤其在科技公司里,也就是说你会得到升职但是仍然从事一线的开发工作。比如在Pixar的时候,我们就有一个“技术带头人”,这个人就会决定其他几位工程师的技术方向,而另一位“管理带头人”就会接受大家的报告,同时也要指导并为这些人写评语。当然,像技术总监、软件架构师、以及主工程师这样的路线都是你提高自己的方向,所以你没有必要非得担负起管理这个包袱。
更多精彩,加入图灵访谈微信!
请问马丁博士:
1. C++目前的应用领域逐渐缩小,请问您是怎么看待C++发展的?您认为它最能发挥作用的领域有哪些?C++的演进方向在哪里?
2. 您是怎样把C++学/练得这么好的?要知道,C++并不容易;
3. 除了C++,您还喜欢哪些语言?哪些工具?
以上是我的问题,都在访谈中找到了答案,谢谢!
& 要理解你的编译器或注释器是如何帮助你的
这里的“注释器”是什么东东?
& 向Python这样的“可执行伪代码”被越来越多的人所接受
这里的“向”应该是“像”。
还得学编译原理?应用市场是一件让所有人头疼的事。除了苹果和 Google,大家都在拼命地获取用户和推销平台,当然还有更重要的——讨好和留住开发者。
Amazon 显然正在朝着这些方向努力,尤其是在为开发者提供福利这事上。这家公司在周二发布了名为Mobile Associates API的计划,以为开发者提供在应用内购买 Amazon 平台实体货物的方式使双方获利。
利益分配模式很简单:开发者在应用中添加购买
货品的功能(在用户登入 Amazon 账号的情况下)。开发者可以从通过该功能产生的任何交易中分到最多 6% 的利益,Amazon 收得余下部分。
假设我是一款开发运动游戏软件的开发者,用户就可以通过我的游戏在
上用著名的一键下单方式买得一颗实体足球。那么我和 Amazon 之间就按照上述的方式分配这笔交易所带来的收入。
译文来源:
信息来源:
API(Application Programming Interface)提供了对某个问题的抽象,以及客户与解决该问题的软件组件之间进行交互的方式。组件本身通常以软件类库形式分发,它们可以在多个应用程序中使用。概括地说,API定义了一些可复用的模块,使得各个模块化功能块可以嵌入到终端用户的应用程序中去。
现代应用程序通常都是基于很多API建立起来的,而这些API往往又依赖于其他API。如图1-1中示例应用程序所示,该应用程序用到了3个类库(1、2、3)的API,而这3个API中有2个又用到了另两个类库(4和5)。举例来说,浏览图片的应用程序可能会用到加载GIF图片的API,而该API本身则可能又依赖更底层的压缩或解压缩数据的API。
图字翻译:
Application Code:应用程序代码
Library:类库
从层次化API中调用例程的应用程序。每个方框代表一个软件类库,灰色部分表示其公共接口,对于类库而言即是其API,白色部分表示隐藏在API后面的具体实现。
API开发在现代软件开发中随处可见,其目的是为某个组件的功能提供一个逻辑接口,同时隐藏该模块内部的实现细节。举例来说,我们用来读取GIF图片的API可能仅仅提供一个LoadImage()方法,后者接收一个文件名作为参数,并返回一个2维的像素数组。所有文件格式和数据压缩的细节全部隐藏在这个看似简单的接口之下。这个概念也在图1-1中进行了说明,即客户端代码只能够通过该API的公有接口访问。API公有接口如图1-1中每个方框顶部的灰色区域所示。
为什么使用API
如果你正在编写供其他开发人员使用的模块,不管他们是公司里的其他工程师还是外部客户,比较明智的办法是构建API来让他们访问这些功能。这么做会带来以下好处。
隐藏实现。通过隐藏模块内部实现的细节,开发人员就可以在未来的某个时间自由修改模块的实现而不给用户造成重大影响。如若不然,会导致以下结果:(1)代码的更新将会受到限制;(2)用户只有重写代码才能使用新版本的程序库。如果总是让用户不停地更新软件版本,他们很可能不愿再做更新,或者干脆弃用,另外寻找不需要太多维护工作的API。因此,优秀的API设计对业务或项目成功至关重要。
延长寿命。随着使用时间增长,那些公开了实现细节的系统的内部代码会变得错综复杂,系统的各个部分要依赖其他部分的内部实现细节。因此,系统将会变得脆弱、死板、不可移植且粘滞性高(Martin,2000)。如此一来,公司为了改善这些代码,就不得不花费大量人力财力,甚至推倒重写。事先花工夫做好API设计,而后维护好该设计以保证一致性,软件寿命就能延长,从长远看也能节省花费。在第4章的前面部分,我们会深入讨论该问题。
促进模块化。 API通常用来完成一项具体的任务或用例。因此,API定义了一组具有一致目的的模块化的功能集。在大量API基础之上开发的应用,其结构将降低耦合而更加模块化,每一个模块的行为都不依赖其他模块的内部细节。
减少代码重复。代码重复是软件工程中最恶劣的行为之一,任何时候都要避免犯此类错误。通过把所有的代码逻辑置于一个严格的接口之后,让所有客户使用这个接口,就能将程序的某种行为统一处理。这样做意味着只需更新一处代码就可以改变向所有客户提供的API的行为。这样有助于消除代码中所有重复的实现。事实上很多的API就是这样实现的,人们首先发现有重复的代码,然后制作统一的接口取代这些重复代码,于是就产生了API。这是一件好事。
消除硬编码负担。很多程序可能包含硬编码的值,并在整个代码中不断复制。例如,在需要写日志文件的地方就使用具体的文件名“myprogram.log”。我们可以使用API来提供这些信息,而不用在整个代码层面复制这些常量,例如,使用GetLogFilename() API调用代替硬编码的“myprogram.log”字符串。
易于改变实现。如果将所有的实现细节隐藏在公共接口背后,就可以在不影响任何依赖此API代码的情况下改变其内部的实现细节。例如,可以将原本使用std::string解析文件的方式变为分配、释放、再分配char*缓冲区的方式。
易于优化。成功隐藏了实现细节后,在优化API的性能时就不用操心更改客户端代码。例如,可以利用加设缓存的方案优化某个计算密集型的方法。之所以这样做是因为所有读写潜在数据的操作都是通过该API进行的,因此该API更确切地知道何时缓存中的结果无效并且需要重新计算结果。
以上内容选自
优秀网页设计已经用这个功能可以查看数据了,顺便还挣到了钱。关注图灵机器人官方微信公众号
获取最新产品资讯和科技圈酷闻
您好,欢迎您给我们提产品的使用感受和建议!
长度不超过20个字
使用流程篇
知识库功能篇
机器人设置篇
应用场景篇
长度不超过20个字
请输入正确的手机号
请输入正确的邮箱
中文语境下智能度最高的机器人大脑
图灵机器人
人工智能级机器人操作系统
对话和语义准确度受到用户及行业认可
能够应用在网站、软件及智能硬件各个领域里
图灵机器人提供了涵盖几乎所有生活领域的技能服务
知识库强大
基于语义技术且支持批量上传的知识库功能
毫秒级响应速度,轻松应对巨量请求
只需简单的注册激活便可让自己的产品化身为智能机器人
虚拟机器人
开发者及普通用户可通过图灵机器人接口快速开发一款智能强大的虚拟机器人产品,或将图灵机器人接入到微信、QQ、微博等热门平台。同时基于图灵机器人强大的知识库功能,用户可让自己产品中的机器人快速化身健康顾问、旅游达人、客服专员等,满足多种娱乐及商业化需求。
图灵机器人在智能车载领域有着多年的钻研,旗下助手类产品所推出的车载模式曾被用户称为最满意的智能车载助手。针对车内通讯、娱乐、导航及其他交互需求进行了深入优化,为司机朋友带来了安全、舒适、高效的车内智能终端交互体验。
智能语音交互是智能手表及可穿戴设备最适合的交互方式之一。图灵机器人针对智能手表使用场景进行了多项深入的优化,使得其在智能手表场景下依然保持一贯的优秀表现,为智能手表用户的交互体验带来极大提升。
基于图灵机器人大脑的智能客服,拥有和真人一样的聊天对话体验,并针对企业的不同业务,进行不同的知识库定制优化,独有的知识雷达可以主动嗅探未知问题,开创客服新时代。
图灵机器人具有强大的中文语义分析及上下文解读能力,能够准确理解家居场景下的多种交互请求,让智能家居产品能够准确理解家人所发出的自然语言指令,接入了图灵机器人的智能家居产品,不再是一款冷冰冰的电器设备,而是聪明、智能的家居机器人。
针对丰富的儿童生活场景,PaiPad结合图灵机器人的智慧大脑,使孩子可直接语音打开想要的应用程序或得到专属的语音反馈。
乐迪是著名动画作品《超级飞侠》里的灵魂人物,基于图灵机器人人工智能操作系统Turing OS,让乐迪从荧屏走进现实。
多多熊是一款以可爱的小熊为形象的儿童智能玩具,基于图灵机器人平台,该产品具备的强大的对话聊天能力,成为孩子们成长中不可或缺的玩伴。
中国电信客服
北京电信客服微信平台,通过图灵机器人智能客服系统,为用户提供高体验客服服务。
乐投卡尔车载
乐投是安卓车载平台最大的智能终端服务提供商,借助图灵机器人API策略,乐投卡尔车载系统进入人工智能交互时代。
小暄机器人
小暄机器人是家庭陪伴机器人中的典型代表,结合图灵机器人对自然语言的技术支持,使小暄机器人的大脑更智能,对话更流畅。
多啦A梦机器人是基于图灵机器人技术开发的新型儿童陪伴机器人,获得国内正版授权。小朋友们不但可以与他聊天对话,还可以学算术、学英语,听有趣的故事等。
HTC语音助手
HTC手机中内置的小Hi是一款非常智能的语音服务软件,直接输入语音命令,小Hi便可以给予满意的答案。
许可证号:京ICP备号&&&&备案编号:京公网安备812号&&Copyright&(C)&&图灵机器人(雷风)&All&rights&Reserved

我要回帖

更多关于 美女和男人在床上戏 的文章

 

随机推荐