05
Jun

Hibernate POJO Generator/Eclipse Plugin Evaluation

Hibernate Tools for Eclipse and Ant
https://www.hibernate.org/255.html
POJO+hmb.xml+DAO+DDL+Eclipse Plugin

Hibernate POJO Generator
http://hibernatepojoge.sourceforge.net/
POJO+DAO+JUnit+Spring Config (No Eclipse Plugin)

Salto-db Generator
http://salto-db.sourceforge.net/salto-db-generator/index.html
POJO+DAO+Eclipse Plugin

23
Mar

J2EE online training course

Free Java EE (J2EE) Training & Tutorials Online Course by Sang Shin:
http://www.javapassion.com/j2ee/index.html

19
Feb

在.bat中sleep和kill

在Unix环境下,命令行或者shell中sleep和kill是常见的动作,在Windows的.bat文件中处理类似的任务就不那么直接了,备忘如下:

[sleep]
ping 127.0.0.1 -n 需要的秒数+1 -w 1000 > nul

[kill]
taskkill /f /im “进程名(如notepad.exe)”
taskkill /f /fi “WINDOWTITLE eq notepad*”

其中/f表示强制,/im表示image镜像名(可执行文件名),/fi表示filter,后面跟表达式,比如这里的”窗体标题等于notepad*”,支持wildcast通配符。

via Read Sean

另外一个不错的站点:
http://www.cn-dos.net/forum/forumdisplay.php?fid=23

25
Nov

[转] 痛苦的选择:不再只专注于技术

无意间在cnblog上看到一篇文章,作者也是搞技术出身的人。而立之年,对今后的道路发展提出了他的见解。

摘录下来,作为自己将来需要抉择时的辅助参考。

有兴趣的,可以点此前往:痛苦的选择:不再只专注于技术

评论同样精彩。

—————————–

以下为全文引用(防止将来某天源地址不能访问):

我很长一段时间都在煎熬中度过,已经快到而立之年,对自己的发展方向、前途却还很迷茫。这么多年来,我一直受兴趣指引,走了很长的路,或曲或直,但我从来没有后悔过。可决定未来的方向却让我痛苦不已。

1987年,我开始在CONMAX(记得不是很清楚了)机器上学习BASIC,从此和程序语言结下了不解之缘。当时学校仅有两台苹果II型电脑,我们连碰的机会都没有。CONMAX机器开机就是BASIC,没有操作系统,没有磁盘(使用录音机记录程序),在这样的机器上,我和我的同学们用SHAPE 命令编程序在屏幕上写自己的名字,写赛车游戏、碰碰球游戏。编程给我带来了无穷的乐趣。

93年考入大学,因为当时外贸非常热门,我放弃了感兴趣的自动化专业、机械专业,开始学习工业外贸。由于是工业外贸,所以在课程设置上包含了机械、电子、经济、英语、外贸等方向的多门课程。凭着自己的兴趣,在机械相关的课程上,我的平均成绩不在97分之下(画法几何还考了100分)。这也奠定了后来学习Auto CAD、3DS MAX的基础。电子类课程成绩也不错,基本上都是班中第一。我对外语和外贸并不是很感兴趣,但在周围同学的强大压力下,还是以73.5分的成绩通过了六级考试,并在全院第一个拿到了BEC2的证书,更没想到的是5年后我竟然成为了BEC的口语考官。

大学的生活非常紧张,除了在学生会任职之外,我还把学校中所有的计算机培训班课程学了一个遍,在这期间我接触了PASCAL、C语言、 FoxBASE、FoxPro,也为我参加数学建模竞赛奠定了计算机基础。1995年,学校组队参加全国大学生数学建模竞赛,我没有被选中。在强烈要求下,我作为旁听生参加了近一年半的数学建模的培训。虽经过艰苦的准备,但最终由于一个小失误导致我们组在全国大学生数学建模竞赛上只拿到了河北省二等奖。为了挽回失去的荣誉,我放弃了考研,毅然决定与队友参加美国大学生数学建模竞赛,并最终取得了一等奖的好成绩。可笑的是,在参赛获奖的两组六个人中,竟然有三个人是当时的“旁听生”。

虽然外贸专业课没有学好,但大学的学习为我的英语、数学、计算机打下了很好的基础,这也是我的兴趣带我到这一步的。毕业后留校,并转行管理信息系统。比起管理信息系统专业的学生来,我欠缺了太多的知识。我把“计算机技术”作为我的专攻方向,不断追赶。VFP、VB、DELPHI、.NET、SQL Server……甚至成为了MCT,在计算机技术上走了很远。

