<?xml version="1.0" encoding="UTF-8"?><!-- generator="lyceum/0.34" -->
<rss version="0.92">
<channel>
	<title>全日志博客</title>
	<link>http://blog.uiparty.com/jouy</link>
	<description>Jouy's 全日志</description>
	<lastBuildDate>Thu, 03 May 2007 02:27:10 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	
	<item>
		<title>Rails 常见性能问题一览</title>
		<description>
Rails 常见性能问题一览
作者 Stefan Kaes译者 Jason Lai 发布于 2007年3月26日 上午6时48分

在最近几个月里，我从性能问题的角度，分析了不少 Rails 应用程序（里面有一些牵涉到我的咨询业务，另外一些则是开源应用）。这些应用程序面向的多个领域之间存在着诸多差异，导致每项性能调优任务都颇具挑战性。然而，它们之间还是存在不少共性，使得我们得以提炼出不少出现问题的地方，正是它们导致了很多应用程序难以达到高性能。它们包括：


选用了缓慢的 Session 容器
本可在启动时一次性完成的操作被放在每次请求中执行
请求处理过程中重复相同运算
频繁从数据库加载过多数据（尤其在使用关联进行连接的情况下）
过分依赖于低效 helper 方法

除此之外，Rails 框架自身依然存在某些问题区（problem areas），它们的性能是我所希望在今后改善的。里面有一部分可以在应用程序级别解决，另外一部分则无能为力。下面是我比较感兴趣的问题：

Route 识别和 Route生成
ActiveRecord 对象的构造
SQL 查询的构造

我会在下文中罗列出针对以上问题的部分编码技巧。
一些忠告
遵循本文的建议，有可能改善你的应用程序的性能，但也可能行不通。性能调优是件费脑筋的事情，尤其在实现语言结构的性能特征没有被明确规范的时候，更是如此（在 Ruby 里面就是这种情况）。
我强烈建议，在进行任何变更之前，先评测一下你的应用程序原先的性能，之后每次变更后再次进行评测。我编写了一个包，叫做 railsbench，这是一个很不错的性能回归测试工具。它简单易用，只需几分钟你就可以得到性能的基准数据。不过比较遗憾，它无法告诉你，在你的应用程序里时间到底花费在哪里 （译注：此外，你的应用程序所调用的 Rails 框架的代码也是有时间开销的）。
假如你手头有台运行 Windows 的机器（或者一台带双启动的 Intel Mac），我建议你去试试 Software Verification Ltd.（SVL）的 Ruby Performance Validator（RPVL）。对于我深及 Rails 框架内核的 Rails 性能调优工作，特别是在我所建议的在已有热点视图基础上的调用图功能被 SVL 实现之后，我发现它真是功勋卓著。据我所知，它是目前市面上唯一的 Ruby 应用程序性能分析工具。Railsbench 内建了对 RPVL 的支持，这样也使得在 RPVL 之下运行被 ...</description>
		<link>http://blog.uiparty.com/jouy/2007/05/03/rails-%e5%b8%b8%e8%a7%81%e6%80%a7%e8%83%bd%e9%97%ae%e9%a2%98%e4%b8%80%e8%a7%88/</link>
			</item>
	<item>
		<title>Rails从互联网走向企业</title>
		<description>
Rails从互联网走向企业
作者 Jeff Xiong 发布于 2007年4月22日 下午7时35分

社区
Ruby
主题
企业架构,
Ruby on Rails

在过去的两年里，已经有太多的讨论围绕着"用Rails要快多少多少倍"展开。但是，对于复杂的企业级应用来说，开发的效率只是一方面。至少还有其他几个方面是必须关注的。

非功能性需求，也就是软件的-ilities：性能，并发吞吐量，伸缩性，安全，等等。
完整的生命周期支持：需求，设计，开发，配置管理，质量保证，部署，维护，升级。软件生命周期的各个环节是否有适当的工具和/或最佳实践来覆盖。
系统整合。与遗留系统是否能够协同工作。这主要体现在两个方面：（1）消息系统；（2）遗留数据库。

