摘要:博客迁移到我的个人站点:http://codingblogs.net/ 本博客不再更新,我会选择一些我认为有必要的文章迁移过去。这个博客不再更新。感谢所有本博客的读者,祝大家新年快乐,蛇年行大运! 阅读全文
posted @ 2013-02-18 17:27 wawlian 阅读 (1237) 评论 (0) 编辑
摘要:重定向能够实现Linux命令的输入输出与文件之间重定向,以及实现将多个命令组合起来实现更加强大的命令。这部分涉及到的比较多的命令主要有:cat:连接文件sort:排序文本行uniq:忽略或者报告重复行wc:统计文件的行数、词数、字节数grep:打印匹配制定模式的行head:输出文件的头部tail:输出文件的尾部tee:从标准输入读,并往标准输出或者文件写1.重定向标准输出使用>可以将本来出现在屏幕的标准输出信息重定向到一个文件中。我们需要将某个目录下所有文件及目录的列表保存在一个文本文件中:jerry@ubuntu:~$ ls -l /usr/ > ls.txtjerry@ubun 阅读全文
posted @ 2012-12-16 12:43 wawlian 阅读 (12675) 评论 (2) 编辑
摘要:在本系列的第一篇博客,做一个说明,本系列是《Practical Vim》一书的笔记。这本书每一章讲述一个相关的Vim的操作主题,在每一章中都会以若干个Tip的形式讲述一下小的窍门或者说是实现某种任务的捷径,并且在这个过程中讲解很多Vim使用到的命令。作为一本成型的书来说,《Practical Vim》里面会有一些关于背景的描述,也会有一整套比较严谨的对于Vim输入命令以及显示结果的展示规则。我这里仅仅将每一个Tip涉及的问题,以及通过哪些命令来解决重点提取并且翻译出来,主要是总结备忘,另一方面也是分享。但是考虑到每一个Tip的标题都无法直译,因此我就不翻译了。最后,正所谓条条大路通罗马,每一个 阅读全文
posted @ 2012-12-08 12:36 wawlian 阅读 (3135) 评论 (0) 编辑
摘要:1.Spring MVC简介Spring MVC框架是有一个MVC框架,通过实现Model-View-Controller模式来很好地将数据、业务与展现进行分离。从这样一个角度来说,Spring MVC和Struts、Struts2非常类似。Spring MVC的设计是围绕DispatcherServlet展开的,DispatcherServlet负责将请求派发到特定的handler。通过可配置的handler mappings、view resolution、locale以及theme resolution来处理请求并且转到对应的视图。Spring MVC请求处理的整体流程如图:Spring 阅读全文
posted @ 2012-11-17 22:57 wawlian 阅读 (93426) 评论 (11) 编辑
摘要:一、适配器模式 先说说什么是适配器。其实生活中有很多例子。比如2008年的时候买了一台Macbook,有一次做课程设计的时候在课堂上做演示汇报,需要连教室的投影仪。上去的时候突然发现,晕,Macbook的投影接口和教室投影仪的接口根本就对不上,顿时石化。。。后来赶紧去网上查了一下,发现Macbook的投影接口与其他品牌的PC是不一样的,需要另外花钱买一个转接器,还好有淘宝,最后花了差不多20大洋终于搞定。这里说的转接器其实就是一个所谓的适配器。它承担着让不同接口之间实现协同工作的功能。家里的水管和各种各样的水龙头之间很多时候不能直接接上,中间也许要一些其他的管子、零件什么的在中间。这些管子往. 阅读全文
posted @ 2012-10-31 21:31 wawlian 阅读 (3822) 评论 (3) 编辑
摘要:工厂方法的定义:Define a interface for creating an object, but let subclass decide which class to instantiate. Factory method let a class defer instantiation to subclass. 工厂方法模式是一个比较简单易于理解的设计模式。它主要涉及两方面:工厂,也就是对象或者产品的创建者;另一部分是被创建的对象,或者说是产品。我们看看工厂方法的类图: 在工厂方法模式中,抽象类Factory并不负责具体创建产品的细节,具体的细节在其实现类,也就是具体的工厂中给出。 阅读全文
posted @ 2012-10-18 00:29 wawlian 阅读 (1583) 评论 (0) 编辑
摘要:这一部分主要讲Haskell的函数语法。1.模式匹配(Pattern Match)模式匹配主要用来定义一些数据必须遵循的规则,根据他们来解析数据。在定义函数的时候,可以为不同的模式定义不同的函数体,以便写出可读性较高的代码。Haskell允许对很多种类型进行模式匹配,数值型、字符、列表、元组等等。下面是一个函数用来检查输入参数是不是7:lucky::Int->Stringlucky 7 = "LUCKY NUMBER SEVEN"lucky x = "Sorry, you are out of lucky, pal!"我们试着调用一下上面的函数:* 阅读全文
posted @ 2012-08-19 11:52 wawlian 阅读 (4555) 评论 (2) 编辑
摘要:单例模式的定义:Ensure a class has only one instance,and provides a global point of access it。也就是说,如果将一个类设计成单例模式,那么它将只允许一个实例。单例模式算是常见设计模式中最为简单直接的,下面可以看一下单例模式的通用代码:package net.jerryblog.dp.sigleto;public class Singleton { private static final Singleton instance = new Singleton(); private Singleton(){ ... 阅读全文
posted @ 2012-08-12 21:57 wawlian 阅读 (1130) 评论 (1) 编辑
摘要:强大的类型系统是Haskell的一个非常大的优势。Haskell所有表达式类型在编译期判断。这样的话,可以使得代码更加安全,比如说,拿一个整数和一个字符串进行除法运算是没办法进行的,那么在编译器就会直接报错,不会等到运行时程序崩溃才知道。Haskell与Java不一样,Haskell能够进行类型推断(Type Inference),也就是说,你不需要明确的说100是个数字,或者说是整型,编译期能推断出这是一个整型。在GHCi中,我们可以使用:t 命令来检测一个表达式的类型。Prelude> :t 'q' 'q' :: CharPrelude> :t 阅读全文
posted @ 2012-08-11 19:11 wawlian 阅读 (2169) 评论 (0) 编辑
摘要:1.TupleTuple用来将几个元素打包成为一个值。Tuple用()包起来。看起来和List很像,但是Tuple和List有很重要的区别:(1)List元素数量是不固定的,但是Tuple的元素数量是固定的;(2)List必须存储同种类型的元素,但是Tuple可以存储不同类型元素。看几个Tuple的例子:Prelude> (1,2)(1,2)Prelude> (1,"a",True)(1,"a",True)Tuple看起来实在是和List太像了,我一开始也不知道Tuple存在的必要在哪。现在假设有这样的一种需求,我们需要表示平面上四边形的四个 阅读全文
posted @ 2012-08-09 22:54 wawlian 阅读 (1477) 评论 (2) 编辑