IT技术博客大学习 共学习 共进步

技术文章

精选技术长文、实践记录与系统化阅读

技术文章精选

低噪声、高可扫读;标题、摘要、来源、标签一目了然。

最新文章

采集自各技术站点的近期文章。

IT 系统架构/ 2012-07-27 14:14:32 / 累计浏览 5,873

如何建立一套邮件发送系统

建立一套独立的邮件发送系统真的是一件非常繁琐的事情,以下为网上收集的关于建立邮件系统需要注意的点: 一、给服务器分配一个静态的IP地址,并且确保IP地址不在邮件黑名单中。 Spamhaus是目前世界上影响最大反垃圾邮件组织,只要被它列入黑名单,你的邮件服务器就算瘫痪了,因为据说全球80%以上的服 务器会拒收从你的邮件服务器发去邮件。他们提供四种类型XBL,SBL,PBL,ROKSO。国内有很多IP被列为了spamhaus这几类RBL当中。 Spamhaus维护的列表分类 XBL(Exploits Block List):它是针对因为安全问题被劫持(比如僵尸机)或是蠕虫/病毒,带有内置式垃圾邮件引擎和其他类型的木马来发垃圾邮机器的实时黑名单IP列表。

IT Linux/ 2012-07-27 14:13:22 / 累计浏览 4,827

我对开源的看法

有这么一种观点:程序员要想提高技术水平,多读开源代码、多参与社区讨论与开发就好了。我以前很赞同,现在发现不是这样。 panpan和xuhui对我的批评是,多看看技术以外的东西。我的理解是这样,很多东西它之所以这么做,不是因为技术上是最优的,而是因为工期、领导的旨意、需求变更留下的历史问题等等。这些原因是无法通过阅读代码而得知的,我只能看到实现细节,却不能知道作者的设计意图。像Qt、leveldb这样的项目,名为开源,但是它并没有采用开放式的开发。只是这个公司将其技术成果共享出来了而已,中间的过程完全不可得知。举个例子,Nokia和Intel说要合伙做一个叫Meego的操作系统。Intel说好啊,我对Linux熟,我来优化底层系统,Nokia你来搞QT及上层软件。结果Intel很郁闷的发现,Nokia的Meego项目组有两套BUG管理系统,一套是对内的,只有Nokia自己的员工可以访问.....

IT MySQL/ 2012-07-27 14:12:12 / 累计浏览 3,328

远程连接mysql速度慢的解决方法

PHP远程连接MYSQL速度慢,有时远程连接到MYSQL用时4-20秒不等,本地连接MYSQL正常,出现这种问题的主要原因是,默认安装的MYSQL开启了DNS的反向解析,在MY.INI(WINDOWS系统下)或MY.CNF(UNIX或LINUX系统下)文件的[mysqld]下加入skip-name-resolve这一句。连接mysql速度慢的解决方法. 2台服务器,一台跑iis+php,一台跑mysql,和以往一样配置好环境,测试页面一切OK 跑应用的时候发现php访问mysql速度很慢,这种情况在以前从未发现过,虽然2台服务器并非在同一网段中,但是ping数值基本上都在1,2ms之间,tcp连接应该不是问题关健,google以后找到答案,在my.ini文件的[mysqld]部分加入:skip-name-resolve,保存文件,重启mysql,一切OK啦,速度象飞一样了

IT 奋斗/ 2012-07-27 14:11:57 / 累计浏览 2,508

意识流

