Sharing and Swapping Food

One of the centerpieces of self-sufficiency is, surprisingly enough, sharing and swapping food with neighbors. Yes, it’s possible to grow everything you need yourself, but absolutely everyone has a bad year in something. In addition, your soil and gardening techniques may produce copious quantities of one item, but prove dangerous, or even fatal, to other items. Your neighbors will have similar luck with other items. Consequently, swapping items between neighbors is one of the hallmarks of a self-sufficient community. The community as a whole benefits in such a situation because everyone ends up with a greater variety of food to eat. So, while you can grow what you need, you’ll eat better when you swap with someone else.

It isn’t just the garden though. Just about everything is swapped at times. One person may have an abundance of chickens and trade a chicken or two for some beef. These swaps aren’t done on a strict accounting system. People tend not to get too caught up on the price of the food—they’re more interested in exchanging something they have in excess for something they need. Of course, no one would swap an entire cow for just one chicken either . While the swaps aren’t strictly fair, they’re reasonably sono one tries to take advantage of someone else (otherwise, the community as a whole would stop swapping with them).

There are times when people simply share food, which is where the country ethic comes into play. We’ve shared wine, soap, or cookies with other people simply because we think they’re nice people and want them to enjoy something we’ve made. There is no other motive behind the act, other than seeing the smile on the other person’s face. It makes us feel good to see how others react when we do something nice for themacts of kindness are their own reward.

People have also shared with us. One winter we were extremely low on wood and I wasn’t able to get out and cut any. Our neighbors sent three cords of wood our wayan extreme act of kindness that we’ll never forget. We recently received a nice buck from some friends for nothing more than a smile. It isn’t often that you can fill your freezer with venison because of the kindness of someone else. The 65 pounds of meat is nice, being able to use the tenderloin for Christmas dinner is even nicer. I’ll make some lovely venison medallions (with wine we’ve made no less). It will be an extremely special Christmasone we’ll never forget.

Our swapping and sharing often extends outside our local village. Other good friends recently sent us a decadent cake that we’ll share with family and friends here. We’ll send a fruitcake their way later this week. I wish that our friends could have seen the smile on our faces when we received the cakeperhaps they felt the warmth of our feelings from afar (and certainly we’ve thanked them for their fine gift).

If you choose to become self-sufficient, don’t get the idea that you’re an island. No one is separate from the entire world. The more self-sufficient you become, the more you realize that the self-sufficiency of the community in which you live is important. It doesn’t matter if you live in the country, as we do, or in the city. The need to depend on others and also experience the joy of giving to those in need is possibly the best part of being self-sufficient.

Does your community swap and share? How are you experiencing the kindness of others during this holiday season? Have you done something kind, something totally unexpected for someone else? Let me know at [email protected].

Choosing an Appropriate Stove

I’m not here to recommend a particular stove or brand of stove. I’ve found over the years that a stove that works for one person, doesn’t work at all for someone else. We all have different ideas of precisely what makes the perfect stove. For example, some people prefer white stoves, while others think that colors are the way to go. Some prefer stoves that run on gas whereas others are keen on getting the best induction hob instead. The selection of stoves is also limited by local availability and the size of your pocketbook. I’m sure that there are some people reading this who will merrily spend $5,000.00 or more on a stove and never think twice about it. So, I’m not here to tell you that a particular stove is the end all invention of stoves because it probably isn’t true in your case. Stoves used for self-sufficiency purposes, especially canning, do have some features in common though and that’s the point of this post.

Glass top stoves are completely out of the question if you want to can. Even the vendors will tell you that placing a heavy canner on a glass-topped stove is doomed to failure (or at least breakage of the top). That said, I know of at least one person who uses their glass topped stove for canning, quite successfully I might add. Still, it’s probably not a very good idea and forget about any warranty work if the vendor discovers that your stove top broke from canning.

We tried an electric stove that was specifically designed for canning. The vendor even talked about canning in the manual. This stove came with some high wattage burners designed to heat the water more quickly. The problem is that the electric stove doesn’t get enough air flow to cool the burners (as odd as that might sound) when a big canner is sitting on top of the elements. I ended up replacing the burners almost every year because the metal holding the elements together would sag and eventually the pot ended up resting right on top of the stove (with the resultant fire hazard). After the stove burst into flames the second time (and I was looking at rewiring it yet again), I decided that electric wasn’t going to make it for us. That said, I know of more than a few people who do successfully use electric stoves for canning. Almost every one of them has removed the vendor-supplied burners and provided heavier duty canning burners. AP Wagner is one place that sells these burners-be prepared to pay an arm and a leg for one (a burner that normally runs around $30.00 will cost nearly $80.00 in canning burner form), if you can even find one to fit your stove.

