Friday, April 29, 2005

Good Luck John!

John Koziol of the MS Data team sent off an email yesterday afternoon for an audition on Jeopardy! Has to answer 35 out of 50 written questions in 15 minutes - oh yeah, and the answers have to correct! (always forget about that part).

Good luck John! Looking forward to seeing that Fox lapel on the show!

Wednesday, April 27, 2005

Church of the Customer: creating emotional connections

Jackie and Ben have a great blog with Church of the Customer but their PODCAST is even better.

In this podcast, they were talking about how to create emotional connections with your customers/products - something that most FoxPro developers get. And in it, they spoke about a scale that was used by Gallup that was broken into four areas: rational , emotional, pride and passion.

It's an interesting exercise, especially considering the last MS FoxPro survey.

Rational
1. Rate your satisfaction with Visual FoxPro on a scale of 1 to 10.

2. How likely are you to buy/use Visual FoxPro again?
A: Depends on what the need is.

3. How much would you recommend Visual FoxPro to a colleague?
A: Depends on what the need is.

Emotional
Confidence
1. Is FoxPro something you can always trust - Yes or No?

2. Does FoxPro always delivers on what it promises - Yes or No?

Integrity

1. Microsoft/FoxPro always treats me fairly -

2. If a problem arises, will my problem be resolved ? - Yes/No

Pride

1. Are you proud to be a FoxPro developer?

2. MS/FoxPro always treats me with respect

Passion

1. FoxPro is the perfect product for people like me. - Y/N

2. I can't imagine a world without FoxPro . - Y/N

Is this survey flawed?
Jackie and Ben do a great job of tearing apart the concept of a satisfaction survey by asking:

How do respondents define "respect", "fairly", "pride" or 'satisfaction'?

From their point, the only questions that really mean something as far as creating that emotional intent is the one that refers to recommendability.

When I tried the above survey with FoxPro as my product, the only areas where I could even come up with a complete answer (one without it depends or N/A) were the last two on the topic of passion.

Compare this with the recent Microsoft survey. After going through all of the questions in that survey , the one that still stands out in my mind was:

a) what features make you want to buy/upgrade FoxPro?

This is where Microsoft sees the product revenue. VFP 9 is chock-full of developer goodies that require the developer to grow them into a meaningful application. That's great to satisfy the developer - but eventually, the developer has to answer to the customer and the customer , unfortunately, needs the eye-candy. (see my post on Office style tools)

Sure, there were lots of other questions but that one is the key point because one needs to have some reason to recommend upgrading and recommendability is likely the biggest area where Visual FoxPro suffers, overall as a developer tool.

At this stage, readers may be going "I always recommend FoxPro" but the answer for a recommendation in development tools should almost always be "it depends on the need".

Every solution is not in need of a hammer and when someone asks for a database, the first word on everyone's lips is NOT FoxPro, it's likely MySQL or SQL Server or _____. (and if you've ever heard Jim Duffy speak, FoxPro and database simply aren't two words that should ever be used together).

And if you ask about programming languages, you'll likely get a wide variety of responses as well. You want OOP - Why not use C++ or C#?

The recommended tool should always depend on the need.

And often, I find, the FoxPro developer, although loud in the community, doesn't beat the drum loud enough in their own organization to get it recommended. Maybe it's because they're tired of always having to defend the product. It was different in the early 90s because everything was about speed, an area where FoxPro wins hands-down. Now, it's also about security, maintainability, user interface, access and design.

So then the person asking the question "what tool should I use?" asks the next best person, who would be _________.

So who is that person?

Is it an IT person? IT won't likely recommend a FoxPro solution because they can't control it.

Is it Sales? Microsoft Sales won't recommend VFP because they make more $$ from other tools but there's an implied disingenuous feel here because their job is to make money. Likewise, a retail sales person won't recommend it because, well, when was the last time you saw FoxPro in a retail store?

Is it Marketing? (see Sales)

Who do YOU think that person is?

The podcast is only 30 minutes but the section on creating the emotiional connection is in the first 15 minutes and well worth the listen.

Church of the Customer: Podcast: Can't get no satisfaction; creating emotional connections

Tuesday, April 26, 2005

Source Control and Other Imperatives for Developers

Craig picked up on my post about source control and it got me thinking. That "From coder to developer" sounds like an awesome session Craig - wish I would see it - maybe you should do a FoxCast

I recall several years ago a post that made its way around the Fox community that were practical questions to ask prospective employees about FoxPro. This had questions like "Why should I use PACK and what are the alternatives?" and "describe the order of a banded report writer" (does anyone have the link for that - it was priceless)

Today, the development world has changed sufficiently that all kinds of other questions should be on there as well. It's not even enough to be certified because that tests your ability to work with various aspects of FoxPro but also about team development.

1. What is the difference between sharing and branching?

2. What rules should you apply before checking in code?

3. What is Extreme Programming?

4. Why should you do a code review?


I also recall that Jim Booth did a hilarious send-up of the answers for the old Foxpro one including :
Q: How does the Transporter work?
A: You step into the circle and say "Scotty, beam me up"

Q: How does a multi-band report writer work?
A: One band is enough for me, I like the Rolling Stones.

Q: What should you check when you PACK a table?
A: Toothbrush, clean underwear, etc - how would you fit a table into a suitcase anyways?

What non-FoxPro questions do YOU ask potential FoxPro hirees?
For that matter, what FoxPro questions do you ask?



FoxBlog

Saturday, April 23, 2005

Isn't Source Control part of programming 101 yet?

Where is the bar for programmer expertise these days? I mean, I don't want to go on a rant like Caustic Phil but shouldn't you expect some basic knowledge?

I just had someone check in a piece of code into a project I'm working on and he hadn't updated his code in at least 2 weeks. Not only that but when he HAD checked it out, he marked it read-write so he could play around with it and then DIDN'T check to see if there were any changes.

Ted and Eric, you wrote the books on these things - am I being naive expecting experienced programmers today NOT to be aware of good SCM practices?

I sometimes get accused of being overly demanding - but in this case, am I expecting too much here?


Source Control HOWTO

Thursday, April 21, 2005

Grid Highlight Results


- See how the color of each line changes based on the Type field. Click the link for the sample code from Eric Gomez.

Highlighting Records in a Grid

Eric Gomez posted a cool way of highlighting records in a grid based on an existing field type. This is the result from Eric Gomez's code available here:

Wednesday, April 20, 2005

"FoxPro has never let me down... "

