PUG Challenge South Africa 2018


 PUG Africa Members,

Hot on the heels of a hugely successful 2017 with the EMEA PUG Challenge and the PUG Challenge Americas,
PUG Africa is thrilled to have some of the community’s top presenters at PUG Challenge South Africa’s 2018!

Come join us as they share the latest Progress developments and its benefits and relevance for your business!

Speakers: (Biographies)
Mike Fechner, Director, Consultingwerk Software Services, Germany
Tom Bascom, White Star Software, USA
Paul Koufalis, White Star Software, USA
Peter Judge, Progress Software, USA


Blandford Manor, 106 Hyperion Dr, North Riding, Randburg

Wednesday 21st & Thursday 22nd February 2018

08:30 – 17:30

2 Days @ R 2,250.00
1 Day @ R 1,500.00


Come join your fellow Progress Community, including various specialist and International Speakers.
The first day will consisting of two tracks each with 6 sessions (1 hour per session), containing Development and Database Administration sessions.
The second day will be one track with 6 session (1 hour per session) and two workshops (1/2 day per workshop).

List of Sessions and Workshops:
(Note: The list might change slightly – please check again later)



Structured Error Handling in and out
Mike Fechner
What is structured error handling and who should be using it? O.k. the last part of the question is an easy answer: everybody. This session starts with an introduction into structured error handling and covers also advanced topics like: Error class design and hierarchy, what information should be kept within custom error classes, assertions and error handling and logging. The session also discusses how to integrate structured error handling into existing applications and how STOP conditions can be integrated with error handling.

Implementing RESTful services with PASOE Web Handlers
Mike Fechner
In this practical session Mike Fechner will explore various way of connecting OpenEdge applications to REST clients. We’ll start with exploring commonly used API styles such as RESTful and HATEOAS and compare them to the API style expected by the Progress JSDO library used in Kendo UI Builder. Mike Fechner will be explaining how ABL applications can expose RESTful services through Web handlers (OpenEdge 11.6 and 11.7) and will demonstrate how they achieve HATEOAS style self-documenting APIs through annotations in CCS compliant Business Entities.

Unit Testing
Mike Fechner
Unit test tooling is available to any ABL developer. In this session we’ll be starting with the basic principles of unit tests and discuss also best practices and challenges of writing unit tests. We’ll be talking about concepts for developing testable code, mocking of dependencies (e.g. code and data) and tooling such as Progress Developer Studio, ANT and Continous Integration servers. We’ll also be demonstrating how to get insight into test coverage as there are only two kind of people that know their test coverage: Those that don’t use unit tests at all and those that use tools to track the test coverage.

OOABL best practices
Mike Fechner & Peter Judge
Writing class files is easy. Writing good class files requires a new school of thought – especially for procedural developers. In this session Peter Judge and Mike Fechner will discuss about some best practices for the OOABL. We’ll be talking about best usage of Enums, Interfaces, Parameter classes and ways to manage dependencies the CCS way. The presenters will be showing OO patterns every developer should know and know when and when not to use them. We’ll also be talking about the role of relational concepts like temp-tables and ProDatasets in a class based world.

The world is your oyster: calling REST services from ABL
Peter Judge
HTTP is the glue that holds the internet together, and JSON and REST are the lingua franca that lets customers and businesses talk to each other. Learn about the new HTTP and REST out API’s in the OpenEdge ABL. This set of OpenEdge.Net.HTTP classes allows a full set of HTTP and REST API’s to make calls from the OpenEdge ABL to any HTTP or REST server. These API’s grew out of a requests from customers to be able to make REST calls from the ABL and push-notifications to Mobile users. We will discuss the structure of the classes, how to call them and then show different examples.

PASOE Web Handlers: a deep dive
Peter Judge
PAS for OpenEdge gives ABL programmers complete control over the request received and response returned when using the WEB transport. This innocent-sounding sentence covers a wide range of topics: how do I retrieve that image my user sent me? How do I know what format the user expects the data in? This session shows you the kinds of data you can consume – from the URI, cookies , headers to the body – and return – JSON, XML, multipart messages and more. It will also go into error handling strategies and will show you flexible approaches to routing and mapping requests.

PASOE Best Practices: Structure, monitoring, security
Peter Judge
PAS for OpenEdge is a replacement for your current AppServer, and while your ABL code works pretty much as-is, there are some important differences in deployment models, application structure, troubleshooting & logging and security configurations. This session describes how to think about these topics in PASOE and how you can extend your application to take advantage of PASOE.

Coding worst practices
Tom Bascom & Peter Judge
Also known as: The Keyword Forget List According to Tom Just because you CAN-DO() it doesn’t mean that you should do it. Programmers are drawn to bad examples likes moths to flame. No matter how many carefully crafted comments you put around that one usage of a special case some programmer will find it and suddenly propagate it throughout your application. Come to this session to learn why CAN-DO(), FIND FIRST, RELEASE and many, many other coding worst practices should be banned! Or at least learn why you should not continue to use these worst practices just because “everyone else always does it that way”.

Coding for network performance
Tom Bascom
Are you wondering why your client/server code is so slow? And what you can do about it? This session will discuss the OpenEdge client/server messaging protocol and its impact on the performance of database queries. We will cover coding best practices, tuning opportunities, testing methodologies and present benchmark results! (This will be a South Africa World Premier!)

