Archive

Archive for the ‘Uncategorized’ Category

May
20

In the last couple of weeks I visited the Chicago, Kansas City and Atlanta FoxPro User Groups. I had a great time and learned a number of things on these trips. One of the common questions I was asked on these trips is my thoughts about the future of VFP and what Microsoft might announce in June. As you may know, I am not a fan of speculation on what the Fox Team might do in the future (see my post VFP X, take a look at VFP 9 first) and would rather discuss what I would like to see added to the product. Debate like this is healthy and offers Microsoft ideas on what they should consider in the next version of VFP, speculation is unproductive.

In case you have not seen the post on Ken Levy’s Weblog (or Andrew’s, or Craig’s), Ken has announced he is releasing the Visual FoxPro Roadmap, which will disclose how Microsoft plans to enhance VFP past version 9. So instead of speculating, read this blog entry and wait for Ken’s full announcement on June 1st (also announced in this blog) when he releases the Visual FoxPro Roadmap and questions and answers on the VFP Frequently Asked Question (FAQ) page. The following quote from Ken’s post seems to reveal an overview of what we can expect to read in a few days:

“There are many things we can and will do for enhancing Visual FoxPro to interop more and more with the Microsoft .NET platform. In fact, our plans for enhancing Visual FoxPro for .NET interop is our primary goal for enhancing Visual FoxPro going forward. We will also enhancing functionality for Visual FoxPro reports, productivity, and other areas that have nothing to do with .NET (VFP stand-alone). We want to focus on having Visual FoxPro leverage as much as possible integrated into the .NET platform using COM interop.

He also blogged about a Visual FoxPro Service Pack 1 later this year. So keep using VFP 9 and reporting any issues you find so the Fox Team can squash the bugs in Service Pack 1!

May
19

Played hooky for a few hours today and went to see Star Wars III. I completely enjoyed it. While some reviewers said it lacked deep dialog, all I can say is that George Lucus tells the best story visually. I was surprised by the reason Anikin turned to the Dark Side as I thought it was going to be something to do with his mom. The spectacular special effects exceeded my expectations (watch for the pilots floating in space after their ship was destroyed in battle). Several moments where the crowd broke out in laughter, but the darkness of the movie and several intense scenes would make me think twice about bringing a young child to see it. Definitely think twice if your child is under 10.

The high schooler I was sitting next to at the 3:00pm showing was on his second viewing and was returning for his third view after the Pistons win tonight (bring on the Heat ). If there was ever a question that Lucas was going to set opening day records, this guy was ready to contribute to the possibility.

I probably will go see it again when the crowds disperse later in June.

May
14

Ken Levy informs VFP Developers:

“This week I received a copy of the book What’s New in Nine: Visual FoxPro’s Latest Hits. This is a really great book. Check out the table of contents and you’ll see the book is packed with great chapters on the various new features in Visual FoxPro 9.0. If you currently use or plan to use VFP 9.0, I strongly suggest you get a copy of this book which also includes an electronic eBook download.”

Always good to see a positive review of your work. Thanks for the kind words Ken.

May
13

I just returned from a trip to visit the Chicago and Midwest FoxPro User Group (in Kansas City). It was good seeing my friends and making new ones from the Midwest. Thanks to both groups for their gracious hospitality. These groups have enthusiastic members and I was impressed by the dedication from the folks who drove more than three hours to come hear my presentations. As I do in all my presentations, I learned a bunch of cool techniques and was inspired by the ideas shared.

Both groups went out to dinner and I was thinking during the meals how Robert Scoble keeps blogging about his “geek dinner” concept. This is yet another thing the Fox Community has been doing for a very long time with the user groups. I guess we were trend setting again. Often I learn as much sharing a meal with Fox developers as I do during the sessions I attend.

Fortunately my voice is still intact even after the twelve hour marathon in KC, so I will be able to share this new found knowledge with the Atlanta group next week when I make the next stop on my Deployment Fox 2005 World Tour.

Apr
30

I was talking with some tech friends recently about instant messengers (IM) and their value to me as a geek, businessman, parent, friend and family member. There was some surprise among the group that this technology is anything more than a communication tool for kids, or another instant interruption in the flow of the workday.

I find all of these apps extremely productive and useful in both business and my personal life. For instance, I have AOL IM (AIM) to keep tabs on my kids and to be more accessible when I am not with them. They use instant messenger to talk to their friends and do homework collaboration projects. One huge benefit of them having IM is the pure fact they stay off our family phone. I know when they get home from school because I see them pop up in AIM. I may actually talk to my parents on AOL IM more than I talk to them on the phone. My mom is actually shocked if she cannot contact me in IM, because that means I am away from my computer. I know…shocking.

I use MSN IM to communicate with some friends and family, but mostly to interact with my tech partners and customers. Yes, customers! I have customers who pay me to contact me via IM. Most of these clients are other developers who have hired White Light Computing for mentoring or testing. It is easy for a developer to pop me an instant message with a quick question, and usually get a quick answer so they can continue doing what they are working on. Same for me if I am testing a module for them, I can inquire about a feature or clarification of a requirement. It does not replace phone conversations, but I can say it is easier to send code examples via IM easier than a phone call. Some times a client will just ask if it is a good time to call. It is an additional way to provide good customer service.

When I was a partner at Geeks and Gurus, the Steves and I used IM extensively. Before we had an office we typically worked at home and our homes are in diverse geographic locations around the city of Detroit. It is a long distance phone call so instant messenger saved us from chewing through our cell minutes. Heck, we instant messaged each other while we were in the office and at no point were we ever 20 feet apart {g}. It was not unusual to find us all online at 11:00 at night discussing some business or technical issue we needed to solve, or just chat about how the Red Wings were doing that night. Very convenient, and very productive.

I have not experienced much of the unsolicited interference I have read about (like SPAM, but an IM, not an email). I have in the past with MSN Instant Messenger, but it has been more than a year since the last “attack”. I have very few individuals on my block lists. I believe it depends on your configuration. I have limited my “profile” on AOL IM, MSN IM, and Skype to only get calls from people on my contact list. I also set it up so people can only find me if they know who I am.

Skype is the newest of the IM technologies I am using. Skype is both a voice and instant messenger built into one. Actually, the latest MSN IM also has voice, but I have not used it. Skype is free (as are the other instant messengers) and offers crystal clear voice communications. I swear the clarity makes it sound like the person is sitting across the table from you. This could revolutionize the way I communicate with people I normally use instant messenger. After all, the biggest drawback of IM is my need to type. Typing is much slower than talking so conversations on IM take longer. On the other hand, typing out something allows you to think longer about what you are saying, so you can often eliminate embarrassing statements before you send them.

There are only two issues I have with three different IM technologies. The first is maintaining three sets of contacts, all which are separate from my email and phone contacts. I know there are tools to combine the different IMs together, but it has not been painful enough for me to pursue. The second is the network gods who lock down the ports used by these technologies. I have a customer who blocks MSN IM so I only have access to Skype and AOL IM via the client tools. I know there is Web access available, which I am going to investigate further. I am onsite three days a week and the lack of access is bad for business.

I hear from others how they find all these technologies disruptive. What people often forget is each of the tools have status settings to inform the people who can interrupt you that you are busy. If I do not want to be interrupted I set the status to busy or offline and get my work done. If I forget to set my status and someone contacts me, I apologize and see if we can schedule something for later. It really can be a controlled accessibility.

If you are interested in joining my “buddy list”, send me an email and we can correspond with the necessary contact details. It does surprise me to see people post them in blogs. I think this opens one up to the hacks and unsolicited interruptions people complain about, but that is just my opinion.

Apr
26

Last weekend was an absolute blast in Atlanta where the Utica Community School’s ThunderChickens (robotics team 217) competed in the FIRST Championships along with 9,000 students at the Georgia Dome. You may recall from an earlier blog posting that my oldest son Chris is a programmer on the team and White Light Computing is a team sponsor. The competition is the best-of-the-best with 466 teams from 19 countries, making it more of a true world championship than a national championship.

After a slow start, the ThunderChickens finished 8th out of 85 teams in the Archimedes division and joined the number one alliance (Adambots from Rochester Michigan, our ThunderChickens, and Menlo Atherton High School team from California). This strong alliance competed in the elimination round where they became the Archimedes Division Champions without losing a single game!

The four divisional alliances (each with three teams) competed against each other for the World Championship. The Archimedes alliance won the first game against the Newton alliance before barely losing the next two games in the semifinals. The alliance they lost to eventually became the World Champions. It was heartbreaking, but the team did a great job and the alliance worked together as if they have been doing it all year long. Still, they made it to the “final four” and we are extremely proud of the gracious professionalism the teams showed throughout the competition. Many people at the competition thought the ThunderChickens had the best robot on the field.

The Woodie Flowers Award, presented by Small Parts, Inc. to an outstanding engineer or teacher participating in the competition who best demonstrates excellence in teaching science, math and creative design was won by Paul Copioli, who is a mentor for the ThunderChickens. This is a huge honor for Paul, his family, and the team.

Dean Kamen, the founder of FIRST (For Inspiration and Recognition of
Science and Technology), provided another inspiring speech to the bright young competitors in between games played during the finals. He is not the most dynamic speaker, but his topic is this year was inventing and protecting intellectual property. It is his opinion people will make oodles of money with intellectual property in the next decade.

Dean invited Jon Dudas, the Under Secretary For Intellectual Property and Director of the United States Patent and Trademark Office (USPTO), to address the crowd about the value of intellectual property. He also discussed some of the complexities of gaining a patent and trademark and how they are granted. This was very interesting. He also noted he was soon embarking on a personal vacation with his family. He is visiting a hall of fame in Ohio. Most people might think about the Rock and Roll Hall of Fame in Cleveland or maybe the Football Hall of Fame in Canton, but his trip is going to the Inventors Hall of Fame in Akron. Very interesting.

The other guest speaker was Larry Page, one of the Google Boys. He talked about engineering and the continuous process of solving problems and making technology better and easier to use. His discussion took us through a brief overview of how he and Sergey Brin started with an idea to search Web pages on the Internet, had it rejected, decided not to quit, and built Google. I would hate to be one of the people who told Larry and Sergey they were not interested in their idea. It is simply a 50 billion dollar bad decision. Larry and Sergey have started Google.org, which is the philanthropic arm of Google. Not only are they making the Internet easier to use, driving the future of computing, and inspiring engineers to solve bigger problems, they are paying it forward by giving back some of their fortune to make the world a better place. They announced they would be contributing to the FIRST organization in the future. Larry is originally from Michigan, which is something I did not know before this weekend.

It was a very exciting weekend. One of those weekends that regenerates the brain cells and at the same time was fun. It also helps restored some faith in the future of our world and the generation we are raising. Therese and I met some brilliant kids who were more than happy to demonstrate and discuss the technology they used in their robots, animations, designs, and Web sites. Cooperative competition, exactly like we have seen in the Fox Community for nearly two decades. In the years ahead the talent pool of programmers and engineers will be stocked with some excellent men and women. I look forward to the day I can hire a few at White Light Computing.

Apr
18

Microsoft is encouraging developers to write productions applications with the new Beta 2 releases of Visual Studio 2005 and SQL Server 2005. From this press release:

“Together, the products provide a deeply integrated development and data management platform, enabling customers to utilize existing skills and familiar tools to harness data in powerful new ways that increase productivity and efficiency. Several early adopters such as ABS-CBN Interactive, ORF and Townsend Analytics Ltd. have deployed these products in their production environments to reap the benefits of close tool and database integration. Because of broad customer demand to work with these prerelease products today, Microsoft also announced the Microsoft Go-Live license program for customers interested in deploying Visual Studio 2005 and SQL Server 2005 Express Edition immediately.”

I for one would never deploy a production version of my custom applications with beta products at this stage of development, and I have worked with some rock solid beta versions in the past. What happens to your production products when Microsoft decides to pull a feature out of the product because it cannot be tested sufficiently or they decide it was poorly designed or implemented? Now you have to tell your users: sorry, we have to remove this functionality because Microsoft decided to pull it from Visual Studio or SQL Server.

I think this is a really bad idea for a product at this stage of development. Release candidates are usually buttoned down from a feature standpoint, but even those versions have been known to have show-stoppers in them. Early adoption is one thing, but I think this is pushing the envelope too far. The one upside for Microsoft, some of the best bugs are found in shipping products. Maybe this is just a better way to find those hidden bugs (tongue firmly planted in cheek).

Apr
16

Earlier today a fellow FoxPro developer sent me a question about an IntelliSense script Andy Kramek wrote about in MegaFox. Normally I pass along the questions I get on topics I did not write about to the original author, but in this case I had an alternative solution to pass along.

Our reader asked for some help with the InLineGetLocVars script found on page 74. So I looked up the section in MegaFox and re-read the tip. This cool script is designed to drop down a list of declared variables when you type in the first two letters of a memory variable following the standard of a scope letter and data type letter. This is a common code standard adopted by VFP developers. Local character variables start with “lc”, local date variables with “ld”, character parameters start with a “tc”, and so on. Once you type in the second letter and hit the spacebar, a dropdown list appears with all the variables declared in the procedure or method. This is a very power and very productive IntelliSense script.

Reading this section reminded me of a moment a few months ago when I was sitting in Cleveland listening to Andy speak on IntelliSense. Andy demonstrated a script that ships with VFP 8 and 9 that I had never seen. In one of your programs type in the following:

zloc

And press the spacebar. Bingo, all the local variables and any parameters for this procedure are in a dropdown list. You can type zloc anywhere in the code line. There are two advantages of this script compared to the one Andy created for MegaFox. The first advantage is you do not need to know what the variable starts with. The second advantage might not be a practical advantage for many developers, but your variables do not have to conform to the industry variable naming standard. At first this might sound like a bad idea, but I often work with code written by other developers who do not code to the same standards I have established.

Both IntelliSense scripts (the MegaFox example and the native VFP) require you to have your variable declared (which is something everyone should be doing by default anyway – another part of my development standards and best practices I subscribe to in an attempt to retain sanity).

There are a couple of gotchas you have to watch for with this IntelliSense script. The variables in this list are only the variables declared between the beginning of the method/procedure and where your type in zloc. The other gotcha is PRIVATE memory variables are not included (note it is called zLOC).

Now something I did not share with our reader is the cousin script to the zloc script, the zdef script. The zdef script will drop down all the constants you have declared in #DEFINEs. Both of these scripts provide a dramatic increase in productivity and I hope it adds to yours.

The person who sent me the question was slightly embarassed they did not know about the zloc script. I perfer to look at it from a different perspective. One can never know everything about FoxPro, it is impossible. I love the fact I have the opportunity to learn something new about my profession and the tools I use in my profession every single day.

So why did I title this blog entry “Paying It Forward VFP Tips?” It is simple: I don’t want to be the last person to learn the tip so I try to tell others. If every developer passes along this tip to a couple other FoxPro developers, and they pass it along to another couple of developers, and so on, this tip will make the rounds in no time. Pay it forward!