Embarcadero’s Rad Studio XE2 World Tour

I recently attended the Rad Studio XE2 World Tour designed to show off the virtues of the latest version of Delphi. Having used various versions of Delphi over the last 10 years I thought it would be interesting to go along and see how things have moved on.

I’m currently using Delphi 2010 for the vast majority of my development work and this currently restricts me to 32-bit Windows development. A new component added to the XE2, named FireMonkey, changes this restriction. You can now build executables from Delphi for 32-bit & 64-bit Windows along with Mac OS X and even iOS!

This post is a quick review of the main new features I learnt about at the workshop and how they may be of use.
Continue reading Embarcadero’s Rad Studio XE2 World Tour

Application Version Numbering

Every program or app has some kind of version number. With Mac OS X, the X is a Roman numeral for version 10. OS X Lion relates to version 10.7 and the latest release, at the time of writing, is 10.7.1.

OK so what exactly do all these numbers mean and what is the best way to use these numbers when creating your own applications?

I am kicking off a new ‘Programming’ category today. As this is a big part of what I do for a living I thought I should use this opportunity to impart some my knowledge and/or views. To start here is an explanation of how I view version numbers and my recommendation of how to decide which numbers to use.
Continue reading Application Version Numbering

Taking Back Control

Look Out!This whole working for yourself thing is a huge learning curve. I really pushed myself with lots of late nights to reach my recent deadlines. One night I was up till 5:30 in the morning getting ready to deliver a new program to someone the following morning.

So two out of the three projects were delivered pretty much on time. I released the Ski Pad iPhone app last week and it seems to have gone down well. The second project I was working on was a desktop program, developed in Delphi, to track jobs and print tickets for a skip hire company.

The other project… Well every time this project gets discussed there seems to be more issues that add to the workload…
Continue reading Taking Back Control

Delphi Database Access Frustrations

I have been looking at using Delphi for a particular project I have been working on that requires access to an remote database. This should be a fairly simple task but unless you have a high end version of Delphi you cannot use the built in database drivers supplied with the IDE.

Annoyingly the professional version of Delphi only allows local access to MySQL or Interbase databases via their dbExpress drivers which is no good for this project. To get access to remote databases, which I think is a pretty basic need, or even local access to the other databases available I would need to shell out well over £1000!

Luckily there are other options out there but they vary in maturity, stability and cost so finding the right solution may take a bit of research. Whichever one I choose I will lose some of the functionality as the dbExpress drivers are built into the development environment and do look very useful. Unfortunately, due to the cost, I am unlikely to ever get to use them…

I could stick with Firebird as that is what I have used in the past but the Delphi drivers provided are meant for Interbase and so have a few quirks when used with Firebird. Going forward this may not even be an option as Firebird is likely to change in the not too distant future and could break the compatibility with Interbase…

I have had success with Zeos database drivers in the past but when I recently tried the the latest version using Delphi 2010 they were far from stable. I would almost go as far as saying far from usable!

Another database that sounds ideal for some simpler applications is SQLite. This appears to be the simplest database out there with no need to install a full database server like MySQL or Firebird. I am yet to find a decent way of accessing it from Delphi though…

Creating Functional Specifications

Flapping CootI have recently had to start writing a Functional Specification for a development project I hope to start working on soon. OK so what exactly is a Functional Specification?

Even though I have been a developer for many years now I haven’t had a great deal of experience with complete specifications. This meant that I had to go and do some background reading to find out a bit more about what exactly was involved. So I thought I would write a post to summarise my findings.

The idea of a Functional Specification is that you define the scope of the problem, design the program and describe exactly how things are supposed to work, in detail. This is meant to cover the program purely from the potential users point of view.

If you want to get into technical details of how the project is to be written then that sort of information would be provided in a second document called a Technical Specification.
Continue reading Creating Functional Specifications