Submitted by gouki on 2011, March 26, 9:27 PM
最近这段时间休息在家里,因为要写代码,原来的12寸的笔记本屏幕太小了,于是就萌生了要买一台台式机的想法。
毕竟,众所周知的,台式机嘛,同样价格的情况下,性能要优于笔记本。嗯,更重要的是,屏幕大了,屏幕大的好处就太多了。比如我的IDE,就可以看的更舒服,而不至于像现在,IDE一开,可视的范围就剩一点点大了。。。几乎无法写代码,郁闷啊。
最终,我选择了两台电脑作为挑选,没有选择imac。实在是没钱了。买imac的钱,可以够我买两台台式机了。我也没有选择普通的台式机,因为老婆觉得家里再堆一个机箱,有N多线连着很烦人。所以我在选择了很多电脑之后,确认了两台机器,那就是:
这两台电脑其实我是比较偏向于后一台,因为,他是4G内存,我就无所谓再添加2G内存了,而且23寸的屏幕,也可以让我看的很爽。然而,京东上,这一台电脑一直没货。。。太郁闷了。最终我买了前面一台 5139cx,缺点是只有2G内存,其他我也就忍了。其实还有一款3699的HP20寸的电脑,但是那台电脑的鼠标是有线的,键盘也是,所以我最终还是确认这一台了。。
下周开始,我的开发速度估计又会上升一点了,毕竟笔记本开发,12寸,1024*768的分辨率也太低了。。。当然有钱的话,我是会考虑imac。。
Tags: 一体机, hp
Misc | 评论:5
| 阅读:18274
Submitted by gouki on 2011, March 25, 5:22 PM
在做网站的时候,会用到几个常见的工具,当然都是小工具。在这里推荐一下下。。。
1、apmxe,这个不用多说了。有两个版本,一个是带框架,一个是不带框架和管理的。参考文章见这里:apmxe备份 。
直接下载:10M,安装版
7M左右的7zip版
2、网站风格复制器:其实说白了就是一个离线下载工具,但是他和offline explorer以及Telport之类的离线下载不一样。他不会在源代码里加入自己的注释(oe会在源代码里标明还用了一堆本地的域名来做相对路径等)。
下载好的文件会存在Reaped Sites这个目录下面。打开看时会发现很干净,这才是最重要的。
下载:网站风格复制器
3、JS和CSS压缩工具,这玩意嘛,说白了是可有可无,毕竟现在有很多在线版的工具,但有个命令行也不错啊。对着文件点一下右键。OK就生成了。。。规则比较简单,只是需要你装一个jre的运行环境
下载:JS和CSS压缩工具
4、CMDNOW,这个工具是在很久前就有了。以前为了执行cmd的命令不留命令行而使用的。而且现在越来越被容易报木马(下载包中附有一个chp)。主要用它来执行一些系统命令,但不会有一个cmd框显示在任务栏上(计划任务的时候使用)
这个,具体的用法,在官网是有介绍的:http://www.commandline.co.uk/cmdow/,附的另一个chp(create hidden process)的功能,看名字也能看出来。。cmdnow其实也有这个功能,cmdnow /HID 就可以隐藏窗口了。。。(不是为了教你们做木马工具,而是有时候那个cmd窗口有点烦人)
下载:CMDnow
5、bg\csssprite生成工具,这是一个AIR的程序,需要你有AIR才可以运行哦。不多说,直接上文件:
下载:BG\CSSsprite工具
6、网页配色工具包。这个工具包很老了,大概在04、05年左右就有了,它是一个压缩包里面含 有N多的配色工具,有Flash的有CHM的,有。。。。自己下载了看一下吧。
截个图吧:
下载:网页配色工具包
Tags: 网站风格, 网页配色, apmxe
Software | 评论:0
| 阅读:17498
Submitted by gouki on 2011, March 23, 9:22 PM
来自cnbeta的一篇文章:程序员那些悲催的事情。。。
原文地址是:http://www.cnbeta.com/articles/138034.htm
很多人看完都觉得好象是自己经历过的,有可能会都会经历过一样两样,据我一朋友说,他有一次喝多了,然后半夜在维护服务器。执行rm -f ./的时候,少打了一个点。然后,就悲催了啦 。
看看cnbeta上那些悲催的故事吧。。。。
新闻来源:酷壳
在StakeOverflow上有这样一个贴子叫“Confessions of your worst WTF moment”(WTF就是What the fuck的缩写),挺有意思的,我摘几个小故事过来,希望大家在笑过之后能从中学到什么——所有的经验都是从错误中来的(我在其中加了一些点评)
我们公司的软件是给警察局用的,那是一个对用来处理被逮捕的人的系统,此系统还需要收集脸部特征和指纹信息,并且,这个系 统和会向FBI的系统提交这些信息。当我们在测试这个系统的时候,我们一般都是用我们自己的指纹,当然,数据库联着的是我们的测试数据库。不过,有一次, 在我们测试完后,我们忘了把系统切换回生产库,于是我们的测试数据库就联上了生产环境,于是我们的指纹信息和照片就散布到了其它系统中……清除我们警察局 这边的还好办,但是,你需要波士顿警察局警司去法院签字才能从FBI的数据库中清除我们的信息。
点评:测试环境和生产环境的数据不要混在一起。
有一次,我需要向新系统中导入一堆数据,因为数据量太大,需要5个小时,只能在夜里来干,在系统需要正式使用前2个小时, 数据导完了,此时是凌晨4点。随后,我需要删除一些数据,于是我在SQL命令地上输入了“DELETE from important_table; where id=4”。是的,我没有看到哪里还有个分号,天啊。
点评:这就是加班工作的恶果。另,在delete之前最好先做一次select。
我把我的管理员口令提交到了一个开源软件的源码里。
点评:1)版本管理器里的东西是删不掉的。2)一些用户和口令要hard code在代码里,所以,不要混用代码使用的权限和管理员的权限,小心管理程序的运行权限,为其注册专门的用户。
我为一个很大的银行开发软件,在我的代码里,我为一段理论上根本不可能执行到的代码加了一个报错信息。有一天,不可思异的 事发生了,这条报错信息显示在了该银行的1800个分行的超过10000个终端上——“如果你看到这个信息,说明整个系统被Fuck了,回家吧,祝你过得 愉快!”
点评:“假设是恶魔”,Assume意为Ass – u – me,意为——搞砸你和我。对于一些关键东西,永远不要做假设。小心你言语中的——“可能、应该、觉得、不应该”等词语,程序可不认这些东西。
我远程登录到服务器上加几个防火墙规则。第一件我想干的事是在不允许任何人的任何连接,第二件是,为某个端口打开访问权限。不过,我在做完第一件事后就把配置保存了,结果其生效了……
点评:这样的事经常发生,做远程网络管理的人多少会有那么几次发生这样的错误。在你将你的网络配置生效前,你得想一想,断线了你是否还能登得上去。改配置不要太冲动,生效前检查几次。
我们的代码中有一个模块完美地工作了很多年了,只是代码太乱了。我说服了我的老板,我可以重写这个模块,于是我花了三个星 期来重写这个模块。今天 ,我还记得,我的老板站在我的后面看着我,而我在在流着斗大的法汗珠去fix被我重写的“超级漂亮”的那个模块中一个接一个的bug。从那以后,我再也不 重写代码了,除非有重大的利益。
点评:这就所谓的屠宰式编程。这个案例告诉我们两个道理,1)维护代码要用最最最保守的方法来进行。2)重构代码前要像一个商人一样学会计算利益。当然,ThoughtWorks的咨询师一定会告诉你TDD,结对,极限等等方法告诉你如果实践重构。但我想告诉你,一个程序在生产环境里运行好几个年能没有问题是一件很不容易的事,那怕其中的代码再烂,你再看不过去,你都要有一个清醒的头脑明白这几点,1)软件的运行质量是远远大于代码质量的,2)你的测试案例是远远小于生产环境的,3)软件的完美的质量,是靠长时间的运行、测试和错误堆出来的,而不是某种方法论。
相信大家做程序员这一生中也有很多发生在自己身上的悲催的事儿,欢迎分享。我先分享几个我亲身经历过的事。
一个发生在我的领导身上。
我98年刚参加工作的时候,在某单位网络部门,一次,我们整个部门去给下属单位培训Cisco路由器,结果我们发现带去培 训地点的设备少带了集线器HUB,设备连不起来。于是领导很不高兴,质问我们为什么没有带集线器?那几个对领导平时就不满的老员工说办公室里没有集线器 了,都借给别的部门了。领导想了想,问我:“陈皓,我记得上次我给过你个集线器”,我说,“好像没有吧,我记不起来了,什么牌的?几口的?”,领导说: “什么牌子想不起来了,不过我记得那个集线器是一个口的”。“一个口的?!”,我心里嘀咕着,“真敢说啊”。但我不敢接话了。那几个老员工来劲了——“哪有一个口的HUB啊,一个口的怎么联两台电脑啊?”,领导说:“用两个一个口的不就行了”。领导这话一出,全场一片寂静,无言以对……
后来:我们所有的组员都离开了我们的这个领导,我们的这个领导今天还在那里工作。我想告诉大家,很多时候该走的是领导(包括外企,我上一东家正在裁人,不过我觉得该被裁掉的应该是那些经理)。我们的领导经常出这样或那样的笑话,这让我随时随地地警醒自己——“不要当一个被人笑话的经理”,于是,今天我还在努力地学习技术。
另一个发生在我身上
刚刚接触Linux的时候,还不是很懂,那时的PC还只有奔3,编译公司的程序好慢啊,有时候为了调查一个问题,需要不断 地打log,来来回回地编译,很不爽。直到有一天,硬盘不够了,df一下,发现/dev/shm还有空间。于是,把全部程序copy了过去,发现编译起程 序超快无比,爽得不行。于是就把工作环境放在/dev/shm下了,连开发都放在这里了。这一天,开发一个功能,改了十来个文件,加班很晚,觉得基本搞 定,大喜,回家睡觉。第二天一来,发现/dev/shm下空了,一个文件都没有了,问同事,同事不知,同事还安慰我说,上次他的文件也不知道被 谁删了,于是我大怒,告老板!老板也怒,发邮件到整个公司质问大家谁删了陈皓的程序,无人应答。IT部门答,“昨晚唯一的操作就是重启了linux服务 器,什么也没干,不过我们天天备份服务器,可以恢复”,IT部门问我丢的文件在哪个目录下?于是,我reply to all – “在/dev/shm下……”,哎,人丢大发了……
后来:我很感谢我以前犯的这个错,从那天以后,我开始立志学好Linux,这个错误让我努力,让我发奋。所以,我想告诉大家——尤其是刚出道的程序员,你们要多多犯错,要犯错那种丢死人的错,这样你才会知耻而勇。
再来一个发生在我同事身上的
01年,我们开发银行系统,在AIX上开发,RICS6000很贵,只能在客户那里开发,开发进度很紧张,慢慢地硬盘就不 够用了,系统中有大量的垃圾文件,于是需要清除一些文件,于是有一个同事写了一个脚本,可以自动清除的各种不重要的文件,里面有一条命令大致是这个样子“ rm -rf ${app_log_dir}/*”,意为清除程序运行的日志。为了使用这个脚本,需要在root用户下运行,一开始还不错。直到有一天,某人一运行,整 个根就没了。搞得整个团队只能用一周前的备份重写已写好的代码。后来,才发现原因是${app_log_dir}变量为空,于是成了“rm -rf /*”……
后来:这个事后,我的那个同事,把rm命令改了名,并自己写了一个rm命令,把删除的文件先放到一个临时目录下。而我也因为这个事情,到今天,每次当我在root目录下使用rm时,敲击回车的手都是抖的。(另,rm时永远使用绝对路径)这里,我想告诉大家——犯错不可怕,可怕的是不会从中总结教训,同一个错犯两次。
--EOF--
嗯 ,最后一个故事和我那个朋友的事情很像。。。确实,还是用绝对路径安全。千万不要用相对路径。。太不放心了。哈哈。
Tags: 程序员, 悲催
Misc | 评论:2
| 阅读:16514
Submitted by gouki on 2011, March 22, 10:32 PM
Firefox4如期来袭,你们准备好了吗?IE9,你在哪里?chrome 100你在哪里(没打错哦,chrome的版本升的太快了。。。)?Safari6?opera 11?
好了不多说了,今天上午就有传闻是FTP中可以下载了,早期还是有人可以下载得到的,但后来的人打开时都显示550 permisson denied。如今到了晚上,终于正式放出来了。
FF4给大家带来了什么 ?更小的内存占用?更漂亮的UI界面?还是更快的速度?估计大家都在折腾了,但是对我来说,大量的插件还没有升级上去,是让我们非常痛苦的事情。
好吧,不说废话了,去下载吧:http://www.mozilla.com/en-US/firefox/new/
顺便:FF可以直接点check for update就可以升级了啦。无需单独下载
Tags: firefox, chrome, ie, opera, safari
Software | 评论:0
| 阅读:18717
Submitted by gouki on 2011, March 21, 11:36 PM
这是相对比较值得关注的内容,要知道浏览器对JS的解析都是通过他们自带的一些引擎来牏的。比如chrome所谓的V8引擎,都会有针对性的进行加速和处理,再者比如说IE对JS的规范支持又是比较延后的。因此,了解一下各个浏览器对JS代码执行的限制等,对于开发中遇到的问题也会有一定的了解。。
好吧,原文来自于:“http://rockux.com/archives/%E6%B5%8F%E8%A7%88%E5%99%A8%E5%AF%B9javascript%E4%BB%A3%E7%A0%81%E6%89%A7%E8%A1%8C%E7%9A%84%E9%99%90%E5%88%B6”
浏览器的用户界面和JavaScript代码共享同一个处理进程。无论是浏览器需要响应一个菜单的点击,还是渲染一个页面或者执行Ajax请求,每一个事件都会添加到一个队列中。当浏览器空闲的时候,就会继续执行队列中的任务。
浏览器的线程
实际上,在高端一些的浏览器中都不是只有一个线程。作为极端的例子,IE9和Chrome会为每一个tab生成一个系统的进程。然而,对于每一个页 面来说,仍然只有一个事件处理的队列,也就意味着一次只能执行一个任务。这很必要,因为浏览器或者你的JS都可能会去更改HTML的内容。
不难理解,浏览器必须要限制你的JS执行的时间。如果执行时间很长,会锁死进程甚至导致系统崩溃。这就是你会看到这个“无响应的脚本”的对话框原因。
但是浏览器怎么来决定一个代码是不是执行的时间超长了呢?正如你所想的,5个流行的浏览器的处理方式都不一样。
IE
IE对JS代码的限制是500万条。
Firefox
FireFox使用时间来限制,最多是10秒。
Safari
Safari也是限制5秒。
Chrome
Chrome没有特别的限制,但是他会去检测浏览器是否崩溃或者没有响应。
Opera
Opera也没有限制。但是浏览器不会引起系统的崩溃,你在这个停止响应的时候还可以继续开Tab。
有的浏览器允许你自己配置限制的数额,但是不推荐这样改。这样有的人可能用这种办法来修复“不能响应”的页面。你可以搜一下,但是通过修改浏览器的配置来解决响应的问题不是最终的解决办法。
那么如何才能防止JavaScript抛出这样的错误呢?最佳的解决办法就是避免在客户端执行需要长时间运行的函数。理想情况下,所有的函数都应该在几十毫秒内解决问题。更多更复杂的计算应该交给后端然后通过刷新页面或者异步方法来处理。
然而,我们应该意识到减少客户端的压力在现在这种JS大型应用中不是最佳的办法。还有一些别的办法,我们后面会讲到。
Javascript | 评论:0
| 阅读:18126