月度归档:2013年07月

用开源软件Subversion进行个人文档管理/zz/

有一个开源版的控制系统,或者说是修订版的控制系统,名为Subversion (简称为svn),正在快速受到开发者的喜爱。它口碑极佳,可在线下载,完全免费,有大量文字称赞它的高效和实用。它稳定,灵活,能干,安全,免费,开源,并且能够用于任何规模的项目。

以前的控制系统明星软件是CVS, 全称为并行版本系统(Concurrent Versioning System)。 Subversion出现之初只是为了给尊敬的CVS打造一个坚实可敬的基础,并根据多年以来CVS用户总结的经验来加以改进。它在很多方面如此成功,它的普及就是证据。

Subversion 几近通明的使用方法,跨多操作系统平台上大量可用的客户应用,以及Subversion的低成本,和易于管理等因素,使得它不再仅仅被用来管理源代码。对于内容可以被描述为“项目”或者“项目集”的目录结构来说,Subversion提供了一个近乎实时的备份系统。越来越多的BSD, Linux, 和 OpenSolaris用户在传统用途之外,还用Subversion的版本控制功能来保存文件目录。

安装

当Windows提供了一步安装方式时,Subversion在开源社区的迅速走红绝对与它在BSD和Linux软件档案中的易于使用不无关系。例如,在 Debian GNU/Linux中103f安装Subversion,只需用到管理界面和命令语句和命令行客户端就能完成,只要以根用户身份登录,输入apt就可完成 subversion的安装。

类似情况下,在标准的Fedora Core Linux的YUM软件包管理器中安装Subversion,也只需要命令yum。对于FreeBSD, 无论使用pkg还是-C /usr/ports/devel/subversion进行安装都可以,使用哪种方法取决于您想从二元软件安装还是从源代码进行安装。即使MacOS X 也提供了能够安装Subversion的软件档案。

在某些情况下,subversion的版本控制功能要比很多普通备份工具出色很多。最突出的当然是软件开发项目中的源代码控制。另外一个就是文档管理。由于用户的活动,文档和目录的内容会经常发生变化,迫使开发者采用一种方法撤消一些删改,看看过去的版本。一般是通过changelog来实现,在版本控制系统中专业的称呼为 “修订记录”。

一种自动修订记录管理机制对于非专业编程人员来说可能非常熟悉,因为最著名的wiki软件就采用这样的技术来跟踪内容的变化过程,并能够通过返回去掉不好的修改。

做为修订记录机制的一部分,Subversion这样的版本控制系统不仅仅维护复制当前版本文件的中央数据库,还要一路维护从文件进入版本控制以后直到当前所进行的修订日志。任何从事软件开发工作时间够长的人都能告诉你能够返回到已知良好状态的功能有多么重要。这正是任何版本控制软件的中心任务:也是它们得以存在的最主要原因。

Subversion还有更多的功能。例如,当两个人同时编辑同一文件时,它能解决版本冲突的问题。在真实世界里,那些实践经验丰富,经常在版本控制文件中提交工作,在提交变化前先更新本地文件的用户,很少与他人的工作发生冲突。这种少见的情况Subversion也能通过内置的冲突解决方案进行解决。它还支持将主开发线上经过修改的分支与其他开发分支的接合,对不同程度用户的不同程度的校验和升级许可,以及一些其他一些项目经理们会觉得非常有用的性能。

个人文件管理

版本控制系统的另外一个用处就是他们允许您在不同地点,使用多台计算机共同开发同一项目,而无需使用任何USB存储设备或者CD-RW介质。只要你在工作用电脑上安装了版本控制代理软件,并登录版本控制魔法发挥作用的服务器,您就可以找到项目的最新版本并开始工作。

由于同一数据的不同副本在校验副本更新到不同的客户端计算机时自动同步,因此Subversion 这样的控制系统也可用做一套收集在一起的文档的备份系统。这包括您每天的个人文档,以及源代码等;也就是说,如果您将任何小到不需要占用带宽来进行每周的备份的相关数据集合看做是“项目”,就可以利用Subversion来节省复制数据的时间。个人文档目录一般都非常符合这一特点,特别是当您所保存的文件大部分都是几兆大的音乐、视频及高清晰度图片等文件时,绝对适用。

如果你是那种了解日常备份在预防硬件及文件系统故障中的重要意义的用户,你会发现您所进行的不过是日常备份,因为操作Sebversion所要进行也就传统的备份系统配置和向CD-R中复制数据。Subversion所进行的如此简单的个人文件备份能够节省大量时间,或者至少能将你从延迟备份的负担中解放出来,你所需要的只是另外一台运行着Subversion服务器软件的计算机。

由于Subversion并不象Visual SourceSafe和ClearCase这样专属软件的图形化界面那样,指定单一用途,因此它能够很容易的被

登山的故事(什么是XP,设计)

关键字:XP

从前,有一个A型血的人和一个B型血的人去登山。显然A和B有着不同的登山方法。

A到了山脚下,总是先停下来,仔细打量山势。接着,围着山脚转转,看看哪些是小山包,哪个是主峰。然后,设计几条不同的

登山线路,并选择出最好的登山线路作为首选计划。同时,他还考虑到如果首选计划出现问题,则可以启用第二计划或第三计划…

而此时的B几经爬上了第一个小山包。B登上小山包的时候,发现这个小山包不是去主峰的路。B并没有气馁,稍微打量一下环境,立即从小山包上下来,往更高的一个山峰进发…就这样,B无时无刻不在后退中前进,在下坡中上山,已经将A远远的甩在后面。

最后,B成功地登上主峰,而A还在半山腰艰难地攀登。当A终于登上主峰之后,B说了一句很有很有意思的话:你现在知道极限编程的威力了吧!A默然不语…

一位想学登山的新手来向A和B请教登山的方法。A把他的线路图和计划全部给了新手,没有说一句话。新手看都没看,就跑去问B。B意味深长地说:努力,努力,再努力,当你到达山顶的时候,就知道了登山的方法!新手由衷敬佩。

多年以后,A成功地登上了珠穆朗玛峰。据说B倒下的地方离一号营地只有一百米远…

当那位新手终于找到A求教的时候,A还是将所有的登山线路和计划交给了他,依然没有说一句话。

但新手明白:这就是设计

网页美工经验谈/zz/

以下是我做美工的两年生活中一条条总结出来的经验,每一点都是我常用的,虽然不是什么大学问,但我觉得要互相学习才能提高,所以现在拿出来和大家一起分享,如果你觉得实用就拿去试试,然后留个评论,我就很高兴了,不喜欢的可以路过。费话少说,下面正式开始。

1.加载大图片时,显示loading小图片。

这招是我最常用的。当我们要加载一张比较大的图片时,如果能加载图片的同时,显示loading的小图片,那样看起来就人性化很多。当加载完成时, 图片会盖住loading小图片,这是一个很有用的小技巧,我的每个网站都加上了这个功能,不信你可以到这个页面 看,http://www.82xuexi.cn/html/2008-09/245.htm这个页面是我专门做来演示这个示例的,上面我放了一张很大的 图片,应该可以看清加载过程。要实现这个小功能,只要在网站的公共样式表上添加下面这个样式 ,就可以实现了。

img {

background-image:url(loading.gif);

background-position:center;

background-repeat:no-repeat;

}

解释一下上面的代码,懂CSS的站长可以略去这段。第一行“img”指向页面的全体图片元素(看到样式表的优势了吧,只要一句,就能作用于网站的全 体同类元素,不是DIV+CSS的网站站长是不是有想法了?呵呵)。第二行“background-image:url(loadin103fg.gif);”是 指为图片添加一个以图片为背景的背景(读起来有点拗口)。这个loading.gif是你要你自己上传的加载小图片。不过有些网站的images文件夹里 已经有这个图片了,直接用就行,如果你确实不想到处找的话,我这里有一堆,选一个你喜欢的玩玩吧:http://www.82xuexi.cn/html /2008-09/333.htm。第三行:background-position:center;把背景图片居中,这样看起来比较顺眼。第四 行:background-repeat:no-repeat;就是让loading.gif小图片只显示一个,如果没有这句,就用出现很多排列起来的 loading.gif小图片,这要注意一下。

