Charles 3.0 public beta release 3

March 18th, 2007

Hello again. There are a few more improvements to Charles 3.0 to report. These are mostly tidying up work and a few important bug fixes…

The changes include:

  • The General tab has had a restructure. The multi-request General table in particular was getting very complex with mins, means, maxes, totals etc, so I’ve reorganised it into a tree. There are also a few new fields in there such as Requests per Second and compression percentages, and display of other items has been improved such as Exceptions (programmer) renamed to Failures (user).
  • Tree displays simplified graphically. Tree displays are sprinkled throughout Charles; the most famous being the Structure view. While the icons in the tree are important in the Structure view, I felt that they were superfluous on some of the other displays and in fact were just visual noise that distracted from the actual information! So in various places where there were folder and document icons in tree displays, they are now gone.
  • Advanced repeat now has a rudimentary dialog box for configuration rather than two message boxes in succession. It now also has an option to show the repeated results in a new session. This is important as it lets you separate your performance testing from your normal recording.
  • Expand All / Collapse All. You can now expand and collapse all the child nodes in most tree displays. Thanks to John Ballinger for the suggestion.

The bug fixes include:

  • Throttling by Selected Hosts had a bug in the wildcard matching. Thanks to Brian Morearty for the bug report.
  • IE unicode urlencoding creates %unnnn escapes that caused a parsing error. Thanks to Trevor Hart for the bug report.

The version number if actually 3.0b10 to reflect a few different iterations I’ve been through testing with some users. Download Charles 3.0 beta

MidpSSH development version 1.7.0 released

March 18th, 2007

We begin the ongoing development of MidpSSH with a few small steps. This release includes the following fixes and changes:

  • Fix the radio button bug on the Blackberry Pearl that prevented Pearl users from changing font sizes, or from SSH to Telnet etc.
  • Settings forms no longer have an OK and Back option, they just have a back option. Reducing the number of options improves the UI on some device (you don’t have to activate a menu to choose OK or Back, there is just a Back option), and simplifies the usability. The only downside is that you can no longer cancel your changes, however I hope that none of the forms are major enough to make that a problem
  • Support software upgrades including:
    • Proguard upgrade from 3.3.2 to 3.8
    • Antenna upgrade from 0.9.13 to 0.9.14
    • Upgrade to WTK2.5
    • BlackBerry JDE upgrade to 4.2.0

You can download the latest development version from the usual places. Please try it out and post feedback; especially Blackberry Pearl users.

Unresolved problems on the Blackberry include trying to make the trackball “click” activate the default action, rather than bringing up a menu. I’ve looked around at this and haven’t found a solution. It seems like just the continuing second-class-citizen status of MIDP applications on Blackberry!

Charles 3.0 public beta 2

March 14th, 2007

Thank you to everyone who has posted and emailed feedback. I’ve just uploaded a new beta version that includes a few fixes and some small new features.

The fixes and small changes include:

  • Map Local tool now closes files correctly (thanks to Martin for reporting this issue)
  • Statistics for multiple requests now include more information to backup the Repeat Advanced feature
  • Save All now only saves responses with a 2XX status code, so you don’t save empty files for 404s etc
  • Rewrite tool could cause loading of 304 responses to hang

The new feature is an enhanced SWF viewer that now reports font information for SWFs. Expect to see more here in the future…

I didn’t mention in the previous release announcement, but the Save and Copy To Clipboard features in Charles has been expanded. Save is now available for request and response, if appropriate. Copy To Clipboard has been added for requests and responses, and will now copy images as images - so you can paste straight into other software.

Download

Charles 3.0 public beta

March 10th, 2007

I’m excited to announce the availability of Charles 3.0 public beta!

3.0 adds a number of major new features and enhancements worthy of an increase in major version number. As always, if you’re a registered user your license continues to be valid for this and every future release of Charles.

The important new features are:

  • Editing and repeating of requests, including query strings, forms and AMF
  • Chart view
  • Application icon improved, especially on Windows
  • Repeat function can now repeat multiple requests, including iterations and concurrency
  • Local mapping tool to use local files as if they are part of a website
  • Mapping tool to map parts of one website into another
  • and many other enhancements and bug fixes

Editing and repeating requests was an often requested feature; allowing you to edit the query parameters, headers and contents of a request, and repeat it against the server. This is an extension of the Repeat function added in Charles v2.5. At the moment the editing capability includes headers, query strings, forms and Flash Remoting / AMF. I’m particularly excited about the AMF editing; you can change method parameters and re-execute your AMF request against your server all within Charles.

The Chart view is a graphical representation of the existing Summary tab. It visualises the loading timeline of the resources associated with a page, or all of the resources under a path or on a site. It makes clear the sequence in which resources are loaded, which are loaded in parallel or in series and what’s making your page take so long to load.

