Next Meeting: 11th September 2018

Location: The Prince Albert, 163 Royal College Street, London, NW1 0SG

To book or ask questions please contact us
See Downloads 2018 for the available files associated with the meetings.

Agenda

There is no meeting in August.

We will return on the 11th September for a “Day with Marco Cantu”, further information and agenda to follow.

If you are interested in being added to our mailing list to receive the meeting details once they are available please contact us

For the rest of 2018 dates

Previous Meetings:
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

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

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

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

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:

2017

2016

2015