Archive

Archive for the ‘Visual FoxPro’ Category

Apr
09

The FoxPro Lifetime Achievement Award honors those individuals who have contributed a great deal to the FoxPro community over the years. See the Visual FoxPro Wiki topic for previous award recipients. These recipients wish to continue the award and have created a committee to select a recipient for 2012. The committee consists of all 11 living previous recipients, Alan Griver (yag) of EC:Wise (formerly of Microsoft), and one person from the FoxPro community.

If you wish to be considered for inclusion on the committee, please email Doug Hennig (dhennig@stonefield.com) by April 30, 2012. The existing committee will select the community member and announce their selection in early May. The committee will then issue a call for nominations for the 2012 recipient and will make their selection from the nominees.

Mar
06

Save the dates for Southwest Fox and Southwest Xbase++ 2012! The conferences take place October 18-21, 2012.

This year we have two conferences as one great event at the same location. Southwest Fox has always served Visual FoxPro developers an opportunity to learn and extend their skills, and network with fellow developers. Alaska Software is working on PolarFox, a product that keeps the Visual FoxPro language alive in their next generation tool. You get two conferences for the price of one!

The conferences take place at the San Tan Elegante Conference and Reception Center, the same great location as last year.

If you’re interested in presenting at Southwest Fox 2012, please visit http://www.swfox.net/callforspeakers.aspx, read the complete Call for Speakers document (linked from that page), and download the proposal submission application. Session proposals are due by March 23.

Finally, if there are any topics you hope will be covered this year, please send them to info@swfox.net, right away.

Apr
17

Today I reviewed a new beta release of the VFP 9 SP2 Help file being prepared by Francis Faure on VFPX. I needed to compare it to the Help file for VFP 8 and when I tried to access the VFP 8 Help menu pad I got the following error:

OLE error code 0x8002801d: Library not registered.

To be clear, I got this error trying to get the Help menu to drop down inside of Visual FoxPro, not selecting the Help option on the menu, or by pressing the F1 key (which failed to bring up the Help file). Puzzled I ignored it and opened the CHM file directly in Windows Explorer. It opened fine and I was able to provide the feedback to Francis. I rarely use VFP 8 these days. Actually I mostly use it to compare behavior to VFP 9, which was exactly the case this afternoon, or to help other developers when I am mentoring or answer questions on the various forums.

I took a shot in the dark and tried using REGSVR32 to register the FoxPro Help EXE found in the Common Files folder. I found out immediately this was the incorrect approach as REGSVR32 barked at me that it failed. Fortunately the Visual FoxPro Wiki came to the rescue as it does so frequently for me. The correct way to register the FoxPro Help executable is to run the EXE with the /RegServer parameter.

FoxHHelp8.EXE /regserver

You can do this via the Windows Command Window, but if you are running Vista, Windows 7, or an earlier OS without Administrator rights, make sure to run the Command Window with administrator access.

[I documented this for my future self in case I need it for another machine - RAS]

,

Mar
26

One of the things I did at the Microsoft MVP Summit earlier in March was take part in an discussion about the FoxPro Community along with Alan Griver, Tamar Granor, Doug Hennig, and the co-hosts of the Community Megaphone podcast Andrew Duthie and Dane Morgridge.

This discussion boiled out of several discussions where Andrew and Dane kept running into former FoxPro people in the .NET community. They wanted to hear more about Fox Community and later found out that the root of the Microsoft MVP program was founded in the Fox Community as well. Our discussion covers a number of topics about developer communities and is what we find common and unique among them, as well as characteristics you find in people who are actively participating in a developer community. It was a fun hour.

