南京图书馆检索系统升级

我经常去南京图书馆借书,南图的书虽然馆藏很多,在架的却往往不多。我习惯在去南图之前将在豆瓣上标记为"想读"的书搜索一下,检查书是否在架,以前南图的检索系统挺 难用。我甚至一度想写一个查询小脚本。

好消息是,前几天南图将ALEPH500业务系统升级到20版,官方的消息如下:

南京图书馆于2011年3月15-17日顺利完成了ALEPH500业务管理系统升级工作,顺利实现从16版到20版的切换,3月18日起ALRPH500 V2 0正式开始运行。20版是ALEPH500的最新版本,从16版到20版的升级,因为越过了中间的18版,所以难度更大,过程更加复杂,南京图书馆是第一家完成此项工 作的省级图书馆。

新版业务管理系统具有检索界面更简洁、检索提示更友好、信息显示更全面、检索结果更准确、沟通交流更直接等优点,从而更加方便读者使用。新版系统的的最大亮点是在 OPAC(联机公共查询目录)中引入了社区的理念,通过新增的标签、评论、评级功能,建立了图书馆和读者互动与交流的虚拟社区。

ALEPH500业务系统升级项目是南京图书馆2010年确定的重点工作,为此,南图不仅召开了项目专家论证会,还赴国家图书馆进行专题调研,并成立了专门的项目 工作小组,制定了升级工作方案和应急预案。在项目实施过程中,南图始终贯彻时间服从质量的原则,召开项目汇报会和项目工作会10余次,集中培训人员2次 ...

more ...


CodeSmith使用心得

CodeSmith是一款著名的代码生成器,可以帮助开发者完成一些重复性的劳动,并且能够保证更高的代码质量。CodeSmith使用Template(*.cst )模板进行基础代码片段的定义,支持语言包括C#, Java, VB, PHP, ASP.NET, SQL等等。

CodeSmith

一个简单的Sample

CodeSmith使用的模板使用方式类似于aspx/jsp页面,也就是基础代码+脚本的方式,大致代码如下(官方的sample2)。

<%@ CodeTemplate Language="C#" TargetLanguage="Text" Description="This template demonstrates using properties in your template." %>
<%@ Property Name="Person" Type="System.String" Description="This will show up at the bottom of the ...
more ...

没有银弹

最近为工作中和学习中遇到一些问题而发愁,夜不能寐,做梦都在寻求方法。

问题简单的来说,就是开发过程中遇到很多本觉得不该遇到的问题,比如数据关系在数据表的设计,比如说自动化测试无法接入,ORM接入设计,开发流程如何优化,Web标 准性问题等等。我罗列了大约30条会导致开发效率降低的因素,也一直在思考怎么解决他们,如果让我来设计他们,会用什么方式来提高效率,让系统更优美。

读完《人月神话》和《走出软件作坊》之后,似乎有了一些明悟。今天wiki到没有银弹这个话题,我意识到自己太过于追求一步到位了。

Brooks 认为,附加性的困难会随着工具的改善而逐渐淡化,反而是本质性的困难最难以解决 ...

more ...

使用DataConnectionDialog来获取连接字符串

在系统开发中,数据库连接字符串经常被保存到.config/.ini等配置文件中,以提高系统的灵活性。上大学时候,为了实现灵活配置数据库的效果,用拼字符串的方 法来动态生成连接字符串,这种方法充满了Bad Smell。

昨天用CodeSmith时候,看到它的数据连接配置界面,如此的眼熟,如下图。

image

Google了一下,原来这家伙的名字叫做DataConnectionDialog,所属命名空间为Microsoft.VisualStudio.Data。

使用的方法也很简单,引用Microsoft.Data.ConnectionUI.dll和Microsoft.Data.ConnectionUI.Dialog .dll,这两个文件位于Microsoft Visual Studio 9.0Common7IDE下面。

这两个dll并没有其他依赖关系,可以放心的放到自己的程序中使用。

使用代码如下

DataConnectionDialog dataConnectionDialog = new DataConnectionDialog();
DataSource.AddStandardDataSources(dataConnectionDialog);
if (DataConnectionDialog.Show(dataConnectionDialog) == DialogResult.OK ...
more ...

在.net中使用GAC

GAC

GAC是什么?是用来干嘛的?GAC的全称叫做全局程序集缓存,通俗的理解就是存放各种.net平台下面需要使用的dll的地方。GAC的具体目录在windows/ assembly。

喜欢使用破解软件的朋友可能会经常使用替换DLL这招,这个DLL虽然和.net下面的DLL有所不同,但大致起的作用还是一样的:使用共同的动态链接库来提高库复用 ,减少文件体积。在.net平台之前,程序们都把可能用到的公共DLL存放到system32文件夹下。由于版本的不一致及其他原因(将控制信息存放到注册表),造成 了很有名的DLL Hell

最近在读俞甲子的《程序员的自我修养》,中间花了很大的篇幅描述程序编译中 的链接这个过程。而比较巧合的是,我的《C#与.NET 3.5高级程序设计》也正好读到程序集这一块。微软使用了GAC来避免DLL重蹈覆辙。现在,我就来部署一个简单的通用类库到GAC中。

获取强名称(签名)

并不是随便一个DLL都可以放到GAC中,如果这样的话,和之前的DLL Hell也没什么区别了。GAC使用一个强名称(签名)的方式来区分不同的DLL。每个签名 都是独一无二的公钥私钥对。现在我们使用SDK的sn工具为我的DUtil库生成一个snk签名 ...

more ...

正则表达式抓捕替换

问题情境

需要将RDL报表里的GetComment( Parameters!F0001.Value , Parameters!F0002.Value ,"total", Parameters!Language.Value)函数修改为GetCommentForComment( Parameters!F0001.Value , Parameters!F0002.Value ,"total", Parameters!Language.Value, "ReportConnection0107")。

思路

使用正则表达式里面的分组进行抓获,再用1将中间固定的参数取出,组成新的字符串。

Vim实现

%s/GetComment(((sw+!w+.w+s,){2}s"w+"s,sw+!w+.w+s))/GetCommentForReport(1 , "ReportConnection0107")/gc&nbsp_place_holder ...

more ...

男人袜1元体验活动

从Louis Han那里看到一篇文章介绍了一个适合宅男的网站,想想我自己宅属性日益增加,就抄文推广一下。

-Update 20110113

收到男人袜客服的来信,说我文章"我们发现您的文章基本上是引用的网站内容,建议您用自己的文字来评价一下我们的网站或服务。",我郁闷了一下,回了一封信说我还没体 验到,怎么来评价。何况下面文章那些文字虽然是Louis Han整理发文,但源头其实来自男人袜网站的介绍内容。

怪就怪我偷懒了吧,男人袜建议我修改文章再发,算了~拉不下这个脸~

看来我是无福享受送货上门的男人袜服务了,还是乖乖去超市买吧。好吧,我承认,这个活动让我很郁闷。我最后回复客服"算了,那我就不要体验码了。按照你们的要求来看, 我的博文的确不合格,我也能够理解。不过,作为顾客,这真是一次糟糕的体验。"


男人袜是一个专业的男袜寄送服务,专门给那些不喜欢穿有洞的袜子,而又没时间去买新袜子的男人们准备。您下单后,将 会定期收到寄送的新袜子,新袜子会根据您所在的季节和天气情况自动调整。

image

男人袜标准套装是每 3 个月寄送一次。如果您希望更灵活的寄送方式,可以选择我们的自选套装,来自由的 ...

more ...

最简陋的GAE代理

年前换了一次服务器,之后发现Lifestream的Errors飙升到1000+错误,检查一下,发现是获 取不了豆瓣的rss链接。正好这台主机支持SSH,连入之后CURL了一下豆瓣服务器,发现Time out。

紧接着发现中国内的所有域名都无法使用CURL获取,联系小张之后,得知该主机曾经被入侵过,于是屏蔽了中国大陆的ip段(囧~入侵和中国ip有毛关系)

遂想用GAE做个代理服务器,反正获取RSS也只要Get一下,代码没几句。把这项任务放入Toodledo之后,就一直没去弄,今天发现GAE Laucher升级了,就部署到自己GAE上了。

地址格式如&nbsp_place_holder;http://jasontiproxy.appspot.com/proxy?url=www ...

more ...

LavaVPN推广链接

以前一直使用SSH进行翻墙,后来在人人看到一位朋友推荐LavaVPN,就过去试用一下,效果的确不错。

LavaVPN

LavaVPN支持各种系统,在Windows下面有专用的客户端接入程序,通过这个客户端可以实现选择性加速,而不需要全局加速。在Android和Linux上面 测试都可以。

官方的介绍如下:

LAVAVPN网络加速器是专为各类网游玩家、软件发烧友、网络办公、影音冲浪网虫等个人用户提供网络加速服务的新型产品,能有效减少网络延时,使网络互访再无拥 挤的感觉,让您在任何情况下都能体验上网加速的快乐!多地服务器节点可以选择,一个账号即可使用全部节点,随时任意切换,软件自带服务器测速工具,自动选择最快的节点 。

服务器目前有大陆、台湾、香港和美国,我个人比较喜欢香港的服务器,速度快,畅游无限。根据我的实际使用,速度都不错,几乎都可无延迟的看Youtube。国内的服务 器则是我在上班时候听音乐用的。

由于VPN的全局性,导致连接上VPN后无法连接上内网数据库等服务器,我的解决方案是在虚拟机上跑VPN,采用Bridge桥接接入网络。

目前LavaVPN在推广阶段,包月是16元,包3月是44元,半年80元,还是很超值的。

最后分享3个推广链接,使用邀请码注册可以获得额外1天的免费使用时间。首次充值(30天及以上)可获额外3天时间赠送 ...

more ...