Posts categorized “FogBugz”.

FogBugz Ecology Wiki

Just a quick note about the FogBugz Ecology Wiki page that I got started over on the Fog Creek support website.

Michael Pryor asked whether I’d fancy getting a community wiki page up and running which pulls together links and descriptions of all the scripts, demo source and third party applications that work with FogBugz. I jumped at the chance.

It’s very much a skeleton page at the moment, but I expect it’ll quickly fill out once people start publishing more and more examples and applications that work with the FogBugz API. I predict that the new API in FogBugz 6.0 is going to have a very positive effect on the FogBugz ecology.

I’ll be keeping an eye out for any new scripts, example source code snippets and applications that work with FogBugz and adding them to the wiki, but I hope others will too.

CaseDetective 1.3.2 for FogBugz released

A new version of CaseDetective for FogBugz hit the ‘net last night, just a little bug fix release.

First bug: In very rare cases switching the graph to show Release or Priority could cause a crash with a “NilObjectException”, this slippery little sucker has now been squashed.

Second bug: If you change your password within FogBugz 6.0, or are using a new account created in FogBugz 6.0, the password will be encrypted and stored in a new format, this new format is now supported by CaseDetective.

FogBugz 6.0 introduced a new password format, and I didn’t know about it until a customer got a dialogue about the unsupported password format (sure am glad I coded that up).

It must be noted that this doesn’t mean CaseDetective 1.3.2 fully supports FogBugz 6.0, it doesn’t. What it does mean is that the “classic” filters you created in FogBugz 4 & 5 will still work, and any new ones you create this way too, but the new “search” style filters will not work. The new search axis style filters will be supported in CaseDetective 2.0 and CaseDetective On Demand when they are released, hopefully by early 2008.

The inbuilt buy mechanism has also been given a little love, so you can now buy CaseDetective for just $69 from within the trail version to be instantly upgraded from both the Windows and Mac OS X versions.

As always, CaseDetective for FogBugz can be downloaded from http://www.casedetective.com/ for both Windows and Mac OS X.

How's it going with this Flex stuff?

I think it’s sometimes a good idea to conduct a thorough hard-hitting interview with yourself about a subject to fully explore said subject. There now follows an interview between you (U) and me (I), where I pose and answer the questions I think you might ask of me, and I’m not going to hold anything back…

U: A little while ago you talked about redeveloping CaseDetective with Adobe Flex, is that still happening?
I:
Sure is.

U: Great! How are you finding Flex then?
I:
I’m loving it.

U: Care to expand on that, it’s not going to be a great interview if you don’t give me proper answers!
I:
Oh, OK then, sorry.

I’m really enjoying developing with Adobe Flex, it’s name is very apt, the flexibility you have while developing is fantastic. Just being able to drag and drop a number of controls in Flex Builder’s great looking design view, and then switch to source view to add a few extra details is wonderful. The xml like nature of the mxml format makes this a breeze, especially with Flex Builder’s code hints and completion.

ActionScript (Flash Player’s and therefore Flex’s scripting language) is very clean and familiar, being based on the ECMAScript language specification. Anyone with even a smattering of experience in Java or any other modern object orientated language will get on famously with ActionScript. It’s deeply object orientated, it’s amazing what you can do with it, especially as the Flex and Flash libraries are pretty solid, and easy to extend.

U: It looks as though Flex Builder 3 is coming on strong, have you looked at it?
I:
I switched to using Flex Builder 3 beta 1 a couple of months ago!

U: Isn’t that a bit risky, developing on a non-released development platform?
I:
Some might think so, but in this case it works for me.

I started off with Flex Builder 2, bought it (and lot more from Adobe), and it does the job. However, when I saw some of the great new features in Flex Builder 3 I had to take a look.

I spent a good few weeks continuing main development in Flex Builder 2, and then checking out to Flex Builder 3 to see how it handled it. I had no problems at all.

When I played with the new AdvancedDataGrid I knew I couldn’t stay on Flex Builder 2, I wanted the multi-column sorting and grouping functionality the AdvancedDataGrid has to offer.

