Labor Day, Time for Fun and Reflection

A lot of Americans don’t realize it, but Labor day does have a significance other than getting a day off to celebrate the end of summer. I talked about some of the history behind Labor Day last year in my Labor Day, Eh? post. The day has been celebrated since September 5th, 1882, when the first parade took place in Union Square. At the time I wrote the post, I didn’t realize that the organizers had chosen the date because it’s halfway between Independence Day and Thanksgiving. I’m sure there is quite a lot I don’t know about Labor Day, but I do know that it’s a celebration of the contribution organized labor has made to our society.

Interestingly enough, Europe celebrates the contribution of organized labor on May Day. May 1st was chosen as a day to recognize labor because it was the start of the new contract each year. I’m sure that with anarchists, Marxists, and other groups claiming May Day as their own, organized labor in this country wanted some other day to recognize the contributions of the worker. Even so, May 1st is still celebrated in Europe and other locations as the International Worker’s Day. Labor Day serves the same purpose in this country. Honoring those who leave their home country to come and benefit a different country’s economy is important. These people often leave everything behind, in the hopes of starting a new life. However, they often come to the country with no financial assistance. Many of them are without credit histories, meaning that they will struggle to take out loans for housing. However, by reading this website here, workers can receive some financial advice to set them up for this new opportunity.

This year, I took another look at Labor Day through the eyes of Samuel Gompers, a 19th century labor organizer (he was the first president of the American Federation of Labor, the AFL). He published an article on September 4th, 1910 in the New York Times about the significance of Labor day that makes something about this particular holiday clear, “It differs essentially from some of the ex holidays of the year in that it glorifies no armed conflicts or battles of man’s prowess over man.” This particular holiday isn’t the result of any religion or other inclination of some subset of mankind-it truly is a holiday for everyone. In reading about Samuel Gompers and seeing his vision through the articles he wrote, I see a different version of labor than it exists today.

During the 19th century, people worked long hours for incredibly low pay. Many people made so little they couldn’t afford to buy decent food, lived in hovels, and barely had clothes on their backs. Samuel Gompers, and many like him, worked hard to obtain worker rights to decent pay and shorter working hours. He truly was a visionary and I’m glad that he was instrumental in making work conditions so much better for the rest of us. I just wish that some of his other goals and ideals had come true.

Monday is truly a time of reflection. It’s a time when you should consider the plight of the working person in today’s world. However, it’s also a time of fun. You may very well decide to march in a parade, celebrate with a picnic, or simply fire up the barbecue as I plan to do. The important point is to remember why the holiday exists and to tell others about it. When a holiday becomes meaningless, the reasons for celebrating it become lost in the shuffle and we all lose something. Labor Day is too important a holiday for that.

With this in mind, I’ll be taking a holiday on Monday. Rest assured that you’ll see my usual blog post on Tuesday. In the meantime, read up on Labor Day and take a little time to think about the contributions that organized labor has made.


Considering the Effects of Technology on Animals

It was an innocent act—incredibly funny, in fact that led me to think about the topic of today’s post. I had recently installed new UPSs for our computers. The addition allowed me to plug the speakers in for my wife’s system. She has a program named Catz installed on her machine. They’re virtual cats, of course, that you feed and pet just like the real thing. The cats will play on screen while you work away. Every once in a while, you can take a break to see them do some of the oddest things you’ve ever seen. Our real cat, Smucker, hadn’t ever heard Catz before. When he heard them for the first time, he was intrigued. At some point, I walked near my wife’s office and heard the most horrid banging. Naturally I stopped to investigate and there was Smucker, banging on those speakers for all he was worth, trying the get the cats out .

The technology you use can produce hilarious events with your animals because the animal has no clue that it’s technology, and not the real world. Over the years our cats and dogs have interacted with animals on TV, tried to make sense of plush toys that also purr, and wondered about our sanity in associating with the vacuum. For the most part, our dogs and cats have been curious, we’ve been entertained, and no one has gotten hurt.

