自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(50)
  • 资源 (4)
  • 收藏
  • 关注

原创 使用WordPress的PHPMailer发送Email

PHP内置的mail函数的用法是极其恐怖的,至少我在看了mail函数的说明后就再也提不起兴趣来了。不仅如此,对于使用远程的SMTP服务器的 用户来说,mail函数根本就不起作用。而现在的大多数SMTP服务器都需要用户名验证,PHP本身是不支持验证的,要实现这一点,必须去读SMTP协 议,然后自己现实一个邮件发送程序……太恐怖了。WordPress是目前世界上最流行的Blog程序,本身的架构非常

2008-04-27 18:24:00 6265 8

原创 如何更改WordPress的登录名

这里说的是自己安装的WordPress,不是指使用BSP提供的WordPress托管。WordPress安装后会生成一个用户名为admin的管理员账号用于登录。但这个用户名是无法在管理后台更改的,最容易想到的解决办法当然是直接在数据库里面改。使用phpMyAdmin(或者是其他数据库管理工具,只要能操作MySQL数据库就行)打开WordPress数据库下的wp_users表,里面应该有一条

2008-03-29 19:01:00 1500

原创 还是XAMPP更好些

目前有两个WAMP(Windows+Apache+MySQL+PHP)套件包,一个是WampServer,另一个就是XAMP。WampServer有很多介绍,安装使用都很方便,尤其是在2.0版以后引入了插件的系统结构,能方便地更换不同的组件。而我感觉XAMPP在设计上更加巧妙。首先,XAMPP不需要安装,仅仅解压后就可以使用,默认的主页目录就是htdocs。这样一来,使用XAMPP开发,最终的

2008-03-22 09:18:00 3956 1

原创 PHP 5的抽象类和接口语法

