Discussing, Learning, and Using Delphi and related technologies to create Great Applications!
procedure Meeting;
const
  MeetingTitle = 'Show Me The Code!';
  MeetingMonth = 2016.05 ;
  { tags: #Gene Juhos #Homer Jones #2016 }
begin
  WriteLn('''
This month is going to be a “show and tell” with three different applications: an Android application using Delphi and FireMonkey, a insurance management program incorporating compiled resources, a back-end integration using plug-in modules, REST APIs, and UniDAC accessing SQLite and MySQL. The goal is to show, again, the variety of software that can be produced with Delphi. Hopefully, it will inspire questions and provide insight into topics that might be of interest for future meetings.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'Photo Kiosk Project';
  MeetingMonth = 2016.05 ;
  { tags: #2017 }
begin
  WriteLn('''
This month, we’ll take a look at a project that involved multiple technologies. A church requested a touch-screen enabled member photo display in their lobby. After some research and looking at options, it was decided the display would be built in HTML5 using jQuery libraries to provide picture zooming and layout control and so that it could work on multiple devices with varying screen sizes. The list of member names and picture filenames was maintained in two spreadsheets, one sorted by last name and one sorted by first name.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'Tech Gab Session';
  MeetingMonth = 2016.03 ;
  { tags: #2016 }
begin
  WriteLn('''
This month we’ll just have a tech gab session, if that’s alright with everyone. We could discuss further last month’s topic, contemplate the meaning of Idera’s purchase of Embarcadero and what to make of their recent announcement to focus exclusively on developer tools, show off a latest gadget you might have, or just brainstorm on what the next killer app might be.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'Spring4D';
  MeetingMonth = 2016.01 ;
  { tags: #Ron Grove #2016 }
begin
  WriteLn('''
Spring4D is an open-source code library for Delphi 2010 and higher. It consists of a number of different modules that contain a base class library (common types, interface based collection types, reflection extensions) and a dependency injection framework. We will go over the basics, covering the most useful parts with the broadest appeal, especially concentrating on lists and all the cool things you can do with them. A discussion about the main reason Spring4D came into existence, Inversion of Control, and what Dependency Injection really means will also be addressed.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'Home Automation with FireMonkey';
  MeetingMonth = 2015.11 ;
  { tags: #2015 }
begin
  WriteLn('''
One of our members has been diving into the FireMonkey framework and has written his first Android app. This is not a formal presentation–he will simply share some of the journey he undertook as he used FireMonkey and REST services in both a Windows and an Android app to control home automation devices with Delphi XE7. PRESENTER Mike Shkolnik is a Project Manager in the Portland area and while he’s been “using Delphi since it was Turbo Pascal on a CP/M card in an Apple II,” he is completely self-taught and does not consider himself an expert.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'Five Years of Updates';
  MeetingMonth = 2015.09 ;
  { tags: #2015 }
begin
  WriteLn('''
Many Delphi developers have not upgraded in quite some time. Some say Delphi 7 was the last great IDE, others got up to Delphi 2007 but never jumped into Unicode. There were some great language enhancements in Delphi 2010, but then the XE line started and the update rate increased dramatically adding 64-bit, FireMonkey, FireDAC, add-on tools, cross-platform capabilities, REST and JSON support, and many other things. For some, the updates were considered little more than paid bug fixes.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'Developer Tools';
  MeetingMonth = 2015.07 ;
  { tags: #2015 }
begin
  WriteLn('''
Recently, the OCCA’s monthly meeting was on My Favorite App. It was a roaring success and sounded like a good idea for this group. So this month, our topic will be on a similar vein, but with a focus on developer tools. This will be an open forum led by David Cornelius but with the hope that each attendee will have something to share. To help generate some ideas, tools could cover (but are not limited to): source control, code compare, deployment management, script editors, macro libraries, search tips, programming aids, keyboard short-cuts, IDE plugins, or database analyzers.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'Shared Projects in Oxygene - Part 2';
  MeetingMonth = 2015.05 ;
  { tags: #2015 }
begin
  WriteLn('''
In March, we introduced the concept of Shared Projects using Oxygene, a Pascal compiler that works inside Visual Studio and generates applications for all the major platforms–including Windows Phone. This month, we’ll continue that exploration by branching away from the Windows desktop and take a look at how the same shared classes we used previously can also help us build ASP.NET web sites and Android apps. CODE The code for everything demonstrated during both parts of this presentation is on GitHub.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'Tech Talk';
  MeetingMonth = 2015.04 ;
  { tags: #2015 }
begin
  WriteLn('''
There is no formal presentation for this meeting. We will meet as friends in the programming industry and talk about whatever geeks will tend to discuss when they get together!
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'Shared Projects in Oxygene - Part 1';
  MeetingMonth = 2015.03 ;
  { tags: #2015 }
begin
  WriteLn('''
A little over a year ago, we discussed one application in several different languages covering Delphi, C#, Oxygene and even JavaScript. It’s very unusual that a company would want to do this in real life given they’d have to support several different languages, but it made for some interesting discussions and comparisons. Usually, a company attempts to minimize the number of supported environments to prevent fractured development teams and keep support costs down.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;