That leaves gas stoves. Even here you can make some serious mistakes. Look for a gas stove that specifically mentions canning in the manual. Check out reviews from other people who use the stove for canning purposes. The grates should be quite heavy if you plan to use the stove for canning because a canner is quite heavy (especially when working with a pressure canner). Make sure the grates aren’t so high that they actually prevent good heat transfer to your canner. It’s a good idea to obtain a gas stove that has at least one power burner (more is better). Unfortunately, the power burner will also trash any sort of sauce you try to make with it, so a simmer burner is also a good idea. The stove we finally purchased has one standard burner, two power burners, and a simmer burner. We’re finding that it works extremely well for every task.

No matter which stove type you choose, make sure it has a porcelain finish and not a painted finish. Some vendors will try to pawn a painted finish off on you and the paint is guaranteed to peel from the heat generated from canning. Unless you like the idea of repainting your stove with high temperature paint (nasty stuff) on a regular basis, porcelain is the only way to go.

Another issue to consider is the size of the back panel. Many stoves have back panels that jut out as a fashion statement. Unfortunately, the back panel design also makes it impossible to use the back burners with anything larger than a small pan. This sort of stove is unlikely to work well for canning purposes (Rebecca and I know, we’ve tried). If nothing else, take your pans to the store and test fit them on the stove before you buy. You really don’t want to discover that your pans won’t fit after the stove is already installed in your home.

If you’re using your stove for canning like we do, then you’ll find that it takes a lot of abuse. We bought one with as few gizmos as possible because gizmos tend to break easily when you use them a lot. Simpler is better when it comes to canning. To help make the stove even more reliable, make sure you read the manual that comes with it and perform all of the vendor-recommended maintenance, including the required cleaning. For example, we found out that ammonia really does work better for cleaning the stove than other cleaners. (We tried it as part of the vendor-recommended maintenance.) The ammonia fumes are quite nasty, so we run the hood on high speed during cleaning to remove them.

Our results may vary from yours, but we’re also finding that gas is less expensive to can with than electric. I’m still trying to figure out precisely how much less, but my preliminary estimate shows that you save about 17% using gas over electric. In order to come up with a precise number, I’m going to have to figure out how many BTUs are required to perform a typical canning operation on each device, and then compare the per BTU costs of each fuel source. We’ve also discovered that canning with gas takes less time because the water heats more quickly. You should know though that we’re using propane and that could change the economics of canning. Choose carefully if you value long term costs as part of your purchasing decision.

What sorts of things have you found important when choosing a stove? Let me know at [email protected].

 

Understanding the Relative Insecurity of SCADA Systems

It wasn’t long ago that I wrote about how Supervisory Control and Data Acquisition (SCADA) systems affect those with special needs in Security and the Special Needs Person. I then posted an update on that original message in An Update On Special Needs Device Hacking. In both cases, I decried the lack of security for SCADA systems that affect those with special needs. I realize that only a truly nasty person would turn off someone’s insulin pump in order to kill them, but our world is unfortunately filled with some pretty nasty people.

One person (who shall remain nameless) wrote to tell me that it was fine that I was worried about special needs people, but that he wasn’t worried about it because these problems don’t affect him. Well, let’s say that you truly are superhuman and will never once need to use any sort of special needs device in your entire life (statistically, you’d really need to be superhuman or die early). Let’s put the whole SCADA issue in another light. Let’s look at your car.

Your car contains SCADA systems. Those ads you see for turning your car on, opening the windows, flashing the lights, and so on using a cell phone are really telling you about the SCADA systems in your car. If you can access your car using a cell phone, someone else can do the same thing. All they need to do is break the security, which someone has already conveniently done for them. CNET News recently ran an article about how an expert hacker had broken into a car.

Imagine now that you’re on an off-ramp. There are cars crowding you on both sides. A crook uses his cell phone to turn off your car engine and unlock the doors. Bam, you’re suddenly in a world of hurt because the car manufacturer thought it would be a neat idea to let you control your car using a cell phone. I have to wonder why such control is even necessary. Does it even serve a useful purpose? If so, why can’t it be secured better?

