Welcome to our continuing series of Code Project interviews in which we talk to developers about their backgrounds, projects, interests and pet peeves. In this installment we track down another prominent Code Project member Paul Griffin.
Paul joined The Code Project fairly recently, but has already amassed an almighty reputation by way of helpful Q&A answers and witty Lounge banter.
Who are you?
I'm Paul Griffin, and I live just outside Ystradgynlais in Powys, Wales. Fortunately for me, I am self-employed and work from home, so my daily commute is about six feet and I rarely complain about traffic congestion on the way ... As a self employed one-man band I have whatever job title I feel like on the day, but generally settle for "Software Engineer" or "Music Critic for Exchange & Mart" if I am at a social event – it reduces the number of conversations that die immediately or continue with "can you fix my computer?"
What do you do?
I develop software for Windows, web sites and embedded devices – the later being my real love. As a result, I regularly use C and Embedded C++, C# and various assemblers, although I also cope OK in Visual Basic. For Windows, I use the .NET Framework almost exclusively, though I started with V1.0 of MFC and C++. (I wouldn't touch it with a ten foot pole now.)
As far as clients go, I can't reply for the usual reasons, but I have been involved in development of industrial inkjet printers, listen-only LAN cards, financial information data collection, ultrasonic thickness detectors, and a wide variety of other devices and applications.
What is your development environment?
My hardware and software is pretty much out-of-date: a dual-processor Xeon 2GB HP box, with about 2TB of storage, plus twice that in NAS backup storage over the gigabit section of the house network, and a single monitor. I use an Epson printer that is full of cat fur, but my window overlooks the apple tree outside which is older than I am.
Input devices are a Logitech Trackman upside-downy mouse (because I love 'em) and a Wacom tablet with pressure sensitive pen for graphics work.
Software-wise I use Visual Studio 2008 as I haven't had the need yet to move to Visual Studio 2010, although I installed it about six months ago. Other software: OpenOffice, PaintShopPro 9 (the last version before Corel got their hands on it, bwwwaaaa), SVN, SQL Server 2008 R2, Chrome, PSPad programmer's editor and Expresso fill most of my needs.
I updated my hardware about a year after I originally answered this, but I didn't update this!
So... It's still not state of the art - or even close - but it's now a Acer X1920: dual core E6700 processor, 4Gb Ram, 1TB HDD, and the integrated video was disabled in favour of a GeForce 8400, with an external USB3.0 2TB and Windows 7, and the NAS is now 4TB of RAID5. The printer has less cat fur, and I moved my office into what used to be the freezer room downstairs so I don't overlook the Apple tree any more but I am closer to the front door, and it has a more "office" feel than the previous location. I also updated to twin monitors in Feb 2013 and now run two 22"ers, one in Portrait for Browsing / reading / writing documents, and one in Landscape for Visual Studio. Which is now 2010 rather than 2008. I'm also considering updating PaintShop Pro to the a 64 bit version, but that means dealing with Corel so I'm still very resistant.
Open Office was replaced with Office 2010 as it was just a bit too...amateur, and Outlook express wouldn't work under Win7/64. Word I still hate, Excel I still love, and the ribbon is still a PITA.
I've also added Sil to my "really useful tools" list: See the Intermediate Language for C# Code[^] and reluctantly agreed to put up with Steam in order to run Duke Nukem Forever. But...it's a bit too linear compared to the original and I've not finished it yet, so I suspect I didn't get the best part of that deal
What new tools, languages or frameworks interest you?
At the moment, I'm sticking to C# for Windows and web development. I dabbled with WPF, but just didn't get the feeling it was mature enough. The cloud I am avoiding until it matures and you can tell what is going to happen with it. I remember mainframe days, and don't really want all my data out of my control!
What is your coding pet peeve?
Coding pet peeve? The lack of education about SQL injection attacks in computing courses. Criminal.
The use of default names for controls. Stupid!
Leaving the comments for later because "I'll come back to it…". Grrrr!
Favorite naming convention? I try to stick to camel case, but Hungarian was soooo useful that I find it difficult to stop – I still automatically name my buttons "butXXX", integers "iXXX" and so forth. I'll try harder to stop!
Indentation? Easy: indented to block, with a block definition everywhere a single statement is allowed, so every if, every for has a block, even if it contains only one statement. Caught by that in the past, and not getting caught again!
I don't like K&R style as I consider it inconsistent: If you would indent a single statement, why not the whole thing? But I really hate the 1TBS style with a passion!
How did you get started programming?
I have to whisper this bit: Cobol on an ICL 1900 running GEORGE 3, with punched cards, at university. Six punch machines, 600 students, one machine which could print on the cards. Psychotic computer operators who actively hated students (can't say I blame them).
How has the developer community influenced your coding?
The developer community is full of generous, intelligent people who will give their time and effort to help others along. It's also full of a***holes who couldn't find their own backsides with both hands and a map. Telling the difference is the big problem.
In ten years, I hope to be here, pretty much, doing much the same as I am now. I started as a Junior Programmer, and worked my way up to MD through working at three companies. Then I broke my collarbone falling off a brand new Ducati the shop lent me for the day, developed a frozen shoulder, and was off work for four years because I couldn't go anywhere without being in agony, and couldn't use a computer. At the end, I realised that I didn't need the stress I hadn't realized I was under and decided to take it easier. I'm happy where I am, so don't want to change unless I have to!
What advice would you offer to an up-and-coming programmer?
Develop a thick skin, a sense of humor, and listen to your users. After that, learn to program embedded devices from scratch in assembler. You will understand and appreciate IDEs and debuggers a whole lot more!
29 Apr 2014: Hardware and software updated.