自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(126)
  • 资源 (1)
  • 收藏
  • 关注

Footprint: An Experimental HTML5 Application

  为了参加HTML5大赛所编写的一个HTML5应用:Footprint。   Footprint的实现让我有机会体验了HTML5的一些特性,比如Geo Location,Local DB,File API等,另外,对node.js也进行了尝试,实现了一个简单(还不完整)的WebServer。   更重要的,是在JavaScript实践上尝试和印证了一些想法,比如ActiveR...

2011-01-09 12:41:35 164

Scala和并发编程

  Scala语言有很多优点,比如简洁、强大的表现力等等。但我最关注的,是它在并发编程方面的优势。   Scala通过强调对象的不变性以及使用基于事件的模型进行线程间通信使得实现并发应用变得简单。   不变对象  并发编程之所以这么困难,很大一个原因在于对象的可变性。要在充斥着大量可变对象的程序里面实现安全并发,需要非常繁琐以及复杂易错的同步操作来保证状态更新的同步。...

2011-01-04 00:38:12 319

Ext JS框架初探

Ext JS原先是YUI的一个扩展,如今独立发展成一个关注表现和行为的JS框架。 Ext JS的主要特点是组件化,Web客户端的常见显示和行为,数据的处理以及服务器端的通信都通过组件的方式进行包装。比如表单、toolbar、下拉框、viewport以及tree等页面常见表现和行为,JSON和XML等数据类型的处理以及AJAX等行为的封装,都有相应的专门组件。 这种处理方式的目的...

2010-09-22 18:29:57 197

原创 Flex中State和ViewStack的区别

最近在一个Flex遗留系统上工作,Flex部分承担的主要是用户注册的业务。 用户注册需要多个步骤,比如填写完基本信息,通过验证之后,来到联系信息填写表单,等等。步骤之间的切换通过改变当前页面的state来实现:State控制不同控件的显示、掩藏等。 直觉不应该这么实现,今天看了《Flex 3权威指南》之后,终于找到了答案:ViewStack才是这种场景的正确实现方式。 ...

2010-09-20 00:45:48 119

原创 Flex初探

今天把《Flex 3权威指南》快速读了一下,总结一下。 Web技术集的复制可以说,Flex中的所有技术都是Web技术集的一次复制。如下表 Web技术Flex技术通信HTTPAMF -- 一种在Flash和服务端之间交换数据的二进制格式,在服务端往往需要特定的adapter来解析数据。(Flex也可以通过Http S...

2010-09-19 23:32:33 79

[Rails 3] 几个小问题

1.  UJS怎么得到IE支持?      因为data attribute刚好可以在IE使用,但这决不是说IE支持HTML5。      有人在stackoverflow里面做了解答,具体请移步:http://stackoverflow.com/questions/2412947/do-html5-custom-data-attributes-work-in-ie-6 ...

2010-08-15 00:19:39 73

ActiveRecord的ORM问题域 Q&A

切尔斯基的ORM问题域,他提供了Hibernate的解答,现在来看看在ActiveRcord中是如何解决的。大多数解决方案都大同小异,但有些完全不同。1. 加载根对象时如何避免加载大半个数据库    同样,“更多的时候,这是一个建模问题”。使用eager load还是lazy load是用户的选择,根据特定场景而定。     ActiveRecord和Hibernate一样,即...

2010-04-07 13:02:02 118

Ruby Fiber

Ruby 1.9 带来了Fiber: http://www.infoq.com/news/2007/08/ruby-1-9-fibers Ruby中的Fiber是一种semi-coroutine,第一次看到这个东西挺难理解。  Subroutine VS Coroutine 理解semi-coroutine之前先来了解下什么是coroutine,子程序(subr...

2010-04-06 22:13:15 149

线程安全的Rails

Thread Safe Rails? 关于线程安全的Rails,请大家慎重采用,具体看这篇文章:http://m.onkey.org/thread-safety-for-your-rails。 上一个项目我们怀着战战兢兢的心情开启了多线程,结果是出乎意料得好。开启多线程后没遇到什么困难,可能会遇到的问题有两点: 1. 去掉class variable (当然,基本上你不应该使用...

2010-04-06 21:33:35 156

To be an Eligible JavaScript Programmer

Along with the popularity of  RIA and the arrival of HTML5 in near future, JavaScript is more and more important.Are you an eligible JavaScript programmer? Please check the following list....

2010-04-04 16:43:40 89

原创 假敏捷

      在敏捷社区里面,更专业的词汇叫做“货物崇拜敏捷”。它用来形容一个团队做着敏捷的动作,却没有敏捷的精髓。这样的情况,可能发生在一个入门团队;也可能发生在一个变质的团队。       我们仍旧重复着那些规定动作:每天的站立会议,每个迭代的回顾会议,结对,等等。但突然我们发现,对于别人在做什么我们越来越不了解,对于大多数代码越来越陌生,刚刚完成的功能屡屡被不明所以的其他人破坏,团...

2010-02-25 21:18:17 144

原创 Akamai

 从技术角度来讲,Akamai跟一般的Host服务没有太多区别。不同的是,它在全球各处散布服务器,帮你在离你用户最近的地方建立cache。换种思路,就能赚大钱。 从wikipedia上得到的数字: Revenue▲$790.92 Million USD (2008)Net income▲$145.14 Million USD (2...

2010-02-04 14:20:41 251

Rails系统性能优化之路

这篇文章讲述的是我们在一个Rails on Jruby系统的性能优化之路上披荆斩棘的故事。 优化之前 在开始性能优化之前,有几点必须明确:1. 性能优化的对象:并不是所有页面都需要优化,而且首先应该选择那些访问率最高、性能瓶颈最大的页面来进行优化。2. 性能优化的目标:性能优化必须有一个具体的目标,即要达到的响应时间和吞吐量。有了目标,...

2010-01-16 21:15:12 167

Rails每周一题(二十二): Engines

   Rails世界有无数的各种各样的plugin,极大得助力了Rails应用程序的开发。但plugin的形式较为受限,Rails2.3推出engines plugin,旨在让人们更加方便地共享成果。    它做了什么? The engines plugin enhances Rails' own plugin framework, making it simple to shar...

2009-12-01 20:34:05 110

Rails每周一题(二十一): Template

    当我们在从零开始搭建Rails程序的时候,你是否想过你在做的某些事情其实是在重复自己?比如,配置同样的数据库,安装同样的gem,创建同样的rake task等等。不仅是你,世界上成千上万的人可能在做同样的事情,比如当他们搭建Facebook application或者Google app的时候,大部分人做的大部分初始工作都是相似的。  Rails最重要的的哲学之一是什么?DRY -...

2009-12-01 19:08:32 104

Rails每周一题(二十): Rack变革

     Rack,貌似已经把Rails改革了。Rack    Rack是什么?Rack提供了用ruby开发web应用的一个接口。比如Rails框架,就是由rack承担着跟web服务器之间的交互。简而言之,Rack已经成为ruby开发web应用程序的一个规范,它统一了web服务器和web框架之间的交互接口。它所支持的web服务器和web框架已经非常之多:http://rack....

2009-11-30 20:48:03 119

Rails架构图

这个图做得很漂亮,但Redirects这个箭头标得不合适,很容易让人误解。并没有action之间的redirect概念。Redirect本质上是向客户端返回一个带有location的302 response。...

2009-11-28 16:11:53 178

Rails每周一题(十九): HAML和Sass

   在新项目里使用了Haml -- Html Abstraction Markup Language.    较之于Html,个人感觉Haml有这样几个优点:   1. 对于人来讲,Haml更加规范,更加优美. Html对空格,换行等字符的不敏感对于浏览器来说是好事,但对于人来说并不一定是好事.因为这会放任写代码的人忽略代码的规范,忽略代码的结构,忽略代码的优美.而Ham...

2009-11-01 18:03:03 115

Rails之美

本文发表于《程序员》杂志2009年10月刊。可能由于编辑的工作繁忙,发表的不是此最终版本。杂志发表版本中有些不恰当表述,对此造成的困扰,深表歉意。 Rails之美,我总结的有这样几点:简洁 、透明、自由、开放、轻灵、丰富和优美。可能你已经感觉到,这些词汇大多展现的是感性的一面。没错,Rails开发的每一天都是那么“畅快”,畅快背后其实就是这些生动的感触。笔者希望从这些简单的感...

2009-10-07 17:08:05 123

IE6 Sucks

IE6 sucks: http://bugzilla.qooxdoo.org/show_bug.cgi?id=890 刚好有一个none display的block,使用了background image。结果不停地弹出mixed content warning。IE6 sucks, 去死吧~~

2009-09-25 17:13:04 57

无关敏捷,关乎责任

JJG在《The Elements of User Experience》特别强调,要让每一个人参与到网站设计中:高层管理人员,市场人员,销售人员,等等。不过这里,我想他忽略了一个很重要的群体,就是开发团队。 《The Elements of User Experience》把用户体验分为五个要素: Strategy, Scope, Structure, Skeleton,...

2009-09-09 22:59:25 95

发布之后

发布之后,系统才开始在真实的数据、环境上运行,才开始经受真实用户的考验。发布,不意味着项目的结束,却是挑战的到来。如何在发布之后,快速修复影响到 系统使用的bug;如何在发布之后,快速改进在真实环境中无法承受的性能问题;如何在发布之后,快速调整用户体验较差的界面设计或者功能实现。开发团队或 者维护团队,如果不能快速响应这些突然袭来的变化,就会给客户带来损失。 同...

2009-09-06 23:13:30 87

JRuby LDAP Patch

解决jruby-ldap跟Active Directory兼容问题的patch。 # config/initializers/jruby-ldap_patch.rbrequire 'ldap'module JrubyLdapPatches module AddToHashToEntry def to_hash self end en...

2009-08-24 16:16:52 63

Rails每周一题(十八): Association之魔法

     要写出优美的rails代码,必须理解和掌握association的机制。它能使代码编写更加简单和方便,更能使你的代码更加简洁和优美。除此之外,也必须了解association背后的实现。有时候,代码的优美不代表一切,甚至代表着背后的丑恶。      Association魔法     先来看看什么是association,以及association如何使你的代...

2009-08-16 02:12:23 174

Rails每周一题(十七): 从Singleton Class看Ruby的对象模型

我们可能了解Ruby的singleton method概念,它指的是一个对象独有的方法。 下面举个简单的例子,首先来定义一个类: class ExampleClass def foo puts 'foot' endend 然后创建两个实例,并且给第二个实例增加一个singleton method: example1 = Examp...

2009-08-08 21:11:41 154 2

Rails每周一题(十六): Evaluation in Ruby

Ruby的evaluation是一个很重要的功能,它可以eval一个字符串或者一个block。在一些适宜的情况下使用它会得到一些“意外”的效果。 常用的eval Ruby常用的evaluation有:class_eval(module_eval),instance_eval,eval。 这三种evaluation方法可以在不同的情况下使用: 1....

2009-08-02 23:16:46 106

Rails每周闲碎(十一): Others

1. returningreturning String.new do |item| item << user.first_name item << user.second_name if user.second_name item << user.family_name end...

2009-08-02 18:53:58 114

Rails每周一题(十五): Rake

简介  简单而言,Rake是一个由ruby编写的build工具。 DSL  Rake是由ruby实现的,它的rakefile完全是由ruby语法定义的,所以它是一种内部DSL--基于另一种语言(宿主语言)编写的DSL。 Dependency Based Programming  Rake跟ant和make一样,是一种Dependency Base...

2009-07-20 00:02:05 182

Rails每周闲碎(十): Tools

1. will_paginate    will_paginate是一个非常简单易用的rails插件,它提供了“分页”的查询功能和一些页面模板。    在查询功能上,这个插件的本质是在rails模型对象的查询方法上增加了一些条件。比如paginate方法可以看成是find方法的基础上增加了:page和:per_page两个参数,来告诉查询页数和每页的记录数量。   ...

2009-07-18 23:17:34 88

Rails每周一题(十四): Performance Testing之度量

我们这里谈到的性能测试包括性能度量和性能优化两部分,此篇主要关注性能的度量。将来会有单独一篇专题来讲述rails web应用程序的性能优化。 为什么要做性能测试 显而易见,对于一个web应用来讲,性能是重中之重。这直接关系到产品上线之后产品能否满足现实环境对性能的需求。而对于一个交付产品而言,客户对性能提出的实实在在的”数据要求“,是性能测试以及优化的目标。 什么时...

2009-07-13 01:17:31 78

Rails每周闲碎(九): JavaScript

1. Caching multiple javascript into one      javascript_include_tag :all, :cache => true    javascript_include_tag "prototype", "cart", "checkout", :cache => "shop" 2. jQuery  ...

2009-07-11 23:29:50 57

Rails每周闲碎(八): Test

1. Cucumber     Cucumber is a tool that can execute plain-text documents as automated functional tests. Here is an example:  Feature: Search courses In order to ensure better utilizatio...

2009-07-09 21:23:37 91

Rails每周一题(十三): cap

想象一下我们在部署的时候需要做的事情: 1. 不断地登录登出各服务器2. 执行大量的重复命令 有人说,我们可以脚本化在服务器上运行的一系列命令;最后,我们还希望能自动化到服务器的登录登出。 于是,capistrano就出现了。 Capistrano通过让rails应用的部署成为一个可重复的简单操作使之更加便捷和可靠。 有兴趣的,来这里get star...

2009-07-09 20:29:17 93

Rails每周一题(十二): ruby的异常机制

在现实世界中,所有程序都会出错。一个优秀的程序可以预期错误的发生,并且优雅地处理它们。 一种错误处理的方法是:使用返回码。举个例子,我们在使用open方法打开文件,文件不存在时就会出错。我们可以使用一个特殊的返回码来标识这个错误。 但这种处理方式的问题是:管理这些错误代码会显得非常复杂。比如,我们调用了open,read并最终调用close方法,每一个方法都会返回不同的错误代码,我...

2009-06-25 00:19:58 216

Rails每周一题(十一): Rails Caching

上次讲到一篇关于web浏览器的cache,而本篇要讲述的是web服务器端的cache。 Web服务器端的cache通过减少对web应用程序的访问和对数据库的访问来减少服务端的负载以及提升客户端的响应速度。 Rails本身提供了对web服务器端cache的很好支持,当然还有一些更加方便的plugin如cache_fu。 Cache需要关注的问题有几点: 1. ...

2009-06-22 23:23:27 128

Rails每周一题(十): i18n

所谓的国际化:就是根据特定的locale信息,提取相应的字符串和其它一些东西(比如时间和货币的格式)等等。 显然,有三个问题需要解决: 1. 如何确定locale。 2. 如何保存这些locale相关的字符串和其它信息。 3. 如何根据locale提取字符串和其它相应的信息。 让我们来看看rails如何处理国际化。(指rails2.2之后)  首...

2009-06-14 16:02:18 128

原创 Rails每周闲碎(七): Ruby

1. load_path, require, load, include   load_path相当于java的class path   require和load相当于java的import,但load和require是有区别的。    1. require不需要指定文件后缀,而load需要。   2. require会track所有已经require的文件,不会对同一个...

2009-06-05 18:55:55 92

Rails每周一题(九): Ajax调用和javascript执行

  本题讲述Rails处理Ajax返回中的javascript的几种方法: 1. html.erb中的javascript代码。     Javascript代码嵌于<script>的tag中。javascript代码会在客户端被执行(执行之后并不保留源码,对于下述几种方法也一样)。  2. js.erb中的javascript代码     Ja...

2009-06-01 23:44:10 107

Rails每周闲碎(六): Database

1. 数据库的存储过程     数据库的存储过程是为了提升sql语句的复用性和执行效率而出现的一种技术。     它的优点有:     1. 无需像sql语句一样,每次执行都要编译。这带来的是执行效率的提升。     2. 重复使用。写好之后,可以重复调用。     3. 提升应用程序的可移植性。无需改变程序代码,而只需改变存储过程,这为应用程序提高了可...

2009-05-10 18:34:04 66

Rails每周一题(八): Security Guide(下)

在上篇和中篇中介绍了对session的攻击和其它一些常见攻击。在下篇中着重介绍注入攻击。 注入是通过向网站内引入恶意代码或者一些恶意参数,使这些有害的代码得以在网站的安全环境中运行的攻击方法。最显著的例子是XSS和SQL注入。 SQL注入 用一个简单例子介绍SQL注入。 Project.find(:all, :conditions => "name =...

2009-05-03 17:31:51 108

An Incremental Approach to Compiler Construction

An Incremental Approach to Compiler Construction

2011-01-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除