February 19, 2008
Is it October yet?
Although, here in Kansas City, it still feels like October (kinda chilly), we are many months away. Still, I am anxiously awaiting for October 2008 to arrive because that is when the Southwest Fox 2008 Conference will take place. Last year's Southwest Fox 2007 Conference (featuring EVERYTHING you ever wanted to know about Microsoft Visual FoxPro) was the most attended ever; bucking the trend of reduced attendence at VFP conferences. There is no reason why this year's conference can't be even better. It was HIGHLY received by the attendees last year, and first time organizers, Tamar Granor, Rick Schummer, and Doug Hennig are in the process of building upon last year's success.
There are several ways in which the conference can be improved and one of them is to spread the word throughout the FoxPro community about the conference. It is in that spirit that I am pointing you to one of the pages on the ( Southwest Fox website ) that is specifically designed to assist community members in publicizing the conference, the ( "Promote the Conference" ) page. On that page, you will find several ways to help promote the conference and spread the VFP "Word".
I am particularly directing your eyeballs to the section displaying two animated banner ads. One (or both) of these banner ads will easily fit onto a page of anyone's website and/or blog. You can cut and paste the HTML code provided to easily display the banners. It would be a genuinely unselfish gesture if each and everyone of you reading this blog would take the time to post an ad (as well as pass along the URL to the promotion page to others likely to post an ad). Incidentally, if you don't, it will reflect on your parents and a big, black checkmark will go on your permanent record. Seriously, anyone who loves Fox and wants to see it continue to flourish is encouraged to post an ad banner. Your help in making the 2008 conference the best one yet will be greatly appreciated.
Lastly, if you are interested, the call has gone out to all those interested in being a speaker at the 2008 conference. Details are on the Southwest Fox website.
December 18, 2007
A Promise is a Promise
Back in October, I promised to elaborate on the Southwest Fox 2007 conference and review some of the sessions. Well, Santa is checking out who has been naughty and who has been nice, and frankly, I need as many of the “nice” checkboxes checked as possible. I apologize for the delay, but for those of you who are still awishin’ and ahopin’ I would come through, here ya go.
Before I begin, I would like to regurgitate (what a revolting word; but fun to say) what you have undoubtedly read on many occasions in the past. Namely, if you have never attended a developer conference, what the heck are you waiting for? 15 years ago I was in the same boat. I read (almost) those exact same words and thought a developers’ conference can’t be that good. Well, I was wrong and every time I think I am right, I attend another conference and prove to myself that I am, indeed, wrong, wrong, wrong. Believe me; if you are in the trenches and do application development (i.e. write code) on a daily basis, you owe it to yourself to attend a conference specializing in the coding discipline of your choice. While I am partial to Visual FoxPro, other conferences for other languages are just as rewarding. You get shortcuts, tips, tricks, traps as well as renewed enthusiasm for your work. You get the chance to meet with people who are in the same “development boat” as you. You are not an island. OK, you may be an island, but in a chain of islands that, together, form a beneficial archipelago. Bottom line,.. Consider attending a conference of your choice. I wax poetic, but I also digress, so on with the show.
The two sessions I will address in this blog are the two sessions given by Cathy Pountney. Some of you may know that a few years ago I was a technical editor on a Hentzenwerke book, “The Visual FoxPro Report Writer – Pushing It to the Limits and Beyond” written by Cathy. It was written in the days when Microsoft swore that the report writer would never be improved. It is still a very viable book for those of you who have not upgraded to VFP 9. However, with the release of VFP 9, many of the enhancements were to the report writer. So much so, that it is almost a totally different animal. While I have been hibernating in a cave mainly doing maintenance work on applications written in VFP 8 and earlier, Cathy has been leading the charge to push the VFP 9 report writer past its limits and right into the 5th dimension. So while she is on the cutting edge of the report writer enhancements, I have made a comfortable home on the coagulating edge. I still have a few years of coding energy left in me and I felt it high time that I get on the VFP 9 report writer band wagon. I was reluctant to do so because I felt so at ease with the “old way” and besides, it was a bit intimidating, but biting the bullet, I attended both of Cathy’s sessions with the express purpose of getting over my fears and intimidation. BOY, am I glad I did!
“Getting Your Head Around the VFP ReportListener” was the first session. This was the session that I was hoping would remove the mystique from the newest version of the report writer. It did, or I should say, Cathy did. She knows her audience. She can speak to her audience so that the “difficult to grasp” is “graspable”. This was a good thing. When I walked out of this session, I had been (practically by hand) taken through the basics of the reportlistener. One of the revelations, at least for me, was how the various components worked together to produce the report. In the old days (pre-VFP9) there was just the report engine. With VFP 9, you not only have the engine, but the listener object, the preview container (separate from the report engine) and the extension handler. This fact, in and of itself, was a key to understanding the “new and improved; whiter than white” report writer. Each component was explained and placed in its proper environment as it relates to creating reports. Next came all of the new properties, events, and methods. Cathy’s practical, real-world examples using several of the methods and properties made the task of creating the reports seem easy. It was at that point that she dangled the carrot in front of me that by knowing the basics and understanding the fundamental concepts, developers could then use them to their advantage to create reports the way the user has requested (instead of being forced into a pigeon hole of “this is the ONLY way it can be done”). Extensibility. What a concept! Unfortunately, those tricks will be shown in her OTHER session. For now, she continued with the basics. It was just like having to take Chemistry 101 to learn the periodic table BEFORE you could take Advanced Chemistry and blow things up. Also, she is correct. Learning the basics of the methods, events, and properties is what will allow us to (in a nice way) blow things up when we need to print out those mind-boggling reports.
OK, now for the cool stuff. With the basics out of the way, I later went to the “OutFox the VFP Report Writer: Printing on My Terms” session. I am really glad that I went to the basic session first because this session built upon those concepts. Rather than tell you about the session, I am going to list just a few of the new abilities that users of VFP 9 have at their disposal. How about being able to select which pages of the report they want to print? Or printing only the odd pages, or only the even pages? You can now specify how the report is collated and how many pages print on a sheet of paper (ideal for printing “mini pamphlets”). You can specify the margins. Perfect when you want a wider margin for three-hole punching. You can shrink to fit the page. How cool is that? Haven’t you ever printed out a report and ONE detail line printed on the second page? If only you could have shrunk the report enough to get it all on one page. NOW, you can. You can rotate the report; you can specify different size paper for different pages. You can create your own printer dialog to allow for user input as to all of the specifications mentioned above. Using the extension handler, you can customize the preview container toolbar or modify the print dialog box. I haven’t even added the use of GDI+ to the equation. BOTH sessions were eye-opening. BOTH sessions did exactly what I had hoped; namely removed the mystique and pointed me in the right direction and allowed me to say to myself, “This isn’t so tough.” Of course it isn’t when someone else has done the heavy lifting. Cathy would be the first to acknowledge that she gained valuable insight in certain areas of the VFP 9 report writer from others more informed than she. THAT is the beauty of these conferences. Developers sharing and passing down information so that the less informed can be educated. THAT is another reason why you should consider attending a conference if you never have.
Lastly, and realistically, there is no way one person could walk out of those sessions, sit down to the keyboard, and put what they saw into immediate use. Fortunately they don’t have to, but when they are ready, Cathy provided (as did all speakers) examples, code samples, and white papers about the topics so that you could review later and take the time to master this facet of Visual FoxPro. Two sessions; tightly coupled, but giving me the basic fundamental understanding and the wherewithal to decide how to move forward in the manner that most benefits me when attempting to tame this beast. Time well spent.
December 10, 2007
Sometimes, It Is the Small Things In Life That Count
Has this ever happened to you? It happens to me a minimum of once a week, but NOT ANY MORE! Most often it happens when I am copying a directory (yes, I am “old school” and refuse to say “folder”) full of files from a hard drive to a thumb drive. I know that the process will take a few minutes so I begin the copying and go get a drink refill. Adding fresh ice, topping off the glass, and meandering back to the computer, I notice a message on the screen. Have you seen one similar to this before?!?!
While not completely wasted, the time getting my refill wasn’t as productive as I thought it would be because the copying process did not complete, but, instead, paused waiting for my input. I said “Yes”, but then had to wait for the process to complete. What a pain. Oooh, thank you Microsoft. I certainly wouldn’t want to overwrite a file that I can recreate any time I want to (usually whether or not I actually want to). The fact that it is referred to as a “system file” makes it seem that much more important, too. Well, in MY opinion, (I use the phrase, “in MY opinion” so that if I am wrong in anything I say, I can just say that “MY opinion” was based on MY experience) there is very little upside by even having these Thumbs.db files hanging around all over the place. If there was only a way to prevent them from propagating like tribbles in heat. Hey, there is!
I ASSume that the main purpose for these files is to have a way to easily (and quickly) see thumbnail images of any graphics files. Nice concept, no problem. It does take some amount of overhead to create the file, but to me, the time is insignificant unless you had a couple thousand .jpgs in a directory (and then, I would question THAT behavior). At any rate, you can prevent the OS from automatically creating (AND THUS, ELIMINATING THIS ANNOYING “FEATURE”) as follows:
Open up Windows Explorer, go to the menu Tools|Folder Options| click on the “View” tab, and under the “Files and Folders” section, look for the checkbox with the caption, “Do Not Cache Thumbnails”. Stick a big, old, fat check in that box and from now on the Thumbs.db file will not be written to your hard drive. Yes, you WILL still be able to select Thumbnails as a format to view the directory’s files, but since it is not written to disk, it is never copied, and you will never see the above message again. As I mentioned, there is a very minor, minor, minor performance hit each time you request a thumbnail view, but it is a small price to pay (again) in MY opinion. Ah, life is good. Sometimes it’s the small things in life that count.
December 06, 2007
Too Cool for School!
Last October, when I attended the Southwest Fox 2007 conference, Rick Borup of ITA Software, showed me a pretty slick tool that he recently discovered. I have been using it for about a month and although I do not use it often, when I need it, it really comes in handy. I thought it was cool enough to pass it along so that you could evaluate it for your own personal use.
The product is called ZoomIt and is available at: http://tinyurl.com/2xv7eu. It is, essentially, an easy way to magnify your screen. It is much easier to use than the magnifier that Microsoft routinely provides under the Accessories|Accessibility options. On top of that, it has a couple of features that are pretty cool. Before I go any further, I will tell you that it will be worth your time to read the accompanying documentation (it’s only one page) to save yourself some startup time.
If you read the documentation, you will find that ZoomIt has the capability to display a countdown timer on the screen so when you are giving presentations and take a 10 minute break, the countdown until the break is over is displayed so that all attendees are aware of the “official” time left before the presentation will continue.
Additionally, ZoomIt allows the user to (crudely) use the mouse as a pen to circle a specific area of the screen for emphasis. In fact, (again, mentioned in the documentation) the user can draw straight lines, using the proper keys, to “box in” an area of the screen. Like I said, I don’t use it often, but it is definitely the “right tool for the right job” and comes in real handy when you need it. Give it a shot.
June 11, 2007
Most of the applications I write are data-centric. People put data IN, the application manipulates the data in some way, and people take data out. Nine times out of ten, the data is taken out by putting it into some readable format. I like to call that readable format a report; oh, wait, so do 100,000 other developers. Nothing new there, but the 100k number is greatly reduced when those developers are asked if they actually like to CREATE a report.
For the most part, creating reports is not glamorous. Creating reports (much of the time) is not very challenging. Let’s face it, creating reports is quite boring. However, just as I would like you to look at the title of this blog in a different way, looking at reports from a different perspective may allow you to gain respect for this much, maligned aspect of application development. So, looking at the title from a different perspective… you might see… Reports! Reports!
Many senior developers just pass off the task of creating the reports to the junior developers. If that is your M.O., so be it. At the very least, I am suggesting that you take on the additional responsibility to review all of the reports that are produced from within your various applications. Here are a few reasons why.
- Quite often the person who ends up reading the report is the same person that approves the check that is given to you for your services. i.e Middle to upper management. The “grunts” enter the data, the application processes it, and the data flows uphill to management. It is often the case that management bases the success of the application development process on the physical output – namely the reports they read.
- If those reports are clear and concise this is a good thing. If they are easy to read and understand, this is even better. Even nicer is the fact that columns line up, fonts match, data is accurate. In other words, it gives the management-type a “warm and fuzzy” feeling in their tum-tums. That is definitely a good thing.
- A group of reports that are “standardized” is a factor in making the overall application appear to be professional. Using similar formats for cover sheets, using similar (if not identical) fonts, and standard headers and footers go a long way in allowing the reader to interpret the report. Much like following a standardized menu design that is similar to other menus in Windows-based applications, a standardized set of reporting design features enhances the overall application.
Give the design and format of your reports the same care you give your code and it will pay dividends. Give reports the respect they deserve. You will be glad you did.
May 14, 2007
Denial Isn't Just a River in Egypt
A little over a month ago, the Microsoft Corporation officially announced that they will not be releasing any new versions of its relational database software, Visual FoxPro (VFP). The news came as a surprise to many of the developers in the FoxPro community, but those developers must have been in denial or had their heads buried in the Hentzenwerke “Hacker’s Guide” because the handwriting has been on the wall for months. Years! Decades?
To paraphrase Garrett Morris’ Chico Escuela persona from “Saturday Night Live”, “FoxPro has been bery, bery good to me”. It has provided me with an above average income and a comfortable life style (once I kicked all of my kids out of the house). More importantly, Visual FoxPro and before it, FoxPro for Windows and FoxPro for DOS, has been VERY, VERY good to thousands of small to medium sized business as well as some Fortune 500 companies. A VFP application is used to run the operation of the Chunnel (the underwater link between England and France). During the first Gulf War, FoxPro was an integral part of the military’s JFast application which managed the deployment of troops and supplies. There are many other high profile applications, but my point is that mission critical applications created by FoxPro developers provided reliable, efficient, and economically sound solutions to real world problems. ECONOMY is one of the reasons that Visual FoxPro is one of the best selling application development software tools IN THE WORLD. It is reasonably priced and is “self-contained”. i.e. For the most part, it has it’s own reporting capabilities, user interface capabilities, and data storage capabilities. Those are the basics of most data-centric applications. Of course, it has many, many more features than just those basic capabilities. I could go on about my devotion to VFP and why I (as well as many other developers, world-wide) love it so much. Nevertheless, the fact is that Microsoft is going to support Visual FoxPro only through 2015, so there is no sense in denying it any longer. VFP is on its own.
Notice and this is very important, I did NOT say that VFP is DEAD. I just said it is on its own. Why? Because 2015 is eight years away. Who knows what will happen by then? I, personally, am still maintaining applications written in the mid 1990s that the clients love and couldn’t do without. I expect to see applications, being written today, around for another twenty years. The applications do EXACTLY (another key word) what the client wants them to do and they have no plans of abandoning them. Isn’t that the bottom line? So, if you are in need of custom applications and plan on being in business for the next 20-25 years, there is no compelling reason why you shouldn’t consider (or at the very least, do not summarily dismiss) having those applications written in Visual FoxPro. An honest, ethical developer should offer you all options, explain the pros and cons of each, and then help you to decide upon the approach that is best for you.
January 17, 2007
Shaking Things Up
We talk a lot about our experiences in this column about our agile software development practice...so much so, that perhaps it sounds a little self-serving at times. After all, we're heavily invested in agile methodology. So here's a link to another developer's (Russ Nemhauser's) blog...a developer who joined an agile team at a Large Software Company Somewhere in the State of Washington. His background was in BUFD (big up-front design) and he therefore approached this Scrum project (in .NET) with a great deal of skepticism. Read about his conversion here. He also gives an example of test-driven development and talks about why he's now a believer...so much so that he's uncomfortable writing code before he writes the test(s)....and how (at least in this example) it was a time saver. (YMMV, of course.)
An interesting idea:
This doesn't solve the problem of some clients requiring large functional specification documents, but it does offer at least one potential change to the way they're written: the functional specification can be written AFTER the majority of functionality has been developed and delivered. This is a huge step toward an accurate specification and it also drastically reduces the amount of time it takes to write the document.
March 24, 2006
Office 2007 delayed to match Vista
It's official, Office 2007 has been delayed to better match the launch of Vista in January 2007. According to a Microsoft release, Office 2007 will be available in October of this year to volume business licensors and OEM distributors.
What I really wonder is, though, if Office 2007 is going to leverage Vista features, why would you bother buying it before you get Vista? The logic escapes me. And frankly Office has one of the slowest uptakes of any MSFT product. Come on, how many people really notice a difference between Office 2000, Office XP, and Office 2003. Having run all three ... I can't really see much, at least from a day-to-day standpoint.
It's going to be a tough, uphill battle on both these fronts. Frankly, I hope Microsoft seeds the tech community, liberally, with free copies of Vista and Office 2007. I'm not going to lay down the cash myself until I see/hear some real tangible benefits. Okay at least until the first service pack comes out ;-).
The Vista saga continues ...
Continuing on the "Vista is delayed" theme, there was some discussion today the 60% of Vista has to be re-written for launch. Given what I've personally seen and talking with Vista testers, I agree with Robert, it's rubbish. I guess it's not surprising that people might jump to this conclusion. My take is this. XP hasn't done awesome in the sales and upgrades department. On top of that, Microsoft always takes it on the chin when a new OS comes out (the refrain I hear is ... wait until the first service pack). So why not delay it and maybe boost people's security that it's worth upgrading sooner rather than later?
Makes sense to me.
.Net and C# coming to the Mac?!?
Wow, this could be huge ... if it stays on track, of course. This actually hits pretty close to home. When we were looking at the next version of Qumana we knew we needed a PC and Mac version. Then, the only viable option was something based on Mozilla (sounds great, lousy documentation) or Java (well supported, but rather sluggish). Rumours and whispers of something like this were tempting but far too vaporware to base a real development plan on.
The big question is, will this matter? Will a lot more apps be written so that Macs can use them? That's tough. As much as this is touted as a "cross-platform solution" I know from the Java experience, you will have to tweak for Mac and PC. It will come down to ... is there a large enough user base to warrant the additional development?
I guess we'll just have to wait and see.
Oh, the image above? That's a test widget in this new programming tool ... in Firefox ... (credit to Adam Kinney)