Of course, not every drives. So, let’s look at another SCADA issue. A recent InfoWorld article states bluntly that our water system is already under attack by hackers. Sure, the hackers are only kicking the tires of their new toy for now, but how long do you think they’ll wait to do something truly terrifying to your water supply? The experts have been warning about this sort of attack for quite some time, but everyone ignored them as being sensationalists. The sad thing is that the experts probably didn’t scream loud enough this time.

Someone out there is probably thinking that the bad guys can overcome physical security too. You’re right, of course. Someone can remove a padlock, jimmy a car, and overcome physical security in all sorts of other ways. The point is that the bad guy has to be in physical contact with the object to overcome it when you’re using physical security. In addition, if you’re nearby, a physical security system often buys you enough time to call the police or obtain help in some other way. The remote control nature of SCADA systems makes it possible for someone to break into the system and do something nasty with it long before you’re even aware of the intruder.

SCADA systems make a modern world possible by allowing remote control of many of the devices that we need to live. I can fully understand how a utility would need to monitor and control a system from a remote location, and how such control actually makes the system safer. However, it’s time that we realize that these systems are dangerous in the wrong hands and that we need to do something about them before a major accident occurs. Here are some ways to make SCADA systems better:

  • The SCADA systems we do need should be secured better.
  • All SCADA systems should be restricted to wired connections only and those wired connections should be on a private, secure, network.
  • Researchers should be advised not to research break-ins for hackers to use (and then publish them for the whole world to see).
  • Our society also needs to seriously consider where SCADA systems can be removed.

Remote control is a two-edged sword and you can bet the bad guys have no compulsion about playing dirty—count on them not following the rules. If there is a way for you to access something, the bad guys will find a way to access it too. Let me know what you think about the threat of SCADA system break-ins at [email protected].

The Sublime Art of Thankfulness

As we prepare for another Thanksgiving with the usual turkey, parades, and sports, it’s time to consider the sublime art of thankfulness. For many people, please and thank you, when offered at all, are quickly proffered sentiments, rushed out at a moment’s notice. However, on this particular day, something a little more noble is required, in keeping with the holiday. After all, the very act of breathing is reason for praise for someone with emphysema. Why not for the rest of us?

It’s a privilege to discover the source and emanation of true thanksgiving at times when life has handed you something less than ideal gifts in the minds of those around you. Seeing the foot of a loved one move when the doctors have said that she’ll never walk again is a wonderment beyond measure. A joyous occasion evoking streams of tears at something so small and commonly accepted as normal. The delight of a sunrise, flowers in fall, family togetherness, and more all provide reasons for thankfulness because they can be so easily taken away, never to return.

Thankfulness is a process of the heart, not of the mind. The mind doesn’t understand it, but heart feels it to the bottom of the soul. An overflowing cup rarely consists of the material, but rather those things that can’t be purchased with any amount of money nor with any labor, no matter how monumental. So on this day of Thanksgiving, take time to consider thankfulness, the divine moment of gratitude for all that we have and not the rash expression of any lack. It’s my sincere wish that you have an amazing Thanksgiving filled with the delights of laughter and the closeness of those you love most.

Rebecca and I will be taking Thanksgiving weekend off. For this reason, you won’t see any posts from me either Thursday or Friday. We’ll continue working through the GrabAPicture program next week. Thank you for your continued support of me and the materials I write. I’m truly grateful that you’ve given me the opportunity to serve your needs.

 

Considering the Inefficiency of a Global Economy

A lot of people have said a lot about the global economy—how it exists and is pretty much unstoppable. However, a recent article in ComputerWorld, amongst others, have highlighted problems with the global economy. In this case, flooding in Thailand has impacted the availability of hard drivesdriving up the price that everyone pays. If manufacturing were decentralized, flooding in a single country wouldn’t have much of an effect. In short, the emphasis on cost of individual products instead of emphasizing the reliability of multiple sources of hard drives at an increased cost has proven a shortsighted strategy that inevitably hurt the world supply.

Some countries are using the global economy as a source of blackmail. According to the New York Times, China has consolidated its grip on rare earth metals used for everything from compact fluorescent lights to displays used in smartphones. The blackmail started after a disagreement with Japan. As a consequence, the price of any item that requires rare earths has gone up and will continue to increase. It’s another instance where price advantages offered by a global economy have come back to haunt us. In fact, this problem is so significant that the United States government is doing everything it can to create alternative sources, no matter the cost. Unfortunately, it will require nearly 15 years to fully develop those alternatives.