When I had good long think about it, I realised that I’m not planning to release CaseDetective 2.0 until early next year, which coincides quite nicely with the planned release schedule of Flex Builder 3. So for me it’s a strategically positive plan to develop with the better functionality available in the beta releases and submit any problems to the Flex Builder team, than to carry on using a version that doesn’t give me all of the whiz-bang features I want and that I’d want to upgrade around the time of CaseDetective’s release anyway. Better for me to get ahead of the game and be familiar with the new version of Flex Builder and the Flex SDK than to have to catch up later.

U: You mentioned the AdvancedDataGrid as a feature you’re really enjoying in Flex Builder 3, anything else you’re liking?
I:
The other Flex Builder 3 features that I’m totally and utterly in love with are “Mark Occurrences” and Code Refactor support.

Mark Occurrences highlights every occurrence of a class, function, variable etc that matches the one your cursor is currently on. It’s sounds like a very simple feature, but believe me it’s a really intelligent and very useful one. When your cursor is on a variable name for example, every usage of the variable is highlighted in a nice blue colour, and in the right hand gutter is a little blue block that shows where the occurrences are across the whole file. If you click on one of those gutter blocks the code window moves to show it, which is great for quickly navigating from the declaration to the use of a variable etc. It’s hard to explain, but it works very well and has really sped up navigating source files when editing. What’s particularly nice is that it understands scope, so it knows that the same variable name declared in multiple functions is not the same variable.

The new Refactor contextual menu is very handy when you’re zipping along with development and find you could have named that class, function, variable etc better. Pick refractor -> rename, give it a new name, select Preview to see all the places that it’ll get updated, from the declaration to all the uses, hit OK and the jobs done. Wonderful, saved me a barrel load of time, and what’s more removes all reasons for keeping a rubbish name, making code much easier to read.

Flex Builder 3 Beta 2 was released just a few days ago, and having those two features has made this week one of my most productive and committed development weeks for a long time!

U: Thanks for giving us the time for this interview Ian, much appreciated.
I:
You’re welcome, enjoyed it.

Neat FogBugz In Depth Movie.

Here’s a quick link to the “FogBugz In Depth Movie“, which is an entertaining run through of the new stuff in FogBugz 6.0, and re-enforces some of the reasons FogBugz works the way it does.

Well worth a look if you’re thinking about trying FogBugz, or even if you’re an existing user.

Quick FogBugz Tip: Activating Community Users

If you decide to activate the community users functionality in FogBugz 6.0 so that people can create an account that keeps proper track of your discussion groups, don’t forget to actually allow registration!

To make sure community user accounts can be registered, go to Settings > Site from the top right menu, and then select the Authentication tab.

Make sure the New User Control drop down is set to “Anybody can create a community account”, and the Community Users feature is on.

FogBugzCommunityUsers.jpg

Once you click the OK button you’ll have a little “Register” link in the top right of your FogBugz page when it’s visited by someone who’s not logged on.

I missed that “Anybody can create a community account” step first time round, so thought I’d share it.

FogBugz 6.0 for Windows released.

Excellent news, FogBugz 6.0 for Windows has been released.

It’s no secret that I and many others have been using the betas for some months now, and boy am I happy with this release!

There’s a tonne of cool new shiny things to play with in this new release, you should definitely check out the What’s New page.

My favourite new features and improvements?

1) Super Duper API!
It may be the penultimate item in the list of new features on Fog Creek’s list, but it’s number one on mine! I don’t have to duplicate all the search/filter functionality of FogBugz in CaseDetective any more. Woohoo!

2) Super Duper Search!
The search and filter mechanism has been totally overhauled, you can now search by many different axis, in any combination, and then search within the results of a filter. This feature is going to make a lot of existing FogBugz users incredibly happy.

3) Resolve and Close.
It may not sound like much, but being able to resolve and close a case I opened with the press one button is going to save me countless hours.

There are so many other great features introduced and improved in FogBugz 6.0, such as the Wiki functionality, Evidence-Based Scheduling, automated timesheets, community users and many more.

It really is a stonkingly good release, my hat goes off to Fog Creek for delivering such a great product in FogBugz 6.0.