实际上动态语言早已在各种企业IT系统中扮演胶水的角色，一些成熟的组织早已认识到它们并不止是急就章拼凑软件的法宝。动态语言本身的特点使得它们能够相当漂亮地描述各种领域，这正是为何Rails只会在Ruby上出现的原因。来自InfoWorld的文章这样写道：
值得注意的是，PHP、Perl、Python和Ruby等动态语言在企业中扮演着越来越重要的角色。IT管理者们很快地意识到：比起传统的、较为低级的企业主流开发语言，使用这些动态语言能够更快、更轻松地写出易于维护的好代码。
另一篇InfoQ的文章在介绍ChangingThePresent.org的案例时这样写道：
有人说Rails对复杂解决方案的扩展支持能力不够，我不赞成这种说法。和同类技术相比，Rails的生产力是最高的。 Rails对我们的开发过程、团队组建和管理都产生了戏剧性的影响。所用技术的生产力越低，迭代周期就越长；团队越大，花在检查和协调上的时间就越多-- 在Ruby和Java项目管理我都经历过后，更为支持这个观点。使用别的技术，就需要组建更大的团队（比如10到15人），而我们则可以保持团队最小化。
至于前面提到的、企业级应用环境所看重的三个方面。结合Apache、Mongrel和HAProxy的部署方案已经被证明具有轻松超过任何J2EE应用服务器的性能和吞吐量，无共享架构使其具有完全线性的水平伸缩能力；至于安全性，Unix本身就已经构造了完备而可靠的安全体系。在今年的RailsConf上，我们将看到关于"如何部署高性能企业级Rails应用环境"的产品和最佳实践。
在生命周期方面，我们已经有了CruiseControl.rb和Capistrano；我们即将看到Mingle的正式亮相，以及基于这些工具的最佳实践。系统整合或许是目前最不明朗的一个领域：我们有ActiveMessaging，我们有复合主键支持，但是很明显这离着"方便的遗留系统整合"还有相当距离。在未来的一年中，这可能是"企业级Rails"最有看头的一个领域。
总而言之，不难看到，即便是对于企业级超复杂的要求，Ruby和Rails也已经做好了--至少是大部分的--准备。Rails已经像J2EE那样成熟了吗？不，远远没有。但对于那些愿意承担一定风险来提升IT效率的企业而言，是的，Ruby和Rails整装待发。
from: http://www.infoq.com/cn/news/2007/04/rails-is-enterprise-ready
 </description>
		<link>http://blog.uiparty.com/jouy/2007/05/03/rails%e4%bb%8e%e4%ba%92%e8%81%94%e7%bd%91%e8%b5%b0%e5%90%91%e4%bc%81%e4%b8%9a/</link>
			</item>
	<item>
		<title>用Ajax Scaffold快速生成网站后台管理界面</title>
		<description>
曾经的AjaxScaffold已更名为ActiveScaffold。
AjaxScaffold 已经分为成两个版本。

Ajax Scaffold Generator

Ajax Scaffold Plugin


比较起来，Plugin更易于扩展，易于升级。
Ajax Scaffold Generator
1、安装gemgem install ajax_scaffold_generator 2、生成scaffoldruby script/generate ajax_scaffold Game运行这条命令将创建一个Game model(game.rb)、Games Controller(games_controller.rb)、games view(目录)和games.rhtml layout.现在就可以启动你的应用，测试一下了.
Ajax Scaffold Plugin1、安装pluginruby script/plugin installsvn://rubyforge.org/var/svn/ajaxscaffoldp/trunk 将从svn取出plugin到应用的vendor/plugins目录下。 2、使用pluginajax_scaffold :game3、准备layout
&#60;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""DTD/xhtml1-strict.dtd"&#62;&#60;html xmlns="http://www.w3.org/1999/xhtml" lang="en"&#62;&#60;head&#62;&#60;title&#62;Title&#60;/title&#62;&#60;%= ajax_scaffold_includes %&#62;&#60;/head&#62;&#60;body&#62;&#60;%= @content_for_layout %&#62;&#60;/body&#62;&#60;/html&#62; 3、plugin Option

