自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

I SEE STARS

我的征途是星辰大海

  • 博客(134)
  • 收藏
  • 关注

原创 搬家

欢迎访问新 blog: DreamCode。

2008-07-15 10:35:00 1017 1

原创 用 bash 脚本统计词频

上周有朋友问一问题,他有一个包含若干行IP地址的文本文件,每个IP占一行,需要统计每个IP在文件中出现的次数,并且按照出现次数逆序排列。开始的时候使用了一个 awk 脚本来解决这个问题:#!/bin/awk -f# filename: count_ip.awkBEGIN {}{        ip_map[$0]+=1}END {        for (ip in ip_map) {    

2008-03-31 16:26:00 4116

原创 Maven 的利弊

Ryan Slobojan 在 InfoQ 上张贴了一篇有关 Maven 优劣讨论的文章——《Debate: Is Maven the right tool for builds?》。在我的 Java 开发经历中,最开始使用的 Ant,一个非常简洁而且强大的构建工具,不过 Ant 对于项目所依赖的 jar 包的管理还是非常弱的,项目所依赖的每一个 jar 包都需要自己手工去寻找、下载、组织。就像

2008-02-03 16:20:00 2660 2

原创 利用正则表达式反向选择数据

最近有朋友问如何在文件中选择不包含诸如1900、1901、……1999字符串的行,目标文件中所有数据都是由数字字符组成。如果使用 grep 这样的工具,只用写很一个非常简单的正则表达式就能解决问题:grep -v 19/d/d target_filegrep 的 -v 选项表示选择 target_file 中不匹配目标正则表达式的行。对于诸如 Java 或者 Ruby 这样的程序设计语

2007-11-26 16:50:00 13948

原创 “汉语编程”有何意义?

目前世界上绝大多数程序设计语言都是使用ASCII字符作为其关键字,而且其中绝大部分关键字是英语单词。但是程序设计语言采用英语单词作为关键字并不能降低英语母语人群学习程序设计的难度。举例来说,对于一个没有学习程序设计基础的美国人来说,C语言中的 for、while、do...while 这些关键字无异于天书;没有学习过初级数据结构知识的话,也难以理解何为 array、何为 hash table。在

2007-11-10 22:07:00 2200 6

原创 解决 c3p0 和 MySQL 集成情况下,连接长时间闲置后重新使用时报错的问题

MySQL 的默认设置下,当一个连接的空闲时间超过8小时后,MySQL 就会断开该连接,而 c3p0 连接池则以为该被断开的连接依然有效。在这种情况下,如果客户端代码向 c3p0 连接池请求连接的话,连接池就会把已经失效的连接返回给客户端,客户端在使用该失效连接的时候即抛出异常。解决这个问题的办法有三种:1. 增加 MySQL 的 wait_timeout 属性的值。修改 /etc/mysql/m

2007-11-03 16:40:00 9089

原创 点击 > 100,000 & 原创文章 = 100

今天看到自己的 blog 点击超过 100,000。给自己一个小小的祝贺,正好原创文章也到达 100 的数目。

2007-10-28 17:00:00 1191

原创 让 Linux 支持中文拼音排序

大部分 Linux 发行版在默认情况下,是不支持中文字符按照拼音排序的。对于软件开发而言,如果需要服务器端针对中文排序,很可能会因此难以实现。解决这个问题的方法很简单,只需要在 Linux 系统上安装一个 locale-pinyin 的软件包,并配置好相应的系统环境变量,就能够让 Linux 系统完美地支持中文的拼音排序。对于 Ubuntu 用户,如果之前没有配置 ubuntu-cn 的源的话,需

2007-10-22 21:31:00 3119

原创 Ubuntu 7.10 源设置

对于电信网络用户,推荐希网的源,速度非常快。deb http://ubuntu.cn99.com/ubuntu gutsy main restricted universe multiversedeb-src http://ubuntu.cn99.com/ubuntu gutsy main restricted universe multiversedeb http://ubuntu.cn99

2007-10-22 00:26:00 16431

原创 Ubuntu 英文界面下处理中文(更新)

之前写过一篇关于在 Ubuntu 英文界面下处理中文的文章,当时是基于 6.06LTS 版本写作的。由于 Ubuntu 改进迅速,到今日“勇猛的长臂猿”——7.10 版本发布之后,已有许多内容不再适合,故重新修订一番,愿本文内容对于所有 Ubuntu Linux 中文用户有所帮助。1. 区域环境变量设置修改 /etc/environment 文件,添加如下配置:LC_CTYPE="zh_CN.

2007-10-21 13:45:00 2709

原创 Spring with Tomcat 中文编码问题的解决方案

由于各种原因,Java 应用中有关中文编码的问题总是层出不穷,即使是在 i18n 发展已久的今日,为了能够在 Java 应用中良好地使用中文,程序员们仍然要花费许多额外的力气来调试、设置以解决有关中文编码的问题。针对在 Tomcat 服务器上运行的 Spring 应用,我总结了一些相关的经验,希望能帮助其他人在处理该问题时能少走一些弯路。以下条目纯属个人在开发中摸索出来的经验,并不一定适用于所有情

2007-10-04 15:47:00 2383

原创 整合 Resin 和 Apache

本文中使用的 Apache httpd 版本为 2.2.4,Resin 为 OS 3.0.24,操作系统为 Redhat AS 4。配置步骤如下:1. 安装 Apache httpd(路径 /usr/local/apache)输入命令/usr/local/apache/bin/httpd -l检查所下载的 Apache httpd 是否支持 DSO 特性。如果以上命令所打印出来的结

2007-09-28 12:09:00 2623

原创 有关函数返回值类型的问题

李卫公在他的 blog 中讨论了一个有关函数返回值的问题。其在文章中的初始问题,大致可以描述为:需要编写一个函数,从 HMLT 源代码中提取某个节点的文本,在提取失败的情况下,应当返回一个空字符串还是 null 值。李卫公在文中说明了,如果在失败的情况下返回一个空字符串的话,对于该函数的调用者而言,是无法区分出该函数是从目标节点中提取到一个空字符串,还是实际上什么也没有提取到。通常来说,一个函数所

2007-08-22 14:29:00 3391

原创 Ubuntu 下安装 Oracle XE

Oracle 为 Ubuntu 用户设立了专门的 apt 源服务器,只需要在 /etc/apt/source.list 中添加一行:deb http://oss.oracle.com/debian unstable main non-free 即可。在运行 apt-get update 命令之前,还需要将该源服务器的公钥添加在本地 apt 系统的密钥库中。首先下载公钥:wget http://os

2007-08-15 19:34:00 4053 2

原创 在 Toshiba LX/190DK 笔记本上,从 Ubuntu Edgy 升级到 Feisty

我使用的笔记本是Toshiba Dynabook SS LX/190DK(对应的海外型号为 Portege S100),电脑上安装了两个操作系统,一个 Ubuntu Linux 6.10 和一个原装的 Windows XP。自从用上 Ubuntu 6.06 以来,Ubuntu 的表现一直都很不错。后来通过重新安装的方式,升级到 6.10 版本,更是令人满意。但是几年4月份推出的新版本,却导致一些用

2007-08-11 22:57:00 2662

原创 在项目中为 Spring Framework 配置 Log4j

创建一个基于 Spring Framework 的项目之后,在使用 JUnit 进行单元测试时,控制台中打印出警告信息:log4j:WARN No appenders could be found for logger (org.springframework.util.ClassUtils).log4j:WARN Please initialize the log4j system 

2007-08-09 17:10:00 8869

原创 测试驱动开发

