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

技术文章

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

技术文章精选

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

最新文章

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

IT JavaScript/ 2011-07-18 12:31:22 / 累计浏览 2,380

用In.js颗粒化管理、加载你的Javascript模块

近一年来,国内外都十分热衷于异步加载的研究,为了加快页面的载入速度,无阻塞加载Javascript的方法和框架成为了前端开发的焦点和亮点之一。 国外的像基于jQuery的RequireJs,YUI Loader,LabJs,RunJs,国内也有淘宝的SeaJs,豆瓣的DoJs等,这些都是一些十分优秀的模块加载器。但是本文将会向大家介绍一个新的开源的轻量级“多线程”异步模块加载器In.js,In的开发借鉴了Do的一些思路和使用习惯,在此期间感谢@kejun同我的耐心交...

IT 系统架构/ 2011-07-18 12:27:35 / 累计浏览 3,450

Restlet框架解读-2

1)代码结构 Restlet目前有三个分子版本,1.1.X,2.0.X,2.1.X,2.1.X是开发主干,有很多新的特性在添加和修改,本文主要解读2.0.X这个版本,同时会涉及到1.1.X的部分内容。 下载完restlet代码后,可以看到如下的目录结构 /+ org.restlet.* (restlet API) + org.restlet.engine.* (restlet的一个默认实现) + org.restlet.example.* + org.restlet.ext.* + org.restlet.test.* restlet是一款高度插件式的框架,ext包下面主要是res...

IT 系统架构/ 2011-07-18 12:27:15 / 累计浏览 4,036

Restlet框架解读-1

对于REST的概论,本文就不在说明, 简介: 具象状态传输(Representational state transfer,REST)是设计基于命名资源而非消息的松耦合应用程序的一种风格。构建 RESTful 应用程序的最困难的部分在于确定要公开哪些资源。解决了这个问题之后,再使用开源 Restlet 框架构建 RESTful Web 服务就是小菜一碟了。本教程从 REST 的基本概念开始,逐步指导您使用 Restlet 框架构建应用程序。 IBM上有针对REST规范的详细描述,本文只针对R...

IT 奋斗/ 2011-07-18 12:20:17 / 累计浏览 35,076

程序员技术练级攻略

月光博客6月12日发表了《写给新手程序员的一封信》,翻译自《An open letter to those who want to start programming》,我的朋友(他在本站的id是Mailper)告诉我,他希望在酷壳上看到一篇更具操作性的文章。因为他也是喜欢编程和技术的家伙,于是,我让他把他的一些学习Python和Web编程的一些点滴总结一下。于是他给我发来了一些他的心得和经历,我在把他的心得做了不多的增改,并根据我的经历增加了“进阶”一节。这是一篇由新...

IT 互联网/ 2011-07-18 12:19:47 / 累计浏览 2,107

数字技术演进下的组织结构

IT圈里的人员流动其实是很频繁的,既包括跳槽,也包括拉出去单干创业。最近比较大的人员变动是百度的高级副总裁沈皓瑜离职,有传言说他要加盟京东出任COO,但尚未获得证实。 一直以来,舆论上似乎对百度留人的问题是存有“刻板印象”的:这个公司留不住人。从起家的百度七剑客之变,到第二代高管的频繁更替(比较有名跑路的有梁冬、俞军、李一男),百度即便是高管,都有点“铁打营盘流水兵”的意思。但我倒是以为,这个事儿,再正...

IT 其他/ 2011-07-18 12:19:22 / 累计浏览 6,158

12款很棒的浏览器兼容性测试工具推荐

对于前端开发工程师来说,确保代码在各种主流浏览器的各个版本中都能正常工作是件很费时的事情,幸运的是,有很多优秀的工具可以帮助测试浏览器的兼容性,让我们一起看看这些很棒的工具。

IT 设计思想/ 2011-07-18 12:18:37 / 累计浏览 2,365

“差点的更好”设计理念的兴起

本文是从 The Rise of ``Worse is Better\'\' 这篇文章翻译而来。 我和几乎所有的Common Lisp和CLOS(Common Lisp Object System)的设计者都极度深受麻省理工学院/斯坦福大学(MIT/Stanford)设计风格的影响。这种风格的本质可以用“正确的做法(the right thing)”这个短语来概括。对于这样的设计者,重要的就是要遵循下面的这些设计理念: 简单性―设计必须简单,这既是对实现的要求,也是对接口的要求。接口的简单要比实现的简单更...

IT 算法/ 2011-07-18 12:16:41 / 累计浏览 2,246

关于tokyocabinet的list操作

如果有多个进程同时对一个mdb(其它的没看,不敢随便乱说)执行list操作,结果会怎样; 或许你会显得当然地认为相互没有太大关系,至少我开始时这么认为的,但是在看源码的时候,发现有些不太对劲儿,我们先看一下源码.....

IT JavaScript/ 2011-07-18 12:13:39 / 累计浏览 3,675

Google+中URL的渐进增强

在高级浏览器下点击Google+的一些链接,并不是直接从服务器返回完整的页面,而是通过AJAX刷新页面的局部,并且更新地址栏中完整的URL。其中对URL的操作是靠HTML5中的history.pushState来实现的。

IT CSS/HTML/ 2011-07-18 12:13:08 / 累计浏览 1,830

HTML5和CSS3特性检测-Modernizr

HTML5和CSS3逐渐成为WEB前端开发的必须技能,开发过程中检查不同浏览器对HTML5和CSS3支持情况成了是一件非常烦心的事情。

