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

技术文章

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

技术文章精选

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

最新文章

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

IT 设计思想/ 2012-08-14 14:04:28 / 累计浏览 2,046

挑战网站分析中的大众智慧(1)——Bounce Rate

Bounce Rate,网站分析的基本度量之一,相信大家都不陌生。Bounce rate似乎代表着某种网站分析赋予我们的“神奇挑战”,如果我们拥有制服或是支配它的力量,我们就似获得了某项了不起的成就。   于是人们相信bounce rate越低越好,但即如古语所言“过犹不及”,更低的bounce rate或许并不如我们预想的那般美好。

IT 系统架构/ 2012-08-14 13:57:15 / 累计浏览 2,146

Chaos网络库(二)- Buffer的设计

对于buffer的设计,chaos和其他网络库的做法稍有不同,就拿libevent-stable-1.4.13(以下所提到libevent处皆为该版本)来说,它采用一种能够自动扩张的buffer,基本策略如下: 1. 当缓冲区不够存放新数据时,它会先在内部做marshal,看看是否能够腾挪出足够的空间 2. 假如没有满足,那么对buffer进行expand, 大小为原来的两倍,扩张之后该buffer就不会缩小...

IT 系统架构/ 2012-08-14 13:56:16 / 累计浏览 3,913

Chaos网络事件库开篇介绍(一)

由于之前工作用得是libevent和boost asio, 所以一直很想写一款基于自己设想的网络库, 并在某位大侠的鼓励下萌生了开发网络库的想法, 由于我的初衷是不打算使用任何第三方库, 从零开始完全自己编写, 故取名为chaos —无中生有, 始为混沌. 首先, Chaos是一个基于Linux平台, reactor模式的网络事件库, 目前仅支持TCP传输协议, 仅在x86_64下编译, 并遵循3-clause BSD开源协议. 在使用上, 可以说它很像boost asio, 可能是由于我对boost asio的接口设计很有爱吧, 而且对于boost asio在异步编程方面的思想, 我个人也比较认同, 但至今我也没有仔细阅读过boost asio的源码, 一是boost的模板化编程在可读性上让我比较折磨, 其二则是不想在对设计先入为主的情况下去开发chaos.......

IT 系统架构/ 2012-08-14 13:53:47 / 累计浏览 3,793

ZeroMQ的学习和研究

 “ZMQ(以下ZeroMQ简称ZMQ)是一个简单好用的传输层,像框架一样的一个socket library,他使得Socket编程更加简单、简洁和性能更高。是一个消息处理队列库,可在多个线程、内核和主机盒之间弹性伸缩。ZMQ的明确目标是“成为标准网络协议栈的一部分,之后进入Linux内核”。现在还未看到它们的成功。但是,它无疑是极具前景的、并且是人们更加需要的“传统”BSD套接字之上的一 层封装。ZMQ让编写高性能网络应用程序极为简单和有趣。” 近几年有关”Message Queue”的项目层出不穷,知名的就有十几种,这主要是因为后摩尔定律时代,分布式处理逐渐成为主流,业界需要一套标准来解决分布式计算环境中节点之间的消息通信。

IT 奋斗/ 2012-08-14 13:53:05 / 累计浏览 3,868

为什么程序员预估的时间都不靠谱

一个我曾经共事过的很有经验的项目经理曾宣称说,他会拿程序员估计出的时间乘以π值,然后再提高一个数量级,这样得出的才是正确的开发所需要的时间。1天时间经过变换后是3.14周。他经过惨痛的教训才认识到程序员预估的时间都是不靠谱的。为了能更精确的对程序员估计的时间进行换算,我创建了一个时间换算表,重点说明究竟是什么地方出了问题。

IT 系统架构/ 2012-08-13 14:00:07 / 累计浏览 1,865

环境切换 – 残酷的性能杀手(上)

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

IT 系统架构/ 2012-08-13 13:59:44 / 累计浏览 2,785

互联网时代的社会语言学:基于SNS的文本数据挖掘

