摘要:
这篇排序文章从思想理解到实现,然后到整理,花了我几天的时间,现把它记录于此,希望对大家有一定的帮助,写的不好的请不要见笑,写错了的,请指出来我更正。最后如果对你有一定的帮助,请回贴支持一下哦^_^ !申明:排序算法思想来自互联网,代码自己实现,仅供参考。插入排序直接插入排序、希尔排序选择排序简单选择排序、堆排序交换排序冒泡排序、快速排序归并排序基数排序排序基类Java代码packagesort;i... 阅读全文
2010年9月26日
2010年9月17日
摘要:
── 分布式计算开源框架Hadoop入门实践(一)在SIP项目设计的过程中,对于它庞大的日志在开始时就考虑使用任务分解的多线程处理模式来分析统计,在我从前写的文章《Tiger Concurrent Practice --日志分析并行分解设计与实现》中有所提到。但是由于统计的内容暂时还是十分简单,所以就采用Memcache作为计数器,结合MySQL就完成了访问控制以及统计的工作。然而未来,对于海量日... 阅读全文
2010年9月15日
摘要:
为什么叫“研发”流程而不是“开发”流程,在下文中会进行解释。首先我们来看一下“研发”的流程图: MobileWEB研发流程(点击放大)1. 为什么要叫“研发”流程?我们知道,对于传统的WEB前端开发,一般情况下我们需要关注的操作系统/浏览器情况如下:操作系统:Windows/MacOS 浏览器:IE(6... 阅读全文
摘要:
随着通信业、移动设备产业、互联网产业的快速发展,如今我们已经可以明显地感受到,我们身边的移动设备越来越多,越来越智能,价格越来越低,也越来越与我们的生活密不可分。去年底在支付宝做分享时,我曾说过一句“Mobile WEB风暴,即将席卷中国”,现在看来,我们似乎已经开始接受风暴的洗礼了吧。 Mobile WEB,曾经或者现在,我们或许习惯性地称之为“WAP&rdq... 阅读全文
摘要:
从09年初接手淘宝手机网站前端开发的工作至今,转眼已是一年。一步步看着手机淘宝从最初的beta版本到今天的样子,感慨良多。手机网站开发,有着许多不为人知的困难:一是可参考的资料太少,大部分手机网站都处于起步阶段,很多的时候都是摸着石头过河,而鉴于淘宝自身的特殊性,也使得我们在参考成功案例之余,要做更多的思考;二是兼容性工作异常艰辛,难度一点也不比web网站的兼容性工作来的低(关于这点,请参见我之前... 阅读全文
2010年9月14日
摘要:
在网站性能的相关工作中,一个重要的方面是有一定的监控和日志统计,然后对这些数据进行分析,知道什么时候慢了,慢在哪里,然后才可以进行有针对性的性能优化工作;这里,80/20准则是非常适用的,我所见过的大部分情况都是约80%页面都是没问题的,但是有约20%的页面的性能较差;监控http请求的处理时间的方法有很多,这里介绍一种java(j2ee)的web程序中监控/统计http请求处理时间的简便方法:就... 阅读全文
摘要:
基于jQuery淡入淡出可自动切换的幻灯插件,原型是前几天写的一个幻灯效果,因为一个小bug卡了两天,然后清空之前写的代码,重新整理思路写出来的. 思维是个很诡异的东西,一旦陷入某个死角,很难逃出. 惟有冷却一些时间,完全抛开旧的思维,才能找到新的出路.其实就是一个幻灯效果,考虑到使用方便,就封装成一个插件了.插件特点1. 参数高度自定义;2. 可重复调用且与不影响;3. 插件文件小,压缩后仅1.... 阅读全文
2010年9月13日
摘要:
Flickr是我个人喜爱的网站之一,也是互联网上最主要的图片共享网站。Flickr网站后台有许多非常复杂的问题需要处理,它们需要处理海量的新增的内容,管理大批的用户,不断保持新的功能特征,与此同时,还要提供一流的性能。它们是如何做到的呢? Flickr网站的网址是:http://www.flickr.com/ 参考文献 Flickr and PHP(一个早期的文档) LAMP容量规划 Flick... 阅读全文
摘要:
最近版上有不少人在讨论图像处理的就业方向,似乎大部分都持悲观的态度。我想结合我今年找工作的经验谈谈我的看法。就我看来,个人觉得图像处理的就业还是不错的。首先可以把图像看成二维、三维或者更高维的信号,从这个意义上来说,图像处理是整个信号处理里面就业形势最好的,因为你不仅要掌握(一维)信号处理的基本知识,也要掌握图像处理(二维或者高维信号处理)的知识。其次,图像处理是计算机视觉和视频处理的基础,掌握好... 阅读全文
2010年9月12日
摘要:
jQuery JQuery(http://jquery.com/)是一个快捷的、简洁的Javascript库,它能简化HTML文档的遍历,事件处理和动画,以及快速的Web开发和AJAX交互。JQuery是相对轻量的解决方案,它遵守CSS3标准,能适应现在主流的浏览器。JQuery目前已经有很多的插件扩展,如用户界面的效果和各类主题。假如你不喜欢之前JQuery的主题样式库中的主题,JQuery... 阅读全文
2010年9月11日
摘要:
利用 MySQL Proxy 实现数据切分及整合 MySQL Proxy 是 MySQL 官方提供的一个数据库代理层产品,和 MySQL Server 一样,它也是一个基于 GPL 开源协议的开源产品。可用来监视、分析或传输它们之间的通讯信息。它的灵活性允许最大限度地使用它,目前具备的功能主要有连接路由、Query分析、Query过滤和修改、负载均衡,以及基本的 HA 机制等。实际上,MySQL ... 阅读全文
摘要:
1 何谓数据切分无论数据的 Sharding 还是数据的切分,其实质都是一样的。简单来说,就是指通过某种特定的条件,将存放在同一个数据库中的数据分散存放到多个数据库(主机)上面,以达到分散单台设备负载的效果。数据的切分同时还可以提高系统的总体可用性,因为单台设备 Crash 之后,只有总体数据的某部分不可用,而不是所有的数据。 数据的切分(Sharding)根据其切分规则的类型,可以分为两种切分模... 阅读全文
摘要:
全局共享内则主要是 MySQL Instance(mysqld进程)以及底层存储引擎用来暂存各种全局运算及可共享的暂存信息,如存储查询缓存的 Query Cache,缓存连接线程的 Thread Cache,缓存表文件句柄信息的 Table Cache,缓存二进制日志的 BinLog Buffer, 缓存 MyISAM 存储引擎索引键的 Key Buffer以及存储 InnoDB 数据和索引的 I... 阅读全文
摘要:
随着信息量飞涨,信息的存储成为了这个时代至关重要的一项技术。如何来保证数据存储技术能够适应信息量的增长速度和我们对信息的高度依赖,成为一个非常重要的课题。本文将从数据库架构的层面,通过以开源的数据存储软件来构建分布式数据层的思路,期望实现一个低成本的高可用可扩展的数据层架构。传统数据库架构纵观各传统商业数据库软件,多以集中式架构为主,鲜有以分布式为设计理念的架构。这些传统数据库软件的最大特点就是将... 阅读全文
摘要:
对于任何一个数据库管理系统来说,内存的分配使用绝对可以算的上是其核心之一了,所以很多希望更为深入了解某数据库管理系统的人,都会希望一窥究竟,我也不例外。从内存的使用方式MySQL 数据库的内存使用主要分为以下两类线程独享内存 全局共享内存 今天这篇文章暂时先分析 MySQL 中主要的 “线程独享内存” 的。在 MySQL 中,线程独享内存主要用于各客户端连接线程存储各种操作... 阅读全文
摘要:
顾名思义,MySQL Query Cache 就是用来缓存和 Query 相关的数据的。具体来说,Query Cache 缓存了我们客户端提交给 MySQL 的 SELECT 语句以及该语句的结果集。大概来讲,就是将 SELECT 语句和语句的结果做了一个 HASH 映射关系然后保存在一定的内存区域中。在大部分的 MySQL 分发版本中,Query Cache 功能默认都是打开的,我们可以通过调整... 阅读全文
摘要:
网页给人最直观的感受就是它的页面框架与构造,就像一座大楼的主体框架与形态,你可能记不起东方明珠塔和艾菲尔铁塔是用什么颜色或什么材料涂的外墙,但我想你一定记得起它们的什么样的形状。同样,网页设计中的构图也足以影响到整个网站给人的感受,虽然比喻并不十分恰当,但就网页其构图而言,些许的改变和简单的创新也许就能起到事半功倍的效果,让网站给人的视觉感受耳目一新。如何将网页这座楼盖的漂亮?以下就例举一些在网页... 阅读全文
2010年9月10日
摘要:
1、amazonAmazon的分布式key-value存储系统(dynamo)的论文2、ebay(我对于eBay这几个PPT的一些看法和评价:http://www.blogjava.net/BlueDavy/archive/2009/07/24/288055.html)ebay架构演变历程(The eBay Architecture)ebay架构原则(eBay architecture princ... 阅读全文
摘要:
Java提供了一套机制来动态执行方法和构造方法,以及数组操作等,这套机制就叫——反射。反射机制是如今很多流行框架的实现基础,其中包括Spring、Hibernate等。原理性的问题不是本文的重点,接下来让我们在实例中学习这套精彩的机制。1. 得到某个对象的属性Code highlighting produced by Actipro CodeHighlighter (fre... 阅读全文
2010年9月9日
摘要:
一般Java在内存分配时会涉及到以下区域: ◆寄存器:我们在程序中无法控制◆栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中◆堆:存放用new产生的数据◆静态域:存放在对象中用static定义的静态成员◆常量池:存放常量◆非RAM存储:硬盘等永久存储空间Java内存分配中的栈在函数中定义的一些基本类型的变量数据和对象的引用变量都在函数的栈内存中分配。 当在一段代码块定义一... 阅读全文
摘要:
简介memcached 常被用来加速应用程序的处理,在这里,我们将着重于介绍将它部署于应用程序和环境中的最佳实践。这包括应该存储或不应存储哪些、如何处理数据的灵活分布以及如何调节用来更新 memcached 和所存储数据的方法。我们还将介绍对高可用性的解决方案的支持,比如 IBM WebSphere® eXtreme Scale。所有的应用程序,特别是很多 web 应用程序都需要优化它们访... 阅读全文
摘要:
这篇文章中将阐述一个普通的网站发展成大型网站过程中的一种较为典型的架构演变历程和所需掌握的知识体系,希望能给想从事互联网行业的同学一点初步的概念,文中的不对之处也请各位多给点建议,让本文真正起到抛砖引玉的效果。架构演变第一步:物理分离webserver和数据库最开始,由于某些想法,于是在互联网上搭建了一个网站,这个时候甚至有可能主机都是租借的,但由于这篇文章我们只关注架构的演变历程,因此就假设这个... 阅读全文
摘要:
Easy UI 基于Jquery的UI组件,用起来还是相当的方便的,从去年底就开始用了,基本上满足平时的开发。缺点是虽然说是开源的,但是代码经过混淆的,有的时候需要扩展功能的话,非常的头疼。另外浏览器兼容性还不完美。 官方网站:http://jquery-easyui.wikidot.com/startJschart 基于javascript的图表生成框架,只需要提供json数据和简单的配置,就可... 阅读全文
摘要:
Google App Engine的介绍由于发布S3和EC2这两个优秀的云服务,使得Amazon已经率先在云计算市场站稳了脚跟,而身为云计算这个浪潮的发起者之一的Google肯定不甘示弱,并在2008年四月份推出了Google App Engine这项PaaS服务,虽然现在无法称其为一个革命性的产品,但肯定是现在市面上最成熟,并且功能最全面的PaaS平台。Google App Engine 提供一... 阅读全文
摘要:
在软件工程界,大家有一个共识,那就是"需求决定架构",也就是说,架构的发展是为了更好地支撑应用。那么本文在介绍架构之前,先介绍一下Google所提供的主要产品有哪些?产品对于Google和它几个主要产品,比如搜索和邮件等,大家已经非常熟悉了,但是其提供服务的不只于此,并主要可分为六大类:各种搜索:网页搜索,图片搜索和视频搜索等。 广告系统:AdWords和AdSense。 生产力工具:Gmail和... 阅读全文
摘要:
本篇将主要介绍Google的十个核心技术,而且可以分为四大类:分布式基础设施:GFS、Chubby 和 Protocol Buffer。 分布式大规模数据处理:MapReduce 和 Sawzall。 分布式数据库技术:BigTable 和数据库 Sharding。 数据中心优化技术:数据中心高温化、12V电池和服务器整合。 分布式基础设施GFS由于搜索引擎需要处理海量的数据,所以Google的两... 阅读全文
摘要:
Tair是由淘宝网自主开发的Key/Value结构数据存储系统,在淘宝网有着大规模的应用。您在登录淘宝、查看商品详情页面或者在淘江湖和好友“捣浆糊”的时候,都在直接或间接地和Tair交互。Tair于2010年6月30号在淘宝开源平台上正式对外开源,本文较详细地介绍了Tair提供的功能及其实现的细节,希望对大家进一步了解Tair有所帮助。Tair的功能Tair是一个Key/V... 阅读全文