代码量不能决定程序的进度和质量

1、用代码行数来衡量编程的进度,就如同用重量来衡量飞机的制造进度。—— 比尔·盖茨

2、老板跑到程序员身后,看了看代码。 老板:才写了这么点啊? 程序员:如果再给我点时间,我会写得更短些! 老板:你可以回家休息了! 程序员:...

3、程序员有哪些借口可以让自己写出低质量的代码?

来自知乎匿名评论:

我很久很久以前曾经经历的一个公司特别傻比,人力资源和svn管理员不懂程序。

作为服务端的主程序,一直以来都是代码精简,效率最优,没有冗余为毕生追求。

突然我无意中发现了一个秘密,我的绩效居然不如几个公司刚招进来的新手。

我每天刻苦努力,优化代码,让公司的服务端7*24稳稳跑在服务器上,还一心研究各种热切换,换来绩效考核好久没有优秀了。

这究竟是为什么呢,后来好心人告诉我,人力资源说了,他们看了svn的日志记录,其他人工作很努力,每天提交很多代码,每天新编写很多很多代码文件,贡献了好多好多的劳动成果。

而看看你这个号称技术排第一的家伙,根本就没干活嘛,3个月下来,你一共就写了这么十来个cpp和.h,每天改来改去就这么几个文件,还好多天差不多行数的位置回改,根本就一直在偷懒。

我听完以后以后直接口吐鲜血,无语至极了。

然后我就申请离职了,在那个公司剩下不多的日子了,我为了心安理得的拿最后2个月的工资,为了让老板知道其实我一直很努力,我在最后一个月更新了几千个文件,让服务端的内核稳定度下降了好几个档次,内存消耗上涨了好多个数量级,并且把容易读,容易后续扩展的部分,全部用c++最高级的模版进行扩展,同时删掉了我以前用汇编写的优化代码。

嗯,我想以后这个公司估计会倒闭,我走了以后,再也没有人能维护这份代码了,估计3个月以后,我自己也搞不定了。

然后我就离职了,离职之前老板大夸我厚道,最后一个月还给公司做了这么多的事情,别人走都是删代码,我居然还毫无保留的为公司做出贡献。

然后我走了不到半年,公司就呵呵了。

我想那是我此生唯一写垃圾代码写的心安理得的一次机会了。

Linux下禁止删除某文件

由于某种特殊要求,某个程序必须以root权限运行,但我又不想让它修改或者删除某个文件,怎么办呢?
之前一直折腾chmod和chown,但root权力太大了,不管怎么设置权限,root都能改。
在网上搜索了一下才知道Linux下有个命令chattr,它是修改文件在磁盘上的属性。通过-i可以实现我想要的功能。

chattr [-RV][-v<版本编号>][+/-/=<属性>][文件或目录...]

属性值:
A:即Atime,告诉系统不要修改对这个文件的最后访问时间。
S:即Sync,一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘。
a:即Append Only,系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件。
b:不更新文件或目录的最后存取时间。
c:将文件或目录压缩后存放。
d:当dump程序执行时,该文件或目录不会被dump备份。
D:检查压缩文件中的错误。
i:即Immutable,系统不允许对这个文件进行任何的修改。如果目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件。
s:彻底删除文件,不可恢复,因为是从磁盘上删除,然后用0填充文件所在区域。
u:当一个应用程序请求删除这个文件,系统会保留其数据块以便以后能够恢复删除这个文件,用来防止意外删除文件或目录。
t:文件系统支持尾部合并(tail-merging)。
X:可以直接访问压缩文件的内容。

参数:
-R 递归处理,将指定目录下的所有文件及子目录一并处理。
-v<版本编号> 设置文件或目录版本。
-V 显示指令执行过程。
+<属性> 开启文件或目录的该项属性。
-<属性> 关闭文件或目录的该项属性。
=<属性> 指定文件或目录的该项属性。

Linux流量监控工具iftop

介绍

iftop是一款实时流量监控工具,监控TCP/IP连接等,缺点就是无报表功能。必须以root身份才能运行。

安装

wget http://linux.linzhihao.cn/shell/iftop.sh
sh iftop.sh

实例

默认是监控第一块网卡的流量

iftop

监控eth1

iftop -i eth1

直接显示IP, 不进行DNS反解析

iftop -n 

直接显示连接埠编号, 不显示服务名称:

iftop -N

显示某个网段进出封包流量

iftop -F 192.168.1.0/24 or 192.168.1.0/255.255.255.0

进入iftop的命令
进入iftop画面后的一些操作命令(注意大小写)
按h切换是否显示帮助;
按n切换显示本机的IP或主机名;
按s切换是否显示本机的host信息;
按d切换是否显示远端目标主机的host信息;
按t切换显示格式为2行/1行/只显示发送流量/只显示接收流量;
按N切换显示端口号或端口服务名称;
按S切换是否显示本机的端口信息;
按D切换是否显示远端目标主机的端口信息;
按p切换是否显示端口信息;
按P切换暂停/继续显示;
按b切换是否显示平均流量图形条;
按B切换计算2秒或10秒或40秒内的平均流量;
按T切换是否显示每个连接的总流量;
按l打开屏幕过滤功能,输入要过滤的字符,比如ip,按回车后,屏幕就只显示这个IP相关的流量信息;
按L切换显示画面上边的刻度;刻度不同,流量图形条会有变化;
按j或按k可以向上或向下滚动屏幕显示的连接记录;
按1或2或3可以根据右侧显示的三列流量数据进行排序;
按<根据左边的本机名或IP排序;
按>根据远端目标主机的主机名或IP排序;
按o切换是否固定只显示当前的连接;
按f可以编辑过滤代码,这是翻译过来的说法,我还没用过这个!
按!可以使用shell命令,这个没用过!没搞明白啥命令在这好用呢!
按q退出监控。

