Next Meeting: 11th September 2017

Location: Southwark Playhouse, 77-85 Newington Causeway, London, SE1 6BD.

Agenda

Topics include:

  • Talk: Dev express components – Peter Edwards
  • Talk: IDE tips and creative debugging techniques – Brian Long
  • Nugget:  – Patrick Hort

Please see times below:

Time Description Speaker
11:30 Registration (with tea and coffee)
12:00 News/Questions Brian Long
12:30 Break for Lunch/Catch Up
13:15 Dev express components Peter Edwards
14:45 Break
15:00 IDE tips and creative debugging techniques Brian Long
16:30  Nugget …..  Patrick Hort
17:00  Finish

 

For the rest of 2017 dates

Previous Meetings:
Date: 12th July 2017
Agenda

Topics include:

  • Talk: Functional Programming – A High-Level Overview – Will Watts
    After many years spent jogging down the runway flapping its arms, FP is finally emerging as a practical approach to developing commercial software. Will presents a whistle-stop tour of the history, the languages, the techniques, some code and a few jokes. He undertakes to use the dread phrase ‘paradigm shift’ no more than 23 times.
  • Nugget:  Accessing files over https: without the Indy SSL hassle – Neil Parrish
    The Delphi Indy component TIdHTTP has a handy Get method to retrieve files from the internet, but out of the box this won’t handle https, only http. Rather than distribute the SSL files required you can use TDownloadURL to get around the problem, as long as you workaround the issues that has.
  • Nugget: SPF records for email servers and whitelisting with Microsoft and Google – Mark Jacobs
    In this talk, Mark will show how to set up SPF and Google domain verification records for your email server. He will also show how to sign up for Microsoft’s JMRP and SNDS schemes, so that they “know” about you and your email intentions. He’ll show the kind of email you’ll receive when an email you have sent is junked by the recipient.
  • Nugget: FlexCel – Report Mode quick implementation – Martin Hamilton
    Martin will demonstrate how easy FlexCel is to install into an application using Report Mode.
    This is a follow-up nugget to the presentation by Neil Parrish in April.

Please see times below:

Time Description Speaker
11:30 Registration (with tea and coffee)
12:00 News/Questions Peter Sykes
12:30 Break for Lunch/Catch Up
13:15 Functional Programming – High Level Overview Will Watts
14:45 Break
15:00 Accessing files over https: without the Indy SSL hassle Neil Parrish
15:30  SPF records for email servers and whitelisting with MS and Google  Mark Jacobs
16:15  FlexCel – Report Mode quick implementation  Martin Hamilton
17:00  Finish

Date: 13th June 2017
Agenda

Topics include:

  • Talk: Case study – Application UI framework using .Net C#, WPF and MVVM – Andrew Cutforth
    Andrew will show a case study of his Windows CRM system that has a very powerful UI with tabbed docking forms etc. This is written in .Net C# and uses WPF for the display coupled to an MVVM framework with his own entity framework on the back end
  • Talk/Demo: Android App – David Mew
    Designing a UI for an Android App; using TStyleBook to “skin” an app, using TNetHTTPRequest/TNetHTTPClient to load resources, using threading and deploying to a phone
  • Nugget: DUnit – Dave Martel

Please see times below:

Time Description Speaker
12:00 News, Interactive discussion Jason Chapman
13:00 Break for Lunch/Catch Up
13:15 Application UI Framework Andrew Cutforth
14:45 Break
15:00 Android App David Mew
16:30 DUnit Dave Martel
17:00 Finish

Date: 15th May 2017
Agenda

Topics include:

  • Talk: Going back to Linux – Brian Long
    The latest release of Delphi (10.2) adds Linux Server as a target platform. It’s been a long time since Kylix, so we’ll have a recap and remind ourselves how to do a few simple tasks from the Linux command-line and see what Delphi can do in terms of generating applications on this new target platform.
  • Nugget: Fooling the “Man in the Middle” – Mark Jacobs
    When a user logs into a secure site with their correct credentials, the site will usually issue them a session ticket, and will usually do so using a cookie of some sort. I take a radically different approach to session tickets, and my approach has a valuable advantage over traditional techniques. In this talk, I will expound on my techniques, demonstrate how pretending to be somewhere else (using Opera’s free VPN) forces you to log in again, whereas on an Amazon login, it simply lets you continue with the session ticket currently issued, despite you having suddenly “teleported” to a different country!
  • Nugget: How to use the PDFTKBuilder utility to manipulate PDF files – Doug Woodrow
  • Nugget: Embedding a Firemonkey form within a VCL application – Patrick Hort
    I have recently been looking at doing some graphing and I don’t want to have to write it twice – once for VCL and once Firemonkey – and it seemed sensible to write it in Firemonkey because of the better graphics. Which then got me wondering about compiling the FM code into a VCL App. Which it turns out is possible, and I used the TFireMonkeyContainer component from Parnassus to achieve this.

Please see times below:

Time Description Speaker
12:00 News, Interactive discussion Brian Long
13:00 Break for Lunch/Catch Up
13:15 Going back to Linux Brian Long
14:45 Break
15:00 Fooling the “Man in the Middle” Mark Jacobs
15:45 How to use the PDFTKBuilder utility to manipulate PDF files Doug Woodrow
16:15 Embedding a Firemonkey form within a VCL application Patrick Hort
17:00 Finish