except:ajax_scaffold :game, :except =&#62; ['create']这将创建一个没有create方法的controller
width ：ajax_scaffold :game, :width =&#62; 500定制生成表格的宽度
rel_width :ajax_scaffold :game, ...</description>
		<link>http://blog.uiparty.com/jouy/2007/05/02/%e7%94%a8ajax-scaffold%e5%bf%ab%e9%80%9f%e7%94%9f%e6%88%90%e7%bd%91%e7%ab%99%e5%90%8e%e5%8f%b0%e7%ae%a1%e7%90%86%e7%95%8c%e9%9d%a2/</link>
			</item>
	<item>
		<title>4月16号,午饭后的休憩</title>
		<description>这些都是林子帮我们拍的。





发件人 午饭后的休憩







发件人 午饭后的休憩







发件人 午饭后的休憩







发件人 午饭后的休憩

 </description>
		<link>http://blog.uiparty.com/jouy/2007/04/16/4%e6%9c%8816%e5%8f%b7%e5%8d%88%e9%a5%ad%e5%90%8e%e7%9a%84%e4%bc%91%e6%86%a9/</link>
			</item>
	<item>
		<title>Google的简单好用的翻译工具</title>
		<description>

Google的在线翻译工具, ( http://translate.google.com/translate_t ) 。简单、实用、速度也快。
不过默认的是 Spanish to English，要是把默认的设置为汉翻英 或 英翻汉就方便多了。
不过Google没有提供相关的设置。
我看了一下网页的源码，找到了方法。只要在URL后面加上参数就可以。
给出两个常用链接：

英翻简体中文(English to Chinese(Simplified)) ：http://translate.google.com/translate_t?langpair=en&#124;zh-CN
简体中文翻英(Chinese to English) ：http://translate.google.com/translate_t?langpair=zh-CN&#124;en
英翻繁体中文(English to Chinese (Traditional))：http://translate.google.com/translate_t?langpair=en&#124;zh-TW
繁体中文翻简体中文(Chinese (Traditional to Simplified))：http://translate.google.com/translate_t?langpair=zh-TW&#124;zh-CN
简体中文翻繁体中文(Chinese (Simplified to Traditional) )：http://translate.google.com/translate_t?langpair=zh-CN&#124;zh-TW

把他们加为你为你的Firefox的书签，或收藏到IE中。
方便、快捷,避免安装翻译工具的麻烦。:)
 </description>
		<link>http://blog.uiparty.com/jouy/2007/03/29/google%e7%9a%84%e7%ae%80%e5%8d%95%e5%a5%bd%e7%94%a8%e7%9a%84%e7%bf%bb%e8%af%91%e5%b7%a5%e5%85%b7/</link>
			</item>
	<item>
		<title>Ruby Yaml,冒号后面一定要加上空格</title>
		<description>
Load yaml/yml;时出现这样一个错误,仔细查看了一下。C:/ruby/lib/ruby/1.8/yaml.rb:133:in `load': syntax error on line 8, col 0: `Welcome: 娆㈣繋' (ArgumentError)
检查源文件，发现下一行和别的行所不同的是" : "后面没有空格。补上空格，正确了。查了一下 yaml.org 规范，也没说冒号":"后面一定要空格嘛。结论：冒号后面一定要加上空格。
 </description>
		<link>http://blog.uiparty.com/jouy/2007/03/23/ruby-yaml%e5%86%92%e5%8f%b7%e5%90%8e%e9%9d%a2%e4%b8%80%e5%ae%9a%e8%a6%81%e5%8a%a0%e4%b8%8a%e7%a9%ba%e6%a0%bc/</link>
			</item>
	<item>
		<title>卢荣忠博士</title>
		<description>
刚才接了个电话。
电话："喂，请问您是卢博士？"
卢荣忠："喂，你好。卢博士？"
电话："您是卢荣忠博士？"
卢荣忠："呵呵，我想你搞错了吧！！！"
电话："您不是，xxx 的研究生导师？卢荣忠博士？"
卢荣忠："我想你要找的那个是与我同名的人。"
电话："啊？这样啊，那不好意思。。。"
卢荣忠： "没关系"。