现在,我忽然发现“累”了。我发现我对编程、对计算机技术不象以前那么专注了。我更加感兴趣技术后面的东西:设计模式、分析模式、财务管理、营销策略、企业信息化……想起当时我的老师说管理信息系统是“数学”、“管理”、“计算机”的交叉地带,我现在花了7年的时间才明白“技术”不能代表一切。

很多象我一样对计算机技术“狂热”的人,其中一个原因恐怕是“编程”容易上手,花上个把月的时间就可以学到一些“高深”东西,并且可以编程炫耀一番了。另外,编程是创造的过程,看着自己的想法付诸实现,总会有成就之感,即使程序编写的很糟糕。编程也能处处体现征服困难的喜悦,每当一个问题被解决,心里面总有一种成就感,即使这个问题早就有人解决过了。这也是为什么有人花上大量时间,用尽各种技巧用JavaScript编写一个Web控件,而根本不去琢磨是否有一种智能客户端的技术,可以使用功能丰富的Windows控件。

编程中的这种体会引导着我的兴趣,让我走了很远,也失去了很多。“专注于计算机技术”让很多人放弃了外语、放弃了数学、放弃了管理。很多人说这种放弃是心甘情愿的,你可能花了两年的时间学习英语,然而收获很少,为什么不去学计算机呢,至少能够“速成”,而且喜悦伴随着整个的学习过程。可是,这错了。编程创造的价值是什么呢?当你开发一套系统的时候,这套系统的管理内涵决定了应用信息系统的价值,而不是编程技巧的高低。编程技巧的高低可以决定开发效率,但不能决定企业应用信息系统究竟能带来多大的收益。编程是一种机械性的工作,它里面的创新并不能象优化管理流程一样对企业带来的巨大的利润。Web Service技术也不是凭空出现的,而是应企业应用集成的需求而出现的。

现在的编程技术也降低了编程的门槛(很多人的虚荣心可以更容易的实现了),寒枫天伤有一次推荐自动代码生成的一系列网站,我看了一些,其中 “Constructor”软件让程序编写.net系统变的如此容易。应用MDA后恐怕更容易。也许有一天人们不用再写那么多的代码。程序开发员的价值是否也意味着会不断贬值呢?

“开发”阵营的人往往感慨为什么中国程序员没有超过30的,为什么中国没有人能够创造出一门语言来。不再专注于技术不意味着放弃技术。过分专注技术,就会陷入一种“技术成功”做成的陷阱中,最终变成一个“快乐的井底之蛙”。另外,只有知道技术的发展方向,才能更好的专注于技术,而技术的发展方向往往不取决于技术本身。设想有一天,一个跨国公司经营的几千万种商品一小时内完成清点,配货,及时针对竞争对手作出决策,所有这一切都是技术本身的功劳吗?我想不全是,其中一大部分取决于管理。用过ERP产品的程序员都说,其实每个界面都很简单,但ERP的价值不在于编程是否简单,其最重要的价值就是理顺的管理流程,推动了企业的运转。

我跟着兴趣走得太远了,而且这个“兴趣”实际上是“过分关注编程技术”带来的小恩小惠积累起来的,它让我走了条弯路(但我不后悔)。现在这个问题困扰了我太久了,我实在是很难割舍这些“小恩小惠”,可我还要割舍掉。我曾经放弃过自动化、机械选择了工业外贸,也曾经放弃了考研选择了参加美国大学生数学建模竞赛,还曾经放弃了我的大学专业工业外贸转行管理信息系统,现在我也要放弃“专注于技术”,将更多的精力专注在管理、财务、企业信息化上面。我不放弃技术,也会继续在博客园发表技术文章,只是不想再专注于技术这一方面了。

完。

07
Aug

Failed to execute request because the App-Domain could not be created. Error: 0×80131902

如果在Visual Studio中运行的好好的asp.net网页,部署到IIS后却发现无法运行,在系统日志中可以发现如下类似条目:

Exception: System.Configuration.ConfigurationErrorsException

Message: 引发类型为“System.Configuration.ConfigurationErrorsException”的异常。

StackTrace: 在 System.Web.Configuration.ErrorRuntimeConfig.ErrorConfigRecord.System.Configuration.Internal.IInternalConfigRecord.GetLkgSection(String configKey)
在 System.Web.Configuration.RuntimeConfigLKG.GetSectionObject(String sectionName)
在 System.Web.Configuration.RuntimeConfig.GetSection(String sectionName, Type type, ResultsIndex index)
在 System.Web.Configuration.RuntimeConfig.get_HostingEnvironment()
在 System.Web.Hosting.HostingEnvironment.StartMonitoringForIdleTimeout()
在 System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters)
在 System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters)
在 System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters)
在 System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironmentAndReportErrors(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters)

