当前位置: 首页 > Chrome插件推荐 > 半权威的Adblock Plus的半完整的发展史
 
很偶然的机会,看到了Adblock Plus创始人的博客,觉得意义非常。很多人就纠结AdBlock 和Adblock plus之间到底有着怎样的渊源?从这篇自传式的博客里我们大概可以略知一二。文章是在谷歌翻译插件的帮助下翻译而成,小编英语水平有限,所以有些地方翻译的比较拗口,还请见谅。

半权威的Adblock Plus项目半完整的发展史
--------(翻译自Adblock Plus创始人博客)
Adblock Plus和Adblock到底哪个先出现?哪一个是第一,Adblock Plus还是Adblock?如果Adblock Plus是创建于2006,怎么会在2005年就有Adblock Plus了呢?Adblock Plus项目并不是一帆风顺,这件事我已经解释过一次了。这篇标题为一个不那么短的历史Adblock一定会成为一个好的博客文章,除了…发表了为时过早,在Adblock Plus的博客创建。因此,它最终在“文档”下的网站上被删除,因为它不是一个好的匹配。又一次尝试,回顾了十多年的项目历史。
这篇标题为一个不那么短的历史Adblock一定会成为一个好的博客文章,除了…发表了为时过早,远在在Adblock Plus的博客创建之前。因此,它最终在“文档”下的网站上被删除,因为它不是一个好的匹配。现在我们来再一次回顾这个创建了十多年历史的项目。
ABP

对于Adblock的共享

对我来说,这个故事从2003开始。网络上的广告已经让人讨厌了,但它们主要是基于图像的。幸运的是,Mozillabrowser1治愈的方法:你可以选性的屏蔽从特定的网站的图片,就是这样一个功能,至今仍然存在于现代的Firefox中,虽然很隐蔽。然后我就发现Adblock,那时候还在版本0.3,在那个年代,Adblock让拦截广告更方便:用户不仅仅是可以选择屏蔽一个完整的网站,而且可以是更具体更为专业的模式规则去屏蔽广告(只屏蔽网站个人资源)或更通用的(在不同的网站工作)。我很快注意到这里面的缺点:与内置的图像屏蔽不同,Adblock不会真的屏蔽的请求;相反,它只是在得到请求结果后将结果隐藏了起来。
所以我做了任何人都会做的事:我挖到Mozilla的源代码,发现C++组件负责屏蔽图像,试图使意义上的稀疏文件解释如何可以做同样的事情在JavaScript。而且最终我成功的做到了。2003年7月我给亨利克(Adblock的作者)发了一封电子邮件,并且附上了阻止请求的工作代码,建议他在下一个版本采取这种方式。我收到了一个叫做rue的人的回信,很显然,这人同时接管了其间的项目。结果,rue已经设计出了自己的解决方案,一个在图片出现之前隐藏了图像的方法,但仍然无法阻止请求。
adblock
我对rue的这种方法指出了一些问题,我认为它过于复杂而且容易出错。我们之间来来回回的谈话导致了Adblock的一些改进但没有什么实质性的改进。一个月后,我放弃了。我想可以在我自己的电脑,解决了这个问题,至少对我来说使用Adblock的简化版。后来我才知道,最终我的提出的阻断方法制成的AdBlock0.5,但是仅仅时作为一种选择,给用户选择“隐藏”和“删除”AdS4。总之,我对浏览器扩展的第一次体验并不十分理想。

Adblock分支的产生

而我的私人分支还在不断地工作,官方的Adblock的复杂性是其源源不断问题的根源。火狐1.0的发布是一个巨大的成功,但AdBlock缺不能在上面安装,而且这个问题直到几个月后才被解决。大概已经到火狐1.5发布的时候?甚至更糟的是Adblock造成了严重的错误,而Mozilla正在努力寻找可以解决这个问题的人。这是这样一个问题:AdBlock已经是一个最流行的浏览器扩展,因为无法安装此浏览器插件,人们选择拒绝安装Firefox的更新。当这个问题被拖进讨论,我并没有把我的观点当一个秘密:Adblock有重大问题,需要更有能力的维护者。 而且 - 不,我并不是说我自己,我并不是很热衷于工作。
 
