7.20.2005
Firefox 1.0.6 is released
It's not my intention to blog every single release of Firefox or any other piece of software, but because I noted the release of Firefox 1.0.5 just a week ago I felt obliged to point out the release of 1.0.6 today. While Firefox 1.0.5 implemented several security fixes, 1.0.6 is characterized in the release notes as "stability update", to wit: "Restore[s] API compatibility for extensions and web applications that did not work in Firefox 1.0.5." In other words, we broke something and now we've fixed it. Maybe this should've been caught in the pre-release testing of 1.0.5, but a fix within a week is still pretty good. Download from www.mozilla.org.
7.15.2005
Atom 1.0
From ongoing, via kottke.org remainders: The Atom feed specification is about to go to 1.0. The link to the comparison of RSS 2.0 and Atom 1.0 is worth following if you're interested in the differences, or read the actual Internet-Draft document for all the details.
7.13.2005
Windows Installer Team Blog
"As part of the ongoing MSDN Communities effort, the Windows Installer Team is pleased to announce the creation of the Windows Installer Team Blog." Find it at blogs.msdn.com/Windows_Installer_Team/. The Windows Installer Team has already been active in MSDN Chats for quite some time. I'm glad to see the new blog, too. Subscribed.
7.12.2005
Firefox 1.0.5 is released
Firefox 1.0.5 of has been released and is available for download here. The release notes indicate this is primarily a security update. The list of issues addressed by this release is here.
7.10.2005
NewsGator acquires FeedDemon Redux
If you've been reading this blog for a while, you know that my favorite RSS feed reader is Nick Bradbury's FeedDemon. In fact, I liked it so much I awarded it my first Insanely Great Software recognition back in February.
You also know that my initial reaction to the news that Nick had sold his company to NewsGator a couple of months ago was not very positive. That reaction was based largely on my concern that FeedDemon would lose its stand-alone capabilities and become subscription software used to sell NewsGator's services.
Last Wednesday, July 6th, those concerns were realized when Nick announced on his blog that yes, indeed, FeedDemon would become subscription-based software. A careful reading of the related blog post by NewsGator CTO and founder Greg Reinacker, in which he explains the rationale behind the software-by-subscription model, revealed that not only would FeedDemon become subsription software but it would effectively cease working -- you wouldn't be able to retrieve any new content -- if you allowed your subscription to expire. To me, it looked like the end of FeedDemon as we know it.
But, fortunately, that's not the end of the story. One reason I've always been a fan of Nick's software, besides its great design and functionality, is his responsiveness to customers' ideas and concerns.
And the good news is, that hasn't changed.
In his July 6th announcment, Nick acknowledged the decision to switch FeedDemon to a subscription model might cause some concerns, and he asked for feedback from users. Predictably, he got it, and, not surprisingly, the comments were mostly opposed.
Nick and NewsGator really did listen.
On July 8th, not two days after the original announcement, Nick blogged that based on the comments they'd received, the decision had been reconsidered and reversed.
The result is that FeedDemon will be able to take advantage of NewsGator's subscription services, such as server-based synchronization, as long as you continue to pay for the service, but FeedDemon won't stop working if you decide to let the subscription lapse.
This is good news for both FeedDemon and its users. I'm now looking forward to trying out the new services, knowing I still have choice down the road. Kudos to both Nick and NewsGator for getting it right.
You also know that my initial reaction to the news that Nick had sold his company to NewsGator a couple of months ago was not very positive. That reaction was based largely on my concern that FeedDemon would lose its stand-alone capabilities and become subscription software used to sell NewsGator's services.
Last Wednesday, July 6th, those concerns were realized when Nick announced on his blog that yes, indeed, FeedDemon would become subscription-based software. A careful reading of the related blog post by NewsGator CTO and founder Greg Reinacker, in which he explains the rationale behind the software-by-subscription model, revealed that not only would FeedDemon become subsription software but it would effectively cease working -- you wouldn't be able to retrieve any new content -- if you allowed your subscription to expire. To me, it looked like the end of FeedDemon as we know it.
But, fortunately, that's not the end of the story. One reason I've always been a fan of Nick's software, besides its great design and functionality, is his responsiveness to customers' ideas and concerns.
And the good news is, that hasn't changed.
In his July 6th announcment, Nick acknowledged the decision to switch FeedDemon to a subscription model might cause some concerns, and he asked for feedback from users. Predictably, he got it, and, not surprisingly, the comments were mostly opposed.
Nick and NewsGator really did listen.
On July 8th, not two days after the original announcement, Nick blogged that based on the comments they'd received, the decision had been reconsidered and reversed.
The result is that FeedDemon will be able to take advantage of NewsGator's subscription services, such as server-based synchronization, as long as you continue to pay for the service, but FeedDemon won't stop working if you decide to let the subscription lapse.
This is good news for both FeedDemon and its users. I'm now looking forward to trying out the new services, knowing I still have choice down the road. Kudos to both Nick and NewsGator for getting it right.
RSS Feeds for Microsoft KB Articles
Microsoft is now providing RSS feeds for its Knowledge Base (KB) articles. The feeds are organized by product, making it easy to subscribe only to those of interest. Visual FoxPro developers will find individual feeds for VFP 7.0, VFP 8.0, and VFP 9.0, and of course there are also individual feeds for the Visual Studio languages and tools (both .NET and 6.0), SQL Server, Office, and whole lot more. You can start with the introductory page at support.microsoft.com/gp/rsshelp or go directly to the full index of feeds at support.microsoft.com/selectindex/?target=rss.
7.08.2005
Free ASP.NET Training from Microsoft®
Spotted on the MSDN home page: For a limited time, Microsoft is offering for free the online training course entitled "Developing Microsoft® ASP.NET Web Applications Using Visual Studio® .NET". Information and registration at msdn.microsoft.com/asp.net/learn/asptraining/.
6.21.2005
Ken Levy's July letter is up
Ken Levy's July Letter from the Editor is up on MSDN. Among other things, Ken offers a few additional comments on Sedna (announced earlier this month in the Visual FoxPro Roadmap) and includes a link to the slides from the Microsoft keynote at DevCon.
6.20.2005
New FeedBurner Feed
Today I set up a FeedBurner feed for this blog. If you use a feed reader that doesn't support the Atom feed supplied by Blogger, you can now subscribe to the RSS feed via FeedBurner. If you're coming at this blog from its index page, you'll notice there are now two separate feed links.
Up until now I have been reluctant to sign up with FeedBurner, out of a vague sense I might be entering into a commitment I didn't fully understand and might not want to continue. But recently, FeedBurner announced that it now offers a graceful way out if you decide to stop using their service, and as a result, I'm much more comfortable with it. A fellow named Tom Coates posted a good analysis of this new FeedBurner service, which I found helpful. Judging from Tom's post and comments posted in response to the announcement on the FeedBurner blog, others have shared similar concerns and are welcoming this new service, too.
Up until now I have been reluctant to sign up with FeedBurner, out of a vague sense I might be entering into a commitment I didn't fully understand and might not want to continue. But recently, FeedBurner announced that it now offers a graceful way out if you decide to stop using their service, and as a result, I'm much more comfortable with it. A fellow named Tom Coates posted a good analysis of this new FeedBurner service, which I found helpful. Judging from Tom's post and comments posted in response to the announcement on the FeedBurner blog, others have shared similar concerns and are welcoming this new service, too.
6.07.2005
Behavior Changes in VFP 9.0: _TALLY
One of the SQL data engine changes introduced in VFP 9.0 affects the value of _TALLY returned after certain kinds of SQL SELECT statements. This change is not documented in the "Changes in Functionality for the Current Release" topic in the VFP 9.0 Help file, and may therefore have escaped the attention of some VFP developers. It is documented under the "SET ENGINEBEHAVIOR Command" topic, however.
The change is this: In previous versions of VFP, _TALLY returns zero when an aggregate function such as SUM() is used and there are no matching records, while in VFP 9.0, when an aggregate function such as SUM() is used without a GROUP BY clause and there are no matching records, _TALLY returns 1 and the result set contains one record with a null value for the aggregate function.
This change breaks code that tests the value of _TALLY to determine if any matching records were found.
To illustrate this, create a table of ten records with integer values and an ID of "foo".
Now perform a SELECT statement to SUM() the nValue of all records with an cID of "bar". Of course, there are no matching records. Under VFP 7.0 and VFP 8.0, the test for _tally = 0 returns true so Procedure A is performed.
Now perform the same test in VFP 9.0. With no other changes to the code, the test for _tally = 0 returns false so Procedure B is performed instead of Procedure A.
The null value of the aggregate function can be seen in the one record in the result set:
Although the best solution is probably to stop relying on _tally altogether, for this as well as for other reasons, one workaround in VFP 9.0 is to include a GROUP BY clause in the SELECT statement, which restores the result obtained in VFP 7.0 and 8.0.
The changes to the SQL engine implemented by the VFP team in versions 8.0 and 9.0 have helped bring VFP's SQL implementation closer in line with SQL standards. This is a good thing, but watch out for changes like this one that might break existing code.
The change is this: In previous versions of VFP, _TALLY returns zero when an aggregate function such as SUM() is used and there are no matching records, while in VFP 9.0, when an aggregate function such as SUM() is used without a GROUP BY clause and there are no matching records, _TALLY returns 1 and the result set contains one record with a null value for the aggregate function.
This change breaks code that tests the value of _TALLY to determine if any matching records were found.
To illustrate this, create a table of ten records with integer values and an ID of "foo".
CREATE TABLE myTable ( cID c(10), nValue I)
LOCAL lni
FOR lni = 1 TO 10
INSERT INTO myTable ( cID, nValue) VALUES ( "foo", lni)
ENDFOR
Now perform a SELECT statement to SUM() the nValue of all records with an cID of "bar". Of course, there are no matching records. Under VFP 7.0 and VFP 8.0, the test for _tally = 0 returns true so Procedure A is performed.
SET ENGINEBEHAVIOR 70
SELECT SUM( nValue) ;
FROM myTable ;
WHERE cID = "bar" ;
INTO CURSOR csrBehavior70
IF _tally = 0 && true
DO Procedure_A && Procedure_A is performed
ELSE
DO Procedure_B
ENDIF
SET ENGINEBEHAVIOR 80
SELECT SUM( nValue) ;
FROM myTable ;
WHERE cID = "bar" ;
INTO CURSOR csrBehavior80
IF _tally = 0 && true
DO Procedure_A && Procedure_A is performed
ELSE
DO Procedure_B
ENDIF
Now perform the same test in VFP 9.0. With no other changes to the code, the test for _tally = 0 returns false so Procedure B is performed instead of Procedure A.
SET ENGINEBEHAVIOR 90
SELECT SUM( nValue) ;
FROM myTable ;
WHERE cID = "bar" ;
INTO CURSOR csrBehavior90
IF _tally = 0 && false
DO Procedure_A
ELSE
DO Procedure_B && Procedure_B is performed
ENDIF
The null value of the aggregate function can be seen in the one record in the result set:
SELECT csrBehavior90
?csrBehavior90.sum_nValue && .NULL.
Although the best solution is probably to stop relying on _tally altogether, for this as well as for other reasons, one workaround in VFP 9.0 is to include a GROUP BY clause in the SELECT statement, which restores the result obtained in VFP 7.0 and 8.0.
SET ENGINEBEHAVIOR 90
SELECT cID, SUM( nValue) ;
FROM myTable ;
WHERE cID = "bar" ;
INTO CURSOR csrBehavior90 ;
GROUP BY cID
IF _tally = 0 && true
DO Procedure_A && Procedure_A is performed
ELSE
DO Procedure_B
ENDIF
The changes to the SQL engine implemented by the VFP team in versions 8.0 and 9.0 have helped bring VFP's SQL implementation closer in line with SQL standards. This is a good thing, but watch out for changes like this one that might break existing code.
6.03.2005
David Stevenson's Talking Fox
The number of VFP developers who are blogging continues to grow as well-known VFP developer and FoxTalk 2.0 editor David Stevenson launches his new blog called Talking Fox. Welcome aboard, Dave!
InstallShield Express News
Macrovision has announced the end of support for several older versions of InstallShield, effective November 1, 2005. Included in the list is InstallShield Express versions 2.0-3.x. Support will continue for InstallShield Express 5.0 and later. See the Macrovision End-of-Life Policy for the official announcement.
The InstallShield Express Limited Edition for Visual FoxPro that ships with VFP 9.0 is based on InstallShield Express version 5.0 and should therefore still be supported. The InstallShield Express Limited Edition for Visual FoxPro that ships with VFP 8.0 is based on InstallShield Express version 3.54, for which support is apparently ending.
The current version of InstallShield Express is version X (as in 'ten'). The InstallShield Premier and Professional editions are already at version 11. In an InstallShield webinar yesterday, InstallShield Product Manager Bob Corrigan announced that Macrovision will be releasing version 11 of the Express product in "mid-2005".
The InstallShield Express Limited Edition for Visual FoxPro that ships with VFP 9.0 is based on InstallShield Express version 5.0 and should therefore still be supported. The InstallShield Express Limited Edition for Visual FoxPro that ships with VFP 8.0 is based on InstallShield Express version 3.54, for which support is apparently ending.
The current version of InstallShield Express is version X (as in 'ten'). The InstallShield Premier and Professional editions are already at version 11. In an InstallShield webinar yesterday, InstallShield Product Manager Bob Corrigan announced that Macrovision will be releasing version 11 of the Express product in "mid-2005".
6.02.2005
Beyond Compare 2.3.1 Released
Scooter Software today released Beyond Compare version 2.3.1. This point update fixes a startup issue under Windows 95, which surfaced in the recently released version 2.3.0, along with a few other miscellaneous fixes and changes. See the change log for a complete list.
It doesn't affect me personally, but kudos to the guys at Scooter Software for still caring about Windows 95. Hard to believe anybody is still running that old horse any more, although I'm sure I'd be surprised to know how many actually still are.
It doesn't affect me personally, but kudos to the guys at Scooter Software for still caring about Windows 95. Hard to believe anybody is still running that old horse any more, although I'm sure I'd be surprised to know how many actually still are.
5.31.2005
Insanely Great Software: Beyond Compare
There are a lot of good utilities out there, but every once in a while one comes along that stands out above the rest. Such programs provide a unique combination of usefulness, reliability, quality, value, and a certain "wow" factor that, in my opinion, earns them the title of Insanely Great Software. This is certainly true of one of my long-time favorite utilities, Beyond Compare® from Scooter Software.
At its core, Beyond Compare is a file and folder comparison and synchronization utility. As a developer, I rely on this kind of utility many times a day to sync my backup folders with their corresponding live folders, to update my deployment folders with the files from the latest build, to compare 'before' and 'after' results during testing, and a variety of other such tasks. Beyond Compare quickly became my favorite for its intuitive interface, ease of use, and great features.
Folder Comparison and Synchronization
Beyond Compare's user interface consists of a pair of side-by-side treeviews showing folders, sub-folders and files. The display, which refreshes rapidly even for long lists, drills down the folder hierarchy from whatever drive or folder you have selected as the root on each side. The intelligent use of color makes it easy to quickly spot matches, mismatches, and orphans between the two sides.
You can choose to view all files or only files that are different on one side than on the other. If you choose to view only files that are different, there are several choices involving various combinations of mismatches, orphans, and files newer on one side than on the other. Toolbar buttons enable you to quickly select the desired view and to expand or collapse all the sub-folders in the view, among other things. As you would expect, you can expand and collapse individual folders by double-clicking them in the treeview.
Other buttons on the Beyond Compare toolbar enable you to easily synchronize two folders by copying newer and unmatched files from one side to the other. Synchronization can be done either en masse or for individually selected folders and/or files.
Zip and FTP
Beyond Compare treats Zip files as folders, enabling comparison and synchronization between a folder and a Zip archive, or even between two Zip archives, as though they were all actual folders. It can also connect to an FTP site on one or both sides of the comparison, thereby extending its functionality beyond the local machine or network.
Sessions and Explorer Integration
If you find yourself frequently comparing the same pairs of folders, Beyond Compare lets you save each set as a named session, which you can then open from a drop-down list the next time you need it. Integration with Windows Explorer (optional, but recommended IMO) enables you to select two folders in Explorer and launch Beyond Compare from the right-click menu. Although I have several dozen saved sessions I use all the time, I still find the integration with Explorer extremely useful for ad hoc comparisons and synchronizations.
File Compare and Editing
Beyond its core functionality, one of Beyond Compare's most useful features IMO is the built-in file comparison and editing capability. With any two files selected, you can launch a file comparison with a just click or two. This gives you a side-by-side, line-by-line comparison of the two files in a separate window, again using color to highlight the differences. The basic file comparison is designed for text files, which of course also works great for Visual FoxPro® program (PRG) files, INI files, header (.h) files, and the like. Plug-ins are available for viewing and comparing other file types, including a Hex viewer for binary files and an image file viewer for popular graphics file types.
The file comparison window has its own toolbar, which includes one-click buttons to immediately jump to the next or previous difference without scrolling. A visual representation of the file runs down the left-hand side of the file comparison window and uses bands of color to illustrate where areas of difference occur. I find this very intuitive and especially useful when working with large files that have only a few differences. The file comparison utility also enables you to edit the files in situ; you can edit individual lines on either side and/or copy a line or a group of selected lines from one side to the other.
Licensing
Another plus is that Beyond Compare can be licensed to the person, not just the machine. The license states that "One registered copy of the Software may either be used by a single person who uses the software personally on one or more computers, or installed on a single computer used by multiple people, but not both." As an independent developer who works primarily on two machines (a desktop PC and a laptop PC) not shared with anyone else, I value this kind of license agreement a lot.
Automation
Beyond Compare can also be automated -- that is, run without a user interface -- via scripting. Rick Schummer of White Light Computing is currently doing some interesting work in this area. Look for his upcoming Class Compare utility for Visual FoxPro, which takes advantage of Beyond Compare's scripting capability to implement some very cool reporting.
When you add it all up, Beyond Compare is a really great piece of software. Go download the latest version and see for yourself.
Beyond Compare is a registered trademark of Scooter Software, Inc. Visual FoxPro is a registered trademark of Microsoft Corp.
['Insanely Great Software' is an occasional series about some of my favorite programs and utilities.]
At its core, Beyond Compare is a file and folder comparison and synchronization utility. As a developer, I rely on this kind of utility many times a day to sync my backup folders with their corresponding live folders, to update my deployment folders with the files from the latest build, to compare 'before' and 'after' results during testing, and a variety of other such tasks. Beyond Compare quickly became my favorite for its intuitive interface, ease of use, and great features.
Folder Comparison and Synchronization
Beyond Compare's user interface consists of a pair of side-by-side treeviews showing folders, sub-folders and files. The display, which refreshes rapidly even for long lists, drills down the folder hierarchy from whatever drive or folder you have selected as the root on each side. The intelligent use of color makes it easy to quickly spot matches, mismatches, and orphans between the two sides.
You can choose to view all files or only files that are different on one side than on the other. If you choose to view only files that are different, there are several choices involving various combinations of mismatches, orphans, and files newer on one side than on the other. Toolbar buttons enable you to quickly select the desired view and to expand or collapse all the sub-folders in the view, among other things. As you would expect, you can expand and collapse individual folders by double-clicking them in the treeview.
Other buttons on the Beyond Compare toolbar enable you to easily synchronize two folders by copying newer and unmatched files from one side to the other. Synchronization can be done either en masse or for individually selected folders and/or files.
Zip and FTP
Beyond Compare treats Zip files as folders, enabling comparison and synchronization between a folder and a Zip archive, or even between two Zip archives, as though they were all actual folders. It can also connect to an FTP site on one or both sides of the comparison, thereby extending its functionality beyond the local machine or network.
Sessions and Explorer Integration
If you find yourself frequently comparing the same pairs of folders, Beyond Compare lets you save each set as a named session, which you can then open from a drop-down list the next time you need it. Integration with Windows Explorer (optional, but recommended IMO) enables you to select two folders in Explorer and launch Beyond Compare from the right-click menu. Although I have several dozen saved sessions I use all the time, I still find the integration with Explorer extremely useful for ad hoc comparisons and synchronizations.
File Compare and Editing
Beyond its core functionality, one of Beyond Compare's most useful features IMO is the built-in file comparison and editing capability. With any two files selected, you can launch a file comparison with a just click or two. This gives you a side-by-side, line-by-line comparison of the two files in a separate window, again using color to highlight the differences. The basic file comparison is designed for text files, which of course also works great for Visual FoxPro® program (PRG) files, INI files, header (.h) files, and the like. Plug-ins are available for viewing and comparing other file types, including a Hex viewer for binary files and an image file viewer for popular graphics file types.
The file comparison window has its own toolbar, which includes one-click buttons to immediately jump to the next or previous difference without scrolling. A visual representation of the file runs down the left-hand side of the file comparison window and uses bands of color to illustrate where areas of difference occur. I find this very intuitive and especially useful when working with large files that have only a few differences. The file comparison utility also enables you to edit the files in situ; you can edit individual lines on either side and/or copy a line or a group of selected lines from one side to the other.
Licensing
Another plus is that Beyond Compare can be licensed to the person, not just the machine. The license states that "One registered copy of the Software may either be used by a single person who uses the software personally on one or more computers, or installed on a single computer used by multiple people, but not both." As an independent developer who works primarily on two machines (a desktop PC and a laptop PC) not shared with anyone else, I value this kind of license agreement a lot.
Automation
Beyond Compare can also be automated -- that is, run without a user interface -- via scripting. Rick Schummer of White Light Computing is currently doing some interesting work in this area. Look for his upcoming Class Compare utility for Visual FoxPro, which takes advantage of Beyond Compare's scripting capability to implement some very cool reporting.
When you add it all up, Beyond Compare is a really great piece of software. Go download the latest version and see for yourself.
Beyond Compare is a registered trademark of Scooter Software, Inc. Visual FoxPro is a registered trademark of Microsoft Corp.
['Insanely Great Software' is an occasional series about some of my favorite programs and utilities.]
Inno Setup 5.1.4 Released
Inno Setup 5.1.4 has just been released and can be downloaded here. The major enhancement in this version is support for installing 64-bit Windows® applications. This version also includes other miscellaneous changes and additions since the previous version 5.0.8. See the Inno Setup 5 Revision History for a complete list.
5.28.2005
BeyondCompare 2.3 Released
Scooter Software has released version 2.3 of Beyond Compare, one of my all-time favorite utilities. After spending a couple of months in beta, this release has been widely anticipated. Judging by the list of changes and enhancements, which runs two printed pages, there's a lot to look forward to. Beyond Compare version 2.3 is available for download here.
Beyond Compare will be featured in the next installment of my Insanely Great Software series here on this blog. Stay tuned.
Beyond Compare will be featured in the next installment of my Insanely Great Software series here on this blog. Stay tuned.
5.26.2005
5.25.2005
What time is it?
I registered for an online 'webinar' today. The confirmation e-mail informed me the event would take place on the specified date at 15:00 BST, 16:00 CEST. Not being sure how to translate this to U.S. time zones, I had to do a search on those terms to find out what they meant. In the process I found a good site at www.computerhope.com/jargon/t/time.htm with a list of several time zone abbreviations and their relationship to GMT. BST in this case is British Summer Time, and CEST is Central Europe Summer Time.
5.17.2005
Newsgator acquires FeedDemon
Straight from the source: Nick Bradbury of Bradbury Software reports on his blog this morning that Newsgator has acquired FeedDemon, Nick's outstanding and highly popular feed reader (see my recent blog), along with Nick's other excellent product, the TopStyle CSS and HTML editor. Given that Nick himself is going to work for Newsgator, the headline should probably read "Newsgator acquires Bradbury Software."
I don't blame Nick in the least for selling out while the market was hot, but I'm not optimistic about this. Main reason? Two words: subscription model. More later after I've had a chance to cool down. Right now I'm not feeling too good about this.
I don't blame Nick in the least for selling out while the market was hot, but I'm not optimistic about this. Main reason? Two words: subscription model. More later after I've had a chance to cool down. Right now I'm not feeling too good about this.
5.16.2005
Internet Explorer 7 has tabs
From Microsoft's IEBlog: "Yes, IE7 has tabs." Good news, and about time. Tabs make inifinite sense when you want to work with multiple Web pages open at the same time. I hope the tabs are on top of the main content and not at the bottom, or at least that they're moveable to suit individual preferences. I also hope IE7 will implement Ctrl+Tab to move from one tab to the next, Ctrl+PgUp and Ctrl+PgDn to move back and forth among tabs, and Ctrl+T to open a new tab from the keyboard. Keyboard shortcuts sometimes get short shrift; those three ought to be standards, IMO.
Subscribe to:
Posts (Atom)