Discussing, Learning, and Using Delphi and related technologies to create Great Applications!
procedure Meeting;
const
  MeetingTitle = 'Client/Server Mobile App - Part 1';
  MeetingMonth = 2019.02 ;
  { tags: #2019 }
begin
  WriteLn('''
We’re going to start off 2019 with a series of meetings that show you how to build a mobile application that talks to a server back-end. David will show a project built with Delphi 10.2 Tokyo that has two parts: 1) a Windows server console application that talks to an InterBase database and provides an API to which a client application connects; and 2) an Android app that connects to the server and communicates JSON data via REST protocols.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'Delphi Chat';
  MeetingMonth = 2019.01 ;
  { tags: #2019 }
begin
  WriteLn('''
For anyone who wants to just chat about Delphi or related technical (or non-technical) topics, David Cornelius will be at the restaurant tonight at the regular time.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'End-of-Year Technology Chat';
  MeetingMonth = 2018.12 ;
  { tags: #2018 }
begin
  WriteLn('''
Since our regularly scheduled meeting for November fell on the day before Thanksgiving and NO ONE would be there, we decided to move the meeting date forward a couple of weeks. We don’t normally meet in December, but we’ll make an exception because it’s early enough in the month that it shouldn’t conflict with any holiday/family plans. We won’t have a specific presenter but could start off the discussion with how the year went for everyone, touch on some of the interesting news highlights in the tech industry, and go from there.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'Remote Access Through a Browser';
  MeetingMonth = 2018.10 ;
  { tags: #2018 }
begin
  WriteLn('''
This is Part II to August’s topic in a way because we will be looking at a different way to get your legacy applications to run through a browser. However, this time we’ll be looking at a different product from the same company that provided Thinfinity VirtualUI. There are cases where that scenario doesn’t quite cut it. Cybele Software provides another solution, Thinfinity Remote Desktop Server. There are many Remote Desktop clients and other ways to access remote desktops through a browser.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'Run your Delphi VCL Applications through a Browser!';
  MeetingMonth = 2018.08 ;
  { tags: #2018 }
begin
  WriteLn('''
This month we will show how, by adding a simple library to your old Delphi code, your Windows VCL application can run through a web browser on any device that supports HTML5. No need to use WebBroker or convert it to IntraWeb or Firemonkey, just simply open up your project, add a unit, recompile, and it now is able to paint on an HTML5 Canvas–provided the Thinfinity VirtualUI server is running.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'Chocolatey for Delphi';
  MeetingMonth = 2018.06 ;
  { tags: #automation #2018 }
begin
  WriteLn('''
If you’ve ever used Linux, you may be familiar with software package managers such as RPM or APT to easily install and update software along with their dependencies. A few years ago, someone decided that Windows should be able to enjoy this same ease of maintaining software packages and started Chocolatey, a package manager for Windows using PowerShell scripts and the NuGet infrastructure. Typically, when installing software, you need to look for them on the web, select a mirror to download from, go to your downloads folder, launch the installer, acknowledge licenses, then repeating for each program.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'Dependencies';
  MeetingMonth = 2018.05 ;
  { tags: #Ron Grove #2018 }
begin
  WriteLn('''
We’ve talked a lot about the SOLID principles of software development over the last couple of months. The last letter, D, stands for Dependency Inversion. We’ll discuss this with examples and talk about the Spring library and how its Dependency Injection plays into this–if you do it right! PRESENTER Ron Grove will again lead the discussion, based in large part on his deep knowledge of the subject having read the book the SOLID principles were based on before the acronym was coined.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

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;