ERP叛逃者

大四实习时候,跑去驻厂开发,当时主管跟我说"我们做的是企业信息化软件"。毕业之后找工作,进入一家国内还算有名的ERP公司,做ERPII产品(CRM/工作流/ 电子商务平台等ERP软件附属产品)的开发和二次开发。

在这一年半的时间里,我学习了一些行业知识,熟悉了公司自己的开发模式、框架和工具。浑浑噩噩的直到某一天,我发现我写代码没有键盘飞扬的感觉。我惶恐,我感觉我遇到 瓶颈停止成长了。我开始思索我这种状况的产生,我重新翻开曾经看的糊里糊涂的《人月神话》,研读阿朱的《走出软件作坊》,尝试找到问题和解决办法。

我回想我工作之后做的事情:我负责的是从顾问那里拿到伪SQL+伪代码,然后将它们在公司的框架上面实现起来,再手工完成功能性测试。我做一个极端的假设:如果早50 年,ERP公司给用户提供解决方案可以是在纸上提出,根本不需要电脑。所以ERP的本质是对业务的梳理,规范化的引导,让企业高效整合资源充分发挥产能的公司。这与我 想象的IT公司完全不一样,我所希望的IT公司能够追求极致,创造用户喜欢的,快速响应用户需求,扩展性强的产品。如果具备这些元素,会很快被同类公司超越。

可是公司立足于市场近30年,绝对不是这么不堪,她有自己的核心竞争力 ...

more ...

Ubuntu安装之后设定操作

前几天使用chmod时候,多打了一个/,导致根目录下面所有文件权限设定出了问题,额~重装系统吧,正好把装系统之后的配置过程记录下来。

这些都是我操作过的命令,确切可靠,适用于Ubuntu 10.10 Desktop Edtion。

= init Linux programs and setting =
:author: alswl
:email: alswlx#gmail.com
:toc:
:numbered:

== first of all ==

.update (打补丁、升级)


sudo apt-get update

Update System(fix bugs for sercurity): 299.0MB


.reset permission(谨慎使用,设定文件为644,设定文件夹为755)


find /home ...

more ...

Maven下Jetty启动

部门最近开发的产品使用的开发服务器是Jetty(挂载在GWT中),启动方法是通过Eclipse的External Tool执行。我对此表示很好奇,特意在自己电脑下面组建了一个Jetty开发环境,发现Maven和Jetty合作起来非常愉快,现在小记之。

一、准备Maven配置文件

我使用Maven推荐的标准webapp结构,结构如下,官方文档可以参考Maven - Introduction to the Standard Directory Layout

src/main/java

Application/Library sources

src/main/resources

Application/Library resources

src/main/filters

Resource filter files

src/main/assembly

Assembly descriptors

src/main/config

Configuration files

src/main ...

more ...

Ubuntu桌面自动换背景

GNOME桌面系统可以使用一系列的图片作为背景,每过一段时间能够自动更换。这个功能核Win7下面自动换背景效果一致。不过很可惜,系统自带的可自动更换图片集只 有几张,也找不到什么按钮可以直接设定。

下图就是系统自带的两个图片集(第二行第一组和第二组)。

image

我们可以通过撰写xml自己制作图片集,xml格式模板在/usr/share/gnome-background-properties/cosmos.xml ,实际的xml存放在类似于/usr/share/backgrounds/cosmos/background-1.xml的配置文档里面。

除了手工撰写xml,我们还可以通过crebs小软件来自动生成xml文件。

官方介绍如下:

A background slideshow creator for the GNOME desktop wallpaper.

The GNOME desktop is able to use a sequence of images for its background ...

more ...

历史记录-歌词复制器

之前写过一个Java的小工具叫做Mp3Lrc歌词复制器,用来复制歌词到Mp3播放器中的对应目录下面。之前的文章参见Mp3Lrc的可执行文件Java写的Mp3歌词复制器

这几天整理硬盘时候发现大四时候还用Delphi写了一个完整的GUI界面的Mp3歌词复制工具叫做PLrcMatch4D。

源码已经丢失,只剩下可执行文件,T_T。

如果非要定义以下这个工具的作用,就是从某个固定文件夹(歌词文件夹)复制对应Mp3播放器中歌曲的lrc文件到目标文件夹,从而让Mp3播放器可以正常显示歌词。

下载点击这里,PLrcMatch4D.zip

界面比较实在,大致是这样:

image

more ...

南京图书馆检索系统升级

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

好消息是,前几天南图将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 ...