These two stories, and many more, only hint at the potential problems of a global economy. The problems are actually far more severe than you might initially think. When someone ships a hard drive all the way from Thailand to your home, the carbon footprint of that drive is quite large. It takes a lot of gas to move that hard drive. What the global economy does is it trades fossil fuel for price. The cost of the oil, plus the cost of the object (whatever it might be), is less than the cost of producing the object locally. The short term monetary gain takes priority over the cost to the environment and its eventual cleanup. In the long term, that hard drive will cost everyone a great deal more than if it had been purchased locally.

This blog has contained more than a few self-sufficiency posts (60 as of this post). You’ve seen discussions of how to grow your own food and reasonably recycle products instead of dumping them in a landfill. I even told you how to obtain CFLs for free (see CFLs for Free). All of these posts are practicalI’ve worked hard to write posts that demonstrate techniques that improve the condition of your wallet, decrease your health problems, and still help everyone around you by producing a greener environment. Even with these measures, I’m well aware that my carbon footprint is huge because a global economy forces me to buy articles from overseas. These items aren’t available locally and I can’t make them myself.

In the long run, it’s unlikely that we’ll be able to sustain a global economy unless the equation changes dramatically. Fossil fuels aren’t unlimitedwe’ll eventually run out, so from a practical perspective, transportation of items from overseas must change or we won’t be able to transport them. However, long before that happens, the damage to our environment will take a dramatic toll on everyone. The question is why anyone would wait around to see it all happen? Is the world determined to wait until everyone is so sick and so without resources that we have no choice but to toe the line? Does no one think about the effect they’re having until it’s too late?

I ask these questions because the global economy is simply a bad idea. Producing goods locally is far more efficient, even when the initial price for the good is higher. Eating and using what you can produce locally is far better for everyone. You do have a choice. Even with the global economy in full swing, you can buy local goodsin fact, insist on them. Tell local stores that you’re willing to pay more for local goods that are good for the environment. Your money matters. When stores find that they can’t sell those overseas items at any price, they’ll buy locally. “Give the customer what they want” is a cliche, but it’s also a fact. Vote with your cash to bring down a global economy that is ill conceived and killing us all. Let me know your thoughts about the global economy at [email protected].

 

Working the Fall Schedule

There is a misconception that anyone who works in a farm-like environment simply takes a vacation once the crops are in (no matter what those crops might be). It’s true that I’m slightly less frantic now than during the summer months when I need to be doing three things (or more) at once. However, the work continues throughout the fall and winter. The fall period begins after the garden is cleaned up, tilled, and planted with winter rye. Our winter rye is just showing above the ground at this point. It’ll stay that way until spring, when it’ll take a growth spurt. The winter rye roots will keep our precious soil in place and also provide “green manure” in the spring when we till it under.

A lot of people are surprised to see the two buckets of what appear to be shriveled bean pods in our basement, alongside the potatoes and squash. They actually are dried green beans, which might seem like a less than helpful use for them. However, the beans you buy for soup in the store come from this source. When we’re done canning green beans for winter, we let the remaining beans dry on the vines. We then pick them off, shell them, and use them in soups or for baked beans. In fact, anywhere you’d normally use dried beans you can use the dried green beans from your garden. Our dried beans are a beautiful shade of brown this year. We’ve had speckled beans, solid black beans, and a number of other colors, all of which contribute to a colorful soup, even if they taste mostly the same. You simply remove the pod by shelling the dried green bean and you end up with handfuls of beans you can store without much fuss at all. In short, green beans are an extremely efficient way to produce food—you can eat them green or dried and they require no special storage when dried (an airtight container is helpful).

Of course, this is also the time of year that I start getting into the woods to cut wood for winter. I’m actually bringing down wood that I cut and stacked last year (or two years ago in some cases). It won’t be quite enough for the entire winter, but it’s a good start. I’ll look for dead, dry trees to cut up to complete our wood supply for the winter, and then begin on next year’s wood. Rebecca helps by carrying wood from the cart, wood pile, or from the edge of the woods and throwing it into the basementsaving me a ton of time. Some of the wood has to be split, a good job for my maul on days when it’s too windy to cut wood.

