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

技术文章

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

技术文章精选

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

最新文章

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

IT 互联网/ 2012-05-12 22:26:59 / 累计浏览 1,626

知心怪蜀黍NO.14 我在哪里看科技资讯

很感谢去年您写的那篇从编辑转行为PM的博客。结果事隔一年,我开始正式带一个内容类产品了,只不过是以编辑的身份。之前你提出的建议之一是“每天看20条以上的互联网新闻,并订阅三五个大更新量的互联网博客,逐条细看一个月。随后再订阅二三十个博客,有选择地精读,常年坚持风雨无阻。”我现在新闻倒是看不少,包括国外的TC、TNW、Engadget的新闻也基本每条都过一遍,可是博客方面却没收集多少好的,主要是包括你的博客在内的一些产品经理的博客,算来也就十来个。所以又想到来骚扰你,求推荐,呵呵。纯银大把自己关注的产品方向的博客推荐一下吧,英文的、大陆的、台湾的都行:)期待你的新博文啦~这个……基本木有。我相当喜欢的,每半个月更新一篇以上的IT个人博客,基本木有。2010年还有点,11年就全部阵亡了,都刷微博去了。团队博客,如36氪,爱范儿这些倒是不少,但内容良莠不齐得厉害,大部分重数量甚于质量。

IT 系统架构/ 2012-05-12 22:25:51 / 累计浏览 7,029

腾讯后台开发技术总监浅谈过载保护 小心雪崩效应

摘要: 每个系统,都有自己的最大处理能力,后台技术人员对此必须很清楚,且要注意自我保护,不然就会被雪球压垮,出现雪崩。 雪球:      对于时延敏感的服务,当外部请求超过系统处理能力,如果系统没有做相应保护,可能导致历史累计的超时请求达到一定规模,像雪球一样形成恶性循环。由于系统处理的每个请求都因为超时而无效,系统对外呈现的服务能力为0,且这种情况下不能自动恢复。

IT Oracle/ 2012-05-12 22:22:25 / 累计浏览 2,090

oracle索引扫描

索引扫描不同于表扫描,表扫描只有一种类型就是全表扫描(full table scans),而索引扫描根据具体情况不同可以分为如下几类:索引唯一扫描(index unique scan).这种扫描发生在主键或者唯一索引上,根据键值可以唯一确定要访问的记录,这种扫描方式因为返回的记录数少,能够快速定位记录,扫描效率较高索引范围扫描(index range scan).这种撒么一般发生在返回多个值的时候,如where条件中>and <或者非唯一索引中的=时,范围扫描要求返回的结果集不能太多,否则不能从索引扫描上获取益处,因为从索引只能获得rowid与索引列的值,,有可能还需要根据rowid回表一条条的去找行的其他数据,除非不需要回表便能从索引上获得必需的数据。

IT 设计思想/ 2012-05-12 22:18:32 / 累计浏览 2,330

无逻辑,不产品。

整体来说,最靠谱的产品决策,应该是最前线的产品执行者,通过长期摸爬滚打中获取的大量信息反馈所内化成的产品感觉来做出的。当然,这样就应该让所有KPI都压在这种人身上,谁决策谁负责。但更多的显示情况,往往与这种模式大相径庭。其实,就算大相径庭也无妨,必经本来大部分产品执行者也不靠谱,无论谁决策,都不影响产品失败的结果。可惜的是,少数靠谱的产品,往往也会被这话总情况扼杀。所以,这种人,大部分都去创业了。

IT 系统架构/ 2012-05-12 22:18:02 / 累计浏览 4,795

用Unix的设计思想来应对多变的需求

