Meetings 2018
Agenda & Information for the Meetings held in 2018
For each of the meeting dates there is a link to the meeting summary.
See Downloads 2018 for the available files associated with the meetings.
Date: 12th November 2018
Agenda
Meeting Summary
In a change to the previously published schedule the following will now be presented at the meeting in November.
- Talk: Writing real-time collaboration software – David Capps
As a case study I’ll demonstrate some software that allows multiple networked users to view and edit resources in real time, with a permissions system allowing users to see different parts of a resource while maintaining a (hopefully!) consistent and responsive view. - Talk: Creative debugging techniques: Part 2 – Brian Long
The second part of a two-part talk on interesting debugging techniques to assist in resolving all sorts of tricky bug scenarios. Warning: this session may contain the CPU window! - Nugget: FMX – 3D elements on forms – Ian Hamilton
A quick look at using 3D elements on forms both statically and dynamically.
Time | Description | Speaker |
12:00 | Registration (with tea and coffee) | |
12:00 | News/Questions | Brian Long |
13:00 | Break/Lunch | |
13:15 | Creative debugging techniques: Part 2 | Brian Long |
14:45 | Break | |
15:00 | Writing real-time collaboration software | David Capps |
16:00 | FMX – 3D elements on forms | Ian Hamilton |
16:30 | Group Discussion | All |
17:00 | Finish |
For the rest of 2018 dates
Previous Meetings:
Date: 23rd October 2018 – TMS Day
See: TMS WEB Core event, in association with the UK Developers Group
Meeting Summary
Date: 10th October 2018
Agenda
Meeting summary
“Display Board Code Huddle”
The “client” wants to position display screens at multiple points around a site in order to display information. These screens will be HD-TV-style video monitors, with plug in “micro-PC” computer devices attached.
The day will be split into two session.
- Members have volunteered to engineer a solution to display on the day using the following technologies:
- Paul Woodhams – Intraweb
- Adam Brett – DevEx + EDB-database
- Neil Parrish – App Tethering
- Martin Hamilton – Fast Reports
- Members will have the opportunity to split into groups and engineer their own solutions to present to the group.
Time | Description | Speaker |
12:00 | Registration (with tea and coffee) | Note time change |
12:00 | News/Questions | Pete Sykes |
13:00 | Break/Lunch | |
13:15 | Intro & Fast Report | Martin Hamilton |
13:45 | DevEx / EDB | Adam Brett |
14:05 | App Tethering | Neil Parrish |
14:35 | Intraweb | Paul Woodhams |
14:55 | Break | |
15:10 | Group coding | All |
16:30 | Presentation of group solutions. | All |
17:00 | Finish |
Date: 11th September 2018
Agenda
Meeting Summary
“A Day with Marco Cantu”
- Talk: Status of the Product – Marco will talk about the current Roadmap
- Talk: Deep Dive – Delphi Modern Language features
• Use in the product
• Real life examples - Talk: REST with and without RAD Server
- Talk: FireMonkey – Confidence in deploying with target platform API versions (Apple / Android)
- Talk: Windows 10 (if time permits)
Time | Description | Speaker |
12:00 | Registration (with tea and coffee) | Note time change |
12:00 | News/Questions | Jason Chapman |
12:45 | Break/Lunch | |
13:00 | Status of the Product | Marco Cantu |
13:45 | Deep Dive – Delphi Modern Language features | Marco Cantu |
14:15 | Break | |
14:30 | REST with & without RAD Server, FireMonkey and Windows 10 (if we can squeeze it in!) | Marco Cantu |
16:00 | Q&A / Group Discussion | Marco Cantu / Jason Chapman |
17:00 | Finish |
Date: 16th July 2018
Agenda
- Talk: Creative debugging techniques: Part 2 – Brian Long
The second part of a two-part talk on interesting debugging techniques to assist in resolving all sorts of tricky bug scenarios. Warning: this session may contain the CPU window! - Talk: Crystal reports 2016 and the Cut Light library add-on for ad-hoc SQL queries – Mark Jacobs
Mark will be presenting the use of ad-hoc SQL queries using an add-on library called Cut Light within a Crystal report. - Nugget: Model Maker Code Explorer – Adam Brett
Model Maker Code Explorer has been an extremely valuable Delphi IDE extension since around Delphi 5 or 6. It automates a wide variety of coding operations, and provides a clean easy-to-use interface to navigate code. In the past few weeks, it has been announced that it will transfer to being a free tool, usable in all versions of Delphi above 7. This short talk will discuss the uses of the tool, its capabilities and how it is now being maintained and developed.
Time | Description | Speaker |
12:00 | Registration (with tea and coffee) | Note time change |
12:00 | News/Questions | Brian Long |
13:00 | Break/Lunch | |
13:15 | Creative debugging techniques: Part 2 | Brian Long |
15:00 | Break | |
15:15 | Crystal reports 2016 and the Cut Light library add-on for ad-hoc SQL | Mark Jacobs |
16:15 | Model Maker Code | Adam Brett |
17:00 | Finish |
Date: 13th June 2018
Agenda
Meeting Summary
June is “WebApp Day” where there will be a number of talks and nuggets on Web Applications.
- Talk: My Experiences with Intraweb – Paul Woodhams
Starting out using Intraweb – Creating applications presenting data. - Talk: Google Sites – Eric Thorniley
Classic vs New Google Sites – a quick overview. We will build a new site and publish it complete with new SSL certificate. Google Forms for user input and automation using Google App Scripts. How to get your Google App Scripts into Visual Studio via version control (GitHub or Bitbucket) - Nugget: Iterating the DOM – Mark Jacobs
1) General introduction.
2) My Task to change the appearance and behaviour of an Askia question screen.
3) Peering into the HTML of the screen.
4) Writing JavaScript to alter the HTML after it has fully loaded, by iterating the DOM. - Nugget: TMS Web Core – Jason Chapman
- Nugget: uniGUI – Martin Hamilton
Time | Description | Speaker |
12:00 | Registration (with tea and coffee) | |
12:00 | News/Questions | Jason Chapman |
13:00 | Break/Lunch | |
13:15 | Intraweb | Paul Woodhams |
14:15 | TMS Web Core | Jason Chapman |
15:00 | Break | |
15:15 | Google Sites | Eric Thorniley |
16:15 | Iterating the DOM | Mark Jacobs |
16:30 | uniGUI | Martin Hamilton |
17:00 | Finish |
Date: 15th May 2018
Agenda
Meeting Summary
To start the day we will have a talk on the following:
- Talk: C++ Ranges – Will Watts
In 2020, C++’s Standard Template Library is slated to receive a massive makeover. Its container classes, such as vector and set, will be converted from using pointer-like iterators to new-fangled kind of objects called ‘ranges’. Will Watts will explain what a range is, why they are thought to be better, and walk through an unusual calendar-printing program that shows them off.
May is “Debugging Day” where there will be a number of short talks on software and methods used for code debugging.
Each speaker has been assigned 30 minutes – this is to allow for the nugget and any specific questions to be asked after each session.
There is a short group discussion at the end.
- Demo: MadExcept – Paul Woodhams
Paul will walk-through how to use the application, providing a demo of the reporting process using a purpose built application designed to crash. - Nugget: DebugView – Adam Brett
Delphi programmers will be familiar with the procedure OutputDebugString(). This causes useful messages to be shown in the Delphi IDE debug-messages window when running a program in debug-mode. DebugView is a Microsoft utility program which can be run on any computer and which surfaces the same messages, without Delphi running, allowing programmers to debug execution of a program on a remote machine. - Nugget: Logging from multiple threads without affecting performance – David Capps
We need to log debug messages from multiple threads, without slowing things down, and without filling up the users’ disk with historical logs – this is how it works.
David will also speak about his experiences tracking down memory leaks. - Nugget: EurekaLog – Dave Martel
- Nugget: system audit -> message dialogue -> basic logging -> cnDebugger – Jason Chapman
Time | Description | Speaker |
12:00 | Registration (with tea and coffee) | Note time change |
12:00 | News/Questions | Pete Sykes |
13:00 | Break/Lunch | |
13:15 | C++ Ranges | Will Watts |
14:15 | MadExcept | Paul Woodhams |
14:45 | Break | |
15:00 | DebugView | Adam Brett |
15:20 | Multi-thread logging + Tracking down memory leaks | David Capps |
15:50 | EurekaLog | Dave Martel |
16:20 | cnDebugger | Jason Chapman |
16:50 | Discussion | All |
17:00 | Finish |
Date: 16th April 2018
Agenda
- Talk: Parsing text using ANTLR (and Hime and Coco/R) – David Capps
Parser generators let you write a set of rules to parse input text, generate objects representing the data in the input, and provide clear feedback when the input doesn’t match your expected data. We’ll look at three different parser generators and how they can be used to easily add some customising into your applications. - Talk: Software Design Case Study – Andrew Cutforth
I was asked to redevelop some software that produces technical spec documents because it was clunky and unreliable. It currently uses xml to hold the topics structure and rich text to hold the paragraphs. I am moving all of this to a database and making the formatting a production step. This is a partially written system which I will demo and discuss the pros and cons of doing it this way. - Nugget: Security for the Internet of Things Gets More Ridiculous Every Day – Mark Jacobs
- Nugget: Custom Browser Search Engine Shortcuts – Brian Long
Online Delphi help can be accessed quicker if you know how. Let’s see how! The same applies to locating information on Stack Overflow, amazon, or your favourite web site
Time | Description | Speaker |
12:00 | Registration (with tea and coffee) | Note time change |
12:00 | News/Questions | Brian Long |
13:00 | Break/Lunch | |
13:15 | Parsing text using ANTLR (and Hime and Coco/R) | David Capps |
14:30 | Custom Browser Search Engine Shortcuts | Brian Long |
15:00 | Break/Lunch | |
15:15 | Software Design Case Study | Andrew Cutforth |
16:15 | Security for the Internet of Things Gets More Ridiculous Every Day | Mark Jacobs |
17:00 | Finish |
Date: 14th March 2018
Agenda
- Talk: Stretching ElasticSearch – Peter Sykes
ElasticSearch is a hugely popular, RESTful, open source, non-SQL document database with blazingly fast textual search capabilities. Picking up where Patrick Hort left off last September (but with a brief recap) Pete will illustrate its advantages (and disadvantages) for performing textual searches of generally structured data. Any program code will be in C# but the important stuff is all in how queries are structured and that is all done using JSON. - Talk: Fun and Games with 3D surface plotting: From VCL to Firemonkey – Dave Martel
Who doesn’t like seeing 3D models and surfaces being rotated and zoomed? This session covers a commercial application (though it will be provided for free to clients) for visualizing various properties of their samples. These vary from the real 3D shape of the sample surface (down to very small scale) to electrical and chemical properties. The initial application is written in the VCL and makes use of the free GLScene components for interacting with OpenGL.
We ran in to issues on some graphics cards, and have a hankering to make this available cross-platform, so decided to investigate Firemonkey. This is in an early stage (so there is plenty of scope for digging around in the code). Examples of the difference in philosophy will be shown. Currently the 3D aspects are taking shape nicely, but the 2D image display is giving us more headaches as our component provider for 2D image handling and annotation is not yet onboard with Firemonkey (and may not ever be).
If we get through the code and questions early, I will show some of the nicer demos I have found making use of the various system. - Nugget: Joy of JSON – Peter Sykes
JSON – JavaScript Object Notation is well known as a lightweight, human-readable format used particularly in modern web communications. Patrick Hort did an excellent introduction to JSON last September but, for those who missed that, Pete will do a very swift recap of the format itself before focusing on hints and tips for using it for ad-hoc persistence of objects. The examples will be in C# but the principles will be applicable to any language with a reasonable JSON library.
Time | Description | Speaker |
12:00 | Registration (with tea and coffee) | Note time change |
12:00 | News/Questions | Pete Sykes |
13:00 | Break/Lunch | |
13:15 | Joy of JSON | Pete Sykes |
14:00 | Fun and Games with 3D surface plotting: From VCL to Firemonkey | Dave Martel |
15:15 | Break | |
15:30 | Stretching ElasticSearch | Pete Sykes |
17:00 | Finish |
Date: 13th February 2018
Agenda
Meeting Summary
Code Comparison Day: Different implementations of Calendar-like Components
- Talk: TMyCalendar Component using TMS Diagram Studio – Adam Brett
My line-of-business applications include a “Work Surface” which is a TMS TatDiagram component, on which the program draws a series of objects. The atDiagram is powerful because it is scalable. Offering a lot of the advantages of the new Delphi Firemonkey UI components within a VCL application. This means the programmer or user can re-scale the Work Surface and objects on it will also re-scale smoothly. However, atDiagram comes with a fairly limited set of elements: DiagramBlocks, Text, Shapes … So complex IU requires a programmer to build composite components using these elements.
I have rarely done pure IU design programming, so writing a calendar using the elements in TatDiagram was an interesting challenge. The development was done on a “that’s good enough” basis, trying to code cleanly and effectively, but in a limited time. - Talk: It’s a date! – Peter Edwards
Utilising a calendar object to represent time lined activities & control of associated resources.
In the real world a user interface that deals with tasks in a manner that a user can immediately relate to is always a big bonus and of course an easy sell. We can take a look at how sales orders and distribution logistics can be merged together to provide easy overview daily tasks and provide valuable data aggregation as an unexpected by product. - Talk: Recurring Tasks using TMS – Jason Chapman
- Talk: Calendar using MySQL – Martin Hamilton
As part of the “Campsite Booking System”, I use MySQL to keep track of bookings and present them onto a calendar for user interaction.
Here I outline how it works.
Separate from the Calendar Day - Nugget: REST Update – Peter Edwards
There will also a short review on the new Jason reader Writer in 10.2.2 that completely negates the work around that I presented last time.
Time | Description | Speaker |
12:00 | Registration (with tea and coffee) | Note time change |
12:00 | News/Questions | Jason Chapman |
13:00 | REST 10.2.2 Show and Tell | Peter Edwards |
13:15 | Break for Lunch/Catch Up | |
13:30 | Session Introduction & TMS Component | Adam Brett |
14:15 | It’s a Date! | Peter Edwards |
14:45 | Break | |
15:00 | Recurring Tasks using TMS | Jason Chapman |
15:45 | MySQL Component | Martin Hamilton |
16:15 | Group Discussion | All |
17:00 | Finish |
Date: 15th January 2018
Agenda
Meeting Summary
Topics include:
- Talk: Creative debugging techniques – Brian Long
Breakpoints, watch expressions, stepping through code. It’s same old same old, isn’t it? Well, let’s take a closer look to see if we can find some interesting uses and applications of these and other debugging facilities to help in your debugging sessions. - Talk: Setting up Microsoft Azure Web Services (aka hosted IIS) and Website Volume/Stress Testing – Patrick Hort
We have recently had issues with the scalability of our online booking system, so we have been working on volume/stress testing (using a tool called WCAT) and also at ways to increase capacity by using Azure Web Services. This talk will cover what we’ve learnt so far, and the problems we’ve encountered.
- Nugget: Free SSL Certificates – Mark Jacobs
How to set up a CSR using OpenSSL tools, go onto zerossl’s site and use the CSR to generate a 3 month free SSL certificate, valid everywhere - Nugget: Changing the behaviour of comboboxes globally, using the Application OnMessage event – Mark Jacobs
Demonstration of using the Application OnMessage event to allow me centrally control the behaviour of all comboboxes in my application
- Nugget: Writing text in FMX – Martin Hamilton
In VCL, simply use “TextOut” to send text to a Canvas but, with FireMonkey, it’s more complicated.
Time |
Description | Speaker |
12:00 | Registration (with tea and coffee) | Note time change |
12:00 | News/Questions | Brian Long |
12:45 | Break for Lunch/Catch Up | |
13:00 | Creative debugging techniques | Brian Long |
14:15 | Free SSL Certificates | Mark Jacobs |
14:45 | Break | |
15:00 | Setting up Microsoft Azure Web Services (aka hosted IIS) and Website Volume/Stress Testing | Patrick Hort |
16:15 | Writing text in FMX | Martin Hamilton |
16:45 | Changing the behaviour of comboboxes globally, using the Application OnMessage event | Mark Jacobs |
17:00 | Finish |
Agendas for previous years can be found here: