三颗纽扣

世界上最宽广的是海洋,比海洋更宽广的是天空,比天空更宽广的是人的胸怀

导航

2012年11月13日 #

windows下安装redmine-2.1

摘要: 如果只是玩玩,采用 BitNami 安装包应该是最简单直接的方式,不过实际部署到生产环境,服务器上已经安装有 xampp,所以记录一下 手工安装的过程。其实基本步骤和官方文档完全是一样的,贡献给不喜欢英文的朋友们吧。== 安装 Ruby ==这里选择的 Ruby 1.9.3,试过 Ruby 1.8.7 但是确实性能比 1.9.3 要差很多。下载地址 http://cdn.rubyinstaller.org/archives/1.9.3-p327/ruby-1.9.3-p327-i386-mingw32.7z没试过 MSI 安装包,不过个人比较喜欢这种解压即用的方式。解压到 c:\ruby-1. 阅读全文

posted @ 2012-11-13 09:57 三颗纽扣 阅读(756) 评论(0) 推荐(0) 编辑

2012年10月28日 #

try-cache-finally 在线程被杀掉时还有作用吗?

摘要: 问题起因是因为在线程中申请了读写锁,如果一个线程被杀掉没有机会释放锁,那么杀掉线程就是一个很危险的操作,可能导致其他线程申请锁时被死锁。因此实验了一下。结论是即使线程被杀,try-cache-finally 依然有效,因为实际上抛出了线程终止异常ThreadAbortException,不多废话,看结果。 [TestFixture] private class Test { ReaderWriterLockSlim _lock = new ReaderWriterLockSlim(); class Locke... 阅读全文

posted @ 2012-10-28 13:09 三颗纽扣 阅读(781) 评论(0) 推荐(0) 编辑

2012年10月19日 #

使用InfoBright实现20-100亿条原始话单记录的检索

摘要: Oracle虽然很强大,但是遇到在20-100亿条原始话单记录中根据电话号码以及日期进行记录检索这样简单的查询需求时,依然由于数据量巨大而不得不退居二线了。当然在这个应用场景中,显然都不是Oracle等传统关系数据库的强项——数据量数十亿条以上,每天增量数TB,数据都是百万条为单位导入而不是一条条插入,不需要对数据进行任何的修改,数据完整性、事务性需求基本没有,而这些,恰恰是 InfoBright 这种列数据库的强项。以前应用采用的ORACLE方案,在2亿条记录的情况下,即使数据分表再分区的情况下,要检索一个电话号码也需要十秒的查询时间,在验证了把前台迁移到InfoBright的可行性以后,看 阅读全文

posted @ 2012-10-19 12:26 三颗纽扣 阅读(364) 评论(0) 推荐(0) 编辑

2012年7月29日 #

Hibernate乐观锁真的会抛出异常吗?

摘要: 关于Hibernate 悲观锁和乐观的论述,G一下大把,来源大多一致,示例代码好像差不多,据说乐观锁不使用数据库锁机制,并且都贴出一段乐观锁代码,启动两个事务修改同一条记录,据说将抛出异常,然而我突然就觉得很不可思议,如果不使用数据库锁机制,也没有内部锁机制,两个事务如果先后提交的话,数据库貌似不一定会提交失败吧。下面是抄来的代码,据说会抛出异常:public void update(){ //开启事务tx1 Session session1 = HibernateUtil.getSession(); Transaction tx1 = sessio... 阅读全文

posted @ 2012-07-29 21:26 三颗纽扣 阅读(1127) 评论(0) 推荐(0) 编辑

2012年3月20日 #

并非文学化编程,在VS环境下的折中方案

摘要: 前些天由于搜索一个小工具,结果搜到了自己若干年前在 GoogleCode 上创建一个项目 leo4net,当时这个项目创建不久后就不记得是什么原因搁下了,后来就再没继续过,渐渐的也就遗忘了。事隔多年,从克先生提出文学化编程的概念,到现在已经将近20年了,上 Google 搜搜,这个名词仍然是个新鲜玩意,被提及的地方寥寥无几。然而再回想当时要做这个项目的初衷,即解决设计、文档、代码这几者之间相互配合... 阅读全文

posted @ 2012-03-20 17:32 三颗纽扣 阅读(349) 评论(0) 推荐(0) 编辑

2012年3月12日 #

快速复制NuGet引用

摘要: 虽然NuGet解决了一个项目的包依赖问题,但在一个解决方案中,如果项目之间存在依赖(最常见的就是单元测试工程和被测工程之间的依赖关系啦),NuGet还是不能像Maven那么方便。这点还真是让我觉得很纳闷,既然我的工程 A 引用了B,为啥 包括VS、包括NuGet都不帮助我将B的引用加进来呢? 不管是MS的疏忽也好还是什么也好,事情总规还是要做的,再将原来的包一个一个加一遍那太老土了,好在MS这次终... 阅读全文

posted @ 2012-03-12 19:27 三颗纽扣 阅读(829) 评论(1) 推荐(0) 编辑

2012年3月6日 #

数据库单元测试

摘要: 单元测试本身就是一个不小的话题,就算积累了一些单元测试最佳实践,要进行数据库相关的单元测试也一直不是一件容易的事情。 单元测试的原则之一是上下文无关和可重复性,而数据库相关的测试则往往依赖数据库的状态,因此,如果不能在每个测试用例开始时 保证数据库处于一个已知的状态,那么单元测试的可重复性就很难保证,一个测试用例如果失败了,你如何断言是代码的问题,还是因为数据问题导致的呢? 反模式:在共享数据... 阅读全文

posted @ 2012-03-06 19:27 三颗纽扣 阅读(1535) 评论(0) 推荐(0) 编辑

2012年2月24日 #

语义版本规范

摘要: 参照语义版本规范 2.0.0-rc.1 标准,终于搞清楚那些个xxxx.xxxx.xxxx版本号到底是啥意思,也自己参照着定一个扩展版 …… 软件发布时,每个发布版本由 x.y.z.r 即主版本号、次版本号、修订号、构建号,四个部分组成。 构建号是构建版本时对应的 SVN 版本号,这是一个持续递增的编号,从来不会归零。 0.y.z.r 这样的版本号通常用于在项目开始阶段项目组内部使用或发布给... 阅读全文

posted @ 2012-02-24 09:09 三颗纽扣 阅读(287) 评论(0) 推荐(0) 编辑

基础框架的基础组件

摘要: 做了一个星期的基础框架了,结果发现这一个星期数据库访问层基本没怎么动静,基本都在忙活所谓基础框架的基础组件的东东上面了。姑且总结一下,再做基础组件,就该知道先要有些什么了。 因为在单元测试的时候发现不论MSTest还是XUnit,都只是基础测试框架,要高效的写单元测试的代码,还是需要引入很多自己的扩展以及第三方的扩展,因此首先搞了个单元测试的扩展包CommonsTesting,包括神马自动装配、... 阅读全文

posted @ 2012-02-24 08:47 三颗纽扣 阅读(239) 评论(0) 推荐(0) 编辑

2012年2月22日 #

在 IIS 6 上架设 NuGet Server

摘要: 原本以为是很容易的事情,因为在本机以及安装好了一个,下载上传都没什么问题,没想到服务器上是 IIS 6,这玩意问题一大堆,折腾了一个晚上。 NuGetServer 网站编译打包就不多说了,Google一下有很多教程,实际上就是从 NuGet Gally 下载 Nuget.Server 包编译一下就可以了。 但是问题也就在这里出现了,部署到 IIS 6 上以后,可以浏览到服务器上的包,但是 ……... 阅读全文

posted @ 2012-02-22 22:56 三颗纽扣 阅读(662) 评论(0) 推荐(0) 编辑