Date: 19th April 2017
Agenda

Topics include:

  • Talk: Visual Studio 2017 & C# 7.0 – A look at some of the new language and IDE features – Peter Sykes
    • Visual Studio 2017 and C# v7.0 went on general release on Tuesday 7th March. In this session Pete takes a tour through some of the new IDE and language features that the update offers.
  • Talk: Creating a Windows Service in Delphi and installing it – Patrick Hort
    • This will be a Delphi coding presentation showing how you go about creating, installing and managing a Windows Service. I will also demonstrate how to write messages to the Windows Registry, and how to create a DLL that can installed so that Windows Event View will display these messages properly. Depending on how much time is left, we can try to make the service actually do something!
  • Nugget: TMS FlexCel – Excel without Excel for Delphi & .Net – Neil Parrish
    • TMS describe FlexCel as a ‘Powerful, extensive & flexible component suite for native Excel report & file generation & manipulation’. It is available for Delphi and as fully managed Net library including mobile for both. The components work natively with the Excel file format so you don’t need Excel installed. This will be a quick look through FlexCel including how it has been used for a client, how you get started and some of the many features.

Please see times below(tbc):

Time Description Speaker
11:30 Registration (with tea and coffee)
12:00 News/Questions Peter Sykes
13:00 Break for Lunch/Catch Up
13:15 Visual Studio 2017 Peter Sykes
14:45 Break
15:00 FlexCel Neil Parrish
15:45 Creating a Windows Service in Delphi and installing it Patrick Hort
16:30 Tokyo – Group Discussion
17:00 Finish

Date: 14th March 2017
Agenda

Topics so far include:

  • Talk from Stephen Ball @ Embarcadero
  • Talks from Peter Edwards;
    • Express Spreadsheet & Importing data (Real World Examples) & Express Printing Component
      1. Introduce the Express Ribbon UI
      2. Introduce Skinning
    • PDF Reader Component & Express Printing Component
  • Nugget: Accessing files over https: without the Indy SSL hassle – Neil Parrish
    • The Delphi Indy component TIdHTTP has a handy Get method to retrieve files from the internet, but out of the box this won’t handle https, only http. Rather than distribute the SSL files required you can use TDownloadURL to get around the problem, as long as you workaround the issues that has.
  • Nugget: AJC Grep v2 – Andrew Cutforth
    • Andrew will show you his latest AJC Software product which is a powerful search, replace and data extraction program. The session will consist of a demo of what the software can do and then delving into some of the code to see how it was done.

Please see times below(tbc):

Time Description Speaker
11:30 Registration (with tea and coffee)
12:00 News/Questions Jason Chapman
13:00 Break for Lunch/Catch Up
13:15 Talk Stephen Ball
14:15 Express Spreadsheet & Importing data (Real World Examples) & Express Printing Component Peter Edwards
14:45 Break
15:00 AJC Grep v2 Andrew Cutforth
16:00 PDF Reader Component & Express Printing Component Peter Edwards
16:30 Accessing files over https: without the Indy SSL hassle Neil Parrish
17:00 Finish

 

Date: 20th February 2017

Agenda

Topics so far include:

  • TOGGL with some code – Jason Chapman
  • Dropbox as a Windows service – Martin Hamilton
  • Weak references in C# – Andrew Cutforth
    • Weak references in C# are pointers to objects that allow the objects to still be garbage collected and will tell you if they have been garbage collected. There are many uses for these and Andrew will show you some, including tagging objects, an application internal messaging system, object caching system etc. You will learn about WeakReference and ConditionalWeakTable.
  • AutoIt demo – Clive Henson
  • Office 365 – Eric Thorniley
    • Why we might want a shared mailbox.
    • Difference between a shared mailbox and a normal mailbox in O365.
    • Connecting to shared mailbox from Outlook:
      • Normally connects when you connect to personal mailbox. Sent mails go into personal mailbox sent items. You have to manually select the shared account to send from, even if you are looking in the shared inbox.
      • You can change the share so you have to make a manual connection – then it works more as you would expect. You have to set this up using powershell.
    • Why you might want to share a normal mailbox rather than use a shared mailbox.
    • Security gotcha with two factor login.

Please see times below(tbc):

Time Description Speaker
11:30 Registration (with tea and coffee)
12:00 News/Questions Brian Long
13:00 Dropbox as a Windows Service Martin Hamilton
13:30 Break for Lunch/Catch Up
13:45 Weak References in C# Andrew Cutforth
14:45 Break
15:00 AutoIt Demo Clive Henson
15:35 Office 365 – Shared Mailboxes Eric Thorniley
16:10 TOGGL with some code Jason Chapman
17:00 Finish

 

Date: 18th Jan 2017

Agenda

Topics so far include(tbc):

  • Case Study: Superbikes – Delphi does TV – Neil Parrish
    Take a trip to the bright lights of TV land looking at a Delphi application that sits between timing feeds and the TV graphics for the Britsish Superbikes coverage. Find out how it all works and hear about the challenges of recent changes including a new timing feed (JSON instead of plain text), switching over the graphics system interfaced with, graphics redesigns and new requirements.
  • Battle of the Remote Desktop
    A session looking at the different types of remote control software that is being used within the group, including pro/cons of each type covered
  • So far we have booked:
    • ConnectWise \ ScreenConnect – Dave Ball
    • WebEx – Clive Henson
    • VPN/RDP/VNC – Jason Chapman & Pete Brownlow
    • Splashtop – Martin Hamilton
    • TeamViewer – Adam Brett
    • Vidyo – Dave Martel
  • TOGGL with some code – Jason Chapman

