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

技术文章

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

技术文章精选

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

最新文章

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

IT 算法/ 2012-03-18 23:42:36 / 累计浏览 2,488

Apache基础数据结构(tables)代码浅析

提到Apache社区脑子里立马会呈现出一系列的Java项目集合,尽管@gnawux师兄教导我不要纠结于语言,但对于Java的抵制还是很难一下子就消失的,所幸Apache社区最重量级的项目Apache开源HTTP服务器httpd的源代码是完全使用C语言开发的,尽管近年来涌现出种种轻量级高性能Web服务器,Apache仍以它的功能广泛和真正的高性能而处于无可取代的位置。 Apache也经常受人诟病,矛头直指它的低效,我没有太多这方面的经验,因此没有过多的发言权,看到一些大牛们对这个问题的评论是觉得Apache低效是因为对Apache缺少了解。我个人也觉得这样一款多年风行Web服务器领域的软件肯定有它存在的理由,我们认为它不好可能是我们对它的了解不够。 在网上看到过关于Apache源码是否值得阅读的讨论,很多人认为Apache源码组织结构不好,不太适合阅读,更多人推荐nginx等源码,其实我

IT 系统运维/ 2012-03-18 23:40:59 / 累计浏览 2,249

libofetion demo以及纯命令行飞信

之前一直有用户要求写一个libofetion的demo,再加上很多用户对于纯命令行版本飞信的强烈需求,于是我昨天简单地写了一个demo,把libofetion的API也做了一些修改,使它用起来更像是一个lib,不过对于第三方开发的话还是有很多很难理解的地方,因为最初并没有想把它当做一个lib来发布。到现在我对飞信的开发又要暂时先告一段落了,周末都在openfetion和娱乐中度过的,实验室项目和论文又要开始提上日程了,OK,先把code列出来,再做下简单地说明 首先需要libofetion的支持。

IT JavaScript/ 2012-03-18 23:38:56 / 累计浏览 5,172

Phonegap + HTML5 开发经验小结

        去年曾对Phonegap做过一次调研,当时还是1.1版本,印象也一般。对他的性能以及真实的跨平台能力都不太确定。今年过完春节至今正好有机会参与了一个纯Phonegap + HTML5开发的项目,项目至今已经完成了一期的App Store提交,所以也正好能抽时间来小结一下。一个月左右的开发过程让我对这种开发模式有了更深的认识,这对于前端开发人员而言绝对是一个大的机会。Phonegap Native API + Plugin基本能访问移动设备绝大部分本地功能,除此之外就是HTML5了,迁移成本非常的低,而开发效率也是很高的。         与传统Web开发相比,在移动设备进行Web开发有着自己的特点,例如不同设备的屏幕尺寸以及分辨率都有可

IT MySQL/ 2012-03-18 23:38:30 / 累计浏览 3,153

game dba眼中的范式

数据库范式是DBA必知必会的知识,但是很多半路出家的DBA确往往忽略了这部分知识。eugene面试问应聘者时,爱问int(n)、varchar(n)这里N代表的含义,如果我面试应聘者,我肯定会问范式的相关问题。 为了不难住大家,下面我以一个game dba的角度给大家简单分享下我对范式的认识。

IT 互联网/ 2012-03-18 23:38:06 / 累计浏览 2,510

一个完整的SEO方案包括哪些因素

无论是我们自己优化一个网站,还是帮别人去优化网站,在开始进行之前,都需要一个相对比较完全的SEO方案作为一个总体的指导,有了这个方案,大家可以按部就班的开始SEO优化工作,那么我们应该如何去写这样的、一个相对比较完善的SEO方案呢?   1、网站关键词的选择  无论做什么网站,都需要有一个网站定位,而定位中,很重要的就包含了,你要优化哪一类词,主要包含目标关键词与长尾关键词,目标关键词也就是自己的首页主要去优化的词语,长尾关键词就是围绕着网站的主关键词,展开来的一些相对竞争小,但是转化率高一点的关键词,而无论是目标关键词还是长尾关键词,你都需要分析你所从事的这个行业,要弄清楚用户到底在搜索什么词,最好做一个关键词词库。  2、分析行业中同行的网站情况  所谓知己知彼,百战不殆,对于很多行业都是实用的,分析完关键词后,我们要去分析一下竞争对手的网站情况,看看我们的差距有多大,做到心中

IT 互联网/ 2012-03-18 23:37:19 / 累计浏览 2,452

各门户若干年来的广告收入

闲来无事,收集了四大门户外加一个百度从06年到11年的广告收入数字,并计算了它们的五年的增长率,09年全体下滑理由都是金融危机。 从下图可以看到,深蓝色的新浪11年广告增长率是最低的,排名依序是:百度、搜狐、腾讯、网易、新浪。网易的基数很低,可以放在一边,但新浪折腾微博两年,增长率却是不高啊。 这个图表基于下一个表格的数字(自06年来五家公司的广告收入数字及增长率): 绘制成收入数字图表后,的确可以发现搜索广告真的是一骑绝尘。从绝对数字而言,06年还是老大的新浪现在是老二,但搜狐和腾讯都离它很近了,特别要注意的是腾讯,五年的广告增长率从来没负过(搜狐09年差点就负数了,百度严格意义上不算门户): 把百度去掉以后,看纯门户的广告收入数字,更清晰: 网易的门户有个性实在是可以找到答案的,呵呵,有个性的门户,通常嘛,就不讨广告商喜欢咯。

