<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>《洛克.肖恩的救赎》</title>
	<atom:link href="http://blog.rookiesean.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.rookiesean.com</link>
	<description>Rookiesean&#039;s Redemption</description>
	<lastBuildDate>Tue, 24 Apr 2012 14:42:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>坑爹的天山天池之行</title>
		<link>http://blog.rookiesean.com/2012/04/24/%e5%9d%91%e7%88%b9%e7%9a%84%e5%a4%a9%e5%b1%b1%e5%a4%a9%e6%b1%a0%e4%b9%8b%e8%a1%8c/</link>
		<comments>http://blog.rookiesean.com/2012/04/24/%e5%9d%91%e7%88%b9%e7%9a%84%e5%a4%a9%e5%b1%b1%e5%a4%a9%e6%b1%a0%e4%b9%8b%e8%a1%8c/#comments</comments>
		<pubDate>Tue, 24 Apr 2012 14:42:20 +0000</pubDate>
		<dc:creator>水野洋羽</dc:creator>
				<category><![CDATA[游记]]></category>
		<category><![CDATA[天山]]></category>
		<category><![CDATA[天池]]></category>
		<category><![CDATA[新疆]]></category>

		<guid isPermaLink="false">http://blog.rookiesean.com/?p=307</guid>
		<description><![CDATA[<p>因为出差的关系，在乌鲁木齐待了两个多星期，这中间走了一下乌鲁木齐市内的红山公园与人民公园，还有二道桥大巴扎（一个巨坑爹的地方，去看看还可以，千万不要买啥东西）。不过为了表明自己来过新疆了，于是在上周六决定趁着冷空气到来之前去一趟天山天池（事实证明这也是一个坑爹的地方，专门来宰外地游客的地方，尽管说景[......]</p><p class='read-more'><a href='http://blog.rookiesean.com/2012/04/24/%e5%9d%91%e7%88%b9%e7%9a%84%e5%a4%a9%e5%b1%b1%e5%a4%a9%e6%b1%a0%e4%b9%8b%e8%a1%8c/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>因为出差的关系，在乌鲁木齐待了两个多星期，这中间走了一下乌鲁木齐市内的红山公园与人民公园，还有二道桥大巴扎（一个巨坑爹的地方，去看看还可以，千万不要买啥东西）。不过为了表明自己来过新疆了，于是在上周六决定趁着冷空气到来之前去一趟天山天池（事实证明这也是一个坑爹的地方，专门来宰外地游客的地方，尽管说景色还行）。</p>
<p>早上8点多跟同事从住的地方到的乌鲁木齐北郊客运站，买上到阜康的车票，只用12元，就可以从乌鲁木齐到100多公里以外的阜康，而且一路的是高速，总共行程是1小时20分钟左右。到达阜康汽车站后，到车站内有直接到天池售票处的小面，5块钱每人，坐满后发车，半小时到达天池售票处。<br />
<a title="Flickr 上 rookiesean 的 DSC_0347" href="http://www.flickr.com/photos/rookiesean/6963426846/"><img src="http://farm8.staticflickr.com/7267/6963426846_75becc6d0e.jpg" alt="DSC_0347" width="500" height="332" /></a><br />
之前说的那些票价都还算便宜，不过这之后就开始坑爹了。4月之后，天池景区开始进入所谓的旅游旺季，门票价格从淡季的50涨到100，而且还搭售了一张70元的来回区间车票，另外还额外收了10元的停车费。到后来才反应过来，如果说来回区间车票有强买强卖的嫌疑，那10元的停车费根本就是子虚乌有了，车都没开过来，哪里来的停车费啊！！！小面？如果是说小面的话那这辆车的停车费就大发了，一辆小面10个人，每个人10元的话停车总共100，这车停得可真够贵的。</p>
<p>通过区间车进入到天池景区，大约半个小时的车程，到达的天池主景区，中间也可以在旅客服务中心下车，然后从两条山路到天池主景区，一条大约花时1个半小时（回程的时候走的这条道，累得够呛），另外一条大约花时40分钟。从区间车终点站步行15分钟，到达天池。四月份的天池，竟然还整个冰冻着?!!!于是最坑爹的事发生了，我花了一个所谓旅游旺季的票价看了实际上是淡季的天池风景。。。<br />
<a title="Flickr 上 rookiesean 的 DSC_0355" href="http://www.flickr.com/photos/rookiesean/6963438242/"><img src="http://farm8.staticflickr.com/7240/6963438242_6297d04daa.jpg" alt="DSC_0355" width="500" height="332" /></a><br />
整个天池景区除了天池以外，找不到其他可以看的景点，附近就只有一庙一观。一庙是王母庙，一观是福寿观，两处都是另外收费的。王母庙25元的门票费，里面的烧香费是30元一注香，福寿观也差不多的票价。考虑到庙宇之类的没啥看头，也就没进去了，据后来进去的同事说，的确真没啥看头。到后来实在无聊了，跟同事俩个人找了座没有路的山开始往上爬，爬到精疲力尽后找了一块还算空阔地坐着休息，吹着山风，看着底下一片冰冻的天池，反而是当天最惬意的时候。<br />
<a title="Flickr 上 rookiesean 的 DSC_0394" href="http://www.flickr.com/photos/rookiesean/7109571133/"><img src="http://farm8.staticflickr.com/7048/7109571133_82aa96f720.jpg" alt="DSC_0394" width="500" height="332" /></a><br />
从山上下来后已经中午，同事没带干粮，于是找了家附近的哈萨克毡包钻了进去，点了有史以来性价比最差的一桌饭，菜品及其价格如下：<br />
蕃茄炒蛋 20<br />
蘑菇汤 50<br />
小炒肉 45<br />
两份手抓饭 30<br />
这一顿真是吃得我肉牛满面啊，同学们，记得以后到景区玩一定要自带干粮啊，这就是血的教训。。。</p>
<p>饭毕，能逛得都逛得差不多了，就要打道回府，但是我怎么能不好好看看沿途的风光，而直接乘区间车下去呢。于是我们决定找条山路下去，没错，就跟前面说过的一样，我们悲催的选了那条要走一个半小时的山路。。。一路下坡，我悲催的膝盖啊。。。途中经过一块乱石岗，旁边的山体上龙飞凤舞三个大字：“飞龙瀑”，哦，原来是瀑布啊。。额。。。水呢？？！！<br />
<a title="Flickr 上 rookiesean 的 DSC_0454" href="http://www.flickr.com/photos/rookiesean/7109544543/"><img src="http://farm8.staticflickr.com/7104/7109544543_ea8617a780.jpg" alt="DSC_0454" width="500" height="332" /></a><br />
一路跌跌撞撞终于走到旅客服务中心，已经是下午5点了，再等了半个小时后终于等到一辆区间车，一路睡到景区门口。当我从天山天池景区的门口走出去的时候，不禁一阵困惑，“为了那么一滩水，花上这么高的票价，大老远的跑过来值吗？”， “算了，就当花上百八块钱爬个山了吧！”， 到最后也只能拿阿Q精神来聊以自慰了。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rookiesean.com/2012/04/24/%e5%9d%91%e7%88%b9%e7%9a%84%e5%a4%a9%e5%b1%b1%e5%a4%a9%e6%b1%a0%e4%b9%8b%e8%a1%8c/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>走走停停@江西婺源</title>
		<link>http://blog.rookiesean.com/2012/04/01/%e8%b5%b0%e8%b5%b0%e5%81%9c%e5%81%9c%e6%b1%9f%e8%a5%bf%e5%a9%ba%e6%ba%90/</link>
		<comments>http://blog.rookiesean.com/2012/04/01/%e8%b5%b0%e8%b5%b0%e5%81%9c%e5%81%9c%e6%b1%9f%e8%a5%bf%e5%a9%ba%e6%ba%90/#comments</comments>
		<pubDate>Sun, 01 Apr 2012 14:29:56 +0000</pubDate>
		<dc:creator>水野洋羽</dc:creator>
				<category><![CDATA[走走停停]]></category>
		<category><![CDATA[婺源]]></category>

		<guid isPermaLink="false">http://blog.rookiesean.com/?p=304</guid>
		<description><![CDATA[<p><a href="https://picasaweb.google.com/lh/photo/ZoNydWsYdYvQnvTehyWrVdMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh5.googleusercontent.com/-l-dpEgXQKyo/T3a4-DiyuzI/AAAAAAAAJ_Q/Bp7q9jpUhvk/s800/CSC_0085.jpg" alt="" width="800" height="532" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/vHpHb_GkWhHMuy_RDdIcDdMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh5.googleusercontent.com/-atKzUNIXr7g/T3a4-7qDOXI/AAAAAAAAJ_Y/bsgJuOeYEPI/s800/CSC_0088.jpg" alt="" width="800" height="532" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/qI6ISGmJ26bHo4ItzMLQsdMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh6.googleusercontent.com/-bTRfOCicBZs/T3a5AQ_2xNI/AAAAAAAAJ_g/R4TmHMEsk2Y/s800/CSC_0092.jpg" alt="" width="800" height="532" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/yGZoZC0-NGt6gNcFnSpphdMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh5.googleusercontent.com/-aplmnlX49DA/T3a5BXS5jeI/AAAAAAAAJ_o/KHbp5375DhU/s800/CSC_0094.jpg" alt="" width="800" height="532" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/FARrWU-CFG8iV8FaX3BUtdMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh3.googleusercontent.com/-EIXD1Nlgq7o/T3a5CmnGUWI/AAAAAAAAJ_w/jgY2Cx4CRig/s800/CSC_0126.jpg" alt="" width="800" height="532" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/euUFym-GNoSdn4ltCn-hZdMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh3.googleusercontent.com/-AnuQHvcZwFA/T3a5D2o9NlI/AAAAAAAAJ_4/TH3yLCY9CkM/s800/CSC_0168.jpg" alt="" width="800" height="532" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/V-68W9je8H94T326h9iMctMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh6.googleusercontent.com/-RpX0un0PzgA/T3a5FZmev-I/AAAAAAAAKAA/IhoaQ2e2E8I/s800/CSC_0174.jpg" alt="" width="800" height="532" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/gineIICHqHgWMNPE9hEbidMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh6.googleusercontent.com/-heTRuygOopw/T3a5Gx-g0iI/AAAAAAAAKAI/n6Z95MbAkfU/s800/CSC_0195.jpg" alt="" width="800" height="532" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/77ysZykKDfXQA2wX2TMcfdMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh6.googleusercontent.com/--aL8cCbL6xI/T3a5HwNk_8I/AAAAAAAAKAQ/L-8rqP6BLAo/s800/CSC_0196.jpg" alt="" width="800" height="532" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/IGM3j6cXmR4RiKdDWgCG6tMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh5.googleusercontent.com/-0Bgflgf9fMg/T3a5IjtMsEI/AAAAAAAAKAY/2ZyFFoyHB9A/s800/CSC_0204.jpg" alt="" width="800" height="532" /></a></p>]]></description>
			<content:encoded><![CDATA[<p><a href="https://picasaweb.google.com/lh/photo/ZoNydWsYdYvQnvTehyWrVdMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh5.googleusercontent.com/-l-dpEgXQKyo/T3a4-DiyuzI/AAAAAAAAJ_Q/Bp7q9jpUhvk/s800/CSC_0085.jpg" alt="" width="800" height="532" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/vHpHb_GkWhHMuy_RDdIcDdMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh5.googleusercontent.com/-atKzUNIXr7g/T3a4-7qDOXI/AAAAAAAAJ_Y/bsgJuOeYEPI/s800/CSC_0088.jpg" alt="" width="800" height="532" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/qI6ISGmJ26bHo4ItzMLQsdMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh6.googleusercontent.com/-bTRfOCicBZs/T3a5AQ_2xNI/AAAAAAAAJ_g/R4TmHMEsk2Y/s800/CSC_0092.jpg" alt="" width="800" height="532" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/yGZoZC0-NGt6gNcFnSpphdMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh5.googleusercontent.com/-aplmnlX49DA/T3a5BXS5jeI/AAAAAAAAJ_o/KHbp5375DhU/s800/CSC_0094.jpg" alt="" width="800" height="532" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/FARrWU-CFG8iV8FaX3BUtdMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh3.googleusercontent.com/-EIXD1Nlgq7o/T3a5CmnGUWI/AAAAAAAAJ_w/jgY2Cx4CRig/s800/CSC_0126.jpg" alt="" width="800" height="532" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/euUFym-GNoSdn4ltCn-hZdMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh3.googleusercontent.com/-AnuQHvcZwFA/T3a5D2o9NlI/AAAAAAAAJ_4/TH3yLCY9CkM/s800/CSC_0168.jpg" alt="" width="800" height="532" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/V-68W9je8H94T326h9iMctMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh6.googleusercontent.com/-RpX0un0PzgA/T3a5FZmev-I/AAAAAAAAKAA/IhoaQ2e2E8I/s800/CSC_0174.jpg" alt="" width="800" height="532" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/gineIICHqHgWMNPE9hEbidMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh6.googleusercontent.com/-heTRuygOopw/T3a5Gx-g0iI/AAAAAAAAKAI/n6Z95MbAkfU/s800/CSC_0195.jpg" alt="" width="800" height="532" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/77ysZykKDfXQA2wX2TMcfdMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh6.googleusercontent.com/--aL8cCbL6xI/T3a5HwNk_8I/AAAAAAAAKAQ/L-8rqP6BLAo/s800/CSC_0196.jpg" alt="" width="800" height="532" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/IGM3j6cXmR4RiKdDWgCG6tMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh5.googleusercontent.com/-0Bgflgf9fMg/T3a5IjtMsEI/AAAAAAAAKAY/2ZyFFoyHB9A/s800/CSC_0204.jpg" alt="" width="800" height="532" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rookiesean.com/2012/04/01/%e8%b5%b0%e8%b5%b0%e5%81%9c%e5%81%9c%e6%b1%9f%e8%a5%bf%e5%a9%ba%e6%ba%90/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>愚人节前夜的季度总结</title>
		<link>http://blog.rookiesean.com/2012/04/01/%e6%84%9a%e4%ba%ba%e8%8a%82%e5%89%8d%e5%a4%9c%e7%9a%84%e5%ad%a3%e5%ba%a6%e6%80%bb%e7%bb%93/</link>
		<comments>http://blog.rookiesean.com/2012/04/01/%e6%84%9a%e4%ba%ba%e8%8a%82%e5%89%8d%e5%a4%9c%e7%9a%84%e5%ad%a3%e5%ba%a6%e6%80%bb%e7%bb%93/#comments</comments>
		<pubDate>Sat, 31 Mar 2012 16:26:17 +0000</pubDate>
		<dc:creator>水野洋羽</dc:creator>
				<category><![CDATA[随笔杂谈]]></category>
		<category><![CDATA[愚人节]]></category>
		<category><![CDATA[总结]]></category>

		<guid isPermaLink="false">http://blog.rookiesean.com/?p=302</guid>
		<description><![CDATA[<p>    又有三个月没写博客了。自从频繁的使用微博以后，写博客的次数是越来越少了，而且上一篇博客还是纯图片版的。这似乎从个体的角度验证了互联网上一些人对网络热点应用的发展看法：从最初的博客，到现在的微博，然后到新冒出来类Pinterest的图片分享网站，人们是越来越懒得去写字了，也越来越懒得去阅读文字[......]</p><p class='read-more'><a href='http://blog.rookiesean.com/2012/04/01/%e6%84%9a%e4%ba%ba%e8%8a%82%e5%89%8d%e5%a4%9c%e7%9a%84%e5%ad%a3%e5%ba%a6%e6%80%bb%e7%bb%93/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>    又有三个月没写博客了。自从频繁的使用微博以后，写博客的次数是越来越少了，而且上一篇博客还是纯图片版的。这似乎从个体的角度验证了互联网上一些人对网络热点应用的发展看法：从最初的博客，到现在的微博，然后到新冒出来类Pinterest的图片分享网站，人们是越来越懒得去写字了，也越来越懒得去阅读文字了。</p>
<p>    但是总觉得还是要写点什么，微博只言片语的，总比不上一篇博客让人思考更多，总结更多。回看之前写的一些博客，幼稚如斯，快乐如斯，痛苦如斯，愤怒如斯，每一篇都带来一段独特的记忆。</p>
<p>    要写点什么，乘此机会补上我那2011年的年度回顾似乎是个突兀的主意，尽管在写下这段文字的时候只有44分钟就是愚人节了，但是开什么国际玩笑啊!!!2012年过了四分之一了，你才写2011年的年度总结？。。。那么我就写写2012年第一季度的总结吧。</p>
<p>    为了写这段总结，我特意翻了下我的新浪微博（看来平时有些个只言片语的记录还是挺有必要的，尤其是对于我这位老年人来说），发现从2012年1月份到3月底，发微博发得最Happy的一段时间竟然是春晚！！！自从兔年春晚发现了在twitter上与新浪微博上吐槽的欢乐之处后，今年我更是变本加历的全程吐槽了龙年春晚，为龙年春晚的收视率做出了卓越的贡献。然后就是一件乐极生悲的事儿了，由于春节期间的各种大吃大喝，节后体重一下子重了6斤，到现在还减不下来。以前常听父母说“爬上去难，掉下来容易”，但是体重似乎不遵循这一句话。</p>
<p>    2月份是挺纠结的一个月份，也许是因为发现自己一下子重了6斤，又或者是因为杭州连绵不绝长达一个月之久的阴雨天气，总之这一个月的时间内心情非常纠结。纠结之余，帮Houshui搬了一次家，从文二西路一路向北搬到了良渚文化村。。。 然后给自己的虚拟主机续了个两年期，继续使用dreamhost的服务。还有就是我家灰仔历时一年，终于在这个月内达成了一万公里里程数，不容易啊，于是我暗下决心，一定要让灰仔吃上细粮，穿上新衣，但后来我又摸了一下干瘪的钱包，直接向决心的膝盖射了一箭。</p>
<p>    3月初的时候因为项目的原因去了一趟深圳，故地重游别有一番感慨。托公司的福，住了三晚香格里拉，也算是住过五星级酒店的人了。但是做为一名屌丝，我还是坚决认为经济型快捷酒店才是我的首选，理由无他，仅仅因为经济型酒店提供咖啡与早餐。。。特悲催的事情是港澳通行证过期了，寄回家办也要十个工作日才能下来，估计着我要是在深圳磨到通行证寄回来，肯定被项目组老大给杀死了。所以尽管我所住的地方旁边就是罗湖口岸，与香港只有500米的距离，也只能在打包回杭前望港兴叹了。回杭前夜大杀器发改委上调油价，害得我一路忐忑地坐飞机从深圳飞回到杭州，还好安全降落了，对于油价上调，幸运活下来的我表示无话可说。</p>
<p>    写到最后，似乎这篇博客的味道有点变了，本打算整严肃点的一篇季度总结似乎有点花腔走板了。而且这写得是总结吗？怎么感觉跟流水账似的，难道是因为已经到了愚人节的原因?开什么国际玩笑啊!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rookiesean.com/2012/04/01/%e6%84%9a%e4%ba%ba%e8%8a%82%e5%89%8d%e5%a4%9c%e7%9a%84%e5%ad%a3%e5%ba%a6%e6%80%bb%e7%bb%93/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>冷冬</title>
		<link>http://blog.rookiesean.com/2012/01/03/%e5%86%b7%e5%86%ac/</link>
		<comments>http://blog.rookiesean.com/2012/01/03/%e5%86%b7%e5%86%ac/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 14:36:32 +0000</pubDate>
		<dc:creator>水野洋羽</dc:creator>
				<category><![CDATA[走走停停]]></category>
		<category><![CDATA[冷冬]]></category>

		<guid isPermaLink="false">http://blog.rookiesean.com/?p=294</guid>
		<description><![CDATA[<p><a href="https://picasaweb.google.com/lh/photo/SpC9rWyrtv22DmmpByhvB9MTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh3.googleusercontent.com/-ntB0tVnE8Jk/TwMNpF_rqEI/AAAAAAAAJeg/RAABIhr4ayM/s800/CSC_0043.jpg" alt="" width="800" height="532" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/rUojb_C7tk0EU5kUp1XhF9MTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh3.googleusercontent.com/-lSeaNNdOqM0/TwMNtr75LwI/AAAAAAAAJek/jYG70t8IMkc/s800/CSC_0044.jpg" alt="" width="800" height="532" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/KuCcPTgbBxnB56LIlPJyatMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh6.googleusercontent.com/-g5Hnk7qfp3o/TwMNyhiA0MI/AAAAAAAAJeo/oYYTSWXPtNI/s800/CSC_0048.jpg" alt="" width="800" height="532" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/BEL31MMcXt8Do5Iju2ZastMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh6.googleusercontent.com/-hiisQwt_MjY/TwMN6TGFKzI/AAAAAAAAJes/UuGlp64pMqI/s800/CSC_0071.jpg" alt="" width="800" height="532" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/YptD9ZIbjmb-0cXM_ytG59MTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh4.googleusercontent.com/-BPtRnVxZa9w/TwMN-16B4EI/AAAAAAAAJew/6b7oFjEcPRk/s800/CSC_0038.jpg" alt="" width="800" height="532" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/wMEjNCuvh23gDS4Q11u5ctMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh4.googleusercontent.com/-MgQGdRaqq8E/TwMOBmAumzI/AAAAAAAAJe0/jDbOR5UOTNg/s800/CSC_0039.jpg" alt="" width="800" height="532" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/yb9__7Di8lCUveyl91erwtMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh5.googleusercontent.com/-PKGfIY8tPZ4/TwMOJ4M-e_I/AAAAAAAAJe4/cX6nlSTkGY8/s800/CSC_0045.jpg" alt="" width="800" height="532" /></a></p>]]></description>
			<content:encoded><![CDATA[<p><a href="https://picasaweb.google.com/lh/photo/SpC9rWyrtv22DmmpByhvB9MTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh3.googleusercontent.com/-ntB0tVnE8Jk/TwMNpF_rqEI/AAAAAAAAJeg/RAABIhr4ayM/s800/CSC_0043.jpg" alt="" width="800" height="532" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/rUojb_C7tk0EU5kUp1XhF9MTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh3.googleusercontent.com/-lSeaNNdOqM0/TwMNtr75LwI/AAAAAAAAJek/jYG70t8IMkc/s800/CSC_0044.jpg" alt="" width="800" height="532" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/KuCcPTgbBxnB56LIlPJyatMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh6.googleusercontent.com/-g5Hnk7qfp3o/TwMNyhiA0MI/AAAAAAAAJeo/oYYTSWXPtNI/s800/CSC_0048.jpg" alt="" width="800" height="532" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/BEL31MMcXt8Do5Iju2ZastMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh6.googleusercontent.com/-hiisQwt_MjY/TwMN6TGFKzI/AAAAAAAAJes/UuGlp64pMqI/s800/CSC_0071.jpg" alt="" width="800" height="532" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/YptD9ZIbjmb-0cXM_ytG59MTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh4.googleusercontent.com/-BPtRnVxZa9w/TwMN-16B4EI/AAAAAAAAJew/6b7oFjEcPRk/s800/CSC_0038.jpg" alt="" width="800" height="532" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/wMEjNCuvh23gDS4Q11u5ctMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh4.googleusercontent.com/-MgQGdRaqq8E/TwMOBmAumzI/AAAAAAAAJe0/jDbOR5UOTNg/s800/CSC_0039.jpg" alt="" width="800" height="532" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/yb9__7Di8lCUveyl91erwtMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh5.googleusercontent.com/-PKGfIY8tPZ4/TwMOJ4M-e_I/AAAAAAAAJe4/cX6nlSTkGY8/s800/CSC_0045.jpg" alt="" width="800" height="532" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rookiesean.com/2012/01/03/%e5%86%b7%e5%86%ac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>然后怎样</title>
		<link>http://blog.rookiesean.com/2011/12/13/%e7%84%b6%e5%90%8e%e6%80%8e%e6%a0%b7/</link>
		<comments>http://blog.rookiesean.com/2011/12/13/%e7%84%b6%e5%90%8e%e6%80%8e%e6%a0%b7/#comments</comments>
		<pubDate>Tue, 13 Dec 2011 13:54:03 +0000</pubDate>
		<dc:creator>水野洋羽</dc:creator>
				<category><![CDATA[心情]]></category>

		<guid isPermaLink="false">http://blog.rookiesean.com/?p=291</guid>
		<description><![CDATA[<p>完成了所谓的理想<br />
放纵了情绪的泛滥<br />
汗都流亁 天都微亮<br />
然后怎样<br />
拥有了旅行的空档<br />
却遗失流浪的背囊<br />
沿着轨道一直浏览<br />
然后怎样<br />
假期过完有什么打算<br />
走过一个天堂少一个方向<br />
谁在催我成长 让我失去迷途的胆量<br />
我怕谁失望我为谁而忙<br />
我最初只贪玩为何变负担<br />
为何我的问题 总得等待别人的答案<br />
我的快乐时代[......]</p><p class='read-more'><a href='http://blog.rookiesean.com/2011/12/13/%e7%84%b6%e5%90%8e%e6%80%8e%e6%a0%b7/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>完成了所谓的理想<br />
放纵了情绪的泛滥<br />
汗都流亁 天都微亮<br />
然后怎样<br />
拥有了旅行的空档<br />
却遗失流浪的背囊<br />
沿着轨道一直浏览<br />
然后怎样<br />
假期过完有什么打算<br />
走过一个天堂少一个方向<br />
谁在催我成长 让我失去迷途的胆量<br />
我怕谁失望我为谁而忙<br />
我最初只贪玩为何变负担<br />
为何我的问题 总得等待别人的答案<br />
我的快乐时代唱烂<br />
才领悟代价多高昂<br />
不能满足不敢停站<br />
然后怎样</p>
<p><object width="257" height="33" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.xiami.com/widget/449569_2113252/singlePlayer.swf" /><param name="wmode" value="transparent" /><embed width="257" height="33" type="application/x-shockwave-flash" src="http://www.xiami.com/widget/449569_2113252/singlePlayer.swf" wmode="transparent" /></object></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rookiesean.com/2011/12/13/%e7%84%b6%e5%90%8e%e6%80%8e%e6%a0%b7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>走走停停@徽杭古道</title>
		<link>http://blog.rookiesean.com/2011/11/17/%e8%b5%b0%e8%b5%b0%e5%81%9c%e5%81%9c%e5%be%bd%e6%9d%ad%e5%8f%a4%e9%81%93/</link>
		<comments>http://blog.rookiesean.com/2011/11/17/%e8%b5%b0%e8%b5%b0%e5%81%9c%e5%81%9c%e5%be%bd%e6%9d%ad%e5%8f%a4%e9%81%93/#comments</comments>
		<pubDate>Wed, 16 Nov 2011 16:21:51 +0000</pubDate>
		<dc:creator>水野洋羽</dc:creator>
				<category><![CDATA[走走停停]]></category>
		<category><![CDATA[徽杭古道]]></category>

		<guid isPermaLink="false">http://blog.rookiesean.com/?p=288</guid>
		<description><![CDATA[<p><a href="https://picasaweb.google.com/lh/photo/jYxEBibddL2K9LBua9JC6w?feat=embedwebsite"><img src="https://lh3.googleusercontent.com/-YroKB5q3edk/TsPdq91YgsI/AAAAAAAAI6I/n0EFyP5TFkQ/s800/CSC_0006.jpg" alt="" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/7qy2EJpXLkTwIH-uHH9Ulg?feat=embedwebsite"><img src="https://lh3.googleusercontent.com/-rI1iLCBLnuQ/TsPdrzukawI/AAAAAAAAI6M/XZVGl6sF15w/s800/CSC_0038.jpg" alt="" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/Wsna08bxYPH-NrXEqbCOZQ?feat=embedwebsite"><img src="https://lh3.googleusercontent.com/-9MNHYSKz54w/TsPdvAbLbXI/AAAAAAAAI6Q/NxyRMwB8Om8/s800/CSC_0061.jpg" alt="" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/4mhI5PQ0d_E58pXWptklsg?feat=embedwebsite"><img src="https://lh3.googleusercontent.com/-rPDRCZBT1FY/TsPdx4dA6TI/AAAAAAAAI6U/uZnQEJ6h0kA/s800/CSC_0063.jpg" alt="" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/KAylJgZW9Bhgz6abeERzGA?feat=embedwebsite"><img src="https://lh6.googleusercontent.com/-CgitAs_PmCc/TsPd3jYIKAI/AAAAAAAAI6Y/FFblFP24F7w/s800/CSC_0099.jpg" alt="" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/riVoNxlSkenztXMEY2b9sg?feat=embedwebsite"><img src="https://lh5.googleusercontent.com/-3yPYf1OvYIo/TsPd7K7pNNI/AAAAAAAAI6c/xPRV6wqayuA/s800/CSC_0160.jpg" alt="" /></a></p>]]></description>
			<content:encoded><![CDATA[<p><a href="https://picasaweb.google.com/lh/photo/jYxEBibddL2K9LBua9JC6w?feat=embedwebsite"><img src="https://lh3.googleusercontent.com/-YroKB5q3edk/TsPdq91YgsI/AAAAAAAAI6I/n0EFyP5TFkQ/s800/CSC_0006.jpg" alt="" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/7qy2EJpXLkTwIH-uHH9Ulg?feat=embedwebsite"><img src="https://lh3.googleusercontent.com/-rI1iLCBLnuQ/TsPdrzukawI/AAAAAAAAI6M/XZVGl6sF15w/s800/CSC_0038.jpg" alt="" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/Wsna08bxYPH-NrXEqbCOZQ?feat=embedwebsite"><img src="https://lh3.googleusercontent.com/-9MNHYSKz54w/TsPdvAbLbXI/AAAAAAAAI6Q/NxyRMwB8Om8/s800/CSC_0061.jpg" alt="" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/4mhI5PQ0d_E58pXWptklsg?feat=embedwebsite"><img src="https://lh3.googleusercontent.com/-rPDRCZBT1FY/TsPdx4dA6TI/AAAAAAAAI6U/uZnQEJ6h0kA/s800/CSC_0063.jpg" alt="" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/KAylJgZW9Bhgz6abeERzGA?feat=embedwebsite"><img src="https://lh6.googleusercontent.com/-CgitAs_PmCc/TsPd3jYIKAI/AAAAAAAAI6Y/FFblFP24F7w/s800/CSC_0099.jpg" alt="" /></a></p>
<p><a href="https://picasaweb.google.com/lh/photo/riVoNxlSkenztXMEY2b9sg?feat=embedwebsite"><img src="https://lh5.googleusercontent.com/-3yPYf1OvYIo/TsPd7K7pNNI/AAAAAAAAI6c/xPRV6wqayuA/s800/CSC_0160.jpg" alt="" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rookiesean.com/2011/11/17/%e8%b5%b0%e8%b5%b0%e5%81%9c%e5%81%9c%e5%be%bd%e6%9d%ad%e5%8f%a4%e9%81%93/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>年鉴2010</title>
		<link>http://blog.rookiesean.com/2011/01/09/%e5%b9%b4%e9%89%b42010/</link>
		<comments>http://blog.rookiesean.com/2011/01/09/%e5%b9%b4%e9%89%b42010/#comments</comments>
		<pubDate>Sun, 09 Jan 2011 12:13:40 +0000</pubDate>
		<dc:creator>水野洋羽</dc:creator>
				<category><![CDATA[随笔杂谈]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[大公司]]></category>
		<category><![CDATA[小公司]]></category>
		<category><![CDATA[冰河]]></category>
		<category><![CDATA[虚拟主机]]></category>
		<category><![CDATA[HMT]]></category>

		<guid isPermaLink="false">http://blog.rookiesean.com/?p=285</guid>
		<description><![CDATA[<p>2010年的最后几天，满屏的年度总结，我就对我自己说：“<a href="http://blog.rookiesean.com/2010/01/01/09%E5%B9%B4%E5%B9%B4%E5%BA%A6%E6%80%BB%E7%BB%93/">绝对不能如去年一样落入俗套</a>!”，于是。。。我成功的憋到了2011年第一个周末。。。</p>
<p>浙大真是一个人才辈出的地方，一直听pff跟<a href="http://zhouduerri.wordpress.com/">houshui</a>在说这个<a href="http://tianchunbinghe.blog.163.com/profile/">冰河</a>如何如何，最近才有机会看到他的<a href="http://tianchunbinghe.blog.163.com/">博客</a>，崇拜得五体投地。本想学<a href="http://tianchunbinghe.blog.163.com/blog/static/70012010112784957402/">冰河的文章</a>来总结一下我的2010，[......]</p><p class='read-more'><a href='http://blog.rookiesean.com/2011/01/09/%e5%b9%b4%e9%89%b42010/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>2010年的最后几天，满屏的年度总结，我就对我自己说：“<a href="http://blog.rookiesean.com/2010/01/01/09%E5%B9%B4%E5%B9%B4%E5%BA%A6%E6%80%BB%E7%BB%93/">绝对不能如去年一样落入俗套</a>!”，于是。。。我成功的憋到了2011年第一个周末。。。</p>
<p>浙大真是一个人才辈出的地方，一直听pff跟<a href="http://zhouduerri.wordpress.com/">houshui</a>在说这个<a href="http://tianchunbinghe.blog.163.com/profile/">冰河</a>如何如何，最近才有机会看到他的<a href="http://tianchunbinghe.blog.163.com/">博客</a>，崇拜得五体投地。本想学<a href="http://tianchunbinghe.blog.163.com/blog/static/70012010112784957402/">冰河的文章</a>来总结一下我的2010， 但看了一下我在2010年所写过的<a href="http://blog.rookiesean.com/2010/">寥寥数文</a>，我不得不放弃了这样的念头，仅能取个类似的标题来表达我的崇拜。</p>
<p>我的2010，参加了<a href="http://blog.rookiesean.com/2010/03/23/pff%E6%B1%82%E5%A9%9A%E8%AE%B0/">一场求婚</a>N场订婚并缺席N场婚礼，办了去香港的签证却因为错过了十一黄金周最终没有成行。尽管心中无比鄙视，却不免俗地去了一趟世博，又不免俗的“更后侮”一把。为某些官员的政绩工程做出了小部分贡献，但也没能获得啥，反而个税交得多了，工资增长幅度赶不上实际物价增长，甚至连官方CPI都赶不上。值得大书特书的似乎也只有换工作了，离开了原先的老东家<a href="http://www.kingroute.com/index.html">勤路软件</a>，到了<a href="http://www.motorola.com/Video-Solutions/CN-ZH/Products-and-Services/Video-Consumer-Premise-Equipment/HMT-Set-top-Boxes">HMT(HangZhou Motorola Technology)</a>。这是我第一次换工作，如今回头看看，我自己都很困惑我是如何在对以前同事的万般不舍中推动整件事情的发展的，有那么几次我都快要放弃了，但最终还是选择了跳槽。到了HMT以后，能够明显的感觉到与原公司的不同，两相比较之下似乎也符合了<a href="http://www.dxy.cn/">丁香园</a>CTO<a href="http://www.dbanotes.net/siteinfo.html">冯大辉</a>大牛在前不久的<a href="http://www.dbanotes.net/startup/challenge_for_engineer_at_startup.html">一篇文章</a>里所提到的大公司与小公司的不同。</p>
<p>小公司的人力资源比较少，像一个项目开发的Team最多也只有五六人，我原先的Team更是只有三个人。开发人员除了做编程以外，要做的其他事情零零碎碎也挺多的，像SVN搭建，代码服务器搭建，权限管理，项目进度控制等等基本上都是自己包办了，这样也就导致了小公司里的开发人员基本上都是多面手。而且小公司里的项目开发，所有的代码基本上都是本Team内的成员写的，像我原先的项目从驱动层写到应用层，对整个项目的架构以及实现方法也更清楚一些。大公司则不然，各个小组负责各自的部分，驱动是驱动，应用是应用，平台是平台，IT部门是IT部门，分得很清楚。不同的层之间会选择封装提供API，尽量不让其他组的人看到自己的代码实现，这样也就导致像我们做应用的对一些底层的实现在一开始是云里雾里，遇到某些底层的问题就只好束手无策，转而寻求其他小组的帮忙了。</p>
<p>大公司对流程和项目管理更为看重。小公司的项目通常比较小，有些开发时间也短，于是开发人员在开发过程中会忽略流程和文档这些内容，只求在最短的时候内完成项目。项目质量的控制基本靠个人，后续项目的开发支持基本靠口头交流和代码阅读，一但Team内人员流失，新接手的人员便需要花费大量时间去了解前任的代码实现方法和项目架构。而大公司则在这方面好些，对流程和项目管理的重视保证项目开发的质量并且游刃有余的面对正常人员流动的情况。</p>
<p>扯得远了。。。</p>
<p>随着我的跳槽，我也跟着搬了一次家，从<a href="http://ditu.google.cn/maps?f=q&amp;source=s_q&amp;hl=zh-CN&amp;geocode=&amp;q=%E6%B5%99%E6%B1%9F%E7%9C%81%E6%9D%AD%E5%B7%9E%E5%B8%82%E8%A5%BF%E6%B9%96%E5%8C%BA&amp;brcurrent=3,0x344b641bf7eabb35:0x6eaa153514876e2f,1%3B5,0,0&amp;brv=22.25&amp;sll=30.273978,120.155361&amp;sspn=0.785129,1.674042&amp;ie=UTF8&amp;hq=&amp;hnear=%E6%B5%99%E6%B1%9F%E7%9C%81%E6%9D%AD%E5%B7%9E%E5%B8%82%E8%A5%BF%E6%B9%96%E5%8C%BA&amp;z=12">城西</a>搬到了<a href="http://ditu.google.cn/maps?f=q&amp;source=s_q&amp;hl=zh-CN&amp;geocode=&amp;q=%E6%B5%99%E6%B1%9F%E7%9C%81%E6%9D%AD%E5%B7%9E%E5%B8%82%E6%BB%A8%E6%B1%9F%E5%8C%BA&amp;brcurrent=3,0x344c828dfb0c49b9:0xf1574b303042994,1,0x344bb629439aaa99:0xa7bfd183824de83a%3B5,0,0&amp;brv=22.25&amp;sll=30.273978,120.155361&amp;sspn=0.785129,1.674042&amp;ie=UTF8&amp;hq=&amp;hnear=%E6%B5%99%E6%B1%9F%E7%9C%81%E6%9D%AD%E5%B7%9E%E5%B8%82%E6%BB%A8%E6%B1%9F%E5%8C%BA&amp;z=13">滨江</a>。搬家之后才算体会到了城西的好，以至于每次去城西都要感慨一番。滨江这个荒芜的地方，想要找个腐败吃饭的地方都难，怀念在城西时每到周末都有饭局可以蹭有球可以打的日子T_T。</p>
<p>另外在10年的1月份，原先在<a href="http://rookiesean.blogbus.com/">blogbus的博客</a>因为<a href="http://www.blogbus.com">blogbus</a>的<a href="http://www.techweb.com.cn/news/2010-01-05/511384.shtml">陌名被封</a>而无法访问，再加上后来的<a href="http://it.people.com.cn/GB/1068/42899/10797345.html">CN域名要求备案</a>，于是我选择到<a href="http://www.dreamhost.com">dreamhost</a>上购买了虚拟主机以及域名来重新搭建我的个人博客。价格不是很贵，两年的host plan只要50美刀，再加上域名一年10美刀，每年的成本也就35美刀，在国内买件衣服差不多也这价，前不久又发现在拥有host plan的前提下，第二年的域名是免费的，成本更低了。后来跟<a href="http://blog.shidelai.cn/about">阿德</a>相互讨论了一下，发现国外的虚拟主机提供商跟国内的虚拟主机提供商比起来，真的是一个在天一个在地，于是成功拉拢阿德将<a href="http://blog.shidelai.cn">他自己的博客</a>从国内移到了国外，跟我一起合租虚拟主机，成本再度降低。当初购买这个虚拟主机的本意是能够自由的写些博客，不用时不时的因为被博客服务提供商的自我阉割而憋满肚子的火无处发泄，如今回头一看，在这一年中博客写的只有寥寥无几的几篇，反而是因为虚拟主机提供的SSH功能得以无障碍的翻墙上<a href="http://www.twitter.com">twitter</a>，发了不少的微博，也算是此消彼涨吧。</p>
<p>年初的时候，曾经有机会去谈一场真正的恋爱，但我退却了，似乎我是这样一种人， 害怕过于亲近，喜欢保持距离，不喜欢表达感情。在这里对那位女孩说声对不起，不过现在她应该也有自己的幸福了，套用冰河的一句话，“<a href="http://tianchunbinghe.blog.163.com/blog/static/7001201011602854539/">如果每个心爱的小姑娘都过上幸福的生活了，那我应该也是幸福的</a>”。</p>
<p>此情可待成追忆，只是当时已茫然。过去的一切已经成为回忆，将来的一切仍是未知，期待我的2011。。。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rookiesean.com/2011/01/09/%e5%b9%b4%e9%89%b42010/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>百分百标准</title>
		<link>http://blog.rookiesean.com/2010/11/17/%e7%99%be%e5%88%86%e7%99%be%e6%a0%87%e5%87%86/</link>
		<comments>http://blog.rookiesean.com/2010/11/17/%e7%99%be%e5%88%86%e7%99%be%e6%a0%87%e5%87%86/#comments</comments>
		<pubDate>Wed, 17 Nov 2010 15:09:04 +0000</pubDate>
		<dc:creator>水野洋羽</dc:creator>
				<category><![CDATA[随笔杂谈]]></category>
		<category><![CDATA[做事做到位]]></category>
		<category><![CDATA[百分百标准]]></category>
		<category><![CDATA[HMT]]></category>

		<guid isPermaLink="false">http://blog.rookiesean.com/?p=275</guid>
		<description><![CDATA[<p>《<a href="http://book.douban.com/subject/2154713/">精通正则表达式</a>》的中文译者<a href="http://twitter.com/yurii_yu">余晟</a>老师曾经写过一篇文章《<a href="http://www.luanxiang.org/blog/archives/1035.html">看得见的和看不见的</a>》，里面讲到一个故事：</p>
<p>“2003年夏天，我正在复习托福考试，每天的生活就是背单词，做一两套模拟题。当时正是暑假，许多人都回家了，留下的人也大多过得逍遥，想到这自己还能坚持每天复习，我颇有些自豪。当时托福的满分是667，我每次做[......]</p><p class='read-more'><a href='http://blog.rookiesean.com/2010/11/17/%e7%99%be%e5%88%86%e7%99%be%e6%a0%87%e5%87%86/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>《<a href="http://book.douban.com/subject/2154713/">精通正则表达式</a>》的中文译者<a href="http://twitter.com/yurii_yu">余晟</a>老师曾经写过一篇文章《<a href="http://www.luanxiang.org/blog/archives/1035.html">看得见的和看不见的</a>》，里面讲到一个故事：</p>
<p>“2003年夏天，我正在复习托福考试，每天的生活就是背单词，做一两套模拟题。当时正是暑假，许多人都回家了，留下的人也大多过得逍遥，想到这自己还能坚持每天复习，我颇有些自豪。当时托福的满分是667，我每次做模拟题都有630到640，自己也很满意——复习托福不过如此嘛。考前一两周，与朋友W通电话，我告诉他自己水平很稳定。于是他问我“很稳定是个什么概念？”。我说“就是每次都有630左右啊。”“这怎么能行呢？复习这种考试就应该只有一个目标啊。”我忙问“什么目标？” 他说，“就是满分啊，要不你总这么630就满意了，考试时全部发挥出来最多也只有630。再说我们大家复习都是以满分为目标的……”  许多年后，我依然清楚记得当时自己有多么震惊和羞愧，他的话好像晴空霹雳，而我猛然发现自己之前的想法是多么可笑。于是我强打起精神，努力分析总结自己每一个错误，努力抠每一点分数。可惜觉悟还是太晚了，考试的分数果然只有六百出头。这些年来，我时常想到，如果当年我能早点看到其他人认真投入复习的样子，而不是看看自己周围就满意了（<a href="http://baike.baidu.com/view/298167.htm">好像看到玻璃匠得了6法郎，就认定打破玻璃有益于经济发展一样</a>），会是一番多么不同的景象呀。不过，我也因此学会了在许多事情上“较真”，不要觉得还凑合，就糊弄自己，坚持下来还是很有收获的。”</p>
<p>虽然这篇文章的接下来几个例子跟上面的故事更多想表达的主题是“多留心一些‘看不见的’的东西，有助于我们形成更加准备的认识”，但对于我来说，触动最大的反而是这第一个故事，做事情要以满分为目标，而不仅是达到最低标准。</p>
<p>无独有偶，入职HMT后公司给的推荐阅读《<a href="http://book.douban.com/subject/1186142/">做事做到位</a>》里以<a href="http://zh.wikipedia.org/zh-cn/%E8%83%A1%E9%81%A9">胡适</a>先生的《<a href="http://baike.baidu.com/view/913349.html?fromTaglist">差不多先生</a>》为引子，在讲述国人的做事不到位现象及如何消除这种现象的过程中，也提到了类似的观点：“凡事都要以高标准要求自己”。</p>
<p>凡事都要以高标准要求自己，也就要求一切要追求尽善尽美。犹豫是做决定之前的事，一旦做出决定，那么就要尽自己的最大努力把事情做到最好。就好像准备考试一样，应该总是以满分做为自己的目标，而不仅仅是满足在及格线上。那些以及格线做为自己标准的人，绝大多数都达不到及格，而那些以满分为自己目标的人，大部分都能取得很好的成绩。任何值得做的事，都值得做好，任何值得做好的事，都值得做得尽善尽美。</p>
<p>追求尽善尽美，就是注重细节的完美。在能看到见的地方，别人能够做到跟你一样好，那么就用看不到的地方的完美来击败对手。这里所说的“看不到的地方”指得就是细节的地方， 一个最典型的例子就是百度搜索框高度：</p>
<p>有个<a href="http://www.cnbeta.com/articles/81765.htm">好事者</a>分析了一下百度搜索框跟Google搜索框的高度，发现百度搜索框比Google的搜索框要高出6个像素，将百度搜索框跟大部分浏览器的地址栏一比较，发现百度搜索框的高度同样也比那些地址栏高一小块，于是他用这一发现来解释为什么会有人宁肯在百度中输入新浪网址而不是在地址栏上输入：</p>
<ul>
<li>百度的搜索框在屏幕中间，浏览器地址栏在屏幕上方，根据懒人法则，他肯定首选百度搜索框，因为光标定位时鼠标移动路径相对会比较短；</li>
<li>百度的搜索框高度比地址栏高，这就更加使得懒人愿意使用百度搜索框来代替地址栏，因为高高的输入框能更快捷容易的定位光标。</li>
</ul>
<p>这篇文章出来后不久， Google中国的搜索框宽度也跟着<a href="http://www.cnbeta.com/articles/90437.htm">提高了6个像素</a>，似乎进一步证明了这一说法。百度能在中国市场打败Google中国，可以说是细节的问题，细节决定成败。</p>
<p>这就是百分百标准：以高标准要求自己，尽善尽美并注重细节的去完成每一件事情。随之而来的就是在每一件事情上你都能够超出别人的想象，哪怕只是一点点也能给别人留下好的印象。同时，在百分百标准下，会使得你有额外的动力去学习及获取新的知识，不断成长，不断改进。尤其是在这样一个技术不断的更新的时代，只有不断的去学习新的技术和知识，才能跟得上时代的节奏。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rookiesean.com/2010/11/17/%e7%99%be%e5%88%86%e7%99%be%e6%a0%87%e5%87%86/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>嵌入式Linux系统移植 &#8211; LCD</title>
		<link>http://blog.rookiesean.com/2010/10/12/%e5%b5%8c%e5%85%a5%e5%bc%8flinux%e7%b3%bb%e7%bb%9f%e7%a7%bb%e6%a4%8d-lcd/</link>
		<comments>http://blog.rookiesean.com/2010/10/12/%e5%b5%8c%e5%85%a5%e5%bc%8flinux%e7%b3%bb%e7%bb%9f%e7%a7%bb%e6%a4%8d-lcd/#comments</comments>
		<pubDate>Tue, 12 Oct 2010 03:40:52 +0000</pubDate>
		<dc:creator>水野洋羽</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linux系统移植]]></category>
		<category><![CDATA[framebuffer]]></category>
		<category><![CDATA[kernel NULL pointer]]></category>
		<category><![CDATA[lcd]]></category>
		<category><![CDATA[linux2.6.23]]></category>
		<category><![CDATA[notifier call chain]]></category>

		<guid isPermaLink="false">http://blog.rookiesean.com/?p=269</guid>
		<description><![CDATA[<p><strong><a href="http://define.cnki.net/WebForms/WebDefines.aspx?searchword=%E5%AE%BF%E4%B8%BB%E6%9C%BA">宿主机</a>环境：</strong><br />
Linux version 2.6.32-24, Ubuntu10.04<br />
gcc version 4.1.3, Thread model: posix;<br />
GNU Make 3.81<br />
arm-linux-gcc 3.4.5</p>
<p><strong>开发板环境：</strong><br />
CPU:       S3C2410X<br />
SDRAM[......]</p><p class='read-more'><a href='http://blog.rookiesean.com/2010/10/12/%e5%b5%8c%e5%85%a5%e5%bc%8flinux%e7%b3%bb%e7%bb%9f%e7%a7%bb%e6%a4%8d-lcd/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p><strong><a href="http://define.cnki.net/WebForms/WebDefines.aspx?searchword=%E5%AE%BF%E4%B8%BB%E6%9C%BA">宿主机</a>环境：</strong><br />
Linux version 2.6.32-24, Ubuntu10.04<br />
gcc version 4.1.3, Thread model: posix;<br />
GNU Make 3.81<br />
arm-linux-gcc 3.4.5</p>
<p><strong>开发板环境：</strong><br />
CPU:       S3C2410X<br />
SDRAM:  HY57V561620(32MB)<br />
FLASH:    K9F1208(64MB)<br />
Linux Kernel: 2.6.23.8</p>
<p><strong>移植步骤：</strong><br />
运行kernel的时候，我们会发现如下的错误：</p>
<blockquote><p>JFFS2 version 2.2. (NAND) .. 2001-2006 Red Hat, Inc.<br />
io scheduler noop registered<br />
io scheduler anticipatory registered (default)<br />
io scheduler deadline registered<br />
io scheduler cfq registered<br />
<span style="color: #ff0000;">s3c2410-lcd s3c2410-lcd: no platform data for lcd, cannot attach<br />
s3c2410-lcd: probe of s3c2410-lcd failed with error -22</span><br />
lp: driver loaded but no devices found<br />
ppdev: user-space parallel port driver<br />
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled<br />
s3c2410-uart.0: s3c2410_serial0 at MMIO 0&#215;50000000 (irq = 70) is a S3C2410<br />
s3c2410-uart.1: s3c2410_serial1 at MMIO 0&#215;50004000 (irq = 73) is a S3C2410<br />
s3c2410-uart.2: s3c2410_serial2 at MMIO 0&#215;50008000 (irq = 76) is a S3C2410<br />
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize</p></blockquote>
<p>表示与LCD相关的平台信息没有找到，因此没法加载LCD。 我们所要做的就是将对LCD设备的初始化加入到整个S3C2410的初始化过程中。</p>
<p>通过对arch/arm/mach-smdk2410/mach-smdk2410.c与arch/arm/mach-smdk2440/mach-smdk2440.c进行对比后，可以发现在smdk2440上存在着对结构体s3c2410fb_mach_info的初始化，而smdk2410则不存在，所以我们所要做的是把smdk2440上的初始化操作复制到smdk2410上，并做一定的修改。</p>
<p>rookiesean@rookiesean-desktop:~/workspace/linux-2.6.23.8$ vim arch/arm/mach-s3c2410/mach-smdk2410.c</p>
<blockquote><p>#include &lt;asm/plat-s3c24xx/common-smdk.h&gt;</p>
<p>#include &lt;asm/arch/smdk2410.h&gt; // sean chi 18Aug2010, added.<br />
<span style="color: #ff0000;">#include &lt;asm/arch/fb.h&gt; // sean chi 31Aug2010, added.<br />
</span><br />
static struct map_desc smdk2410_iodesc[] __initdata = {<br />
{ vSMDK2410_ETH_IO , pSMDK2410_ETH_IO, SZ_1M, MT_DEVICE }, // sean chi 18Aug2010, added.<br />
/* nothing here yet */<br />
};</p>
<p><span style="color: #ff0000;">// sean chi 31Aug2010, added.<br />
static struct s3c2410fb_mach_info nano2410_fb_info __initdata = {<br />
.fixed_syncs = 1,<br />
.type = S3C2410_LCDCON1_TFT,<br />
.width        = 240,<br />
.height        = 320,<br />
.xres        = {<br />
.min    = 240,<br />
.max    = 240,<br />
.defval    = 240,<br />
},</span></p>
<p><span style="color: #ff0000;">.yres        = {<br />
.min    = 320,<br />
.max    = 320,<br />
.defval = 320,<br />
},</span></p>
<p><span style="color: #ff0000;">.bpp        = {<br />
.min    = 16,<br />
.max    = 16,<br />
.defval = 16,<br />
},<br />
.regs    = {</span></p>
<p><span style="color: #ff0000;">.lcdcon1    = S3C2410_LCDCON1_TFT16BPP |<br />
S3C2410_LCDCON1_TFT |<br />
S3C2410_LCDCON1_CLKVAL(0&#215;04),</span></p>
<p><span style="color: #ff0000;">.lcdcon2    = S3C2410_LCDCON2_VBPD(1) |<br />
S3C2410_LCDCON2_LINEVAL(319) |<br />
S3C2410_LCDCON2_VFPD(5) |<br />
S3C2410_LCDCON2_VSPW(1),</span></p>
<p><span style="color: #ff0000;">.lcdcon3    = S3C2410_LCDCON3_HBPD(36) |<br />
S3C2410_LCDCON3_HOZVAL(239) |<br />
S3C2410_LCDCON3_HFPD(19),</span></p>
<p><span style="color: #ff0000;">.lcdcon4    = S3C2410_LCDCON4_MVAL(13) |<br />
S3C2410_LCDCON4_HSPW(5),</span></p>
<p><span style="color: #ff0000;">.lcdcon5    = S3C2410_LCDCON5_FRM565 |<br />
S3C2410_LCDCON5_INVVLINE|<br />
S3C2410_LCDCON5_INVVFRAME|<br />
S3C2410_LCDCON5_PWREN|<br />
S3C2410_LCDCON5_HWSWP,<br />
},<br />
#if 1<br />
.gpccon            =0xaaaaaaaa,<br />
.gpccon_mask    =0xffffffff,<br />
.gpcup            =0xffffffff,<br />
.gpcup_mask        =0xffffffff,</span></p>
<p><span style="color: #ff0000;">.gpdcon            =0xaaaaaaaa,<br />
.gpdcon_mask    =0xffffffff,<br />
.gpdup            =0xffffffff,<br />
.gpdup_mask        =0xffffffff,</span></p>
<p><span style="color: #ff0000;">#endif<br />
.lpcsel        = 0&#215;01,<br />
};</span></p>
<p><span style="color: #000000;">&#8230;&#8230;</span></p>
<p><span style="color: #000000;">&#8230;&#8230;.<br />
</span></p>
<p><span style="color: #ff0000;">static void __init smdk2410_init(void)<br />
{<br />
s3c24xx_fb_set_platdata(&amp;nano2410_fb_info); // sean chi 31Aug2010, added.<br />
platform_add_devices(smdk2410_devices, ARRAY_SIZE(smdk2410_devices));<br />
smdk_machine_init();<br />
}</span></p></blockquote>
<p>在对源代码进行修改了以后，配置内核，将Device Driver-&gt;Graphic support下的Support for <a href="http://en.wikipedia.org/wiki/Framebuffer">frame buffer</a> devices， S3C2410 LCD framebuffer support和Bootup logo勾选上。</p>
<p>rookiesean@rookiesean-desktop:~/workspace/linux-2.6.23.8$ make menuconfig</p>
<blockquote><p>Device Driver &#8211;&gt;</p>
<p>Graphics support -&gt;</p>
<p>&lt;*&gt;Support for frame buffer devices</p>
<p>&lt;*&gt;S3C2410 LCD framebuffer support</p>
<p>&lt;*&gt;Bootup logo</p></blockquote>
<p>对于其他版本来说，在这里可以重新编译内核，加载到开发板上运行就可以了，但在linux kernel 2.6.23上，这还不够，这时候如果编译加载的话，会在开发板上显示如下结果：</p>
<blockquote><p>io scheduler noop registered<br />
io scheduler anticipatory registered (default)<br />
io scheduler deadline registered<br />
io scheduler cfq registered<br />
Unable to handle kernel NULL pointer dereference at virtual address 00000014<br />
pgd = c0004000<br />
[00000014] *pgd=00000000<br />
Internal error: Oops: 805 [#1]<br />
Modules linked in:<br />
CPU: 0    Not tainted  (2.6.23.8 #18)<br />
PC is at s3c2410fb_set_lcdaddr+0&#215;94/0xb4<br />
LR is at 0xc02fdb48<br />
pc : []    lr : []    psr: 60000013<br />
sp : c03ebe24  ip : c02fdb48  fp : c03ebe40<br />
r10: c02fc714  r9 : c0333d60  r8 : c02fc70c<br />
r7 : c0305358  r6 : 19e80000  r5 : 19e92c00  r4 : 000000f0<br />
r3 : 00000014  r2 : 00000001  r1 : 00000001  r0 : 00000025<br />
Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel<br />
Control: c000717f  Table: 30004000  DAC: 00000017<br />
Process swapper (pid: 1, stack limit = 0xc03ea258)<br />
Stack: (0xc03ebe24 to 0xc03ec000)<br />
be20:          c3c4025c c4a00000 c0305358 c0333d60 c03ebe60 c03ebe44 c014f03c<br />
be40: c014e500 00000000 c3c4025c c3c40000 00000000 c03ebe9c c03ebe64 c001afa0<br />
be60: c014ef7c c3c4025c c3c400a8 00000020 c03dd454 c02fc714 00000000 c03052c8<br />
be80: c03052c8 c0337038 c0024860 00000000 c03ebeac c03ebea0 c0179df0 c001aad4<br />
bea0: c03ebed0 c03ebeb0 c0177f30 c0179de0 c02fc7d4 c02fc714 c0178090 c03052c8<br />
bec0: c03ea000 c03ebee8 c03ebed4 c0178110 c0177e58 00000000 c03ebeec c03ebf14<br />
bee0: c03ebeec c0176f44 c01780a0 c0309250 c0309250 c02fc75c 00000000 c03052c8<br />
bf00: c03052d0 c0309164 c03ebf24 c03ebf18 c0178190 c0176f04 c03ebf4c c03ebf28<br />
bf20: c017770c c0178180 c03052c8 00000000 00000000 c0023410 c03ea000 00000000<br />
bf40: c03ebf60 c03ebf50 c017860c c01776a8 00000000 c03ebf70 c03ebf64 c0179f04<br />
bf60: c017859c c03ebf80 c03ebf74 c014f284 c0179ea8 c03ebff4 c03ebf84 c0008c3c<br />
bf80: c014f280 e1a00007 e89da9f0 00000000 00000001 e24cb004 00000000 00000000<br />
bfa0: 00000000 c03ebfb0 c002cec4 c0044b38 00000000 00000000 c0008b5c c004aee8<br />
bfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000<br />
bfe0: 00000000 00000000 00000000 c03ebff8 c004aee8 c0008b6c 1580302c e5943018<br />
Backtrace:<br />
[] (s3c2410fb_set_lcdaddr+0&#215;0/0xb4) from [] (s3c2410fb_init_registers+0xd0/0&#215;144)<br />
r7:c0333d60 r6:c0305358 r5:c4a00000 r4:c3c4025c<br />
[] (s3c2410fb_init_registers+0&#215;0/0&#215;144) from [] (s3c2410fb_probe+0x4dc/0x5e8)<br />
r7:00000000 r6:c3c40000 r5:c3c4025c r4:00000000<br />
[] (s3c2410fb_probe+0&#215;0/0x5e8) from [] (platform_drv_probe+0&#215;20/0&#215;24)<br />
[] (platform_drv_probe+0&#215;0/0&#215;24) from [] (driver_probe_device+0xe8/0x18c)<br />
[] (driver_probe_device+0&#215;0/0x18c) from [] (__driver_attach+0&#215;80/0xe0)<br />
r8:c03ea000 r7:c03052c8 r6:c0178090 r5:c02fc714 r4:c02fc7d4<br />
[] (__driver_attach+0&#215;0/0xe0) from [] (bus_for_each_dev+0&#215;50/0&#215;84)<br />
r5:c03ebeec r4:00000000<br />
[] (bus_for_each_dev+0&#215;0/0&#215;84) from [] (driver_attach+0&#215;20/0&#215;28)<br />
r7:c0309164 r6:c03052d0 r5:c03052c8 r4:00000000<br />
[] (driver_attach+0&#215;0/0&#215;28) from [] (bus_add_driver+0&#215;74/0x1b0)<br />
[] (bus_add_driver+0&#215;0/0x1b0) from [] (driver_register+0&#215;80/0&#215;88)<br />
[] (driver_register+0&#215;0/0&#215;88) from [] (platform_driver_register+0x6c/0&#215;88)<br />
r4:00000000<br />
[] (platform_driver_register+0&#215;0/0&#215;88) from [] (s3c2410fb_init+0&#215;14/0x1c)<br />
[] (s3c2410fb_init+0&#215;0/0x1c) from [] (kernel_init+0xe0/0x29c)<br />
[] (kernel_init+0&#215;0/0x29c) from [] (do_exit+0&#215;0/0&#215;748)<br />
Code: e3530000 e1a01004 1bfbec4f e3a03014 (e4836004)<br />
Kernel panic &#8211; not syncing: Attempted to kill init!</p></blockquote>
<p>通过上面错误信息中的Backtrace，可以看到问题出在一个名为s3c2410fb_lcd_setaddr的函数上。在源代码中找到这个函数，存在于drivers/video/s3c2410fb.c文件里，通过对Linux 2.6.22, 2.6.23, 2.6.24的对比，发现对这段函数做如下代码修改即可，原因末知，发了邮件给写这部分代码的<a href="http://www.fluff.org/ben/linux/">Ben Dooks</a>大神询问，末回。。。</p>
<blockquote><p>static void s3c2410fb_set_lcdaddr(struct s3c2410fb_info *fbi)<br />
{<br />
struct fb_var_screeninfo *var = &amp;fbi-&gt;fb-&gt;var;<br />
<span style="color: #ff0000;">void __iomem *regs = fbi-&gt;io; // sean chi 31Aug2010, added. </span><br />
unsigned long saddr1, saddr2, saddr3;</p>
<p>saddr1  = fbi-&gt;fb-&gt;fix.smem_start &gt;&gt; 1;<br />
saddr2  = fbi-&gt;fb-&gt;fix.smem_start;<br />
saddr2 += (var-&gt;xres * var-&gt;yres * var-&gt;bits_per_pixel)/8;<br />
saddr2&gt;&gt;= 1;</p>
<p>saddr3 =  S3C2410_OFFSIZE(0) | S3C2410_PAGEWIDTH((var-&gt;xres * var-&gt;bits_per_pixel / 16) &amp; 0x3ff);</p>
<p>dprintk(“LCDSADDR1 = 0x%08lx\n”, saddr1);<br />
dprintk(“LCDSADDR2 = 0x%08lx\n”, saddr2);<br />
dprintk(“LCDSADDR3 = 0x%08lx\n”, saddr3);</p>
<p><span style="color: #ff0000;">writel(saddr1,  regs + S3C2410_LCDSADDR1); // sean chi 31Aug2010, was writel(saddr, S3C2410_LCDSADDR1);<br />
writel(saddr2,  regs + S3C2410_LCDSADDR2);<br />
writel(saddr3,  regs + S3C2410_LCDSADDR3);</span><br />
}</p></blockquote>
<p>除此之外，还要把drivers/video/fbmem.c中的register_framebuffer做如下修改：</p>
<blockquote><p>/**<br />
*	register_framebuffer &#8211; registers a frame buffer device<br />
*	@fb_info: frame buffer info structure<br />
*<br />
*	Registers a frame buffer device @fb_info.<br />
*<br />
*	Returns negative errno on error, or zero for success.<br />
*<br />
*/</p>
<p>int<br />
register_framebuffer(struct fb_info *fb_info)<br />
{<br />
int i;<br />
struct fb_event event;<br />
struct fb_videomode mode;</p>
<p>if (num_registered_fb == FB_MAX)<br />
return -ENXIO;<br />
num_registered_fb++;<br />
for (i = 0 ; i &lt; FB_MAX; i++) 		if (!registered_fb[i]) 			break; 	fb_info-&gt;node = i;</p>
<p>fb_info-&gt;dev = device_create(fb_class, fb_info-&gt;device,<br />
MKDEV(FB_MAJOR, i), “fb%d”, i);<br />
if (IS_ERR(fb_info-&gt;dev)) {<br />
/* Not fatal */<br />
printk(KERN_WARNING “Unable to create device for framebuffer %d; errno = %ld\n”, i, PTR_ERR(fb_info-&gt;dev));<br />
fb_info-&gt;dev = NULL;<br />
} else<br />
fb_init_device(fb_info);</p>
<p>if (fb_info-&gt;pixmap.addr == NULL) {<br />
fb_info-&gt;pixmap.addr = kmalloc(FBPIXMAPSIZE, GFP_KERNEL);<br />
if (fb_info-&gt;pixmap.addr) {<br />
fb_info-&gt;pixmap.size = FBPIXMAPSIZE;<br />
fb_info-&gt;pixmap.buf_align = 1;<br />
fb_info-&gt;pixmap.scan_align = 1;<br />
fb_info-&gt;pixmap.access_align = 32;<br />
fb_info-&gt;pixmap.flags = FB_PIXMAP_DEFAULT;<br />
}<br />
}<br />
fb_info-&gt;pixmap.offset = 0;</p>
<p>if (!fb_info-&gt;pixmap.blit_x)<br />
fb_info-&gt;pixmap.blit_x = ~(u32)0;</p>
<p>if (!fb_info-&gt;pixmap.blit_y)<br />
fb_info-&gt;pixmap.blit_y = ~(u32)0;</p>
<p>if (!fb_info-&gt;modelist.prev || !fb_info-&gt;modelist.next)<br />
INIT_LIST_HEAD(&amp;fb_info-&gt;modelist);</p>
<p>fb_var_to_videomode(&amp;mode, &amp;fb_info-&gt;var);<br />
fb_add_videomode(&amp;mode, &amp;fb_info-&gt;modelist);<br />
registered_fb[i] = fb_info;</p>
<p>event.info = fb_info;<br />
<span style="color: #ff0000;">// sean chi 31Aug2010, removed.	fb_notifier_call_chain(FB_EVENT_FB_REGISTERED, &amp;event);</span></p>
<p>return 0;<br />
}</p></blockquote>
<p>否则将会出现kernel的启动过程hang掉的情况，至于为什么这么改的原因。。。我也不知道，同样问了Ben Dooks大神，没回。。。</p>
<p>对Linux2.6.23进行这样的修改将会导致启动后LCD屏上不会显示LOGO， 原因在于Linux启动时LOGO的加载是由fb_notifier_call_chain调用的，但由于我们之前把fb_notifier_call_chain从启动过程中去掉了，因此我们不会看到LOGO，但通过编写应用程序对/dev/fb0进行读写依然可以在LCD屏上画出图像。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rookiesean.com/2010/10/12/%e5%b5%8c%e5%85%a5%e5%bc%8flinux%e7%b3%bb%e7%bb%9f%e7%a7%bb%e6%a4%8d-lcd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>嵌入式Linux系统移植 &#8211; USB</title>
		<link>http://blog.rookiesean.com/2010/09/05/%e5%b5%8c%e5%85%a5%e5%bc%8flinux%e7%b3%bb%e7%bb%9f%e7%a7%bb%e6%a4%8d-usb/</link>
		<comments>http://blog.rookiesean.com/2010/09/05/%e5%b5%8c%e5%85%a5%e5%bc%8flinux%e7%b3%bb%e7%bb%9f%e7%a7%bb%e6%a4%8d-usb/#comments</comments>
		<pubDate>Sun, 05 Sep 2010 14:02:36 +0000</pubDate>
		<dc:creator>水野洋羽</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linux系统移植]]></category>
		<category><![CDATA[usb]]></category>

		<guid isPermaLink="false">http://blog.rookiesean.com/?p=262</guid>
		<description><![CDATA[<p><strong><a href="http://define.cnki.net/WebForms/WebDefines.aspx?searchword=%E5%AE%BF%E4%B8%BB%E6%9C%BA">宿主机</a>环境：</strong><br />
Linux version 2.6.32-24, Ubuntu10.04<br />
gcc version 4.1.3, Thread model: posix;<br />
GNU Make 3.81<br />
arm-linux-gcc 3.4.5</p>
<p><strong>开发板环境：</strong><br />
CPU:       S3C2410X<br />
SDRAM[......]</p><p class='read-more'><a href='http://blog.rookiesean.com/2010/09/05/%e5%b5%8c%e5%85%a5%e5%bc%8flinux%e7%b3%bb%e7%bb%9f%e7%a7%bb%e6%a4%8d-usb/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p><strong><a href="http://define.cnki.net/WebForms/WebDefines.aspx?searchword=%E5%AE%BF%E4%B8%BB%E6%9C%BA">宿主机</a>环境：</strong><br />
Linux version 2.6.32-24, Ubuntu10.04<br />
gcc version 4.1.3, Thread model: posix;<br />
GNU Make 3.81<br />
arm-linux-gcc 3.4.5</p>
<p><strong>开发板环境：</strong><br />
CPU:       S3C2410X<br />
SDRAM:  HY57V561620(32MB)<br />
FLASH:    K9F1208(64MB)<br />
NET:        CS8900<br />
Linux Kernel: 2.6.23.8</p>
<p><strong>移植步骤：</strong></p>
<p>使用s3c2410的默认配置文件编译出来的内核不能识别USB设备，在插上U盘的时候，内核会显示如下内容：</p>
<blockquote><p>usb 1-1: new full speed USB device using s3c2410-ohci and addr2<br />
usb 1-1: device descriptor read/64, error -62<br />
usb 1-1: device descriptor read/64, error -62<br />
usb 1-1: new full speed USB device using s3c2410-ohci and address 3<br />
usb 1-1: device descriptor read/64, error -62<br />
usb 1-1: device descriptor read/64, error -62<br />
usb 1-1: new full speed USB device using s3c2410-ohci and address 4<br />
usb 1-1: device not accepting address 4, error -62<br />
usb 1-1: new full speed USB device using s3c2410-ohci and address 5<br />
usb 1-1: device not accepting address 5, error -62</p></blockquote>
<p>这里有两个问题需要解决，一个是”device not accepting address #, error -62&#8243;, 另外一个就是在查看partition下的分区信息的时候，没有出现usb设备：</p>
<p>[root@armsys /]# cat /proc/partitions</p>
<blockquote><p>major minor  #blocks  name</p>
<p>31     0         16 mtdblock0<br />
31     1       2048 mtdblock1<br />
31     2       4096 mtdblock2<br />
31     3       2048 mtdblock3<br />
31     4       4096 mtdblock4<br />
31     5      10240 mtdblock5<br />
31     6      24576 mtdblock6<br />
31     7      16384 mtdblock7</p></blockquote>
<p>为了解决”error -62&#8243;的问题，我们需要修改drivers/usb/host/ohci-s3c2410.c:</p>
<p>rookiesean@rookiesean-desktop:~/workspace/linux-2.6.23.8$ vim drivers/usb/host/ohci-s3c2410.c</p>
<blockquote><p>#include &lt;asm/hardware.h&gt;<br />
#include &lt;asm/arch/usb-control.h&gt;<br />
<span style="color: #ff0000;">#if 1 // sean chi 20Aug2010, added.<br />
#include &lt;asm/arch-s3c2410/regs-clock.h&gt;<br />
#include &lt;asm-arm/io.h&gt;</span></p>
<p><span style="color: #ff0000;">unsigned long upllvalue = (0&#215;78 &lt;&lt; 12) | (0&#215;02 &lt;&lt; 4) | (0&#215;03);<br />
#endif</span></p>
<p>#define valid_port(idx) ((idx) == 1 || (idx) == 2)</p>
<p>/* clock device associated with the hcd */</p>
<p>&#8230;&#8230;&#8230;&#8230;</p>
<p>static void s3c2410_start_hc(struct platform_device *dev, struct usb_hcd *hcd)<br />
{<br />
struct s3c2410_hcd_info *info = dev-&gt;dev.platform_data;</p>
<p>dev_dbg(&amp;dev-&gt;dev, “s3c2410_start_hc:\n”);</p>
<p>clk_enable(usb_clk);<br />
mdelay(2);            /* let the bus clock stabilise */</p>
<p>clk_enable(clk);</p>
<p>if (info != NULL) {<br />
info-&gt;hcd    = hcd;<br />
info-&gt;report_oc = s3c2410_hcd_oc;</p>
<p>if (info-&gt;enable_oc != NULL) {<br />
(info-&gt;enable_oc)(info, 1);<br />
}<br />
}</p>
<p><span style="color: #ff0000;">// sean chi 20Aug2010, added.<br />
while (upllvalue !=__raw_readl(S3C2410_UPLLCON))<br />
{<br />
__raw_writel(upllvalue, S3C2410_UPLLCON);<br />
mdelay(1);<br />
}</span><br />
}</p></blockquote>
<p>之后，我们需要重新配置内核，确保勾选以下选项</p>
<blockquote><p><span style="color: #888888;">Device Drivers  &#8212;&gt;</span><br />
[*] USB support  &#8212;&gt;<br />
[*]        Support for Host-side USB<br />
[*]          USB device filesystem<br />
[*]          OHCI HCD support<br />
[*]        USB Mass Storage support<br />
[*]        The shared table of common (or usual) storage devices</p>
<p><span style="color: #888888;">SCSI device support  &#8212;&gt;</span></p>
<p>[*] SCSI device support<br />
[*] SCSI target support<br />
[*] legacy /proc/scsi/ support<br />
[*] SCSI disk support</p></blockquote>
<p>重新编译， 加载新的内核，这样从根文件系统上查看分区信息就可以看到usb设备的分区信处sda, sda1。</p>
<p>[root@armsys /]# cat /proc/partitions</p>
<blockquote><p>major minor  #blocks  name</p>
<p>31     0         16 mtdblock0<br />
31     1       2048 mtdblock1<br />
31     2       4096 mtdblock2<br />
31     3       2048 mtdblock3<br />
31     4       4096 mtdblock4<br />
31     5      10240 mtdblock5<br />
31     6      24576 mtdblock6<br />
31     7      16384 mtdblock7<br />
8     0    3895296 sda<br />
8     1    3891200 sda1</p></blockquote>
<p>挂载USB设备:</p>
<p>[root@armsys /]# mount -t vfat /dev/sda1 /mnt</p>
<p>出现如下错误：</p>
<blockquote><p>Unable to load NLS charset cp437<br />
FAT: codepage cp437 not found<br />
mount: mounting /dev/sda1 on /mnt failed: Invalid argument</p></blockquote>
<p>这时，需要make menuconfig时选择cp437的支持：</p>
<blockquote><p><span style="color: #888888;">File systems &#8212;&gt;</span><br />
-*- Native language support &#8212;&gt;<br />
&#8212; Native language support<br />
[*]   Codepage 437 (United States, Canada)<br />
[*]   NLS ISO 8859-1  (Latin 1; Western European Languages)<br />
当然也可以设置其他编码方式：<br />
[*]   Simplified Chinese charset (CP936, GB2312)<br />
[*]   ASCII (United States)<br />
[*]   NLS UTF-8</p></blockquote>
<p>重新编译后，加载内核就可以读取USB设备里的内容了。</p>
<p>参考资料：</p>
<p><a href="http://hi.baidu.com/musi11630019/blog/item/9091a795676ec912d31b700c.html">linux-2.6.28系统移植s3c6410开发板USB不能识别的处理</a><br />
<a href="http://blog.udn.com/Howl0730/2623372">USB error-62</a><br />
<a href="http://blog.chinaunix.net/u2/63560/showart_524055.html">Linux 2.6.24.4移植到S3C2410(nano2410)之：USB</a><br />
<a href="http://hi.baidu.com/zijinchenghcg/blog/item/f993befeb98c4849d6887d98.html">linux-2.6.28 s3c2410上添加USB和SD卡设备</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rookiesean.com/2010/09/05/%e5%b5%8c%e5%85%a5%e5%bc%8flinux%e7%b3%bb%e7%bb%9f%e7%a7%bb%e6%a4%8d-usb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

