存档

‘应用软件’ 分类的存档

追踪时间的10个给力应用程序

2011年8月30日 tKC 评论已被关闭

本文转自:http://www.jobbole.com/entry.php/481

你是否曾经在做项目时时间不够?你是否不确定你花在每个项目上的时间?

如果你对上述问题的回答是肯定的,那么你知道我说的时间问题。实际上,不了解时间都花在哪了,这是大多数自由职业者都遇到的问题。

今年早些时候,我开始寻找更好追踪时间的方法。我用电子表格已经好几年了,但我想用一些更好的方法。现在我终于可以分享我的收获了。

时间追踪程序的两种形式

经过研究,我发现有两种形式的时间追踪程序:

  1. 一种是帮助你知道时间是怎样花掉
  2. 一种是帮助你利用时间创造收益

由于我总是按项目收费,从来没有按小时收费,因此我主要对第一种时间管理的程序有兴趣。但鉴于有很多第二种管理方式,我也列出一些第二种管理方式。(注:这些程序大多数都不是免费的。在多数情况下,你要有偿使用这些软件。但很多软件会有试用期或演示版。)

为什么时间追踪很重要?

你是否想过,当你成为一名自由职业者时,你是靠时间记录表和工时表完成工作?

实际上,成功的自由职业者应该追踪好时间的原因有如下几点:

  • 众所周知,大多数自由职业者一般都低估了项目所需要的时间。但是,如果你坚持定期记录你做某些项目所花的时间,将来你的估计会更准确,这通常意味着你将会获得更多的收入。
  • 很多自由职业者几乎不知道自己有着浪费时间的工作坏习惯。你也许认为你一天只花了一点点时间看邮件或玩电脑游戏。事实上,你浪费的时间也许超过了你所意识到的。
  • 时间管理帮你把项目分解成几小段。这样做时,你或许能够发现一些多余的工作,或发现如果外包一些工作给别人,则自己的效率更高。再说一遍,追踪时间能够让你收益更多。

阅读全文…

分类: 开发相关, 管理 标签:

程序员常犯的5个非技术性错误

2011年8月30日 tKC 评论已被关闭
一个好的软件开发人员需要培养两种技能:技术技能和非技术技能。不幸的是一些开发者只注重技术的部分,以致养成一些陋习,下面是最常犯的5个非技术性错误:

1. 缺乏自律

Jim Rohn曾经说过:自律是目标和成果之间的桥梁。我一直认为,不论是成为一名软件开发人员,亦或是想在生活的其它任何领域取得成功,自律都是最珍贵的技能之一。事实上,很少有人兼具智慧和自律。

Steve Pavlina强调了自律的5个基本原则“……容忍(Acceptance)、毅力(Willpower)、努力(Hard Work)、勤勉(Industry)以及坚持不懈(Persistence)。将每一个单词的首字母提出,构成一个缩略词:鞭子(A WHIP)。这样更便于记忆,因为很多人总是把自律和鞭策自我联系在一起。……” 我力荐大家阅读Steve Pavlina写的关于自律的一系列文章

正如我以前的文章每天写出好代码的5个建议中解释的一样,对于自律,我的个人做法是每天遵循以下步骤

  • 将一天要做的事情列成清单。
  • 一次只做一件事。
  • 正确做事。
  • 不要半途而废。
  • 与其道歉,不如补救,而放弃最不可取。

阅读全文…

分类: 开发相关 标签:

每天写出好代码的5个建议

2011年8月30日 tKC 评论已被关闭

本文转自:http://www.jobbole.com/entry.php/971

成为一个优秀的程序员和成为其他优秀的专业人员一样,需要尽可能多的做一些有质量的工作。有句很流行的话可以总结:做,正确做事,立马就做。(Do it. Do it right. Do it right now)

1. 将一天要做的事情列成清单

完成复杂活动(activity)的最好方法是将其拆分成简单的各项活动。每天早上,将你一天要完成的活动进行拆分,然后制定一个相应的日程安排表,这样能够帮助你:

  • 更好的理解这个活动。
  • 每天都有一个集中的目标。
  • 提高你的估计能力,几天之后,你会发现你能预测一天的工作量。

