﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-OldLiu's .NET Life</title><link>http://www.cnblogs.com/ayuan/</link><description>我就是单纯的小程序员~~~</description><language>zh-cn</language><lastBuildDate>Thu, 28 Aug 2008 13:40:09 GMT</lastBuildDate><pubDate>Thu, 28 Aug 2008 13:40:09 GMT</pubDate><ttl>60</ttl><item><title>2008年7月22日 招聘美工</title><link>http://www.cnblogs.com/ayuan/archive/2008/07/22/1248321.html</link><dc:creator>老刘.</dc:creator><author>老刘.</author><pubDate>Tue, 22 Jul 2008 00:17:00 GMT</pubDate><guid>http://www.cnblogs.com/ayuan/archive/2008/07/22/1248321.html</guid><wfw:comment>http://www.cnblogs.com/ayuan/comments/1248321.html</wfw:comment><comments>http://www.cnblogs.com/ayuan/archive/2008/07/22/1248321.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnblogs.com/ayuan/comments/commentRss/1248321.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ayuan/services/trackbacks/1248321.html</trackback:ping><description><![CDATA[<p>2008年7月22日&nbsp;<span style="background-color: yellow">招聘中</span></p>
<p><br />
&nbsp;</p>
<p><font face="Verdana">工作室成立时间不长，以开发高品质体育休闲类游戏为主。国内合作伙伴为深圳市腾讯公司。 <br />
<br />
现招聘美工，要求： <br />
1美术功底扎实 <br />
2勤奋，对工作认真负责。 <br />
<br />
满足下列条件者优先考虑： <br />
1了解像素画，有电脑手绘经验。 <br />
2熟练使用photoshop等图形处理软件 <br />
3游戏经历丰富 <br />
<br />
工作地点:沈阳 <br />
有意者请投简历至sek90c@hotmail.com,请附带个人作品并注明期望薪资。</font></p>
<img src ="http://www.cnblogs.com/ayuan/aggbug/1248321.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41940/" target="_blank">[新闻]惠普139亿美元完成对EDS的收购</a>]]></description></item><item><title>沈阳中美天成汽车销售有限公司 招聘 web 开发</title><link>http://www.cnblogs.com/ayuan/archive/2008/07/18/1246012.html</link><dc:creator>老刘.</dc:creator><author>老刘.</author><pubDate>Fri, 18 Jul 2008 05:08:00 GMT</pubDate><guid>http://www.cnblogs.com/ayuan/archive/2008/07/18/1246012.html</guid><wfw:comment>http://www.cnblogs.com/ayuan/comments/1246012.html</wfw:comment><comments>http://www.cnblogs.com/ayuan/archive/2008/07/18/1246012.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/ayuan/comments/commentRss/1246012.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ayuan/services/trackbacks/1246012.html</trackback:ping><description><![CDATA[2008年7月18日&nbsp;<span style="background-color: yellow">招聘中</span><br />
<br />
<font face="Verdana">沈阳中美天成汽车销售有限公司 <br />
www.zmtcsy.com <br />
</font><br />
要求：男，专科学历以上，25-30岁，形象气质佳，精通Windows平台下的Webform与windowform技术开发，熟练掌握asp.net&nbsp; C#开发语言及mssql数据库，另外有过php+mysql开发经验者优先。具有2年以上丰富的项目开发经验,一年以上的系统设计经验，熟悉企业管理软件的开发。要有一定的英文基础，能够浏览英文网站。
<p><font face="Verdana">3000-5000元/月 看个人能力 </font></p>
<p><font face="Verdana">电话:24231889<br />
Email:tigerlt@yahoo.cn <br />
</font></p>
 <img src ="http://www.cnblogs.com/ayuan/aggbug/1246012.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41939/" target="_blank">[新闻]搜狗五笔输入法发布</a>]]></description></item><item><title>对微软 MVC 发发牢骚</title><link>http://www.cnblogs.com/ayuan/archive/2008/07/09/ms_mvc_what_the_hell_are_u_doing.html</link><dc:creator>老刘.</dc:creator><author>老刘.</author><pubDate>Wed, 09 Jul 2008 08:18:00 GMT</pubDate><guid>http://www.cnblogs.com/ayuan/archive/2008/07/09/ms_mvc_what_the_hell_are_u_doing.html</guid><wfw:comment>http://www.cnblogs.com/ayuan/comments/1239018.html</wfw:comment><comments>http://www.cnblogs.com/ayuan/archive/2008/07/09/ms_mvc_what_the_hell_are_u_doing.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cnblogs.com/ayuan/comments/commentRss/1239018.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ayuan/services/trackbacks/1239018.html</trackback:ping><description><![CDATA[<p>微软刚刚推出 MVC 的时候，着实兴奋了一下，于是浅浅入手，仅仅是浅浅入手。直到 Preview 3 出现，<br />
并且有网站项目要做，打算正式入手下，这一入手，可着实震惊了一下，许多设计让我感到非常之困惑，<br />
在此不禁要问，微软 MVC， 你到底想做些什么？</p>
<p>1，表单处理：<br />
表单，太常见而又平庸的表单，服务器端的处理复杂不到哪去，无论是图片上传，还是 CheckBoxList 赋值取值，抑或是各种 Hidden 处理，<br />
等等等等，即便再复杂，也不至于 GET 提交 和 POST 提交分开处理啊。</p>
<p>不知道是不是推荐做法啊，几乎看到所有的例子，官方的，非官方的，处理表单的时候，都要搞一个 New 方法，然后再搞一个 Create 方法。</p>
<p>New 方法，是用来处理 GET 方法进入表单初始化页面的；<br />
Create 方法，是用来处理 POST 表单数据的。</p>
<p>挺费事，第一个感觉，挺费事。我也是搞过 Monorail 的人，而且是个被 Ruby on Rails 宠坏了的人，我知道 Monorail 里边处理表单，不用写两个方法，他们做了如下的判断：</p>
<p>if (IsPost) { <br />
&nbsp;// 处理 Post 请求<br />
} else {<br />
&nbsp;// 处理 GET 请求<br />
}</p>
<p>ROR 更是体贴的加入了：</p>
<p>if request.xhr？<br />
&nbsp;&nbsp;&nbsp; # 处理 ajax 请求</p>
<p>于是我只好在 微软 MVC 中这样写：</p>
<p>public ActionResult Register(string email, string password, string nickname)<br />
{<br />
&nbsp;if (Request.HttpMethod == "POST") {<br />
&nbsp;&nbsp;// 处理 Post 请求<br />
&nbsp;&nbsp;Response.Redirect("~/user/space", false);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return null;<br />
&nbsp;} else {<br />
&nbsp;&nbsp;// 处理 GET 请求<br />
&nbsp;&nbsp;return View();<br />
&nbsp;}<br />
}</p>
<p>页面跳转的时候依然是噩梦， 方法必须有 ActionResult 类型返回值，所以 POST 处理中妥协的写上了 return null;<br />
RedirectToAction，RedirectToRoute 是指望不上了，他们不提供 Response.Redirect("", false); 中的&#8220;false&#8221;，页面不会跳转的。。。</p>
<p>不知道一个页面既有显示功能，又有表单提交的时候，会玩出什么花样；<br />
不知道一页面多表单提交的时候，又会玩出什么花样，<br />
懒得多合计了，还是老老实实的ajax吧。</p>
<p>2，处理提交数据：</p>
<p>看段微软 MVC 处理表单 POST 时候的代码吧：</p>
<p>public void Create(string ProductName, int CategoryID, int SupplierID, Decimal UnitPrice)<br />
{<br />
}</p>
<p>说实话，第一眼看到这个的时候，险些放弃了微软 MVC 。。。</p>
<p>好在后来看到了后解：</p>
<p>Brad Abrams 的 Northwind MVC Example 里给出了这样的辩护：</p>
<p>public void Create()<br />
{<br />
&nbsp;Product product = new Product();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; UpdateFrom(product, Request.Form);<br />
}</p>
<p>MVCToolkit 又适时的给出了 UpdateFrom 扩展方法的解决方案：</p>
<p>Product product = new Product();<br />
product.UpdateFrom(Request.Form, new [] {"ProductName", "SupplierID", "CategoryID", "UnitPrice"});</p>
<p>（注：截止至发文，依然徘徊在 &#8220;System.Web.Mvc.ViewPage&#8221;同时存在于 &#8220;System.Web.Mvc.dll&#8221;和 &#8220;System.Web.Extensions.dll&#8221;的泥沼中，<br />
MVCToolkit 方案能否实施，依然显得遥遥无期，唯一期待的曙光，就是略显跳票的 VS 2008 SP1 中文版。。。）</p>
<p>可是，还是用着不爽啊，看看 Monorail 的解决方法：</p>
<p>public void Add([DataBind("Product")] Album album, HttpPostedFile cover)<br />
{<br />
}</p>
<p>有点不忍心，还是写下 ROR 代码：</p>
<p>def add<br />
&nbsp; if request.post?<br />
&nbsp;&nbsp;&nbsp; Product product = Product.new(params[:product])<br />
&nbsp;&nbsp;&nbsp; if product.save<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; redirect_to :action =&gt; ""<br />
&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; flash[:err] = "something wrong"<br />
&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp; // some get method stuff<br />
&nbsp; end<br />
end</p>
<p>手写上边代码用不了两分钟。。。 把时间浪费在实体间赋值上是一种罪。</p>
<p>现实点，如果 Castle 要是没买 Monorail DataBind 专利的话，麻烦微软老大老老实实抄一下 DataBind 吧，没人会瞧不起你的。</p>
<p>3.&nbsp; Controller View 通讯：</p>
<p>唉。。。最是郁闷的还是这里。</p>
<p>不知道多少同胞 down 过 kigg 那个例子。当你看到 ViewsData 这个文件夹时有什么感受。我的感受，实实在在的加了一层。</p>
<p>不在显示层写业务逻辑，不知道你对这个&#8220;业务逻辑&#8221;有什么看法。<br />
我的看法，在页面里写 if else 不叫&#8220;在显示层写业务逻辑&#8221;， 如今 web n.0 站点里边，动态初始化页面司空见惯，<br />
我想这也是大多数web开发者的观点。</p>
<p>但是在前端页面里边写：</p>
<p>&lt;% StoryDetailItem story = ((StoryDetailData)ViewData).Story; %&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;% if (story == null) %&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;% { %&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;span class="pageMessage"&gt;The story does not exists.&lt;/span&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;% } %&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;% else %&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;% { %&gt;</p>
<p>着实让我有点看不下去，不管你怎么看，我把这个就叫做 在显示层里写业务逻辑。</p>
<p>Monorail里边，服务器端：</p>
<p>PropertyBag["Products"] = Product.GetProductList();</p>
<p>页面：<br />
#if ($products.count &gt; 0)<br />
&lt;ul&gt;<br />
#foreach($product in $products)<br />
&lt;li&gt;&lt;a href="$siteroot/product/${product.id}.html"&gt;$product.title&lt;/a&gt;&lt;/li&gt;<br />
#end<br />
&lt;/ul&gt;<br />
#end</p>
<p>而且，服务器端内置一些用 Session 实现的 通讯对象，例如 Flash， </p>
<p>Controller 中 ：<br />
Flash["key"] = new Entity();</p>
<p>View 中：<br />
&lt;%= key.propertity %&gt;</p>
<p>&nbsp;</p>
<p>微软推 MVC， 卖点到底在哪里？如果说是敏捷开发，在已经被宠坏了的我的眼里，微软 MVC 还有一段路要走。</p>
<p>我只入手 微软 MVC 两天，遇到了很多微软 MVC 的不爽，不免有些失落，写这篇文章就是发发牢骚，各位微软 MVC 的拥趸， 达仁，</p>
<p>请尽量谅解我的鲁莽，拍砖不要太狠，我只是一个单纯的小程序员，和你们一样期望用微软的产品开发产品可以按小时计算时间。。。</p>
 <img src ="http://www.cnblogs.com/ayuan/aggbug/1239018.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41938/" target="_blank">[新闻]新学年开始 大学生适用的十大互联网应用</a>]]></description></item><item><title>Beginning Google Maps Applications with Rails and Ajax From Novice to Professional - Chapter One</title><link>http://www.cnblogs.com/ayuan/archive/2008/07/04/1235221.html</link><dc:creator>老刘.</dc:creator><author>老刘.</author><pubDate>Fri, 04 Jul 2008 00:47:00 GMT</pubDate><guid>http://www.cnblogs.com/ayuan/archive/2008/07/04/1235221.html</guid><wfw:comment>http://www.cnblogs.com/ayuan/comments/1235221.html</wfw:comment><comments>http://www.cnblogs.com/ayuan/archive/2008/07/04/1235221.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/ayuan/comments/commentRss/1235221.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ayuan/services/trackbacks/1235221.html</trackback:ping><description><![CDATA[<img height="140" alt="" src="http://www.cnblogs.com/images/cnblogs_com/ayuan/3139.jpg" width="105" border="0" /><br />