接下来又是与rue讨论,他向我介绍了他对Adblock 0.6的想法,这应该使一切都更好。但是我已经怀疑这个即将发行的版本过于雄心勃勃,永远不会完成。所以我说服rue让我在他努力下一次发行版时修复Adblock 0.5。 在2005年12月中旬,我完成了adblock的全面改写。 然后rue觉得它不符合他的标准。
 
所以我再次陷入了困境。一个我认为优于Adblock的代码库,但项目维护者不接受。 这一次我不想放弃; 相反,我决定用不同的名字发表。 那时候已经有一个名字跟Adblock很像的扩展叫AdBlock Plus。所以我问迈克尔·麦克唐纳(Michael McDonald)和创始人贝内(Bene)是否放弃这个名字。因为我不想通过引入另外一个选择来为用户造成更多的混乱。 他们同意,所以我的Adblock变种被发布为Adblock Plus 0.6。

一个颠簸的开始

最终所有的准备工作都完成了,我在2006年1月17日发布了Adblock Plus 0.6。我在现有的Adblock Plus论坛上宣布,反弹是迅速的。 用户认为我正在劫持Adblock Plus项目名称,并不认为我曾获得过此项目业主的许可。 他们抱怨bug。 他们抱怨丢失的功能。
由于显而易见的错误,这个版本几乎未被最终用户测试。 而且功能也缺失了,因为开发目标总是与Adblock相似,而不是AdBlock Plus。 您必须考虑Adblock是非常基本的,拥有仅英文的用户界面,不支持过滤器订阅或元素隐藏。 AdBlock Plus 0.5已经有了一些进一步的进展,反而Adblock Plus 0.6感觉像是倒退了一步。 更多版本紧随其后,首先修复错误和不一致(Adblock Plus 0.6.0.1至0.6.0.4),然后添加缺少的功能:翻译,过滤器订阅和最小元素隐藏支持全部添加到Adblock Plus 0.6.1(发布于 2月6日)。
一个华丽的转身,社区里现在很喜欢这个新的浏览器扩展程序。他们带来了新的挑战:尽管有大型过滤器列表正在编译,任何人都可以使用,但Adblock和Adblock Plus都不是为了处理大量的过滤器,所以造成的延迟变得明显。 我调查了更好的方法,而从Adblock Plus 0.7开始,处理时间不再取决于你拥有的过滤器数量。 经过对滤波处理性能的更多研究,Adblock Plus 0.7.2可以提供更好的算法。
 

好的、坏的、丑的事物

努力终有回报。 在2006年11月Adblock Plus成为Addons.Mozilla.Org最受欢迎的扩展。 Adblock怎么样? 最后一个版本2006年1月发布,有一些小的改进。 它一直保持在前十名最受欢迎的扩展中,逐渐流行。 2006年5月,我在Adblock中发现了一个安全问题,但是无法解决问题,因此其他人不得不擅自改变。 最终,Mozilla决定从其网站上删除adblock的扩展程序,觉得总比在其不受保护的状态下保留更好。
 
Adblock Plus越来越受欢迎,为志愿者所有的过滤器列表项目提出了挑战:随着下载数量的增加,他们经常发现他们的免费主机被取消。 他们中的许多人在Google代码中找到避难所,但对于更受欢迎的人,这个选项也不起作用。 这就是为什么我提出主办EasyList项目,这是最受欢迎的过滤器列表。 2008年我发现自己处于同样的境地; 我的托管服务提供商禁用了adblockplus.org,不另行通知。 当时EasyList已经在每月生产120GB的流量,我被请求寻找另一个主机。 跟随EasyList的带宽需求一直是自那以来的不断的斗争。
 
