Adam’s Jan 2023 Meeting Summary

  • Programming a balloon tracking system in Free Pascal and Delphi – Dave Akerman
  • Clean Code with Delphi – Marco Geuze
  • Open Mic for Mote /Fleck/Gobbit/Tools / Tricks / Ticks

Adam’s Summary

On-line Meeting convened by Jason Chapman, with his usually intros and start up discussions. Followed by 3 really useful presentations.

Programming a balloon tracking system in Free Pascal and Delphi – Dave Akerman

David has an amazing engineering application of multiple sources of data and expertise linked to the process of launching very high altitude balloons, and monitoring data and photos they transmit. David manages the whole “toolchain”, making the electronics that go in the balloons, and writing the code for PC and Phone Apps which receive the data.

Electronics consists of:

 * GPS unit (to verify location constantly) uses “UBlox” which work at high altitude.

 * CPU / Processor board (actually manage data) Usually a Raspberry Pi.

 * LORA unit (long-range-radio transceiver)

 * Any other sensors you want, weather, pressure, cameras for photos etc.

Dev Setup:

 * David Devs on the Raspberry Pi without connecting a screen or keyboard. He writes code using Notepad ++, and Putty as a terminal client. Programmes are short and consist of mechanisms to parcel up data from balloon sensors and send these to a radio transmitter in a suitable format.

 * On the PC / Phone App side, David uses TMS components and writes his own code to receive data arriving from a radio receiver via the COMM port of his devices.

A really great wide-ranging talk from David. Great to see details like the on-screen work-bench program he uses to monitor outputs from the balloon sensors and radio transmitters to enable system debugging.

Images from the talk are attached to give some idea of the content.

Clean Code with Delphi – Marco Geuze

Marco works for GDK Software a Delphi-focused software house.

His talk built on Robert Martin’s “Clean Code” book. It was a good, clear talk with lots of examples, and (as always with “how to write code” talks) generated a LOT of discussion. All of it good natured.

A really good point was that we spend most of our time READING code not writing it … so the most important principle is for code to be readable.

Some cute acronyms, which most of us already know, but which were good to go over and get our teeth into:

 * KISS (Keep it simple stupid)

 * DRY (Don’t repeat yourself)

 * Boy Scout (leave the code cleaner than when you arrived)

 * SOLID Principles

 * Dependency Injection.

My overriding take-away from talks like this (which Marco also stressed) is that coding is a Craft, so while we can talk about rules, what we really work with are principles and there are always edge-cases and situations where rules should be broken. So long as you know why.

Open Mic for Mote /Fleck/Gobbit/Tools / Tricks / Ticks

Flecks: A new innovation for the group. At the end of the session a selection of members were encouraged to make very, very short presentations.
Rob Lambden – Command Line Builds

Rob has started using MSBuild to build his Delphi Apps.

Newer versions of Delphi structure the Delphi project file so that a call to “build” in the IDE actually calls Microsoft’s “MSBuild” program.

This means with a bit of easy tinkering it is possible to extend the build process of your projects so that extra steps occur.

Why would you do this? Rob uses it to enforce the building of large numbers of dependent libraries (BPLs and also possibly DLLs) which are part of his App distributions. By using MSBuild all these build processes can be guaranteed to occur in the correct order, and therefore all and any additions to source code in any of the related code libraries are always incorporated into the projects.

Rob does this with systems that run fairly simple batch files and is happy with the security he gets as a result. Members responded with interest in the full range of potential for work using MSBuild. Future talks covering these issues were discussed.