IT MySQL/ 2011-07-16 21:15:40 / 累计浏览 3,314

探索MySQL源代码-客户端连接过程和用户认证体系

本文从源代码角度详细解释使用mysql客户端连上MySQL的服务端的过程以及通过用户认证的过程。 用户在客户端键入 mysql -h a.b.c.d -u root -pxxxx 最终都会调用到mysql_real_connect(sql/client.c的1856行的宏CLI_MYSQL_REAL_CONNECT),我们从这个函数出发。 先上图 发件人 MySQL 客户端发起socket连接,等待三次握手的通过。 三次握手通过之后,客户端进入client_safe_read阻塞,同时服务端从handle_connection_sockets函数的selec...

IT MySQL/ 2011-07-16 21:14:37 / 累计浏览 2,234

探索MySQL源代码-在show processlist里添加字段

show processlist是诊断MySQL常用的命令,它会列出THD对象里所有的线程当前状况。 下面将为show processlist添加一个新的列,表示当前连接查询之后返回的行数,字段名为my_row_count。 当你要修改一个命令的时候,最好从sql/sql_yacc.yy出发,根据命令的关键字语法匹配到后续的动作。打开sql/sql_yacc.yy后搜索关键字show:,就找到了所有show命令的语法规则。

IT 源码分析/ 2011-07-16 20:49:07 / 累计浏览 4,355

redis源代码分析 - replication

redis的复制方法和机制都比较简单。 slaveof masterip port 在slave端键入命令之后,就开启了从master到slave的复制。一个master可以有多个slave,master有变化的时候会主动的把命令传播给每个slave。slave同时可以作为其他的slave的master,前提条件是这个slave已经处于稳定状态(REDIS_REPL_CONNECTED)。slave在复制的开始阶段处于阻塞状态(sync_readline)无法对外提供服务。 数据的有向图会让redis的运维很有搞头。

IT 源码分析/ 2011-07-16 20:47:57 / 累计浏览 32,118

redis源代码分析 - persistence

redis有全量(save/bgsave)和增量(aof)的持久化命令。 全量的原理就是遍历里所有的DB,在每个bucket,读取链表的key和value并写入dump.rdb文件(rdb.c 405)。 save命令直接调度rdbSave函数,这会阻塞主线程的工作,通常我们使用bgsave。 bgsave命令调度rdbSaveBackground函数启动了一个子进程然后调度了rdbSave函数,子进程的退出状态由 serverCron的backgroundSaveDoneHandler来判断,这个在复制这篇文章里讲到过,这里就不罗...

IT 源码分析/ 2011-07-16 20:47:01 / 累计浏览 4,080

redis源代码分析 - event library

每个cs程序尤其是高并发的网络服务端程序都有自己的网络异步事件处理库,redis不例外。 事件库仅仅包括ae.c、ae.h,还有3个不同的多路复用(本文仅描述epoll)的wrapper文件,事件库封装了框架调用的主循环函数,暴露了时间、文件事件注册和销毁函数,典型的依赖反转模式。 网络操作都在networking.c里,封装了常见的socket操作。 我们从redis启动的main函数开始,从用户发出连接键入命令开始遍历网络事件库所涉及的函数,unix套接...

IT 源码分析/ 2011-07-16 20:44:48 / 累计浏览 4,452

redis源代码分析 - hash table

hashtable的实现有很多,redis的dict.c 是其中之一。 dict 包含了2个dictht hashtable ht[0], ht[1]。 client版本的dict是没有dictht的概念。加入dictht的概念存在2个ht的目的是为了在rehash的时候可以平滑的迁移bucket里的数据,而不像client的dict要把老的hash table里的一次性的全部数据迁移到新的hash table,这在造成一个密集型的操作,在业务高峰期不可取。 ht是hashtable的简称,实际上是一个指针数组,数组的个数由dictht-...

IT 奋斗/ 2011-07-16 20:43:45 / 累计浏览 3,814

谈谈我的阅读经验――从刘瑜的一篇文章谈起

前段时间,与豆瓣网友伊卡洛斯聊,他问我是否有书推荐,书没推荐几本,文章倒是推荐了一篇《刘瑜的秘密书架:从经典到经验》,他看过之后感觉很好。其实,我第一次看也有豁然开朗的感觉,索性就着刘瑜的文章,说说自己的阅读经验吧。在我看来,“读书”和“会读书”是两回事,如何才叫“会读书”,至少要保证几点,下面一一道来。 首先,读书一定要有明确的目的性。此处的“目的性”,准确来说就是真正关心的问题,循着这些问题,...

IT 发现/ 2011-07-16 20:42:28 / 累计浏览 4,076

浏览器多tab打开同一URL串行化的问题

最近同事"神经病"同学的项目中, 发现一个问题. 用firefox打开多个tab, 每个tab都去请求同一个URL(尽量同时), 会发现, 这些请求, 会被浏览器串行化. 也就是说, 浏览器会在第一个页面请求结束以后, 再发起第二个请求.

IT JavaScript/ 2011-07-15 00:13:53 / 累计浏览 3,997

解决jQuery动画在chrome下暴走的问题

最近发现用jQuery实现的动画在chrome下会有暴走的问题。例如下面这个页面,打开后红色方块每隔三秒向右移动20像素。此时开一个新的Tab,把这个页面放在后台Tab上等待30秒,然后切换回该页面,就会看到红方块连续向右移动了200像素。