16
11

svn命令checkout使用

0
归档:2012年11月分类:LAMP开发

名称

svn checkout — 从版本库取出一个工作拷贝。

概要

svn checkout URL[@REV]... [PATH]

描述

从版本库取出一个工作拷贝,如果省略PATH,URL的基名称会作为目标,如果给定多个URL,每一个都会检出到PATH的子目录,使用URL基名称的子目录名称。

别名

co

变化

创建一个工作拷贝。

是否访问版本库

选项

--revision (-r) REV
--quiet (-q)
--non-recursive (-N)
--username USER
--password PASS
--no-auth-cache
--non-interactive
--config-dir DIR

例子

取出一个工作拷贝到mine

$ svn checkout file:///tmp/repos/test mine
A  mine/a
A  mine/b
Checked out revision 2.
$ ls
mine

检出两个目录到两个单独的工作拷贝:

$ svn checkout file:///tmp/repos/test  file:///tmp/repos/quiz
A  test/a
A  test/b
Checked out revision 2.
A  quiz/l
A  quiz/m
Checked out revision 2.
$ ls
quiz  test

检出两个目录到两个单独的工作拷贝,但是将两个目录都放到working-copies

$ svn checkout file:///tmp/repos/test  file:///tmp/repos/quiz working-copies
A  working-copies/test/a
A  working-copies/test/b
Checked out revision 2.
A  working-copies/quiz/l
A  working-copies/quiz/m
Checked out revision 2.
$ ls
working-copies

如果你打断一个检出(或其它打断检出的事情,如连接失败。),你可以使用同样的命令重新开始或者是更新不完整的工作拷贝:

$ svn checkout file:///tmp/repos/test test
A  test/a
A  test/b
^C
svn: The operation was interrupted
svn: caught SIGINT

$ svn checkout file:///tmp/repos/test test
A  test/c
A  test/d
^C
svn: The operation was interrupted
svn: caught SIGINT

$ cd test
$ svn update
A  test/e
A  test/f
Updated to revision 3.
16
11

svn命令add使用

0
归档:2012年11月分类:LAMP开发

名称

svn add — 添加文件、目录或符号链。

概要

svn add PATH...

描述

添加文件、目录或符号链到你的工作拷贝并且预定添加到版本库。它们会在下次提交上传并添加到版本库,如果你在提交之前改变了主意,你可以使用svn revert取消预定。

别名

变化

工作拷贝

是否访问版本库

选项

--targets FILENAME
--non-recursive (-N)
--quiet (-q)
--config-dir DIR
--auto-props
--no-auto-props
--force

例子

添加一个文件到工作拷贝:

$ svn add foo.c 
A         foo.c

当添加一个目录,svn add缺省的行为方式是递归的:

$ svn add testdir
A         testdir
A         testdir/a
A         testdir/b
A         testdir/c
A         testdir/d

你可以只添加一个目录而不包括其内容:

$ svn add --non-recursive otherdir
A         otherdir

通常情况下,命令svn add *会忽略所有已经在版本控制之下的目录,有时候,你会希望添加所有工作拷贝的未版本化文件,包括那些隐藏在深处的文件,可以使用svn add--force递归到版本化的目录下:

$ svn add * --force
A         foo.c
A         somedir/bar.c
A         otherdir/docs/baz.doc
[...]
16
11

svn命令cleanup使用

0
归档:2012年11月分类:LAMP开发

名称

svn cleanup — 递归清理工作拷贝。

概要

svn cleanup [PATH...]

描述

递归清理工作拷贝,删除未完成的操作锁定。如果你得到一个“工作拷贝已锁定”的错误,运行这个命令可以删除无效的锁定,让你的工作拷贝再次回到可用的状态。

如果,因为一些原因,运行外置的区别程序(例如,用户输入或是网络错误)有时候会导致一个svn update失败,使用--diff3-cmd选项可以完全清除你的外置区别程序所作的合并,你也可以使用--config-dir指定任何配置目录,但是你应该不会经常使用这些选项。

别名

变化

工作拷贝

是否访问版本库

选项

--diff3-cmd CMD
--config-dir DIR

例子

svn cleanup没有输出,没有太多的例子,如果你没有传递路径,会使用“.”。

$ svn cleanup

$ svn cleanup /path/to/working-copy
02
11

Facebook决定不再使用这两三年所规划的HTML5,回到原生应用的道路上。本文讲述了FB转变背后的技术细节,以及Xamarin和Mozilla对这一转变的反应。

Facebook的CEO 马克·扎克伯格最近在TechCrunch的一次采访中宣称:“作为一个公司,我们最大的错误是在HTML5上下注太多了,我们没有选原生应用,因为HTML5没有达到我们的预期”,而且,“自从发布了iOS应用后,我们发现人们订阅feed的数量增加了一倍。”

扎克伯格没有谈及他们在使用HTML5时遇到的问题,但他认为这些产品的质量不够好:“外界已经有非常好的移动体验了……我们追求最高品质,唯一的办法就是使用原生应用。”

Tobie Langel是Facebook软件工程师和W3C咨询委员会代表,他在一篇帖子中详细描述了Facebook基于HTML5做移动网页时遇到的性能问题。Langel提到的第一个问题是缺少调试工具:

移动浏览器缺少工具,从而很难深入进去,发现真正的问题是什么……我们遇到的最大的问题是内存相关的。对于给定内容大小,我们的应用很容易耗尽设备硬件能力,引起系统崩溃。不幸的是,我们很难理解到底是什么引起了这些问题。GPU缓存耗尽?达到资源限制?或是其他原因?很难说。

Langel希望知道堆栈、对象、GPU缓存的内存使用情况,以及GC(垃圾回收)周期、FPS和其他资源限制信息。

Langel谈到的HTML5的另一问题是其页面滚动性能,大部分页面滚动通过JavaScript实现,因为“其他选择不够快”。他提道:

不连贯的帧率,UI线程滞后(断断续续)。由于内容大小和图片数量导致的GPU缓存耗尽。

在不同操作系统中,原生的滚动有着不同的体验。针对一种操作系统优化过的JS实现,在其他系统上的体验却很差(机器人学中的“神秘波谷”)。

安卓设备上触摸事件相关的性能问题(延时,事件不足)使JS实现的页面滚动更加脆弱。

Langel提到的其他问题有:以“黑盒”出现的GPU、安卓系统中更好的触摸跟踪支持的需求、平滑动画以及更好的缓存。其中一些问题已经提交给W3C Web性能工作组

Nat Friedman是Xamarin的CEO,Xamarin是构建跨平台本机应用的工具提供商。在一次InfoQ评论中,他表示欢迎Facebook的改变:“对包括设备提供商,应用发布商以及最重要的消费者在内的整个移动生态系统而言,这一支持原生体验的转变是非常重要的事件”。他还指出,移动标准现在还为时尚早:

移动创新仍在飞速发展,远超“标准”方式能达到的速度。历史上,当新的操作系统出现时,它的能力非常新,使用它们的唯一方式就是在操作系统层次使用。这一阶段,最好的应用和最具突破性的创新都在靠近操作系统层面出现。对于当前移动设备平台,这种状态非常准确。市场份额的竞赛驱动了设备操作系统层面上巨大的变革和创新。在接下来的几年里,这些操作系统将会稳定下来,这一层次的创新将会变缓,使得标准化方式更加可行。但这种转变需要几年时间。

Mozilla(Mozilla是致力于Web技术的组织)的CTO Brendan Eich在ZDNet对Brendan Eich的采访中,他对Facebook在HTML5上的失败表达了不同的看法

如果你品一品言外之意,他(马克·扎克伯格)说的应该是将原生应用和HTML糅合起来。当这样糅合时,两个系统间总会有差距。Joe Hewitt是我的一个朋友,他曾在Facebook工作,做了第一个糅合应用,将两者很好地集成起来。但他离开了Facebook,后续版本中,将两者无缝集成的技能(可能还有苹果公司的一些支持)不见了。

Eich坚信Web将最终胜出:

我从不相信Web会失败。这只是个语用学的问题,而你却被这些给绕进去了。像Facebook这样的公司搞得起开发原生应用,尤其是iOS上的原生应用。但根据长尾理论,开发者将主要集中于开发Web应用,并且以此为乐。

如果Web发展到提供缺失的API,并具有更好的性能,开发者就没必要开发其他应用了。

我有一种感觉,Web将变得非常好(十年之后),那时将不会有现今这样地在原生应用对Web应用之间无休止的论战了。

Matt Asay是The Register的编辑,他在“本机应用vs.HTML5应用的争论”中,引用了一位匿名Facebook工程经理的话说:

现在,Fackbook通过写原生代码是行动最快的。这并不是说HTML5将一直无法达到宣称的效果,而是在当前情况下,摩尔定律和Web引擎仍然有效。因此我们做了一个务实的决定。最终,如果HTML5使得我们发展更快,你将看到我们会回归到HTML5。我们将使用任何让我们高效高质量工作的技术栈。

马克·扎克伯格也看好HTML5的长远前景:

并不是说HTML5不好。长期来看,事实上HTML5真的让我非常兴奋。有趣的是,实际上每天使用移动Web Facebook的人比使用iOS应用或Android应用加起来的更多。因此移动Web对我们来说非常重要。

