编程修养(转)

编程修养(转)

文章来源:http://www.csdn.net
文章作者:haoel

编程修养

什么是好的程序员?是不是懂得很多技术细节?还是懂底层编程?还是编程速度比较快?我觉得都不是。对于一些技术细节来说和底层的技术,只要看帮助,查资料就能找到,对于速度快,只要编得多也就熟能生巧了。
我认为好的程序员应该有以下几方面的素质:
1、有专研精神,勤学善问、举一反三。
2、积极向上的态度,有创造性思维。
3、与人积极交流沟通的能力,有团队精神。
4、谦虚谨慎,戒骄戒燥。
5、写出的代码质量高。包括:代码的稳定、易读、规范、易维护、专业。
这些都是程序员的修养,这里我想谈谈“编程修养”,也就是上述中的第5点。我觉得,如果我要了解一个作者,我会看他所写的小说,如果我要了解一个画家,我会看他所画的图画,如果我要了解一个工人,我会看他所做出来的产品,同样,如果我要了解一个程序员,我想首先我最想看的就是他的程序代码,程序代码可以看出一个程序员的素质和修养,程序就像一个作品,有素质有修养的程序员的作品必然是一图精美的图画,一首美妙的歌曲,一本赏心悦目的小说。
我看过许多程序,没有注释,没有缩进,胡乱命名的变量名,等等,等等,我把这种人统称为没有修养的程序,这种程序员,是在做创造性的工作吗?不,完全就是在搞破坏,他们与其说是在编程,还不如说是在对源程序进行“加密”,这种程序员,见一个就应该开除一个,因为他编的程序所创造的价值,远远小于需要在上面进行维护的价值。
程序员应该有程序员的修养,那怕再累,再没时间,也要对自己的程序负责。我宁可要那种动作慢,技术一般,但有良好的写程序风格的程序员,也不要那种技术强、动作快的“搞破坏”的程序员。有句话叫“字如其人”,我想从程序上也能看出一个程序员的优劣。因为,程序是程序员的作品,作品的好坏直截关系到程序员的声誉和素质。而“修养”好的程序员一定能做出好的程序和软件。
有个成语叫“独具匠心”,意思是做什么都要做得很专业,很用心,如果你要做一个“匠”,也就是造诣高深的人,那么,从一件很简单的作品上就能看出你有没有“匠”的特性,我觉得做一个程序员不难,但要做一个“程序匠”就不简单了。编程序很简单,但编出有质量的程序就难了。
我在这里不讨论过深的技术,我只想在一些容易让人忽略的东西上说一说,虽然这些东西可能很细微,但如果你不注意这些细微之处的话,那么他将会极大的影响你的整个软件质量,以及整个软件程的实施,所谓“千里之堤,毁于蚁穴”。
“细微之处见真功”,真正能体现一个程序的功底恰恰在这些细微之处。
这就是程序员的–编程修养。我总结了在用C/C++语言(主要是C语言)进行程序写作上的三十二个“修养”,通过这些,你可以写出质量高的程序,同时也会让看你程序的人渍渍称道,那些看过你程序的人一定会说:“这个人的编程修养不错”。
————————

01、版权和版本
02、缩进、空格、换行、空行、对齐
03、程序注释
04、函数的[in][out]参数
05、对系统调用的返回进行判断
06、if 语句对出错的处理
07、头文件中的#ifndef
08、在堆上分配内存
09、变量的初始化
10、h和c文件的使用
11、出错信息的处理
12、常用函数和循环语句中的被计算量
13、函数名和变量名的命名
14、函数的传值和传指针
15、修改别人程序的修养
16、把相同或近乎相同的代码形成函数和宏
17、表达式中的括号
18、函数参数中的const
19、函数的参数个数…

我的VSFTP配置文件讲解(附配置文件)

# Example config file /etc/vsftpd.conf

listen=YES

#listen_ipv6=YES
#
# Allow anonymous FTP? (Beware – allowed by default if you comment this out).
anonymous_enable=YES
#anon_root=/home/ftp#匿名用户登录时目录,默认为/home/ftp
local_enable=YES #是否启用本地用户
#local_root=/home/ftp #本地用户登录时目录
#write_enable=YES #是否允许本地用户写
#local_umask=022
#anon_upload_enable=YES #是否允许匿名用户上传
#anon_mkdir_write_enable=YES #是否允许匿名用户新建目录
#dirmessage_enable=YES #是否允许改变目录时显示目录下.message中的内容
#
# Activate …