The interview/discussion was recorded in the Microsoft Commons in a cafeteria. In the background was lots of MVPs eating and socializing so I am really impressed with the quality of the audio. I enjoyed participating. The only wish I have is that some of the other former Fox MVPs who have turned to the “dark-side” (Rod Paddock, Rick Strahl, Jim Duffy, Julie Lerman, Kevin McNeish, Markus Egger, Cathi Gero, and Craig Berntson to name a few) and other Fox people who are now .NET MVPs (Alan Stevens, Bonnie Berent, and David Giard) were not there. Although with that many people it would have been out-of-control. The list of people here is only part of the crowd though that have helped the .NET Community actually become more of community in the sense the Fox Community has known for more than two decades.

You can listen to the podcast here:

http://www.communitymegaphonepodcast.com/Show/26/FoxPro-Reunion

Thanks to Dane and Andrew for taking the time to talk with us.

Feb
01

Today I tracked down a strange error “File does not exist.” triggered when the users were testing the built in Stonefield Database Toolkit (SDT) Reindexing capability inside their application. We just updated this application from SDT 5.x to SDT 6.2 so we did risk breaking some of the functionality. At White Light Computing we have an external utility (EXE) that runs the Reindexing, Updates, and Repairs. This utility works fine with the current set of metadata, which made me think it was an environment issue inside the application. Sure enough the code failing is in the DBCXMgr class in the FindProperty method.

lcLongName = padr(upper(alltrim(tcProperty)), ;
             fsize('cLongName', .cPropCursorName))

The FSIZE() function is one of the functions affected by SET COMPATIBLE ON (it defaults OFF). When the setting is ON the function is returning the actual file size. When the setting is OFF, the function is returning the size of the field. This is one of those design decisions you got to wonder about. I know Microsoft made it to make the code work for dBase developers, but I think it is crazy-nuts to reuse functions in this manner. It leads to time tracking down problems like this one.

The application we are supporting has a SET COMPATIBLE ON in the start up code for reasons unknown to me. This is a global setting and it would take a considerable amount of time to track down all the possible code I would break by turning it OFF making it high risk. One workaround I could have implemented around this problem is inserting the SET COMPATIBLE OFF before the call to the SDT code and resetting it ON after the call (low risk, but only fixes this application). I decided to modify the FindProperty method to set and reset because it could be called by other application that use the DBCX Manager code. I also sent the findings to Stonefield support for their consideration.

[EDIT * 2-Feb-2011]  I have since realized that the changes are necessary throughout the DBCX Manager code. After further consideration, both Doug and I have come to the same conclusion, there are to many places to fix the code in the DBCXMgr, and no good reason why SET COMPATIBLE should be set ON. So I have changed the application to toggle the setting before calling the SDT Reindexing, Update, and Repair functions.

Glad to have that one off the bug list for our customer.

Jan
06