我自己绝对是一个顽固的意识流的人。以往的各种内部或外部的分享,谈的最多的也是前端开发的各种concept。 2009.12 – D2上我说“库”时代过去了,以后不会再有类似jQuery、Dojo、YUI这种大而全的库了。堆积“库”的开发方式将会演变为按需加载更细粒度的模块(http://www.slideshare.net/kejun/yui2yui3)。框架提供的插件机制会把单一功能的库整合到一起。同年1月Mozilla发起一个叫ServerJS的项目,8月改名为CommonJS。CommonJS定义了一整套Javascript模块(module)、包(package)、promises、io等规范,目的用于服务器端、桌面应用的Javascript开发。

IT PHP/ 2012-07-27 14:08:18 / 累计浏览 5,243

请手动释放你的资源(Please release resources maunally)

我从来不认为这个问题是个问题, 直到昨天. 昨天晚上的时候, 我提交了一个RFC, 关于引入finally到PHP, 实现这个功能的出发点很简单, 因为我看见不少人的需求, 另外还有就是Stas说, 一直只看到讨论, 没看到有人实现. 于是我就给实现了. 发到邮件组以后, 一个开发组的同学Nikita Popov(nikic), 表示强烈反对这个RFC, 当然最初的论点他说了很多, 最后我们在线讨论的时候, 他表达了一个他的观点: "PHP在请求结束后会释放所有的资源, 所以我们没有必要调用fclose,或者mysql_close来释放资源, PHP会替我们做" 并且他表示, 他从来都不会调用fclose, 认为fclose的存在只是为了兼容C函数.

IT Oracle/ 2012-07-27 14:06:56 / 累计浏览 4,126

为什么不要把用户表存储到SYSTEM表空间

平时只知道不要把非系统用户的表存放到系统表空间,至于为什么,并没有去研究,直到看到kamus(张乐奕)和老熊(熊军)发起的邮件才知道,原来系统对SYSTEM表空间的自动维护会占用CPU资源,如果将普通用户的表存放到系统表空间,效率会下降。

IT 其他/ 2012-07-27 14:06:12 / 累计浏览 2,610

版权和许可协议的学习

互联网中充满了具有创造性和实用价值的资源。照片、文章、音乐和代码都是非常好的例子。相对于自己创造轮子,寻找现有的资源和已存在的实现方法则更快捷,廉价和实用。 无论是否免费,这些资源通常以某种许可协议发布以确保公正的使用。在本文中,我们将介绍控制着版权和许可协议的基本原则。然后带着例子,着重探讨一些比较流行的发行协议。 版权和许可协议 当我们创造一些东西时-比如说图像-我们拥有它的版权,这是我们作为此作品的作者而独享的权利。我们同时控制谁可以使用我们的作品,以何种方式使用。比如我允许别人打印我的图像,或者用在某个艺术品身上。此时,我不是通过口头形式建立协议,而是以设定了特定使用规则的许可协议发布我的作品。有版权的东西有时候又被称之为”智力财产”。

IT 算法/ 2012-07-27 14:05:48 / 累计浏览 2,907

数学之美:Xbox评分系统TrueSkill

在电子竞技游戏中,特别是当有多名选手参加比赛的时候需要平衡队伍间的水平,让游戏比赛更加有意思。这样的一个参赛选手能力平衡系统通常包含以下三个模块: 一个包含跟踪所有玩家比赛结果,记录玩家能力的模块。 一个对比赛成员进行配对的模块。 一个公布比赛中各成员能力的模块。 事实上目前已经有的游戏评分系统是Elo评分,但是Elo评分仅只是两名选手参加的游戏。TrueSkill系统是基于贝叶斯推断的评分系统,由微软研究院开发以代替传统Elo评分,并成功应用于Xbox Live自动匹配系统。TrueSkill评分系统是Glicko评分系统的衍伸,主要用于多人游戏中。TrueSkill评分系统考虑到了你水平的不确定性,综合考虑了玩家的胜率和可能的水平涨落。当玩家进行了更多的游戏后,即使你的胜率不变,系统也会因为对你的水平更加了解而改变对你的评分。

IT 其他/ 2012-07-27 14:02:53 / 累计浏览 4,127

使用Weka进行数据挖掘

数据挖掘、机器学习这些字眼,在一些人看来,是门槛很高的东西。诚然,如果做算法实现甚至算法优化,确实需要很多背景知识。但事实是,绝大多数数据挖掘工程师,不需要去做算法层面的东西。他们的精力,集中在特征提取,算法选择和参数调优上。那么,一个可以方便地提供这些功能的工具,便是十分必要的了。而weka,便是数据挖掘工具中的佼佼者。 Weka的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),是一款免费的,非商业化的,基于JAVA环境下开源的机器学习以及数据挖掘软件。它和它的源代码可在其官方网站下载。

IT 系统架构/ 2012-07-27 14:02:13 / 累计浏览 1,745

漫谈社区PHP 业务开发

在当前这个互联网业务飞速发展时期,新的产品如雨后春笋般涌出,老产品线新业务也在不断突破和尝试。这就对快速开发迭代提出了更高的要求。一、基础运行环境针对新产品的开发,必须能够快速搭建一套LAMP架构。那么无外乎选择一个webserver,选择一个php版本,选择一个mysql版本,再选择一个PHP开发框架和选择一些php通用扩展和基础库等。这个过程读者可能觉得已经很快了,能不能更快?选择的过程要求研发同学对相关技术方向有一定的积累,权衡利弊和优先点,又是一番调研和学习。如果有一键安装程序,提供自动化安装webserver,php,mysql,以及携带高性能灵活的php开发框架,并提供标准化、安全、常用的配置文件,可以大大缩短产品线LAMP系统调研的成本,缩短工作周期。

IT 用户研究/ 2012-07-27 14:01:12 / 累计浏览 4,867

浅谈如何留住用户

应用中心,顾名思义就是应用的集合,是承载各种应用的平台。其主要特点是娱乐性强、沉浸感强。它像是一个商店,里面有供人们随意挑选产品的货架,更像是一个游乐场,里面有各种各样让人眼花缭乱、流连忘返的产品。因此,如何吸引用户到我们的产品来,如何让他们在我们的产品上停留更多的时间,这些都是设计师们的必研课题。笔者经过一段时间对应用中心类产品的研究和设计积累,总结了一些设计思考,在此与大家分享。

IT 系统架构/ 2012-07-20 13:59:01 / 累计浏览 3,050

Digg.com 的系统架构