在2007年的夏天,一个名叫丹尼·卡尔顿的人决定开始一场针对Firefox的活动,指责Mozilla,因为它允许Adblock Plus在Firefox上运行。 他对网站所有者的建议? 为什么,禁止所有的Firefox用户当然! 如果这个人会一直在Adblock Plus PR上工作,那么他不能想出更好的竞选方式。 “纽约时报”收录了很多有意思的回应,之后似乎是每一个地球上的新闻出版物。 这是我们第一次做了这么大动静的事情。
 
并非所有这些飞溅都很好。 例如,与NoScript有冲突,这将是可以避免的。 这里的根本问题是,NoScript扩展主要由其主页上的基于JavaScript的广告资助。 鉴于NoScript和Adblock Plus用户之间的重要交叉,NoScript作者将大量创意放在防止他的广告被阻止。 EasyList作者问我们应该如何处理它,无论他们是否应该为一个扩展作者提供例外。 我的答案是这样的:“不,为单个网站做例外就会成为一个坏例子”。
 
一年之后,EasyList和NoScript之间的猫和小鼠游戏升级到采取了严厉措施的程度,这是我不知道的。 当我了解到NoScript扩展程序添加了混淆代码来破坏Adblock Plus时,我非常的失望,希望全世界都知道它。 这个博客文章已经病毒化,造成了相当大的伤害。 NoScript项目的声誉受到很大的打击。 当然,一旦媒体捡起来,整个事情都被提出来作为“延伸战争”。EasyList作者只是在做自己的工作,而EasyList和Adblock Plus都没有在很多讨论中失败。

转向公司支持的开源项目

该项目做得很好,为什么要改变什么? 其实有几个原因。 最重要的是,Adblock Plus很快就达到了单个维护者的空闲时间还不够的大小。 例如,在2007年4月的Adblock Plus 0.7.5达到一个里程碑之后,发展基本停滞了一段时间。 我每年都设计出了一个主要版本。 这部分是因为我在项目上花费的时间较少,而且还因为管理社区所有时间,筛选出错误报告(其中大部分原来是虚构的或Firefox的错误),在网站上工作, 社区贡献非常有帮助,但这并没有补偿用户群的增长。
 
在某些时候,我也关心项目的进度。只要扩展程序大多被有经验的用户使用,忽略广告就很容易忽略广告拦截的后果。这些用户也有必要的专业知识来禁用Adblock Plus,只要他们想支持一个网站。然而,Adblock Plus正在成为主流产品。有一些说明,如“安装Firefox后,下载Adblock Plus”,随处可见,有些人甚至在所有亲戚的电脑上安装了Adblock Plus。根据观众的不同,一些网站由于广告屏蔽而注意到收入相当大的损失,我可以看到这个旅程在哪里:如果没有改变,Adblock Plus最终会变得流行起来,可以杀死小型网站,因为这些网站将无法以弥补损失的收入。对于较大的网站,这些最终会宣布与Adblock Plus进行战争,试图规避广告封锁,但也试图通过法律手段关闭该项目。而且他们会成功,因为这个项目无论如何都无法生存下去,无论这些索赔是否合法。
 
所以我想到了如何在用户和发布商之间建立中间位置,而不是依赖每个用户的专业知识,也不需要用户自己采取行动。社区中有一些想法在一段时间内浮出水面,最重要的是分类广告,只阻止某些类别或实施微观调查来补偿被阻止的广告的网站。没有一个可以用我有限的资源实际上得到实施和维护。相反,我想到了一个不同的解决方案,我在2009年5月发布了一个公平的广告屏蔽提案。有一些非常情绪化的反应 - 事实证明,有些人在限制广告屏蔽被讨论时总是这样反应,不得不习惯。不过,我也收到了不少建设性的意见。不幸的是,其中一个很清楚,我的建议不会有助于鼓励好的广告。我被困在我自己可以拔掉的想法之外。
 