PHP 5中用abstract关键字标明抽象方法,含有抽象方法的类是抽象类,也必须要用abstract标明。phpabstract class AbstractClass {   abstract public function test();}class ImplementedClass extends AbstractClass {   public function test() {

2008-03-05 22:44:00 1254

原创 用getopt解析命令行参数

用过gcc的都知道gcc有许多参数。例如要将hello.c译成hello.exe并加上调试信息,用gcc hello.c -g -o hello.exe即可。现在分析gcc的参数。对于这个例子,参数可分成三个部分:输入文件(hello.c)、是否包含调试信息(-g)、输出文件 (-o hello.exe)。这三个部分的次序是无关紧要的,例如可以确保,-o后面跟的一定表示输出文件。getopt是

2008-02-13 00:25:00 1294 1

原创 做Online Judge的感觉

写了几天的Online Judge,手上也算是有了感觉。这次相比第一次做的应该是好多了,在FleaPHP框架的帮助下,开发效率很高。尽管我并没有使用Zend Studio这样完善的IDE,而只是使用免费的编辑器Notepad++,但这似乎并没有带来什么困难。虽然没有采用TDD所提倡的自动化测试,但在编码过程中不停地手工测试也能把很多的Bug消灭在摇篮中,也不错。另外,因为做的时候需要一个小功能

2008-02-04 01:00:00 1752 2

原创 Online Judge开始编码

去年说要重做Online Judge,这两天已经开始编写代码了。之前一直在为Windows平台下的评测模块所困扰,即如何创建一个程序运行时的“沙盒”。在询问了Cena(一个用于信息学竞赛的评测软件)的作者之后,得知Cena的做法与我以前的做法几乎一样。“沙盒”比较难做,真要做出来和一个杀毒软件的引挚差不多了,想想还是先放弃吧。于是先做表面上的功能——整个儿就像一个CMS。其实说白了Online

2008-01-30 23:59:00 1289

翻译 CMap How-to

英文原文:http://www.codeproject.com/KB/architecture/cmap_howto.aspx?print=true简介一些像我一样的程序员,先学STL::map再学CMap,常常认为CMap很难用,而且总是使用STL::map的方式去使用CMap。在本文中,我会详细讲解CMap以及如何将你自己的类用于CMap。末尾,我将通过一个例子来演示如何正确地将CSt

2008-01-11 16:05:00 1665

原创 PHP函数:parse_str

用法:void parse_str ( string $str [, array &$arr] )parse_str用来解析(分离)URL中的查询字符串(Query String),所谓查询字符串是指一个URL中?后面的部分,如http://localhost/test/result.php?name=anve&age=21,则查询字符串就是“name=anve&age=21”。当然在PH

2007-12-19 19:48:00 2392 3

原创 GCC拾遗——内部函数与__func__

今天瞎翻了一下GCC的手册,发现了这两个好玩儿的东西。一个是Nested function,就是gcc允许将一个函数定义在另一个函数的内部:double foo(double a, double b)...{    double square(double z)...{        return z*z;    }    printf("Function: %s ",__func__);

2007-12-13 14:23:00 1237

原创 PSFTP的简单使用说明

PSFTP是Putty的一部分,可以单独使用,但推荐你去http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html下载完整的Putty安装包。安装好之后,你就有了一套几乎完整的远程访问解决方案。PSFTP是一个支持SFTP协议的客户端程序。在Unix体验中心上传文件或者是维护SourceForge上的项目经常会使用SFTP。目

2007-11-30 20:08:00 6558

原创 WampServer 2.0不错

因为重新安装了一遍操作系统,现在懒得像以前那样一个个地安装Apache、MySQL、PHP了,干脆下了一个WampServer。现在的WAMP版本终于长到了2。这回多了个比较贴心的功能,就是可以自由的选择PHP、Apache、MySQL的版本了,这样很方便地就能切换到不同的环境进行测试。WAMP的网站上现在把不同版本的PHP、Apache和MySQL是作为单独的Add-on来发布的,未来很可能会有

2007-11-29 21:26:00 2559

原创 重做Online Judge

今年十月做的Online Judge不是很好,有几处硬伤。首先是程序逻辑和页面没有实现完全的分离,改换外观很不方便;其次是后台管理功能有些混乱,模块化做的不是很好,不方便添加新的功能,例如要添加一种新的编程语言就要修改源代码;最要命的是,评测模块有一些安全方面的漏洞,一但被人利用了,服务器就会有灭顶之灾。这次重做打算采用现成的PHP框架来协助,初步想法是采用FleaPHP,原因之一是我现在只

2007-11-29 10:36:00 1246

原创 PHP中date函数时差问题的解决

在Windows上,在默认的PHP配置下,date函数返回的时间值和当地时间总是相差8小时,即显示的是格林威治时间。解决方案是正确设置PHP的时区环境。PHP的时区环境通过一组特定的字符串指定。参见PHP所支持的时区列表。最省事的办法是在php.ini文件中找到date.timezone一行,默认情况下这一行是被注释掉的,删掉前面的分号即可启用。对于中国大陆,可把它设置为Etc/GMT-8

2007-11-19 21:58:00 1845

原创 EverNote与Google Notebook

据说是最好的笔记软件EverNote现在终于解决了中文输入问题,而且试用版无限期,功能也足够用。我也下了一个: 界面确实很漂亮,用起来也很方便。只是我现在已经习惯了用Google的在线Notebook。EverNote的内容毕竟是保存在硬盘上的,万一有一天我的硬盘突然坏了……相比之下,心理上觉得Google Notebook要更安全一些。虽然Google的硬盘也不是万无一失的,但总觉得

2007-11-19 20:30:00 1551

原创 Java拾遗——Class类

Class类型的对象可以保存一个Java类型的信息。说起来有些令人费解,还是用例子说话吧。Object类中的getClass方法会返回一个Class类型的实例。例如,如果有ClassTest c;...Class cl=c.getClass();则cl对象就保存了ClassTest类的一些信息。最常用的Class方法是getName,它会以字符串的形式返回类的名字。例如下面的代码会显示

2007-11-17 20:59:00 664

原创 Java拾遗——可变参数

Java中的printf和C语言里的printf用法几乎一样,但它有一个特点:参数的个数是可变的。例如:一个参数的System.out.printf("Hello World!");或者是两个参数System.out.printf("Hello %s!","Wang");。在Java里实现这样的效果并不难。只要把可变参数部分声明为Type...即可。例如,要实现一个方法max(...),它会返

2007-11-17 20:24:00 507

原创 C语言真的是“基础语言”吗?

国内几乎所有大学的计算机专业都会教授C或C++语言,并且作为程序语言的基础课程。但从我的角度看,似乎C语言很不适合初学者,我觉得C语言并不“基础”。最主要的是,在C语言中,你要做点什么,必须要写出一个完整的程序,而且还要正确无误。这和一些解释执行的语言是不同的。比如在Python中,你每写一个语句,计算机会立即响应。而对于C语言,为了写出第一个程序,起码你要知道#include,main这些东

2007-11-14 17:16:00 839

原创 Firefox插件——Firebug

使用Firefox的网页开发人员有福了。这里介绍一个开发辅助插件——Firebug。Firebug可以分析网页的HTML、Javascript、CSS等等,更引人注目的是,你可以通过它去改变网页源代码,即刻看到效果。这对于调试网页来说是相当方便的。 通过Firebug的分析功能,还可以学习到很多网页制作的知识。要使用Firebug,需要有Firefox浏览器。如果你没有,可以先通过本B

2007-11-11 21:56:00 702

原创 vim的几项设置

建议将以下设置写在用户目录下的.vimrc文件里。# 开启语法高亮syntax on# 开启自动缩进,即下一行和当前行的缩进一致set autoindent# 开启代码智能缩进。例如在写C++程序时,“{”的下一行会自动增加缩进set cindent# 设置智能缩进的增量,即每一级缩进的字符数set shiftwidth=4# 显示行号set number# 设置Tab宽度set tabs

2007-11-11 20:07:00 622

原创 来自GNU的高精度计算器bc

bc是一个源自GNU的高精度计算程序,除了进行简单的数值计算,更可以用它特有的语言去写一个计算程序,来执行复杂的计算,比如复杂的级数求和。大多数Linux发行版中都自带了bc,Windows的用户可以在GnuWin32项目中找到。在命令行下执行bc,你就进入了bc的解释器,要退出,可以输入halt或者是quit,这两者有些细小的差别,过后再说。bc下可以进行简单的计算。你可以输入34*23

2007-11-03 15:27:00 1538

原创 SciTE配置外挂编译器

SciTE是我见过的最灵活的编辑器之一,仅次于Emacs和Vim。更重要的是,它的配置文件比Emacs和Vim都要简单一些,而且尤其对程序编辑提供了不错的支持。例如代码自动缩进、自动折叠等等。下面以gcc为例,说明如何把编译器集成进SciTE中。首先在Option菜单中找到cpp.properties文件打开,这是C、C++、Java等语言的配置文件。先找到“ccopts=”一行,这一句指

2007-10-05 09:04:00 1986

原创 Comodo和Dev-C++是冤家?

昨天在D:/C目录下用Dev-C++写程序,明明没有任何错误,在链接的时候偏偏报告“……Permission Denied”。以为是目录权限的问题,但一检查却找不到任何问题。更为奇怪的是用其他的IDE甚至是SciTE都可以正常编译。而Dev-C++却不能编译这个目录下的所有文件——但其他目录的可以。想着可能是哪个进程搞的。我就开始把能关的进程一个个地关了。但我把Comodo的进程关了以后,问题终于

2007-10-04 08:20:00 678

原创 MySQL的用户权限

MySQL可以为不同的用户分配严格的、复杂的权限。这些操作大多都可以用SQL指令Grant(分配权限)和Revoke(回收权限)来实现。 Grant可以把指定的权限分配给特定的用户,如果这个用户不存在,则会创建一个用户。GRANTGrant的常用格式:GRANT privileges [columns]ON itemTO user_name [IDENTIFIED BY password

2007-09-17 21:05:00 829

原创 Mambo边栏添加Adsense的方法

今天刚刚试用了一下Mambo这个开源的CMS,总之觉得上手比较复杂。我试着将Adsense代码放入右边栏,看上去效果还可以。方法是这样的,进入到Modules→Site Modules,确保Site Mambots中的No WYSIWYG Editor处于有效状态,添加一个元素,将Adsense代码放在下面的Constent里面就可以了。因为是放在网页的右边栏,所以Position项选择rig

2007-08-19 23:39:00 459

原创 利用标准库排序的几种方法

这个题目有点儿无聊,跟茴香豆的“茴”字有几种写法一样无聊,又是一个无聊的老掉牙的话题——排序,问题依然是无聊至极——把输入的单词按顺序(我可没说是什么顺序)排列。当作是一个总结吧。按词典排好说,如果你用vector words存储单词,只需用algorithm里的sort即可:sort(words.begin(),words.end())。这玩意儿我闭着眼也能敲出来。但假如你用list的话……

2007-08-05 23:58:00 1113 1

原创 C++函数对象

标准库里的count_if可以统计容器中满足特定条件的元素的个数。例如要统计一个整数vector——ivec中正数的个数,可以先写一个返回类型为bool,含有一个int参数的条件函数:bool pred(int val)...{    return val>0;}之后可以用count_if(ivec.begin(),ivec.end(),pred)计算出正整数的个数。但这个方法有一

2007-08-05 14:46:00 8441 7

原创 STL中unique函数的一点提示

unique的功能是去除相邻的重复元素(只保留一个),还有一个容易忽视的特性是它并不真正把重复的元素删除,不知道这个特性用起来就会出问题。比如下面这个例子,企图输出无重复的元素:#include iostream>#include vector>#include algorithm>#include iterator>using namespace std;int main()...{  

2007-08-04 22:24:00 1142 1

原创 C++模板与数组

问题:写一个函数,找出一个整数数组的最大值。通常的写法都需要传递两个参数,一个表示数组的起始地址,一个表示数组的大小。但是更直接地想法是,数组的大小应该是数组本身的一个属性,每次使用min函数都要告诉它大小,显然是一件烦琐的事。好在C++的模板机制给了我更好的实现方式。先看代码:template typename Type, int size>Type min(const Type (

2007-08-04 20:14:00 1380 1

原创 Scheme数据结构——栈

作为一种函数语言,Scheme认为一个函数,只要参数和变换过程一样,每一次的结果也必然是相同的。就好比函数y=x+1,当x=1是,y的值为2,不管哪一天都是这个结果。但对于真实世界来说,很多事物都是处于变化中的。因此Scheme中引入了set!、set-car!、set-cdr!等操作。对于栈这样一种简单的数据结构,就必然要考虑变化。每次压入、弹出元素,都要改变栈。至于栈的表示,一个很自然的想

2007-08-03 13:34:00 988

原创 Scheme函数的参数传递

Scheme语言中有一些以“!”结尾的过程名,这些过程会改变作为参数的对象。 例如set!,如果x的初始值是1,那么在经历了(set! x 3)后,x的值就变为3。假如有一个函数my-set!是这样定义的:(define (my-set! old new)  (set! old new))这个my-set!的作用是否和set!的作用一样呢?实验证明,my-set!根本不起作用。尽管它使

2007-08-02 23:59:00 865

原创 数学游戏——蚂蚁的无尽之旅

现在进入神秘的蚂蚁世界……一个无限的方格棋盘,每个格子都是黑色。有一只蚂蚁按照一个非常简单的规则移动:如果它所在的位置为黑色,则把格子涂成白色,向左转90度,前进一格;若为白色,则将格子涂出黑色,向右转90度,前进一格。如此不停地走下去,蚂蚁会走向何方?下面这幅图是在我的计算机上模拟出来的结果。一开始是一幅非常混沌的图像。但突然地,蚂蚁像是产生了智能,开始建造一条公路!

2007-08-01 20:12:00 694

原创 用Scheme实现二分检索树(Binary Search Tree)

刚刚用Scheme做完这个小练习,看着写完的代码,连我自己都感到无比惊讶。程序非常短,定义数据结构、建立二叉树、中序遍历的代码加起来才30多行!下面我就来一步一步地讲讲我的思考过程。目标是从一个表中构建一棵二分检索树,对它进行中序遍历,将遍历序列保存在一个表中。为达到这个目标,首先搞清楚一个问题:二叉树是什么?嗯……是一种数据结构,由树根、左子树和右子树构成,其中左右子树也是二叉树。好,考虑到

2007-07-31 22:19:00 1236

原创 PHP中的几个文本处理函数

在Sourceforge上下载了一个名字叫Simple PHP Forum的论坛程序,学了几个文本处理函数。结果试着用刚刚学的东西写了一个简单的留言板,发现了中文乱码问题,解决后感觉又学到了不少新东西。这几个文本函数是: string htmlentities ( string $string [, int $quote_style [, string $charset]] ):将$

2007-07-23 15:58:00 2454

原创 Apache 2.0.59+PHP 4.4.7+MySQL 4.1的安装配置

安装Apache 假设安装时选择监听8080端口,手动启动。安装完成后需要进入到安装目录的bin下,执行apache -k install把Apache加入到Windows的服务列表中去。如果要从列表中删除,使用apache -k uninstall 然后测试一下,如果正确,应该出现如图所示的页面: 安装PHP 4.4.7 将下载在zip压缩包解压到

2007-07-20 12:08:00 1498

原创 用Python解N皇后问题

看了一下午的《Python简明教程》,顺手写了个N皇后的程序玩玩儿。程序只用到了基本的功能。贴在这里记录一下。 def isOK(row,col):    Is it possible that a queen is put at (row,col)?    for i in range(1,row):        if col==queen[i-1] or col-quee

2007-07-17 20:43:00 967

原创 有关数据结构课的一些感想

这些天看过有些人的数据结构课的作业程序,给我的一个感觉是学得太“死板”了。比方说,一些算法中需要用到“栈”这样的结构,于是很多人便拿着《数据结构》课本开始一行行地抄。什么InitStack啦,StackEmpty啦,甚至是不问青红皂白地把元素的类型都通通用typedef变成SElemType类型……你可曾想过,你所做的这些对你要解决的问题有必要吗?我认为确实有很多人还不能理解什么是“数

2007-05-16 10:52:00 758

原创 学习Python(4)——面向函数编程

可以说,现代程序语言都或多或少地受到了Lisp家族的影响,Python当然也不例外。因为我以前了解一些Lisp(Scheme)方面的知识,感觉Python在这方面学得还挺像。filter(function, sequence)可以从sequence(通过是List、Tuple、String)中筛选出满足function条件的元素(要求function返回类型为boolean)。例如:>>> def

2007-02-28 22:24:00 2204

原创 学习Python(3)——List内置方法

List方法 方法 作用 append(x) 将x添加到List末尾,相当于a[len(a):]=[x] extend(L)

2007-02-28 00:09:00 5316

原创 学习Python(2)——函数

先写一个例子——生成n以内的Fibonacci数:def fib(n):    a,b=0,1    while bn:        print b,        a,b=b,a+bdef指出了接下来的部分是一个函数。Python和C语言类似,并不区分过程(无返回值)和函数(有返回值)。像上面那样严格的说就是一个过程(Procedure)。对于一个项目而言,在不同的模块的代码中

2007-02-27 15:22:00 966

Ant's Game Demo

Ant's Game

2007-08-01

Ant's Demo Project

Ant's Game

2007-08-01

Ant's Game Demo

Ant's Game

2007-08-01

starlogo.jar

Demo Library

2007-08-01

空空如也

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

TA关注的人

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