IT MySQL/ 2012-03-18 23:36:28 / 累计浏览 2,954

MySQL数据库之数据类型BOOL/BOOLEAN与TINYINT测试总结

【导读】 MySQL数据库产品提供了二种比较特殊的数据类型: SET(集合类型)、ENUM(枚举类型)、BOOL/BOOLEAN(布尔类型),而多数开发人员,甚至DBA从业者对如何使用这三种数据类型的应用场景并不十分清晰,为此结合TINYINT数据类型对比,让我们大家一起弄清楚。

IT 奋斗/ 2012-03-18 23:35:53 / 累计浏览 3,396

程序员漫画四幅:要钱还是要命?

漫画一:软件编程 漫画二:使用LISP语言的程序员眼里其他语言程序员的形象 漫画三:学校里的编程和真实项目里的编程 漫画四:程序员与劫匪

IT MySQL/ 2012-03-18 23:33:48 / 累计浏览 2,892

MySQL数据库之数据类型集合类型和枚举类型测试环境

【导读】 针对四种数据类型:布尔类型BOOL或称布尔类型BOOLEAN、微整型TINYTINT、枚举类型ENUM、集合类型SET,我们已经分多篇文章篇幅给出详细的介绍与功能测试数据,接下来我们深入介绍枚举类型EUNM和集合类型SET。测试基于InnoDB存储引擎上,对MySQL数据库集合类型SET和枚举类型ENUM的字段进行DDL变更操作,是否需要重新创建表呢?对数据库的事务处理有何影响?对数据库的数据服务提供有何性能影响?

IT MySQL/ 2012-03-18 23:31:51 / 累计浏览 3,309

MySQL 单表插入 10w+ TPS达成