<br />
Google Maps and Rails
<p id="ztgx" goog_docs_charindex="39">&nbsp;&nbsp;&nbsp; 过去的一年对于 web 开发人员来讲充满着难以置信的兴奋。新的开发工具使 web 开发变得更加容易，更加产品化，同时带来更多的乐趣。</p>
<p id="gayv" goog_docs_charindex="111">你可以把更多的数据，服务方面的 API 通过有趣的方式组合在一起。作为开发人员，我们从技术中获得了前所未有的乐趣。这本书把主要的精力放在对 Google Maps API的诠释上，</p>
<p id="y.y2" goog_docs_charindex="203">如果你已经拿到了这本书，你可能已经发现了 Google Maps 的重要性。如果你需要一个随手查阅的提示，也可以到 Google Maps Mania (<a id="fvcq10" href="http://googlemapsmania.blogspot.com/" goog_docs_charindex="281">http://googlemapsmania.blogspot.com/</a>) </p>
<p id="acvf" goog_docs_charindex="321">上转一转，领略一下开发社区给 Google Maps 带来的变革。 Google Maps API 孕育了一种令人难以割舍的 web 基础应用，你可以轻松的把它架设在一个同样令人感到兴奋的web平台上：</p>
<p id="n9lm" goog_docs_charindex="424">Ruby on Rails。</p>
<p id="q5tv" goog_docs_charindex="443">&nbsp;&nbsp;&nbsp; Rails 架构可以极大的提升以数据库为基础的web应用程序的开发效率，Rails 开发起来很直接，功能强大，而且是免费的。Rails 可以轻松的搭建大型 web 应用程序，</p>
<p id="t146" goog_docs_charindex="536">而这些事情在两年前是难以想象的。</p>
<p id="rt680" goog_docs_charindex="557">&nbsp;&nbsp;&nbsp; 在接下来的一章中，你会经历一个简单的包括标记（marker），地形编码（geocoding ）的例子，还有一些更加深入的主题，例如如何获得数据，呈现数据坐标（points），</p>
<p id="sxkf" goog_docs_charindex="650">提供一个有用的用户接口。</p>
<p id="yobl" goog_docs_charindex="667">&nbsp;&nbsp;&nbsp; 在Ruby on Rails 平台架设 Google Maps 有许多好处，Rails 可以轻松的提供一些 XML 支持，而 XML 在 Google Maps 中被广泛的应用，Rails 同时对 JSON (JavaScript Object Notation), 提供了友好的支持，这种简单的数据结构可以轻松的从服务器端发送数据到客户端。Ruby自身也包括了一些功能强大的类库，可以实现屏幕擦除（screenscraping），</p>
<p id="hruv" goog_docs_charindex="889">这一点我们会在后边的章节中详细介绍。</p>
<p id="e80l" goog_docs_charindex="912">&nbsp;&nbsp;&nbsp; 我们主观的做了一个假设，假设当你拿到这本书的时候，你已经有一些Rails开发经验，你已经在你的电脑上安装了Ruby和Rails开发环境，并且可以成功的运行应用程序。如果事实并非如此，</p>
<p id="olsi" goog_docs_charindex="1009">我们在本章的末尾列出了一些帮助信息，使你尽快的上手Rails，例如&#8220;如何开始使用Ruby和Rails？（Just Getting Started with Ruby and Rails?）&#8221;。即便你现在已经是一个Rails骨灰级玩家，</p>
<p id="vaaa" goog_docs_charindex="1128">你仍然可以从这本书中享受地图程序开发给你来的乐趣，并且使你同样成为一个地图程序开发的骨灰级玩家。Rails框架，Ruby语言，Google Maps API是你在畅游这本书时不可或缺的旅伴。</p>
<p id="tg8g0" goog_docs_charindex="1228">&nbsp;&nbsp;&nbsp; 我们知道你已经迫不及待的开始一个地图项目了，但是在我们开始编写代码之前，还是先来粗略的了解两种制作地图项目的方法：KML（Keyhole MarkupLanguage）files 和 </p>
<p id="c7y2" goog_docs_charindex="1326">Wayfaring map site。他们都是我们通往成功道路上的奠基石，我们将使用他们来做几个简单的演示。在第二章中，我们才会开始研究代码，到那个时候，你会真正领略到你可以打造出什么样的作品。</p>
<p id="hzhb0" goog_docs_charindex="1428">&nbsp;&nbsp;&nbsp;&nbsp;<strong id="hzhb1" goog_docs_charindex="1433">KML: Your First Map</strong></p>
<p id="vn2p0" goog_docs_charindex="1461">&nbsp;&nbsp;&nbsp;&nbsp;KML 是在 Google map 中显示标记（marker）和添加内容的最简单的方法之一，如你所料，简单往往会为丧失灵活性而付出代价，但 KML 仍然可以作为一个开始 Google map 项目的非常好的选择，早在 2006 年 7 月，Google map 官方网站就宣布其对 KML 测绘文件提供支持，你可以简单的在 Google Maps 的搜索框中输入一个URL，Google Maps 就会返回一个标识位置的 KML</p>
<p id="zdf4" goog_docs_charindex="1681">文件。我们不会深入讨论这个实现过程，取而代之我们将马上展示一个简单而强大的 KML 的例子。</p>
<p id="s8ku" goog_docs_charindex="1729">&nbsp;
<hr id="s8ku0" goog_docs_charindex="1733" />
<p id="w1kb" goog_docs_charindex="1737">&nbsp;&nbsp;&nbsp; 提示：Keyhole Markup Language 是基于 XML 和 Google Earth 并被命名为 keyhole 的项目，Google 于 2004 年末正式启动 Keyhole 项目。</p>
<p id="w1kb0" goog_docs_charindex="1843">&nbsp;
<hr id="s8ku4" goog_docs_charindex="1847" />
<p id="lfb5" goog_docs_charindex="1851">&nbsp;&nbsp;&nbsp; 我们创建了一个被命名为 toronto.kml的文件，并把 例子 1-1 中的内容写入其中。这段内容引自 Wikipedia，用于手动的从 Google Maps 上找到这些坐标。&nbsp;</p>
<p id="b4.40" goog_docs_charindex="1951">&nbsp;&nbsp;&nbsp;&nbsp;代码 1-1. 一个简单的 KML 文件</p>
<blockquote id="gm-o" goog_docs_charindex="1977"><span id="uxd40" style="color: blue" goog_docs_charindex="1978"><font id="rf0." size="1" goog_docs_charindex="1979">&lt;?</font></span><span id="uxd41" style="color: #a31515" goog_docs_charindex="1984"><font id="rf0.0" size="1" goog_docs_charindex="1985">xml</font></span> <span id="uxd43" style="color: red" goog_docs_charindex="1992"><font id="rf0.1" size="1" goog_docs_charindex="1993">version</font></span><span id="uxd44" style="color: blue" goog_docs_charindex="2003"><font id="rf0.2" size="1" goog_docs_charindex="2004">=</font></span><span id="uxd45" goog_docs_charindex="2008"><font id="rf0.3" size="1" goog_docs_charindex="2009">"</font><span id="uxd46" style="color: blue" goog_docs_charindex="2012">1.0</span><font id="rf0.4" size="1" goog_docs_charindex="2017">"</font> <span id="uxd48" style="color: red" goog_docs_charindex="2021">encoding</span><span id="uxd49" style="color: blue" goog_docs_charindex="2031">=</span><font id="rf0.5" size="1" goog_docs_charindex="2034">"</font><span id="uxd410" style="color: blue" goog_docs_charindex="2037">UTF-8</span><font id="rf0.6" size="1" goog_docs_charindex="2044">"</font><span id="uxd411" style="color: blue" goog_docs_charindex="2047">?&gt;&nbsp;</span></span>
<p id="uxd413" style="margin: 0cm 0cm 0pt; text-align: left" align="left" goog_docs_charindex="2054"><span id="uxd414" style="color: blue" goog_docs_charindex="2055"><font id="rf0.7" size="1" goog_docs_charindex="2056">&lt;</font></span><span id="uxd415" style="color: #a31515" goog_docs_charindex="2060"><font id="rf0.8" size="1" goog_docs_charindex="2061">kml</font></span> <span id="uxd417" style="color: red" goog_docs_charindex="2068"><font id="rf0.9" size="1" goog_docs_charindex="2069">xmlns</font></span><span id="uxd418" style="color: blue" goog_docs_charindex="2077"><font id="rf0.10" size="1" goog_docs_charindex="2078">=</font></span><span id="uxd419" goog_docs_charindex="2082"><font id="rf0.11" size="1" goog_docs_charindex="2083">"</font><span id="uxd420" style="color: blue" goog_docs_charindex="2086">http://www.google.com/earth/kml/2</span><font id="rf0.12" size="1" goog_docs_charindex="2121">"</font><span id="uxd421" style="color: blue" goog_docs_charindex="2124">&gt;&nbsp;</span></span></p>
<p id="uxd423" style="margin: 0cm 0cm 0pt; text-align: left" align="left" goog_docs_charindex="2130"><span id="uxd424" style="color: blue" goog_docs_charindex="2131">&nbsp;<font id="rf0.13" size="1" goog_docs_charindex="2136">&lt;</font></span><span id="uxd426" style="color: #a31515" goog_docs_charindex="2140"><font id="rf0.14" size="1" goog_docs_charindex="2141">Document</font></span><span id="uxd427" style="color: blue" goog_docs_charindex="2152"><font id="rf0.15" size="1" goog_docs_charindex="2153">&gt;&nbsp;</font></span></p>
<p id="uxd429" style="margin: 0cm 0cm 0pt; text-align: left" align="left" goog_docs_charindex="2159"><span id="uxd430" style="color: blue" goog_docs_charindex="2160"><span id="uxd431" goog_docs_charindex="2161">&nbsp;&nbsp;&nbsp; </span><font id="rf0.16" size="1" goog_docs_charindex="2167">&lt;</font></span><span id="uxd432" style="color: #a31515" goog_docs_charindex="2171"><font id="rf0.17" size="1" goog_docs_charindex="2172">name</font></span><span id="uxd433" style="color: blue" goog_docs_charindex="2179"><font id="rf0.18" size="1" goog_docs_charindex="2180">&gt;</font></span><span id="uxd434" goog_docs_charindex="2184"><font id="rf0.19" size="1" goog_docs_charindex="2185">toronto.kml</font><span id="uxd435" style="color: blue" goog_docs_charindex="2198">&lt;/</span><span id="uxd436" style="color: #a31515" goog_docs_charindex="2202">name</span><span id="uxd437" style="color: blue" goog_docs_charindex="2208">&gt;&nbsp;</span></span></p>
<p id="uxd439" style="margin: 0cm 0cm 0pt; text-align: left" align="left" goog_docs_charindex="2214"><span id="uxd440" style="color: blue" goog_docs_charindex="2215"><span id="uxd441" goog_docs_charindex="2216">&nbsp;&nbsp;&nbsp; </span><font id="rf0.20" size="1" goog_docs_charindex="2222">&lt;</font></span><span id="uxd442" style="color: #a31515" goog_docs_charindex="2226"><font id="rf0.21" size="1" goog_docs_charindex="2227">Placemark</font></span><span id="uxd443" style="color: blue" goog_docs_charindex="2239"><font id="rf0.22" size="1" goog_docs_charindex="2240">&gt;&nbsp;</font></span></p>
<p id="uxd445" style="margin: 0cm 0cm 0pt; text-align: left" align="left" goog_docs_charindex="2246"><span id="uxd446" style="color: blue" goog_docs_charindex="2247"><span id="uxd447" goog_docs_charindex="2248">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><font id="rf0.23" size="1" goog_docs_charindex="2256">&lt;</font></span><span id="uxd448" style="color: #a31515" goog_docs_charindex="2260"><font id="rf0.24" size="1" goog_docs_charindex="2261">name</font></span><span id="uxd449" style="color: blue" goog_docs_charindex="2268"><font id="rf0.25" size="1" goog_docs_charindex="2269">&gt;</font></span><span id="uxd450" goog_docs_charindex="2273"><font id="rf0.26" size="1" goog_docs_charindex="2274">CN Tower</font><span id="uxd451" style="color: blue" goog_docs_charindex="2284">&lt;/</span><span id="uxd452" style="color: #a31515" goog_docs_charindex="2288">name</span><span id="uxd453" style="color: blue" goog_docs_charindex="2294">&gt;&nbsp;</span></span></p>
<p id="uxd455" style="margin: 0cm 0cm 0pt; text-align: left" align="left" goog_docs_charindex="2300"><span id="uxd456" style="color: blue" goog_docs_charindex="2301"><span id="uxd457" goog_docs_charindex="2302">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><font id="rf0.27" size="1" goog_docs_charindex="2310">&lt;</font></span><span id="uxd458" style="color: #a31515" goog_docs_charindex="2314"><font id="rf0.28" size="1" goog_docs_charindex="2315">description</font></span><span id="uxd459" style="color: blue" goog_docs_charindex="2329"><font id="rf0.29" size="1" goog_docs_charindex="2330">&gt;&nbsp;</font></span></p>
<p id="uxd461" style="margin: 0cm 0cm 0pt; text-align: left" align="left" goog_docs_charindex="2336"><span id="uxd462" goog_docs_charindex="2337"><span id="uxd463" goog_docs_charindex="2338">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><font id="rf0.30" size="1" goog_docs_charindex="2348">The CN Tower (Canada's National Tower, Canadian National Tower),&nbsp;</font></span></p>
<p id="uxd465" style="margin: 0cm 0cm 0pt; text-align: left" align="left" goog_docs_charindex="2417"><span id="uxd466" goog_docs_charindex="2418"><span id="uxd467" goog_docs_charindex="2419">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><font id="rf0.31" size="1" goog_docs_charindex="2429">at 553.33 metres (1,815 ft., 5 inches) is the tallest </font></span><span id="uxd468" style="font-family: 'MS Mincho'" goog_docs_charindex="2486"><font id="rf0.32" size="1" goog_docs_charindex="2487">➥</font></span><span id="uxd469" goog_docs_charindex="2491"><font id="rf0.33" size="1" goog_docs_charindex="2492">&nbsp;</font></span></p>
<p id="uxd471" style="margin: 0cm 0cm 0pt; text-align: left" align="left" goog_docs_charindex="2497"><span id="uxd472" goog_docs_charindex="2498"><span id="uxd473" goog_docs_charindex="2499">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><font id="rf0.34" size="1" goog_docs_charindex="2509">freestanding structure on land.&nbsp;</font></span></p>
<p id="uxd475" style="margin: 0cm 0cm 0pt; text-align: left" align="left" goog_docs_charindex="2545"><span id="uxd476" goog_docs_charindex="2546"><span id="uxd477" goog_docs_charindex="2547">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><font id="rf0.35" size="1" goog_docs_charindex="2557">It is located in the city of Toronto, Ontario, Canada, and is considered the&nbsp;</font></span></p>
<p id="uxd479" style="margin: 0cm 0cm 0pt; text-align: left" align="left" goog_docs_charindex="2638"><span id="uxd480" goog_docs_charindex="2639"><span id="uxd481" goog_docs_charindex="2640">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><font id="rf0.36" size="1" goog_docs_charindex="2650">signature icon of the city. The CN Tower attracts close to two million visitors&nbsp;</font></span></p>
<p id="uxd483" style="margin: 0cm 0cm 0pt; text-align: left" align="left" goog_docs_charindex="2734"><span id="uxd484" goog_docs_charindex="2735"><span id="uxd485" goog_docs_charindex="2736">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><font id="rf0.37" size="1" goog_docs_charindex="2746">annually.</font>&nbsp;<font id="rf0.38" size="1" goog_docs_charindex="2761">http://en.wikipedia.org/wiki/CN_Tower&nbsp;</font></span></p>
<p id="uxd488" style="margin: 0cm 0cm 0pt; text-align: left" align="left" goog_docs_charindex="2803"><span id="uxd489" style="color: blue" goog_docs_charindex="2804"><span id="uxd490" goog_docs_charindex="2805">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><font id="rf0.39" size="1" goog_docs_charindex="2813">&lt;/</font></span><span id="uxd491" style="color: #a31515" goog_docs_charindex="2818"><font id="rf0.40" size="1" goog_docs_charindex="2819">description</font></span><span id="uxd492" style="color: blue" goog_docs_charindex="2833"><font id="rf0.41" size="1" goog_docs_charindex="2834">&gt;&nbsp;</font></span></p>
<p id="uxd494" style="margin: 0cm 0cm 0pt; text-align: left" align="left" goog_docs_charindex="2840"><span id="uxd495" style="color: blue" goog_docs_charindex="2841"><span id="uxd496" goog_docs_charindex="2842">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><font id="rf0.42" size="1" goog_docs_charindex="2850">&lt;</font></span><span id="uxd497" style="color: #a31515" goog_docs_charindex="2854"><font id="rf0.43" size="1" goog_docs_charindex="2855">Point</font></span><span id="uxd498" style="color: blue" goog_docs_charindex="2863"><font id="rf0.44" size="1" goog_docs_charindex="2864">&gt;&nbsp;</font></span></p>
<p id="uxd4100" style="margin: 0cm 0cm 0pt; text-align: left" align="left" goog_docs_charindex="2870"><span id="uxd4101" style="color: blue" goog_docs_charindex="2871"><span id="uxd4102" goog_docs_charindex="2872">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><font id="rf0.45" size="1" goog_docs_charindex="2882">&lt;</font></span><span id="uxd4103" style="color: #a31515" goog_docs_charindex="2886"><font id="rf0.46" size="1" goog_docs_charindex="2887">coordinates</font></span><span id="uxd4104" style="color: blue" goog_docs_charindex="2901"><font id="rf0.47" size="1" goog_docs_charindex="2902">&gt;</font></span><span id="uxd4105" goog_docs_charindex="2906"><font id="rf0.48" size="1" goog_docs_charindex="2907">-79.386864,43.642426</font><span id="uxd4106" style="color: blue" goog_docs_charindex="2929">&lt;/</span><span id="uxd4107" style="color: #a31515" goog_docs_charindex="2933">coordinates</span><span id="uxd4108" style="color: blue" goog_docs_charindex="2946">&gt;&nbsp;</span></span></p>
<p id="uxd4110" style="margin: 0cm 0cm 0pt; text-align: left" align="left" goog_docs_charindex="2952"><span id="uxd4111" style="color: blue" goog_docs_charindex="2953"><span id="uxd4112" goog_docs_charindex="2954">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><font id="rf0.49" size="1" goog_docs_charindex="2962">&lt;/</font></span><span id="uxd4113" style="color: #a31515" goog_docs_charindex="2967"><font id="rf0.50" size="1" goog_docs_charindex="2968">Point</font></span><span id="uxd4114" style="color: blue" goog_docs_charindex="2976"><font id="rf0.51" size="1" goog_docs_charindex="2977">&gt;&nbsp;</font></span></p>
<p id="uxd4116" style="margin: 0cm 0cm 0pt; text-align: left" align="left" goog_docs_charindex="2983"><span id="uxd4117" style="color: blue" goog_docs_charindex="2984"><span id="uxd4118" goog_docs_charindex="2985">&nbsp;&nbsp;&nbsp; </span><font id="rf0.52" size="1" goog_docs_charindex="2991">&lt;/</font></span><span id="uxd4119" style="color: #a31515" goog_docs_charindex="2996"><font id="rf0.53" size="1" goog_docs_charindex="2997">Placemark</font></span><span id="uxd4120" style="color: blue" goog_docs_charindex="3009"><font id="rf0.54" size="1" goog_docs_charindex="3010">&gt;&nbsp;</font></span></p>
<p id="uxd4122" style="margin: 0cm 0cm 0pt; text-align: left" align="left" goog_docs_charindex="3016"><span id="uxd4123" style="color: blue" goog_docs_charindex="3017">&nbsp;<font id="rf0.55" size="1" goog_docs_charindex="3022">&lt;/</font></span><span id="uxd4125" style="color: #a31515" goog_docs_charindex="3027"><font id="rf0.56" size="1" goog_docs_charindex="3028">Document</font></span><span id="uxd4126" style="color: blue" goog_docs_charindex="3039"><font id="rf0.57" size="1" goog_docs_charindex="3040">&gt;&nbsp;</font></span></p>
<p id="uxd4128" style="margin: 0cm 0cm 0pt" goog_docs_charindex="3046"><span id="uxd4129" style="color: blue" goog_docs_charindex="3047"><font id="rf0.58" size="1" goog_docs_charindex="3048">&lt;/</font></span><span id="uxd4130" style="color: #a31515" goog_docs_charindex="3053"><font id="rf0.59" size="1" goog_docs_charindex="3054">kml</font></span><span id="uxd4131" style="color: blue" goog_docs_charindex="3060"><font id="rf0.60" size="1" goog_docs_charindex="3061">&gt;</font></span></p>
</blockquote>
<p id="geok" goog_docs_charindex="3067">&nbsp;&nbsp;&nbsp;&nbsp;在这个真实的文件中（<a id="geok0" href="http://book.earthcode.com/kml/toronto.kml" goog_docs_charindex="3082">http://book.earthcode.com/kml/toronto.kml</a>），我们添加了两个地点标记（Placemark ）的子元素用于标记两个多伦多的标志性建筑。想要在 Google Maps</p>
<p id="jtel" goog_docs_charindex="3186">上查看结果，只需把这个URL粘贴到 Google Maps 的搜索框中，也可以直接点击下边的链接：</p>
<p id="qi9q0" goog_docs_charindex="3240">&nbsp;&nbsp;&nbsp; <a id="geok5" href="http://maps.google.com/maps?f=q&amp;hl=en&amp;q=http://book.earthcode.com/kml/toronto.kml" goog_docs_charindex="3245">http://maps.google.com/maps?f=q&amp;hl=en&amp;q=http://book.earthcode.com/kml/toronto.kml</a>.</p>
<p id="qi9q1" goog_docs_charindex="3330"><br id="geok7" goog_docs_charindex="3331" />
&nbsp;&nbsp;&nbsp;&nbsp;图示1-1即为显示结果：</p>
<p id="g8td0" goog_docs_charindex="3349">&nbsp;&nbsp;&nbsp;&nbsp;<img id="tvax" alt="" src="http://docs.google.com/File?id=dcwdkkw4_1wg47nscb_b" goog_docs_charindex="3354" /></p>
<p id="g8td1" goog_docs_charindex="3356">&nbsp;&nbsp;&nbsp;&nbsp;图示1-1：一个简单的 KML&nbsp;数据文件在&nbsp;Google Maps&nbsp;上的显示结果.&nbsp;</p>
<p id="gx.b" goog_docs_charindex="3407">&nbsp;&nbsp;&nbsp; 的确立竿见影，不是吗？正如你所看到的，如果仅仅想展示一系列地点，场所，一个 KML 文件基本上就能搞定，如果你想标记一个你常去钓鱼的鱼塘，那么建立一个 KML 文件，把它发布到免费的服务器空间（host）上，这样就搞定了。但是仅仅这样我们就会满足吗？毕竟对于强大的 KML 来讲，现在的例子还没有提供与用户交互的功能。事实上在第二章中大多数例子中，我们只会体验一些 Google 发布的功能展示，但是当我们来到第三章的时候，你就会亲身领略 Google Maps API 的强大功能。</p>
<p id="gx.b0" goog_docs_charindex="3658">&nbsp;&nbsp;&nbsp; 在我们继续前进之前，让我们来快速体验一下另一种在线获得地图的方法。</p>
<p id="h-nk0" goog_docs_charindex="3700">&nbsp;&nbsp;&nbsp;&nbsp;<strong id="cl9t" goog_docs_charindex="3705">Wayfaring: Your Second Map</strong></p>
<p id="d5el" goog_docs_charindex="3737">&nbsp;&nbsp;&nbsp;&nbsp;一些服务商提供免费发布手绘地图文件服务，我们挑选其中的一个服务&nbsp;Wayfaring 作为我们的示例。如图示1-2所示，Wayfaring 以其优质的功能设计和活跃的社区支持（社区提供大量的讨论和资源共享）而著称，同事Wayfaring 也是尤 Ruby on Rails 打造的。</p>
<div id="jj:l" style="padding-right: 0px; padding-left: 0px; padding-bottom: 1em; padding-top: 1em; text-align: left" goog_docs_charindex="3890">&nbsp;&nbsp;&nbsp; <img id="hb:z" style="width: 475px; height: 301px" height="301" alt="" src="http://docs.google.com/File?id=dcwdkkw4_3cv4mvmxc_b" width="492" goog_docs_charindex="3895" /></div>
<div id="qgou" style="padding-right: 0px; padding-left: 0px; padding-bottom: 1em; padding-top: 1em; text-align: left" goog_docs_charindex="3897">&nbsp;&nbsp;&nbsp; 图示1-2 ：Wayfaring 首页</div>
<div id="h::h" style="padding-right: 0px; padding-left: 0px; padding-bottom: 1em; padding-top: 1em; text-align: left" goog_docs_charindex="3922">&nbsp;&nbsp;&nbsp; Wayfaring 是一个地图服务应用，它使用 Google Map API，并且允许用户快速的创建地图。举个例子，有些人制作了他们的休假旅行图；而另一些人制作了他们的家乡的地图。通过它，我们可以带你一起领略加州山景的想象之旅。跟着 Wayfaring 的提示，创建一个帐户（点击 Log In 将会显示创建帐户的提示），一旦你创建了一个帐户，你就可以点击右上方的 Create Map按钮创建你自己的地图了。</div>
<div id="h::h0" style="padding-right: 0px; padding-left: 0px; padding-bottom: 1em; padding-top: 1em; text-align: left" goog_docs_charindex="4133">&nbsp;&nbsp;&nbsp; 第一章 Wayfaring 网站使用简介部分暂时略去。英文原文内容如下：</div>
<div id="hlih" style="padding-right: 0px; padding-left: 0px; padding-bottom: 1em; padding-top: 1em; text-align: left" goog_docs_charindex="4175">&nbsp;&nbsp;&nbsp;&nbsp;<strong id="bu6v" goog_docs_charindex="4180">Adding the First Point</strong></div>
<div id="bu6v0" style="padding-right: 0px; padding-left: 0px; padding-bottom: 1em; padding-top: 1em; text-align: left" goog_docs_charindex="4205">&nbsp;&nbsp;&nbsp; Let&#8217;s start by adding the home airport for our imaginary journey. We&#8217;re going to use Lester B.Pearson International Airport in Toronto, Ontario, Canada, but you could use the airport closest to you. Since Pearson is an international location (outside the United States), you need to drag and zoom the map view until you find it. If you&#8217;re in the United States, you can use the nifty Jump To feature to search by text string. Figure 1-3 shows Pearson nicely centered and zoomed.&nbsp;&nbsp;&nbsp;&nbsp; </div>
<div id="pye4" style="padding-right: 0px; padding-left: 0px; padding-bottom: 1em; padding-top: 1em; text-align: left" goog_docs_charindex="4693">&nbsp;&nbsp;&nbsp; <img id="bt8:" style="width: 498px; height: 313px" height="330" alt="" src="http://docs.google.com/File?id=dcwdkkw4_4gn35dnfj_b" width="464" goog_docs_charindex="4698" /></div>
<div id="pye40" style="padding-right: 0px; padding-left: 0px; padding-bottom: 1em; padding-top: 1em; text-align: left" goog_docs_charindex="4700">&nbsp;&nbsp;&nbsp;&nbsp;Figure 1-4. Your flight landing at San Francisco International Airport</div>
<div id="hcu7" style="padding-right: 0px; padding-left: 0px; padding-bottom: 1em; padding-top: 1em; text-align: left" goog_docs_charindex="4776">&nbsp;&nbsp;&nbsp;&nbsp;<strong id="v1l2" goog_docs_charindex="4781">Adding the Destination Point</strong></div>
<div id="hcu70" style="padding-right: 0px; padding-left: 0px; padding-bottom: 1em; padding-top: 1em; text-align: left" goog_docs_charindex="4812">&nbsp;&nbsp;&nbsp;&nbsp;Now that you&#8217;re in San Francisco, let&#8217;s figure out how to get to the Googleplex directly. Click Add aWaypoint. Your destination is Google, so the new point is called The Googleplex. Use the address box feature to jump directly to 1600 Amphitheatre Parkway, Mountain View, California, 94043. Wayfaring is able to determine latitude and longitude from an address via a process called geocoding, which you&#8217;ll see a lot more of in Chapter 4.</div>
<div id="vj17" style="padding-right: 0px; padding-left: 0px; padding-bottom: 1em; padding-top: 1em; text-align: left" goog_docs_charindex="5255">&nbsp;&nbsp;&nbsp;&nbsp;To confirm you&#8217;re in the right place, click the Sat button on the top-right corner of the map to switch it over to satellite mode. You should see something resembling Figure 1-5.</div>
<div id="cp1." style="padding-right: 0px; padding-left: 0px; padding-bottom: 1em; padding-top: 1em; text-align: left" goog_docs_charindex="5439">&nbsp;&nbsp;&nbsp; <img id="e9ef" style="width: 507px; height: 323px" height="332" alt="" src="http://docs.google.com/File?id=dcwdkkw4_65jbd9zc7_b" width="532" goog_docs_charindex="5444" /></div>
<div id="cp1.0" style="padding-right: 0px; padding-left: 0px; padding-bottom: 1em; padding-top: 1em; text-align: left" goog_docs_charindex="5446">&nbsp;&nbsp;&nbsp; Figure 1-5. The Googleplex</div>
<p id="p1ow0" goog_docs_charindex="5481">&nbsp;&nbsp;&nbsp; <strong id="p1ow1" goog_docs_charindex="5486">Adding a Driving Route</strong> </p>
<div id="p1ow2" style="padding-right: 0px; padding-left: 0px; padding-bottom: 1em; padding-top: 1em; text-align: left" goog_docs_charindex="5512">&nbsp;&nbsp;&nbsp; Next, let&#8217;s figure out how far the drive is. Routes don&#8217;t really have a starting and ending point in Wayfaring from a visual point of view, so you can start your route from the Googleplex and work your way backward. Switch back into Map mode or Hybrid mode so you can see the roads more clearly. From the Map Editor screen, select Add a Route and click the point you just added. Use 10 to 20 dots to carefully trace the trip from Mountain View back up the Bayshore Freeway (U.S.Highway 101) to the airport. You&#8217;ll end up with about 23 miles of driving, as shown in Figure 1-6.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </div>
<div id="cu3x" style="padding-right: 0px; padding-left: 0px; padding-bottom: 1em; padding-top: 1em; text-align: left" goog_docs_charindex="6102">&nbsp;&nbsp;&nbsp; <img id="d7_3" alt="" src="http://docs.google.com/File?id=dcwdkkw4_9fwpbhzgw_b" goog_docs_charindex="6107" /></div>
<div id="um7_" style="padding-right: 0px; padding-left: 0px; padding-bottom: 1em; padding-top: 1em; text-align: left" goog_docs_charindex="6109">&nbsp;&nbsp;&nbsp; Figure 1-6. The drive down the Bayshore Freeway to the Googleplex</div>
<div id="um7_0" style="padding-right: 0px; padding-left: 0px; padding-bottom: 1em; padding-top: 1em; text-align: left" goog_docs_charindex="6180"><br id="imh-" goog_docs_charindex="6181" />
&nbsp;&nbsp;&nbsp; That&#8217;s it. You can use the same principles to make an annotated map of your vacation or calculate how far you&#8217;re going to travel; and best of all, it&#8217;s a snap to share it. To see this map live, visit <a id="imh-2" href="http://www.wayfaring.com/maps/show/17131" goog_docs_charindex="6386">http://www.wayfaring.com/maps/show/17131</a>.</div>
<div id="l:bv" style="padding-right: 0px; padding-left: 0px; padding-bottom: 1em; padding-top: 1em; text-align: left" goog_docs_charindex="6430">&nbsp;&nbsp;&nbsp; <strong id="l:bv0" goog_docs_charindex="6435">Got Rails?</strong>&nbsp;</div>
<p id="z3ia" goog_docs_charindex="6449">&nbsp;&nbsp;&nbsp; 当然，这是一本编程相关的书，你可能已经迫不及待的想一头钻进代码中，做一些真正不寻常的事情，Wayfaring 的确强大，但是它不能带来舒适的编程体验。提及与程序的交互，让我们把视线转向 Ruby on Rails，这款服务器端框架。我们在本章的开始部分提到，我们假定这本书的读者有一些 Ruby and Rails 开发经验-至少可以独立完成 Rails 应用程序的运行。这意味着，你应该：</p>
<ul id="wrfk" goog_docs_charindex="6653">
    <li id="wrfk0" goog_docs_charindex="6654">
    <div id="wrfk1" goog_docs_charindex="6655">在你的电脑上安装了 Ruby（1.8.4 或者更高版本）和 Rails（1.1.5 或者更高版本）；</div>
    <li id="j-:7" goog_docs_charindex="6708">
    <div id="j-:70" goog_docs_charindex="6709">了解如何通过 Rails 命令行来创建一个 Rails 应用程序架构，并且熟练掌握 Rails 应用的 MVC（model/view/controller）开发模式；</div>
    <li id="jar3" goog_docs_charindex="6795">
    <div id="jar30" goog_docs_charindex="6796">了解如何通过 WEBrick, Mongrel 或者其他 web 服务器运行 Rails 应用程序；</div>
    <li id="aq6v" goog_docs_charindex="6849">
    <div id="aq6v0" goog_docs_charindex="6850">掌握一门数据库技术。本书的大多例子使用 MySQL 进行开发，但是你也可以使用其他数据库引擎作为你的选择；</div>
    <li id="u6uk" goog_docs_charindex="6906">
    <div id="u6uk0" goog_docs_charindex="6907">选择一个适合自己的开发工具-比如 TextMate, RadRails,&nbsp;或者 Vim。</div>
    </li>
</ul>
<p id="xf.b0" goog_docs_charindex="6958">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;下面，我们同样列出了一些条款，对于阅读本书而言，这些都不是你所必须掌握的：</p>
<ul id="vkz00" goog_docs_charindex="7005">
    <li id="vkz01" goog_docs_charindex="7006">
    <div id="vkz02" goog_docs_charindex="7007">你不需要了解很多 prototype.js 脚本库的细节。很多开发者对于 Prototype 感到困惑，可能是因为文档比较少的吧。我们做出了明智的决定，这本书上的大多应用尽量避免使用 prototype.js，但是仍然会时不时的使用到它；</div>
    <li id="h47k" goog_docs_charindex="7129">
    <div id="h47k0" goog_docs_charindex="7130">你不必掌握 RJS。 RJS 是 Rails 中的模板（就像RHTML），它提供简单的方式实现网页中大量的 Javascript 功能，从而简化了开发。因为 Google Maps API 本身提供了 JavaScript 接口，所以我们还是主要以手写脚本的方式进行开发；</div>
    <li id="bxeq" goog_docs_charindex="7269">
    <div id="bxeq0" goog_docs_charindex="7270">你不需要是一名 JavaScript 编程高手。尽管 Google Maps API 提供 JavaScript 接口，但是随着你的 JavaScript 方面的技能的提升，你可以显得更加从容；（原文：You don&#8217;t need to be an expert in JavaScript programming. Yes, the Google Maps API is implemented in JavaScript, but you&#8217;ll be ramping up on JavaScript techniques and<br id="xf.b11" goog_docs_charindex="7538" />
    principles as you go.）</div>
    <li id="uibu" goog_docs_charindex="7563">
    <div id="uibu0" goog_docs_charindex="7564">现在你还不需要一个 Rails 应用程序的网络空间。当然，有一天，当你的应用程序将会举世震惊的时候，你会为你的程序架设一台服务器的，但是时下，对于这本书上的例子而言，在你的电脑上简单的运行一下，还是比较现实的。</div>
    </li>
</ul>
<p id="xt9v" goog_docs_charindex="7676">&nbsp;
<hr id="xt9v0" goog_docs_charindex="7680" />
<p id="xx:d" goog_docs_charindex="7681"><strong id="mjdt" goog_docs_charindex="7682">&nbsp;&nbsp;&nbsp; Just Getting Started with Ruby and Rails?</strong>&nbsp;</p>
<p id="hy0m" goog_docs_charindex="7734">&nbsp;&nbsp;&nbsp; 如果你刚刚准备学习 Ruby and Rails，并且决定学习一下地图应用程序开发，你可能希望得到一些辅助材料，从而加快学习进度。 Ruby on Rails 可能会比 PHP 或者 ColdFusion 的学习曲线长一些，希望以下资料对你的学习提供一些额外的帮助：</p>
<ul id="wrjr0" goog_docs_charindex="7876">
    <li id="wrjr1" goog_docs_charindex="7877">
    <div id="wrjr2" goog_docs_charindex="7878">《Beginning Ruby: From Novice to Professional by Peter Cooper 》(<a id="hy0m4" href="http://www.apress.com/book/bookDisplay.html?bID=10244" goog_docs_charindex="7942">http://www.apress.com/book/bookDisplay.html?bID=10244</a>)》，我承认许多开发者是通过 Rails 开始了解 Ruby 的。如果你恰好是这样，我极力推荐你补充一下 Ruby 方面的知识，之后再把更多的精力放在 Rails 开发上；</div>
    <li id="rlg:" goog_docs_charindex="8085">
    <div id="rlg:0" goog_docs_charindex="8086">《Beginning Ruby on Rails: From Novice to Professional》(<a id="hy0m10" href="http://www.apress.com/book/bookDisplay.html?bID=10124" goog_docs_charindex="8142">http://www.apress.com/book/bookDisplay.html?bID=10124</a>),作者： Cloves Carneiro Jr. and Jeffrey Allan Hardy。</div>
    </li>
</ul>
<hr id="xt9v3" goog_docs_charindex="8250" />
<p id="xx:d0" goog_docs_charindex="8251"><strong id="i:x3" goog_docs_charindex="8252">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;接下来会有哪些精彩？</strong></p>
<p id="g3v2" goog_docs_charindex="8276">&nbsp;&nbsp;&nbsp; 我们知道你正在热切的期盼着打造真正属于你自己的地图应用程序。在这一章的最后部分，你已经通过 Wayfaring&nbsp;了解了几乎全部使用 JavaScript 和 XHTML 实现的&nbsp;Google Maps 功能</p>
<p id="ebkp" goog_docs_charindex="8385">（除了 多插线（polylines）和 距离（distances），本书的第十章涵盖这些内容）。这本书的宗旨，就是让你掌握打造一个 Wayfaring 克隆项目的全部理论基础。那么接下来会是哪些内容呢？</p>
<p id="ebkp0" goog_docs_charindex="8488">这本书分为三个部分和两个附录。</p>
<p id="wk41" goog_docs_charindex="8505">&nbsp;&nbsp;&nbsp; 第一部分会持续到第四章，展示了许多充满乐趣的例子用来引导用读者入门。通过这部分，你可以打造一个地图，添加一些自己的小标记，而且使用一些免费的服务器端数据填充一些</p>
<p id="ebkp1" goog_docs_charindex="8591">地图编码。</p>
<p id="wk410" goog_docs_charindex="8598">&nbsp;&nbsp;&nbsp; 第二部分（第五章至第八章）会涉及到很多地图开发方面的主题，例如编写一个通用接口，处理大量坐标点（points），通过一些原始数据实现你自己想要的地图效果。</p>
<p id="g3v20" goog_docs_charindex="8681">&nbsp;&nbsp;&nbsp;&nbsp;第三部分（第九章至第十一章）&nbsp;一些高级主题：打造客户层叠地图，&nbsp;比如你自己的提示框和提示文本；（creating your own map tiles and projections；）通过球面公式计算地球表面面积，通过抓痕技术打造自己的地理编码（building your own geocoder from scratch.）。</p>
<p id="llma" goog_docs_charindex="8853">&nbsp;&nbsp;&nbsp;&nbsp;最后部分，附录中会提供一些 Google Maps API&nbsp;第二版本中的参考。附录中还会提供一些扩展例子，你可以直接使用他们来丰富你自己的项目。<br id="tozq6" goog_docs_charindex="8930" />
</p>
<p id="llma1" goog_docs_charindex="9090">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong id="gp_8" goog_docs_charindex="9240">（第一章完。 2008年7月2日 刘 远 </strong><a id="nltk" href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#111;&#108;&#100;&#98;&#105;&#108;&#108;&#64;&#49;&#50;&#54;&#46;&#99;&#111;&#109;" goog_docs_charindex="9263">oldbill@126.com</a>&nbsp;<strong id="gp_80" goog_docs_charindex="9281">）</strong>&nbsp;&nbsp;</p>
<img src ="http://www.cnblogs.com/ayuan/aggbug/1235221.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41937/" target="_blank">[新闻]Google拟在9月发布自有浏览器 或采用火狐内核</a>]]></description></item><item><title>首届 IT-MM 杯 羽毛球大赛 联谊活动火热报名中</title><link>http://www.cnblogs.com/ayuan/archive/2008/06/25/1229327.html</link><dc:creator>老刘.</dc:creator><author>老刘.</author><pubDate>Wed, 25 Jun 2008 00:26:00 GMT</pubDate><guid>http://www.cnblogs.com/ayuan/archive/2008/06/25/1229327.html</guid><wfw:comment>http://www.cnblogs.com/ayuan/comments/1229327.html</wfw:comment><comments>http://www.cnblogs.com/ayuan/archive/2008/06/25/1229327.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/ayuan/comments/commentRss/1229327.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ayuan/services/trackbacks/1229327.html</trackback:ping><description><![CDATA[首届&nbsp;IT-MM&nbsp;杯&nbsp;羽毛球大赛&nbsp;联谊活动火热报名中<br />
<br />
主办单位：博客园沈阳.NET&nbsp;俱乐部<br />
参加方式：发送邮件至&nbsp;<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#111;&#108;&#100;&#98;&#105;&#108;&#108;&#64;&#49;&#50;&#54;&#46;&#99;&#111;&#109;">oldbill@126.com</a>&nbsp;注明&nbsp;&#8220;报名参赛&#8221;<br />
举行时间：2008年&nbsp;6月29日下午14：00-16：00（暂定）<br />
举办地点：沈阳市原动力东瓦窑,陵东地税东,富山花园南<br />
活动内容：男子单打，混双羽毛球赛<br />
收费形式：男生AA，MM买饮料<br />
注意事项：需要大家自带球拍，场地可以租拍，但不知道多少钱。一定要穿运动鞋。尽量穿短裤。<br />
活动宣传：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
IT宅男们，准备好和mm们一起流汗了吗？<br />
你们的生活不应该如此单调；你们的生活应该充满激情；你们的生活应该充满的新的挑战，<br />
如果你打算和我们一起暂别虚拟世界，暂别安逸的代码生活，来到现实生活中和mm们一起参加一场精彩羽毛球比赛~<br />
那么就是现在，马上报名参加首届首届&nbsp;IT-MM&nbsp;杯&nbsp;羽毛球大赛，也许不一样的生活，从此开始~<br />
<br />
详细介绍：<br />
<a href="http://www.zhaosher.com/event/show/100047" target="_blank">http://www.zhaosher.com/event/show/100047</a> <br />
<br />
公交线路参考：<br />
<a href="http://sy70s.blog.hexun.com/5946611_d.html" target="_blank">http://sy70s.blog.hexun.com/5946611_d.html</a> <br />
<br />
<br />
 <img src ="http://www.cnblogs.com/ayuan/aggbug/1229327.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41936/" target="_blank">[新闻]微软正在构思将Wi-Fi带入汽车</a>]]></description></item><item><title>周六(6月7日)博客园沈阳.NET俱乐部线下聚会</title><link>http://www.cnblogs.com/ayuan/archive/2008/06/06/1215109.html</link><dc:creator>老刘.</dc:creator><author>老刘.</author><pubDate>Fri, 06 Jun 2008 05:29:00 GMT</pubDate><guid>http://www.cnblogs.com/ayuan/archive/2008/06/06/1215109.html</guid><wfw:comment>http://www.cnblogs.com/ayuan/comments/1215109.html</wfw:comment><comments>http://www.cnblogs.com/ayuan/archive/2008/06/06/1215109.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cnblogs.com/ayuan/comments/commentRss/1215109.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ayuan/services/trackbacks/1215109.html</trackback:ping><description><![CDATA[<p><font color="#ff0000">==========================================================&nbsp;</font></p>
