Posts categorized “MicroISV”.

Looking for a contract

Yep, you read the title correctly, I’m looking for a contract.

Although the next release of CaseDetective is nearly ready for private beta test, I’ve recently had a bit of financial bad luck come my way in the form of a tax bill that means I need to start earning some dosh much quicker that CaseDetective alone can (or ever will I suspect) manage.

I always knew that CaseDetective was going to be a bit of a slow burner, and thought I had enough money in the bank to last a full year without even a penny coming in, but this tax bill was larger than expected and has basically wiped out my business account.

Personal finances are still fine though, we’ve got plenty of money in our personal accounts to last us the rest of the year as planned, it’s purely the business account that has got a bit low when I’d expected it to stay pretty static apart from the last couple of VAT bills and my ongoing wages coming out. Alas, I hadn’t planned on last year’s corporation tax for the dividends I’d taken, and had forgotten just how well I payed myself two years ago!

So, it’s back to contracting I go, if I can get one.

Because I have extensive Informix 4GL/SQL/SPL experience over the last 10 years, obviously I’m looking at contracts in that skill set first, it’s always done me well, and without blowing my trumpet too much, I know I’m pretty darn good at working with Informix. It’s unfortunately pretty slim pickings out there for Informix 4GL development though, so it may take some time to get a contract in that area.

I’ve now had approx 2 years experience with REALbasic too, and I’m keen to see if I could pick up some work that requires it or could be accomplished with it.

If I had better local business contacts I’m sure I’d be able to find lots of little companies looking for custom applications to be developed, that would be a nice way to make some extra cash now that the big stuff for CaseDetective is done. I’ll have to look into this a bit more if I can’t get a full time contract.

I may expand the IMiJ Software brand to also accept custom development projects and small contracts over the internet, I’m sure there’s a huge number of companies small and large out there that need that one little app built to fix that chink in their process, and with REALbasic and my many years of business and systems analysis I could no doubt meet their requirements on Windows, Mac or Linux in short order.

There are a few companies and individuals out there that advertise custom development with REALbasic, I’d be interested to hear how well they are doing, and whether they are getting plenty of work to keep them busy and in profit.

I guess it goes without saying, but I’m going to say it anyway, if you know of anyone looking for a bit of development done and is looking for someone talented, efficient, thorough, personable, handsome … ;-) Well, you know where to send them … no, not somewhere else smarty pants, to me!

Anyway, enough of the rambling, must get back to finishing up those last couple of small things on CaseDetective that seem to be taking forever, and I promised someone I’d post a sneak peek this week of a new feature that I think will help them out a lot, so I’d best be off for now.

Oh, and before I leave off, just to confirm that I’m still developing CaseDetective and have no plans to stop doing so. I have a list of features as long as an Orangutan’s arm that I and my customers want implemented, and I will do so as quickly as I can. CaseDetective will continue to be developed and supported, it’s still a huge part of my long term plan to become primarily a developer of software for the masses, as are other projects I have in mind for the future of IMiJ Software.

Anchors Away! (CaseDetective 1.1 Sneak Peek #3: Recent Activity List)

This post was originally a guest post for the Fog Creek Blog, but I’m re-posting it here for completeness with permission from Michael.

There’s a neat little new feature hidden away in FogBugz 5 (currently in beta) that I think a lot of people will find useful (and not just because I asked for it), HTML anchors on displayed bug events.

I guess I should explain why I asked for them and why I think you’ll find them useful…

A few months ago there was a feature request on the FogBugz discussion forum that I thought was pretty good, so I nicked it for CaseDetective (thanks Sam Chrisp)!

The feature request was for a “Recent Activity List”, basically a listing of the last X number of edits and comment events so that the FogBugz user could see what has recently happened, and then click through to any Case that’s of interest. The feature request even included a picture of the list that the user had created for themselves by modifying the FogBugz code.

I liked the idea and felt it would be useful as long as you could click on an event line in CaseDetective and go directly to the FogBugz edit entry in the Case view page without having to scroll down the page to it. There was one snag though, FogBugz 4 didn’t have any HTML anchors on each of the entries in the view page so CaseDetective couldn’t construct a URL to go directly to the entry. Darn!

So I fired off a quick email to Michael (Pryor, I think you all know who he is :-) ) asking whether he’d consider adding anchors to the view pages in FogBugz so that anyone could construct a URL to go directly to the event. Michael said he’d pass it on to the development team for appraisal.

The announced features for FogBugz 5 didn’t mention anchors so I thought I’d missed the boat and would have to wait a little while before implementing my Recent Events list. However, while playing with the FB5 beta late one night (make that early one morning, just couldn’t sleep until I found out everything that was new) I checked the HTML source for the Case View page and there they were, BugEvent anchors. Yeehaa!

Here’s the deal, every bug event that is displayed in a Case has an anchor in it’s header, something like “<a name=”BugEvent.9969″>”.

This means you can send someone directly to a comment or edit with a URL such as:

http://server.example.com/fogbugz/default.php?pg=pgEditBug&command=view&ixBug=2469#BugEvent.9969

or the even simpler:

http://server.example.com/fogbugz/?2469#BugEvent.9969

As long as the URL ends with a “#” followed by the anchor’s name, you should be good to go.

This kind of thing is very useful when you want to point someone to a particular comment or edit, instead of having to say:

“Please have a look at the comment dated 03/04/2006 10:20:30 made by John Doe in case 2469″

you can say:

“Please look at this comment: <link>” and past in a direct link to the comment.

Of course, it’s helped me a lot as it meant CaseDetective could acquire the Recent Events list I wanted to implement. Double click an event…

CaseDetective-1_1-RecentEvents-SneakPeek.jpg

… and you’ll be taken directly to it in your default browser:

FogBugz5-Anchors.jpg

This event list will make up the bottom half of CaseDetective 1.1s new “Overview” view, which I’ll discuss a little more on my blog soon.

CaseDetective 1.1 is still in development, but we’re working hard on getting it into your hands as soon as possible. Stay tuned for more updates as we get closer to release.

CaseDetective 1.1 Sneak Peek #2: Open cases by Area

In FogBugz there is this concept of a Project Area. Areas are usually something like “Code”, “Documentation”, “User Interface” and so on, a way of categorizing a Bug, Feature or Inquiry so that the correct person can pick it up. They are very useful, a great way compartmentalizing you Cases for better resource and time management.

The problem is, these Areas are children of a Project, so it’s impossible to create a filter in FogBugz that captures all cases that are in an Area regardless of the Project they are in, for example; all Cases related to “Code”. This is a real shame, as many people use Areas for all kinds of things, and would love to see all cases that have the same Area. Some people think of Areas as a kind of tag.

In CaseDetective 1.1 for FogBugz we’ve opened up Areas a little by giving you a “Open cases by Area” summary filter, allowing you to see all open Cases in each of your Areas, regardless of the Project they’re in.

CaseDetective-1_1-OpenCasesByArea-SneakPeek1.jpg

But, if you then need to drill down to find out which Projects those Cases are in, you can.

CaseDetective-1_1-OpenCasesByArea-SneakPeek2.jpg

Some way of seeing all cases in an Area name without having to select a Project has been one of the most requested features I’ve seen, and something I’ve long wanted myself.

CaseDetective 1.1 is still in development, but we’re working hard on getting it into your hands as soon as possible. Stay tuned for more updates as we get closer to release.

The Marco Bambini Blog: Too perfectionist? / CaseDetective 1.1 Sneak Peek #1

Marco Bambini has just posted a

little update on where he is with SQLiteManager 2.0.

Marco’s included a couple of screenshots, one of the about box that shows off the new icon he’s commissioned and the other of the main window.

The new icon is great, looks very slick and professional. I liked the current icon for it’s simplicity and style, but now that I’ve seen the new one the old one looks kind of drab in comparrison. I think he’s made a good decision in getting a new icon created.

The screenshot of the new look interface shows a huge improvement over the current release, it looks much more user friendly and accessible, and I’m very glad the tabs have been replaced by a toolbar. There’re no details in his post on what’s new functionality wise, but a few of the toolbar icons hint at some new features, Analyze, Verify, Optimize etc.

Marco’s worried that he shouldn’t have invested so much time and money into the new look and upgraded functionality, it’s taken longer than he hoped and he’s still not finished yet. Obviously not having got my hands on the new version yet I can’t say for sure whether he’s done the right thing by doing so much and making his current and potential users wait a little longer, but from just those screen shots I expect he’ll not suffer for it.

I’m in a similar position with the next version of CaseDetective for FogBugz, although I’ll admit I run the risk of having even less to show for my efforts than Marco.

The next version of CaseDetective has taken longer than I hoped, but there’s good reason for it. The next release of CaseDetective, while retaining all the extract functionality of the previous version has changed a huge amount “under the hood” to make it more scalable and able to cope with FogBugz databases with large volumes of cases.

And, funnily enough, a lot of the functionality that has enabled me to make this version of CaseDetective more scalable comes from Marco’s original work on the SQLite plugin for REALbasic that was bought by REAL Software and integrated into REALbasic 2005 and later (I’m currently using REALbasic 2006r1).

I hadn’t planned on taking so long with CaseDetective 1.1, I expected it to be a small update with a few features that had been asked for, the most important of which being support for MS Access databases. But once I had that feature pretty much in place I found it too irresistible to extend the mechanics of the solution towards some longer term feature ideas and scalability requirements.

CaseDetective 1.1 will now cache all the case, event, attachment and reference data from the FogBugz server’s database on your desktop machine in a REAL SQL Database (SQLite3). Once the first full sync is complete only data from changed cases and the reference data will be synchronized when asked for.

CaseDetective-1_1-Refresh-SneakPeek_1.jpg

There are huge benefits in doing this:

  1. Network and server load is greatly reduced. CaseDetective used to hit the network and database server pretty hard if the filter pulled back a lot of cases, now it’s a local lookup to a very fast database with no network traffic. After the initial sync, only reference data and data from cases that have changed since the last sync are retrieved.
  2. Switching from one filter to another takes a fraction of the time in certain cases. Because there’s only local querying of a local database where CaseDetective controls the indexes needed, those queries can be much faster to execute and the data is available with very little latency.
  3. CaseDetective 1.1 can now support FogBugz servers using Microsoft Access databases as their back end. This is only possible because the queries to sync the data are pretty simple in comparison with the complex filter queries which MS Access couldn’t support in an ANSI SQL standard compliant way.
  4. Abstracting the FogBugz database opens up previously difficult to implement future features. And no, I’m not telling what they might be just yet! :-)

After achieving the MS Access compatibility goal, my next biggest goal in this area is support of large FogBugz databases. My ultimate goal is to get to the point where CaseDetective works well with Fog Creek’s own FogBugz database, which at last count had over 250,000 cases in it, and by now surely is exceeding 300,000. This is going to take some work, file sizes for the cache are going to get rather large with that many cases and associated event and attachment records, I can see file size limits being exceeded unless some partitioning of the data happens. But that’s a future goal, I doubt there are many installations anywhere near that size just now, so I’ll address that in a future release.

The observant among you will have noticed the funny little “Switch View” button in the toolbar of the above screenshot, I’ll explain all about it in a later “Sneak Peek”.

For now, that’s enough details on what’s in the pipe line for CaseDetective, I’d better go get on with finishing it, there’s still some way to go just yet.

Don McAllister going solo with ScreenCastsOnline.

If you’re at all interested in Macs, you’ll know of ScreenCastsOnline, the insanely great video blog where Don McAllister shows off some of the great applications available on the Mac and gives tutorials on how to get the best out of them.

Well, Don has decided to make the jump and do ScreenCastsOnline full time, giving up his current full time job to pursue his dreams.

To do so and continue to support his family he’ll need an income, so he’s introducing a subscription model where you get a number extras over and above the free feed for a very reasonable price.

I’ve signed up, if you enjoy ScreenCastsOnline I urge you to help support this great resource by signing up too.

Good luck Don, hope you enjoy going solo as much as so many of us have already.

Not in Texas anymore!

We had a pretty heavy snow fall last night, and it doesn’t look as though it’s going to let up all day either. Glad I’m not having to drive anywhere tomorrow, +1 for being an MicroISV!

Snow-at-home-5.jpg

Snow-at-home-11.jpg

Quick tip for taking screen shots.

Quick tip for taking screen shots…

Have folder (mine’s called “Blank”) on your desktop.

Open said folder and maximize/strech it to cover your entire desktop, making sure it’s background is pure white.

Open application and take screen shots with plenty of the white folder background surrounding the window being captured.

If you’re taking screen shots of modal dialogs or sheet windows (Mac OS X) then before opening the dialog window make sure the main window is either moved out of the way or made small enough to be hidden by the new window.

This will give you a nice clean screen shot without any clutter from other windows on the edges.

Alternatively, just set your desktop background to white and hide the desktop icons (can be done on both Windows and Mac with a couple of clicks).

I prefer the first way as all I have to do is open up the blank folder and switch back to my app, but if you’re constrained for space (i.e. using 800×600) then the desktop method works well.

You can see this in action on my screen shots page for CaseDetective for FogBugz. The Mac OS X shots are taken with a blank folder for background, the Windows ones are taken with a white desktop and hidden desktop icons.

Update (2006-02-19): This post was inspired by a question across on the Business Of Software forums.

One response was to use Alt+Print Screen to capture just the window. Here’s my response to that…

The problem with Alt+Print Screen is that it still captures a rectangular area, so if you have rounded corners to your window (Windows XP) then you’ll get some of the background show through.

Using a white (or whatever colour you need) folder background fixes that quickly without having to get your paint brush out!

Cheap, simple and effective.

And if you were to use something like SnapX Pro on the Mac to take a screen shot of a Windows app in Virtual PC then you’d need to select a screen area rather than window.

Also, I’ve found that by using a fixed screen area for my screen captures I can get a consistent image size for both my Windows and Mac screen shots simply by re-sizing my windows to fit. This helps a lot as you’ll not have any problems in fitting those images into a neat grid, which always looks much nicer (in my opinion anyway). You’ll also get much crisper window edges if you take a screen area rather than single window, at least that’s what I’ve found anyway.

Change in SCM

A while back I wrote about my development setup, a part of which is of course Source Code Management (SCM).

At that time I was using Perforce, which I was more than happy with, it sure is a great system, fast, efficient and very stable. I had no real problems with it at that time.

However, at the beginning of the year I moved to Subversion.

There are two main reasons for this:

1) Just like Cade I felt the cost of buying a license prohibitive.

If I should need to step up from the free 2 users/workspaces version I would need to outlay $800, which is way out of my league just now. And because I’ve been hopping between my Desktop and Laptop I’ve been very aware that I don’t have any slack there, I couldn’t for example do a secondary checkout of a back version without dropping one of my users or over-writing my current workspace. The 2 workspaces/users limit is too strict when you want to do anything except straight-line development (a second computer is at least a second workspace, even if copied from the first computer).

Subversion is free.

2) I want to be able to submit versions while on the road (i.e. at REAL World 2006) or from either my desktop or laptop.

This means I need to run my SCM on my laptop, as I can’t be sure I’m going to have a solid connection to a remote server while on the road.

I also use “Portable Home Directories” to sync my home directories between my desktop and laptop, this means I might be half-way through some development when I sync between the two and then carry on development on the second computer. With Perforce this is impossible to do, as Perforce recognizes different computers as being different workspaces (or users, never quite worked it out), and gets in a bit of a tizzy when you try and check in stuff from a different computer than which you checked it out on.

For Subversion I’ve downloaded Martin Ott’s (co-founder of TheCodingMonkeys) compiled version 1.3.0 which includes the more stable fsfs rather than bdb back-end.

I’m now running svnserve locally on my computers as me, with the repository sitting in my home directory. This means I can check in any time I like on either machine as Subversion doesn’t lock on check-out by default. And because of the sync going via my server I have a backup there (onto an external hard-disk), along with scheduled backups to my .Mac iDisk and another networked external hard-disk. This means my repository is sitting in at least 5 separate places (not counting backups to CD/DVD)!

All in all I’m much happier now that I have Subversion, it’s moved on a lot since I last looked at it, it seems very stable and I’m finding it a lot quicker to use now that I’m back to the command line too. I did enjoy using a GUI with Perforce, and I’ve looked at some of the offerings available for Subversion, but in the end I’ve found the command line more than adequate.

The ISV Diaries

Cade A. Fasset has started to write The ISV Diaries, his life as a 1-man software startup.

This promises to be a great blog to follow as Cade builds his development infrastructure, product, website and finally starts to market and support his creation.

So far Cade has briefly described what he’s up to, SCM Woes, how he came to pick FogBugz for his bug tracking system (good decision!), and the fun he’s had in trying to host FogBugz remotely on Windows and now Linux.

I picked up on this blog from a very nice feature request he posted to the FogBugz discussion forums. His idea is that customers should be sent a second automated response if no manual reply has been sent within a set time period, e.g. 24 hours, which he thought was a great idea when he received a similar email from his hosting provider apologizing for not being able to respond within their normal 24 hours. Great idea, I hope Fog Creek are able to implement this in a future release of FogBugz.

Good luck Cade, looking forward to following along on your journey.

FogBugz Weblog

Michael H. Pryor (co-founder of Fog Creek) has just announced a new website, the FogBugz Weblog.

This is great news, I’ve always wanted Michael to have a blog, I’m confident he’s got lots to share with us, and I’ve often thought it would be a good idea to have a FogBugz specific weblog myself, but Michael has trumped this by creating the FogBugz weblog.

And what’s even nicer and totally unexpected is that in his introductory post Michael says “Future posts will be about CaseDetective, translating FogBugz, a Gmail like notifier for new FogBugz cases, a proxy for Vault to make it think it is talking to its own built in tracker, and more ideas that I haven”.

That’s very nice of him, thanks Michael!

Update: It seems people are missing the fact that there is a RSS feed at http://blog.fogbugz.com/rss.xml
Probably because the FogBugz Weblog isn’t properly exposing it, but it is there and does work.