Please see times below(tbc):

Time Description Speaker
11:30 Registration (with tea and coffee)
12:00 News/Questions Pete Sykes
13:00 Break for Lunch/Catch Up
13:15 Superbikes Neil Parrish
14:45 Break
15:00 Battle of Remote Desktop Various
16:30 TOGGL with some code or A Month of GIT Jason Chapman
17:00 Finish

Date: 15th Nov 2016

Agenda

Topics so far include(tbc):

  • Writing more robust .net applications using Actor systems – Sean Farrow
    • The actor model first proposed by Carl Hewitt in 1973 is a mathematical model of concurrent computation. While in this talk we will not be dealing with the mathematics, we will take a look at the traits that make actor systems reliable, from deployment mechanisms to how actors handle failure. To do this we will look at a library first written in Scala and now ported to the CLR, Akka.net
  • Custom URIs – Andrew Cutforth
    • To click a link (in an email/document/spreadsheet etc) and route it into a running Windows desktop application. This is to achieve the same functionality that you would
      get with a link taking you into a page in a web application e.g. a link taking you to a particular job in a bug tracking/logging system. Code written in .Net.
    • Jason will then try and produce the same in Delphi.
  • Documentation and helpfile – helpscribble – Martin Hamilton
  • TOGGL with some code or A Month of GIT – Jason Chapman

Please see times below(tbc):

Time Description Speaker
11:30 Registration (with tea and coffee)
12:00 News/Questions Jason Chapman
13:00 Writing more robust .net applications using Actor systems Sean Farrow
14:30 Break for tea/Coffee
14:45 Custom URIs Andrew Cutforth
15:45 Documentation and helpfile – helpscribble Martin Hamilton
16:30 TOGGL with some code or A Month of GIT Jason Chapman
17:00 Finish

Date: 17th Oct 2016

Agenda

Topics so far include(tbc):

  • Accessing custom barcode scanner hardware from a Delphi Android app – Brian long
    • This session looks at how a single interface was developed to talk to a couple of entirely different hardware barcode scanners as well as some barcode scanning software, and looks at how successive versions of Delphi have helped make the job simpler
  • There more to a good “REST” than meets the eye! – Peter Edwards
    • If you have ever considered a REST server as just an ‘Old Hat’ way of getting a bit of data from a remote database, then you may have missed a trick or two.How about if you were able to create simple apps for mobile devices that deliver quite a punch at the back end of your office application – even without the need for any real server as such. Extending data entry from a single user desktop to many mobile devices is now a real possibility and quite practical.If you are dealing with stock control, delivery of products, auditing , asset management or any kind of remote data capture, then REST may well be an efficient way of not only collating and sending data but also processing that data live upon receipt, just as if you had entered that data on the office program.Peter Edwards of Qsys.co.uk will demonstrate a “goods inward app” on an Android Smart Phone and show that all the required journals for stock keeping records are maintained and purchase orders updated .. as if by magic. A hands on deep dive into the code at both ends of the code will reveal how we can make an android appear to be a very powerful tool indeed.Delphi Enterprise is required to achieve this but beyond that, your skills are more than enough to complete the task.There will be no real consideration for security or privacy in this presentation but ideas may well be discussed with others who may have relative experience or this could be a topic at a future meeting.

 

Please see times below(tbc):

Time Description Speaker
11:30 Registration (with tea and coffee)
12:00 News/Questions Brian Long
13:00 There more to a good “REST” than meets the eye! Pete Edwards
13:45 Accessing custom barcode scanner hardware from a Delphi Android app Brian Long
15:00 Break for tea/Coffee
15:15 More “REST” Pete Edwards
17:00 Finish

 

Date: 14th Sept 2016

Agenda

Topics so far include:

  • Case Study: ITN Project started in Delphi changed to C# – Eric Thorniley
    • Eric will present details of a project he undertook for ITN. The task was to add some functionality to a system provided by a third party, involving connecting at a fairly deep level into their proprietary system using dlls from their internal work (with their help and co-operation.) Initially the plan was to build a C# wrapper for the dlls to provide a com interface so that the project could be undertaking in Delphi. Instead the project was implemented in C# (except for some Delphi simulation programs for testing.) He will go through the choices he faced in undertaking the C# project, and the coding approaches used.
    • The aspects covered will include (in no particular order):
    • Threading in C# and some of the differences from Delphi.
      Some of the useful tools available for C#.
      A beginner’s experience of developing using XAML compared to Delphi forms, and the Caliburn UI framework used for the project.
      Using “Inversion of Control” to isolate much of the project from possible changes to the third party dlls.
      Network issues that hit many broadcasting control systems.
      Recent changes to the C# language that would have been a help had they been available at the start of the project.
  • Skype chat with Marco Cantu, up for discussion:
    • Office closing in Alicante
    • 2016 Delphi (and RAD Studio) Roadmap that was publish in August
    • Any questions you would like to ask

Please see times below:

Time Description Speaker
11:30 Registration (with tea and coffee)
12:00 News/Questions Pete Sykes
13:00 ITN Project Eric Thorniley
14:30 Break for tea / coffee
14:45 Skype chat Marco Cantu
15:30 ITN Project continued Eric Thorniley
17:00 Finish

Date: 12th July 2016

Agenda

Topics so far include(see timings below):

  • GIT – Will Watts
  • File formats – Comparing plain text (e.g. XML/JSON) and binary – Dave Martel
  • FastMem – for those memory leaks – Adam Brett
    • Digging into memory management and errors in Delphi using FastMem4, showing the type of programming behaviour that leads to errors and some useful techniques to identify and resolve issues that can be hard find and to debug.

Please see times below:

Time Description Speaker
11:30 Registration (with tea and coffee)
12:00 News/Questions Jason Chapman
13:00 GIT Will Watts
14:30 Break for tea / coffee
14:45 File formats – Comparing plain text (e.g. XML/JSON) and binary Dave Martel
15:30 FastMem – for those memory leaks Adam Brett

Date: 13th June 2016

Agenda

Topics so far include(see timings below):

  • Version control with Subversion – Brian Long
    • A revisit of the topic: not as fashionable as git, but still very capable for SOHO/distributed teams.
      This session takes another look at Subversion from the eyes of a Delphi developer, seeing how to set up and use it through the life of a project. We look at how it resolves certain common single user and multi-user development problems and how it offers strong benefits over “floppy-net”.
    • We hope to do a follow on session with GIT very soon
  • Hacking and the internet of things – Mark Jacobs
    • Short videos demonstrating techniques and results from hacking the IoT.
  • A presentation on the Third Party component provider – Developer Express – Pete Edwards
    • Taking a look at Quantum Grids + Reporting – showing a real world Application that utilises these basic components throughout.
    • Third Party DAC – Devart Vs FirDac in Mobile & Desktop situations. Accessing data over the internet to remote server MySQL.
    • Real life example of using bar code reading on Andriod with commercial devices such as Motorola TC55 & M3.
    • A brief heads up and demonstration of REST server & access to such a server via the internet.

Please see times below:

Please note: This is the provisional and is subject to change.

Time Description Speaker
11:30 Registration (with tea and coffee)
12:00 News/Questions Brian Long
13:00 Version control with Subversion Brian Long
14:30 Break for tea / coffee
14:45 Developer Express, Devart Vs FirDac + more Pete Edwards
16:15 Hacking and the internet of things Mark Jacobs

Date: 18th May 2016

Agenda

Topics so far include(see timings below):

  • Case study – Scientific Instruments – Dave Martel
    • From Ion guns to bows and arrows: Gentle meanderings from Delphi 0.9 to present, with a leaning towards the scientific side of life.
      Delphi was launched in San Francisco in 1995, just after I was hired to rewrite software to control $1m instruments for Windows. Bringing older code from Modula/2 and the history of excellent tools from Borland made the choice a no-brainer. 20+ years on we are still using it.
      Some examples of what we use it for, including more recent excursions in to 3D data presentation. Some (hopefully) pretty pictures. Why I like providing interactive softwar
  • How to build a mobile-responsive web site in Delphi – from scratch – Patrick Hort
  • The latest hot topic: Building bots – Pete Sykes

Please see times below:

Please note: This is the provisional and is subject to change.

Time Description Speaker
11:30 Registration (with tea and coffee)
12:00 News/Questions Pete Sykes
13:00 Hot Topic: Building Bots Pete Sykes
14:00 Break for tea / coffee
14:15 Case Study: Scientific Instruments Dave Martel
15:15 How to build Mobile-responsive website – from scratch Patrick Hort
17:00 Finish

Date: 19th April 2016

Agenda

Topics so far include(see timings below):

  • Happiness and Horrors – Deploying a Delphi Application to a Touch Screen Embedded Android card – Brian Frost
    • Here at Applied Relay Testing we have been using Delphi since version 1.0 for real time control of the automatic test equipment that we design, build and sell. Thus far, all of our control software has been Windows based using our VCL Delphi Application as the user interface. A recent project required a ‘built-in’ user interface, so we chose a kind of ‘tablet solution’ using a small touch screen connected to an embedded processor running Android. To achieve this, Delphi 10 Seattle has been used to create a FireMonkey Application that installs and runs on this embedded board and which creates a completely stand-alone solution. This talk will contrast the ease of getting a “Hello world” application deployed and working with the many road-humps that we encountered when trying to create and deploy a fully-fledged Application
  • Mobile App to control a model railway – Pete Brownlow
    • A joint brainstorming and coding session to put together something using Delphi 10 Seattle that will drive trains, via Wifi,
      on a digitally controlled model railway. We will use Delphi’s ability to target multiple platforms from one source codebase
      and try to get it running on both Android and an iThing, as well as Windows and Mac. Pete will come along with some “bits I prepared earlier”
      so that we can put them together into something that works during the session.Pete will have a small demo board with him so we can actually make a train move.

Please see times below:

Please note: This is the provisional and is subject to change.

 

