- 博客(30)
- 收藏
- 关注
编码改进版ruby项目发布
为了解决一些我自己使用上的一些编码问题,我fork了这个版本。同样也希望能够给遇到类似问题的朋友有所帮助。可能有一些实现是quick and dirty的,但我会尝试尽量让实现更通用和正确。如果有时间,我会尝试梳理一下ruby的内部编码体系,并尝试进行较彻底的改进。但是我现在还没有找到ruby内部实现的关于的编码方面的设计文档和原则,所以也不太清楚自己的修改是不是合理。我要实现的目标:* 在...
2013-08-16 14:44:52
183
为什么HATEOAS?
来自于一两个简单的问题,总结如下: * 如果超媒体作为应用程序状态引擎:Hypermedia as the Engine of Application State (HATEOAS) 这么酷,为什么没有被今天的更多REST API使用。 * 伴随着适应变化能力的长期好处,有没有什么短期的回报?我十分清楚你为什么会问这些问题。。。我在之前也有这样的疑问。在过去几年,我设计过很...
2009-12-15 14:31:49
1061
敏捷价值观之反馈
敏捷的方法论极限编程中提到四个价值观:沟通,简单,反馈,勇气;后来又追加了一个尊重.反馈是其中非常重要的一个价值观.之前的时候只是认为很重要,是做对事的前提,却说不出为什么.我最爱举的一个例子是开车,没有人开车是看好目标,闭着眼睛开过去的,都是过程中不断接受反馈并调整,最终到达目的地.在最近的敏捷实践和工作,讨论中,越发认识到反馈的重要性:1, 我们认识清楚复杂的本质需要...
2009-03-31 15:15:30
421
JAVA的字符编码问题,错误解码,再编码,再正确解码,出来是乱码
示例代码如下:/* * To change this template, choose Tools | Templates * and open the template in the editor. */package javacharsettest;import java.io.UnsupportedEncodingException;/** * *...
2009-02-05 08:57:15
278
ruby对unicode处理的几点经验
1,使用utf-8的文件编码,调用参数加 -Ku2,加上-Ku 后函数名,参数等可以包含中文,但是类名,常量名不能用中文开头,因为中文都被作为小写字母处理.3,":中文"这样的符号也是可以使用的.4,默认的yaml对中文处理有问题,需要安装ya2yaml[code="java"]gem install ya2yaml[/code]即可.使用时[code="ruby"]...
2009-01-18 18:02:31
447
原创 我读过的软件开发和敏捷相关图书推荐
源自[url]http://www.infoq.com/cn/news/2009/01/agile-books-top-20[/url]发现很多书我刚好看过,就学别人推荐一下。我只说一下我看过的,而且是个人观点[b]适合软件开发人员开的:[/b]1《敏捷软件开发:原则、模式与实践》2《重构:改善既有代码的设计》5《程序员修炼之道——从小工到专家》8《解析极限编程--拥抱...
2009-01-12 13:11:53
340
探讨企业级应用中,如何允许用户增加自定义字段
我所说的用户增加自定义字段,是指最终用户可以通过配置等手段,可以在界面上增加各种类型的想要的字段,这个字段可以用来存储和查询。例如:有一个客户信息表,原来只有名称和地址,客户想自己添加,生日,分类,地区等字段。添加完的字段要达到:1)能保存2)能查询3)能用来排序4)能用来分组统计我所见到的做法,一般都是通过表里预留字段来做得,例如cust01,cust02等,...
2008-12-27 14:03:23
900
如何设计复杂统计查询的导出excel功能?
前提:查询是复杂耗时的比如要几分钟,但是最后结果的数据量是可控的,一般不超过几百行,也就是没必要分页.然后需要一个导出excel的功能,当然也可以是导出其他的,道理是一样的.疑惑:如果每次导出时重新做查询的话,非常的耗时,感觉是一种浪费.用户已经等了几分钟得出查询结果,为什么还要再等这几分钟呢?不太友好.而且对于后台数据库也多一次负担.如果每次都缓存下来是不是会违反web的无状态原则?呵...
2008-07-14 10:55:39
374
Effective Emacs和Caps Lock和Ctrl互换
推荐:耀悦翻译的effective emacs中文版不过里面说的,把Caps Lock和Left Ctrl互换的方法,实在不习惯,总会想按错,Caps Lock虽然不常用,Left Ctrl却很常用.所以就把Caps Lock和Right Ctrl进行了互换.注册表文件内容如下:Windows Registry Editor Version 5.00[HKEY_LOCAL_MACH...
2008-07-03 20:17:11
212
emacs下rails模式中的错误代码的颜色修改
联系使用emacs做rails开发,并使用color-theme做了色彩调整,我用的是(color-theme-calm-forest),但是在代码出错后,背景色变得和前景色极为相近,非常难辩认.修改color-theme不起作用,后来发现所有色彩主题都是同样的颜色,后又猜是ruby-mode搞得,看了一遍也没找到原因.最后终于找到,可以使用"Set point on a comment and...
2008-07-02 22:01:11
148
敏捷大会回来谈敏捷
敏捷大会回来谈敏捷照例先说敏捷软件开发的好处吧,知道的直接跳过.敏捷软件开发是效仿精益思想产生的.它主要强调以下几点:尽快交付.如果尽快的交付产品就能更快的得到反馈,也就能尽快的修正错误.路宁把一次迭代比喻成库存.迭代时间越长代表库存就越多.你生产了一车螺丝后交给用户,用户告诉你型号错了和你生产几个就给用户鉴定,用户满意你再继续生产.大家自然知道哪个更好.大量库存的危害我相信大家还能...
2008-06-21 20:48:41
237
软件开发和公司管理
软件开发和公司管理 大道同源,今天参加敏捷大会的最大收获就是认识到公司管理和软件开发的本质一致性.敏捷软件开发思想本来就来自于丰田的精益思想或TPS.本质在于消除浪费,增加应变能力,获得最大的投入产出比,同样的拥有很大的复杂性和不可预测性.对付这个复杂性我们有一些有限的经验,比如一些公认的原则,比如人性(管理的)和设计原则(软件开发的,其实是软件的性).但是只有这些是不够的,况且没...
2008-06-21 20:43:29
365
再谈软件企业信息化建设中的开源和商业软件选择
前提,公司是软件公司,本身有软件的开发和维护能力. 再谈信息化建设中的开源和商业选择 我上次对于开源工作流的汇报中,把使用开源比作螺旋形上升,把使用商业比喻成阶梯形上升.我现在认为不太恰当,这里面隐藏了一些风险和问题.我打几个比方: 比方1:比如一个人从小立志要超过刘翔,但是他现在还小,要达到这个目标,他首先面对的问题就是长大,因为小(这里指体积小)孩无论如...
2008-06-21 20:34:29
375
rails中使用SQLServer的最简单有效解决方案
其实很简单,我把ADO.rb给改了,加了编码转换,这样rails端使用起来就不需要做太特殊修改了。## DBD::ADO## Copyright (c) 2001, 2002 Michael Neumann <neumann@s-direktnet.de># # All rights reserved.## Redistribution and use in sourc...
2008-06-16 13:26:22
296
Tempo在XP上的安装与汉化
Tempo是一个BPEL4People的实现,结合ODE一起使用。其实是Intalio开源的一个软件。Tempo现在项目好像还出于比较早期,svn的revision才5xx。不过由于是成熟产品开源的,所以还是不错的。我是寻找工作流产品的时候发现的,看上他主要是看中了intalio的表单设计功能。闲话少说,首先是编译tempo。tempo是使用buildr编译的。需要先保证你能上网,因为要...
2008-06-04 22:51:44
253
在FreeBSD下安装openfire+red5plugin
首先安装好FreeBSD,我装的是7.0然后安装diablo-jdk 1.5。然后cd /usr/ports/java/jdk16/make install clean下载要求下载的源码等文件。装好jdk6后,把diablo-jdk 1.5删掉安装openfire很简单,直接cd /usr/ports/net-im/openfiremake install clean就OK了。...
2008-05-26 11:07:23
147
使用ruby学习opengl
最近工作需要要学习opengl,无奈对C/C++不是特别熟,而现在的opengl的权威著作都是c/c++写的,而且每次都要编译运行,对于学习新东西的效率并不高。然后就想看看自己最喜欢的ruby下面有什么可用资源,结果找到了ruby-opengl.ruby-opengl是一个opengl,glu,glut的ruby绑定,它有非常灵活的语法,有三种书写方式,如下第一种ruby 代码 ...
2007-11-04 17:22:28
376
原创 我对REST的重新认识
REST是Representational State Transfer的缩写,一般被翻译为代表性状态传输或者具象状态传输。引用REST与SOAP之比较——REST篇的一个解释如下:“REST风格强调,通过有限的操作或者是“动词”以及一个组件之间的标准接口,也就是HTTP协议提供的借口,来提升客户与服务之间的交互。通过为每一个 资源分配其自己的URL,来实现灵活性,REST可以调用包含上百个URI
2007-06-18 11:28:00
1110
原创 给程序设计也建个模
我曾经写了一片文章专门讨论设计思想的传承 ,其中提到了一个就是建立理论模型,理论模型可以很好被别人理解和学习。然而理论模型从哪儿来呢? 我认为有两个方面: 已有的成熟的理论。这一般是用在大型的框架级别设计上,此时我们可以借鉴已被证实的成熟的理论模型,指导我们的开发,使我们少走或者不走弯路。提高开发的效率和质量,同样也降低了软件设计的传承难度,提高了可维护
2007-04-21 22:11:00
771
原创 庆祝tiobe排名ruby挺进前十!
http://www.tiobe.com/tiobe_index/index.htm很高兴,ruby又爬升了一位,进了前十!看看去年到今年占有率的上升,今年2.519% 上升了2.15%,去年才0.37,上升了6到7倍。伤心的是Delphi跌出前十了。 Java c c++是雷打不动的前三。C#国内好像很火,这上面却很一般,比php,perl都差的远,和python差不多。
2007-02-02 10:07:00
932
1
原创 论设计思想的传承
好的软件设计人员,往往能做出很灵巧,很优雅的设计,如果只有他一个人开发的话,我想这个设计会演化成一个很好的软件产品。但是大多数软件产品却不是一个 人来完成,特别是好的设计人员是稀缺资源,公司往往认为如果让这个优秀的设计人员继续去写代码是一种浪费,然后会把他拉去做另一个设计,当然这个设计肯定 也会是优雅灵活的。 牛牛就是这样一个优秀的设计人员。牛牛也一直很自信和快乐
2007-01-11 14:31:00
1122
原创 BDD:源于TDD而胜于TDD
什么是BDD? Behave Driven Development(行为驱动开发?)为什么要有BDD? TDD其实是测试行为的 TDD的测试用例太专业,业务和需求人员看不懂 TDD不知道哪些代码需要写测试,怎么写? 我们要写“规范(specifications)”,所有人都可以读懂,甚至业务人员可以帮你写
2006-12-08 14:54:00
5749
1
原创 关于搬砖头
顾名思义,搬砖头是不需要动脑子的,是体力活。那什么是搬砖头呢?软件蓝领,别人做好设计了,你严格按照别人设计好的实现。或者用IDE,搭几个控件,写几个事件。其实搬砖头倒也不是完全不费脑子,只是你没有自己的创造性在里面。所以,我认为你不去想怎么能做的更好,只是生搬硬套就是搬砖头。你发挥自己的才智把工作做的更好就不是搬砖头。所以我喜欢重构啊什么的,喜欢搞点儿新东西,就是不想搬砖头:)
2006-06-20 09:10:00
1290
原创 开源软件推荐--引言:为什么要使用开源软件
为什么使用开源软件?对于这个问题,每个人都有自己的答案。我不想说服你,我只想列出自己的理由。1, 免费的。a) 也许有人会说:“我用盗版也没有花一分钱!”。啊哈,这就是我不太同意的地方。暂且不说“盗版”是在法律上来说是违法的,在道德上来说他是一种“盗”。就单说作为一个软件开发人员来说,你自己在高高兴兴的使用别人的“盗版”软件,却对别人“盗版”你的软件咬牙切齿,痛恨不
2006-03-02 17:33:00
1939
原创 Delphi的接口陷阱
Delphi的接口陷阱现在我所知的有两大陷阱:陷阱一、接口的类型转换陷阱a) 不能把一个对象引用强制转换成这个引用的类型没有声明实现的接口,即使这个对象实际实现了这个接口(呵呵,优点拗口)。b) 当把一个对象变量赋给一个接口变量,在把这个接口变量赋还给对象变量时,这个对象变量的地址已经变了,也就是不再是原来的对象了,而是指向一个错误的地址。例如:I1
2004-09-14 16:18:00
2119
9
原创 接口漫谈
接口漫谈一、为什么使用接口。1,接口可以解除耦合,隔离变化。根据DIP(依赖倒转)原则,具体类应该依赖于抽象也就是接口。对象的持有者不应该直接持有对象,因为这样的话被持有对象的任何变化,都会影响持有者,对被持有对象的任何修改都有可能导致持有者的修改,至少也要导致持有者的重新编译和测试。随着系统的增长这种现象会越来越严重,最后导致系统难以修改或者说任何一个小修改都会是一项大工程。这就是高
2004-08-23 10:47:00
1957
5
原创 使用Dephi组件的生存期管理
?众所周知,创建型设计模式中的都会创建对象。可是对象在哪儿释放呢?当然,对于抽象工厂和工厂方法以及原型模式中,可以保存一个引用然后在需要的地方把它释放掉。可Singleton模式中却没有这样的引用,或是不能确定它是否创建了。此时,Dephi的组件的生存期管理机制就非常有用了,你只需要从TCompenent继承,并在构造函数中把自己的Owner设为另一个被管理的组件(一般来说是你的Form,Fram
2004-08-20 11:04:00
978
1
原创 接口和口罩
接口和口罩接口和口罩的相同之处何在?1,首先,都有一个“口”字。而且这个口都有承担着传递信息的作用。2,都能阻断一些流行疾病的传播。3,都会带来一些不便。2003年春天爆发的非典让大家最大限度的熟悉了口罩,使用了口罩,口罩也给我们带来了一定的安全保障。相应的在软件业,这个时时刻刻爆发着各种流行病毒(此病毒非电脑病毒)的产业中,大家对软件的口罩--接口也越来越重视啦。我经过前些时
2004-08-12 09:29:00
1949
5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人