作为极限编程的核心实践之一,测试驱动开发的大名我已仰慕许久。但将测试阶段放置在开发过程的最前端,对于很多像我一样学习、应用传统重量级开发流程的程序员而言,这样的做法似乎实在是太不可思议。所以,我在开发中,还是保留着先实现,后写测试用例的做法。但最近因为工作流程的一些变化,让我不得不重新审视自己的一些做法,即使是找寻不到“银弹”,期望好歹也能找到些有用的“铜弹”、“铁弹”。于是又捡起了在书架中染尘已

2007-07-19 23:26:00 1554 1

原创 Google 桌面出 Linux 版了,谷歌拼音呢?

SCIM 中的智能拼音虽还好用,但是偏小的词库确实让人很头疼。谷歌拥有写出 SCIM 的苏哲,又弄出了一个类似搜狗拼音的谷歌拼音。期待谷歌也能弄出一个 Linux 上的输入法。

2007-06-29 16:11:00 3595 3

原创 全球通?中国大陆通?

在 WSJ 上看到报道说中国移动打算硬着头皮上 TD。依托占有全球70%市场的 GSM 网络,中国移动可以搞出一个叫做“全球通”的品牌来。可 TD 这玩意压根只有中国大陆会用,如果今后移动的“全球通”品牌使用 TD 标准的话,是不是该改名为“中国大陆通”了?▀ 中國移動擬對3G手機合同進行招標 

2007-06-06 17:49:00 1798 2

转载 CVS 简明手册

一、什么是CVS?CVS――Concurrent Versions System并行版本系统;是一个标准的版本控制系统;对代码进行集中管理;记录代码所有的更改历史;提供协作开发的功能;支持多人同时CheckOut与合并。以客户端/服务器模式工作,所有的用户都在客户端进行CVS操作,而所有命令的执行都在CVS服务器端进行。 二、CVS基本概念 CVS仓库:又称主拷贝,

2007-06-05 17:34:00 1176

原创 解决 Java 程序的乱码问题

早上来上班,同事问在本机好好的 Java 程序,放到服务器上运行的时候,输出的中文字符总是显示乱码。我大致看了一下,猜测应该是 .java 文件编码和相关 Java 环境引起的问题。同事的本地开发环境是 Windows,默认文件编码为 GBK,服务器为 Redhat Linux,默认文件编码为 ISO-8859-1,两种字符编码并非完全一致。如果要保证 Java 程序中的中文字符能够被正确输出,最

2007-05-25 10:47:00 1671

原创 在 Linux 下使用 OpenSSH 配置端口转发

从自己的电脑上访问公司的 CVS 服务器需要利用 SSH 客户端的端口转发功能。以前在 Windows 上,一般是使用 SecureCRT 作为 SSH 客户端。之后将工作平台迁移到 Ubuntu Linux 之下,却一时没有找到直接使用 OpenSSH 配置端口转发的方法。只知道利用 PuTTY 的 Tunnel 来完成这样工作,但是多开着一个应用程序却只做端口转发这一件事情,多少觉得有些别扭。

2007-05-22 23:12:00 1692

原创 有关 vi,放松一下

这是投递在 cnBeta 上的一篇文章:VIM是优秀的开源文本编辑器,是Linux/UNIX用户非常常用的文本编辑工具,经过了1年零5天的等待,我们迎来了Vim 7.1稳定版。改版本修复了一个安全问题和一些导致崩溃错误,无新功能。强烈建议用户升级。 下面是用户回复:第1楼 梦幻のFF 发表于 2007-05-13 17:19:12 不过windows上这

2007-05-20 23:02:00 1343

原创 有关 Python 中的 File.readlines(sizehint) 函数

在处理日志文件的时候,常常会遇到这样的情况:日志文件巨大,不可能一次性把整个文件读入到内存中进行处理,例如需要在一台物理内存为 2GB 的机器上处理一个 2GB 的日志文件,我们可能希望每次只处理其中 200MB 的内容。在 Python 中,内置的 File 对象直接提供了一个 readlines(sizehint) 函数来完成这样的事情。以下面的代码为例:file = open(

2007-05-19 23:21:00 10096 2

原创 Refactoring to Patterns 读书笔记(六)

前一阵公司的事情繁忙,导致这 Refactoring to Patterns 的书看完许久,却没有时间提笔来写这篇读书笔记。现在有点时间,总算是可以继续了。应用 Composite 模式替换隐式树结构在处理数据的程序(例如,生成 XML 文档)中,我们常常会隐式地实现一些树状结构的程序,就像下图左边所显示的那样子: 在这种情况下,构建隐式树的代码和展现隐式树的代码紧密地耦合在一起(不

2007-05-19 20:41:00 1270

原创 抄袭是作弊,造谣呢?

前不久 Google 中国出现了输入法词库抄袭 Sohu 输入法词库的事件,让 Google 原本良好的对外形象大受影响。不过这事件,无论如何,主要涉及到的还是有关职业道德以及公司内部管理方面的事情。但随后却不断出现某些“新闻报道”,却明摆着显露出落井下石或者煽风点火的心态。比如先是冒出李开复要离开 Google 中国的“内幕新闻”,甚至祭出诛心术来个“画外音”——说李博士离开 Google 中国

2007-04-28 23:10:00 1487 1

原创 有关 org.dom4j.Node.numberValueOf 方法的一个说明

在 org.dom4j.Node 中可以用 numberValueOf 方法根据 XPath 表达式获取指定元素或者属性的数字类型的值。在 dom4j 的 API 文档中是这样注释的: numberValueOfpublic Number numberValueOf(String xpathExpression)    numberValueOf evaluates

2007-04-04 10:56:00 3013 3

原创 Refactoring to Patterns 读书笔记(五)

应用 Composed Method 模式  这大概是最简单的模式之一了,甚至可能有人会觉得如此简单的咚咚居然被成为“模式”是非常可笑的。不过,Kent Beck 曾说过:“some of his best patterns are those that he thought someone would laugh at him for writing.”Kent 就是在他的 Smalltal

2007-03-25 22:13:00 1182

原创 Refactoring to Patterns 读书笔记(四)

应用 Template Method 模式  在继承结构的各个子类的方法实现体中,可能会出现这样一种情况,即方法体中的代码按照相同的顺序执行类似的步骤,而它们的步骤之间略有不同,也 就是说在方法体中不变行为(invariant behavior)和可变行为(variant behavior)混合在一起。因此在子类中存在着重复代码用来表示其不变行为。(Number one in the stin

2007-03-25 00:00:00 1323

转载 Ubuntu 7.04/6.10/6.06 APT 大学源集合

http://forum.ubuntu.org.cn/viewtopic.php?t=38756以下为ubuntu feisty 7.04 #传说中的中国科技大学 5M/s deb http://debian.ustc.edu.cn/ubuntu/ feisty main restricted universe multiverse deb http://debian.ustc

2007-03-24 23:17:00 5502

原创 Refactoring to Patterns 读书笔记(三)

应用 Strategy 模式替代条件逻辑结构Martin Fowler 在他的 Refactoring 一书中写道:“One of the most common areas of complexity in a program lies in complex conditional logic.”我们通常使用条件逻辑结构决定程序中的哪个算法代码会被执行,而业务相关的算法经常会发生变化,例

2007-03-18 23:39:00 1318

原创 Refactoring to Patterns 读书笔记(二)

用 Factory 模式封装具体类对于在一个包中实现了同一接口的具体类,不必让客户代码来直接地实例化这些实现类,应该创建一个 Factory 类来负担这样的责任。这样做的好处是: 1. 遵守了“面向接口编程,而非面向实现编程”的原则。 2. 减轻了代码中的“概念负担”(conceptual weight)。使用 Factory 类屏蔽有关包内实现类的细节,客户代码就只需要了解接口和 Facto

2007-03-17 14:02:00 1152

原创 Refactoring to Patterns 读书笔记(一)

应用 Create Methods 模式代替构造器(constructor)在面向对象的语言中,类的构造都是通过类的构造器完成的。但是OOP技术经过这么多年的发展,发现直接把构造器暴露给客户使用,在实践中并非一个很好的技术方式,故此各种 Factory 模式应运而生。就 Java 语言而言,构造器的缺点或者限制至少有如下三点:1.应为构造器的名字是不能随意选择的,只能和类名保持一致。因

2007-03-13 23:36:00 1495

原创 先进闹钟科技

首先转引一段 engadget 的话:我们对闹钟技术一直保持着高度的重视,因为这项产品的不断演化代表着人类对早起的需求永远不灭,而且赖床的功力也一直跟着时代在进步。让我们看看如今的闹钟科技精进到何种地步:● 会捉迷藏的闹钟! (但愿它不会自己钻到被窝里面……)● 会飞的闹钟!! (苍蝇 or 蚊子???)● 给钱才闭嘴的闹钟!!! (大汗……) 各位程序员是否

2007-03-12 16:56:00 1623

原创 设置 Tomcat 自动重新加载 web 应用程序

Tomcat 中自动重载 web 应用程序的配置:修改 TOMCAT_HOME/conf/server.xml 文件,添加 标签让指定的 web 应用程序自动重载。内容如下:                    ...        /yourwebapp" docBase="youwebapp" debug="0" reloadable="true"/>            

2007-02-01 18:43:00 2862

原创 Ubuntu 6.10 中安装 Nvidia 显示卡驱动程序的一些问题

今天升级 Ubuntu Edgy 源中的 nvidia-glx 发生了一些问题,重启后进入 X 系统时,系统报告错误:无法找到一个名为 nvidia.ko 的文件,X 系统启动失败。以前使用的 Nvidia 显卡驱动是 .run 文件格式的,使用命令sudo sh NVIDIA-Linux-x86-1.0-9746-pkg1.run安装的时候,安装程序提示找不到预编译好的二进制接口,连接回

2007-01-28 17:42:00 1900

原创 关于 Ubuntu 的一些链接

@page { size: 20.999cm 29.699cm; margin-top: 2cm; margin-bottom: 2cm; margin-left: 2cm; margin-right: 2cm } table { border-collapse:collapse; border-spacing:0; empty-cells:show } td, th { verti

2006-12-17 11:02:00 1400

原创 关于在 Spring 中对 DAO 进行单元测试的一些问题

@page { size: 20.999cm 29.699cm; margin-top: 2cm; margin-bottom: 2cm; margin-left: 2cm; margin-right: 2cm } table { border-collapse:collapse; border-spacing:0; empty-cells:show } td, th { verti

2006-12-16 21:45:00 2637 2

原创 关于 Rich Client 应用的一些想法

今天在孟岩的 blog 上看到一篇关于 rich client 的旧文,文中的主题很明确,认为以 Expression/VS、Flex/Apllo 为代表的 rich client 开发终将代替现有 web 开发。个人素来青睐 rich client 程序,毕竟即使到现在 web 开发技术发展十余年,即使 Google 利用 Ajax 给用户带来了相当不错的体验。但是,至少到目前为止,这些技术

2006-12-07 10:01:00 1955

原创 Grub 安装简要说明

一般情况下我们都会在安装 Linux 的时候,将 Grub 引导记录安装在 MBR 上。这样在重新安装 Windows 之后,MBR 被覆盖,也就不能用 Grub 进行引导了。网上有很多资料介绍如何能够重新加载 Linux,比如使用 grub4dos、利用 Windows OS Loader。个人感觉最简便的方法是使用 Linux Live CD 重新安装 Grub,下面以 Ubuntu Live

2006-11-28 09:56:00 5040

空空如也

空空如也

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

TA关注的人

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