Tuesday, December 6, 2011

December meeting: Tamar Granor on event binding

Our next meeting will be next Tuesday, December 13 at 7 PM in Room 158, DeVry University, 1140 Virginia Drive, Fort Washington, PA. As usual, feel free to bring some dinner and arrive as early as 6:30 PM.

I’ll be speaking this month, presenting my Southwest Fox session “Bind Events for Better Applications.” Here’s the abstract:

At first glance, the BindEvent() function may seem unnecessary. After all, why bind to an event when you can just write code in the event's method?

In this session, we'll look at why BindEvent() 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. We'll also talk about the difficulties involved in debugging code that uses event binding.

Thursday, November 3, 2011

November meeting: Conference review and tools we love

Our next meeting is Tuesday, November 8 at 7 PM. As usual, feel free to bring some dinner and arrive at 6:30. This month, we'll review Southwest Fox and the DevConnections conference being held this week in Las Vegas. Then, we'll continue our ongoing conversation about tools we use. Plan to share information about one tool you love. Mark December 13 on your calendar. I'll present "Bind events for better applications," discussion BindEvent, Access and Assign.

Tuesday, October 4, 2011

Tuesday, October 11--Menachem Bazian on Stored Procedures

Our Southwest Fox previews continue on Tuesday, October 11 as Menachem Bazian presents "Boosting Your Client Server Application Using Stored Procedures." Because this session will be 3-hour precon at Southwest Fox, we will begin very close to 6:30 PM.

