Discussing, Learning, and Using Delphi and related technologies to create Great Applications!
procedure Meeting;
const
  MeetingTitle = 'Be a SOLID Programmer';
  MeetingMonth = 2018.04 ;
  { tags: #Ron Grove #2018 }
begin
  WriteLn('''
This is a continuation of the discussion on SOLID programming principles we started last month. We’ll finish up our coverage of Single Responsibility and Open/Closed principles, then continue on with aspects of the other three: Liskov Substitution - objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program, Interface Segregation - many client-specific interfaces are better than one general-purpose interface, and Dependency Inversion - one should depend upon abstractions, not concretions.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'S is for SOLID';
  MeetingMonth = 2018.03 ;
  { tags: #Ron Grove #2018 }
begin
  WriteLn('''
It’s time to get into some coding practices. This is the first in a series exploring the SOLID principles of software development. This month, we’ll concentrate on the Single Responsibility Principle. As time allows we’ll start looking at the “O” which stands for the Open/Closed principle. Many of us have probably used these principles even though we may not have had fancy terms like this in mind at the time. Hopefully we can help one another think about how we can make use of common sense principles like these in our own work.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'Tech Talk';
  MeetingMonth = 2018.02 ;
  { tags: #2018 }
begin
  WriteLn('''
Due to the weather, we’ll postpone the start of our SOLID discussion until March. For those who would like to join tonight anyway, we’ll have a small gathering at the usual space and time and let the conversation lead us where it may!
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'Delphi 10.2.2 and Group Planning';
  MeetingMonth = 2018.01 ;
  { tags: #2018 }
begin
  WriteLn('''
For the discussion tonight, we’ll briefly touch on the latest update to Delphi which was 10.2.2. Since it’s the first meeting of 2018 we will also focus on what we’re all doing with Delphi (if anything) and what kinds of discussions would be best to focus on this year. I don’t want to spend too much time talking about features that are hardly even marginally useful to any of us and focus on what is useful.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'XAF';
  MeetingMonth = 2017.10 ;
  { tags: #2017 }
begin
  WriteLn('''
There’s a pretty cool framework in .NET from DevExpress called XAF. We’ll start out with some tech talk and see if there’s anything Delphi related that we’d like to discuss. Then demonstrate some of the cool features XAF has to offer and why some of the things it’s trying to do may become the norm over time in software development.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'Tech Talk';
  MeetingMonth = 2017.09 ;
  { tags: #2017 }
begin
  WriteLn('''
Tonight, we’ll just hang out and talk. If someone would like to demo something they’ve been working on lately that would be wonderful. If nothing else we can fire up Delphi and play with the new REST features they’ve been adding. It might be fun to have a small database and just explore questions we might have about this technology together.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'Pivot Tables - Part II';
  MeetingMonth = 2017.08 ;
  { tags: #2017 }
begin
  WriteLn('''
The interest in Pivot Tables was high. We saw demos last month and talked about concepts. This month we’ll see some real-life examples. Additionally, you might just see a hover-craft as a side-line interest!
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'Discussion on Pivot Tables';
  MeetingMonth = 2017.07 ;
  { tags: #Ron Grove #2017 }
begin
  WriteLn('''
Ron will lead a discussion on Pivot Tables and show some examples with the DevExpress Pivot Table. It allows you to dump data so your customers can create them using Excel’s Power Pivot feature. PRESENTER Ron Grove has been in the IT Services area for many years but has become a superb programmer with a strong interest in a broad spectrum of technologies including Delphi, .NET, and mobile.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'Delphi Surprise!';
  MeetingMonth = 2017.06 ;
  { tags: #Ron Grove #2017 }
begin
  WriteLn('''
This month, among other subjects, we’ll be looking at RAD Studio 10.2 Tokyo. There’s a possibility of other subjects being brought to the table, but you’ll have to be there to find out! PRESENTER Ron Grove has been in the IT Services area for many years but has become a superb programmer with a strong interest in a broad spectrum of technologies including Delphi, .NET, and mobile. His career has recently taken an interesting turn for the better.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;