I know that technology has had a beneficial affects on our animals in many cases. For example, research into new materials has garnered long lasting and easy-to-clean rubber buckets for our chickens (see Review of Weather Proof Rubber Pan). All of our animals have benefited from the research we perform online—something that wouldn’t have been possible even a few years ago. Technology helps us create better environments for our animals and to feed them better food. The vet that cares for our animals relies on modern technology for shots and general care. In short, our animals have a better life because of technology.

However, I also started to consider the negative aspects of technology. When a human plays music too loud, doesn’t it also affect our animal’s hearing? While we put the dogs up when working with yard equipment, the chickens and rabbits remain outside. Does the use of these items affect their hearing and potentially cause other problems? I’ve been spending considerable time thinking about these issues as of late because technology can be a two-edged sword in many ways. Because animals have no way of telling us how technology affects them, we often have to rely on our senses to detect changes in them. For example, the rabbits do get quite nervous when I drive right next to their cage with my garden tractor. I changed that behavior this year and started using the hand mower or my weed whacker—the rabbits do seem a bit less nervous.

Sometimes the technology meant for direct use with animals can be harmful too. For example, reading the list of ingredients for some animal food should tell you that the food isn’t truly beneficial. It may be an inexpensive way to feed your animal, but it’s not a good way to meet their dietary needs. We tend to try to feed our animals things they would naturally eat, even though technology says that we really need to use some specially formulated food instead. In fact, we’ve found that we can save money and still give our animals a better life by not following the technological route in this case. We provide our animals with kitchen scraps of all sorts, along with access to grass, insects, and all sorts of other natural foods—none of which costs us a penny, but is healthier for the animal.

A major problem for me is that there isn’t a lot of research available on the problems that technology can cause when it comes to animals. As a result, I spend a lot of time seeing how the animals react to the techniques we employ to make their lives better. How is your use of technology affecting your animals? Let me know your perspective at


Working with NuGet to Obtain the Entity Framework

My newest book project, Entity Framework Development Step-by-Step, discusses Entity Framework 5, the latest version of the Entity Framework that Microsoft has released. However, most of the discussions you read about online discuss obtaining Entity Framework 5 using NuGet, a new method that Microsoft is using to help you download and install products for Visual Studio. The only problem is that the process for making all this work isn’t very clear for Visual Studio 2010 developers (NuGet comes installed for Visual Studio 2012 developers).

I want everyone to be able to work with my book at some point, so I’m providing you with some instructions for getting Entity Framework 5 using NuGet. Along with Entity Framework 5, you’ll also be able to obtain a number of other interesting packages using NuGet, so this isn’t a product you’ll use once and then forget about. With this in mind, let’s get started installing the Entity Framework 5 and then you can use a similar process to install other NuGet packages. (These instructions may change with time, so please contact me at if you experience any difficulties.)

  1. Open your copy of Visual Studio 2010.
  2. Choose Tools | Extension Manager. You’ll see the Extension Manager window open.
  3. Verify that you haven’t already installed the NuGet Package Manager extension by selecting the All folder and reviewing its contents.
  4. Click the Online Gallery tab. You’ll see a Retrieving Information message for a few seconds as Visual Studio retrieves the required information. After Visual Studio finds all of the possible extensions, you see NuGet Package Manager displayed as shown here.
  5. Click Download. You see a Download and Install dialog box that shows a progress indicator. After a few moments, you’ll see a UAC dialog box asking permission to run the VSIXInstaller. Click Yes and you’ll see the Visual Studio Extension Installer dialog box.
  6. Read the licensing terms and click Install. After a moment, the installation completes and you see a success dialog box.
  7. Click Close. Visual Studio will display the Extension Manager window again. Notice the Restart Now button at the bottom of the window.
  8. Click Restart Now. Visual Studio restarts and the NuGet Package Manager is ready for use.
  9. Create the new project where you want to use the Entity Framework 5.0. NuGet will absolutely refuse to install the Entity Framework unless you have a solution open. This is because installing the Entity Framework creates a new file named packages.config that contains the information about the package.
  10. Choose Tools | Library Package Manager | Package Manager Console. You see a new Package Manager Console window open.
  11. At the PM> prompt, type Install-Package EntityFramework and press Enter. You see the NuGet Package Manager install Entity Framework 5.0 support for the solution you just created.


The Package Manager Console lets you interact with NuGet and the Entity Framework. To object help with NuGet, type get-help NuGet and press Enter. Likewise, to obtain help with the Entity Framework, type get-help EntityFramework and press Enter. I’ll be providing some additional posts like this one as time permits. In the meantime, please let me know your thoughts and concerns about the Entity Framework at

Some Interesting Elements of Windows 8 Pricing and Licensing

As part of writing and tracking the products used for any book, including Windows 8 for Dummies Quick Reference, I consider the pricing and licensing the reader can expect. Readers often contact me with product availability and pricing questions because it’s important to obtain the right product to use my books. Microsoft changes the packaging, licensing, and pricing of each new version of Windows, so one of the tasks I performed while writing the book was to keep up with the current licensing and packaging changes.

One of the issues with the current licensing strategies for Windows 8 is the loss of the activation grace period. Windows 8 activates differently, so Microsoft has had to change the way the entire installation process works. According to ComputerWorld (and verified by my recent installation of the RTM version), you must provide a key as part of the installation process. It’s impossible to bypass the key input as was allowed by previous version of Windows. The moment that Windows 8 detects an Internet connection, it authenticates the key and activates your product. Those who are experiencing difficulties activating their product may be encountering a common error; see people are getting the Windows activation error (0xc004f050) but there are forums and tutorials online that help those struggling to find a solution to their problem. The only way to evaluate Windows 8 is to get the trial version (good for 90 days, rather than the 120 days Microsoft allowed in the past). However, here’s the rub. You can’t update the trial version of Windows 8. If you decide that you want to obtain a licensed copy, you must wipe out your trial version and install the licensed copy from scratch. Online sources, like NetworkWorld, are already discussing the inconvenience of Microsoft’s new strategy. The main reason I’m presenting this information to you is that you should be prepared to backup your settings and start from scratch if you choose to use the trial version when reading my book and later choose to obtain a licensed copy.

In addition to changing the activation process and how you work with the product key, Microsoft also tried to rework the licensing terms to make them easier to understand. Unfortunately, according to SearchEnterpriseDesktop, the changes have only made the licensing harder to understand. According to the article, the licensing terms (also known as the Product Use Rights, or PUR) appear to make it illegal to run your standard copy of Windows 8 on a Virtual Machine (VM). Later the article says that you can install Windows 8 on a VM if you make an additional purchase, such as Software Assurance-a type of volume license. Other changes make it illegal to install your copy of Windows over a network connection (amongst other things). I’m not a lawyer, so I’ll probably read a number of these postings to figure out whether this particular claim is true.

The problem is that the various sites are contradicting each other and Microsoft hasn’t posted an easy to understand discussion of the topic. For example, when you read Ed Bott’s post on the same subject, you learn that it may be acceptable to install your copy of Windows 8 on a VM after all. Whether something is allowed or not seems to depend on the interpretation offered by the particular person reading the licensing agreement. Personally, I find it hard to believe that Microsoft is going to take the time to ensure no one is running their copy of Windows 8 on a VM and that Microsoft is also smart enough to know this. I tend to agree with Ed Bott in this case in assuming that installation on a VM is probably acceptable, but you should read the agreement yourself and make a decision based on how you view it.

Of course, everyone seems to assume that Microsoft has made these changes as a way of getting more money from each copy of Windows 8 it sell. I’m not sure what to think, except that it’s likely an attempt to make things better that didn’t work as planned. If you’re an administrator who needs to install a number of copies of Windows 8, it’s going to be a good idea to work through these new licensing terms before you make any assumptions about them. Home and small business users probably won’t see any differences because this group won’t typically run afoul of the new terms. I’m certain that Microsoft will provide an update on the licensing terms at some point that will clarify what it means by them to everyone, so don’t assume the worst for the time being.

What I’m most interested in finding out is how you perceive these new licensing terms. Do you think that these terms are a deal breaker? Will you end up spending a lot more time or money trying to get Windows 8 installed as a result of the new terms? Let me know your thoughts on this matter at


How the Internet Affects the Information You Receive

For many years now (centuries, in fact) professional authors, editors, and production staff have worked hard to provide you, the reader, with high-quality material. It isn’t always error free (see Errors in Writing), but these paid professionals do their best to assure the material you get is of the best possible quality. The Internet has changed all that. Today, anyone can write anything and publish it online. Search engines ensure that people can find the information, and you now have the option of reading information that has never been verified, edited, or checked in any way for accuracy or fitness of purpose. We have traded quality for quantity.

I’ve realized that there was a problem for a long time now. Sales of articles, white papers, books, and other forms of writing have declined for all authors for quite some time because people feel they shouldn’t have to pay for something they can obtain free. It’s true, a bargain is always appealing no matter what that bargain might be. However, there is a hidden price for this free material and I’m also pleased to find that some media sources are trying to open a forum for discussing the costs of free writing. The latest article I’ve read on the topic, “Today’s Internet: All the fake news that’s fit to publish,” discusses the topic in clear terms. I strongly encourage everyone to read it because the article does accurately describe the cost to you, as a reader, of the free information available online.

Before the e-mails start popping up in my inbox, yes, I do have a vested interest in convincing you that buying a book is superior to obtaining the information online. After all, I’ve written 90 books to date and I’m currently engaged in writing book 91. It would be remiss of me not to mention that your purchase does help me pay my mortgage and electrical bill. However, my goal in writing this piece is not to line my pockets—I’m truly interested in helping you obtain the best information possible because you need good information to make good decisions. In fact, look at my past blog posts and you’ll find that the quality of your reading experience has always been my prime consideration. I write books because I enjoy writing and knowing that my writing helps people. There are other ways I could earn a living (such as consulting) that would put far more money in my pocket than writing does.

There is always going to be a certain amount of angst over buying something that you can possibly get free. People often make house and auto repairs themselves or ask Jane down the street to do it for them to avoid paying a professional to perform the task. Likewise, you have the option of using the free online sources of information to avoid paying professional authors to obtain, verify, and write that information for you. The quality of the material you receive will generally reflect the source that you obtain it from. Of course, there are people who do write quality material online and provide it to you free (in many cases, through the support of a vendor or organization). The point is that you need to find an information source you can trust in order to use that information to make decisions or learn new skills.

One additional benefit of relying on a professional author that you don’t obtain with an Internet source is support. Most professional authors will post addenda, answer questions, and provide value-added materials, much as I do in this blog, as part of publisher-supported sites, and through e-mail. When working with an Internet author, questions are often ignored and remain unanswered years after they’re asked. The price you pay for a book or other professionally written material includes support that you probably won’t get from other sources. As with anything in life, you must consider the tradeoffs of the decisions you make.

How do you feel about the quality of information you receive from the Internet? Do you see any benefit at all from buying books written by a professional? As I seek better ways to serve your needs, the answers to these questions are becoming increasingly important to me. Let me know your thoughts on the topic at


Exploring the TimeCheck Application (Part 8)

The previous post, Exploring the TimeCheck Application (Part 7), discussed the UserSettings class, which is used to store user settings to the local hard drive. One of the most important settings included in this class is NetworkPath, which points to the location of the group settings and time logs on the network. Using centralized storage makes it possible for an administrator to set the configuration of all systems on the network at once and to also get reports for the activities of all users, even when the target user is offline. Of course, you could always use a local drive for the NetworkPath when you’re the only one working with TimeCheck. No matter where you store the data, the next level of settings are the group settings used to control the overall functionality of the application. These group settings are the target of today’s and next week’s posts.

The first step in this process is to create some classes. The GroupSettings class contains the actual settings you work with. However, to ensure that you can define tasks (the kind of work the user performs) and projects (the client or area of the company that is the client for the work) as you see fit, you also need to create the Project and Task classes. You can create all three classes (GroupSettings, Project, and Task) using the techniques found in Exploring the TimeCheck Application (Part 7).

The Project class is quite simple in this example. All you really need is the name of the project as shown in the following listing.

namespace TimeCheck
   // Contains a single standard project name.
   public class Project
      public String Name { get; set; }

Notice that this class is marked as [Serializable()], which is a requirement when working with XML storage files. An implementation for a larger organization could include additional information, such as the client contact information. The idea is to create properties that define what a project is to your organization. In my case, all I need is the project name.

The Task class for this example is similarly simple. All it contains is the name of a task that the user might perform, such as word processing or graphics. Here is the source code for this part of the example.

namespace TimeCheck
   // Contains a single standard task name.
   public class Task
      public String Name { get; set; }

As with the Project class, you must mark the Task class as [Serializable()]. Even though my class contains only the name of the task, you could easily expand this class to include other information, such as a list of work groups that normally perform this task. The use of a class makes it possible to expand the definition of a task as needed to match the requirements of your organization.

In order to start coding the GroupSettings class, you must provide both file and XML support. You need to add the following using statements at the beginning of the file.

// Add these statements to your project for XML support.
using System.Xml;
using System.Xml.Serialization;
// Add this statement for file system support.
using System.IO;

Look again at frmConfigure in Exploring the TimeCheck Application (Part 3). The top half of this form relies on the UserSettings class, while the bottom half relies on the GroupSettings class. There are four properties that support the four fields shown in the bottom of frmConfigure as shown here.

// Determines whether custom projects are allowed.
public Boolean CustomProject { get; set; }
// Determines whether custom tasks are allowed.
public Boolean CustomTask { get; set; }
// Contains the standard list of group projects.
public List<Project> ProjectList { get; set; }
// Contains the standard list of group tasks.
public List<Task> TaskList { get; set; }

Notice that the CustomProject and CustomTask properties are simple Boolean values. They never require any error handling because the properties are set using a simple check on the form.

The ProjectList and TaskList properties are a List object of type Project and Task. Using generics solves some problems later in the application and makes the code easier to understand and work with. The example application uses the simplified property setup for these properties as well because the application never does anything with the strings except to display and store them. If the application had processed the strings in some way or the Project or Task classes were more complex, then the properties would have to include some sort of error trapping. Keep this in mind if you decide to enhance the example code in some way.

That’s it for this week. Next week you’ll see how to complete the GroupSettings class. Please let me know if you have any questions about this class or any other part of the TimeCheck application at


Enjoying the Night Sounds

The country has its own set of unique night sounds. Unlike the city, where the sounds of traffic and people talking in whispered tones are pretty much mundane and expected, country sounds vary night-by-night. In fact, the noise of scurrying, shrieking, chirping, and trilling all add to the appeal of a night in the country. Of course, everyone knows about the crickets, but I assure you that the country has much more to offer than that.

The night before last, we hear the songs of coyotes. Some people get this picture of Wile-E-Coyote, super genius, and that’s not even close to what a real coyote is like. Even though they have been known to kill farm animals, we’ve never actually had a problem with coyotes. It’s far more likely that a raccoon, fox, or weasel will kill our chickens. The sound of coyote is similar to a yip or howl, and they produce a sort of sing-song chaotic sound that’s interesting to hear. We can listen to the coyotes for hours and only become a bit concerned when they get near, which they seldom do.

Sometimes we hear a rabbit’s shriek when a raccoon, fox, or weasel manages to sneak up and get it. The first time you hear the shriek, you wonder what could make such a horrible sound-high-pitched and chilling to the bone. The sound is meant to be piercing and warns other rabbits in the area to get away. A smart predator gets the rabbit without allowing it to make a sound so that it can get other rabbits in the same evening. When we hear the shriek, we know that it’s an unlucky hunter, or perhaps a young one.

Last night, we heard an entirely new sound. Never before have we heard the mating calls of owls. Yes, we’ve heard the terror inducing scream of the screech owl or the harmonious hoot of a barn owl, but never a mating call. It took a while for me to realize what I was hearing. The male started things off with a quick repertoire of hoots that sounded more like Morse code than an owl-dot-dot-dot-dash (the number 4). As the sound got closer, I heard a female reply with a more standard (and less frantic) set of hoots. However, even the female provided hoots in sets, rather than singularly as is usual. The two kept hooting at each other until I could hear that the loudness of the hoots was the same, then the couple flew off to parts unknown.

Our woods are packed with wildlife, much of which comes out to play at dusk. The night sounds tell us that the woods that seem devoid of much life during the day really do have a considerable host occupying them. All these sounds of life keep us entertained and some make us wary. There are times when our dogs warn us of intrusions we must investigate carefully. The night is when our world comes alive with life of all sorts. What kinds of sounds do you hear in the night? Let me know at


NumPy and SciPy Support in IronPython 2.7

On page 434 of the English version of Professional IronPython, I talk about some much needed CPython additions to IronPython. Two of these additions are the Numerical Python (NumPy) and Scientific Python (SciPy) packages. You use these two packages in tandem to perform scientific numeric computations. In other words, a lot of people use these packages to perform heavy duty math. At the time of writing, you needed to obtain a copy of the IronClad product (discussed on page 437) to make the packages work. That’s because IronPython has trouble supporting some CPython packages.

Recently, a reader mentioned that he was having trouble obtaining a copy of the required IronClad product for IronPython 2.7. A quick search didn’t point out any potential solutions to the problem. Of course, you can always continue to use IronPython 2.6 for development purposes, but then you lose out on all the great new features in IronPython 2.7 (see IronPython 2.7 and PTVS and IronPython 2.7.1 Update). To make things a little more complicated, there is a new IronPython 2.7.3 release to consider as part of this question.

I did quite a bit of research about this issue. IronClad is definitely aware of the problem because people have been writing them about it. A second solution that entails using a product from Enthought doesn’t work because the required download is missing. I currently have e-mails in to Enthought and hope that I receive a response that I can pass along. In short, the bad news is that you can’t use NumPy and SciPy with IronPython 2.7 for now, but there should be a solution available. More than a few people have said they were able to get the Enthought solution to work—all we need is the Enthought solution to become available.

Even though the binaries are missing, I did manage to find source files at The only problem is that I know nothing at all about these source files or how to build them into something you can use with .NET. The README.txt file does make it clear that these are the correct files. (Interestingly enough, I found the required egg files at, so most of the support seems to be there.)

I have found one bit of useful information about employing this solution, you need to use it with the -X:Frames command line switch. The Enthought documentation doesn’t make this very clear and some users have encountered problems making the solution work. If you find out where we can locate the missing file, please let me know at

Breaking news update! I’ve just tried downloading the file from Enthought and it now works as anticipated. If you need NymPy and SciPy support in IronPython 2.7, please use the Enthought solution. Make sure you follow the directions precisely, including the need to use the -X:Frames command line switch. I found that I did need to import SciPy once inside the interactive environment, rather than at the command line as suggested on the Enthought site, but that could be a problem with my system. Contact me at with the result of any programming you do, but as far as I can tell, this solution now works as anticipated.


Silverlight and Visual Studio

You may be puzzled sometime by a dialog box that Visual Studio displays about Silverlight. The dialog box comes in a number of forms, but basically it tells you that you need an updated version of Silverlight on your system. The dialog box also provides an URL where you can go to download the latest version. Because you can’t open your Silverlight project until you get the latest version of Silverlight (despite the fact that you opened it just yesterday without any trouble), you dutifully click the link and download the latest version of Silverlight. The file is likely named Silverlight_Developer.exe or something similar.

After the download is complete, you double click the file and begin the installation. However, the installation program tells you that you do indeed have the most recent version of Silverlight installed on your machine. Closing your project and reopening it produces the same error message. Of course, this is just the sort of frustrating problem that drives everyone (including developers) crazy.

The problem is that you do indeed have the latest version of Silverlight installed, but it’s the standard version, not the developer version. At some point, you likely performed an update of your Silverlight installation through your browser. The browser will always download the standard version because that’s all it needs. Visual Studio, on the other hand, requires the developer version.

Unfortunately, short of inspecting the files closely, nothing tells you about these two versions. When you look at the entry in the Programs and Features window, all you see is Microsoft Silverlight. There is nothing to tell you which version you have installed.

To fix this problem, uninstall the standard version of Microsoft Silverlight. Don’t uninstall the Microsoft Silverlight SDK entries. Now, double click the Silverlight_Developer.exe file again and the installation will run just fine. Close and reopen your project and you’ll find that it too works just as it should. If you have a browser open, make sure you close and reopen the browser as well or you’ll experience problems debugging your application.

It would be nice if Microsoft had provided a better entry in the Programs and Features window. Better yet, it could have provided a better error message when you opened your project. Lacking these helps means that you must discover just how to fix the problem on your own. Let me know if you encounter any other odd Visual Studio behaviors of this sort at


Review of APC Back-UPS RS 1300 G

Some people feel that a surge suppressor is enough protection for their computer. It is if you never have any sort of power failure, line noise, brown out, or other disruption. Yes, a surge suppressor works fine when you don’t do anything of significance on your computer—when you can honestly say that losing data won’t matter even a little to you. Unfortunately, most people, even home users, can’t truly make that claim any longer. Because my livelihood depends on the availability of my computers and the integrity of the data they manage, I’ve always attached them to an Uninterruptible Power Supply (UPS). Using a UPS ensures that even if the power goes out, my systems will stay up long enough for me to save my data and perform an orderly shutdown. More importantly, the UPS provides an immediate stopgap until my generator comes online so that I can continue working in the worst possible weather conditions. A UPS also tends to reduce the damage to your system from all sorts of electrical problems, including both brownouts (something your surge suppressor can’t handle) and surges.

A UPS contains a battery that you must replace every three to five years. The UPS will tell you that the battery is going bad—a fact you can confirm by running a self test. I recently upgraded my UPSs, rather than replace the batteries, because the UPSs relied on an older serial cable connection to the computer for monitoring purposes and the batteries were becoming as expensive as buying a new UPS. After reviewing my choices, I purchased three American Power Conversion (APC) Back-UPS RS 1300 G UPSs.


The new UPS has a Universal Serial Bus (USB) connector that’s a lot easier to connect to the computer than the old serial cable. In addition, the monitoring software on my system was able to find the UPS immediately. In the past, I had to configure the serial port and even then there was a chance the software wouldn’t find the UPS immediately. So, installation was a real pleasure this time because I spent considerably less time doing it and everything works immediately on all three test systems.

The UPS is significantly lighter than my older UPS, even though it provides the same amount of battery backup time. If you tried to work with a UPS in the past and found it a back breaking experience, you’ll find the new battery technology used in modern UPSs a real blessing. The battery also installed without the use of any screws or the need to perform error prone direct terminal connections. Getting the UPS into place was quite a bit easier because the form factor is easier to manage than my older UPS.

This UPS has an informative front panel display. You can check the input voltage, output voltage and frequency, number of line events, estimated run time, and UPS load in watts and as a percentage of battery backup capacity. My older setup never had these features, so I always had to rely on the software supplied with the UPS to learn about the power conditions. The display is bright enough to see that the information is visible in most conditions.

The product comes with APC PowerChute Personal Edition, which is more than enough for most home and small office scenarios. The software does require administrative privileges to run, so you’ll be bothered by one of those UAC message boxes during start up. I’m going to determine whether there is some way around this annoyance.


The display tells you the current status of the UPS, along with important information like the current run time. I also like the fact that I can plug in the cost per kWh for my utility and get an estimate of how much it costs to run my system. The options control issues such as the amount of time the UPS will run during a power failure before performing an orderly shutdown of your system. You can also perform a self test of the unit, which is an important task to perform to ensure that the UPS is working as anticipated.

One of the new features of this software is that you can control when the UPS notifies you about a power failure or other problem. Gone are the days when the UPS will go off in the middle of the night when I’m sleeping. It’s also possible to set the UPS sensitivity, which is nice because now I won’t hear the UPS clicking off and on while running the generator. Overall, the new software is a vast improvement over the older software that came with my previous unit.

There have been a few complaints about this UPS online. All of the complaints I could find were from a year or two ago and I can only conclude that APC has corrected any problems. These UPSs have installed without any problem at all, work quietly, and haven’t caused me any problems at all during their first weeks of operation. However, as with any equipment purchase, make sure that the UPS you get matches your equipment. I normally try to load the UPS to no more than 25 percent of its capacity to ensure I have plenty of run time and the life of the UPS is as long as possible.