Discussing, Learning, and Using Delphi and related technologies to create Great Applications!
procedure Meeting;
const
  MeetingTitle = 'Code Signing Options';
  MeetingMonth = 2026.09 ;
  { tags: #Homer Jones #2026 }
begin
  WriteLn('''
Homer Jones will discuss Code Signing Certificate types including Individual Validation (IV), Organization Validation (OV), and Extended Validation (EV). Information on the evolution of certificate security will be touched on as well as the advantages of automatic signing versus manual. The presentation will include an INNO Setup script and a Delphi app that signs user selected applications. David Cornelius will follow with information about a product that allows a locally installed hardware key to be used from multiple locations in a code-signing process.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'Spice up Your Console!';
  MeetingMonth = 2026.08 ;
  { tags: #2026 }
begin
  WriteLn('''
Today’s software makes great use of pretty styles, gradient shading, sliding effects, 3-D buttons, eye-catching charts, splashy graphics, and more ways to make them attractive and user-friendly. But if all you need (or are restricted to) is a simple console app, it’s appearance can seem so dull in comparison. Even adding a line of dashes or making letters all upper-case doesn’t start to compare. There is a way to add color, control screen placement, and more when generating console output if you dive into the ANSI Escape Sequences that most terminals support.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'Tech Chat';
  MeetingMonth = 2026.07 ;
  { tags: #2026 }
begin
  WriteLn('''
We’re taking it easy this month – no official presentation, no computers, just a get-together with programming friends out of the summer heat! We’ll be at Olive Garden in Lake Oswego, so come hungry for lasagna, salad, and breadsticks. The only exceptions thrown this month will be if they run out of breadsticks. DATE/TIME Wednesday, July 15, 2026 6:00 - 8:00 PM LOCATION Olive Garden in Lake Oswego 6355 SW Meadows Rd.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'What Have You Done for Me Lately?';
  MeetingMonth = 2026.06 ;
  { tags: #AI #2026 }
begin
  WriteLn('''

Janet Jackson asked this question in 1986. We’re asking it of AI in 2026.

But unlike Janet’s version, AI is getting better and is doing more every day. Not only is it speeding up debugging and development, it’s also enabling the creation of tools that were previously relegated to wish lists.

  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'No Delphi in Sight';
  MeetingMonth = 2026.05 ;
  { tags: #2026 }
begin
  WriteLn('''

This month will not focus so much on what’s new in Delphi programming as it will in what not to do when managing multiple Windows servers in the cloud. Maintaining health of both the physical bodily kind and a one-man application cloud is a tricky balancing act!

  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'Death & Taxes - And Delphi!';
  MeetingMonth = 2026.04 ;
  { tags: #2026 }
begin
  WriteLn('''

They say two things in life are certain: death and taxes. Delphi applications might just be a third — and if yours is still generating revenue, that’s something to celebrate, not apologize for.

  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'AI Follow-Up';
  MeetingMonth = 2026.03 ;
  { tags: #AI #2026 }
begin
  WriteLn('''
Homer Jones will present a follow-up to his talk last November, on adding AI support to his insurance agency management software. He will cover the Retrieval-Augmented Generation (RAG) method of using and controlling Large Language Model AI. We’ll discuss Theory, Implementation, Best Practices, Prompt Engineering, how to make AI execute application events, and how to keep it from wandering off on it’s own train of thought. There will be a code demonstration to show how it works as a real user assistant, even voice activated.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'A Complex Solution';
  MeetingMonth = 2026.02 ;
  { tags: #2026 }
begin
  WriteLn('''
Sometimes, advancing technologies help make things smoother; many times, they make things more complicated. In the case of running Windows applications, moving from an office installation to a set of remote servers offers many benefits but can also negatively affect some features of what the software used to be able to do effortlessly. Tonight, we’ll share the details of how simply transferring files between a local computer and a remote software product suddenly took a dramatically increased amount of time when changing the access to the software–and what it took to resolve it.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;