Melbourne Meetings
June -
Dev Express Grids- Phil Shepard
Phil reviewed Dev Express grids from a .Net and Visual Studio perspective demonstrating
the capabilies of the component and how he manages the large number of properties it has.
SQL Generation Using Method Chaining- Richard King
Richard demonstrated generating SQL in an application offering many
user selectable queries and optional conditions which can be applied to the
selected queries. A technique known as "method chaining" was used to
write the code which is very readable (even if it is not
Queen's English), is easy to write, extend and maintain.
Richards Presenetation:: Notes of the presentation as RTF

May-
A Deployment Case Study- Don Macrae and Richard King
An application with a user base of some thousands, the appearance
of different versions, and a requirement for silent compulsory updating.
Recently the updating was modified so that the users did not need
to be have administrator privileges. The techniques considered
were (1) Windows Installer technology, and (2) the use of a previously
installed service.
This presentation outlined the investigation and the solution,
and also covered other deployment aspects.
Tools used or explored: Installaware, Installshield, WIX, Orca,
InnoSetup, FinalBuilder.

April
C# Presentation- John McDonald
John gave an overview of some of the interesting features of C#, and how it compares with Delphi.
Points discussed:
- static classes, sets, enums (very briefly)
-
generic classes and methods
-
enumerators and iterators
-
anonymous methods and closures.
Even those who do not plan to write in C# found the presentation interesting because
a lot of these features will be introduced to Delphi. John's code samples can be downloaded at
AdugCSharpDemo.zip

March
Networking Question and Answer- Roger Connell
A General open forum discussing Network questions

February
Blackfish SQL- Tim Jarvis
Tim has provided a number of ADUG presentations and again offered an interesting technical and insider insight
into CodeGear in general and the Blackfish SQL offering in particular. As usual the presentation included worked examples on how to best use Blackfish SQL.
Tim actually left CodeGear early in February to become the Software Architect at Quest Software.
This was his last CodeGear interaction with Melbourne ADUG and we wish him luck in his new role.
We hope to still hear from Tim because Delphi development has a has significant part at Quest.

January - .
Networking 101 Part Two - Roger Connell - Innova Solutions
The presentation was an attempt to give a very quick overview of the key aspects involved
in setting up and managing a small business network using Windows computers.
Roger provides PowerPoint notes which hopefully record the key information required.
Items discussed are
- TCP/IP
- Private Address Space
- Small Office Network
- TCP/IP Tools
- Symbolic Name Translation
- Windows Resource Sharing
- Router/Firewall Settings
- Network Analysers
Time ran out in December so the second half of the discussion continued in January
Powerpoint Notes:: Notes as Powerpoint Presentation

December
Networking 101 Part One - Roger Connell - Innova Solutions
The presentation was an attempt to give a very quick overview of the key aspects involved
in setting up and managing a small business network using Windows computers.
Roger provides PowerPoint notes which hopefully record the key information required.
Time ran out in December so the second half of the discussion continued in January
Powerpoint Notes:: Notes as Powerpoint Presentation

November
A TProcessObject Takes OO to a New Level - Bryan Dayton
For some time Bryan has been on a personal crusade to discover how to write pure
OO applications - this is complete applications based exclusively on objects
(using classes such TCustomer, TProduct, TInvoice, etc).
Persistence framework went a long way towards this goal, but still left gaps.
Bryan proposed using TProcessObject which ensure every aspect of the application program
is based on classes with properties and methods. There are no globally
visible processes outside the OO hierarchy - in other words no Utils units.
An Introduction to Networking - Roger Connell - Innova Solutions
Roger took a few minutes to try and scope out a proposed discussion on Networking for December when we will be
sharing our group knowledge on this very broad but essential topic.

October .
An Insight into Delphi at Code Gear- Nick Hodges - Code Gear
The Code Gear Delphi Product Manager Nick Hodges dropped into our Melbourne meeting.
It gave everyone the opportunity to hear
all about Code Gear's plans for Delphi and to provide some direct feedback on any concerns or issues.

September Annual General Meeting
Creating a Delphi Plug-in Framework- Tim Jarvis - Code Gear
Tim discussed ways of creating a plug-in framework in Delphi.Win32 and Delphi.NET, highlighting differences and similarities.
A common need in modern applications is to be able to add functionality without re-deploying the entire application, in other words plugging in new functionality. Delphi itself allows developers to “plug-in” to the IDE.
In this session we explored a commonly used pattern to achieve this aim using Delphi.Win32. We also looked at
the slightly different mechanism for doing the same thing in Delphi.NET,
the non-deterministic nature of the .Net framework means that we need to use a “pull” mechanism rather
than a “push” one.
Tim touched on topics such as Factory Patterns, Interfaces, Class Methods, Attributes and Reflection.

August -
The New Firebird Versions - Richard King
Richard had been trialing Firebird 2.0 and 2.1 beta . He told us what was new and what worked.
Data Scrubbing - Roger Connell
Most of the data that needs to be loaded into a new database often already exists but is contained in ad hoc
spreadsheets and often in less than ideal formats. Roger demonstrated and explained his current approach to this
problem and looked at some of the formats encountered.

July -
PHP and "Delphi for PHP"- Alex Moss
Alex skimed over CodeGear's introduction to "Delphi for PHP" slides from that presentation and then told us what
he has discovered about Delphi for PHP behind the scenes.
Tim Jarvis from CodeGear also came along and was able to provide some insight into the development of this product.

June -
Code Generation- John McDonald
Why write code if you can get your computer to do it for you?
John gave us a look at a Delphi program that can generate source code for DUnit tests and discussed advantages and disadvantages of this technique.
We also looked at a couple of tools that can be used for code generation and discuss other areas where code generation might be useful.
Code Generation won't write all of your programs, but it can help write some bits of repetitive code and it can do it more consistently and reliably than coding by hand.

May-
Here is the Problem. Lets look for a solution- Jim Eadie
Jim had some involvement in an old pardox application developed for Windows 3.1. The time has finally come to look at bringing it up to date.
Jim has provided the original specification here. Jim demonstated the application to the meetiing and discussed how it worked.
Jim had already come to the conclusion that new database searche functionality made such complex mechanisms redundant
and he will use a standard database in the new application. It was still interesting to be reminded of the hoops
we used to have to jump though.

April
BDS 2006 Pros and Cons-Richard King, Roger Connell and others
Many of our members have bought BDS 2006 but are still using Delphi 7 for their main line development.
There is a definite learning curve to BDS from Delphi 7 and the question is do the benefits justify the pain.
Richard and Roger had started to do some level of development in BDS and shared their experience.
Following the Delphi 2007 roll out seems to have encouraged interest in the new format and much experience was shared.
Every one seemed to have a useful tip. More tips available at
http://dn.codegear.com/article/33805

March
A Beginner's Look at VMWare Workstation-Jim Duff
An industry pundit recently declared virtualisation to be the big thing this decade.
Many Delphi developers use VMWare from VMWare Inc for a variety of reasons, and many have heard of it from List Postings or had occasional peeks during previous ADUG meeting presentations.
Jim will gave a demonstration of a Virtual Machine, plus cloning and using multiple Virtual Machines and elicited additional information
from the other members in an informal discussion. The formal part of Jim's presentation can be
obtained here
Keeping Your Application Current-Don Macrae
Don conducted a "peer review" of the code used to update his application with the latest data and executables from an
Internet Webservice. Don explained how his code improved the user experience by doing some download functions while
the user is busy with other things.
The Webservice component was generated from the target site's Web Service Definition Language using Delphi's WSDL Import Wizard.
If an update of the actual running executable was required, the Webservice would be used to obtain a new install file.
The application then launches the install file and closes. The Inno Setup install file does a blind install
before re-launching
the original application with its new executable.
We're thinking of making the '20 Minute Code Review' a regular or perhaps occasional feature of Melbourne meetings -
so bear that in mind.

February
Using C#, ASP.NET 2.0 and MySQL to create a data-driven website-Steve Forbes
ASP.NET 2.0 provides a rich environment for creating web-based applications that Delphi developers will readily relate to.
Steve provided a step by step tutorial for creating a simple web-site, including how to use business objects to separate business logic from the presentation layer,
and discussed some of the techniques and pitfalls newby ASP.NET developers need to be aware of.
Steve has provided the documentation and tutorial code at http://www.ozmosys.net.au/download/adug/adug_aspdotnet.zip

January
More on PDF -Jim Eadie
Jim started with PDF very early on when tools were limited but he persevered and using WPPDF provided a series of wrappers to achieve his reports. WPPDF comes as a DLL and provides the developer with a TCanvas object which is the PDF page.
AJAX -Alex Moss
We'd all heard of Ajax on the Web but what is it and how does it work? Alex researched it and explained that it is the use of the HTTP Request Object now provided with browsers to enable Java Script code functions to communicate with the server and transfer data. This means that you no longer need to download a whole new page to update your pages with live data.
Click here to get the presentation or get the full demo code here

December
FogBugz -Don Macrae
FogBugz is a bug report management tool from Joel Spolsky. Don has been using it and gave us a
rundown on bug reporting, explaining how FogBugz meets his requirements.
Solving a Problem -
The group looked at the predefined problem and those who had attempted the problem explained their approach.
The outstanding solution came from John McDonald, our resident mathematician who likes to get his head around these things.
The problem and John's approach can be viewed at
http://www.adug.org.au/meetings/melb/FixtureProblem.htm

November
Third Party Grid Components - Phil Sheppard, Jim Duff, Jim Eadie, Roger Connell
Four members shared their knowledge on some of the third party grid components available for developers using Delphi.
The products reviewed were
DevExpress Grid - (http://www.devexpress.com/),
SMDBGrid - (http://www.scalabium.com/smdbgrid.htm),
Woll2Woll Grid - (http://www.woll2woll.com/) and
TMS's Advanced String Grid - (http://www.tmssoftware.com/).

October .
Creating PDFs - Graham Pitson and Richard King
Richard and Graham both output their Delphi reports in PDF.
They gave us some hints and told us the relative merits of the tools they use.
Graham started on PDFs first using "PDF Tool Kit" from http://www.ActivePDF.com
while Richard started later and uses "Quick PDF".
Graham was aware of the merits of both products but persisted with the earlier "Active PDF" product as it supports serialization.
With Quick PDF it seems the supplier only collects the money and you need to rely on the very active Fan Club at http://www.QuickPdf.org for support.
The meeting then degenerated in to an interesting discussion on PDF features and Don's FogBugz presentation was deferred to a later date.

September -
Annual General Meeting
The new office bearers are:- President - Glenn Crouch; Vice President - Graham Pitson;
Treasurer - Mathias Burbach; Secretary - Andrea Coffey.
Turbo is Back- Glenn Crouch
Turbo Delphi was just released in September but Glenn had had it for a while and
gave us some insights into the Turbo Suite.

August -
The New Ribbon Menu- Phil Sheppard, Richard King and Jim Duff
Phil, Richard and Jim have been individually examining the new “Ribbon Menu” which we will be
exposed to with the next release of Office. Using the TMS components they have all progressed to the point
where they were able to show us their efforts. The consensus seems to be that Ribbon Menus will
require much more thought in the planning stage.
Richard has provided the sample ribbon application at
www.vikingcomputers.com.au/ribbon.htm
Navigating the Harbour- Colin Kemp, Kemputer
Some time ago Colin posted to our list questions about tracking boats traveling around Sydney. The list did not provide the solution but did
help in finding it. Colin explained the method he used, discussed some of the issues and showed a demonstration of the solution.
The actual project deals with 209 distinct locations around Sydney Harbour and
every location needs a path to every other location (outward and return). The final application can retrieve
and draw any path in under one second on a
2GHz PC. For the demonstration we were traveling around the New Hebrides . The zip file containing the slides and Delphi demo code is available at
www.adug.org.au/meetings/melb/downloads/BoathPath.zip

July -
Secure Remote Support- Jim Duff and Roger Connell
Have you ever had to travel 30 minutes to find that all you needed to do was change
a minor setting. Jim and Roger make use of two “freeware”packages to interact with their Customer's
business application over the Internet from a remote location.
Jim discussed his experience in deploying and using the packages and demonstrated the
use of the solution. Jim's notes are available at http://www.ucars.com.au/delphi
Roger looked at some of the issues in establishing and securing the communication channel.
IP Addressing
Firewall Settings
Secure Tunnel Configuration
Databases with Secure Tunnels
Process Control
Roger's notes are available at http://www.innovasolutions.com.au/delphistuf/ADUGJuly2006.htm

June -
Timers-Alex Moss
A tutorial on the types and use of timers in Delphi.
The zip file containing the slides and Delphi demo code is available at www.adug.org.au/meetings/melb/downloads/June2006AlexTimers.zip
Remote Debug-Paul Klink - Paritech
Paul is one of the few who have used the remote debugging functionality available in Delphi. He told us what it is,
how to do it and why we might need to do it.

May
Copernic -Paul Spain
A tutorial on Copernic desktop search engine (Grep on steroids).
How to Deal with Date Time -
Don Macrae and Richard King
Richard wrote a date entry component and Don improved on it. After Don and Richard explained the aims and issues the group all joined the debate.

March - April
Introduction to open source components for Delphi - Richard King
Richard King continued his discussion on third party components by looking at Instant Objects and introduced our Wiki on Components as suggested at the previous meeting.
Advanced Break Points in the Delphi IDE -
Roger Connell
Roger recently discovered advanced break points in the Delphi IDE. Many others seemed to have also missed them so we did a quick overview.

February
Introduction to open source components for Delphi - Richard King
Richard explained that he has been reviewing open source components available for Delphi. He presented some of his findings then discushion centered on how to best harness the collective knowledge of ADUG members. Other sessions will offer you the opportunity to talk about your favorite open source component.
Evolving Delphi Applications -
Tony Rietwyk
Years ago Tony wrote a Delphi 2 application which displays Midi music files.
To become more familiar in designing with interfaces, Tony:
Rewrote as D7 objects using inheritance
Rewrote as D7 using interfaces
Brought it to D2006 Win32
Changed to D2006 .Net
Tony discussed:
The different mind-set required for modeling based on inheritance
compared with interfaces.
The ease of bringing code up to the different versions.
The zip file containing the viewer exe and delphi units is available at "www.adug.org.au/meetings/melb/downloads/Feb20060220.zip'
 January
Detecting Memory Leaks via DUnit Extensions - Peter McNab
Peter demonstrated proposed changes to DUnit which automatically
and swiftly identifies unit tests which leak memory or fail to call Checkxxx().
In the past leak testing was a very manual process involving running Memproof or Codewatch type tools.
Occasional application leak testing may never encounter the conditions which give rise to troublesome leaks in deployed code.
Tests that don't call check give a false sense of security, particularly ones where the call(s) to Checkxxx()
are controlled by if statements that fail to fire.
The DUnit modification code is available via
http://members.optusnet.com.au/mcnabp
Multithreadding Delphi Applications -Roger Connell - INNOVA Solutions
Delphi makes multi threaded applications relatively easy. Roger discussed when you should consider adding multithreading to your application and went through some simple thread models. Powerpionts and code samples are available at http://www.innovasolutions.com.au/delphistuf/ADUGJanuary2006.htm

December What is Useability - Steve Roberts, NAB.
Steve Roberts manages the Usability Lab at the National Australia
Bank. He talked about some of the issues he has observed in the 20+
years of studying users and demonstrated the assistive technologies
of JAWS and MAGic

November Taming The Beast - Refactoring RAD Code - Paul
Spain.
Rapid development is usually at the expense of design, and many
RAD projects have difficulty moving to version 2.0 or incorporating
new requirements or features - an example of design
debt.

October Code Name Dexter - Tim Jarvis.
Delphi 2006, ECO III, Delphi Compact Framework compiler and other
cool features...
 September Annual General Meeting followed by DUnit
on DataModules - Mathias Burbach
We saw how we can separate our business logic from the user
interface and how to apply unit testing on the business logic
contained in TDataModule.

August Subversion - one
of many Version Control System - Peter McNab Subversion in
depth followed by short comparisons of Perforce (Richard King); Team
Coherence (Graham Pitson); CVS (Don Macrae) and Star Team (?).

July
Working with Excel from Delphi - John McDonald. John
covered the basics of connecting to Excel using the ExcelApplication
component, writing data to a spreadsheet, and formatting the
spreadsheet. Speeding up the data transfer was then discussed. These
techniques can be extrapolated to other interactions with Excel.

June
Compiler Writing for Dummies - Darren Snodgrass This
presentation provided an introduction to the steps involved with
writing a simple Pascal compiler and interpreter, including language
definition, parsing, syntactic analysis, semantic analysis, error
recovery, assembly and the operation of a stack based machine.

May
A Sample Code Review - Tim Jarvis Tim walked through a
unit of code kindly provided by Don Macrae or was it more the case
of Tim kindly walked through a unit of code provided by Don Macrae?
Tim's emphasis was on checking conformance to a coding standard.
 April Recursion and Linked Lists - Roger Connell.
Early Pascal texts dealt extensively with managing dynamically allocated data via linked lists and with recursion in procedures.
With Delphi the dynamic data tends to be allocated as objects and these objects are typically managed in containers such as TObjectList.
In this presentation Roger looked at what can happen if you manage these objects as a linked list and how recursion can really make it rock. Slides and code
here
Organizing Program Constant Data - Don Macrae
You can set it in components at design time, which results in a game of hunt the thimble if you need to change it, or
you can embed it in your code, with similar effect.
Most programs embody constant values, and where it resides makes a difference to maintainability and readability.
Record consts are the answer. Don shared several examples, and invited judgements.
Full Text Searching from within your Delphi Application - Graham Pitson
Lots of applications have free text data stored in files or databases.
Internet search engines are pretty good at helping us find
information on the web. But how can we do that in our own application
and what sort of data can we find?
Graham looked at some of the more common options available,
how they work and how you might make use of them in your own applications.

March Optimizing your code: Paul
Spain. Paul presented an overview of the issues and then went
through a thought provoking list of coding tips and techniques to
improve efficiency
Windows scaling: Jarrod Hollingworth's tute attacked the
issue of controlling how windows presents our forms when the screen
resolution is different from the design resolution. Jarrod's presentation
is here.
February Graham Grieve: Grahame
presented his replacement for the VCL's Printers.pas, with
structural improvements and more of the WinAPI features exposed.
Grahame's actual production source code and demo project is here.
Phil Sheppard: : Phil recently employed Joel Spolsky's guerilla
guide to interviewing in selecting a new employee. .

January Phil Sheppard: Phil.
has redeveloped 3 Delphi apps in C#. He presented an overview
of his C# app, architecture and code. Slides here.
Class Factories: Don Macrae's tute talked about class references
and demonstrated a basic factory. Demo here.

December Technology Considerations
for better Web Sites from Glenn Lawerence.
November Something Different.
Inspired by Joel's 'Guerilla
Guide to Interviewing', the meeting split into groups and attacked
some bite sized problems. Problems, pics and solutions here.
OctoberGenerating Objects from Existing Databases - Bryan Dayton
Bryan has approached the persistance layer fron a different angle. His work involves existing databases
and the challange was to use OO techniques within this existing data structure.
Use of extensions to Inno Setup - Paul Spain Inno Setup is the installer of choice of many of our members. Paul looked at some of the more
complex capabilities of the product and shared his knowledge
SeptemberRoll your own Persistence Layer III - Roger Connell
Delphi as a product provides easy integration with various relational databases for storing your data but there are other alternatives.
In the early years when the now infamous BDE had to be distribute with all such database
applications Roger chose not to use a standard database for one application which required a
simple installation.
Instead the application database was persisted as objects in a single file.
This led to development of an "Object" database implementation.
Roger presented a case study of how the availability of such software assisted in the
development of another OO project which required persistence. Code and Database DCUs
here.
August: Roll your own persistence
layer. Don Macrae and Natalie Vincent each
reported on their implementations of a persistence layer
July Richard King: Does XML
replace CSV?
Geoff Harris: An inside look at the Nexus database (ex FlashFiler)
June Steve Moller:
an overview of PasDoc's capabilities and his experience using this
on a large project for the CSIRO.
Nadia Natoka: a very entertaining presentation on her experience
in providing and improving user help
May Phil Sheppard and others: Another
look at GUI design
April Jim Duff:
A quick introduction to Rave
Natalie Vincent and Jim Duff: database application
architectures
March Melbourne committee: Melbourne GUI fest - 6
short presentations on various aspects of GUI design and
implementation
Feb Jim Duff: The VE part of
RAVE. Jim will go into more depth at a future meeting.
Peter Gummer: C#: It looks like Java, but feels like Delphi. Peter's
notes are here.
Jan Richard King: A quick look
at rich text using TRichView
Natalie Vincent: Environment Changes migrating from Win 98
-> NT/2000 -> XP.

December Graeme Grieve: Porting Indy to .NET.
November Bryan Dayton: Tricks With TEdit
Commitee members: Programming competition results followed by general discussion
October Don MacRae: A presentation on one way to do Properties
dialogs followed by discussion and synthesis of all points of view
September Annual AGM followed by Peter Hinrichsen and Ian
Krigsman: TechInsite Object Persistence Framework. Get more
information and download the framework from the tiOPF
site.
August Paul Spain: Lockbox
Phil Sheppard: TChart
July Don Macrae: One
approach to Maintenance Dialogs. Food for thought and a future
discussion.
Jarrod Hollingsworth C# Builder. Jarrod did an excellent walk
through of the new Borland C# product covering topics from the new IDE (which
we expect to see in Delphi 8) to aspects of the language itself.
Jarrod explained what parts of the IDE were generic (ie Microsoft's)
and what parts were Borland's.
June Roger Connell: Kernel,
User and Elapsed times under NT/XP. This is leading to a new ADUG
programming competition. Watch this space...
Richard King:
Genetic Programming, a generation beyond Genetic Algorithms. This presentation briefly introduced GA
and then moved on to Genetic Programming (GP). Richard demoed some home grown Delphi code that uses GP to find
mathematical functions given a number of data points.
May Vince Parrett: The Guts on FinalBuilder.
Well known guru and Canberra ADUG member Vince Parrett gave an
impressive demo of his very capable Final Builder product.
Paul Spain: An overview of the TurboPower tools. Paul gave a
brief run down of the 16 products (one with only 13 components and
another with over 120 components, right Don?) that have recently been
open sourced on SourceForge.
April Mark Brooks:
JavaScript, the Language. Mark described the JavaScript language
focussing on how to implement inheritance.
Natalie Vincent: Messaging in Delphi. Natalie gave a talk on
the Windows message loop. This was a follow up to an earlier talk on
the way Delphi handles windows messages.
March Richard King: Action
Manager in Action! Richard gave a talk on the D6/7 Action Manager
components, how they extend Action Lists (introduced in D5), and how
they can make building menu bars and toolbars easier, if you avoid the
buggy bits.
George Tasker: Exceptions in Threads. George described what
happens when an exception is raised in a thread. Download
George's code.
February: Paul Spain:
Transactioned Ini Files. Paul explored a lightweight mechanism for
persisting data that supports transactions.
Glenn Lawrence: Back to basics - Components and Controls. Glenn
represented his Delphi Magazine article on the basics of components
and VCL controls.
January: Andy Bulka: OOP Principles.
Andy led a discussion on OO programming principles.
Natalie Vincent: A Message in Bottle? Natalie discussed the
basics of windows messages, including how to dispatch a message
to a window, message loops and window procedures - and how Delphi
hides this complexity from us.

December Grahame Grieve:
Faxing with ASyncPro. Grahame shared the fruits of his labours in
getting the fax component of this useful package from TurboPower
working.
Paul Spain: A DUnit Expert. Paul presented an OpenTools API
plug-in for Delphi 5-7 to assist with DUnit testing.
November Roger Connell:
How does IP work with Delphi? Roger explained IP packets and Port
80, and how they interface with Delphi and also described issues with
Blocking and Non Blocking Ports.
Mathias Burbach: How does Interbase rate as a SQL Server? Mathias
compared the features of Interbase such as views, stored procedures,
triggers, security etc, with alternatives such as Oracle.
October Phil Sheppard:
Implementing Linear Programming. Phil's tutorial provided
an introduction to linear programming, a simple example using a third
party API and a demonstration of a recent application.
Steve Hayes: Canoo WebTest. Steve gave a simple demonstration
of how to use Canoo to test a web application. Canoo provides an XML-based
wrapper for HttpUnit that lets programmers use the power of HttpUnit
without requiring Java expertise.
September Annual General
Meeting followed by
Paul Spain: Using Delphi IDE Macros. Paul provided a practical
introduction to the under-used Delphi IDE keyboard macro facility.
Graham Pitson: The ADUG Events System. Graham described how he
successfully implemented the Delphi/Kylix system used with good effect
for the Autumn Symposium and the Agile methods workshop.
August Robert Williams:
Active Modelling: from Mess to Success. Robert, from Almond
Computing in the UK, told us about a simple technique for defining
requirements.
Andrea Coffey: A few programming tips and tricks. That says it
all.
July Don Macrae: Printing
routine documents to the canvas.
Jim Duff: Product of the month: Help & Manual
Natalie Vincent: I The NonModal Modal Dialog!
Natalie Vincent: II File Lock Regions: Overlooked no longer
June Glenn Stephens: Beyond
Events: Using The Command Pattern with Delphi. Glenn described how
to implement multiple level undo in applications with particular
reference to the Command Design Pattern.
May Roger Connell: The Pros
and Cons of Object Databases. Roger discussed why he chose not to
use a relational database for an application and how this has led to
an "Object" database implementation.
April Graeme Chandler: A
Backroom View of Ectoset.
Natalie Vincent: A Glimpse of RTTI
March Jim Duff: A User's
View of Inno Setup
Natalie Vincent: Named Pipes
February: Ian Krigsman: Coding
at the Speed of Thought!
Paul Fraser: Developing Web Apps in Delphi with IntraWeb
January: Paul Spain: Yet another
Singleton?
Natalie Vincent: Tray Icons simply
Robbert Weigmink: Intro to UML, Conclusion.

December: Meet Andrew Munro. Andrew
(the new head of Borland Australia), gave us an update on Borland Oz.
Automated Unit Testing. Peter Hinrichsen gave a brief introductory presentation on the value of
DUnit. Tim Knipe gave a rundown on his use of DUnit and other tools and techniques to test his Shell Control Pack version 2.
DUnit is open source. It is downloadable from SourceForge.net.
November: Steve Hayes: Extreme
Programming Explained. Steve described "Extreme
Programming", "Programming in Pairs" and explained Kent
Beck's book.
Robbert Wiegmink: Encountering UML. Robbert continued his UML
series.
October: Peter Hinrichsen: How
a Visitor Changed my Life. Peter led us through another GOF
pattern. Click here
for Peter's doco.
Robbert Wiegmink: Encountering Use Cases. Robbert described
another aspect of UML - Use Cases. These are especially useful if you
are describing the external/requirements aspects of a system.
September: The Annual General
Meeting was followed by
Paul Klink: Techniques for managing software complexity
Paul described some techniques for managing complexity based on
those found in Engineering Real Time Systems by Rolv Braek and
Oystein Haugen.
Robbert Wiegmink: Encountering UML. Robbert continued his UML
series.
August: Andy Bulka: Python and
Delphi. Continued from last month.
Grahame Grieve: How to get the most out of Exceptions. Continued
from last month.
Robbert Wiegmink: The Class Diagram
July: Andy Bulka: Python and
Delphi. Andy described the Python language and how it can be
embedded in Delphi applications using the Python for Delphi
components.
Grahame Grieve and Matt Vincent: How Exceptions Work. Matt described the working of exceptions at a code and CPU level.
Grahame illustrated how to get the most out of them by example.
June: Peter Hinrichsen: How the Adaptor Pattern Changed My
Life.
Peter continued where he left off from last month.
Don Macrae: How the Iterator Pattern Changed My Life. And possibly the Template pattern
was also discussed.
May: Peter Hinrichsen: How the
Adaptor Pattern Changed My Life. Adaptor is a GOF pattern. GOF as
in Gang of Four, meaning 'Design Patterns: Elements of ReUsable Object
Oriented Software' by Gamma, Helm, Johnson and Vlissides ( the GOF ).
Tony Rietwyk: Developing a Programming Style. Tony presented
some ideas based on his experience with various languages, including
Delphi of course. Issues included module and subroutine size, variable
naming and ( gasp ) code layout.
April: This month we were given a
thought provoking look at C++ Builder by ADUG member Jarrod
Hollingworth - editor of the recent published "C++ Builder 5
Developers Guide". The latter part of the evening was a well
thought out expose from Paul Spain of a generic technique to multicast
component events, such that several event handlers can be associated
with a given event.
- Jarrod's PPT slides and notes are here.
- Paul's PPT slides and source code are here.
March: This month we were treated to
a very stimulating expose of TField by Graham Pitson, followed by the
dramatic conclusion to Mark Brooks' "Introduction to
Threads" presentation.
- Mark's sample source code can be found here.
- Watch this space for further info on Graham's talk.
February: Following the success
of last month's "mini symposium" format we applied the same
formula again this month with the following first class
presentations:
- "Frames" by Don Macrae
- "DHTML
Exposed" by Sarah Maguire
- "Introduction to Threads" by Mark Brooks
January: This meeting was a mini symposium
featuring excellent presentations by various ADUG members:
- "Understanding HTTP" by Matthew Vincent
- "PChars and Pascal strings" by Paul Spain
- "Decorator Pattern - how not to use" by
Graham Grieve

December: In the 10 minute tute
Andy Bulka demonstrated the "Data Diagram View" in the
Delphi 5 IDE and suggested alternative uses. The main presentation was
by Peter Hinrichsen of Techinsite
who gave us the low down on his open source object oriented
persistence mechanism. Thanks guys.
November: This meeting started with
a sneak preview of new features in Kylix and Delphi 6 by Borland's John
Kaster. Well, alright it was a video of John from the recent BorCon Asia
Pacific conference.
Following John we had well known and much loved ADUG member Glenn
Crouch of ESB Consultancy
who gave a very informative and well received presentation entitled
"Automating the Installation of Design Time Packages". Glenn
has been working on this process to automate the installation of his
own ESBPCS component suite. The information was of interest even for
those who don't plan to publish their components as the techniques
presented could also be used to automate the building of applications.
Glenn's Powerpoint presentation can be downloaded from
here, and Glenn has promised to make the relevant sections of
source code available here soon. Many thanks Glenn.
Glenn came all the way from Kalgoorlie WA to make this
presentation. Well alright, he was on his way back from BorCon anyway.
October: ADUG president Glenn
Lawrence gave a test run of his upcoming Borcon 2000 presentation
"Dead Easy Web Development with CGI Expert". Glenn is the
founder of AIMTec, a local
company who among other things offers Delphi-aware Web hosting
solutions.
September: Pierre Semaan of PEG
Technologies came down from Sydney to give us a valuable sneak preview
of his Borcon 2000 presentation on SOAP and XML. Thanks Pierre.
August Com Automation Clients with Delphi 5:
Presentation from Brian Watson of Desktop EDA. The presentation was announced on this site
as follows:
Desktop EDA has had a product in the field for a year which was an OLE Client developed
using the
OLE Automation tools in Delphi 3. A 2000 version of the server application rendered the
Desktop EDA application unreliable due to not well understood demand on resources.
Rewriting the application using the Delphi 5 COM features has resulted in a usable product
with more features, faster execution and better control.
Brian is an ADUG member, and this was his first use of COM. This means the material will
be accessible to any of us who are new or relative beginners with COM. Plus of course
experienced COM users should come to contribute to the discussion.
The presentation was followed by a useful discussion on COM issues, from basic to more
advanced.
July: Client DataSet Support using Microsoft
Remote Data Service (RDS). This was the title of the presentation by Mark Weston, member
and Principal of Real Solutions. Follow this link to the PowerPoint
presentation. Ten minute tute was from Bryan Dayton on Console Applications.
June: How long is a piece of string. This was
the title of Michael Stringer's presentation on Project Metrics. Based upon significant
personal experience of delivering software projects on time and on budget for commercial
clients, Michael presented the evidence and the principles to follow. The essential
principle is that you must maintain your project metrics, meaning some measure of your
productivity. This means having a basis for measuring output, whether it be use cases,
function points, forms or lines of code, and then making sure that all projects are
measured in terms of the output unit and resources consumed, so that they can deliver
updates to the productivity index. Of course, an estimate cannot be given until you have
an estimate of the size of the task in terms of a relevant unit, eg use cases.
The ten minute tute was delivered by Grahame Grieve, on the subject of herding cats,
sorry, make that managing programmers. This was based upon a book "Managing Technical
People" by Watts S. Humphrey, the originator of PSP, the Personal Software Process.
This book was an eye opener for Grahame, and Grahame's thoughts on the subject were well
received.
May: The main presentation was from Glenn
Stephens, fresh from presenting at the Autumn Symposium the previous Friday. His subject:
"State and its Natural Enemy: HTTP". You ring for a taxi to take you to the
airport. You leave it at the airport and hop on your commuter plane. Upon your return,
there the taxi is, where you left it. No? This story was actually from Malcolm Groves, but
it got a mention in Glenn's presentation. Ten minute tute was replaced by a sort,
performed on the assembled company by Peter Hinrichsen, with the aid of a rubber ball.
April: The main item this month was a talk by
Darius Zakrzewski entitled "The Pattern Movement: A New Culture". Darius is the
founder of the Melbourne Patterns Group and Conference Chair for the first Australian Patterns conference. He is
also the lead of the architectural board responsible for setting and overseeing
software directions at Cybergraphic Systems, a Melbourne company with some 140 in-house
developers. Darius's talk was something of a commercial for the patterns approach,
suggesting that patterns were a way to transform software development such that mature,
sophisticated and proven techniques for solving design problems became communicable and
learnable, to coin a word. The talk was well received, and subsequent discussion revealed
that it was a useful contribution to many. At present we do not have a copy of Darius's
paper, but we will post it when we do.
Instead of a ten minute tute the main item was preceded by a reading of a dramatization
of the Visitor pattern. Follow this link to read the
script.
March: The topic this month was Delphi's 'Open Tools
API'. Part I was a comprehensive introductory coverage by Paul Spain, which included a
refresher on interfaces, a feature of the Open Tools API since D4, and ended with a
demonstration 'Hello World' expert. Part II was delivered by Paul Gilbert, and consisted
of a demonstration and explanation of two experts. Altogether the two Pauls were effective
in giving us access to the insides of the IDE we work in every day. Follow this link for
presentation material and this link for the
demos.
February: This month we were treated to an excellent
"Ten Minute Tute" on "Object tracking" by ADUG member Ian Krigsman,
followed by an enthusically received key note presentation by Graham Grieve of Kestral
Computing on the subject of Web Development - benefits and pitfalls. Many thanks guys.
January: The theme of our first meeting
for the new year was "Version Control". Grahame Grieve
from Kestral Computing presented an enlightening talk on version
control practices used at Kestral and demonstrated a custom made
version control system that they use. Paul Spain then presented
a first class demo of the open-source version control system CVS.
Follow this
link for Paul's presentation.

December: This our last meeting before Y2k began with
a first class 10 minute tutorial on UML by ADUG member and La Trobe University associate
lecturer Arniban Bhattacharya. Arnie did a great job of introducing a complex topic in a
very short time - thanks Arnie. Our keynote presenter was ADUG member Andy Bulka who gave
a very well prepared and well received demonstration of the Delphi OO design tool
ModelMaker - thanks Andy. At the end of the meeting we held a draw for the door prizes.
Winners were: Peter Evans - ModelMaker
generously donated by the author; Fred Orford - Simply Objects for Delphi generously
donated by Adaptive Arts; Paul
Klink - $20 book voucher generously donated by Dymocks
Greensborough. After the meeting about 20 people stayed back for a very convivial
session of curries and drinks organised by Don Macrae and Peter Hinrichsen, thanks guys.
November: This meeting began with a 10 minute
tutorial on "Using IInterface" by Don Macrae. Thanks Don. Our keynote presenter
was Tony Alan of Fulcrum Consulting who gave an excellent presentation on XML. His very
informative powerpoint slides han be found here. Many thanks Tony. After
the meeting some people stayed back to see Glenn's video of this year's Borland Conference
that happened the week before.
October: This meeting began with a 10 minute tutorial
on Dynamic Arrays by Don Macrae. Thanks Don. Our keynote presenter was ADUG committee
member and international author Peter Hinrichsen who gave a well received presentation
based on his latest article for the Delphi
Magazine. The topic was on "Using the Observer Design Pattern in Delphi" and
generated much interest and discussion. Peter has promised to publish his slides here.
Watch this space. Many thanks Peter.
September: This meeting began a 10 minute tutorial
on Binary Search techniques by Paul Spain. Thanks Paul. Our keynote presenter was ADUG
member Graeme Chandler who spoke on the topic of the Win32 API. Thanks Graeme A copy of
his presentation can be found at his web site here.
The GST was a hot topic in the Q&A session so I have compiled some relevant links here.
August: This meeting incorporated the ADUG AGM official
minutes of which will be available from the ADUG Secretary. The following members of the
D5 beta test team received a special thank you and were presented with T-shirts: Paul
Gilbert, Jason King, Glenn Crouch, Peter Evans, Robert Zolkos, Roger Connell, Laurie
Shipp, Henry Yong, Andrea Coffey. Borland generously donated some "door" prizes.
Winners were: $2000 training voucher - Tony Rietwyk; D5 Pro - Colin Kemp; Team Source for
D5 - Stewart Dobrzynski, BorCon tutorials - Peter Hinrichsen, Paul Klink, Paul Gilbert.
After the break we were then treated to a first class presentation entitled "Client
Server - Counting the Cost" by ADUG member and Inprise consultant Mark Richards in
which Mark treated us to the benefit of his experience in moving from a desktop database
environment to full-on client-server.
July: Timed to coincide with the world-wide announcement
of Delphi 5 at the Borland Conference in Philadelphia, ADUG member and D5 beta tester Paul
Gilbert presented a candid, thorough and very well received demonstration of Delphi 5. We
were also treated to a very professional presentation on the Personal Software Process
method by ADUG member Nick Argall.
June: Instead of a 10 minute tutorial and a main
presentation, ADUG members were treated to two generous presentations by ADUG members Paul
Spain and Tony Reitwyk. Paul spoke on the subject of Class References in Delphi, and Tony
presented an example of using Class References to implement the Factory Method design
pattern.
May: Our first meeting at our new home at the venerable Royal Society's Hall in Melbourne. This month's 10
Minute tutorial was by Ms Cher Page, who spoke on the subject of Exception Handling. The
main presentation was by ADUG member Iris Radalescu. Iris presented a well received paper
written by Peter Szymiczek and himself in the subject of BDE Networking.
April: This month's main meeting began with a Special
General Meeting at which proposals to re form the ADUG as an incorporated body were all
unanimously carried. This was followed by announcements and our usual Q&A session.
Andrea was unable to give the planned 10 minute tutorial on her bar code component but has
promised material to be posted on the web, so watch this space. Steven Healey, member of the UK-BUG, who was currently
visiting Melbourne, told us about his very successful Delphi Prefix Registry and his
ComDesk product. The main speaker of the evening was ADUG member Andy Bulka who gave a
well received presentation on using Delphi's component-based streaming mechanisms, and in
particular using the TreeView components as the basis for a hierarchical object persistent
storage mechanism. Here are Andy's excellent presentation notes as well
as a demo project.
March: "10 Minute Tutorial" this month was by
ADUG member Peter McNab of Aviation Data Systems on the topic of "Rebooting NT from
within your application". A "10 minute demo" of an RPN calculator
application was given by ADUG member Jason King of AdvaTel. The main presentation was then
given by ADUG president Glenn Lawrence and
covered issues relating to date-time conversion and Y2k compliance. Notes, source code and
other material is being prepared. Watch this space, or tune into the mailing list.
February: Back in RMIT (although now on level 17) we
were treated to a "10 Minute Tutorial" on writing OLE Automation Clients by ADUG
member Brian Watson of Desktop EDA. Follow this link for
his powerpoint slides. The main presentation was then given by ADUG member Graham Pitson
on the topic of creating your own TDataset derivatives. Follow this link for notes
and source code.
January: This month the meeting venue was temporarily
moved to salubrious surroundings of the R&D
Technology Park at La Trobe University. Following the tradition of past year's it was
a relaxed meeting focussing on round-table discussion. There were short presentations by
Mark Brooks and Don Macrae, with pizzas and beer afterwards. Mark gave a very informative
"10 minute tutorial" on the subject of Object Pascal Variants. Don presented a
nifty report writing unit/component that he is working on.
December: ADUG member John McDonald gave a "10
minute tutorial" on "When to create your own components". This was followed
with a presentation by Graham Grieve on the topic "Trials and
tribulations of C/S development: Server programs in Delphi". For pictures and more
information please follow this link.
November: ADUG member Don Macrae gave a "10
minute tutorial" on records and memory allocation. This had the desired effect of
sparking an interesting discussion on the "evils" of pointers. This was followed
with a presentation by Peter Collas of Collas Consulting on the topic of Form Inheritance.
Peter has promised some material for us to post here, but in the meantime you read the
informative introduction
to his talk.
October: ADUG president Glenn Lawrence and ADUG member Peter Hinrichsen
gave a report on the recent ICON '98 Inprise Asia-Pacific conference that they recently
attended. This was followed with a presentation by ADUG member Peter Evans of CocolSoft who demonstrated his new Cogencee parsing engine for Delphi.
September: Presentation: Matthew Boyce and Adam
Satori of Soft Gen, distributors of Interbase, generously gave their time to demonstrate
the latest version of Interbase and a number of third part support products.
August: Presentation: Glenn Stephens of Code Rage came
down from Sydney to present DBOvernet, a simple third party Midas replacement for
connecting a remote client to a server-based database over the net. Glenn generously
presented a copy of DBOvernet which was won by Richard Czerwonka in WA. This month was
also the ADUG AGM, minutes of which are available from the secretary. Inprise generously
donated some "door" prizes which went to ADUG members as follows: Jason King
(Vic) T-shirt, Glenn Crouch (WA) T-Shirt, Wally Ripper (Vic) J-Builder Pro.
July: Presentation: Andrew Rutherford and David Gorton
principals of Classworks Australia came down
from Newcastle to present a "technical preview" of their DCOM Development
Infrastructure and Knowledge Manager products. Once again, two great Aussie products that
deserve to succeed. Andrew has kindly placed a copy of their powerpoint slides on their
web-site that can be reached through this link and the handout
(in RTF format) can be accessed via this link.
June: Presentation: Derek Renouf, lead developer of Adaptive Arts came down from Sydney to present the
Australian modelling and design tool Simply Objects. This looks like a
great Aussie product for object modelling and reverse engineering. He also gave away a
couple of free copies - thanks Derek!
May: Presentation: "Comparison of Intrabuilder and
CGI-Expert" by Wally Ripper see Wally's speaker notes.
April: Presentation: "Windows 95 Registry with
Delphi" by Mark Brooks of AIMTec download Mark's paper.
March: Presentation: "Controls Demystified" by
Glenn Lawrence see Glenn's paper.
February: Presentation: "Writing Server-side Web
Applications in Delphi with CGI Expert" by Glenn Lawrence
see Glenn's paper.
January: Round table discussion on various subjects
raised by the group.
December: Presentation on "Mapping OO models
onto Relational Databases" by James Thorpe of CSAA.
November: Discussion forum on software design issues
hosted by Don Macrae. See Glenn's notes on this
meeting.
October: Presentation "Software
Configuration Management" by Steve Forbes. See Steve's
handout material and Glenn's
notes on this meeting.
September: Special meeting open to the general
public at the Hotel Sofitel, featuring Graham Porter and Randall Sell of Borland Australia demonstrating Delphi 3,
Intrabuilder and JBuilder. See Don's notes on this
meeting. See also Leon's pictures.
August: ADUG AGM and presentation on "Drag and
Drop in Delphi" by Paul Spain. See Paul's presentation
and Glenn's notes on this meeting.
July: Presentation: "COM in Delphi" by Mark
Weston. See Mark's
presentation and Glenn's notes on this meeting.
June: "The view from the top" from Ray Bradbery
- CEO Borland Australia. See Glenn's notes on this
meeting.
May: Presentations on "Team development
support tools" by Steve Forbes and "The object browser
(and other things)" by Davyd Norris. See Steve's
paper and Glenn's
notes on this meeting.
April: Demos of Borland C++ Builder and Delphi 3 by
Randall Sell of Borland Australia. See Glenn's notes on this meeting.
March: Summary of Microsoft Developers Conference by
Peter Szymiczek and a case-study moderated by Don Macrae. See Glenn's notes on this meeting. See also Leon's pictures.
February: Presentation on TeeChart, IncCombo and
Apollo by Grant Dunoon. See Glenn's notes on this
meeting.
January: Round table discussion. See Glenn's notes on this meeting.
December: Presentation on "A Visual Component
Builder" by Steve Moller. See Steve's preview
summary and presentation
for more information. Glenn Lawrence also
presented his new "scaler panel" component and explained how it worked.
November: Demo of IntraBuilder by Randall Sell of
Borland Australia. See Glenn's notes on this
meeting.
October: Presentation on drawing to the TPrinter
canvas by Don Macrae. See Don's
paper on this topic. Glenn Lawrence also
presented a short demo of Michael
Kochiashvili's TRunLabel component.
September: Presentation of Per Larsen's MemMonD and Memory Sleuth by Mark Weston of Real Solutions.
August: Demo by David Szkylnik of Jan Strube's DBScroll component.
July: Presentation on "Using text files with
Delphi" by Glenn Lawrence see Glenn's paper on
this topic.
Prehistory: ADUG has been meeting regularly since 1994,
but notes of early meetings are no longer available.
|