So, now I have to work like crazy to get CaseDetective 2.0 out the door. Thanks a bunch Fog Creek! ;-)

Switched to FogBugz On Demand / Workaround for changed scoutSubmit URL.

At the end of last week I created a brand new (free) FogBugz On Demand account, extracted my existing FogBugz MySQL database with mysqldump, and submitted it to Fog Creek to get it loaded up into my new account.

It took a few days before my new account was fully loaded, it seams Fog Creek have a little back log of uploads to do, obviously FogBugz On Demand has proven popular.

All is fine and dandy now, my support email is getting pulled into FogBugz On Demand directly from the POP3 account on my domain host (there was a little blip with the first couple of emails not being deleted from the POP3 server at first, but since then it’s worked flawlessly), and I can access my cases and get notifications with no problems.

However, there is one little gotcha, ScoutSubmit, the mechanism used by my applications (see RBScoutSubmit) for submitting crash data directly into FogBugz.

You see, my applications used to send their scoutSubmit data to my Mac OS X server sitting in my office at home, via a domain called support.imijsoft.com that I setup at my domain host to point back to my ADSL static IP address. This worked fine, occaisionally my ADSL would go down, so for an hour or two I might not get any crash data, but seeing as I can go weeks, if not months without a crash being reported, that wasn’t a big deal.

So, to make the switch seamless, I figured all I had to do was point support.imijsoft.com to the my new FogBugz On Demand domain via a CNAME alias, and I’d be home and dry.

How wrong could I be!

First, my old FogBugz server was at support.imijsoft.com/fogbugz/, and the new FogBugz On Demand server doesn’t have a /fogbugz/ path, oops!

Second, even once I had the new CNAME directive in place, when I accessed support.imijsoft.com FogBugz On Demand complained about there not being an account setup for support.imijsoft.com, oops again!

I contacted Fog Creek support to see if there was any way round the domain name not being a valid account issue, seems they are aware of it, and would love to be able to do something about it, and with a little work could probably get something in place, but there’s one big problem, SSL certificates. Currently, all FogBugz On Demand accounts are served up via HTTPS, as you would expect, and all are covered by the fogbugz.com certificate. Getting something in place that allowed other domain names to be used instead, with valid SSL certificates, that’s gonna be a nightmare, if it could be done.

The only option therefore would seem to be to change all my code to point to the new FogBugz On Demand URL, or switch back to using my own server.

I’m getting rid of my server soon (I’ll talk about that in a future post), so switching back is not an option.

I don’t want to change my code and release new versions of my applications to point to my new FogBugz On Demand account either, not only because I would then have to change and release new versions again if I decide FogBugz On Demand really isn’t for me (unlikely), but also because there are numerous versions of my applications already “out there” using the old support.imijsoft.com/fogbugz/scoutSubmit.php url.

So, the first (should that be second?) solution I came up with was to setup my support.imijsoft.com domain as a proper website on my domain host, and use a rewrite rule in a .htaccess file to proxy the requests through to FogBugz On Demand. This almost worked, I could get it working while accessing the website myself, but submitting data (using POST rather than GET) to scoutSubmit.php didn’t work, even with the rules taking into considderation the switch to ASP from PHP. I spent many hours last night on this, and then it struck me…

… I needed a proxy script, just like the one I’ve already developed for CaseDetective On Demand!

You see, CaseDetective On Demand is built with Flex, which runs in your web browser’s Flash engine plugin, which is very very serious about security. From Flash, you can’t grab data from any old domain, you have to have the authority to do so. To get data from a website without them putting a little file (crossdomain.xml) on their website that gives you permission, you have to use a proxy script. A proxy script is something non-Flash that you put on a site that you have control over and trust, which takes your request, forwards it onto the real destination url and then returns the results when they come back.

I built one of these little scripts for CaseDetective On Demand, so it wasn’t too hard to strip it down a little and make one for this job. You can download an example of the proxy script if you so wish.

