木子屋 Dnawo's BLOG

分类:网络文摘

共 135 篇

永远不要再犯的 5 个编程错误[转]

1.不加理解的拷贝代码 你经常会发现你需要的代码在一些别的程序里面有。整段的拷贝代码并且就这么使用它而不去烦恼于理解每一行代码是很诱人的。 有时候你拷贝的代码可能太大了以至于没有时间去完全理解它。如果你拷贝任何代码都像这样,就会有让你的程序变得脆弱易出 bug 等风险。 这样可能让工作完成,但是如果这段代码在某种情况下产生了一些意外的行为将会怎么样?如果使你的程序变慢或者有恶意行为将会怎么样?因此需要恰当的理解这些代码,或者需要绝对的确信你拷贝的代码的出处。 如果以后产生了 bug,你会发现很难理解这些代码,因为你从来没有写过它。甚至于你会发现很难去找出 bug 并且修复它,特别是如果拷贝了很多代码在程序的不同地方。…

如此理解面向对象编程[转]

从 Rob Pike 的 Google+ 上的一个推看到了一篇叫《Understanding Object oriented Programming》的文章,我先把这篇文章简述一下,然后再说说老牌黑客 Rob Pike 的评论。 先看这篇教程是怎么来讲述 OOP 的。它先给了下面这个问题,这个问题需要输出一段关于操作系统的文字:假设 Unix 很不错,Windows 很差。 这个把下面这段代码描述成是Hacker Solution。(这帮人觉得下面这叫黑客?我估计这帮人真是没看过C语言的代码) 然后开始用面向对象的编程方式一步一步地进化这个代码。 先是以过程化的思路来重构之。 过程化的方案 然后是一个幼稚的面向对象的思路。…

计算机是如何启动的?[转]

从打开电源到开始操作,计算机的启动是一个非常复杂的过程。 我一直搞不清楚,这个过程到底是怎么回事,只看见屏幕快速滚动各种提示......这几天,我查了一些资料,试图搞懂它。下面就是我整理的笔记。 零、boot的含义 先问一个问题,"启动"用英语怎么说? 回答是boot。可是,boot原来的意思是靴子,"启动"与靴子有什么关系呢? 原来,这里的boot是bootstrap(鞋带)的缩写,它来自一句谚语: "pull oneself up by one's bootstraps" 字面意思是"拽着鞋带把自己拉起来",这当然是不可能的事情。最早的时候,工程师们用它来比喻,计算机启动是一个很矛盾的过程:必须先运行程序,然后计算机才能启动,但是计算机不启动就无法运行程序!…

没有错误的错误[转]

我投资的两家公司的 CEO 性格迥异(在此权用 A 和 B 代替他们的姓名)。 A 有着近乎完美的资深职业经理人形象,他热忱外向,和蔼可亲,我从没见过他和任何人发生争执,认识他的人都喜欢他。每次董事会之前,他都会请董事们吃一顿可口的晚餐;他访问我上海的办公室时会给我的助理小姐带旧金山特产的巧克力。 B 则恰恰相反,他穿着随意,初次和他接触的人往往会觉得他内向而冷淡,说话极少寒暄,总是直入主题,有些人很不喜欢 B。和 B 聊天是很累的,因为常找不到共同的话题,间或被难堪的沉默所打断。B 有时显得固执,常和董事会发生争论。在 B 的公司开董事会总是吃盒饭工作餐,他也从不送任何人小礼物。 A 和 B 的业绩也是天壤之别的。在 A 领导公司的约三年里,该公司总计亏损一亿多美元,市值跌掉约 96%,A 最终被董事会炒鱿鱼。而 B 则在约四年里将其公司扭亏为盈,创造了一亿多美元的价值,最终成功卖掉。…

你是想读书,还是想读完书?[转]

以前,读书前会很想读一本书,但实际读书时,经常是“想读完书”,而不是“想读书”。这种想法经常会让我的生活变得很痛苦,当你做一件事想着快点做完时,你的心思其实已经不在这件事上了。 这个问题在我大学时困扰了我很久。我没有意识到这本身其实是一个价值观问题,以至于我常在一些时间管理的书中寻找答案。那些书都只能让你更高效地“做完事”,却不能让你在做的过程中更投入一分。 直到后来离开学校,了解了一小部分禅宗思想,我开始豁然开朗。禅宗讲求摒除心中的杂质,全部精神专注于当下,摒弃过去摒弃未来,任何的多余的念头都可能使你正在做的事情不纯粹。禅宗上,这叫“正念”,我非常非常欣赏。 想想看,你去旅行,那你是为了旅行和生活本身呢,还是为了旅行回来能增加一点谈资、写一篇游记呢?答案是显然的。…

快递行业两三事[转]

快递行业现在处于风口浪尖,本人恰好以前做过这个行业,又特喜欢分析研究,就把自己曾经的经历分享一下吧。 一些背景知识: 1、按快递物品分有文件、包裹和货物这三种; 2、按快递距离分有同城快递、国内快递和国际快递; 3、按企业性质分有快递公司(门到门/桌到桌,也就是上门取件和送件上门,一般以文件包裹为主)和物流公司(点到点,也就是发货人自行把货送到该货运公司的出发地点部,到了目的地后,收货人到该公司在目的地点部自行取货,直白地说就是货运); 4、价格一般按照重量收取,但如果体积大密度小(比如有人就愿意快递一个大泡沫塑料)就算做泡货,这个是按体积算钱的,因为在货运过程中占位置。所以会有一个临界密度,不过大部分人都不知道。…

精编:孕期5个阶段食谱推荐[转]

整个怀孕期间,准妈妈都要注意营养的调整,对于怀孕的不同阶段,准妈妈的饮食重点也不尽相同,下面我们就详细的来看看,孕期5个阶段所对应的食谱都有哪些? 第一个月食谱 妊娠早期,胎儿生长缓慢,每日体重只增加1克左右,孕妇营养的需要量较小会出现轻重不同的妊娠反应。 如:小米粥,猪肝汤,海带豆腐汤,多吃水果。 忌食:生,冷,油,太甜,太腻等口味重的食品。 第二个月食谱 孕妇在此期间应进食适量的含蛋白质、脂肪、钙、铁、锌、磷、维生素(A、B、C、D、E)和叶酸的食物,这样才能使胎儿正常地生长、发育。 如:鲫鱼汤、白菜奶子汤(白菜心五克,奶五十克,鸡汤200克)、萝卜炖羊肉、酸菜猪肝;各种水果;小米粥、玉米糊(以清淡为主)。…

数据挖掘概念(Analysis Services - 数据挖掘)

数据挖掘是从大型数据集中发现可行信息的过程。数据挖掘使用数学分析来派生存在于数据中的模式和趋势。通常,由于这些模式的关系过于复杂或涉及数据过多,因此使用传统数据浏览无法发现这些模式。 这些模式和趋势可以被收集在一起并定义为“数据挖掘模型”。挖掘模型可以应用于特定的业务方案,例如: ·预测销售额 ·向特定客户发送邮件 ·确定可能需要搭售的产品 ·查找客户将产品放入购物车的顺序序列 生成挖掘模型是大型过程的一部分,此过程包括从提出相关数据问题并创建模型以解答这些问题到将模型部署到工作环境的所有事情。此过程可以使用下列六个基本步骤进行定义: ·定义问题 ·准备数据 ·浏览数据 ·生成模型 ·浏览和验证模型…

关于 reCAPTCHA 验证码

验证码大家每天都会见到,可是你会想到当你每次不耐烦的输入一个单词的时候都为人类做出了一点贡献吗? 验证码(CAPTCHA)或者叫做全自动区分计算机和人类的图灵测试(Completely Automated Public Turing test to tell Computers and Humans Apart),使我们上网的人每天都可以见到的,而它的作用除了防止垃圾注册或者评论以外还有别的吗?来自Google的reCAPTCHA(上图)告诉我们,你其实还可以为人类做贡献。 题外话:现在OCR的阅读效率实在是不高,下面这张图就可以说明问题。 它的情景是这样的,有一天,某台机器扫描了一本书,想把它转成电子版:…

SQL Server2005构架比喻

李老板开了一个小公司,公司有个仓库,堆放了一些货物,由于仓库小,为了节约成本,这个仓库根本没有锁。只要知道仓库在哪里,就可以去取货。这种情况对应数据库来说,就是只要我知道数据库名和表名,我就可以对它进行操作。这对程序员来说当然是最方便了。这就是数据库的第一阶段:无权限管理阶段。假如大家用过Win3.X,那它们基本就是无权限管理阶段。这下小偷就爽翻了。 最近仓库里的东西老是不翼而飞。李老板才明白,就算是员工都是自觉的,但是别的人也可以拿走里面的货物,怎么办呢?老板一咬牙,花一百块钱买了一把锁!并且只给少数几个人配钥匙。这下东西被别的公司的人拿走的情况基本杜绝了。对于数据库来说,相当于把人分成了两种,一种授权用户,一种未授权用户。这时,数据库就有了用户的概念,但是它只有一个用户,就是有钥匙的人,它只对有钥匙的人开放。这就是数据库权限管理的第二阶段:上锁阶段或者单用户管理阶段。 好景不长,老板发现仓库的东西还是经常少。明明都是有钥匙的人才能进去呀。但是,谁拿了多少,根本没办法查出来。老板猜测原因有二:一,有些人拿了不该拿的东西。二,有些人偷偷的去配了钥匙。老板一咬牙,没收所有的钥匙。花800块一个月雇个仓库管理员,每个进仓库拿东西的人都要登记。李老板还给给仓库管理员一个清单,谁可以拿什么东西,清单如下:…