挖掘新词的传统方法是,先对文本进行分词,然后猜测未能成功匹配的剩余片段就是新词。这似乎陷入了一个怪圈:分词的准确性本身就依赖于词库的完整性,如果词库中根本没有新词,我们又怎么能信任分词结果呢?此时,一种大胆的想法是,首先不依赖于任何已有的词库,仅仅根据词的共同特征,将一段大规模语料中可能成词的文本片段全部提取出来,不管它是新词还是旧词。然后,再把所有抽出来的词和已有词库进行比较,不就能找出新词了吗?有了抽词算法后,我们还能以词为单位做更多有趣的数据挖掘工作。这里,我所选用的语料是人人网 2011 年 12 月前半个月部分用户的状态。非常感谢人人网提供这份极具价值的网络语料。

IT 算法/ 2012-08-13 13:58:06 / 累计浏览 6,309

贴着另一枚硬币旋转一周则自身转了两周:不同的解释方法

    有一道非常经典的智力问题:假设有两个一模一样的硬币 A 和硬币 B ,如果让硬币 B 不动,让硬币 A 贴着硬币 B 旋转一周,那么硬币 A 自身旋转了多少周?一个常见的错误答案是“显然也是一周啊”,而实际上正确的答案是两周,如下图所示。我们有很多方法来解释这种现象,其中最传统的说法便是“公转了一周,自转了一周”。硬币 A 的运动是由两部分合成的,公转一周(想像一个人绕着地球走了一圈),以及自转一周(想像一个轮子在地面上滚动了一周)。想像你是站在硬币 B 中心处的一个小人儿,看着硬币 A 贴着你脚下的硬币转动一圈。如果在此过程中,你始终面向硬币 A ,那么在你看来,硬币 A 似乎就是在长为 2πr 的平地上滚了一圈。而实际上,在观察硬币 A 的过程中,你自己也原地转了 360 度,因此从外面的人开来,硬币实际上转了两周。

IT 信息和交互/ 2012-08-13 13:57:35 / 累计浏览 1,548

反馈式交互设计在网站里的实际应用

反馈和交互意味着通过合适的反馈以及和程序之间的交互从而让用户时刻知道现在发生了什么,而不仅仅是当事情出错时显示一个警告。我们暂时将反馈分成2种类型:一种正面反馈,另一种为负面反馈。对网站用户而言反馈属于提示信息类型的一种,从用户注册账号输入错误的提示,到退出成功的提示,都是属于反馈式交互设计的范畴。

IT 信息和交互/ 2012-08-13 13:56:34 / 累计浏览 2,224

浅谈微博分组功能

本文是喷新浪微博的分组功能产品设计的,想必大家用过的很多互联网产品都会有分组这个功能,今天就在纯产品角度讨论一下这类单向Follow机制产品如何设计分组这个功能会比较好!

IT Oracle/ 2012-08-13 13:43:14 / 累计浏览 4,347

ORACLE update 操作内部原理

对于oracle的update操作,在数据块中具体是如何出来,是直接更新原来值,还是通过插入新值修改指针的方法实现.下面通过证明: 模拟表插入数据 数据存储对应16进制值 得出第一条记录对应值为:02c10203584646;第二条记录对应值为:02c10303434846 dump 数据块得到记录 bbed查看相关记录 这里可以得到结论如下: 1.数据是从块的底部开始往上存储 2.在每一条记录的头部分别有flag/lock/cols对应这里的2c0102 3.这里的偏移量和dump出来的数据可以看出来两条记录是连续在一起(偏移量分别为:8168和8178) 更新一条记录 我们可以但看到值有XFF改变为XIFENFEI,存储长度变大

IT 编程语言/ 2012-08-13 13:42:31 / 累计浏览 3,948

小心递归次数限制

最近, 我在 review 组员的 Python 代码时, 发现了一个递归调用, 我立即发现了其中的问题. 先说一下编程中递归. 只有会用递归, 并且能随心应手地写出递归程序的程序员, 才是已经入门了的程序员. 不过, 许多程序员并没有发现编程中的递归的一个限制: recursion depth limit, 逻辑上的递归可以无次数限制, 但语言执行器或者程序堆栈会限制递归的次数.

IT 视觉设计/ 2012-08-10 00:02:23 / 累计浏览 1,722

好朋友【阿木】谈极简风格在设计中的运用