2.选填表单右边显示“可不填”。

这是我最初在QQ网站的留言本上看到的,当时看到个人信息的一些表单旁边写着“可不埴”的时候,真的是感觉非常舒服,你想想,人家好不容易有空给你 留言,你还想人家慢慢看你的留言说明吗?给你留言,当然想简要完事啦。你却动不动跳出个“表单内容不能有空”这不把人家吓跑才怪。这个小技巧可以应用于各 大论坛的用户注册,留言本等地方,不要只在必填框旁边加个红*就算了,这样对于熟悉网站的人来说当然没问题,但你要考虑到各种各样的网民。“可不填”三个 字,就能大大提高用户体验,为什么不试试呢。

3.保证每个页面都有回首页的连接。

为什么要主这个呢?因为我看到很多网站都没注意到这个小细节,有一次我在一个论坛上登陆,成功后,他跳转到另一个页面提示登陆成功,等了十几秒它都 不自动返回,但我又已经顺手把多的页面关掉了,所以,只剩下一个页面了,我又不能返回,他又没有返回首页的链接,一气之下,我就关掉浏览器走人了。所以, 建议站长朋友们有空多检查一下自己的网站,看是不是有些页面是孤独的。

4.在执行AJAX操作时,如果响应时间过长,应提示用户加载超时。

这个在AJAX中,可以使你的程序更人性化的小技巧,不多说了,你看下面的代码就明白。如果你看不明白的话,就不要乱改网站,会出错的。这是一个用户验证的程序片段,注意红色部分。

var timeLast;

//发送信息

function submitSelectItem()

{

var postStr=“uid=”+document.getElementById(“userName”).value+“&pwd=”+hex_md5

(document.getElementById(“passWord”).value);

timeLast=window.setTimeout(“show_timeout()”,15000 );//超过15000毫秒后显示超时

show_waitting();

createXMLHTTP();//创建XMLHttpRequest对象

var url=“ajax/chcekUser.aspx?time=”+TimeDemo();

xmlHttp.open(“POST”,url,true);

xmlHttp.setRequestHeader(“post_content-Type”,“application/x-www-form-urlencoded:charset=UTF-8”);

xmlHttp.onreadystatechange=getResponseRusult;

xmlHttp.send(postStr);

}

//回调函数

function getResponseRusult()

{

if(xmlHttp.readyState==4)//判断对象状态

{

if(xmlHttp.status==200)//信息成功返回,开始处理信息

{

clearTimeout(window.timeLast);

var reint=xmlHttp.responseText;

switch (reint) {

case “1”:

show_success();break ;

case “2” :

show_tryCountOut();break ;

default :

show_error();break ;

}

}

}

}

5.可能的不良后果提前提醒用户。

如果你的页面很大,特别是要用到很多表格时,加载时间可能会很长,这时候要提前告诉用户。“页面可能加载时间比较长,请耐心等待。..。”之类的。

6.拿到美工做给你的页面,一定要测

闲谈GIS的学习(转载)

登陆此论坛数月来,和诸位网友往来交流,受益颇丰。与此同时,也见到一些网友(特别是本科阶段的)对于从事GIS行业的前途和个人发展方向感到有些迷茫。为此,我基于个人的一些经验教训就GIS专业导向和个人发展定位的问题谈一些粗浅看法,和诸位交流,希望对部分网友能有些参考作用。其中疏漏荒谬之处在所难免,还望大家指正。此外,我的一些观点可能和日前ESRIBOY网友贴出的一篇非常有价值的帖子中的内容有所重复,为求行文流畅,结构完整,仍然在此赘述,还望见谅。

GIS发展到今天,已经完完全全成为一个大杂烩。在一个综合性的大型GIS会议上,“搞GIS”的人,谈论的可以是相差十万八千里的东西(一个人可以是在发表一种新的空间索引结构,另一个人则是在展示他用桌面GIS软件画出的几张本应用专业的专题图)。可能有些人认为后者不够“专业”,算不上“搞GIS”,我个人则认为只是分工不同,正是所有这些人员共同构筑起了不断壮大的GIS产业。从另一方面说,GIS涵盖的范围的扩大和涉及的不同专业的增加又使得学习GIS的人往往有重点不分无从下手的感觉,因为有太多的东西可能都有用,好像都应当学,结果很可能是什么都没学好或者正好漏掉了将来工作中要用到的东西。

说实话,有鉴于目前地理信息科学内涵之广大,我个人对于在本科阶段开设一般性的GIS专业持保留态度(有些观点前些天在隔壁数据结构版贴过了,现在再重复一下),特别是如果师资不具备或者教学体系不灵活的话,很容易搞成四不像,还不如老老实实拿应用专业(地理规划地质环境等)的学位。至于对于GIS有特别兴趣的学生,在最后一年到一年半选修几门课,做个设计就可以以XX专业GIS方向毕业了,真正专业化应该放到研究生阶段。不过,三年硕士可能太长,可以模仿英国的课程硕士(taught-course master),开设一年的研究生班(或者双学位班?),根据本科的不同背景来补充选修一些课程并做个设计了事。对于那些真正想钻牛角尖的XDJM,可以继续上两年拿正常的硕士或继续攻博(有RMB的当然可以本科毕业后直接到英国这类地方一年就混个国家承认的硕士然后海龟一把)。从这个角度看,目前大量的GIS专业也许应该改成为“GIS及XX应用专业”(而计算机系里的GIS专业-如果有的话-则应该称为计算机软件及GIS应用或者是软件工程及GIS应用专业)。

话说回来,目前必须面对的现实是大量的GIS专业已经开设,大量的学生已经在读。对于这些XDJM,我个人的建议是要有个侧重点,要么强化计算机方面的技能,要么选择一两个应用领域深化,这样将来就业时的灵活性要大得多(搞不了GIS你至少还有个过得去的专业)。否则的话,计算机比不过计算机科班出身的毕业生,而比其它专业的毕业生又强不了太多;另一方面,应用专业方面可能比计算机毕业生强一些,但是与应用专业科班的水平又差距甚大。这样的知识结构的后果可能是什么都能做点儿但做什么都费劲。对于外行而言,某些应用领域可能很容易入手,而其它一些领域可能很久都 “沉”不下去,因此只有早做准备。

***************

暂且先不谈研究,初略地说,和GIS有联系的人员可以分成几类:

1- GIS软件系统和通用功能模块开发人员;
2- GIS应用系统和应用功能模块开发与应用系统维护人员;
3- GIS软件的直接使用与简单应用开发者;
4- 定制的GIS应用系统的使用者。

我想,上述前三类人员都足可以称为“搞GIS”的。

这三类人员中,第三类其实多数是其它行业(地理,规划,环境,地质等)的专业人员。他们主要是使用通用或专用GIS作为工具对本专业的空间数据进行一些处理,可能也涉及一些宏语言级别上的简单开发。对于这些人,在高教阶段学习几门结合本专业的GIS基础课程应该就足够了。许多在地理规划环境等院系从事GIS研究的人士基本也处在这个层次上。作为“GIS专业”的学生(本科或研究生),将来不论是在教育界或者是在企业界,其定位都应该是在上面的第一二类人员,而一个最关键的问题则是在计算机技术和一个或数个本人比较感兴趣的应用行业的知识之间寻求一个良好的平衡,结合自己的条件能力和所在院系的师资情况,为自己的未来发展制定一个切实可行的计划。挂一漏万地设想一下上述一二类GIS从业人员的具体工作和相关技能:

-GIS软件系统开发:

相对而言,无疑这是计算机专业人员(软件工程,数据库,计算几何,图形学和网络等之综合)的

MySQL创建用户与授权

一, 创建用户:

命令:CREATE USER ‘username’@’host’ IDENTIFIED BY ‘password’;

说明:username – 你将创建的用户名, host – 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password – 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器.

继续阅读