Facebook八月份发布了iOS本机应用,他们正在开发Android上的类似应用,应该很快会在Google Play应用商店上架。

查看英文原文:Facebook: “Betting on HTML5 Was a Mistake” – Technical Reasons and Reactions

via:http://www.infoq.com/cn/news/2012/10/Facebook-HTML5-Native

02
11

Wallace B. McClure是《Professional iPhone Programming with MonoTouch and .NET/C#》以及即将出版的《Professional Android Programming with Mono for Android and .NET/C#》一书的合作者。我们刚好在Xamarin将从Attachmate手上接管Mono这一消息公开前后进行这次采访的。

InfoQ: 现在距Miguel宣布Attachment裁员及创建Xamarin已经过去两个月了。您对这个情况有什么看法吗?

第一个问题是在7月16号提出的,两天后Miguel宣布创建Xamarin以及与Novell合作。

Wally McClure: 作为一个面向移动设备的.NET开发者,我有几个必须关注的问题。其中最大的问题就是:“我该如何针对移动平台进行开发才可以赚最多的钱?”对我来说,这相当于“我该如何开发iPhone和Android应用程序?”许多人跟我提起过iPhone开发,有时候也会谈到Android。那么作为一个.NET开发者,我该如何简单快速地针对这些平台进行开发?我可以去开发一个HTML 5应用程序,但是Web程序并不能利用设备的所有功能,客户也会要求原生应用而非Web应用程序。HTML 5应用会有一席之地,但是它们无法解决所有客户的所有问题。

作为一个.NET开发者,如果想要开发原生应用,则可以选择学习Objective C和Java。学习语言需要一些时间,还包括开发环境等等。开发人员可能会认为学习语言没什么难度,但就我的感觉来说,事实并非如此,我没法使用一个周末的几个小时来学会一门语言。当然我也可以使用其他一些产品,例如把HTML应用程序作为原生应用的基础。然而,我还是时常会关注跨平台与原生应用之间的比较,所以我还在寻找其他方式。

我比大部分人知道更多东西,因为我除了是一个开发人员,也会关注许多金融方面的消息。在2009年末至2010年初的时候,我听说了Novell的事情,他们正通过CNBC寻找买家。对我来说,这意味着可能会有些麻烦了。此外我还听说了Novell业务部门之间的一些摩擦,其中也包括Novell的裁员以及Xamarin建立的事情。我的看法是:

  • 市场并没有拒绝MonoTouch。我和许多付费用户交谈过,有些暂停使用MonoTouch/iPhone,不过并非所有人都拒绝MonoTouch,有些人继续在iPhone和MonoTouch上投入。
  • 已有的MonoTouch产品也不会就此无法使用了。我还是可以创建在iPhone和iPad上运行的程序,一切正常,而他们也认为可以在3个月内构建一个产品。他们是六月份动手的,所以九月份可以完成,这也差不多是下个版本iOS发布的时候。
  • MonoTouch本身有一些风险。例如,Xamarin和他们的iPhone .NET产品可能会有一些版权纠纷。这是事实。我和一些比我更具有法律背景的人交谈过,他们提出的问题是:
    • Xamrin可能会面临这些风险。Miguel de Icaza已经对此发表过申明,表示这方面已经没有什么问题了。
    • 部分API是基于iOS及Andorid的API而定义的。不过这方面出现版权纠纷的可能性不大。
  • 在Novell公布裁员消息之后的两个星期我重新尝试了Objective-C和Java开发,最后得到了与我2009年相同的结果。Objective-C与我内心所想相差甚远,对于.NET开发者来说会是十分陡峭的学习曲线。想要获益的唯一办法便是投入大量时间。对于我们这种已经在其他领域投入许多的人来说,这个门槛实在有些高。

在仔细审视了这些问题之后,我发现MonoTouch和Mono for Android依然有着十分重要的意义,这与两年前的状况一致。

InfoQ: 我们开始采访的不久,Attachmate就宣布向Xamarin提供有关“Mono,MonoTouch,Mono for Android以及Mono Tools for Visual Studio”的永久授权。现在法律问题已经解决了,你觉得采纳iPhone和Andorid上的Mono还有哪些障碍呢?

Wally McClure: 这真是美妙的一周。一周前,我醒来后看到一堆指向 http://ios.xamarin.com/ 的内容,我发现Xamarin获得了这些工具永久的知识产权。这周末我又参加了Monospace会议,整整两天,我了解了许多关于Xamarin的消息,也和其他参与者进行了交流。上周我和一个潜在客户进行了沟通,他们是财富500强公司,对MonoTouch很感兴趣,已经投入iOS平台,并使用.NET开发他们自定义的业务应用产品。不过现实情况是,目前有些公司依然有顾虑。我想关于Attachmate的法律问题已经解决了,我估计接下来还会和其他一些公司达成协议,这会更进一步减少法律风险,我想接下来几个星期应该会有相关消息。从法律角度来说,我觉得已经没什么问题了。除了一些目前还无法得知的风险,我已经找不到暂缓使用MonoTouch和Mono for Android的理由。就我个人来说,过去的六个星期可谓是马力全开,我也会继续保持下去的。

我还听说过一个问题,是说“MonoTouch和Mono for Android有bug,所以不该使用”。其实每个软件都有各种各样的bug,Android和iOS也都在持续更新,有问题都会即时修复。Xamarin的计划是定期更新他们的软件,就像过去24个月那样。当发现bug的时候,我们会在trunk上修复它,并打包在下次升级的版本中。之前的更新一直很有规律,我想这应该也会保持下去。发布频率大约是2到3个星期一次,所以你无需等好几个月才能获得新版本,而可以很快地更新,很快地更新项目。最终用户都不愿等待,我们都明白这一点。

InfoQ: 有没有哪方面你觉得是MonoTouch和Mono for Android做得尤其出色的呢?

Wally McClure: 理论上说,它们是向六百万.NET开发者开放了两个最流行的移动平台。对我来说,作为一个.NET程序员,在2009年早些时候还在考虑如何进行iPhone开发,那时候MonoTouch的出现真可谓神来之笔。我还是需要学习特定平台的内容,但我完全不需要学习新的语言,就好比Objective-C。这对我来说至关重要,在学习iPhone理念的同时还要学习Objective-C真可谓是难以逾越的高山。虽然我还是需要使用Mac,我必须使用MonoDevelop进行开发,但这笔投资还是相当值得的。我可以使用HttpWebRequest来调用服务获取内容,再使用LINQ处理数据,在许多地方都可以使用这些代码,这实在是太棒了。

从技术角度来说,我会关注基础方面的内容。我每天早上都会在iPad上使用一款新闻工具,它时不时就会崩溃一下,我猜这是因为指针计算或是内存使用方面的问题。有了垃圾收集器之后,我们就可以减少内存使用的麻烦,也无需担心指针问题了。

我认为它们还有一个重要的优势,它们是在运行平台上进行“真正针对性的开发”。简单的说,它们只是为底层操作系统提供了一个C#调用层,最终执行的还是平台上的原生API,只不过使用C#而已。这对开发人员来说十分关键。尽管我会推荐有关MonoTouch和Mono for Android开发的书籍,但我们完全可以通过一本使用Java的Android的书籍来学习Mono for Android。它们并没有为用户界面控件提供什么通用的容器,而是完全直接使用平台上完全相同的那些控件。MonoTouch应用程序和Objective-C应用程序完全相同,Mono for Android应用程序看上去也和Java程序毫无二致。这对用户来也是个优势。

InfoQ: 那么有那些地方需要改进呢?

Wally McClure: 软件进步不会有终点,总有需要添加、修复或是增强的地方。MonoTouch在有些方面还做的不够好,例如MonoDevelop在Mac OSX Lion上运行还有些问题。过几天应该就会修复了。还有就是需要对iOS 5 Beta提供一些支持,我可以确定还有其他需要加强的地方。这些都不是什么大问题,现在是7月25号,我有信心MonoTouch团队会很快加上这些功能。

Mono for Android就相对是个很新的产品了。它是四月份发布的,还有些比较难办的问题。不过从MonoTouch的历史来看,Mono for Android团队也肯定会解决这些问题,例如:

  • 在Mono for Android里调试程序。在很长一段时间里我都会提到调试器的问题。之前我和Mono for Android团队里负责调试器的开发人员谈了大约一个半小时,建立了一些可重现问题的测试用例,所以这些问题应该很快就会解决,很可能就在接下来的一两次更新里。
  • 对地图、Android蜂巢系统、还有第三方库的支持。目前Mono for Android还缺少对一些第三方库的支持,这意味着于地图、还有Android蜂巢系统的支持还有些问题。我和接手这些问题的人一起工作过,他对这些问题进行了解释,以及会如何解决它们。到时候他们会更新产品,可能在2到3次发布以后吧。

基本上只有要时间和耐心,这些技术性问题都是可以解决的。我个人的意见是:.NET开发者如果想要开发iPhone或Android应用的话,现在就可以接纳MonoTouch和Mono for Android了。跟重头开始学习设备开发,重新学习一个新的开发方式所需的时间相比,这些问题都是小菜一碟。

