You are here

eureka 的博客

eureka 的头像

恢复Windows 7 中丢失的图标

使用Win 7 经常会出现这样的情况,明明软件没有问题,但桌面图标却不显示了,大大的影响了桌面的美观,而且反复的重启和注销也解决不了问题。这的的确确是目前Win 7存在的一个Bug,但这个Bug我们可以手动解决掉!

首先进入 控制面板(或者组织->文件夹搜索选项)——文件夹选项——查看——(取消勾选)隐藏受保护的操作系统文件(推荐)——(单选)显示隐藏的文件、文件夹和驱动器——确定

启动WinRAR或者360压缩。

启动任务管理器——进程——找到explorer.exe——结束进程

在压缩软件(WinRAR或其它压缩软件)地址栏输入C:\Users\用户名\AppData\Local——回车——找到IconCache.db并删除(注意用户名为您计算机上实际用户名)

回到任务管理器——文件——新建任务——explorer.exe——确定

还原文件隐藏

至此,你丢失的图标文件就回来啦!

eureka 的头像

如何利用EdmGen 在Visual Studio 2010中实现PostgreSql的实体框架设计.

   ADO.net实体框架已经成为微软数据访问处理方案中的首选方案了,但是Visual Studio 2010中若使用实体框架,则只支持Sql Server的生成和更新。虽然Ado.net实体框架也支持Oracle,Mysql,PostgreSql等数据库,但是不能通过 VS2010生成,必须通过第三方提供的软件进行。举例PostgreSql来说,我们可以安装Devart Software提供的DotConnect for PostgreSQL,安装好后就可以使用PostgreSQL的实体框架生成了。但DotConnect for PostgreSQL是收费软件,安装后超过使用期后开发的软件就会报过期异常,而免费版的 DotConnect for PostgreSQL经我测试并不支持实体框架的生成。那么有没有更好的直接利用开源软件实现实体框架模型的 生成的,以下就是我利用开源的npgsql实现PostgreSQL实体框架的过程:

eureka 的头像

基于本体的软件设计方法

  这是我在浙江大学写软件工程硕士论文的核心内容,虽然答辨(我女儿以为是大便)老师叫我把这些内容要去掉,但我坚持把它写在里面,内容如下:

  基于本体的软件设计方法的价值观认为软件开发过程最核心内容为“寻找软件需求的本质”即“本体”,并用“最快的方法开发出软件产品”,即“软件最终源代码”。
  
  软件开发的核心工作只有两个,即“构建本体概念”“开发最终源代码”,其它任何文档、环境、过程均为这两个工作服务,起辅助作用。

基于本体的软件设计方法过程概述如下:

  1. 对于任何软件开发,首先构建软件“开发对象的本体概念”。
  2. 构建本体概念可以使用W3C推出的WOL(网络本体语言)规范进行,可以利用象Protégé这样的设计软件进行。

eureka 的头像

“复数”之罪和软件开发中“本体”概念的应用

  英文中名词会有一个“复数”的概念,英文为“Plural",其复数为“plurals”(真是复数的复数呀!),例如"boy"的复数形式为“boys",并且由于拼写等等原因很多单词的复数并不是简单的加一个“s”了事,这是每个学过英文的人都知道的事!给我们这些本来撑握方块字的人学习英文的人带来很多的麻烦,必须去记忆各种单词的复数形式,这也算是复数的罪孽了!而中文并没有所谓“复数”的概念,如果要表示复数这个本体意义,我们一般都加一个“们”字就行了,如“男孩”的复数意义为“男孩们”。然而,“男孩”这个单词本身就会指一类人,对于中文来说根本无需考虑这个单词的单复数意义。

  如果要改革语言,也许我们可以用中文的思想把英文的复数给“革命”了,但这是不可能的,因为语言就象我们使用的“键盘”一样,虽然它有很多不足之处,但已经成形,已经成势,若要改革那只有“上帝”去重新造一遍这个世界了。然而在这个世界里现在很多人都在使用一种叫“编程语言”的东西。就象我使用C#,她使用Java一样。在使用这些语言的时候我们都会跟各种名词打交道,跟名词打交道时我们就会用到“复数”概念!

eureka 的头像

“易则易知,简则易从”和对象健身操

我在乾坤简易之道与软件开发方法论讲了《易经》中已经讲到了软件开之道,最近又看了一本薄薄的书《软件开发沉思录--Thought Works 文集》,里面有Jeff Bay的一篇短短的,名叫“对象健身操”,论述了九步迈向优秀软件设计:

eureka 的头像