The script works for both GET and POST methods of submitting data to scoutSubmit.php, I’ve placed this script in a fogbugz directory under my support.imijsoft.com root, with the root and fogbugz directory protected from prying eyes with a dummy index.html.

If you’re considdering switching from your own Linux or Mac OS X FogBugz install to the excellent FogBugz On Demand service, this script may just come in handy. You need to edit it before you use it to change the destination to your own FogBugz On Demand url, I think it’s pretty obvious as to where you do this.

In development: CaseDetective On Demand

I bet you didn’t see that coming! :)

I think it’s sometimes a good idea to conduct a thorough hard-hitting interview with yourself about a subject to fully explore said subject. There now follows an interview between you (U*) and me (I), where I pose and answer the questions I think you might ask of me, and I’m not going to hold anything back…

U: So, FogBugz On Demand is public, is there any likely-hood of a CaseDetective On Demand then?
I: Yep. CaseDetective On Demand is being developed as we speak, well not at this very moment as IMiJ Software’s sole developer is all tied up answering your inane questions … but it is being developed when I’ve got any time available.

U: Cool! Tell me more, what’s it developed in, I guess it’s not a REALbasic application then?
I: Your guess is right on the money, how clever of you! CaseDetective On Demand is being developed in Adobe Flex for that Rich Internet Application (RIA) experience. In fact, it’s not just CaseDetective On Demand that’s being developed in Adobe Flex, CaseDetective 2.0 is too.

U: Eh, CaseDetective 2.0 for FogBugz is being developed in Adobe Flex, how’s that going to work, I thought Flex ran in Flash?
I: Adobe Interactive Runtime, AIR for short. I can use pretty much the same code base for both CaseDetective 2.0 and CaseDetective On Demand.

U: Now that really is cool! If CaseDetective On Demand and CaseDetective 2.0 are being developed in the same technology, from pretty much the same code base, are they going to offer the same features?
I: Almost, but not quite. As it stands, I’m thinking of making CaseDetective On Demand a free taster of what’s in the installable CaseDetective 2.0.

U: So what’s going to be different then?
I: Nothing’s set in stone just yet, it’s very early days so things are very very likely to change as development progresses, but this is how I see things panning out…

CaseDetective On Demand will look almost identical, but obviously will be running in your web browser rather than on your desktop.

CaseDetective On Demand won’t be caching data like CaseDetective 2.0 probably will, it’ll grab “live” data from FogBugz when ever a selection changes. If it’s being run online, then you’ve got to have an internet connection anyway, right?

CaseDetective On Demand is unlikely to have all the report outputs of CaseDetective 2.0, these will be reserved for CaseDetective 2.0 as an incentive to download, but you will probably be able to get a good idea of what would be printed or extracted from CaseDetective 2.0, you just won’t be able to actually save it out.

U: Will CaseDetective 2.0 work with both an installed version of FogBugz and FogBugz On Demand?
I: Yep. In fact, if the installed version of FogBugz has it’s API URL available to be called from the internet, then CaseDetective On Demand will work with that too.

U: What if people find CaseDetective On Demand to their liking, and want it to become a fully featured application that they can access from any modern web browser?
I: If there is enough interest, then we’ll just have to see about making it so.

Plan A was to make CaseDetective On Demand a fully working online application, with a small subscription charge per month per FogBugz user id used (with the first one being free). But by plan X things had settled down to CaseDetective On Demand being a great way to get a taster of the full CaseDetective 2.0. Who’s to say that in the future plan Z doesn’t loop right back to something similar to plan A?

U: I’m sure you can call web services such as the FogBugz API from within a REALbasic developed application, why are you jumping from REALbasic to Adobe Flex/AIR for CaseDetective 2.0, surely development time would be less if you stuck with REALbasic?
I: You’re probably right, if I stuck with REALbasic as my development platform for CaseDetective 2.0 I’ll probably be finished a bit quicker than I expect to be with a complete re-write to Adobe Flex/AIR.

The thing is, if I stick with REALbasic I’ll probably not be able to offer CaseDetective On Demand, I simply don’t have the time to be able to develop a brand new application of this scale for the web, and make the extensive updates necessary to CaseDetective for FogBugz 6.0. By developing in Flex/AIR I’m killing two birds with one stone, as the rather ugly saying goes.

