Thursday, November 30, 2006

Need to Diagram your FoxPro programs?

I just got a news release from a company in Finland touting the latest version of Visustin, a flowcharting program that reported to work with Visual FoxPro, among other languages. I was definitely curious and for good reason - one thing I always used to love about FoxDoc, that old venerable project documenting tool, was its flow diagram. (granted it was in ASCII but it was still useful)

Here's a screen shot of Visustin with a sample VFP program:

It's very cool and I can definitely see where it would be useful in figuring out new pieces or "inherited" pieces of code. The fact that it also helps diagram VB, C#, Java, T-SQL and other code as well, definitely should make it invaluable to anyone.

You can open a program or simply cut and paste code in the screen and hit Diagram and away it goes.

It even lets you export out to Visio, Word and Powerpoint - great for code reviews! A bulk flowchart program (disabled in the demo) looks like it would let you chart out a set of files and create images based on the charts.

In my few tests, it looked like it supported the standard VFP constructs including newer ones such as TRY...CATCH, etc.

But then there are the things that caught me up:

1. While it was able to scope out a 2800 line program, it took several minutes to do so. If you were working

2. I wish it had support for other VFP components such as VCX and SCX files or perhaps more importantly, project and menu files.

3. I wish it had an open API so I could write an Addin for it - that said, it does have a command line syntax so you could do one if you needed to.

There's a free demo that you can try. It's limited but does give you a good idea on how to use it.

Press release: Visustin v4 Automates Flowcharting and UML Diagramming

Add to my

Monday, November 27, 2006

Too bad, so zune

While there has been lots of criticism of the Zune in the past, at least some people have come out with positive remarks.

And then there's
Andy Ihnatko who notes "Avoid the loony Zune"

His prediction? dead and gone within six months! (ouch!)

His article sounds like a typical anti-drm rant except it's about a tool that was supposed to become a new level of fun.

Great article - too bad about the player.

While I don't have an iPod, I'll stick with my Windows Pocket PC. Now, I just need an 8GB SD card to hold all my music and podcasts!

Cool Way to experience different tools

I've subscribed to RSS feed for the
Giveaway of the Day site and while it doesn't happen every day, I am finding some great tools that I can use right away.

Today was one of those days. I don't have the full version of Adobe Acrobat on my systems but every now and then I want to create a PDF version of a TIF or JPG document so I can ensure people can view it. Today's giveaway was a tool called Total Image Converter. It attaches itself to the right-click menu in Windows and wow! convert any graphical image to just about any other format instantly.

Giveaway is an interesting site - every day, there's a new tool. After the 24 hours has passed, it's gone. They mention it but you can't download it again. If you download it during the 24 hours and install it, you can activate it and now you have a full functioning version of the software.

If you don't, you'll still get the unregistered version (and will then have to pay to get it upgraded) - but it's a great way to try out the full software.

Regarding the image conversion, if you have SnagIt, you can do the image to PDF conversion as well.

Friday, November 24, 2006

Office 2007 Setup Woes

So I was all set to install Office 2007 a few days ago, fresh from the MSDN download but when I first tried it , I got the "This setup is for a different language" message.

Hmph - have to redownload.

So today I finally got around to it.