Hi 大家好,我是阿木,今天我结合我在微博的实际项目跟大家分享一下极简风格的一点设计心得。现代城市生活中我们每天要面对嘈杂拥堵的街道和地铁,各式各样的广告,处理各种邮件和信息。于是我们内心追求一种体验那就是—极简,像大家家喻户晓的品牌如:MUJI无印良品、 苹果 、宜家家居,都是这一风格的发扬者,他们的产品也获得了巨大成功。 极简在摄影中是一种突出主体取简去繁的摄影手法,在生活中是一种放松的生活态度,在设计中是一种简洁的设计手法。 微博的设计体验也是如此,我们去掉了复杂的视觉干扰,力求给用户带来愉悦轻松的视觉体验。

IT 视觉设计/ 2012-08-10 00:01:02 / 累计浏览 1,726

信息图形中的颜色探讨—面向色盲人士友好的设计解决方案

颜色可以用来区分信息图形上的数据类别和维度,是数据可视化中最常用的视觉变量之一。然而,世界上有超过8%的男性和0.4%的女性都被色觉障碍的问题困扰——他们在识别部分或者全部颜色时有困难。我们通常笼统的称这类人群为“色盲(Color Blindness)”(也称为道尔顿症、色觉缺失、色觉辨认障碍、色弱等)。面对如此庞大的特殊受众,设计师理应关注他们的需求。信息图形设计本是以向用户传递精准数据为目标,也不能忽视了这部分群体。 一. 了解色盲 “色盲能看到颜色吗?”“他们只能看到黑、白吗?”——人们常误以为色盲视觉所见的景象只有灰阶分布,其实不是的。色盲并不意味着色觉的完全丧失,而是指部分色觉受损,因此无法正确感知和分辨某些区域的颜色。色盲可以分为:红色盲(P)、绿色盲(D)、蓝色盲(T)和全色盲。其中红色盲和绿色盲最为普遍,合称为红绿色盲。

IT MySQL/ 2012-08-09 23:59:09 / 累计浏览 3,311

MySQL数据库负载很高连接数很多怎么处理

在MySQL数据库连接数很多,而且大多属于活跃的状态时MySQL机器基本上负载很高,属于基本上快要死去的状态了. 这时怎么办呢? 有可能两个办法. 第一先限制Innodb的并发处理.如果innodb_thread_conncurrency = 0 可以先改成 16或是64 看机器压力,如果 非常大,先改成16让机器的压力下来,然后慢慢增达,适应自已的业务. 处理方法: set global innodb_thread_conncurrency=16; 第二: 对于连接数已经超过600或是更多的情况,可以考虑适当的限制一下连接数,让前端报一下错,也别让DB挂了. DB在了,总是可以用来加载一下数据,当数据加载

IT 系统架构/ 2012-08-09 23:58:19 / 累计浏览 4,046

PHP超时处理全面总结

在PHP开发中工作里非常多使用到超时处理到超时的场合,我说几个场景: 1. 异步获取数据如果某个后端数据源获取不成功则跳过,不影响整个页面展现 2. 为了保证Web服务器不会因为当个页面处理性能差而导致无法访问其他页面,则会对某些页面操作设置 3. 对于某些上传或者不确定处理时间的场合,则需要对整个流程中所有超时设置为无限,否则任何一个环节设置不当,都会导致莫名执行中断 4. 多个后端模块(MySQL、Memcached、HTTP接口),为了防止单个接口性能太差,导致整个前面获取数据太缓慢,影响页面打开速度,引起雪崩 5. 。。。

IT 互联网/ 2012-08-09 23:56:49 / 累计浏览 2,631

移动互联趋势观察

手机的便携性、方便性使得手机能够更深层次的融入到我们的生活中,au Smart Sports创新式的集合手机,提供了感知运动温度、测量运动情况、运动场景记录等功能,使我们手中的手机变成了体感手机,很好的利用了手机平台,打破了传统的手机使用模式。Apple公司也在将自己的产品融合到不同的使用领用,如服装、装备、增强现实等。手机移动支付已经变得越来越普及,移动比价系统也越来越完善,在未来支付系统将成为重要部分,想象一下一群朋友出去吃饭,一个人用手机发起AA制,其他人互碰一下手机就能完成AA制付款的生活。也许有一天我们出门不用带任何现金,只带个手机便可解决所有问题。