Shareware Beach

Monday, 11 June 2007

Emulating Bugs in Regex Flavors

Filed under: Just Great Software — Jan @ 7:50

RegexBuddy user Steven Levithan blogged about the RegexBuddy 3 beta. He raised the question whether RegexBuddy would also emulate bugs as part of its new ability to emulate other regular expression flavors.

Whether RegexBuddy will mimic bugs depends on whether the developers of the library intend to fix the bugs. During development of RegexBuddy 3, I discovered that PCRE treated \Q..\E differently in character classes than Perl. I reported this to PCRE’s author, who responded he considered it a bug that should be fixed. At that point I decided RegexBuddy wouldn’t emulate PCRE’s incorrect behavior, since doing so would make RegexBuddy incorrect down the road. In fact, Philip Hazel has already fixed the bug in PCRE 7.0.

A bug that RegexBuddy does emulate is the fact that in Ruby, (?m) does the same as (?s) in Perl and all other Perl-style regex flavors. Ruby does not support Perl’s (?m) at all. I consider this a serious bug in Ruby, since (?s) and (?m) are confusing enough (due to their poor naming–the actual features are easy to understand) without Ruby switching their meaning. However, there’s no way this will be fixed in Ruby, since it would break all Ruby scripts that use (?m). All Ruby’s developers could do is to make both (?s) and (?m) do the same as (?s) in Perl. So in this case, RegexBuddy does interpret (?m) the way Ruby does, when you select the Ruby flavor.

Steven is right of course that RegexBuddy can never be 100% accurate in its emulation. Even different versions of the same tool aren’t 100% compatible. E.g. PCRE 7.0 treats \Q..\E differently inside character classes than all previous versions of PCRE. This particular bug is pretty obscure though, so I doubt anyone will run into it in practice. It occurs when using \Q..\E as the start or end of a range, e.g.: [a-\Qz\E]. In Perl and PCRE 7, this matches the range a-z like [a-z]. In earlier versions of PCRE, this matches the three characters a, – and z, like [-az].

Sunday, 6 May 2007

First Attempt at User Forums

Filed under: Just Great Software — Jan @ 17:09

A few days ago I released the first beta of RegexBuddy 3. As usual, I did so without much fanfare. I’ve only announced it to a small group of people. There’s no need to torture casual users with the instabilities inherent to a beta version. If you didn’t get an email, you can still download the beta. The beta is open to all licensed RegexBuddy users.

RegexBuddy 3 brings a whole lot of new features that make it even easier to work with regular expressions with even more programming languages and libraries. What sets RegexBuddy 3 apart from all other regular expression tools (including RegexBuddy 2) is that it can emulate the limitations of all the regex flavors that it supports. So you won’t have to ponder why your regular expression works perfectly in VB.NET but not in VBScript. RegexBuddy will tell you why.

But the addition that will have the biggest impact on Just Great Software as a business are the new RegexBuddy user forums. A lot of people have been asking for forums for all our products for quite some time. It hadn’t happened so far, because I didn’t want to just slap some open source forum package onto the JGsoft web site and then see it only get used for spam.

I’ve seen too many forums on small publishers’ web sites where all that happens is the developer fielding support questions. If the support questions are few, the whole forum just gives me a spooky abandoned feeling. Such forums may still save the developer having to answer the same questions to a certain degree. But if people read support forums like they read help files and manuals, it’s not going to be huge. Then I’d rather go on keeping support replies in AceText. It takes less than a minute to send out a canned reply. If the reply is appropriate, it adds much more of a personal touch than reading a reply on a forum addressed to somebody else with the same problem. Many trial users make their buying decision when they get a prompt reply to a support email.

For user forums to be worthwhile, they have to be community forums rather than support forums. A place where people can discuss aspects of the product that they wouldn’t bore a tech support rep with. (It still surprises me how apologetic some people are when they run into trouble with our software, even if the problem is with the software. I wonder how many just carry their cross without ever asking for help.) Then the forums would add something to the product (community) without repackaging what’s already available (technical support).

For a forum to become a community, it needs plenty of active participants. To have plenty of active participants, the barrier of entry has to be very low. It has to be very low the first time, and each and every time thereafter. As a user, when I run into trouble with a product for which web-based forums are available, I do take a look at the forums. But if I don’t see an answer quickly, I give up and just fire off an email. The reason is the barrier to sending an email is much lower. I open my email client, write the email, and send it. But to get onto a web-based forum, I generally need to create a forum account, even though I’m already in another database as a registered user. Then I need to wait for some verification mail, and then I can finally ask my question. By that time I’ve dug up the CEO’s personal email address to tell him where it’s at.

The problem with web-based forums is that they’re disconnected from the software they’re about. Sure, the login issue could be improved by automatically creating forum accounts for licensed users. But I still need to switch from the application I’m using to my web browser to get into the discussion. I can do that if I have a pressing problem, but not to just chat a bit and see what’s up. I’m too busy.

Thus my plan to integrate the forums right into the software. In RegexBuddy 3, there’s one new tab, conveniently labeled “Forum”. The tabs are now dockable and floatable, so you can rearrange them as you like. Click the Login button and you’re on. RegexBuddy will automatically use your license details to log you in. No hassle. If you have RegexBuddy (legally), you have instant forum access. The forum system is multi-threaded and cached, and should be much faster than traditional page-based forums on the web.

Instant access could still be done with web-based forums via a menu item that launches a special URL with embedded account info. But I believe the real benefit of the integrated forums will be the integrated handling of attachments. Copying and pasting a regular expression from RegexBuddy into an email or web forum is easy. But people always forget to mention which options (case insenstive, etc.) they’ve set. In the integrated forums, clicking Add and then Regular Expression will attach the regex with all options. Readers can click Use to instantly load the regex into RegexBuddy. The same trick works with test data, the library, grep, and source code templates. The beta version will even naughtily attach the debugging log without being asked, if it notices there are new errors in the log. A good picture is said to be worth 1,000 words. But actual data is worth 1,000 Outlook.bmp screen shots in which an error box covers up the action. Instead of trying to explain what you’re doing, just show it with two mouse clicks.

Of course, it remains to be seen how successful RegexBuddy’s forums will be. Of all the people who requested support forums, 100% did so while requesting technical support, hoping for somebody to bail them out quickly. Nobody requested support forums because they wanted a platform to share the love of Just Great Software and help others reach enlightenment. But if a community grows, the plan is to implement the same system in the other Just Great Software products as they get major upgrades.

I’ll keep you posted. In the forums.

Thursday, 22 February 2007

Behind The Scenes 2007

Filed under: Just Great Software — Jan @ 17:24

When I referenced my 2005 behind the scenes post in a recent entry on Windows Vista, it reminded me it’s time for another look behind the scenes. My current setup is quite different from what I had two years ago.

The hardware is all new. Later in 2005, my PC broke down, and I decided to get a whole new system with a dual core CPU: the Pentium D 820. It was the cheapest at the time, and it’s still serving me just fine. I put the CPU, 2GB of RAM, a 160 GB hard disk and a GeForce 6600 card into the Shuttle SD31P bare-bones system. I replaced my two hulking 19″ CRT monitors with two LG L1980Q 19″ LCDs. While I was at it, I installed Windows XP as my main development OS. I now have a triple-boot system with Windows XP, my old Windows 2000 setup, and Vista x64 for testing. Installing Vista went totally smoothly. The only hardware it didn’t recognize was the SoundBlaster Live that’s built into the SD31P. I easily downloaded the drivers from Creative’s web site. I’ll be sticking with XP as my main development OS for the time being though. I probably won’t switch to Vista until there’s a 64-bit version of Delphi, which will likely take another year or two.

I also migrated from Delphi 7 to Delphi 2006. Though the new IDE requires a lot more memory and CPU power than nimble old D7, the new IDE features are well worth it. Particularly the debugging enhancements like being able to see local variables for the whole call stack and expanding objects to see their properties in watches and debugger tooltips are great.

JGsoft behind the scenes 2007

So, what happened to my keyboard and mouse? As I wrote back in September, early but undeniable symptoms of RSI prompted my to rethink my habits and equipment. As for input devices, I’ve settled for a DataHand instead of a keyboard, and a Microsoft Explorer trackball instead of a mouse. Yes, it’s really possible to type as fast on a DataHand as on a normal keyboard. With practice. But I’m happy to be typing at all.

Sunday, 31 December 2006

10 Years Later

Filed under: Just Great Software — Jan @ 17:39

The past 10 years have been quite an amazing ride. In December 1996, while a university freshman, I sold the first three copies of HelpScribble 1.0. I never graduated, but what started as a hobby has grown into a thriving business, my full-time occupation since January 2000. It’s been more successful that I had dared to dream 10 years ago.

As we swap the 2006 calendar for 2007 (or 2550 here in Thailand), I’d like to thank everybody who has been a part of our success by purchasing one or more of our products. I spent quite some time going through the outstanding feature requests for all our products, giving me plenty of plans for 2007. Right now my focus is on Windows Vista. The latest versions of all our products should be fully compatible with Vista before its public release on Jan 30.

I hope that 2006 has been a good year for you as well, and that 2007 may be even better. I’ll try to do my part with new and improved “Just Great Software”. Until next year!

« Previous PageNext Page »