Self-sufficiency relies on a lot of equipment as well. During the summer months there is little time to maintain it. Yes, if something breaks, you have to take time out to fix it, but that’s not the same as maintaining it. During the fall and winter months, I’ll sharpen shovels and spades, repair equipment, change the oil, and tune everything up. These maintenance actions are essential if you want to have a good summer. Nothing is worse than trying to dig with a dull spade. Anything I can do to make our hand, electric-powered, and gas-powered equipment work better is money in my pocket and time to do something else. So these winter months are an essential time for me.

This is also the time I’ll be working on new projects. For one thing, Rebecca needs a bit more storage and better lighting in the larder. I’ve been wanting some shelving for my equipment for quite some time now and I may get to it this winter. The chicks need something better than a refrigerator boxI’m planning to build a box that we can use as a combination of brooder (to keep young chicks warm) and rabbit house (during the summer months after the chicks are put outside).

Still, nothing beats sitting by the wood stove after a day of cutting wood and feeling it’s warmth hit tired muscles. I’ll break out my Knifty Knitter to make some hats, scarves, blankets, and socks (you can see some of the things I’ve made in my Knitting for the Gentleman Farmer post). I may even engage in some latch hook this winter to make a rug or wall hanging. Winter is a time of crafting too! So, how do you enjoy the fall and winter? Let me know at [email protected].

 

Windows 7 and the PowerCfg Utility

On page 327 of Administering Windows Server 2008 Server Core, you find the PowerCfg utility and may not even find it all that interesting. Yes, this utility makes it possible to configure the power settings for a system from a remote location. An administrator can use it to ensure that everyone has a power saving setup by adding the command to the user’s login script. However, as utilities go, it isn’t all that interesting. For that reason, the command doesn’t even appear in Windows Command-Line Administration Instant Reference. A number of beta readers said they didn’t even use it.

Microsoft is showing an increasing interest in power management with each version of Windows. In fact, from what I’ve been reading about Windows 8, power management is going to take a relatively large leap forward (read about the changes in, “Building a power-smart general-purpose Windows“). With this in mind, the Windows 7 version of the PowerCfg utility has added four new command line switches:

 

  • /Requests: Enumerates the application and driver power requests. Applications and drivers make power requests to ensure that resources are available when needed. However, sometimes these requests can also become a problem when they’re abused. Power requests can also prevent the computer from automatically turning the display off or going into hibernate mode, which wastes power.
  • /RequestOverride: Forces the system to disregard an application or driver power request. The positive aspect of this command line switch is that you can enforce a power management strategy when you have applications and drivers that abuse power requests. However, by denying applications and drivers access to resources, you could also cause system instability or data loss when the application or driver crashes.
  • /Energy: Performs an energy survey of the system. This is probably the most important addition that Microsoft has made. Using this particular feature, you can detect system elements that are consuming a lot of power and reduce its energy footprint. Generally, you use this feature with just the system running to determine what the system uses. However, you can also use it with single applications open to detect the energy cost of using that application, which I think is actually the more revealing way to use this command line switch. Most people don’t associate an energy cost with using an application. This feature makes the energy cost significantly more apparent. Yes, every application you use has a cost, so keeping needless applications open is costing you money.
  • /WakeTimers: Displays a list of timers that are set to wake the system from sleep or hibernate states. Waking a system too often also costs you money. For example, it costs more to perform individual maintenance tasks at separate times than to perform them during a single time. An organization could use this command line switch to ensure that every system wakes at the same time, performs required maintenance, and then goes back into either the sleep or hibernate states.


As mentioned in the list, I consider the /Energy command line switch the most important PowerCfg addition to date. If you’re interested in self-sufficiency, as I am, then you begin to count even the pennies of energy usage. For example, in my CFLs for Free I discuss how I bought just one CFL and turned it into a complete setup for my entire home. This particular feature has allowed me to perform an energy survey of the applications I use. I found out, for example, that streaming audio using Firefox does indeed cost less than using a separate device for the purpose (such as a radio) and also delivers clearer audio. However, streaming impacts system performance and tacks a network bandwidth penalty onto other applications that rely on Internet connectivity, so there are times where using the separate device is actually better.

Let’s look at the /Energy command line switch in a little more detail. The easiest way to use this command is to open an Administrator command prompt, change directories to a directory you can write in (I’m using C:\Temp), and then type PowerCfg /Energy and press Enter. I purposely ran the command with a number of applications running and some misconfiguration in place to generate some errors, warnings, and informational messages as shown here.

PowerCfg01

The report required a little over a minute to generate. You can see the results in the Energy-Report.HTML file. Here are the results I generated from this run.

PowerCfg02

The PowerCfg utility makes it possible to diagnose energy problems with a system and significantly reduce the cost of running it. The language of the report does require a little interpretation at times, but normally the language is plain enough for an administrator to figure out with little effort. By correcting every error and 12 out of the 13 warnings, I was able to reduce the power requirements of this system by about 15 percent (as measured by a watt meter). So, how does that equate in dollars? You use the equation: Cost = ((Watts / 1000) * Hours Used) * kWh rate, where kWh is the kilowatt hour rate provided by your power company on your electrical bill. This system was averaging a little over 520 watts before tuning it. For the sake of argument, let’s say you’re using it 60 hours per week and the electrical rate is $0.12. The weekly cost of running this system is:

 


((520 / 1000) * 60) * 0.12 or $3.74

After tuning this one system the power usage was only 442 watts on average. That means the weekly cost went down to:

 


((442 / 1000) * 60) * 0.12 or $3.18

a savings of $0.56 for this one system each week or a total of $29.12 for the year.  I have three systems that I tuned this way, so I’m hoping for a $87.36 savings from performing this tuning. Each system required about 30 minutes to tune, so I’ve made $58.24/hour from this activity. If you’ve read other posts, I do like to put a dollar figure on my time—you should too. Not many people can afford to throw away money like this and the PowerCfg utility, along with a watt meter, can help you better understand how your system uses (and abuses) power.

There are two additional command line switches you should know about when using the /Energy command line switch. The /Duration:Time command line switch changes the duration from 60 seconds to some other value. For example, if you want to change the duration to 120 minutes, you’d type /Duration:120. Longer testing times are often required when you’re trying to determine how an application is using energy. Take my advice and don’t set the duration lower than the default 60 secondsyou’ll be disappointed with the results.

The /XML command line switch outputs the data in XML format so that you can incorporate the information into a database. If you have a large setup, the XML format is absolutely essential. No one has time to look at individual HTML pages. Using XML output and a centralized database also makes it possible for you to look for organization-wide trends, which could produce even bigger savings.

The /Energy command line switch can also be used with the /Trace command line switch to trace energy usage without performing any analysis. This output isn’t as helpful or as accessible as using the /Energy command line switch alone. The output is an Event Trace Log (.ETL) file. To view this file, open the Event Viewer console found in the Administrative Tools folder of the Control Panel. Right click the Event Viewer folder and choose Open Saved Log from the context menu. You’ll see a dialog box asking whether you want to convert the .ETL file into the new format used by Windows 7. Click Yes. You’ll see a list of energy events like the ones shown here.

PowerCfg03

By carefully reviewing the events, you can discern energy usage patterns, filter data about specific events, and perform other analysis. However, this raw data is a little hard to use and the administrator would be better off generating the report, unless your organization has an application designed to analyze the raw data in some way.

So, how do you save energy in your organization? Do you rely on specialized tools such as a watt meter and PowerCfg? If not, how do you tune your equipment to deliver optimum service and minimum cost? Let me know at [email protected]

 

Is the Technical Book Dead?

Some time ago I wrote a post asking the question of whether paper books would go the way of the dinosaur (see Paper or e-Book? for details). I recently came across another question, one of whether books will exist at all in the future (at least, technical books). It seems that at least some people now think that online articles (referenced through Google and other search engines) will answer all of their questions and that books are passe. We’ve heard the same death knell sounded before and this one is just as false as those that came before.

There was a time when people said that radio was dead because of television. Fortunately for everyone, the doomsayers were wrong. Radio is still with us—albeit in a different form from those days gone by. In fact, when something proves useful enough, it remains viable and in use despite the appearance of newer technologies. Because of the comments I received from the Paper or eBook? post, I strongly believe that for this reason alone, books will remain one method of choice for obtaining technical information.