使用TDH_SOCKET进行插入能到这么高TPS的关键:

  • TDH_SOCKET提供group commit:
  • 减少redo log的fsync次数,使IOPS不成为瓶颈
  • TDH_SOCKET能提供并发写.
  • 自增id的生成策略需要分段自增:
  • 如果采用全自增id生成策略(即默认innodb提供的自增id生成策略)的话,会在高并发插入的时候遇到一个block的写锁.
  • 因为是顺序自增,所以并发插入的记录都会集中写入到同一个page上,而一个线程写page会对这个page做一次rw_lock_x_lock_func(&(block->lock), 0, file, line); 那么这个写锁会成为瓶颈,使TPS无法上去所以只要改变生成id的策略:
  • 分段自增比如一个写线程一下子获取1-10000的id范围 下一个写线程获取10001-20000的id范围..
  • 每个写线程在各自的范围里面自增的生成id,那么即能保证一定的顺序写,又能使写page不会因为并发写锁而性能下降!
  • IT MySQL/ 2012-03-18 23:25:06 / 累计浏览 4,716

    MySQL数据库之枚举数据类型ENUM的DDL变更测试

    针对四种数据类型:布尔类型BOOL或称布尔类型BOOLEAN、微整型TINYTINT、枚举类型ENUM、集合类型SET,我们已经分多篇文章篇幅给出详细的介绍与功能测试数据,接下来我们深入介绍枚举类型EUNM和集合类型SET。测试基于InnoDB存储引擎上,对MySQL数据库枚举类型ENUM的字段进行DDL变更操作,是否需要重新创建表呢?对数据库的事务处理有何影响?对数据库的数据服务提供有何性能影响?

    IT 系统架构/ 2012-03-13 00:08:49 / 累计浏览 11,939

    Redis消息队列的若干实现方式

    最近忙着用Redis实现一个消息通知系统,今天大概总结了一下技术细节,其中演示代码如果没有特殊说明,使用的都是PhpRedis扩展来实现的。

    IT 系统运维/ 2012-03-12 23:56:32 / 累计浏览 3,252

    tcpcopy,模拟在线压力测试的好帮手

    tcpcopy是一个基于底层的应用请求复制(所有基于tcp的packets)开源项目,可用于替代ab做在线模拟压力测试,可转发各种在线请求到测试服务器上,进行较为详尽的近乎实际的测试,从而避免了新业务、系统上线带来的潜在问题。 tcpcopy的四大功能: 1)分布式压力测试,将多个前段请求集中到某个后端进行压力测试 2)上线前测试,检验新系统可靠性,提前发现潜在问题 3)对比测试,同样请求,针对不同或不同版本程序,可以做性能对比等试验 4)应用热备份,对于后端的短连接,请求丢失率非常低(1/10万) tcpcopy具有以下几个特点: 1)实时转发 2)近乎真实效果 3)对在线系统影响很小 4)操作简单 5)分布式 6)意义非凡

    IT Apache/ 2012-03-12 23:54:03 / 累计浏览 7,230

    nginx自定义模块编写-根据post参数路由到不同服务器

    nginx可以轻松实现根据不同的url 或者 get参数来转发到不同的服务器,然而当我们需要根据http包体来进行请求路由时,nginx默认的配置规则就捉襟见肘了,但是没关系,nginx提供了强大的自定义...

    IT 奋斗/ 2012-03-12 23:53:17 / 累计浏览 4,786

    一个独立程序员对自己近九个月工作生活的回顾

    引言 有些人可能还记得,去年年初时,我写过一篇文章介绍我是如何开始成为一个独立程序员的文章。 随着新的一年的到来,我想是该做一些反省/总结的时候了。在这篇文章的结尾,我会告诉大家目前为止我挣了多少钱。我计划把这种收入公布做成一种每月一次的例行公布,就像 KreCi 在他的网站上的做法一样。 但首先,我觉得需要用稍微多一点的篇幅先介绍一下我是如何计划和开创这整个“事业”的。计划部分故事很短。我已经受够了在电子游戏行业里不能按自己的想法做事的生活。我最后的一次尝试,一个网页游戏公司,是我和几个前同事一起开办的,由于投资人对我们的创意和技术丧失了信心,倒闭了。我又在另外一个公司工作,但很快,我认识到,我应该出来单干。于是,我: 辞职(那是一个目前为止我认为是最好的一份工作) 开始编程 我设法申请到了一个政府的创业扶植资格,能获得失业补助,外加一些健康保险之类的款项。我要依靠这些收入维持近9个月的

    IT MySQL/ 2012-03-12 23:50:44 / 累计浏览 4,336

    MySQL数据库InnoDB数据恢复工具使用总结

    本文从实际使用经验出发,介绍一款开源的MySQL数据库InnoDB数据恢复工具:innodb-tools,它通过从原始数据文件中提取表的行记录,实现从丢失的或者被毁坏的MySQL表中恢复数据。例如,当你不小心执行DROP TABLE、TRUNCATE TABLE或者DROP DATABASE之后,可以通过以下方式恢复数据。 以下内容大部分参考自:Percona Data Recovery Tool for InnoDB,文档是英文的,而且写的比较晦涩,这里是个人的实战经验总结,供大家参考学习。

    IT 视觉设计/ 2012-03-12 23:48:38 / 累计浏览 1,370

    产品中图形语言规范化的意义与过程

    现在随着互联网企业的发展与业务的拓展,随着时间的推移,一个公司的产品可能将越来越丰富多样,同样每一个产品随不断的功能完善和扩展,随着一个产品的“长大”产品内所需要用到的图标也必然会越来越多,这时候众多产品形象的呈现、产品内图标等视觉原素的表现,如何能与整个产品或公司的战略计划相适应,这时候在图形语言的视觉呈现,语义表达、识别性等层面就需要作一个全面细致的考虑了。

    IT 算法/ 2012-03-12 23:45:44 / 累计浏览 4,353

    给你的代码《约法四章》:基本功能、错误处理、智能纠错、日志收集

    作为21世纪的码农,如果只是想混混工资的话,这篇文章可能不太适合你,但如果想在技术上有所提升,本文也许能帮你照亮前进的道路。程序员不能只是天天埋头写代码,还得关心代码的质量,其实写代码很容易,稍微用心点学都能写,但是要产出好的代码却不是那么容易事,所谓好的代码不是说你完成了某某功能就牛B,在完成了基本功能的同时还有很细节要注意,在各种关于代码质量的书中都的提及到了这样的概念:代码格式、命名规则、功能注释等,虽然这些东西看上去并不能主宰软件的“生与死”,但是谁又能保证一个软件从出生到结束都由一个人维护呢?关于代码规范这个话题我不打算列入本文的内容,原因有二,其一是很多书中都的提及到,我就不必重申;其二是很多程序员其实也很注重这个问题,只是注释多少的问题。那么就标题中的四点来给我们的代码约法四章,让我们这些码农的代码更健壮。

    IT 互联网/ 2012-03-12 23:43:05 / 累计浏览 3,075

    数据库发展史知识普及

    数据库从最早的打孔的方式记录数据,发展到网状数据库,且网状数据库应用较成熟与普遍,网状数据库也有其不能表达的数据关系,为此后来提出了层状数据库的理论,并且有相应产品的成功与应用,不过应用时间不长,业务应用范围不广泛,随机被关系数据库的理论所淹没而取代,关系数据库理论的基础之后数据库领域提出面向对象数据库和面对像关系混合型数据库的理论,并且也有相应产品的成功研发和应用,不过并没有像预测的那样,2010年将是面向对象数据库出现质飞跃的时间点。

    IT 系统运维/ 2012-03-12 23:41:50 / 累计浏览 3,665

    linux下安装飞信机器人教程

    运维人员必备每天都要面对报警信息,要即时处理,之前发送报警信息都是使用mail。或者短信猫来发送。 最近有个新的需求,要用手机来发短信,我就折腾下了飞信机器人。使用飞信来发送相关信息。