<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Brian Yi</title>
	<atom:link href="http://brianyi.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://brianyi.com</link>
	<description></description>
	<pubDate>Thu, 19 Jun 2008 15:06:42 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.1</generator>
	<language>en</language>
			<item>
		<title>Stop using regular expressions in Adblock</title>
		<link>http://brianyi.com/blog/stop-regex-adblock/</link>
		<comments>http://brianyi.com/blog/stop-regex-adblock/#comments</comments>
		<pubDate>Sat, 10 May 2008 22:36:20 +0000</pubDate>
		<dc:creator>Brian Yi</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://brianyi.com/?p=88</guid>
		<description><![CDATA[Whenever people draw comparisons between Adblock Plus for Firefox and Opera&#8217;s built-in content blocker, they point out Opera&#8217;s lack of support for regular expressions as a deficiency. This isn&#8217;t the case at all. While regular expressions are powerful tools that give great flexibility in defining filters, they should not be used in most cases in [...]]]></description>
			<content:encoded><![CDATA[<p>Whenever people draw comparisons between Adblock Plus for Firefox and Opera&#8217;s built-in content blocker, they point out Opera&#8217;s lack of support for regular expressions as a deficiency. This isn&#8217;t the case at all. While regular expressions are powerful tools that give great flexibility in defining filters, they should not be used in <em>most</em> cases in Adblock Plus. Tips that apply to the older Adblock project, such as using regular expressions to improve speed and cramming rules into as few filters as possible, do not apply to the newer Adblock Plus project. In fact, those tips are more harmful than they are helpful.</p>
<p><span id="more-88"></span></p>
<h3>Reasons to avoid regular expressions</h3>
<p>There are two reasons to avoid regular expression filters. One, they are slower than simple filters. Historically, this hasn&#8217;t been the case. The older Adblock used a trivial algorithm for filter lookups, so having a long list of filters would adversely affect performance. In Adblock Plus, a lot of work went into optimizing filter-matching in a large list of simple filters. Jump tables are used to improve filter lookup speeds. For regular expression filters, jump tables aren&#8217;t used because requests are matched against every regular expression filter. Wladimir Palant, the author of Adblock Plus, has an <a href="http://adblockplus.org/blog/investigating-filter-matching-algorithms">excellent blog post that explains the details with graphs</a>.</p>
<p>Two, the expressive nature of regular expressions easily leads to complex, unmaintainable filters. Because the older Adblock encouraged cramming as many rules as possible into a single filter, filters were long and unreadable. Here&#8217;s an example of a particularly gnarly filter from Filterset.G:</p>
<p><code class="block">/[^a-z\d=+%@](?!\d{5,})(\w*\d+x\d)?\d*(show)?(\w{3,}%20|alligator|avs|barter|blog|box|central|context|crystal|d?html|exchange|external|forum|front|fuse|gen|get|house|hover|http|i?frame|inline|instant|live|main|mspace|net|partner|php|popin|primary|provider|realtext|redir\W.*\W|rotated?|secure|side|smart|sponsor|story|text|view|web)?_?ads?(v?((ition|meta|tology3|versal)\.com|(marketplace|rom)\.net|action\.se|bot|brite|broker|bureau|butler|cent(er|ric)|click|client|content|coun(cil|t(er)?)|creative|cycle|data(id)?|engage|entry|er(tis\w+|t(pro)?|ve?r?)|farm|feelgood|force|form|frame(generator)?|gardener|gen|gif|groupid|head|ima?ge?|index|info|js|juggler|layer|legend|link|log|man(ager)?|max|mentor(serve)?|mosaic|net|new||optimi[sz]er|parser|peeps|pic|player|po(ol|pup|sition)|proof|q\.nextag|re(dire?c?t?|mote|volver)|rotator|sale|script|search|sdk|sfac|size|so(lution|nar|urce)|stream|space|srv|stat.*\.asp|sys|(tag)?track|trix|type|view|vt|x\.nu|zone))?s?\d*(status)?\d*(?!\.org)[\W_](?!\w+\.(ac\.|edu)|astra|aware|adurl=|block|login|nl/|sears/|.*(&amp;sbc|\.(wmv|rm)))/</code></p>
<p>A person can&#8217;t tell what that filter is specifically doing with a quick glance. Perhaps more importantly, it makes debugging false positives an absolute nightmare. Of course it&#8217;s possible to use clean, sane regular expressions, but their expressive power gives you more rope to hang yourself with. A single regular expression can almost always be replaced with multiple simple filters. In addition to gaining speed, pairing a single rule with a single filter gives the user the benefit of fine-grained control of disabling rules with the green dot.</p>
<h3>The real world</h3>
<p>There might be some people who say that the need for regular expression filters, no matter how few in number, is inevitable. The success and effectiveness of EasyList, which doesn&#8217;t use regular expressions at all, shows this isn&#8217;t the case. Fanboy&#8217;s AdBlock List shows that lists compatible with Opera and Adblock Plus are possible.</p>
<p>For further information, see <a href="http://adblockplus.org/en/faq_internal#filters">how Adblock Plus processes filters and hints for improving speed</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://brianyi.com/blog/stop-regex-adblock/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Internet Explorer 8: The Small Details</title>
		<link>http://brianyi.com/blog/ie8-ui/</link>
		<comments>http://brianyi.com/blog/ie8-ui/#comments</comments>
		<pubDate>Thu, 06 Mar 2008 02:45:17 +0000</pubDate>
		<dc:creator>Brian Yi</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://brianyi.com/blog/ie8-ui/</guid>
		<description><![CDATA[Everybody who has a blog and their dog will pick up on the news about Internet Explorer 8 Beta 1&#8217;s release and its two new features, Activities and WebSlices. Instead of parroting back the same old platitudes, I wanted to talk about some of the small interface improvements in the new beta.
 

The first thing [...]]]></description>
			<content:encoded><![CDATA[<p>Everybody who has a blog and their dog will pick up on the news about Internet Explorer 8 Beta 1&#8217;s release and its two new features, Activities and WebSlices. Instead of parroting back the same old platitudes, I wanted to talk about some of the small interface improvements in the new beta.</p>
<p><a href="http://brianyi.com/wp-content/uploads/ie96-nq8.png" title="Internet Explorer 8 Beta 1 (96 DPI)" class=lightbox><img src="http://brianyi.com/wp-content/uploads/ie96-nq8.thumbnail.png" alt="Internet Explorer 8 Beta 1 (96 DPI)" /></a><a href="http://brianyi.com/wp-content/uploads/ie120-nq8.png" title="Internet Explorer 8 Beta 1 (120 DPI)" class=lightbox> <img src="http://brianyi.com/wp-content/uploads/ie120-nq8.thumbnail.png" alt="Internet Explorer 8 Beta 1 (120 DPI)" /></a></p>
<p><a href="http://brianyi.com/wp-content/uploads/ie120-nq8.png" title="Internet Explorer 8 Beta 1 (120 DPI)"><span id="more-83"></span></a></p>
<p>The first thing that jumped out at me was was its page zoom. They fixed the horizontal scrolling bug, making the feature actually usable instead of just being something they can lord over Safari and Firefox for not having. It&#8217;s not as glitch-free as Firefox 3&#8217;s and Opera&#8217;s page zoom, but it&#8217;s a step in the right direction. In addition, page zoom now adapts to the Windows DPI setting. Having the font size set to 120 DPI in the Control Panel instead of 96DPI automatically resizes web content to 125% while the page zoom controls remain at 100%. I think it&#8217;s great that a web browser respects the user&#8217;s choice and largely eliminates the need for users to fiddle with the page zoom settings. The developers still have some work cut out for them because this change absolutely wrecks Sidebar gadgets. Though it isn&#8217;t new to IE8, increasing the DPI also makes the toolbars bigger. This is something I wish Firefox would do without having to resort to editing userChrome.css.</p>
<p><a href="http://brianyi.com/wp-content/uploads/sidebar-nq8.png" title="Windows Sidebar (96 DPI &amp; 120 DPI)" class=lightbox><img src="http://brianyi.com/wp-content/uploads/sidebar-nq8.thumbnail.png" alt="Windows Sidebar (96 DPI &amp; 120 DPI)" /></a></p>
<p>Finally, IE8 makes a small change in how URLs are displayed in the location bar. It works the same way as it always has, but now the domain is highlighted. This makes it easier to users who want to find out if the page they&#8217;re visiting belongs to the domain they intend to visit instead of some phishing site. Of course SSL certificates remain the best solution for most high-security needs, but this is a welcome change. I think there was some talk of including this functionality in Firefox 3, but I&#8217;m not sure if the idea went anywhere. It&#8217;s available as an extension, <a href="http://en.design-noir.de/mozilla/locationbar2/">Locationbar²</a>, but it suffers from a problem common to most Firefox extensions: insensible defaults and too many configuration options.</p>
<p><a href="http://brianyi.com/wp-content/uploads/firefox-nq8.png" title="Firefox the way I like it." class=lightbox><img src="http://brianyi.com/wp-content/uploads/firefox-nq8.thumbnail.png" alt="Firefox the way I like it." /></a></p>
<p>Above is a screenshot of how I like my Firefox to be configured. Notice the larger tab size that can be achieved by editing userChrome.css.</p>
]]></content:encoded>
			<wfw:commentRss>http://brianyi.com/blog/ie8-ui/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Opera Goodies</title>
		<link>http://brianyi.com/blog/opera-goodies/</link>
		<comments>http://brianyi.com/blog/opera-goodies/#comments</comments>
		<pubDate>Tue, 15 Jan 2008 09:23:47 +0000</pubDate>
		<dc:creator>Brian Yi</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://brianyi.com/blog/opera-goodies/</guid>
		<description><![CDATA[For some reason, the nice folks at Opera deemed Seattle Traffic, a widget that I created, special enough to win a contest. This mildly amused me because I didn&#8217;t realize that there was a contest ongoing. They sent me a bag chock full of goodies including a t-shirt with the words Opera + Widgets inside [...]]]></description>
			<content:encoded><![CDATA[<p>For some reason, the nice folks at Opera deemed <a HREF="http://widgets.opera.com/widget/7384/">Seattle Traffic</a>, a widget that I created, special enough to win a contest. This mildly amused me because I didn&#8217;t realize that there was a contest ongoing. They sent me a bag chock full of goodies including a t-shirt with the words Opera + Widgets inside a drawing of a heart.</p>
<p><img ALT="Opera T-shirt" SRC="http://brianyi.com/wp-content/uploads/opera1.jpg" /><br />
<span id="more-79"></span><br />
In addition to the t-shirt, the people at Opera sent me a lanyard, a couple of pens, and a handwritten note penned by <a HREF="http://my.opera.com/EspenAO/info/">Espen André Øverdahl</a>. To be honest, the cheap quality of the swag disappointed me. But the handwritten note thanking me was a nice touch.</p>
<p><img ALT="Opera Swag" SRC="http://brianyi.com/wp-content/uploads/opera2.jpg" /></p>
<p>For a time, Opera fulfilled my daily browsing needs instead of the much-beloved Firefox. Drawn into its snappiness and very slick page zoom, I could not bear fiddling with the dysfunctional text zoom in Firefox on my high-resolution monitor. But soon aftewards, Mozilla released Firefox 3 Beta 1 to recapture my heart. It features the long-anticipated page zoom, and does one on Opera better by remembering zoom levels for each hostname. So Firefox remains my primary browser. But Opera still commands my respect.</p>
]]></content:encoded>
			<wfw:commentRss>http://brianyi.com/blog/opera-goodies/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Windows Vista Performance</title>
		<link>http://brianyi.com/blog/windows-vista-performance/</link>
		<comments>http://brianyi.com/blog/windows-vista-performance/#comments</comments>
		<pubDate>Sun, 08 Apr 2007 18:39:11 +0000</pubDate>
		<dc:creator>Brian Yi</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://brianyi.org/2007/04/08/windows-vista-performance/</guid>
		<description><![CDATA[Vista gives me a rating of 2.0 because of my Radeon X300, which as 64MB of memory. I run my computer with 512MB of system memory. These statistics fall short of minimum requirements for the premium-ready computers, but my notebook is able to run Aero (with Flip3D) flawlessly. What&#8217;s interesting is that 64MB of system [...]]]></description>
			<content:encoded><![CDATA[<p>Vista gives me a rating of 2.0 because of my Radeon X300, which as 64MB of memory. I run my computer with 512MB of system memory. These statistics fall short of <a href="http://www.microsoft.com/windows/products/windowsvista/buyorupgrade/capable.mspx">minimum requirements for the premium-ready computers</a>, but my notebook is able to run Aero (with Flip3D) flawlessly. What&#8217;s interesting is that 64MB of system memory is being used for video memory to bring up my total to 128MB. Of course, Vista is not as snappy as XP used to be on my computer, but it&#8217;s responsive enough to be productive for everyday use.</p>
]]></content:encoded>
			<wfw:commentRss>http://brianyi.com/blog/windows-vista-performance/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Corset Update</title>
		<link>http://brianyi.com/blog/corset-update/</link>
		<comments>http://brianyi.com/blog/corset-update/#comments</comments>
		<pubDate>Sun, 01 Apr 2007 04:27:30 +0000</pubDate>
		<dc:creator>Brian Yi</dc:creator>
		
		<category><![CDATA[Adblock]]></category>

		<category><![CDATA[Corset]]></category>

		<guid isPermaLink="false">http://brianyi.org/2007/03/31/corset-update/</guid>
		<description><![CDATA[There was a false positive that blocked political cartoons on Naver. It&#8217;s been fixed. Also, the contact form will accept links now. I&#8217;ll keep it that way unless the spam is bad. Thanks 젝 바우어 (Jack Bauer).
]]></description>
			<content:encoded><![CDATA[<p>There was a false positive that blocked political cartoons on Naver. It&#8217;s been fixed. Also, the contact form will accept links now. I&#8217;ll keep it that way unless the spam is bad. Thanks 젝 바우어 (Jack Bauer).</p>
]]></content:encoded>
			<wfw:commentRss>http://brianyi.com/blog/corset-update/feed/</wfw:commentRss>
		</item>
		<item>
		<title>DC++ and Linux</title>
		<link>http://brianyi.com/blog/dc-and-linux/</link>
		<comments>http://brianyi.com/blog/dc-and-linux/#comments</comments>
		<pubDate>Sun, 25 Feb 2007 00:44:22 +0000</pubDate>
		<dc:creator>Brian Yi</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://brianyi.org/2007/02/24/dc-and-linux/</guid>
		<description><![CDATA[Having recently switched completely to Ubuntu, I sought a DirectConnect client that works as well on Linux as DC++ does on Windows. Sadly, the experience on Linux wasn&#8217;t as easy for me as it is on Windows where I can install DC++ and expect it to just work. I&#8217;ve had to go through many trials [...]]]></description>
			<content:encoded><![CDATA[<p>Having recently switched completely to Ubuntu, I sought a DirectConnect client that works as well on Linux as DC++ does on Windows. Sadly, the experience on Linux wasn&#8217;t as easy for me as it is on Windows where I can install DC++ and expect it to just work. I&#8217;ve had to go through many trials of installing various clients to figure out the best way to experience DirectConnect on Linux.</p>
<p>There are a few DirectConnect clients on Linux, but they&#8217;re not worth bothering to use. Most of them aren&#8217;t maintained anymore and almost all aren&#8217;t compatitble with the latest DC++ which most people use. The sheer popularity of DC++ means that one must use a program based on its core. There are two ways to do this. One can run DC++ through Wine or compile LinuxDC++ (linuxdcpp) from source.</p>
<p><span id="more-68"></span>The easiest and future-proof method is running DC++ through Wine. There are many <a href="http://www.psychocats.net/ubuntu/wine">tutorials on the web</a> that can help one <a href="https://help.ubuntu.com/community/Wine">set up Wine</a> and run Windows programs. The benefit to this approach is that one isn&#8217;t at the mercy of another developer to update the program to the latest version. One can stay up-to-date by downloading the latest DC++ release. The downside to using Wine is that the program looks unattractive and incoherent with the operating system. As noted in the Wine Application DB, there are a few <a href="http://appdb.winehq.org/appview.php?iVersionId=5262">application settings to tweak</a> to get it to run properly. Also, as of the time of this post, the version of Wine in the Ubuntu repositories has a bug which won&#8217;t kill the process when closing DC++.</p>
<p>The alternate way to use DirectConnect is to build LinuxDC++ (linuxdcpp) from CVS, a scary proposition for normal users. Fortunately, <a href="http://www.ubuntuforums.org/showthread.php?t=193984">instructions for Ubuntu</a> are posted in their forums making accessible to the people. Using LinuxDC++ means that the application feels in place with the operating system. Of course, one is now at the mercy of the developer of LinuxDC++ for updates to synchronize the core with DC++.</p>
<p>Choosing which route to take is an exercise up to the reader. Reflecting back on my experience, I would run DC++ with Wine if I hadn&#8217;t already compiled LinuxDC++. But for now, either method is acceptable.</p>
]]></content:encoded>
			<wfw:commentRss>http://brianyi.com/blog/dc-and-linux/feed/</wfw:commentRss>
		</item>
		<item>
		<title>WordPress Feeds and Excessive Bandwidth</title>
		<link>http://brianyi.com/blog/wordpress-feeds-and-excessive-bandwidth/</link>
		<comments>http://brianyi.com/blog/wordpress-feeds-and-excessive-bandwidth/#comments</comments>
		<pubDate>Thu, 21 Dec 2006 01:49:04 +0000</pubDate>
		<dc:creator>Brian Yi</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.brianyi.org/2006/12/20/wordpress-feeds-and-excessive-bandwidth/</guid>
		<description><![CDATA[Many people who are on hosting plans that offer terabytes of bandwidth may not care, but WordPress feeds suck up a lot of bandwidth. This is bad news for people like me who are charged by the byte, but it&#8217;s possible to reduce bandwidth consumption on feeds with a quick hack.
In theory, WordPress receives If-modified-since [...]]]></description>
			<content:encoded><![CDATA[<p>Many people who are on hosting plans that offer terabytes of bandwidth may not care, but WordPress feeds suck up a lot of bandwidth. This is bad news for people like me who are charged by the byte, but it&#8217;s possible to reduce bandwidth consumption on feeds with a quick hack.</p>
<p>In theory, WordPress receives If-modified-since and If-none-match headers, processes them, and responds with an appropriate 200 OK or 304 Not Modified header. Bandwidth would be saved if it matches 304 Not Modified because the content wouldn&#8217;t be sent. However, in practice, WordPress does not correctly process the If-none-match header due to some PHP and WordPress weirdness. That means content is sent with a 200 OK header no matter what.</p>
<p><span id="more-63"></span></p>
<p>One solution would be to <a href="http://meat.net/2006/11/wordpress-etag-last-modified/">not send the ETag header at all</a>. This would work with some feed readers such as Firefox&#8217;s Live Bookmarks feature. The drawback is that it wouldn&#8217;t work with feed syndicators such as Bloglines and Facebook because they check both the Last-modified and the ETag headers.</p>
<p>The other, preferred solution is to <a href="http://www.emilsit.net/blog/archives/wordpress-etag-bug/">fix the processing of If-none-match headers with a quick and easy hack</a>. In WordPress 2.0.5, open up wp-includes/classes.php and go to line 1640. Replace <code>if (isset($_SERVER['HTTP_IF_NONE_MATCH'])) $client_etag = stripslashes($_SERVER['HTTP_IF_NONE_MATCH']);</code> with <code>if (isset($_SERVER['HTTP_IF_NONE_MATCH'])) $client_etag = stripslashes(stripslashes($_SERVER['HTTP_IF_NONE_MATCH']));</code> Now your bandwidth usage for WordPress feeds should be reduced. Don&#8217;t forget that you&#8217;ll have to do this every time you upgrade WordPress.</p>
<p><strong>Update:</strong> It seems that they have applied this <a href="http://trac.wordpress.org/changeset/3682">patch for the ETag bug</a> for release in WordPress 2.1. Users of 2.0.x will still have to manually apply it.</p>
]]></content:encoded>
			<wfw:commentRss>http://brianyi.com/blog/wordpress-feeds-and-excessive-bandwidth/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Filterset.G vs. EasyList: The Benchmarks</title>
		<link>http://brianyi.com/blog/filtersetg-vs-easylist-the-benchmarks/</link>
		<comments>http://brianyi.com/blog/filtersetg-vs-easylist-the-benchmarks/#comments</comments>
		<pubDate>Sun, 05 Nov 2006 21:38:03 +0000</pubDate>
		<dc:creator>Brian Yi</dc:creator>
		
		<category><![CDATA[Adblock]]></category>

		<guid isPermaLink="false">http://www.brianyi.org/2006/11/05/filtersetg-vs-easylist-the-benchmarks/</guid>
		<description><![CDATA[Ever since the release of Firefox 2.0, Adblock Plus has displaced the original Adblock as one of the five most popular extensions at Mozilla Add-ons. If you&#8217;ve installed Adblock Plus, you know that it presents a list of recommended subscriptions on first run. Instead of the extemely popular Filterset.G, EasyList is listed. Which one is [...]]]></description>
			<content:encoded><![CDATA[<p>Ever since the release of Firefox 2.0, <a href="http://adblockplus.org/">Adblock Plus</a> has displaced the original Adblock as <a href="https://addons.mozilla.org/firefox/browse/type:1/cat:all/sort:popular">one of the five most popular extensions at Mozilla Add-ons</a>. If you&#8217;ve installed Adblock Plus, you know that it presents a list of recommended subscriptions on first run. Instead of the extemely popular <a href="http://www.pierceive.com/">Filterset.G</a>, <a href="http://easylist.adblockplus.org/">EasyList</a> is listed. Which one is better? Let&#8217;s find out.</p>
<p><span id="more-26"></span></p>
<p><em>Disclosure: I actively contribute to EasyList development.</em></p>
<h4>A little background</h4>
<p>In the original Adblock, the user had to create filters by themselves to block advertisements. Filtersets like Filterset.G came on the scene so that people could import preconfigured filters that block ads on a majority of websites. Because of the fluid nature of the web, filtersets needed to be updated from time to time. Filterset.G Updater, a seperate extension created by Reid Rankin and Michael McDonald, was the solution to that problem. Adblock Plus further refined the concept with filter subscriptions. It automatically updates filtersets instead of a relying on a seperate extension. Today, Filterset.G and EasyList are some of the most popular filter lists.</p>
<h4>Testing configuration</h4>
<p>All effectiveness tests were performed with Firefox 2.0 and Adblock Plus 0.7.2.2. Filterset.G 2006-10-26a was paired with Filterset.G-Whitelist-Beta wb-2006-10-26a. EasyList 04Nov2006 was tested both on its own and also paired with EasyElement 31Oct2006. Why didn&#8217;t I use Adblock 0.5.3.043? Because as far as anyone can tell, the project is dead. The project has not had a <a href="http://www.mozdev.org/projects/abandoned.html">CVS commit for at least 180 days</a>, the website has <a href="http://adblock.mozdev.org/dev.html">not been updated with the latest version</a>, the developers don&#8217;t post in the <a href="http://www.aasted.org/adblock/index.php">forums</a>, the latest xpi has the <a href="http://www.aasted.org/adblock/viewtopic.php?t=3199">maxVersion set to Firefox 2.0a</a>, and AMO had to specially grant Michael McDonald upload privileges so that a security vulnerability <a href="http://adblockplus.org/en/history/">could be fixed</a>.</p>
<h4>Effectiveness tests</h4>
<p>Screenshots are provided for comparison. The first thumbnail is Filterset.G. The second one is EasyList. The third one is EasyList paired with EasyElement. Hover over the thumbnails to see which filter list it is. Sorry about the crappy jpegs. The pngs were too big.</p>
<p><strong>MapQuest.com</strong><br />
<a href="http://brianyi.com/wp-content/uploads/mapquest0g.jpg" title="MapQuest - Filterset.G" class="imagelink"><img src="http://brianyi.com/wp-content/uploads/mapquest0g.thumbnail.jpg" alt="MapQuest - Filterset.G" id="image32" /></a> <a href="http://brianyi.com/wp-content/uploads/mapquest0e.jpg" title="MapQuest - EasyList" class="imagelink"><img src="http://brianyi.com/wp-content/uploads/mapquest0e.thumbnail.jpg" alt="MapQuest - EasyList" id="image33" /></a> <a href="http://brianyi.com/wp-content/uploads/mapquest0ee.jpg" title="MapQuest - EasyList &amp; EasyElement" class="imagelink"><img src="http://brianyi.com/wp-content/uploads/mapquest0ee.thumbnail.jpg" alt="MapQuest - EasyList &amp; EasyElement" id="image34" /></a><br />
Filterset.G and EasyList are equally effective at removing the ads. EasyElement goes one step further by removing a few of the text ads, although it is bit too aggressive in this case.</p>
<p><strong>NYTimes.com</strong><br />
<a href="http://brianyi.com/wp-content/uploads/nytimes0g.jpg" title="NYTimes - Filterset.G" class="imagelink"><img src="http://brianyi.com/wp-content/uploads/nytimes0g.thumbnail.jpg" alt="NYTimes - Filterset.G" id="image38" /></a> <a href="http://brianyi.com/wp-content/uploads/nytimes0e.jpg" title="NYTimes - EasyList" class="imagelink"><img src="http://brianyi.com/wp-content/uploads/nytimes0e.thumbnail.jpg" alt="NYTimes - EasyList" id="image39" /></a> <a href="http://brianyi.com/wp-content/uploads/nytimes0ee.jpg" title="NYTimes - EasyList &amp; EasyElement" class="imagelink"><img src="http://brianyi.com/wp-content/uploads/nytimes0ee.thumbnail.jpg" alt="NYTimes - EasyList &amp; EasyElement" id="image40" /></a><br />
Filterset.G and EasyList are equally effective at removing the ads. Filterset.G has a minor issue with a few images related to layout, but it&#8217;s no big deal. EasyElement goes one step further by removing text ads.</p>
<p><strong>PCWorld.com</strong><br />
<a href="http://brianyi.com/wp-content/uploads/pcworld0g.jpg" title="PCWorld - Filterset.G" class="imagelink"><img src="http://brianyi.com/wp-content/uploads/pcworld0g.thumbnail.jpg" alt="PCWorld - Filterset.G" id="image41" /></a> <a href="http://brianyi.com/wp-content/uploads/pcworld0e.jpg" title="PCWorld - EasyList" class="imagelink"><img src="http://brianyi.com/wp-content/uploads/pcworld0e.thumbnail.jpg" alt="PCWorld - EasyList" id="image42" /></a> <a href="http://brianyi.com/wp-content/uploads/pcworld0ee.jpg" title="PCWorld - EasyList &amp; EasyElement" class="imagelink"><img src="http://brianyi.com/wp-content/uploads/pcworld0ee.thumbnail.jpg" alt="PCWorld - EasyList &amp; EasyElement" id="image43" /></a><br />
Filterset.G and EasyList are equally effective at removing the ads. EasyElement works well to cover up the ugly spaces that blocked ads leave behind. It&#8217;s so good that you can&#8217;t even tell where on the page the ads would have been.</p>
<p><strong>People.com</strong><br />
<a href="http://brianyi.com/wp-content/uploads/people0g.jpg" title="People - Filterset.G" class="imagelink"><img src="http://brianyi.com/wp-content/uploads/people0g.thumbnail.jpg" alt="People - Filterset.G" id="image44" /></a> <a href="http://brianyi.com/wp-content/uploads/people0e.jpg" title="People - EasyList" class="imagelink"><img src="http://brianyi.com/wp-content/uploads/people0e.thumbnail.jpg" alt="People - EasyList" id="image45" /></a> <a href="http://brianyi.com/wp-content/uploads/people0ee.jpg" title="People - EasyList &amp; EasyElement" class="imagelink"><img src="http://brianyi.com/wp-content/uploads/people0ee.thumbnail.jpg" alt="People - EasyList &amp; EasyElement" id="image46" /></a><br />
Filterset.G and EasyList are equally effective at removing the ads. EasyElement goes one step further by removing the cruft that the blocked ads leave behind.</p>
<p><strong>Slashdot.org</strong><br />
<a href="http://brianyi.com/wp-content/uploads/slashdot0g.jpg" title="Slashdot - FIlterset.G" class="imagelink"><img src="http://brianyi.com/wp-content/uploads/slashdot0g.thumbnail.jpg" alt="Slashdot - FIlterset.G" id="image47" /></a> <a href="http://brianyi.com/wp-content/uploads/slashdot0e.jpg" title="Slashdot - EasyList" class="imagelink"><img src="http://brianyi.com/wp-content/uploads/slashdot0e.thumbnail.jpg" alt="Slashdot - EasyList" id="image48" /></a> <a href="http://brianyi.com/wp-content/uploads/slashdot0ee.jpg" title="Slashdot - EasyList &amp; EasyElement" class="imagelink"><img src="http://brianyi.com/wp-content/uploads/slashdot0ee.thumbnail.jpg" alt="Slashdot - EasyList &amp; EasyElement" id="image49" /></a><br />
Filterset.G and EasyList are equally effective at removing the ads. EasyElement goes one step further by removing a little bit of white space, but it&#8217;s not a big improvement in this case.</p>
<p><strong>TomsHardware.com</strong><br />
<a href="http://brianyi.com/wp-content/uploads/toms0g.jpg" title="Toms - Filterset.G" class="imagelink"><img src="http://brianyi.com/wp-content/uploads/toms0g.thumbnail.jpg" alt="Toms - Filterset.G" id="image53" /></a> <a href="http://brianyi.com/wp-content/uploads/toms0e.jpg" title="Toms - EasyList" class="imagelink"><img src="http://brianyi.com/wp-content/uploads/toms0e.thumbnail.jpg" alt="Toms - EasyList" id="image54" /></a> <a href="http://brianyi.com/wp-content/uploads/toms0ee.jpg" title="Toms - EasyList &amp; EasyElement" class="imagelink"><img src="http://brianyi.com/wp-content/uploads/toms0ee.thumbnail.jpg" alt="Toms - EasyList &amp; EasyElement" id="image55" /></a><br />
Filterset.G and EasyList are equally effective at removing the ads. EasyElement shows no difference.</p>
<p><strong>Weather.com</strong><br />
<a href="http://brianyi.com/wp-content/uploads/weather0g.jpg" title="Weather - Filterset.G" class="imagelink"><img src="http://brianyi.com/wp-content/uploads/weather0g.thumbnail.jpg" alt="Weather - Filterset.G" id="image50" /></a> <a href="http://brianyi.com/wp-content/uploads/weather0e.jpg" title="Weather - EasyList" class="imagelink"><img src="http://brianyi.com/wp-content/uploads/weather0e.thumbnail.jpg" alt="Weather - EasyList" id="image51" /></a> <a href="http://brianyi.com/wp-content/uploads/weather0ee.jpg" title="Weather - EasyList &amp; EasyElement" class="imagelink"><img src="http://brianyi.com/wp-content/uploads/weather0ee.thumbnail.jpg" alt="Weather - EasyList &amp; EasyElement" id="image52" /></a><br />
Filterset.G and EasyList are equally effective at removing the ads. EasyElement shows no difference.</p>
<p><strong>Finance.Yahoo.com</strong><br />
<a href="http://brianyi.com/wp-content/uploads/yahoofinance0g.jpg" title="Yahoo - Filterset.G" class="imagelink"><img src="http://brianyi.com/wp-content/uploads/yahoofinance0g.thumbnail.jpg" alt="Yahoo - Filterset.G" id="image59" /></a> <a href="http://brianyi.com/wp-content/uploads/yahoofinance0e.jpg" title="Yahoo - EasyList" class="imagelink"><img src="http://brianyi.com/wp-content/uploads/yahoofinance0e.thumbnail.jpg" alt="Yahoo - EasyList" id="image60" /></a> <a href="http://brianyi.com/wp-content/uploads/yahoofinance0ee.jpg" title="Yahoo - EasyList &amp; EasyElement" class="imagelink"><img src="http://brianyi.com/wp-content/uploads/yahoofinance0ee.thumbnail.jpg" alt="Yahoo - EasyList &amp; EasyElement" id="image61" /></a><br />
Filterset.G and EasyList are equally effective at removing the ads. EasyElement goes one step further by removing the space taken up by the ads.</p>
<h4>Performance</h4>
<p>I contacted the author of Adblock Plus, Wladimir Palant, to get <a href="http://adblockplus.org/forum/viewtopic.php?p=7593#7593">some numbers</a>. The processing time for Filterset.G clocked in at 65ms. The processing time for EasyList clocked in at 27ms. As you can see, Adblock Plus processes EasyList more than twice as as fast as Filterset.G. Using EasyElement in addition to EasyList adds a negligible performance hit. Performance for Filterset.G can be markedly improved by merely <a href="http://adblockplus.org/en/deregifier/">converting its regular expression filters to simple filters</a>, but G has chosen not to do so. More information about how Adblock Plus&#8217;s algorithms work is available <a href="http://adblockplus.org/blog/investigating-filter-matching-algorithms">here</a>.</p>
<h4>Conclusion</h4>
<p>Top honors go to EasyList and EasyElement. Both Filterset.G and EasyList are similarly effective at blocking advertisements. However, EasyList paired with EasyElement gets rid of much of the cruft left over from blocked ads while Filterset.G does not. Also, EasyList performs twice as fast as Filterset.G. Some people may balk at the idea of a mere 38ms improvement, but the difference shows how much effort the filter list maintainers put into making their filter lists better. You can always expect a quick reply from Rick, the maintainer of EasyList, if you post in his <a href="http://www.richsterling.com/forum/index.php?c=10">forum</a>. Contrast this position with G who refuses to publish a static URL for his list or convert his filters from regular expressions. You can see why I recommend using EasyList &amp; EasyElement.</p>
<p><strong>Update:</strong> Wladamir Palant, the developer of Adblock Plus, <a href="http://adblockplus.org/blog/sorry-filtersetg-but-it-is-time-for-you-to-go">recommends users to switch away from Filterset.G</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://brianyi.com/blog/filtersetg-vs-easylist-the-benchmarks/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Adblock Plus Popularity</title>
		<link>http://brianyi.com/blog/adblock-plus-popularity/</link>
		<comments>http://brianyi.com/blog/adblock-plus-popularity/#comments</comments>
		<pubDate>Sat, 02 Sep 2006 03:18:19 +0000</pubDate>
		<dc:creator>Brian Yi</dc:creator>
		
		<category><![CDATA[Adblock]]></category>

		<guid isPermaLink="false">http://www.brianyi.org/blog/2006/10/26/adblock-plus-popularity/</guid>
		<description><![CDATA[It&#8217;s wonderful that there are so many extensions such as Greasemonkey, Stylish, RIP, Chickenfoot, NukeAnything, and countless others out there that let users modify content to their liking. It really demonstrates the richness of the Firefox community and the capabilities of Firefox. Some people choose Adblock Plus because it blocks ads instead of merely hiding [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s wonderful that there are so many extensions such as Greasemonkey, Stylish, <abbr TITLE="Remove It Permanently">RIP</abbr>, Chickenfoot, NukeAnything, and countless others out there that let users modify content to their liking. It really demonstrates the richness of the Firefox community and the capabilities of Firefox. Some people choose Adblock Plus because it blocks ads instead of merely hiding them, which is one of the most important advantages of Adblock Plus. I chose it because of the following reason.</p>
<p><span id="more-6"></span></p>
<p>Besides its mass appeal to advertisement-weary web surfers, Adblock (Plus) is different from the rest because it allows users to block a majority of ads by simply importing filtersets (or subscribing to them in the case of Adblock Plus). A few experts create lists of filters that can be consumed by a significant share of internet users&#8211;not just the geeks. The average user doesn&#8217;t need to fiddle around with creating filters because the work has already been done for them. This is what allows an extension to become more popular than with its enthusiasts and cross into the mainstream. Look at the AMO top ten where Adblock (Plus) and NoScript, an extension which blocks JavaScript on websites unless whitelisted by the user through a single action, are the the only content-modifying extensions listed there.</p>
<p>The lack of subscription options is what keeps me away from adopting other extensions that modify web content. If they want break out of their current statuses as mere curiosities for the developer and geek crowd, one of the steps they should take is to follow the Adblock (Plus) approach of easy mass consumption by way of subscription. Make it so I can set up an extension once and have it working without my constantly having to set up scripts. Script repositories such as Userscripts.org and Userstyles.org is a great step in the right direction, but they are still time-consuming and effort-intensive. Can you imagine having Adblock (Plus) greenhorns craft individual lists of filters to block all the ads they come across? They wouldn&#8217;t be of the same caliber as the well-established filtersets, and most users wouldn&#8217;t even bother creating such lists.</p>
<p>Adblock Plus is a special extension; it has a lot of great things going for it such as a great developer, an open community, and features that focus on an easy user experience. What I think should be emphasized when promoting Adblock Plus is filter subscriptions. Having Adblock Plus pop up a list of filter subscriptions when first run was a great addition. Maybe Adblock Plus should depart from the old Adblock interface paradigm and separate the filters from the preferences panel. The new preferences panel would devote space to filter subscriptions and options. The filters area of the current preferences panel along with the list of blockable items could be implemented in a different window, one that is accessible by a button in the preferences panel or from the Adblock Plus menu. Though what I put forth is radical, it&#8217;s only an idea to generate some discussion, not an expectation. I&#8217;m sure Wladimir Palant is busy with his life and I truly appreciate his work. Adblock Plus in its current form is a fantastically implemented extension.</p>
]]></content:encoded>
			<wfw:commentRss>http://brianyi.com/blog/adblock-plus-popularity/feed/</wfw:commentRss>
		</item>
		<item>
		<title>EasyList Development</title>
		<link>http://brianyi.com/blog/easylist-development/</link>
		<comments>http://brianyi.com/blog/easylist-development/#comments</comments>
		<pubDate>Tue, 22 Aug 2006 23:26:23 +0000</pubDate>
		<dc:creator>Brian Yi</dc:creator>
		
		<category><![CDATA[Adblock]]></category>

		<guid isPermaLink="false">http://www.brianyi.org/blog/2006/10/26/easylist-development/</guid>
		<description><![CDATA[In my spare time, I have been contributing to the development of EasyList and EasyElement. The author of the filterset maintains a great relationship with the community. Once a lurker and anonymous poster in the forum, I have been granted access to the private development area of the forum where people are free to develop [...]]]></description>
			<content:encoded><![CDATA[<p>In my spare time, I have been contributing to the development of <a HREF="http://easylist.adblockplus.org/">EasyList and EasyElement</a>. The author of the filterset maintains a great relationship with the <a HREF="http://www.richsterling.com/forum/index.php?c=10">community</a>. Once a lurker and anonymous poster in the forum, I have been granted access to the private development area of the forum where people are free to develop the filterset without fear that advertisers will simply visit the forum and cull their work to bypass the filters. It&#8217;s not a special privilege to work on development because the administrator will grant access to anyone who asks. But it is great to feel a sense of accomplishment that I&#8217;m making a contribution to the ad blocking community.</p>
<p>EasyList works best with <a HREF="http://adblockplus.org/">Adblock Plus</a>. They&#8217;re getting some <a HREF="http://adblockplus.org/blog/some-impressive-statistics">impressive</a> <a HREF="http://www.richsterling.com/forum/viewtopic.php?t=381">numbers</a> these days. Now that the developer of Filterset.G has appeared to stop updating his filterset and Adblock (always) seems stagnant, Adblock Plus and EasyList are poised to become a dominant force in the ad blocking community. Even if that never quite happens, I think Adblock Plus and EasyList will be highly-praised and recommended because they are very polished and easier to use than their more popular counterparts.</p>
<p>I am learning some skills such as writing regular expessions and inspecting pages with <a HREF="http://www.joehewitt.com/software/firebug/">FireBug</a>, which increases my geek cred. The skills and tricks I learn are being put into the development of my own personal <del>Filtersetb</del> Corset.  Check it out. You&#8217;ll see my recommendations for the best way to block advertisements if you use Mozilla Firefox.</p>
]]></content:encoded>
			<wfw:commentRss>http://brianyi.com/blog/easylist-development/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
