<?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>Spontaneous Noise</title>
	<atom:link href="http://spontaneousnoise.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://spontaneousnoise.com</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Mon, 19 Apr 2010 00:14:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Spontaneous Noise, Now Quieter</title>
		<link>http://spontaneousnoise.com/2010/04/spontaneous-noise-now-quieter/</link>
		<comments>http://spontaneousnoise.com/2010/04/spontaneous-noise-now-quieter/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 00:14:19 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://spontaneousnoise.com/?p=220</guid>
		<description><![CDATA[I&#8217;m moving the blog to my company website at Working Concept. You&#8217;ve been warned.
http://www.workingconcept.com/blog
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m moving the blog to my company website at Working Concept. You&#8217;ve been warned.</p>
<p>http://www.workingconcept.com/blog</p>
]]></content:encoded>
			<wfw:commentRss>http://spontaneousnoise.com/2010/04/spontaneous-noise-now-quieter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rolling Your Own SVN Server</title>
		<link>http://spontaneousnoise.com/2010/02/rolling-your-own-svn-server/</link>
		<comments>http://spontaneousnoise.com/2010/02/rolling-your-own-svn-server/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 08:44:42 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[diy]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[linode]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://spontaneousnoise.com/2010/02/rolling-your-own-svn-server/</guid>
		<description><![CDATA[I recently decided that putting all my projects into one subversion repository was a bad idea. If each project has its own repository, there are some benefits:

My revision comments make lots of sense and follow a logical path.
My revision numbers are more meaningful, and pertain to each project directly.
I can easily share access to one [...]]]></description>
			<content:encoded><![CDATA[<p>I recently decided that putting all my projects into one subversion repository was a bad idea. If each project has its own repository, there are some benefits:</p>
<ol>
<li>My revision comments make lots of sense and follow a logical path.</li>
<li>My revision numbers are more meaningful, and pertain to each project directly.</li>
<li>I can easily share access to one project with someone else if I need to, without exposing all of my work or potentially sensitive information.</li>
<li>I can join the rest of the world that&#8217;s using subversion properly.</li>
</ol>
<p>So why wasn&#8217;t I doing this sooner? I learned to use subversion this way, and it actually helped when I decided to use <a href="http://beanstalkapp.com/" target="_blank">Beanstalk</a>. Beanstalk is awesome, provides lots of hooks and cool features, and is just lovely. The obstacle in my repository-for-every-project quest was Beanstalk&#8217;s limit on repositories. With the $15/month account, I could only have 10 repositories. I could pay more for additional repositories, but I&#8217;m cheap and ambitious and there seemed like there had to be a better way. And there was. Here&#8217;s how I set up stylish subversion hosting with unlimited repositories for $19.95 a month.</p>
<p><strong>Step 1: Sign up for Linode account.<br /></strong>I loved <a href="http://slicehost.com/" target="_blank">Slicehost</a> but was always curious about <a href="http://www.linode.com/" target="_blank">Linode</a>; you get just a little bit more for a teeny bit less, and like Slicehost they seem to have a great reputation. I signed up for a Linode 360 account, which gets me blazing fast access to 16GB of storage, 360GB of memory, and 200GB of transfer per month.</p>
<p><strong>Step 2: Prep Linode account.<br /></strong>Linode&#8217;s control panel makes it easy to get set up quickly. I installed Ubuntu 8.04 LTS (free). Done.</p>
<p><strong>Step 3: Set up the server.<br /></strong>Equally brainless was installing VirtualMin GPL (free) using the <a href="http://www.webmin.com/vinstall.html" target="_blank">install script</a>, which is designed to work with Ubuntu 8.04. VirtualMin makes it easy to set up virtual hosts and repositories with a web-based GUI. I love the shell, but I find it easier to administer the web server with a GUI like VirtualMin. My brain only has room for about 10 terminal commands before I have to start looking things up. I then followed <a href="http://articles.slicehost.com/2008/4/25/ubuntu-hardy-setup-page-1" target="_blank">PickledOnion&#8217;s iptables setup instructions</a> (scroll down to find it) to secure things a bit.</p>
<p><strong>Step 4: Make some test repositories.<br /></strong>Log into VirtualMin, set up a virtual server, and add some repositories. Ridiculously easy. I access my subversion repositories via a URL like https://example.com/svn/repository-name. Tested connecting with <a href="http://versionsapp.com/" target="_blank">Versions</a>, and everything worked just fine and very quickly. I dumped my Beanstalk repository, then imported it to the new server using VirtualMin.</p>
<p>Step 5: Split projects from old setup into their own individual repositories.<br />I was sailing along feeling clever and upbeat, and then this step was like a punch below the belt. For your benefit, dear reader, I&#8217;ll share what worked rather than the grim tale of how I got there.</p>
<ol>
<li>SSH&#8217;d into server via Terminal.</li>
<li>Dumped my current repository.
<pre>svnadmin dump /home/domain/svn/oldrepo > oldrepo.svndump</pre>
</li>
<li>Split off a single project into its own dump, dropping unrelated revisions and renumbering them. (Note: folder structure is important here, and you should know that a project in my old repository had a path like &#8220;/projects/projectname/trunk/&#8221;.
<pre>cat oldrepo.svndump | svndumpfilter --drop-empty-revs --renumber-revs include /projects/projectname > projectname.svndump</pre>
</li>
<li>Keep filtering dumps until your paths work for a new repository. You&#8217;ll know if this isn&#8217;t working because you&#8217;ll get import errors. Long story short: view the dump source with a text editor and make sure that no paths are committed to the new repository that reference non-existing folders. My three steps basically create a tags folder and make sure that trunk gets moved back one level.
<pre>cat projectname.svndump | sed -e 's,^Node-path: projects/projectname,Node-path: tags,' > projectname2.svndump</pre>
<p>
<pre>cat projectname2.svndump | sed -e 's,^Node-path: tags/trunk,Node-path: trunk,' > projectname3.svndump</pre>
<p>
<pre>cat projectname3.svndump | sed -e 's,^Node-copyfrom-path: projects/projectname/trunk,Node-copyfrom-path: trunk,' > projectname4.svndump</pre>
</li>
</ol>
<p>If you&#8217;ve lived through step 4, now all you have to do is create a repository for your project and import your last filtered dump (projectname4.svndump).</p>
<p><strong>Step 6: Add a touch of awesomeness with Warehouse.<br /></strong>Beanstalk is sexy and made it easy for me to share code with others. At this point I was thrilled to have unlimited repositories, but resigned to say goodbye to Beanstalk&#8217;s good looks and friendliness. Then <a href="http://warehouseapp.com/" target="_blank">Warehouse</a> brought sexy back. I just happened upon Warehouse, a web-based subversion browser that&#8217;s built on rails. And it just happened to go open source!</p>
<p>I deployed a few Ruby on Rails apps in the past, and all I remembered was that it wasn&#8217;t as easy as plopping PHP and MySQL somewhere. Ultimately the setup was simple, thanks to the last step:</p>
<ol>
<li>Add a subdomain wildcard for the server in the DNS manager.</li>
<li>Create a MySQL database for Warehouse, upload everything to the server&#8217;s web root, and run the installer.</li>
<li>Update Ruby, Rails, and Gems.</li>
<li>Install <a href="http://www.modrails.com/" target="_blank">Phusion Passenger</a> alongside Apache so there aren&#8217;t any more steps to install this app. (This is awesome, by the way.)</li>
</ol>
<p>You can figure out the rest on your own. Enjoy your new repositories, your web-based browser, and your awesome new subversion hosting!</p>
<p><strong>References:</strong></p>
<ul>
<li><a href="http://www.wreiner.at/en/2009/02/25/svn-unterverzeichnis-von-einem-repository-in-ein-neues-verschiebensvn-howto-move-subdirectory-from-one-repository-to-another/" target="_blank">http://www.wreiner.at/en/2009/02/25/svn-unterverzeichnis-von-einem-repository-in-ein-neues-verschiebensvn-howto-move-subdirectory-from-one-repository-to-another/</a></li>
<li><a href="http://svnbook.red-bean.com/en/1.0/ch05s03.html" target="_blank">http://svnbook.red-bean.com/en/1.0/ch05s03.html</a></li>
<li><a href="http://www.yolinux.com/TUTORIALS/SubversionRepositoryDataTransfer.html" target="_blank">http://www.yolinux.com/TUTORIALS/SubversionRepositoryDataTransfer.html</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spontaneousnoise.com/2010/02/rolling-your-own-svn-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debugging PHP with Webgrind</title>
		<link>http://spontaneousnoise.com/2010/01/debugging-php-with-webgrind/</link>
		<comments>http://spontaneousnoise.com/2010/01/debugging-php-with-webgrind/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 02:29:32 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[webgrind]]></category>
		<category><![CDATA[xdebug]]></category>

		<guid isPermaLink="false">http://spontaneousnoise.com/2010/01/debugging-php-with-webgrind/</guid>
		<description><![CDATA[I just caught a post over at BKWLD about using Webgrind with MAMP to debug PHP. I had to upgrade MAMP to 1.8.4 to take advantage of the newer Zend Optimizer, but once I did things went pretty smoothly. If you&#8217;re not already using Webgrind (a front-end for Xdebug), you should be.
]]></description>
			<content:encoded><![CDATA[<p>I just caught a post over at <a href="http://bkwld.com/" target="_blank">BKWLD</a> about <a href="http://bkwld.com/blog/2010/01/getting-webgrind-working-in-mamp/" target="_blank">using Webgrind with MAMP to debug PHP</a>. I had to upgrade MAMP to 1.8.4 to take advantage of the newer Zend Optimizer, but once I did things went pretty smoothly. If you&#8217;re not already using <a href="http://code.google.com/p/webgrind/" target="_blank">Webgrind</a> (a front-end for <a href="http://www.xdebug.org/" target="_blank">Xdebug</a>), you should be.</p>
]]></content:encoded>
			<wfw:commentRss>http://spontaneousnoise.com/2010/01/debugging-php-with-webgrind/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The 2009 A List Apart Survey</title>
		<link>http://spontaneousnoise.com/2010/01/the-2009-a-list-apart-survey/</link>
		<comments>http://spontaneousnoise.com/2010/01/the-2009-a-list-apart-survey/#comments</comments>
		<pubDate>Sun, 10 Jan 2010 22:58:59 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[2009]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[survey]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://spontaneousnoise.com/2010/01/the-2009-a-list-apart-survey/</guid>
		<description><![CDATA[I just finished taking the 2009 A List Apart Survey. If you&#8217;re a web designer/developer and you haven&#8217;t already taken it, go ahead:


]]></description>
			<content:encoded><![CDATA[<p>I just finished taking the 2009 A List Apart Survey. If you&#8217;re a web designer/developer and you haven&#8217;t already taken it, go ahead:</p>
<p><a href="http://alistapart.com/articles/survey2009" class="image-link"><img src="http://spontaneousnoise.com/wp-content/uploads/2010/01/i-took-the-2009-survey-thumb.gif" height="46" width="180" /></a></p>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://spontaneousnoise.com/2010/01/the-2009-a-list-apart-survey/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Time Capsule Hard Drive Upgrade</title>
		<link>http://spontaneousnoise.com/2009/11/time-capsule-hard-drive-upgrade/</link>
		<comments>http://spontaneousnoise.com/2009/11/time-capsule-hard-drive-upgrade/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 21:46:31 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[diy]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[time capsule]]></category>
		<category><![CDATA[upgrade]]></category>

		<guid isPermaLink="false">http://spontaneousnoise.com/2009/11/time-capsule-hard-drive-upgrade/</guid>
		<description><![CDATA[Two of us share the Time Capsule for backup and storage, and we&#8217;ve outgrown the 500GB limit. I saw hardmac.com&#8217;s year-old article on replacing the Time Capsule hard drive and decided to upgrade my own.
The article already explains the process perfectly well, so I won&#8217;t get into that. I will say that I ordered a [...]]]></description>
			<content:encoded><![CDATA[<p>Two of us share the Time Capsule for backup and storage, and we&#8217;ve outgrown the 500GB limit. I saw <a href="http://www.hardmac.com/articles/79/" target="_blank">hardmac.com&#8217;s year-old article</a> on replacing the Time Capsule hard drive and decided to upgrade my own.</p>
<p>The article already explains the process perfectly well, so I won&#8217;t get into that. I will say that I ordered a <a href="http://www.amazon.com/gp/product/B0021L9HE6/ref=noref?ie=UTF8&#038;s=electronics" target="_blank">1.5TB Western Digital Green Drive</a> (same series that they recommended), and the drive itself is amazing! The Time Capsule barely makes <em>any</em> noise anymore, without any noticeable loss of speed. It&#8217;s only a few feet away from our living room couch, so we&#8217;d always hear it spin up and click away while reading/writing. Last night we both took turns putting our ear to it just to be able to hear anything! I expected it to be quieter, but I had no idea it would be nearly silent even at full load.</p>
]]></content:encoded>
			<wfw:commentRss>http://spontaneousnoise.com/2009/11/time-capsule-hard-drive-upgrade/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Edit in TextMate Lives Again with QuickCursor</title>
		<link>http://spontaneousnoise.com/2009/11/edit-in-textmate-lives-again-with-quickcursor/</link>
		<comments>http://spontaneousnoise.com/2009/11/edit-in-textmate-lives-again-with-quickcursor/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 17:28:22 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[quickcursor]]></category>
		<category><![CDATA[snow leopard]]></category>
		<category><![CDATA[textmate]]></category>

		<guid isPermaLink="false">http://spontaneousnoise.com/2009/11/edit-in-textmate-lives-again-with-quickcursor/</guid>
		<description><![CDATA[I complained before that my beloved &#8220;Edit in TextMate&#8221; input manager wandered off into the woods when I upgraded to Snow Leopard and started using 64-bit apps. I work with lots of sites using ExpressionEngine, and &#8220;Edit in TextMate&#8221; made life quicker/easier when editing templates. (We can have a lively debate about saving templates as [...]]]></description>
			<content:encoded><![CDATA[<p>I complained <a href="http://spontaneousnoise.com/2009/09/hp1006-and-snow-leopard/" title="">before</a> that my beloved &#8220;Edit in TextMate&#8221; input manager wandered off into the woods when I upgraded to Snow Leopard and started using 64-bit apps. I work with lots of sites using ExpressionEngine, and &#8220;Edit in TextMate&#8221; made life quicker/easier when editing templates. (We can have a lively debate about saving templates as files later.)</p>
<p>Ricky at <a href="http://ifthen.com/" target="_blank">IF/THEN</a> pointed me to <a href="http://www.hogbaysoftware.com/products/quickcursor" target="_blank">QuickCursor</a>, which is like a more grown-up &#8220;Edit in TextMate.&#8221; QuickCursor stays calm as I change Safari tabs, and never seems to lose the connection between the browser window&#8217;s textarea and the TextMate window. It lets me choose the keyboard shortcut, and you&#8217;ll never guess what I made it.</p>
<p>Bonus: you can add various &#8220;Edit In&#8230;&#8221; applications with shortcuts. What&#8217;s not to like? <a href="http://www.hogbaysoftware.com/products/quickcursor" target="_blank">Get it for yourself!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://spontaneousnoise.com/2009/11/edit-in-textmate-lives-again-with-quickcursor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hostgator + Postini</title>
		<link>http://spontaneousnoise.com/2009/11/hostgator-postini/</link>
		<comments>http://spontaneousnoise.com/2009/11/hostgator-postini/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 23:50:23 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[hostgator]]></category>
		<category><![CDATA[postini]]></category>
		<category><![CDATA[server]]></category>

		<guid isPermaLink="false">http://spontaneousnoise.com/2009/11/hostgator-postini/</guid>
		<description><![CDATA[If you&#8217;ve got a Hostgator account and are interested in using Google&#8217;s excellent Postini mail filtering service, the following should get you up and running. Please note that I&#8217;m not an IT guy, I&#8217;m not speaking on Hostgator&#8217;s behalf, and I&#8217;m not responsible if mobs come after you with pitchforks or you encounter email issues.

Sign [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve got a <a href="http://hostgator.com/" target="_blank">Hostgator</a> account and are interested in using Google&#8217;s excellent <a href="http://www.google.com/postini/index.html" target="_blank">Postini</a> mail filtering service, the following should get you up and running. Please note that I&#8217;m not an IT guy, I&#8217;m not speaking on Hostgator&#8217;s behalf, and I&#8217;m not responsible if mobs come after you with pitchforks or you encounter email issues.</p>
<ol>
<li>Sign up for Postini, and look for a welcome email with MX server settings that you should use.</li>
<li>Use cPanel to make sure your desired mailboxes are set up and working. (Obvious but necessary.)</li>
<li>Find either your website&#8217;s IP address or the hostname of the server you&#8217;re on. You can use any basic Whois tool, like <a href="http://cqcounter.com/whois/" target="_blank">cqcounter.com</a>&#8217;s.</li>
<li>In Postini&#8217;s admin tool, tell the delivery manager to send Postini&#8217;s messages to your mail server. Click the &#8220;Inbound Servers&#8221; tab, select an option from the &#8220;Choose Org:&#8221; dropdown, and click the &#8220;Delivery Mgr&#8221; nav item. Find the &#8220;Edit&#8221; button and click it. You&#8217;ll now see &#8220;Email Servers and Load Balancing.&#8221; Make sure that one of your email servers is the hostname or IP address from step #3, and set &#8220;% Conn.&#8221; to 100% unless you have another mail server to route to.</li>
<li>Update your Hostgator MX records to automatically send all mail to Postini for processing. If &#8220;Edit MX Entry&#8221; is an option in cPanel, you can do it yourself. Otherwise you&#8217;ll need to chat with a Hostgator support specialist or file a support ticket. You want to change your MX entries (which tells the server where to send email) with those referred to in step #1. <strong>Make sure that you select the checkbox that says &#8220;Always accept mail locally even if the primary mx does not point to this server.&#8221;</strong> Otherwise you won&#8217;t get your filtered mail from Postini.</li>
<li>Wait a while and see what happens.</li>
<li>If anything seems fishy, or even if everything seems to be working well, use Postini&#8217;s &#8220;System Tests&#8221; (again in the admin panel) to make sure that everything is routed properly.</li>
</ol>
<p>A final note: I learned the hard way that you need to use valid email addresses everywhere. By default, your Hostgator account will reject any incoming emails that aren&#8217;t going to a valid address. My daily Quarantine Summaries weren&#8217;t showing up in my inbox even though I was getting filtered mail because I told Postini to send me messages from &#8220;do-not-reply@spontaneousnoise.com,&#8221; which didn&#8217;t exist. SMTP message tests failed because Postini tried to send from &#8220;test@spontaneousnoise.com,&#8221; which also doesn&#8217;t exist. Creating an alias for that address allowed the test to work.</p>
]]></content:encoded>
			<wfw:commentRss>http://spontaneousnoise.com/2009/11/hostgator-postini/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Goodbye Slicehost, Hello BlipBleepBloop</title>
		<link>http://spontaneousnoise.com/2009/11/goodbye-slicehost-hello-blipbleepbloop/</link>
		<comments>http://spontaneousnoise.com/2009/11/goodbye-slicehost-hello-blipbleepbloop/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 05:47:50 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[blipbleepbloop]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[slicehost]]></category>

		<guid isPermaLink="false">http://spontaneousnoise.com/2009/11/goodbye-slicehost-hello-blipbleepbloop/</guid>
		<description><![CDATA[A week ago, I logged into the Slicehost admin panel, took a deep breath, and looked down at my index finger. I held my breath and clicked, and deleted my beloved Slice. Despite the fact that Slicehost will always have a special place in my nerdy little heart, I&#8217;m moving on.
The talented and wonderfully-bearded Scott [...]]]></description>
			<content:encoded><![CDATA[<p>A week ago, I logged into the <a href="http://slicehost.com/" target="_blank">Slicehost</a> admin panel, took a deep breath, and looked down at my index finger. I held my breath and clicked, and deleted my beloved Slice. Despite the fact that Slicehost will always have a special place in my nerdy little heart, I&#8217;m moving on.</p>
<p>The talented and wonderfully-bearded <a href="http://sccottt.com/" target="_blank">Scott Thiessen</a> and I have started a new project called <a href="http://blipbleepbloop.com/" target="_blank">BlipBleepBloop</a>. It&#8217;s our own tiny hosting company that we&#8217;re using for clients and to which we&#8217;re inviting a handful of folks.</p>
<p>I&#8217;m proud to be running all of my sites and email off of a Blip account, which will inherently improve our service since both Scott and I are running our own sites there. Everything has been comfortably stable and speedy, and we&#8217;re working hard to pretty up cPanel. (Which we&#8217;re both thrilled about since we&#8217;ve each encountered so many shamelessly ugly themes in our past.)</p>
<p>Since we don&#8217;t have the ability to offer subversion hosting, I&#8217;ve moved my repositories to <a href="http://beanstalkapp.com/" target="_blank">Beanstalk</a>, which I couldn&#8217;t be happier with.</p>
<p>Want to know more about BlipBleepBloop packages? You won&#8217;t find any specs or ordering info on our website, so <a href="mailto:info@blipbleepbloop.com" target="_blank">send us an email</a> if you&#8217;re interested. That&#8217;s the idea: small and personal.</p>
]]></content:encoded>
			<wfw:commentRss>http://spontaneousnoise.com/2009/11/goodbye-slicehost-hello-blipbleepbloop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ActionScript 3 Memory Optimization</title>
		<link>http://spontaneousnoise.com/2009/09/actionscript-3-memory-optimization/</link>
		<comments>http://spontaneousnoise.com/2009/09/actionscript-3-memory-optimization/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 17:00:57 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[kiosk]]></category>
		<category><![CDATA[memory]]></category>
		<category><![CDATA[optimization]]></category>

		<guid isPermaLink="false">http://spontaneousnoise.com/2009/09/actionscript-3-memory-optimization/</guid>
		<description><![CDATA[I was recently finishing up a kiosk project wherein a Flash projector would have to run fullscreen 24/7, and was having a terrible time pinpointing a memory leak that left the projector unresponsive after only a few hours. While I was able to improve memory usage, I couldn&#8217;t get the app to stay calm over [...]]]></description>
			<content:encoded><![CDATA[<p>I was recently finishing up a kiosk project wherein a Flash projector would have to run fullscreen 24/7, and was having a terrible time pinpointing a memory leak that left the projector unresponsive after only a few hours. While I was able to improve memory usage, I couldn&#8217;t get the app to stay calm over an extended period. The end result was a workaround that had the projector restart itself after an inactive waiting period.</p>
<p><strong>The Problem</strong><br />I was working with a proprietary AS3 framework that relied on multiple SWFs and XML for configuration and content. The piece involved lots of lossless images (dynamically loaded) and only needed to run as a projector from a Windows machine. It also communicated with an external series of lights via a MAKE Controller board. Initial testing of the app went smoothly, but letting it run overnight turned it into a sluggish memory hog.</p>
<p><strong>Improving Memory Usage<br /></strong>There were a few tips I followed from various sources to streamline the app&#8217;s memory usage. Ultimately they weren&#8217;t enough to solve the big problem, but I watched the numbers drop in Apple&#8217;s Activity Monitor.</p>
<ul>
<li>Remove unused event listeners.</li>
<li>Clear unused display objects by setting each obj = null.</li>
<li>Make sure you&#8217;ve deleted any child display objects with <insert snippet="">.<br /></insert></li>
<li>Stop all Timers to free up the memory that they use. <em>myTimer.stop();<br /></em></li>
</ul>
<p><strong>Final Solution</strong><br />We came to two options: use a third-party product for compiling a more efficient Flash .exe (such as <a href="http://screenweaver.org/doku.php" target="_blank">Screenweaver</a>, <a href="http://www.multidmedia.com/software/zinc/" target="_blank">Zinc</a>, or <a href="http://www.screentime.com/software/mprojector/" target="_blank">MProjector</a>), or create a reliable workaround that would simply restart the kiosk app and avoid the memory leak in the first place. The client needed files delivered quickly and did not have extra budget, so we ended up choosing the latter. We avoided the problem by adding a timer that would restart the Flash piece after 10 minutes of inactivity. (This was done by using FSCommand to call a batch file, since we&#8217;re using windows, immediately closing the Flash app, and having the batch file execute the Flash app again.) This ended up working pretty well and allowed us to deliver everything on time.</p>
<p>There are more discussions about memory optimization with Flash projectors (and Flash in general), but I never found any silver bullets. Here are a handful of links that were helpful:</p>
<p>Similar Issue:<br /><a href="http://blog.joshbuhler.com/2005/04/25/how-long-can-flash-run/">http://blog.joshbuhler.com/2005/04/25/how-long-can-flash-run/</a></p>
<p>Grant Skinner on Resource Management: <a href="http://www.gskinner.com/blog/archives/2006/06/as3_resource_ma.html">http://www.gskinner.com/blog/archives/2006/06/as3resource_ma.html</a></p>
<p>Detecting Memory Leaks in Flash and Flex:<br /><a href="http://www.websector.de/blog/2007/10/01/detecting-memory-leaks-in-flash-or-flex-applications-using-wsmonitor/" target="_blank">http://www.websector.de/blog/2007/10/01/detecting-memory-leaks-in-flash-or-flex-applications-using-wsmonitor/</a></p>
<p>Self-Restarting Projector:<br /><a href="http://www.actionscript.org/forums/showthread.php3?t=195367" target="_blank">http://www.actionscript.org/forums/showthread.php3?t=195367</a</a></p>
<p>Monitor and Restart Crashed Windows Programs:<br /><a href="http://www.knas.se/knas_Restarter.aspx" target="_blank">http://www.knas.se/knasRestarter.aspx</a></p></p>
]]></content:encoded>
			<wfw:commentRss>http://spontaneousnoise.com/2009/09/actionscript-3-memory-optimization/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>HP P1006 and Snow Leopard</title>
		<link>http://spontaneousnoise.com/2009/09/hp1006-and-snow-leopard/</link>
		<comments>http://spontaneousnoise.com/2009/09/hp1006-and-snow-leopard/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 21:12:25 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[drivers]]></category>
		<category><![CDATA[printer]]></category>
		<category><![CDATA[snow leopard]]></category>

		<guid isPermaLink="false">http://spontaneousnoise.com/2009/09/hp1006-and-snow-leopard/</guid>
		<description><![CDATA[
The update to Snow Leopard has been mostly uneventful: zippier performance, minor visual updates (mostly silly), and the destruction of two very important things:

My beloved &#8216;Edit in TextMate&#8217; service, which I use in Safari to edit form contents like ExpressionEngine text inputs.
The use of my printer, the teeny-but-reliable HP P1006 laser printer.

So far, #1 is [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://spontaneousnoise.com/wp-content/uploads/2009/09/Screen_shot_2009-09-22_at_1-thumb.53.00_PM.png" height="405" width="500" /></p>
<p>The update to Snow Leopard has been mostly uneventful: zippier performance, minor visual updates (mostly silly), and the destruction of two very important things:</p>
<ol>
<li>My beloved &#8216;Edit in TextMate&#8217; service, which I use in Safari to edit form contents like ExpressionEngine text inputs.</li>
<li>The use of my printer, the teeny-but-reliable HP P1006 laser printer.</li>
</ol>
<p>So far, #1 is still up in the air, but Apple just released new drivers yesterday for the HP P1006 printer (along with some others).</p>
<p>Get them <a href="http://support.apple.com/downloads/HP_Printer_Drivers_for_Mac_OS_X_v10_6" target="_blank">here</a>!</p>
<p><strong>Update:</strong> It&#8217;s clear that things aren&#8217;t entirely fixed. I can print with the new drivers when the printer is connected to my iMac, but I had to jump through a few hoops to continue printing via the Time Capsule. If you&#8217;re still having trouble, email me or check out this thread: <a href="http://discussions.apple.com/thread.jspa?threadID=2130605" target="_blank">http://discussions.apple.com/thread.jspa?threadID=2130605</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://spontaneousnoise.com/2009/09/hp1006-and-snow-leopard/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
