Friday, December 31, 2004

Adios 2004!

While it's been an exciting year for VFP, it hasn't been the greatest year overall and judging by the mayhem all over the world from the beginning of this year (Bam, Iran) to now (tsunami) and everything in between (snow in mexico, hurriances galore) and family issues, I'm sure looking forward to 2005 being a banner year.
Thanks to all the readers and colleagues who have pushed me into better blogging, more accountable writing and overall just letting me hear what you have to say!
Happy New Year to all! See you in 2005!

Reinstalling DotNet/ASPNet on a Windows 2003 Server

So much for getting rid of DLL hell...I've just been through hell and back trying to re-install the DotNet framework to run properly with SourceGear's Dragnet product.

We were experiencing some problems that only popped us running IE (FireFox was fine) and the suggestion was to reinstall DotNet. Oh sure. no problem -just go to Windows Installer right?

Wrong - apparently the service packs don't show up under Add/Remove programs with a good name. Redownloaded DotNetFX again , thinking I should be able to install over it. Sorry - "This has already been installed on your OS." (Win 2003).

Why is that? Because Windows 2003 comes WITH the DotNet framework built in. This means that you can't simply "remove it" and then "reinstall it". But there is a solution. Read on.

Based on some other useful sites, I turned on Windows Installer Logging so I could see that the message was when I tried to install it - maybe I could find out where the culprit was that way. No luck. The log file simply said "Looking for MSI.DLL" and then "Cannot install." Don't bother doing that.

There must be an easier way. So I uninstalled any product I knew that used DotNet, hoping that would get rid of the dependencies. Still no luck. Even went through the Registry, removing entries pointing to DotNet. Still no luck.

Finally came across a useful MSDN KB article about repairing corrupted installs (funny how it didn't turn up on any search engines - Google and MSN have to really start filtering out the sites that simply repeat other KB articles).

C:\DOTNETFX.EXE /t:C:\temp /c:"msiexec /i c:\temp\netfx.msi REINSTALL=ALL ReinstallMODE=vomus"

It said it installed just fine. Full install - no problem. Why wouldn't it simply do this without having wasted the better part of the morning?

Why not? Because it STILL didn't fix it. I still get an internal error 2908 on Microsoft.VisualBasic.VCA,Version="7.0.50000.0",PublicKeyToken="b03f5f7f11d50a3a",Culture="neutral",FileVersion="7.10.3052.4",
Hresult: 0x8002802F. Please refer to Help and Support for more information.

This seems like it should be pretty straight forward to me. I simply want to reinstall the software.

Finally, posted a question on the framework.setup newsgroup and Blair Neumann from Microsoft pointed me to the right KB article.

1. Repair your Windows 2003 server. (that's a nasty piece of work)
2. Hack the registry (just a little) and rerun some installers.

Sure, you have to hack the registry a little but after I did that, everything seemed to be good except for one little thing: my Dragnet app still didn't work.

Somewhere in my adventures, "something" had turned off support for ASP.Net. Where do you fix this?

IIS Manager (INETMGR) - Web Service Extensions - make sure that ASP.Net is Allowed and not prohibited.

It was a frustrating adventure but there was light at the end of the tunnel.

What did I really learn from all this? 1) Sometimes the best searches simply suck at finding the root cause of the problem and 2) a checklist somewhere would be valuable for doing these repairs

Real Checklist for verifying AspNet is working properly on a Windows 2003 server
1. Verify in IIS that ASP.Net web service extension is Allowed.
2. If it is, and something's still not working right, re-register it. Go to the \WINDOWS\Microsoft.NET\Framework\v1.1.4322 folder and run:

aspnet_regiis -i

aspnet_regiis -c (note the -c didn't seem to work on my version but you can also do it with an -r to reinstall)
3. If it's STILL not working, repair your Windows 2003 server and then recheck.
4. Still not working, go to the KB article (luckily, you'll only have to do the Registry hacking step as you've done the other step (repairing the server)).

Not fun - and very frustrating but at least now it works. Hopefully this post will make it easier for those who come across it again on their own.

Reading MP3/WMA Information in FoxPro

A recent post on a newsgroup was looking for a tool that would let them read MP3 tag information (artist, genre, etc). After doing some looking in the new VFP 9 "Fox Media Player" solution sample, it's simply a matter of working with the Windows Media Player COM component.

oPlayer = createobject("WMPlayer.OCX.7")
loItems = oPlayer.MediaCollection
loSong= loItems.add("c:\what time is it.mp3")
? loSong.duration
? loSong.getItemInfo("Artist")
? loSong.getItemInfo("Title")
? loSong.getItemInfo("Album")

Best of all, you can also set the information back again:

loSong.SetItemInfo("Artist","Kane Gang")

I used to rely on a variety of media tools to help catalog my music but using the WMPlayer OCX, I have placed them all into one big Fox table and from there, I update the tags, refresh my files all in a database format that I'm comfortable with.

The other benefit is that I know I'm changing the actual file instead of just some external database cache (like most players have). This makes my music collection work much better on my AudioTron or other Windows Media Center Extender devices.

There's a lot more to the WMPlayer control as well.

You can drop it onto a form and have your own player right in your application and then manage it programmatically.

CurrentPlaylist returns a collection of what's in the current playlist. There is no Add method here but instead AppendItem and InsertItem to place them at different locations in the player. These methods don't take strings to the music file though. They need to take song pointers.

loPlay= oPlayer.currentPlaylist
loSong = oPlayer.mediaCollection.add("music\what time is it.mp3")

When controlling a song, you use the Controls property

oPlayer.Controls.Play && Play the song

FYI - the PlayState property tells you what's currently happening.

0 - Undefined
1 - Stopped
2 - Paused
3 - Playing
4 - ScanForward
5 - ScanReverse
6 - Buffering
7 - Waiting
8 - MediaEnded
9 - Transitioning
10 - Ready
11 - Reconnecting

Now you can manage your entire music library properly via VFP!

Thursday, December 30, 2004

Power of Blogs in the wake of disaster

Although it's been mentioned in a number of different areas, BBC talks about how some bloggers were doing both rescue work AND blogging it via his cell phone.

Here's the link that BBC didn't put up onto their own web site:

Wednesday, December 29, 2004

Another place for Connection Info

Thanks Alex - another good site for Connection info

Never forget a connection string again...

Great site for those trying to connect to other systems...

Dan Gillmor - Airline Meltdowns

Absolutely right on. And Now US Airways is asking employees to work for free on New Year's Day. You know something? The company is struggling and union action is NOT the way about it. If you want to keep your job, then support the company. Last time I checked, US Airways wasn't splurging millions on useless stuff (like Canadian did) - they're trying to make the company survive.

What's better? A job you enjoy doing and get paid (albeit less than before) for or no job at all in an industry where there are very few jobs.
Silicon Valley - Dan Gillmor's eJournal - Airline Meltdowns

Jim Grisanzio: Successful CEOs don't multi-task

Of course not - that's what they want their computer to do for them.

Case in point: I don't want to have to visit 500 web sites to get my news ; Newsgator - do it for me.

I don't want to worry about downloading this 100MB file; BitTorrent do it for me.

I read my weblogs in the morning and in the evening, when I'm not doing much else and want to catch up on things. During the day, I try to stay focused on one thing at a time (in fact, that's a pretty good new year resolution - and for those who know me , it'll be tough) - staying focused on one thing is hard when you've got IM, support calls, emails amid 10 other projects that need to be worked on.

A few years back, one piece of advice ( I think it was actually in Dynamics of Software Development by Jim McCarthy) was to only check email once every x hours. The big problem now is that there's so much more email than ever before (and that's not including spam)- that it's easy to miss something.

My solution (and it takes a lot of discipline ) is to ignore the emails that don't directly impact me. If it's that important, I'll read it on one of the feeds I get or someone will resend it directly to me. I'm trying to get to that level of "simplicity" where as Bill Jensen suggests, delete 75% of your email.