<p>时间地点都已确定：</p>
<p>时间： 6月7日 上午 11点 - 下午 3点</p>
<p>地点： <a href="http://map.baidu.com/#word=%BD%F0%BA%BA%CB%B9%B0%CD%CE%F7%BF%BE%C8%E2%28%C0%D6%B9%BA%B5%EA%29&amp;ct=40&amp;bs=024_0&amp;sid=MAPNCMHBFAHPTNZOXNYIH&amp;" target="_blank">沈阳市广宜街金汉斯</a></p>
<p>参与者： 1-2-3 CoolWolf dfsoft forever 姜川&nbsp;koenemy 老刘&nbsp;Maxthon&nbsp;沈阳-李&nbsp;等。</p>
<p>精神上支持者： AssionSoft&nbsp;老月 魔幻天空 等。<br />
<font color="#ff0000">==========================================================</font></p>
<p>初定本周六(6月7日)博客园沈阳.NET俱乐部线下聚会，</p>
<p>报名及咨询请在本帖跟帖，</p>
<p>活动内容以技术交流，职业规划，互联网发展趋势等话题展开讨论，</p>
<p>有意报名参加者请留下电子邮件，或发送邮件至 <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#111;&#108;&#100;&#98;&#105;&#108;&#108;&#64;&#49;&#50;&#54;&#46;&#99;&#111;&#109;" mce_href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#111;&#108;&#100;&#98;&#105;&#108;&#108;&#64;&#49;&#50;&#54;&#46;&#99;&#111;&#109;">oldbill@126.com</a>&nbsp;著名 博客园线下活动。<br />
<br />
参见<br />
<a href="http://space.cnblogs.com/group/topic/3018/" target="_blank">http://space.cnblogs.com/group/topic/3018/</a>
<br />
<a href="http://www.zhaosher.com/event/show/100037" target="_blank">http://www.zhaosher.com/event/show/100037</a>
<br />
<a href="http://www.douban.com/event/10125419/?from=mb-38054945" target="_blank">http://www.douban.com/event/10125419/?from=mb-38054945</a>
<br />
</p><img src ="http://www.cnblogs.com/ayuan/aggbug/1215109.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41935/" target="_blank">[新闻]对比测试：IE8 Beta 2 VS Firefox 3.0.1</a>]]></description></item><item><title>Linux中的远程连接 SSH and VNC图形模式</title><link>http://www.cnblogs.com/ayuan/archive/2008/04/26/1171803.html</link><dc:creator>老刘.</dc:creator><author>老刘.</author><pubDate>Sat, 26 Apr 2008 00:40:00 GMT</pubDate><guid>http://www.cnblogs.com/ayuan/archive/2008/04/26/1171803.html</guid><wfw:comment>http://www.cnblogs.com/ayuan/comments/1171803.html</wfw:comment><comments>http://www.cnblogs.com/ayuan/archive/2008/04/26/1171803.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/ayuan/comments/commentRss/1171803.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ayuan/services/trackbacks/1171803.html</trackback:ping><description><![CDATA[<p>我们知道在windows下面我们可以用远程桌面连接来控制其它电脑，<br />
但在linux环境下又怎么样来连接呢?</p>
<p>不过在说怎样连接之前还是要先明确一个概念，为什么我标题没有用linux中的远程桌面连接呢，<br />
这是因为Linux下面的桌面，也就是我们所说的X Window ，只是linux下的一个应用程序而已，<br />
所以linux中的远程连接就分为shell和X 桌面连接两种。<br />
<br />
先说说通过SSH（Secure Shell)连接到linux下的shell，如果的操作平台是windows下，<br />
你可以下载SSH客户端工具连接到linux，比如最常用的PuTTY，你可以去这里下载：<br />
http://www.chiark.greenend.org.uk/~sgtatham/putty/<br />
运行后，如图所示</p>
<p>&nbsp;</p>
<p><img height="438" src="http://www.phpweblog.net/images/phpweblog_net/killjin/1.jpg" width="451" border="0"  alt="" /><br />
输入你linux主机的IP，默认端口为22，然后点击Open，<br />
就会出现登录界面，输入用户名和密码：：</p>
<p><img height="52" src="http://www.phpweblog.net/images/phpweblog_net/killjin/2.jpg" width="345" border="0"  alt="" /></p>
<p><img height="63" src="http://www.phpweblog.net/images/phpweblog_net/killjin/3.jpg" width="296" border="0"  alt="" /></p>
<p>登录过程就算完成了。</p>
<p>如果你客户端也用的linux呢，那更方便了，直接输入：<br />
ssh -l username [address of the remote host]连接，<br />
第一次连接时会让你确认，输入yes，然后再输入口令就行了。</p>
<p>其实通过ssh连接，我们已经完全可以远程管理主机了，<br />
不过有时候也需要在X Window下做一些事，<br />
接下来就是说说怎么样远程连接到linux的桌面。</p>
<p>通常我们用配置XDM（X Display Manager）和VNC来远程连接，<br />
这里我要说的是用vnc来实行远程连接。</p>
<p>提起VNC大家肯定不要陌生，它是一个踌平台的远程控制软件，<br />
有linux上装好它的服务器端，我们就可以通过客户端来进行连接了。<br />
安装就不多说了，完成后在提示符下输入：<br />
vncserver</p>
<p><img height="137" src="http://www.phpweblog.net/images/phpweblog_net/killjin/4.jpg" width="437" border="0"  alt="" /></p>
<p>就算是启动了，注意后面的数字1，以后连接的时候要用到<br />
这样vnc服务器就启动了，如果你第一次运行vncserver，会要求你输入访问密码。</p>
<p>如果你是在windows平台下连接linux，那直接安装vnc的的客户端就行了，<br />
也就是安装vncviewer，安装完成后启动：</p>
<p><img height="107" src="http://www.phpweblog.net/images/phpweblog_net/killjin/5.jpg" width="361" border="0"  alt="" /></p>
<p>输入IP加上标识号，如前面启动vnc服务是1，那这里就填1，依此类推。点击确定：</p>
<p><img height="95" src="http://www.phpweblog.net/images/phpweblog_net/killjin/6.jpg" width="366" border="0"  alt="" /></p>
<p>输入访问密码，回车：</p>
<p><img height="369" src="http://www.phpweblog.net/images/phpweblog_net/killjin/7.jpg" width="460" border="0"  alt="" /></p>
<p>连接成功。<br />
如果你操作平台是linux,那么在提示符下输入:<br />
vncviewer IP : x (x为标识符),就可以进行连接了。</p>
<p>还有种情况，如果是linux主机连接windows，除了用vnc外，<br />
在linux中有个类似于windows中的远程桌面的工具包，那就是Rdesktop，在提示符下输入：<br />
rdesktop ip 就可以了。另外你还以在gnome的工具菜单里启动：</p>
<p><img height="459" src="http://www.phpweblog.net/images/phpweblog_net/killjin/8.jpg" width="408" border="0"  alt="" /></p>
<p>输入IP，用户名和密码，如果没有域，就留空，然后连接，就和XP桌面一样，真是很方便 ，顺便提醒一句，如果你要连接的linux主机位于局域网内，可别忘了做端口映射，如果用SSH就映射22到主机，如果是用VNC连接，就要根据你的标识了，比如本例中的1，就映射端口5901，依此类推。</p>
<img src ="http://www.cnblogs.com/ayuan/aggbug/1171803.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41934/" target="_blank">[新闻]iPhone存在严重密码安全漏洞</a>]]></description></item><item><title>[招聘]沈阳博宇有色金属炉料有限公司 - 诚聘 WinForm 程序开发人员</title><link>http://www.cnblogs.com/ayuan/archive/2008/03/26/1122884.html</link><dc:creator>老刘.</dc:creator><author>老刘.</author><pubDate>Wed, 26 Mar 2008 04:45:00 GMT</pubDate><guid>http://www.cnblogs.com/ayuan/archive/2008/03/26/1122884.html</guid><wfw:comment>http://www.cnblogs.com/ayuan/comments/1122884.html</wfw:comment><comments>http://www.cnblogs.com/ayuan/archive/2008/03/26/1122884.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/ayuan/comments/commentRss/1122884.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ayuan/services/trackbacks/1122884.html</trackback:ping><description><![CDATA[2008年3月26日 <span style="background-color: yellow">招聘中<br />
</span><br />
<font face="Verdana">沈阳博宇有色金属炉料有限公司</font> <br />
<br />
诚聘 <span style="color: #ffcc99; background-color: #ffcc99"><span style="color: #000000"><span style="background-color: #ffcc99">.Net WinForm 程序开发人员</span></span><br />
</span><br />
要求：<br />
精通.NET框架和C#编程，精通.Net WinForm开发;<br />
精通SQLServer数据库;<br />
<font face="Verdana">1年以上.Net WinForm工作经验</font>;<br />
<font face="Verdana">熟悉ERP软件开发;</font><br />
良好的团队合作精神，求实敬业;<br />
<font face="Verdana"><br />
</font><font face="Verdana">待遇优厚<br />
<br />
公司地址：<font face="Verdana">沈阳薄板厂附近 </font><br />
<br />
联系电话：<span style="background-color: #99ccff">&nbsp;<font face="Verdana">25523440 转 5888<br />
<br />
老刘批注：项目带头人有非常丰富的ERP开发经验哦~~~ ：）<br />
</font></span></font>
<img src ="http://www.cnblogs.com/ayuan/aggbug/1122884.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41931/" target="_blank">[新闻]GC2008：星际争霸2进程报告 微调进程延续</a>]]></description></item><item><title>Rails 2.0 中分页的实现 will_paginate插件</title><link>http://www.cnblogs.com/ayuan/archive/2008/03/12/1102001.html</link><dc:creator>老刘.</dc:creator><author>老刘.</author><pubDate>Wed, 12 Mar 2008 05:48:00 GMT</pubDate><guid>http://www.cnblogs.com/ayuan/archive/2008/03/12/1102001.html</guid><wfw:comment>http://www.cnblogs.com/ayuan/comments/1102001.html</wfw:comment><comments>http://www.cnblogs.com/ayuan/archive/2008/03/12/1102001.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/ayuan/comments/commentRss/1102001.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ayuan/services/trackbacks/1102001.html</trackback:ping><description><![CDATA[摘要: 最近准备开发web项目，挑来选去，最终决定用Rails开发。离别Rails许久，发现现在的版本已经是2.0了，看来Rails还是一如继往的健康成长，而且国内的许多Rails社区也充满了活力，很是开心。Rails 2.0中发生了一些变化，最先遇见的就是分页。Rails 2.0之前的版本提供了Paginate方法，大体的写法如下：Controller：@album_pages,@albums=pagi&nbsp;&nbsp;<a href='http://www.cnblogs.com/ayuan/archive/2008/03/12/1102001.html'>阅读全文</a><img src ="http://www.cnblogs.com/ayuan/aggbug/1102001.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41930/" target="_blank">[新闻]科学家在世界最大对撞机中观察到首批粒子</a>]]></description></item><item><title>沈阳地区新技术.Net技术研讨与培训</title><link>http://www.cnblogs.com/ayuan/archive/2008/01/23/1049461.html</link><dc:creator>老刘.</dc:creator><author>老刘.</author><pubDate>Wed, 23 Jan 2008 00:35:00 GMT</pubDate><guid>http://www.cnblogs.com/ayuan/archive/2008/01/23/1049461.html</guid><wfw:comment>http://www.cnblogs.com/ayuan/comments/1049461.html</wfw:comment><comments>http://www.cnblogs.com/ayuan/archive/2008/01/23/1049461.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/ayuan/comments/commentRss/1049461.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ayuan/services/trackbacks/1049461.html</trackback:ping><description><![CDATA[<font face="Verdana"><font face="Verdana">
<div class="Content">
<p><font face="Verdana"><font face="Verdana">沈阳地区新技术.Net技术研讨与培训</font><br />
</font></p>
<p><font face="Verdana">地点：<font color="#993300">东北大学南门（244终点站）</font></font></p>
<p><font face="Verdana">联系qq：<font color="#993300">15301897<br />
<br />
<span style="color: red">注：本次活动不以任何形式收取任何费用。<br />
</span></font></font></p>
<p><font face="Verdana">培训时间安排：</font></p>
<p><font face="Verdana">1月25日：<br />
&nbsp;&nbsp;&nbsp; <font color="#000080">winform（实现动态窗体的技巧）<br />
&nbsp;&nbsp;&nbsp; Webservice（Asp.net， WinForm调用，Asp.net 动态窗体）<br />
&nbsp;&nbsp;&nbsp; 三层架构，BS，CS 双模式开发（数据服务）<br />
&nbsp;&nbsp;&nbsp; 智能客户端<br />
&nbsp;&nbsp;&nbsp; WebParts（AspnetDB 数据库结构，WebParts组建，登录控件）<br />
&nbsp;&nbsp;&nbsp; AJAX（AJAX组建，AJAX原理）</font><br />
1月26日：<br />
&nbsp;&nbsp;&nbsp; <font color="#000080">组建服务（概念）<br />
&nbsp;&nbsp;&nbsp; Windows服务开发（Win服务控件，Win服务的编写）<br />
&nbsp;&nbsp;&nbsp; C# 3.0语法<br />
&nbsp;&nbsp;&nbsp; LINQ（to Object， to XML, to DataSet, to SQL, Lambda, QuerySyntax）<br />
&nbsp;&nbsp;&nbsp; WCF<br />
</font>1月27日<br />
&nbsp;&nbsp;&nbsp; <font color="#000080">工作流设计思想（信息接口，意见征集，表决，汇签特点）<br />
&nbsp;&nbsp;&nbsp; 状态<br />
&nbsp;&nbsp;&nbsp; 权限<br />
&nbsp;&nbsp;&nbsp; 时间引擎<br />
&nbsp;&nbsp;&nbsp; 分析设计（结合实际项目）<br />
&nbsp;&nbsp;&nbsp; 开发团队的模块划分</font><br />
1月28日 - 1月29日<br />
&nbsp;&nbsp;&nbsp; <font color="#000080">WF介绍<br />
&nbsp;&nbsp;&nbsp; 入门例子，引擎与流程<br />
&nbsp;&nbsp;&nbsp; 引擎与流程分离，反射流程，启动参数<br />
&nbsp;&nbsp;&nbsp; 各类Activity具体使用<br />
&nbsp;&nbsp;&nbsp; 自定义Activity，动态属性<br />
&nbsp;&nbsp;&nbsp; 外部方法，外部事件<br />
&nbsp;&nbsp;&nbsp; 容器<br />
&nbsp;&nbsp;&nbsp; 用外部事件控制流程<br />
&nbsp;&nbsp;&nbsp; 引擎<br />
&nbsp;&nbsp;&nbsp; 状态机基本使用<br />
&nbsp;&nbsp;&nbsp; 引擎控制状态机<br />
&nbsp;&nbsp;&nbsp; 引擎的WCF接口<br />
&nbsp;&nbsp;&nbsp; 例子，实现一个完整的架构、<br />
&nbsp;&nbsp;&nbsp; 例子，事件引擎<br />
&nbsp;&nbsp;&nbsp; 持久化<br />
&nbsp;&nbsp;&nbsp; 跟踪<br />
&nbsp;&nbsp;&nbsp; 异常与事务<br />
</font>1月30日-1月31日<br />
&nbsp;&nbsp;&nbsp; <font color="#000080">WF实现【土建和合同管理流程】<br />
&nbsp;&nbsp; 【土建和合同管理流程】模块基于需求变化的修改</font></font></p>
</div>
</font></font>
  <img src ="http://www.cnblogs.com/ayuan/aggbug/1049461.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41929/" target="_blank">[新闻]阿里巴巴利润增1.36倍</a>]]></description></item></channel></rss>