Eight years ago, local developer Karl von Randow built an application to help him save time in his daily work. Today, his application is being downloaded by thousands every month — across the world.
Some of the world’s biggest software and hardware companies, car and aircraft makers, and military organisations have bought licences.
The application, called Charles, is an HTTP proxy, reverse proxy and monitoring application. Basically, it enables web developers to view HTTP traffic between their computer and the internet — including requests, responses, headers and SSL communication — says von Randow.
The tool can act as a “man-in-the-middle” for HTTP/SSL communication, enabling users to debug the content of HTTPS sessions, he says.
Together with business partner Matthew Buchanan, von Randow runs web design studio Cactuslab, in Auckland.
Von Randow built the first version of Charles in 2000 as a tool to help him in his daily work. He was doing a lot of Adobe Flash development at the time, he says. He had “hacked together” a few ways of finding and solving problems. He was using tcpdump, to look at all the TCP/IP traffic and try to find out from there what was going on with his HTTP stuff, he says.
He worked on the new tool for two years before releasing it to other people. It was never intended to be released to the public, he says. However, when he realised how useful it was to him, he thought it would probably be useful to other developers, too.
Von Randow made the application available as shareware, letting users trial the software for free. Six years later, the application is being downloaded, on average, 5,000 times a month, mainly by Windows users, he says. About 20% are Mac OS users and there are a handful of Linux users.
While von Randow is reluctant to name big users, he says that some of the world’s biggest internet, software and hardware companies, car and aircraft makers, and military organisations have downloaded the application and bought licences.
Last year, 300,000 people, from 195 different countries, visited von Randow’s site. Most of the users are in the US, followed by Iran, the UK, China and Germany.
Charles is especially useful for developers dealing with Flash, he says. But it’s also good for XML development in web browsers, using, for example, AJAX and XMLHTTP. This is mainly because the tool allows users to see the XML that is flowing between the client and the server.
In the process of developing a website, a developer might run into all sorts of problems and figuring out what is causing the problem, and how to fix it, takes up valuable time, says von Randow.
“When something goes wrong, you are often left with a handful of [options] and you have to start eliminating possibilities,” he says.
By looking in Charles, developers are able to see what is happening quite quickly and eliminate possibilities. It can be as easy as realising you are changing the wrong file or uploading the file to the wrong server, says von Randow.
Users can download and use the application for free for 30 days. They are then asked to buy a licence, he says — a single-user licence costs US$50. After 30 days, the application only runs for 30 minutes at a time, hopefully prompting users to buy a licence, says von Randow.
But if users are not using the application often enough to be annoyed by the 30-minute restriction, von Randow doesn’t see the need for them to buy a licence.
A new public beta of the tool has just been released.
Charles’ biggest new feature is Breakpoints, which lets users intercept and even change a request or response before they are sent or received, says von Randow. This could be very useful for developers in the process of developing an application, and especially for testing lots of different cases, he says.
Another new feature is a tool that allows users to browse their live website using files from the development server. Charles-users can choose certain files from their computer to test, for example, images or Flash files with content on the live site.
Most of the feature updates to Charles are the result of requests from users, says von Randow. Whenever he adds a feature that was suggested by a user, he lets that person try out the new addition first — to see if it was what he or she had in mind.
“My philosophy is that if one person encounters a problem, or encounters a feature that they would like to have, more people are going to, too,” he says.