8.30.2005

Free Opera license

As part of their 10th anniversary celebration, the folks at Opera Software are giving away free registration codes for the Opera browser. If you're a Web developer and want to be able to test in Opera — or if you simply want to try it out — this is a good opportunity to get what I assume is an ad-free version of their popular browser.

Jon Galloway blogs that this offer is good only until 12 AM PDT August 31, so if you're interested hurry on over to the Opera Party page or go directly to the free registration page.

8.25.2005

ISTool 5.1.5

If you use Inno Setup you owe it to yourself to also use the companion tool ISTool, which provides a phenomenally useful GUI interface to your Inno Setup scripts. ISTool v5.1.5 was just released, keeping up its tradition of staying in sync with the latest version of Inno Setup itself.

8.18.2005

Inno Setup 5.1.5 Released

Inno Setup version 5.1.5 has been released and is available for download at jrsoftware.org/isdl.php. Read what's new in this latest point release at jrsoftware.org/files/is5-whatsnew.htm.

It's been nearly three months since v5.1.4 came out, which was the first non-beta version to support the installation of 64-bit applications on 64-bit versions of Windows. This product is very stable and has been for quite some time, but it continues to receive tweaks and enhancements.

8.12.2005

Deja View, or Why Too Many RSS Feeds May Not Be A Good Thing

In the beginning, there was RSS. Along came a good feed reader, and my daily work-related surfing habits changed dramatically: 30-60 minutes every day of browsing individual websites to keep up with what's happening were replaced by 5-10 minutes of scanning headlines and occasionally reading a complete story.

Time was saved. Life was good.

But that was then, and this is now. It's no exaggeration to say the number of RSS feeds out there has grown exponentially in 2005. This is largely due to two factors: blogs, and publishers adding RSS feeds to websites that didn't have them before.

Naturally, as the number of feeds proliferated, so did the population of my Favorite Feeds folder. One year ago, there were probably 10-15 feeds I looked at every day. Today, there are easily over a hundred. My 5-10 minutes of scanning headlines has ballooned to 20-30 minutes of reading feed updates. Twice a day. And that's just to stay current: never mind the forays into new and interesting feeds that crop up all the time.

Information overload is very real these days.

What makes it worse, I'm seeing a growing amount of overlap among feeds. For one thing, many news feeds pick up the same story. Then somebody who sees that new item blogs about it, and somebody else sees that blog and posts a reference to it. And so on. I find myself seeing the same material, in one way or another, more than once on a regular basis.

Call it Deja View: the feeling of "haven't I seen this someplace before?"

Is this happening to you, too?

At least one solution is obvious, albeit painful: cut back on the number of feeds I'm reading every day. It's not an easy decision to make, but it's probably inevitable. The risk of missing something important has to be weighed against the benefit of gaining back some valuable time.

I have no idea which feeds I'll stop reading regularly. But I'm going to have to start somewhere. Tempus fugit.

8.10.2005

Amyuni PDF Converter 2.50d bug fix

Among other issues it addresses, Amyuni PDF Converter 2.50d includes a fix for a bug that sometimes caused Adobe® Reader® 7.0 to encounter errors when attempting to render images in a PDF file created by an earlier version of the Amyuni PDF Converter. In my experience this problem showed up frequently in Web pages I'd captured to PDF. According to Amyuni's release notes for version 2.50d, the issue is specific to Acrobat® version 7.

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.

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.

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".

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".

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.

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.]

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.