v1.67; last modified 2004-08-26 04:52:15 EDT by sjk
PithHelmet Preview Release v2.0-45
This is a pretty stable release and both interface and functionality are pretty much set.
NOTE: This is Panther (Mac OS X 10.3) only - it will probably not work on earlier code. It has only been tested with Safari 1.2.x (v125.x) although it may work on other versions. You are likely to lose your custom rules on upgrade until PithHelmet 2.0 is in a stable release.
Download PithHelmet here - http://culater.net/dl/files/PithHelmet-2.0.0-45.tbz
PithHelmetExplanation - A series of notes that should help explain how the rules work.
Changes For v45
- fixed the Washington Post crash for the time being - looks like something inside WebKit
that I can't really fix for sure.
- transmogrifier can now use javascript: urls to do more complex transformations
- cookie privacy defaults have been reset to Medium (solved NetFlix
problem, amongst other things)
- added icons to indicate which settings (in the preferences panel) require a restart
Bugs Fixed For v44
- fixed crash on changing the pattern type from the rule editor
- added shortcut for bringing up the rule editor (Command-Shift-E)
Bugs Fixed For v43
- fixed drag-n-drop for rules
- fixed logging issues (added cookie actions to the log)
- fixed factory rule update routine
- update rule set
New Features For v42
- bug fixes
- documentation updated
- installation package and sample rules included
New Features For v41
- added simple sliders for blocking and cookie privacy (in the preferences pane)
- added validation to show errors in rule editing
- re-implemented basic stats counter
- re-implemented the transmogrifier - check out the sample transmogrification for the NY Time Magazine (last rule in the list)
- tweaked rules again
- fixed Shiira integration (accidentally broken in v40)
New Features
- vastly simplified user interface for adding/editing rules
- added Site Preferences functionality (Command-Option-,) to allow the user to set preferences for the current site only
- contextual menus to block/allow content are back
- added new cookie editor (mostly a cookie viewer at this point) which will show you cookie creation in realtime
- added new cookie purging menu items - lets the user clear cookies for the current session, or just the current site
- expanded preferences pane options (Machete is now turned off by default for safety reasons)
- snazzy new icon-menu for PithHelmet functionality :-)
- numerous small bug fixes (domain rules, cookie filtering, etc)
- may alleviate some problems with future versions of Safari/WebKit

- implemented custom CSS per site
- compatible with Safari and Shiira (Mail has been disabled - still not working quite right)
- You can now drag a rule (or several) to another application using PithHelmet, or the desktop.
- A rules clipping file can be dragged from the desktop into the rules editor and insert the saved rules.
- This will let you trade rules with your friends. I'd like to create a page of rules and Machete scripts, so feel free to send them over to me via email.
- logging and test panel have been improved to the point where they are actually useful again
- once again you can revert to factory rules
- block 3rd party cookies (this shows up as Cross-site cookies in the rule editor)
- block/allow cookies by regex pattern or for a particular site
- block sending referer information
- new site preferences - much like OmniWeb
, you can customize certain things for a particular site.
- control GIF animations/Flash plugins
- control link and image collapsing
- enable javascript, java applets and popup windows for specific sites (for instance, your bank)
- unimplemented functionality
- custom referrer or user agent
- enable/disable rules without removing them (use the checkbox in the rule list)
- tweaked default rules for increased accuracy
- fixed some problematic rules
Future Enhancements
- bring back the contextual menus
- get transmogrifier working
- custom referrer/user agent
Installing
- Install SIMBL 0.5 - this is backward compatible with older SIMBL plugins, but PithHelmet uses this new version to catch loading errors much more gracefully. You can just copy the SIMBL.bundle over the old version in
/Library/InputManagers
/SIMBL/
- Decompress the .tbz file and copy it over the old version of the PithHelmet.bundle (in
/Library/Application Support/SIMBL/Plugins folder)
- If you installed 2.0-35, you will need to delete/move your rules file - sorry, rule set upgrading will be done soon.
- Start Safari or Shiira
Uninstalling
You can rerun the v0.7.3 installer, it will replace the beta version with the last official release.
Warnings
Your existing rules won't be imported, but they won't be overwritten either. This version uses a new storage system.
- if you add a rule, you need to click the Apply button (or close the window) on the Rule Editor before it will actually be used to block things. Changes to an existing rule happen immediately.
- Machete scripts are a little complicated to write - they need to read from STDIN and write to STDOUT
- if you want to use the site rules/preferences, you need to check the Use Site Preferences checkbox
Just a note for those trying to write scripts: the format should be while(read from STDIN) { modify input; print output to STDOUT }
Beta Questions/Comments/Bugs
Please report any bugs or issues here by editing this page. It will require you to spend about 10 seconds creating an account. Adding PithHelmet version number (when relevant) can be helpful information for tracking status of issues previously mentioned here.
- a default rule to disable all blocking on http://localhost/ might be a good idea?
- good point - local files are implicitly exempt from PithHelmet, but I will add a new rule to exempt local machines.
- works OK in v146 here. However please make the new icon-menu optional, I already have enough things up there, and I prefer the old simple View - Reload Unfiltered.
- I would consider that - but where else would I install it? There are now a number of things that reside in that menu, most of them useful. I sympathize with the screen real-estate issue, I'm on a Powerbook. One of the best hacks I installed is MenuMaster
from Unsanity - it can change the application menu to just use the application icon instead of the name. If you only use that functionality, you don't need to register the plugin - that one hack works free forever.
- hope you don't mind me saying this, but the only thing I really need PH to do is block and collapse images. The old "Block Filtered Content" and "Reload Unfiltered" menu placements worked well for me. The "About *" and "Show *" options can all happily live in the PH preference pane, for me. That pretty much leaves Cookies... which could live in the context menu.
- What about making PH's menu a submenu of Safari's Edit menu (like Sogudi, for example)?
- works OK in v146 here, too. But both with 146 and 125, the GMail rule reverted to usercontent.css that I'd set up for all other URLs under Safari-Preferences-Advanced-Style Sheet. So I copied & pasted the GMail css thingy into my usercontent.css. Fantastic idea of sliders.
- Opening a story on the Washington Post web site crashes Safari, using either the beta or the old version of PithHelmet, with no changes made to the config. Removing PithHelmet and restarting Safari makes the problem go away.
- If you have a problem with a particular site loading, please post up the actual url so I can try it. See note below.
- The problem with the Washington Post isn't limited to a particular URL, it happens no matter what story you open. It happens not all, but some or most, of the time, leading me to believe it is with certain ads, not certain pages -- sometimes opening a page survives, but clicking "back" later and returning to the page will take Safari down. All in all it crashes most of the time on ANY story you try to load. I have to remove PithHelmet in order to use the site.
- I think I've sort of fixed this for v45 - it is definitely intermittent and related to some add, but I'm not getting enough information from the crash to actually solve the problem 100%
- gamefaqs.com/search/index.html crashes in v146 if PH (v41) is active: khtml::RenderBlock
::findNextLineBreak...
- can't seem to reproduce this crash in v45 - maybe it's fixed?
- the default cookie privacy policy of "high" is destructive-- I lost several forum auto-login cookies before I figured out what was happening. maybe "medium" is a better default?
Site xxx won't load. What should I do?
Contact me via email and let's try to sort out your problem. PithHelmet has always had a problem with redirects. This should be fixed up for the most part, but some corner cases can still confuse the engine.
Are there any Machete scripts available?
They are not currently included with the preview - I'm trying to figure out a good way of packaging them. I the mean time, here is a sample script that simply zaps an ad from VersionTracker. This is implemented in Python, but it could just as easily be done in perl, sed or awk... To try it out follow these instructions:
- download http://culater.net/dl/files/versiontracker.py - it should be just a text file
- find the file in the Terminal and type
chmod +x versiontracker.py
- open the Rule Editor inside Safari and bring up the VersionTracker rule. select the Site Settings tab and use the Machete Script popup option "Other..." to find the versiontracker.py file
- save the rules
- open the Safari preferences, go to the PithHelmet pane and click "Enable Machete"
- restart Safari
- reload VersionTracker to see if it works
This assumes a small amount of command line experience. I'm currently trying to figure out how to more easily distribute this scripts.
What is a Machete script and how do I use it?
Machete scripts for the time being are simple filters that alter the data coming from a website. They can be implemented in almost any programming or scripting language. When you have Machete turned on, it will look for a relevant script file and filter the data before sending it to the browser to be rendered. Learning how to use it from the one example can be a little tricky if you aren't already a programmer, however I am trying to address the problem by enabling people to easily share popular rules for particular sites.
What is the difference between a Filter Setting and a Site Setting?
Probably I need a change in terminology to make this easier to understande.
Filter Setting determines what content to block after a pattern has been matched (cookies included).
Site Settings/Preferences determines what parts of PithHelmet to enable for a particular site - note that the Default Site Rule determines the behavior for all site rules.
What is the difference between a "Main URL" and a "Content URL"?
Main URLs are what you would type in the location bar - they are explicitly what you requested. Content URLs are loaded on behalf of the page - stuff like images, flash, java applets, custom stylesheets and javascripts.
What is a cross-site cookie?
A cross-site cookie is one that is coming from a 3rd party site. In the realm of online security, 3rd party hijacking is usually referred to as "cross-site scripting." However, most Mac browsers refer to this as 3rd party. I should probably fall in line. :-) Usually, this is a cookie sent to an advertising site to track user habits. Most often these are triggered by images embedded in a particular web page.