Tuesday, March 23, 2010

Gripe for today - IntelliSense

I can see it coming again – the need to delete the IntelliSense NCB file from the StrokePlay solution in Visual Studio 2008.

I’m fully up to date with patches here but adding variables to classes for controls in the dialog editor is starting to take an age yet again.

What on earth is it doing?

Whilst deleting the NCB file and letting VS2008 recreate it doesn’t take long I shouldn’t really have to do it.

Anyway, gripe over.  Back to those scorecards.

Blog feed

Just a maintenance note for anyone who uses a feed service to get this blog – you know who you are, all one of you :D – I’ve switched the feed from Bloggers own to FeedBurner.

Sunday, March 21, 2010

Milestone Day

Today is a real milestone for me in the development of StrokePlay.

Since I started playing golf I’ve been tracking my scores in an Excel spreadsheet.  I use this because I’ve never found a software package which really suited how I wanted to record and track my golf game.

The spreadsheet had become a bit of a mad collection of formulas and macros to gather and analyse game scores and was, to be honest, a pain to maintain and reset each year.

Today, StrokePlay contains all of the features I need to actually record my scores and get the same information that I can see in the spreadsheet.

StrokePlay is, at it’s current level of development, the software package I wanted!

Friday, March 19, 2010

Sense of achievement

It’s 10pm on Friday night and I’ve just completed a finished a chunk of coding which represents the last real “plumbing” element.

The charting functionality from ChartDirector has been wrapped in a generic class suitable for StrokePlay and I’ve connected it to the GUI and the SQLite database wrapper.

The first chart to be added was on the player home page:

firstchart

It’ll receive a little more work when I settle on the common look for all of the charts but this little image shows a working chart rather than the previous static placeholder chart.

I’m actually feeling pretty good about this bit of work so I’m leaving it there for tonight.  Time for a celebratory glass of wine, feet up and throw on a movie.

I’ll work on why the Par for The Old Course is showing as zero and why the course hole names disappear then reappear between entering them and using them for the first time on a scorecard tomorrow!

YACC

Yet Another Custom Control.

Well, two really.

First one up is a modified ComboBox with background colouring to allow me to display the tee colour in the drop down list and on the edit control in the “Tee Played” area of the scorecard.

yacc

Second one is one that’ll be used more throughout the application, it’s a list control with additional sub item formatting.

The image below shows it displaying coloured tee played information when displaying a list of recent rounds played.

yacc2

Both controls were pretty straightforward to code with the only extra work being to handle other bits of the application using the user data value on the items in the combobox and list control to store information relevant to the item.  I needed to expand that area so that I could also store formatting information against each item.

Saturday, March 13, 2010

Drawing Tablet….at last!

I’ve always wanted to get hold of a small drawing tablet for doing small web graphics and tweaking images but I never got around to it and kept getting frustrated when trying to make small adjustments to images using the plain old mouse.

Not any more!  My graphics friend who’s helping out on StrokePlay recommend the little Wacom Bamboo range, which he uses at home for just this type of work.

So a quick order on Amazon yesterday afternoon saw the little tablet arriving this morning courtesy of Amazon Prime (great idea if you order a lot from Amazon over a year). 

Just need to plug it in and have a play now.

Groupbox Revisited

The work on the application look and feel had me pondering a change to the custom groupbox I’d developed for StrokePlay.

With the new windows looking much better, and more professional is has to be said, the old groupbox looked a little tatty/gaudy.

Much of that is just down to colouring but in order to fit in more with the panel look that the MFC Ribbon control uses I’ve added two new styles to the groupbox and made some changes to the border drawing. The colouring on these samples hasn’t changed from gaudy/tatty but it gives a view of the additional groupbox styles.

Panel

A simple filled round rectangle with a title bar which I can use to place controls such as this demo graph.

gbpanel 

Control Header

I also call this the “Buddy Header” since it’s just the title bar from the Panel style which I can lock to the top of another control, a list control in this case.

gbbuddy

Wednesday, March 10, 2010

Monkey Business

I think my dormant code monkey has awoken.

Honestly, I can’t remember the last time I had this much fun and enjoyment just cutting code.

1am seems to be a reasonable finishing time at the moment – for a day that starts in front of the PC at 10am (post school-run) and breaks for food and dog walking.

To be honest, 1am is only finishing time because I’d feel guilty if I woke everyone else up when I made my way upstairs to bed.

Help for the graphically challenged

I develop software, I write code, I write algorithms, I build applications.

Creating graphics?  Hopeless, no artistic flair whatsoever.

Thank heavens I have a friend who does have some flair with the coloured pixel.

I’ve enlisted some help with the icons, graphics and colouring for StrokePlay.  It’s paying dividends already, with the suggestions, comments and mock-ups eliciting a number of oooo’s, aaaa’s and “wow, cool” from me.

So today has been spent tweaking this colour and re-positioning that button.  Very enjoyable it has been too.

Saturday, March 6, 2010

Famous last words

Yesterdays post contained the phrase…

It looks good at the moment…

Yeah, looked even better at 1am this morning when I was scratching my head still trying to work out why I was getting a runtime failure when I used the Ultimate Grid control, now neatly packaged in it’s DLL and used by my newly created GUI DLL.

I slept on it and the problem was a couple of missing headers (afxole.h & afxdisp.h) which seem to be required by the Ultimate Grid when packaged in a DLL.

Of course, this is mentioned in the comments on Code Project but at that time of the morning I obviously skipped over that comment.  I mean, the title of the comment wasn’t even connected - “Run-Time Check Failure '#0” :D

Friday, March 5, 2010

Breaking up is hard to do

I took a time out yesterday and today to fix and issue I should have dealt with earlier in an interaction between my Player, Course and database objects.

It started as a simple object interaction issue but the more I looked the more I decided I was unhappy with some other interactions.

So I took time out and re-structured the code and improve the packaging.

As I type, the compiler is whirring away on a full build of the new structure.

It looks good at the moment and I’m certainly much happier with the new build structure.

I also completed the ASP membership process so I’m filling build times catching up on the forums.  There were a couple of interesting discussions regarding licence generation and software protection that I need to go back and look at.

Thursday, March 4, 2010

Association of Shareware Professionals

Because I wasn’t developing my own software a while back I’d let my membership of the ASP lapse.

When I was a member I found the forums great for getting the kind of information and tips that I’m asking myself right now.

So, I submitted the membership request today and should be a re-newbie soon.

Monday, March 1, 2010

Drowning under hats

Bob Walsh speaks about the number of hats that a Micro-ISV’r wears when trying to get the first product going.

It’s Monday morning and after spending some of Sunday sitting down and looking at what I still need to do I feel a bit like I’m drowning under all of those hats.

This week, in addition to continuing development,  I want to:

  1. Get the course table moved to a new shared database.
  2. Plan/Mock-up the website for StrokePlay
  3. Look at payment methods and providers such as Google Checkout / PayPal etc.
  4. Find out if there’s a reasonably priced software protection/licencing component that I could easily buy in and integrate.

I’m tired already!

Take the hit now

I was sitting looking at my list of features not going into the first version of StrokePlay and how I would split them between the three planned editions when I noticed that my database design might cause a problem later on.

I’d put the table used to store course information for a player into the players own database.  Problem with that is when StrokePlay’s league and competition features are added I need the ability to share course information across multiple players and for that information to be consistent for each player.

The adjustment is simple enough – I just need a shared information database which can hold the course table.  So todays task is to take the development hit now and tidy up the table location rather than waiting until the next editions of the application are in development.