We will provide dinner again this month (we'll eat while Menachem speaks), so if you plan to come and eat, email tamar@tamargranor.com to ensure we have enough food.

Bio: Menachem Bazian, CPA, CITP is President and founder of BC Consulting Services, Inc, a Business Management and Technology Consulting Firm based in Northern NJ. Menachem has been a database developer for over 20 years, having starting out with Dbase II and moved on to Dbase III, Clipper, Foxbase and all the versions of Visual FoxPro to date. He returned to the Fox speaking circuit several years ago and has presented at Southwest Fox for several years. He has published numerous articles and books over the years.

Abstract: Stored procedures can be essential to an efficient client server application. Stored procedures provide a great many potential benefits including more efficient processing of certain operations, front-end-independent operation (which can be especially useful if your database is being accessed by both a desktop and a web based application) and more.

But stored procedures come at a cost too. Stored procedures are back end specific and they also require a little different way of thinking about your code and application.

This session will introduce you to stored procedures using two of the most popular SQL back ends: MySQL and SQL Server.

Thursday, September 8, 2011

September: Steve Ellenoff on upsizing without pain

We continue our Southwest Fox previews continue this month with a visit from Steve Ellenoff on Tuesday, September 13. The meeting will begin at 7PM. We'll be providing dinner this month, so come as early as 6:30 to join us. Please email tamar@tamargranor.com if you plan to share our dinner, so we'll make sure to have enough. Don't forget to mark your calendar for our October 11 meeting featuring the return of Menachem Bazian with another Southwest Fox Preview.

Steve will speak on "Working with Remote Data the 'VFP Way': Upsizing to SQL Server Without Redesigning Your Application."

Ask any developer who has migrated a FoxPro application to SQL Server and almost every one of them will tell you that you need to rethink the way your application works: No more Browse windows, no more record navigation buttons, no more XBASE style mentality. In other words, not only do you need to re-code your application for the actual data handling, you also need to re-design the way it works! That's funny?! I don't remember my customers asking me to redesign screens and functionality just because they wanted to take advantage of the many benefits of using a robust remote database such as SQL Server!

So are we stuck to take this advice without negative consequences? The answer is a resounding NO! While it's true that "redesigning" our XBASE styled FoxPro applications while upsizing to SQL Server is a recommended best practice, there are several ways we can minimize the need to change the way our Fox applications look and behave. Furthermore, we can do so with minimal negative side effects. This session will cover a variety of strategies and tips which will allow you to upsize your applications to any remote data back-end, such as MS SQL Server, MySQL, and many others, with minimal impact on the look and feel of your applications. We'll also cover a number of "how to do that" tips for upsizing the application when migrating from FoxPro local data that I have not seen discussed elsewhere.

Steve Ellenoff is the president of SJE Consulting / Custom Technology Solutions (http://www.sjects.com) founded in 1999. With over 20 years of programming experience, he and his company continue to use Visual FoxPro and other technologies to deliver cost effective, feature rich, database intensive desktop and web solutions for companies small and large. Steve has been working with FoxPro since version 2.6 for Windows, although he considers his many years using Dbase and Clipper to be his unofficial start with FoxPro.

Steve has presented topics on FoxPro at several conferences and user groups, and had numerous tips published by FoxPro Advisor magazine. Steve is the author of the Win7TLib VFPX project (vfpx.codeplex.com), which allows VFP developers to tap into the new functionality of the Windows 7 Taskbar.

Steve also has a background in C and C++ development and headed the popular open source pinball project PinMAME (www.pinmame.com) for many years. Additionally he made many contributions to the even more popular open source video game project, MAME (http://mamedev.org). Both projects rely heavily on virtualization and emulation which have long been one of Steve's favorite areas of technology.

In 2008 Steve became one of the founding members of Big Guys Pinball, LLC (http://www.bigguyspinball.com). The company has used his software emulation and reverse engineering skill set to create a product that allows pinball owners to replace their "proprietary / no longer available" pinball hardware systems with common, off the shelf PC components.

Steve fulfilled a childhood dream in 2009 when he was hired to do contract work to help develop the video game: Williams Pinball Hall of Fame for XBOX360 and Sony Playstation 3 (http://xbox360.ign.com/objects/143/14307127.html). As a kid growing up in the 80's video game craze, Steve taught himself how to program computers at a young age for the sole purpose of creating a video game some day. Along the way, the dream got put on hold as the more practical business side of software development took center stage. When video gaming console developer Farsight Studios contacted Steve in 2008, the long forgotten dream suddenly became a reality. The game was released in September 2009 and was met with rave reviews from critics and players alike.

Steve’s latest hobby involves fulfilling another childhood dream, learning to play the drums. Although already a decent guitar player, bass player, and singer from his teen years, Steve always dreamed of making tons of noise on the drums. Prompted by the fun he had playing the “toy” drums for the Xbox360 game Guitar Hero: World Tour, Steve decided to purchase a real set of drums in July 2009, a vintage red Tama “Rock Star” kit. Armed with some great instructional drumming videos, Steve’s been banging away ever since and loving every minute of it!

Tuesday, August 9, 2011

Southwest Fox previews for September and October

We're excited to announce that both our September and October meetings will feature Southwest Fox 2011 previews. On September 13, our speaker will be Steve Ellenoff, while on October 11, Menachem Bazian will speak. We're still working with them to decide which of their sessions will be presented.

Tuesday, August 2, 2011

August meeting--Tools and more tools

Our next meeting will be Tuesday night, August 9, at 7:00 PM. Our topic this month is "Tools and more tools" and we're all the speakers. Please come prepared to discuss or demonstrate a tool you use that makes software development easier. It can be a VFP tool or a more general computing tool. It can be a one-trick pony or a great big game-changer. (While we won't force anyone to speak, the meeting will be more valuable, the more people share.)

Tuesday, July 5, 2011

July 12 -- New location, Tamar Granor on hard SQL queries

This month, the Philadelphia VFP User Group moves to our new meeting location in Room 158 of DeVry University, 1140 Virginia Drive, Fort Washington, PA. The folks at DeVry are letting us use the room for free; the only cost is that, at this first meeting, we'll hear briefly from a DeVry representative.

The meeting on Tuesday, July 12, begins at 7 PM. Feel free to come as early as 6:30 and bring some dinner.

This month, we'll continue with Southwest Fox previews. I'll be rehearsing my session "Joins and Subqueries: Using SQL Commands for the Hard Stuff."

Abstract: Writing simple SQL queries isn't hard to learn. But as soon as you need
something a little more complex, you get tangled up in inner joins vs. outer joins and where to use a subquery and so forth.

This session will bridge the gap between simple and complex queries with a deep dive into the JOIN clause and the use of subqueries. We'll also talk about how to
optimize queries and the tools VFP provides to help you.

While this session will focus on VFP's SQL commands, much of the information will be applicable to other SQL dialects.

Mark August 9 and September 13 for our next two meetings.

Tuesday, June 7, 2011

June 14, 2011--Jim Nelson on Thor--6:30 PM

This month's meeting will begin at 6:30 PM; feel free to come as early as 6 PM and bring dinner.

We will be joining with the Chicago FoxPro Users and Developers Group for a remote presentation by Jim Nelson titled "To boldly go where no VFP'er has gone before -- the Tools of Thor." This will be the first of this year's Southwest Fox preview sessions.

Jim Nelson is a relative newcomer to the FoxPro world. He spent the first thirty years of his professional life programming in APL, a long-since extinct programming language. For the last twenty of those years, he worked for a company that sold Workers' Compensation Self-Insurance. During those years, he had a reputation throughout the APL community as a tool builder for utilities not available within the APL language.

His VFP career began in 2003, working for the Kong Company in Golden, Colorado. He now works full-time for them, acting as their software development department.

His involvement in VFPx projects (such as Thor, PEM Editor, and FoxCharts) mirrors his earlier interest in developing programmers' tools. He has been a presenter at SWFox once before, in 2009.

Jim lives in Newbury Park, California, with his wife of 38 years.

Abstract: There are a number of valuable tools that are available in other development environments, but are sadly lacking in FoxPro's own IDE. For some time, there has been a considerable effort afoot to expand the list of IDE tools by reproducing (where possible) the tools from other IDEs (such as Visual Studio), by building on and enhancing existing tools, and by creating brand new tools appropriate to FoxPro.

The most visible of these new tools is named Thor. Thor is a tool for managing add-on tools in the IDE. It provides a unified method for registering other tools, simplifying the task of disseminating them, and a user interface to control the assignment of hot keys and developer-defined menus. The UI provides four different methods for accessing these tools:

* By assigning hot keys to them
* By creating pop-up menus accessible via hot keys
* By adding them as bars under any of the VFP system pads (File, Edit, View, etc.)
* By creating new pads in the VFP system menu and adding them as bars under these new pads

Unlike the normal limited set of hot keys available from ON KEY LABEL, Thor provides for the full range of multiple-keystroke combinations (Ctrl + Alt + A, for instance).

This session will start by showing how to install and start using Thor, how to use its UI to assign hot keys and create menus and submenus, and how to use Thor to simplify access to your own private tools. We'll also delve into some of the more interesting details on how Thor works.

Using Thor as the backbone for the remainder of the session, we will explore published tools that can be made accessible in Thor, with particular emphasis on the tools mentioned in the first paragraph. The result of the work mentioned here is a suite of tools that provides a large number of features never before available in VFP. You will find that these tools will rapidly become indispensable in your day-to-day programming life.

There is a lengthy list of tools that will be covered, including the following:

* GoToDefinition: When editing code, you can go to the definition of a method, property or object, PRG file, procedure or function in a PRG file, constant (created by #Define), class or form with a single keystroke.

* GoToDefinition #2: When editing code, you can create new properties or methods with a single keystroke (and begin editing the method immediately, if desired).

* ExtractToMethod: When editing code, you can highlight a block of text and extract it to a new method (yes, with a single ...).

* BeautifyX: Apply native VFP Beautify and more: provide standard within-line spacing, choose standard operators for string delimiters and others, auto align assignments on consecutive lines, create LOCAL statements, and impose standard formatting on SQL-Select, Update and Replace statements, with a wide range of customization available.

* Compare objects with other objects or their parent class, change their parent class, or edit their parent class.

* Use the Format form, which provides enhanced options to the Format pad in the VFP system menu.

* And many, many more...

Thursday, May 5, 2011

May 10 meeting--Another double-header

Our next meeting will be on Tuesday, May 10 at 7:00 PM. As usual, feel free to come any time after 6:30 and bring something to eat.

We again have a double-header scheduled for this month. Jim Walsh will present “An example of developing a COM server in VFP," which was carried over from our last meeting. Raymond Knight will present "Grid Column Header Sorting Made Easy."

Jim Walsh has a PhD in Physiology and Biophysics, and an MS in Physics. He is an independent consultant specializing in biomedical, scientific and engineering applications, primarily in VFP and C++.

Jim's talk is entitled “An example of developing a COM server in VFP”. COM servers represent a good strategy for providing functionality that is needed by several programs written in different languages. Jim will describe the development of a COM server that provides access to the data in a Firebird database for VFP and C++ clients. Visual FoxPro makes developing COM servers relatively easy. It hides many of the underlying details. But, can the things hidden by the Fox come back to bite you?


Raymond has 30 years development experience since 1981 with heavy user contact and 4 years of call center (1991-1995) experience at the Naval Air Warfare Center (NAWC) in Warminster. Heavy C#/Visual Studio 2005 and ADO.NET along with heavy VISUAL FOXPRO design and programming through version 9. Very strong relational database background including heavy hands on SQL Server 2000/2005. For example, designed SQL tables for conversion of CCALC system from DBF’s to SQL tables. Previously converted a Salesman Commission System (CCALC) from VISUAL FOXPRO 8 to C#/ADO.NET and SQL Server 2000/2005. Previously worked in VISUAL BASIC 6.0. Presently doing work in VISUAL FOXPRO including DBF to SQL conversions.

The description of his session is:

Through the use of this grid column sorting class one can avoid the drawn out process of enabling each column in each grid for ascending and descending sorts. One need only throw this class onto a form and it will automatically find all the grids on a form and it will automatically enable column sorting for each column in each grid. You can also disable any columns within a grid that you don't want to be sorted as well as disabling whole grids through the properties settings. As an added feature, if a column is defined as character the actual sorting method within the grid sorting class will try determine the actual type (date, numeric, etc.) if the type is not really a character type. As a final feature, if the proper property is set the up and down arrow keys will go from top to bottom and bottom to top which a normal foxpro grid does not do when it comes to up and down arrow keys.

Thursday, April 7, 2011

April 12, 2011--Double-header

Our next meeting will be on Tuesday, April 12 at 7:00 PM. As usual, feel free to come any time after 6:30 and bring something to eat.

We have a double-header this month. Garth Groft will a look at his adventures in moving an application to the Web. Jim Walsh will present “An example of developing a COM server in VFP”.

Here are the bios and abstracts:

Garth Groft is currently the lead developer and owner of MicroComputer Task Group (MCTG) located in York Pa. With 22 years of custom Fox and Visual Fox programming experience, he has been a consultant, a contract programmer, and leader of a nine man development team. Clients include Fortune 500 companies. The company has an International applications user base numbering well over a1000 users in most every county worldwide. In addition to IT consulting and applications development, MCTG has a strong knowledge base of HVAC (Heating, Ventilating, and Air-Conditioning), heat transfer, numerical analysis, statistical analysis and CAD (Computer Aided Design). The company is currently focused on developing cost-effective strategies and solutions for porting VFP applications to the web. This strategy addresses growing interest by clients in "cloud" applications accessible via mobile devices while maintaining VFP as an integral part of the solution. Protecting my clients’ investments in VFP applications is also key to this strategy. The RAD advantages of VFP are ported to the web.

Garth's presentation centers on an invoice payment application developed in two distinct VFP-based web servers, VFP2IIS and FoxInCloud. FoxInCloud utilizes West Wind Web Connect, Active Widgets and FoxInCloud's own unique Application Adapter Assistant.

Jim Walsh has a PhD in Physiology and Biophysics, and an MS in Physics. He is an independent consultant specializing in biomedical, scientific and engineering applications, primarily in VFP and C++.

Jim's talk is entitled “An example of developing a COM server in VFP”. COM servers represent a good strategy for providing functionality that is needed by several programs written in different languages. Jim will describe the development of a COM server that provides access to the data in a Firebird database for VFP and C++ clients. Visual FoxPro makes developing COM servers relatively easy. It hides many of the underlying details. But, can the things hidden by the Fox come back to bite you?

Wednesday, March 2, 2011

Open Mike Night--March 8

Our next meeting will be Tuesday, March 8. This month, we're having an open mike night, so please think of something to share with the group. It doesn't have to be much--a productivity tip, a book you think everyone should read, something cool you've done, or a question you need answered. (If you can't think of anything, please come anyway.)

As always, we're looking for speakers for future meetings. If you have something to share, please let Bob Pierce (rpierce@smooth-on.com) know. It can take the whole meeting or be a shorter presentation that can share the meeting with one or two others.

Tuesday, February 1, 2011

February 8 meeting--Bob Pierce on sidebars and Tamar Granor on presentations

Our next meeting (weather permitting) will be next Tuesday, February 8. We'll try again with our planned January topics. Bob Pierce will present "Sidebars, add customizable convenience for your users."

A customizable sidebar is a great way to give your users quick access to information and functionality to increase productivity. I will show some of the benefits of a sidebar as well as the technique I used to create a production sidebar using VFP. I will then discuss some of the things I learned and would do different if I were to build a sidebar from scratch today.

Then, Tamar Granor will give a presentation on preparing and giving presentations.

In case of bad weather, we will post a cancellation notice on this blog by noon on the day of our meeting.

Monday, January 10, 2011

January 11th meeting cancelled

Due to the prediction of snow and a National Weather Service Winter Storm Watch, the January 11th meeting is cancelled. Our next meeting will take place on February 8.

Snow in the forecast--check here before coming to the meeting

Some forecasts for Tuesday include measurable snow in the afternoon and evening. We'll make a decision by noon on Tuesday whether or not to hold the meeting and post that information here. Please check this site before heading for the meeting.