安装vsftp

安装vsftp

转自http://forum.ubuntu.org.cn/weblog_entry.php?e=1471
2006-9-13 周三, 上午11:19

在新立得中安装vsftp
命令窗口提示:
正在预设定软件包 …
选中了曾被取消选择的软件包 ssl-cert。
(正在读取数据库 … 系统当前总共安装有 92256 个文件和目录。)
正在解压缩 ssl-cert (从 …/ssl-cert_1.0.13_all.deb) …
选中了曾被取消选择的软件包 vsftpd。
正在解压缩 vsftpd (从 …/vsftpd_2.0.4-0ubuntu4_i386.deb) …
正在设置 ssl-cert (1.0.13) …

正在设置 vsftpd (2.0.4-0ubuntu4) …
正在添加系统用户 ftp…
Adding new …

转自wiki 快速设置指南/GutsyGibbon

快速设置指南/GutsyGibbon
出自Ubuntu中文
http://wiki.ubuntu.org.cn/%E5%BF%AB%E9%80%9F%E8%AE%BE%E7%BD%AE%E6%8C%87%E5%8D%97/GutsyGibbon

当你刚刚安装完毕之後,我们来花10分钟设置一下系统,让其有一个更加舒适的中文环境。──本文的作用

目录
[隐藏]

* 1 前言
* 2 修改源并更新你的(k/x/ed)ubuntu
* 3 设置系统中文环境支持
o 3.1 安装语言包
o 3.2 scim输入法安装及设置
o 3.3 fcitx输入法安装及设置(Kubuntu下推荐使用)
o 3.4 安装文泉驿字体(可选)
o 3.5 解决PDF电子文档的中文乱码
* 4 安装JAVA环境支持
* 5 安装QQ软件(可选)
o 5.1 安装EVA,Kubuntu推荐使用
o …

iptables配置工具比较

iptables配置工具比较

简介

在过去几年中,Linux作为防火墙平台的应用显著增长。从早期1.2版内核的ipfwadm开始,Linux的防火墙代码也走过了很长一段路程了。在 2.4版的Linux内核中,使用了netfilter体系。在最新的2.4版中,Linux大大加强了安全性,例如:更好的加密支持和 netfilter体系的使用。netfilter具有完全的向后兼容性。

本文将对iptables的配置做一个综述并且重点介绍一些iptables的配置工具。本文的讨论将着眼于Linux内核的IP防火墙以及其各种界面的配置工具,比如:GUI或者脚本(shell、Perl或者特定的配置语言)。使用这些工具能够简化iptables的配置减少配置的错误。关于 iptables的知识请参考Rusty Russell写的Linux iptables HOWTO。

使用命令行配置iptables的困难

使用iptables的命令行接口来配置iptables防火墙对一个人来说是一个挑战,用户很难指定所有IP报文的行为。用户需要对 TCP/IP和应用层协议有较深的了解。象其前辈ipchains一样,iptables把IP过滤规则归并到链中,IP报文遍历规则链接受处理,还可以送到另外的链接受处理,或者最后由默认策略(ACCEPT、DROP、REJECT)处理。有些网络应用程序比其它一些程序更容易穿过防火墙,因此需要理解网络连接的建立和断开。

我们看一下POP3协议,这是最简单的协议之一。允许所有向内目标端口是110的报文通过通过无法解决所有的管理问题,因为这样只能使客户端向发出申请,而服务器却无法应答。另外,如果使用网络地址转换(NAT)和其它方式的报文转发,也存在许多问题。因为防火墙的配置将影响到整个企业的安全,所以应该特别小心。下面将大概地讨论iptables的配置,要获得更多细节请参考Linux iptables HOWTO

iptables的命令行选项

在进入这时的讨论之前,我们看一下iptables命令行选项的一个总结。

规则链维护选项

1.建立新的规则链(-N)
2.删除一个空的规则链(-X)
3.改变一个内置规则链的策略(-P)
4.列出一条规则链中的规则(-L)
5.擦写一条规则链中的规则(-F)

规则维护

1.在一条规则链中加入一条新的规则(-A)
2.删除一条规则链中某个位置的规则(-D)

iptables的优点

在讨论各种iptables配置工具之前,让我们看一下iptables的优点,尤其是netfilter比ipchains具有的优势。

iptables允许建立状态(stateful)防火墙,就是在内存中保存穿过防火墙的每条连接。这种模式对于有效地配置FTP和DNS以及其它网络服务是必要的。