Mark your calendars! Southwest Fox 2011 will take place on October 26-29, 2011 with a post-conference event on the afternoon of October 29 and morning of October 30. Note a few changes this year:

  • The shift not only from the second week in October to the last week (to avoid running into Jewish holy days).
  • The shift from our usual Thursday to Sunday dates to Wednesday to Saturday this year (so you can get home in time for Halloween).
  • The post-conference starts Saturday afternoon rather than the next day.

    By the way, the post-conference event is guaranteed to blow your socks off, so you’ll definitely want to consider staying the extra day. Stay tuned for more details.

    Nov
    17

    The conference was terrific. I learned a lot and it was great renewing some friendships and making a couple of new ones. The Germans are terrific guests and Rainer and Tina (who does most of the real work according to Rainer) do a terrific job putting on the event. Despite the jet lag, I look forward to the trip every year. This year was more fun because Cathy came to speak for the first time and it was nice having a friend along for the long flight to and from Germany. I have already been invited back for next year too, which is terrific.

    The speaker dinner was themed oriental with some of my favorites including sushi and Thai food. More importantly the discussion was fun and often so funny I had tears in my eyes. It started at 8:00pm and ended around 3:00am for me, just a few short hours before we had to get in the taxi for the ride to the airport for the morning flights. Lots of discussion on how we can improve both German DevCon and Southwest Fox. We have a lot of synergy between the conferences and the organizers help each other out when ever possible. I think you will find many of the discussed topics making their way into the conferences next year as some of the ideas were downright cool and genius.

    Nov
    17

    The last day of the conference is always the hardest since your brain is suffering from “VFP overflow” from all the knowledge you gained from the sessions. Combine that with the jetlag and you have a recipe for sleepiness. Fortunately there are only 5 sessions and the closing session on the last day.

    Up first is Doug Hennig and his “Cool Controls for Your Applications” session. Doug’s theme this year was deep diving into various controls in both of his conference sessions. Doug is making the important point that your apps do not have to be mundane and boring. There are no more excuses. Doug covered his impressive SF Splitter control (for vertical and horizontal splitting, which I am planning to use soon for one project), the SFComboTree (found in the PEMEditor), the VFPX PopMenu project, Paul Mrozowski’s RCSCalendar control, and finally the VFPX Balloon tips by Carlos Allotti. Great session for anyone looking to spruce up your app.

    I skipped the next session because my head was hurting a little bit and because it felt like I had gone non-stop for a few days.

    Alaska Software was kind enough to show us where they are going with their “Polar Fox” project. They showed this off at Southwest Fox, but I did not have time to review it in Pheonix. Steffen Pirsig detailed the plans for the next major version of XBase++ and how it will transpile the current FoxPro source code into their format to run. Details include:

    • Transpiler: will take existing Visual FoxPro code and transport it to XBase++ code.
    • Source code control will be simplified with text based source code.
    • Source compiles down to native platform executables.
    • Decompilers will be a thing of the past.
    • Designers will be written in XBase++, IDE can be automated (continuing the tradition of extensibility).
    • Command prompt, roll your own commands (interactive just like Visual FoxPro).
    • Concepts they are pushing: no limits, innovate without disruption, favor design, continue the language.

    Code already is compiling and building EXEs, the initial designers are working, they are making the reporting engine 100% compatible, and have the Profiler and Debugger working.

    The idea that gives me the most confidence that Alaska Software can pull this off is that they have done it before with Clipper and the Clipper Community. They also seem to have a terrific grasp on what Visual FoxPro does and how developers use Visual FoxPro, and the types of applications they write. I really appreciate the time Steffan put in on the presentation and how Alaska Software is working on a path for Visual FoxPro developers in the future.

    After lunch was my “Mocking Your Customer” session. This session is the one I was most nervous about because it really counts on audience participation. Having other contribute to any session benefits everyone, and the participation I have had in rehearsals and at other conferences was terrific. So in an effort to coax people into asking questions I offered to draw names for one of two licenses of Balsamiq Mockups. It worked a little as two people asked questions. Each won a copy of Mockups. The business side of the session went faster than normal since there were no questions or observations to share. I enjoyed the session and got several nice compliments from attendees as they were leaving.

    The last session of the conference for me was Servoy’s vendor session “Servoy for the Visual FoxPro Developers.” Several Fox developers have made some very public statements on how they are learning Servoy and how they like it. Ken Levy did not show up on time so I went out in the lobby to track him down and remind him he had a session to give in 5 minutes. I am not throwing stones here based on my tardiness to my first session. I normally don’t get to see vendor sessions so I decided to take the opportunity to check out Servoy. After all, they have sponsored SWFox for 4 years and I don’t really have in-depth knowledge of the specifics, and have not seen a demo of the product. It does look impressive, especially how you can literally change the source code while the code is running. Once you save the change it is immediately reflected in the running form. They offer a good deal to start with the development IDE for free. Unfortunately as cool as it looks, the one thing I did not get answered specifically is the licensing costs, which I have been told is per seat licensing. They slipped through the pricing slide extremely quick and ask that you contact them for specifics on the pricing.

    The conference finished up with the closing session where lots of door prizes are given away.