有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。

Failed to execute request because the App-Domain could not be created. Error: 0×80131902

很有可能是IIS的asp.net插件在安装.net(特别是高版本)中造成了损坏,用以下方法修复:

  1. With a command window, get to the latest version of .net under “C:\Windows\Microsoft.Net\Framework\”
  2. Now run the following command: “net stop w3svc” to stop web services.
  3. Then use “aspnet_regiis.exe -ua” to uninstall all instances of ASP.NET from IIS.
  4. Follow with “aspnet_regiis.exe -i” to install ASP.NET into IIS.
  5. Now restart web services with “net start w3svc”.

在我的机器上修复成功。

07
Jul

Visual Studio 2008的版本区别

工作需要,想测试一下微软最新的Visual Studio 2008。

网上找了半天,寻到了一个所谓的Team System,总以为是最高级的了。装了之后才发现是个Architecture Edition,在升级VS2005的那些项目文件时候提示有转换失败,细查之下发现是一个Test项目。后来才想到可能是版本搞错了,去微软的网站查了一下,果不其然,Visual Studio 2008的版本那叫一个复杂,除了Standard EditionProfessional Edition外,还有个Team System,居然可以细分成这么多:

  • Architecture Edition
  • Database Edition
  • Development Edition
  • Test Edition
  • Team Suite

前几个各自的侧重点不同,功能也是各有差异。如果安装两个以上,那就是两者功能的一个合集。
最后一个相当于前面几个的合集,什么功能都有了。

真搞不懂微软花那么大力气推出和维护这么多版本,是否真的有客户愿意买账。

如果想比较专业版和标准版的区别,可以看:这里
如果需要细致比较Team System中各个版本的区别,可以看:这里

另外,有神秘大奖赠送:猛击这里

16
Jun

系统时钟(定时器)可以作为Actor吗?

通常,在一些有定时自动执行功能(类似于计划任务)的系统中,画UML图的时候经常会出现这样的争议:

到底系统时钟(定时器)可以作为Actor来画吗?

下面的文件可能正好解答了你的疑惑:点击查看

如果你只想简单的知道答案,Here it is:不推荐

处理方法:

  1. 将Time作为Secondary Actor
  2. Use case中不加入Time,详情放在Architect文档中说明

详情可参阅上述附件。

12
May

Windows下的最长文件路径

从来没有遇到过也没有去想过的问题,今天机缘巧合碰上了。

事情发生在把Eclipse的各个插件合并起来,准备做一个All-in-one的package的时候。Total Commander 一直报拷贝出错,还以为是以前经常碰到的Linux下大小写文件在windows下重名冲突的问题,仔细看了之后并非如此。一层层目录定位下去,出错的文件并无特殊之处。想了想可能是路径太长的原因,把它移到上层目录果然问题消失。

算了一下,连带路径分隔符“\”及文件名本身,最大支持259个字符(系统为XP,SP2)。

特此记录一下。

18
Mar

[HowTo] Send smarty result page as attachment

Well I encounter this requirement while working on a small CMS. The customer wanna download the report page as attachment in MS-Excel format.

And here is the situation:

  • All the web pages are built with smarty.
  • The report page contains some logic that are already defined within the corresponding smarty template.
  • I have access to PEAR install

So here is the solution I figured out:

  1. Create a new excel file, insert some dummy data, typically with one header row and two data row, and also a row with special format for empty dataset.
  2. Save the file as “web pages”, i.e.: FILENAME.htm
  3. Open the htm file with your favorite text editor, you can see some html tags like “tr” and “td“, just like ordinary html files.
  4. Edit the file as you like, put your logic inside. The dummy data may help you out of some cycle, if/else condition.
  5. Build the page with smarty, following is some pseudo code:

    // some initial statement here, such as retrieving data ...

    ob_start();

    $smarty->assign(Smarty_Variable_In_Htm_File, $yourData);
    //...
    $smarty->display("FILENAME.htm");

    $htmlResult = ob_get_contents();
    ob_end_clean();

    $dl = new HTTP_Download();
    $dl->setContentType("application/vnd.ms-excel");
    $dl->setContentDisposition(HTTP_DOWNLOAD_ATTACHMENT, "ResultReportFile_".date('Ymd').".xls");
    $dl->setBufferSize(10 * 1024); // 100 K
    $dl->setData($htmlResult);
    $dl->setCache(false);
    $dl->send();

One thing more, you have to install the “HTTP_Download” package from pear.php.net, together with all of its required dependency.

That’s all.