Dec 19

I will not regurgitate what Charles’ website can already tell you. Charles is a great tool. Moreover, let me add some obvious points for people like myself:

  • It runs on OSX and quickly.
  • It is affordable (we are getting licenses here this week)
  • It has TONS of features (especially allowing filtering of anything in URL)
  • It auto-magically acts a HTTP Proxy after reboot when Charles is started on ALL HTTP based applications.

Why you may ask not use Firebug, it’s free!

If you are doing Javascript work and trying to naildown activity on the wire (outside of the browser), you have to rely on a proxy or sniffer, especially if you are testing many browsers at once. The heavyweight option is indeed to use Wireshark on OSX, like I initially did. But this can add complexity when you are under a deadline.

Also, Firebug has soooo many great features I need to use concurrently, having a good proxy monitor allows me to use Firebugs other incredible features in tandem.

Last week I had such deadlines at my paid gig rewriting a .NET 3.5 site into Rails 2.1.2 . I had to (in a hurry) integrate a slew of user/tracking Javascript events that fired off GET requests to an external site. The query string and/or request HAD to include the variables exactly to ensure our internal datawarehouses didn’t get borked. Secondly, integrating the tags had to NOT break existing AJAX functionality surrounding the same buttons and links.

Using Firebug to monitor the happiness of Javascript, investigate the DOM and use the console to query, took up most of the Firebug interface and time. Having Charles running in a separate monitor (with the required URLS filtered) made for much,much quicker development and debugging.

Take a look at this example call (notice the Filter line that has part of the host addres). This GET request was fired when a user click a button. Charles verified the request had all the key/value pairs expected:

Using Charles and Firebug together rounds out Frontend web development, in my case using Rails 2.1.2 and JQuery, and helps keep your velocity up.

Lastly, there are features I have not even explored with Charles. I applaud the guys from Charles for writing such a great tool that saved my week and sanity.

Tagged with: