Letter to an alpha tester...

Subscribe to Letter to an alpha tester... 1 post, 1 voice

Avatar Morgan Schweers Administrator 1,204 post(s)

An alpha tester wrote me to complain about the increased size, and UI change as well as report some bugs. They then asked for JBidwatcher to do nothing but snipe. They emphasized that they didn’t want the app to become bloated.

I felt my response was something everyone should be able to read.

I can understand your concern, and empathize. I was pretty strongly for keeping JBidwatcher small, in general, but there are things that I wanted to do, that I either had to have people download complex additional sets of libraries, or I had to bundle them all in with JBidwatcher. Since I’m all about keeping things simpler for users, I bundled them in, and the program appeared to grow much larger.

Specifically, one of the things that takes the most memory in the new JBidwatcher is the database system. JBidwatcher used to keep all the auctions it was monitoring internally in memory. This seriously limited the number of auctions JBidwatcher could keep around, and monitor, and ended up behaving badly with respect to memory on some systems. In order to break that limit, I needed to have a data store backing JBidwatcher. I’m still working on getting that right, but it adds a good bit to the size of the app, right there.

The other major modification is scripting, and that’s also a personal thing. I’ve wanted the app to be scriptable for some time, and the only language I was happy including was JRuby, since I program in Ruby regularly. This also added considerable size to the app, although it’s all really in the libraries that ship with it.

In response to some comments about ‘a new skin for auctions’.

If you’re referring to the mild UI revamp of JBidwatcher, I mainly felt that JBidwatcher’s old icons prevented some users from considering it well integrated into their platform. (I believe the phrase ‘ugly as sin’ has been bandied about.) While JBidwatcher will never be beautiful (I’m just not that skilled at UI design), a tool doesn’t have to be ugly to be useful.

Now, JBidwatcher 2.0 is definitely still in alpha. I emphasized the increased size in my first ‘try the alpha’ email. The start-up time is reduced for larger saved auction sets (after the first time of starting up, when it’s copying them to the new storage format), but for smaller numbers of auctions, it’s probably slower.

I appreciate your worries, and in many ways they mirror what I’m trying to do with the internals of JBidwatcher. For instance, I’m trying to improve JBidwatcher’s memory use by allowing it to store data it doesn’t immediately need on disk. (Especially useful for large ‘completed’ auction collections.)

I try very hard to keep the feature set relatively simple, but what you consider a useless feature, others may consider critical, or game altering. For example, multisniping was a complexification of the interface and the application, but it makes a large difference to many people.

The old saw is that ‘Any given user only uses 10% of the features, but every user uses a different 10%’. I’m not going to put a browser, or any of a number of other complex things into JBidwatcher, but I do want the application to be more flexible than it was, because I can use that flexibility to keep development on it fresh and interesting.

Honestly, in the end, it’s really about me having fun with it. :) Adding scripting and database backing, and some of the other features I’m working on, are all about keeping me interested in the project, keeping the code current, and keeping the project something that I can continue to improve well into the future.

I understand that you like the 1.0.3pre2 app, but you have to understand that I cringe every time I have to work on that code. It’s terrible. The new code base isn’t a work of art by any means, but it’s much better factored, and I don’t hate the project when I’m working in it.

So I’d really like your help. I like the bug list you’ve given me. This is why I hold alpha releases, to hash out issues like this. I need the help of users to make the program better.

Alpha (and beta!) mean buggy. It means unfinished, no matter what Google and Web 2.0 have led you to believe. My hope is that the framework I’ve built with JBidwatcher 2.0 will be able to stabilize better than the 1.0 series did. My hope is that it’ll be easier to read, work on, understand, and be extended, both by me and anyone else that wants to. My hope is that it’ll keep me interested in the project for another good 8 years.

I wish you the best of luck with your auctions, whatever version you choose to use.

— Morgan Schweers, CyberFOX!