这是Tim Schumacher在2009年11月通过电子邮件通知我的项目的状态,并提出了会议,讨论项目未来的一些想法。 在这一点上,我已经有一些与Adblock Plus有“想法”的经验,所以我在回答中问道:“是否涉及用其他广告取代封锁的广告?”不是这样; 蒂姆对我们的成功感兴趣。 事实证明,蒂姆生活在离我不远的地方,我们遇到了很多次,使我们的目标相一致,抛开思想。
 
到2010年8月,共同目标正式化,最重要的是增加项目的覆盖面,并增加允许不那么烦人的广告类型的方法,后者最终变成我们的可接受广告计划。 Tim将赞助该项目,这使我能够在Adblock Plus全职工作。 他还带领了Till Faida,他可以研究非编码主题。 这个安排保持了一年,直到我们在2011年8月建立眼镜作为项目的永久基础,这是一个大而可怕的一步。

我们有一家公司。 怎么办?

当然,创建公司并没有神奇地解决所有问题。 这只是直到我和蒂姆帮助我们有点偶尔。 一方面,我可以花费我的整个工作日开发,但现在我也不得不像Adblock Plus for Chrome这样的项目。 以前,我选择忽略Chrome,因为扩展平台的劣势不能创建一个好的产品。 忽视不再是一个选择,而不是如果我们关心Adblock Plus的覆盖面。 其他人并没有对质量感到痴迷,更早地认出了Chrome的潜力,所以在Chrome上,尽管我们的项目还是原来的Adblock扩展都没有任何关系,但我们不得不处理一个成熟的竞争对手混乱地命名为“AdBlock”。
 
不过,2011年12月,我们准备在Adblock Plus中开始测试可接受的广告。通信方面,这次发布是一场温和的灾难,用户和发布商都担心我们没有预料到并没有及时解决问题。例如,我们收到了很多批评,因为我们的初始可接受广告列表中只有三个条目有偏差的选择。事实上,出版商首先对可接受的广告持怀疑态度,如果没有蒂姆的帮助,我们也不太可能会发现任何人都愿意再试一试。后来我们开始收到应用程序,但是我们根本就没有资源来处理所有的应用程序。大多数应用程序不符合我们的入职标准,我们必须学习与发布商合作才能解决问题。说到这一点,我们的纳入标准是以非常不理想的方式制定的,收集必要的数据并对可接受的广告标准进行更好的描述需要四年时间。
 
2011年12月,我们聘请了另一位开发人员,他最终主要从事Adblock Plus for Android,另一项新产品。 那就是:雇用好人是一项相当耗时的任务。 我们接下来的两个开发人员在2012年9月之前没有开始,甚至在此之后,我还没有做任何事情,只能指导他们一段时间。 那么在2013年之前,Adblock Plus的开发才开始重新开始。 即使如此,保持高品质比仅仅是我和一个产品要复杂得多。 较大的团队是否允许我们完成更多的事情? 是的,当然是这样。 然而,即使在今天,有时候,这个项目的范围有时会比我们团队的增长速度更快,我们也不得不从一个紧迫的任务转向另一个任务。
 
这个增长对我个人来说是非常不满的。 作为eyeo的首席技术官,我发现自己面临着很多组织工作。 一段时间后,与我的同事费利克斯·达尔克(Felix Dahlke)分享了责任,但是后来我感到焚烧,想要做一些“真正的”改变。 所以菲利克斯成为我们的新CTO,而我又回到了单纯的“开发者”。
 
关于公司成长的积极影响,只是举一个例子:我们终于有必要的资源来接管上述其他社区的建议。 创建虚拟倾翻罐的想法已经表达了很多次,但是正确实现它非常复杂。 现在看来,这个是正确的。

相关问题推荐: