21 款优化网站加载速度的工具

什么才是一个网站的第一用户体验?是速度,速度是用户访问你的网站的第一感觉,你必须在用户耗尽耐心之前将网页呈现在它面前,除非你是 12306。

本文介绍 21 个在线网站优化工具:

Website Optimization

Website Optimization

Pingdom Tools

Pingdom Tools

LinkVendor

LinkVendor

Aptimize

Aptimize

Advertisement WebSlug

WebSlug

Site-Perf

Site-Perf

WebWait

WebWait

Free Speed Test

Free Speed Test

iWebTools

iWebTools

Light Speed Now

Light Speed Now

 Loads.in

Loads.in

WebPageTest

WebPageTest

Which Loads Faster

Which Loads Faster

Web Site Speed Test

Web Site Speed Test

WEB TOOL HUB

WEB TOOL HUB

SUBMIT PLUS

SUBMIT PLUS

UP TRENDS

UP TRENDS

Slowcop

Slowcop

Ping Brigade

Ping Brigade

 

BrowserMob

BrowserMob

PageSpeed

PageSpeed

via smashinghub

希捷突破1Tb大关,60TB硬盘存储器有望产生

“在硬盘存储器的世界里,密度为王。希捷刚刚成就了一个大的突破,保证了下一个十年存储容量的大幅度增长。该突破使得一平方英寸(合6.4516 cm2)空间能存储1TB数据,打破了当前的3T比特(gigabits)硬盘总容量极限,有效地开拓了接下来几年更大容量硬盘的市场。那这一存储里程碑 所能带来的提升空间到底有多大呢?当前硬盘驱动器最大能达到每平方英寸620T比特,也即意味着希捷对当前硬盘容量的提升度达50%以上。然而,这还只是 刚刚开始!”

硬盘存储器

转载请注明:Linux人社区>

围观热门 Linux “区域&关键词”

当今世界,几乎每个很“火”的技术都直接或间接地和 Linux 有关,神马云计算、DVR、Android 智能手机了……不一而足。

这么多和 Linux 相关的技术都火了,我们就好奇,Linux 在这个地球的哪里比较火呢?我们藉着原文作者在“Google 搜索解析”上做的一些功课,对这个问题一探究竟。

[背景简介]Google 搜索解析

据其官方介绍,Google 搜索解析旨在帮助大家更深入地了解各种搜索模式。这些结果的计算过程中使用了若干估算值。Google 搜索解析地图可用来表现流量模式的大体分析结果,边界为近似值。

我们可以凭借 Google 搜索解析,比较特定区域、类别、时间范围以及搜索资源之间的搜索量模式。如进行类别(如财经、健康和体育)、季节性变化(可预测产品或服务的需求,据此制定计划)、地理分布(掌握各个区域和城市的搜索量分布情况)等 Google 搜索解析。

区域关注度

我们搜索关键词“Linux”,可以得出“区域关注度”地图(如下图)。从下图我们可以看出,在古巴、捷克共和国、印度、台湾地区、俄罗斯、莱索托、中国大陆、马达加斯加、德国、日本是区域关注度排名前 10 的国家和地区(本关注度及下面的搜索结果,时间都是从 2004年至今)。

从搜索的城市来看,由 2004 年至今,北京全球排名第一,很靠前。

在中国大陆的区域关注度来说,排名前10的有:

  • 北京(100)
  • 广东(71)
  • 上海(70)
  • 陕西(55)
  • 江苏(49)
  • 四川(49)
  • 湖北(47)
  • 浙江(41)
  • 辽宁(40)
  • 天津(39)

热门关键词

关于 Linux 的全球热门搜索,如图:

从上图可以看出,ubuntu、Debian 和 Suse Linux 是这几年搜索量比较大的 Linux 发行版本。大家比较关心的还有 Linux 服务器、Linux 命令的相关搜索。同时,从下面的“上升搜索”中也可以看出 Ubuntu、Linux Mint搜索量简直就是飙升。还需要注意的是 vmware 上升搜索也很快,我们可以猜测一下:这可能是部分想要尝试 Linux 的童鞋搜索如何使用 Vmware 虚拟机来安装 Linux,以探究 Linux 到底长个什么样子。如果体验好了,就安装;体验不爽,就作罢。这也是许多初学者采取的保守策略。

我们看看中国大陆搜索的关键词,排名前10的有:

  • linux 安装(100)
  • linux 下载(90)
  • linux 命令(80)
  • linux 系统(65)
  • ubuntu linux(45)
  • ubuntu(45)
  • linux 软件(35)
  • linux 驱动(30)
  • redhat linux(25)
  • linux 内核(25)

分析:从上面可以看出,下载、安装系统,安装软件应用等都是大家比较关心的。这里还是少不了 Ubuntu。看来,不管是全球还是我国,Ubuntu 都是炙手可热的。

参考文章:http://www.itworld.com/it-managementstrategy/259512/snapshot-where-linux-hot

为什么在平板领域 Android 仍然还是一个失败者

苹果最新的iPad刚刚上市几天时间,销售量就已突破300万,继续演绎着传奇故事。同时让平板市场的分野越来越明显。iPad已基本消灭Android,而微软的平板电脑还迟迟未上市。这场赛跑注定了苹果将继续大幅领先

2月底,Google的Andy Rubin曾宣称市场上的Android平板已达1200万, 而苹果在4天时间就已售出这个数字的1/4。苹果每三个月就能卖出这么多的iPad设备。在数量上最接近iPad竞争对手地位的Kindle,在去年整个 假日期间的销售量大概也只有300万台。那么,这样的情况将如何继续演绎呢?为何苹果3年前开启的iPad会如此领先其竞争对手?也许下面几点说明了些问 题。

  • 相比于其它平板来说,iPad确实很棒

iPad有最好的操作系统,有更多更好的供用户选择的APP,有大量有利可图的APP开发者继续打造这个良好的生态系统……。同样,这些优势对于iPhone来说也是一样。而Android一直处于追赶状态。

  • 时代已经完全不同

苹果可以向任何人出售iPad,而无需担心类似Verizon和AT&T这样的运营商对客户的限制。

  • 就性价比来说,iPad比其它任何竞争对手的产品都要便宜

在同样的价格下,没有任何其它产品可以提供iPad这么好的性能和体验,而体验很多时候无法用金钱来衡量。

  • 相比于完全公开的Android,封闭的iOS也许更好

记 住,曾经大多数人都认为苹果太过封闭、太过严格,但是在拥有近60万APP时,就没有多少人认为苹果是完全封闭的了。所谓开放、封闭都是相对的。在一个自 然生态系统中,那些发展良好的生态系统都是封闭的,一旦某个关节无法紧紧相扣,整个链条都会受到不同程度的破坏。与此同时,生态系统需要新鲜血液,需要打 破某些东西,需要创造某些东西。而APP开发这一环,我想它就是苹果封闭系统里的开放血液,在不破坏平衡的同时,不断给这个系统制造新鲜血液。而IDC最 近公布的数据似乎也证实了这点,在Android与iOS两个系统中,APP开发者更对后者感兴趣。也许在打造良性生态系统方面,苹果的做法确实值得参考。

因此我们似乎可以说,在目前这种情况下,在iPad面前Android就算不是一个失败者,但是要走的路还很长很长。

也谈编程改革

如果我告诉大家,这篇文章出自一个只有20岁的小伙,我想很多人都会感到吃惊。至少我是吃了一惊,因为这篇文章涉及到主题听起来是 很有深度的,我本人在20岁时几乎想都不会想这些事情,更别说研究了。但又过了这么多年,不知国内的青年们有没有追赶上西方的步伐,也能出现几个这样看起 来很有编程天分的人?

我最近看到了《编程改革 》这篇文章,里面的内容讨论到了我们的编程中存在的一个最根本的问题。我同意作者的观点,但我感觉很多的评论并没有理解他说的问题,所以,我打算用另外一种方式来说明一下。

我从事编程已经很久,主要是因为我痴迷于解决难题。我非常喜欢研究编程语言,一部分原因是作为一个程序员,我本身是被它们包围,同时也是因为语言是让我们成为人类的一个重要因素。

我享受编程这种职业,我喜欢这种能够从无到有创造出神奇东西的能力,但同时也对我们每天需要处理的这些事情感到失望。下面就是原因:

面向过程 vs 面向结果的编程

链式(Concatenative),函数式,面向对象的,逻辑式——不管你选择何种编程模式,他们全都有相同的问题:它们要求你去描述如何做,而不是做什么。在你能叫得出名字的任何一种语言里,程序是一个对能计算出你想要的东西的处理过程的描述,而不是一个对你想要的东西的描述。诚然,一些语言会比另外一些语言更具有陈述性,但这跟“陈述式 vs 命令式”的问题并不相关——能够陈述式的表达一个过程的语言仍然是面向过程的,而不是面向结果的。

这才是症结所在。作为程序员,我们用代码解决问题。我们应该能够用代码来表达我们想要的结果,而不是想要达到这种结果需要的过程。

作者提出的是一种“约束满足(constraint satisfaction)”式的编程方式。给出一系列的约束条件,你就能够从中推导出一种能够满足它们的算法。当然,我们必然的会担心编译器推导出的这种算法的正确性和各种性能指标;是否本来可以做到Θ(n log n)级别的,它编译器却给出了Θ(n!)?这是一个很合理的担心,但它只是跟你的描述是否严谨有关。

