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

技术文章

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

技术文章精选

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

最新文章

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

IT JavaScript/ 2011-01-20 22:39:10 / 累计浏览 3,553

前端代码之丑(一):分支化技巧

看了 InfoQ 的 代码之丑 专栏,心痒痒忍不住,前端也来一个系列吧。 分析的代码片段大都来自实际项目。还希望代码主人多多包容,让我们一起共同研究探讨,互助学习提高。 实际代码 今天要分析的是获取邮费目的地的一段代码(做了部分简化,整体保持原貌...

IT JavaScript/ 2011-01-20 22:36:50 / 累计浏览 3,158

JavaScript 测试覆盖率检测工具

最近在用 Jasmine 给 KISSY 项目添加测试代码,遇到一个困惑:如何保证测试能完整覆盖到源码的所有分支? 用 Google 搜索了下 JavaScript Coverage 工具,琳琅满目。有商业版的 JavaScript Coverage Validator, 还有 FireBug 的不少扩展 JavaScript Code Coverage Tool for Firebug. 美中不足是,这些要么要花钱,要么已停止更新,杯具。 最后将目标锁定到免费开源一直更新的:JSCoverage. 不用不知道,一用立刻相见恨晚。下面简单...

IT 系统运维/ 2011-01-20 22:35:37 / 累计浏览 2,791

使用Aspersa洞悉Linux系统软硬件配置

我们在做服务器的时候,老大扔给你一台机器,要你在上面开发。通常服务器软件是非常依赖于系统的软硬件的,软件通常是要紧贴硬件的特性,如果我们不能了解机器的硬件,我们就无法高效的开发。 比如说想知道Linux的系统的版本,CPU有几个,内存多少大, 机器什么型号,Raid卡什么型号,硬盘有几个,文件系统是什么样子的,网卡什么型号,文件...

IT 其他/ 2011-01-20 22:34:29 / 累计浏览 1,169

例证NIF使用的误区

NIF是什么? A NIF library contains native implementation of some functions of an Erlang module. 这个功能对于扩展Erlang,利用现有的遗留c的财产,提高性能非常有帮助. 但是通常同学们会无视手册里面的一句话: Avoid doing lengthy work in NIF calls as that may degrade the ...

IT 系统架构/ 2011-01-20 22:30:23 / 累计浏览 9,347

Zookeeper研究和应用

zookeeper简介 zookeeper是一个开源分布式的服务,它提供了分布式协作,分布式同步,配置管理等功能. 其实现的功能与google的chubby基本一致.zookeeper的官方网站已经写了一篇非常经典的概述性文章,请大家参阅:ZooKeeper: A Distributed Coordination Service for Distributed Applications 在此我仅花少量笔墨介绍下本文相关的内容。 在zookeeper的集群中,各个节点共有下面3种角色和4种状态: 角色:leader,follower,observer 状态...

IT 算法/ 2011-01-20 22:27:40 / 累计浏览 2,613

数据压缩之范式HUFFMAN

HUFFMAN主要有两个问题,一是需要扫描两遍输入数据,二是树状结构编解码慢。对于第一个问题,基于统计信息的熵编码都很难解决这个问题,可以设计成自适应的,根据统计数据不停地改变调整码树,这会比较麻烦。对于第二个问题,这跟硬件有关系,二叉树的编码、解码都是O(1)的,复杂度上不能更优了,但是计算机硬件的特性,会使得树状结构遍历过程中CACHE MISS比较严重,如果码树比较小的话,可以都放在一级CACHE,性能会好很多,...

IT MySQL/ 2011-01-20 22:21:58 / 累计浏览 3,448

NoSQL or Relational ?

随着数据存储技术的迅猛发展,随着各种 NoSQL 技术的产生,无论是我们同事之间还是整个互联网行业,都出现关于“分布式 数据 存储/处理 解决方案”方面的选择分歧。就我目前所了解到的主流意见主要有以下三种: 去关系型,NoSQL是王道 NoSQL靠边站,关系型才是王道以关系型为核心,NoSQL为补充 三种意见中前面两种观点较为极端,都是“非对即错”的选择,当然也有更为理性的第三种方案。如果作为开发人员,从我目前所了解的信...

IT 系统架构/ 2011-01-20 22:20:02 / 累计浏览 2,849

hadoop作业调优参数整理及原理

1 Map side tuning参数 1.1 MapTask运行内部原理 当map task开始运算,并产生中间数据时,其产生的中间结果并非直接就简单的写入磁盘。这中间的过程比较复杂,并且利用到了内存buffer来进行已经产生的部分结果的缓存,并在内存buffer中进行一些预排序来优化整个map的性能。如上图所示,每一个map都会对应存在一个内存buffer(MapOutputBuffer,即上图的buffer in memory),map会将已经产生的部分结果先写入到该buffer中,这个buff...

IT 用户研究/ 2011-01-20 22:17:36 / 累计浏览 4,094

从用户体验出发的性能指标分析-Page Load

Page Load时间指的就是window.onload事件触发的时间。与DOM Ready时间相比,Page Load的时间往往要更靠后一些,因为Page Load不仅仅是HTML文档解析完毕还包括了所有资源加载所需要的时间,例如图片资源的加载、iframe的加载等。

IT 信息和交互/ 2011-01-20 22:15:34 / 累计浏览 2,456

投影――信息架构中物理到虚拟的一致性

  我们都知道,计算机图形界面的出发点就是对真实环境的物理特征进行复现,从而得到简便、直观、易学的人机交互,带弹性的按钮什么的就是很典型,这些复现往往会表现在很显而易见的地方。不过交互设计总是在处理一些不会直接看出的东西,比如信息架构的部分。

IT 算法/ 2011-01-19 22:17:56 / 累计浏览 2,009

19有什么特别的地方?

    今天在网上看到一个神奇的东西:把从 1/19 到 18/19 的所有分数展开成小数,得到一个 18 × 18 的数字方阵。这个数字方阵有什么特别的地方呢?          答案是,它是一个幻方――每一行、每一列和两条对角线上的数字之和都是 81 (注:严格意义上说它不算幻方,因为有相同数字)。     当然,相信大家像我一样,看到上图之后第一件事情就...

IT 算法/ 2011-01-19 22:17:24 / 累计浏览 3,513

生日悖论外传:任取两个人生日相同的概率是50%

    对原题的误读,有时竟会产生一些更有意思的问题。果壳问答上,网友 qxx 提问说:一个房间里面有很多人,我想让房间里面任意两个人的生日相同的概率是 50% 的话那房间里面应该最少有多少人?     当然,几乎可以肯定,提问人原本是想说“至少两个人”的,而问题的答案就是 23 ――生日悖论带来的惊人的答案。不过,如果把“至少两个人”误说成“任意两个人”,题目意思就完全变了,并...

IT 算法/ 2011-01-19 22:16:56 / 累计浏览 2,045

趣题:两两间的距离都是整数的点集

    最多能在平面上找出多少个点,使得它们两两之间的距离都是整数?当然,我们忽略最平凡的解――所有点都在一条直线上。     三个点的解显然是存在的,只需要构造一个边长为 1 的等边三角形即可。事实上,满足任意两数之和大于第三数的一组整数都可以成为一个三角形的三条边。寻找含有四个点的解也并不困难,一个长为 4 宽为 3 的矩形就能满足要求。不过,我们还有更小一些的解。最小的...

IT 用户研究/ 2011-01-19 22:14:20 / 累计浏览 2,933

从用户体验出发的性能指标分析-DOM Ready

DOM Ready,指的是页面解析完成的时间,在高级浏览器里有对应的DOM事件 - DOMContentLoaded。即该事件在文档解析完成时会触发。那么文档解析到底包括哪些操作呢?虽然暂不能给出一个完全的答案,但文档的解析至少应该包括以下操作:HTML文档分析以及DOM树的创建、外链脚本的加载、外链脚本的执行以及内联脚本的执行,但是不包括图片、iframe等其它资源的加载。正因为如此,该事件触发的时机一般比window.onload要早,而且是在所有DOM元素都可以操作之时。

IT 算法/ 2011-01-19 22:11:15 / 累计浏览 4,409

出租车几何学:一个全新的几何世界

    从北大打车到四惠,我一定会选择走四环。虽然从北京城中间直穿过去看上去很诱人,但考虑到北京道路几乎总是正南正北的方向,不会真有人认为这样能抄近路吧。在城市中,我们估算两点之间的距离时,往往不会直接去测量两点之间的直线距离,而会去考虑它们相距多少个街区。在理想模型中,假设每条道路都是水平或者竖直的,那么只要你朝着目标走(不故意绕远路),不管你怎样走,花费的路程都是一样的。