In the latest FoxShow, I talked about how I had received an email from someone saying "too bad since MS is trying to get rid of FoxPro" and I reacted with a bit of a rant. I asked the client why they thought that (along with various examples of why and the response was curious. It suggested that the survey made it seem like they were fishing for reasons not to keep it.

Didn't make much sense to me - the VFP community has been full of petitions from day one so the idea that MS themselves were doing a survey to see how popular it really was seems to be at odds but I'm sure someone can make an argument about it.

Anyways, while searching for some other notes about getting rid of VFP, I came across this great series of posts on the O'Reilly Network. An older discussion starting from an article "What I hate about your programming language" in 2003 but continued with a final post in 2004, all pretty much positive but essentially making the point that Fox developers have understood for years: since the FoxPro distribution is free, the only way to make money is from the developers. With SQL Server, money is made from the user licenses so it makes sense to give away single user versions to developers since they'll have to make their clients pay for it in the end.

But also on the point of MS and development languages, I think it speaks volumes about the way Microsoft is handling itself at least from a development perspective (yes the EULA is written by a bunch of lawyers trying to ensure they can get the full $$ out of everything).

For years, VB was the darling child of Microsoft. Every salesperson, every MSE would always promote VB and then, by need, Visual C, as the best tool (at least they stopped promoting Access as the best DB when MSDE came along). But Microsoft is always improving their products and way back in 1993, I recall a conversation (it could have been Robert Green but I won't stake my life on it) that said they were moving to an area where language was irrelevant and that the same designer would be used in each product. The notion there being that each product would be kept intact but the ease in which developers could switch between languages would be very visible. The first stab at this was the first Visual Studio with the Visual Interdev UI, VB UI, VC UI all looking the same (VFP 6 was like the odd man out in terms of the UI tools).

That goal has been modified over the years to what is now Visual Studio and the CLR - use the same tools but use your own language.

Now, Visual FoxPro doesn't fit into that mold (for a variety of reasons) but by the same token, there are many VB developers who don't want to fit into that mold either. Now, one key argument for FoxPro not fitting is clear: doing data access the way Visual Studio does it can be a step BACK for FoxPro developers where data and coding have always lived pretty much together. Visual Basic on the other hand, never "got" data - it received data objects, which is very similar to Visual Studio.

VB developers needs to realize that while their arguments about VB 6 may sound good to them - they were the ones who were all excited about moving to a common interface way back when they thought THEIR product would be the yardstick. Well, the yardstick has changed.

As Rudder said "The second issue around 'a new product' or 'hosting VB6 inside of Visual Studio 2005+' is different. Here, we have been clear that this is not currently in our plans.


Apparently, some VB backers got upset that MS was continuing to support FoxPro but not VB 6. The most telling comment:

But Vaughn also noted that "Microsoft needs to take a hard look at the disruption they've caused in the industry as they constantly churn the technology.

"They can't expect to reinvent the wheel every five years or so and expect the world to adopt the new technology just because it's new and improved," Vaughn said.

(read on after you've stopped laughing at the rational of this comment - you are TALKING about an industry that is dealing with Moore's law after all)

VB developers should realize - FoxPro and VB are two distinct products - while VB is primarily a language; FoxPro is a language and a database and so while they may see some similarities, the two big differences, I see, are "accessing data" and "extensibility".

VB has often been about getting Microsoft or a third party library to build something INTO the product.

FoxPro developers have typically done it themselves, often finding their solutions built INTO the product but always asking the FoxPro team not to "do it for them" but rather to make it possible for the community to do it themselves. And in VFP 9, as with previous versions, the Microsoft Fox Team, however small compared to the legions of people on the VS team, continue to deliver on a promise of making the product so darn open that if you don't like what it does, you can always change it.

And from I've seen from some of the work done in Visual Studio 2005, that is a design concept that is slowly making its way into the larger product as well.

It has never let me down... FOXPRO (VFP)

Tuesday, April 19, 2005

Propaganda Is from MixMeister!

Now that's cool - Propaganda is made by MixMeister, a music mixing software company.

I had tried out their product when looking for a good virtual DJ tool. You can tell in Propaganda. The trial version still shows things like "New Playlist" when it's supposed to be a Podcasting tool. Such a little change would make such a better first impression.

The other thing I really liked in MixCastLive was the ability to assign sounds to "buttons" so while I was recording my voice, I could easily add in a "whoosh" or something.

That's basically because there are two different ways of building podcasts: Live and recorded. Of course, someone may always edit them later on but the Live approach is so much more fun because you're recording right there and you don't have to make notes like "don't forget to put the whoosh here". Yes, you may need to edit the file later to remove the ahs and gotchas but overall it's much more "Here I am and here we go." You are the "star" or the "presenter".

BUT if you record everything in advance, it's also beneficial because you can then splice things together. You become the "Editor" or the "planner"

In truth, you have to be both but I wish there was ONE tool that did everything.

Propaganda Podcasting Software

Propaganda Podcasting Software

Looks like Adam Curry's CastBlaster is starting to have some real competition.

There's :
Propaganda
Mix CastLive
Blog Matrix
and of course
Audacity

Monday, April 18, 2005

Will You Be Last Developer Standing ?

You've got to like a developer game like this.

"Expand your knowledge, test your skills, gain a competitive edge - even have a little fun. At Microsoft, we're always looking for ways to provide developers like you with ongoing education and training.

If you answer all the questions in every module correctly or answer the highest percentage of questions right out of all contestants, you could be crowned the Last Developer Standing and receive $25,000 from Microsoft.

Oops - read more - you can only be the Last CANADIAN Developer Standing. I guess somethings are country-specific.

Last Developer Standing

Visual Studio 2005 Beta 2 Available

While I agree that the Get Visual Studio 2005 Beta 2 page is great, they should have had a link for MSDN subscribers right on the main page.

A whopping 2.5GB download. Definitely something to get the DVD writer ready for. Hmm....maybe I'll just wait for next month's shipment. nah - I want to play a bit.

But does it really need to be that big? Why can't MSDN provide the partial installs instead of just the ISO files? It may take away from the overall "experience" but it makes it easier to try critical downloads.

Case in point: I downloaded an 600MB ISO file for another product three times only to find out that the ISO image itself was corrupted. Thank goodness for high bandwidth but it still makes me question should I really bother with that huge whopping file instead of just ordering the DVD?

Saturday, April 16, 2005

Office-Style Command Bars in Visual FoxPro

A while ago, I was complaining to someone at Microsoft about what they should do in VFP 10 - in fact, the same point is right on the Wiki list as well:

Office XP/2003 style menu effects

Well, as is usually the case with FoxPro developers, someone - in this case, Alex Grigorjev - has gone and done it themselves. The price is a bit high ($165 US) but not overwhelmingly so.

Check out the demo - it's very good and doesn't rely on third party ActiveX controls (or at least it doesn't seem to).

What's really cool is that you can switch the visual effect simply by changing a property from Office XP, Office 2000, Office 2003, Native XP, Office 2003 on WinXP or even Visual Studio 2005.

Very cool - great job!


Command Bars Library

FoxShow on Experience Podcasting

Hey, the FoxShow is being listed on www.experiencepodcasting.com - that's awesome news.

We also got listed on the IdiotVox

Experience Podcasting :: Computers and Internet :: Programming

Tuesday, April 12, 2005

Mac OS X Dashboard - Haven't I seen This Before?

I'll give Apple heavy kudos on this - they have managed to take something that other OS's have done and turn it into a very "cool" looking demo. The Dashboard is a "home to widgets", tools that let you perform common tasks and provide fast access to information.

Ummm....yes, Microsoft had something called the Digital Dashboard
but that was more about data.

Apple's demo of the Dashboard actually reminds me more of the "Active Desktop" (now, come on - be serious - how many of you still use the Active Desktop? - when I search for Active Desktop on the the MS web site, it takes me to a "The page you are looking for has been removed" but here's a link to a recent (well semi-recent) article. The description from Microsoft:

The Active Desktop interface lets you put "active content" from Web pages onto your desktop. For example, you could put a constantly updating stock ticker in a handy place on your desktop or make your favorite online newspaper your desktop wallpaper. You can make your desktop truly your own space by adding the active items you need to refer to on a regular basis: news, weather, sports, stock prices, or whatever you want to have at hand. Your desktop can now reflect you--your preferences and your style.

Kind of sounds the same? Wonder if the fate will be the same. I recall when it first came out, many end users turned it on only to have their IT people run around turning it off because it confused them so much. Hopefully Apple users will have a better experience (they typically do)

Yes, the Apple demo really does look very cool but as Ars Technico notes : You can probably guess that those special effects won't work on every Mac out there.

Apple - Mac OS X - Theater - Dashboard

Saturday, April 09, 2005

Articles Reduxe: Using Drag and Drop In Visual FoxPro and SAPI

I just posted a few older articles online about Speech Integration and Using Drag/Drop in VFP.

I recently had to revisit the Drag/Drop article (originally written in 2001). I was implementing drag/drop but it also had to co-exist with a right-mouse click and a Double-click event that were pulling up Visual FoxPro forms.

The objects being used weren't ActiveX controls but regular FoxPro controls, but if you use the standard DragMode and Drag events in the VFP base classes, they conflict with the Double-click and right-click events.

The solution? Use the OLE Drag and Drop.

Now one thing that's not mentioned in this article is a property called CreateDragImage. That's a property Windows uses often with ListView controls to create that shaded image that appears under the cursor when it's being dragged. Sadly, that function doesn't work properly with Visual FoxPro so you have to build your own cursor or icon to make it look right.

This is one of those things where the FoxTeam at Microsoft might want to look for ideas for Visual FoxPro 10. Why? Because these are the little things that work in other environments but don't work in VFP that bug the FoxPro developers. There may be a hundred (valid!) reasons for it and it would take an army to figure them all out but they always cause those little moments where people go "damn! - why doesn't this work."

Andrew's White Papers

Friday, April 08, 2005

Importing HHC files with West Wind HTML Help Builder

If you've never tried it, West-Wind Help Builder can be a life-saver. A great tool for creating both Technical and EndUser help files. On the technical side, it lets you import in class definitions and data dictionaries, making it easier to get a total scope of a project.

But what's been missing has been a way to move existing help projects (those built using the Microsoft HTML Help Workshop) into Help Builder.

Now , under the hood, WW's Help Builder uses the Visual FoxPro data file so if you're intrigued, you can type in USE myHelp.VBP and browse the project to get a good feeling behind all of the data.

So the HTML Workshop builds its table of contents with an HHC file which is a terrible HTML file that looks like this:








    • So I imported it into a VFP memvar and then populated the West-Wind Help Project's VBP file. Here's the full code. It's NOT polished but I noted it on the FoxShow podcast and wanted to ensure it was up here:

      LPARAMETERS tcFile,tcProj

      IF NOT FILE(tcFile)
      RETURN .F.
      ENDIF

      IF NOT EMPTY(tcProj) AND NOT USED("PROJFILE")
      USE (tcProj) IN 0 AGAIN SHARED ALIAS projFile
      ENDIF
      lcFile = FILETOSTR(tcFile)

      LOCAL lnlines
      lnLInes = ALINES(la,lcFile)
      LOCAL llStart,lcParent,lcPrevParent

      ** Note: the INDEX is the top level root ID of the HBP file.
      lcPrevParent = "INDEX"
      lcParent = "INDEX"
      llStart = .F.
      lnAdded = 0
      lnID=3
      lcLast = "INDEX"
      lnStart = 900
      FOR lni = 1 TO lnLines
      lcLine = STRTRAN(ALLTRIM(la(lni))," ")
      IF lcLine = "
        "
        llStart = .T.
        lcPrevParent = lcParent
        lcParent = lcLast
        LOOP
        ENDIF
        IF NOT llStart
        LOOP
        ENDIF
        IF lcLine = "
      • ** New Item
        lcName = ""
        lcContent = ""
        LOOP
        ENDIF
        IF lcLine=[ lcName = STREXTRACT(lcLine,[value="],[">])
        LOOP
        ENDIF
        IF lcLine=[ lcFile = STREXTRACT(lcLine,[value="],[">])
        IF FILE(lcFile)
        lcContent = FILETOSTR(lcFile)
        ELSE
        lcContent = "File "+lcFile+" could not be found"
        ENDIF
        LOOP
        ENDIF
        IF lcLine=[]
        ** Add it
        lcID = SYS(2015)
        INSERT INTO projFile (pk,parentpk,topic,type,body,helpid,sortorder) ;
        VALUES (lcID,lcParent,lcName,"HEADER",lcContent,lnID,IIF(lcParent="INDEX",lnStart,0))

        IF lcParent="INDEX"
        lnstart = MAX(0,lnStart-100)
        ENDIF
        lnID = lnID+1
        lcLast = lcID
        lnAdded = lnAdded+1
        ENDIF
        IF LcLine = [
      ]
      lcParent = lcPrevParent
      ENDIF
      ENDFOR

      ** Now the rest of this code was written to clean up some of the garbage that came in with those old HTML files.

      SELECT projfile
      REPLACE ALL body WITH STRTRAN(body,[])
      REPLACE ALL body WITH STRTRAN(body,[])
      REPLACE ALL body WITH STRTRAN(body,[])
      REPLACE ALL body WITH STRTRAN(body,[])
      REPLACE ALL body WITH STRTRAN(body,[])
      REPLACE ALL body WITH STRTRAN(body,[])
      REPLACE ALL body WITH STRTRAN(body,[])
      replace ALL body WITH STRTRAN(body,"<","<<")
      replace ALL body WITH STRTRAN(body,">",">>")
      ? lnAdded

      Thinking back, I could likely have just used STREXTRACT for some of these but I needed something quick and dirty and this definitely does the trick. Also note that one of other cool things it does is IMPORT in the actual source.

      You'll still have a lot of clean-up work to do but not a lot of re-writing.

      West Wind HTML Help Builder

FoxShow #4 Posted

FoxShow podcast #4 was recorded with BlogMatrix and includes a new intro so let me know how it sounds.


FoxPro, Business and other stuff : akselsoft.libsyn.com

Thursday, April 07, 2005

Windows 2003 SP1 problems continue for others as well

Looks like I'm not the only one having problems with Service Pack 1 either....

Evan Erwee just commented that he is ALSO having problems "It killed SMS. No ASP is working"

Evan, I solved my problem the old fashioned way - I rolled back to a previous release. But the reports of the latest MS problems continue to grow. One of my client's email server was down for 5 days (update - I did not upgrade this client to SP1 - rather their own IT admin did) , and as I noted previously, Microsoft's own bCentral site had problems with emails.

Now granted, it's impossible to expect MS to be able to test EVERY possible permutation. BUT the solution here is for their Service packs to actually DETAIL what they did and let people know how to fix individual pieces of it.

In my case, for example, what the heck did it do to ASP.Net to break it in the first place? Why didn't it TELL me that it was going to Lock down my server (FWIW, Windows 2003 server tells you this as soon as you install it)

As a self-employed consultant/developer, I've got better things to do with my time than troubleshoot server problems (note: on what are essentially out of the box installations.)

Andrew MacNeill - AKSEL Solutions: Windows 2003 SP1 Broke My ASP.Net

Wednesday, April 06, 2005

The result of Windows 2003 SP1

Well Ted, all I can say is I'm still running Windows 2003, but not SP1.

Many people have offered suggestions and I'm reading other ideas but I'm staying away from Windows 2003 Service Pack 1.

At least until I have nothing better to do with my weekend....

And to make matters worse, a bunch of my clients, who manage their own servers AND THOSE who have it hosted, experienced emails problems from Oct 31 - today. Coincidence? I'm not sure. While I wouldn't blame Microsoft, some of my customers are immediately blaming their lack of server software on the big guy.

Looking for a way out or...pointing the right finger...who knows....

Andrew MacNeill - AKSEL Solutions: Scobleizer: Microsoft Geek Blogger

Satellite views from Google Maps

One of the things that they DON'T tell you in the instructions - is that you can also pass it Lat and Long coordinates.

Try it here

I just entered the coordinates of 36.1510638892651,-80.2772927284241 into the search box.


Ken Levy's Blog : Satellite views of Microsoft and more from Google Maps

Tuesday, April 05, 2005

Scobleizer: Microsoft Geek Blogger

Robert - wish you well... but don't do that when I'm in the middle of rebooting my Win2003 Server (without the freakin' SP1 update)

Scobleizer: Microsoft Geek Blogger

Playing Music on SmartPhones and Pocket PCs

Rick posted about some proprietary plugs on his
AudioVox SmartPhone - same thing exists with the HP Pocket PCs - and yes, it IS very annoying.

However , like Rick, I find the MUSIC experience annoying as well.

My main gripe?

I can't assign button controls to cue podcasts properly. Yes, I can assign that the Left button moves me back a track and the right button moves me forward and the center does a play and a pause BUT what I really need (especially now that most of my stuff is done with Podcasts and BlogMatrix radio downloadings) - is a cue button. It's a real pain to have to pull out my stylus (while driving) or use my thumb to attempt to move the little "thumb" further along the sound track.

What's more? 64MB ROM simply isn't enough - after installing the latest patches, I don't have room for anything anymore - even with my 1GB SD card (which only holds music and podcasts).

Monday, April 04, 2005

If a blogger isn't a journalist, does the publication ban apply to them?

In Canada, there's a big uproar. We have this huge commission investigating goverment fraud. Now, the judge in charge put a publication ban on certain witnesses as there are some criminal charges pending here.

But apparently ONE US web site blew the lid wide open since the Canadian ban doesn't apply to them. The testimony is quite revealing - showing that the corruption wasn't just one or two people but the entire Liberal party (or at least its administrators).

My question though would simply be if bloggers aren't permitted to be given the same level of "protection" that journalists are, then why SHOULDN'T they be allowed to talk about it (albeit in hushed whispers and innuendo)?

(This is fairly tongue in cheek ) - if you report on something that is supposedly BANNED, then obviously that's wrong but how can judges today honestly expect publication bans to work? It didn't work in the US (Matt Drudge is an example of that) and it's not working in Canada.

Perhaps the Vatican has the right approach. Lock everyone away until a decision has been made but then so much for letting everyone know...

BlogMatrix - Sparks!

Wow! Can't believe this slipped in under the radar. Not only a blogging tool, but also a Podcast retriever, recorder and provides the ability to record from live radio feeds (at scheduled times).

It didn't at first look like it could handle WAV files but upon opening a WAV file as an import music, it immediately converted it into an MP3 file.

David Janes has certainly created an amazing tool here. AND he's Canadian to boot.

BlogMatrix - Sparks!

Saturday, April 02, 2005

ListView - Sorting by Number or Date

A lot of people are faced with the challenge of sorting a ListView list by numeric value or date. If you do a search, you'll see all kinds of API re-writes and special functions to make it work.

Of course, DotNet has its own way of doing it which looks equally troubling.

The easiest workaround is simply to change your date format to be YMD but that isn't typically a good solution for US companies or applications that show the long date.

But there's an easier way. It was briefly noted here but I wanted to give VFP developers a very straightfoward example.

Short Answer: Create a new column on the list view with a width of zero. Populate the list with the DTOS or sortable version of the value and then instead of setting the SortKey to the displayed column - set it to the OTHER column instead.

This works like a charm.

Some code (if you will)

In the ColumnClick method of the ListView, put in
LPARAMETER columnheader
IF columnheader.Text = "Date"
THIS.SortKey = columnheader.Index
ELSE
THIS.SortKey = columnheader.index-1
ENDIF

WITH THISFORM.ListView
.ColumnHeaders.Add(,,"FileName",100)
.ColumnHeaders.Add(,,"Date",60)
.ColumnHeaders.Add(,,"RealDate",0)

lo = .ListItems.Add(,"NewFile","New File")
lo.SubItems(1) = DTOC(DATE())
lo.SubItems(2) = DTOS(DATE())
lo = .ListItems.Add(,"OlderFile","Old File")
lo.SubItems(1) = DTOC(GOMONTH(DATE(),-5))
lo.SubItems(2) = DTOS(GOMONTH(DATE(),-5))

lo = .ListItems.Add(,"ROlderFile","Really Old File")
lo.SubItems(1) = DTOC(GOMONTH(DATE(),-12))
lo.SubItems(2) = DTOS(GOMONTH(DATE(),-12))
.View = 3
.Sorted = .T.
ENDWITH

Now a few things to note:
1. ListViews can only show TEXT in their columns. That's why I'm using DTOC which makes it appear in the standard format but then DTOS to put it into a useful SORTABLE format

2. The ColumnClick method shown here is really basic. If you wanted to add support for ascending and descending orders, it might look like this:

Procedure ColumnClick
LPARAMETERS ColumnHeader

IF THIS.sortOrder = 0
THIS.SortOrder = 1 && Descending
ELSE
THIS.SortOrder = 0 && Ascending
ENDIF
IF columnHeader.Text = "Date"
THIS.SortKey = ColumnHeader.Index
ELSE
THIS.SortKey = ColumnHeader.Index - 1
ENDIF

Now if you need to do this for a number, instead of using DTOC and DTOS , just pad the numbers with zeroes.

Does MSN Search filter out blogspot blogs?

I was comparing search engines and did a search for the term "akselsoft" (which is typically my login as well as my blog location.

Using Google, the blog comes up as #1 (well, Google does own Blogger). But interestingly enough, it didn't show up at all on MSN Search but my PodCast (akselsoft.libsyn.com) did.

On MSN Search, it DID find sites that referred to the blog location (akselsoft.blogspot.com) but it never put the actual blogspot post in any of the search results.

Very strange indeed and it makes me wonder if I should move the main site to another location. It doesn't do it for weblogs (Ted Roche comes up immediately with his radio.weblogs.com/0117767) but it DOES look like it does it for bloglines as well.

MSN Search: akselsoft

Friday, April 01, 2005

FoxShow #3 Up

The FoxShow #3 is up. The quality once again isn't that great due to ongoing problems with my Dell and my microphone and my time's been very tight this week however..

A summary of some recent posts (including my tirade against Win2003 SP1) and a discussion on OLEDragDrop that I recently had to go through. I'm in the midst of making a fairly large post on it right up here. Should be up later today.