Performance Monitoring with ProTop
Tom Bascom
ProTop is a powerful tool that should be in every OpenEdge DBA’s arsenal. ProTop is a free, database monitor for Progress OpenEdge databases. ProTop sorts, filters and groups realtime VST data into insightful analysis screens that help to keep the performance of your database and application in tip top shape. This session will focus on ProTop’s “out of the box” capabilities. We’ll learn how to approach common monitoring problems through live demonstrations and explain how to get started on the road to proactively managing your database and application. You’ll also learn how to leverage our online portal during your investigations (some optional portal features are paid features). With its ability to instantly zoom in on a specific time period and show a coordinated view of multiple graphs and metrics, the web dashboard allows you to quickly link cause and effect across varied data series across hours, days, weeks, months and even years of historical data!

Embedded Performance Instrumentation (Profiler, Temp-Table Monitoring, User Table Stats)
Tom Bascom
(Subtitle: Rational Application Performance Investigation Details…) You can only make an application go faster by improving the parts that are slow. It doesn’t help to optimize code that is already fast enough or that is only rarely used. User table stats, temp table usage stats and the application profiler can all be easily embedded in your application to provide powerful insight into exactly where performance problems are originating. In this session we will explore these 3 under-utilized OpenEdge features, explain why they are useful and how you can embed them into your own code base to focus your performance improvement activities on code that really is slow rather than wasting time trying to guess which bits aren’t as fast as they could be! You will take home simple but powerful code samples that can be easily used with any OpenEdge environment: .NET GUI, Webspeed, App server, PASOE, Character, Batch or anything else!

D&L: more than just a few proutil commands
Tom Bascom
“Experience is a hard teacher because she gives the test first, the lesson afterward. – Vernon Law” Presentations on dump&load typically revolve around cool methods to get the data exported and imported in a ridiculously short period of time. The suspense! The excitement! Can he do it!?! The reality is that the dump&load process is far more than just dump+load+idxbuild. There are a hundred little bits and pieces and if you mess up even one of them, Monday morning is going to be one of those experience-building opportunities. This session will present a full D&L methodology: analysis, documentation, scripting and automation, verification and testing. With the information from this presentation, you can spend Monday morning accepting thank yous and congratulations rather than…gaining experience.

A Migration Story: From Big Iron to a “Commodity Server”
Tom Bascom
This real-life case-study of the migration of a 1,500+ user system from Solaris to Linux will examine the question of how large a user load a Linux Server can support. We will explore the reasons for the migration, the tools used to benchmark and validate the target system, discuss tuning adjustments and changes, the methodology used to ensure a successful migration, share the results of this project and talk about where projects like this might go in the future!

Storage optimization strategies
Tom Bascom
What are you trying to optimise: type 2 areas, database block size, rows per block, cluster size, create limit, toss limit? The OpenEdge database has many mysterious knobs, dials and levers available for tuning storage parameters. How should you set them to achieve your optimisation goals, especially considering that optimisation is about trade-offs? In this session you will learn how these settings interact and impact each other and gain insight into how to best apply them to get the most from your system!

Infrastructure war stories
Tom Bascom & Paul Koufalis
(Subtitle: How to Spend Lots of Money to Get Bad Performance) A collection of anecdotes covering a variety of issues that have cropped up over the years related to the infrastructure intended to “support” OpenEdge systems. Topics are intended to share other peoples mistakes so that you don’t have to make them yourself. (The title and abstract need a bit of work… this will also be a World Premier!)

Secret behind DBA startup parameters
Paul Koufalis
So many parameters…what do they mean? Which are important? What values should I use? Everyone has questions about database start-up parameters. Bring yours and come to this presentation to hear some answers.

Hacksaws and Exacto Knives: Free Diagnostic Tools for Progress
Paul Koufalis
Stop blaming the database! When problems arise, everyone expects the DBA to tweak a few parameters or the sysadmin to buy a bigger server. How about fixing the root cause instead? This presentation will show you a number of free tools available to diagnose your Progress-related issues.

OpenEdge Replication, how-to, best practices
Paul Koufalis
Years of experience (and errors) have taught me a thing or three about OpenEdge Replication. Whether you’re using it today or simply thinking about it, this session is bound to teach you something new about how to best deploy and maintain an OER environment, including the new Replication Set feature in 11.7.



Dump & Load Techniques
Tom Bascom & Paul Koufalis
A long time ago, in a galaxy far, far away — dump and load used to be so simple: “Admin – Dump – Data”; wait a few days; “Admin – Load – Data”; wait a few more days. But it turned out people didn’t like being down for a week to do a dump and load, so over the years The Engine Crew has been nice enough to add a lot of new toys to make the process faster. These new options have reduced D&L times dramatically, but sometimes at the cost of increased complexity.
But you don’t care about complexity!
You want it FAST!!!
Come to this hands-on workshop to get some experience with modern approaches to dumping and loading and go home with a bag of tricks to apply to *your* systems!

Programming Workshop – 4GL Performance
Paul Koufalis & Peter Judge
Is your idea of code performance review searching for WHOLE-INDEX in a compile-xref? If yes, then you need to attend this session. Learn about a whole universe of tools and techniques available to help diagnose and correct performance problems in your 4GL code. This session is a concentrated version of the workshop and focuses on index selection and profiling production systems.

Please follow and like us:

Leave a Reply


Enjoy this blog? Please spread the word :)