MDA/MDD/TDD/DDD/DDDDDDD
posts - 536, comments - 111, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

1,around_filter进行action的自动事务处理
在controller里面可以使用around_filter来进行action的包装,当action中弹出异常的时候渲染一个特殊的出错 页面。将action代码包装在ActiveRecord::Base.transaction函数的block中执行,当引发异常后截获并重新抛出一个 ActiveRecord::Rollback异常让rails将数据回滚掉。ActiveRecord::Base.transaction对 ActiveRecord::Rollback异常处理后不会再将该异常往外面抛。

around_filter :around_action_filter
protected
def transaction
ret = true
ActiveRecord::Base.transaction do
begin
yield if block_given?
rescue Exception => ex
set_notice(ex.message)
ret = ex.message
raise ActiveRecord::Rollback, ex.message
end
end
return ret
end
def around_action_filter
return yield if request.get?
redirect_to(:controller => "error_display", :action => "error_notice") if 
transaction { yield if block_given? } != true
end

这里的transaction函数可以用在action里面作为手动事务处理的解决办法。
http://www.cgpad.com/SPAN/articles_show/940

posted @ 2010-02-14 01:04 leekiang 阅读(835) | 评论 (0)编辑 收藏

在http://zh-cn.netbeans.org/kb/docs/ruby/rapid-ruby-weblog.html讲了如何一步一步创建一个最简单的应用。步骤如下:
1 在netbeans里建一个rails项目,名为rubyweblog
2 使用Scaffold生成post模型的全套文件.在"项目"窗口的rubyweblog项目上右键 ,点击生成(generate),在“Rails 生成器”对话框中,从“生成”下拉列表中选择 "scaffold",在“模型名称”文本框中键入 Post,在“属性对”文本框中键入 title:string 并单击“确定”按钮。
  语法:script/generate scaffold ModelName [field:type field:type]
3 生成数据库和表
  在“项目”窗口中,右键单击 rubyweblog 项目节点,然后从弹出式菜单中选择“运行/调试 Rake 任务”,从“匹配任务”列表中选择 db:create 并单击“完成”,这时会在mysql中生成开发库.这一步也可以手工做,也就相当于rake db:create
  在“项目”窗口中,右键单击 rubyweblog 节点并选择“迁移数据库”>“至当前版本”,这样会生成表结构。
4 修改"routes.rb" , 找到# map.root :controller => "welcome" 这一行,取消注释该行并将控制器更改为 "posts"。删除public下的index.html,Rails 将在 routes.rb 中寻找需要显示的页面。然后就可以运行了。
5 向posts 表中添加一个body字段
  右键单击“数据库迁移”节点,并从弹出菜单中选择“生成”,这将打开“Rails 生成器”对话框,它已经在“生成”下拉列表中选择了迁移(migration),当然也可以在项目上右键>生成>migration。
  在“参数”文本框中输入 AddBodyToPost body:text,其他默认,单击“确定”。这个"AddBodyToPost"只是一个名字。
  IDE会创建一个受版本控制的迁移脚本。该脚本的名称以日期和时间开头,并以 add_body_to_post.rb 结束。在项目上右键选择“迁移数据库”>“至当前版本”,或者在源文件中右键点击“运行文件”(这时要小心,可能会造成数据丢失
  修改new.html.erb、edit.html.erb和show.html.erb,增加与新字段相关的网页代码。

生成测试库与生成开发库类似,在“项目”窗口中,右键单击 rubyweblog项目,然后选择“运行/调试 Rake 任务”,在“参数”文本框中键入 RAILS_ENV=test,找到并双击 db:create 条目,以运行任务,从而创建 rubyweblog_test 数据库.接着找到并双击 db:test:prepare 条目。我觉得 db:test:prepare 可以不执行,因为点击项目右键"测试"时会自动执行db:test:prepare和rake db:fixtures:load

http://cn.oiax.jp/rails/rails_step_by_step/rails_step1.html说了config/routes.rb末尾附近的以下两行可以删掉,试了果然如此
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'


http://zh-cn.netbeans.org/kb/docs/ruby/quickstart.html

posted @ 2010-02-13 18:34 leekiang 阅读(716) | 评论 (0)编辑 收藏

1,
ruby之间的引用全部是源代码的引用,为了规范类库的管理,gems出现了。
gems是ruby源代码管理工具,代码按照一定的目录结构被组织成一个lib。
详见http://www.javaeye.com/topic/320384
Gem是第三方Ruby库,netbeans提供了Ruby Gems管理器,可以用来添加和维护gem,Tools > Ruby Gems。
rails和rake等都被rubygems管理。


  查看本机的gems:  gem list --local 
 
看看rubyforge.org上的gems:  gem list --remote
  删除某个版本的gem,例如gem uninstall rails -v=2.3.4

有一本书叫<Ruby Gems开发实战>

2,
Rake(http://rake.rubyforge.org)是一门构建语言,和make(www.gnu.org/software/make/)
ant(http://ant.apache.org)很相像。Rake是用Ruby写的,它支持它自己的DSL用来处理和维护
Ruby应用程序。Rails用rake的扩展来完成多种不同的任务.
详见http://www.javaeye.com/topic/300375
rake教程:http://railsenvy.com/2007/6/11/ruby-on-rails-rake-tutorial
    翻译:http://hi.baidu.com/%D0%C7203/blog/item/ebda2dd09f1d698ea1ec9c7a.html


posted @ 2010-02-13 18:32 leekiang 阅读(411) | 评论 (0)编辑 收藏

敏捷中国  http://groups.google.com.hk/group/agilechina?hl=zh-CN
高性能服务器研发与运营 http://groups.google.com.hk/group/dev4server
TopLanguage
python-cn
ttnn BI       http://groups.google.com.hk/group/ttnn

posted @ 2010-02-13 12:17 leekiang 阅读(295) | 评论 (0)编辑 收藏

JXplorer:The World's Finest Ldap Browser


CN,OU,DC都是LDAP连接服务器的端字符串中的区别名称(DN,distinguished    name);
LDAP连接服务器的连接字串格式为:ldap://servername/DN   
   其中DN有三个属性,分别是CN,OU,DC   
   LDAP是一种通讯协议,如同HTTP是一种协议一样的!

在     LDAP     目录中。           
    DC     (Domain     Component)       
    CN     (Common     Name)       
    OU     (Organizational     Unit)       
   一个 LDAP     目录类似于文件系统目录.     下列目录:       
          DC=redmond,DC=wa,DC=microsoft,DC=com       
    如果我们类比文件系统的话,可被看作如下文件路径:    
          Com\Microsoft\Wa\Redmond   

例如:CN=test,OU=developer,DC=domainname,DC=com

在上面的代码中cn=test     可能代表一个用户名, ou=developer 代表一个 active     directory中的     组织单位。这句话的含义可能就是说明test这个对象处在domainname. com域的developer组织单元中。


转自
http://stevenit.bokee.com/viewdiary.30578007.html

操作ldap的包有
SUN的LDAP API
mozilla的sdk,见http://www.mozilla.org/directory/javasdk.html
novell的jldap,见http://www.openldap.org/jldap/
不过spring ldap的ldaptemplate更好用
http://wangyaodi.javaeye.com/blog/202514
http://junewolf.javaeye.com/blog/52091

posted @ 2010-02-11 15:49 leekiang 阅读(315) | 评论 (0)编辑 收藏

转自
http://xiaosa.blog.51cto.com/665033/237429
http://hi.baidu.com/garywan/blog/item/c09f56ed6c739d3cacafd5de.html

前言:MyEclipse5.5 大小139M;MyEclipse6.5 大小451M;MyEclipse7.0 大小649M;MyEclipse8.0  大小772.3MB(速度方面比7.1和7.5都快了许多单还是很费内存) 
下 载服务器又是国外的,下载速度累人也就罢了,只要你工作性能一流。不幸的是,MyEclipse 属于狂吃内存的主,特别是 MyEclipse7.0 运行起来,基本上不用干其他工作了,它是一会Quick update,一会 updating indexes ,你耐着性子等它 update 完,它老人家又开始自动 validation 了! 

      实在忍无可忍,收集了一些关于解决 MyEclipse 的耗内存的办法,经测试非常有效,整理出来,希望可以方便更多的朋友。 

1、老是弹出Quick update error 、关闭myeclipse的Quick Update自动更新功能 
     这个问题的解决办法是关闭自动更新 
     Windows > Preferences > MyEclipse Enterprise Workbench > Community Essentials, 
     把选项 "Search for new features on startup"的前勾去掉即可。 

2 、关闭updating indexes 
      Window > Preferences > Myeclipse Enterprise Workbench > Maven4Myeclipse > Maven> 
      禁用Download repository index updates on startup 。
如果是myeclipse7.5:
(1)关掉maven自动更新:
window-preferences-MyEclipse Enterprise Workbench-Maven4MyEclipse-Maven,
关闭所有Download和Update开头的选项,共四项(去掉前面的勾)
(2)关闭更新调度:window –> preferences –> General –> Startup and Shutdown –> Automatic Updates Scheduler(去掉前面的勾)
(3)window –> preferences –>Myeclipse Dashboard,关闭Show……on start

3 、关闭MyEclipse的自动validation 
      validation有一堆,什么xml、jsp、jsf、js等等,我们没有必要全部都去自动校验一下, 
      只是需要的时候才会手工校验一 下,速度立马提升好几个档次 
      windows > perferences > myeclipse > validation 
      将Build下全部勾取消 
      如果你需要验证某个文件的时候,我们可以单独去验证它。方法是: 
      在需要验证的文件上( 右键 -> MyEclipse -> Run   Validation 。 

4、 启动优化,关闭不需要使用的模块 
      一个系统20%的功能往往能够满足80%的需求,MyEclipse也不例外,我们在大多数时候只需要20%的系统功能, 
     所以可以将一些不使用的模块禁止 加载启动。 
     Window > Preferences > General > Startup andy Shutdown 在这里列出的是MyEclipse启动时加载的模块 
     我这里只让它加载tomcat5 勾选 MyEclipse EASIE Tomcat 5 。 
     怎样才能知道哪些启动项有用呢?我现在把我知道的启动项用处说一下,还有很多不懂的, 
     希望大家懂的回复在下面    啊: 
          WTP :一个跟myeclipse差不多的东西,主要差别是 WTP 是免费的,如果使用myeclipse,这个可以取消 
          Mylyn:组队任务管理工具,类似于 CVS ,以任务为单位管理项目进度,没用到的可以取消 
          Derby:一种保存成 jar 形式的数据库,我没用到,取消 
          一大排以 MyEclipse EASIE 打头的启动项:myeclipse 支持的服务器,只选自己用的,其他取消, 
         比如我只选了    tomcat 。 

5 、去掉MyEclipse的拼写检查(如果你觉的有用可以不去) 
      拼写检查会给我们带来不少的麻烦,我们的方法命名都会是单词的缩写,他也会提示有错, 
      所以最好去掉,没有多大的用处 
      Window > perferences > General > Editors > Text Editors > Spelling > 将Enable spell checking复选框的勾选去掉。 

6 、去掉MyEclipse繁杂的自带插件自动加载项 
      Window > perferences > General > Startup and Shutdown > 将Plug-ins activated on startup 
      中的复选框有选择性的勾   选去掉。 

7 、修改MyEclipse编辑JSP页面时的编辑工具 
      Window > perferences > General > Editors > File Associations > 
      在File types 中选择 *.jsp > 在Associated editors 中将"MyEclipse JSP Editor"设置为默认。 
  据说修改此项的默认编辑器其实可以提高启动速度

8 、修改MyEclipse安装目录的eclipse.ini文件,加大JVM的非堆内存 
      具体内容如下: 
     -clean 
     -showsplash 
     com.genuitec.myeclipse.product.ide 
     –launcher.XXMaxPermSize 
     256m 
     -vmargs 
     -Xms128m 
     -Xmx512m 
     -Duser.language=en 
     -XX:PermSize=128M 
     -XX:MaxPermSize=256M 
     把下面的那个 -XX:MaxPermSize 调大,比如 -XX:MaxPermSize=512M,再把 -XX:PermSize 调成跟 
     -XX:MaxPermSize一样大


 几乎每次 eclipse 卡到当都是因为这个 非堆内存 不足造成的,把最大跟最小调成一样是因为不让 myeclipse 频繁的换内存区域大小
注意:XX:MaxPermSize 和 Xmx 的大小之和不能超过你的电脑内存大小!

需要修改是-Xmx,-XX:MaxPermSize,-XX:ReservedCodeCacheSize,
将这三项的值调大,但并不是越大越好,曾经在相同的条件下做过测试(内存2GB),-Xmx,-XX:MaxPermSize的值为384m时比512m时要快(视具体的计算机而定),
-Xmx,-XX:MaxPermSize的值设为同样大小且两者之和不能超出你的计算机本身的内存大小



没用的后台自动更新,根据需要可以去除,Maven 这项目管理,自己用不到,把他后台Download 关了,MyEclipse 的Dashboard 不给他自动启动,关了他。
网上看的那些老优化教程有些优化已经过时了,像加大JVM的非堆内存, 要改eclipse .ini 文件,现在已经变成 myeclipse.ini 文件了,而且他已经是优化好的版本了:
-Xmx512m
-XX:MaxPermSize=256m
-XX:ReservedCodeCacheSize=64m

更改代码提示快捷键

代码提示快捷键,默认为ctrl+space,而我们输入法切换也是,所以会有冲突。

windows–>perferences–>general–>Keys

更改 content assist 为 “alt+/” 或者“Shift+space”

如果采用“alt+/”,由于alt+/已经被word completion占用,所以得同时修改word completion的


第六步:Build Path中的一处改动解决jsp页面编写java代码时“卡死”现象

现象:在编辑jsp文件时 在“<%%>”之间编写代码时,在弹出智能提示的时候MyEclips就会被“卡死”。

尝试: 换版本,换系统,断网络。

原因:MyEclipse在智能提示的时候“自动访问”网络上sun公司的最新API文档,这样“断开网络”自然可以,但一边编码,一边上网,可能也是 大家的“良好习惯”,鱼和熊掌想要得兼。

方法:在项目上 右键 弹出 的菜单中找到“Build Path”,进入下一级 选择“Configura Build Path”,逐级找到JRE System Libraries->charsets.jar->javadoc location,点击右侧“Remove”按钮,即更改成为“javadoc location:(None)”,点击OK,重启 MyEclips 。

16、
window-preferences-MyEclipse Enterprise Workbench-Maven4MyEclipse-Maven,将Maven JDK改为电脑上安装的JDK,即不使用myeclipse提高的JDK
登记add按钮,选择你的电脑上的JDK即可(注意:不是JRE,我的值为:Java6.014)

17、
window-preferences-MyEclipse Enterprise Workbench-Matisse4Myeclipse/Swing,将Design-time information(dt.jar) location 改用电脑安装的JDK的dt.jar
(即不使用myeclipse提供的dt.jar,我的值为:C:\Java6.014\lib\dt.jar)

经过以上的优化,myeclipse的启动时间可以减少2/3,Tomcat的启动速度可以减少1/2(视具体情况而定),

特别16,17两项的优化效果最明显,如果只进行前几项,优化的效果有限.

另外,使用myeclipse一段时间后,就会产生很多项目,即使这些项目是处于关闭状态,myecliose在启动时也会加载这些项目,这个过程会花费很多时间,所以,建议将不用的项目都delete掉,用的时候再import

posted @ 2010-02-11 13:14 leekiang 阅读(3624) | 评论 (2)编辑 收藏

环境为eclipse3.6.1,jdk1.6
从android2.0开始,Android SDK被分为两部分:SDK启动程序软件包和SDK组件。
1,下载SDK启动程序软件包
   从http://androidappdocs.appspot.com/sdk/index.html下载android-sdk_r08-windows.zip,解压到E:\android-sdk-windows,然后把"E:\android-sdk-windows\tools;"加到环境变量的path里。
2,下载SDK组件
   可以在线安装(点击SDK Manager.exe),也可以手动安装。
   下载android-2.1_r01-windows.zip,解压到E:\android-sdk-windows\platforms\android-2.1_r01-windows,这样就手动安装了android-2.1_r01。
3,安装GEF,eclipse->Help->install new software->add按钮,输入名字gef,输入地址http://download.eclipse.org/tools/gef/updates/releases,点击ok,然后选择与当前eclipse版本相适应的gef,我把二级目录全部选中并安装了。
   如果不安装GET,在接下来的第4步安装时会报“ requires 'org.eclipse.gef 0.0.0' but it could not be found”错误。
4,安装ADT。我使用的是离线安装的方式。
   下载ADT-8.0.1.zip,下载地址为http://androidappdocs.appspot.com。
   安装步骤:eclipse->Help->install new software->add->Archive选择ADT-8.0.1.zip->OK
5, 使用SDK Manager.exe在线安装“Android SDK Platform-tools, revision 1”。不装在使用ADT时会报“SDK Platform Tools components is missing”。
6,在eclipse->Window->Preferences->Android中配置SDK路径为E:\android-sdk-windows
7,安装AVD(Android Virtual Devices)
   打开"SDK和AVD管理器",点击Virtual devices,然后在右边点击new按钮,输入名字,选择一个Target,然后填写SD Card的大小为64Mib,其他均为默认。
8,把SDK的tools和platform-tools目录都要加到PATH
9,新建一个android项目,注意把Min SDK Version设为7。项目建好后,可右击项目名然后点击Run As->Android Application,第一次运行需等待几分钟。


注:
1,E:\android-sdk-windows下的SDK Manager.exe可打开"SDK和AVD管理器",eclipse->window下拉菜单里的链接也可以打开,但比前者要少Settings设置项。
2,If you are developing in Eclipse with ADT, note that SDK Tools r8 is designed for use with ADT 8.0.0 and later. After installing SDK Tools r8, we highly recommend updating your ADT Plugin to 8.0.0.
Also note that SDK Tools r8 requires a new SDK component called Platform-tools. The new Platform-tools component lets all SDK platforms (Android 2.1, Android 2.2, and so on) use the same (latest) version of build tools such as adb, aapt, aidl, and dx. To download the Platform-tools component, use the Android SDK Manager, as described in Adding SDK Components
Upgrading from SDK Tools r7:
If you are upgrading to SDK Tools r8 from an earlier version, note that the the default installed location for the adb tool has changed from <SDK>/tools/adb to <SDK>/platform-tools/adb. This means that you should add the new location to your PATH and modify any custom build scripts to reference the new location. Copying the adb executable from the new location to the old is not recommended, since subsequent updates to the SDK Tools will delete the file.
3,感觉自己的安装步骤有点乱,下次改一下:先装SDK启动程序软件包即SDK tools,通过SDK tools安装android-2.1_r01和Android SDK Platform-tools,设置环境变量,然后才安装ADT。
4,权威的安装步骤见http://androidappdocs.appspot.com/sdk/installing.html
5, 由于模拟器每次启动都比较慢,我们可以在打开模拟器之后不要再关闭,这样每次运行Android应用 ADT就会自动使用这个模拟器,这样就不用每次都启动了

安装相关:
http://www.cnitblog.com/gyn/archive/2008/03/17/41038.html
http://emck.avaw.com/?p=62
http://shizukyo.javaeye.com/blog/254124
http://www.hiapk.com/bbs/thread-123617-1-1.html
http://www.eoeandroid.com/thread-14174-1-1.html
http://zhengtao620.blog.163.com/blog/static/1621465472010105111530403/
http://apps.hi.baidu.com/share/detail/15798968


  在Google Android平台上运行Berkeley DB Java Edition

DroidDraw 是一个基于Java Swing的Android界面设计器,我们可以通过它来生成复杂的 Android Layout XML文件


posted @ 2010-02-10 01:55 leekiang 阅读(999) | 评论 (0)编辑 收藏

jquery-transmit:
jQuery Multi-file Uploader with Flash

posted @ 2010-02-02 22:57 leekiang 阅读(399) | 评论 (0)编辑 收藏

1,《Pragmatic Thinking and Learning: Refactor Your Wetware》

Wetware, 湿件(计算机专家用语,指软件、硬件以外的“件”,即人脑)
Wetware就是你脑子里面的东西,它位于你的两耳之间,所有的行为——与软件开发相关的所有思考都明确无误地在其中发生。这些思考不会来自IDE,我们也不会通过什么编辑器来生产软件——软件是在你我的头脑里、在团队成员的头脑里面开发的。这才是一切的源头。
为什么Wetware对敏捷实践者来说尤其重要?反馈与改进是敏捷的一项重要基础。有些改进是实践层面上的,比如要遵循的实践、规则以及指南等等。更高一 级的改进,就得思考如何改进人们的思维方式:让他们更好地解决问题、提升他们的创造力,以及人们思考的角度从“新手”变为“专家”时,在解决问题方式上的 转变。对于团队来说,从回顾中得到针对实践和流程的反馈很重要。而对于个人来说,在提升自己在某个领域中技能时重新调整思维方式的能力,同样举足轻重。
摘自http://www.infoq.com/cn/news/2008/07/retrospective-wetware

2,《The Passionate Programmer: Creating a Remarkable Career in Software Development》
3,《Manage Your Project Portfolio: Increase Your Capacity and Finish More Projects
4,《Ship it!: A Practical Guide to Successful Software Projects
5,《Release It!: Design and Deploy Production-Ready Software
6,《Manage It!: Your Guide to Modern Pragmatic Project Management
7,
Rails Test Prescriptions

《Making it Big in Software: Get the Job. Work the Org. Become Great》

posted @ 2010-02-01 23:33 leekiang 阅读(288) | 评论 (0)编辑 收藏

后台用tomcat,用IE6访问同一个url,每次生成相同的sessionID,这是正常的。
而如果后台服务器改用weblogic8,用IE6访问同一个url,竟然每次都会生成新的sessionID,
重启IE6就好了,太奇怪了。

本笔记重点是IFrame跨域的session问题:

Frameset引起的内部第三方站点cookie丢失的发现解决过程http://www.phpchina.com/html/34/12834-11369.html
跨域session丢失问题http://blog.javaflag.com/blog/?p=484
用P3P header解决iframe跨域访问cookiehttp://blog.csdn.net/wonder4/archive/2008/02/27/2125804.aspx
Liferay Portal额外研究(三):IFrame Portlet地session丢失疑难处理 http://www.qqgb.com/Program/Java/javadoc/javalib/Program_156031.html

posted @ 2010-01-28 11:57 leekiang 阅读(2227) | 评论 (0)编辑 收藏

仅列出标题
共54页: First 上一页 17 18 19 20 21 22 23 24 25 下一页 Last