U: Ugh, yes that really is an ugly saying, thanks for that! I’m still not completely sold though, why not forget about CaseDetective On Demand and just update CaseDetective for the FogBugz 6.0 changes?
I: OK, you want the real reason? The huge improvements to FogBugz 6.0 scare the life out of me!

One of the most sort after updates to FogBugz for quite some time has been the beefing up of the filters, making them much more flexible, with many more options. The rumour is that FB6 will have some seriously improved filtering and searching capabilities, just the thought of having to develop the changes needed to duplicate this functionality with direct queries to the database scares me rotten. And there’s a lot more coming in FB6 than just filter and search improvements.

With that in mind, and the fact that the FogBugz has an API that can be called as a web service which includes such things as a list of filters, and retrieving case details for those filters, there is nothing for it but to switch to using the API. And if I want to support FogBugz On Demand, it is absolutely necessary as there is no access to the database.

U: But you’ve pretty much said all that already, surely that’s not the real reason?
I: Switching to the FogBugz API is a big job, and although REALbasic has good web service features, other technologies do it better, Adobe Flex being one of them. When I first heard about AIR (called Apollo at the time) my interest in Flex was piqued even more.

When I took a long hard look at Adobe Flex 2, I saw lots of stuff I really liked. It’s got a very nice IDE (Flex Builder, based on Eclipse), MXML is very flexible and quick to work with, ActionScript 3.0 is familiar without even having seen any before (it’s very ECMAScript compliant), and the optional chart components are fabulous.

It’s those chart components that finally tipped the balance. The charts functionality introduced in CaseDetective 1.1 has been a big success, but they are very basic, and frankly not as good looking or feature full as I would like. It would take me a humongous amount of work to improve the current charts, in fact they would most likely have to be re-written from scratch as at present they are a third party component that hasn’t seen much improvement of late. Flex’s charts are really good looking, easy to work with, and have many options for extension.

And besides, I’m still looking for a development platform that I can take forward and start consulting with when Informix 4GL finally dries up. Flex is much much more exciting to work with than Informix 4GL, and has a much bigger job market than REALbasic even at such an early stage in it’s own development, so I’m hoping I’ll be able to get some serious experience in Adobe Flex with this project and a couple of other projects I have in mind to show off to prospective clients or employers.

U: Ah-ha! Now the truth be told! You’re developing CaseDetective 2.0 and CaseDetective On Demand in the technology you’re looking to use for making a real living at for the next few years!
I: That is the truth m’lord. As much as I’d like to think CaseDetective could pay the the mortgage, it’s a long way off from it at the moment, I mean light years away at present.

U: What about backwards compatibility, will CaseDetective 2.0 work with FogBugz 4 and 5 as CaseDetective 1.3 does now.
I: Unlikely.

U: That sucks.
I: Yeah, I know. FB5 will be partially supported as there is a version of the FogBugz API available that can be downloaded and installed already, in fact the skeleton of CaseDetective On Demand has been developed so far using that existing FB5 API. But it’s very light weight, hardly any data is available.

From what I can tell, most FogBugz users upgrade within a few months of a major upgrade being available, so I can’t imagine there’ll be a lot of new customers wanting to use CaseDetective with FogBugz 4 or 5 in the not too distant future anyway.

I expect FogBugz 6.0 will be available quite a bit before I’ll be able to get CaseDetective 2.0 developed and out anyway, so I don’t think backwards compatibility is going to be a major issue, it might be the case that CaseDetective users upgrade their FogBugz install to v6 and then start contacting me about when CaseDetective will support it! I’m more worried about that.

U: Hmmm, that is tricky, how long of a delay are we looking at before you’ll get CaseDetective 2.0 out the door with support for FogBugz 6.0?
I: I really can’t say at the moment. Life is pretty darn busy, I’m in a full time contract for a few more weeks, with an extension being offered for a few more months, and I want to spend some time with my wife and baby daughter now and then, so development time is pretty scarce.

With some feature prioritisation, missing out the least used features for now, concentrating on the core of CaseDetective’s being, I might be able to get something out by the end of the year, but it’s more likely to be early next year.

U: Wow, that’s quite some time away until release, sorry to hear that.
I: Me too.

U: Is there any good news for existing customers?
I: Well yeah, of course!

I’m confident CaseDetective 2.0 will be a much nicer experience for the user, Flex/Flash/AIR has some usability features that can make an application much more enjoyable to use.

Those new charts should look great, and those much requested pie charts will finally be available.

CaseDetective 1.x will still be around, supporting FB4 and FB5 for a while. Although all development efforts are aimed at CaseDetective 2.0 just now, any show stopper bugs in CaseDetective 1.3 will be squished where necessary.

And CaseDetective 2.0 will be a free upgrade to existing users of CaseDetective 1.x.

U: CaseDetective 2.0 a free upgrade to existing users, that’s a nice gesture.
I: It’s the least I can do, considering the delay and what not.

U: Well, thanks for such a candid warts ‘n’ all interview, your time is very much appreciated.
I: You’re welcome, thanks for giving me the opportunity to talk to you, I enjoyed it.

Were my questions and answers simply not good enough, do you have some proper questions for me? Then please post your questions in the comments for this post.


* I was going to use Y, but I simply couldn’t cope with Y-I, “pet” kept popping into my mind.
Caching of data on the desktop may not make it into CaseDetective 2.0, it may have to come a little later. I want to make CaseDetective a lot lighter than it has been, this may take considerable work.
In fact, I enjoyed it so much I might just be doing this kind of thing at lot more often!

FogBugz On Demand

So, the cat is finally out of the bag, Joel Spolsky has announced FogBugz On Demand, a professionally hosted version of FogBugz.

In my opinion FogBugz On Demand is a wonderful idea, it vastly reduces the barriers to getting up and running with FogBugz, if you have an internet connection and a few dollars at hand ($21 per user per month), you’re all set. No install, no server needed, no backups or upgrades to worry about, sign-up and go.

Some of us have been privy to the existence of FogBugz On Demand for a few months now, as frequenters of the Business of Software discussion group were let in early to beta test it. The deal was very good for being a beta tester, two users for free, perfect for the MicroISVs and such like that make up the Business of Software group.

Although FogBugz On Demand is a great deal at $21 per user per month, considering you’re not needing to pay up front for licenses, don’t have to worry about maintaining a server, backing up the database, or upgrading software, I do think Fog Creek have missed a trick.

I think Fog Creek would do well to extend the free license deal to any new account beyond the existing 45 day free trial, maybe just a single license for free, but preferably two per account.

Consider the hapless developer who finds himself in a new project with no feature, bug or inquiry tracking facilities. Imaging that poor sole being able to create a FogBugz On Demand account in just a few seconds, and start entering features and bugs to be implemented or fixed, passing the URL to their customer(s), fellow developer(s) or tester(s). Happy days! Suddenly the developer can have a central repository of all the work they have to do, can keep track of discussions related to the cases and project design and development (via the in built discussion groups functionality), and know when they have completed the work for each release. Even if the client hasn’t got a system of their own to track the project effectively.

And who knows, after the developer has given the spare free login to their manager, development partner, prime customer representative or favourite tester, how many others on the team are going to want to get in on the act rather than just use the public interface functionality? Now the customer has given the authorisation for 5 users of FogBugz On Demand for the remainder of the project. Next project they add another 5 users, now those two free logins have turned into $210 per month, every month, for this one client of the developer alone.

And once they have got comfortable with the great features of FogBugz (and the fabulous additions coming in FB6), maybe they’ll decide to buy the self-hosted version for all departments in the company.

Just how many contractors are there floating around from poorly setup client to poorly setup client? I suspect metric butt-loads!

As I said, FogBugz On Demand is a fantastic idea, it just needs to get one foot in the door as a couple of free licenses (not just a 45 day trial), and I think it’ll do very well indeed.

***

UPDATE 2007-07-11 15:40: Both Joel and Eric have contacted me to let me know that there is a “Student and Startup Edition” of FogBugz On Demand, that gives you the exact same two users for free functionality that I was whinging about being missing. It’s an option within the “Your Account” page for everyone. It has not been advertised just yet for fear of overloading the servers at a time when lots of people will be testing out the new service.

So, all my millions of readers, don’t go sign up for your free two person FogBugz On Demand Student and Startup Edition account at the same time, or else you’ll get me into trouble!

***

How does FogBugz On Demand impact CaseDetective?

Those who know anything about CaseDetective for FogBugz will know that it currently talks directly to the FogBugz database. With FogBugz On Demand being hosted by Fog Creek, there isn’t going to be any way to get to those SQL Server databases, it’s just not going to happen, they’re locked away tight. In fact, Eric Nehrlich from Fog Creek was kind enough to email me as soon as the beta was announced to tell me that there fact, and offer to help me in any way he could in getting any requirements championed for improvements to the FogBugz API for FogBugz 6.0.

As such, I’ve been emailing back and forth with Eric and Michael Pryor for a few months as Michael made progress with the spec and then development of the upgraded FogBugz 6.0 API.

With any luck the new API for FogBugz 6.0 is going to have enough information for me to reproduce all the basic functionality in CaseDetective that my customers rely on, not only so that I can support the huge changes in FogBugz 6.0, but also FogBugz On Demand.

***

So, the fun begins.

Just how am I going to cope with such fundamental changes to the data retrieval method for CaseDetective?

Will the next version of CaseDetective for FogBugz use the same code base, or start from scratch?

Will the next version of CaseDetective for FogBugz still be developed using REALbasic even?

Will the next version of CaseDetective for FogBugz have any other improvements?

There’s only one way to find out … stay tuned for the next post!

RBScoutSubmit 1.0 Released

A couple of weeks ago there was a discussion on the REALbasic NUG regarding what bug tracking systems everyone uses, and of course I chimed in with FogBugz! But I also mentioned that I could make my code for submitting crashes to FogBugz available.

I had a few responses looking for the code, so I cleaned it up a little to remove some project specific stuff that was in the modules, created a simple little example program, and then sent the classes on there merry little way to those who responded.

Even though these classes are pretty very rough, I decided to stick them up on this interweb thingy, you can find them in the Free Stuff section of my company website rbscoutsubmit Google Code project, along with the UNIX Crypt module I put up there some time ago.

Here’s a quick run down of how it looks when you run the example application…

RBScoutSubmitExample.jpg
When you click the “Go BANG!!!” button in the example app an OutOfBounds exception will be raised (I’m referencing an element of an array that isn’t initialised).

RBScoutSubmitAppError.jpg
An “Application Error” window will be shown that says very sorry for going bang, and asks that the user submit the error report with details of what they were doing at the time.

RBScoutSubmitErrReport.jpg
If the user wants to see what the error report contains before sending it, they can. This is always a good idea, gives the user a little more confidence that you haven’t just scanned their hard disk and are about to send out all their passwords!
This report format can be changed by you (the REALbasic developer) to whatever format you like, and can include extra info if you like (e.g. in the Windows version I add info as to whether the user is an admin, and memory available, as these tend to be important).

RBScoutSubmitSending.jpg
When the user hits the Send button, RBScoutSubmit uses your FogBugz installations’ scoutSubmit functionality to submit details of the crash. If you’ve set some pithy response on a case that already matches the Title, Project and Area submitted, the user will get that back (usually, “we’ve already fixed this, please update your version”), or some default “Thanks for submitting the report” message you supply in the application.

RBScoutSubmitInFogBugz.jpg
In FogBugz a case will be created with the Project, Area and Title you baked into your application, and if the user added some comments and/or their email address, they’ll be available too.

RBScoutSubmitInFogBugz2.jpg
You can see in this last screen shot that my example message made it intact.

If you want to give the classes a try, please do, the license is a standard MIT open source license, so you can do pretty much what you like with them except claim the code is yours (not that you’d want to)!

Any suggestions on how to improve the classes, or if you want to submit code changes back, please drop me an email, there’s contact details in the README.txt.