之前,@风枫峰 在“这是谁的错?”中说过开发团队对需求来者不拒,而@weidagang 也在“需求变更和IoC”中说过用IoC来最大程度地解决需求变更。今天我也想从Unix设计思想的角度来说说什么是好的软件设计,什么样的设计可以把需求变更对开发的影响降低。(注意:这并不能解决用户或是PM的无理需求,面对无理需求,需要仔细分析需求,而用技术的手段无法搞定这个事,但是可以减轻需求变更带来的痛苦) 我曾经在《Unix传奇》的下篇中写过一些Unix的设计哲学和思想(这里重点推荐大家看一下《The Art of Unix Programming》,我推荐过多次了),以前也发过一篇《一些软件设计的原则》,不过,这些东西都太多了,记不住。其实,这么多年来,我的经验告诉我,无论是Unix设计,还是面向对象设计,还是别的什么如SOA,ECB,消息,事件,MVC,网络七层模型,数据库设计,等等,他们都在干三件事——解耦,解耦,还是解耦!所谓解耦,就是让软件的模块和模块间尽量少地依赖起来。

IT 安全/ 2012-05-11 00:01:25 / 累计浏览 4,551

Cookie安全漫谈

在Web应用中,Cookie很容易成为安全问题的一部分。从以往的经验来看,对Cookie在开发过程中的使用,很多开发团队并没有形成共识或者一定的规范,这也使得很多应用中的Cookie成为潜在的易受攻击点。在给Web应用做安全架构评审(Security architecture review)的时候,我通常会问设计人员以下几个问题: 你的应用中,有使用JavaScript来操作客户端Cookie吗?如果有,那么是否必须使用JavaScript才能完成此应用场景?如果没有,你的Cookie允许JavaScript来访问吗? 你的网站(可能包含多个Web应用)中,对于Cookie的域(Domain)和路径(Path)设置是如何制定策略的?为何这样划分?

IT 用户研究/ 2012-05-10 23:59:57 / 累计浏览 3,627

社区里的三种人

做一个网络社区是越来越热门了,几乎到了“没有社会化因素”就不是一个好主意的地步。社区网站都侧重于“人”的存在,而细细分来,大约有这么三种用户。 第一种用户,按照我的一个友人的说法,就是“孔雀”型用户。这种用户通常属于名人或者某个圈子里的名人,有一定的号召力。一个孔雀型用户的登录,会带来更多的用户,好处显而易见。但孔雀型用户带来的另外一个特征也是社区运营者应该注意到的:TA通常把这个社区当成个人的秀场,摆弄自己的羽毛,以吸引更多的粉丝(围观者)。孔雀型用户其实对社交兴趣很低(不是没有),相对来说,TA更注重的是依托这个社区,把自己的ID锻造成一个有影响力的自媒体。 新浪微博凭借名人战略,吸引的就是大把的孔雀型用户。这类用户成为一个社区的主流之后,社区不再是社区,而成为一种媒体:社会化媒体(social media)。

IT 安全/ 2012-05-10 23:59:15 / 累计浏览 2,366

哈希表之殇

2011年12月28日,由Google赞助成立的安全漏洞研究组织oCERT(Open source Computer Emergency Response Team — 开源软件应急响应团队)公开了一份安全漏洞报告。这份报告是几个月前由德国安全研究公司nrun.com所提供的,其核心内容是:目前绝大多数的web应用,都存在着一个叫做哈希碰撞式拒绝服务攻击的漏洞(Hash Collision DoS)。这份报告的公布,使得2011年剩下的几天里,各互联网公司的技术团队集体忙于对网站进行针对此漏洞的防护工作。硝烟散尽之后,让我们一起从攻击者的角度重新审视一下这个漏洞及其利用手法。

IT 系统架构/ 2012-05-10 23:57:10 / 累计浏览 3,930

软件开发中的火车模型发布模式

《启示录:打造用户喜爱的产品》这边说第一张就讲到了“许多成熟的互联网公司都在使用火车模型发布模式”,对于火车模型发布模式具体是什么意思不太清楚,于是上网找资料,发现网上很好又介绍火车模型发布模式的,可能是翻译不一致导致的结果。对于火车模型发布模式其实也是很好理解的,下面就是我找的一个关于火车发布模式的案例,来自于FireFox开发团队。 Firefox目前正在采用的开苏发布过程其实就是火车模型发布模式,使用心得模式后一个新特性从实现并且进入mozilla-central分支到发布到用户手里只需要12-18周,并不向IE浏览器的更新以用一样要几年的时间。如此的快速发布过程给整个项目带来了更好的敏捷性和更强的稳定性。在每个发布周期的测试和稳定阶段可以覆盖更多的用户来帮助FireFox的开发人员更早的发现和解决问题,保持在每次发布质量上的信心。 下面就要介绍下Firefox的发布流程。

IT 系统架构/ 2012-05-10 23:56:56 / 累计浏览 2,367

C++ AMP异构并行编程解析

 微软在今年2月份的GoingNative大会上正式对外发布了C++ AMP(Accelerated Massive Parallelism)开放规范。C++ AMP是微软于11年6月推出的一个异构并行编程框架,从Visual Studio 11开发者预览版起,微软正式提供了C++AMP的支持。C++ AMP的目标是降低在由CPU和GPU共同组成的异构硬件平台上进行数据并行编程(data parallel)的门槛。通过C++ AMP,开发者将获得一个类似C++ STL的库,这个库将作为微软concurrency namespace的一部分,开发者既不需要学习新的C++语法,也不需要更换编译器就能够方便地进行异构并行编程。

IT Apache/ 2012-05-10 23:55:58 / 累计浏览 8,612

nginx自定义模块编写-实时统计模块

不是第一次写nginx的自定义模块了,之前有写过根据POST数据转发请求的模块(参见nginx自定义模块编写-根据post参数路由到不同服务器),不过上次写的是处理模块,而这次写的是过滤模块,还...

IT 算法/ 2012-05-10 23:54:38 / 累计浏览 3,972

Java Hash Algorithm Collision Practice (JAVA哈希算法冲突实践)

制造Hash冲突可引发Hashtable数据结构退化为低效链表,常用于DoS攻击。 背景及几句废话 2012年的第一篇blog,想想还是写点技术相关的。最近安全圈比较热的话题是hash algorithm collision dos attack. 截止到本文发布之时,比较优雅解决这一问题的厂商依然只是少数。为了促进这一问题得到尽快解决,我认为有必要在更大的范围内普及这一攻击的基础知识。本文主要思路以代码方式提供。如果不能保证独立运行以下代码,请绕道;如果对代码可读性有疑问,那是我故意的。

IT JavaScript/ 2012-05-10 23:53:43 / 累计浏览 2,045

前端代码的阻抗失配

Impedance Mismatch(阻抗失配)经常被用来比喻服务器端面向对象代码和关系型数据库存储模型之间的关系,先有ORM技术,后有NoSQL(Document based,Key-value store),都是解决这个阻抗失配的方案。 最近在做的一个项目,具有丰富的前端UI,简单的后台逻辑。应客户的要求,采用ExtJS4作为前端技术,利用它极具交互性的UI和号称优雅的MVC框架,来构造应用的所有页面。 不落俗套,在应用最初搭建阶段,是和ExtJS相处的蜜月期,“优雅”的MVC框架和清晰的封装让人眼前一亮。但是随着项目的进展,在功能需求没有显著增加的同时,客户对于前端交互友好性的需求却与日俱增,不可避免地让前端构造UI及交互的代码日益复杂。

IT CSS/HTML/ 2012-05-10 23:53:01 / 累计浏览 3,648

CSS雪碧图会占用太多浏览器内存吗?

可能是某篇微博的关系,今天有人来评论说,使用雪碧图,内存会暴涨的。。。这个问题讨论的也蛮多了,那,到底,使用雪碧图后,会占用很多内存吗...

IT 系统架构/ 2012-05-10 23:42:23 / 累计浏览 2,126

在Hadoop中提升task的启动速度

在增量DUMP过程中,我们的job比较小,但是启动非常频繁,每个job的执行时间短,通过执行的日志发现,有时会出现一个job的启动时间很长,需要几十秒。由于我们很看重增量的速度,所以几十秒的等待是不可接受的。分析:我们当时使用的Hadoop CDH3 Beta4 的版本。通过ganglia图表分析,出问题的tasktracker会出现一些流量的凸起。但是离带宽限制还很远。通过仔细分析TaskTracker的日志发现,Child子进程启动过程中,存在等待的问题。经过分析源码,Child子进程在启动过程是在一个线程中串行完成,启动过程包括了distributedcache文件的获取。

IT 互联网/ 2012-05-10 23:41:29 / 累计浏览 3,106

我们所做的一切都是为了创新

“为什么全球主要的巨人企业如迪斯尼、微软、通用电气和摩托罗拉在掌握地球上一切资源后,都还需要转向如青蛙设计这样的机构寻求建议或解决方案?” 青蛙设计在多年前回答了这个问题:“ 因为敏感而新鲜的想法难以存活在大多数企业的毒性环境中。” 德国的工业设计举世闻名,包豪斯和乌尔姆设计学院作为现代设计最重要的摇篮,培养了两代设计师,开创了系统的设计方法和理性设计的原则。但到了上世纪60年代,商业主义设计盛行,德国工业设计中机械化且刻板的特征导致它们逐渐失去竞争力。德国国内一些新兴的设计公司开始探索新的出路,青蛙设计就是其中的代表。在创立之初,青蛙设计的目标就把设计定位为策略性专业,与工业和商业相结合,创造出审美和功能兼备的科技产品。它希望所有的设计师都能够掌握自己的命运,不甘心只是做一个装饰工匠。

IT 视觉设计/ 2012-05-10 23:40:06 / 累计浏览 2,169

不看不见de视觉,不知不觉de设计

隐形的尺寸、边缘的思量、手势的语汇、动画的语法… 看得见的视觉,看不见的视觉背后的设计故事——阿里巴巴中国站无线产品经验总结…

IT PHP/ 2012-05-10 23:38:07 / 累计浏览 3,030

PHP安全之慎用preg_replace的/e修饰符

PHP以其易用性和可移植性正被广泛应用于WEB开发。然而,在我们使用的过程中,也要十分小心,从随处可见的XSS(新浪微博发送大量垃圾信息事件)到前段时间爆出来的Hash冲突的DDOS攻击,最近,wooyun上面发布了一个关于ThinkPHP框架的漏洞(最新版已经修复),以前也是我用过的第一个框架,昨晚花时间重现了一下,查阅了下程序的原理。本文主要来重现该漏洞,然后分析代码,给出漏洞的原因,用这个漏洞去检验可能对系统造成的破坏,最后总结,防范的方法。

IT 系统运维/ 2012-05-10 23:36:01 / 累计浏览 3,272

关于流量升高导致TIME_WAIT增加,MySQL连接大量失败的问题

搜索有个应用就是每次都会去查一个接口,接口返回用户的信息数据,从而展现不同的筛选和排序效果。大致流程如下 s.taobao.com(hz)-> memcache ->电信custom接口 ->master-db s.taobao.com(qd)-> 网通custom接口 -> slave-db 接口环境是php(cgi) + nginx,接口已经运行很久,未出过异常 搜索访问custom接口,然后接口去查数据库(数据库是主从复制,数据同步,各自机房读各自的数据库,写的话都写master-db)有一点,就是电信机房是有memcache层的,而网通机房一直没有(考虑到网通机房流量不高,并且机房cache不同步,从上线起就网通机房一直未使用cache)有一次搜索上线,这个上线的版本有个改动就是把电信机房的memcache也取消了,然后 电信机房流量。。。。。

IT 系统运维/ 2012-05-10 23:33:55 / 累计浏览 1,924

Exadata:存储节点上所有监控指标与其监控概览

Kaya 发表于 os2ora.com CellCLI是Exadata上存储节点的一个命令,是管理和监控存储节点的一个重要接口。例如,可以通过它收集各种指标(metric)和警报(alert)。了解这些指标的一个好方法是通过CELLCLI命令,从中挖掘出最新的信息。 可以通过以下命令得到存储节点所支持的所有指标: list METRICDEFINITION attributes objectType,metricType,Name,UNIT,description 。