心想她肯定是在互联网搜到我的电话号码...
Google 或 Baidu可以搜到一个跟我同名的"厦门大学国际经济与贸易系教授 －卢荣忠"。
卢博士，不知道我做您的学生能不能...啊。。。^_^

卢荣忠主要职务：教授、系工会主席、国际贸易教研室主任简介：卢荣忠，男，1951年2月出生，现为厦门大学经济学院国际经济与贸易系教授。 主要研究方向：国际贸易学。 教学科研情况：已发表论文50多篇，出版《国际经济合作》《国际贸易》等著作和教材8部。参与福建发展改革委员会、厦门市发展改革委员会、福建省厦门土畜进出口公司等多项课题；获得1999年福建省福光优秀教学三等奖、福建省第二届社会科学优秀论文三等奖、厦门市第二届社会科学优秀论文一等奖、厦门市第三届社会科学优秀论文二等奖、厦门市第四届社会科学优秀论文三等奖两项、 2000年获厦门大学清源奖、厦门市第五届社会科学优秀论文二等奖等多项奖励。主要社会兼职：福建省经济学会理事
 </description>
		<link>http://blog.uiparty.com/jouy/2007/03/14/%e5%8d%a2%e8%8d%a3%e5%bf%a0%e5%8d%9a%e5%a3%ab/</link>
			</item>
	<item>
		<title>服务商突然停网站，博客们要投诉服务商</title>
		<description>
今天早上在某个QQ群里面，看到一群博客的朋友们，
在得知自己的博客突然不能访问时，大家的痛苦和无赖。

是啊，"谁叫你这么相信"服务商。
有多少网民在写博客的时候同时也在担心会失去。
有多少服务商是值得信赖的。
无赖，商业社会难道就不要讲责任？
出现问题时，谁应该来负责，或者谁应该来 追究责任？
难道这不是普遍的社会问题？？？
 </description>
		<link>http://blog.uiparty.com/jouy/2007/03/14/%e6%9c%8d%e5%8a%a1%e5%95%86%e7%aa%81%e7%84%b6%e5%81%9c%e7%bd%91%e7%ab%99%ef%bc%8c%e5%8d%9a%e5%ae%a2%e4%bb%ac%e8%a6%81%e6%8a%95%e8%af%89%e6%9c%8d%e5%8a%a1%e5%95%86/</link>
			</item>
	<item>
		<title>今天体验了一次UUCall</title>
		<description>
今天早上起来，我心血来潮，买了个UUCall体验通话，花了一元钱。
尝试着拨了个电话给正在上班路上的女友，通了。
语音质量非常不错，一点也不延时，感觉跟Skype比没什么差距。
想使用Skype，可是它的付费太复杂了。
UUCall做的不错，跟UUZONE不久前刚下线UUTong，比较起来UUCall的功能简单了点。
打电话嘛，只要语音质量好，话费低就行了，UUCall的语音质量不错，话费比较便宜，我喜欢 。

UUTong

UUCall </description>
		<link>http://blog.uiparty.com/jouy/2007/03/14/%e4%bb%8a%e5%a4%a9%e4%bd%93%e9%aa%8c%e4%ba%86%e4%b8%80%e6%ac%a1uucall/</link>
			</item>
	<item>
		<title>rails engines介绍</title>
		<description>Rails engines是增强rails自身插件的框架。它让共享controller、helper、models、public、routes和迁移（migrations ）变得更简单。

它使整大块的插件进行功能融入现有应用无任何影响你的现有代码。或者,你可以用Rails engines插件分享最小、最简单的资源；包括通常迁移、javascripts、样式或图片。

安装 (有三种安装方法) 

1、进入项目目录，执行以下命令

ruby script / plugin install engines

或

ruby script/plugin install

http://svn.rails-engines.org/engines/trunk/

2、SVN获取

可以从 http://svn.rails-engines.org/  获最新颁布。

3、SVN Externals

  cd PATH_TO_YOUR_APP
  svn propset svn:externals "engines http://svn.rails-engines.org/engines/tags/rel_1.2.0" vendor/plugins </description>
		<link>http://blog.uiparty.com/jouy/2007/03/05/rails-engines%e4%bb%8b%e7%bb%8d/</link>
			</item>
</channel>
</rss>
