From Free Pascal wiki
Jump to navigationJump to search


Name: Mike Thompson
Nationality: Born in the UK, raised in the UK, Africa (Zambia) and Australia. Live in Australia. Work anywhere in the world. I am an Earthican!
Contact: Either PM me on the Lazarus Forums, via the Google+ Lazarus Group, or direct email at

A note about contacting me. As a freelance worker offshore I spend half of each year at sea, where I work 7 days a week, 12 hours a day. You're not going to get a quick response when I'm offshore, and this is the reason I keep vanishing from the Forums. When I'm at home, I try to spend a lot of time with family, so again, you really shouldn't hear back quickly from me. Doesn't work out that way though, when I'm home I tend to stay glued to a PC, either coding or on the forums :-) We all have our vices :-)


Degree in Electronics from UWA (took me 5 years to complete a 4 year degree, played a lot of cards though) Developer in Delphi (3 through 7) Manager of Delphicans (Delphi 5 through Delphi 8, never personally used 8 though)

I spent 13 years of my life devoted to one brand of subsea inspection software, then finally worked out the users of my software earned way more than I did, so I switched sides. Nowadays I work offshore in the Oil and Gas Industry, inspecting all manner of subsea assets utilising either Divers or ROV's. All data is gathered electronically and stored in various SQL databases. I've written a small number of tools, all using Lazarus, that make my job offshore oh so much easier :-)

For a simply excellent glimpse of life offshore, read the following blog. Written by Reto Meier (he of current Google Evangalist fame). Way back when he and I used to work for opposing companies in Perth developing identical software, and living identical offshore lives :-)

I *really* wish I'd written that article :-)


Inspection SQL Reporter

Unpublished series of 4 apps that extends the basic concept of a SQL Browser by providing 3 grids, a tree view, and several filters (all in a single dock, many instances of this dock can be created, each distinctly customisable). Every single UI element is customisable by the knowledgeable user (and includes including relationships between the grids, tree and filters), and once configured is easy to use for the non-knowledgeable user. Reason it's not published is due to some lazy coding by me. I've got 4 instances of this project, all slightly different, each connecting to different backends (MySQL (Zeos), MS SQL (SQLdb ODBC), Oracle (Zeos) and SQLite(SQLdb) ). I need to merge all these back into a single project before publishing, but before I do that, I need to rationalise the database connections, which means solving a BLOB issue with ZEOS/MS SQL. I intend to open source this, with a caveat that the software cannot be used to produce inspection reporting software for the oil and gas industry. (all the concepts within are generic and optional, and will apply to any SQL database (sure, the tree will only be useful if there is some form of hierarchical data partitioning in use, but it's use is optional anyway) It's also an insanely OO project. Turns out I need a team around me to curb some of my excesses - sigh... Every single layer of functionality is wrapped in a distinct OO layer, and this includes the UI, which is Frame heavy...


I'm just a contributor to this project. It's the first Lazarus project I've been formally involved with, and I'm enjoying it. Selfish reasons for getting involved though, I need a decent DOCX Writer to finish Reporting capabilities for Inspection SQL Reporter.

Lazarus Forum Support

Is this a formal project? Dunno, but I really enjoy helping out in this environment. I've a tendency to answer fast without fully grokking the original question, then revising my answer many times. Guess I need to bring that under control...


Cross-platform Video Playback I use DSPack for video playback. It's the single element restricting me to Windows. Love to move away from this. Unhappy with using VLC PLayer, as this introduces an external requirement on my app, and my world is dominated by IT departments who use their powers for EVIL, not for the betterment of mankind. So I need a crossplatform video player. Outside of this FFMPEG seems to me to be my best bet. What little research I've done shows available headers are way of date. So I need to grok header development, and get these up to date. Then I need to grok FFMPEG API, and produce a player (this last bit doesn't bother me, I've produced eminently workable apps using APIs I've only little understanding of - copy/paste is my friend - it was two years after I've produced my first commercial DirectShow app that I started to get the hang of what that API was all about)

Contribute Fixes to Lazarus I keep sneaking a look at the bugtracker and think "I could do that". My first attempt (back in 2011) was a dismal failure. 4 months stuck inside GTK2 TListView, and none of my code was accepted. You live and learn though :-) (And I'm still not convinced the failure was entirely my own fault - I don't think we'll ever get a compatible TListView out of GTK2, our TListView is too WIN32-centric. I believe Felipe (Android Controls) and Graeme (fpGUI) have the right idea, heading down the Owner Draw path...

Why Cornflake?

I really must post blog articles more often :-)