The mapping tools help you during the development of website. They primarily exist to help avoid the upload-and-test pattern that we sometimes have to follow. Using Map Local you can now attach a local directory to a URL, and when Charles sees a request for that site it will first check if it has the file locally. This is transparent to your browser so it behaves as if the file was loaded from the remote website as usual. This should be especially useful for people testing CSS, image and SWF changes: you can test your changes as if they were on the live site, before you put them live. Map local can map entire sites, certain paths within sites or even specific file types (eg. *.swf).

The Map tool works like the Map Local tool except it maps one website into another. Because Map Local only works with static files, Map is the other half of the solution. If you’ve got a development server back-end that you’d like to test as if it was on the live site, you can use the Map tool to accomplish that. Mapping like this was already possible using the Rewrite tool, however this makes it easier and quicker to setup.

So, please download the beta and send me feedback - especially bugs and especially any regressions!

Download Charles 3.0 public beta

Charles v2.6.4 released

February 27th, 2007

This is another minor bug fix release. The bugs included IBM JDK compatibility, improved malformed Referer header handling and compatibility improvements with some web servers. This update is recommended for everyone.

Download v2.6.4

Hopefully the next release will be version 2.7 in beta form. I’ll be announcing some of the new features here in the next few days and a beta download will be available to anyone who would like to try it.

Plans for MidpSSH

February 27th, 2007

The next major features on the horizon for MidpSSH revolve around improving the security of the application.

The first is password protection of the application itself; to prevent anyone else from using it to connect to your servers. Currently you are encouraged to store your username and password in MidpSSH as it is so hard to type reasonable passwords on a phone keyboard! Also if you’re using public-key authentication then anyone can use your key to access your servers. Password protecting MidpSSH will prevent anyone accessing it without your password and will also encrypt your configuration data (including session information and keys) so that people can’t gain access to it either.

Secondly the HTTP proxy solution will be improved and documented properly. Finally I have had feedback from Aleksy Schubert of Warsaw University regarding some improvements that can be made to the implementation of SSH in MidpSSH to make it more robust.

I’ll announce testing releases and further news here.

MidpSSH stable version 1.6.0 released

February 27th, 2007

After over a year as the development version, and off-and-on development, I have released version 1.6.0 of MidpSSH. This is functionally identical to the last development version 1.5.7.

The major features are Keyboard Interactive authentication and an HTTP proxy solution for people behind telco firewalls.

If you don’t know about MidpSSH, it is an SSH client for use on Java enabled mobile devices such as cell phones. If you use SSH then MidpSSH could save you a trip to a computer if you’re in a bind.

Charles v2.6.3 released

February 17th, 2007

This is a minor bug fix release for the 2.6.2 release of two weeks ago. Version 2.6.3 corrects problems with the Port Forwarding tool introduced in the previous release. Thank you to Grant Wilson for detecting the bug and for testing the fix.

Baa Camp / Foo Camp

February 12th, 2007

On the weekend of the 3rd and 4th of February I attended Baa Camp (the New Zealand Foo Camp) in Warkworth, an hour north of Auckland. From the website:

New Zealand Foo Camp (aka Baa Camp) is a private gathering of around 150 people from New Zealand, Australia, and the world. Invitees are doing interesting work in fields such as web applications, open source programming, wireless, web services, data visualization and search, geolocation, and all manner of emerging technologies, and are invited to network, share their works in progress, show off the latest tech toys and hardware hacks, and tackle challenging problems together.

It was a very interesting and enjoyable weekend. A big thanks to Nathan Torkington for organising it. Highlights included showing off my appalling frisbee skills, meeting Allan Odgaard of TextMate fame, showing off my appalling Wii bowling skills, and meeting and playing Werewolf with three Charles users; one of whom works just around the corner from my office.

Throttling, MTU and fragmentation

February 12th, 2007

In December last year Rich Riendeau reported excessive packet fragmentation from the throttling implementation in Charles v2.6.1. While the simulation of the bandwidth was accurate, it didn’t necessarily reflect the structure of the packets as they would actually exist on the network in a bandwidth limited situation.

Packets are usually be sent out onto the network in fragments equal to the MTU, however Charles tried to share the throttled bandwidth between multiple connections by allowing data through in chunks of approximately 1/10 of the available bandwidth. Therefore depending upon your throttling configuration, and the number of concurrent connections, Charles could produce more packet fragments than would be expected. So as of Charles v2.6.2 the throttling system has been tweaked to use MTU-size packets.

As a consequence of this there is an MTU setting as part of the throttling configuration. On a broadband connection (and on any Ethernet network) the MTU is often 1500 bytes, however on a modem or PPP connection the MTU is 576 bytes and packets must be fragmented to fit. Charles now has the capability to simulate the MTU differences on different types of connections and thus effect the appropriate realistic fragmentation.

Looking to the future: a feature that has been requested a few times is random throttling to simulate variable Internet conditions. I’ve spoken to several people about it and I think that its time may be near! If you’ve got any thoughts about it I’d be pleased to hear them.