October 16-19, 2014
SanTan Elegante Conference Center
Gilbert, AZ
There are 4 conference tracks at Southwest Xbase++ 2014. "Level" shows the expected Xbase++ level for attendees for a session. Click a track's icon to jump to the sessions for that track.
Keynote
Presenter: Rick Hodder
Group Mind? Yes And? Mind Meld? Whose Line Is It, Anyway?
Am I at the right keynote? Yes, you are, and you are going to be an active part of this keynote, so don't get too comfortable in your seat!
The terms come from improv (like you may have seen on the show Whose Line Is It Anyway?). But improv is not just for comedy! At its most basic level, improv is pure teamwork.
With little or no preparation, a suggestion is accepted from an audience, and a group of people immediately start working together to use the suggestion, all with confidence, listening, assertiveness, and fearlessness.
The techniques of improvisation can be applied in many situations in life and work in general, and particularly in development. Recent shifts in development methodologies and practices (Agile, for example) have brought personal dynamics more deeply into the process, often stretching the comfort zones of developers. (There's a reason they call us geeks).
This keynote will use improv techniques to create a fun, non-threatening environment where we can explore teamwork, and improve listening and thinking on your feet.
Pre-Conference
Presenter: Roger Donnay
Level: All levels
When: Thursday, October 16, 9:00 - 12:00, Elliott
This workshop is designed for new and seasoned eXpress++ users. eXpress++ has gone through several major new builds since our last eXpress++ Devcon in 2008. Most of the new features and improvements have been dedicated to creating Xbase++ applications that are more visually appealling and easier to develop and maintain.
The eXpress++ method has proven itself over the past 12 years and has enlarged its community of loyal and productive programmers. This workshop will focus on improving productivity even more while also providing a much better application to your customers.
See some customer applications that have been written using the eXpress++ method and get some good ideas for your own applications.
You will learn:
Prerequisites: Knowledge of the eXpress++ product with at least a few months of eXperience.
Presenter: Frank Perez
Level: All levels
When: Thursday, October 16, 1:00 - 4:00, Flagstaff
Microsoft SQL Server is probably the most common Relational DBMS for Visual FoxPro developers that need a back-end database server, with MySQL being the second. But there is a third option that you should consider: PostgreSQL. In this session I will discuss some of the pros and cons of Microsoft SQL Server vs. PostgreSQL. I will show you how to get started with each and talk about some of the tools and options that are available.
You will learn:
Prerequisites: None
Presenter: Stephen J. Bodnar
Level: Intermediate
When: Thursday, October 16, 1:00 - 4:00, Gilbert
Over the years, getting applications to "talk" to each other has been difficult at best. Exchanging data between applications has its own set of challenges. Historically, an API or Application Programming Interface has been some library, construction kit, or documentation that has let us interact with other software or hardware. Depending on the specifics, we might have had to work with a specific language to work with the API. If we were lucky, we might find that someone had written a wrapper that allowed us to work in our favorite language and make calls to the wrapper which then interacted with the API.
Today, in web development, the API is commonly a set of defined requests and responses delivered over HTTP that allow us to interact with some other web-based entity. We do this by using standard HTTP verbs like GET, POST, PUT and DELETE to exchange JSON or XML data with such services.
In this extended session, we will explore modern day APIs from top to bottom. We'll start by looking at what makes a good API. We'll explore the concept of RESTful interfaces and learn important concepts for consuming and creating useful Web APIs. We'll talk about some of the many APIs that are out there for us to use to enhance our applications. We'll look at some of the things we might want to do with online services such as DropBox, Google, Amazon and Twitter. We'll then take deeper dives into two powerful services as examples of how we can use APIs to add really robust features to our existing applications.
I'll call you. Or text you. From my app. Or something.
The first API we'll look at is Twilio which is used by big players like Hulu, Intuit, The Home Depot and many others to handle communications tasks such as sending and receiving text messages and phone calls, voice broadcasting, automating polls and surveys and much more. We'll look at the API and work with the code to demonstrate how a RESTful API can let us extend our applications and incorporate this cloud-based communications service. We'll look at a couple scenarios, like having an app send customers a text message when their order has been processed or when their table is ready. We'll look at examples in C# and we'll also talk about what it takes to make this work with Visual FoxPro.
Get Paid!
Our second deep dive will explore the Stripe API for accepting and managing online payments. If you've ever had to accept payments in an app or website before, you know it can be a nightmare. Between merchant accounts and middle-men, there are a lot of places where things can go wrong and get expensive.
We'll look at what it takes to accept payments online as a single one-time payment or automatically recurring subscriptions. We'll also spend some time on the Stripe website, looking at the dashboard, payments, customers and tools for setting up subscriptions and coupons. Again, we'll look at most of the examples in C#, but also look at what it would take to implement this in a VFP app.
By the end of this session you should have a good idea of the kind of power today's APIs offer—in terms of taking advantage of a plethora of available services, as well as the possibility of making our services available to others.
You will learn:
Prerequisites: None
Presenter: Steffen F. Pirsig
Level: All levels
When: Thursday, October 16, 1:00 - 4:00, Elliott
This workshop starts with installing Xbase++ 2.0 side by side with an existing 1.x installation. We will then move a number of existing Xbase++ 1.x projects to 2.0. You'll see that this solely is a question of the XPJ project files. In terms of your source code, everything can be left as is.
After the first step, we will take a closer look at the Xbase++ 2.0 Workbench to learn how it will help us become more productive. For example, we will add our own tools so we no longer need to leave the environment for running external tools needed in the development process. Also, attendees will see how flexible projects can be organized and how the Workbench isolates the current project from other Xbase++ versions already installed on the machine.
Finally, we will examine step-by-step a number of coding techniques and patterns which are typical for 1.x, and which can now be realized much faster and more robustly with 2.0. The areas planned to be covered include:
This workshop simply is a must if you are willing to re-think some of your existing approaches with Xbase++ 2.0 to the benefit of fewer coding hours and fewer errors.
You will learn:
Prerequisites: Laptop with Xbase++ 2.0 pre-installed, or around 200-300MB of free space on your harddrive to install Xbase++ 2.0
New to Xbase++, Web and Mobile!
Presenter: Eric Lendvai
Level: Intermediate
Currently, I am working towards converting one of my VFP Web applications to Xbase++ using the new transpiler.
During this session, I will take a small-scaled VFP application and discuss my strategy for conversion while still maintaining the VFP version of the commercial app. I will demonstrate how the conversion of more than 1,000,000 lines of code is attainable, including refactoring access to more than 540 tables and 2500 web pages. Since Xbase++ has a new web engine that can run on IIS and Apache, you will see how to run under this state-of-the-art environment. I'll also review how to access DBF and PostgreSQL natively from within Xbase++.
You will learn:
Prerequisites: Knowledge of VFP and HTML
Presenter: Andreas Herdt
Level: All levels
The Xbase++ debugger is a great tool for inspecting the inner workings of an application. This includes the verification of execution flow and examination of the application state. The debugger saves time and money when hunting bugs in existing applications and reduces turn-around cycles in the development process for new code.
You will learn:
Prerequisites: Basic knowledge of programming with Xbase++
Presenter: Till Warweg
Level: Beginner, Intermediate
Xbase++ 2.0 features support for multi-touch input on computers with a touch screen. This session introduces the new interfaces in Xbase++ for supporting touch gestures. In addition, strategies will be shown for integrating touch-support into both existing and new applications. Finally, this session will give you ideas about where you might benefit from using touch in your applications.
You will learn:
Prerequisites: Basic knowledge of programming with Xbase++ and graphical user interface programming
Presenter: Steffen F. Pirsig
Level: All levels
Having a service-oriented, multi-tier application architecture is considered good practice in enterprise/business application design. However there are various concepts and approaches outlined in literature. In this session, we will apply these concepts to Xbase++, see how they match with specific language features and learn to design Xbase++ applications for testability, code-reuse and scalability. As a neat effect our applications will become more robust, have a exchangeable UI (Win32 or Web) and can expose their functionality as a service. Our application will generally also have a higher quality and robustness, thanks to the ability to do automated tests.
You will learn:
Prerequisites: Experience with Xbase++ or Visual FoxPro
Presenter: Andreas Herdt
Level: Beginner, Intermediate
There is more than one way to skin a cat. This is especially true when writing software. This session is about the Xbase++ language. We will talk about different ways to achieve the same goal and about the benefits and drawbacks of the different approaches. In short, by attending this session you will be able to boost your Xbase++ language skills and increase your productivity as well as your application's performance.
You will learn:
Prerequisites: Basic knowledge of programming with Xbase++, Visual FoxPro or Clipper
Presenter: Spyros Bobby Drakos
Level: All levels
From theory to practice. We covered a lot in my UI Design Concepts session. This session is about applying those principles to a real world application using XBase++. We will see which UI technology allows us to implement which UI concept. We will examine a real world application and add task-oriented features of functionality and UI designs.
You will learn:
Prerequisites: Experience with XBase++ or Visual-FoxPro code
Presenter: Till Warweg
Level: Beginner, Intermediate
One of the exciting new features in Xbase++ 2.0 is the ability to use HTML and CSS in Windows applications for creating forms and controls. Forget about the old way of styling your controls using owner-drawing, Windows GDI or the Xbase++ Graphics Engine. Using the so-called WebUI, the application gets access to a flexible rendering engine for drawing dynamic HTML/CSS-based content in its user interface.
You will learn:
Prerequisites: Basic knowledge of programming with Xbase++ Basic HTML/CSS knowledge
Presenter: Steffen F. Pirsig
Level: All levels
When: Thursday, October 16, 1:00 - 4:00, Elliott
This workshop starts with installing Xbase++ 2.0 side by side with an existing 1.x installation. We will then move a number of existing Xbase++ 1.x projects to 2.0. You'll see that this solely is a question of the XPJ project files. In terms of your source code, everything can be left as is.
After the first step, we will take a closer look at the Xbase++ 2.0 Workbench to learn how it will help us become more productive. For example, we will add our own tools so we no longer need to leave the environment for running external tools needed in the development process. Also, attendees will see how flexible projects can be organized and how the Workbench isolates the current project from other Xbase++ versions already installed on the machine.
Finally, we will examine step-by-step a number of coding techniques and patterns which are typical for 1.x, and which can now be realized much faster and more robustly with 2.0. The areas planned to be covered include:
This workshop simply is a must if you are willing to re-think some of your existing approaches with Xbase++ 2.0 to the benefit of fewer coding hours and fewer errors.
You will learn:
Prerequisites: Laptop with Xbase++ 2.0 pre-installed, or around 200-300MB of free space on your harddrive to install Xbase++ 2.0
Presenter: Eric Lendvai
Level: Intermediate
Since March of 2007, a multitude of developers have contemplated over and speculated about what to do with their VFP applications. A substantial number of FoxPro developers have invested over two decades in learning and using FoxPro and Visual FoxPro for a variety of purposes. Many new languages have appeared on the market, but none have truly delivered a genuine 4GL language.
Two years ago at Southwest Fox, I purposely attended most of the Xbase ++ presentations to see if there would finally be a viable future for VFP developers, and what a surprise it was! Not only did I see a future for VFP developers, but I also discovered features that we could only dream about in years past.
Due to the enhanced architecture of Xbase++, it is a true 4GL compiler, and while there are only slight differences in the syntax, it provides a lot of new options. In order to take full advantage of Xbase++, it is a necessity for VFP developers to re-think some of the existing development patterns. It is best to think of Xbase++ as an enhanced version of VFP that incorporates many features from other modern languages. As a true compiler, you get a substantially higher speed than before, in addition to code protection.
You will learn:
Prerequisites: Knowledge of VFP
Presenter: Roger Donnay
Level: Beginner, Intermediate
Xbase++ has extended the capabilities of the language beyond what is available in FoxPro and Clipper. For FoxPro developers and Clipper developers who are new to Xbase++, there are new variable types and language concepts that can enhance the programmer's ability to create more powerful and more supportable applications.
The flexibility of the Xbase++ language is what makes it possible to create libraries of functions that can be used dynamically across multiple applications. The preprocessor, code block, ragged arrays and objects combine to give the programmer the ability to create their own language of commands, functions and classes and all the advantages of a 4th generation language.
This session will also look at how these language concepts can be employed to create 3rd party add-on products to Xbase++ that will integrate seamlessly into Xbase++ applications.
You will learn:
Prerequisites: None
Presenter: Roger Donnay
Level: Beginner, Intermediate
Multi-threading is a concept that is new to Foxpro and Clipper developers, yet is one of the most powerful features of Xbase++. This session introduces new Xbase++ programmers to the concept of multi-threading and the workspace.
Multi-threading is a special characteristic of the operating system which allows an application to be divided into various components which can be executed independently and simultaneously. Xbase++ adds additional functionality to the standard multi-threading model by protecting database work areas from interference from other threads. This makes database programming much more reliable and error free when running multiple threads. Multi-threading also makes it possible to have multiple GUI dialogs running simultaneously, each with their own event handling and database work space.
This session will show how and why to use multi-threading in an Xbase++ application and also demonstrate the use of multi-threading in actual applications.
You will learn:
Prerequisites: None
Technology and Business for the Developer
Presenter: Phil Sherwood
Level: All levels
If you're breathing, then you fall into the category of someone who needs help with productivity. Everyone does. This is a quick look at the method espoused by David Allen in his book "Getting Things Done - The Art of Stress Free Productivity" along with some alternatives.
I've been using his methods for a few months now and have found increased focus and greater productivity. I have A.D.D., so that's saying a lot.
If you're running your own business or even if you work for someone else, how do you find time to get all the things done that you know you need to do? How do you even remember them?
This session will give you some tools that you can start using immediately to get organized and to start getting things done.
You will learn:
Prerequisites: None
Presenter: Phil Sherwood
Level: All levels
Have you ever thought about owning and running your own software business? This session will cover the tools and techniques I've used in running a vertical market software company for the last 20 years.
We'll discuss topics such as
We won't go into depth on any topic, but you should come away with some ideas of how a software business works and some ideas on what to do and use as well as some things not to do.
You will learn:
Prerequisites: A desire to be your own boss.
Presenter: Spyros Bobby Drakos
Level: All levels
Thanks to the capabilities of both the XBase++ and Visual FoxPro languages, developers are able to write extremely robust and time saving software. But while the bulk of the developer's time is spent mapping out, designing and writing the code necessary to achieve the goals of their software projects, clients and users spend the bulk of their time staring at the User Interfaces (UI) that the developer spends the least amount of time designing.
Historically, the purpose of the UI was to present the user with information and choices with emphasis on elements such as keyboard interaction to get a job done. But times have changed. Today's software is more about being having the ability to be instantly used and understood by untrained people. That means that the UI of today should anticipate the user's needs and present them with the objects needed to achieve their goals.
You will learn:
Prerequisites: Experience with XBase++ or Visual FoxPro code
Presenter: Doug Hennig
Level: Intermediate, Advanced
Windows PowerShell has been included with the operating system since Windows 7 and is available for download for Windows XP and Vista. What is PowerShell? It's Microsoft's task automation scripting framework. PowerShell isn't just a replacement for batch files; it can do a lot more than batch files ever could. This session looks at PowerShell, including why you should start using it and how to create PowerShell scripts.
You will learn:
Prerequisites: None
Xbase++ Present and Future
Presenter: Peter Alderliesten
Level: Beginner, Intermediate
Xbase++ 2.0 brings a host of new features that are a welcome addition to the Xbase++ language and toolset. SQL is now an integral part of the Xbase++ language. Websockets and the CXP view-engine pave the way to the internet. The Xbase++ Workbench, previously the Visual Xbase++ IDE, helps developers to code, debug and do project management within a single environment that knows the Xbase++ language inside out. Xbase++ 2.0 is a great step to give your application development a new boost.
In this session we will give a summary of what is new in version 2.0. We will also explore a number of these features, find out what the implications are and how to get started with them.
You will learn:
Prerequisites: We expect attendees to be familiar with the Xbase++ language as the session is intended for Xbase++ users at the beginners and intermediate level.
Presenter: Peter Alderliesten
Level: Intermediate
Many Xbase++ developers are confronted with customers whose business practice isn't confined to the factory walls anymore. Employees on the road or working from home need access to company data and need to feed company processes. Converting an application to a web application could be quite expensive in terms of education and manpower. Fortunately there's a way to extend and broaden the life of the current application preserving the knowledge of Xbase++ while at the same time paving the way for the use of apps and web browsers. Enter websockets...
In this session we will explore the use of websockets in making your application suitable to be used over the internet.
You will learn:
Prerequisites: We expect attendees to be familiar with the Xbase++ language as the session is intended for Xbase++ users at intermediate level.
Presenter: Steffen F. Pirsig
Level: All levels
In this session we will talk about Xbase++ today and tomorrow. Attendees will learn how the new delivery approach of Xbase++ 2.0 fits into the whole picture of our vision of continuous delivery and constant feedback. In the second part of this session we will talk about version 3.0 from an Xbase++ as well as Visual FoxPro developer's perspective.
You will learn:
Prerequisites: None