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

技术文章

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

技术文章精选

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

最新文章

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

IT 系统架构/ 2012-08-17 13:20:11 / 累计浏览 2,709

索引页链接补全机制的一种方法

Spider位于搜索引擎数据流的最上游,负责将互联网上的资源采集到本地,提供给后续检索使用,是搜索引擎的最主要数据来源之一。spider系统的目标就是发现并抓取互联网中一切有价值的网页,为达到这个目标,首先就是发现有价值网页的链接,当前spider有多种链接发现机制来尽量快而全的发现资源链接,本文主要描述其中一种针对特定索引页的链接补全机制,并给出对这种特定类型的索引页面的建议处理规范用于优化收录效果。

IT CSS/HTML/ 2012-08-17 13:18:47 / 累计浏览 2,929

inline-blcok 前世今生

曾几何时,display:inline-block 已经深入「大街小巷」,随处可见 「display:inline-block; *display:inline; *zoom:1; 」这样的代码。如今现代浏览器已经全面支持这个属性值了,上面的代码是为了兼容 IE6、7而已。那么你真的了解 inline-block 了吗?本文将带你深入剖析该属性值的前世今生,让你更好的理解和运用 inline-block。(本文约定 display:inline-block 简写为 inline-block) 开篇我们来看几个问题: IE6、7 真的不支持 display:inline-block 吗? display:inline-block 后的元素为什么会产生水平空隙,这真的是 bug 吗? 如何更好的解决 display:inline-block 元素间产生的水平空隙?

IT 用户研究/ 2012-08-17 13:17:55 / 累计浏览 5,109

企业用研二三事

企业用研的对象相对复杂,因此我们用户研究人员在调研方法和调研内容上需要“因地制宜”。我们不仅要从用户心理层面和认知层面出发,还要多一些商业角度和组织角度的思考。当然,调研时的一些基本技巧(如访谈和可用性测试)和个人用研还是一致的。对于企业用研,我们也还在项目研究中不断进行摸索,撰以此文进行小结,希望能和大家一起探讨交流。

IT 网络系统/ 2012-08-17 13:16:05 / 累计浏览 3,840

利用node.js搭建SPDY协议的翻墙服务

我之前一直是使用ssh –D的方式翻墙,但是这么做有个缺点,需要在用户的机器上安装一个软件,并且ssh会经常断(即使加了keep alive)。后来我一直在想,为什么不直接走http或者socks协议呢?我觉得主要原因是:通信没有加密。 Chrome开了一个名为Secure Web Proxy的项目,旨在让浏览器支持HTTPS协议的proxy server。目前不光chrome,firefox也支持了。此外,Chrome还引入了一个名为SPDY的协议,通过对HTTPS做略微的修改,使得在单个SSL连接上可以同时传输多个HTTP请求。因为减少了HTTPS握手次数,可以大大提高proxy的相应次数。 综上所述,用SPDY协议来翻墙,比ssh -D好多了! 最近我从网上找了一段代码,发现可以很快速的利用node.js搭建一个SPDY协议的proxy server,下面分享给大家。

IT 编程语言/ 2012-08-17 13:14:43 / 累计浏览 1,664

PHP的新特性finally

最近, 我提交的关于finally的RFC:Supports finally keyword已经提交到了PHP主干, 今天就给大家介绍一下这个新特性的背景, 和使用方法. 关于这个特性的需求, 最早是在2005年提出来的: FR #32100, 但一直没有人去实现它. 对于现在的PHP来说, 如果我们需要在发生我们当前不能处理的异常的时候, 做一些工作, 那么就会写下类似于这样代码...

IT MySQL/ 2012-08-17 13:13:42 / 累计浏览 2,507

MySQL数据库性能优化之硬件瓶颈分析