你也知道,对于一个特定的算法,我们可以通过很多种不同的但却等效的约束集合来定义。从中进行优选,我们有信心相信,编译器能够推导出我们想要的结果。我们的工作应该变成把需求用有效的约束正确的表达出来,让编译器去满足这些约束。

我知道这听起来很枯燥,我最初也是这种神奇的编程方式的怀疑者。但想一想:任何值得一提的程序其实都是这样实现的,只是它们是以一种效率低的容易出错的手工方式。一个程序员拿到一些需求,先整理它们,然后辛苦的把它们转换成一种合适的处理过程。我们可以省掉这其中的一个步骤。

一个现实的例子

假设你在编写一个游戏。在你的待完成任务清单上的第一个要实现的事情是:通过方向键,让一个游戏角色可以在屏幕上四处移动。在任何一种语言里,你不得不构造出一大堆不相干的基础构件来实现这个操作:

  • 把一个连续的物理动作转变成一系列相互分离的图像
  • 处理帧频,帧渲染,帧冲突等问题
  • 管理各种活物体和死物体的状态和资源使用问题

所有的这些折腾实际上跟我们想要的东西是没有关系的。

很多时候,这些工作已经由某个程序库提供完成了,但这表明一个事实:需要有人去做这些麻烦事。相比较,功能应对式编程很适合做这种事情。你可以准确的表达出你的意思:

  • 这个游戏角色的特征包括:
    • 某位置的加速度( ax , ay )
    • 某位置的速度( vx , vy )
    • 位置( x, y )
    • 物体的大小( w, h )
  • 当方向键按下时,加速度改变:
    • 左:( ‒1, 0 )
    • 右:( +1, 0 )
    • 上:( 0, ‒1 )
    • 下:( 0, +1 )
  • 随着时间的相互作用:
    • 加速后的速度
    • 运动后的位置
  • 在( px , py )处像素点的颜色是:
    • 如果( px , py )在物体的( x, y, x + w, y + h )范围内:
      • 显示物体( pxx, pyy )处的颜色
    • 否则:
      • 显示背景色

这是一个完备的,完全陈述式的,完全面向结果的对一个程序的描述。这些描述都是跟你目前要实现的目标任务是直接相关的,每个描述都是一种约束,在一个RRP(这是一个简单的约束求解程序,根据实时状态推导解决方案)系统里,你可以按意愿添加或去除这种约束。

何去何从?

Prolog语言就是一个以约束为基础的编程方式的样本,而Haskell语言里的FRP库表现的更好,但这些跟我们能够做到的比起来更像玩具。

没有任何理由去说我们不能实现一种更好、更面向结果的语言,或者把目前存在的面向过程的语言变得更像面向结果,为这种编程模式赋予更大的能力。参考一下Swym这篇文章,里面提到的关键字etc就能让你实现类似的事情:

List.byPairs: [[.1st, .2nd], [.3rd, .4th], etc];byPairs[1..10] == [[1,2],[3,4],[5,6],[7,8],[9,10]];

当你提供给它一些不同的参数,它能做出更智能的事情:

[1,2,3].byPairs == [[1,2]];[1,2].byPairs == [[1,2]];[1].byPairs == [];

这真是让人兴奋,但事情并非到此为止,我们可以把它做的更好。我们实现更多的类似etceach 这样的”魔法“操作符,可以让一种命令式的语言看起来更像面向结果的语言。

有一段时间,我使用一个叫做Prog的语言工作。你可以把它按照普通的命令式的语言进行编程。但它附带有一些特殊的语言特征。这些神奇的语言特征是 通过“radioactive types”实现的,它们是一种中间态的语言行为特征,只能在解释器分析期运行,过了此阶段,它们就蜕化成普通的语法。举个例子,对一个枚举数据结构进行 各种操作,可以这样写:

which (1..10) > 5 == (6, 7, 8, 9, 10);each (1..5) ** 2 == (1, 4, 9, 16, 25);each (1..3) * each (1..3) == ((1,2,3), (2,4,6), (3,6,9));

在读了那篇文章和 之后的评论后,我激起了再次使用Prog语言的想法——如果有时间的话。我希望能看到更多的关于这方面的文章出现。目前开发的一个具有相似理念的项目消耗 了我大量的精力,那是一个能让非程序员用户制作出专业质量的交互式媒体的工具。如果你不知道如何编程,你在创建游戏或其他媒体应用时会受到阻碍。所有的这 些帮助创造性的软件基本上可以归为两类:

  • 功能可怜的有限
  • 复杂的没法用

所以,利用研究人们能如何更好的解决问题,我开发了这样一个工具,能让那些心里有想法、但没能力把它变成现实的人解决他们的问题。目前为止,我们还有继续努力。如果你是一个程序员,受到这篇的启发,想参与做一些事情,请联系我evincarofautumn@gmail.com,我会告诉你如何参与进来。

[本文英文原文链接:Yep, Programming Is Borked ]