探索发现


http://ftp.chinalinuxpub.com/ Linux经典书籍下载(转) redhat/centos在线升级下载http://www.xnovo.com/mirror/

Web
在网上搜索了一下,发现FCKEditor是做的最好的一个富文本编辑器,它支持PHP,ASP,JSP,Perl等不同的Web开发语言。如果我没猜错的话,百度的这个编辑器似乎就是FCKEditor.


在使用这个java源包时发现分析owl格式的本体文件时,无法分析,然后我就开始查看GO4J的源码,发现用来识别term元素名(在GO4j中是所谓的targetElementName)是“Class“,而我下载的owl文件是以owl:Class作为term元素名的,现在只需修改源码中硬编码的termElementName为owl:Class(位于edu.hust.go.model.OwlGoParser),编译后就可以分析了。但是还是有不对的地方,就是程序仍然识别不了term的id,再次查看源码,发现由于owl是xml格式的文件,所以go4j在分析文件时使用xpath析取,但是源码查找term元素使用查询表达式是Class/@id(意思是查找Class元素的id属性),而我下载的owl文件用来标识id的属性是about而非id,这样再次修改源码,将Class/@id改为Class/@about(位于 edu.hust.go.term包中的OwlGo_term类)

Web
如果你跟我一样是Spring新手,你会发现在JSP文件中写一些从一个对象导航到另一个对象的表达式语言时(例如${post.user.name}),经常会出现The owning session cloesd的异常,这是因为DAO(它继承Spring的HibernateDaoSupport)对象在调用完诸如fingByPrimaryKey,findByName,的方法时Spring关闭了session,如果你使用lazy initialize,那么当你使用${post.user.name}时,就会出现错误.我百度了一下,通常大家的解决方法是使用Spring的OpenViewSessionFilter 或 OpenViewSessionInterceptor(他们使用方法,我就不说了),但我按照其他人方法炮制时,发现根本不顶用,我不知道是否是我自己没有配置好还是大家也无法正确使用,这样我将Spring In Action 和 Hibernate In Action又看了一下,然后自己编写了一个类似于OpenViewSessionFilter 的Filter类 - HibernateFilter,原代码如下:package com.bluesteng.weblog.web.filter;import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import org.apache.log4j.Logger; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.springframework.orm.hibernate3.SessionFactoryUtils; import org.springframework.orm.hibernate3.SessionHolder; import org.springframework.orm.hibernate3.support.OpenSessionInViewFilter; import org.springframework.transaction.support.TransactionSynchronizationManager; import org.springframework.web.struts.ActionSupport;/** * * @author bruce */ public class HibernateFilter implements Filter{     private Logger log = Logger.getLogger(HibernateFilter.class);     /** Creates a new instance of HibernateFilter */     public HibernateFilter() {     }         /**      * @param args the command line arguments      */     public static void main(String[] args) {         // TODO code application logic here     }         public void init(FilterConfig filterConfig) throws ServletException {     }         public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,             FilterChain filterChain) throws IOException, ServletException {         Session s = SessionFactoryUtils.getSession(sessionFactory, true);         TransactionSynchronizationManager.bindResource(sessionFactory, new SessionHolder(s));         SessionHolder holder = (SessionHolder) TransactionSynchronizationManager.getResource(sessionFactory);         Session session = holder.getSession();         try {             Transaction t = session.beginTransaction();             t.begin();                        filterChain.doFilter(servletRequest,servletResponse);             sessionFactory.getCurrentSession().getTransaction().commit();             TransactionSynchronizationManager.unbindResource(sessionFactory);         } catch (HibernateException ex) {             try {                 log.debug("Trying to rollback database transaction after exception");                 sessionFactory.getCurrentSession().getTransaction().rollback();             } catch (Throwable rbEx) {                 log.error("Could not rollback transaction after exception!", rbEx);             }         }     }         public void destroy() {     }     /**      * Holds value of property sessionFactory.      */     private static SessionFactory sessionFactory;         /**      * Getter for property sessionFactory.      * @return Value of property sessionFactory.      */     public SessionFactory getSessionFactory() {         return this.sessionFactory;     }         /**      * Setter for property sessionFactory.      * @param sessionFactory New value of property sessionFactory.      */     public void setSessionFactory(SessionFactory sessionFactory) {         this.sessionFactory = sessionFactory;     } }为什么sessionFactory是 静态的:因为我是用Spring在系统初始化时将sessionFactory 注入到 HibernateFilter中的,由于sessionFactory是单态的,所以这样做无大碍.下面是在web.xml中的配置: <filter>         <filter-name>hbfilter</filter-name>         <filter-class>com.bluesteng.weblog.web.filter.HibernateFilter</filter-class>     </filter>    <filter-mapping>         <filter-name>hbfilter</filter-name>         <url-pattern>*.do</url-pattern>     </filter-mapping>     <filter-mapping>         <filter-name>hbfilter</filter-name>         <url-pattern>*.html</url-pattern>     </filter-mapping>     <filter-mapping>         <filter-name>hbfilter</filter-name>         <url-pattern>*.jsp</url-pattern>     </filter-mapping> 以及在spring配置文件: <bean id="hibernateFilter" class="com.bluesteng.weblog.web.filter.HibernateFilter">         <property name="sessionFactory">             <ref bean="sessionFactory"/>         </property>     </bean>

Job
3月22日南京国展中心南京(金职)中高级人才招聘会时间:08年3月22日上午9:00--下午13:00地点:南京国展中心咨询电话:025-51705582本次招聘会特色:(1)本次招聘会企业为长三角地区知名企业,近百家大型企业。企业招聘的岗位工资都很高。凡是有一年以上工作经验的人员均可进场应聘(2)本次招聘会中特邀资深测评专家,现场给求职人员进行测评服务,现场解惑求职人员在求职、工作中遇到的困惑和难题。   本次招聘会将以适度的规模、优质的服务和良好的招聘效果为用人单位招聘中高级人才搭建了一个优质的交流平台。参会企业将有知名跨国公司、国有企业、高新技术企业、三资企业、民营企业、科研院所、大中专院校等各类用人单位。涉及机械、电子、化工、地产、半导体、光电、IT、物流、外贸、百货、传媒、服装、快速消费品等行业。招聘岗位为企事业中高级岗位。凡有1年以上工作经验(本科)、2年以上工作经验(专科)、硕士以上学历、海外留学人员、具有中高级技术职称的各类求职人员均可进场应聘。信息来自南京招聘频道

Web
我的Blog系统是在Ubuntu下编写的,所以之前系统还不能正确显示中文,我查了一些资料,找到了解决方案:在/etc/mysql/my.cnf文件中加上以下两行内容: [client] default-character-set=utf8 [mysqld] default-character-set=utf8 重启Mysql,然后在终端: mysql>show variables like 'character%'; +--------------------------+----------------------------+ | Variable_name            | Value                      | +--------------------------+----------------------------+ | character_set_client     | utf8                       | | character_set_connection | utf8                       | | character_set_database   | utf8                       | | character_set_filesystem | binary                     | | character_set_results    | utf8                       | | character_set_server     | utf8                       | | character_set_system     | utf8                       | | character_sets_dir       | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec) mysql>这只是数据库端的设置.在Web Application中,在jdbc中的url结尾增加: ?characterEncoding=UTF8 ,视图层中表单提交的字符串,需要更改编码方式,一般Linux是ISO-8859-1编码,需要编码为UTF-8,如果你是用Struts,在form类中: public void setPostContent(String postContent) {                try {                                  postContent = new String(postContent.getBytes("ISO-8859-1"),"UTF8");                  } catch (UnsupportedEncodingException ex) {                                ex.printStackTrace();                 }             this.postCo ntent = postContent; }如果你又整合了Spring也可以使用Spring的CharacterEncodingFilter,只需在web.xml中添加: <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>*.html</url-pattern> </filter-mapping> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>*.do</url-pattern> </filter-mapping>

Web

Web
现在我的Weblog完全使用了SSH这三个框架,虽然自己写的代码少了,没有成就感,可确实省了我不少功夫,不过现在有个问题,就是Spring破坏了Hibernate的上下文,导致我无法在View层使用many-to-one或many-to-many,或one-to-many关系的一端值对象导航到另一端对象,java会抛出the owning session is closed的异常,即使使用open session filter 似乎也不起作用。

Welcome toWordPress.com. This is your first post. Edit or delete it and start blogging!

寒假结束之前的考试期间,我以前在华风楼一起工作的同学向我问一些Ubuntu使用的问题:他自己安装了Ubuntu,现在开始学习使用它,他是电子学院的学生,几个月前我向他推荐了Ubuntu。寒假期间,就在不多久前,俺们家邻居因为电脑安装软件出了故障,而无法启动XP,向我借Xp盘,我可没有盗版盘(可我电脑里装有盗版XP系统),那么就安装Ubuntu吧,装完后,送了她张6.06的光盘。

寒假里在写一个Weblog系统,初时使用的是纯粹的JDBC代码访问数据库,而且完全不分数据抽象层和数据访问层,现在我已经学习了Hibernate和DAO(数据访问对象)模式,并已在我的系统中应用了它们,真正的简化了原来我用JDBC写的代码,明晰了业务逻辑与数据访问。

Job
2008年南京国展中心“长三角新春招聘会”(教育专区和企事业专区)时间:2008年2月24日地点:南京国展中心有关本次招聘会情况,我们将会在12月底告知大家,敬请广大求职人员密切关注 信息来自南京招聘频道

Web
相当漂亮的音乐分享,朋友交流Web2.0站点,注册只能通过朋友邀请。需要注册的请留下你的Email.

Kill the exams.

Web
Too late to know it.

最近跟老师做一个课题,是关于复杂网络在基因本体网络上的研究。由于需要对基因本体数据(包括基因ID,annotion)的抽取,所以在Google了一下,找到了GO4J,它支持obo,obo-xml,owl等GO文件格式,这样,就不用自己再花时间开发这样的工具包了。

网络上流传过许多Google的招聘题目,多数都是相当有难度的,Google在挖掘人才方面一直走在微软前面。现在有一篇招聘广告正被不断的google(动词),一家匿名技术公司用了一个谜题来考验开发者的智慧。招聘全文如下: 01/18/2008 1.你是位艺术家,软件就是自我表达。 2.你相信总存在更好的办法。 3.你热爱积极变化,即使这意味着需要不断更新知识。 4...... 这些都是关于团队工作,自我修养之类的废话,最关键的是下面几句: 11.请你寻找出日期“01/18/2008”的意义。 12.你能发现我们是谁,以及如何联系我们(不要通过电子邮件询问我们,我们不会回答的。)? 线索: eyAnOicgPT4gJycsICcgJyA9PiAnLScsICdzXG4nID0+ICdzLmNvbVxuJyB9 (3548, 4648)。 Good luck!

用VC++写OpenGL很不舒服,所以决定用Java来写OpenGL程序(你需要Eclipse 的OpenGL插件包,以及SWT),目前我还在探索类库(其实包括SWT中的只有四个类)。

Web
11月份起,开始着手写一个Blog系统,目前只有简单的登陆,日志撰写,发布功能。寒假后完成(MayBe)。


刚刚