InfoQ: 在Mix会议上,Miguel宣布了Android电话/平板上的Monolight原型。这便出现了三种可能性:

  1. 浏览器外的Silverlight应用程序重新打包为Android市场上的程序。
  2. Windows Phone 7应用程序重新打包为Android市场上的程序。
  3. 浏览器内的Silverlight应用程序与Flash竞争。

你觉得其中哪个可能性值得关注呢?

Wally McClure: Monospace并没有太多关于Silverlight/Moonlight的讨论,你刚才提到的MIX上的内容还是产品的初级阶段。后来又有了Xamarin的变故,所以我认为不必对Silverlight跨平台开发抱太大期望。在Monospace上,我了解到其他一些在这方面会有帮助的工具。当时这些工具还不够完整,不过我想很快就可以了解到更多信息了。在我看来,.NET程序员应该尝试下MonoTouch和Mono for Android,它们会让你了解特定的平台,深入下去,你会发现这是个美好的世界。

InfoQ: 您还有什么想要补充的吗?

Wally McClure:

  1. 我已经经历过三次Mono被宣布“死亡”的时候了,每次我都能看到某些报告说它大限将至。对我来说,使用Mono的风险跟使用Silverlight、.NET或是HTML 5是一样的。这个过程中会有曲折,总有人会向我们咆哮说“走错路了”。其实只要有点耐心,这些问题都可以解决。
  2. MonoTouch和Mono for Andoird是很好的产品,绝对有效。如果你是个.NET开发人员,想要立即加入iPhone和Android开发,那么MonoTouch和Mono for Android会是你们的宝贝。目前有几本MonoTouch的书籍(我的还有别人的),而Mono for Android的书会在今年秋天面世。我会在AppDev上发布一系列MonoTouch的视频教程。到了秋天,各类开发杂志上都会出现MonoTouch和Mono for Android的消息。这些产品的相关社区发展势头很猛。

关于受访者

Wally McClure专注于开发大量用户及大量数据的应用程序,也包括用户界面相关的技术,例如AJAX、iPhone和Android。他是微软的MVP,ASPInsider以及技术作家。他的公司(Scalable Development, Inc.)提供iPhone/MonoTouch以及Android/Mono for Android编程的课程。Wally也是MonoTouch及Mono for Android相关书籍的合作者,这是他在Wrox出版社的第八本书了。

查看英文原文:Wally Mclure on the Future of MonoTouch and Mono for Android

via:http://www.infoq.com/cn/articles/Wally-on-Mono?utm_source=infoq&utm_medium=related_content_link&utm_campaign=relatedContent_news_clk

02
11

激动人心的一款游戏:“画一个火柴人”(Draw A Stickman EPIC) 游戏已经发布ios(ipad、iphone)和windows8的产品,去年他们发布网页版的时候,24小时获得了100w用户。在app产品里,开发团队融入了更多的场景,并且让玩家能大量地发挥自己的想象力。令人惊喜的是,这款游戏完全采用Mono来开发,主要基于MonoGame来开发,代码共享达到95%。他们的android版本也会在最近推出。

如果你很喜欢,可以他们的官网http://www.drawastickman.com/体验这款富有想象力的游戏。

更多信息可以查看:http://blog.xamarin.com/2012/10/29/draw-a-stickman-epic-now-available-for-iphone-ipad-and-windows-8-2/

29
10

推荐一个javascript类库:jsonpath

0
归档:2012年10月分类:前端技术

在我们的研发过程中,有时会遇到这样的情况:程序很简单,数据是固定的,不想使用服务端语言(php、java、.net),但是要实现一些分页和检索功能。这种情况下我们应该选择javascript+xml+div就ok,不过javascript解析xml的数据比较慢。json是现在非常流行的一种数据格式,所以有另外一种解决方案:javascript+json+div。

json是目前web的通用数据格式,在轻量级的web服务中占据主导地位,这里推荐一个非常轻巧的类库:jsonpath(下载地址:http://code.google.com/p/jsonpath/)。作为一个轻量级类库,你可以使用它来对json数据进行精确查找、条件查找和模糊查找,这样就能满足简单网站的功能了。下面是一个简单例子:
<html>
<head>
<title> JSONPath - Example (js)</title>
<script type="text/javascript" src="jsonpath.js"></script>
</head>
<body>
<pre>
<script type="text/javascript">
   var json =
                  { "store": {
                        "book": [
                          { "category": "reference",
                                "author": "Nigel Rees",
                                "title": "Sayings of the Century",
                                "price": 8.95
                          },
                          { "category": "fiction",
                                "author": "Evelyn Waugh",
                                "title": "Sword of Honour",
                                "price": 12.99
                          },
                          { "category": "fiction",
                                "author": "Herman Melville",
                                "title": "Moby Dick",
                                "isbn": "0-553-21311-3",
                                "price": 8.99
                          },
                          { "category": "fiction",
                                "author": "J. R. R. Tolkien",
                                "title": "The Lord of the Rings",
                                "isbn": "0-395-19395-8",
                                "price": 22.99
                          }
                        ],
                        "bicycle": {
                          "color": "red",
                          "price": 19.95
                        }
                  }
                },
       var test1 = jsonPath(json, "$.store.book[*].author").toJSONString() + "\n>";//精确检索
       var test2 = jsonPath(json, "$..author").toJSONString() + "\n";
       var test3 = jsonPath(json, "$.store.*").toJSONString() + "\n";
       var test4 = jsonPath(json, "$.store..price").toJSONString() + "\n";
       var test5 = jsonPath(json, "$..book[(@.length-1)]").toJSONString() + "\n";
       var test6 = jsonPath(json, "$..book[-1:]").toJSONString() + "\n";
       var test7 = jsonPath(json, "$..book[0,1]").toJSONString() + "\n";
       var test8 = jsonPath(json, "$..book[:2]").toJSONString() + "\n";
       var test9 = jsonPath(json, "$..book[?(@.isbn)]").toJSONString() + "\n";
       var test10 = jsonPath(json, "$..book[?(@.price<10)]").toJSONString() + "\n";//条件建设
       var test11 = jsonPath(json, "$..*").toJSONString() + "\n";//所有
       var test12 = jsonPath(json, "$..book[?(@.title.indexOf('the') > -1)]").toJSONString() + "\n";  </script>//模糊检索
</pre>
</body>
</html>

26
10

数学英雄:欧拉

0
归档:2012年10月分类:数海泛舟

一、简介

莱昂哈德·保罗·欧拉(Leonhard Paul Euler,1707年4月15日-1783年9月18日)是一位瑞士数学家和物理学家,近代数学先驱之一,他一生大部分时间在俄罗斯帝国和普鲁士度过。欧拉在数学的多个领域,包括微积分和图论都做出过重大发现。他引进的许多数学术语和书写格式,例如函数的记法"f(x)",一直沿用至今。此外,他还在力学、光学和天文学等学科有突出的贡献。欧拉是18世纪杰出的数学家,同时也是有史以来最伟大的数学家之一。他也是一位多产作者,其文学著作约有60-80册。法国数学家皮埃尔-西蒙·拉普拉斯曾这样评价欧拉对于数学的贡献:“读欧拉的著作吧,在任何意义上,他都是我们的大师”

二、生平

1、早年

欧拉出生于瑞士巴塞尔(Basel)的一个牧师家庭,父亲保罗·欧拉(Paul Euler)是基督教加尔文宗的牧师,保罗·欧拉早年在巴塞尔大学学习神学,后娶了一位牧师的女儿玛格丽特·布鲁克(Marguerite Brucker),也就是欧拉的母亲。欧拉是他们6个孩子中的长子。在欧拉出生后不久,他们全家就从巴塞尔搬迁至郊外的里恩(Riehen),在那里欧拉度过了他童年的大部分时光。

欧拉最早是从他的父亲那里接触到一些数学,后来欧拉搬回巴塞尔和他的外祖母住在一起,并在那里开始了他的正式学业,在中学时期,由于欧拉所在的学校并不教授数学,他便私下里从一位大学生那里学习。

欧拉13岁时进入了巴塞尔大学,主修哲学和法律,但在每周星期六下午便跟当时欧洲最优秀的数学家约翰·伯努利(Johann Bernoulli)学习数学 。欧拉于1723年取得了他的哲学硕士学位,学位论文的内容是笛卡尔哲学和牛顿哲学的比较研究。之后,欧拉遵从了他父亲的意愿进入了神学系,学习神学,希腊语和希伯来语(欧拉的父亲希望欧拉成为一名牧师),但最终约翰·伯努利说服欧拉的父亲允许欧拉学习数学,并使他相信欧拉注定能成为一位伟大的数学家。1726年,欧拉完成了他的博士学位论文De Sono,内容是研究声音的传播。1727年,欧拉参加了法国科学院主办的有奖征文竞赛,当年的问题是找出船上的桅杆的最优放置方法。结果他得了二等奖,一等奖为被誉为“舰船建造学之父”的皮埃尔·布格(Pierre Bouguer)所获得,不过欧拉随后在他一生中一共12次赢得该奖。

2、在圣彼得堡

这一时期,约翰·伯努利的两个儿子——丹尼尔·伯努利(Daniel Bernoulli)和尼古拉·伯努利(Nicolas Bernoulli)——在位于俄国圣彼得堡的俄国皇家科学院工作,在尼古拉因阑尾炎于1726年7月去世后(此时距他来到俄国仅一年),丹尼尔便接替了他在数学/物理学所的职位,同时推荐欧拉来接替他自己在生理学所空出的职位。欧拉于1726年11月欣然接受了邀请,但并没有立即动身前往圣彼得堡,而是先申请巴塞尔大学的物理学教授,不过没有成功。

前苏联于1957年发行的邮票,纪念欧拉诞辰250周年。文字内容为:欧拉,伟大的数学家和学者,诞辰250周年。

欧拉于1727年5月17日抵达圣彼得堡,在丹尼尔等人的请求下,科学院将欧拉指派到数学/物理学所工作,而不是起初的生理学所。欧拉与丹尼尔保持着密切的合作关系,并且与丹尼尔住在一起。在1727年至1730年间,欧拉还担任了俄国海军医官的职务。

俄国皇家科学院由彼得大帝于1724年创建,在彼得大帝和他的继任者凯瑟琳女皇主政时期,科学院是一个对外国学者具有吸引力的地方。科学院有充足的资金来源和一个规模庞大的综合图书馆,并且只招收非常少的学生,以减轻教授们的教学负担。科学院还非常重视研究,给予教授们充分的时间及自由,让他们探究科学问题。

凯瑟琳女皇,同时也是科学院的资助者,于欧拉到达圣彼得堡的当天去世。其后彼得二世继位,彼得二世是个软弱的君主,实际权力由俄国贵族掌握。贵族们对科学院的外国科学家心存戒心,于是他们切断了对欧拉及其同事们的财政资助,并且在其它方面找他们的麻烦。

情况在彼得二世去世(1730年)后有所好转,欧拉在科学院迅速得到提升,并于1731年获得物理学教授的职位。两年后,由于受不了在圣彼得堡受到的种种审查和敌视,丹尼尔·伯努利返回了巴塞尔,欧拉于是接替丹尼尔成为数学所所长[10] 。1735年,欧拉还在科学院地理所担任职务,协助编制俄国第一张全境地图。

1734年1月7日,欧拉迎娶了科学院附属中学的美术教师,瑞士人乔治·葛塞尔(Georg Gsell)的女儿,柯黛琳娜·葛塞尔(Katharina Gsell,1707-1773),两人共育有13个子女,其中仅有5个活到成年。

3、视力恶化

在欧拉的数学生涯中,他的视力一直在恶化。在1735年一次几乎致命的发热后的三年,他的右眼近乎失明,但他把这归咎于他为圣彼得堡科学院进行的辛苦的地图学工作。视力在他在德国期间也持续恶化,以至于弗雷德里克把他誉为“独眼巨人”。欧拉的原本正常的左眼后来又遭受了白内障的困扰。在他于1766年被查出有白内障的几个星期后,导致了他的近乎完全失明。即便如此,病痛似乎并未影响到欧拉的学术生产力,这大概归因于他的心算能力和超群的记忆力。比如,欧拉可以从头到尾不犹豫地背诵维吉尔的史诗《埃涅阿斯纪》,并能指出他所背诵的那个版本的每一页的第一行和最后一行是什么。在书记员的帮助下,欧拉在多个领域的研究其实变得更加高产了。在1775年,他平均每周就完成一篇数学论文。

4、其他

欧拉年轻时曾研读神学,他一生虔诚、笃信上帝,并不能容许任何诋毁上帝的言论在他面前发表。有一个广泛流传的传说说到,欧拉在叶卡捷琳娜二世的宫廷里,挑战当时造访宫廷的无神论者德尼·狄德罗:“先生,,所以上帝存在,请回答!”不懂数学的德尼完全不知怎么应对,只好投降。但是由于狄德罗事实上也是一位有作为的数学家,这个传说有可能属于虚构。

欧拉是史上发表论文数第二多的数学家,全集共计75卷;他的纪录一直到了20世纪才被保羅·埃尔德什打破。他发表的论文达1475篇,著作有32部。产量之多,无人能及。欧拉实际上支配了18世纪至现在的数学;对于当时新发明的微积分,他推导出了很多结果。很多数学的分枝,也是由欧拉所创或因而有大大的进展。

在1765年至1771年据说是因欧拉双眼直接观察太阳,双眼先后失明。尽管人生最后7年,欧拉的双目完全失明,他还是以惊人的速度产出了生平一半的著作。

1783年9月18日,晚餐后,欧拉一边喝着茶,一边和小孙女玩耍,突然之间,烟斗从他手中掉了下来。他说了一声:“我的烟斗”,并弯腰去捡,结果再也没有站起来,他抱着头说了一句:“我死了”。“欧拉停止了生命和计算”。后面这句经常被数学史家引用的话,出自法国哲学家兼数学家孔多塞之口:“...il cessa de calculer et de vivre”(he ceased to calculate and to live)。

三、成就

欧拉的数学符号引进和推广,并通过他的许多教科书广为流传。最值得注意的是,他介绍了一个运行概念是先写函数F(x)表示函数f参数x的应用他还介绍了三角函数现代符号,为自然对数的底(现在也称为欧拉数已知),对求和希腊字母Σ和字母i字母E来表示虚数单位。(该使用希腊字母π来表示一个圆的周长和直径之比也由欧拉普及,但它并不是由他发明。)

欧拉和丹尼尔·伯努利一起,建立了弹性体的力矩定律:作用在弹性细长杆上的力矩正比于物质的弹性和通过质心轴和垂直于两者的截面的转动惯量。
他还直接从牛顿运动定律出发,建立了流体力学里的欧拉方程。这些方程组在形式上等价于粘度为0的纳维-斯托克斯方程。人们对这些方程的主要兴趣在于它们能被用来研究冲击波。

他对微分方程理论作出了重要贡献。他还是欧拉近似法的创始人,这些计算法被用于计算力学中。此中最有名的被称为欧拉方法。
在数论里他引入了欧拉函数。自然数的欧拉函数被定义为小于并且与互质的自然数的个数。在计算机领域中广泛使用的RSA公钥密码算法也正是以欧拉函数为基础的。

在分析领域,是欧拉综合了莱布尼兹的微分与牛顿的流数。他在1735年由于解决了长期悬而未决的贝塞尔问题而获得名声:

其中是黎曼函数。

欧拉将虚数的幂定义为如下公式

这就是欧拉公式,它成为指数函数的中心。在初等分析中,从本质上来说,要么是指数函数的变种,要么是多项式,两者必居其一。被理查德·费曼称为“最卓越的数学公式”的则是欧拉公式的一个简单推论(通常被称为欧拉恒等式):

他在1735年定义了微分方程中的欧拉-马歇罗尼常数,也是欧拉-马歇罗尼公式的发现者之一,这一公式在计算难于计算的积分、求和与级数的时候极为有效:

欧拉还发现了公式的V型é f键= 2的数量与顶点,边和面的凸多面体,因此,对一个平面图形。此公式中的常数是现在被称为欧拉示性数的图形(或其他数学对象),是有关属的对象。研究和推广这一公式,特别是通过柯西和欧莱雅Huillier,是在原点的拓扑结构。

欧拉在1736年解决了柯尼斯堡七桥问题,并且发表了论文《关于位置几何问题的解法》(Solutio problematis ad geometriam situs pertinentis),对一笔画问题进行了阐述,是最早运用图论和拓扑学的典范。

在1739年,欧拉写下了《音乐新理论的尝试(Tentamen novae theoriae musicae)》,书中试图把数学和音乐结合起来。一位传记作家写道:这是一部“为精通数学的音乐家和精通音乐的数学家而写的”著作。

在经济学方面,欧拉证明,如果产品的每个要素正好用于支付它自身的边际产量,在固定规模报酬的情形下,总收入和产出将完全耗尽。

在几何学和代数拓扑学方面,欧拉公式给出了单连通多面体的边、顶点和面之间存在的关系:

其中,F为给定多面体的面数之和,E为边数之和,V为顶点数之和。这个定理也可用于平面图。对非平面图,欧拉公式可以推广为:如果一个图可以被嵌入一个流形,则:

据统计,欧拉一生平均每年发表八百页的学术论文,内容涵盖多个学术范畴。1911年,数学界系统地开始出版欧拉的著作,并定名为《欧拉全集》(Opera Omnia),迄今已上架者已有七十多卷,平均每卷厚达五百多页,重约四磅。预计《欧拉全集》全部出齐时约重三百磅。

四、纪念

欧拉是第六系列瑞士10法郎的钞票以及德国、俄罗斯邮票的主角。在2002年,小行星2002被命名为欧拉。基督教新教-路德教派将圣徒日历上五月二十四日定为纪念欧拉的日子。欧拉是一位虔诚的基督教徒,相信圣经是正确而没有错误的,并且极力地反对那些拥有无神论思想的人们。

公告栏

欢迎大家来到我的博客,我是dodoro,希望我的博客能给你带来帮助。