phpLDAPadmin 安装配置讲解,通过 Web 端来管理您的 LDAP 服务器

做企业应用的也不时要与 LDAP 打交道的,例如组织架构、人员的管理,权限的分级控制等。以前管理 LDAP 都是用客户端工具 LDAP Browser 什么的,有时不甚方便。幸运的是,网上有一个现成的、功能完备的 LDAP Web 管理工具,那就是赫赫有名的 phpMyAdmin 的姊妹 phpLDAPadmin。

Web 方式的 phpLDAPadmin 利于发布,随处使用,基本上它有 LDAP Browser 客户端工具的所有功能,诸如条目管理、属性管理、导入导出、条件搜索等。还有比 LDAP Browser 所没有的 Schema 信息明细展示功能。

phpLDAPadmin 的界面截图请见:http://phpldapadmin.sourceforge.net/screenshots.php
您也可以进到 phpLDAPadmin 的 Demo 站点:http://thesmithfam.org/phpldapadmin-demo/htdocs/index.php 先睹为快。 阅读全文 >>

Unmi 学习 Groovy 之命名参数

Groovy 中提供了一个减少输入的特性叫做命名参数(Named Parameter)。GroovyBean 可以通过在构造器调用中传递冒号隔开的属性名称和值进行构建。如:

其实类似的用法早已有之,这有如 C++ 中的初始化成员列表,VB、Python、Transact-SQL 中的命名参数,JavaScript 中的 JSON  写法,Ruby 中提供的 syntax sugar用 hash 模拟所谓的 keyword argument。

我们先详细介绍 Groovy 的命名参数的用法与本质,然而再附上其他一些语言类似用法的实例,纵向贯通以加深印象。

要说从外部表现上好像是先调用了空构造方法,然后是相应的 setter 方法进行设值。因此,我们所直接想像的应该相当于下列 Java 代码 阅读全文 >>

Unmi 学习 Groovy 之闭包

一. 认识闭包

将代码块作为方法参数进行传递,这种机制就叫做闭包。闭包可以引用在创建闭包的范围中可见的变量。最近关于闭包的讨论也比较多,闭包能使语言更具灵动性,在动态脚本语言中较广泛的支持,如 Perl、Python、Ruby、JavaScript,还有我们的 Groovy。

有些语言能把函数作为参数传递,如 JavaScript 的回调函数,Python,甚至是 C++ 的函数指针。而 Java 在这方面又略逊一筹,需搬动一个匿名的内部类来实现类似的功能,内部类只能访问外部声明为 final 的变量。不过有呼声要在 Java SE 7 中增加闭包特性,让我们试目以待吧。

Groovy 这回大概是从 Ruby 那儿偷得闭包的语法。前面说这么多,其实你看到了就会发现,其实闭包很简单的,不信,请看: 阅读全文 >>

Unmi 学习 Groovy 之正则表达式

一提到 Perl,很多人对它啧啧称道的就是它那强大的正则表达式。一段富含正则表达式的 Perl 代码能让人觉得眼花缭乱,不过一旦习惯了就会对此爱不释手。而 Java 是在 1.4(在之前的版本需要依靠 jakarta-oro 库来提供对正则表式的支持--也是参考了 Perl) 中才加入了正则表达式,但它的相关操作还是略显古板。

当从 Java 分化出 Groovy 脚本语言一支,在处理正则表达式时也不想落后,从 Perl 那里学来了一些更为紧凑的语法,使用起来方便多了。虽相比 Perl 还有些差距,基本还是能知足了。下面来介绍 Groovy 中如何使用正则表达式,还是从 Java 的正式表达式说开,好有个对比。

比如在 Java 中要检查一段文本是否与某个模式相匹配,使用代码: 阅读全文 >>

Unmi 学习 Groovy 之操作符重载

Java 相比于 C++ 语法来说去除了指针及显式内存释放,受到不少赞誉,的确避免很多的出错的可能性,提高了生产率。可是把操作符重载也拿掉了,也没了条件编译。这两项特性在 C# 是有的。操作符在 C++ 中似乎不是很好理解,它可以带来很大的灵活性,和操作的直观性。Java 大约想的是过宽的灵活性怕带来过度的滥用,在大型项目会有所不利。

因此由 Java 所衍生的 Groovy 脚本像 Perl、Python、Ruby 一样又有了操作符重载,脚本基于其应用领域需要更多的灵活性和自由度。

Groovy 中对操作的操作比起 C++ 中来说更简单,Groovy 中是把操作符映射到对应命名方法的调用,你只要重载了该命名方法便是重载了相应的操作符,比如说加号+ 映射到 plus(obj) 方法,你只要重载了 plus(obj) 即改变了加号+ 的形为。对于其他符号也是一样的。 阅读全文 >>

汇集 developerWorks 的《精通 Groovy》成 chm 文件,方便阅读

由于与 Java 渊源,所以还是打算把 Groovy 作比较细致的了解。还是在 IBM developerWorks 上找到一份初级的 Groovy 教程,名之曰《精通 Groovy》,实则一份入门教程。为大家阅读方便--免去了在线,还要一个 IBM ID 登陆后一页一页的翻,所以我把那些页面收集一下,制作成一个 CHM 文件,共享给大家。

原始教程地址在:https://www6.software.ibm.com/developerworks/cn/education/java/j-groovy/index.html

CHM 文件 Master Groovy.chm 下载地址:Master Groovy.chm.rar

得承认 Ruby 在动态脚本语言领域很有其过人之处,只是本人一直不怎么情愿接受它。现在好了,终于觅得了几乎能与 Ruby 相媲美的 Groovy,应该可让其在某些时候大显身手的。

基于 dp.SyntaxHighlighter 写的代码着色工具(增加了对 Groovy 的支持)

本程序是基于 dp.SyntaxHighlighter 写的代码语法着色的工具。支持的语言有
java/xml/sql/jscript/groovy/css/cpp/c#/python/vb/perl/php/ruby/delphi。

可方便用于你的博客中粘贴代码,只要自定相应的样式 (highlight.css 的内容,.Text 支持自定义样式或在模板里加上语法样式),然后复制用这个工具生成的 HTML 代码就能让你的代码着高亮显示。

可以加入更多语种的支持,本程序就是在 dp.SyntaxHighlighter 的基础上扩展了对 Perl 语言的支持,网上可以找到相应语法的 JS 代码和 CSS。语言扩展支持通过在 shCore.js 和 highlight.css 加入相应代码即可。 阅读全文 >>

又是 Oracle JDBC 驱动版本太低引发的错误-rs.getByte() 的差异

前面写过一个因为 Oracle 驱动版太低引起的一在题:Oracle 驱动版本引起的显示字段奇怪编码问题。今天又遇着一个。

本地写好的一段连接数据库的程序,一放到正式服务器上又不能正常工作了,原来的代码中没有打印出异常栈,都看不出什么问题来,后来加上异常栈输出,得到如下信息:

Fail to convert to internal representation
 java.sql.SQLException: Fail to convert to internal representation
        at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:114)
        at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:156)
        at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:219)
        at oracle.jdbc.driver.OracleStatement.getLongValue(OracleStatement.java:3022) 阅读全文 >>

Quartz Job Scheduling Framework 中文版 V0.9.0.CHM 文件发布

由本人翻译并制作的《Quartz Job Scheduling Framework 中文版》CHM 文件更新为 V0.9.0 版,上一版本是 V0.8.2。

更新的特性有以下三点:

1. 在原来版本的基础上加上了全文检索功能,方便于快速查找某个参考配置和定位到所关心的内容

2. 去除了多余的索引标签,因为它和目录标签的内容就是雷同的

3. 加上了书签页,方便阅读时记录下所关注的主题 阅读全文 >>

XML 的中阶知识巩固之 XML Schema 其一

用过 XML 的人都知道可用 DTD(Document Type Definition) 来验证语法,不过微软主导了新一代验证语法的 XML Schema,并且风头正劲,大有一统江湖之势。看看我们身边的几个变化就明白了。

web.xml 从 web-app_2_3.dtd 到 web-app_2_4.xsd
spring 配置文件从 spring-beans.dtd 到 spring-beans-2.0.dtd 到 spring-beans-2.0.xsd,直至灵活的自定义 Schema
quartz_jobs.xml 配置文件从 job_scheduling_data_1_5.dtd 到 job_scheduling_data_1_5.xsd

XML Schema 简介

XML Schema 是一个比 DTD 具有更细致描述语法功能的验证技术,并且它本身也是一个 XML 文件,不像 DTD 用是是独有的语法。既然 XML Schema 和 DTD 都是用来验证 XML 的,并能大抢风头,固然有它值得称道的地方。所以先说说 DTD 的的不足和 XML Schema 的特点。 阅读全文 >>