Adam’s July 2020 Meeting Summary

Agenda

  • More about Git – Will Watts
  • The software and firmware involved in model railway control – Pete Brownlow
  • File Syncronisation Using Sync.Com – Paul Woodhams

Adam’s Summary

News
On-line meetings are becoming normal. The tech feels smooth, using Slack as a back-channel for questions, queries and suggestions.
Warm up chit-chat included a really useful tip from Tamas (I think) that uninstalling Visual Studio had broken his Delphi installation by uninstalling libraries shared by the two products. Dave Martel, pointed Tamas to a solution for this. I didn’t copy it down, but Dave may add it in the comments.

There was a pretty lengthy chat about issues with the new 10.4 version and how those of us using it are struggling. I had covered this quite a bit on a Facebook post already, so didn’t chose to add much during the meeting, but the overall position was of disappointment. Embarcadero stated there would be a lot more robustness and reliability in 10.4. In practice so far we haven’t seen too much, and some aspects of the IDE actually feel more fragile. Hopefully “update 1” whenever it comes will include some real fixes. Many members are hanging back from installing 10.4 due to these issues.

Small “next sessions” reminder: There is now a Slack Channel: #talks-planning in which members can propose talks they are happy to give (and get feedback on whether members are interested) or pose questions for talks they would like. Please do go to this Slack channel to review / add / update your thoughts.

More about Git – Will Watts

Will spoke extremely well at length about Version Control using Git
This was a great talk by someone now really familiar with the tool. Will started by running scripts like
$ git clone <filename / script>
$ git touch <filename / script>
$ git add <filenames / script>
to manipulate a Git repository he created at the start of the session. A good bit of live scripting / coding to get the blood moving, and it all worked!

Git seems to have taken over the world of version control, with at about 90% of users queried by TIOBE using it.
GitHub is now free for a very wide range of projects, and is used to host all Microsoft’s source code. It is also extremely easy to use.
Git serves two somewhat different purposes: Simple version control, allowing a “scrolling back” through changes made to files, and more complex collaborative control, allowing multiple developers to check out, work on and check in contributions. A key feature is the fact that all repositories are notionally equal and distributed there is officially no “master” or “slave” (cue lengthy discussion about the semantics of language!)

Git adds a hidden folder to your source code folders which contains the database Git maintains with the dif-logs for all files in the repository. Tortoise is an add-on which can interpret this and reflect its contents directly into windows explorer, making the changes / updates / saves etc., visible with added icons on files.

“Driving Git” to make more finely controlled changes to a repository is clearly highly technical and fraught. There is no perfect way to merge multiple changes made to multiple files across multiple team-members, but Git provides an excellent toolset to try to cope with the problem. Will discussed key components in a successful Git implementation, such as using .gitignore to set up exclusions to the update process, using Rebase to add changes sequentially to process conflicts. The harsh reality is that you will need to learn to script with Git if you manage any kind of complex project, and tear your hair out from time to time (assuming you have any).

Big takeaways for me included Will’s emphasis on KISS (Keep it simple stupid). Lots of promotion of Git suggests the need for masses of trunks and branches of code, each with a different purpose. Will says (except for the largest projects) this is massive overkill. A single trunk with occasional disposable branches works better and is massively easier to administer.

Will also pointed us in the direction of a short book “Oh Shit Git” by Katie Sylor-Miller and Julia Evans, which sounded fun and informative, https://wizardzines.com/zines/oh-shit-git/.
This has its own website (or perhaps its a rip off?) https://ohshitgit.com/ … which also seems pretty useful.

Will demonstrated Git integration in VS Code, which is pretty miraculous, allowing coders to “hover over” code and see insights into who edited it when. Sadly members reported that Delphi integration is very poor. Another thing for Embarcadero to work on. Interestingly if you have installed Git, Delphi and VS Code with its Git Extensions you can potentially write in Delphi while viewing Git change-logs in VS Code. Given that VS Code is a fairly lightweight installation and is free.

The software and firmware involved in model railway control – Pete Brownlow

Peter then spoke about using high-level languages to control model-railways.
This was a fabulous, contrasting talk to Wills. Pete had set up a webcam on his train-set, and those of us with Zoom under control were able to view the trains moving back and forth as Pete made changes to code on his main screen. Recent falling costs of chips mean that there are now versions of model rail kits with the ability to handle 32-bit programming, while others still contain analog controller that respond to. Pete showed how analog systems communicate through variations in square-wave voltages being used to power the trains. Programming systems even exist to manage the analog to digital conversions between these systems.
Pete showed Assembler and Java-based coding, and then went on to show an amazing collaboration with another Dev Group member to enable voice-control of the model railways using the Dragon voice-control libraries. This allowed disabled people to use these systems. It was good to see very low-level processor control for a change in the group.

File Syncronisation Using Sync.Com – Paul Woodhams

Finally (before beer) Paul Woodhams spoke about Sync.com.
Sync.com is a “Dropbox killer”, allowing users to store data in the cloud and hold simple linear version control of changes to files. Paul walked through all the features of the product extensively, many of which mirror features in Dropbox (which I know and use and so found familiar). It is clearly a well-developed product. They claim that all files are heavily encrypted and emphasize privacy. Paul’s session was thorough and really well organised.

It was a varied meeting, with a really huge amount of Slack action, do check it out if you haven’t already.