<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Robert Accettura&#039;s Fun With Wordage &#187; tutorial</title>
	<atom:link href="http://robert.accettura.com/blog/tag/tutorial/feed/" rel="self" type="application/rss+xml" />
	<link>http://robert.accettura.com</link>
	<description>Robert Accettura&#039;s Personal Blog on Web Development and Tech</description>
	<lastBuildDate>Thu, 09 Feb 2012 01:43:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<atom:link rel='hub' href='http://robert.accettura.com/?pushpress=hub'/>
<cloud domain='robert.accettura.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
		<item>
		<title>How To Fix Broken about:home Search In Firefox</title>
		<link>http://robert.accettura.com/blog/2012/02/06/how-to-fix-broken-abouthome-search-in-firefox/</link>
		<comments>http://robert.accettura.com/blog/2012/02/06/how-to-fix-broken-abouthome-search-in-firefox/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 22:11:14 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[clean-profile]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://robert.accettura.com/?p=7415</guid>
		<description><![CDATA[Not that I recommend it, well actually I have, and do for &#8220;advanced&#8221; users (I will update that at some point), but occasionally cleaning out your Firefox profile can be a good thing. Every so often I clean the cruft &#8230; <a href="http://robert.accettura.com/blog/2012/02/06/how-to-fix-broken-abouthome-search-in-firefox/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Not that I recommend it, well actually <a href="http://robert.accettura.com/blog/2006/05/03/cleaning-a-firefox-profile/">I have, and do</a> for &#8220;advanced&#8221; users (I will update that at some point), but occasionally cleaning out your Firefox profile can be a good thing.  Every so often I clean the cruft out of mine.  Here&#8217;s a little quirk however.  The new-ish browser start page won&#8217;t perform a search when localStorage is cleaned out.  It will manifest by simply doing nothing when you try to search.  The form goes nowhere.  If you look for errors in the console you&#8217;ll see:</p>
<pre>
"gSearchEngine is null"
</pre>
<p>The best solution I&#8217;ve found to fixing this is to go into <code>about:config</code> and reset (right click -> reset) these properties and restart:</p>
<pre>
browser.startup.homepage_override.buildID
browser.startup.homepage_override.mstone
</pre>
<p>I suspect it&#8217;s just <code>buildID</code>, however neither should be harmful.  Restart and they will be recreated.
<div id="rja_commentCountImage"><a href="http://robert.accettura.com/?p=7415#comments"><img src="http://robert.accettura.com/wp-content/commentCount/2012/02/e261489.gif" alt="Comment Count" style="border:0;" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://robert.accettura.com/blog/2012/02/06/how-to-fix-broken-abouthome-search-in-firefox/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Filing Good Bugs</title>
		<link>http://robert.accettura.com/blog/2010/09/05/filing-good-bugs/</link>
		<comments>http://robert.accettura.com/blog/2010/09/05/filing-good-bugs/#comments</comments>
		<pubDate>Sun, 05 Sep 2010 23:10:31 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[bug report]]></category>
		<category><![CDATA[bugzilla]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://robert.accettura.com/?p=4453</guid>
		<description><![CDATA[Writing good bugs is important when dealing with software development. I deal with several Bugzilla installations meaning I&#8217;ve got some experience with both good and bad bug reports. While the specifics may vary based on the product your submitting a &#8230; <a href="http://robert.accettura.com/blog/2010/09/05/filing-good-bugs/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Writing good bugs is important when dealing with software development.  I deal with several Bugzilla installations meaning I&#8217;ve got some experience with both good and bad bug reports.  While the specifics may vary based on the product your submitting a bug report for these basics rules will make life easier for everyone. In many cases will even help things get resolved quicker.</p>
<p>Bugs that are easy to triage, sort and sift are easier to take care of than those that are cryptic and require more investigation.  If you want your issue to be addressed promptly make sure you facilitate the process by writing a good bug report.  It&#8217;s not difficult and doesn&#8217;t require much technical know how, it just requires being explicit yet concise.  If more information is needed a developer can request it and explain how to capture it.</p>
<h3>Summary</h3>
<p>A good summary is explicit yet brief.  Upon reading it the purpose is clear and little is left to question.  Here are several poor summaries, and the ideal way to submit them:</p>
<p>Bad: &#8220;add me to planet&#8221;<br />
Good: &#8220;add john doe to planet.mozilla.org&#8221;.  There&#8217;s no ambiguity there. Just reading the subject I can distinguish it from others in the queue.</p>
<p>Bad: &#8220;site crashes browser&#8221;<br />
Good: &#8220;visiting a video permalink page crashes IE6&#8243;. Less ambiguity just make sure to add the url to the bug.</p>
<p>Bad: &#8220;javascript error&#8221;<br />
Good: &#8220;Contact form has a javascript error in Chrome&#8221;. Again less ambiguity is key.</p>
<h3>Description</h3>
<p>Descriptions should ideally be front loaded with the important information.  If it&#8217;s a bug report and not a request it should be followed by steps to reproduce including what you see, and what you expect to see. Reference attachments as appropriate (screenshots can be helpful).</p>
<p>Bad: &#8220;Visiting a video permalink page crashes IE6.&#8221;<br />
Good: &#8220;Upon visiting a video permalink page in IE6 the video automatically starts playing.  About 10 seconds into the ad the browser crashes.  I am able to reproduce this consistently at the following link: http://domain.tld/&#8230;&#8221;.</p>
<p>Bad: &#8220;Contact form shows a JS error, can&#8217;t submit.&#8221;<br />
Good: &#8220;When attempting to submit the contact form [http:/doman.tld/...] in IE 7 I get a &#8220;object expected&#8221; error and it refuses to continue.&#8221;</p>
<p>Always include URL&#8217;s when applicable or examples on ways to reproduce the error when possible.  It&#8217;s hard to act upon &#8220;several pages&#8221; when your site has over a half million pages.</p>
<h3>Attachments</h3>
<p>Screenshots, traces, debug logs, mockups are generally helpful.  As a rule make try to use browser-readable formats when possible.  JPEG, GIF, PNG for images, txt, or if you must PDF for documents.  Having to open PowerPoint or Word to view your screenshot isn&#8217;t cool.  It makes people avoid what would be helpful information.  Explanations on what you&#8217;re seeing and expect to see are also helpful for when it&#8217;s not obvious to someone else.</p>
<h3>Severity/Priority</h3>
<p>Always try to use restraint when setting the severity or priority on a bug.  Unless it&#8217;s truly a show stopper avoid using the most severe status.  Generally speaking most &#8220;normal&#8221; or a P3 (on a P1 &#8211; P5 priority scale).  Remember <a href="http://en.wikipedia.org/wiki/The_Boy_Who_Cried_Wolf">The Boy Who Cried Wolf</a>.</p>
<h3>Version</h3>
<p>If you know the version, please specify it.  It helps when several versions of a product are still floating around.</p>
<h3>Product/Component</h3>
<p>I put this toward the bottom for a reason.  Making a best guess is the most you can generally do.  Just be sure to read the entire list before deciding as the best option may be beyond the one you&#8217;ve already found.</p>
<p>Following these simple guidelines can go a long way to making sure bugs get resolved quicker.
<div id="rja_commentCountImage"><a href="http://robert.accettura.com/?p=4453#comments"><img src="http://robert.accettura.com/wp-content/commentCount/2010/09/fd95ec8.gif" alt="Comment Count" style="border:0;" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://robert.accettura.com/blog/2010/09/05/filing-good-bugs/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mac OS X Keyboard Mapping</title>
		<link>http://robert.accettura.com/blog/2007/11/04/mac-os-x-keyboard-mapping/</link>
		<comments>http://robert.accettura.com/blog/2007/11/04/mac-os-x-keyboard-mapping/#comments</comments>
		<pubDate>Sun, 04 Nov 2007 19:29:11 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[cross-platform]]></category>
		<category><![CDATA[dell]]></category>
		<category><![CDATA[keyboard]]></category>
		<category><![CDATA[keyboard mapping]]></category>
		<category><![CDATA[mac-os-x]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://robert.accettura.com/archives/2007/11/04/mac-os-x-keyboard-mapping/</guid>
		<description><![CDATA[Back in 2002, Logitech gave away 20,000 Cordless Navigator Duo Keyboard/Mouse sets in celebration of 30 million cordless devices sold. For some reason Mac OS X doesn&#8217;t seem to recognize some keyboards correctly such as this, and even my standard &#8230; <a href="http://robert.accettura.com/blog/2007/11/04/mac-os-x-keyboard-mapping/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Back in 2002, Logitech <a href="http://www.logitech.com/index.cfm/172/1564&#038;cl=us,en">gave away</a> 20,000 Cordless Navigator Duo Keyboard/Mouse sets in celebration of 30 million cordless devices sold.  For some reason Mac OS X doesn&#8217;t seem to recognize some keyboards correctly such as this, and even my standard Dell 104 Key Keyboard at work.  Not sure why this is, but maybe being behind a KVM switch has something to do with it.  </p>
<p>For anyone else who runs across this problem (and me next time I upgrade my OS and completely forget this), here&#8217;s the fix.  First setup your keyboard with the wizard as Mac OS X prompts you to (it asks for the key next to the left shift key, and the right shift key).   Once that&#8217;s done, go into System Preferences and select &#8220;Keyboard &#038; Mouse&#8221;.  Under &#8220;Keyboard&#8221; press the &#8220;Modifier Keys&#8221; button.  Then change the settings to match your keyboard.  For me the Apple (Command) and Alt/Option were inverted.  Control was fine.</p>
<p><img src="http://robert.accettura.com/wp-content/uploads/2007/11/20071104_keyboard_mapping.jpg" alt="Keyboard Mapping On Mac OS X" class="centered" /></p>
<p>Easy enough right?  Now my keys map perfectly.</p>
<p>The Logitech Cordless Navigator Duo is a really cool keyboard since it&#8217;s one of the few that actually put both sets (Mac/Win) of lettering on the keys.  There is <a href="http://www.logitech.com/index.cfm/478/3025&#038;cl=us,en?osid=9">software</a> for this keyboard but in my experience Keyboard/Mouse software is garbage and should be avoided at all costs.  It&#8217;s also not yet available for Mac OS X 10.5
<div id="rja_commentCountImage"><a href="http://robert.accettura.com/archives/2007/11/04/mac-os-x-keyboard-mapping/#comments"><img src="http://robert.accettura.com/wp-content/commentCount/2007/11/204da25.gif" alt="Comment Count" style="border:0;" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://robert.accettura.com/blog/2007/11/04/mac-os-x-keyboard-mapping/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Cleaning a Firefox Profile</title>
		<link>http://robert.accettura.com/blog/2006/05/03/cleaning-a-firefox-profile/</link>
		<comments>http://robert.accettura.com/blog/2006/05/03/cleaning-a-firefox-profile/#comments</comments>
		<pubDate>Wed, 03 May 2006 18:05:57 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[clean-profile]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[Tip]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://robert.accettura.com/archives/2006/05/03/cleaning-a-firefox-profile/</guid>
		<description><![CDATA[I occasionally like to clean my Firefox profile. I test quite a few extensions, and play around a bit, so every once in a while, I just want to clean up. This method has worked rather well for me over &#8230; <a href="http://robert.accettura.com/blog/2006/05/03/cleaning-a-firefox-profile/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I occasionally like to clean my Firefox profile.  I test quite a few extensions, and play around a bit, so every once in a while, I just want to clean up.  This method has worked rather well for me over the years.  Essentially I imported my Netscape 4 profile into Netscape 7, then Mozilla App Suite, then split into Firefox and Thunderbird, so essentially I have data in there that&#8217;s several years old.  I thought I&#8217;d share what I do, and why I do it, in hopes that perhaps someone else would benefit.</p>
<p>These directions were drafted with Firefox 1.5 as a reference point, for older or newer releases the directions may not work (for example if you use a Firefox build with &#8220;Places&#8221;).</p>
<div style="background-color: #FFFFD1; border: 2px dashed #FFF100; padding: 8px 15px;">
<h4 style="padding: 2px; margin: 2px;">A word of advice:</h4>
<p><em>For the record, this is at your own risk, back up before you touch anything.  Backup by copying The <code>Firefox</code> directory as mentioned in respective location below (a directory above <code>Profiles</code>).  You&#8217;ve been warned.</em></p>
</div>
<h4>Directions</h4>
<p>You may want to start out by going to the Bookmarks menu and selecting &#8220;Manage Bookmarks&#8221;.  Then cleaning out and organizing your bookmarks, if you want to keep them in your new profile.  It&#8217;s a good habit to get into.</p>
<p>The first real step I do is visit my profiles directory:</p>
<p><strong>Windows</strong></p>
<pre>
C:\\Documents and Settings\\[Windows Username]\\Application Data\\Mozilla\\Firefox\\Profiles\\
</pre>
<p><strong>Mac OS X</strong></p>
<pre>
~/Library/Application Support/Firefox/Profiles/xxxxxxxx.default/
</pre>
<p>Your profile will be a directory with a salted name.  Something like <code>xxxxxxxx.default</code>.  Those x&#8217;s are random characters.  </p>
<p>Because I only have 1 real profile (and one for dev purposes of which I choose to preserve nothing), I like to rename mine to something else.  As far as I&#8217;m concerned this one is dead to me. I&#8217;m going to also get rid of the profiles.cfg and pluginreg.dat files in the Firefox Folder (up above profiles), then run Firefox and create a new profile on prompt.  If you have multiple profiles you wish to leave untouched you would be better off using <code>firefox.exe -profilemanager</code> in the command prompt and simply creating a new profile.  </p>
<p>Ok, so now we have this really clean new profile, and that old crusty one with lots of junk.  Well, I want some of my stuff in my new clean profile, but only certain things.  So here&#8217;s a breakdown of what I do, pick and choose as you want.  Obviously the less you bring over, the better.</p>
<p><em>Only perform the following when Firefox is not running.</em></p>
<p><strong>Bookmarks</strong><br />
Simply copy the <code>bookmarks.html</code> file from the old profile into the new profile.</p>
<p><strong>Cookies (stay logged in with all your sites)</strong><br />
I like to carry these over, since I like being logged into certain sites (forums and such).  Just copy the <code>cookies.txt</code> file from the old profile into the new profile.  If you open the file up in a text editor you can delete a line or two (get rid of those old cookies, or just to satisfy that tin-foil-hat feeling).  Just be careful if you do.</p>
<p><strong>Password</strong><br />
I also like to keep my stored passwords (nothing important, just those news sites, and other silliness that I don&#8217;t feel like entering each and every time).  Password Manager is great for that.  The files you want to copy over are: <code>cert8.db</code>, <code>secmod.db</code>, <code>key3.db</code>, <code>signons.txt</code>.</p>
<p><strong>Extensions</strong><br />
My recommendation on Extensions is to visit addons.mozilla.org (Google for the ones you can&#8217;t find) and re-download.  The reason I prefer to do that rather than move them over, is because some just seem to stubborn to use the update service, and that leaves me with some old extensions.  Also, in this process I typically realize there are one or two that sounded like great ideas, but I just never really used them.  Less extensions means less chances for a memory leak.  That&#8217;s always a good thing.</p>
<p><strong>Search</strong><br />
Just copy the <code>search.rdf</code> file and <code>searchplugins</code> directory over.</p>
<h4>Final Notes</h4>
<p>This process typically takes me about 5-10 minutes (mainly depending on if I cleanup my bookmarks and cookies).  Overall not bad.  Gets rid of the crud that tends to accumulate over time, and keeps things pretty lean.  This is also pretty useful if you encounter some profile corruption or other ugliness, especially if your one of us trusting soles who occasionally run nightlies from the trunk.</p>
<p>If you do it all correctly, you get a nice clean profile, but still keep your important data.  Cache and autocomplete list will rebuild pretty quickly as you use the profile.  I&#8217;ve found this technique is great for reviving that profile that&#8217;s just littered with garbage from various things I&#8217;ve done, and extensions I&#8217;ve tried.</p>
<p>Hopefully this helps someone.
<div id="rja_commentCountImage"><a href="http://robert.accettura.com/archives/2006/05/03/cleaning-a-firefox-profile/#comments"><img src="http://robert.accettura.com/wp-content/commentCount/2006/05/31857b4.gif" alt="Comment Count" style="border:0;" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://robert.accettura.com/blog/2006/05/03/cleaning-a-firefox-profile/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
		<item>
		<title>Flash tutorial for Firefox 1.1</title>
		<link>http://robert.accettura.com/blog/2004/10/25/flash-tutorial-for-firefox-11/</link>
		<comments>http://robert.accettura.com/blog/2004/10/25/flash-tutorial-for-firefox-11/#comments</comments>
		<pubDate>Tue, 26 Oct 2004 03:11:07 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://robert.accettura.com/archives/2004/10/25/flash-tutorial-for-firefox-11/</guid>
		<description><![CDATA[I briefly flashed the idea on #spreadfirefox, but I thought I&#8217;d elaborate on it here: First Impressions are everything We&#8217;ve said that before, and most agree. Psychologists have spent considerable time on this. People make very quick decisions on if &#8230; <a href="http://robert.accettura.com/blog/2004/10/25/flash-tutorial-for-firefox-11/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I briefly flashed the idea on <em>#spreadfirefox</em>, but I thought I&#8217;d elaborate on it here:</p>
<p><em>First Impressions are everything</em></p>
<p>We&#8217;ve said that before, and most agree.  Psychologists have spent considerable time on this.  People make very quick decisions on if they like something or not.  They either like it, or they don&#8217;t.  Impressions happen quickly.  Firefox needs to make a good one.  I think we can improve it by creating a Flash, JavaScript, or SVG based tutorial on first run.  Something flashy, yet professional, and artistically done.  Clean simple UI.  Perhaps a few options on the main page:</p>
<ul>
<li>Firefox Features</li>
<li>What&#8217;s new in this release &#8211; 1.1</li>
<li>Why Firefox</li>
<li>IE &#8211;> Firefox Tips and Tricks</li>
<li>Help Firefox</li>
</ul>
<p>Each would bring you to some information, such as why you should use Firefox (including an animated demo of how &#8216;Tabbed browsing works&#8217;, &#8216;Livemarks&#8217;, etc.  Minimal Text, maximum efficiency.  In 5 minutes, the user should be able to see why Firefox is better by example, not by reading.  How to use features etc.  Simple, quick, easy to follow.  Sexy animations show how it works.  People are hesitant to read text.</p>
<p>What&#8217;s new, would be a great way to show users what changed since the last version.  Remember:  Firefox got this far by word of mouth.  Letting current users see how much better each version got, makes them more inclined to tell some friends about it.  Show off the new improvements in a way users are inclined to see them.</p>
<p>Help Firefox would perhaps discuss ways to help Firefox (obvious right).  Spreadfirefox.com, report broken websites, report bugs, donate, buy Mozilla gear, etc.</p>
<p>Such a feature would popup on the first load of a new profile.  At that point they could disable it from showing again.  Next release it comes back with new features.  Only once by default, unless the user decides otherwise.  </p>
<p><strong>What we accomplish</strong></p>
<ul>
<li>Show users what to look for when deciding if Firefox is right for them.</li>
<li>Show users the new features if they are upgrading.</li>
<li>Show users how to adjust to Firefox if they are a habitual IE user.
</li>
<li>Show users how they can help Firefox.</li>
</ul>
<p>I think we can all agree we want that.</p>
<p>Casual users don&#8217;t like reading.  They don&#8217;t have the patience.  It needs to be displayed for them.  Illustrated for them.  <em>That</em> is what will get more people to use Firefox.  Remember:  downloads are great, but we ultimately need <em>users</em>.  That&#8217;s the goal here.
<div id="rja_commentCountImage"><a href="http://robert.accettura.com/archives/2004/10/25/flash-tutorial-for-firefox-11/#comments"><img src="http://robert.accettura.com/wp-content/commentCount/2004/10/59b90e1.gif" alt="Comment Count" style="border:0;" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://robert.accettura.com/blog/2004/10/25/flash-tutorial-for-firefox-11/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>SpamAssassin and OS X</title>
		<link>http://robert.accettura.com/blog/2003/04/13/spamassassin-and-os-x/</link>
		<comments>http://robert.accettura.com/blog/2003/04/13/spamassassin-and-os-x/#comments</comments>
		<pubDate>Sun, 13 Apr 2003 21:51:43 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Spam]]></category>
		<category><![CDATA[mac-os-x]]></category>
		<category><![CDATA[saproxy]]></category>
		<category><![CDATA[spamassassin]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://robert.accettura.com/archives/2003/04/13/spamassassin-and-os-x/</guid>
		<description><![CDATA[Well, I&#8217;ve been working on getting SpamAssassin working with Mac OS X, and have gotten it working pretty good. Either just to filter spam for the computer, or for an entire network. Note: This to the best of my knowledge &#8230; <a href="http://robert.accettura.com/blog/2003/04/13/spamassassin-and-os-x/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Well, I&#8217;ve been working on getting SpamAssassin working with Mac OS X, and have gotten it working pretty good.  Either just to filter spam for the computer, or for an entire network.<br />
<span id="more-13"></span><br />
<strong>Note:</strong>  This to the best of my knowledge works correctly&#8230; But this is at your own risk.  I have only tested this one one system.  If there is a problem, removing the SAProxy directory from the StartupItems should resolve any issues.  If it locks on startup, boot off of another disk (I perfer a Mac OS 9 CD), then remove that directory..  It will disable SpamAssassin, but allow you startup and use your computer as it was before.</p>
<p>The first thing to do is install SpamAssassin.  Here is what needs to be done.</p>
<p>This guide assumes you have Developer Tools already install (that grey CD that came with Mac OS X).  You can download it at:<br />
<a href="http://connect.apple.com">http://connect.apple.com</a></p>
<p>First we need to install a few modules.</p>
<p>These modules are required for spamassassin to build:</p>
<ul>
<li>ExtUtils::MakeMaker >= 5.45 (from CPAN, or included in Perl 5.6 and higher)</li>
<li>File::Spec >= 0.8    (from CPAN, or included in Perl 5.6 and higher)</li>
<li>Pod::Usage           (from CPAN, or included in Perl 5.6 and higher)</li>
<li>HTML::Parser >= 3.0  (from CPAN)</li>
<li>Sys::Syslog    (from CPAN)</li>
</ul>
<p>Ben Trott&#8217;s <a href="http://www.stupidfool.org/docs/sa.html">article</a> will show you how to install those quickly.  Do only step 2, and only for the modules above.  Ignore him for the rest, he is installing it a bit differently.</p>
<p>Now we need the latest SpamAssassin distribution.  It can be found on the <a href="http://www.spamassassin.org/downloads.html">downloads page</a>.  Copy the URL of the latest version to the clipboard.  Then open terminal and enter the following (note the URL syntax may be slightly different depending on the version.  This is for 2.53):</p>
<pre><code>curl -O http://www.spamassassin.org/released/Mail-SpamAssassin-2.53.tar.gz</code></pre>
<p>The next step is to expand this download (again note the file name might be slightly different:</p>
<pre><code>gnutar xzf SpamAssassin-2.53.tar.gz</code></pre>
<p>Then cd to the directory (once again, the directory name may be slightly different, check that version number) and run the makefile script:</p>
<pre><code>cd SpamAssassin-2.53perl Makefile.pl</code></pre>
<p>This should be somewhat quick, a minute or two.</p>
<pre><code>make</code></pre>
<p>This will take a bit longer.  Don&#8217;t worry about all the garbage on the screen.  That&#8217;s because the authors love the matrix <img src='http://robert.accettura.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />   As long as there are no errors, your looking good.</p>
<pre><code>sudo make install</code></pre>
<p>You will need to enter your password, do so&#8230; then in a minute or so it will be complete.</p>
<p>That was the worst part&#8230;Not bad eh?  You can now delete the SpamAssassin-x.xx directory, and the compressed archive you downloaded earlier&#8230; They are no longer needed.</p>
<p>Now to create the proxy.</p>
<p>Again, in terminal<br />
Create a directory on the root of your hard drive, name it &#8220;saproxy&#8221;.  Then open it:</p>
<pre>
<code>
cd /
mkdir saproxy
cd saproxy
</code>
</pre>
<p>Now we need to install the proxy script.</p>
<pre>
<code>
pico pop3proxy.pl
</code>
</pre>
<p>Now in your web browser, copy and paste the contents of this page into the terminal window </p>
<p><a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/spamassassin/pop3/pop3proxy.pl?rev=HEAD&#038;content-type=text/plain">pop3proxy.pl</a></p>
<p>Control &#8220;O&#8221; to save the file, say yes to changes.<br />
Control &#8220;X&#8221; to quit pico</p>
<p>Once again for the kill script:</p>
<pre>
<code>
pico kill_proxy.pl
</code>
</pre>
<p>And the source for this file can be found here:<br />
<a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/spamassassin/pop3/kill_proxy.pl?rev=HEAD&#038;content-type=text/plain">killproxy.pl</a><br />
Paste it in, save the file, and exit pico</p>
<p>Now we get to decide how to run it.  </p>
<p>Create a directory named &#8220;SAProxy&#8221; in the StartupItems folder:</p>
<pre>
<code>
cd /Library/StartupItems
mkdir SAProxy
cd SAProxy
</code>
</pre>
<p>Now create a file named SAProxy</p>
<pre>
<code>sudo pico SAProxy
</code>
</pre>
<p>Paste the following into it:</p>
<pre>
<code>
#!/bin/sh
#
# *********************************************************************
# ** /Library/StartupItems/SAProxy/SAProxy **
# *********************************************************************
# ** **
# ** This is the intialization script for SAProxy services on Mac OS **
# ** X. The permissions of this file need to be set to 0755. This **
# ** can be accomplished from the Terminal while in this directory **
# ** by typing: chmod 0755 Samba This will adjust the properties so **
# ** that it can be executed. **
# ** **
# ** To configure SAProxy to launch: as root, edit the file **
# ** /etc/hostconfig at the very end enter: **
# ** SAPROXY=-YES- You can easily change this entry to enable **
# ** or disable SAProxy whenever you like. **
# ** **
# ** **
# *********************************************************************
# Robert J. Accettura robert-at-accettura.com
# @ April 13, 2003
#

# ---------------------------------------------------------------------
# Include system wide configuration options
# ---------------------------------------------------------------------
. /etc/rc.common

# ---------------------------------------------------------------------
# Start SAProxy services
# ---------------------------------------------------------------------
if [ "${SAPROXY:=-NO-}" = "-YES-" ]; then

ConsoleMessage "Starting SpamAssassin"
#to use as server comment the line before (add a "#" to the beginning), and uncomment the one below (Remove the "#")
/usr/bin/perl /saproxy/pop3proxy.pl &#038;
#/usr/bin/perl /saproxy/pop3proxy.pl -listenall &#038;

fi
</code></pre>
<p>Note: If you want to use it as a server, that other computers on a network can connect and filter mail, read the file for the /usr/bin/perl line, and adjust accordingly</p>
<p>Save (control &#8220;O&#8221;), and exit pico (control &#8220;X&#8221;)</p>
<p>Now we need to set the correct permissions for the file:<br />
sudo chmod 0755 SAProxy</p>
<p>Enter password if asked</p>
<p>Now for the StartupParameters.plist file</p>
<pre>o StartupParameters.plist
</pre>
<p>Paste this in there:</p>
<pre>
<code>
{
Description = "SpamAssassin Proxy";
Provides = ("SpamAssasin");
Requires = ("Resolver");
OrderPreference = "None";
Messages =
{
start = "Starting SpamAssassin";
stop = "Stopping SpamAssassin";
};
}
</code>
</pre>
<p>Save and exit</p>
<p>Set the permissions for it:</p>
<pre>
<code>
sudo chmod 0644 StartupParameters.plist
</code>
</pre>
<p>Reboot</p>
<p>Now to configure a mail client, you need the following:</p>
<p>Username user:host.tld<br />
[That is your username for your ISP's email account, and the host server. For example "robert:mail.accettura.com"]</p>
<p>Your server is now &#8220;localhost&#8221;. If your running it on a different computer than the mail client, enter the appropriate IP address.</p>
<p>That&#8217;s it.</p>
<p>Sidenote: Hopefully we can get this packaged as a distribution soon, so these directions will be pointless.
<div id="rja_commentCountImage"><a href="http://robert.accettura.com/archives/2003/04/13/spamassassin-and-os-x/#comments"><img src="http://robert.accettura.com/wp-content/commentCount/2003/04/c51ce41.gif" alt="Comment Count" style="border:0;" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://robert.accettura.com/blog/2003/04/13/spamassassin-and-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

