Brian, how long have you written "The Delphi Clinic" for the Delphi Magazine?
I took the problem-solving QA column over from Bob Swart back in Issue 5, which was in January 1996, when The Delphi Mag was a bi-monthly publication, and have been doing it ever since. As I type this I am compiling the column for Issue 98 so that will be the 94th instalment (!). Mind you I've had other articles in The Delphi Mag since Issue 2 (July 1995). It seems this is a long-term arrangement.
Will your columns (TDC) ever be published as an anthology? I think they would be a great resource for Delphi developers.
It's crossed my mind many times as has the note to myself to never write a book again (see answer below). I find a notable lack of time for organising these things and often wonder about other book authors and where they manage to get it from. I certainly refer back to my columns on a regular basis in troubleshooting jobs and so if it were to be done the book would be very useful to me personally. However so much of the stuff in the older columns is either specific to very historic versions of Delphi or needs updating a lot. It would be an arduous task to revise it all and compile it, and my chief concern is that if I took the time and trouble to do so, when the book came out it would be just too late to catch the mass of Delphi programmers currently in existence. I don't really fancy going through that Borland Pascal book farce again.
How has writing "TDC" changed your life?
Having the Clinic as a monthly chore has had various effects on my life. The first notable thing is that it ensures my email inbox is always brimming right to the very top with queries from developer around the world. This keeps me occupied a lot during the day, trying my best to respond to each and every one of them, which inevitably and regretfully is something I find difficult to achieve all the time. And of course along with simply responding to the messages there is the research into the problems that look like they could be interesting to readers of the magazine. So a follow-on effect is that it has severed the number of hours I have available for other bits and pieces :-)
Of course it also keeps me doing what I like best, spelunking around in the guts of the Delphi source code, meddling with Windows API calls, finding how to do things, why things do what they do, how to make them do it differently. I've amassed a large database of information (database being a loose term meaning big directory tree of Word documents), which proves invaluable in my troubleshooting work. And of course in between client jobs it keeps a few pennies trickling into the coffers.
Certainly it gets good feedback from the readers, which is always a joy to receive. I put a few of the comments I received on my Web site: http://www.blong.com/BrianBio.htm#ClinicComments.
Where do you live, exactly? If you are not native to that area, where are you originally from?
I live in the South East of England in the UK, currently in the village of Monks Risborough in the county of Buckinghamshire to be precise. Most of my life has been spent in the South East starting out in Maidenhead, although I did have a couple of years in the North East, in Hull, whilst at University there. That particular University, incidentally, is where LCD technology was originally developed.
How did you get started in programming (How were you introduced to it, when did you realize you wanted to pursue it as a profession)?
When I was 13 or 14, around 1982, I was given a BBC Microcomputer Model B (or a Beeb, as it was known). This was a popular machine based around a 2MHz 6502 processor, which gained around 60% market share in the UK. It had a BASIC variant (BBC BASIC), which included an inline assembler and it offered loads of operating system options to the user. Buying professional games was the obvious first attraction - emulations of the emerging arcade games like Scramble, Pac-Man, Defender, Galaga, Missile Command and so on, as well as adventure games.
The computing magazines of the time would be heavily populated with BASIC program listings for keen readers to type in. These would inevitably contain the odd typo that you would need to fix in order to get the game working (fortunately the Beeb came with a full manual on its BASIC implementation to help get you through these little issues). But one particular program, an implementation of Breakout, was riddled with problems; missing letters, spelling mistakes, incorrect punctuation and so on. By the time I had got through all these issues and had the program working I had already read and applied most of the BASIC reference manual and so could program in BASIC. This let me enhance the program and make it more interesting than it started out and I really liked being able to do this.
So a really bad editing job turned out to be extremely beneficial to me as a youngster and set me off along this computer-related path.
Curiously I have just recently regained some of my interest in the Beeb after happening upon an emulator for it on the Web. After a twenty year gap I am once again enjoying Zalaga (a Galaga rip-off), Chuckie Egg & Frak!
How many years experience do you have as a programmer? What was your career path to where you are now?
My trusty Beeb and I met in 1982 and I was programming as soon as I was comfortable using the thing, so that makes around 21 years. However this first question has an inherent flaw in it, making the assumption that I am a programmer. Professionally that isn't something I do much of. I teach people how to program (in Delphi, C++Builder and C#), do troubleshooting work with projects that people are working on and also do technical writing about Delphi, C++Builder and C#. Training, troubleshooting and technical writing, but no programming.
After school I spent three years at University studying Computer Science and left with high hopes of getting a nice job, but spent nearly a year unemployed. Eventually I found an opening in the Technical Support department at Borland UK, with the group dealing with the programming tools (I say "group", but what I mean was "me and the other guy"). This meant handling all the queries and questions to do with a wide variety of products. They ranged from the better known such as Borland Pascal, Turbo Pascal for Windows and Borland C++, to the lesser known such as Turbo Prolog, Turbo Basic and Turbo Assembler. I spent about 3 years tackling these issues and that time gave me ample opportunity to learn these products inside out and learn how to approach technical problems as they arose.
After a bit of shuffling around in other positions not directly related to messing with the tools and not really enjoying it too much, I settled into a pre-sales support position for a while (so much like before really to some extent).
I left Borland mere seconds before Delphi 1 was released and slipped straight into my current role.
What is the name of your business and/or employer?
I'm self-employed and I have been since leaving Borland. I advertise myself quite simply (but slightly lengthily) as Brian Long Consultancy & Training Services. When gainfully entrenched in work I am busy training developers or troubleshooting projects, covering Delphi, C++Builder and C#. This work takes me to various places around the UK and also (less frequently) around Europe.
What tool did you use prior to Delphi?
As mentioned, a variety of tools occupied me before Delphi was launched. My preferred tool was Borland Pascal (and its companion Turbo Pascal for Windows); I even wrote a trouble-shooting book on the subject but by the time it came out most Borland Pascal users had moved onto other things and so it flopped. Not a good result and one which put me off writing any other books.
What languages do you know besides Delphi? Which ones do you currently utilize?
"Know" is a relative term; I've used many languages over the years, most of which I've completely forgotten the details of over time. They would include Fortran, Basic, 6502 assembler, Intel assembler, Occam, Prolog, Lisp, BCPL, C, C++, C#, Pascal, Object Pascal (or Delphi as it was renamed).
Delphi, C++ and C# are the only ones that I use these days
Would you recommend a career in programming to young people today?
Well, yes of course, if that's your bag. I like it and many other people do too. If you have a logical mind it seems to work very well. Naturally there are many people who will not enjoy such a career, as is the case with any type of job. Horses for courses, as they say.
If so, what courses would you recommend they take? What languages/technologies should they key on?
The progression of people into being good programmers is often circuitous. I don't think there is necessarily a fixed recipe for becoming a programmer through doing certain specific courses. Different people require different stimuli to push them in certain directions. Certainly a grounding in mathematics is helpful to start with, as is having a rough understanding of the architecture of a basic computer.
Similarly, I don't think choosing to focus on a particular language is necessarily that helpful; after all, once you know one language it is quite easy to learn a new one. The key thing is understanding the fundamental elements present in procedural and OO languages.
What is your web site URL?
My home page is http://www.blong.com or http://www.blong.co.uk
What 3rd party tools do you find essential?
I occasionally use a variety of tools, but the ones that keep proving themselves again and again, particularly in troubleshooting work, are from http://www.sysinternals.com. In particular their FileMon (file access monitor) and RegMon (registry access monitor) utilities can be invaluable when trying to work out what's going on when faced with many a problem.
When cogitating over a sticky problem, a relaxed mind is usually an essential asset. To help in that regard I often have Ryan Geiss's Drempels running (http://www.geisswerks.com/drempels); this replaces the Windows desktop background with various patterned textures that writhe and undulate, blurring and morphing into one another.
When writing articles it's good to have some music playing. I like using WinAmp (http://www.winamp.com) as a CD player, particularly with Ryan Geiss's Milkdrop plug-in installed (http://www.geisswerks.com/milkdrop). This, again, gives an animated desktop background with really eye-pleasing patterns that bounce, gyrate and flash in time to the music.
What do you hope to see from Borland, especially as regards Delphi, in the future?
Quality and success.
Where would you be without Delphi?
In a less happy and confident place, work-wise.
Where would Delphi be without you?
I'm quite confident that without me, Delphi would still be happily sitting installed on the PCs of many a happy developer around the world. However the help file would be missing the example code for the AssertErrorProc System unit variable.
What effect do you foresee C# and VisualStudio.NET having on Borland in general and Delphi in particular?
There's no denying that it ups the ante, adding pressure onto Borland. Visual Studio.NET is already being used by many developers around the world and Borland have a challenge on their hands trying to ensure they keep enough of a market share to be viable. This challenge is to be met (at least initially) by C#Builder and Delphi 8; I'll keep my fingers crossed and hope for the best.
C# is a great language (other than the re-occurrence of the goto keyword - ugh!) and it is being adopted by many coders who are targeting .NET applications. I don't like trying to make predictions about things as, let's face it, it's all guesswork to one degree or another. I love Delphi and owe it a lot and so I hope it survives this new world and comes out with its head held high.
What do you think of the .NET framework?
.NET is a great step forward by Microsoft. Too long have they messed us about with thousands of individual APIs, named with no organisational plan in mind whatsoever. At last we have an OO system implemented in an elegant and simple manner, removing all the unnecessary unwieldiness present due entirely to the C and C++ languages previously targeted.
We have language interoperability, security, scalability. Support for local console and GUI apps as well as Web apps and services; it's got everything including the kitchen sink (well, almost everything - it doesn't directly let you make a beep on your speaker).
And being partly architected by Anders Hejlsberg, it has the same smell of ingenuity as the VCL did when it was introduced 8 years ago.
In short, I love it.
How many hours per day do you spend programming/at the computer?
Typically 8-10 hours a day, on and off.
How much time do you spend on the newsgroups/surfing the web each day?
About an hour normally. Time for that sort of thing is tricky to locate. I'm usually rushing around trying to pull material together to meet a deadline.
Which programming web sites do you have bookmarked?
There's a variety of Delphi info sites and Windows coding sites that flitter in and out of the Favourites list. However the ones that stand the test of time are on my Web site's Links page. I do like keeping up with industry news occasionally on http://www.theregister.co.uk.
How do you keep current with your programming skills?
I keep up to date with Delphi by answering questions for my Delphi Clinic column in The Delphi Magazine, and doing troubleshooting jobs. This often forces me to have my head stuck firmly under the bonnet (hood for non-British English speakers) of the VCL and RTL.
General Windows programming knowledge is also kept up to date by the same thing, which has me scouring the MSDN library or the Internet for key snippets of information.
I don't subscribe to any of the fashionable computer mags (or any of the unfashionable ones for that matter). I don't get time to read them and when I do I rapidly tire of skipping past the adverts. Occasionally I'll pick up a copy of MSJ if I see it in a shop (definitely if going through Schipol airport in the Netherlands as the news store there always stocks it).
Which Borland Conferences have you attended?
I've been to several over the years, both in Europe and America. The first one was the '94 European Paradox Conference, but not being a general BorCon I guess that doesn't count. I've been to 5 European BorCons, the 4th, 5th, 6th, 7th and 8th (held between 1997 and 2002) and 3 American BorCons, the 10th, 12th and 13th (1999 to 2002). I missed out on the 2000 conference through having a son that year, but I'm continuing the general trend this year by being at the 14th BorCon in November.
Which was the best one, and why?
Going to an American conference is always good as it gives me an excuse to jump on a plane and go to a sunny climate. Of course the socialising is important too, although most of that is done with other speakers. Probably the best one for me was the 13th BorCon last year (2002) since I had great feedback whilst there and was later announced as Best Speaker, based on the feedback from the attendee session evaluation forms. That was a nice piece of news. Although in excitement stakes the 12th BorCon has to be the winner, thanks to our forced emergency landing in Las Vegas not long after take-off. This was caused by the pilot having some form of suspected heart attack (he was okay in the end though), which understandably caused a level of consternation in the cabin.
Who do you consider to be the best programmer you know personally, or know of?
I don't really have much exposure to many other programmers or at least don't get to see what they're capable of. Out of the few whose wares I have sampled and names I know of I have to point at Anders Hejlsberg, Danny Thorpe and Chuck Jazdzewski.
What is your "claim to fame" outside the realm of programming?
Erm. I'm not sure I try and claim fame anywhere, inside or outside of programming. If you are asking what I might be good at outside of programming then I think the best I can offer is air hockey, juggling 4 balls or a spot of origami from time to time. Oh, and as a youngster I was in the British Rubik's Cube championship (remember those?). I didn't win though.
If you weren't a programmer, what do you think you'd be?
Wondering what to do.
If you were given 30 seconds of free television air time, to be broadcast all throughout the earth, and could say anything you wanted, what would it be?
I'm afraid my ego is too tiny to think that anyone would freely give me 30 seconds on the telly. I think when told I would say, "there must be some mistake" and leave. Of course if pressure was applied, I'd consider just showing the Lobby scene from the Matrix with everyone's speakers turned right up. Yeah, it's a tad violent, but so is a lot of the most entertaining and exciting video entertainment.
What do you like better, programming or writing about programming?
Let me take you back to my pervious response about not being a programmer, at least not in the conventional sense of the term (okay, fair enough, I've written a number of little utilities to help myself out over the years...). Most of the time I am in the position of being what you might call a "back seat programmer", where I tell people involved in a project what they should be doing, but don't do it myself. Another term I sometimes use is "hit and run programming": I go into a company, do a little piece of coding to achieve something they're having problems doing or to fix some issues they're having, and then disappear out the door.
To be honest, that type of programming is great. It's done in short blasts, I don't have to worry about maintenance issues, I don't get involved in late night coding sessions hunched up over greasy Pizza boxes, don't get ever-decreasing project deadlines, and so on. However I wouldn't relish the prospect of regular programming work. I'm far too interested in pulling things apart to find out how they work and find interesting, uncharted areas to be focused on coding up a system for a few months or more at a time. So that's what I prefer doing, finding out how things work and how to fix things, kinda like the stereotypical little boy in a grownup's world.
The business of writing about all this stuff is a doubly beneficial side effect. Firstly, developers who read the things I write seem to like what I do, helping them understand or use tricky parts of some product. But also, and just as importantly from my point of view, is that it acts as a backup for my memory. After researching some topic, finding out all I can about it and then writing it all up in one or more articles I move on to a completely different area. A couple of focus shifts later and I can barely remember any details of the topic I was working on a few months before. Having detailed write-ups of all the things I look into means I have a good record of what I've discovered and can search through my hard drive whenever I need to know about something I've looked into at some point.
Since it ends up being so helpful for myself I'd have to say that writing about programming wins hands down for me.
What is your favorite programming book?
I don't think I have one, at least not one that springs to mind. I have a lot of programming books, but I mainly just dip into them as references. Certainly several have been discarded or ignored due to their lameness, but as for favourites....? Programming-related books that have had an impact have included the old 1990 Petzold classic "Programming Windows 3.0", Danny Thorpe's "Delphi Component Design" and Douglas Hofstadter's "Gödel, Escher & Bach: An Eternal Golden Braid".
What is your favorite non-programming book?
Tricky one. I've never been very good at maintaining an idea of my favourite in any category really. As I read one book and find it really cool, it becomes my current favourite. But then another one will jump in its shoes shortly after. If I were to judge it on the most times I've read a book it would probably be Spacetime Donuts by the cyberpunk/transreal author Rudy Rucker (http://www.mathcs.sjsu.edu/faculty/rucker), although I suspect his White Light might take the lead soon.
What is your favorite food?
I'll take that question from a particular angle and go for my favourite vegetable. I'm a big fan of the humble potato and all the things that come from it; I give thanks to Sir Francis Drake for bringing this tuber to England in 1580 and Sir Walter Raleigh for doing the same for Ireland in 1600.
Note from the interviewer: Will wonders never cease? Not only did Londoners drink coffee before tea, they also had the spud before the Irish!
What is your favorite beverage?
I'm British so by written dictate it must be tea or lager.
What is your favorite color?
Dark blue. Or black. Probably dark blue (I've had three cars in that colour over the years). Although my wardrobe is mostly black.
What is your favorite movie?
As with the book question I'd have to go with the one I've watched the most, which changes as years pass. At one point it was the 40's film "The Man Who Came To Dinner", at another point it was "The Blues Brothers", then there was the Merchant Ivory film "Room With A View" and of course "Pulp Fiction". Recently it's been "The Matrix" and I'm sure there are others from in-between times that I could recall with a little mental effort.
What is your favorite song?
I have no idea what my favourite song is so instead I'll mention a couple of my favourite albums over the years. One CD that remained in my car CD player for more than a year was Radiohead's "The Bends". Another one that had a large number of listens in close succession was "His 'n' Hers" by Pulp. Long ago it was "I Just Can't Stop It" by The Beat (or The English Beat to anyone outside England). Currently I'm having trouble keeping away from Radiohead's "Hail To The Thief"
Finally, the question I always like to ask: What would you rather eat: the fat from behind a caribou's eyeball, or a frosted poptart?
This one's easy. Being a vegetarian, the eyeball goes straight out of the window. It's a poptart for me any day.
This interview took place via e-mail August 2003.
Clay Shannon is a Borland and PDA-certified Delphi developer and the author of "Tomes of Delphi: Developer's Guide to Troubleshooting" (Wordware, 2001) as well as the novel he claims is the strangest one ever written, "the Wacky Misadventures of Warble McGorkle" (see Wacky Warble, etc. for more information on the 4 Novels application, which contains this and three other novels he has penned).
You can find out more about Clay at: Clay's personal page
You can look into Clay's shareware and determine his current availability at: Clay's business page
You can contact him at: BClayShannon@aol.com