PithHelmet

0.0 Latest Announcements

I recently added the PithHelmet Rule Exchange so users can request and share custom scripts for particular sites. There isn't much there right now, but hopefully more to come soon. I realize there are now 3 different releases to match the 3 different variations of Safari - this may be a little confusing, just try and follow the notes by the download links. Also, the PithHelmet Version Check should get you updated to the appropriate version, thought you might want to run it twice, there are a couple of back-to-back updates for older versions.

0.1 What's New in v2.5.1

Support for Safari 2.0 on Tiger. No new features, just a compatibility fix. This is Tiger-only, so don't try this on Panther.

0.2 What's New in v2.4.2

Support for Safari 1.3 has been refined. Unfortunately, there are many interactions with this new version of Safari. I believe these interactions are bugs in WebCore/JavascriptCore and I will try to isolate them and report bugs to Apple as necessary. In the meantime, the content collapsing feature is turned off by default to keep Safari stable. This also fixes a couple of crash bugs.

0.3 What's New in v2.3.3

This release is long overdue. It fixes a few minor issues that should improve PithHelmet's behavior and make it more usable. There are a few crash bugs and "hang" issues that have been resolved (mostly related to Java-enabled web sites). I also fixed a freeze related to streaming media (QuickTime streams).

New countermeasures for popunder ads have been deployed. These are fairly aggressive, so I have shipped them turned off for the time being. They are the kind of thing that will likely wreak havoc on banking and other service sites / intranets that make heavy use of Javascript. There are new options in the "Ad Blocking" tab in the rule editor that should help get you sorted.

As a treat for the web designers, I've added in a Javascript console that will allow you to run a script in the context of the current web page and interactively tinker and inspect the results. Nothing too sophisticated, but it seemed useful to me when wacking the popunders.

1.1 What It Does

PithHelmet is an extended site preferences and ad blocking plugin for Apple's Safari browser. The basic purpose of the plugin is to empower you the user to view the web as you like. You can block ad images, Flash, Shockwave or horrible midi loops - the world is your oyster.

This is just a series of hacks on top of Apple's WebKit framework, but it seems to work rather effectively.

Due to the manner in which PithHelmet blocks ad content, most types of advertising content can be caught in the filter - this includes images, javascript, css, text, iframes, popups and popunders.

1.2 More Detailed Information

Progress reports are regularly written to the PithHelmet Development section of my development log. One of these days I will get around to hosting the source somewhere, but for now, inquiring minds can send me a quick email and get the latest branch.

2.1 Installing and Upgrading

PithHelmet is a plugin for SIMBL. This keeps PithHelmet from unintentionally interfering with other applications, such as the screen saver.

PithHelmet is distributed as a metapackage and installed by Apple's Installer.app. The PithHelmet.mpkg file will automatically update or install the lastest version of SIMBL and the PithHelmet plugin. The installed components are listed below.

The actual PithHelmet.bundle will now be installed in the /Library/Application Supports/SIMBL/Plugins folder.

If you have added you own rules, they will get saved in a backup file in ~/Library/Application Support/PithHelmet before they are automatically upgraded.

For additional installation information and trouble shooting, check PithHelmet Installation Notes. These notes are updated more frequently than the main site.

2.2 Uninstalling PithHelmet

Removing (trashing) the PithHelment.bundle from /Library/Application Support/SIMBL/Plugins folder will effectively remove PithHelmet from Safari.

2.3 Installed Files and Folders

3.1 How To Block A URL

Once you've installed the files, start Safari (restart it if it's been running during the install process). Try browsing a few sites and you should see markedly less advertisements. (I like cnn.com or msn.com for a good demo site)

If some undesirable content isn't blocked, you can add it to the "block list" in one of the following ways:

You can test the rules on a particular URL by clicking the "Show Rule Tester" button. That will give you some information about whether or not the url was blocked or allowed, and for what reason. Once you close the rules editor or click the Apply button, the new rules will be active.

3.2 How To Allow A URL

If some desirable content is accidentally getting caught by the Block rules (a false positive), you can specifically allow content via an Allow rule. The method is similar to adding an Block rule, simply add the rule and under the filter tab select "Allow" instead of "Block". Allow rules are applied only after an Block rule has been matched.

You can use the same testing method described in the previous section.

3.3 How To Build Better Blocking Rules

PithHelmet has a test panel (accessibly via the rule editor) which will give you an explanation of what exactly PithHelmet thinks about a specified URL.

In addition, the curious user can enable the PithHelmet.log file (from the preferences pane) and all urls matching a rule will be logged to this file.

4.0 Quick Explanation of the Preferences Pane

5.0 Quick Explanation of the Rule Editor

6.0 Quick Explanation of Menu Items and Keyboard Shortcuts

7.0 Questions | Comments | Feedback

Please feel free to contact me via email - I'm interested to here your criticisms and thoughts.

You can always read about the latest PithHelmet status in my development journal. There are also a number of pages on the PithHelmet section of my collaborative web site, Wikir.

If you enjoy PithHelmet, please take a moment to register your copy.

8.0 Revision History

v2.5.1/v2.4.2/v2.3.3 - released 2005-05-05

v2.5 - released 2005-04-29

v2.4.1 - released 2005-04-27

v2.4 - released 2005-04-18

v2.3.2 - released 2005-04-27

v2.3.1 - released 2005-04-17

v2.3 - released 2005-03-21

v2.2 - released 2005-01-07

v2.1.1 - released 2004-10-07

v2.1 - released 2004-09-26

v2.0.1 - released 2004-08-26

v2.0 - released 2004-08-12

Show Complete History