5.16.2007

Your code is suboptimal

SourceGear's Eric Sink came back from SD West 2007 with some extra T-shirts. SourceGear, in case you didn't know, makes tools for professional software developers, and founder Eric Sink is a prolific writer on the subject of software development and the business of software. His blog posts and other writings have earned him a reputation as a guy worth listening to; IMO his stuff is required reading for anyone in the software business.

Back to the T-shirts. At SD West 2007, the deal was you had to agree to wear it around the conference to get one. Rather than letting the extras sit around in a box in the back of the office, Eric's now making them available to anyone who asks and agrees to post a photo of themself wearing it (plus a couple of other requirements - read his blog post for details).

This sounded like fun, and hey, you can't have too many geek T-shirts, can you? So thanks, Eric, for the 'Evil Mastermind' shirt. Here's my photo; as you can see, I had a little fun with it, too. The full-size image is on Flickr.



(Click the shirt to make it speak).

Side note for anybody who's going to Southwest Fox 2007 in Phoenix in October: Keep your eyes open for me wearing this shirt. The first person who comes up to me there and tells me they saw this picture on my blog earns a frosty-cold beverage of their choice.

Tags: , ,

5.08.2007

75% Discount on ListPro

ListPro, a terrific little tool for creating and managing lists of all kinds, is featured on Bits du Jour today for only $4.95 against its regular price of $19.95.

I've used ListPro for several years and have found it to be useful for all kinds of personal and work-related lists. For example, the screenshot is a sample software deployment checklist I demo'd at a recent conference presentation. Items in a list can be arranged into groups in a hierarchy, and groups can be expanded or folded up for ease of use. List items can also be easily moved around to alter their sequence and relative position in the hierarchy. This screenshot shows only two of the several columns that can be associated with each item in a list. I also use ListPro to maintain my pre-conference packing and checklist when preparing to leave on a trip.





As with all items on Bits du Jour, this is a one-day price. ListPro is available for Windows PCs as well as for handheld and other mobile devices.

Tags: , ,

4.27.2007

The FoxShow is back

It's great to see Andrew MacNeill's podcast The FoxShow return after a bit of an extended hiatus. The new show is a goodie, a 45+ minute interview and videocast with Brian Marquis in which he demonstrates a new approach for developing interactive Web apps in Visual FoxPro called VFP on Rails. Brian showed VFP on Rails at Chicago FUDG recently and stimluated quite a bit of interest among members, including Randy Jean who picked up on the idea and posted about it in his blog entry Exploring VFP on Rails.

Good stuff, Brian, and a big "Glad to see you back!" to Andrew and The FoxShow.

Tags: , , , , , ,

4.06.2007

50% Discount on RSS Feed Editor from ExtraLabs

Bits du Jour is featuring Feed Editor from ExtraLabs Software today at a 50% discount. This is one of the commercial products I showed in my session on RSS at Southwest Fox 2006 in Phoenix last October. The one-day-only discount price on Bits du Jour is $19.98, against the regular price of $39.95.

Tags: , , ,

3.18.2007

Remove Internet Explorer [Humor]


Okay, we're all in favor of protecting our machines from malware, but this advice seems a little extreme, don't you think?


Message from Webroot Spy Sweeper after disallowing installation of an unknown browser helper object (BHO) in response to an alert from Spy Sweeper's BHO shield.

3.17.2007

"Works on My Machine" Certification

Heh. Over on Coding Horror, Jeff Atwood picks up on an idea from Joseph Cooney and, with some help from Jon Galloway, offers up a couple of cool logos for the "Works on My Machine" software certification program.

How often have most of us in the software development biz wished we really could take refuge in this mantra? Well, you can't, but at least now you can get the T-shirt.

It's a quick read, with some good laughs along the way.

Tags: , , ,

3.03.2007

Inno Setup 5.1.11

Inno Setup 5.1.11 is out, with a change to use the native regsvr32.exe for DLL registrations. See the release notes for why this matters under Windows Vista.

Tags: ,

2.22.2007

2.21.2007

Managing Passwords

I use a password manager utility to store all my usernames and passwords in an encrypted database. From time to time I print them out and deposit the list in a safe deposit box as a backup. Each time I do this, I make a mental note of how many entries I'm keeping track of.

When I started using this password manager about five years ago, the database contained 59 entries. Today it has 254.

To quote a favorite line from a favorite movie, "That's a lot of nuts!"

Admittedly, there's some dead wood in there, and a few are entries I maintain for clients to help them out when their memory fails, but I'd guess easily 80% of what's in there represents my own active accounts of one type or another.

What's amazing is how many of the dumb things I can remember without looking them up. Talk about brain clutter...

No real point to this, just the observation that the list has gotten that large and the speculation that most of us -- software developers, anyway -- probably have to keep track of an equal or greater number. What about you: how many usernames and passwords do you need to keep track of?

2.20.2007

Article on Potential Windows Installer Issues under Windows Vista

Windows Installer MVP Stefan Krueger has published 7 Reasons Why your Installations May Fail on Windows Vista (And How You Can Fix Them). A short and useful read with the focus on Windows Installer technology, Krueger discusses the issues and offers solutions to some potential problems you may encounter with MSI deployments under Windows Vista. The article is available on the Macrovision website at www.macrovision.com/company/news/newsletter/tips/is_vista.shtml.

Krueger also runs InstallSite.org, a forum for installation developers. Over the years I've found this site to be full of good resources, particularly relating to Windows Installer.

Tags: , , , ,

2.19.2007

SnagIt update fixes conflict with Logitech mouse software

The latest SnagIt update v8.2.1 fixes a show-stopper issue earlier versions had with some Logitech mouse software. I ran into this problem yesterday after installing the software for a new Logitech® VX Revolution™ cordless laser mouse on my laptop PC. When hovered over the SnagIt v8.2 window, the mouse icon flashed rapidly—it appeared to be alternating between the normal arrow icon and the wait/busy hourglass icon—and clicking anything in the SnagIt window had no effect.

In my experience this problem did not occur with older Logitech mouse software: I've been using a Logitech MX 1000 cordless laser mouse on my desktop machine for a long time and there were no conflicts with SnagIt v8.2 or earlier. In any case, the v8.2.1 update resolved the problem with the new Logitech mouse software on my laptop PC.

BTW, the VX Revolution cordless laser mouse is without doubt the best notebook mouse I've ever used, and ditto for the MX 1000 cordless laser desktop mouse. When my desktop mouse bites the dust I'm sure I'll be looking to replace it with the latest MX model from Logitech.

Tags: , ,

2.10.2007

Cool tool for presenters

Mark Russinovich of Sysinternals (which was acquired by Microsoft last summer) has written and released ZoomIt, a free tool for presenters. ZoomIt provides a screen magnifier, a drawing pen and a break timer, each available via its own hotkey combination. The pen can be used with or without the magnifier, and the break timer remains active even if you Alt+Tab to a different task. IMO a highlighter would be more useful than a pen, and the timer evidently resets itself if you use one of the other two tools, otherwise it could be used as a session timer for shorter presentations that don't include breaks. Still, it's one more neat little tool you can use to help make your presentations more effective. Information and and a download link available at www.microsoft.com/technet/sysinternals/utilities/zoomit.mspx. And an acknowledgement to fullasagoog.com for picking up the post where I first learned about ZoomIt this evening.

Tags: , ,

2.09.2007

VMWare IPO

EMC Corporation has announced plans to take 10% of VMWare public via an IPO "sometime this summer." The announcement from VMware President Diane Greene is here, and the press release is here.

Tags: ,

2.08.2007

What's in a name?

A recent thread on foxforum.com pointed out an interesting question about the syntax of the Visual FoxPro INSERT - SQL command. The VFP Help file gives the syntax for this command as
INSERT INTO dbf_name [(FieldName1 [, FieldName2, ...])]
VALUES (eExpression1 [, eExpression2, ...])
where "dbf_name" is defined as "the name of the table for appending a new record".

The question raised (and answered) in the forum thread was, can you use an alias for "dbf_name" in an INSERT statement? The answer of course is yes, and most of us probably do so without even thinking about it.

For example, most of us would be perfectly comfortable writing code like this
  CREATE TABLE table1 ( cField1 C(10))
INSERT INTO table1 ( cField1) VALUES ( "Bob")
which creates a table named table1.dbf and adds Bob to it, as expected. But there's a hidden question lurking here: in the INSERT statement, is "table1" the name of a table or the alias of a work area?

The answer is, it depends. If there is an open work area whose alias is table1, as in the example above, then VFP inserts the record into the table that's open in that work area (which may or may not be table1.dbf, as we'll see in a minute). If there is no open work whose alias is table1, then VFP looks for a table named table1.dbf either already open under another alias, or not open but existing on disk. If it finds table1.dbf, VFP inserts the record into that table.

When a work area's alias is the same as the name of the table that's open in that work area, there's no ambiguity. But if the alias is different than the table name, things may not work as expected. Therefore it's important to recognize when we're using an alias and when we're using a table name.

Consider the following:
  CREATE TABLE table1 ( cField1 C(10))
CREATE TABLE table2 ( cField1 C(10))
CLOSE ALL
USE table1 IN 0 ALIAS table2
USE table2 IN 0 ALIAS table1
Note that table1.dbf is now open in work area 1 using alias table2, and table2.dbf is now open in work area 2 using alias table1, like this:
--------  -------  ----------
WORKAREA ALIAS() DBF()
-------- ------- ----------
1 table2 table1.dbf
2 table1 table2.dbf
-------- ------- ----------
So now if we write
  INSERT INTO table1 ( cField1) VALUES ( "Bob")
then the question is, where's Bob? In table1.dbf or in table2.dbf?

The answer is, Bob's in table2.dbf. The INSERT statement can be read as "insert a record into the table that's open in the work area whose alias is table1". The table that's open in that work area is table2.dbf, so that's where Bob goes.

Similarly, if we follow up with
  INSERT INTO table2 ( cField1) VALUES ( "Carol")
then Carol ends up in table1.dbf.

To avoid confusion, we can tell VFP we're specifying a table name instead of an alias by including the file name extension.
  INSERT INTO table1.dbf ( cField1) VALUES ( "Ted")
INSERT INTO table2.dbf ( cField1) VALUES ( "Alice")
This is unambiguous regardless of any aliases currently in use, so Ted ends up in table1.dbf with Carol, and Alice goes in table2.dbf with Bob. (Which is sort of what happens in the movie, I think. Either that, or all four of them ended up in table3. It's been a long time since I saw that movie...)

It may be helpful to remember that an alias refers to a work area, not to a specific table. In any case, the point is it's important to know when "dbf_name" is an alias and when it's a table name in a VFP INSERT statement.

Tags:

1.13.2007

Tagged! Five Things

I got tagged by Alex Feldstein, so in the spirit of the game here are five things you might not know about me:

1. I lived overseas for several years while growing up. My dad was in the Foreign Service and we got an assignment to a new country every two or three years. Each move meant learning a new language, adapting to a new culture, adjusting to a new school, and making a new set of friends, but overall it was a great experience.

2. It's been a while since I rode, but I enjoy cross-country touring by motorcyle. My favorite trip is the big circle route from Illinois up into Ontario, Canada, all the way around Lake Superior, and back down the other side. I've done that route three times, I think. Those trips are kind of ancient history now, but I still own the bike.

3. I got my private pilot's license several years ago, something I'd always wanted to do and probably the most fun thing I've ever done. Flight Simulator is great, but there's nothing like flying a real aircraft.

4. I used to teach evening classes in computer programming at our community college. I've always felt that teaching, writing, and giving presentations at conferences and users groups is a genuinely rewarding experience and a nice change of pace from the actual practice of doing software design and development all day.

5. My family and I are on a quest to visit all 30 major league baseball parks. So far we've been to 17 of them. Planning vacation trips to coincide with home games in two or three cities in the same week can be challenging, but it's great fun. Mostly what we have left are the Northeast and Southern California ballparks.

Let's see, who haven't we heard from for a little while (or in some case, for a long while)? I tag:

Dave Bernard
Craig Boyd
Esparta Palma (in Mexico)
Emerson Reed (in Brazil)
David Stevenson

1.08.2007

FeedDemon 2.1 Help File now available as PDF

The Help file for NewGator's popular FeedDemon feed reader is now available as a PDF. Previously, FeedDemon Help has been available only online. The NewsGator KB article DOC: FeedDemon 2.1 Offline help file has the link for downloading the PDF. Thanks to NewGator's Jonathon McDougall for posting this news on the FeedDemon technical support forum.

Tags:

1.05.2007

Font Xplorer is now free

Font Xplorer 1.2.2 from Moon Software is now available for free. A few years ago when I was looking for a font utility, I found this one and liked it well enough to pay for it. Now the author is making this version free, evidently as an incentive to himself to get a new version out the door this year (an interesting approach to self motivation). Moon Software also offers Password Agent, a fine password manager, as well as several little free utilities.

Tags: ,



12.19.2006

Aardvark for Firefox 2.0

Aardvark, a nifty Firefox extension for Web developers and designers, has now been updated to work with Firefox 2.0. Available from the author's website at karmatics.com/aardvark/.

Tags: ,

12.14.2006

Styling FinalBuilder HTML Build Logs

FinalBuilder generates a log as it processes each step in your build process. The Export Log action enables you to export the build log to a file. The default format for this file is HTML, which generates a nicely formatted report including expandable sections to view the detail for steps that generated console output during the build process.

I noticed today, however, that the date in the header portion of the HTML log was rendered as 14/12/2006 rather than month/day/year format of 12/14/2006 we are accustomed to in the United States. As it turns out, this is easily changed.

The format and appearance of the HTML output is determined by an XSL stylesheet. The default stylesheet is named ConvertLogToHTML.xsl located in the StyleSheets sub-folder where FinalBuilder is installed. To change the format of the date, simply edit the 'extractdatetime' template element and reverse the order in which the month and day parts of the datetime string are extracted.



The FinalBuilder export log options enable you to specify the default export format (XML, HTML, or Text) as well as the default XSL stylesheets for HTML and Text output. While changing the format of a date is a trivial example, the ability to edit the default stylesheets or even replace them with entirely different ones gives you complete control over the format and appearance of your build logs.

Footnote: The FinalBuilder website today is featuring a 20% discount off FinalBuilder or Automise through December 30th.

Tags:

12.08.2006

Save Ten Bucks at NewsGator

Nick Bradbury blogs today that you can save ten bucks on any of NewsGator's products this month. This includes FeedDemon, IMO the best desktop feed reader there is. Get the official word and the promo code from Nick's blog at nick.typepad.com/blog/2006/12/save_ten_bucks_.html.

Tags: , ,