<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Featheast Lee 李羽东</title>
	
	<link>http://www.featheast.com</link>
	<description>Life in Melbourne, Tech in Software, and Travel around the world</description>
	<pubDate>Tue, 20 Jul 2010 11:39:28 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/featheast/JYWi" /><feedburner:info uri="featheast/jywi" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>墨尔本面试记</title>
		<link>http://feedproxy.google.com/~r/featheast/JYWi/~3/h3ccvnzcx8I/melbourne-intervie</link>
		<comments>http://www.featheast.com/life/melbourne-intervie#comments</comments>
		<pubDate>Tue, 20 Jul 2010 11:39:28 +0000</pubDate>
		<dc:creator>featheast</dc:creator>
		
		<category><![CDATA[生活]]></category>

		<category><![CDATA[J2EE]]></category>

		<category><![CDATA[Job]]></category>

		<category><![CDATA[墨尔本]]></category>

		<guid isPermaLink="false">http://www.featheast.com/?p=653</guid>
		<description><![CDATA[虽然一直在墨大工作，但是找工作的压力也是一直伴随着。真正的找工生涯，可以说从一月份回国之前就开始了。在六个月的时间里，投的简历次数并不多，印象比较深刻的可能也就五次左右，平均每次投一到两个企业。然后其中有三次获得了进一步交流的机会，而最终拿到了今天的OFFER。
第一次是早在今年年初回国之前，看到一家企业在招Graduate Programmer，要求并不是特别详细，属于那种很含糊型的招人，于是简历投上去，第二周有个电话就打过来了。一个女的，进行的第一轮电话面试，基本上都是素质方面的问题，诸如自己的优点缺点啊，最想干的事情啊，觉得最成功的事情啊。这也是我第一次用英语在电话上和人如此正式的交流，但发现自己说的还不错，自我感觉也还良好。本来是希望自己有能够继续面试的机会的，可惜的是后来因为我要回国，耽误了面试的时间，于是不了了之。
从二月到四月之间，并没有特别的投过简历。那段时间工作比较忙，还加上PR申请的事情，于是这个慢慢缓了下来。三月中应该投过一两家，不过也是杳无音信。直到四月份的一个星期三晚上，那天可是想好了要投简历的，于是一晚上投了大概3家，还是4家。其中最感兴趣的一家，在第二周就给我打了电话，要求面试。这家公司的优势在于位置好，在Box Hill，离我住的Doncaster简直就是隔壁。不好的地方在于，他们招的人，希望做更多的客户端产品，也就是说要有很多基于Swing的开发，而我个人更倾向于J2EE的方向，不过在当时钱大于一切的心理下，还是去了Box Hill的办公室。面试的是个伊朗人，很概念性的问了我很多问题，关于Swing，Hibernate, GWT, JavaScript等等，他还特别强调最好要有网路方面的经验，问我如何路由，如何防火墙，瞬间我就晕倒了。最后他还问我，会不会C#。对于这个几乎五年没碰过.NET的人来说，想糊弄人也没办法。之后这位伊朗老兄把他的上司请来又和我聊了聊，一个长的流里流气的LOCAL，问我如果遇到不会做，搜索又找不到的东西怎么办。总之，随着面试的继续，我对这份工作的兴趣也愈发下降。当然对方，也更加不满意我了，结果显然就是以失败告终。
接下来的五月，我给自己心里做了一个小小的安排，暂时放一下找工作，花一个月的时间，把Hibernate， Struts 2，Spring 3以及jQuery的书各借了一本，在一个月之内啃完。和大多数人一样，这个目标显然是不切实际的，但是不得不说对后面是很有帮助的。虽然以前都写过，但是很久不碰的东西，非要过一下脑子，才能从新活跃起来。就这样到了六月。六月初的时候，应该又是大规模的撒了一次网，有几个广告真的是很吸引人，还有一个甚至完全就是照着我的模子写的广告，云计算、RESTful Web Service，Amazon，我觉得在目前看来，这几项每一个我都可以称之极为熟悉了。本来觉得这份工作至少可以多混几轮面试的，哪知道石沉大海，辛酸啊。
6月28日的时候，下午偷了个懒，跟老板说明天我想休息一下，其实是自己想做做 iPad的开发，刚买的iPad，怎么也想摆弄摆弄。于是第二天一大早，就跑了ICT一楼的实验室，开始做ObjectiveC。中间的时候，觉得有点累，就上SEEK转了转，发现一个头一天下午的招聘，要J2EE Developer，没多想，随便改了一封用了好多次的简历和Cover Letter，就投了过去，继续开始做我的iPad。刚投了没五分钟，一个电话打来，一下惊醒，这也太神速了吧。是个印度人，不过声音还是很清晰的，说当天下午就要和我面试。我看了看自己，心想，到底是继续做我的iPad还是准备面试呢，结果就这样晃到了12点。左顾右盼的找了点Struts和Spring的面试题准备准备就去了。这家公司至少是十分规范的，每一个面试的环节都有详细的Email通知，第一轮技术面试就派了三个人轮番轰炸我。一个印度人，一个南亚另外地方的人，一个华人。华人算是对我很客气的了，不过很可惜的是自己由于没怎么准备，几个弱智题被我更加弱智化了，大家一起来嘲笑我吧，比如overloading和overwriting的区别，比如list, set, map的区别，比如如何在struts中实现validation，比如什么是left join和right join等等。现在想起自己的答案简直就要哭，不过还好，还是用英语模糊过去了。感觉是自己在英语的周游能力还是不错的，无论什么问题，都可以尽情的发挥，不停的说，多亏了当年雅思的准备。
就这样，过了第一轮面试，本来说是a couple of days给我通知的，但是知道第二个星期三都没消息。壮了壮胆子，发了封邮件过去问，后来马上就收到电话，说要我参加心理测试，时间是第二天的早上。所谓的心理测试，就是大家都知道的那些选择题，对于这种东西，本人是最为驾轻就熟的。不过要是仅仅只有这就好了，关键是它还有一个语文考试，也就是GRE里面的Verbal。考过GRE的同学都知道Verbal对词汇量的要求是如何的，而这里的语文考试不仅仅在词汇量的大小上和GRE类似，在词汇的选择上则是更加生活化口语化，总之就是都是我不认得的词。考下来，心理就在嘀咕，不会败在了语文上吧。
出乎意料的是，第二周的周三，又听到了熟悉的印度人声音，说要对我进行第二轮面试。心理一下激动了，这几乎就是HR面了啊。果然第二天，和我面试的人是CIO也就是直管我们的老板，LOCAL，说话声音不是那么的清楚，使我保存了一开始就说sorry的习惯。问题全部是现实工作的处理问题，毫无技术可言，于是我就用蹩脚的英语和他周旋，没想到他竟然还很满意。印度人还带我把公司转了一圈，心中的那个魔鬼告诉我，他们要你了。周五下午五点多，收到了最后的OFFER电话，这样一段找工的历程就画上了句号。新的单位是做J2EE的，包含了J2EE的几乎所有方向的开发，在这一点上是很适合我的。虽然有点远，在South Yarra，但我个人感觉还是十分满意的。
以下是总结一些在找工中得到的经验：
1. SEEK上的广告虽然多，但是有很多都是中介发的，几乎无论怎么申请，这些都是石沉大海。所以要辨析清楚到底是中介还是雇主直接发的，往往后者会有更好更直接的效果。
2. 要找有针对性的工作，不要撒网，那样一点作用都没有。看到自己适合的，就一定要积极去投，看到不沾边或者沾一点点的，就别浪费时间了。毕竟每一封简历和Cover Letter都是要时间写的。
3. 面试的时候不需要紧张，但是一定要多说，会也要说，不会也要说。别人知道你不是native speaker，不会太介意你的英语表达能力，但你不说，别人就完全无法了解你是否知道。你如果多说的话，别人或许还认为你知道，只是说不清楚而已。
4. 多用实例，少讲概念。本来概念就是很难讲清楚的，面试时一紧张，更容易说错。不如举个例子，画点小图，清晰明了。
5. 一定要准备，要有针对性的准备，特别是不能在基础上反弱智错误，不然自己后悔都来不及。
]]></description>
			<content:encoded><![CDATA[<p>虽然一直在墨大工作，但是找工作的压力也是一直伴随着。真正的找工生涯，可以说从一月份回国之前就开始了。在六个月的时间里，投的简历次数并不多，印象比较深刻的可能也就五次左右，平均每次投一到两个企业。然后其中有三次获得了进一步交流的机会，而最终拿到了今天的OFFER。</p>
<p>第一次是早在今年年初回国之前，看到一家企业在招Graduate Programmer，要求并不是特别详细，属于那种很含糊型的招人，于是简历投上去，第二周有个电话就打过来了。一个女的，进行的第一轮电话面试，基本上都是素质方面的问题，诸如自己的优点缺点啊，最想干的事情啊，觉得最成功的事情啊。这也是我第一次用英语在电话上和人如此正式的交流，但发现自己说的还不错，自我感觉也还良好。本来是希望自己有能够继续面试的机会的，可惜的是后来因为我要回国，耽误了面试的时间，于是不了了之。</p>
<p>从二月到四月之间，并没有特别的投过简历。那段时间工作比较忙，还加上PR申请的事情，于是这个慢慢缓了下来。三月中应该投过一两家，不过也是杳无音信。直到四月份的一个星期三晚上，那天可是想好了要投简历的，于是一晚上投了大概3家，还是4家。其中最感兴趣的一家，在第二周就给我打了电话，要求面试。这家公司的优势在于位置好，在Box Hill，离我住的Doncaster简直就是隔壁。不好的地方在于，他们招的人，希望做更多的客户端产品，也就是说要有很多基于Swing的开发，而我个人更倾向于J2EE的方向，不过在当时钱大于一切的心理下，还是去了Box Hill的办公室。面试的是个伊朗人，很概念性的问了我很多问题，关于Swing，Hibernate, GWT, JavaScript等等，他还特别强调最好要有网路方面的经验，问我如何路由，如何防火墙，瞬间我就晕倒了。最后他还问我，会不会C#。对于这个几乎五年没碰过.NET的人来说，想糊弄人也没办法。之后这位伊朗老兄把他的上司请来又和我聊了聊，一个长的流里流气的LOCAL，问我如果遇到不会做，搜索又找不到的东西怎么办。总之，随着面试的继续，我对这份工作的兴趣也愈发下降。当然对方，也更加不满意我了，结果显然就是以失败告终。</p>
<p>接下来的五月，我给自己心里做了一个小小的安排，暂时放一下找工作，花一个月的时间，把Hibernate， Struts 2，Spring 3以及jQuery的书各借了一本，在一个月之内啃完。和大多数人一样，这个目标显然是不切实际的，但是不得不说对后面是很有帮助的。虽然以前都写过，但是很久不碰的东西，非要过一下脑子，才能从新活跃起来。就这样到了六月。六月初的时候，应该又是大规模的撒了一次网，有几个广告真的是很吸引人，还有一个甚至完全就是照着我的模子写的广告，云计算、RESTful Web Service，Amazon，我觉得在目前看来，这几项每一个我都可以称之极为熟悉了。本来觉得这份工作至少可以多混几轮面试的，哪知道石沉大海，辛酸啊。</p>
<p>6月28日的时候，下午偷了个懒，跟老板说明天我想休息一下，其实是自己想做做 iPad的开发，刚买的iPad，怎么也想摆弄摆弄。于是第二天一大早，就跑了ICT一楼的实验室，开始做ObjectiveC。中间的时候，觉得有点累，就上SEEK转了转，发现一个头一天下午的招聘，要J2EE Developer，没多想，随便改了一封用了好多次的简历和Cover Letter，就投了过去，继续开始做我的iPad。刚投了没五分钟，一个电话打来，一下惊醒，这也太神速了吧。是个印度人，不过声音还是很清晰的，说当天下午就要和我面试。我看了看自己，心想，到底是继续做我的iPad还是准备面试呢，结果就这样晃到了12点。左顾右盼的找了点Struts和Spring的面试题准备准备就去了。这家公司至少是十分规范的，每一个面试的环节都有详细的Email通知，第一轮技术面试就派了三个人轮番轰炸我。一个印度人，一个南亚另外地方的人，一个华人。华人算是对我很客气的了，不过很可惜的是自己由于没怎么准备，几个弱智题被我更加弱智化了，大家一起来嘲笑我吧，比如overloading和overwriting的区别，比如list, set, map的区别，比如如何在struts中实现validation，比如什么是left join和right join等等。现在想起自己的答案简直就要哭，不过还好，还是用英语模糊过去了。感觉是自己在英语的周游能力还是不错的，无论什么问题，都可以尽情的发挥，不停的说，多亏了当年雅思的准备。</p>
<p>就这样，过了第一轮面试，本来说是a couple of days给我通知的，但是知道第二个星期三都没消息。壮了壮胆子，发了封邮件过去问，后来马上就收到电话，说要我参加心理测试，时间是第二天的早上。所谓的心理测试，就是大家都知道的那些选择题，对于这种东西，本人是最为驾轻就熟的。不过要是仅仅只有这就好了，关键是它还有一个语文考试，也就是GRE里面的Verbal。考过GRE的同学都知道Verbal对词汇量的要求是如何的，而这里的语文考试不仅仅在词汇量的大小上和GRE类似，在词汇的选择上则是更加生活化口语化，总之就是都是我不认得的词。考下来，心理就在嘀咕，不会败在了语文上吧。</p>
<p>出乎意料的是，第二周的周三，又听到了熟悉的印度人声音，说要对我进行第二轮面试。心理一下激动了，这几乎就是HR面了啊。果然第二天，和我面试的人是CIO也就是直管我们的老板，LOCAL，说话声音不是那么的清楚，使我保存了一开始就说sorry的习惯。问题全部是现实工作的处理问题，毫无技术可言，于是我就用蹩脚的英语和他周旋，没想到他竟然还很满意。印度人还带我把公司转了一圈，心中的那个魔鬼告诉我，他们要你了。周五下午五点多，收到了最后的OFFER电话，这样一段找工的历程就画上了句号。新的单位是做J2EE的，包含了J2EE的几乎所有方向的开发，在这一点上是很适合我的。虽然有点远，在South Yarra，但我个人感觉还是十分满意的。</p>
<p>以下是总结一些在找工中得到的经验：</p>
<p>1. SEEK上的广告虽然多，但是有很多都是中介发的，几乎无论怎么申请，这些都是石沉大海。所以要辨析清楚到底是中介还是雇主直接发的，往往后者会有更好更直接的效果。</p>
<p>2. 要找有针对性的工作，不要撒网，那样一点作用都没有。看到自己适合的，就一定要积极去投，看到不沾边或者沾一点点的，就别浪费时间了。毕竟每一封简历和Cover Letter都是要时间写的。</p>
<p>3. 面试的时候不需要紧张，但是一定要多说，会也要说，不会也要说。别人知道你不是native speaker，不会太介意你的英语表达能力，但你不说，别人就完全无法了解你是否知道。你如果多说的话，别人或许还认为你知道，只是说不清楚而已。</p>
<p>4. 多用实例，少讲概念。本来概念就是很难讲清楚的，面试时一紧张，更容易说错。不如举个例子，画点小图，清晰明了。</p>
<p>5. 一定要准备，要有针对性的准备，特别是不能在基础上反弱智错误，不然自己后悔都来不及。</p>

<p><a href="http://feedads.g.doubleclick.net/~a/aTGaSzdXbrBaImgCgA5_nFMDRv4/0/da"><img src="http://feedads.g.doubleclick.net/~a/aTGaSzdXbrBaImgCgA5_nFMDRv4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/aTGaSzdXbrBaImgCgA5_nFMDRv4/1/da"><img src="http://feedads.g.doubleclick.net/~a/aTGaSzdXbrBaImgCgA5_nFMDRv4/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/featheast/JYWi/~4/h3ccvnzcx8I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.featheast.com/life/melbourne-intervie/feed</wfw:commentRss>
		<feedburner:origLink>http://www.featheast.com/life/melbourne-intervie</feedburner:origLink></item>
		<item>
		<title>iPad</title>
		<link>http://feedproxy.google.com/~r/featheast/JYWi/~3/GoV7K8kGVAY/ipad</link>
		<comments>http://www.featheast.com/life/ipad#comments</comments>
		<pubDate>Thu, 24 Jun 2010 08:59:03 +0000</pubDate>
		<dc:creator>featheast</dc:creator>
		
		<category><![CDATA[生活]]></category>

		<category><![CDATA[iPad]]></category>

		<guid isPermaLink="false">http://www.featheast.com/?p=645</guid>
		<description><![CDATA[IPAD到手已经好几天了，今天才有时间好好摸一摸，没干别的什么事，也不想花钱到APPLE STORE买东西，于是GOOGLE了一把，下了不少的免费软件。在这里记录一下，以后有更多的再慢慢汇报。总之，IPAD就是一个大玩具，上网看书巨爽，其他功能有待发掘。
软件:
iBooks, Stanza, TweetDeck, Twitterrific, AirVideoFree, AccuWeather, Big Calc Free, Dropbox, Colors Pro, WSJ, iPDF, iWallpapers, uploadingit, Photo Frame, MobileNoter, FeeddlerRSS,
游戏:
Gravity HD, New York, RushHrFree, Busy Harbor, Shanghai Lite, Air Hockey, 10 Pin Lite, Newton&#8217;s, Hit Tennis 2, PokerFreeHD, Manic Marble, KarateKid, Sudoku Tablet, Checkers, ChessBorda, Clickomania, JirboSays, JirboBreak, iMahjong, Snowboarding, BumperBoats, Pukk HD, GodFinger, [...]]]></description>
			<content:encoded><![CDATA[<p>IPAD到手已经好几天了，今天才有时间好好摸一摸，没干别的什么事，也不想花钱到APPLE STORE买东西，于是GOOGLE了一把，下了不少的免费软件。在这里记录一下，以后有更多的再慢慢汇报。总之，IPAD就是一个大玩具，上网看书巨爽，其他功能有待发掘。</p>
<p>软件:</p>
<p>iBooks, Stanza, TweetDeck, Twitterrific, AirVideoFree, AccuWeather, Big Calc Free, Dropbox, Colors Pro, WSJ, iPDF, iWallpapers, uploadingit, Photo Frame, MobileNoter, FeeddlerRSS,</p>
<p>游戏:</p>
<p>Gravity HD, New York, RushHrFree, Busy Harbor, Shanghai Lite, Air Hockey, 10 Pin Lite, Newton&#8217;s, Hit Tennis 2, PokerFreeHD, Manic Marble, KarateKid, Sudoku Tablet, Checkers, ChessBorda, Clickomania, JirboSays, JirboBreak, iMahjong, Snowboarding, BumperBoats, Pukk HD, GodFinger, Tic Tac Toe, TeragatiFree, BMS Lite, Bubble Snap, Tap Fish, Farm Story, We Rule, TunesAttack, PaperFootball, Doons, Cogs HD Lite, Chicktionary, Radiation, Harbor Master, Aurora Feint 3, CastleCraft, Legends, Labyrinth Lite</p>

<p><a href="http://feedads.g.doubleclick.net/~a/o7_visckTJyRWLXeGiDZMDIglhM/0/da"><img src="http://feedads.g.doubleclick.net/~a/o7_visckTJyRWLXeGiDZMDIglhM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/o7_visckTJyRWLXeGiDZMDIglhM/1/da"><img src="http://feedads.g.doubleclick.net/~a/o7_visckTJyRWLXeGiDZMDIglhM/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/featheast/JYWi/~4/GoV7K8kGVAY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.featheast.com/life/ipad/feed</wfw:commentRss>
		<feedburner:origLink>http://www.featheast.com/life/ipad</feedburner:origLink></item>
		<item>
		<title>关注孤军</title>
		<link>http://feedproxy.google.com/~r/featheast/JYWi/~3/zTQjRQHxnCI/%e5%85%b3%e6%b3%a8%e5%ad%a4%e5%86%9b</link>
		<comments>http://www.featheast.com/uncategorized/%e5%85%b3%e6%b3%a8%e5%ad%a4%e5%86%9b#comments</comments>
		<pubDate>Mon, 14 Jun 2010 00:16:43 +0000</pubDate>
		<dc:creator>featheast</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[孤军]]></category>

		<guid isPermaLink="false">http://www.featheast.com/uncategorized/%e5%85%b3%e6%b3%a8%e5%ad%a4%e5%86%9b</guid>
		<description><![CDATA[有这样一支部队，他们不被国民党要，不被共产党要，流落在金山角地区，缅甸泰国政府亦不要。当年残存的93军，如今成为了孤军，孤独地生活在异国他乡。
]]></description>
			<content:encoded><![CDATA[<p>有这样一支部队，他们不被国民党要，不被共产党要，流落在金山角地区，缅甸泰国政府亦不要。当年残存的93军，如今成为了孤军，孤独地生活在异国他乡。</p>

<p><a href="http://feedads.g.doubleclick.net/~a/EYqx_itZFtqcMgzcMJ9dI0CKmcI/0/da"><img src="http://feedads.g.doubleclick.net/~a/EYqx_itZFtqcMgzcMJ9dI0CKmcI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/EYqx_itZFtqcMgzcMJ9dI0CKmcI/1/da"><img src="http://feedads.g.doubleclick.net/~a/EYqx_itZFtqcMgzcMJ9dI0CKmcI/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/featheast/JYWi/~4/zTQjRQHxnCI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.featheast.com/uncategorized/%e5%85%b3%e6%b3%a8%e5%ad%a4%e5%86%9b/feed</wfw:commentRss>
		<feedburner:origLink>http://www.featheast.com/uncategorized/%e5%85%b3%e6%b3%a8%e5%ad%a4%e5%86%9b</feedburner:origLink></item>
		<item>
		<title>互联网中的视频(HTML5) — （2）</title>
		<link>http://feedproxy.google.com/~r/featheast/JYWi/~3/MIhvxH3-8Mo/video-on-the-web-html5-2</link>
		<comments>http://www.featheast.com/it/video-on-the-web-html5-2#comments</comments>
		<pubDate>Mon, 07 Jun 2010 12:43:02 +0000</pubDate>
		<dc:creator>featheast</dc:creator>
		
		<category><![CDATA[IT]]></category>

		<category><![CDATA[AAC]]></category>

		<category><![CDATA[Audio]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[HTML5]]></category>

		<category><![CDATA[MP3]]></category>

		<category><![CDATA[MP4]]></category>

		<category><![CDATA[Ogg]]></category>

		<category><![CDATA[Vorbis]]></category>

		<category><![CDATA[WebM]]></category>

		<category><![CDATA[视频]]></category>

		<guid isPermaLink="false">http://www.featheast.com/?p=642</guid>
		<description><![CDATA[音频编码器
除非你坚持观看1927年之前的电影，不然你一定会希望在你的视频中含有音频。和视频编码器一样，音频解码器也是一种算法来对音频流进行编码。同样和视频编码器一样，音频编码器也分为有损和无损两种类型。同样的原因，无损的音频是在是太大而很难再网络上使用，我们会更加关注有损音频。
事实上，我们关注的将要比这更窄，因为有损音频编码器有几种种类。音频在很多不需要视频的地方也在使用（电话，比如），于是存在着一整套关于如何对演讲进行编码优化的音频解码器。你不会使用这些编码器到音乐CD，不然结果就像是听到一个四岁的小孩在从话筒里唱歌一样。但是你会在Asterisk PBX中使用它，因为在这种情况下带宽是极其珍贵的，而这些编码器能够将人的演讲压缩的一般编码器的几分之一。不过，因为缺少浏览器和第三方的支持，演讲优化的音频编码器从来没有在网络上得到普及。所以我们将更加关注普通目的的有损编码器。
如果我再前面所提到的，当播放一段视频的时候，电脑同时在做几件事情：
1. 解释容器的格式
2. 解码视频流
3. 解码音频流并且传递到播放器中
音频编码器解决了上述的第三个问题 - 将音频流进行解码变成数据格式从而使得播放器可以播出。就像视频解码器一样，也有很多的技巧能够减小音频流中的数据存储量。也因为我们在讨论有损音频编码器，信息在录制-编码-解码-收听的循环中在不断丢失。不同的音频编码器会丢掉不同的东西，但是他们的共同目的是一样的，就是使得你的耳朵无法辨析出有东西在丢失。
有一个概念在视频中没有的是频道。我们把声音传送到喇叭中，那你有多少个喇叭呢？如果你坐在电脑前，极大的可能你只有两个，一个在左边，一个在右边。我的桌子上有三个，左边，右边，还有一个在地板上。被称作为环绕声系统的可以有六个或者更多的喇叭，被安排好而防止在房间里。每一个喇叭专门的播放一个频道，当你坐在六个喇叭中间的时候，你会被六个不同的喇叭轨道所环绕，你的大脑进行综合和感觉你就好像身临其境。有用么？至少这个几十亿美元的产业认为是。
大多数的普通音频解码器可以处理两个频道的声音。在录制的过程中，声音被分开到左音道和右音道中；在编码过程中，两个音道都被存放到同一个音频流中；然后在解码时，两个音道分别被送到合适的喇叭。有一些音频解码器可以处理多余两个的轨道，同时将他们传送到准确的喇叭中。
音频解码器有很多很多种，但是在网络中，真正只有三种是需要了解的：Mp3, AAC和Vorbis。
MPEG-1 Audio Layer 3
MPEG-1 Audio Layer 3  通常被称为MP3, 它被编码为不同的率，64kbps, 128kbps, 192kbps，还有的分布在32到320之间。更高的编码率代表着更大的文件和更好的音频效果，不过编码率和音频质量并不是线性关系：128kbps的声音比64kbps的要好绝不止两倍，但是256kbps没有128kbps的两倍好。此外，MP3允许多率编码，也就是说可以在音频的一部分使用一种编码率，而在另一部分使用另外一种编码率。比如，当两段对话之间的空白时，便可以使用很低的编码率，而在多种声音开始时使用更高的编码率。
MP3规范并没有完全意义上定义如何进行MP3的编码（不过定义了如何解码），不同的编码器使用不同的听觉心理学模型得到了很多不同的结果，但是他们都可以被同一个播放器所解码。开源的LAME项目是一个最好的免费编码器。
MP3格式在1991年标准化，同时也是受专利所保护的，这也解释了为什么Linux不同直接播放MP3的原因。绝大多数的移动音乐播放器都支持单独的MP3文件，同时MP3音频流也可以被内嵌在任意的视频容器中。Adobe Flash既可以播放单独的MP3文件，也可以将MP3内嵌到MP4视频容器之中。
ADVANCED AUDIO CODING
AAC于1997年标准化，它在被Apple选中成为其iTunes商店的默认格式后得到了极大的发展。最初，所有的从iTunes商店购买的AAC文件都是被Apple的DRM所加密的，被称之为FairPlay。现在iTunes商店的很多歌曲已经没有了这层保护，被Apple称为iTunes Plus。AAC格式是受专利保护的。
AAC是被设计用来提供一个在同样解码率下比MP3音质更好的格式，并且能够在任意的编码率下编码音频。（MP3只能限制在几种编码率下，并且上限是320kbps）。AAC可以最多编码48个频道的声音，尽管在实践中不会有人真的这样去做。AAC格式另一个和MP3不同的地方在它也定义了多Profiles，类似于H。264。低复杂度的profile被设计用来在实时的系统中低CPU功耗的播放，而高Profile则被用来提供更好的音质通过更慢的编码和解码来换取。
所有当前的Apple产品，包括iPods, AppleTV, 和QuickTime支持一定profiles的AAC格式在单独的音频文件或者被内嵌在MP4视频容器中。Adobe Flash支持MP4中的各种Profiles的AAC，开源的播放器mplayer和VLC播放器也是。对于编码而言，FAAC库是一个开源的选择。
VORBIS
Vorbis也经常被叫做&#8221;Ogg Vorbis&#8221;, 尽管从技术角度来说是不正确的。(&#8221;Ogg&#8221;只是一个容器格式，而Vorbis音频流还可以被内嵌在其他的容器之中）。Vorbis不被任何专利所限制，因此它被绝大多数的Linux系统和移动设备直接支持。Mozilla Firefox 3.5 支持Vorbis音频文件在Ogg容器中，或者Ogg视频中包含着Vorbis音频轨道。Android移动手机可以播放单独的Vorbis音频文件。Vorbis音频流通常被内嵌在Ogg或者WebM容器中，但是他也可以被内嵌在MP4或者MKV中。Vorbis支持任意数目的音频轨道。
]]></description>
			<content:encoded><![CDATA[<p>音频编码器</p>
<p>除非你坚持观看1927年之前的电影，不然你一定会希望在你的视频中含有音频。和视频编码器一样，音频解码器也是一种算法来对音频流进行编码。同样和视频编码器一样，音频编码器也分为有损和无损两种类型。同样的原因，无损的音频是在是太大而很难再网络上使用，我们会更加关注有损音频。</p>
<p>事实上，我们关注的将要比这更窄，因为有损音频编码器有几种种类。音频在很多不需要视频的地方也在使用（电话，比如），于是存在着一整套关于如何对演讲进行编码优化的音频解码器。你不会使用这些编码器到音乐CD，不然结果就像是听到一个四岁的小孩在从话筒里唱歌一样。但是你会在Asterisk PBX中使用它，因为在这种情况下带宽是极其珍贵的，而这些编码器能够将人的演讲压缩的一般编码器的几分之一。不过，因为缺少浏览器和第三方的支持，演讲优化的音频编码器从来没有在网络上得到普及。所以我们将更加关注普通目的的有损编码器。</p>
<p>如果我再前面所提到的，当播放一段视频的时候，电脑同时在做几件事情：</p>
<p>1. 解释容器的格式</p>
<p>2. 解码视频流</p>
<p>3. 解码音频流并且传递到播放器中</p>
<p>音频编码器解决了上述的第三个问题 - 将音频流进行解码变成数据格式从而使得播放器可以播出。就像视频解码器一样，也有很多的技巧能够减小音频流中的数据存储量。也因为我们在讨论有损音频编码器，信息在录制-编码-解码-收听的循环中在不断丢失。不同的音频编码器会丢掉不同的东西，但是他们的共同目的是一样的，就是使得你的耳朵无法辨析出有东西在丢失。</p>
<p>有一个概念在视频中没有的是频道。我们把声音传送到喇叭中，那你有多少个喇叭呢？如果你坐在电脑前，极大的可能你只有两个，一个在左边，一个在右边。我的桌子上有三个，左边，右边，还有一个在地板上。被称作为环绕声系统的可以有六个或者更多的喇叭，被安排好而防止在房间里。每一个喇叭专门的播放一个频道，当你坐在六个喇叭中间的时候，你会被六个不同的喇叭轨道所环绕，你的大脑进行综合和感觉你就好像身临其境。有用么？至少这个几十亿美元的产业认为是。</p>
<p>大多数的普通音频解码器可以处理两个频道的声音。在录制的过程中，声音被分开到左音道和右音道中；在编码过程中，两个音道都被存放到同一个音频流中；然后在解码时，两个音道分别被送到合适的喇叭。有一些音频解码器可以处理多余两个的轨道，同时将他们传送到准确的喇叭中。</p>
<p>音频解码器有很多很多种，但是在网络中，真正只有三种是需要了解的：Mp3, AAC和Vorbis。</p>
<p>MPEG-1 Audio Layer 3</p>
<p>MPEG-1 Audio Layer 3  通常被称为MP3, 它被编码为不同的率，64kbps, 128kbps, 192kbps，还有的分布在32到320之间。更高的编码率代表着更大的文件和更好的音频效果，不过编码率和音频质量并不是线性关系：128kbps的声音比64kbps的要好绝不止两倍，但是256kbps没有128kbps的两倍好。此外，MP3允许多率编码，也就是说可以在音频的一部分使用一种编码率，而在另一部分使用另外一种编码率。比如，当两段对话之间的空白时，便可以使用很低的编码率，而在多种声音开始时使用更高的编码率。</p>
<p>MP3规范并没有完全意义上定义如何进行MP3的编码（不过定义了如何解码），不同的编码器使用不同的听觉心理学模型得到了很多不同的结果，但是他们都可以被同一个播放器所解码。开源的LAME项目是一个最好的免费编码器。</p>
<p>MP3格式在1991年标准化，同时也是受专利所保护的，这也解释了为什么Linux不同直接播放MP3的原因。绝大多数的移动音乐播放器都支持单独的MP3文件，同时MP3音频流也可以被内嵌在任意的视频容器中。Adobe Flash既可以播放单独的MP3文件，也可以将MP3内嵌到MP4视频容器之中。</p>
<p>ADVANCED AUDIO CODING</p>
<p>AAC于1997年标准化，它在被Apple选中成为其iTunes商店的默认格式后得到了极大的发展。最初，所有的从iTunes商店购买的AAC文件都是被Apple的DRM所加密的，被称之为FairPlay。现在iTunes商店的很多歌曲已经没有了这层保护，被Apple称为iTunes Plus。AAC格式是受专利保护的。</p>
<p>AAC是被设计用来提供一个在同样解码率下比MP3音质更好的格式，并且能够在任意的编码率下编码音频。（MP3只能限制在几种编码率下，并且上限是320kbps）。AAC可以最多编码48个频道的声音，尽管在实践中不会有人真的这样去做。AAC格式另一个和MP3不同的地方在它也定义了多Profiles，类似于H。264。低复杂度的profile被设计用来在实时的系统中低CPU功耗的播放，而高Profile则被用来提供更好的音质通过更慢的编码和解码来换取。</p>
<p>所有当前的Apple产品，包括iPods, AppleTV, 和QuickTime支持一定profiles的AAC格式在单独的音频文件或者被内嵌在MP4视频容器中。Adobe Flash支持MP4中的各种Profiles的AAC，开源的播放器mplayer和VLC播放器也是。对于编码而言，FAAC库是一个开源的选择。</p>
<p>VORBIS</p>
<p>Vorbis也经常被叫做&#8221;Ogg Vorbis&#8221;, 尽管从技术角度来说是不正确的。(&#8221;Ogg&#8221;只是一个容器格式，而Vorbis音频流还可以被内嵌在其他的容器之中）。Vorbis不被任何专利所限制，因此它被绝大多数的Linux系统和移动设备直接支持。Mozilla Firefox 3.5 支持Vorbis音频文件在Ogg容器中，或者Ogg视频中包含着Vorbis音频轨道。Android移动手机可以播放单独的Vorbis音频文件。Vorbis音频流通常被内嵌在Ogg或者WebM容器中，但是他也可以被内嵌在MP4或者MKV中。Vorbis支持任意数目的音频轨道。</p>

<p><a href="http://feedads.g.doubleclick.net/~a/tvmhpqgGbHsOI8XaFRkMQe8Y8nM/0/da"><img src="http://feedads.g.doubleclick.net/~a/tvmhpqgGbHsOI8XaFRkMQe8Y8nM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/tvmhpqgGbHsOI8XaFRkMQe8Y8nM/1/da"><img src="http://feedads.g.doubleclick.net/~a/tvmhpqgGbHsOI8XaFRkMQe8Y8nM/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/featheast/JYWi/~4/MIhvxH3-8Mo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.featheast.com/it/video-on-the-web-html5-2/feed</wfw:commentRss>
		<feedburner:origLink>http://www.featheast.com/it/video-on-the-web-html5-2</feedburner:origLink></item>
		<item>
		<title>互联网中的视频(HTML5) — （1）</title>
		<link>http://feedproxy.google.com/~r/featheast/JYWi/~3/8ubLy6zw_HA/video-on-the-web-html5</link>
		<comments>http://www.featheast.com/it/video-on-the-web-html5#comments</comments>
		<pubDate>Tue, 01 Jun 2010 12:17:52 +0000</pubDate>
		<dc:creator>featheast</dc:creator>
		
		<category><![CDATA[IT]]></category>

		<category><![CDATA[AVI]]></category>

		<category><![CDATA[codec]]></category>

		<category><![CDATA[decode]]></category>

		<category><![CDATA[encode]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[Google I/O]]></category>

		<category><![CDATA[H.264]]></category>

		<category><![CDATA[HTML5]]></category>

		<category><![CDATA[MP4]]></category>

		<category><![CDATA[MPEG4]]></category>

		<category><![CDATA[Theora]]></category>

		<category><![CDATA[Vorbis]]></category>

		<category><![CDATA[VP8]]></category>

		<category><![CDATA[WebM]]></category>

		<category><![CDATA[视频]]></category>

		<guid isPermaLink="false">http://www.featheast.com/?p=639</guid>
		<description><![CDATA[自从上个月Google IO以来，对于HTML5的讨论是越来越多，而其中十分重要的一个部分就是视频Video。作为内嵌进入HTML的新的标记，Video将在HTML5中发挥其核心的作用，将互联网的表达能力继续提升。
不过在实际中，有很多人对于视频的了解还很浅显，对于WebM等这些新的名词到底代表的什么意思，以及和以前的MP4,AVI等有什么关系是完全的一头雾水。在这里找到了一篇很好的文章，直接翻译过来，希望对大家都有所帮助。至少我在读完这篇文章之后，对于Video的确是有了更为清晰的认识。
文章的网址在http://diveintohtml5.org/video.html，是一本新书的其中一个章节。
每一个在过去四年中访问过YouTube的人都应该知道你可以将视频内嵌在网页中。但是在HTML5之前，是没有一个标准的方式来完成这件事情的。实际上，所有你在网络上所观看的视频，都是通过的第三方插件 - 或许是QuickTime，或许是RealPlayer，或许是Flash（YouTube使用的是Flash)。这些插件能够很好的和你的浏览器结合，以至于很有可能你都意识不到你在使用它们，直到你试图观看一个视频但是你的平台不支持这个插件的时候。
HTML5定义了一个标准，使用&#60;video&#62;符号来在网页中内嵌视屏。目前对&#60;video&#62;的支持还在慢慢发展，当然这只是对其还无法使用的一个礼貌的说辞。至少，它现在还不能在所有的地方使用。但是不要灰心，还是有很多的替代，退路和选择存在。
&#60;VIDEO&#62; 的支持
IE9    IE8    IE7    FX3.5    FX3.0    SAF4    SAF3    CHROME     OPERA
yes                              yes                          yes        yes           yes              yes
不过支持&#60;video&#62;仅仅只是这个故事中的很小一部分。在我们开始讨论HTML5视频之前，你必须对视频本身有一定的了解。
视频容器
你可以把视频文件看做是AVI文件或者是MP4文件。在现实之中，AVI和MP4仅仅只是视频容器的格式。就像一个ZIP压缩文件可以存储任意的文件在其中一样，视频容器格式只是定义了如何在容器中存储东西，而不是什么类型的数据可以进行存储。（当然这个可能稍微要复杂一些，因为不是所有的视频流都和所有的视频容器格式所匹配的，不过暂时不要担心这些）
一个视频文件通常会包括几个轨道 - 一个视频轨道（没有音频），加上一个或者多个的音频轨道（没有视频）。 轨道通常是互相关联在一起的。一个音频轨道之中存储着标记来帮助和视频同步。单一的轨道可以包含元数据，比如视频的标题，视频的封面，集数（对于电视剧而言），还有很多很多。
视频的容器格式有很多很多，其中最为重要的一些包括：

MPEG4，通常是.mp4或者.m4v的扩展名。MPEG4容器时基于苹果公司老的QuickTime（.mov）容器的。在苹果公司网站上的电影片头，仍然使用的是QuickTime容器格式，但是从iTunes上下载的电影已经是MPEG4容器模式了。
Flash，通常以.flv结尾。Flash视频是，不意外的，被Adobe Flash所使用的。在Flash9.0.60.184之前（也就是Flash Player 9 Update 3)，这是Flash唯一所支持的格式。现在的新版本Flash同时也支持MPEG4容器。
Ogg，通常是以.ogv作为其扩展名。Ogg是一个开放标准，开源并且没有任何专业牵连的标准。FireFox3.5, Chrome 4, 还有Opera 10.5都直接支持Ogg容器，Ogg视频（被称作Theora)和Ogg音频（被称作Vorbis)，而不需要任何插件。在PC中，Ogg能够被所有的主流Linux直接使用，同时你可以在Mac和Windows上通过安装QuickTime Components或者DirectShow filters来使用。它同时可以通过VLC在各个平台上播放。
WebM是一个新的容器格式，从技术的角度来说，它和Matroska非常相似。WebM在Google I/O 2010中被发布，它是通过VP8视频编码器和Vorbis音频编码器来实现的（等会会有更多提到）。WebM将会被下个版本的Chromium, Google Chrome, Mozilla Firefox, 和Opera内置直接支持而不需要任何插件。Adobe也声称将在下个版本的Flash中支持WebM视频。
Audio Video Interleave, 通常以.avi结尾。AVI容器格式是微软在早期的时候当播放视频还被认为是十分惊喜的时候发明的。它并没有官方支持很多最新的容器格式，它也不官方支持各种元数据，它甚至不支持很多现在的视频和音频编码器。很长一段时间以来，各个公司通过各种方法来扩展AVI使其能够和各种格式相匹配，目前它仍然是很多著名的编码器的默认格式比如MEncoder.

视频编码器
当你谈到观看视频的时候，你通常所说的应该是一个视频流和音频流的组合。但是你并没有两种不同的文件，你只有一个视频文件。可能是AVI，也可能是MP4。这些仅仅只是容器的格式，就像ZIP压缩文件可以存放各种文件一样。视频容器格式定义了如何在单一文件中储存视频和音频流。
当你观看视频的时候，你的视频播放器在同时做以下几件事：
1. 通过对视频容器格式的解析，来判断哪种视频和音频轨道，和他们是如何存储在这个容器之中的，从而可以将这些数据找出并进行解码。
2. 对视频流进行解码并将一帧一帧的图像播放在屏幕上。
3. 对音频流进行解码并将声音送到喇叭中。
一个视频编码器指的是一个视频流进行编码的算法，它规定了如何完成上述的第二步。（词语Codec是一个合成词，他是编码coder和解码decoder的合成）。你的视频播放器通过视频编码器将视频流进行解码，然后播放一些列的图像或者帧在屏幕上。当今大多数的视频编码器使用了各种技巧来减少大量的播放帧之间的信息。比如，仅仅只存储两帧图像之间的差异，而不是完完全全存储两帧单独的图片。大多数的视频在两帧之间的变化都很小，这样就能够使用高压缩来产生更小的文件大小。
有损耗和无损耗两种类型的编码器。无损耗的视频太大而不适于在网络上使用，所以我们将更多的目光放在损耗的编码器上。一个有损的编码器说明信息在编码的时候会不可挽回的丢失。比如从一个磁带中拷贝时，你将会丢失原有的信息降低音频的质量，并且在每一次的编码中都会发生。除了音频中的zizi的声音之外，多次的视频编码会使得图像看上去更块状，特别是在有很多运动的场景之中。（事实上，这也可能发生在直接从原视频中进行编码，当你使用一个很差的编码器，或者传错了参数的时候发生）。从另一面来说，有损的视频解码器仍够提供很好的压缩器，同时很多提供了一些技巧使得块状的视屏仍够不那么容易被人的眼睛所发觉。
视频编码器的种类有很多很多，三个最为著名的分别是H.264, Theora和VP8.
H.264
H.264也通常被视为MPEG-4 part 10或者MPEG-4 AVC或者MPEG-4 Advanced Video Coding. H.264是被MPEG公司研发，在2003年标准化的。它的目标是提供向低带宽，低CPU设备（手机）或者高带宽，高CPU设备（现代PC）以及所有两者之间的所有设备的一个单一的编码器。为了完成这个目的，H.264标准被划分问profiles，用来定义一些列的可选的属性来再文件大小和复杂程度之间进行选择。高Profiles使用了更多的附加属性，提供了更好的视频效果，花费更多的时间进行编码，并且需要更多的CPU进行实时解码。
为了给大家一个粗略的profiles范围的概念，Apple公司的iPhone使用Baseline profile，AppltTV使用Baseline和Main profile，PC中的Adobe Flash使用Baseline, Main和High [...]]]></description>
			<content:encoded><![CDATA[<p>自从上个月Google IO以来，对于HTML5的讨论是越来越多，而其中十分重要的一个部分就是视频Video。作为内嵌进入HTML的新的标记，Video将在HTML5中发挥其核心的作用，将互联网的表达能力继续提升。</p>
<p>不过在实际中，有很多人对于视频的了解还很浅显，对于WebM等这些新的名词到底代表的什么意思，以及和以前的MP4,AVI等有什么关系是完全的一头雾水。在这里找到了一篇很好的文章，直接翻译过来，希望对大家都有所帮助。至少我在读完这篇文章之后，对于Video的确是有了更为清晰的认识。</p>
<p>文章的网址在<a href="http://diveintohtml5.org/video.html">http://diveintohtml5.org/video.html</a>，是一本新书的其中一个章节。</p>
<p>每一个在过去四年中访问过YouTube的人都应该知道你可以将视频内嵌在网页中。但是在HTML5之前，是没有一个标准的方式来完成这件事情的。实际上，所有你在网络上所观看的视频，都是通过的第三方插件 - 或许是QuickTime，或许是RealPlayer，或许是Flash（YouTube使用的是Flash)。这些插件能够很好的和你的浏览器结合，以至于很有可能你都意识不到你在使用它们，直到你试图观看一个视频但是你的平台不支持这个插件的时候。</p>
<p>HTML5定义了一个标准，使用&lt;video&gt;符号来在网页中内嵌视屏。目前对&lt;video&gt;的支持还在慢慢发展，当然这只是对其还无法使用的一个礼貌的说辞。至少，它现在还不能在所有的地方使用。但是不要灰心，还是有很多的替代，退路和选择存在。</p>
<p>&lt;VIDEO&gt; 的支持</p>
<p>IE9    IE8    IE7    FX3.5    FX3.0    SAF4    SAF3    CHROME     OPERA<br />
yes                              yes                          yes        yes           yes              yes</p>
<p>不过支持&lt;video&gt;仅仅只是这个故事中的很小一部分。在我们开始讨论HTML5视频之前，你必须对视频本身有一定的了解。</p>
<p>视频容器</p>
<p>你可以把视频文件看做是AVI文件或者是MP4文件。在现实之中，AVI和MP4仅仅只是视频容器的格式。就像一个ZIP压缩文件可以存储任意的文件在其中一样，视频容器格式只是定义了如何在容器中存储东西，而不是什么类型的数据可以进行存储。（当然这个可能稍微要复杂一些，因为不是所有的视频流都和所有的视频容器格式所匹配的，不过暂时不要担心这些）</p>
<p>一个视频文件通常会包括几个轨道 - 一个视频轨道（没有音频），加上一个或者多个的音频轨道（没有视频）。 轨道通常是互相关联在一起的。一个音频轨道之中存储着标记来帮助和视频同步。单一的轨道可以包含元数据，比如视频的标题，视频的封面，集数（对于电视剧而言），还有很多很多。</p>
<p>视频的容器格式有很多很多，其中最为重要的一些包括：</p>
<ul>
<li>MPEG4，通常是.mp4或者.m4v的扩展名。MPEG4容器时基于苹果公司老的QuickTime（.mov）容器的。在苹果公司网站上的电影片头，仍然使用的是QuickTime容器格式，但是从iTunes上下载的电影已经是MPEG4容器模式了。</li>
<li>Flash，通常以.flv结尾。Flash视频是，不意外的，被Adobe Flash所使用的。在Flash9.0.60.184之前（也就是Flash Player 9 Update 3)，这是Flash唯一所支持的格式。现在的新版本Flash同时也支持MPEG4容器。</li>
<li>Ogg，通常是以.ogv作为其扩展名。Ogg是一个开放标准，开源并且没有任何专业牵连的标准。FireFox3.5, Chrome 4, 还有Opera 10.5都直接支持Ogg容器，Ogg视频（被称作Theora)和Ogg音频（被称作Vorbis)，而不需要任何插件。在PC中，Ogg能够被所有的主流Linux直接使用，同时你可以在Mac和Windows上通过安装QuickTime Components或者DirectShow filters来使用。它同时可以通过VLC在各个平台上播放。</li>
<li>WebM是一个新的容器格式，从技术的角度来说，它和Matroska非常相似。WebM在Google I/O 2010中被发布，它是通过VP8视频编码器和Vorbis音频编码器来实现的（等会会有更多提到）。WebM将会被下个版本的Chromium, Google Chrome, Mozilla Firefox, 和Opera内置直接支持而不需要任何插件。Adobe也声称将在下个版本的Flash中支持WebM视频。</li>
<li>Audio Video Interleave, 通常以.avi结尾。AVI容器格式是微软在早期的时候当播放视频还被认为是十分惊喜的时候发明的。它并没有官方支持很多最新的容器格式，它也不官方支持各种元数据，它甚至不支持很多现在的视频和音频编码器。很长一段时间以来，各个公司通过各种方法来扩展AVI使其能够和各种格式相匹配，目前它仍然是很多著名的编码器的默认格式比如MEncoder.</li>
</ul>
<p>视频编码器</p>
<p>当你谈到观看视频的时候，你通常所说的应该是一个视频流和音频流的组合。但是你并没有两种不同的文件，你只有一个视频文件。可能是AVI，也可能是MP4。这些仅仅只是容器的格式，就像ZIP压缩文件可以存放各种文件一样。视频容器格式定义了如何在单一文件中储存视频和音频流。</p>
<p>当你观看视频的时候，你的视频播放器在同时做以下几件事：</p>
<p>1. 通过对视频容器格式的解析，来判断哪种视频和音频轨道，和他们是如何存储在这个容器之中的，从而可以将这些数据找出并进行解码。<br />
2. 对视频流进行解码并将一帧一帧的图像播放在屏幕上。<br />
3. 对音频流进行解码并将声音送到喇叭中。</p>
<p>一个视频编码器指的是一个视频流进行编码的算法，它规定了如何完成上述的第二步。（词语Codec是一个合成词，他是编码coder和解码decoder的合成）。你的视频播放器通过视频编码器将视频流进行解码，然后播放一些列的图像或者帧在屏幕上。当今大多数的视频编码器使用了各种技巧来减少大量的播放帧之间的信息。比如，仅仅只存储两帧图像之间的差异，而不是完完全全存储两帧单独的图片。大多数的视频在两帧之间的变化都很小，这样就能够使用高压缩来产生更小的文件大小。</p>
<p>有损耗和无损耗两种类型的编码器。无损耗的视频太大而不适于在网络上使用，所以我们将更多的目光放在损耗的编码器上。一个有损的编码器说明信息在编码的时候会不可挽回的丢失。比如从一个磁带中拷贝时，你将会丢失原有的信息降低音频的质量，并且在每一次的编码中都会发生。除了音频中的zizi的声音之外，多次的视频编码会使得图像看上去更块状，特别是在有很多运动的场景之中。（事实上，这也可能发生在直接从原视频中进行编码，当你使用一个很差的编码器，或者传错了参数的时候发生）。从另一面来说，有损的视频解码器仍够提供很好的压缩器，同时很多提供了一些技巧使得块状的视屏仍够不那么容易被人的眼睛所发觉。</p>
<p>视频编码器的种类有很多很多，三个最为著名的分别是H.264, Theora和VP8.</p>
<p>H.264</p>
<p>H.264也通常被视为MPEG-4 part 10或者MPEG-4 AVC或者MPEG-4 Advanced Video Coding. H.264是被MPEG公司研发，在2003年标准化的。它的目标是提供向低带宽，低CPU设备（手机）或者高带宽，高CPU设备（现代PC）以及所有两者之间的所有设备的一个单一的编码器。为了完成这个目的，H.264标准被划分问profiles，用来定义一些列的可选的属性来再文件大小和复杂程度之间进行选择。高Profiles使用了更多的附加属性，提供了更好的视频效果，花费更多的时间进行编码，并且需要更多的CPU进行实时解码。</p>
<p>为了给大家一个粗略的profiles范围的概念，Apple公司的iPhone使用Baseline profile，AppltTV使用Baseline和Main profile，PC中的Adobe Flash使用Baseline, Main和High profile. YouTube使用H.264来编码高分辨率的视频，通过Adobe Flash来播放。YouTube同时也提供H.264编码的视频给移动设备包括苹果的iPhone和Google的Android。同时H.264也是蓝光Blue-Ray格式所指定的编码格式，蓝光一般使用High profile.</p>
<p>大多数的非PC设备在播放H.264视频的时候（包括iPhone和蓝光），实际上使用的是一个专门的芯片来进行解码，因为它们的CPU还没有强大到能够在实时对视频进行解码。大多数的PC的显卡也支持硬件H.264解码。还有很多H.264解码器的竞争者，包括开源的x264 library。H.264标准是受专利保护的，通过MPEG LA建团所代理。H.264视频可以集成在绝大多数的视频容器格式之中，包括MP4和MKV.</p>
<p>THEORA</p>
<p>THEORA是从VP3解码器发展而来，而如今被Xiph.org Foundation所支持。Theora不像其他的VP3专利，是完全免费没有任何专利保护的编码方式。尽管这个标准从2004年以来就没有变化，Theora项目仅仅只在2008年11月和2009年9月发布了1.0和1.1版本。</p>
<p>Theora视频可以被集成到任意的视频容器格式之中，尽管大多数时候是在Ogg容器中。所有的主流Linux都内置支持Theora，并且Mozilla Firefox 3.5也内置支持。内置支持，我指的是不需要任何插件就可以进行播放。同时Theora视频也可以在Windows和Mac OS X中通过安装Xiph.org的开源解码器软件来进行播放。</p>
<p>VP8</p>
<p>VP8是另外一个On2公司的视频编码器，它们同时也最初研发了VP3(后来的Theora)。从技术上讲，VP8的视频质量类似于Baseline profile的H.264，同时有着很大的提升的潜力。</p>
<p>在2010年,Google收购了On2公司，并且将视频编码器标准和编码解码的样例进行了开源。同时，Google还通过宣布其完全免费打开了所有On2在VP8上的专利。（这也是最好的办法，因为你无法解除任何专利）。</p>

<p><a href="http://feedads.g.doubleclick.net/~a/cgFBmLM958HNTqzuMJBVySFGUlg/0/da"><img src="http://feedads.g.doubleclick.net/~a/cgFBmLM958HNTqzuMJBVySFGUlg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/cgFBmLM958HNTqzuMJBVySFGUlg/1/da"><img src="http://feedads.g.doubleclick.net/~a/cgFBmLM958HNTqzuMJBVySFGUlg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/featheast/JYWi/~4/8ubLy6zw_HA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.featheast.com/it/video-on-the-web-html5/feed</wfw:commentRss>
		<feedburner:origLink>http://www.featheast.com/it/video-on-the-web-html5</feedburner:origLink></item>
		<item>
		<title>2010 World Cup Schedule and Broadcast Schedule</title>
		<link>http://feedproxy.google.com/~r/featheast/JYWi/~3/KSf88zGcaUQ/2010-world-cup-schedule-and-broadcast-schedule</link>
		<comments>http://www.featheast.com/life/2010-world-cup-schedule-and-broadcast-schedule#comments</comments>
		<pubDate>Fri, 28 May 2010 02:34:32 +0000</pubDate>
		<dc:creator>featheast</dc:creator>
		
		<category><![CDATA[生活]]></category>

		<guid isPermaLink="false">http://www.featheast.com/?p=636</guid>
		<description><![CDATA[All times are AEST
Fri Jun-11 23:00 South Africa - Mexico
Sat Jun-12 04:00 Uruguay - France
Sat Jun-12 21:00 Korea Republic - Greece
Sat Jun-12 23:30 Argentina - Nigeria
Sun Jun-13 04:00 England - USA
Sun Jun-13 21:00 Algeria - Slovenia
Sun Jun-13 23:30 Serbia - Ghana
Mon Jun-14 04:00 Germany - Australia
Mon Jun-14 21:00 Netherlands - Denmark
Mon Jun-14 23:30 Japan - [...]]]></description>
			<content:encoded><![CDATA[<p>All times are AEST</p>
<p>Fri Jun-11 23:00 South Africa - Mexico</p>
<p>Sat Jun-12 04:00 Uruguay - France</p>
<p>Sat Jun-12 21:00 Korea Republic - Greece</p>
<p>Sat Jun-12 23:30 Argentina - Nigeria</p>
<p>Sun Jun-13 04:00 England - USA</p>
<p>Sun Jun-13 21:00 Algeria - Slovenia</p>
<p>Sun Jun-13 23:30 Serbia - Ghana</p>
<p>Mon Jun-14 04:00 Germany - Australia</p>
<p>Mon Jun-14 21:00 Netherlands - Denmark</p>
<p>Mon Jun-14 23:30 Japan - Cameroon</p>
<p>Tue Jun-15 04:00 Italy - Paraguay</p>
<p>Tue Jun-15 21:00 New Zealand - Slovakia</p>
<p>Tue Jun-15 23:30 Cote d&#8217;Ivoire - Portugal</p>
<p>Wed Jun-16 04:00 Brazil - Korea DPR</p>
<p>Wed Jun-16 21:00 Honduras - Chile</p>
<p>Wed Jun-16 23:30 Spain - Switzerland</p>
<p>Thu Jun-17 04:00 South Africa - Uruguay</p>
<p>Thu Jun-17 21:00 Argentina - Korea Republic</p>
<p>Thu Jun-17 23:30 Greece - Nigeria</p>
<p>Fri Jun-18 04:00 France - Mexico</p>
<p>Fri Jun-18 21:00 Germany - Serbia</p>
<p>Fri Jun-18 23:30 Slovenia - USA</p>
<p>Sat Jun-19 04:00 England - Algeria</p>
<p>Sat Jun-19 21:00 Netherlands - Japan</p>
<p>Sat Jun-19 23:30 Ghana - Australia</p>
<p>Sun Jun-20 04:00 Cameroon - Denmark</p>
<p>Sun Jun-20 21:00 Slovakia - Paraguay</p>
<p>Sun Jun-20 23:30 Italy - New Zealand</p>
<p>Mon Jun-21 04:00 Brazil - Cote d&#8217;Ivoire</p>
<p>Mon Jun-21 21:00 Portugal Korea DPR</p>
<p>Mon Jun-21 23:30 Chile - Switzerland</p>
<p>Tue Jun-22 04:00 Spain - Honduras</p>
<p>Tue Jun-22 23:30 Mexico - Uruguay</p>
<p>Wed Jun-23 02:00 France - South Africa</p>
<p>Wed Jun-23 04:00 Greece  - Argentina</p>
<p>Wed Jun-23 06:30 Nigeria - Korea Republic</p>
<p>Wed Jun-23 23:30 Slovenia - England</p>
<p>Thu Jun-24 02:00 USA - Algeria</p>
<p>Thu Jun-24 04:00 Australia - Serbia</p>
<p>Thu Jun-24 06:30 Ghana - Germany</p>
<p>Thu Jun-24 23:30 Slovakia - Italy</p>
<p>Fri Jun-25 02:00 Paraguay - New Zealand</p>
<p>Fri Jun-25 04:00 Cameroon - Netherlands</p>
<p>Fri Jun-25 06:30 Denmark - Japan</p>
<p>Fri Jun-25 23:30 Portugal - Brazil</p>
<p>Sat Jun-26 02:00 Korea DPR - Cote d&#8217;Ivoire</p>
<p>Sat Jun-26 04:00 Chile - Spain</p>
<p>Sat Jun-26 06:30 Switzerland - Honduras</p>

<p><a href="http://feedads.g.doubleclick.net/~a/UK-HaQocQOcwHfcR8MiUVd0uSpg/0/da"><img src="http://feedads.g.doubleclick.net/~a/UK-HaQocQOcwHfcR8MiUVd0uSpg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/UK-HaQocQOcwHfcR8MiUVd0uSpg/1/da"><img src="http://feedads.g.doubleclick.net/~a/UK-HaQocQOcwHfcR8MiUVd0uSpg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/featheast/JYWi/~4/KSf88zGcaUQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.featheast.com/life/2010-world-cup-schedule-and-broadcast-schedule/feed</wfw:commentRss>
		<feedburner:origLink>http://www.featheast.com/life/2010-world-cup-schedule-and-broadcast-schedule</feedburner:origLink></item>
		<item>
		<title>2010 Skytrax Awards</title>
		<link>http://feedproxy.google.com/~r/featheast/JYWi/~3/GUiHZOpagYE/2010-skytrax-awards</link>
		<comments>http://www.featheast.com/travelling/2010-skytrax-awards#comments</comments>
		<pubDate>Fri, 21 May 2010 00:45:06 +0000</pubDate>
		<dc:creator>featheast</dc:creator>
		
		<category><![CDATA[旅游]]></category>

		<category><![CDATA[2010]]></category>

		<category><![CDATA[Airline]]></category>

		<category><![CDATA[Skytrax]]></category>

		<guid isPermaLink="false">http://www.featheast.com/?p=634</guid>
		<description><![CDATA[The final top 10 ranking in the awards were:
1. Asiana Airlines
2. Singapore Airlines
3. Qatar Airways
4. Cathay Pacific
5. Air New Zealand
6. Etihad Airways
7. Qantas Airways
8. Emirates
9. Thai Airways
10. Malaysia Airlines
Other awards announced included:
Best Low-Cost Airline Worldwide
Air Asia
Most Improved Airline
Garuda Indonesia
Best Cabin Staff
Singapore Airlines
Best Inflight Entertainment
Emirates
Best Airport Services
Thai Airways
Best Economy Class
Malaysia Airlines
Best Premium Economy Class
Qantas
Best Business Class
Qatar [...]]]></description>
			<content:encoded><![CDATA[<p>The final top 10 ranking in the awards were:</p>
<p>1. Asiana Airlines</p>
<p>2. Singapore Airlines</p>
<p>3. Qatar Airways</p>
<p>4. Cathay Pacific</p>
<p>5. Air New Zealand</p>
<p>6. Etihad Airways</p>
<p>7. Qantas Airways</p>
<p>8. Emirates</p>
<p>9. Thai Airways</p>
<p>10. Malaysia Airlines</p>
<p>Other awards announced included:</p>
<p><strong>Best Low-Cost Airline Worldwide</strong><br />
Air Asia</p>
<p><strong>Most Improved Airline</strong><br />
Garuda Indonesia</p>
<p><strong>Best Cabin Staff</strong><br />
Singapore Airlines</p>
<p><strong>Best Inflight Entertainment</strong><br />
Emirates</p>
<p><strong>Best Airport Services</strong><br />
Thai Airways</p>
<p><strong>Best Economy Class</strong><br />
Malaysia Airlines</p>
<p><strong>Best Premium Economy Class</strong><br />
Qantas</p>
<p><strong>Best Business Class</strong><br />
Qatar Airways</p>
<p><strong>Best First Class</strong><br />
Etihad Airways</p>
<p><strong>Best Airline: Transatlantic</strong><br />
Virgin Atlantic</p>
<p><strong>Best Airline: Transpacific</strong><br />
Cathay Pacific</p>
<p><strong>Best Airline: Australia/Pacific</strong><br />
Air New Zealand</p>
<p><strong>Best Airline: Europe</strong><br />
Lufthansa</p>
<p><strong>Best Airline: India/Central Asia</strong><br />
Kingfisher Airlines</p>
<p><strong>Best Airline: Middle East</strong><br />
Qatar Airways</p>
<p><strong>Best Airline: North America</strong><br />
Air Canada</p>
<p><strong>Best Airline: South East Asia</strong><br />
Singapore Airlines</p>
<p><strong>Best Airline Lounge - Business Class</strong><br />
Virgin Atlantic</p>
<p><strong>Best Airline Lounge - First Class</strong><br />
Thai Airways</p>
<p><strong>Best Airline Seat - Business Class</strong><br />
Singapore Airlines</p>
<p><strong>Best Airline Seat - <em>Economy Class</em></strong><br />
Kingfisher Airlines</p>
<p><strong>Best Airline Seat - First Class</strong><br />
Etihad Airways</p>
<p><strong>Best Airline Seat - Premium Economy Class</strong><br />
Qantas Airways</p>
<p><strong>Best Low-Cost Airline Australia/Pacific</strong><br />
Virgin Blue</p>
<p><strong>Best Onboard Catering - Business Class</strong><br />
Qatar Airways</p>
<p><strong>Best Onboard Catering - Economy Class</strong><br />
Turkish Airlines</p>
<p><strong>Best Onboard Catering - First Class</strong><br />
Etihad Airways</p>

<p><a href="http://feedads.g.doubleclick.net/~a/gcgi5aFjpsaX3SfpRMK2U3crvUg/0/da"><img src="http://feedads.g.doubleclick.net/~a/gcgi5aFjpsaX3SfpRMK2U3crvUg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/gcgi5aFjpsaX3SfpRMK2U3crvUg/1/da"><img src="http://feedads.g.doubleclick.net/~a/gcgi5aFjpsaX3SfpRMK2U3crvUg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/featheast/JYWi/~4/GUiHZOpagYE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.featheast.com/travelling/2010-skytrax-awards/feed</wfw:commentRss>
		<feedburner:origLink>http://www.featheast.com/travelling/2010-skytrax-awards</feedburner:origLink></item>
		<item>
		<title>2010武汉中甲赛程</title>
		<link>http://feedproxy.google.com/~r/featheast/JYWi/~3/gfpn2Aikzow/2010-wuhan-schedul</link>
		<comments>http://www.featheast.com/life/2010-wuhan-schedul#comments</comments>
		<pubDate>Thu, 25 Mar 2010 04:20:12 +0000</pubDate>
		<dc:creator>featheast</dc:creator>
		
		<category><![CDATA[生活]]></category>

		<guid isPermaLink="false">http://www.featheast.com/?p=628</guid>
		<description><![CDATA[4月3日 客 7月31日 主 安徽九方
4月10日 主 8月7日 客 上海东亚
4月17日 客 8月14日 主 北京八喜
4月21日 主 8月21日 客 延边
4月24日 客 8月25日 主 广东日之泉
5月1日  8月28日 轮空
5月8日 主 9月4日 客 南京有有
5月15日 客 9月11日 主 湖南湘涛
5月22日 主 9月18日 客 北京理工
5月29日 客 9月25日 主 上海中邦
7月17日 主 10月16日 客 广州恒大
7月21日 客 10月23日 主 沈阳东进
7月24日 主 10月30日 客 成都谢菲联
]]></description>
			<content:encoded><![CDATA[<p>4月3日 客 7月31日 主 安徽九方</p>
<p>4月10日 主 8月7日 客 上海东亚</p>
<p>4月17日 客 8月14日 主 北京八喜</p>
<p>4月21日 主 8月21日 客 延边</p>
<p>4月24日 客 8月25日 主 广东日之泉</p>
<p>5月1日  8月28日 轮空</p>
<p>5月8日 主 9月4日 客 南京有有</p>
<p>5月15日 客 9月11日 主 湖南湘涛</p>
<p>5月22日 主 9月18日 客 北京理工</p>
<p>5月29日 客 9月25日 主 上海中邦</p>
<p>7月17日 主 10月16日 客 广州恒大</p>
<p>7月21日 客 10月23日 主 沈阳东进</p>
<p>7月24日 主 10月30日 客 成都谢菲联</p>

<p><a href="http://feedads.g.doubleclick.net/~a/Pppf7ko2HTENl103cyg11dDI9SU/0/da"><img src="http://feedads.g.doubleclick.net/~a/Pppf7ko2HTENl103cyg11dDI9SU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Pppf7ko2HTENl103cyg11dDI9SU/1/da"><img src="http://feedads.g.doubleclick.net/~a/Pppf7ko2HTENl103cyg11dDI9SU/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/featheast/JYWi/~4/gfpn2Aikzow" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.featheast.com/life/2010-wuhan-schedul/feed</wfw:commentRss>
		<feedburner:origLink>http://www.featheast.com/life/2010-wuhan-schedul</feedburner:origLink></item>
		<item>
		<title>在Ubuntu上使用80端口</title>
		<link>http://feedproxy.google.com/~r/featheast/JYWi/~3/cQhQUJHZyE4/using-port-80-ubuntu</link>
		<comments>http://www.featheast.com/it/ubuntu/using-port-80-ubuntu#comments</comments>
		<pubDate>Sun, 21 Mar 2010 23:50:51 +0000</pubDate>
		<dc:creator>featheast</dc:creator>
		
		<category><![CDATA[Ubuntu]]></category>

		<category><![CDATA[Iptable]]></category>

		<category><![CDATA[Port]]></category>

		<guid isPermaLink="false">http://www.featheast.com/?p=625</guid>
		<description><![CDATA[在Stackoverflow上问的问题，直接贴个地址，方便自己查找：
http://stackoverflow.com/questions/2444591/opening-port-80-with-java-application-on-ubuntu
简而言之，用iptables进行redirect，命令长的样子：
iptables -t nat -A PREROUTING -i eth0 -p tcp &#8211;dport http -j REDIRECT &#8211;to-ports 8080
]]></description>
			<content:encoded><![CDATA[<p>在Stackoverflow上问的问题，直接贴个地址，方便自己查找：<br />
http://stackoverflow.com/questions/2444591/opening-port-80-with-java-application-on-ubuntu</p>
<p>简而言之，用iptables进行redirect，命令长的样子：<br />
iptables -t nat -A PREROUTING -i eth0 -p tcp &#8211;dport http -j REDIRECT &#8211;to-ports 8080</p>

<p><a href="http://feedads.g.doubleclick.net/~a/HSaiom9DbEP7Hd4KY3ClcBd138k/0/da"><img src="http://feedads.g.doubleclick.net/~a/HSaiom9DbEP7Hd4KY3ClcBd138k/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/HSaiom9DbEP7Hd4KY3ClcBd138k/1/da"><img src="http://feedads.g.doubleclick.net/~a/HSaiom9DbEP7Hd4KY3ClcBd138k/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/featheast/JYWi/~4/cQhQUJHZyE4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.featheast.com/it/ubuntu/using-port-80-ubuntu/feed</wfw:commentRss>
		<feedburner:origLink>http://www.featheast.com/it/ubuntu/using-port-80-ubuntu</feedburner:origLink></item>
		<item>
		<title>一句话Spring</title>
		<link>http://feedproxy.google.com/~r/featheast/JYWi/~3/UVKTWc4E2Ao/one-sentence-sprin</link>
		<comments>http://www.featheast.com/it/spring/one-sentence-sprin#comments</comments>
		<pubDate>Thu, 18 Mar 2010 11:49:24 +0000</pubDate>
		<dc:creator>featheast</dc:creator>
		
		<category><![CDATA[Spring]]></category>

		<category><![CDATA[DataAccessException]]></category>

		<guid isPermaLink="false">http://www.featheast.com/?p=622</guid>
		<description><![CDATA[Spring3中，很多方法都会抛出org.springframework.dao.DataAccessException异常，而这个异常被加入了org.springframework.transaction.jar中。于是大部分的开发都需要添加这个jar包的依赖。
这个问题已经有issue提出，估计可能在下一个版本中会有改进。
]]></description>
			<content:encoded><![CDATA[<p>Spring3中，很多方法都会抛出org.springframework.dao.DataAccessException异常，而这个异常被加入了org.springframework.transaction.jar中。于是大部分的开发都需要添加这个jar包的依赖。<br />
这个问题已经有issue提出，估计可能在下一个版本中会有改进。</p>

<p><a href="http://feedads.g.doubleclick.net/~a/YU2oIm4P-gbxihC61eze_aDLkt8/0/da"><img src="http://feedads.g.doubleclick.net/~a/YU2oIm4P-gbxihC61eze_aDLkt8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/YU2oIm4P-gbxihC61eze_aDLkt8/1/da"><img src="http://feedads.g.doubleclick.net/~a/YU2oIm4P-gbxihC61eze_aDLkt8/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/featheast/JYWi/~4/UVKTWc4E2Ao" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.featheast.com/it/spring/one-sentence-sprin/feed</wfw:commentRss>
		<feedburner:origLink>http://www.featheast.com/it/spring/one-sentence-sprin</feedburner:origLink></item>
	</channel>
</rss>