Online media does have many good attributes. I have no doubt that it provides a useful and welcome adjunct to books. I use online media myself for some of my research and for general information. From my perspective, online media has the following advantages over books:

 

  • Timely: There isn’t any way a book will ever beat online media to market. Books can’t even beat magazines to market.
  • Succinct: One misconception about online media is that there is no word limit. However, I haven’t ever seen a truly viable book-length online resource. Online resources are broken into small pieces that someone can digest in just a few minutes.
  • Updateable: Both magazines and books have strict limits on updates. If the author makes a mistake, the publisher must provide a separate errata that the reader may not ever find.
  • Inexpensive: There are paid online resources, but they’re in the minority. Most online resources, including this blog, are free. Some online resources do rely on subscriptions and a few are purchased as individual content items (much like a book), but I doubt that paid online media will ever take off as a major industry because it suffers from a severe problempeople tend to post the purchased online media on other sites so that others can download it free (often without any knowledge that the content is pirated).
  • Searchable: Online media has all other forms of communication beat when it comes to searches. You can find what you need quickly, provided that the search engine isn’t overwhelmed with junk listings.


There are probably other reasons for using online media, but these reasons best serve the technical reader. It would seem that these reasons alone would compel a potential reader to use online sources. However, books continue to offer value in other ways. Readers will continue to flock to books (either in paper or e-Book form) for these reasons:

 

  • Accurate: Because books are somewhat permanent, the vast majority are edited by someone other than the author. In fact, most books have several editorseach with a different specialized skill set. Multiple sets of eyes tend to reduce the probability of errors; although, some errors are bound to creep into any form of writing (see my Errors in Writing post for details).
  • Fewer Fads: Books tend to focus on technology that has proven its worth, rather than following every fad on the market. Business runs on proven technology. Someone who is looking for time-tested technology will look in a book, not at an online resource.
  • Author Availability: Having worked through the vagaries of community support myself, I know that it sometimes works, but often doesn’t. A good book author will provide a certain level of support and will answer reasonable questions about book content. You simply don’t get this sort of support using online media.
  • Cohesive: A book offers something that online media can’t in the form of a cohesive work. Whatever the topic is, a book will offer a progression of some type and lets you see a technology from a long view, rather than as snippets.
  • Less Junk: Online media can be clogged with all sorts of junkmaterial that has nothing to do with the topic at hand or that you simply don’t require. Books are more focused, stick to the subject, and are easier to visually filter. As a consequence, you can spend a lot less time getting what you need from a book.


There are some personal issues I have with online media. Many of the books and paper magazines I read are professionally written by authors with the experience to write well. Yes, some online media is also professionally written, but you’re just as likely to run into information written by an unknown entity. Because of the anonymity of the Internet, I find myself checking and rechecking information I obtain from it. Normally, I require at least three different sources, written by different authors, to confirm a fact from the Internet. I’m more likely to accept material from the books of authors that I know well simply because I have read the works of these authors for years and I’ve built up trust in what they have to say. Yes, it’s true that you should verify anything you read, but I find the Internet resources I read are far less reliable.

Much of the confusion about online media has nothing to do with the material itself, but with the authors. When you work mainly with books you hear the voices of a few well-known authors who have helped you over rough spots for many years. The Internet provides a cacophony of many voices that I don’t know. I don’t know how to read between the lines with these authors or understand when I need to consider the author’s personal biases. Again, this is a personal issue, rather than something you’ll need to consider, but if you’re like me, you do need to think about it at least.

I also find that the purpose of online media and books differ. Online media focuses on informing someone of a fact. When you read an online source, it’s to find a bit of information you need now in the fastest manner possible. On the other hand, books tend to focus on teaching. A book presents a topic in a way that helps the reader learn about the technology so that there is a better chance the reader will be able to answer questions about the technology later. This difference in focus is the reason I feel both technologies will remain useful.

As with the radio versus television discussion, I don’t think either online media or books are going to go away. They each have something valuable to offerthey both have their place in your technology toolbox. The ability to choose the right tool, at the right time, has always been the mark of a professional. If you rely exclusively on online media to obtain your technological information, you’re at a distinct disadvantage when compared to the person who uses both online media and books. How do you get your information? Let me know at [email protected].

 

First Snow

FirstSnow

Awoke to white,
what a delight,
the first snow holds us enthralled!

The season’s promise,
is there upon us,
as we prepare for a long winter’s nap.

First comes the fire,
an evening’s desire,
in a woodstove stoked with aromatic wood.

Then comes the cheering,
celebrations endearing,
as friends surround us with glee.

Amidst the swirling,
of flakes now whirling,
I see the ecstasies of days to come.

Copyright 2011, John Paul Mueller

 

Passing By Value Versus By Reference

A number of readers have written me about the examples that use pointers in the book. One of the most common questions comes from the example on page 149 of C++ All-In-One Desk Reference For Dummies. In this example, the application contains a function that accepts an argument by reference. The use of a reference seems to have many people confused and this post will hopefully clear the issue up.

The first thing you need to understand is that there isn’t any magic going on here. The process for working with functions remains constant in C++. When you call any function with an argument, the application creates memory to hold the argument. The memory is local to that function. When the function ends, the memory is released. What the memory holds, now that changes.

Think of the memory as a box. This box has an address that points to it. When you work with a pointer, you’re working with the address. On the other hand, when you work with the value, you’re working with the content pointed to by the pointer, or the contents of the box. Whether the box the function receives contains a pointer or the value depends on how you write the function and what you pass to it from the caller.

Now, let’s look at an example so that you can better understand what’s going on.  This example will do the same thing to the number each time, but using different techniques: by value, using a pointer, and by reference.

#include <iostream>
 
using namespace std;
 
void MessMeUpA(int myparam)
{
    myparam = myparam * 2 + 10;
}
 
void MessMeUpB(int* myparam)
{
    // Obtain the current value.
    int currentValue = *myparam;
 
    // Perform the required math.
    currentValue = currentValue * 2 + 10;
 
    // Save the result.
    *myparam = currentValue;
}
 
void MessMeUpC(int &myparam)
{
    myparam = myparam * 2 + 10;
}
 
int main()
{
    // Call by value.
    int mynumber = 30;
    MessMeUpA(mynumber);
    cout << "By Value: " << mynumber << endl;
 
    // Call using a pointer.
    mynumber = 30;
    MessMeUpB(&mynumber);
    cout << "By Pointer: " << mynumber << endl;
 
    // Call using a reference.
    mynumber = 30;
    MessMeUpC(mynumber);
    cout << "By Reference: " << mynumber << endl;
 
    return 0;
}

You may notice that part of this example comes directly from page 149. If you run this example, you’ll see this output:

PassingData01

When you pass the data by value, you’re passing the information, not a pointer to the information. As a result, MessMeUpA() receives a value of 30. It doesn’t receive a pointer to the initial variable, nor does it obtain a reference to the initial variable. As a result, when the application performs the calculation, the result is thrown away.

When the application calls MessMeUpB(), it provides a pointer to the variable. However, the pointer isn’t a value. As a result, you move the value pointed to by the pointer into a local variable, perform the required math, and then move the value back into the original pointer. As a consequence, the original value is altered to 70.

Finally, when the application calls MessMeUpC(), the function obtains a reference to the original memory location. When the function performs the math, it’s actually using the original value as pointed to by the reference, which means that this is a kind of pointer, just not passed from the caller. The changes made in MessMeUpC() are reflected in the original value because you’re using a pointer to that value and not a copy of the value in local memory.

I highly recommend that anyone trying to understand how code works use the debugger to trace through that code. It’s instructive to look at each of the functions to see how they look. Place a breakpoint in each of the functions and then start the debugger. Open the Watches window, if necessary, by choosing Debug | Debugging Windows | Watches. Here is the view of the Watches window when calling MessMeUpA().

PassingData02

What you see here is a function argument—an integer that contains the value of 30. Now, let’s look at MessMeUpB().

PassingData03

In this case, you see a local variable, currentValue, that contains the updated value and a pointer to the variable used by the caller in myparam. The pointer gives you access to the value held by the caller and allows you to change it. Finally, let’s look at MessMeUpC().

PassingData04

Look at the function argument, myparam. The debugger is giving you a valuable insight here. See the address provided with the variable? Match that address to the pointer provided to MessMeUpB() and you’ll see that they’re the same. The reference is simply another sort of pointer, but one that gives you direct access to the memory without having to go through the extra steps required by pointers. The debugger even shows you that the current value of that memory is 30 (the math hasn’t been performed as of yet).

A function argument is simply a box that holds either a value or a pointer. Whether that pointer is an actual pointer or a reference depends on how you write you code. That’s the point of the example. Pointers don’t have to be mysterious or hardthey’re simply an address for an area of memory (a box if you will) that holds a specific value. Please let me know if you have any questions about this issue at [email protected].