iptables能够过滤TCP标志任意组合报文,还能够过滤MAC地址。

系统日志比ipchains更容易配置,扩展性也更好。

对于网络地址转换(Network Address Translation)和透明代理的支持,netfilter更为强大和易于使用。

iptable能够阻止某些DOS攻击,例如SYS洪泛攻击。

iptables配置工具

现在,我们看一下Linux iptables的一些配置工具。我主要关注每个工具的特征、弹性和易用性。我们将讨论以下的工具:

MonMotha’s …

iptables中文Man

iptables中文Man- –
from:http://antlinux.bokee.com/869403.html

总览
用iptables -ADC 来指定链的规则,-A添加 -D删除 -C 修改
iptables – [RI] chain rule num rule-specification[option]
用iptables – RI 通过规则的顺序指定
iptables中文Man

总览
用iptables -ADC 来指定链的规则,-A添加 -D删除 -C 修改
iptables – [RI] chain rule num rule-specification[option]
用iptables – RI 通过规则的顺序指定…

mp3乱码解决方案

来自:http://admin.blogcs.org/mt-2007.cgi/7525

前记:用beep-media-player && Rhythmbox && mpd播放mp3文件如果有乱码,那就像看到很好的一部毛片,可惜它是有码的,真不知道多少人想fuck那个导演(PS:希望我们宿舍的驼导不会走这条不归路)!高手也许会把马赛克处理掉,那么我们就试着将乱码解决吧!

Description:
乱码多出现在播放cjk(中日韩)音乐的时候,如果你用bmp,一个不错而简便的方法是改preferences中的编码设置,其他的看来只能转换文件的编码了!

Method:

将歌曲编码转换为utf8
假设歌曲编码都是GBK的,注意只是假设(先切换到歌曲目录):

sudo apt-get install python-mutagen
find . -iname “*.mp3” -execdir mid3iconv -e GBK {} \;

当然你也可以用java -jar id3iconv-0.2.1.jar -e GBK /path/*.mp3来实现编码的转化

基本上现在你就可以享受没有乱码的世界了,下载新歌曲的时候记得转化一下!

如果你用Music Player Daemon(MPD)&&MPC来播放音乐,可能会遇到和Tag有关的问题,详细请参考Music Player Daemon(MPD)&&MPC

beep-media-player的特殊解决方法
除了用mpd来播放音乐外,bmp也是我喜欢的播放器:

右键–>Preferences–>Plugins–>MPEG …

w3m 用法

安装:
sudo apt-get install w3m w3m-img

Back—————-(b)
Select Buffer——-(s)
Select Tab———-(t)
View Source———(v)
Edit Source———(e)
Save Source———(S)
Reload————–(r)
——————————-
Go Link————-(a)
on New Tab——–(n)
Save Link———–(A)
View Image———-(i)
Save Image———-(I)
View Frame———-(f)
——————————-
Bookmark————(B)
Help—————-(h)
Option————–(o)
——————————-
Quit—————-(q)

类别:默认分类 | …

ubuntu GUI备份软件

ubuntu GUI备份软件

通过安装sbackup,再配合安装与sbackup对应的还原软件, 可以超过windwos系统还原的效果,但不能把ubuntu折腾捣鼓得过度:要能进到桌面,因为这个sbackup是个图形界面的软件
如果不能进桌面,一般
sudo dpkg-reconfigure xserver-xorg
即可

另外,我们也会经常会修改nautilus相关的配制,比如面板,对nautilus的配制进行备份可以安装:
sudo apt-get install gnome-reset
安装好后,点系统——>首选项——–>备份首选项
备份好后,如果有一天想恢复成原样,则
点系统——>首选项——–>恢复首选项…

以下软件请根据个人需求安装,慎用!

以下软件请根据个人需求安装,慎用!

sudo apt-get install virtualbox#华主席推荐 2007年年度最佳软件,最佳编辑选择奖得主…..
sudo apt-get install ntfs-3g ntfs-config #ntfs写入支持,装完后运行ntfs-config,把两个钩打上即可。楼下方法作废
sudo apt-get install googleearth googlizer gtalk#google相关,skyx友情提示:不推荐马甲 gtalk
sudo apt-get install ghex #GNOME 上的十六进制文件编辑器
sudo apt-get install kvm #Full virtualization on x86 hardware 华主席推荐
sudo apt-get install vmware-player #Free …