Time Description Speaker
11:30 Registration (with tea and coffee)
12:00 News/Questions Jason Chapman
13:00 Android App controlling model railway Pete Brownlow
15:00 Break for tea / coffee
15:15 Deploying a Delphi Application to a Touch Screen Embedded Android card Brian Frost
16:30 Optional XE10 vs D7 (add-ins I still needed and my experience) Jason Chapman
17:00 Finish

Date: 14th March 2016

Agenda

Topics so far include(see timings below):

  • More on Arduino – Alex Hamilton – follow up session
  • Typescript – problems with Javascript, why Typescript is desirable – Will Watts
  • PostCode verifier and retrieval DELPHI code – Martin Hamilton

Please see times below:

Please note: This is the provisional and is subject to change. We will update this page with future meetings soon.

Time Description Speaker
11:30 Registration (with tea and coffee)
12:00 News/Questions Brian Long
13:00
14:30 Break for tea / coffee
14:45
15:30
16:45
17:00 Finish

Date: 24th February 2016

Agenda

Topics so far include(see timings below):

  • Beginner’s Guide to Task-based Multithreading in C# – Pete SykesPete has recently started to use TAP – Task-based Asynchronous Pattern – for multithreading in C#. In this session
    he shares some of his early experiences and, he hopes, provides enough information for those new to the concept to
    be able to start using it in real world situations.
  • TMS Diagramming Suite – Adam BrettTms diagram studio offers a detailed component set used to create UIs including restaurant plans, cinema seat plans,
    electronic and architectural lay outs as well as more traditional uses such as database or UML modelling.
    Adam has worked with TMS Diagramming Suite and used its vector based graphics for drawing shapes and relationships.
  • Sending TXT Messages from DELPHI App – Martin Hamilton

Please see times below:

Please note: This is the provisional and is subject to change. We will update this page with future meetings soon.

Time Description Speaker
11:30 Registration (with tea and coffee)
12:00 News/Questions Pete Sykes
13:00 Beginner’s Guide to Task-based Multithreading in C# Pete Sykes
14:30 Break for tea / coffee
14:45 Sending TXT Messages from DELPHI App Martin Hamilton
15:30 TMS Diagramming Suite Adam Brett
16:45 Idera/overrun Jason Chapman
17:00 Finish

Date: 12th January 2016

Agenda

Topics so far include(see timings below):

  • Data Spaces – implemented into a data import / integrate / Applying technique / Java Code – Richard Brownlow
  • Multi Media – writing audio video applications – Sebastian Cottam
    In this presentation we will look at writing audio video applications, explore some of the libraries that can assist us,
    outline techniques to manipulate content, and investigate the underlying technology
  • Migration from D7 to Seattle – Patrick Hort

Please see times below (TBC):

Time Description Speaker
11:30 Registration (with tea and coffee)
12:00 News/Questions Jason Chapman
12:30 Data Spaces Richard Brownlow
13:45 Break for tea / coffee
14:00 Multi Media Sebastian Cottam
15:15 Break for tea / coffee
15:30 Migration from D7 to Seattle Patrick Hort
16:45 More news Jason Chapman
17:00 Finish

Date: 16th November 2015

Agenda

Topics so far include(see timings below):

Session: DELPHI’s stand-alone HTTP server – Martin Hamilton
Building a simple HTTP Server and running it as a Windows Service

Nugget: Code Templates – Brian Long
Code templates used to be trivial and productive. Now they’re very flexible. As a consequence they are impossible to use. Or are they? In this nugget we’ll try and decipher the means of making code templates, to help offer up a little productivity boost here and there.

Nugget: Windows Monitor – Clive Henson
Clive will be showing the TalkingPoint Window Monitor utility that caused some interest at a previous session on Speech Recognition when demonstrating some of the scripting commands.
The utility provides various information about application windows for use by the Scripting for controlling other applications from Speech Recognition.
The utility will be available (as an executable) to Developer’s Group members.
Full source is not available, but some snippets covering some of the information extracted will be covered

More Delphi \ Rad Studio 10 Seattle – Jason Chapman

Please see times below:

Time Description Speaker
11:30 Registration (with tea and coffee)
12:00 News/Questions Brian Long
13:00 Delphi’s Stand-alone HTTP Server Martin Hamilton
14:15 Break for tea / coffee
14:30 Code Templates Brian Long
15:00 Windows Monitor Clive Henson
15:30 Break for tea / coffee
16:00 More Delphi \ Rad Studio 10 Seattle Jason Chapman
17:00 Finish

Location: On the first floor of the Theodore Bullfrog pub (behind Charing Cross station) 28 John Adam Street, Charing Cross, London WC2N 6HL

Date: 14th October 2015

Agenda

Topics include(see timings below):

Session: Unicode, what’s in a string? – Simon Hooper

Simon explains Unicode and other popular string representations. He will discuss where the various representations are used and the many string types in Delphi.

Session: “My Arduino and what I’m doing with it”– Alex Hamilton

Session: Adventures with Disconnected Databases – Adam Brett

Adam builds VCL database applications for farming businesses in Africa using the Elevate DB database engine and Delphi. The application copes with Field Officers visiting thousands of farm-field sites to assess and check them, and the central farm-business accepting receipt of products from fields into their depot or depots.

Depots should not accept goods unless they have been inspected and quality checked prior to harvest, and Field-Officers need to receive updates on who to visit and who has already been visited, and management want to know exactly what products have been bought from whom, so everyone needs to see and share data effectively.

There is no effective internet in Africa, so Adam has used a brief-case type data management model to allow multiple users to share data. Elevate DB has specific functions built into its “Replication engine” to allow updates and synchronization between separated databases, and this has formed the basis of the application.

The session will look at the details of the Elevate DB product, how it works under the hood, and explore potential use-cases for disconnected data. It will also demonstrate the steps needed to actually make synchronization and updates work, which are non-trivial. Finally the big problem: of how to manage data clashes and conflicts will be discussed, with the caveat that there is no perfect solution to these issues!

The session will have a bit of “Delphi” content, code discussed will primarily be advanced SQL.

Please see times below:

Time Description Speaker
11:30 Registration (with tea and coffee)
12:00 News/Questions Pete Sykes
13:00 My Arduino and what I’m doing with it Alex Hamilton
14:15 Break for tea / coffee
14:30 Unicode: What’s in a string? Simon Hooper
15:30 Break for tea / coffee
15:45 Adventures with Disconnected Databases Adam Brett
17:00 Finish

Please note: This is the provisional and is subject to change. We will update this page with future meetings soon.

For the detailed agenda:

Date: 15th September 2015

Agenda

Topics include(see timings below):

  • Session: Trouble with using MySQL plus SSL – Martin Hamilton
    • Do you want to access your MySQL database externally via the Internet?
      Here’s how I did it, especially how to use SSL encryption, but also getting to your Dynamic IP address and port-forwarding.
  • Nugget: Windows Monitor – Clive Henson
    • Clive will be showing the TalkingPoint Window Monitor utility that caused some interest at a previous session on Speech Recognition when demonstrating some of the scripting commands. The utility provides various information about application windows for use by the Scripting for controlling other applications from Speech Recognition. The utility will be available (as an executable) to Developer’s Group members.
      Full source is not available, but some snippets covering some of the information extracted will be covered.
  • Session: JavaScript programming model – Will Watts
    • The JavaScript language, both in web browsers and in the Node,js environment, uses an unusual programming model. Applications are single-threaded; ‘blocking’ calls (such as disk reads and network connections as coded in the standard libraries of C# and Pascal) are not allowed. Will Watts shows how this restriction impacts programming style, and discusses some different approaches to coping with it.
  • Session: Windows services and a registry setting – Mark Jacobs
    • Changing settings to allow them to spawn more applications simultaneously.

Please see times below:

Time Description Speaker
11:30 Registration (with tea and coffee)
12:00 News/Questions Jason Chapman
13:00 Nugget: Windows services and a registry setting Mark Jacobs
13:30 Session: JavaScript programming model Will Watts
14:30 Brief break for tea / coffee
14:45 Session: Trouble with using MySQL plus SSL Martin Hamilton
15:45 Brief break for tea / coffee
16:00 Nugget: Windows Monitor Clive Henson
16:30 Review of DX Delphi 10 Seattle Jason Chapman
17:00 Finish

 

Please note: This is the provisional and is subject to change. We will update this page with future meetings soon.

For the detailed agenda: 20150915 detailed agenda

Date: 20th July 2015

Agenda

Topics include(see timings below):

  • Nugget: Lead link formatting – Simon Hooper
    • Computer programming from text scripts is 50ish years old, surely there can be nothing new about formatting code. Maybe there is – come and see for yourself.
  • Nugget: Generic TList<T> for records – Simon Hooper
    • With the advent of generics TList<T> is a great class for managing dynamic lists of objects, but it does not work with records. Simon has written TRecordList<T: record> to manage dynamic lists of records. He will recap on the differences between objects and records, demonstrate and explain his class. Full source code will be provided.
  • Nugget: Enunerators: for x in y do, Delphi’s “foreach” implementation – Simon Hooper
    • Delving deeper into TRecordList<T: record> Simon will demonstrate how to enable “for x in y” syntax for your own classes and how to add multiple enumerators to a class (e.g. “for x in y.Descending”)
  • Nugget: Version Control with Subversion – Brian Long
    • Version control isn’t just for teams of cooperative programmers in large software houses. There are many benefits from employing version control even if you’re working on a project alone. Brian looks at what the point of it all is and tries to get you on side with version control systems in general. Subversion is Brian’s VCS of choice so that will be what is used to show the ins and outs of it, but Subversion is just one of many options, and is certainly not the most fashionable VCS du jour. It does, however, do what it needs to do, which is why it has lasted so well. Maybe through discussion we will illuminate the group as to what additional benefits the current popular choices offer.
  • Session: Android and Speech Technology – Brian Long
    • The last time we saw Brian talking about Delphi and Android, we brushed on the subject of TTS (text-to-speech). We’ll follow this through and also look at how SR (speech recognition) works on the Android platform. That is, if Brian can work through the platform API vagaries and get it all working in time!

Please see times below:

Time Description Speaker
11:30 Registration (with tea and coffee)
12:00 News / questions Brian Long
13:00 Version Control with Subversion Brian Long
14:00 Break
14:15 Nugget: Leading link formatting Simon Hooper
14:30 Nugget: Generic TList<T> for records
Nugget: Enumerators: for x in y do, Delphi’s “foreach”
implementation / Generic TList<T> for records and Enumerators
Simon Hooper
15:30 Break
15:45 Android and Speech Technology Brian Long
17:00 Leave

Please note: This is the provisional and is subject to change. We will update this page with future meetings soon.

For the detailed agenda: 20150720 detailed agenda

Date: 17th June 2015

Agenda

Topics include(see timings below):

  • Nugget: Rare boundary condition met in ICS emailing component and how I got round it – Mark Jacobs
    • From Mark: “I will show an example email that goes wrong, change a single word in the email and show it goes fine, then revert the email, change my code to incorporate the workround and show it sending it fine. I will then show why it went wrong, and why, therefore, this rare boundary condition may affect other email components too.”
  • Follow up XL Session: Guide to Azure – Pete Sykes
    • During his last session Pete covered some of the core functionality of Windows Azure such as web roles, worker roles, queues, tables, blob containers and so on. During this session he will expand on what we learnt last time and show how easy it is to use Azure to build a highly scalable, end-to-end application. If you missed Pete’s last session you can catch up by downloading his slides and samples from http://www.ukdevgroup.co.uk/downloads/
  • Tiny Nugget: The UK Developers Group Survey – the results – Jason Chapman
    • A brief discussion on the results of the surveys that we have asked members to fill out.
Time Description Speaker
11:30 Registration (with tea and coffee)
12:00 News / questions Pete Sykes
13:00 Nugget: ICS Emailing Component Problem Mark Jacobs
13:45 Break
14:00 XL Session: Follow up – Guide to Azure Pete Sykes
15:30 Break
15:45 Survey Results – users feedback Jason Chapman
16:00 Continued Session: Guide to Azure Pete Sykes
17:00 Leave

Please note: This is the provisional and is subject to change. We will update this page with future meetings soon. For the detailed agenda: 20150617 detailed agenda

Date: 12th May 2015

Agenda

Topics include(see timings below):

  • Session: XE8 & InterBase – Stephen Ball(Embarcadero).
    • Rather than a whistle stop tour of all new features, Stephen will be focusing on at least one new killer feature in each product. Both the following were covered in the recent EMBC spring event (06/05/2015) – so we going to get Stephen to answer in depth questions on the subject. New Analytics – really how is your app being used
    • Change Views with InterBase
    • Stephen is a long serving member and contributor to the user group and has been working at Embarcadero for a few years. He will have a unique insight and we are excited that he can come and talk to the group.
  • Nugget: Vetting input webserver – forms – submit forms (Mark Jacobs), which will include:
    • Switch off my browser input sanitisation code
    • Show a browser web form which views and edits fields in a database
    • Edit a field in such a manner that hovering over the field when displayed in the browser causes a JavaScript alert to pop up
    • Reset the field. Switch on my input sanitisation code. Try the same trick again
    • Show how the JavaScript alert no longer occurs and why
    • Show how the sanitiser cleans up naughty inputs before they hit the database
    • Discuss the alternatives I have seen in other products, for example, vetting the fields on output from, rather than input to the database. Advantages and disadvantages.
  • Nugget: Jython (Peter Brownlow)
    • Jython is an implementation of the scripting language Python integrated with the Java platform, so that a Java application can include a scripting facility where script writers have access to the Java and application object hierarchy. Pete will describe and demonstrate the use of Jython in conjunction with a widely used open source Java application for controlling model railways, called JMRI.
  • Nugget: WPtools and our technique for producing letters and reports (Jason Chapman)
    • 3 stabs at architecture for callbacks to get field values
    • Field markers
    • Tables
    • RTF, DOCX,

TimeDescriptionName
11:30Registration
12:00NewsJason Chapman
12:30Break for lunch/Catch up
13:15Functional ProgrammingWill Watts
14:45Break
17:00Finish
Please note: This is the provisional and is subject to change. We will update this page with future meetings soon. For the detailed agenda: 20150512 detailed agenda

Date: 20th April 2015

Agenda

Time Description Speaker
11:30 Registration (with tea and coffee)
12:00 News / questions Brian Long
13:00 Basic 3D session using the standard FMX 3D components Ian Hamilton
14:00 Break
14:15 Thinking Programmers’ Guide to Modern JavaScript Development Will Watts
15:45 Break
16:00 Google maps api embedding in a windows program Andrew Cutforth
17:00 Leave
  • Nugget: Google maps api embedding in a windows program with callbacks into the application & map navigation (Andrew Cutforth)
  • Session: Thinking Programmers’ Guide to Modern JavaScript Development (Will Watts)
    • JavaScript has come a long way since the days of animating web page buttons. Now it’s a fully-fledged development tool, and the only one that functions successfully on the full range of platforms from phone to server. This talk will provide a high level introduction to the language and the ecosystem of tools that has grown up around it, framed from the point of view of a traditional Delphi or C# developer. Coverage will include Node.js, the system that is popularising the language on the back end, to Google’s Angular.js, a framework for creating fully-fledged applications that run inside the browser. Also meet the IDE that just has to be pronounced with an American accent: WebStorrrrrrrrrm.
  • Nugget: Basic 3D session using the standard FMX 3D components (Ian Hamilton – new speaker)

Please note: This is the provisional and is subject to change. We will update this page with future meetings soon. For the detailed agenda: Detailed Agenda – 20/04/2015

Date: 18th March 2015

Agenda

Time Description Speaker
11:30 Registration (with tea and coffee)
12:00 News / questions Pete Sykes
13:00 Nugget: Painting tables onto a “PaintBox” – Delphi Martin Hamilton
14:00 Break
14:15 XL Session: Beginners Guide to Azure – C# with some Delphi examples Pete Sykes
15:45 Break
16:00 Continuation: Beginners Guide to Azure Pete Sykes
17:00 Leave

Nugget: Painting tables onto a “PaintBox” – Martin Hamilton

  • How to use TPaintBox in Delphi to get a custom grid display

Session: Beginners Guide to Azure – Pete Sykes

  • Introduction to Windows Azure
  • Azure storage: Queues, Blobs and Tables

There will be a follow-up session on this topic that will include:

  • Writing a Locally Hosted Scalable System Using Azure Storage
  • Migrating Your System to Azure

Date: 10th February 2015

Location: On the first floor of the Theodore Bullfrog pub (behind Charing Cross station) 28 John Adam Street, Charing Cross, London WC2N 6HL

Agenda

Time Description Speaker
11:30 Registration (with tea and coffee)
12:00 News / questions Jason Chapman
13:00 Nugget: Thoughts/discussion on Windows 10 Martin Hamilton
14:00 Break
14:15 Session: Priority Inversion and Logging Eric Thorniley
15:45 Break
16:00 Nugget: I’m starting with Python Jason Chapman
17:00 Leave

Nugget: Thoughts/discussion on Windows 10

  • A topic to start us all thinking about the way Microsoft is leading us

Session: Priority Inversion and Logging

  • Demonstration of how priority inversion can cause unpredictable application hangs.
  • How the use of some standard logging libraries can trigger the issue.
  • Some other unexpected performance issues that can be introduced by logging.
  • An implementation of priority inheritance in Delphi.
  • A class to allow lock-free logging in the C# log4net library.

Nugget: I’m starting with Python

  • My thoughts, your thoughts (free training for me, Jason)
  • We have a mantra – if you can automate it, build a tool. Our tool to build a tool has been Delphi / Batch files / Excel, but we have been experimenting with Python.
  • I’ll cover which version we use, where to get it, why we selected it and how we are finding it.
  • We will walk through one or two use cases from reading e-mails, parsing text files, automating downloads from password protected https websites.
  • We are very green at Python and I haven’t been the main driving force on this, so we’ll all be learning together J

Please note: This is the provisional and is subject to change. We will update this page with future meetings soon. For the detailed agenda: Detailed Agenda – 10/02/2015

Date: 19th January 2015

Location: On the first floor of the Theodore Bullfrog pub (behind Charing Cross station) 28 John Adam Street, Charing Cross, London WC2N 6HL

Agenda

Start Description (with tea and coffee)
11:30 Registration
12:00 News / questions Brian Long
13:00 Nugget: Class Hierarchy for Dummies Ian Murphy (Smurf)
14:00 Break
14:15 Nugget: Syntax Highlighting – see below Mark Jacobs
15:15 Break
15:30 Discussion on – XE7 Brian Long
17:00 Leave

Nugget: Class Hierarchy for Dummies A short case study on implementing Class Inheritance in our Fault Monitoring System. Demonstrated via a plethora of label layouts. Nugget: Syntax Highlighting The minefield that is syntax highlighting :-

  1. Determining viewports. Balancing text block size against speed of highlighting.
  2. Syntax highlighting routine – as fast and efficient as possible.
  3. When to trigger the routine. What events are covered and what are not (currently).

Discussion: XE7 Brian looks in more depth into some of the new features found in RAD Studio XE7 to save you from doing the research yourself. For the detailed agenda click here
Location:  On the first floor of the Theodore Bullfrog pub (behind Charing Cross station) 28 John Adam Street, Charing Cross, London WC2N 6HL

Agenda

Topics so far include(tbc):

  • Case Study: Superbikes – Delphi does TV – Neil Parrish
    Take a trip to the bright lights of TV land looking at a Delphi application that sits between timing feeds and the TV graphics for the Britsish Superbikes coverage. Find out how it all works and hear about the challenges of recent changes including a new timing feed (JSON instead of plain text), switching over the graphics system interfaced with, graphics redesigns and new requirements.
  • Battle of the Remote Desktop
    A session looking at the different types of remote control software that is being used within the group, including pro/cons of each type covered

    • So far we have booked:
      • ConnectWise \ ScreenConnect – Dave Ball
      • WebEx – Clive Henson
      • VNC – Jason Chapman

Please see times below(tbc):

Time Description Speaker
11:30 Registration (with tea and coffee)
12:00 News/Questions Pete Sykes
13:00
14:30 Break for tea/Coffee
14:45
15:45
16:30
17:00 Finish

For the rest of 2016 dates

 

Please see times below:

Time Description Speaker
12:00 News, Interactive discussion Brian Long
13:00 Break for Lunch/Catch Up
13:15 Going back to Linux Brian Long
14:45 Break
15:00 Fooling the “Man in the Middle” Mark Jacobs
15:45 How to use the PDFTKBuilder utility to manipulate PDF files Doug Woodrow
16:15 Embedding a Firemonkey form within a VCL application Patrick Hort
17:00 Finish
Previous Meetings:For the rest of 2017 dates