October 26-29, 2017
SanTan Elegante Conference Center
Gilbert, AZ
There are 7 conference tracks at Southwest Fox 2017. "Level" shows the expected Visual FoxPro level for attendees for a session. Click a track's icon to jump to the sessions for that track.
Keynote
Presenter: Dave Bernard
Level: All levels
When: Thursday, October 26, 7:00 - 8:30, Elliott/Flagstaff
The hype of AI, machine learning, bots, and digital assistants has been building since the start of the year, amplified by efforts of Google, Facebook, and others. Many of the bots that have either hit the market or are getting ready to launch, carry out tasks traditionally done by humans. We'll explore the historical relationship between technology innovation and job creation, and discuss the realities of potential future job obsolescence.
Pre-Conference
Presenter: Tuvia Vinitsky
Level: Intermediate, Advanced
When: Thursday, October 26, 1:00 - 4:00, Elliott
This session is the complete guide to VFP and the Web. What are the options? How are websites and web apps different? What skills will I need? How can I evaluate what I need for a specific project? What skills will I need to master? What are the main differences in desktop and web programming approaches? What is stateless and how does it affect my application?
More information and misinformation is available on this topic than almost any other VFP issue. This session takes you through the ABC's of VFP and the Web and clarifies everything from ASP to XML. We will discuss website connections, web applications, JavaScript, CSS, HTML, and just about everything else connected to the web—all from the perspective of a VFP developer.
You will learn:
Prerequisites: Basic VFP knowledge. Knowledge of website setup and basic HTML/CSS/JS helpful.
Presenter: Doug Hennig
Level: All levels
When: Thursday, October 26, 9:00 - 12:00, Elliott
Even if you're planning to continue development in VFP, learning another language like C# can be very useful. There are some things that are a lot easier and faster to do in .NET than in VFP (the reverse is also true). This pre-conference session introduces the C# language, comparing it to constructs and syntax in VFP to shorten the learning curve.
You will learn:
Prerequisites: General knowledge of programming
Extending VFP
Presenter: Rick Strahl
Level: All levels
When: Friday, October 27, 11:30 - 12:45, Flagstaff (R1)
Saturday, October 28, 2:00 - 3:15, Flagstaff (R2)
The Web Browser control is one of the most powerful ActiveX controls available to you to integrate into Visual FoxPro. The control provides a way to display and interact with HTML content and JavaScript from your FoxPro applications. Whether you want to display HTML content, which is a great way to display lots of text, or whether you want to build a rich UI that uses HTML-based layout, you can do it quite easily with the Web Browser control. It's even possible to use rich JavaScript-based components and control those components from VIsual FoxPro; I'll show an example of using a powerful HTML/JavaScript-based editor in Visual FoxPro. This session is an overview of how to work with the Web Browser control, how to control the rendering process, and how to interact with the live document and JavaScript components that live in a Web page to build dynamic content that can interact with your FoxPro application.
You will learn:
Prerequisites: Some familiarity with COM, some familiarity with JavaScript, and some familiarity with HTML
Presenter: Tuvia Vinitsky
Level: Intermediate, Advanced
When: Thursday, October 26, 1:00 - 4:00, Elliott
This session is the complete guide to VFP and the Web. What are the options? How are websites and web apps different? What skills will I need? How can I evaluate what I need for a specific project? What skills will I need to master? What are the main differences in desktop and web programming approaches? What is stateless and how does it affect my application?
More information and misinformation is available on this topic than almost any other VFP issue. This session takes you through the ABC's of VFP and the Web and clarifies everything from ASP to XML. We will discuss website connections, web applications, JavaScript, CSS, HTML, and just about everything else connected to the web—all from the perspective of a VFP developer.
You will learn:
Prerequisites: Basic VFP knowledge. Knowledge of website setup and basic HTML/CSS/JS helpful.
Presenter: Doug Hennig
Level: All levels
When: Saturday, October 28, 8:30 - 9:45, Elliott (R1)
Sunday, October 29, 10:00 - 11:15, Elliott (R2)
The Project Manager is one of the oldest tools built into VFP, and it's been showing its age for a long time. For example, it doesn't provide integration with modern distributed version control systems (DVCS) such as Mercurial and Git, it doesn't have a way to filter or organize the list of items, and it can only work with one project at a time.
Project Explorer is a soon-to-be VFPX project that replaces the Project Manager with a modern interface and modern capabilities. It has all of the features of the Project Manager but adds integration with DVCS (including built-in support for FoxBin2PRG and optional auto-commit after changes), supports multiple projects within a "solution", allows you to organize your items by keyword or other criteria, and has support for easy "auto-registering" addins that can customize the appearance and behavior of the tool.
This session introduces Project Explorer and shows how it can make you more productive than working with the Project Manager. This session starts by going through the interface and functionality of Project Explorer, then looks at its internals to see how it's designed, and finally shows how to write addins that extend the functionality or customize the user interface.
You will learn:
Prerequisites: Experience using the VFP Project Manager
Presenter: Toni M. Feltman
Level: Intermediate
When: Friday, October 27, 8:30 - 9:45, Flagstaff (R1)
Saturday, October 28, 11:30 - 12:45, Flagstaff (R2)
For a recent long term project I was afforded the luxury of having a true SQL Server DBA involved. In fact, my role as a developer isolated me completely from the production servers. Every interaction with the database had to go through the DBA before it went to production. This was a good thing because as SQL server has grown and advanced, I have lost sight with all of the ways to secure, monitor, and tune it. I was spoiled. Our DBA knew what he was doing and was a team player who worked well with the development teams.
Fast forward and our awesome DBA finds a different opportunity and leaves the organization. He is replaced with someone who is very inexperienced by comparison AND is not a team player. Suddenly systems that used to hum along nicely are crashing and somehow it is the developer's fault because the DBA has no clue how to monitor, tune, or secure the database.
This session will be a crash course in the bare bones basics of DBA level database tuning, securing, and monitoring. I hope that a few attendees can bring some of their horror stories to share.
You will learn:
Prerequisites: Basic knowledge of SQL Server
Presenter: Rick Strahl
Level: Intermediate
When: Friday, October 27, 3:30 - 4:45, Flagstaff (R1)
Saturday, October 28, 5:15 - 6:30, Flagstaff (R2)
Web Sockets have been around for a quite a while, but usage of the technology in everyday applications has been surprisingly light. Web Sockets provide two-way communication over HTTP between a client and a server. Unlike standard HTTP requests, Web Sockets can push data to clients as data arrives and any active clients are immediately notified when an event arrives. It also allows for notifying many clients simultaneously via its hub and spoke model of event notifications. There are many use cases for this technology where real time communication is important and unlike Sockets of old, Web Sockets work over HTTP and are easily accessible over open HTTP connections. In this session we'll look at how Web Sockets work and a few concrete examples of how you can use this powerful technology to interface Visual FoxPro to external services.
You will learn:
Prerequisites: Familiarity with Web Development and .NET
Presenter: Tamar E. Granor
Level: Intermediate
When: Saturday, October 28, 10:00 - 11:15, Flagstaff (R1)
Sunday, October 29, 10:00 - 11:15, Flagstaff (R2)
In many applications, you need to take nice, normalized data and turn it "sideways," using the values in one or more columns to specify columns in the result. Most often, the process also involves aggregating data for each of those values. In Visual FoxPro, the result is called a cross-tab; SQL Server calls it a pivot. Once you've created a cross-tab or pivot, reporting can be difficult because the result may have many, many columns.
In this session, we'll see how to generate cross-tabs and pivots, as well as how to report on them, including exporting to Excel and creating graphs of the results.
You will learn:
Prerequisites: Some familiarity with SQL queries
Moving VFP Applications Forward
Presenter: Tuvia Vinitsky
Level: Intermediate, Advanced
When: Thursday, October 26, 1:00 - 4:00, Elliott
This session is the complete guide to VFP and the Web. What are the options? How are websites and web apps different? What skills will I need? How can I evaluate what I need for a specific project? What skills will I need to master? What are the main differences in desktop and web programming approaches? What is stateless and how does it affect my application?
More information and misinformation is available on this topic than almost any other VFP issue. This session takes you through the ABC's of VFP and the Web and clarifies everything from ASP to XML. We will discuss website connections, web applications, JavaScript, CSS, HTML, and just about everything else connected to the web—all from the perspective of a VFP developer.
You will learn:
Prerequisites: Basic VFP knowledge. Knowledge of website setup and basic HTML/CSS/JS helpful.
Presenter: Doug Hennig
Level: All levels
When: Thursday, October 26, 9:00 - 12:00, Elliott
Even if you're planning to continue development in VFP, learning another language like C# can be very useful. There are some things that are a lot easier and faster to do in .NET than in VFP (the reverse is also true). This pre-conference session introduces the C# language, comparing it to constructs and syntax in VFP to shorten the learning curve.
You will learn:
Prerequisites: General knowledge of programming
Presenter: Tuvia Vinitsky
Level: All levels
When: Friday, October 27, 10:00 - 11:15, Flagstaff (R1)
Sunday, October 29, 8:30 - 9:45, Flagstaff (R2)
Remote Desktop Protocol (RDP) / Terminal Services has become a popular option for moving VFP applications to the "cloud". RDP's very thin client and Windows standardization make it an excellent platform, but running VFP applications over RDP requires some tweaks to the server and to the VFP application. In this session, we will review server side issues such as licensing and printing, and then VFP issues such as deployment, memory management, UI issues, security, and OLE access of outside programs such as MS Word.
You will learn:
Prerequisites: Basic VFP knowledge
Solidifying VFP Development
Presenter: Tamar E. Granor
Level: Intermediate, Advanced
When: Friday, October 27, 10:00 - 11:15, Elliott (R1)
Saturday, October 28, 3:30 - 4:45, Elliott (R2)
At first glance, the BindEvents() function may seem unnecessary. After all, why bind to an event when you can just write code in the event's method?
In this reprise of a popular session, we'll look at why BindEvents and its cousins, the Access and Assign methods, are so valuable. Using examples drawn from real applications, we'll see how event binding lets you do things you couldn't otherwise do, and simplifies code for other tasks. Examples include tracking user changes on a form, monitoring user activity, dynamic tooltips, and more. We'll also talk about the difficulties involved in debugging code that uses event binding.
You will learn:
Prerequisites: Some familiarity with OOP
Presenter: Rick Schummer
Level: All levels
When: Friday, October 27, 11:30 - 12:45, Elliott (R1)
Saturday, October 28, 5:15 - 6:30, Elliott (R2)
The universe is designed to work against databases and database files. The electrical grid is aging and failing and each time a power outage happens, an angel loses their wings and tables are sure to get corrupted because users don't want to spend an extra hundred dollars for a battery backup. (Why is it that desktop computers don't come with one built-in like laptops?) If it is not our favorite electric company cutting the power, leave it to the users to turn off the computer in the middle of a table update. Hard drives have a mean time between failure statistic because hard drives regularly fail. Occasionally network cards or the wires glitch and next thing you know indexes are corrupt again. Surely if you can protect yourself from all the disasters waiting to happen, leave it to Microsoft to introduce problems with network and operating system protocols like SMB2 to make mince meat out of the normally stable data.
Depressing huh? But wait there is more…
Viruses attack computers and users regularly. Anti-virus software can protect against viruses, but also attack every day normal DBFs. Repeated requests to have IT not scan the data folder get ignored because it violates some policy, even though they forget to implement the “all data is backed up every day policy” too. Argh, is this only happening to my customers?
No worries, fixing "not a table" is pretty standard fare and easy to do with one of the many powerful fix-them-table tools.
And then comes along ransomware. Cryptolocker, CryptoWall, Locky, HydraCrypt, etc., etc. Users open an email with a resume because they have an open position, click a link to the online resume, and 15 minutes later their hard drive is encrypted along with all their application data on the server. Ooops. No worries, take the machine off the network and restore the backups. What? NO BACKUPS? All I can do is shake my head. I cannot make this stuff up. In fact, over the past few years, hardly a month goes by where my data fixing services are not required. Sometimes the customers win, and sometimes they lose.
This session is going to cover the various data corruption scenarios, tools to diagnose the problem files, concepts and ideas for fixing them, tools of the repair process, better backup solutions to avoid the worst case scenario, and how to have that heart-to-heart discussion with customers to avoid the data corruption as often as possible.
You will learn:
Prerequisites: None, but people with weak hearts might not want to attend.
Presenter: Christof Wollenhaupt
Level: Intermediate
When: Friday, October 27, 8:30 - 9:45, Elliott (R1)
Saturday, October 28, 2:00 - 3:15, Elliott (R2)
Sometimes optimization means making things faster; sometimes it only means changing what you measure. Before you can optimize an application, you need to define what and how to optimize. If you find that you need to take out the slow parts, there are various tools that help you identifying those. We cover monitoring and coverage tools extended by an in-depth explanation of how to make sense of the results. We also talk about the right mindset and the problems you encounter when developers or customers lack this mindset.
You will learn:
Prerequisites: None
Presenter: Tuvia Vinitsky
Level: All levels
When: Friday, October 27, 10:00 - 11:15, Flagstaff (R1)
Sunday, October 29, 8:30 - 9:45, Flagstaff (R2)
Remote Desktop Protocol (RDP) / Terminal Services has become a popular option for moving VFP applications to the "cloud". RDP's very thin client and Windows standardization make it an excellent platform, but running VFP applications over RDP requires some tweaks to the server and to the VFP application. In this session, we will review server side issues such as licensing and printing, and then VFP issues such as deployment, memory management, UI issues, security, and OLE access of outside programs such as MS Word.
You will learn:
Prerequisites: Basic VFP knowledge
Presenter: Tamar E. Granor
Level: Intermediate
When: Saturday, October 28, 10:00 - 11:15, Flagstaff (R1)
Sunday, October 29, 10:00 - 11:15, Flagstaff (R2)
In many applications, you need to take nice, normalized data and turn it "sideways," using the values in one or more columns to specify columns in the result. Most often, the process also involves aggregating data for each of those values. In Visual FoxPro, the result is called a cross-tab; SQL Server calls it a pivot. Once you've created a cross-tab or pivot, reporting can be difficult because the result may have many, many columns.
In this session, we'll see how to generate cross-tabs and pivots, as well as how to report on them, including exporting to Excel and creating graphs of the results.
You will learn:
Prerequisites: Some familiarity with SQL queries
Taking Advantage of VFPX
Presenter: Doug Hennig
Level: All levels
When: Saturday, October 28, 8:30 - 9:45, Elliott (R1)
Sunday, October 29, 10:00 - 11:15, Elliott (R2)
The Project Manager is one of the oldest tools built into VFP, and it's been showing its age for a long time. For example, it doesn't provide integration with modern distributed version control systems (DVCS) such as Mercurial and Git, it doesn't have a way to filter or organize the list of items, and it can only work with one project at a time.
Project Explorer is a soon-to-be VFPX project that replaces the Project Manager with a modern interface and modern capabilities. It has all of the features of the Project Manager but adds integration with DVCS (including built-in support for FoxBin2PRG and optional auto-commit after changes), supports multiple projects within a "solution", allows you to organize your items by keyword or other criteria, and has support for easy "auto-registering" addins that can customize the appearance and behavior of the tool.
This session introduces Project Explorer and shows how it can make you more productive than working with the Project Manager. This session starts by going through the interface and functionality of Project Explorer, then looks at its internals to see how it's designed, and finally shows how to write addins that extend the functionality or customize the user interface.
You will learn:
Prerequisites: Experience using the VFP Project Manager
Technology and Business for the Developer
Presenter: Christof Wollenhaupt
Level: Beginner
When: Friday, October 27, 3:30 - 4:45, Elliott (R1)
Sunday, October 29, 11:30 - 12:45, Elliott (R2)
Learn how to automate various development and business tasks with FinalBuilder, a commercial automation tool from VSoft. This session introduces the product and its various concepts and shows cases of automating tasks such as scraping web sites for changes, FTP transfers, deploying scripts to multiple servers, and other development-related tasks.
We will cover the reasons why you want to automate tasks even when this initially requires more work and what the benefits are to the business owner, employees, and customers. We'll cover the structure of FinalBuilder projects, how to tackle an automation project, and how to test projects. We'll also delve into features like variables, action lists, control structures, error handling, per user configuration, and documentation. While the feature set of FinalBuilder is too extensive to cover in one session, we will look at the most commonly used actions and their configuration. As FinalBuilder is a commercial product, we will also take a look at licensing options and cost.
You will learn:
Prerequisites: None
Presenter: Rick Schummer
Level: All levels
When: Saturday, October 28, 10:00 - 11:15, Elliott (R1)
Sunday, October 29, 8:30 - 9:45, Elliott (R2)
Every session I have seen presented 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. But you made the jump and made it a success and your business is growing or could be growing.
This session is a continuation from last year's session and is about more lessons learned, things to consider if you are an independent consultant or running a consulting firm, and things to consider if you think you want to be more than an independent one-person shop; you may learn that growing your business is not the right thing for you.
There are a few topics that were not covered last year like Rick's Rules to a Successful Business, knowing when and how to say "No", firing customers, home office vs. renting space, and the dreaded Impostor Syndrome.
The session is limited to 75 minutes and determining what is important to cover changes even as I continue preparing for the session. Certainly I want to cover recognizing the need for help, bringing on subcontractors and employees (attracting, interviewing, hiring and firing processes), managing teams, workload balancing, making sure customers are happy, and making sure the team is happy. What policies do you need with regards to "moonlighting" and flex hours? What benefits should you consider and how to administer them? Then there is the dreaded Employee Handbooks (do you need one) and keeping up with all the regulations government can throw at you that affect your business. Can one even find time to code anymore?
How do you even start to grow your company? Do you take the traditional route of getting more customers and more work from existing customers, buy other businesses, buy intellectual property, or pick some combination? In this session, you can learn from someone who has been there and got the t-shirt and scars to show for it. I'll discuss how I've used several techniques of growing the business, and some marketing brick walls and how to climb over them. I plan to discuss how even with the best of intentions, I overlooked some glaring problems when I purchased intellectual property from another developer and problems it triggered. I'll also discuss how I learned from those mistakes to do it right the second time.
So many lessons to share, so many lessons still to learn. Some may fit into this session and some might not. I hope others attending the session share their ideas too. I know an interactive session on this topic is sure to benefit everyone in attendance. I am open to suggestions in advance as well.
You will learn:
Prerequisites: None
Presenter: Phil Sherwood
Level: All levels
When: Saturday, October 28, 8:30 - 9:45, Flagstaff (R1)
Sunday, October 29, 11:30 - 12:45, Flagstaff (R2)
We're all used to using Google for searching the web. Have you taken advantage of all the other tools that Google provides for you to run and market your business? This session will explore some of the tools Google offers in addition to search. The great thing is that most of them are free!
In this session we'll start with Google Tag Manager and look at the benefits it gives you and why you should use it.
Next, we'll cover the Google Search Console and discover the information you can glean about your websites and how to use it for increasing your search engine optimization.
The bulk of the session will cover Google Analytics and the wealth of information available once you add it to your site. Using analytics you can see what pages of your site are getting the most traffic and which are bouncing visitors quickly.
There are other free Google tools we'll look at as time allows such as PageSpeed Insights. See what Google thinks about your website's page loading speeds and what it suggests for speeding them up.
Have you ever needed a way to put out a quick survey? Look no further. Google Forms is a great free app to send surveys to your audience or customers.
We'll just get to scratch the surface of what Google has to offer besides search but you'll leave the session with several ideas of how to put these free tools to work for you.
You will learn:
Prerequisites: None
Presenter: Phil Sherwood
Level: All levels
When: Friday, October 27, 2:00 - 3:15, Elliott (R1)
Saturday, October 28, 11:30 - 12:45, Elliott (R2)
Facebook has over 1.7 billion active monthly users. Want to put your marketing messages where the eyeballs are? Look no further. If you're spending advertising money anywhere, you should be looking at Facebook.
In this session, we'll cover why you should advertise using Facebook and why it's a great time to get started using it for something other than a time waster.
<soapbox> If you're like me, you probably cringe a little thinking about using Facebook for business. I hate when businesses and ads encroach on some of the apps I use daily. But here's the thing... Facebook advertising is working very effectively for many businesses and we have to decide if we're going to let our emotions get in the way of making some sound business decisions. Do we really want to miss out on one of the best ways to advertise right now? </soapbox>
There are several moving parts to Facebook advertising. This session will cover how to setup your Facebook advertising account and the Facebook pixel. Then we'll look at Facebook audiences and how to define a custom audience for your ads. We'll go over how to retarget visitors to your website only with certain ads. Facebook ads have to have a certain structure and you get penalized if you do things wrong. We'll look at best practices for designing your ads and also look at how video ads perform compared to text and graphic ads. Then we'll cover how to set your ad budget and monitor how your ads are performing.
This session will be jam-packed with actionable info that you can take immediately to get started with Facebook advertising.
You will learn:
Prerequisites: None
Web and Mobile
Presenter: Tuvia Vinitsky
Level: Intermediate, Advanced
When: Thursday, October 26, 1:00 - 4:00, Elliott
This session is the complete guide to VFP and the Web. What are the options? How are websites and web apps different? What skills will I need? How can I evaluate what I need for a specific project? What skills will I need to master? What are the main differences in desktop and web programming approaches? What is stateless and how does it affect my application?
More information and misinformation is available on this topic than almost any other VFP issue. This session takes you through the ABC's of VFP and the Web and clarifies everything from ASP to XML. We will discuss website connections, web applications, JavaScript, CSS, HTML, and just about everything else connected to the web—all from the perspective of a VFP developer.
You will learn:
Prerequisites: Basic VFP knowledge. Knowledge of website setup and basic HTML/CSS/JS helpful.
Presenter: Phil Sherwood
Level: All levels
When: Saturday, October 28, 8:30 - 9:45, Flagstaff (R1)
Sunday, October 29, 11:30 - 12:45, Flagstaff (R2)
We're all used to using Google for searching the web. Have you taken advantage of all the other tools that Google provides for you to run and market your business? This session will explore some of the tools Google offers in addition to search. The great thing is that most of them are free!
In this session we'll start with Google Tag Manager and look at the benefits it gives you and why you should use it.
Next, we'll cover the Google Search Console and discover the information you can glean about your websites and how to use it for increasing your search engine optimization.
The bulk of the session will cover Google Analytics and the wealth of information available once you add it to your site. Using analytics you can see what pages of your site are getting the most traffic and which are bouncing visitors quickly.
There are other free Google tools we'll look at as time allows such as PageSpeed Insights. See what Google thinks about your website's page loading speeds and what it suggests for speeding them up.
Have you ever needed a way to put out a quick survey? Look no further. Google Forms is a great free app to send surveys to your audience or customers.
We'll just get to scratch the surface of what Google has to offer besides search but you'll leave the session with several ideas of how to put these free tools to work for you.
You will learn:
Prerequisites: None
Presenter: Toni M. Feltman
Level: Beginner
When: Friday, October 27, 2:00 - 3:15, Flagstaff (R1)
Saturday, October 28, 3:30 - 4:45, Flagstaff (R2)
Up until recently I just didn't "get" how all pieces fit together when it came to Web Development. I knew and understood the basic fundamentals like HTML, CSS, Javascript, ASP.NET, and so on. What I never could fully grasp was how the pieces should be assembled. I read articles, watched videos, and even deployed a web site built upon a simple web framework that someone else wrote. I still couldn't make sense of it after following the step-by-step directions. It was not until I began to match up web techniques and components with things I had done in Visual FoxPro that I really started to understand.
This session will take you on a journey building parallel systems (a simple one) using both FoxPro and web technologies so that you can better understand how to build web applications using common architecture.
You will learn:
Prerequisites: Basic understanding of web technologies such as HTML and CSS, and of various different type of objects in Visual FoxPro and how they can be used
Presenter: Rick Strahl
Level: Intermediate
When: Friday, October 27, 3:30 - 4:45, Flagstaff (R1)
Saturday, October 28, 5:15 - 6:30, Flagstaff (R2)
Web Sockets have been around for a quite a while, but usage of the technology in everyday applications has been surprisingly light. Web Sockets provide two-way communication over HTTP between a client and a server. Unlike standard HTTP requests, Web Sockets can push data to clients as data arrives and any active clients are immediately notified when an event arrives. It also allows for notifying many clients simultaneously via its hub and spoke model of event notifications. There are many use cases for this technology where real time communication is important and unlike Sockets of old, Web Sockets work over HTTP and are easily accessible over open HTTP connections. In this session we'll look at how Web Sockets work and a few concrete examples of how you can use this powerful technology to interface Visual FoxPro to external services.
You will learn:
Prerequisites: Familiarity with Web Development and .NET
Post-Conference