在过去的几年间,我们一直致力于重构Digg的架构,现在我们称之为“Digg V4”.本文我们将全面介绍Digg的使用的系统和技术。找出Digg引擎的秘密。 首先,我们来看下Digg给大众用户提供的服务吧: 一个社会化的新闻站点 为个人可定制的社会新闻 广告平台 API 服务 博客和文档站点 人们通过浏览器或者其他应用来访问这些Digg服务。一些有Digg账户的用户,可以得到“我的新闻”。每位用户可以得到的我们称之为“热门新闻”。我们有digg.com和移动版的m.digg.com,API服务的services.digg.com,信息介绍的about.digg.com,为开发者服务的developers.digg.com。这些站点统一为用户,新闻发布者,开发人员提供了博客和文档服务。 本文主要介绍Digg在社会化新闻产品中使用的高级技术。

IT 奋斗/ 2012-07-20 13:58:27 / 累计浏览 2,106

庇护所

回想起来,我也是从检察院辞职7年后,才摆脱了“如果失业怎么办”的心理阴影,自信可以靠能力挣得“衣食无忧福利丰厚”。这倒不是说7年后我才有此能耐,只是机关生涯烙下的心理疾患,此刻方才治愈罢了。

IT 互联网/ 2012-07-20 13:56:53 / 累计浏览 1,805

律条扼杀创新

费正清曾经有过一个很有意思的比喻:“中国商人具有一种与西方企业家完全不同的想法:中国的传统不是制造一个更好的捕鼠机,而是从官方取得捕鼠的特权。”律条就是保障特权的有效手段之一。在许可制的环境下,哪里还有什么小公司的腾挪之地。

IT 算法/ 2012-07-20 13:49:19 / 累计浏览 1,726

原子字典

一个需求:一个玩家数据的写入者,可以批量修改他的属性。但是,同时可能有其他线程在读这个玩家的数据(通过共享内存)。这可能造成,读方得到了不完整的数据。 我们可以不在乎读方得到某个时间的旧数据,但不可以读到一份不完整的版本。就是说,对玩家数据的修改,需要成组的修改,每组修改必须是原子的。 起先,我想用读写锁来解决这个问题。方案想好了,一直没有实现。只是把读写锁的基本功能实现了。 这几天这个问题被重提出来。因为,前段我们都采用了鸵鸟政策,当问题不存在(事实上我们也没有发现实际中出现可观测到的问题)。 反正探讨了好几个解决方案,一开始都是围绕怎么加锁,锁的粒度有多大来展开的。甚至,我们把其中的一种方案都实现出来了,并写了压力测试程序测试。不过,这些方案都不太令人满意。

IT 系统运维/ 2012-07-19 14:08:42 / 累计浏览 2,524

诡异提交失败问题追查

自四月份以来,贴吧遇到了发帖失败的问题,现象比较诡异。通过层层分析,几经波折,终于找到“凶手”。 1 背景很久前知道上有个问题:“从前天开始,跟帖就是发帖失败,换个ID开始能发,后来又变成发帖失败,很迷惑。谁知道怎么回事么。是系统问题么,还是网络问题?”最佳答案是:“很大部分是网络出现问题,你可以重新提交下就可以了”。 前段时间,贴吧的提交UI老是报警,晚上的时候手机叮叮咣咣地响,每次看都是apache进程数上千hold不住了,只好逐台重启。后来OP怒了,直接写了个脚本,发现apache进程数上来就自动重启。好景不长,某天图1被PM截下来发到群上,自己发几个贴测试下居然复现了!看来真不是网络的问题,必须好好追查下了。 2 提交系统综述先整理下贴吧提交的逻辑和涉及的模块。图2是贴吧提交系统的架构,一个完整的发帖流程需要经过下述模块的处理。

IT 奋斗/ 2012-07-19 14:05:58 / 累计浏览 2,572

什么是好的行业?

了解互联网分支行业,可以从关注某个细分领域里的TOP3或TOP5入手,选择你感兴趣的角度去观察。比如拆分了解产品模块设计,从新闻中挖掘分析运营策略,或是技术研究等等。一定要作对比评测笔记——这非常重要,可以帮助你从一团乱麻中梳理思路。

IT Oracle/ 2012-07-19 14:05:08 / 累计浏览 2,549

Oracle 11G的DDL_LOCK_TIMEOUT参数

今天kaums给客户做培训11g新特性,发现还真的有不少挺好的新东西,但是以前没有怎么去关注的他们,在后续的几篇中,陆续整理处理. DDL_LOCK_TIMEOUT specifies a time limit for how long DDL statements will wait in a DML lock queue. The default value of zero indicates a status of NOWAIT. The maximum value of 1,000,000 seconds will result in the DDL statement …

IT Linux/ 2012-07-19 14:04:40 / 累计浏览 4,043

和netstat说再见

如果你手头有Linux系统,你直接输入man netstat,就可以得到帮助信息。man对于netstat的解释非常言简意赅,只有一句简短的描述: “netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships” 中文意思是:netstat可以用来显示网络连接、路由表、接口统计、伪连接和组播成员。

IT Linux/ 2012-07-19 14:03:26 / 累计浏览 2,425

篡权的ss

ss是Socket Statistics的缩写。顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。