Browsed by
分类: 技术读物

(麻省理工免费课程)C语言内存管理和C++面向对象编程

(麻省理工免费课程)C语言内存管理和C++面向对象编程

此课程有全部讲义习题

课程描述实在得令人发指。翻译如下:

您是否由于自己的Python程序比同僚们的C程序慢而垂头丧气?你是否想不用JAVA实现面向对象?加入我们,学习C和C++吧!我们带您从简单的C程序入手,深入C语言的内存管理,简介C++里的面向对象,深入C++面向对象的高级功能以及STL。我们还教您一些以后面试用得着的技巧和知识。

原文:

Ever hang your head in shame after your Python program wasn’t as fast as your friend’s C program? Ever wish you could use objects without having to use Java? Join us for this fun introduction to C and C++! We will take you through a tour that will start with writing simple C programs, go deep into the caves of C memory manipulation, resurface with an introduction to using C++ classes, dive deeper into advanced C++ class use and the C++ Standard Template Libraries. We’ll wrap up by teaching you some tricks of the trade that you may need for tech interviews.

麻省理工开放课程里有很多计算机科学的宝贝。不仅有一流的教程,还有习题和答案。适合英语不错的程序员平时充电。

课程地址(英文)

好烂啊有点差凑合看看还不错很精彩 (20 人打了分,平均分: 4.00 )
Loading...
黑客的价值观

黑客的价值观

黑客,可能在大家的眼里是那些入侵别人计算机搞破坏的人,其实并不是那样的。如果你这样认为了,只能说明你对计算机文化并不了解,真正的黑客是一种自由的象征,他们挑战权威,追求自由,并和很多非人类的行为作斗争。如果你想了解黑客文化,你一定要去看看我写的《Unix传奇,上篇下篇》。你会对正宗的计算机文化以及黑客文化有所了解的。而那些只懂得入侵别人计算机搞破坏活动的“黑客”只能称为是街头的小混混,他们根本就不配称黑客。

下面有四篇关于“Hacker’s Code”文章,我觉得相当的不错,可以让你明白什么是黑客的行为规范,道德准则,以及黑客的历史使命,希望能对你有启发。但是翻译水平有限,所以我请Mailper同学帮忙翻译了一下,但还是觉得原文更为传神,尤其是原文中的押韵,双意以及朗朗上口,所以,下面提供了中英文对照。如果有翻译得不好的还请大家指正。

The Hacker’s Code

http://muq.org/~cynbe/hackers-code.html

“A hacker of the Old Code.”

  • Hackers come and go, but a great hack is forever.
    黑客们来来往往,但是只有黑客的壮举是永存的
  • Public goods belong to the public.*
    公众的东西是属于大众的
  • Software hoarding is evil.
    Software does the greatest good given to the greatest number.
    圈养软件是邪恶的,最好的软件是有最多人使用的

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (16 人打了分,平均分: 4.06 )
Loading...
如何管理并设计你的口令

如何管理并设计你的口令

在互联网上,需要我们输入用户名口令的地方实在是太多了,多得都让人记不过来了,N个电子邮件帐号,QQ, MSN,校内,开心,facebook,Blog,各种论坛,网银,淘宝,电子相册……,太多了,想想看,你要用多少用户名口令,相信很多人可能会这样做,用几乎一样的口令和用户名来申请所有的这些帐号,我估计这是大多数人的做法。当然,这样一来,你就需要保管好你的用户名和口令了,因为只要被破解了,就相当于你所有的帐号被破解了,这是多数恐怖的一件事情啊。你可能觉得别人破解你的口令很难,但我告诉你也许会非常容易,因为,如果你只使用一样的用户名和口令的话,也许某天,你注册了一个不知名的小网站,可能会意味着你所有的用户名和口令都被人获取了,要小心啊。

对我来说,我通常会有几组组帐号和密码,

  • 一个帐号/密码是用于一些大的可以依赖的站点,如:MSN,gmail,linkedin,facebook,hotmail等,因为我相信这些站点应该可以足够信任不会出卖用户信息,也有足够的能力不会让用户信息和口令外泄。
  • 一个帐号/密码用于一些国内的一些大的网站,如:QQ,开心,CSDN,Sina,网易,Blog,同学录等,因为这些站点必竟还受到国家的监管,以及其内部不良员工可能会倒卖我的信息,指不定什么时候我的用户信息就会外泄。
  • 一个帐号/密码用于我的一些经济活动,如网银,淘宝,支付宝什么的。
  • 最后一个帐号/密码用于登录那些必需要注册的破站点,一个最简单的用户名口令。

真烦啊。在这样的一个社会里,忘记密码绝对是一件最普通不过的事情了。就算是我这样的分组归类,同样需要超强的记忆力。不知道你会不会把你的密码写在某处呢?是啊,我也是想写啊,但那岂不是相当的危险,不丢则已,一丢就全丢了。

今天,在国外的某论坛里看到了这样的一个设计方法,好像很不错,分享给大家。

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (31 人打了分,平均分: 4.32 )
Loading...
十条不错的编程观点

十条不错的编程观点

Stack Overflow上有这样的一个贴子《What’s your most controversial programming opinion?》,翻译成中文就是“你认为最有争议的编程观点是什么?”,不过,在400多个主回贴,以及千把个子回贴中,好像并不是很有争议,而是令人相当的茅塞顿开,下面罗列一些,并通过我自己的经历和理解发挥了一些,希望对你有帮助。

1) The only “best practice” you should be using all the time is “Use Your Brain”.

唯一的“Best Practice”并不是使用各种各样被前人总结过的各种设计方法、模式,框架,那些著名的方法、模式、框架只代码赞同他们的人多,并不代表他们适合你,你应该更多的去使用你的大脑,独立地思考那些方法、模式、框架出现的原因和其背后的想法和思想,那才是“best practice”。事实上来说,那些所谓的“Best Practice”只不过是限制那些糟糕的程序员们的破坏力。

2)Programmers who don’t code in their spare time for fun will never become as good as those that do.

如果你对编程没有感到一种快乐,没有在你空闲的时候去以一种的娱乐方式去生活,无论是编程,还是运动,还是去旅游,那么你只不过是在应付你的工作,无时无刻不扎在程序堆中,这样下来,就算是你是一个非常聪明,非常有才华的人,你也不会成为一个优秀的编程员,要么只会平平凡凡,要么只会整天扎在技术中成为书呆子。当然,这个观点是有争议,热情和能力的差距也是很大的。不过我们可以从中汲取其正面的观点。

3)Most comments in code are in fact a pernicious form of code duplication.

注释应该是注释Why,而不是How和What,参看《惹恼程序员的十件事》,代码告诉你How,而注释应该告诉你Why。但大多数的程序并不知道什么是好的注释,那些注释其实和code是重复的,毫无意义。

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (51 人打了分,平均分: 4.49 )
Loading...
别只谈系统备份,谈谈怎样恢复系统吧!

别只谈系统备份,谈谈怎样恢复系统吧!

文章来源 JoelOnSoftware.com

很久以前就看到这篇文章,它给了我很深刻的印象,搜索了一下 JoelOnSoftware 的中文 Wiki,似乎也没有此文的中文版,那就让酷壳来完成吧。

  • 你备份你的系统了吗?
  • 你备份服务器了吗?
  • 你的备份是否存放在另一台机器中?
  • 你是否有异地备份?

以上都是非常好的问题,也都是很好的备份习惯。

不过,让我们别再只谈备份了,因为仅仅备份是远远不够的。资深的系统管理员们都会告诉你他们有完美的备份计划,但是问题往往发生在当你需要恢复系统的时候:

  • 备份文件被密钥加密,而遗失或损坏的恰恰就是存放密钥的那台机器。
  • 存放着大量配置信息的 IIS 元数据库恰好没有备份。
  • 备份文件一直被拷贝到一个限量2GB的FAT分区,多出来的数据被默默地抛弃掉了。
  • 你的备份都在一个LTO磁带上,磁带已经和数据中心一起遗失或损坏了(911?)。
  • 即便你有了备份,仍有可能遇到许许多多的意外情况。

所以,保证基本的系统安全不仅仅取决于你做了备份,还在于你是否能够成功恢复备份。如果你在运营一个 WEB 服务,你需要向我展示你能够在合理的时间内,在一台新的服务器或者是和原来的数据没有任何关系的服务器上,使用近期备份的数据还原出整个网站。

让我们不要再问人们是否做了系统备份,而是问他们是否能够恢复系统。

好烂啊有点差凑合看看还不错很精彩 (11 人打了分,平均分: 3.64 )
Loading...
分享:我的Reader订阅

分享:我的Reader订阅

应网友workout和其他热心读者的要求,我罗列一些自己觉得值得推荐的feed。用纯文字罗列如下,想找到以下的话可以通过Google。希望大家在此互相分享。

适合读者:广谱技术爱好者,国外互联网信息爱好者,用户行为和设计爱好者, 语言爱好者,阅读狂。

技术类

  • Coding horror
  • Joel on software
  • unified Python planet

业界信息

  • 谷歌黑板报
  • Search Blog: Bing
  • Search
  • 百度爱好者
  • silicon valley watcher
  • Google Blogscoped
  • Google Code Blog
  • 月光博客
  • apple4us
  • 古奥
  • 望月的博客
  • Google Operating System

杰出个人博客

  • Paul Graham Essays
  • Pure Pleasure – lixiaolai.com
  • The noisy channel
  • 李开复新浪博客
  • 韩寒博客
  • the trump blog
  • Matt Cutts
  • Linus blog
  • Paul Buchheit (Gmail创始人)
  • Peter Norvig (人工智能大儒, Google 研究总监)
  • too (Google 创始人博客)
  • Alon Halevy’s Blog
  • Daniel Lemire’s blog
  • Clay Shirky
  • Earning My Turns
  • How to change the world

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (20 人打了分,平均分: 3.75 )
Loading...
编程语言时间地理图

编程语言时间地理图

 有人使用Google Map做了一个网页,把所有编程语言的时间线和地理位置,如下图,上面是一个编程语言的时间轴,下面是Google Map地图,点击编程语言,你可以查看该编程语言的发明者,发明地,和其Hello World示例(点击这里查看更多的Hello World)

http://www.geospat.com/hoprola/
编程语言时间地理图

JavaScript 的发明者,发明地和示例

(点击小星,可以看到语言的发明者和示例)

好烂啊有点差凑合看看还不错很精彩 (4 人打了分,平均分: 3.00 )
Loading...
程序语言性能比拼

程序语言性能比拼

  下面这个网页,你可以比较各种程序语言的性能:

http://shootout.alioth.debian.org/u64/index.php

这个页面,安装的是x64 Ubuntu,CPU是Intel® Q6600® 单核。这个网页支持的语言很多,什么C,C++,Java,python,PHP,Erlang,C#,Ruby,……,还有最新的G0语言。

在主页上,你可以选择一个语言。比如,我们选择Google的Go语言——Go 6g8g,然后,点击Show按钮,于是,你会看到下面这个界面:

go vs gnuc 

在这个界面上方,你可以选择两种语言,我们选择的是,上面的是Go 6g8g,而下面是的GNU C,于是下面的图表,是这两个语言各种参数和算法的比较图表。

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (8 人打了分,平均分: 3.13 )
Loading...
Go语言源码的一个改动

Go语言源码的一个改动

2009年11月11日,光棍节,Google发布了Go语言,马上,就有网友在http://code.google.com/p/go/上找到了一个Go语言包文件操作源码/src/pkg/os/file.go文件的一个最新改动。这个改动的作者就是那个大名鼎鼎的Unix之父Ken Thompson(看看人家,都这么老了,还在写程序,佩服佩服,真是顶级程序员啊——《程序员的八个级别》),而这个改动的Log Message如下所示(把屏抓下来,以免以后某日被放到墙外或是google.com数据丢失或是Google公司倒闭)

Spell it with an “e”

spell it with an e

 

这是一个很著名的典故,要知道这个典故,你需要知道两件事,一个是Ken Thompson的经典语录,一个是Unix的系统调用。

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (16 人打了分,平均分: 3.75 )
Loading...
Richard Feynman, 挑战者号, 软件工程

Richard Feynman, 挑战者号, 软件工程

源文:链接  (本文主要根据挑战者号的问题,以及Richard Feynman那对NASA严厉的批评报告,批评了不适当的“自顶向下”的设计方法,并总结了一下软件工程和其它工程的相通的一些观点。翻译水平有限,欢迎指正)

Challenger Crew

佛罗里达州,美国东部时间1986年1月28日上午11时39分,挑战者号航天飞机 执行为期6天的STS-51-L 任务,在发射后,其右侧固体火箭助推器(SRB – Solid Rocket Booster)的O型环密封圈(用于连接两节助推器)失效,泄漏出来的热汽达到了5000华氏度,直接蒸发了O型密封圈,并灼烧了毗邻的外部燃料舱,在几秒钟内,外部燃料舱出现结构连接失效,空气的动力迅速分解了航天飞机。在而航天飞机上升72秒以后,助推器脱落,导致航天发飞向侧面滑出。几乎在引航员 Michael J. Smith 发出”Uh oh” 的同时,整个航天飞机完全解体,片刻,航天飞机内部发生爆炸,所有7名宇航员罹难。 那时的我还只是一个小孩,我从电视下方滚动的新闻条目知道了这一惨剧。

在那个时候,火箭助推器工程师曾经警告过这个O型环可能存在问题,但可惜的是,NASA的管理层忽略了这个问题。Challenger Explosion美国总统里根委派罗杰斯委员会对事故进行了调查,调查成员包括著名的物理学家Richard Feynman。其不羁的态度和直来直去的方法和罗杰斯委员会的风格形成了鲜明的反差。主席罗杰斯,一个政客,评论Feynman是一个“真正的痛苦”。最后,在委员会提交的报告中,Feynman反判的观点几乎被清除了出去。并且,Feynman曾被主席威胁过要把他的名字从报告中完全除掉,但最终,他们还是同意在报告中加一个附录,但只是个人观点—— Appendix F – Personal Observations on Reliability of Shuttle

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (20 人打了分,平均分: 4.00 )
Loading...