<?xml version="1.0" encoding="UTF-8"?><!-- generator="WordPress/2.9.2" -->
<rss version="0.92">
<channel>
	<title>Erik A. Hanson</title>
	<link>http://www.eahanson.com</link>
	<description>My weblog</description>
	<lastBuildDate>Fri, 20 Nov 2009 04:29:08 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	
	<item>
		<title>A Ruby Client for Angular</title>
		<description><![CDATA[Here&#8217;s a little Ruby client for storing data in Angular, a system for creating simple database-backed web apps extremely easily. 

#!/usr/bin/ruby

require 'rubygems'
require 'httpclient'
require 'json'

class Angular
  def initialize(username, password, library)
    @http = HTTPClient.new
    @library = library
    post("/login", :email => username, :password => password)
  end

  [...]]]></description>
		<link>http://www.eahanson.com/2009/11/19/a-ruby-client-for-angular/</link>
			</item>
	<item>
		<title>Solutions To Slow Test Suites</title>
		<description><![CDATA[As a proponent of test driven development, I&#8217;m naturally a big fan of writing automated tests. 
Often, clients who are new to writing automated tests start out by writing big integration tests (with tools like Selenium). This is an easy way to start testing an app that wasn&#8217;t written with testability in mind.
Unfortunately, these sorts [...]]]></description>
		<link>http://www.eahanson.com/2009/06/05/solutions-to-slow-test-suites/</link>
			</item>
	<item>
		<title>Running Jasmine Tests Through Jaxer</title>
		<description><![CDATA[Jasmine? Jaxer?
Jasmine is a new Javascript testing framework from my pals at Pivotal Labs. 
Jaxer is an Apache module that wraps Firefox&#8217;s Javascript and rendering engine, providing a server-side Javascript environment that&#8217;s fast and compatible with any JS that works in Firefox (including all kinds of DOM manipulation and libraries like Prototype, jQuery, etc.).
Running Jasmine [...]]]></description>
		<link>http://www.eahanson.com/2009/06/04/running-jasmine-tests-through-jaxer/</link>
			</item>
	<item>
		<title>Testing File Uploads To A Rack Server</title>
		<description><![CDATA[I wrote a web app on top of Rack that includes the ability to accept file uploads. It took some time to figure out how to successfully test the file upload using Rack::Test. 
The trick was to encode the file exactly correctly, and then post it with the correct headers. I wrote a simple post_file [...]]]></description>
		<link>http://www.eahanson.com/2009/03/28/testing-file-uploads-to-a-rack-server/</link>
			</item>
	<item>
		<title>AppleScripts for Creating Podcast Playlists in iTunes</title>
		<description><![CDATA[I have a 2nd generation iPod Shuffle that I use with the super-awesome Arriva iPod headphones:


I love these headphones because I can wear them at the gym without having to deal with wires. I actually bought the shuffle because of these headphones. At the gym, I like to start out by listening to a few [...]]]></description>
		<link>http://www.eahanson.com/2009/03/16/applescripts-for-creating-podcast-playlists-in-itunes/</link>
			</item>
	<item>
		<title>A Bookmarklet To Reload A Page&#8217;s CSS</title>
		<description><![CDATA[Sometimes when I&#8217;m developing, I want to change some stylesheets and reload them without reloading the whole page. Often, I use Firebug or the Safari Web Inspector to play with individual attributes, but sometimes I have to edit the CSS files.
So I wrote a bookmarklet to reload the files. Here it is:
reload CSS
(Just drag that [...]]]></description>
		<link>http://www.eahanson.com/2009/02/28/a-bookmarklet-to-reload-a-pages-css/</link>
			</item>
	<item>
		<title>Introducing JS Dev Tools</title>
		<description><![CDATA[
I created a site called JS Dev Tools (jsdevtools.com) to keep track of useful Javascript development tools and libraries.
Check out the site, subscribe to the feed, and suggest your favorite tools and libraries.
]]></description>
		<link>http://www.eahanson.com/2009/02/28/introducing-js-dev-tools/</link>
			</item>
	<item>
		<title>WordPress 2.7 Theme Development on Mac OS X 10.5 (Leopard)</title>
		<description><![CDATA[I wanted to create/edit a WordPress theme on my local computer, so I had to install WordPress. It wasn&#8217;t quite as straightforward as I would have hoped. Here are some instructions:
MySQL
I had already downloaded and installed MySQL, so I didn&#8217;t have to do anything. If I remember, installing MySQL was straightforward.
Apache
Apache comes pre-installed on Mac [...]]]></description>
		<link>http://www.eahanson.com/2008/12/17/wordpress-27-theme-development-on-mac-os-x-105-leopard/</link>
			</item>
	<item>
		<title>Relative dates in Javascript</title>
		<description><![CDATA[A while ago, I posted some Javascript code that produces a nice relative date string (e.g., &#8220;4 days ago&#8221; or &#8220;18 minutes ago&#8221;) given two dates.
I looked at the code again and noticed that it was pretty long and needlessly required Prototype. So I cleaned it up a bit:

/**
 * Simple relative date.
 *
 * [...]]]></description>
		<link>http://www.eahanson.com/2008/12/04/relative-dates-in-javascript/</link>
			</item>
	<item>
		<title>New Test Runner for JsUnit</title>
		<description><![CDATA[Christian Williams created a new test runner for JsUnit. More info here.
]]></description>
		<link>http://www.eahanson.com/2008/05/18/new-test-runner-for-jsunit/</link>
			</item>
	<item>
		<title>A Rake Task to Concatenate and Compress Javascript Files</title>
		<description><![CDATA[A while ago, I wrote about a Ruby script to concatenate and compress Javascript files for my wshlst application. I&#8217;ve changed things around a bit since that article, so I thought it was time for an update.
Background
wshlst uses a lot of Javascript. When developing, I want to have all of my JS files listed in [...]]]></description>
		<link>http://www.eahanson.com/2008/03/02/a-rake-task-to-concatenate-and-compress-javascript-files/</link>
			</item>
	<item>
		<title>Firing mouse events in tests</title>
		<description><![CDATA[The Bad News
Sending mouse events such as click and mouseover in JsUnit tests can be really hard.
More Bad News
Prototype doesn&#8217;t make it any easier. Sam Stephenson says:

We would very much like to support it in the future.  It&#8217;s fairly complicated to implement native event firing across all supported browsers, so in 1.6.0, fire works [...]]]></description>
		<link>http://www.eahanson.com/2008/01/01/firing-mouse-events-in-tests/</link>
			</item>
	<item>
		<title>My time zone solution: RelativeDate.js and ServerTime.js</title>
		<description><![CDATA[For my wshlst.com project, I needed to show when each item or comment was created or edited. My initial implementation was to just show the time and date of the change, but people who aren&#8217;t in the same time zone as my server didn&#8217;t like the fact that it showed a different time zone.
I contemplated [...]]]></description>
		<link>http://www.eahanson.com/2007/10/31/my-time-zone-solution-relativedatejs-and-servertimejs/</link>
			</item>
	<item>
		<title>wshlst.com: A Webapp With A Pure-Javascript UI</title>
		<description><![CDATA[I created a little wish list website called wshlst.com for my family to use. (Read more about it here.) I worked on it a little bit before Christmas last year, and a little bit again this year.
It&#8217;s been a lot of fun to write, and one reason is that the entire UI is written in [...]]]></description>
		<link>http://www.eahanson.com/2007/10/25/wshlstcom-a-webapp-with-a-pure-javascript-ui/</link>
			</item>
	<item>
		<title>Introducing wshlst.com</title>
		<description><![CDATA[wshlst.com is a wish list website I created for my family to use. 
It differs from other wish list sites in a few ways: it&#8217;s group-oriented, it allows people to add items to other peoples&#8217; wish lists (secretly, if desired), and it allows people to discuss wish list items (again, secretly, if desired). The result [...]]]></description>
		<link>http://www.eahanson.com/2007/10/24/wshlstcom/</link>
			</item>
	<item>
		<title>A Ruby Script to Concatenate and Compress Javascript Files</title>
		<description><![CDATA[I&#8217;ve got an HTML page that includes a bunch of Javascript files, which makes development easy but which hurts performance in production.
The standard solution is to concatenate all the Javascript files into one big file and then compress it. I wanted it to be automated of course, and I wanted to do it at deploy-time, [...]]]></description>
		<link>http://www.eahanson.com/2007/10/16/a-ruby-script-to-concatenate-and-compress-javascript-files/</link>
			</item>
	<item>
		<title>Big New Feature In JsUnit 2.2 alpha 25</title>
		<description><![CDATA[In order to run all test functions in a test page, JsUnit naturally needs to know what those test functions are. It's able to get a list of those functions from Firefox, Safari and Opera, but it's not able to get them from Internet Explorer. So in IE, JsUnit has to resort to searching the text of all scripts for strings that look like test function names. Unfortunately, it doesn't understand comments so commented-out test functions will end up running anyway. ]]></description>
		<link>http://www.eahanson.com/2007/08/13/big-new-feature-in-jsunit-22-alpha-25/</link>
			</item>
	<item>
		<title>An AppleScript to Clean Up My Downloads Folder</title>
		<description><![CDATA[My downloads folder always gets so full after a while that I have a hard time finding things. I like to keep stuff around for a little while in case I need it again, and if I have the space, I like to keep things around for a long time, just in case. So I wrote a simple AppleScript to move old files to an "Old" subdirectory.]]></description>
		<link>http://www.eahanson.com/2007/08/11/an-applescript-to-clean-up-my-downloads-folder/</link>
			</item>
	<item>
		<title>Minor New Features In JsUnit 2.2alpha24</title>
		<description><![CDATA[I added a few new features to JsUnit and tagged it as version 2.2 alpha 24: new log button, new URL parameters, and easier suite creation.]]></description>
		<link>http://www.eahanson.com/2007/08/09/minor-new-features-in-jsunit-22alpha24/</link>
			</item>
	<item>
		<title>A Ruby Script To Generate a JsUnit Suite</title>
		<description><![CDATA[I've got a bunch of JsUnit tests for a project I'm working on and I wanted an easy way to create a JsUnit suite that can run all the tests but also run any individual test page. Also, I wanted to be able to view any test page so I could debug the tests with Firebug. I also didn't want to run a web server all the time, so I wanted a script that would create a static HTML file.]]></description>
		<link>http://www.eahanson.com/2007/05/26/a-ruby-script-to-generate-a-jsunit-suite/</link>
			</item>
	<item>
		<title>Element.stylize via Prototype.js</title>
		<description><![CDATA[I often want to add a bunch of styles to an element, so I wrote a simple stylize method.]]></description>
		<link>http://www.eahanson.com/2007/05/25/elementstylize-via-prototypejs/</link>
			</item>
	<item>
		<title>Installing termios gem on Mac OS X</title>
		<description><![CDATA[When installing Capistrano, you should install the termios gem so that your password isn't echoed when you type it. Easier said than done.]]></description>
		<link>http://www.eahanson.com/2007/02/03/installing-termios-gem-on-mac-os-x/</link>
			</item>
	<item>
		<title>Free Website Monitoring</title>
		<description><![CDATA[I was looking around for a good website monitoring service or script, and I found Montastic which is a free website monitoring service.]]></description>
		<link>http://www.eahanson.com/2007/01/14/free-website-monitoring/</link>
			</item>
	<item>
		<title>Debugging a JsUnit Test With Firebug</title>
		<description><![CDATA[Sometimes I find that I want to debug a JsUnit test because I'm not quite sure what's going on in the browser. FireBug has a nice debugger, but I couldn't get it to work with the JsUnit test runner. I could set breakpoints in JsUnit itself, but any breakpoints in my test would be ignored. And then it hit me: ditch the test runner.]]></description>
		<link>http://www.eahanson.com/2006/11/16/debugging-a-jsunit-test-with-firebug/</link>
			</item>
	<item>
		<title>A Bold Prompt in Bash</title>
		<description><![CDATA[I wanted my Bash prompt to be bold and red so I could find my one line of input amongst the million lines of output in my terminal. I'm no Unix nerd, so I don't really know offhand where to look for this info. After a bunch of Googling, I found something that works for me.]]></description>
		<link>http://www.eahanson.com/2006/02/12/a-bold-prompt-in-bash/</link>
			</item>
	<item>
		<title>Join Tables with Attributes in Rails</title>
		<description><![CDATA[I had a little trouble today with join tables that contain attributes.]]></description>
		<link>http://www.eahanson.com/2006/02/12/join-tables-with-attributes-in-rails/</link>
			</item>
	<item>
		<title>Setting XSL Parameters from Javascript in AJAXSLT</title>
		<description><![CDATA[Recently, I was trying to pass some info from my Javascript into my XSL stylesheet. Here's how I finally did it.]]></description>
		<link>http://www.eahanson.com/2005/10/23/setting-xsl-parameters-from-javascript-in-ajaxslt/</link>
			</item>
	<item>
		<title>A Mac OS X Web Browser for JavaScript Testing</title>
		<description><![CDATA[I was playing with a very JavaScript-heavy web page and wanted my automated tests to use a real web browser. I tried running them inside Safari, but it's a bit annoying to have my tests take control of my browser. Plus, there were caching issues. So I wrote a very simple web browser.]]></description>
		<link>http://www.eahanson.com/2005/10/02/writing-a-mac-os-x-web-browser-for-javascript-testing/</link>
			</item>
	<item>
		<title>How To Use Google&#8217;s Ajaxslt Library</title>
		<description><![CDATA[Google has written an open-source library called Ajaxslt that implements XPath and XSLT in Javascript. It took a bit of playing to get it to work.]]></description>
		<link>http://www.eahanson.com/2005/09/30/how-to-use-googles-ajaxslt-library/</link>
			</item>
	<item>
		<title>Writing a Ruby Test Suite that RDT and Test::Unit Can Understand</title>
		<description><![CDATA[I'm working on a Ruby project using Eclipse and RDT. RDT provides a couple useful features, including support for running unit tests with Test::Unit. Unfortunately, it's pretty primitive at the moment. One big problem is that it can't run all your tests. So we wrote a test suite class that runs all tests and can be run from Test::Unit:.]]></description>
		<link>http://www.eahanson.com/2005/09/20/writing-a-ruby-test-suite-that-rdt-and-testunit-can-understand/</link>
			</item>
	<item>
		<title>Installing Ruby on Rails on Mac OS X 10.4 (Tiger)</title>
		<description><![CDATA[I had a hell of a time getting Ruby on Rails to work on Mac OS X 10.4 (Tiger). Here's what ended up working for me.]]></description>
		<link>http://www.eahanson.com/2005/09/07/instaling-ruby-on-rails-on-mac-os-x-104-tiger/</link>
			</item>
</channel>
</rss>
