====================================== FoxPro Developers Network of San Diego ====================================== FoxDev TipsLetter #03-07 July, 2003 Website: Editor: ---------------------------------------------------------------------- CONTENTS: * Calendar * From the Editor * Tech Tips: Execute the Default App Dominic Burford * Other Stuff: Great Lakes Workshop Reminder Whil Hentzen Price Cuts on MS Office? Woody's Office Watch On Creativity Jeff Mauzy MS Tech Support Moves Offshore Woody's Office Watch Quotes from ProFox Computing is Not New Ellen Ullman Help Wanted * Knowledge Base Updates New/Updated KB articles on VFP * Links: Where Can I Find...? * Administrivia ====================================================================== CALENDAR: Thu - July 10 - Kevin McNeish ----------------------------- Short Presentation - OPEN Main Presentation - Kevin McNeish "Building windows Applications: .NET or Visual FoxPro?" Thu - August 14 - Craig Bernston -------------------------------- Short Presentation - OPEN Main Presentation - Craig Bernston Topic: TBA Thu - September 11 - Mike Feltman --------------------------------- Short Presentation - OPEN Main Presentation - Mike Feltman Topic: TBA ----------------------------- All meetings start at 6:30 pm. Sizzler Meetings: Back room of Murphy Canyon Sizzler: 3755 Murphy Canyon Rd Take I-15 to the Aero Dr exit (South of Balboa) Head West to first traffic light West of freeway Turn Right Sizzler is on the right almost immediately Buy your dinner at Sizzler and we'll have our Q&A session while we eat. PLEASE TRY TO COME EARLY ENOUGH TO ORDER YOUR DINNER BEFORE 6:30! Escondido Meetings: Training room of Bergelectric 2222 Meyers Rd. - Take highway 78 to Nordahl (Just west of I-15) - Go south past Mission - Turn right on Meyers (first right past Mission) - The building is on the right just before Oper Street. ====================================================================== FROM THE EDITOR: I had the opportunity to convert some data from Access to FoxPro a few weeks ago. A large Real Estate office had a listing/contact system that was slow. They upgraded their machines to P4s with 1.5 GHz processors, lots of memory, and Windows XP Pro, and it was still slow. So they found a different software system that seemed faster. However, the new system's Import facility did not deal with the data from their old system, so they called me. The old system's data turned out to be in .MDBs. So it was either Access or VB. The new system's data (Drum roll, TaDa!!) is in .DBFs. With .CDXs, also. I think it's written in Delphi - there are several DLLs - but the data is FoxPro. I can do this!! Fortunately, only the Contact info had to be converted. The Import function was hopeless (like most of them), so I simply used Access to Export to a comma-delimited file, then built the .DBF with FoxPro. Had the usual problems with quote marks and commas within the Memos, but so what? New data worked like a champ, and lightning fast. Of course it's fast, it's FoxPro. But why was the Access/VB version so slow, on a fast machine? The answer, IMO, lies in stupid design. I looked at the old system's data structure. Here's what I found: 85 tables, in 27 separate MDB's, spread over 15 subdirectories. This thing must have spent all its time opening files! Since MDBs are slow anyway, having 27 of them is idiocy. The new system has 30 DBFs, in one subdirectory. I'll bet if you split that into 85 DBFs and spread it into 15 subdirectories it would slow down a bit also. I think the conclusion I would draw from this is that, yes, Access is slower than FoxPro, but the folks who develop in Access/VB are slower yet. Basically, they're not likely to be data oriented. They "get the job done", in whatever manner, but don't have the tools or background to design it for decent performance. ---------------- The great EULA flap has died down, and apparently Microsoft is going to leave everything the way it is, which is to say that if you want to run VFP under UNIX you pays your money and you takes your chances. The VFP 8 (only) upgrade requirement to stop using earlier versions still stands, however. I will not be upgrading, for that reason. Dan Covill ====================================================================== TECH TIPS ====================================================================== Running the Default Application by Dominic Burford [Sometimes our apps have a table of document names, and we'd like to automatically open those documents for the user. But what to we execute? Do they have Word 97, Word 2000, or something just installed last week? And where is it? Far better than browsing the registry , this solution from Dominic Burford via Profox simply "executes" the file itself, letting Windows figure out what the default application is and where it's located.] *----------------------------- Declare Integer ShellExecute In Shell32.dll ; Integer nWinHandle, String cOperation, String cFileName, String cParameters,String cDirectory, Integer nShowWindow Declare Integer FindWindow In Win32Api String cNull, String cWinName Local lnCurrentWindow lnCurrentWindow = FindWindow(0, _Screen.Caption) ? ShellExecute(lnCurrentWindow, "Open", , "", "", 1) *----------------------------- ShellExecute is what does the work. The bit with lnCurrentWindow is to make the document open in your current VFP application window. Dominic Burford ====================================================================== OTHER STUFF ====================================================================== GREAT LAKES WORKSHOP - EARLY REGISTRATION by Whil Hentzen First, the early registration deadline for GLGDW ends this Friday, July 11. Register by midnight, CST for only $475 - after that, the price jumps to $525. Second, note that GLGDW is in mid-October this year, not November like usual. So if you've been thinking you've still got a few months to get ready, think think again! There are only 97 days left! And remember you can register online this year! http://www.hentzenwerke.com/glgdw/glgdw2003_registration.htm More info on GLGDW: http://www.hentzenwerke.com/glgdw/zglgdw.htm See you in October! Whil Hentzen (mailto:whil@hentzenwerke.com) Hentzenwerke Publishing ---------------------------------------------------------------------- PRICE CUTS ON MS OFFICE? Woody's Watch [Woody's Office Watch of June 05 commented on Microsoft's "price reductions" for Office XP.] "Microsoft always drops the price of Office when a new version is about to hit the stands. If you have even the slightest twinge of a desire to plunk down hard cash for a copy of Office XP at this point, don't bother. You should wait until MS offers its "Technology Guarantee" - basically, an offer to throw in a free copy of Office 2003 when you buy Office XP - before you spend anything on Office." "John Lettice has a wonderful take on Microsoft's motives at " [from the Register article...] "And Microsoft should perhaps note that a customer who thinks you're a bunch of vampires, but is offered a one-off special discount in order to stop him defecting, probably still thinks you're a bunch of vampires afterwards. Because actually, you are..." ---------------------------------------------------------------------- ON CREATIVITY by Jeff Mauzy Jeff Mauzy is coauthor (with Richard Harriman) of the new book "Creativity, Inc: Building and inventive Organization," published by Harvard Business School Press. From an interview in Ubiquity, the ACM on-line magazine: "Creativity is not a talent and not a skill -- it's more a trait common to all of us. Everybody has the capability of great creativity; but much of that is bulldozed over by the educational and business systems until people lose touch with their own talent." "For instance, a fellow from California tested kids at the ages of three and four. He found that almost 95 percent of the kids scored near the top of a creativity test. By the time kids get to age 14, about 60 percent score at that level. By the time they are 24 years old, only two percent score in the top two percent. Most of that loss comes from acculturation, making tradeoffs, learning to conform, learning to borrow knowledge. It doesn't come from not being creative. People are born with that. Another colleague of mine, a psychologist at Harvard, described the idea of learning as "a creative encounter with the unknown." As such, it is essential to living." ---------------------------------------------------------------------- MS TECH SUPPORT MOVES OFFSHORE Woody's Office Watch [From Woody's Office Watch, 28 May 2003. ] Apparently it's true that all 353 remaining US-based Office tech support jobs, which were handled by a company called Software Spectrum, are headed to India. Rumor has it that Software Spectrum offered to match the Indian offer and Microsoft turned 'em down. MS Money, Works and the games are going to India in July. Outlook and Outlook Express are going around September. The others are headed out around then, too. By the time everyone's back in school, there won't be any front-line Office tech support left in the US. ---------------------------------------------------------------------- QUOTES FROM PROFOX A reply to requests for last-minute modifications: "This is a strictly a what-you-see-is-what-you-get-and-the-damn- thing-is-already-4-months-late-and-if-you-want-to-save-your- window-positions-I'll-be-happy-to-add-that-for-a-$nominal$-$fee$ type application." Nick Nayfack, discussing difficult customers: "It is better to deal with big guys with headaches than little guys with dreams." Steven Black, on development: "In the old days, development environments matured and achieved status with time and according to merit. In the billion dollar budget of Microsoft's marketing world, you start with god's gift to development, then that gets knocked down to appropriate status with time and according to merit." ---------------------------------------------------------------------- COMPUTING IS NOT NEW by Ellen Ullman Ellen Ullman, author of "The Bug: A Novel" in "In a deeper sense, engineering is not about finding the solution but about making tradeoffs to find the current best use of resources. You balance one scarce resource against another to arrive at something workable for now -- with the understanding that as the environment changes, the solution will have to change. There isn't a right answer. There's only the current, best solution." "So I think if you could somehow teach students to understand that Linux or Windows or Java or C++ are just current implementations of old ideas, and to understand that what's new has roots in long-standing ideas that have gone through permutations. Computing is not a brand-new profession. It's a generation or two old by now. It has a history. I really would have people understand the history of computing much better. I mean a detailed survey of the different operating environments as they came and went over time, what they were good at, and what they were not good at. These ideas are getting lost." ---------------------------------------------------------------------- HELP WANTED The appropriate candidate will possess the following qualifications: * 8 to 10 years experience with Windows 2000 * 16 to 18 years experience with .NET Server * 32 to 48 years experience with time travel * a Masters or Doctorate degree in computer science, with further post-graduate work on the study of polygamy within the Inca ruling caste * must possess working knowledge of SQL, Oracle, Linux, NetWare, Cisco routers, Solaris, Lotus Notes, Citrix, IBM DB2, FORTRAN, COBOL, Java, Visual Studio, C, C++, ASP, Perl, XML, thermodynamics, quantum theory, CPR, origami, computational epistemology, linguistic analysis, Etruscan warlords of 500 B.C., nanotechnology, God, and HP laser printers To apply for this Help Desk Level I position... ====================================================================== VFP KNOWLEDGE BASE UPDATES ====================================================================== (none received in June) How To Look Up These Articles: To get to a specific KB article: a. Go to support.microsoft.com. Search is at left of the page. b. Select "Visual FoxPro" on the drop-down. c. Enter the document number in the textbox below it. d. Click on the green arrow. To Subscribe: Subscribe at . You can specify any MS product to receive alerts on. ====================================================================== LINKS ====================================================================== This is a (semi) permanent list of places to look for technical help when you get blind-sided by the latest urgent requirement. We don't give specific URLs for MSDN articles because (a) they're too long and (b) they change too often! ------------------------------- MSDN ON LINE: There's a ton of stuff here, look at the Magazines tab, and read some of the regular columns. MSDN Library Look in Technical Articles | Visual Studio | Visual FoxPro MSDN Library: "Building Three-Tier Client/Server Applications with Visual FoxPro" ADO MSDN Library: ADO Jumpstart for Microsoft Visual FoxPro Developers John V. Petersen, April 1999 DNA (Distributed interNet Architecture): MSDN On-line: "Top Windows DNA Performance Mistakes and How to Prevent Them" FoxPro 2.6: http://members.aol.com/FoxProResources/fpfp.htm MTS: Microsoft Transaction Server MSDN Library: "Microsoft Transaction Server for Visual FoxPro Developers" ODBC: MSDN Library: "Using Visual FoxPro to Access Remote Data" ODBC drivers are part of MDAC - Microsoft Data Access Components - and are available for download at: "www.microsoft.com/data" VS Installer: MSDN Library: a. "Using Visual Studio Installer for VFP 6.0 Applications" b. "VFP 6.0 and VS Installer Tutorial" VFP Publications: www.advisor.com FoxPro Advisor www.pinpub.com FoxTalk magazine www.hentzenwerke.com Hentzen Publishing (Books, discussion, and downloads) VFP General: msdn.microsoft.com/vfoxpro Microsoft's official VFP home page www.foxcentral.net Joint effort by Microsoft, West-Wind, and the Universal Thread Lots of news and development info. MS Developer Applications Forum on Compuserve http://go.compuserve.com/msdevapps The History of FoxPro (submitted by Steve Settimi) www.foxprohistory.org The Universal Thread http://www.universalthread.com The "Wiki" www.wikis.com fox.wikis.com fox.wikis.com/wc.dll?Wiki~FoxForumWiki Here is the most complete set of FoxPro links you're likely to find: http://www.cetus-links.org/oo_visual_foxpro.html Private websites with useful free info and downloads: www.prolib.de/foxlinks.afp wOOdy Wondzinski www.gatwicksoftware.com Allen Pollard www.ukfug.org.uk British user group www.lafox.org LA user group www.pinter.com/ Les Pinter www.vfug.org/ Virtual Fox User Group www.leafe.com Ed Leafe, ProFox listserve www.jamesbooth.com www.foxforum.com www.foxfolk.com www.foxite.com (registration required) A group of Dutch developers - refreshingly geeky. (Don't be put off by the registration - they're not selling anything.) www.stevenblack.com www.craigberntson.com WEB Development: These products all work well with VFP. AFP www.afpweb.com and www.afpages.com DotFox www.elsoftware.com FoxWeb www.foxweb.com Web Connection www.west-wind.com X-WORKS www.x-works.com Windows General Win32 API (with VFP examples) XML - What's New in XML for Microsoft Windows 2000 See also OLE DB drivers for XML in MDAC 2.6 at "microsoft.com/data" [Contributions solicited. DC] --------------------------Administrivia------------------------------- This newsletter is a service to all FoxPro developers, provided without charge by the FoxPro Developers Network of San Diego (FPDN). Anyone may subscribe (or unsubscribe) at our web site . The link is on the home page. The Resources button on the website will take you to the back issues of the newsletter. The editor (Dan Covill) is solely responsible for the content. E-mail him with YOUR tips, comments, or complaints. Editor: Dan Covill 858-272-2448 dcovill@acm.org Board of Directors: Eric Lendvai - President 760-734-4929 eric@elsoftware.com Art Bergquist - Vice Pres 760-740-0428 abergquist@sbcglobal.net Thad V'Soske - Secretary 619-544-9900 tvsoske@yahoo.com Barbara Peisch - Treasurer 760-729-9607 barbara@peisch.com Lou Syracuse - Director lsyracuse@delmardb.com Claude Nikula - Director 619-615-6318 crndev@cox.net ----------------------------------------------------------------------