Perth ADUG Meeting (Online)

Tim Coates - on YouTube ‘The Silver Coder’ - joined us for our August meeting.

(video uploading)

Tuesday’s Perth meeting … Please feel free to join us.

  • David Millington, of course from Parnassus and Embarcadero, will be telling us about his current personal project that he has also started blogging about ‘Building a CoPilot’ ( parnassus.co )
    See the below for the description

  • We will have the opportunity to hear from John Vandenburg, of Franklin.ai, about creating a medical analysis solution using Rust - and what advantages they see in it.

  • We also hope to meet an excellent, lifelong C++ programmer to give us some of his perspective.

I will have a Zoom link and a calendar invite later today.

Join Zoom Meeting - Launch Meeting - Zoom
Meeting ID: 829 5377 7622
Passcode: 400123

1 Like

Uploading … September Perth meeting.

Next Perth ADUG meeting is tomorrow, Tuesday 12th November. 6pm Perth time, online.

My head has been a mess - we will see how we go for the content part. :grimacing: :neutral_face: :upside_down_face:

Perth, Western Australia ADUG meeting will be tonight (for us) at 6pm WAST (GMT+8) (7pm Eastern).

Scott Van Der Linden is saving my disorganised @ss, and will be presenting on the topic of “The Principle of Loose Coupling” . ie touching on Interfaces, and the Factory Pattern, … possibly reaching towards Dependency Injection (don’t quote me on that part).

He would be starting, I expect, at 7pm. Before that some general news and discussion.

Everyone very welcome of course.
It will be recorded - but it will be great to have people with more experience in this area than I have, to converse around the ideas involved.

I will get a Zoom link later. And a calendar invite.
Cheers.

WADUG Meeting - November 2024 - Calendar Invite

Tonight’s Zoom link.

ADUG Perth Meeting
6:00pm Meeting open (Perth)
6:15pm Presentations start

Join Zoom Meeting
https://us02web.zoom.us/j/82953777622?pwd=ctJrSn5yWbs4aAXcV0m6Q7FjhuwzYv.1

Meeting ID: 829 5377 7622
Passcode: 400123

Please note we are getting a new Zoom link.

The last one is not starting for us.

Topic: ADUG Perth Meeting - Nov-2024 - 6pm Start (Perth AWST), 6:15 first presentation. Date TBD
Time: Nov 12, 2024 18:00 Perth

Join Zoom Meeting

Meeting ID: 823 7926 3676
Passcode: 142405

Thanks to @scott.hollows , turning on the AI meeting summariser …

Holy smokes. Chat log, Summaries, Action items … :open_mouth:

This was the output from last night :


  • Meeting summary from Zoom AI
  • Meeting chat log

Meeting summary for ADUG Perth Meeting
12-Nov-2024 - 6pm Start (Perth AWST), 6:15 first presentation

Agenda
General news and discussion.

Scott Van Der Linden
topic “The Principle of Loose Coupling”.
ie touching on Interfaces, and the Factory Pattern, 
possibly reaching towards Dependency Injection (don’t quote me on that part).

Quick recap

The team discussed updates on Zoom links, technical issues, and upcoming meetings. They also explored the differences between Delphi and C#, the concept of dependency injection, and the use of interfaces and properties in programming. Lastly, they touched on the importance of lifetime management, the implementation of multiple interfaces, and the use of default values in programming.

Next steps

• Paul to post David Millington’s previous talk on the forum before the upcoming AGM.
• Paul to add Samer’s email to the mailing list for future meeting notifications.
• Scott van der Linden to consider reporting the potential bug related to interface casting to Embarcadero.
• John to follow up with Les Fox via phone in the near future.
• ADUG members to attend the AGM on Monday, November 18th, featuring David Millington’s presentation on AI Code Understanding [Engine].

Summary

Zoom Link Updates and New Headset

Paul also shared his screen to discuss the upcoming Embarcadero talks and the Font Creator software. Richard, from Birmingham, UK, introduced himself. The group also discussed the upcoming AGM for ADUG and a Perth Rust meeting.

Delphi Licensing and Visual Studio Options

Richard, a Delphi programmer since 1997, shared his experiences with various versions of Delphi and C#. He currently freelances for a charity in London, maintaining their ASP.NET site. Richard questioned the licensing terms for Delphi, considering his freelance status and the revenue he earns. Paul clarified that individuals can use the Delphi Community Edition to create apps for personal use and sales until their revenue reaches $5,000 per year. Scott van discussed the cost of Visual Studio licenses, noting that the Community Edition is free for individual developers. The team also discussed the differences between Visual Studio Community and Professional editions.

Delphi, C#, and Programming Principles