远程惯了,遇到刻录时想都没想到的问题

  电脑中或人事中,问题本来很简单,然而我们会因为犯下一个小错误,从而使问题越来越复杂化,甚至有可能造成更严重的错误……
  家里几台电脑,前几天将另一台电脑给装了Windows 7,然后用远程在使用。因为那台机器上装了刻录机,我知道Windows7本身就是支持刻录的,所以也没想装任何刻录软件,前几天下载了Office 2010的iso软件,准备刻一张DVD。Windows 7本身就支持iso文件直接刻到光盘上的,右键点一下,“刻录光盘映像”……光盘刻录机选项内既然没有刻录光驱选项!!
  难道是我操作有误,少了哪个步骤?于是到网上去搜,搜来搜去,好象没什么问题呀!
  那我想,肯定是驱动没装好。于是去找驱动,可是找来找去,好象驱动Windows 7本身就支持,跟本不需要再装的!
  那么还是找出我原来光驱带的驱动光盘吧,可时放进去左瞧又瞧,还是没有找到驱动。光盘上带的软件我实在是不想装。就去看说明,也明摆着说连XP都直接支持的。

eureka 的头像

微软程序插件式应用开发(管线开发,AddIns)及其复杂性

  管线开发是微软.Net FrameWork中标准的插件开发方法,按理说它的目的是简化插件式开发,但我觉得它并没有简化,而是显得更复杂化了。除了恼人的视图开发、适配器开发以及目录约定等规则以外,还要更加烦人的调试问题。昨天就遇到一个叫人抓狂的Bug,在首个插件开发完全成功的情况下又进行了几乎完全一样的一个插件开发过程,结果出现了"Unable to cast transparent proxy to type"错误,并且几乎没有任何让可识别的错误,差不多经过整整一天的各种修改也没有找到错误的根源。

  然而,越是找不到Bug根源,越是想要把它找出来,越是想把它找出来,又越是找不出来,越找不出来就越是抓狂,越是想把它找出来!差不多已经把所有程序代码回退到最简单的状态了!把人急得不行了,并且夜已经很深了,还是上床睡觉先,结果还越想越睡不着。本来这管线开发这么复杂我完全可以不用它,而现在为了一个Bug,反而把我拖进入泥潭中了。一大早起来继续攻关!真真没想到的既然是因为“协定”组件存在于“缩主”程序集目录下的原因!!这个原因导至的是根本无法识别的错误!并且由于管线开发附带了一大堆的组件,根本无法调试到底哪个组件出了问题以及出了什么问题!

eureka 的头像

Design By Contract 及思想永存

  如果您使用Visual Studio 2010并且使用.net framework 4.0,则在项目属性中可以看到Code Contracts这个选项,Code Contracts源自于Design By Contract,由于Desing By Contract已经被Eiffel注册,因此我想微软就换个名称叫Code Contracts,而其思想却来自于Deisgn By Contract,我今天终于找到了这本七年前由人民邮电出版社出版的《Desing By Contract 原则和实践》书。在多年前面向对象大师Ivar Jacoboson访华时参《程序员》杂志所说“我认为Bertrand Meyer的方向“Design by Conract”是正确的方向,我们都会沿着他的足迹前进,我相信,大型软件厂商(微软,IBM,当然还有Rational)都不会对Bertrand Meyer的成就坐视不理。多年以后,Rational已被IBM收购,而微软在其最新版的开发IDE平台Visaul Studio 2010中终于把Meyer的思想构建进去了!本来,计算机软件和编程,都是旧书不值得看。但这样的书不一样,值得回味。另外,还想起一本书,中文版《设计模式——可复用面向对象软件的基础》由机械工业出版社于2000年9月出版,已经有近十年。

eureka 的头像

突然我觉得很晕很晕,整洁代码和性能的矛盾。

  我喜欢整洁的代码,也喜欢敏捷的软件设计,并且遵循着象单一责职这样重要的原则。是这些方法让设计和编码象写诗歌和散文一样。然则,直到有一天,我需要性能时,发现这些设计方法轰然的倒塌。由于单一责职,从而产生很多在类,由于产生很多的类,就需要计算机去花时间片段去处理生成和销毁这些对象,就严重影响了性能!甚至属性对字段的包装,也会导致对性能的严重下降(网上介绍说赋值影响性能50多倍,读取影响性能3倍多)。
  当性能影响在接受范围内时,现遵循着良好的编程习惯是最佳实践,然而,当碰到了不能忍受的性能影响时。我突然很晕很晕,我都不知道该怎么办了?是不是需要全部打破封装,打破良好的编程习惯,关键时,我那些编好的自认为理想的代码现在是不是全部要推倒重新按性能要求去编,用更少的类,更少的封装……,我很晕很晕,不知谁有更好的解决方案!
  就象poker-eval库,它有非常糟糕的可读性,但它却是同类库中性能最好,最快的库!

eureka 的头像

Null引用,十亿美元损失,和软件设计的思考

  图灵奖得主Tony Hoare,在这个Infoq办的大会上,在主题“Historically bad ideas”,它讲了一个主题“Null References: The Billion Dollar Mistake",详细视频参见: http://www.infoq.com/presentations/Null-References-The-Billion-Dollar-Mi...

页面

Subscribe to RSS - eureka 的博客