一生的故事

The meaning behind the game :

游戏背后的深意:
The world never stops moving representing very well the fact that time doesn't stop to wait for us . A clock on the
游戏的背景不会停止运动,这很好的表达了时间不会停下来等我们。背景上的时钟

background not only spins faster as you grow but also shrinks representing how closer to death we get with every
用转速来表示你的成长速度,同时用缩小的方式表示我们一步步迈向死亡。
passing day , we are running out of time .The world also gets faster as you reach your teenage and adult years
时间会在你到达青少年和成人时期变快
since those years can be very agitated . In the teen stage you always have the option of going either one way or the
因为这些时期充满了激情。在青少年阶段,你在关卡中会遇到各种路线分支,这代表了我们在青少年时期有诸多选择。
other representing how much choice is put in front of teenagers .Two kinds of life are represented on each side but
在关卡中,共有两种生活方式,你可以选择其中任何一种,也可以在一种路线中的任何时期转换到另外一种,但无论你的选择是什么
you can always go from one side to the other and no matter how you go about it the result is always the same , you
结果总是相同,你会变成一个自力更生的成年人。
will become an adult and will enter the laboring world . At this point swimming is introduced and this swimming
在成年人阶段,游泳这项能力被添加到了游戏中。你会注意到泳池
takes place in pools full of money . Money suddenly becomes a part of everything we do and it doesn't matter how
总是充满了钱。一瞬间钱变成了生命全部,不管我们喜欢不喜欢钱,
much we don't like it we simply cant live without money . The pools are there to represent how easy it could be to
我们没法离开它来生活。泳池是一个象征,在泳池中溺死
drawn in financial problems plus all the things that are going on at the same time during the adult years , like
象征着我们在成年人阶段很容易就因为
keeping up with your job , getting married , what if children come , pay bills , pay the house ,pay the car ,pay pay
我们的职业、结婚、不管有没有孩子、账单、房贷、车贷、各种花费使我们陷入财务问题当中。
pay . Is very suffocating . Then comes the middle age man years , at this point the game starts moving slower , not
然后我们来到了中年阶段,在这个阶段,游戏会慢慢变慢
because life is getting easier on you but because you start seeing yourself limited , you are getting old , health
不是因为生活变得更容易,而是因为你看到了自己的年龄限制了自己。你慢慢变老,
is getting bad and maybe you CAN do a lot of the things that you used to but it now takes extra effort . This
健康变得越来越差。你曾经能轻易做到的事情花费了你极大的经历。这些
limitations are represented by blocks that you have to push out of the way sometimes even using them to reach a
限制由阻挡你的方块来表示,你必须将这些方块用力推走,有些时候利用方块来到达
certain place because you have to work around with your limitations . After this you simply reach a very old age in
特定区域,因为你必须带着你的年龄带来的限制生活。到了老年阶段。
which you can do as much as when you were a baby , just move left and right gameplay wise , and someone is actually
你能做的事情就比你还是个小孩的时期多不了多少,只能左右移动,你甚至必须
doing this for you since you are on a wheel chair . At this point you are not very far from dying so this is a very
依靠轮椅才能做到这点。在这个时期,你距离死亡已经不太遥远,
short stage .Once you reach the final ladder you no longer have control over the character , the clock starts
一旦当你碰到了最后的梯子。就再也不能控制你自己。钟表会向后
spinning faster and backwards and you will start having flashbacks until you reach your tomb at which point the
转的飞快,屏幕背景将会闪现出你经历的过的一生。当你到达了你的坟墓,
clock stops , the screen stops ,your last memories fade away , is all over , you are dead .
时钟停止,屏幕停止,你最后的记忆也随风飘散。一切都结束了,你的生命结束了。

在线FLASH版:http://files2.17173.com/__flash/2011/04/19/5ff.swf
下载地址:链接:http://pan.baidu.com/s/1mgyX7Ig 密码:iihq

虚幻4学习笔记

关于本文

在学习和使用虚幻4引擎的过程中,不断地遇到了各种问题,也不断地找到了解决办法,为了防止以后遗忘,现将一些经验记录下来,本文将持续更新。

正文

  1. 关于光照UV的问题
    在UE4中,引擎默认将使用模型的第二个UV通道作为光照UV,制作光照UV时,需在3dsMax或者Maya中新建一个通道ID为2的UV,为了使静态光照自然,除了不要让VU重叠以外,还需要尽可能地将相邻面的UV范围移动到一块,尽可能保持相接。

- 阅读剩余部分 -