阅读全文…

分类: 开发相关 标签:

我的10个开发原则

2011年8月30日 tKC 评论已被关闭

本文转自:http://www.jobbole.com/entry.php/996

在从事软件开发若干年之后,我已经对“软件应该如何设计”有些心得。实际上,我有了这样一个结论:所有的事情最后都浓缩成10个原则,如果我们很好地执行这些原则,任何软件开发都应该会取得成功。

1. 客户至上

“如果我们没有关注客户……其他人将会取代我们。”

从客户的角度出发,客户首先会把焦点集中在产品开发的真正价值,其他方面(例如概念、需求、技术等等)在项目中是次要的。

不关注客户,就是程序员常犯的5个非技术性错误的其中之一。

2. 代码质量

即使代码质量是一些非常主观性的东西,(甚至有人说所有的代码都有问题),它却影响着很多重要的方面,比如:如何去维护应用程序,或者如何去带一个新手程序员。

在我看来,代码质量的指标在于:简单性、可读性、健壮性和可测试性。其他特性,例如外观或者可扩展性,如果没有要求的话,在你的应用程序中可以灵活设计。

3. 授权

软件开发过程中最重要的资源是人力,而非技术。人力决定产品的好坏,但他们需要得到授权。

授权是一个鼓励开发者积极做事和制定决策的过程。一些高效的机构的授权体现为:指导\配合或者委派。 不知你是否也有过和Derek相同的经历,每隔5分钟就有员工跑过来向他请示这个和那个问题?如果有,可以通过《管理者的困境:放权或者崩溃》这篇文章看看Derek如何解决这个问题的。

阅读全文…

分类: 开发相关 标签:

关于编程,大学没有传授的10件事

2011年8月30日 tKC 评论已被关闭

本文转自:http://www.jobbole.com/entry.php/1097

我依然记得当我完成学业时,我是多么的天真。那时我深信自己已经准备好进入任何一家软件公司,并开始成为一个顶级的开发人员。显然,开始工作后没多久我就意识到,还有很多事是我所不了解的。

在不断吸取经验的同时,我一直在努力学习那些我从来没有学过的,但却是成为优秀的开发人员所应了解的基本知识。以下是我希望自己能在学校就学到的10件事。

1. 我们总是错的

开发人员有着相当大的自我意识,包含了一些其他的非技术性缺陷,这也正是为什么我们很难发现我们做错了什么。我看到过很多无休止的设计讨论,开发人员不断地发表自己的想法……呵呵!猜猜怎样……我们都错了,唯一的区别就是我们犯错的离谱程度不同。

理解并接受这个事实非常重要,我们只有这样做了,才能敞开心胸去听听别人的意见,采用他们的想法,来得出一个更好的解决办法。

2. 事情若有可能出错,就一定会出错

也就是说“希望驱动开发(hope driven development)”,如果你对于某些事并不确定,如果你发现自己使用了“应该”这个词,那你就麻烦了。

而这只有一个解决方案,尽己所能去保证它不会出错,这可能意味着你需要编写一个测试、调试并验证需求……

3. 所有的代码都烂

在我抱怨那些我碰到过的代码十年之久后,我得出了一个精辟的结论,所有的(包括我自己写的)代码,都烂。当然,烂还是有等级之分的,但即便是我见过写得最好的代码,也是难以读懂的。

这并不意味着把你的代码写得更好是没有意义的,恰恰相反,最好和最坏的代码还是有天壤之别的。

阅读全文…

分类: 开发相关 标签:

手动给Notepad++增加/恢复右键菜单

