Update: Conflict between TopStyle and Microsoft Fingerprint Reader

Earlier this month I posted about a conflict between Microsoft’s Fingerprint reader and TopStyle which caused a harmless (but annoying) error message to appear every time TopStyle was closed.

Since my initial post, I’ve installed a Fingerprint Reader (cool toy, btw) and have been able to reproduce the problem. More importantly, I’ve located the line of code where the error occurs. Although I’m stumped as to why the Fingerprint Reader software is causing the problem, I do have a fix in place that appears to be working. I plan to keep running TopStyle with this fix for a few weeks to make sure it’s reliable, and if all goes well I’ll make it available to everyone who is experiencing the problem.

Behind the scenes

FeedDemon in developmentI’ve had a number of requests to share more details of how I develop my software, so I thought I’d write about the tools I use. This is probably only of interest to fellow developers, so feel free to skip this if you have a job with normal hours :)

As some of you know, I used Delphi to create all of my shareware programs (HomeSite, TopStyle and FeedDemon), and I’ve been very happy with it (although I will admit that I’m toying with C# as well). One of the main reasons I use Delphi is because it creates fast executables that don’t require runtime DLLs. Before I created HomeSite I was a client-server developer working in Visual Basic, and VB’s runtime DLLs were a constant source of problems. I had enough trouble trying to support people in the same building who had DLL-related problems – I can’t imagine trying to deal with these same problems with shareware, where your application is used all over the world on countless different computer configurations.

Here’s a screenshot of FeedDemon as it appears in Delphi’s IDE while I’m working on it, and here’s one of TopStyle. As you can see, they look pretty boring at design-time – most of the eye-candy is created dynamically at run-time, which enables me to avoid allocating resources (memory, window handles, etc.) for features that aren’t being used. This also means that the apps start much faster, since they don’t have to create every single UI object before they load.

If you’re a Delphi developer, you may be interested in which third-party components I rely on. I try to write my own components when possible, but I do use a number of components from Developer Express, plus a few from TMSSoftware and Shell+. I should add that I’ve purchased the source code for every third-party component I use, and in many cases have customized them to do things they don’t support out-of-the-box (such as Unicode).

One of the things many of my customers have commented on is how fast my programs are compared to the competition, and this is something I’m proud of. Believe it or not, I trace much of this to the fact that I wrote games in assembler on a TRS-80 when I was kid. When you work in assembler, you really learn how things like memory allocation can kill performance. These days I rely on the AQTime profiler to locate the bottlenecks in my code, especially once the code is out of the beta stage. There were many days during FeedDemon 1.5‘s development where I spent more time using my profiler than I did actually writing code.

I use FinalBuilder to automate the entire build process (compile the software, build the help file, create the install program, etc.), and I couldn’t live without it. A few years ago I relied upon WISE to create my installers, but these days I use Inno Setup and recommend it highly.

Well, my inbox has become dangerously full in the time it took to write this, so it’s back to work for me. If you’d like to hear me prattle on about more development-related topics, let me know!

Conflict between TopStyle and Microsoft Fingerprint Reader

I’ve recently had a few reports of TopStyle generating an “access violation” error when it closes, and it looks like the problem is due to some sort of conflict with the software for Microsoft’s new Fingerprint Reader.

If you’re using a fingerprint reader and are experiencing this problem, rest assured that the error message is harmless – you can simply click OK to dismiss it. However, I do understand that it’s annoying since it apparently happens every time you close TopStyle, so it is something that needs to be resolved. I’ve ordered a fingerprint reader so I can reproduce and hopefully fix the problem.

CSS and RSS: Rivals or Partners?

I recently made plans to attend this year’s South by Southwest conference and was reminded of a conversation I had at last year’s SxSW. I was talking about RSS with someone who has long been a supporter of CSS-based web design, and he feared that the success of RSS meant that design has lost the battle to content. After all, RSS is all about content – when you read a site’s feed in an aggregator like FeedDemon, you’re not seeing the hard work put into that site’s design. This lead to a comment that TopStyle and FeedDemon were in fact at odds with each other.

I hadn’t considered that before, but it made sense. TopStyle is all about designing standards-compliant CSS-based designs, whereas FeedDemon enables skipping the design and just reading a site’s content. But then it occurred to me that instead of being polar opposites, my programs are actually complementary. TopStyle’s CSS creation enables the separation of layout from content, leading to smaller, faster-loading sites whose design information is contained in style sheets rather than interwoven with every page. This makes it much easier to repurpose a site’s content for use in an RSS feed.

Plus, in many ways RSS is an offspring of blogging, and blogging tools rely heavily on CSS-based design. Just look at sites hosted by TypePad and Blogger, or sites which rely on blogging tools such as MovableType and WordPress – almost all of them use CSS to separate their layout from their content.

So, rather than being rivals, I think CSS has helped enable the spread of RSS.

Related links:

TopStyle 3.11 reviewed by WebReference.com

WebReference.com just posted a great review of TopStyle Pro 3.11. Here’s a quote from the review:

“TopStyle was created by Nick Bradbury, creator of the HomeSite HTML editor. For those of you who like HomeSite, you’ll love TopStyle Pro. This program is jam-packed with all kinds of features.”

And here’s another one:

“TopStyle Pro is a very comprehensive (X)HTML/CSS editor. Overall, the program should make your Web design work flow much easier. If you already have a favorite program for developing Web sites, TopStyle Pro can work along side it, adding many other features not found anywhere else.”

Disaster Relief

Greg Hughes is right:

“This is the right time to stop what you normally do, get out of your little digital world that you assume is all-defining and all-encompassing (it’s not, really) and come back to reality…Very real people are experiencing very real pain, and you can do your part to help them recover.”

Until the end of the month, everything I earn from TopStyle and FeedDemon will be donated to the International Red Cross to help those affected by this disaster.

Update: Looking for a way to help? The Command Post has a list of ways to donate. Or how about pledging your Google AdSense revenue?

Borrowing vs. Stealing

Every now and then I’ll receive an email from a customer alerting me to a competing product that looks a lot like my own, but I’m rarely concerned by these reports. After all, my software borrows plenty of UI ideas from other programs, so how could I raise a stink when someone borrows from me? And quite frankly, it benefits all of us when innovation relies on borrowing – and building upon – existing ideas. That’s how good ideas get refined.

However, once in a while I’ll see a competitor who goes too far. Right now I’m aware of a CSS editor that not only looks similar to TopStyle, but also blatantly uses TopStyle’s data files.

If you look in TopStyle’s \CSSDefs and \HTMLDefs subfolders you’ll find several files containing information about the various flavors of HTML and CSS, which are used by features such as the inspector and style checker. The data isn’t simply a regurgitation of information from the W3C – it also contains details of cross-browser compatibility issues and the like, which represents a significant investment of my time.

This unnamed competitor also has a folder containing CSS and HTML data files – which are the same ones included with TopStyle! This isn’t just coincidence, since they contain the exact same bugs that TopStyle’s data files do (or did, at least, until I corrected them in TopStyle Pro 3.11).

Now, after trying out this product, I can see that it’s far less powerful than TopStyle (it offers no CSS or HTML validation, for example, and has nothing remotely like TopStyle’s site reports). But even so, it’s obviously trying to compete with TopStyle, and I’m not wild about a competitor passing off my work as their own.

I’ve privately contacted the company that makes this editor, but have yet to receive a reply. Short of taking legal action (something I really don’t want to do, since it takes far too much time and money), what are my options here?