自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 用clojure编写rest风格的xml服务

 一、准备目标:为报表服务开发一个REST风格的xml的数据源。当以http GET方式访问url时,根据url解析出要执行的oracle存储过程和要传递给它的参数,从过程的out参数中取出xml结果作为响应。url格式如:/xml/pkgname.procname/param1,param2,param3,这里xml为url前缀。pkgname.procname为要调用的or...

2012-07-02 21:37:01 181

原创 scala中泛型类型中的一元操作符

Scala中泛型定义中一元符号总可以进行如下的转换:~[A, B]可以写为A ~ B因此我们可以写出下面的代码scala> case class ~[+A, +B](_1: A, _2: B)defined class $tildescala> val a = new ~( new ~(1,2),3)a: ~[~[Int,...

2012-04-13 16:19:51 186

原创 scala中的this.type

自从开始看scala的Parser相关的源码以来,我越来越觉得scala中很多处理方法就像是用黑魔法在与编译器打交道。不变成JVM上的c++誓不罢休? 看Programming in Scala 源码 33.6abstract class Parser[+T] ... { p =>... def ~ [U](q: => Parser[U]) = new Parse...

2012-03-29 10:06:33 316

win7 64位系统下gtk+ pygtk glade 开发环境配置

目标:最小化安装gtk glade pygtk,使用cygwin中的开发工具链进行gtk的开发和pygtk的开发,能使用glade进行界面设计。     开发环境是使用cygwin提供的工具,如make等等。所安装的程序库、Python环境和编译器mingw64都是win32的原生程序,并不依赖于cygwin1.dll。  一、准备工作:    由于cygwin的gcc在6...

2011-12-31 15:16:10 221

Practical Common Lisp笔记

断断续续看了很久了,也没看完的书。现在据说要出中文版了,打算直接买本中文版的看看。emacs muse发布的版本:pcl.zip 环境搭建尝试了多种common lisp的实现,在windows下使用Lispbox时并不能使用slime。而gnu common lisp和ansi common lisp好像也不能在windows中与emacs 23和slime一...

2011-10-10 16:35:57 344

原创 play-scala试用

看过http://www.jtict.com/blog/rails-wicket-grails-play-lift-jsp/这个评测之后,简单试用了下play-scala。 发现与之前的play-java差异比较大。特点:1. 你可以完全使用scala,甚至在页面模板里2. 类rails的路由规则配置3. anorm仅对jdbc做了简单的封装4. 模板被转化为代...

2011-09-21 11:00:29 121

ibatis2.3.4 + h2 1.3.146数据不能保存的问题

一个简单的测试用例中ibatis2.3.4 + h2 1.3.146。只有一个map类,H2是用的Embedded模式运行的 package org.jamsacase class User(var userName:String,var id:Int){ def this()=this("abc",-1)}import com.ibatis.sqlmap.cl...

2011-01-13 16:51:13 105

无意中发现ibatis中ResultMap也处理了无setter的private字段

在用scala写的ibatis程序中使用case类作映射对象的时候,发现即使没有使用scala.reflect.BeanProperty注释来让编译器产生getter setter,在ibatis中查询的时数据库字段值也能映射到对象字段上去。 case class User(var id:Int,var userName:String){  def this()=this(-1,...

2011-01-13 12:57:59 137

原创 NetBeans 6.7发布了!

刚刚看了下NetBeans官网,貌似6.7正式版发布了! http://www.netbeans.org/downloads/index.html

2009-06-29 22:37:51 105

emacs中使用semantic实现c代码自动完成功能

环境:windows xpemacs 23 自已编译的cvs版cedet cvs版(当前的1.0pre4提示的速度太慢了,cvs中的提示出现速度飞快) 配置过程备忘:1.下载cvs版cedetcvs -z3 -d:pserver:[email protected]:/cvsroot/cedet co -P cedet 2.编译cedet在wi...

2008-11-25 16:29:06 340

Better Builds With Maven 学习笔记(使用Maven创建应用 )

使用Maven创建应用介绍将要创建的应用名叫Proficio,拉丁语的"help"。设置应用程序的目录结构在设置Proficio的目录结构时,注意Maven强调的实践标准化和构建模块化构建是很重要的。这种实践自然将产生分离的可重用的开发工程。决定如何最优化的分解应用的原则叫做“分离关注点(Separation of Concerns)”原则,即SoC原则。SoC有助于识别、封装、操...

2008-10-03 14:20:30 168

Better Builds With Maven 学习笔记(开始)

开始之前阅读笔记时请参阅原书英文版开始准备使用MavenMaven默认读取<user_home>/.m2/settings.xml,通过proxy段的配置设置代理信息。通过mirror段设置镜像服务器。这两个配置在M2_HOME/conf/settings.xml中都有范例。将M2_HOME/bin添加到环境变量。运行mvn -version查看使用的Maven...

2008-09-30 15:19:58 134

JBPM 与 Spring 结合

今天尝试了将jbpm和spring进行结合,主要参考http://betafox.iteye.com/blog/177649来进行。版本:jbpm          3.1.4struts2       2.0.11spring        2.5.1hibernate   3.2.5.ga配置文件如下:<?xml version="1.0" encoding="UTF-8"...

2008-05-14 16:56:13 111

ExtJS中FormPanel实现数据加载和提交

在使用使用FormPanel时我们通常需要使用它的form对象来加载数据或提交数据。FormPanel中的form对象为Ext.form.BasicForm类型的对象,它有load和submit方法分别用于加载数据和提交数据。而这两个方法都是通过调用Ext.form.BasicForm中的doAction方法来操作的。doAction方法带有两个参数,其中第二个参数为从load或submit...

2008-03-19 21:33:58 185

Emacs Lisp中的hash table

(defun zj-hash-test ()  "hash table 测试"  (interactive)  (let (myhash val)    ;; 创建hash table并告诉elips用equal来测试key是否存在    (setq myhash (make-hash-table :test 'equal))    ;; 添加数据    (puthash "key1" "19" ...

2008-03-10 16:30:24 138

Emacs Lisp与Shell的交互

一直以来对于w3m、tramp、dired等与shell关系密切的mode不是很了解,没有仔细读过代码。但总觉得应该是调用shell命令,再将shell命令的输出重定向到emacs中进行处理。今天在网上看到了相关的方法:调用shell命令(defun zj-open-directory-with-explorer () "在windows中用explorer浏览当前目录" (intera...

2008-03-10 16:27:41 306

重新整理后的Oracle OAF学习笔记——离线版本

离线版本中包含了前段学习OAF开发的完整笔记。其中包含了OAF开发手册中的一些截图以便于理解。由于博客上传图片的限制,前面的连载中没有上传这些图片。转载请注明出处,谢谢!...

2008-03-04 22:07:46 144

重新整理后的Oracle OAF学习笔记——7.实体对象

关于实体对象实体对象包含了业务逻辑和对表的DML操作。对象模型和关键类oracle.apps.fnd.framework.server.OAEntityCache:这个缓冲用于存储特殊实体的查询过的行。映射到同样的实体的多个视图对象共享相同的实体缓存。<YourEntityName>EOImpl继承oracle.apps.fnd.framework.server.OAE...

2008-03-04 22:03:06 378

重新整理后的Oracle OAF学习笔记——6.错误处理

异常类型OA Framework处理三种基本类型的异常:通用、校验和严重。这些类型在这节中简单的描述;特殊异常的使用在下面介绍。通用异常BC4J框架中的错误是通过抛出类型为oracle.jbo.JBOException的隐式(runtime)异常。OAFramework中有自己的对应的版本为oracle.apps.fnd.framework.OAException。这个特殊化的...

2008-03-04 22:01:43 209

重新整理后的Oracle OAF学习笔记——5.应用构建基础之实现控制器

设计一个OA Controller如OA Framework Page解析中所描述的,OA Controller定义了web beans的行为。具体来说,编写控制器代码的目的是:在运行时处理/初始化UI(包含那些通过编程方式添加的layout)拦截或响应按钮按下之类的用户事件控制器不应该包含任何业务逻辑;这应该属于模型类。必备知识通常来说,在提出如何设计控制器之前,应该思考...

2008-02-01 13:08:22 305

重新整理后的Oracle OAF学习笔记——4.应用构建基础之实现视图

页面创建页面的基本步骤是创建pages,region,items。Page LayoutRegion的关键属性创建一个pageLayout区域时,应该特别注意下面的属性:AutoFooter将这个设置为true以保证在页面上有应用的保密和版权说明链接。Help Target如果你需要为当前页显示帮助按钮,必须在这里指定帮助文件(通常是文件名)。AM Definition用于设置...

2008-02-01 13:04:13 260

重新整理后的Oracle OAF学习笔记——3.应用构建基础之实现模型

设计模型对象客户/服务代码分离在OA Framework的MVC框架中,OA Framework划出了客户端和服务端类的清析界限,典型的JSP应用有3个物理层浏览器web应用服务(中间层包含UI web bean结构和应用业务逻辑)数据库服务器在中间层OA Framework对“客户端”和“服务端”类划出了界限:客户端类(视图类和控制器代码)驱动HTML用户界面。服务端类(...

2008-02-01 13:00:59 147

重新整理后的Oracle OAF学习笔记——2.OA Framework 精要之状态管理

概述这个文档用于描述OA Framework状态管理架构,包括缓存应用系统用户数据和从页面间值传递的机制。结构预览主要状态管理组:根应用模块(数据库会话和事务状态)如OA Framework 页面解析一文中描述的,每个OA Framework页面与一个根应用模块关联,根应用模块提供事务环境和JDBC数据库连接。注意: OA Framework中,一个数据库会话...

2008-02-01 12:58:47 253

重新整理后的Oracle OAF学习笔记——1.OA Framework 精要之Page解析

新年将至,终于有时间整理自己的笔记。以前发布过自己的OAF学习笔记。当时排版和贴图有问题,这次重新整理后再次发布。由于上传附件数量的限制,仍然没有显示图片。需要插图可以下载,离线版。  Page基础在浏览器看来,OA Framework页面与其它web页面一样,被渲染为HTML。在中间层中,页面是由内存中层级分布的Javabeans组成——非常像传统的Java客户端UI。每个UI构件,比...

2008-02-01 12:56:25 286

Programming in Emacs Lisp笔记(十八) 终结

笔记连载完毕。感谢大家的支持!离线版本可以从这里下载。

2007-07-20 11:34:23 90

Programming in Emacs Lisp笔记(十七) 调试

调试GNU Emacs中有两个高度器,debug和edebug。第一个是Emacs内建的可以随时使用它;第二个需要借助一些函数才能使用。 debug假设你编写了用于加1的函数。但函数有个bug。你误将1-输入为1=了。函数定义如下:(defun triangle-bugged (number) "Return sum of numbers 1 through NUMBER inclus...

2007-07-20 11:11:38 288

Programming in Emacs Lisp笔记(十六).emacs文件

.emacs文件 Emacs的缺省配置Emacs缺省配置的优点。Emacs在你编辑C文件时将启动C mod,编写Fortan源文件时启动Fortran mode,编写未知文件时使用Fundamental mod。这些都是自动检测的,不需要干预。可以通过~/.emacs对Emacs进行定制。这是你个人的初始化文件;它的内容是Emacs Lisp代码。 全局初始化文件除了个人初始化文件外,...

2007-07-20 11:10:26 291

Programming in Emacs Lisp笔记(十五)准备图表

准备图表我们的目标是构造一个图表显示Emacs lisp源码中所有函数定义的长度范围。在实际应用中,如果你要创建一个图表,你可能会使用gnuplot之类的程序来完成这个工作。(gnuplot与GNU Emacs集成得很好。)但在这里,我们将使用前面我们所学的知识来完成这个工作。在这章,我们将先编写一个简单的图表打印函数。第一个版本将作为原型,在此基础上来增强。 打印图表列由于Emacs...

2007-07-19 16:36:48 176

Programming in Emacs Lisp笔记(十四)统计defun中的单词数量

统计defun中的单词数量我们的下一个计划是统计函数定义中的单词数量。我们可以使用count-word-region函数的一些变种(正则 表达式方式)来完成这个工作。如果我们只是需要统计定义中的单词数量的话,可以简单的使用C-M-h(mark-defun)命令,然后调用count- word-region。但我们要进行的是一项雄心勃勃的计划:我们需要统计Emacs源码中所有的函数和符号并打印...

2007-07-19 16:36:00 283

Programming in Emacs Lisp笔记(十三)计数:重复和正则表达式

计数:重复和正则表达式重复执行和正则表达式是Emacs Lisp中非常强大的工具。这章讲解使用while循环和递归结合正则表达式进行查找进行字数统计。 字数统计标准的Emacs发行版中包含了一个统计region中行数的函数。但没有统计字数的函数。 count-words-region 函数字数统计函数可以统计行、段落、region、或者整个缓冲区。到覆盖范围该多大?Emacs的鼓励使用...

2007-07-19 16:28:46 315

Programming in Emacs Lisp笔记(十二)正则表达式查询

正则表达式查询在Emacs中正则表达式查询使用得很广泛。在forward-sentence和forward-paragraph中使用了正则表达式查找定位。正则表达式'regular expression'常被写作'regexp'。 sentence-end的正则表达式符号sentence-end被绑定到匹配名末的正则式上。句末通常是用一个句号、问号或者叹号结束的。那么这个正则表达式应该包...

2007-07-19 16:26:00 619

Programming in Emacs Lisp笔记(十一)循环和递归

循环和递归Emacs Lisp有两种方式循环执行语句:使用while循环,或者使用递归。 whilewhile测试它的第一个参数的值,如果为false,解释器将不会执行语句的body部分。如果为true,解释器将执行语句的body部分,然后重新测试第一个参数的值,开始下一轮循环。while语句模板如下:(while true-or-false-test body...)使用whil...

2007-07-04 18:18:00 386

Programming in Emacs Lisp笔记(十)Yanking Text Back

Yanking Text Back当使用'kill'命令剪切文本时,可以用'yank'命令恢复它。被剪切的文本被放到kill ring,yank命令可以将文本恢复。C-y(yank)命令插入kill ring中的第一个元素到缓冲区。如果C-y命令后立即跟一个M-y,则插入的文本将被替换为kill ring的第二个元素。连续的按M-y,将使用kill ring中更靠后的文本替换前一次操作插入的...

2007-07-04 17:59:46 136

Programming in Emacs Lisp笔记的离线版本(2007年7月20日更新,完整版)

使用muse生成了这个笔记的html版本。里面有带链接的索引,浏览起来比较方便。可以从附件下载。以后有新的更新时,我会同时更新这个链接。这个发布文件使用的薛瑞尼所写的Muse CSS文件。...

2007-07-03 15:45:21 76

Programming in Emacs Lisp笔记(九)List的实现

List的实现Lisp中list使用了连续的指针对来保存数据,指针对的第一个指针指向一个原子或者另一个list,指针对的第二个指针指向另一个指针对,或者指向nil,以表明list的结束。 List图示举例来说,list(rose violet buttercup)有3个元素,rose,violet和buttercup。在计算机中,rose的地址被保存在计算机内存中,通过这个地址可以知道 原...

2007-07-03 14:20:29 180

Programming in Emacs Lisp笔记(八)剪切和存储文本

剪切和存储文本当使用'kill'命令剪切文本时,Emacs将它存储到一个列表中,可以用'yank'命令重新获取到。 存储文本到列表当文本被剪切出缓冲区时,它将被存储到一个list中。文本块连续的存储在list中,这个列表看如下面的形式: <src lang="lisp" piece="" previous="" text="" of="" a="">&a

2007-07-02 12:04:17 289

Programming in Emacs Lisp笔记(七)基础函数:car, cdr, cons

基础函数:car, cdr, consLisp中car,cdr和cons都是基础函数。cons用于构造lists,car和cdr用于分割lisp。 奇怪的命名cons函数的名称并非没有含意:它是单词'construct'的缩写。car是短语'Contents of the Address part of the Register';cdr('could-er')是短语'Contents o...

2007-06-29 10:09:10 756

self.与@的区别——别被原有的思维方式误导

最近在学习Rails时把先前在Java中的一些习惯性思维带了过了,结果在遇到self.与@时被这种思维方式给误导了。遇到这个问题是在使用AcriveRecord时,在修改或者新增记录时需要添加时间戳。首先使用self.posted_at=Time.now来修改字段,一切正常。后来想到在哪篇文章中好像说过self.与Java中的this差不多,这样就不自觉的把posted_at当作了实例变量处理...

2007-06-28 14:03:36 137

Programming in Emacs Lisp笔记(六) Narrowing and Widening

Narrowing and WideningNarrowing是Emacs的一项功能,它使你可以将焦点集中在缓冲区的某个部分上,而不用担心意外的修改了其它部分。Narrowing通常被禁用,因为它可能会使新手觉得迷惑。 Narrowing的优点使用narrowing时,缓冲区的其它部分不可见,看起来就像其它部分不存在一样。利用这点你可以只在缓冲区中的某个部分进行查找或替换操作,而不会影响缓...

2007-06-28 10:41:10 182

Programming in Emacs Lisp笔记(五)一些更复杂的函数

一些更复杂的函数 copy-to-buffer的函数定义这个函数拷贝文本到缓冲区,但它不是追加到第二个缓冲区,而是替换第二个缓冲区之前的文本。copy-to-buffer函数与append-to-buffer代码很类似,但它使用了erase-buffer和二个save-excursion。该函数的函数体如下:...(interactive "BCopy to buffer: \nr") ...

2007-06-27 13:04:00 230

Raspberry Pi有关的问题和答案

Raspberry Pi有关的问题和答案

2014-10-20

Nmap扫描原理与用法

Nmap扫描原理与用法

2014-10-20

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除