Step 1 - You have to uninstall the previous beta version. (maybe MS shouldn't release real public betas anymore - I can only imagine regular users getting that message and becoming frustrated. (yes - I KNOW that regular users shouldn't be using the beta but when the habit "du jour" is to promote betas instead of releasing new products, it shouldn't be a big surprise))

Step 2 - During the uninstall, you should stop this program. Only problem? They didn't tell me what program so I had to arbitrarily decide which applications to stop. I think it may have been Google Desktop but I could be wrong.

Step 3 - Into the Install. Five minutes in - Office Setup couldn't find one of the files. Huh? I'm installing this from a FOLDER on the computer itself. And then it tells me to look in Office 10's help file. But the best part? After saying it was rolling back the changes, it then said I had to reboot. Reboot what? It didn't DO anything. I'm with Craig on this one - APPLICATION INSTALLS SHOULD NEVER, EVER REQUIRE A REBOOT. But even more so, APPLICATION FAILED INSTALLS SHOULD NEVER, EVER REQUIRE A REBOOT.

Step 4 - Restarted the machine. The Start menu said "New programs installed." Looked in the start menu and wow! There is Office 2007.

Go figure. Guess I did need to restart after all.

Maybe this is something that can be fixed BEFORE Office 2007 is available for the general public.

Add to my

Relationship Diagram Poll

Who said user feedback isn't easy to get?

One of the products I'm working on has a design choice to be made. It's about the types of lines that should be used to represent an inner join vs. an outer join.


Take My Poll

and let me know what you think.


Update: Some respondees asked about other options (other than thick or thin). While I'm trying to keep it to those two, but I've updated the poll to allow you to enter your own suggestions as well.

Thursday, November 23, 2006

Hey! Estonia!

I mention this story for no other reason than it lists the country of my wife's (for whom I am absolutely unequivocally thankful) father's family - Estonia!

But hey! If they can make electronic voting work - then there's another feather in their cap (along with Nokia manufacturing, Skype and more)

Wired News: Speaking of 24-Pound Turkeys ...

Happy Turkey Day

OK , Craig called it first but to all of my American friends and family, hope you are all having a wonderful Thanksgiving.

Monday, November 20, 2006

FoxPro DevCons Around the World

First, Rick and Boudewijn (not Bernard) commented on the German devcon and then Cesar comments on the

Good to see FoxPro all over the world - now where's that Canadian one?

Friday, November 17, 2006

Remi Responds

Remi, I'm really glad you responded to my post Did Remi get it even further wrong? and helped better define what you said in your session about Visual FoxPro and the future of the product line.

I'm not going to re-iterate everything because everyone can read it and I really do appreciate it.

And I agree, MS could still do so much more with VFP if they wanted to put in all the functionality that was missing but they obviously aren't. Now it's up to us to do it.

I don't agree that everything about VFP was dreamed up over 20 decades ago, though.

But thank you for responding. Much appreciated.

Tuesday, November 14, 2006

8 Simple Rules For Developing More Secure Code

Michael Howard's piece in the online MSDN magazine is really good.

Writing secure code is one of those things that, I believe at least, very few FoxPro developers think of. In our quest for the ever extensible application framework and product tool set, the more flexible a solution the better it is.

For example, I created a feature in an application called Form Validation - basically it was custom business rules. It could be called at a variety of hooks and "someone", typically the developer or a power user, could write their own rules. Yes, we provided several templates but if there's one thing I've learned, it's that no template ever covers the real world properly. (ok, maybe not the most important thing I've learned, but it's still true).

Now some developers may be cringing right here, thinking "you let people write their own validation code". Well, yes - because this way, we can have a nice custom solution on each customer's end that is specific to their business needs. But back to security....

How secure is that approach? Where do you put your validation code? In a DBF table! Which means that if someone really wanted to screw up your system, and knew their way around a DBF file, they could do it. Here's a validation script: ERASE *.*

or better yet

Ouch! Now you could get hurt big time!

So you put in protection. Check for any strange calls, any code like ERASE or DELETE or ZAP and more.

Of course, the downside of this is that your protection may actually slow down the operation of the code. So do you disable this feature?

I don't have the perfect answer (does anyone ever?) but I do see a lot of FoxPro developers who turn a semi-blind eye to writing secure code. Sure, they put security into their application - but that is NOT the same thing.

Michael's article is a great way of just keeping things in mind as you write code.

Friday, November 10, 2006

Did Remi get it even further wrong?

I don't know why Kevin is going on about Tech-Ed Barcelona except to boil VFP developers' blood but his post referring back to Tim Anderson's post about new projects illustrates some fairly interesting points.

Remi Caron's point about FoxPro forms never looking quite right on Vista is the equivalent of saying a VB 6 form won't look quite right on Vista but then, my thought on the whole matter is that a Javascript application also won't look right on Vista.

And my own attempts at building desktop applications in Visual Studio all suffer from the same "god, it looks awful" approach as well until I go through and design around various UI guidelines. If you want to design for the new interface, you'll want to use the new tools. So do you use WinForms or WPF? The argument goes around and around. When MS comes out with Vienna or whatever is next and introduces a whole new round of UX (user experience) changes, their toolset will have to be revamped again too.

Maybe the real rule of thumb should be : don't expect any application tool to give you a Microsoft designed user interface (a la Office) without some severe tweaking.

At least, Tim was bang on with "so I am not sure that the arguments were fully persuasive. FoxPro applications will trundle on for a while yet. It is also interesting that C# 3.0 is only now getting integrated database query, which has been a feature of xBase from its earliest days"

His last comment about "FoxPro coming to the end of its life as a product under active development" has to be taken in context. "as a product under active Microsoft development" would likely be more accurate.

But wait, there's something else to be said here. For years now, Microsoft has promoted n-tier design as the ideal way of building applications. There was DNA, COM, COM+, Web Services, and on it goes. And as Toni Feltman pointed out in her Infopath article in Advisor and at Southwest, if you have built your FoxPro application with "redesign" in mind, you are also not likely to be using FoxPro as your user interface (experience) tool - but as your business layer and possibly your data layer.

If the future of user interface design is in tools like Sparkle and WPF (which is XML based), then quite honestly, I would want the best string manipulation tool around to really create awesome interfaces. And Ken Levy showed how you can use VFP to do this back as early as 2005 Devcon.

This isn't to say that if someone said "I want to build a next generation product", the first choice would be Visual FoxPro but it also wouldn't necessarily be Visual Studio, which is what gets touted at these conferences. Remember - Vista isn't built exclusively on DotNet nor is Office. The first response should be "to do what?" and then you take it from there. In many cases, developers may recommend other tools to get the job done.

For years, the FoxPro community used to complain that Microsoft was not doing enough to promote it from within. Ken, Yag and others tried their best - but as this session shows, the issue may not simply have been within Microsoft (although they are always the easiest target to point to). It's the spreading of misinformation from whoever decides to spread it.

It's hard to really say if Remi's intention was to spread mis-information. It's hard because Tim's comments may have been from his own realizations or they may have been from what Remi was saying.

And if you read the comments on Tim's post, they all bear this out. From Snorkel's comment
"Win32 applications are going to be viable for a long long time no matter what MS says. Hell, .net is just a layer on top of win32."
to Dave Crozier's note "Please don’t knock the product without being aware of its capabilities and knowing what you are talking about."

Don't shoot the messenger, in this case, Tim - and I'm sure Remi has some great skills in building database desktop applications, much gleaned from his experience in FoxPro back from 2000 - but today's Visual FoxPro is much different than that from 2-3 years ago.

Monday, November 06, 2006

Wake up call to the Fox community.

Looks like the VFP community needs to give some Microsoft PMs a good shake or at least remind others that when speakers write an abstract, they are told to try and "spice it up" and thus say as many inflamatory things as possible. Sound familiar?

Not necessarily Milind, mind you - but when they give conference sessions that have blatant inaccuracies like this "VFP suffers shortcomings in the modern business environment in areas such as disconnected data, security, mobile devices, and more" - then someone should be doing better proof reading over at the MS Teched site.

1. Vista doesn't use DotNet - not as much as everyone was led to believe.

2. VFP (FoxPro) supports Vista - perhaps even moreso than Microsoft would want, if you look at the stuff that Craig et al are doing it.

3. DotNet STILL ISN'T the best solution for everything that developers need. Don't get me wrong - it does some really cool things - but the more MS keeps on pushing, the more push-back they will get.

4. VFP can do security, disconnected data and more. (I believe this article and this article talks about) Yes - it does require some work but no more work than trying to get people to call 5 lines of code instead of 1 to do the same thing.

No - Microsoft doesn't get the extra cash they would get if people were using SQL Server all the time - but hey, you'll get more cash than if you were pushing people to Ruby or another environment.

I know this is only one speaker's session but still, it's this kind of crap that hurts Microsoft's credibility, especially in the FoxPro community.

Where is the session on converting from VB 6 to Dot Net?
Oh I forgot - Remi Caron (the speaker in question) started in Fox but then moved to VB 6 only to jump over to DotNet.

Is there a session on strongly recommending VB 6 developers to move to DotNet because VB 6 is NOT a good platform? Somehow, I don't think so but if there is, please correct me.

At least the session does note that you can stay in VFP - but " Vista, .NET is a pragmatic necessity for VFP developers" - that's just not true. At least the Delphi session states it more obviously - "Staying with Win32 may be viable in the short term, but not the long term."

But hey , by that time, I'm sure we'll be up to DotNet 5.0 and a whole new RNWPF (Really New Windows Presentation Foundation). Fact is - most offices still run on machines that can fly by with Windows 98 and survive on Windows XP. I really don't see Vista being that huge an impact for at least another 2 years. And yes, there will be interoperability with DotNet and Visual FoxPro - like there is today. Scare mongering from former VB developers is just a way to try and attract people to their session.

Kevin Ragsdale : Microsoft Urges FoxPro, Delphi Developers to Move to .NET

Friday, November 03, 2006

VFPX continues to impress!

While I will readily admit to being a little disheartened when I read that since the VFPY (not VFPX) uses a GPL license, I can't use any of its pieces in commercial software (since it requires that I be able to give away the source code), the original VFPX project is barrelling right along and I'm loving it.

I've already gushed about the ctl32_statusbar control, and Carlos will be working on a scrollable container but my new favorite one is the Outlook2003bar. It works like a pageframe and is very flexible. I subclassed it and pulled it into my own application in just a few minutes. (I'm going to do a screen cam of it this weekend so you can see how to get into it)

Think your VFP application can't look like other apps on the market today? Think again. The VFPX project is making things that developers used to think were difficult without ActiveX, super easy to do.

Kudos to Emerson Reed for leading up this project.