2011年8月26日 tKC 评论已被关闭
Notepad++有安装版和压缩版,安装版装支持鼠标右键菜单直接编辑文件,而压缩版没有提供选项增加这个功能,理论上任何程序都可以做到右键菜单中。
通过参考安装版的Notepad版的注册表增加内容,可以发现,以下内容实现了右键菜单
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\Notepad++]
@="{00F3C2EC-A6EE-11DE-A03A-EF8F55D89593}"
[HKEY_CLASSES_ROOT\CLSID\{00F3C2EC-A6EE-11DE-A03A-EF8F55D89593}]
@="Notepad++"
[HKEY_CLASSES_ROOT\CLSID\{00F3C2EC-A6EE-11DE-A03A-EF8F55D89593}\InprocServer32]
@="C:\\Program Files\\Notepad++\\NppShell_04.dll"
"ThreadingModel"="Apartment"
[HKEY_CLASSES_ROOT\CLSID\{00F3C2EC-A6EE-11DE-A03A-EF8F55D89593}\Settings]
"Title"="Edit with &Notepad++"
"Path"="C:\\Program Files\\Notepad++\\notepad++.exe"
"Custom"=""
"ShowIcon"=dword:00000001
"Dynamic"=dword:00000001
"Maxtext"=dword:00000019
如果你的程序路径是默认的,可以把上面文字存成add.reg文件导入就可以了。
分类: 开发相关 标签:

Windows下安装配置Apache+SVN+域认证

2011年8月26日 tKC 评论已被关闭
SVN用户多了之后管理会变得越来越繁琐,由于我有Windows域环境,于是考虑让SVN使用域用户认证。
当然SVN本身是没办法支持域认证的,我们要依赖Apache,Apache上众多模块可以满足我们的需求,本例中我们使用的均是官方提供的模块。
先下载需要的软件
Apache:在http://apache.freelamp.com//httpd/binaries/win32/ 下面有最新版本,这里我下载的是httpd-2.2.17-win32-x86-openssl-0.9.8o.msi
SVN服务端有很多,有兴趣的可以去http://subversion.apache.org/packages.html找自己喜欢的,我下载的是http://sourceforge.net/projects/win32svn/上的Setup-Subversion-1.6.13.msi
好了,经过N个下一步以后,重启使svn的path目录生效,接下来我们开始配置
首先确定一下SVN主目录,如D:\SVN,我们所有SVN库都放到这个文件夹下
然后先创建一个库用于配置测试
cd d:\svn
svnadmin create test  
接下来拷贝SVN的模块文件(mod_authz_svn.so和mod_dav_svn.so在Subversion\bin目录下)到Apache的modules文件夹下
修改Apache的conf/http.conf文件
增加模块,找到
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so  
修改为
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so  
增加svn和域认证的配置,这里我们使用svn为主目录做配置,不单独配置库的目录
DAV svn
# SVNPath c:/subversion/repositories/repo1
SVNParentPath d:/svn
SVNListparentPath on
Order allow,deny
Allow from all
AuthType Basic
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
AuthName "SVN Server"
AuthzSVNAccessFile d:/svn/svn.authz
AuthLDAPURL "ldap://dc.local/DC=dc,DC=local?sAMAccountName?sub?(objectClass=*)"
AuthLDAPBindDN "CN=apache_bind,CN=users,DC=example,DC=com"
AuthLDAPBindPassword "password"
#AuthLDAPFollowReferrals off
AuthLDAPGroupAttributeIsDN on
AuthLDAPGroupAttribute member
#SSLRequireSSL
#require ldap-group CN=svnusers,CN=Users,DC=example,DC=com
require valid-user
 
根据自己实际情况在进行修改,然后再创建d:/svn/svn.authz文件,这里为了测试方便,所有域用户都可以读写,生产应用的话根据自己需要设置权限即可
[/]
* = rw  
最后重启一下Apache的服务就大功告成啦!
分类: 开发相关 标签:

使用Outlook插件RepMailDel删除重复邮件

2011年8月25日 tKC 评论已被关闭

免费,日文版,只能用于 Outlook 2003。虽然不能设置重复的判断条件,但缺省的判断比较确,而且比较删除的速度快。在中文环境下有些乱码,但功能正常。详细还可参看作者的Blog

(使用方法:打开 Outlook 2003 ,“工具”菜单-〉“选项”子菜单-〉“其他”标签-〉“高级选项”按钮-〉“COM 加载项”按钮-〉“添加”按钮,然后选中下载解压后得到的DLL文件即可。安装成功后在“工具”菜单里会多出一个“重複メール削除”子菜单。)

插件下载地址: http://rc30.jp/~ando/RepMailDel110.lzh

分类: Office 标签: