Google [站内搜索]

分类: 网络文摘预览模式: 普通 | 列表

程序界的法则-程序员都是自学成才

在我十几岁的时候就开始玩甲级级棒球。我水平很差,但当我决定要做好什么事时,最终总能如我愿。现在我是计算机专业3年纪的学生。在编程上,有些事情和体育是截然不同的:棒球教练可以教会你如何打棒球,但一个计算机教授却不能教你如何编程。

我很吃惊,在整个大一期间,我的老师或教授从来不点评我的代码,大二时更是如此。我们的作业很多,题目很难,但在完成了数据结构课上的2000行的代 码后,我从来没有收到过老师的任何一条评论——只要程序能编译通过,单元测试显示没有错误,这就行了。直到遇到了一个小组开发的项目,我才认识到我的代码写的多烂,我才开始询问:好的程序应该如何写。

查看更多...

分类:网络文摘 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1874
OLAP是决策支持领域的一部分。传统的查询和报表工具是告诉你数据库中都有什么(what happened),OLAP则更进一步告诉你下一步会怎么样(what next)、和如果我采取这样的措施又会怎么样(what if)。用户首先建立一个假设,然后用OLAP检索数据库来验证这个假设是否正确。比如,一个分析师想找到什么原因导致了贷款拖欠,他可能先做一个初始的假定,认为低收入的人信用度也低,然后用OLAP来验证他这个假设。如果这个假设没有被证实,他可能去察看那些高负债的账户,如果还不行,他也许要把收入和负债一起考虑,一直进行下去,直到找到他想要的结果或放弃。

也就是说,OLAP分析师是建立一系列的假设,然后通过OLAP来证实或推翻这些假设来最终得到自己的结论。OLAP分析过程在本质上是一个演绎推理的过程。但是如果分析的变量达到几十或上百个,那么再用OLAP手动分析验证这些假设将是一件非常困难和痛苦的事情。

数据挖掘与OLAP不同的地方是,数据挖掘不是用于验证某个假定的模式(模型)的正确性,而是在数据库中自己寻找模型。他在本质上是一个归纳的过程。比如,一个用数据挖掘工具的分析师想找到引起贷款拖欠的风险因素。数据挖掘工具可能帮他找到高负债和低收入是引起这个问题的因素,甚至还可能发现一些分析师从来没有想过或试过的其他因素,比如年龄。

查看更多...

分类:网络文摘 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 2239

密码为什么明文存放

很早就写过一篇blog,说到过,你的密码应当一次一密,至少某些密码泄露时不至于波及太广。结果这次CSDN不幸中枪。我不去讨论多少人急急忙忙修改密码,多少人数据泄露,单说说为什么很多时候密码是明文存放的。

就我有记忆以来,我写应用就从来没有明文存放过密码。最起先是md5方式存放。md5可以让你找到hash值,有的时候也会被用于穷举。但是无论如何,md5密码本身比明文安全很多。后来改成了challenge-response验证模式,也是用md5做的hash后进行c-r的。再后来,md5的碰撞冲突的论文出来,后面用的多数都是sha256了。从头到脚,我就没做过密码明文存放,并且,我认为这是正常程序员最起码的修养。(当然,明文存放的代码不是没有,不过那是调试模式) 但是现在我所知,很多系统的身份验证都是密码明文存放的,为什么?其实我不大理解。不过有时候问起,有些人和我说了几个我觉得不是搪塞的理由,现在抄录如下,告大家知。

查看更多...

分类:网络文摘 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1814
摘要

MD5为现在应用最广泛的Hash算法之一,在1992年由MIT 的Ronald L. Riverst提出,由MD4演化而来。该算法广泛应用于互联网网站的用户数据加密,能够将用户密码加密为128位的长整数。数据库并不明文存储用户密码,而是在用户登录时将输入密码字符串进行MD5加密,与数据库中所存储的MD5值匹配,从而降低密码数据库被盗取后用户损失的风险。但由于Hash碰撞的存在,MD5加密的数据并不安全,可以由生成相同Hash值的字符串破解,所以提出了加入随机数salt的MD5加密方法,一定程度上增大了字典攻击的难度。

问题提出

查看更多...

分类:网络文摘 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1900

如何成为"10倍效率"开发者

Brad Feld 的一篇文章 The Rise of Developeronomics 中提到了"10倍效率的开发者(10x developer)"的概念(伟大的开发者的效率往往比一般的开发者高很多,而不只是一点点),Adam Loving 在读了之后受到启发,并向多位大牛(Ben Sharpe、Collin Watson 和 Jonathan Locke)询问如何成为"10倍效率的开发者",最后得到了以下的答案。

1. 只做需要做的工作 Only do the work that needs to be done

•使用敏捷方法;

查看更多...

分类:网络文摘 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 2154

浅谈HASH算法与CSDN密码泄漏事件

在CSDN密码泄漏事件中,网友评论提到密码的明文保存和MD5保存问题。目前,很多站点都用MD5算法保存密码,但对于HASH(哈希)算法的认识还存在很多误区,很有必要重新认识。

一、HASH算法不是加密算法

HASH算法是一种消息摘要算法,不是一种加密算法,但由于其单向运算,具有一定的不可逆性,成为加密算法中的一个构成部分,完整的加密机制不能仅依赖HASH算法。

查看更多...

分类:网络文摘 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1926

[信息图]移动世界60秒

60秒的时间很短,但是对于瞬息万变的移动世界来说,其背后产生的数字足以让人惊叹。最近,移动广告商 Mobclix就以图表形式向人们展示了60秒内移动通信世界中发生了什么。

Mobclix的数据来自对应用开发商和业内人士的抽样调查,并结合了一些老式的算法。虽然Mobclix的广告商背景使得这些数据多少有些浮夸,但是移动世界的一分钟对于广告商来说的确有着难以估量的价值:

在短短的60秒内,有77244台iPhone和51937台Android设备通过Wi-Fi联网,Appstore上有23148个应用程序被下载,愤怒的小鸟和切水果分别被玩了208333次和250000次……

查看更多...

分类:网络文摘 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1658
我现在是自己做,但我此前有多年在从事软件开发工作,当回过头来想一想自己,觉得特别想对那些初学JAVA/DOT 。NET技术的朋友说点心里话,希望你们能从我们的体会中,多少受点启发。

一、心里话

1.在中国你千万不要认为学习技术就可以换来稳定的生活和高的薪水待遇,你千万更不要认为哪些从事市场开发,跑腿的人,没有前途。

查看更多...

分类:网络文摘 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1698