在过往与很多人的交流过程中发现,在谈到基于硬件来进行数据库性能瓶颈分析的时候,常被大家误解为简单的使用更为强劲的主机或者存储来替换现有的设备。个人觉得这其中可能存在一个非常大的误区。我们在谈论基于硬件进行优化的时候,不能仅仅将数据库使用的硬件划分为主机和存储两部分,而是需要进一步对硬件进行更细的分解,至少也应该分解到如下范畴: 主机 CPU:仅仅只能决定运算速度,及时是运算速度都还取决于与内存之间的总线带宽以及内存本身的速度内存:大小决定了所能缓存的数据量,主要决定了热点数据的访问速度磁盘: 大小:决定了你最终能存放多少数据量转速:决定了你每一次IO请求的延时时间,也就是决定了我们常说的IOPS和MBPS 数目:磁盘数目决定了类型

IT PHP/ 2012-08-17 13:13:08 / 累计浏览 8,208

关于PHP的编译和执行分离

关于让"PHP的编译和执行分离"这个问题, 一直有人提, 也一直有人尝试. 提的人认为编译执行分离以后, 可以得到性能提升, 可以做代码保护等. 我本身并不是对这个特性很感冒, 因为这里面存在一个投入产出比. 让我来给大家解释一下, 然而不管怎么样, 在最后我会给大家提供一种方案来实现这个功能.

IT 其他/ 2012-08-17 13:11:48 / 累计浏览 2,547

一种在图片里隐藏你的程序代码的技术

我最近开发了我的第一个网页游戏:一个HTML5的视频智力游戏。开发的过程很有趣,我喜欢编程,但当实现了游戏逻辑后,我有了一个有趣的想法:为什么不想个办法把代码隐藏起来?

IT 网络系统/ 2012-08-17 13:10:45 / 累计浏览 6,553

有关TCP Flag

面试一小伙,老生长叹的问题,介绍一下TCP flags,小伙说多了,SYN, FIN在ACK的时候需要占一个Byte的数据,而其他几个不需要。于是反问之,为什么不要?小伙支吾一阵说,可能是其他几个不重要吧。这个问题其实很简单,对于需要ACK确认收到的标记,需要占用一个Sequence值。例如,你发送一个仅有FIN没有数据的报文,TCP一定要确认收到一把,而这种确认只能通过sequence加加。这个同标记的重要与否无关。其他的Flag是单向的不需要确认,尤其对于ACK,协议设计上就不允许确认,因为如果ACK需要确认,则协议必然陷入死循环不可自拔。对于SYN, FIN由于需要确认,因此逻辑上是Data的一部分。其实TCP的多数option也是需要确认的,逻辑上也是data的一部分。但Option设计本身就有option级别的确认机制,不需要利用sequence在搞一把。

IT PHP/ 2012-08-17 13:09:33 / 累计浏览 4,784

php链接mssql的问题收集(总结)

为了php连接sql2005 ,我在网络上找了一大堆资料在我的csdn博客中.晚上3:05分时候终于搞定了 php连接sql2005的问题,现在整合,同时把FAQ整合上.

IT 网络系统/ 2012-08-15 13:43:54 / 累计浏览 6,390

你不知道的 HTTP

最近在项目中碰到了比较多 HTTP 相关的问题,小组对这些问题进行了学习和总结。 ch01. 跨域Ajax 背景小故事: 开放平台通过 JS 的方式将淘宝的核心功能集成到第三方网站,以扩大交易生态圈。 目前已发布登录、购物车等组件。 作为底层支持的 JS SDK 需要提供小巧的跨域XHR功能. ch02. 反向Ajax 背景小故事: 有Ajax,自然还有反向 Ajax 。本着折腾的精神,对这部分知识点也做了一些了解。 ch03. HttpOnly cookie 和 第三方 cookie 背景小故事: 在页面中嵌入一个跨域的iframe,在某些浏览器中,iframe的js无法操作cookie。 此外,第三方,可能无法正确发送 cookie。 等等奇怪的问题,都跟小小的cookie有关。

IT 信息和交互/ 2012-08-15 13:42:18 / 累计浏览 2,387

你好,对话框

“怎么了?”除非你对某类对话框已司空见惯,否则遇到,第一反应往往是这样的?这种体验就像你明明急着去赶车,途中却不断被拦住塞传单一样。不能否认,它是一种打断,有时甚至会成为打扰。做为设计师,虽知“打断”暂不能杜绝,但不使之变为“打扰”,却是我们该努力做到的。

IT 系统架构/ 2012-08-15 13:40:23 / 累计浏览 4,190

进程上下文切换 – 残酷的性能杀手(上)

对于服务器的优化,很多人都有自己的经验和见解,但就我观察,有两点常常会被人忽视 - 环境切换 和 Cache Line同步 问题,人们往往都会习惯性地把视线集中在尽力减少内存拷贝,减少IO次数这样的问题上,不可否认它们一样重要,但一个高性能服务器需要更细致地去考察这些问题,这个问题我将分成两篇文章来写: 1)从一些我们常用的用户空间函数,到linux内核代码的跟踪,来看一个环境切换是如何产生的 2)从实际数据来看它对我们程序的影响

IT 源码分析/ 2012-08-15 13:39:40 / 累计浏览 2,427

gcc对Template Template Parameters的兼容性

上周有位网友联系我说chaos在他的环境上编译不过,并发给我了一些错误信息 查看了编译错误信息之后并没得到太多排查的入口,询问了对方的编译器版本是gcc 4.6.3,而我基本都是工作在4.1版本左右的gcc上,周末在家自己搭了个4.6.3的环境,果然也出现了同样的问题,之后发现这是因为高版本gcc(g++)对c++模板的检查更为严格所导致的,我们直接看例子

IT 源码分析/ 2012-08-15 13:38:33 / 累计浏览 3,394

linux时间相关结构体和函数整理

alarm函数是信号方式的延迟,这种方式不直观,这里不说了。 仅通过函数原型中时间参数类型,可以猜测sleep可以精确到秒级,usleep/select可以精确到微妙级,nanosleep和pselect可以精确到纳秒级。 而实际实现中,linux上的nanosleep和alarm相同,都是基于内核时钟机制实现,受linux内核时钟实现的影响,并不能达到纳秒级的精度,man nanosleep也可以看到这个说明,man里给出的精度是:Linux/i386上是10 ms ,Linux/Alpha上是1ms

IT 系统架构/ 2012-08-15 13:37:53 / 累计浏览 2,390

多核环境下cache line的测试

前阵子接触到一道关于数组内部链表(多用于内存池技术)的数据结构的题, 这种数据结构能够比普通链表在cache中更容易命中, 理由很简单, 就是因为其在地址上是连续的(=.=!), 借这个机会, 就对cpu cache进行了一个研究, 今天做一个简单的分享, 首先先来普及一下cpu cache的知识, 这里的cache是指cpu的高速缓存. 在我们程序员看来, 缓存是一个透明部件. 因此, 程序员通常无法直接干预对缓存的操作. 但是, 确实可以根据缓存的特点对程序代码实施特定优化, 从而更好地利用高速缓存.

IT 系统运维/ 2012-08-15 13:36:26 / 累计浏览 1,405

在Windows 2003系统上安装配置exif 扩展

由于最近用的一个程序需要exif扩展的支持,所以只能试着配置了一下exif扩展。 首先在php.ini里面把;extension=php_exif.dll前面的分号去掉。然后重启IIS,重启之后还是不行,那到底是为什么呢。

IT 设计思想/ 2012-08-15 13:35:32 / 累计浏览 2,024

朝花夕拾——iOS产品的注意事项

所谓干货,无非是想说明一些你不知道需要补上或已经知道但没有正视的道理,并建立认同:这些简单的东西确实都是有用的,只不过你没真心用过而已。产品的定期总结,往往犹如一面明镜,让我们看清当前的状态,知道了投入产出比,才能有所反思,下次迈开步子时不会夹着蛋了。朝花夕拾,为时不晚。

IT 设计思想/ 2012-08-14 14:05:09 / 累计浏览 2,066

挑战网站分析中的大众智慧(2)——热图

“一图胜千言”,在网站分析中也完全如此。我们喜欢热图的原因,是这张图非常明确地告诉我们用户对一个页面上的什么部分感兴趣,而且非常直观。我曾经有客户告诉我:我什么都不需要,你就给我热图就好了。我想,他一定是因为热图易读好懂,且满含信息,所以才对它青睐有加。