非常简单的windows系统下的tail程序
无论是程序开发还是系统监控,日志的重要性不言而喻,windows默认是没有linux下的tail命令的,这个就很不方便,每次都要reload日志文件,虽然类似ultraedit、editplus也有自动reload的功能,但是总是不如命令行下来的方便。
分享一个我平时用的小程序,是从windows2003的toolkit中提取的,非常简单,也非常实用。命令格式和tail一样,放到例如 C:\windows\system32 这样的系统路径下就可以使用。比装个cygwin方便多了,当然如果本来就有cygwin的大大自然不需要考虑了。
下载:tail.rar
地震第二天
昨天当自己感受到那轻微的震感的时候,第一反应是觉得地震会让人头晕。今天看来这逻辑多混乱,震中在四川,全国都晃动,得出的第一结论再差也该是,这要有多少人面临生命威胁!自我批评一下。
新华网快讯:国务院抗震救灾指挥部消息:据不完全统计,截至13日19时,四川地震灾区死亡12012人,9404人被废墟掩埋,7841人失踪,收治26206人。
继续为受灾群众祈福吧
//——————————————————————–
另:有很多所谓“精英”在事情伊始又开始呼唤着他们的知情权了,又开始无耻的攻击嘲讽一系列的救援举措。
仿佛这个国家是多么的不堪,如果真的向你们说的那样,要么你为他做点什么,要么你离开这里,我承认民族主义有的时候是盲从的,但是比起你们这帮狗一样的读书人还是来的清醒一点的。
今天被地震晕了下头
下午正坐在办公室对着一个结构巨复杂,内容巨空洞的report,正在痛苦排版中,突然无理由的一阵晕眩,还伴有一阵异样的嗡嗡声。当时我的第一反应是,早上cnbeta上看到的那则用网页诱发癫痫病人发作的新闻,难道我也中招了。就在同时,身边人也都说头晕,感觉屏幕在晃,终于“地震”这个词被大家想了起来。
然后大家开始下楼,楼梯那边一片嘈杂,还有个台湾阿姨拿着高跟鞋说大家快点快点,搞得本来不怎么紧张的人都有点紧张了。下了楼,大家发挥现代技术的便利,立刻各种手持设备发动起来,几乎第一时间把各条新闻汇总起来。果然是时代不同了,什么都变快了。
来张照片:
//—————————————————————————-
晚上看了新闻,死亡人数直线上升,灾区情况非常恶劣
希望能多救出一些人吧,默哀。
六点J2EE应用中运用“配置”的最佳实践
本文所提到的所有内容的前提是使用一些开源框架搭建简单的J2EE应用时,对配置的运用方面的一些总结出来的最佳实践。
1. 尽最大的可能简化你的配置
这一点似乎是基本原则,没有人会愿意多写一行代码,配置也是代码,多一行配置,就意味着多一行的维护量。简化配置的主要途径大致有:
1) 尽可能减少配置文件的数量
2) 使用语义鲜明的Annotation来代替复杂的XML文件配置
3) 使用CoC来代替配置文件
4) 使用一些特殊的技巧来简化配置文件的内容
2. 分离关注点,让配置文件各尽其用
这一点似乎与第一点有所背离,不过事实上,分离关注点对于配置文件的可维护性是非常重要的一点。
举一个针对Spring+Hibernate的配置场景作为例子。通常我们需要一个Spring的配置文件(applicationContext.xml),来配置DataSource和SessionFactory,由于Spring本身提供了针对Hibernate的Global属性进行配置的选项,所以,其实我们可以通过如下的配置文件,对Spring+Hibernate完成配置:
<bean id=”sessionFactory” class=”org.springframework.orm.hibernate3.LocalSessionFactoryBean”>
<property name=”mappingResources”>
<list>
<value>com/demo2do/demo/entity/User.hbm.xml</value>
<value>com/demo2do/demo/entity/Order.hbm.xml</value>
<value>com/demo2do/demo/entity/Admin.hbm.xml</value>
</list>
</property><property name=”hibernateProperties”>
<props>
<prop key=”hibernate.dialect”>org.hibernate.dialect.MySQLDialect</prop>
<prop key=”hibernate.show_sql”>true</prop>
</props>
</property>
</bean>
在这里,我们发现,一个SessionFactory的配置实在太长了,一旦我们需要对其中的某些配置进行改动,就需要用肉眼去观察我们所需要修改的配置片段。在项目开发过程中,我们会发现,这个文件的这个配置片段修改频度会非常高,因为在一个团队中,每个人都可能需要增加一个持久化类,或者对hibernate进行一些全局化的配置修改。结果,这段配置可能会在版本管理上造成merge的混乱。
所以,我们可以在这个基础上对这段配置进行重构,重构的原则就在于把Hibernate的配置和Spring的配置进行关注点分离。我们选择hibernate.properties对Hibernate的一些Global的选项进行指定。同时使用指定持久化类hbm配置文件路径的方式,批量定义持久化类。重构后的配置文件变成了2个:
<bean id=”sessionFactory” class=”org.springframework.orm.hibernate3.LocalSessionFactoryBean”>
<property name=”mappingDirectoryLocations”>
<list>
<value>classpath*:persist/system</value>
<value>classpath*:persist/role</value>
<value>classpath*:persist/activity</value>
<value>classpath*:persist/extension</value>
<value>classpath*:persist/user</value>
</list>
</property>
</bean>
######################
### Query Language ###
#######################################
### Platforms ###
#################
## MySQLhibernate.dialect org.hibernate.dialect.MySQLInnoDBDialect
hibernate.connection.url jdbc:mysql://127.0.0.1:3306/test
hibernate.connection.username root
hibernate.connection.password root
## Oracle
#hibernate.dialect org.hibernate.dialect.OracleDialect
….
此时,我们可以发现,程序员可以独立工作,不需要为增加持久化类修改公共配置而烦恼,hibernate.properties也更加清晰的反映hibernate相关的配置。



