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

技术文章

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

技术文章精选

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

最新文章

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

IT 用户研究/ 2012-09-30 15:15:17 / 累计浏览 4,465

如何识别和利用用户情绪

在日常的可用性测试、深访、座谈会等调研中,无论是作为主持人还是观察员,我们会发现一些有意思的现象:用户在参与的过程中,有做沉思状态、有茫然感、有皱眉等,除此之外,还会出现一些肢体动作,如耸肩、双手交叉等;以及伴随一些语气语调的变化,如咦、哦、啧等。用户展现出的如此丰富、有意思的面部表情、肢体动作以及语气语调,和我们的调研项目很多方面存在直接的关系。

IT 其他/ 2012-09-30 15:11:50 / 累计浏览 12,793

使用python/casperjs编写终极爬虫-客户端App的抓取

缘起 随着移动互联网的发展,现在写web和我三年前刚开始写爬虫的时候已经改变了太多。特别是在node以及javascript/ruby社区的努力下,以往“服务器端”做的事情都慢慢搬到了“浏览器”来实现,最极端的例子可能是meteor了 ,写web程序无需划分前端后端的时代已经到来了。。。 在这一方面,Google一向是最激进的。纵观Google目前的产品线,社交的Google Plus,网站分析的Google Analytics,Google目前赖以生存的Google Adwords等,如果想下载源码,用ElementTree来解析网页,那什么都得不到,因为Google的数据都是通过Ajax调用经过数据混淆处理的数据,然后用JavaScript进行解析渲染到页面上的。

IT Linux/ 2012-09-20 14:03:00 / 累计浏览 5,804

较安全的rm脚本

想必不少人体会过在Linux下误删文件的欲哭无泪的感觉。我整理出一份比较安全的rm脚本,贴在这里。 特性 接管原生的/bin/rm命令,将待删除的文件mv至回收站,便于统一管理,或者更重要的,...

IT Linux/ 2012-09-20 14:01:59 / 累计浏览 6,410

统计最近用过的linux命令

流程:从 history 命令中得到最近1000条命令。 删除每行的行号。记录每一行中的命令。行首的第一个英文单词,以及管道后面的第一个英文单词,视为命令名称。将得到的命令列表排序。统计每个命令的出现次数,先以次数降序排列,再以命令名称升序排列。

IT JavaScript/ 2012-09-20 14:01:04 / 累计浏览 2,126

巧解 JavaScript 中的嵌套替换

一个重要的特点是,wrapper一定比inner多一个元素,它一一将inner项隔开,并处于最外层。wrapper 和 inner 的关系,就像是一个手掌的5根指头与4个指缝的关系。将中间的元素取出,记下位置,等处理完之后,再将所有的元素粘合在一起。就是这样简单。

IT 编程语言/ 2012-09-20 13:59:38 / 累计浏览 2,025

正则书评

只要是知道“正则”这个词的,上网搜集个把资料,应该就不是问题吧。我获得正则消息的网絡渠道有这样几个,以质量从高到低排序:dilicious标签(颇有些不错的文章) > 一些与正则相关的博客(可以参考我整理的这个页面正则链接 ,不定期更新中) > google alerts (关键词[regex, regular expressions, 正则,正则表达式]都建议添加,有时也能发现好文章)。

IT 算法/ 2012-09-20 13:58:49 / 累计浏览 2,863

统计汉字/英文单词数

一个简单的程序,统计文本文档中的单词和汉字数,逆序排列(出现频率高的排在最前面

IT 算法/ 2012-09-20 13:58:06 / 累计浏览 5,387

一个简单的中文分词程序

英语等以空白字符作为分隔符的语言,分词不是问题。中文分词,需要处理的细节太多。单就“真歧义”这一问题(简言之,如果没有上下文,连活生生的人也无法确定如何断句的歧义句)的处理方法而言,前辈们就已写出洋洋洒洒许多文字。不过这属于进阶题目。我想先实现一个最简单的分词程序。

IT 安全/ 2012-09-20 13:56:43 / 累计浏览 5,851

anti spam杂谈

据说德国有这样一句谚语:没有泡沫的啤酒不是好啤酒。推而广知,可以得到:没人灌水的论坛不是好论坛,没有垃圾邮件的邮件系统不是好系统(至少是不知名的系统/电邮地址),没有病毒骚扰的OS不是好的OS,等等。但是,只有泡沫的啤酒也不是什么好啤酒吧?关键是将不需要的内容控制在可以允许的范围内。单就开论坛、维护垃圾邮件的角度出发,审核技术还是很有用,很有必要的。否则,其地盘很快就会淹没在垃圾广告的汪洋大海之中。自己的论坛,自己发广告是为了维持网站开销,但是不请自来的广告是无法容忍的。

IT 系统运维/ 2012-09-20 13:53:54 / 累计浏览 2,487

网站性能评测点

网站性能就是怎么用最短的时间将网页呈现出来,和用户进行流畅的交互,归根结底还是要看时间。 1、页面的加载时间 (1)、从在浏览器里按下回车键到页面开始出现的时间,相同站点在不同浏览器下这个时间会有所不同 (2)、所有资源下载完毕的时间 (3)、Css解析时间 (4)、触发浏览器onload事件的时间 2、资源的加载 (1)、所有的请求数 (2)、网页(html)的大小 (3)、图片/css/javascript的大小 (4)、异步请求的数量 (5)、坏请求的数量(重定向,服务器端错误等等) 3、网络耗费时间 (1)、DNS时间(查找域名对应的服务器IP耗费的时间) (2)、连接时间 (向服务器发起连接时间) (3)、服务器时间 (服务器端处理请求的耗费时间) (4)、传输时间 (由服务器向客户端传输资源耗费时间)

IT JavaScript/ 2012-09-20 13:53:30 / 累计浏览 5,403

ie下iframe输入框焦点丢失解决方案

在弹出层包含富编辑器时(既含有iframe时),点击窗体任何部分,然后关闭弹出层后再次打开弹出层。这时候页面所有输入框input无法获得焦点但是链接、按钮都可以获取到,页面也不报任何错误。这种情况只是在IE下出现,我想是dom冲突了。 解决方法: 关于弹出层关闭,一般有两种方式:一是利用div隐藏或显示来控制弹出层的显示与隐藏;二是利用DOM直接移除弹出层。 第二种比较好,资料这样说 “ IE 下在移除父层的 DIV 的时候,也就是 IFrame 外层的 DIV 的时候,IE 并没有将内部的 IFrame 从 DOM 中移除,而下次触发函数创建此 IFrame 的时候,使会产生 DOM 冲突,所以解决方法就是在移除父层的 DIV 的时候,先将内部的 IFrame 也移除”

IT CSS/HTML/ 2012-09-20 13:52:54 / 累计浏览 4,906

css3实现滑动菜单导航

记得我有篇博文是写用js来实现滑动菜单(个性导航)的例子 博文地址-js个性导航 demo演示-狠狠的点击这里 css3能实现吗? 随着css3的强大和流行,就用css3来实现了一个 css3 demo演示 怎么实现? 今天的主角是nth-child选择器和 ~ 选择器,以及transition来打下龙套。简单介绍下: :nth-child(n) 选择某个元素的一个或多个特定的子元素,n表示第几个。例如 p span:nth-child(1),选中p下面的第一个span,n是从1开始的,这很怪,猜是 w3c 的家伙集体打瞌睡了。n 也可以是表达式,如 2n 表示选择所有偶数个,等于even;2n+1 表示选择基数个,等于 odd;3n表示选择顺序是 3的倍数的子元素等等; ~ 兄弟选择器,选择跟在某个元素后面的特定兄弟元素,例如 p ~ div选中跟p同级,且在p后面的div; + 临近兄

IT CSS/HTML/ 2012-09-20 13:51:54 / 累计浏览 5,070

IE 颜色 Hack全收集

#hack{ color:red; /* 所有浏览器都支持 */ color:red !important;/* 除IE6外 */ _color:red; /* IE6支持 */ *color:red; /* IE6、IE7支持 */ +color:red;/*IE7支持*/ *+color:red; /* IE7支持 */ color:red\9; /* IE6、IE7、IE8、IE9支持 */ color:red\0; /* IE8、IE9支持 */ color:red\9\0;/*IE9支持*/ }

IT Linux/ 2012-09-20 13:50:56 / 累计浏览 4,886

gcc的内联汇编取全局变量地址

最近在优化一段代码的过程中,用到了gcc的内联汇编。代码中有用到了许多全局变量,比如: char mi[10]={...}; 开始的时候,我对全局变量的取址是这样的: __asm__ (\"movq (%2, %1, 1 ), %0\" :\"=r\"(cookie) :\"r\"(index),\"r\"(mi) ); 在一个函数中使用这段代码,一条指令完成了对mi数组的访问,但同时也存在问题,即mi的地址会占用一个寄存器,mi的地址要在早先的时间内被装载到寄存器中(指令由编译器自动生成),同时,被mi占用的寄存器有些情况下不能被其他手工内联的汇编指令随便写入,编译器还没有那么智能帮你讲寄存器的内容保存好。 综上,使用这种方法会存在两方面问题: 1、使用至少两条指令来读取全局变量 2、正确性要小心呵护。

IT 奋斗/ 2012-09-20 13:50:00 / 累计浏览 7,868

我学编程时犯的最大两个错误

最终我是学会了开发自己的原型,但道路很崎岖。如果你也跟我一样走在自学的道路上,我希望你能避免我犯过的错误。

IT 其他/ 2012-09-20 13:48:29 / 累计浏览 2,082

垂直搜索新问题

当大家都在关注搜索的速度的时候,往往伴随业务的快速发展,数据服务质量成为了实时搜索或者垂直搜索中的新问题。实时搜索和垂直搜索是不一样的问题,下面的问题就是垂直场景下得实时搜索问题。也可以理解垂直搜索都不实时,其他的实时先排队吧。问题比较抽象,只谈总体上的现象,对于具体如何解绝问题的细节,不做说明。有些不具有通用性,有些和场景相关,很难有最佳方式,不代表没有解决方法。首先是有问题意识,然后自然有解决方法。 问题: (1)个性化排序 伴随业务发展需要,同时细分用户群体,为了最大程度优化服务质量、满足更大群体的具体业务场景,个性化的排序越来越引起高度重视。传统的文本相关性只是第一维的参考,针对业务多维度综合得分的二维排序最终影响排序。而一个平台上面临的服务群体、服务场景多种多样,有行业属性、地域属性、技术属性、运营属性等,很难完全统一,完全归一化到一个计算公式中去。

IT 系统架构/ 2012-09-20 13:47:07 / 累计浏览 4,370

全球级的分布式数据库 Google Spanner原理

Google Spanner简介 Spanner 是Google的全球级的分布式数据库 (Globally-Distributed Database) 。Spanner的扩展性达到了令人咋舌的全球级,可以扩展到数百万的机器,数已百计的数据中心,上万亿的行。更给力的是,除了夸张的扩展性之外,他还能同时通过同步复制和多版本来满足外部一致性,可用性也是很好的。冲破CAP的枷锁,在三者之间完美平衡。

IT 互联网/ 2012-09-20 13:45:06 / 累计浏览 2,644

周鸿祎的战争

周鸿祎为什么这么彪悍?一来他性格就不是好好先生,隐忍也不是他的强项。二来所图甚大。三国刘备曾说:“每与操反,事乃可成耳。”刘备的目标不是做个郡守,而是要和曹操争天下,但地盘都是曹操的了,只好去玩与曹操不一样的套路,还有点可能。周鸿祎亦然,他是要争天下的。

IT 算法/ 2012-09-20 13:43:29 / 累计浏览 2,368

我感受到的排序机制参考

人们总觉得这个搜索领域很多秘密,门槛如此之高,如此神秘。其实不是那么回事。基本的原理、流程理解了。就可以做到心中不慌。先了解机制,细节和具体才是难点,不要被难在开始!下面就结合实际经验积累,给出参考信息。不针对任何排序模型,只描述粗略内容。具体场景具体怎么高,私下交流。 提示:排序规则务必公开,否则会有非常多的诟病、诟骂。不要以为你的排序是机密, 包括自己的开发成员都含糊其辞的,这样只会增加排序的神秘性、恶意去钻空子等。 完全公开排序细则,明确排序导向什么、打击什么,只是一些得分因子、权重需要慎重, 是否全面公开,而排序算法是完全可以公开的。即使不公开,一帮外面的专业seo 很快就找到规律的,那时候就非常被动了。