Thanks Jim, for pointing to that Fortune article and keeping it focused.

Jim Grisanzio: Successful CEOs don't multi-task

Monday, December 27, 2004

Portable Sound: Belkin - TuneCast II Mobile FM Transmitter

I've been looking at one of these (
Welcome to Belkin - TuneCast II Mobile FM Transmitter) for a while with some trepidation: most say that the quality of the FM broadcast isn't that great. But now I have one and I can say: That's not what I found. I now have a 1GB SD card with various podCasts downloaded and plug my TuneCast II into my iPaq 1940 and can now listen to what I want to when driving to and from clients. I go to client office's only sporadically (most I can connect to remotely) and work from home but having this on my PDA, which is my main source of information, makes it an awesome tool.

Great frequency (88.1 to 107.9) and powers on and off automatically and runs on 2 AAA betteries. (I'll find out how long these really work)

Maybe now I'll start PodCasting my own stuff.

Mainstream Coverage of the Asia disaster

I don't know where Scoble found the "mainstream" media but I was completely amazed at the lack of coverage given to this story by television news outlets CNN and MSNBC. (yes, I know the blog coverage was likely far better) - We switched over at BBC World News first thing where they brought nothing but quality coverage the whole day. (first rss feed update came in at 11pm EST on the 25th). Thousands of people are dead and the only thing CNN and MSNBC chose to broadcast (at least on the "north american wide feed") was "Headliners and Legends" and debates on Iraq.

Our daughter has a friend who was vacationing in Thailand and we're still waiting for some kind of "yes, I'm ok" type of conversation.

Thoughts and prayers are with everyone in the region...

Scobleizer: Microsoft Geek Blogger

Saturday, December 25, 2004

Merry Christmas 2004

Just a quick note to say Happy Holidays and Merry Christmas to all my friends, colleagues and blog readers. May this season (and the various celebrations you may enjoy) find you all safe, happy and surrounded by those you love.

Monday, December 20, 2004

Onfolio - RSS in the Browser

Onfolio has a great product here. I'm running the beta but it seems really quite solid.

In particular, because going through my 156 feeds in Outlook seems way too time-consuming in Outlook 2003 (where the Favorite Folders feature seems to have outgrown my entire space available).

If you want to see what RSS Browsing is like, check out OnFolio - very cool.

Taking Heat for a Great Idea

Johnnie Moore's take on Scoble is definitely a bit fresher than the others comments .

Corporate deals with the "what is a blog supposed to be" ramifications.

Some immediate points on Scoble's letter and the comments afterwards:

1. Robert is a microsoftie in the same vein as the Excel 3.0 team : that is, we can create the best ________ possible. You know something? They can. The Fox team does it regularly (despite some comments posted on Channel nine's video). It's not arrogance - it's a challenge. I want my software to run on everyone's computer - I want everyone cool to be using my music player.... the fact that he works for the biggest software company doesn't mean it's going to work. It just means he's laying the challenge: build a "cool" media player. (and some people are responding)

2. Points should be given for anyone who is willing to write an open letter to his boss for everyone to see and also put the steps out there.

3. MS is going after two areas: the business world and the "cool" area. They own the business world but feel some pressure - they've never really made true in-roads in the "cool" area. Very few companies, other than Apple, have. I know Linux is all very good and exciting but come on make a user interface that CHANGES the way we work. "Cool" must be revolutionary not evolutionary and that's a hard step for a company as large as MS to make.

4. MS does have companies making media players - the problem is, it's a consumer market. As they've realized with the xBox, it's hard to be "cool" and make tons of money. Apple knows that -

5. People need to stop looking at companies based on their lawyers. Once a company starts relying on their lawyers for real basic things (like MS does), they need to take a step back. - Robert, this may be the place where you want to START telling BillG to work on. He gets technology - but someone is giving him really bad legal advice if he wants to play nice.

Corporate lawyers believe that everyone is bad, wanting to screw them. Most people don't - they want something that works and want to try it out to get it going right (this is what great customer service is all about). If you aren't happy with it, tell them and if you're reasonable, they will likely take it down.

In a nutshell, arrogant? Hardly - Scoble is throwing down the gauntlet to his own organization. The real issue with MS is whether or not their lawyers will allow anyone to do anything with it.

Saturday, December 18, 2004

Friday, December 17, 2004

Announcing SourceOffSite 4.1

Congratulations to SourceGear for once again improving an already great product!

Any chance for an update to SourceOffSite Collab? Or at least an "upgrade" to Dragnet?

Update - spoke too soon. OF COURSE you can import from SourceOffSite Collab to DragNet!

Announcing SourceOffSite 4.1

Thursday, December 16, 2004

Cool Newsgator Feature: Headlines

Scoble got me started looking at some of the other cool features in NewsGator. I'm a little hesitant to put my blogroll on my site (it's just way too big) but I immediately thought that headlines would be cool. While the NewsGator default is 100, I've limited mine to the top 10 since I link to about 200 different other blogs. I have to clean that up...

What an awesome feature though.

NewsGator really is one of the premier news aggregator tools and the fact that it keeps on adding new features is just awesome! Way to go, Greg!

Wednesday, December 15, 2004

Steve's Transitions Journal

Steve Sawyer has a blog with snippets of wisdom from his many years of fascination with process, patterns, innovation, integration and Getting the Job Done.

Thanks to Ted for pointing it out.

Ted's Radio Weblog

Screen shot of AddInfoX. The numbers beside each method tells you how many lines of code are in each method.

AddInfoX - Very useful Class Browser Add in

I was searching around for some other files and came across AddInfoX at Ed's Downloads area.

Very cool addin for the Class Browser that displays not just the names of the members,etc but also their property values (for anything non-default) and the number of lines of code in each event.

Check out the next post for an image of it.

Sunday, December 12, 2004

Art of the Start: Causation

I recently started reading Art of the Start by Guy Kawasaki. Guy was probably one of the first "recognized" technology evangelists and has written lots of books on the topic. Each of his books always seem to be slightly different variations on the same theme - on how to create something that completely changes lives (loosely: Selling the Dream was on how to sell it, How to Drive Your Competition Crazy was on how to compete with it, Rules for Revolutionaries was on creating it) - so I wasn't too sure how his new Art of the Start would read, especially since his new focus is on helping startups get venture capital. But once again, he's really done a good job.
The first chapter, Causation identifies what you really need to work on: Meaning, Mantra and MAT (Milestones, Assumptions and Timetables).
Instead of all those books that say study this and plan for that, come up with a mission statement and the like, Guy promotes the easier to remember style of a Mantra. Who wants to remember a huge mission statement when a five or six word mantra will do? In fact, one of his first exercises was to write your mantra in the following space: __________________ .  Not a lot of space - but what a GREAT guideline! Now you can actually remember what you do (for all those unclear moments)

Inspirational Ideas from Guy Kawasaki on Starting New Things

I've been reading Guy's new book, Art of the Start for a while now (it's been hard between other projects but I was able to read it on my flight down to NC).

It's a great book for start-ups, filled with Guy's humour and thoughts. If you've read his other stuff, you may find it a little repetitive (he always includes a chapter on how to be a better person - or in this case a Mensch) but I dog-eared a few things that just make it worthwhile. Rather than simply say a page # and tell you to go look it up in the bookstore (yes, Robert, Page 173 talks all about how much every company needs evangelists - not a new concept for Guy), I thought I'd pass on a few quips here.

Pg 73: The worst thing to do is write a "deliberate" plan and then stick to it simply because it is "the plan". Guy notes the difference between a deliberate (which is based on road maps and analysis) and an emergent plan (which is based on reacting to opportunities as they appear).

Pg 96: Bootstrapping a Business - Cost cutting. The enemy of small businesses isn't high spending - it's failing to actually use the spending you currently do, in short, Execution. Dana Epps also mentions it here.

Pg 101: Recruiting - Make the effort to "recruit" your existing employees every day. Make them feel like they WANT to continue working for you, or at least, come back the next day. ("Everyday is a new contract between you and your employer")

Pg 112: The Stanford Shopping Test is an amazing way of testing how you recruit people. If you don't want to "bump" into your employees, prospects, etc in a mall, then don't hire them. Life is too short to work with people you don't like.

Guy's book doesn't just have pages of insight. One of the most valuable pieces of it are the FAQs, where he answers questions that were asked while he was writing it. Everything from forming partnerships, to "getting it" and more.

Guy's big on karma and doing the right thing. And I'll just end the post with his note on patents:

The best protection of an idea is great implementation of the idea.

This book should be on , not just every startup entrepreneur's, but every owners/managers/employee's, desk. Just as Code Complete provided well-thoughtout best practices for programmers, the Art of the Start provides a great guide, not just for startups, but for anyone with an idea who wants to make it last.

Saturday, December 11, 2004

Yet Another Airport To Avoid

I try to give every airport I travel through a chance. But if I spot a trend, be it by location, or service or "do I really want to be stuck here for x hours", then it usually ends up on my list of Airports to Avoid.
I was supposed to get back home Friday morning at 10am, flying through Washington Dulles. Got off from Greensboro ok but when we arrived in Washington airspace, the fog was too thick. (note: never pick an airport near a coastline where fog or bad weather is a possibility).
I finally got home at 10pm, having been rerouted to Harrisburg (for fuel), back to Dulles where our original flight had been canceled and the only other flight was at 4:50, delayed until 5:20 and then stuck on the ground until about 6:30/7.
To their credit, United Airlines staff on the ground were amazing. Just never going through there again....

Thursday, December 09, 2004

What VFP 9's Removal of Array Limits Really Means

Interesting post by John K. about how the limits in VFP 9 have been substantially removed and yet may still rear their ugly head because of machine constraints.

But it explains very well how and why you may want to rethink how your applications may be built.

A great example is the removal of the limitations of an array.

Let's say you have 1,000,000 records in a table named X.

I created this table by listing all of the files in a folder showing two columns: one for the file name and another for the size.

CREATE TABLE x (cField1 C(30), nsize N(10))
lnRow = 1
FOR lni = 1 TO 1000000
IF lnRow+lni>ALEN(la,1)
lnRow = 1
lnRow = lnRow+lni
INSERT INTO X VALUES (la(lnRow,1),la(lnRow,2))

This ensured I had at least some variety of data in my results.

In VFP 7, you couldn't do


You would run out of memory.

However you CAN do it in VFP 9 which means that even though VFP is super fast with tables, it's even faster with memory.

Sorting Data
ASORT(la,2) took .698 seconds on a P IV with 512MB RAM.
INDEX ON nSize TAG t took 4.355 seconds in VFP 9

(note: ASORT(la,1) - which is the field name took approximately 2.5 seconds, the Index took 7 seconds)

Interestingly, not doing the index to a tag but to its own IDX took 1.6 seconds

Looking for Data
ASCAN(la,"WRITE.EXE") took .329 seconds
LOCATE FOR cField1="WRITE.EXE" took close to 1 second

(Note: If you do a SELECT * FROM X INTO CURSOR y and try the same things, the locate statement only takes about .600 seconds)

See where this is leading? If you have to process data in memory, it makes far more sense to put it into a cursor or better yet into an array.

And you can even put these arrays into objects for quick retrieval:

loCustomers = CREATEOBJECT("Custom")
SELECT * FROM X INTO ARRAY loCustomers.myData

All the same performance benefits apply.

As database developers, we often think of things as tables for storing temporary data, but now with VFP 9, we can store them as memory variables and wow! the performance gets instantly better.

If performance is your thing, then VFP 9 is definitely king.

The Limits of Architecture vs. The Architecture of Limits (by John Koziol)

Intellisense: inspecting live objects

Intellisense: inspecting live objects

Wednesday, December 08, 2004

Joel / Tamir on problems with MSF

Joel comments from Tamir about MSF :
"The trouble with MSF is that it starts with a group of successful developers, who are successful because they are resourceful, intelligent, experienced, well-meaning,...."

Actually, what I've found is the biggest problem with MSF is lack of buy-in from all partners. A good project is only as good as its weakest link because if there is one person who isn't motivated to follow the best practices concept, then the whole project will eventually fall apart, despite the best intentions of everyone.

It isn't so much about unskilled developers as much as it is about someone who's attitude becomes "why bother?" or a manager who decides "this little R&D effort isn't as important as my critical issue" so "everyone do what I say instead". The end result is the impression is that MSF didn't work when in fact, it's more the implementation that failed. Classic problem with any project and any methodology.

It's an interesting post though because it covers all kinds of things from unit testing and more.

Joel on Software - Monday, December 06, 2004

Tuesday, December 07, 2004

FW: SQL Server Presentation

 Val Matison will be in Ottawa on the  December 15th doing a SQL Server 2005 overview presentation for Microsoft.
You can sign up here:
Matison Information Architects

Kok Kiet's Blog: New FoxPro WebRAD Tool : FoxFusion

Yes the actual site is in French but hey! here's a great example of FoxPro running with COM, IIS and more. The sample apps are quite interesting (I can't get the Timer working but the FoxChat is fun to look at - note IE Only - no firefox support there)

Brought to you apparently by Ikoonet

Thanks to Kok Kiet for pointing this one out.
Kok Kiet's Blog: New FoxPro WebRAD Tool : FoxFusion

How does VFP create objects so fast?

Find out from this link to Calvin's post.

Kok Kiet's Blog: Why VFP create object so fast?

Eqeus - Project Documenting System

A Very cool tool that generates HTML based documentation on your entire project - very customizable and very cool. From Eqeus - makers of XFRX.

Eqeus PDM

Working with Edit Boxes in Visual FoxPro

I had a circumstance where I wanted to show a potentially large piece of text in a read-only edit box in VFP.
I was changing the height of the box to only show the actual content therefore if I only had one line, I wanted the edit box to only take up one line in height.
Sounds simple, right?
Not quite. My other requirement was that the user should be able to change the alignment of the text in the box. Left Align worked beautifully but whenever I switched the Alignment to Center or Right, the text disappeared.
What was going on?
When using alignments other than Left, Edit boxes have to be at least a certain height to display properly. What is the magic number? As it turns out, it's 34.
Try it yourself:

= 8
= "Here is my text"
x.editbox.width = x.
= 0
= 0
= 2
= 30    && Text disappears
x.editbox.height = 34    && Text Appears

Note: this is true in most versions of Visual FoxPro.

Saturday, December 04, 2004

The Red Couch: Announcing a corporate blogging book: the Red Couch project

This will be an interesting project to see how it takes flight... I can't honestly see publishers lining up for the rights to a new book that technically will have already been "published" but there are certainly enough ways of adding value that will make it worthwhile.

And as Scoble puts in, people who don't read the blogs will buy it to better understand it. The only issue? Timing. It needs to be out soon. Good luck Robert!
The Red Couch: Announcing a corporate blogging book: the Red Couch project

Friday, December 03, 2004

MSN Messenger Beta - Can't Send Feedback yet

FYI - if you're trying to send the MSN team feedback, you may need to wait a bit....Choosing Send Feedback from the Help menu gives you a "This Service is Currently Not Available" page.

It's nice to know that even larger companies go through what every other developer else tries to avoid as well.

So here's what I want:
- support for multiple logins (yes, login with two passports)
- custom status messages (MSN Messenger Plus has had it for a while now)

And why is there a menu option called Billing Information sending me to Blue Mountain? Seems like it should be called Add-Ons ($) or something else. Billing Information makes me feel like I'm going to start getting charged for Messenger.

MSN Messenger Beta: "Send Feedback: Tell us what you think. Send the MSN Messenger team feedback right from the MSN Messenger Help menu."

MSN Blogging service: still a beta service

It's up and running but " Part of the fun in using a beta service as a platform for communication"

So the MSN Blog is simply a beta (like the MSN Search?).

You would think from the other posts that it was ready for primetime.

Granted - it's on the web and we'll likely start seeing it improve but I wish the press (and other bloggers) would be a little clearer about its status. At least Mike was and of course there is that big "Beta" sign right above every note.

And on the MSN Messenger 7 beta - when are we finally going to be able to log in with multiple accounts?

I know it's tricky - I know it's tough - but it certainly would make my life easier (and isn't that what should be priority? :))
Mike's Space: Hiccups

Wednesday, December 01, 2004

Why does someone have to HOLD a device to listen to music?

Maybe I'm wrong....but I just saw a U2 iTunes/iPod ad where they are essentially saying "buy an iPod - dance around listening to great music but hold a silly device in your hand while doing it"

Is it just me or is there something wrong with that picture?

Joel on What a webcast is! funny

VFP 9.0 Release Date

(from foxblog but I can't ref its archives so...)

December 15!!!!! That appears to be the official release date for Visual
FoxPro 9.0, barring any unforseen showstoppers. Andew Coates, a former VFP
developer and now Microsoft employee, blogs
that Ken Levy
announced the date at OzFox . MSDN subscribers
should be able to download the bits a few days after release (RTM in
Microsoft speak). If you absolutely must have it in the CD case, it
generally takes 6-8 weeks after RTM.

Dell Woes Again...

Companies shouldn't be too happy about being including in posts entitled Customer Service Nightmares - solution? Do something about it!!

Sourcegear releases Vault 3.0
, eric et al!!

Vault is a Source Safe replacement that uses sql server --i currently
use their source offsite (collab) product and it rocks! !

VFP 9 to be released on 15th of December

Congrats Fox Team!

Visual FoxPro 9 is a great evolution of the best desktop database around. I'll be posting individual how to's in a new series of posts coming soon.

Ted's Radio Weblog

Sunday, November 28, 2004

Good RSS Readers for SmartPhones/PocketPCs

I was actually lamenting this before

I've tried Egress and Pocket RSS but I still come back to NewsGator (Outlook edition) but here's what I'm missing: a way to take a post from my Inbox and send it to my Blog without losing the formatting.

Right now, I use Blogger's email feature but whenever it gets to the site, it has a bunch of %20 in it and other stuff that prevent the links from working right.

I was hoping Pocket RSS and/or Egress would let me do what I do in FireFox or IE - find an interesting post, right-click (or "hold-click" on a PocketPC) and then blog it.

Right now, it makes my News of Interest blog very hard to read without having to correct my individual posts.

I know Robert's big on the Kunal approach but I'm not always in Outlook - (except on my Pocket PC).

Any ideas anyone?

Scobleizer: Microsoft Geek Blogger

Friday, November 26, 2004

Why Unit Test? Channel9 Wiki explains...

OK - sure it's on the xBox but it's still a great example of why the best developers unit test.

And no, I'm not preaching --- it's a neat article. I try to unit test all of my VFP stuff but it's hard when things need to get out the door and someone's breathing down your neck. It's even HARDER when you're going through someone else's code as I've been doing recently.

Channel9 Wiki: TheBestDeveloper

Thursday, November 25, 2004

Visual FoxPro 9.0: Still Here, Still Relevant

Op-Ed piece by David T. Anderson. (originally from here)

"Even though FoxPro has long been overshadowed by more glamorous products, it's still one of the best tools on the market for getting things done. With new enhancements coming in version 9.0, it's not likely to go the way of the dodo anytime soon. "

Good reading for everyone who uses FoxPro. The critical stuff is on the second page: Where Does FoxPro Fit Today

Visual FoxPro 9.0: Still Here, Still Relevant

Monday, November 22, 2004

Patents Should Meet BASIC Tests of Reason (Coffee)

This has got to be someone's attempt to simply show how silly the entire concept of patents are...unfortunately, it doesn't appear to be so.

Patents Should Meet BASIC Tests of Reason

Lost Remote: Comcast deploys Microsoft TV software

Robert posted to this and this site actually shows screen shots.

I'm comparing it to what we have in Canada - Roger's PVR. We picked one up a while ago and I love it. The UI isn't as intuitive which is too bad - because Rogers has used a lot of MS technology before, using an older version of WebTV. So now that I've got a PVR, my biggest problem is I need to send the signal to all the TVs in my house (I hate lugging it around - oh sure I could buy another one but why tape in two locations?).

I guess the answer COULD be a Windows Media Center Extender. Anyone have any good experiences with these?

Lost Remote: Comcast deploys Microsoft TV software

Ted Takes on Patents and MS Practices

Even though Scoble also posts about it here, I always find Ted's links a little more illuminating and insightful. It's not a "pro-MS" view point but the more points of view, the more informed we all can be. As Ted notes, "The irony is that Microsoft is likely to violate just as many patents, if not orders of magnitude more, but that's a lot tougher to determine with closed-source software."

Actually, I thought Ted's best post on patents was the one on Poland' in which he says
"Software patents are an abomination: licensing an idea, instead of the implementation of an idea (the latter is what copyrights are). Patents will chill the software development marketplace and reserve software development for the big companies that can afford patent lawyers. Stealing another programmers copywritten code is theft; building on another programmers code is progress."

Ted's Radio Weblog

Avalon Tech Preview Now Available

Chris makes a note of the Avalon Tech Preview being available for MSDN subscribers (note to subscribers: it's not called Avalon in MSDN but simply WinFX SDK under Platform Tools,SDKs)

There's a document here that talks about what's in and what's not in the Preview.

Now that Avalon is going to be fully supported on WinXP and 2003 servers - it will be interesting to see if Mike's right about Winforms.

One of his arguments was that WinForms run on Win98 boxes, etc. My big concern would be how fast? I've always experienced "lags" on DotNet apps even on my XP or 2003 boxes - I'm expecting much of the same from Avalon - so if they both are slow in loading, then would you really recommend such a solution for lower-end boxes such as 2000 and Win98?

My experience may not be typical and there are probably some crack applications that likely run circles in DotNet but many posts I've read leave me with that "sluggish" impression.

The future for interface design is in XAML and XUL and similar technologies - now we just have to get all of our hardware up to spec.


Sunday, November 21, 2004

ASP.Net Goodies

Jim Duffy goes quickly through several valuable resources for budding ASP.Net developers - the best part? They're all free.

:: CoDe Magazine ::

Friday, November 19, 2004

How to write Firefox extensions

Nothing like something that says: "You need to have a vague understanding of XUL and Javascript, but you certainly don't need to be a master of either. "

XUL is one of the best things about FireFox and it is an indicator of the way things are moving towards in UI development. Look at XAML and other initiatives.

This page helps you get started with a basic "Hello World" example...

How to write Firefox extensions

RSS Readers for Pocket PCs

Does anyone know of a good RSS reader for Pocket PCs?
While I use NewsGator and then have my best feeds sent to my iPAQ, it's still a little kludgy if I want to link a post back to my own blog.

So while Scoble notes that "A few people said they couldn't conceive of reading a site on a small screen"

There's a list here RSS Readers for Pocket PCs and here.

EGress and PocketRSS look like the ones that are on both of the lists. Anyone tried them out? I'll let you know my reaction after I've got them installed.

Wednesday, November 17, 2004

Running Dynamic Code with ExecScript

The Wiki has an interesting post on how to run dynamic code. While much of the post deals with using BINDEVENT, I just want to make a note on ExecScript.

This is one of the best additions to Visual FoxPro. In one application, we used to offer the ability for users to write their own validation rules (provided they knew how to write FoxPro expressions). Now, we take it even further: they can write their own full scripts.

Not only that - but we offer popular rule "templates" that users can build their existing rules from and use TEXTMERGE to fill in the appropriate values.

How so?

A rule table with a field for
Rule Description (cdesc)
Rule Script (mrule)
Rule Parameter (cparm)

The code that executes the rule does a


The user only needs to fill in the Rule Description and the parameter - everything else is hidden from them.

Our templates start with easy to use templates like : This field must be filled in or here is a valid list of values to "Don't allow this entry unless today's date is Dec 31 and the user's name is XXXX".

By using rule templates, more advanced support staff can write rules that others then simply re-use by filling in the templates.

Previously, we had a bunch of FXP files lying around in folders where people had to learn the expression and the parameters. With ExecScript, you can put all of these into a library of functions and call them with Friendly names.

"Oh you need to send an email to a user?" Instead of making them learn how to write SENDEMAIL.PRG, they can call a function library call like

CallFunction("Send Email", "", "Hi")

This is almost like going back to macros in Excel and Lotus days, but it becomes infinitely easier on the end user.

If you've never used ExecScript, try it out.

It's been in Visual FoxPro since VFP 7.

Monday, November 15, 2004

Movies of Software

Jon Udell discusses using Windows Media Encoder for easily capturing footage of what's going on in an application to make mini-movies.

I've used Windows Media Encoder and while it's not bad, I know many others like to rely on tools like Camtasia or others. I use a variety of web conferencing tools, like Webex and iLinc and each of these tools also let you record your sessions for easy viewing. It's something I try to encourage our support people to do as well - so they can SHOW me when something doesn't work right.

The point Jon makes is a good one: "In the same way that blogging has radically democratized basic web publishing, I expect that Windows Media Encoder--along with counterparts that I hope become broadly accessible on other platforms--will democratize the use of screen videos. The medium needn't be available to professionals only. Lots of folks need to describe, demonstrate, or document the behavior of software, and this is a powerful way to do it."

Podcasting is already popular even with its 25MB files - the Channel 9 guys are also showing how you can easily put in video spurts into your blogs - now with just a few clicks, you can also document software behavior easily.

Try it out - Windows Encoder is available here. - BUT this is something that MS should seriously look at embedding directing into future versions of Windows. It's not enough to come up with MS Producer which converts Powerpoints into "live" casts - it has to be able to work with everything!
O'Reilly Network: Movies of Software

Friday, November 12, 2004

Business Model Generator (BMG)

All your strapping entrepreneurs should check this out....(found it from

All from Carleton University's School of Business...good for them.

It goes through and asks 5 sets of questions, all designed to help identify how long it will take your business to be productive and profitable. It takes about 20 minutes and does ask some useful questions. What's great is that you can pause it and come back at any time and it gives you a graphical depiction of your business model. After each page, it also provides a summary of how you "scored" on that page.

It takes you through a number of steps including: testing your ECQ (Entrepreneurialist Culture Quotient) Score (are you ready to be an entrepreneur) - (this is kind of similar to Guy Kawasaki's Entrepreneur test), helping you understand how you can use guerrilla marketing and bootstrap capital in designing your business model, learning and discovering what the 'pixie dust' is in your business model , generating a schematic diagram of your business model, scoring your business model and, finally, comparing your business model score with other enterprises. (a - you have to be ready to share your results to do this).

Speaking of Guy, I'm half way through his book, the Art of the Start - you know - just when you think someone can't continue to talk about a similar area (evangelism) and say something new, Guy puts the concept of starting up a business into very effective and straight forward steps. I'll be posting a little more later but the book goes through some great ideas for powerpointing your ideas (36 point font only), the real need (?) for business plans and how to approach new ideas from both someone who is starting a brand new company and someone who is in an existing company).

Business Model Generator (BMG)

Novell sues Microsoft for sinking WordPerfect (revised)

Oh come on now.... we all know who sank WordPerfect and it certainly wasn't Microsoft.

(Craig set me right in his comments too - Noorda did a similar thing , overpaying for a product that was long in the tooth and then just calling in the lawyers. How much did Borland end up buying dBase for? They at least waited until the product was pretty much history in so far as being a market leader. There's something to be said about picking the right battles...)

It was Corel (among others) biting off more than they could chew with an owner (a certain Mr. Michael Cowpland) who made grandiose statements that couldn't be kept. Cowpland is a great visionary but he couldn't manage Corel at that size and he made a TERRIBLE mistaking buying a product like WordPerfect that simply hadn't kept up with the times.

Yes - there are secrets in Windows that maybe MS should be more open about - but to say they SANK WorkPerfect? WordPerfect was beginning to become a terrible product in the very first version of the Windows product - before Novell even owned it. I remember trying to save a basic document with some images and having it grow double the size each time. Let me guess - that was Microsoft Word secretly adding code into the Wordperfect file...


Novell sues Microsoft for sinking WordPerfect | Tech News on ZDNet

Craig's got the details on upcoming conferences

Craig's got the details on DevTeach and the new Advisor DevCon, scheduled for less than 9 months after the last one.

I hope you're wrong too, Craig - about the hotel decision.

Craig - you've got to do something about your archiving - no one can link to individual posts. At least I can drop comments on it.

Thursday, November 11, 2004

Managing Product Development

Aside from the voting note, here's a good tidbit for managing product development and ensuring things aren't waiting until the last minute.

Managing Product Development

Always Us vs. Them?

Robert treads into that dangerous water of talking about the competition...

He also talks about some feel MS is still running "roughshod"

Although I believe that Scoble doesn't need to get any more links, (he's already achieved #1 status via Google), he lays out some valid discussion points here.

Ted got me for my "media promoting Firefox" post, forcing me to remake (or try and remake) my point (the issue isn't about how great FireFox is but rather how the media discusses it. Case in point: EWeek Loves it - as do I. - I only use IE for sites that aren't supported by Firefox, like Webex)

Between going back and forth between other blogs, you really can get the feeling of Us vs. them (teams of lawyers don't really help that for MS's case either).

There will always be those who want to portray things as "us vs. them" - but when I look at that, I always think of Ted's "mission" on his blog: "Competition breeds Innovation. Monopolies breed stagnation. Working Well with Others is Good."

Although a company may be judged by its lawyers, I still think there are plenty of good activities going on at MS and in other great tech companies around the world.

Scobleizer: Microsoft Geek Blogger

Kevin McNeish has a blog! [for C# and .NET]

Thanks to Alex for showing the link on this.

As with Rick's blog, I always expect to find something new from Kevin. I really like his "Did You Know" section that mentions something that other developers may take for granted that others know.

Kevin McNeish [C# and .NET]

Tuesday, November 09, 2004

More on FireFox 1.0....

I just heard a big push by CNN Radio (CFRA, actually) on all the people who should go to Firefox. It's interesting the way radio goes through the same "media play" that some accuse others of.

Don't get me wrong - Firefox is an amazing browser - but it's only one of numerous others...there's still Opera which offers many of the similar features that FireFox does (and more...including built-in RSS)...

Just did a google (is that a noun AND a verb??!?!?!) and guess what? Firefox is the number one, Opera is number two.... and number three is Netscape, followed by Safari...and so on,....

The more things change...the more they stay the same...

Mozilla releases Firefox 1.0

Expect some slow downloads from the web site. I can't even bring up the main page!

Mozilla releases Firefox 1.0 | Tech News on ZDNet

Microsoft Visual FoxPro Konferenz Frankfurt 2004

If you're in Europe, Germany to be exact, be sure to attend the 11th (WOW! - I remember the first one) German FoxPro Developer Conference.

Rainer and his team put on a first-rate conference and I'm sure this one will be no different.

Microsoft Visual FoxPro Konferenz Frankfurt 2004

Monday, November 08, 2004

FoxCast - See Online Seminars from Fox Experts

Good show!

The goal of is to provide a community for VFP developers who are not able to participate in a local user group or who want additional information on developing in Microsoft Visual FoxPro.


OzFox 2004

If you feel like escaping for what looks to be a fun-filled conference, head on down to OzFox!

Why will this be fun? Forego the regular '"after-conference" event and head to the X-Box room - unwind after a VFP packed day with a round of Halo 2!

Jeez - I wish I was going....

OzFox 2004

Wednesday, November 03, 2004

The ReportListener Repository

From Craig's FoxBlog:

One of the great features of VFP 9.0 is the enhanced report designer. It's easy to create more complex reports than before, but changing things at runtime is a real pain. You need to use report listeners to do things...and these all have to be coded.

Ed Leafe has setup a new web site, Report Listener HQ , that is a Report Listener repository. The hope is that as people create report listeners, they will make them available on this site.

Ed runs a number of other sites, including Task Pane Central and Open Tech . He also runs the ProFox mailing list.

Markus Talks to Steve Ballmer

Ok, while he didn't mention FoxPro(!), long-time Fox and Visual Studio speaker and publisher, Markus Egger, interviews Steve Ballmer and asks that all important question:

"What's your favorite X-Box Game?"

Actually, the interview covers a number of topics including offshore development and importing of programmers (hmm --- Markus is from Austria but now lives in Houston), the Tablet PC (Markus' favorite toy for the past few years it seems and now with the election networks showing the Tablet PC in a number of key areas), open source, and Visual Studio Team System.

Sure, it's Ballmer - so you should expect some marketing propaganda (I still don't think he gets what's the "next big thing" - seems he should have asked Scoble to talk about it - as he did here - yes, it's important to have things that "just work" but that's a goal, not a technology.)

:: CoDe Magazine ::

Tuesday, November 02, 2004

Microsoft EULAs and Benchmarks

Ted roche points to an interesting post about the DotNet EULA and

it wasn't so long ago when Fox software used to dare companies to benchmark
themselves against Foxpro and rushmore...

Protecting yourself against benchmarks in the licence agreement -- do any
other companies do it? I wouldn't be surprised. If you Know for sure,leave
me a comment

Get the Facts on Microsoft Benchmarks
. "Now that Steve
Ballmer and company have given you all the facts you need to compare Windows
and Linux, allow me to add just one little tidbit." Posted at Ed Foster's

Related...> | Comments>

Why MS Doesn't Do All Their Products in Dot Net

Yag does a great job of explaining to those who don't get it why not all MS products are using DotNet as a native framework.

If you read all the comments, you'll see that part of the issue has to deal with the components that have not yet been put into DotNet (Uniscribe, and features for multi-lingual text etc).

Yag's basic premise though is that no one should expect every single MS app to flip over to DotNet overnight - there's a lot of work involved in moving it over and as the DotNet framework matures, more features get added in.

How this will apply to the entire Avalon scenario is up for grabs. It reminds me a little of how DNA has matured into DotNet and also how FoxPro has matured into Europa. The basic MS approach of development frameworks and almost any new technology (at least in my view) is:

Phase 1: Tell Everyone How they Should Be Doing It (VFP example: VFP 3 / Win Example: COM and Windows DNA)
Result: Some people get it, some people don't.

Phase 2: Show Everyone How To Do It (Ex: VFP 6 with the FFCs / DotNet v 1.0 / COM + )
Result: More light bulbs go off and more people get it

Phase 3: Write Tools so people can do it easier (VFP 8 / Whidbey)
Result: More applications start using it across the board.

Phase 4: Continue to mature the toolset (VFP 9/ _____________ )
Result: More applications use it than don't

Phase 5: Come up with a new idea (or rename the older one) and go back to Phase 1
(just kidding)

Seriously though, that is the basic path that these things take.

But at any step in the road, people get frustrated with waiting for Phase 3 and jump off the wagon. At other times, you may think you're ready for step 3 but you took a wrong course and have to go back to step 2 to get it right.

In some scenarios, MS jumped the gun and did a lot of steps 1 and 2 in secret (umm, research) and then introduced a product like MS Bob only to be assailed by critics and the public.

In the development world, MS has been a little more open in this context, perhaps to avoid the surprises or headaches of newer technology. Some succeed, some fail but each one builds on each other.

Just because MS had a monopoly in DOS didn't mean it would naturally succeed with Windows 9x. Likewise with XP and future versions.

Many of the technologies found in DotNet 1.0 needed to mature to be "production-ready" but just like SpaceShipOne is simply the first version of what will be more tourist trips into space, the conceptual foundation of managed code is the one that MS has built its future on.

Now it's a matter of getting to phase 4 and ensuring you don't lose any more developers on the way.

Microsoft and .NET (by yag)

Approaches To Unit Testing

Interesting post on Unit Testing by Steve Rowe. Describes the differences between different types of unit testing very well.
Approaches To Unit Testing

Monday, November 01, 2004

Creating, parsing, graphing web hit logfiles or other temporal data

Calvin provides a great example of how to read IIS logs and then graph the results in VFP.

The one comment on the bottom suggests that there is a built-in utility with the IIS 6 Resource Toolkit to parse the log automatically but where's the fun in that?

More seriously, this post, like my previous post about Lisa's Coverage Profiler add-ins, show that while it's very tempting to say "give me a tool and I will use whatever it gives me"; with Visual FoxPro, it's so easy to build your own , quickly and easily.

I do this regularly with Outlook. I see some of the tools that are available on Slipstick and when they don't meet my immediate needs, just write my own in VFP. Fast, easy and it meets my needs.

Calvin's post is also interesting in that it's not using the MS Graph control but rather VFP's Line method to draw the graph.

Creating, parsing, graphing web hit logfiles or other temporal data

Sunday, October 31, 2004

Something Amiss at Dell?

First let me say, that I have three Dell machines: a PowerEdge Server, a Dimension and an Inspiron and I have had very little if any problems with them at all. They are great machines and I used to highly recommend them but recently....
I recommended that my daughter purchase a Dell instead of going out and buying one of the nearby clone machines. Sure it will be a little more expensive but it's a good name and you'll get it in about a week. Total time to arrive? Over a month. Dell ordered, canceled and re-ordered, recanceled and then finally re-ordered the machine.  The machine finally came in and everything was good - or was it?
On my Dimension (received late last year/early this year), we received PowerDVD and were able to watch home copied DVD's that we had copied onto the local hard drive. One such DVD was of a dance recital that our daughter really enjoyed. Burned it onto a DVD and gave it to her so she could watch it. HER Dimension came with PowerDVD only it's a crippled version. This isn't even like a 30 day trial crippled version but a version that will NOT play locally stored DVDs (VOB files). Oh I know, I can buy one for $14.95  - that's crazy. It seems like SOMEONE is missing the boat here (don't even get me started on how Microsoft should be supporting VOB in their Media Player directly). Of course, there's nothing to be done except to get the right version but the "purchase and follow-up" experience for one of their customers is now a frustration, instead of a joy.
A colleague at another company has been ordering Dells for years. He was recently told that their account would now be handled by an Account "executive" who would be able to give them priority service instead of having to order through the regular channels. He tried to contact his Account Rep. Four days and still waiting for a return call or email...
These are little things and hopefully isolated issues. There are others:
But little things have a habit of turning into bigger ones...I hope Dell gets themselves straightened out... I would hate to see a company that made a name for providing exactly what people wanted turn bad..

Friday, October 29, 2004

SplaTT's Blog: RSS of the best uses for RSS i have seen...

Very cool use for RSS. Definitely going to use this one.
SplaTT's Blog: RSS of the best uses for RSS i have seen...

Email Posts Not Going Through

Argh! I just put a few posts into the blog via email only to find that they don't seem to be coming up... I will be posting them manually. I wish Blogger would put this on their status window when problems like this happen.

Visual FoxPro Coverage Profiler AddIns and Subclasses

I was running the VFP Profiler on a project, trying to identify some areas where performance was getting bogged down and decided to do a search to see if anyone had written any add-ins that let me see where each piece of code was being called.

The Profiler is great for seeing what gets called, and how long it takes but it doesn't give you a good view of the ORDER in which things get called.

So I googled it and found this older (1999) article by Lisa Slater Nicholls about building add-ins to the coverage profiler. One of the add-ins gives you a graphical depiction of how the code is running. Hey - these work in all versions of VFP since 6 - that's awesome!

Yet another example of how there are some truly amazing tools and add-ins available for commonly used tools in VFP that everyone should be made aware of.

Visual FoxPro Coverage Profiler AddIns and Subclasses

Southwest Fox Practical Developers Conference for Visual FoxPro

Craig noted that Southwest is a go for 2005 - that's great news (craig , I would post to you but your archives link still doesn't work right)

Sounds like the organizers did an amazing job!

Southwest Fox Practical Developers Conference for Visual FoxPro

Something Amiss at Dell?

First let me say, that I have three Dell machines: a PowerEdge Server, a Dimension and an Inspiron and I have had very little if any problems with them at all. They are great machines and I used to highly recommend them but recently....

I recommended that my daughter purchase a Dell instead of going out and buying one of the nearby clone machines. Sure it will be a little more expensive but it's a good name and you'll get it in about a week. Total time to arrive? Over a month. Dell ordered, canceled and re-ordered, recanceled and then finally re-ordered the machine. The machine finally came in and everything was good - or was it?

On my Dimension (received late last year/early this year), we received PowerDVD and were able to watch home copied DVD's that we had copied onto the local hard drive. One such DVD was of a dance recital that our daughter really enjoyed. Burned it onto a DVD and gave it to her so she could watch it. HER Dimension came with PowerDVD only it's a crippled version. This isn't even like a 30 day trial crippled version but a version that will NOT play locally stored DVDs (VOB files). Oh I know, I can buy one for $14.95 - that's crazy. It seems like SOMEONE is missing the boat here (don't even get me started on how Microsoft should be supporting VOB in their Media Player directly). Of course, there's nothing to be done except to get the right version but the "purchase and follow-up" experience for one of their customers is now a frustration, instead of a joy.

A colleague at another company has been ordering Dells for years. He was recently told that their account would now be handled by an Account "executive" who would be able to give them priority service instead of having to order through the regular channels. He tried to contact his Account Rep. Four days and still waiting for a return call or email...

These are little things and hopefully isolated issues. There are others:
and here:

But little things have a habit of turning into bigger ones...I hope Dell gets themselves straightened out... I would hate to see a company that made a name for providing exactly what people wanted turn bad..

Wednesday, October 27, 2004

Having "Heart" in What You Do

My wife, Trish, and I had a great conversation the other night about work and it can be summed up in one word: "heart". If your heart's not in it, then don't expect anyone around you to feel the same or to want something to work.
It's not necessarily about loving your job (although that helps) but putting your heart into it. Those who work around you can see it in the way you approach things and will want to contribute. Lose heart and you've got nothing : an empty shell that can essentially be replaced by anything or anyone.
As developers, we're lucky to work in an area where inspiration can be seen in so many different products and concepts but in larger companies, it's easy to tell when people have lost heart in what they do. I see it in some developers though - they do their jobs fixing bugs, writing code, etc but fail to get excited about it or contribute a sense of anything except "oh well".
The most successful projects are ones that have proven schedules and approaches to development : almost a "cookie-cutter" type of development so the work can certainly seem repetitive but if your heart is in it, even the most mundane task can inspire others around it.
This isn't just true in software development but everywhere. Customer Service relies on people who have "heart". Successful sales people have "heart". Every Saturday morning, I see Honda Victory with Rockin' Rick and Austin (terrible web site, so I won't link to it) hawking the deals on Detroit's Channel 4 ( While it's simply a car commercial, they are constantly excited and on the ball - it shows because they actually have put enough into this single advertising concept, that their message changes each week - but the enthusiasm is always the same.
In contrast, many companies now rely on telemarketers to "sell" their message. That's annoying enough - but someone actually thought it would be a great idea to have "pre-recorded" messages called into homes. You know - if you want my business, then care enough to actually have someone TELL me about it.
In Ottawa, we just had a BananaRepublic ( store open. Now you might think : well, they're in retail sales - of course they're going to be pushing - they're on commission. Fact is they aren't on commission. They don't even get discounts. But the attitude of whoever hired the sales team there inspired them all the same way: they aren't just trying to sell you a sweater, they want to sell you a wardrobe and they're excited about the clothes! (actually, check out for another great story about great customer service in retail sales)
Having "heart" can be a reciprocal thing as well. I recently introduced a product called ExecView ( to a number of trucking companies. One company, PDQ Transit ( loved it and got so excited that they bought huge monitors to display it in their operations department. As a result, their dispatching and sales team see their results every day and are inspired to do better. Every week, we get together and discuss ways of making it do more. Their excitement has increased my enthusiasm for it, making it consistently better.
My mother in law has Alzheimer's and is in a great home that takes very good care. But you can easily tell the nurses that have "heart" and those simply are there for the work and you can tell who was working that day based on my mum's mood that day. She was recently in hospital where the doctors had stock responses as to why things weren't going well ("contact the hospital administrator") yet some of the nurses, who had to do the worst kind of tasks (sponge baths and bed pan work), provided the most amazing care for her. They had "heart" and it showed. Three weeks after her hip operation and she's starting to walk again.
I don't understand why companies hire people who don't have heart - maybe they think that the job they are hiring for is so meaningless, it doesn't matter. Well, they're wrong - every job has a meaning, even if it's answering phones or sweeping the floor.
Finding people who have heart in what they do takes time but in the end, it's worth it - to both the person who's doing it and the people they provide the service to.

Josh Ledgard: The Issue is What Shouldn't We Share With Customers

Josh makes a note about why the MS Dev Team is sharing information and the concept behind it is a great one. One of the nice things about open source projects is the overall transparency of how the project is going - well, it's possible to have that same transparency in non-open source projects which is precisely what they're doing here.

It's also a concept that I'm reading about in Guy Kawasaki's Art of the Start. When you're a start-up and coming out with a new idea, you need to keep it hush-hush until you're ready to come out with it (in fact, RIM did this with their Blackberry device) - but when you're a larger company and you need people to support you, you need to open it up and share it with as many people as possible to get them behind you.

I wish a few companies I work for would do the same with their dev teams. There's nothing worse than having to speak to customers about what the Development team is doing when getting information from them is like pulling teeth.

MS is the whipping boy for so many different groups right now - it's nice to see that they are openly canvassing for greater transparency in their new development.

Giuliani and a Glimpse of Transparency to Come

Developer Division Updates now on Channel 9! (by yag)

YAG points to the new Developer Division Update on Channel 9 that gives a GREAT overview of the state of development on VS 2005. Very cool!
Developer Division Updates now on Channel 9! (by yag)

Tuesday, October 26, 2004

Want to go Fishing?

A good friend, Jim Melton, owns his own fishing charter business, Reel Music Charters, out in North Carolina.
If you like fishing, (and believe me - Jim LOVES fishing), check out - he'll "hook" you up good.

RoboNexus - and the future is...

A bunch of photoshots from the RoboNexus....sad to say --- the Roomba is STILL the BEST example of useful robotics around....


Monday, October 25, 2004

FoxBlog From Southwest

Craig posts from the Southwest Fox Conference (missed it yesterday!) - sounds like the entire conference was a great success.

I wish I had been able to attend.

Congrats to Jeff and Bob!


Sunday, October 24, 2004

Universal Thread - Conferences - Southwest Fox 2004

Read up on the latest ongoings at the first (hopefully of many) SouthWest Conference.

Looks like the overall conference is going pretty well.

David and Patrick are doing an EXCELLENT job reporting on it ! Great job guys!
Universal Thread - Conferences - Southwest Fox 2004

Saturday, October 23, 2004

Wired News: When War Games Meet Video Games

The UT originally posted this on their opening page as an "ad" for Linux so it caught my attention.

But really - doesn't this sound like a potential add-on for the SIMS? (I seem to recall that SimWorld was all about running a planet with the possibility of war as well). It cost JFCom $195,000 - I wonder if they contacted Maxis for their expertise on this. That would be the logical thing to do as they have HUGE experience in doing this on the computer.

Wired News: When War Games Meet Video Games

Friday, October 22, 2004

LookOut vs. Google Desktop

For the past few months, I've been using LookOut for Outlook to tame my ever-enlarging Inboxes. It does a phenomenal job and it's free ( I don't think I could live without it as I have instant access to all my archives.
But now, I just installed Google's Desktop Search tool, a tool that essentially "googlizes" your entire computer: files, emails, everything - is now accessible from a Google Search.
They both have effectively done the same job: LookOut has an option to look into My Documents, if you configure it and Google has an option to look at your email.
The thing I really like about Google's search is that it automatically groups my emails. So if I do a search for Customer Contract, and there are 5 different email threads spanning 100 emails - they appear as 5 "found" items but note how many emails are on each one. LookOut , in contrast, lists each email which can make it hard to move through.
Google's search also seems much faster.
Some people note some security options on the Google Desktop search ( but those can be turned off.
Let me know which one you prefer.

Monday, October 18, 2004

Now here's the same window but with the Trace window selected. Rule to remember: the Options Dialog UI has some "hidden" items to remember.

Here's the default Options Debug window. Note that the Call Stack window is currently selected and options in the right corner below it.

Showing Line Numbers in The Trace Window

Colin Nichols ( recently reminded me of a feature that is "hidden" in the Visual FoxPro Options dialog. By default, it's not turned on and it's tricky to get to, obviously designed by an engineer who didn't run it through a few UI options.
Go to the Options dialog in Visual FoxPro and click on the Debug window. Everything looks pretty standard there, except did you know that if you click on one of the options in the Specify Window box, the options below it change? (check out the next set of images loaded)
In fact, not all the options change: each window has its own font control but the following windows have their own options:
Call Stack
- Show call stack order.
- Show current line indicator (defaults to on)
- Show call stack indicator
- Log debug output. Great to automatically set a file where your debug output goes.
- Show Line Numbers
- Trace Between Breakpoints
Now, many of you (who READ the documentation or like to click around) may be aware of this (in fact, I remembered it but only AFTER Colin jogged my memory).  This is one of those UI design things that make it difficult for new programmers to work with the environment. If nothing else, all those Window specific options should exist in the right-click in the debugger. You can't access some of these options anywhere else but in the options dialog.
Reminder Note: When trying to find a feature in Visual FoxPro, search through the Options dialog for all those little "hidden" features that may not be obvious.

Friday, October 15, 2004

News Of Interest from AKSEL Solutions

I needed a place to drop posts that I thought would be interesting although I may not want to consider it newsworthy on my regular post.

Consider this my version of scoble's aggregator blog (as if I had the time)
News Of Interest from AKSEL Solutions

Another VFP 9 Cool Feature: MAKETRANSACTABLE()

If you're like me, you may have older Visual FoxPro applications that were upgraded from earlier versions and still use free tables. And why not? Databases certainly offer some benefits but they can be "clunky" to move around.
One of the reasons many developers switched to using databases and the DBC files were to support transactions : - that is the ability to start a transaction, update a bunch of files and then if one thing didn't work right, roll it all back to the original source.
Well now,  in Visual FoxPro 9 (Europa) , FREE Tables can be made transactable as well with the new MAKETRANSACTABLE() function.
Consider the following:
IF MESSAGEBOX("Did you really want to delete all your customers",4) <> 6
Note: that each table must be called MAKETRANSACTABLE in order to work. This means a few extra calls when your table is open.
When you close the table, the MAKETRANSACTABLE setting is removed.
One of the big challenges with older applications is ensuring that everything is always updated properly. With this great new feature, you can use Transactions with your free tables, ensuring that if something goes wrong, everything can be updated properly. Awesome feature.

Tuesday, October 12, 2004

I take it back, Ken --- - Lava flows to surface of Mount St. Helens

Ok, Ken, I take it back - you may have been talking about real earth-shaking explosion for the release of VFP 9. In that case, we're READY!!! The world needs a REAL shake-up in terms of how to deal with desktop and web apps - and that's what Visual FoxPro 9 provides for developers - a great and easy way to work with both Web and Desktop!!!

MSNBC - Lava flows to surface of Mount St. Helens

Go to Southwest

Hey - if you're in the area or anyways nearby, check out the SouthWest Fox Conference, as mentioned by Craig, but also available here

10, er, 20, years of FoxPro

Great post from Calvin about Hugh Winters mounting a "Thank you for FoxPro" to Microsoft.

Great Post! Good job, Hugh!

The Plane Man

Go to Southwest

Hey - if you're in the area or anyways nearby, check out the SouthWest Fox Conference, as mentioned by Craig, but also available here

Thursday, October 07, 2004

Scoble Gets Bashed for Asking a valuable Question

Once again proving that the biggest barn in the yard gets the most crap thrown at it, Scoble asks a very basic question "What's your product's philosophy?" and the comments thrown back at him are almost like flame wars on old bulletin boards.

Hey - Scoble's job is as evangelist and he carries it off well. But his blog is his own opinion.

I'm sure asking the philosophy question stumps a lot of product groups. If it's happening at MS, that's frightening because it shows how few of them are still practicing MSF (where's Jim McCarthy when you need him?)

The founding premise of MSF is that when you start a project, you identify a VISION for it. Guess what? That Vision should form the philosophy behind it. It drives everything about the product and makes it very easy to separate what's critical for the product and what's not.

While I'm sure many people will find humour in some "versions" of MS Product philosophies - IE's philosophy (from one commenter) must be (paraphrased) - "screw the standards".

But I think in comparison to Excel's original philosophy ("to build the best spreadsheet ever"), there is a lack of direction in some of MS' products.

The down side of asking that question is that it requires a lot of self-reflection and honestly, too much self-reflection can be a bad thing. One company I work with has had more than three "reflection" type meetings in a period of 5 years. Hey - if you have to think about and define the "focus" of the company 3 times in 5 years, someone needs to start leading the company, instead of letting it drift aimlessly.

The Wiki has a very straight forward direction as espoused at the bottom of the page: a low-impedance, fat-free VisualFoxPro site. Is that its philosophy? Probably not - but that one guiding direction helps direct what is on the site. Steve Black (and his merry band of editors) have done a great job ensuring that the focus stays on.

Call it philosophy, call it vision, call it whatever. If your product (or company) doesn't have one that everyone can rally behind - then either GET ONE or doom yourself to eventual failure. Personally, I think every VERSION of a product should have its underlying goal as well that fits in with the version.

Consider Visual FoxPro.
Version 3.0 of Visual FoxPro might have been "let's get excited about OOP".
Version 5.0 could have been "Use n-tier".
Version 6 - "better tools for building better applications"
Version 7 (when Intellisense came in) was "let's play leapfrog with existing concepts".
Version 8.0 - "Better interoperability"
Now with VFP 9, as Drew Speedie paraphrased in the new issue of FoxPro advisor- "let's blow the lid off extensibility"

Maybe it's me but I think Robert would do well to promote internally that product groups actually publicly state their Vision. They might get criticized publicly for them but I have to say - once you have made the goal public, it becomes much easier to defend decisions and to focus attention.

Scoble Gets Bashed for Asking Basic Question