Richard discussed his experience with Visual Studio 2022 Community and its limitations compared to Delphi. Scott Hollows shared his insights on the evolution of Delphi and the improvements in the free version over the years. Paul expressed interest in learning C# and asked Richard for guidance. Richard explained that C# is similar to Delphi but with different class structures and a different framework. Scott van then presented on the principles of programming, focusing on high cohesion and loose coupling. He emphasized the importance of loose coupling for maintaining code stability and the use of dependency injection as a method to achieve this.

Dependency Injection and Anonymous Methods

Scott van discussed the concept of dependency injection in programming, specifically using classes and constructors. He explained how to decouple a class from a specific widget by passing through a widget class instead of an instance. This allows for more flexibility in instantiating the widget at a later time. Scott also introduced the concept of anonymous methods to handle multiple constructors in descendant classes. Paul asked clarifying questions about the use of class of and the implications of polymorphism, which Scott answered. The discussion concluded with Scott explaining the need for a specific return type when using anonymous methods.

Loosely Coupled Code With Factories

Scott discussed the benefits of using anonymous methods and factories to create loosely coupled code. He demonstrated how to register and instantiate different classes using a single point of contact, which reduces dependencies and makes it easier to swap out units. Scott also showed how to use a factory to generate forms and how to pass parameters through the factory. He emphasized the importance of having a contracts page, or single point of contact, for all classes. Paul and Richard asked questions about the code, and Scott provided explanations and solutions to their concerns.

TValue, TVariant, and T[RTTI]Type

Scott van discussed the use of Tvalue and Tvariant in programming, highlighting their flexibility but also their finicky nature. He explained that Tvalue can store practically anything but can be difficult to extract data from, while Tvariant is more straightforward but less flexible. Scott also mentioned the possibility of using T[rtti]type for storing types, and the concept of an array of types. The team also discussed the mysterious “HFA” acronym, which was eventually identified as a specialized type of pointer used for optimizing storage and calling conventions on ARM and ARM64 platforms.

Lifetime Management in Object-Oriented Programming

In the meeting, Scott van discussed the importance of lifetime management in object-oriented programming, emphasizing the need to manage the lifetime of objects to prevent memory leaks. He explained that forms manage the lifetime of everything they own, and if an object is not part of the form’s descendant, it needs to have another way of dealing with it. Scott also discussed the difference between interfaces and objects, stating that interfaces are purely a contract and do not manage the lifetime of objects. He also mentioned that in C#, interfaces are not reference-counted, but rather managed by the garbage collector. Richard and Paul also contributed to the discussion, asking questions and clarifying points.

Delphi Interface Implementation and Casting

In the meeting, Scott van discussed the implementation of multiple interfaces in Delphi programming. He explained how to handle conflicts between interfaces with the same method or property, and how to use the “implements” keyword to specify the interface being implemented. Richard shared his experience of not finding examples for creating an object as an interface and casting it to another interface it supports. Scott also demonstrated how to use the “supports” keyword to check if an object supports a particular interface. The team also discussed the potential issues that can arise when casting objects between interfaces and the importance of using the correct syntax to avoid errors.

Interfaces, Properties, and Default Values

In the meeting, Paul and Scott discussed the use of interfaces in programming, with Scott explaining the benefits of using interfaces for loose coupling and high cohesion. They also discussed the use of properties in programming, with Scott explaining that properties can be used to enforce read-only or write-only access to fields. The conversation also touched on the use of default values in programming, with Scott explaining that default values can be used to suppress certain values when streaming data. The conversation ended with a discussion about the cost of cataract surgery, with Les mentioning that he had his done at a local [Lion’s Eye] Institute for a reasonable price.

==============================================
Chat log

00:24:10 Paul McGee: If you’re an individual, you may use Delphi CE to create apps for your own use and apps that you can sell until your revenue reaches US$5,000 per year.
If you’re a small company or organization with up to US$5,000 per year in revenue, you can also use the Delphi CE. Once your company’s total revenue reaches US$5,000, or your team expands to more than five developers, you can move up to an unrestricted commercial license with Professional edition.
Delphi CE is also perfect for early stage startups who are bootstrapping their product vision before securing capital! Develop your professional app with the Community Edition knowing that you can skip the learning curve your competition faces when building for multiple platforms.

00:30:44 Paul McGee: 3. What is Visual Studio Community?
Visual Studio Community is a free edition for individual developers creating apps (paid or free) in a company with less than 250 devices. Within an organization an unlimited number of users can use Visual Studio Community in a classroom-like learning environment, for academic research or to contribute to open-source projects.

02:51:30 Paul McGee: G’day to the new people I didn’t notice before. :slight_smile:

02:58:46 Paul McGee: Implementing Interfaces - RAD Studio