重拾久矣的 Perl 语言,力求扎实掌握这门动态脚本语言

曾经也因项目中一时之用接触过好几种动态脚本语言,但无一不是忘得几无痕迹。PHP做过几个项目、TCL/TK 是制作 IPMI 驱动安装程序之用,它有较小的解释器,并具带着桌面工具集 TK,做界面程序也方便。

提起 Perl,先前对它是有过两次的亲密接触,一次为自我修练,第二次为实现一个 Java 版的 Webmin 时,大量的参考了 Webmin 的 Perl 代码,最强烈的印象是彻底为它的正则表达式写法所征服了,从此对它也是藕断丝连。 阅读全文 >>

Quartz Job Scheduling Framework[翻译]第九章. 使用 Quartz 的远程方式 (第三部分)

6. 创建 RMI 客户端

你需要创建一个客户端,用来调用远程 Quartz 调度器上的方法。客户端会同 RMI 注册服务器进行通信,进而定位到远程调度器对象,然后就能够调用其上的方法了。这些方法包括有暂停和停止调度器、部署和卸下 Job,和执行所有其他对与远程客户端可见的方法。

·配置 Quartz RMI 客户端

类似于表 9.1 所示服务端的配置,表 9.2 所列出的属性也是必须加到 Quartz RMI 客户端的。这两份属性列表必须分别应用到服务端和客户端的。 阅读全文 >>

Windows 下也能创建硬链接和符号(软)链接

首先简单理解一下硬链接和符号(软)链接的区别(此文中的符号链接和软链接指同一概念):

硬连接指向的是节点(inode),而软连接指向的是路径(path) 。

最初的文件名与所有的硬链接地位是对等的,比如为文件 a 建立了硬链接 b、c、d。那么a、b、c、d之中只要有一个文件未删除,这个文件就可通未删除的名称访问的。你也可以认为每个文件都可认为至少有一个硬链接,就是说 a 也是一个硬链接。

软链接特性上有些类似于快捷方式,比如为原文件 a 建立了软链接 b、c、d。删除b、c 或 d 访问到 a,但是只要删除了 a,软链接就不可用了。但是 windows 下的快捷方式只能在资源管理器中有用,它只是一个 lnk 文件,如果是一个目录的快捷方式,它是不能通过 cd 命令或路径进入。 阅读全文 >>

[钱钟书系列01][孙郁]从方鸿渐看钱钟书--看中国的文化与教育

主讲人简介:

  孙 郁:1957年出生于大连,毕业于沈阳师范学院,硕士研究生。曾任《北京日报》文艺周刊主编,现为鲁迅博物馆副馆长,党组书记。主要著作有《鲁迅与周作人》、《鲁迅与胡适》、《百年苦梦》等。

  内容简介:

  《围城》是钱钟书先生1947年写就的一部以爱情、婚姻为主题的长篇小说,取意为“婚姻就像一座围城,城外的人想进来,城里的人想出去”。《围城》自1980年再版以来,赢得了读者的广泛赞誉,文中那些精妙绝伦的比喻和幽默辛辣的讽刺耐人寻味。小说通过主人公方鸿渐的爱情婚姻遭遇和生存境遇深刻刻画了某些旧中国知识分子的基本根性,他们的懦弱、虚荣、自私、功利以及欺骗性被钱钟书一一嘲讽。 阅读全文 >>

Quartz Job Scheduling Framework[翻译]第九章. 使用 Quartz 的远程方式 (第二部分)

4. 创建 Quartz RMI 服务端

你务必按几个步骤来配置 Quartz 来使用 RMI。其中的一些步骤会在创建 Quartz RMI 服务端用到,还有些步骤会在 Quartz 客户端连接服务端。我们先来阐述服务端的配置步骤。

·配置 Quartz RMI 服务端

第一步就是修改要部署到 Quartz RMI 服务端的 quartz.properties 文件。当在 Quartz 中使用 RMI,你还必须添加几个新的属性。表 9.1 包括了完整 RMI 属性列表。 阅读全文 >>

Quartz Job Scheduling Framework[翻译]第九章. 使用 Quartz 的远程方式 (第一部分)

第九章. 使用 Quartz 的远程方式

以独立方式运行的 Quartz 应用程序,仅限于在 JVM 内部访问调度器。和其他任何 J2SE 程序一样,不使用其他某种机制的话,是决不允许从外部访问 JVM 中的对象的。

幸运的是,有几种技术(机制) 可让你做到这一点。Quartz 框架很好的支持其中一种机制--远程方法调用(RMI)。本章就是关注于如何部署 Quartz 为一个 RMI 服务,以便于你能够从  JVM 外部访问到调度器。这样做有几个好处,这也是我们本章要讨论内容。 阅读全文 >>

Quartz Job Scheduling Framework[翻译]第三章. Hello Quartz (第四部分)

4. 打包 Quartz 应用程序

让我们最后简单讨论打包一个用到了 Quarts 框架的应用程序的流程,也以此来结束本章的内容。

·Quartz 第三方依赖包

从 1.5 版的发行包开始,你会看到一个 <QUARTZ_HOME>\lib 目录,在这个目录,你会发现几个子目录:

    ·<QUARTZ_HOME>\lib\core    ·<QUARTZ_HOME>\lib\optional

    ·<QUARTZ_HOME>\lib\build 阅读全文 >>

Quartz Job Scheduling Framework[翻译]第三章. Hello Quartz (第三部分)

3. 声明式部署一个 Job

前面我们讨论过,尽可能的用声明式处理软件配置,其次才才虑编程式。再来看代码  3.6,如果我们要在 Job 启动之后改变它的执行时间和频度,必须去修改源代码重新编译。这种方式只适用于小的例子程序,但是对于一个大且复杂的系统,这就成了一个问题了。因此,假如能以声明式部署 Quart Job 时,并且也是需求允许的情况下,你应该每次都选择这种方式。

·配置 quartz.properties 文件

文件 quartz.properties 定义了 Quartz 应用运行时行为,还包含了许多能控制 Quartz 运转的属性。本章只会讲到它的基本配置;更多的高级设置将在以后讨论。在现阶段也不用太深入到每一项配置有效值的细节。 阅读全文 >>

重定向System.out和System.err到JTextPane,分别用黑色红色显示(改进)

在上一篇 重定向System.out和System.err到JTextPane,分别用黑色红色显示 中讲了如何把 System.out 和 System.err 重定向到 JTextPane 上,并分不同颜色显示,其中用到了 PipedInputStream、PipedOutputStream。那个例子还是参考的 《The Java Developers Almanac 1.4》,翻译出来叫做 《Java 开发者年鉴 1.4》,显得多么的权威啊,我当时还真把它看成官方最佳推荐实现了,太迷信了。

可是现在看来,前面那个实现不仅代码繁琐,而且是 Bug 多多。现在重新对上回的 ConsolePane 来个新的更简洁高效的实现。代码如下: 阅读全文 >>

Quartz Job Scheduling Framework[翻译]第三章. Hello Quartz (第二部分)

2. 调度 Quartz ScanDirectoryJob

到目前为止,我们已经创建了一个 Quartz job,但还没有决定怎么处置它--明显地,我们需以某种方式为这个 Job 设置一个运行时间表。时间表可以是一次性的事件,或者我们可能会安装它在除周日之外的每个午夜执行。你即刻将会看到,Quartz Schduler 是框架的心脏与灵魂。所有的 Job 都通过 Schduler 注册;必要时,Scheduler 也会创建 Job 类的实例,并执行实例的 execute() 方法。 阅读全文 >>