Eclipse快捷键大全

Ctrl+1 快速修复(最经典的快捷键,就不用多说了)
Ctrl+D: 删除当前行
Ctrl+Alt+↓ 复制当前行到下一行(复制增加)
Ctrl+Alt+↑ 复制当前行到上一行(复制增加)
Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)
Alt+↑ 当前行和上面一行交互位置(同上)
Alt+← 前一个编辑的页面
Alt+→ 下一个编辑的页面(当然是针对上面那条来说了)
Alt+Enter 显示当前选择资源(工程,or 文件 or文件)的属性
Shift+Enter 在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后)
Shift+Ctrl+Enter 在当前行插入空行(原理同上条) 继续阅读 »

图书管理系统

==============图书管理系统==============

- 框架
- 图书的分类
- 用户的访问
- 管理员的操作
- 注册新用户
- 书库书籍的显示和查询

- 功能
- 图书的分类
1. 创建图书的Class
2. 拥有以下信息:书籍ID号,书名,作者,价格,库存余书

- 用户的访问
1. 查找书籍
2. 借书
3. 还书

- 管理员的权限
1. 添加书籍
2. 删除书籍
3. 查询借书的人和时间
4. 修改书籍信息

学习hg(Mercurial)版本控制—转自liluo.org

今天开始学习清风老师提到的第1点——版本控制工具。来了解一下版本控制工具,主要有2种:集中式版本管理和分布式版本管理,刚好和清风老师提到的SVN、Hg(Mercurial)对号入座,当然了分布式版本管理工具另外还有大名鼎鼎的Git。

经过对比之后选择从Hg入门,首先是因为清风老师的推荐,其次是Google Code支持 SVN和Hg(Mercurial),然后还有就是Hg是用Python编写。官方wiki使用说明和帮助文档很详细。那么就开始吧:

一、下载安装

到这里http://mercurial.selenic.com/downloads/选择相应版本下载安装,我这里使用的是OpenSUSE的zypper in mercurial
安装完成后在终端中输入hg -v就会显示当前版本和基本命令等信息。

二、基本命令

Init是指初始化,也就是创建一个空的仓库。

Clone是指创建仓库的复本,创建的来源可以是一个http或ssh链接表示的仓库,也可以是本地仓库。

Commit是指提交,即接受所有的改动,将当前版本作为最新版本(也叫tip)。注意这个提交和集中式SCM不同,它只提交的本地仓库,而且本地 仓库会 详细记录所有的变动(称为变更集或改动集)。因此不用客气,多提交几次也没关系,因为不影响别人的仓库。而如果怕影响自己的话,可以clone一个复本, 再对复本进行改写和提交。

Revert是指恢复,即撤销所有的改动,恢复到未更改的状态。右键菜单里你是找不到它的,原因后面再提。

Pull的意思是拉,是将其他仓库有,而当前仓库没有的变更集“下载”到当前仓库。不过这只是添加了变更集,文件并不会改动。(变更集有一个唯一的hash标识,所以很容易区分。)

Update的意思就是更新,当获取了其他变更集,且需要更改以保持和其他仓库一致时,就可以执行它了

Push的意思是推,就是将当前仓库的变更集“上传”到其他仓库去。其他仓库必须支持该操作,并可能需要经过验证。如果是从本地仓库A push到本地仓库B,就相当于用B pull A。此外,push也不会更新仓库的版本,因为它是共享的,需要的人直接选择想要的版本即可。

Merge就是指合并。当一个文件同时被多次修改,并存放在多个仓库时,要获得一个统一的版本,就需要合并。对于翻译而言,一个文本可能同时会分给多个人,于是合并时只需要接受每个人的改动即可。

下面是一些实例:

克隆仓库
$ hg clone http://www.selenic.com/repo/hello my-hello

检查仓库历史
$ cd my-hello
$ hg log

编辑hgrc文件
cd my-hello/.hg
sudo vim hgrc

查看状态(是否有变更)
$ hg status
M hello.c
以 M 开头的行意思就是hello.c文件修改过

使用 diff 命令检查文件实际的改变
$ hg diff
diff -r 82e55d328c8c hello.c
— a/hello.c Fri Aug 26 01:21:28 2005 -0700
+++ b/hello.c Fri Sep 30 10:27:47 2005 +0800
@@ -12,5 +12,6 @@
int main(int argc, char **argv)
{
printf(“hello, world!\n”);
+ printf(“sure am glad I’m using Mercurial!\n”);
return 0;
}

放弃变更
$ hg revert

创建一个变更集(提交)
$ hg commit

tip 命令来找出最后一个变更集
$ hg -q tip

把别的仓库中的 ChangeSet Pull 到本仓库
$ hg pull ../my-hello-new-output

在 Pull 后, 缺省情况下 Mercurial 不更新工作目录。这意味着虽然 Repository 现在有变更集, 但在工作目录中的文件仍然是Pull 之前老的内容。我们可以用以下Mercurial的提醒来 Update 这个文件 (也包括所有其它 Pull 时改变的文件)。
$ hg update

export 命令
必需提供一个 Tag, 版本号或 变更集号 来告诉 Mercurial 有什么进入了 导出(Export)
$ hg export  tip

合并改变
$ hg merge

启用hg自带的server
sudo hg serve -p 8002

三、当然了,最主要是把版本控制运用到项目中去,养成良好的习惯,以后要多加练习。

四、相关教程:
官网维基http://mercurial.selenic.com/wiki/ChineseMercurial
新手教程http://mercurial.selenic.com/wiki/ChineseTutorial
快速指南http://mercurial.selenic.com/wiki/ChineseQuickStart
实例教程 MercurialByExample.pdf
Mercurial权威指南 http://hgbook.red-bean.com/read/
IBM developerworks http://www.ibm.com/developerworks/cn/opensource/os-cn-mercurial/

五、参考内容
《为什么我们要放弃Subversion》
http://www.infoq.com/cn/articles/thoughtworks-practice-partiv
《分布式的版本控制工具》
http://blog.codingnow.com/2008/01/distributed_version_control.html
《分 布式版本控制(一)》
http://blog.csdn.net/Raptor/archive/2008/02/29/2133797.aspx
《分 布式版本控制(二)》
http://blog.csdn.net/Raptor/archive/2008/03/04/2145492.aspx
《我 与Mercurial 系列等几篇文章》
http://weavesky.com/2008/01/25/mercurial-and-me/
译文《Git 与 Mercurial 的分析》
http://blog.twpug.org/416
原文《Analysis of Git and Mercurial》
http://code.google.com/p/support/wiki/DVCSAnalysis

hg版本管理工具

下载:
http://www.selenic.com/mercurial/release/

 

使用:
1.初始化
假设你的源代码目录为proj,执行以下步骤可以建立初始的repository
$ cd proj
$ hg init         //生成repository
$ hg add /fullpath/filename //加入文件 继续阅读 »

emacs操作方法总结

Emacs快捷键的总结

文件操作

C-x C-f 打开文件,出现提示时输入/username@host:filepath可编辑FTP文件
C-x C-v 打开一个文件,取代当前缓冲区
C-x C-s 保存文件
C-x C-w 存为新文件
C-x i 插入文件
C-x C-q 切换为只读或者读写模式
C-x C-c 退出Emacs 继续阅读 »

我的Emacs的最初配置

;;设置编码
(set-language-environment ‘UTF-8)

;;改变默认路径
(setenv “HOME” “D:/emacs”)
(setenv “PATH” “D:/emacs”)

;;set the default file path
(setq default-directory “~/”)

; 显示列号

(column-number-mode t) 继续阅读 »

财富?《黑客与画家》里的观点

工作赚钱是在积累财富吗?积累金钱就等于增加财富吗?

《黑客与画家》第六篇“如何创造财富”提到一个非常直接和简明的概念:财富是你真正需要的东西。我们需要的东西,比如食物、服装、住房、汽车,再如需要某种服务,如远途传送某个物品(快递)、资金安全(银行提供代存空间)。为什么许多人都会说时间是财富?根据他的定义,因为时间是很多人都需要的。

我觉得这个概念很值得记住。 继续阅读 »

一个Python程序员的进化

不久前,在互联网上出现了一篇有趣的文章,讲的是对于同一个问题,不同层次的Python程序员编出的Python代码显示出了不同的风格,代码都很简单,有趣。

编程新手

  1. def factorial(x):  
  2.     if x == 0:  
  3.         return 1  
  4.     else:  
  5.         return x * factorial(x - 1)  
  6. print factorial(6) 

一年编程经验(学Pascal的)

  1. def factorial(x):  
  2.     result = 1 
  3.     i = 2 
  4.     while i <= x:  
  5.         resultresult = result * i  
  6.         ii = i + 1  
  7.     return result  
  8. print factorial(6)  继续阅读 »

PHP学习之路(1)Smarty的配置.

配置Smarty_inc.php

 

include_once(“Smarty/Smarty.class.php”); //包含smarty类文件
$smarty = new Smarty(); //建立smarty实例对象$smarty
$smarty->config_dir=”Smarty/Config_File.class.php”; //目录变量
$smarty->caching=false;//是否使用缓存
$smarty->template_dir =”./templates”;//设置模板目录
$smarty->compile_dir=”./templates_c”;//设置编译目录
$smarty->cache_dir=”./smart_cache”;//缓存文件夹

//————————————–
//左右边界符,默认为{}
//————————————–
$smarty->left_delimiter=”{“;
$smarty->right_delimiter=”}”;

————————————————————————–

$smarty->assign(“模板变量”,”值”);
$smarty->display(“模板名称”);

————————————————————————–

模板循环

{section name=”XX” loop=$XXX}
{$XXX[XX].name}
{sectionelse}
</section>

三个苹果改变了世界

三个苹果改变了世界:一个诱惑了夏娃、一个砸醒了牛顿、一个握在乔布斯手里。这三个苹果代表了三个阶段:性欲、求知和装B,是人类进步的阶梯。我们已然进入欲望膨胀的最高境界!