Tag: fogbugz

  • 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.

  • I met Joel Spolsky last night, and have the t-shirt to prove it!

    FogBugz_t-shirt.jpgLast night was the Edinburgh meet up with Joel Spolsky, it was great to meet a few fellow software developers (and the occasional electronics/hardware/embedded software developer) who also think Joel’s articles are a great read. Although I seemed to talk to more Australian and New Zealand folk than I did Scottish, which is funny as I have often been accused of being from that area, and nearly moved there a few years ago, and it turns out Joel’s dad is from New Zealand.

    So after the meet last night Joel and I we went for a nice dinner at Le Sept, just round the corner from the meet venue, whence my grilling of Joel commenced!

    I thoroughly enjoyed the meal, we talked about all kinds of things related to software development, management, Fog Creek, FogBugz and other stuff. Joel’s a really nice guy, easy to talk to and very keen to share his knowledge, and also to help me out with CaseDetective where possible.

    I hope Joel enjoyed the evening as much as I did.

  • CaseDetective for FogBugz 1.3.1 released.

    Just a quickie to announce that CaseDetective 1.3.1 has been released; it includes a couple of bug fixes.

    If you’ve had any problems in creating an extract or PDF file from certain filters because the “Save As” window doesn’t appear after the options window, you’ll want this release.
    The issue was down to the default file name (filter name) being passed to the “Save As” window, if that filter name happened to have a “/” or other character in it that isn’t allowed in a file name, then the window simply failed to appear. The default file names for extract and PDF report files are now sanitised to only include alpha-numerics (a-z, A-Z, 0-9) and the space character, anything else is replaced with a hyphen. You can of course still change the file name once in the Save As window.
    Thanks to Rosemarie for helping me find the cause of this problem with her wonderful debug log file, your patience and persistence is very much appreciated.

    If you’ve had any problems with CaseDetective causing locking conflicts in your MS Access database, then you’ll also want CaseDetective 1.3.1.
    I’ve only ever had one report of this problem, and it turns out it wasn’t actually CaseDetective causing the problem anyway, but CaseDetective has been updated to explicitly connect in read-only mode to any ODBC, MS Access and MS SQL Server database. It’s probably belts and braces and CaseDetective only does read-only operations on the FogBugz database anyway, but it can’t hurt as CaseDetective never updates the database.

    That’s all folks.

  • What’s going on with the Joneses then?

    So, what’s going on with the Joneses then?

    Abi With Two HandsWell, as of today Abi is 1 month and 1 day old, and boy has she grown already. She’s gone from 7 pounds 3 and a half ounces at birth to 9 pounds and 2 and a half ounces, and out-grown a number of clothes already. Apparently this is very good growth, especially as she weighed even less when she left hospital, Mummy is obviously eating the right kind of stuff (which is a real surprise, believe me)!

    We’re not getting a lot of sleep at the moment, which impacts the rest of the day. Mummy often gets a nap for an hour or two during the day or late afternoon (when Daddy gets home) that she desperately needs, but Daddy catches up by having a night in the spare room every now and then. Although Abi has started to go about 5 hours through the night in the last couple of days, which makes a big difference.

    I’m starting to get into the swing of going to work a lot earlier than I have been until now. Before, I used to leave home between 09:15 and 09:30 to get into work for 10:00, but am now leaving just before 07:00 to get in for around 08:00 (traffic is much worse at this time of day). This means I get to leave work approx 2 hours earlier now, leaving at 16:30 rather than 18:30, which of course means I get a bit more time in the evening with the family. The idea being that because Abi is generally waking up for a feed between 05:00 and 06:00, I might as well get up and into work and therefore have more time in the evening for Abi, Mandy and then some work. I’m getting the Abi and Mandy bit in mostly, but work hasn’t really clicked back in yet, I’m way too tired most evenings.

    On the subject of work, development of CaseDetective hasn’t moved forward for some time, as you might imagine, but there are a couple of bug fixes I now know how to implement thanks to some great feedback from customers. It sure does help when you get a good debug log and a customer who’s keen to find a fix to their problem. I hope to get a bug fix version of CaseDetective out soon.

    There are developments afoot in the world of FogBugz, there’s rumours of a new “service” that some “MicroISVs” might know about, I can say no more, and if you look in the right places you can see snippets of information that alludes to some of the new features in FogBugz 6.0 and it’s pending public beta release. Again, I can say no more, mainly because I have no more info, I have no more info than has leaked, I’m not privileged to any data that isn’t publicly available. But anyway, it’s exciting, and I’m looking forward to seeing what’s coming out of Fog Creek.

    Oh, and it seems like I might actually get to meet Joel Spolsky (co-founder of Fog Creek) next month in Edinburgh. I don’t suppose I’ll have much time with him as there’s 50+ people already signed up to the meet up, but still, should be nice to meet Joel.

  • CaseDetective 1.3 Post Development Lessons Learned: Part 2

    This post is very closely related to my previous post about the lessons I’ve learned while developing CaseDetective 1.3, as it’s also about my reliance on eSellerate’s tools. It’s therefore going to be a short post.

    In the previous post I mentioned that with the change from Integrated eSeller to Embedded Web Store imposed by eSellerate when supporting Universal Binaries, it effected how CaseDetective checked for updates. If I’d had my own check for update code independent from eSellerate, I’d not have had any problems when eSellerate changed how they set up SKUs (Stock Control Units).

    Lesson Learned: Develop your own check for update mechanism from end to end, or use an open source solution that you have full source for and control over.

  • CaseDetective 1.3 Post Development Lessons Learned: Part 1

    CaseDetective 1.3 took a little longer than I hoped to develop, partly because I took some time off to recharge my batteries after CaseDetective 1.2, but also because of some painful obstacles I had to overcome during it’s development.

    This is the first post in a short series of “Lessons Learned” from development of CaseDetective 1.3 for FogBugz.

    The first, and most asked for feature that I needed to develop for CaseDetective 1.3 wasn’t even a real feature; Universal Binary for the Mac OS X version.

    A Universal Binary version was long overdue, I would have loved to have got one out for v1.2, but REALbasic hadn’t got that functionality stable by the time I started development, and more to the point, the eSellerate Universal Binary REALbasic plugin wasn’t anywhere near ready. As I rely on this plugin for validating serial numbers and for in-app purchases, this “feature” had to slip to v1.3.

    Unfortunately the Universal Binary eSellerate plugin for REALbasic caused me a lot of headaches, which considering the Mac OS X users of CaseDetective are vastly outnumbered by Windows users, is very frustrating.

    The first, and most annoying problem with the eSellerate UB plugin was that it wasn’t cross-platform, meaning I couldn’t compile CaseDetective for both Windows and Mac using the same eSellerate related code; I had to continue to use the old Integrated eSeller plugin for compiling the Windows version. And to add insult to injury, the old plugin would not work with the latest REALbasic IDE without being converted to the latest plugin format (a tool for this is provided with REALbasic), and even so, seemed to clash with the new plugin so that you had to compile for Windows and Mac as two separate steps (even when using #if to target the OS specific code). I resorted to making everything I could an external item and creating a copy of the project so that I had one project for Windows and one for Mac OS X. Each project referenced pretty much the same external items except for one module that included Windows or Mac specific eSellerate code, and ran each against a different version of the IDE so that the plugins didn’t clash. It worked, but wasn’t ideal for productivity.

    The new eSellerate UB plugin for REALbasic was also different in operation to the old plugin, it used their “Embedded Web Store” framework, which used an embedded web browser in a window, and required setting up of a web store in the eSellerate admin panel. Now, I wouldn’t have had any problems with this change except that it required different handling of Stock Control Units (SKUs, don’t ask me why they use a “K”, I have no idea), which totally broke the way you setup the check for update functionality. Now I needed to update two areas of my eSellerate setup to cope with the Integrated eSeller used by the Windows version, and the Embedded Web Store (EWS) used in the Mac version. This is a recipe for disaster (although I think I’ve avoided disaster so far).

    Also, unlike the old Integrated eSeller, the Mac EWS plugin needed a file to be copied into the app bundle after it was created, the old version didn’t require any extra files, it was compiled in and self installing.

    Oh, and in the end I had to disable the in-app purchasing from the Mac version anyway because I found that if you tried to print the invoice shown after completing a purchase it totally hung the app and required a force-quit. Now, this may have been something that I did, but I’m stumped as to what that might be, seeing as printing the invoice had nothing to do with closing the window and returning to my app, so I’m pretty sure it’s a bug in the eSellerate plugin or EWS framework. When I found this bug I was about ready to explode, there was no way I was going to waste any more time in trying to find a workaround, so I just disabled in-app purchasing in the Mac version. Mac users will have to buy through the web store and copy their license details into the “Enter License” window, not a huge problem as most people seem to buy that way anyway, but still, it’s a shame I couldn’t use this convenient in-app purchasing mechanism which sets the user’s license details automatically on purchase completion.

    I think version 2.0 of CaseDetective may just be using a custom serial number scheme rather than eSellerate’s own scheme, and then I won’t need to use any eSellerate plugins at all.

    Don’t get me wrong, in general I like eSellerate, in all my dealings with them I have had superb support and have had zero problems reported to me by customers about their buying experience through them. It’s just that their REALbasic support has taken a serious nose-dive, which is unacceptable to me.

    Lesson Learned: Develop your own license code scheme, regardless of purchasing mechanism.

  • CaseDetective 1.3 released.

    Well, last Thursday I finally got CaseDetective 1.3 for FogBugz out and ready to download.

    What’s new?” I hear you ask…

    CaseDetective is now even easier to use offline, you can use it when not able to connect to your FogBugz database and can tell it not to automatically refresh it’s local data on startup.

    It now better supports Multipart/mime emails in the preview pane, for printing and for exporting to PDF.

    The Mac version is now a Universal Binary for much improved speed on Intel Macs as well as PowerPC.

    And there are of course lots of little speed and stability improvements.

    You can download the latest version for either Windows or Mac from http://www.casedetective.com/download

  • Under The Wire

    Oops, nearly had a month with no posts, better correct that!

    So, umm, Merry Christmas and Happy New Year! Better late than never eh? 😉

    The last time I spoke about stuff going on in my life, I mentioned that I’d slowed things down and wasn’t going to get too uptight about lack of progress with CaseDetective. Well, although I’m still not rushing things, after a little rest I did start getting things done on CaseDetective again, and there’s a small release forming at the moment. There’s a couple of things I want to fix up before I finish testing and release unto the World, but it’s not too many weeks away. The latest release of REALbasic is working well for me, finally I’ll be able to get a Universal version of CaseDetective out for the Mac.

    I’ve recently updated my IMiJ Software and CaseDetective websites with a new look. I’ve decided to stop bamboozling people with a myriad of menu options listed down the right hand side, using a much reduced horizontal menu at the top instead.

    As well as looking more “business like”, it’s allowed me to add nice big “Free Download”, “Buy Now” and “Only $69” buttons in the sidebar of the CaseDetective website. I’m hoping this will make these options even more obvious than before and encourage people to try it out.

    I’ll admit I’m not the biggest fan of drop-down menus, but this new design uses them. I’ve been very careful to make sure nothing has actually moved in the website layouts, all the paths should be the same for now, but the actual menu options have moved around a little. I doubt anyone will notice though.

    The design is Blueball Design’s Pro Colors 3.5 Theme for RapidWeaver, which I’ve actually had for quite some time, and may be the first theme I bought for RapidWeaver. I’ve made a few tweaks though; I took the Platinum version and changed the header and sidebar backgrounds to be white rather than grey as I wanted a lighter feel and think icons and logos always look better on a white backdrop. I also moved the header logo to the left and removed the header text so that it wouldn’t interfere, as well as making sure the page title has the website name included rather than just the page name. I personally think it looks rather good, nothing spectacular and pretty boring compared to some, but it works well on Windows and Mac and I believe it won’t turn anyone away.

    Apart from my treadmill dying last week, my attempts at getting healthier in body and mind are coming along. I’ve lost a pound of weight every week this month, and am eating much healthier. I’ve also started to get back into reading before hitting the sack, so I might even start making a dent in that huge pile of books and magazines sitting beside the bed waiting to be read. There’s other little bits and bobs I’m doing or looking into that all add up, but I’ll not bore you with them.

    Mandy’s at the “very uncomfortable” stage in pregnancy, she can’t seem to find any kind of sitting or sleeping position that stops her from getting sore in a few minutes, she’s soooo looking forward to getting her body back all to herself in approx 2 months time.

    It’s an exciting and nerve-wracking time all round. We’ve been buying lots of bits and pieces for the baby, and I’m really looking forward to seeing what pops out, but also very aware that life isn’t ever going to be the same again and just hope that it all goes OK when the time comes. Tick, tock goes the clock!

  • Post CaseDetective 1.2 round up and future thoughts.

    This is a rambling brain dump of a post, it may be big, but it definitely isn’t clever. Some might find much better use of their time by quickly skipping this post, you won’t hurt my feelings, honest. You have been warned!!!

    Post Release Review

    I released CaseDetective 1.2 for FogBugz a week and a half ago, so I thought it was about time I wrote a little update on how things have gone with this release.

    This new release has proven to be very successful, I’ve had only one support request since it’s release, and unfortunately haven’t been able to solicit any useful information from the correspondent to find out what specifically their problem was. It’s a shame, as if I could get just a little info from them such as a 1 minute debug log run I might be able to see where the problem was, fix it and maybe turn them into a customer.

    Sales

    On the subject of “making” customers, last month (September 2006) was my best month so far for total number of orders, which was nice (although December 2005 was best financially due to volume orders). And doubly nice was that last week was my best single week of orders too, obviously some people trialling CaseDetective have been waiting for some of the goodies in CaseDetective 1.2 before buying. Maybe they’ve just bought it straight off knowing that there is a 90 day money back guarantee so it’s a “safe” purchase? I guess I’ll find that out within the next 3 months!

    Either way, keeping the amount of changes in CaseDetective 1.2 to a couple of sizable features and a handful of minor improvements and bug fixes seems to have worked out well, especially as my available development time has been significantly cut recently.

    The Next Version

    Now it’s time to decide on the feature set for the next version of CaseDetective, which is proving very difficult to pin down. There are some relatively minor niggles that I know I need to address to help make things a little more “standard” (especially on Windows), I believe these minor cosmetic issues could actually be turning people off and need to be sorted sooner rather than later.

    Then come the real features, the “value add” that makes people take a look at CaseDetective for the first or second time, these are a little harder to decide on.

    For obvious reasons I’m not going to talk about the features I’m considering here, until said features are ready to go I’ll keep them close to my chest just in case they get pulled before the final release. However, what I can say is that I’m considering two different classes of feature, “brand new” to CaseDetective and more “improved” existing features.

    Brand New Features

    There are a couple of really big features that I just know will be popular, but of course the problem is they will take a considerable amount of time to develop, and I just don’t know if I’m happy to wait many months before I can release the next version. Maybe I should develop these “on the side” when I need a context switch and get them ready for a big release a little further down the line.

    There are a few smaller new features that I could conceivably get completed in shorter time frames, none of them have the same “wow” factor of the larger features but on the flip side put them all together and they add up to more useful functionality and therefore reasons to try CaseDetective.

    Improved Features

    There are features in CaseDetective that customers really like, but want more from, and just like the “Brand New” stuff some could take considerable effort and others not so much. These are important, as it’s all very well being able to do something, or having the promise of being able to do something, but if it falls short of expectations it leaves a nasty taste in your mouth that’s difficult to remove, and therefore very bad for CaseDetective’s image.

    FogBugz Compatibility

    Of course, things get a little bit muddier when you take into consideration the prospect of a new version of FogBugz somewhere down the line, and the changes that may force on CaseDetective.

    I have absolutely no idea what is coming up in the next release of FogBugz, or when it will be released. Like everybody else I have to just keep an eye on the FogBugz discussion group to try and glean what’s going to change. And from what I can tell, it looks like there might be some changes in the next version of FogBugz which will require changes to CaseDetective.

    This will hopefully be somewhat mitigated by my development style, whereby in general CaseDetective improves bit by bit during development, always in a near release ready state with each new bit of development tested before check-in. This means if FogBugz 6.0 comes along quicker than expected I should be able to finish off (or cut) the current feature I’m developing and work on compatibility, which is always top priority.

    Brand New Application

    For a long time I’ve been itching to kick off development of a brand new application, possibly with brand new tools. There are three particular applications that have been bouncing around in the back of my mind waiting for an opportunity to be put into practice.

    One of these applications is fairly simple and has no dependencies on other applications or systems, it would therefore be a nice little bit of development that I could chip away at in my “spare” time (ha ha, ‘cos I have so much spare time you know). However, there are three possible implementation methods for this app, desktop only, web only, or web with desktop app. I’m leaning towards at least starting off as web only, as it should then be possible to add a desktop app later if the need still remains.

    The other two apps are Mac only, nothing particularly new, just “better mouse traps”. Both could start off fairly simple and grow organically although there is a definite level of features that I would require before I could start using them full time, which might mean a pretty lengthy development schedule. And there might not be much call for what I’m thinking of developing anyway.

    Either way, each of these new developments requires that I start to use a new technology, most likely Ruby On Rails for the web app and Objective-C/Cocoa for the desktop apps. I could use REALbasic for the desktop apps, but to be honest I fancy learning something new and that Core Data stuff looks pretty neat for what I’m thinking of doing. Having said that, although there are plenty of Windows apps in the application spaces I might be targeting, I dare say I could take a slice of the action with a cross-platform application written with REALbasic. The desktop apps definitely have more marketability than the smaller web one, but I really want the web one!

    What to do?

    So, as you see I have a bit of a dilemma.

     I really would like to start development on the web application, but frankly I just haven’t got the time just now and am very unlikely to conjure up anymore in the coming months. I could sacrifice one evening a week to it, but I’m not convinced that’s enough to learn a new language without being frustrated by lack of use hampering the learning curve. There’s also the problem that the new development is pretty much for my own edification, as there quite likely isn’t a market for what I intend to develop, even if I know I would pay for it myself. I guess I could always test that though, no harm in trying.

    As it stands, I’m leaning towards improving current CaseDetective features in the next release, with a few smaller “new” features that have been most requested. But, I’m going to take a few days to properly sketch out and estimate the changes I’m considering from the huge heap of feature requests to make a better informed decision on which to do, and make sure to leave some slack for catching up with FogBugz just in case it gets rev’d within my release time frame.

    I did warn you!

    So if you’ve made it here, sorry, but I did warn you!