September 22-25, 2016
SanTan Elegante Conference Center
Gilbert, AZ
There are 7 conference tracks at Southwest Xbase++ 2016. "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: Phil Sherwood
When: Thursday, September 22, 7:00 - 8:30, Elliott/Flagstaff/Gilbert
We all deal with technology and have figured out how to pick up new techniques and skills. The problem is that success or peak performance is 20% Mechanics and 80% Mindset. We've got the mechanics down but what about the mindset?
I've been a business owner for over 20 years and have always been on the lookout for ideas, techniques and skills to take my business to the next level. A couple of years ago, after talking with several successful entrepreneurs, I was encouraged to focus more on the internal, instead of the external. This led me to study how our mindset and limiting beliefs affect not only our business and careers but also our relationships.
Some of my influences in this quest have been Jim Rohn, Michael Hyatt, Napoleon Hill, Tony Robbins and Dan Kennedy.
This opening session will take a look at how our mindset affects everything we do from our careers to our relationships and how, by just making a few changes in how we think, we can get better performance and results in all areas of our lives.
Pre-Conference
Presenters: Andreas Herdt, Spyros Bobby Drakos
Level: Beginner, Intermediate
When: Thursday, September 22, 9:00 - 12:00, Elliott
Coding concepts are important as any beginning programmer can attest to, but good programmers evolve from the real world journey of trial and error as they try to bring the ideas in their head to the screen.
This full-day pre-conference session will take us from a simple browser to a full-featured and functional piece of software. We will begin using an existing piece of code and accompanying executable that does nothing more than display database records on the screen. Attendees will be given a USB stick that contains all the code examples along with a copy of all the necessary files needed to create and run the application. After installing the software, we will quickly examine the existing browser and how it works. Attendees will then be shown how to import the existing code into the workbench where we will continue to develop the software using a combination of SGL and Xbase++ commands and functions.
Once we have successfully put together a robust browsing application, we will stretch the application's functionality and interface. Using more coding examples contained on the accompanying USB stick, we will use the workbench to create a browser from scratch that will browse a different database. In order to reduce resources and leverage code, we will use the workbench to combine common functions from the two applications into a single .DLL. We will then combine the apps into a single full-featured and functional piece of software. All code examples will feature Xbase++ and SGL code. This approach is taken to show how quickly applications can be created. (How this code can be leveraged into a web application will be covered in greater detail in the Compiled Xbase++ Pages (CXP) session.)
The final part of the day focuses on yet another important part of the development cycle: debugging your application. Debugging is the process of finding the reason your code behaves differently than you expect. As a practical example, a number of issues which were intentionally added to the sample application will be found and corrected in the course of this session. Attendees will learn how to use the various debugger features and see why the integration of the debugger with the source code editor makes them more productive.
You will learn:
Prerequisites: None
Presenters: Andreas Herdt, Spyros Bobby Drakos
Level: Beginner, Intermediate
When: Thursday, September 22, 1:00 - 4:00, Elliott
This is part 2 of this full-day pre-conference session.
Presenter: Tamar E. Granor
Level: All levels
When: Thursday, September 22, 1:00 - 4:00, Flagstaff
SQL (Structured Query Language) offers a powerful, set-oriented approach to working with data that is quite different from the traditional record-oriented Xbase++ techniques. This pre-conference session covers the basic SQL commands, from ALTER TABLE to UPDATE. We'll see how to use SQL to create and manage databases and tables, see the power of SQL for querying data, and look at adding, updating and removing data with SQL. We'll look at some of the differences between the dialects supported by Visual FoxPro, SQL Server, and PostgreSQL.
You will learn:
Prerequisites: None
Data Management
Presenter: Rick Borup
Level: All levels
When: Friday, September 23, 3:30 - 4:45, Flagstaff (R1)
Saturday, September 24, 11:30 - 12:45, Flagstaff (R2)
Power BI (Business Intelligence) is Microsoft's newest suite of tools for transforming your data into reports and visual presentations. It's available both as an online service and as a Windows desktop application, and works with a wide variety of data sources. Tools such as Power Pivot, Power Query, and Power View are integrated with Microsoft Excel, making it easy for almost anyone to get started. But beyond the basics, non-technical users will likely turn to software developers and consultants for help. The Power BI REST API enables developers to push data from an application directly into a Power BI dataset for real-time updates. This session introduces Power BI and explores how you can learn to use it to create great reports and visuals from your data.
Note: This session will focus less on Excel and more on the newer Power BI Desktop app.
You will learn:
Prerequisites: None
Presenter: Tamar E. Granor
Level: All levels
When: Thursday, September 22, 1:00 - 4:00, Flagstaff
SQL (Structured Query Language) offers a powerful, set-oriented approach to working with data that is quite different from the traditional record-oriented Xbase++ techniques. This pre-conference session covers the basic SQL commands, from ALTER TABLE to UPDATE. We'll see how to use SQL to create and manage databases and tables, see the power of SQL for querying data, and look at adding, updating and removing data with SQL. We'll look at some of the differences between the dialects supported by Visual FoxPro, SQL Server, and PostgreSQL.
You will learn:
Prerequisites: None
Presenter: Tuvia Vinitsky
Level: All levels
When: Friday, September 23, 2:00 - 3:15, Flagstaff (R1)
Sunday, September 25, 11:30 - 12:45, Flagstaff (R2)
Last year at Southwest Fox, the SQL design application DbSchema made a big splash. Now the splash has become a tidal wave. Why? What changed in a year? The creators of DbSchema were so pleased with the response from VFP developers that they have added built-in support for VFP!
VFP developers have always had strong WYSIWYG tools available for creating and designing native VFP databases. But moving to SQL Server meant using SQL Server Management Studio or similar tools—or even just using the command line. All that has changed with the product dbSchema. Now you can design databases visually, manages joins, triggers, stored procedures, and more, all from an intuitive interface.
DbSchema does not stop there! Compare and update schemas between databases or between designs and live databases. Coordinate multiple database design staff. Organize and manage sub-layouts and layout slices, design queries and run them interactively, and edit data almost like the VFP Browse and Command window!
Life with SQL Server just got a lot easier. And so did life with VFP.
Use DbSchema to compare, design, analyze, set up, and manage SQL Server as well as VFP. Not only is DbSchema the design tool VFP has always needed, now you can seamlessly move between database platforms!
This session will demonstrate how to use the dbSchema tool to create and manage SQL Server and VFP databases, queries, data, and designs.
You will learn:
Prerequisites: Knowledge of database design in SQL Server and/or VFP
Presenter: Roger Donnay
Level: Intermediate
When: Saturday, September 24, 8:30 - 9:45, Arizona (R1)
Sunday, September 25, 11:30 - 12:45, Arizona (R2)
More and more Xbase++ developers need to deal with XML in their applications. As systems go paperless, the electronic transfer of information becomes more and more relevant. This transfer of information is most often in the form of XML.
This session discusses concepts for dealing with XML both from the need to parse XML data into existing applications to the need to generate XML to send to other applications. Attendees will receive source code for an XmlNode class that has methods for reading, writing, managing and creating XML streams.
You will learn:
Prerequisites: None
Presenter: Andreas Gehrs-Pahl
Level: All levels
When: Saturday, September 24, 8:30 - 9:45, Bisbee (R1)
Sunday, September 25, 10:00 - 11:15, Bisbee (R2)
This session will show how to geo-verify and geo-code an address and how to display an address or location on a map in your application. To accomplish this, the free Google Geo-Coding API and Mapping features are used. An application will be created that will geo-verify and geo-code addresses and display them on a Google Map. In addition the data that was accumulated by the GPS tracker Service application from the "You have been Served" session will be displayed, to show where the tracked vehicles are and where they have been.
Even though the demo program will be written in Xbase++, the generic information about the Google API and Google Maps might also be useful to VFP developers.
You will learn:
Prerequisites: Familiarity with the Xbase++ language. Some knowledge of HTML, XML, and Active-X components is a plus.
New to Xbase++
Presenter: Alec Gagne
Level: Beginner
When: Friday, September 23, 10:00 - 11:15, Gilbert (R1)
Sunday, September 25, 10:00 - 11:15, Gilbert (R2)
Many of us with legacy VFP-based applications find ourselves at crossroads regarding the future of our respective products and businesses. With our favorite development tool being supported only through the VFP user community and the world of technology moving very rapidly in several different directions, many of us have wondered what to do or where to go next. The complexity and cost associated with rewriting our respective products in another language seems to be a daunting endeavor.
However, the task need not be an all or nothing proposition. The Xbase++ development platform continues to evolve and encompass more of the capability and functionality that we VFP developers know and love. Thus, other than choosing to do nothing at all, the transition to Xbase++ seems to be the path of least resistance for us die-hard VFP developers looking to protect our future.
In this session we will look at Xbase++ from a VFP perspective and discuss strategies for co-mingling both VFP and Xbase++ based applications as part of an overall solution. We will also discuss both technical and business case reasons why you should consider such a transition.
You will learn:
Prerequisites: None
Presenter: Roger Donnay
Level: Beginner
When: Friday, September 23, 2:00 - 3:15, Arizona (R1)
Sunday, September 25, 8:30 - 9:45, Arizona (R2)
This session is a discussion of how Xbase++ and an SGL language extension simplified the conversion of a Visual FoxPro application to Xbase++. This is a case study of how an actual conversion, completed this year, was accomplished in a very short period of time. The company who hired me to help with the conversion had been in business for many years and chose one of their many VFP applications as a feasibility test. They were happy enough with the results to deploy the new Xbase++ application to their customers.
Attendees will receive a free copy of the SGL system that was used for the conversion. The source of the finished application will be available for review with a comparison of the finished VFP application to the finished Xbase++ application. There will be additional commentary from the VFP developer about their experiences during the process.
You will learn:
Prerequisites: Experience in VFP development
Presenters: Andreas Herdt, Spyros Bobby Drakos
Level: Beginner, Intermediate
When: Thursday, September 22, 9:00 - 12:00, Elliott
Coding concepts are important as any beginning programmer can attest to, but good programmers evolve from the real world journey of trial and error as they try to bring the ideas in their head to the screen.
This full-day pre-conference session will take us from a simple browser to a full-featured and functional piece of software. We will begin using an existing piece of code and accompanying executable that does nothing more than display database records on the screen. Attendees will be given a USB stick that contains all the code examples along with a copy of all the necessary files needed to create and run the application. After installing the software, we will quickly examine the existing browser and how it works. Attendees will then be shown how to import the existing code into the workbench where we will continue to develop the software using a combination of SGL and Xbase++ commands and functions.
Once we have successfully put together a robust browsing application, we will stretch the application's functionality and interface. Using more coding examples contained on the accompanying USB stick, we will use the workbench to create a browser from scratch that will browse a different database. In order to reduce resources and leverage code, we will use the workbench to combine common functions from the two applications into a single .DLL. We will then combine the apps into a single full-featured and functional piece of software. All code examples will feature Xbase++ and SGL code. This approach is taken to show how quickly applications can be created. (How this code can be leveraged into a web application will be covered in greater detail in the Compiled Xbase++ Pages (CXP) session.)
The final part of the day focuses on yet another important part of the development cycle: debugging your application. Debugging is the process of finding the reason your code behaves differently than you expect. As a practical example, a number of issues which were intentionally added to the sample application will be found and corrected in the course of this session. Attendees will learn how to use the various debugger features and see why the integration of the debugger with the source code editor makes them more productive.
You will learn:
Prerequisites: None
Presenters: Andreas Herdt, Spyros Bobby Drakos
Level: Beginner, Intermediate
When: Thursday, September 22, 1:00 - 4:00, Elliott
This is part 2 of this full-day pre-conference session.
Presenter: Venelina E. Jordanova
Level: Beginner
When: Friday, September 23, 8:30 - 9:45, Arizona (R1)
Saturday, September 24, 11:30 - 12:45, Arizona (R2)
Do you love VFP? I do! And it is still the love of my life (together with my favorite sport, which I've been doing even longer). I'm an old fox-er and I still have many customers using my old VFP applications. Complaining about what Microsoft has done with our favorite language will not help. We have to go forward; we must look into the future. For a long time, I have looked at many different languages and technologies. In that list are both technologies from Microsoft and open-source technologies. Yes, they are used by many developers and they work. Yes, they have a wide range of implementation. However, I always come to a situation where I think “This could be solved better and faster in VFP.” I still hope to find my “future” technology—the one which will be at least as good as VFP was.
In this session, we will see the features that Xbase++ offers us from the point of view of a VFP developer. We will see what is similar and what is different to the language we are used to. We will have a look at the development environment and the tools for developers to speed up the development process. And last, but not least, we will see how VFP applications can have a new long life, thanks to Xbase++.
You will learn:
Prerequisites: None
Presenter: Steffen F. Pirsig
Level: All levels
When: Friday, September 23, 11:30 - 12:45, Arizona (R1)
Saturday, September 24, 2:00 - 3:15, Arizona (R2)
This session is intended for Visual FoxPro developers who want to give their existing solutions a new future while avoiding the time-consuming and cost-prohibitive approach of rewriting their applications.
We will first develop a basic understanding of the modernization process, moving a Visual FoxPro solution to Xbase++, utilizing the transpiler. Based on a sample application developed with Visual FoxPro, we will learn how the original VFP source code gets transpiled into Xbase++ code. We will not only see the differences, but also the similarities in the code, which are fortunately in the majority.
However, source code is often very complex and developers sometimes use clever tricks when writing code or using language features. Consequently, there are some situations where the automated transpilation process may fail. We will look into problematic Visual FoxPro coding patterns and examine which features the transpiler provides to the Visual FoxPro developer for dealing with them.
We will close the session with a couple of scenarios, showing how to add value to a Visual FoxPro application after moving it over to the Xbase++ platform.
You will learn:
Prerequisites: Visual FoxPro experience, multiple man years of investment into a VFP application, an open mind; thinking forward
Presenters: Steffen F. Pirsig, Spyros Bobby Drakos
Level: All levels
When: Friday, September 23, 3:30 - 4:45, Arizona
Do you have some code that you want to run faster, create lesser workload, or become smaller? In a code shrink, all attendees work together on reviewing the code at hand. Topics like performance pitfalls, code readability, and the approach taken in the implementation will be examined and alternative coding solutions will be suggested if needed.
We do not judge the code, we simply try to make it better! In fact, the code shrink code review is an excellent learning experience for both the experienced developer and the beginner.
You will learn:
Prerequisites: Xbase++ 2.0 or Visual FoxPro experience, and a laptop
Presenter: Steffen F. Pirsig
Level: All levels
When: Saturday, September 24, 5:15 - 6:30, Arizona
In this session, we will talk about our vision for the years to come in terms of the features and technologies that we plan to incorporate into future Xbase++ updates/releases. We will have a look at industry trends and developments which may affect your business model or create new opportunities. Of course, you will also learn where Alaska Software thinks Xbase++ needs to be improved or might have deficiencies. In short, if you are an Xbase++ developer or if you are considering moving to Xbase++ from another language, this session is your "moment of orientation" for the next 12 months and beyond.
You will learn:
Prerequisites: None
Solidifying Xbase++ Development
Presenter: Till Warweg
Level: All levels
When: Saturday, September 24, 11:30 - 12:45, Bisbee (R1)
Sunday, September 25, 11:30 - 12:45, Bisbee (R2)
Testing software to ensure product quality, both during and after the development process, has been a hot topic in recent years. However, although well-established concepts such as unit testing help to ensure the correctness of your code, testing the UI layer of an application tends to be more problematic. This session introduces Selenium, an open source system for automating the testing of Web applications. The topics covered in this session range from installing the Selenium framework to writing your first test case for automating a CXP application.
You will learn:
Prerequisites: Basic knowledge of programming with CXP, basic HTML/CSS knowledge
Presenter: Roger Donnay
Level: Intermediate
When: Friday, September 23, 10:00 - 11:15, Arizona (R1)
Saturday, September 24, 3:30 - 4:45, Arizona (R2)
Compiled Xbase++ Pages (CXP) is a build and execution infrastructure that allows programmers to create powerful dynamic web sites. CXP is a server-based language similar to ASP and PHP except that it supports all the features of the Xbase++ language and therefore makes it possible to adapt existing Xbase++ applications to the web.
Attendees will receive source code for a CXP web server, written in Xbase++, that does not require IIS or Apache. There will be a full discussion of the advantages of using this technique including how to use your custom CXP server to send messages to a remote Trace client program for monitoring your application activities. Discussion will include many tips, techniques, and sample programs that make getting started with CXP much easier. Attendees will also receive source code for a Trace Client program that remotely communicates with the CXP server.
You will learn:
Prerequisites: Some experience with HTML and CSS
Presenters: Andreas Herdt, Spyros Bobby Drakos
Level: Beginner, Intermediate
When: Thursday, September 22, 9:00 - 12:00, Elliott
Coding concepts are important as any beginning programmer can attest to, but good programmers evolve from the real world journey of trial and error as they try to bring the ideas in their head to the screen.
This full-day pre-conference session will take us from a simple browser to a full-featured and functional piece of software. We will begin using an existing piece of code and accompanying executable that does nothing more than display database records on the screen. Attendees will be given a USB stick that contains all the code examples along with a copy of all the necessary files needed to create and run the application. After installing the software, we will quickly examine the existing browser and how it works. Attendees will then be shown how to import the existing code into the workbench where we will continue to develop the software using a combination of SGL and Xbase++ commands and functions.
Once we have successfully put together a robust browsing application, we will stretch the application's functionality and interface. Using more coding examples contained on the accompanying USB stick, we will use the workbench to create a browser from scratch that will browse a different database. In order to reduce resources and leverage code, we will use the workbench to combine common functions from the two applications into a single .DLL. We will then combine the apps into a single full-featured and functional piece of software. All code examples will feature Xbase++ and SGL code. This approach is taken to show how quickly applications can be created. (How this code can be leveraged into a web application will be covered in greater detail in the Compiled Xbase++ Pages (CXP) session.)
The final part of the day focuses on yet another important part of the development cycle: debugging your application. Debugging is the process of finding the reason your code behaves differently than you expect. As a practical example, a number of issues which were intentionally added to the sample application will be found and corrected in the course of this session. Attendees will learn how to use the various debugger features and see why the integration of the debugger with the source code editor makes them more productive.
You will learn:
Prerequisites: None
Presenters: Andreas Herdt, Spyros Bobby Drakos
Level: Beginner, Intermediate
When: Thursday, September 22, 1:00 - 4:00, Elliott
This is part 2 of this full-day pre-conference session.
Presenter: Till Warweg
Level: All levels
When: Friday, September 23, 8:30 - 9:45, Bisbee (R1)
Saturday, September 24, 3:30 - 4:45, Bisbee (R2)
HTML and CSS have figured prominently in recent years as a new technology for creating appealing user interfaces in desktop applications. Starting with Xbase++ 2.0, developers can begin utilizing HTML and CSS to create their own user interface controls. From specialized button classes, to list boxes for visualizing images and textual data, to collapsible controls for grouping UI elements, Alaska is planning to release a number of new controls based on HTML and CSS in the next few years. This session will give an overview of the controls that Alaska Software has developed by the time of the conference. Also, practical use-cases will be demonstrated to give you a better idea of how, where, and when to incorporate the new user interface components in your desktop applications.
You will learn:
Prerequisites: Basic knowledge of programming with Xbase++, basic HTML/CSS knowledge
Presenter: Andreas Herdt
Level: All levels
When: Friday, September 23, 2:00 - 3:15, Bisbee (R1)
Sunday, September 25, 10:00 - 11:15, Arizona (R2)
Nowadays, network communications need to be secure. SSL/TLSv3 is the standard for encrypting data over TCP/IP and is now supported by Xbase++ on the client and server side. While using these technologies on the client side is easy and only requires a connection, ensuring that your WebHandlers and WebSocketHandlers are able to accept secure connections needs a basic understanding of the Windows platform-specific certificate infrastructure. For example, an SSL certificate must first be obtained and then installed on the server machine. In this session, attendees will get all the background information required for setting up and using secure SSL data exchanges between client and server machines.
You will learn:
Prerequisites: Basic knowledge of programming with Xbase++, Visual FoxPro, or Clipper. Basic knowledge about Web Technologies is a plus
Presenters: Steffen F. Pirsig, Spyros Bobby Drakos
Level: All levels
When: Saturday, September 24, 10:00 - 11:15, Arizona
Train your development and language skills with code katas. A code kata is a given programming task of manageable size which is solved by the developer many times in a repetitive manner. The developer tries to find a better solution with each run. The goal is not the final code or solution, the goal of a code kata is the process and the learning from others as well as the learning from mistakes.
Examples of suitable programming tasks are:
We will run the code kata as a group, Two developers are nominated to start with the task and act effectively as a pair with one writing on the keyboard and the co-pilot issuing commands. Attendees are allowed to make suggestions as they go but should allow the pair time and space to proceed with the exercises. The group rotates each 10 minutes so everyone gets a turn.
Again, at each run the pairs will find better ways of solving the problem. Code katas aren't about finding perfect solutions: the journey itself is your reward.
You will learn:
Prerequisites: Installed copy of Xbase++ 2.0, of course, and a laptop
Presenter: Roger Donnay
Level: Intermediate
When: Saturday, September 24, 8:30 - 9:45, Arizona (R1)
Sunday, September 25, 11:30 - 12:45, Arizona (R2)
More and more Xbase++ developers need to deal with XML in their applications. As systems go paperless, the electronic transfer of information becomes more and more relevant. This transfer of information is most often in the form of XML.
This session discusses concepts for dealing with XML both from the need to parse XML data into existing applications to the need to generate XML to send to other applications. Attendees will receive source code for an XmlNode class that has methods for reading, writing, managing and creating XML streams.
You will learn:
Prerequisites: None
Presenters: Steffen F. Pirsig, Spyros Bobby Drakos
Level: All levels
When: Friday, September 23, 3:30 - 4:45, Arizona
Do you have some code that you want to run faster, create lesser workload, or become smaller? In a code shrink, all attendees work together on reviewing the code at hand. Topics like performance pitfalls, code readability, and the approach taken in the implementation will be examined and alternative coding solutions will be suggested if needed.
We do not judge the code, we simply try to make it better! In fact, the code shrink code review is an excellent learning experience for both the experienced developer and the beginner.
You will learn:
Prerequisites: Xbase++ 2.0 or Visual FoxPro experience, and a laptop
Presenter: Steffen F. Pirsig
Level: All levels
When: Saturday, September 24, 5:15 - 6:30, Arizona
In this session, we will talk about our vision for the years to come in terms of the features and technologies that we plan to incorporate into future Xbase++ updates/releases. We will have a look at industry trends and developments which may affect your business model or create new opportunities. Of course, you will also learn where Alaska Software thinks Xbase++ needs to be improved or might have deficiencies. In short, if you are an Xbase++ developer or if you are considering moving to Xbase++ from another language, this session is your "moment of orientation" for the next 12 months and beyond.
You will learn:
Prerequisites: None
Presenter: Andreas Gehrs-Pahl
Level: Beginner, Intermediate
When: Friday, September 23, 10:00 - 11:15, Bisbee (R1)
Saturday, September 24, 2:00 - 3:15, Bisbee (R2)
In this session, you will learn how to create a simple Service application. The example program will be a vehicle tracking application that receives the location (and possibly other details) of a fleet of (imaginary) delivery trucks and records the received data in a PostgreSQL (PGSQL) database. In addition, a Service Controller application will be created to manage (install, start, pause, stop, and uninstall) the Services (the Vehicle Tracking Service as well as the PGSQL Database Server). This Controller application will also act as a dashboard for the Tracking Service and to manage the database on the backend. The Service will be listening for WebSocket connections and will save the received data (consisting of an ID, GPS coordinates, a Date/Time Stamp, etc.) in a PGSQL database. It will also respond to status requests from the Controller application.
You will learn:
Prerequisites: Familiarity with the Xbase++ language
Technology and Business for the Developer
Presenter: Rick Schummer
Level: All levels
When: Friday, September 23, 2:00 - 3:15, Elliott (R1)
Saturday, September 24, 3:30 - 4:45, Elliott (R2)
Every session I've seen at conferences about making the move from corporate developer working for "the man/woman" to being an independent consultant and being "the man/woman" has been delivered through rose-colored glasses. Everything is unicorns and green grass on the other side of the fence. You'll be rich, work fewer hours, and instantly build a company someone will want to buy from you for an over-inflated amount of cash. Listening to these sessions, who would not want to make the move? I've listened to the sessions and learned a few things from them. I've seen developers make the jump. I've seen some of them succeed and others fail.
It turns out I had to do this twice to get it right myself, and even today I know for sure I am not getting it all right. I still have things to learn from others and from experience. The lessons from the school of black and blue are hard-fought wins. The generally accepted idea that it's best to learn from your mistakes is an educational path I try to avoid, but I have proven that you can make it work, even if you are not perfect.
This session is about lessons learned, things to consider if you are an independent consultant or running a consulting firm, and things to consider if you are thinking about becoming an independent consultant. You may even learn that it is not right for you.
Because the session is limited to 75 minutes, it won't be possible to cover everything I've learned about this topic; the exact content of the session will, in part, be driven by the audience. Core topics include balancing billable vs. non-billable time, how to find more work, why cash flow is king, and marketing yourself and the business. It is also important to understand why setting up the business's legal infrastructure is not something you want to do casually. The financials are everything, right? What, no? We'll discuss partnership vs. making a go of it yourself. I'll also share one of the keys to success for me: strategic outsourcing of administrivia.
We'll also look at networking, partnering with others, and making sure you get paid for the risks you take and the hard work you put into the business. That of course leads to discussions about the risks involved and how much work it takes to run the business. Finally, we'll consider what you do when you become so successful that you need others to help you accomplish even more goodness for your growing customer base. So many lessons to share, and so many lessons still to learn.
I'll ask others attending the session to share their ideas too. An interactive session on this topic is sure to benefit everyone in attendance.
You will learn:
Prerequisites: None
Presenter: Tuvia Vinitsky
Level: All levels
When: Friday, September 23, 10:00 - 11:15, Elliott (R1)
Sunday, September 25, 8:30 - 9:45, Elliott (R2)
End user training is a critical component of a successful software deployment. Yet too often the training process is an afterthought. Training may be an art, but it is also a science. Experts in Instructional Technology have studied the most effective training methods. Delivering a stunning VFP app is only half the battle. In this session Tuvia Vinitsky takes you through the process of designing and implementing effective end user training.
You will learn:
Prerequisites: Experience teaching or training end users
Presenter: Rick Borup
Level: All levels
When: Friday, September 23, 3:30 - 4:45, Flagstaff (R1)
Saturday, September 24, 11:30 - 12:45, Flagstaff (R2)
Power BI (Business Intelligence) is Microsoft's newest suite of tools for transforming your data into reports and visual presentations. It's available both as an online service and as a Windows desktop application, and works with a wide variety of data sources. Tools such as Power Pivot, Power Query, and Power View are integrated with Microsoft Excel, making it easy for almost anyone to get started. But beyond the basics, non-technical users will likely turn to software developers and consultants for help. The Power BI REST API enables developers to push data from an application directly into a Power BI dataset for real-time updates. This session introduces Power BI and explores how you can learn to use it to create great reports and visuals from your data.
Note: This session will focus less on Excel and more on the newer Power BI Desktop app.
You will learn:
Prerequisites: None
Presenter: Chris McGuinness
Level: All levels
When: Friday, September 23, 2:00 - 3:15, Gilbert (R1)
Saturday, September 24, 11:30 - 12:45, Gilbert (R2)
This session is a walk-through of real-world examples where Amazon's infrastructure-as-a-service is leveraged using the Remote Application capabilities of the Remote Desktop Protocol allowing you to push FoxPro/Xbase++ based applications to your client's desktops in a seamless fashion.
Topics include:
You will learn:
Prerequisites: None
Presenter: Tamar E. Granor
Level: All levels
When: Friday, September 23, 11:30 - 12:45, Elliott (R1)
Saturday, September 24, 11:30 - 12:45, Elliott (R2)
Many software developers would prefer never to have to write in a natural language; they're much happier with programming languages. But the ability to communicate in writing is actually an essential skill for successful software development. Developers need to be able to write specifications and developer documentation, as well as to clearly ask questions of their customers and to answer customer questions. In some cases, developers are responsible for end-user documentation, too.
In this session, we'll see how to produce documents that say what you need to say in an accessible way, whether you're writing a user manual or an email. We'll look at all stages of the writing process, from organization to writing to editing to proofing. This session will be run as a workshop. Come prepared to write and edit. Please bring something on which to write and something to write with.
You will learn:
Prerequisites: None
Web and Mobile
Presenter: Till Warweg
Level: All levels
When: Saturday, September 24, 11:30 - 12:45, Bisbee (R1)
Sunday, September 25, 11:30 - 12:45, Bisbee (R2)
Testing software to ensure product quality, both during and after the development process, has been a hot topic in recent years. However, although well-established concepts such as unit testing help to ensure the correctness of your code, testing the UI layer of an application tends to be more problematic. This session introduces Selenium, an open source system for automating the testing of Web applications. The topics covered in this session range from installing the Selenium framework to writing your first test case for automating a CXP application.
You will learn:
Prerequisites: Basic knowledge of programming with CXP, basic HTML/CSS knowledge
Presenter: Roger Donnay
Level: Intermediate
When: Friday, September 23, 10:00 - 11:15, Arizona (R1)
Saturday, September 24, 3:30 - 4:45, Arizona (R2)
Compiled Xbase++ Pages (CXP) is a build and execution infrastructure that allows programmers to create powerful dynamic web sites. CXP is a server-based language similar to ASP and PHP except that it supports all the features of the Xbase++ language and therefore makes it possible to adapt existing Xbase++ applications to the web.
Attendees will receive source code for a CXP web server, written in Xbase++, that does not require IIS or Apache. There will be a full discussion of the advantages of using this technique including how to use your custom CXP server to send messages to a remote Trace client program for monitoring your application activities. Discussion will include many tips, techniques, and sample programs that make getting started with CXP much easier. Attendees will also receive source code for a Trace Client program that remotely communicates with the CXP server.
You will learn:
Prerequisites: Some experience with HTML and CSS
Presenter: Venelina E. Jordanova
Level: Intermediate, Advanced
When: Friday, September 23, 11:30 - 12:45, Bisbee (R1)
Sunday, September 25, 8:30 - 9:45, Bisbee (R2)
The world moves and nowadays we need to handle more and more tasks. So do our customers. According to research, 64% of American adults now own a smartphone. All smartphone owners use their phones to go online and 34% of internet users go online mostly using their phones, and not using some other device such as a desktop or laptop computer. Is the smartphone the PC of the next generation? In any case, we often face the need to provide some part of our applications as mobile apps. Of course, this is not the full functional desktop application, but in most cases, it gives the end-users the chance to enter data immediately instead of making notes and entering them later in the office, and provides some instant reports and statistical data that is very useful.
In this session, I will demonstrate how to build a simple web server, accessing and providing the required data over a remote connection using the JSON data exchange format. The next part of the demonstration will be a simple HTML 5 page consuming the data as well as a simple mobile application, working with same data, editing them and updating the database behind.
You will learn:
Prerequisites: Understanding of web services
Presenter: Till Warweg
Level: All levels
When: Friday, September 23, 8:30 - 9:45, Bisbee (R1)
Saturday, September 24, 3:30 - 4:45, Bisbee (R2)
HTML and CSS have figured prominently in recent years as a new technology for creating appealing user interfaces in desktop applications. Starting with Xbase++ 2.0, developers can begin utilizing HTML and CSS to create their own user interface controls. From specialized button classes, to list boxes for visualizing images and textual data, to collapsible controls for grouping UI elements, Alaska is planning to release a number of new controls based on HTML and CSS in the next few years. This session will give an overview of the controls that Alaska Software has developed by the time of the conference. Also, practical use-cases will be demonstrated to give you a better idea of how, where, and when to incorporate the new user interface components in your desktop applications.
You will learn:
Prerequisites: Basic knowledge of programming with Xbase++, basic HTML/CSS knowledge
Presenter: Andreas Herdt
Level: All levels
When: Friday, September 23, 2:00 - 3:15, Bisbee (R1)
Sunday, September 25, 10:00 - 11:15, Arizona (R2)
Nowadays, network communications need to be secure. SSL/TLSv3 is the standard for encrypting data over TCP/IP and is now supported by Xbase++ on the client and server side. While using these technologies on the client side is easy and only requires a connection, ensuring that your WebHandlers and WebSocketHandlers are able to accept secure connections needs a basic understanding of the Windows platform-specific certificate infrastructure. For example, an SSL certificate must first be obtained and then installed on the server machine. In this session, attendees will get all the background information required for setting up and using secure SSL data exchanges between client and server machines.
You will learn:
Prerequisites: Basic knowledge of programming with Xbase++, Visual FoxPro, or Clipper. Basic knowledge about Web Technologies is a plus
Presenter: Andreas Gehrs-Pahl
Level: All levels
When: Saturday, September 24, 8:30 - 9:45, Bisbee (R1)
Sunday, September 25, 10:00 - 11:15, Bisbee (R2)
This session will show how to geo-verify and geo-code an address and how to display an address or location on a map in your application. To accomplish this, the free Google Geo-Coding API and Mapping features are used. An application will be created that will geo-verify and geo-code addresses and display them on a Google Map. In addition the data that was accumulated by the GPS tracker Service application from the "You have been Served" session will be displayed, to show where the tracked vehicles are and where they have been.
Even though the demo program will be written in Xbase++, the generic information about the Google API and Google Maps might also be useful to VFP developers.
You will learn:
Prerequisites: Familiarity with the Xbase++ language. Some knowledge of HTML, XML, and Active-X components is a plus.
Presenter: Andreas Gehrs-Pahl
Level: Beginner, Intermediate
When: Friday, September 23, 10:00 - 11:15, Bisbee (R1)
Saturday, September 24, 2:00 - 3:15, Bisbee (R2)
In this session, you will learn how to create a simple Service application. The example program will be a vehicle tracking application that receives the location (and possibly other details) of a fleet of (imaginary) delivery trucks and records the received data in a PostgreSQL (PGSQL) database. In addition, a Service Controller application will be created to manage (install, start, pause, stop, and uninstall) the Services (the Vehicle Tracking Service as well as the PGSQL Database Server). This Controller application will also act as a dashboard for the Tracking Service and to manage the database on the backend. The Service will be listening for WebSocket connections and will save the received data (consisting of an ID, GPS coordinates, a Date/Time Stamp, etc.) in a PGSQL database. It will also respond to status requests from the Controller application.
You will learn:
Prerequisites: Familiarity with the Xbase++ language
Xbase++ 3.0
Presenter: Venelina E. Jordanova
Level: Beginner
When: Friday, September 23, 8:30 - 9:45, Arizona (R1)
Saturday, September 24, 11:30 - 12:45, Arizona (R2)
Do you love VFP? I do! And it is still the love of my life (together with my favorite sport, which I've been doing even longer). I'm an old fox-er and I still have many customers using my old VFP applications. Complaining about what Microsoft has done with our favorite language will not help. We have to go forward; we must look into the future. For a long time, I have looked at many different languages and technologies. In that list are both technologies from Microsoft and open-source technologies. Yes, they are used by many developers and they work. Yes, they have a wide range of implementation. However, I always come to a situation where I think “This could be solved better and faster in VFP.” I still hope to find my “future” technology—the one which will be at least as good as VFP was.
In this session, we will see the features that Xbase++ offers us from the point of view of a VFP developer. We will see what is similar and what is different to the language we are used to. We will have a look at the development environment and the tools for developers to speed up the development process. And last, but not least, we will see how VFP applications can have a new long life, thanks to Xbase++.
You will learn:
Prerequisites: None
Presenter: Steffen F. Pirsig
Level: All levels
When: Friday, September 23, 11:30 - 12:45, Arizona (R1)
Saturday, September 24, 2:00 - 3:15, Arizona (R2)
This session is intended for Visual FoxPro developers who want to give their existing solutions a new future while avoiding the time-consuming and cost-prohibitive approach of rewriting their applications.
We will first develop a basic understanding of the modernization process, moving a Visual FoxPro solution to Xbase++, utilizing the transpiler. Based on a sample application developed with Visual FoxPro, we will learn how the original VFP source code gets transpiled into Xbase++ code. We will not only see the differences, but also the similarities in the code, which are fortunately in the majority.
However, source code is often very complex and developers sometimes use clever tricks when writing code or using language features. Consequently, there are some situations where the automated transpilation process may fail. We will look into problematic Visual FoxPro coding patterns and examine which features the transpiler provides to the Visual FoxPro developer for dealing with them.
We will close the session with a couple of scenarios, showing how to add value to a Visual FoxPro application after moving it over to the Xbase++ platform.
You will learn:
Prerequisites: Visual FoxPro experience, multiple man years of investment into a VFP application, an open mind; thinking forward
Presenter: Steffen F. Pirsig
Level: All levels
When: Saturday, September 24, 5:15 - 6:30, Arizona
In this session, we will talk about our vision for the years to come in terms of the features and technologies that we plan to incorporate into future Xbase++ updates/releases. We will have a look at industry trends and developments which may affect your business model or create new opportunities. Of course, you will also learn where Alaska Software thinks Xbase++ needs to be improved or might have deficiencies. In short, if you are an Xbase++ developer or if you are considering moving to Xbase++ from another language, this session is your "moment of orientation" for the next 12 months and beyond.
You will learn:
Prerequisites: None