List of ComputorEdge Sponsors

San Diego ComputorEdge Sponsors

Colocation and Data Center

redIT

With approaches like smart security, customized colocation and an extensive range of managed services, redIT helps you intelligently leverage IT.

Computer Books

LOL Computer/Internet Humor

Anecdotes and Jokes about Computers, the Internet, Users, and the People Who Work on Them.

Windows 7 Secrets E-Books

Four-Book Windows 7 E-Book Special at Amazon!

Computer Store, Full Service

Chips and Memory

Visit Our Store or Web Site for New System Specials. New Systems as Low as $249! CPU's * Memory * Hard Drives * and More!

Macintosh Specialists

Maximizers

Serving San Diego County Since 1988 * Onsite Macintosh Service for Home and Small Office Needs * ACSP: Apple Certified Support Professional ACTC: Apple Certified Technical Coordinator Apple Consultant's Network

Repair General

Hi-Tech Computers

Notebooks, Monitors, Computers and Printers We Buy Memory, CPU Chips, Monitors and Hard Drives Windows 7 Upgrades Phone (858) 560-8547

Colorado ComputorEdge Sponsors

Computer Books

LOL Computer/Internet Humor

Anecdotes and Jokes about Computers, the Internet, Users, and the People Who Work on Them

Windows 7 Secrets E-Books

Four-Book Windows 7 E-Book Special at Amazon!

ComputorEdge™ Online — 08/23/13

Click to Visit ComputorEdge™ Online on the Web!

Paper? Who Needs It?

While the government makes you wonder about the future of the paperless society, technology is eliminating paper's use.

Magazine Summary

List of ComputorEdge Sponsors

Digital Dave

by Digital Dave

Digital Dave answers your tech questions.

Security with Client Based E-mails; Space on Flash Drive?; Various Wi-Fi Sites on iPad.

Our Paper-"Less" Society

by Jack Dunning

Paper Is Going Away, Sheet by Sheet

While there is still plenty of paper around, the evidence shows that we are well on our way to a "Paperless Society."

A Free Windows Calorie Counting App

by Jack Dunning

This AutoHotkey Calorie Counting App Imports Diet Information from the Web

AutoHotkey is used to write a script which logs daily food intake while calculating and totaling calories. It builds on the previous To Do List and Address Book apps which use the ListView graphic user interface control.

Wally Wang's Apple Farm

by Wally Wang

Going Digital

Going Digital; Wearable Computing; Microsoft Tag Goes Belly Up; Microsoft Word on the iPad; Adding/Removing Items on Sidebar.

Beyond Personal Computing

by Marilyn K. Martin

Virtually Armed: Our Love of Fake Weapons, Dogs and Smart-Guns

Everything from faux weapons to computer weapons.

Editor's Letters: Tips and Thoughts from Readers

by ComputorEdge Staff

Computer and Internet tips, plus comments on the articles and columns.

"Tablet Vs PC Choice Clarity," "FLV Player Pop-up," "System File Checker"

Send mail to ceeditor@computoredge.com with questions about editorial content.

Send mail to webmaster@computoredge.com with questions or comments about this Web site.

Copyright © 1997-2013 The Byte Buyer, Inc.

ComputorEdge Magazine, P.O. Box 83086, San Diego, CA 92138. (858) 484-1998

Click to Visit ComputorEdge™ Online on the Web!

Digital Dave

“Digital Dave answers your tech questions.”
by Digital Dave

Security with Client Based E-mails; Space on Flash Drive?; Various Wi-Fi Sites on iPad.

Security with Client Based E-mails

Dear Digital Dave,

Simply opening an e-mail can trigger malware! T/F? If True, what kind of embedding is programed—i.e. triggering a hidden link? I'm not speaking about opening attachments. I think most are aware of the disasters that can cause.

Would looking at the e-mail's View Source constitute "opening" the message like the Viewer Pane does? If not, is there a way to bring up View Source without opening the e-mail? Right clicking does not provide that option.

Gary Weinstein

Groveland, CA

Dear Gary,

Normally, merely opening (or viewing) e-mail will not trigger malware, although the tricks for tempting you may be embedded in an e-mail. These temptations usually come in the form of HTML links which require you to click something. (Some people try to embed JavaScript in e-mail—which could cause a problem—but virtually every e-mail program prevents JavaScript from running.)

If you allow an e-mail to be viewed in a preview window, then when you click on the message header it is the same as opening the e-mail. The preview will usually display the same as an opened message. If you don't want to see the images and links, then you should be able to set the options to "Read all messages in plain text." This will disable the HTML capability. When this text setting is in effect you won't see images or get hot links, plus, unless the e-mail is properly formatted, you may see a lot of HTML code which could look like garbage to you.

Another trick for viewing the original (safe) source (View Source) is to hold down the ALT key while pressing ENTER (works in most e-mail programs). This will open a Properties window for the e-mail. (This window may also be opened by right-clicking on the particular e-mail and selecting Properties.) In the Details tab click "Message Source..." which will open a text window showing all of the actual code—including any HTML and embedded images (which will totally look like random characters).

Most of this is overkill. If you don't click links and—as you noted—don't download attachments, then it's unlikely that you will have a problem. The built-in security in the e-mail program should protect you.

Digital Dave

Space on Flash Drive?

Dear Digital Dave,

A real quick question here. After making a family video that, according to my computer, takes up about 8.5GB of space on my hard drive, I wanted to transfer the video to a flash drive. So, I thought that by buying a 16GB flash drive there would be plenty of room for the video. Not so! I couldn't transfer the file because, according to the flash drive, there wasn't enough space. (The video is about 54 minutes long and is in HD, but still is only 8.5 GB.)

I just bought a 32GB flash drive and according to what I've read, that should be more than enough. I think I saw where the 32 GB drive can hold about 80 minutes of video. I don't understand why the 16GB drive was not large enough and is there a rule-of-thumb to go by, before I buy a drive, to figure out how large or how much space I'll need on a drive for a video?

Thank you very much.

Jerry Michael Hughes

San Diego, CA

Dear Jerry,

The problem is that flash drives usually come in the FAT32 format. This provides for maximum compatibility between different types of systems and devices. However, the maximum file size acceptable to FAT32 is 4GB.

Assuming that you are using a Windows computer, you need to reformat the flash drive to NTFS format.

Plug the drive into the USB port. Open Windows Explorer (+E) and select the drive. Right-click on the drive icon and select "Format…" You should do this every time you buy a new flash drive if you plan to use it only with Windows or need to save files larger than 4GB. This should make the entire drive available to your files.

Digital Dave

Various Wi-Fi Sites on iPad

Dear Digital Dave,

I have the 16GB iPad Mini and really like it. It does not have the cellular feature, but I have it running off my home Wi-Fi router and use it there most of the time. I don't worry about security when at home, but when I take the iPad with me on the road, I use it for taking pictures and videos that I share with family and friends. That's where I may have a problem.

When I do go out of the home for these pictures, I don't turn on the "Airplane Mode" meaning the iPad continues to automatically search for and connect to the various Wi-Fi channels I pass along the way.

Question is—is there a danger that someone could hack into my iPad, etc., while I take my videos and pictures even though I actually don't want to connect to any Wi-Fi channels while outside my home? And should I make it a policy, for security reasons, to always turn on the Airplane Mode when I leave my home to take photos and videos which would prevent my iPad from connecting to any Wi-Fi channels?

Thanks for your help and I really enjoy your magazine.

Jerry Hughes

San Diego, CA

Dear Jerry,

While the iPad Mini has very good security, there is no such thing as perfect security. There is always a chance, no matter how remote, that someone could hack into your iPad. For that reason alone I would turn off the Wi-Fi when it is not needed. (It's interesting that Apple uses the term Airplane mode to turn off the Wi-Fi—especially since many airlines now offer Wi-Fi on their planes. That means you need to turn the Airplane mode off to use Wi-Fi on an airplane. Go figure.)

Another important reason to turn off Wi-Fi when you don't need it is to lower the battery drain. The Wi-Fi transmitter is one of the higher users of tablet power. When you're traveling around is when you most want a longer battery life. It only takes a second to turn the Wi-Fi on (Airplane mode off) when you decide to access the Internet.

Digital Dave

Our Paper-"Less" Society

“Paper Is Going Away, Sheet by Sheet”
by Jack Dunning

While there is still plenty of paper around, the evidence shows that we are well on our way to a "Paperless Society."

My paper delivery person just got fired this week. It's about time. I've been calling for the recalcitrant's departure for the last few months. The final straw for the distributor was when the Sunday paper was never picked for delivery forcing one of the supervisors to drive the route. I was tired of calling after missed deliveries. Many of my neighbors had dropped the paper due to these problems.

It's not that I need the paper. I only do the New York Times crossword puzzle. I gave up on the comics when my kids started grabbing them first. The kids are long gone now, but I never got the habit back. For my spouse, the paper is an important part of her day. There is nothing she likes better than reading the paper while having a cup of coffee. She won't let me drop it.

On Mondays and Tuesdays the local paper is more like a pamphlet than a newspaper. It is extraordinarily thin. There is no doubt that newspapers are in trouble. Cutting costs is the name of the game and paper is one of the highest costs of production. Thus, there is less of everything in each copy—including editorial—to save on paper. The advertising which used to be the backbone of periodical revenues has melted away.

"By 2012, according to the data, total newspaper ad revenue had plummeted to $22.314 billion, a drop of 55 percent—as advertising collapsed in the print editions of newspapers and was not replaced by revenue from online advertising."

As evidenced by the recent sale of The Washington Post to Jeff Bezos, founder of Amazon.com, for $250 million, the print media industry is involved in a fire sale. The fear is that there is no way to put out the fire. Bezos' part in it doesn't look like a business decision as much as one of nostalgia. The Washington Post represents a piece of history. That's the problem. My guess is that Bezos doesn't really expects to get his investment back. He is far too savvy about the Internet not to see the Post's real prospects—which are dim. That's okay. Bezos can afford the indulgence.

Newspapers have tried to make up the difference in print loses with online revenues. "Newspaper online revenues, however, were only $3.370 billion, up from $2.027 billion in 2005." There has been success, but not nearly enough to close the increasing gap in print ad revenues. "Put bluntly, the Internet is killing American newspapers." Even if Bezos is able to make a better transition to the Internet, he's looking at a much smaller operation—at best.

E-books Vs Paper Books

Newspapers are not the only part of the print industry experiencing decline. With the growth of the Amazon Kindle and the explosion of the tablet market, there has been a similar jump in the use of e-books. While some claim that the e-book market is now maturing and that sales are leveling off there is little hope that there will be a general rebound in the paper book market.

"Print revenues are declining too. 'We predict the value of the overall fiction market will fall 16% this year, and by a further 4% in 2014. Sales of hardback and paperback novels are falling faster than sales of fiction e-books are rising,' Nielsen said." The slowdown in the adoption of e-books may be due to resistance to change in a market where the early adopters have already joined the fray.

The market is adapting. My wife loves to read and usually has a book in hand. At least that was true until my son gave her one of his old Kindles. I helped her load some of her favorite types of books onto the Kindle. Once the font was adjusted to her preference and she spent some time reading with the Kindle, she fell in love with it. (This is a woman who never uses a computer.) She has since run through a number of books and is always looking for more—much to my son's chagrin. (The Kindle is still linked to his Amazon account, so he's now paying for her reading habit.)

The e-book market will only expand as fast as people decide that they prefer use an e-book reader or tablet rather than a paper book for reading. E-readers are not just a matter of reading on a commuter train or airplane, but one of comfort. There are still many people who prefer to curl up with a good printed book rather than a device.

A Kindle can't replace a coffee table book or look impressive when sitting on a bookshelf. The value of paper books goes beyond the words printed on each page. This is the reason that ink and paper will never go away completely. At a minimum these books will become collectibles cherished by their owners. However, this older market will lose its importance for mainstream delivery of written entertainment and information.

Business Use of Paper

Businesses are continually looking for ways to eliminate paper. Even the fax machine is on a downward slide. "There are a number of reasons people still have fax numbers, often relating to the necessity of a paper trail for legality." While people continue to use online faxing services, every piece of paper represents more work for business staffs.

More and more, e-mail and other Internet communications are replacing business paper production. The argument about the paperless business continues. One side produces evidence that we are well on our way to a paper-"less" society, since the production of paper residue continues to drop. The other side affirms that the comfort and interoperability (anyone can read a printed page without any special software knowledge) of paper is here to stay. Many people will insist that they need paper.

It does no good to just tell people they don't need their tactile paper which they can fold, mutilate and write on. It's the way that they always have done things. A number of years ago, account executives who worked for ComputorEdge resisted switching from a printout of weekly clients to an all computer input and display system. While they understood the need to input the data in the computer, they still wanted their paper list. I happily continued to give them their printouts each week even though the computer offered all the same information—plus the addition of digital notes. After, a couple of months, I discovered that they were no longer writing on their paper lists, although they continued to hang on to them. Eventually, they decided they no longer needed the redundant paper.

This type of change comes to all businesses that wish to reduce both the cost of paper, and even more so, the time it takes to handle all that paper.

Accountants represent the epitome of businesses formerly dependent upon paper (and pencils). Yet, they are in the forefront of removing paper from their businesses. In a survey of accountants "…almost 93 percent of respondents said they work remotely and want to go paperless. More than 63 percent of respondents identified themselves as already being mostly paperless, whereas almost 18 percent said they had already achieved a fully paperless environment."

Will Paper Survive?

The shrinking paper society is impacting the paper business. Mills are closing as worldwide demand collapses. Just like with the paper users (e.g. newspapers, printed books), it's highly unlikely that the paper industry will make a huge comeback. However, paper is not going away.

There are many uses for paper that can't be replaced with computer information. In fact the key term is "information." If the use for the paper doesn't convey information, then it probably isn't threatened by digital technology. (It may be threatened by other technology such as plastic for packaging.) Some of those uses are personal while others are of a more general nature such as cardboard boxes for shipping goods. (Even Amazon hasn't figured out how to ship hard goods over the Internet.) Yes, there is a future for paper in those niches of specialty printing, but primarily paper products will continue to compete in those markets that don't involve information, such as paper airplanes.

Jack is the publisher of ComputorEdge Magazine. He's been with the magazine since first issue on May 16, 1983. Back then, it was called The Byte Buyer. His Web site is www.computoredge.com. He can be reached at ceeditor@computoredge.com. Jack is now in the process of updating and compiling his hundreds of articles and columns into e-books. Currently available:

Just Released! Hidden Windows Tools for Protecting, Problem Solving and Troubleshooting Windows 8, Windows 7, Windows Vista, and Windows XP Computers.

Jack's A Beginner's Guide to AutoHotkey, Absolutely the Best Free Windows Utility Software Ever!: Create Power Tools for Windows XP, Windows Vista, Windows 7 and Windows 8 and Digging Deeper Into AutoHotkey.

Our second compilation of stupid ComputorEdge cartoons from 2011 and 2012 is now available at Amazon! That Does Not Compute, Too! ComputorEdge Cartoons, Volume II: "Do You Like Windows 8 or Would You Prefer an Apple?"

Currently only at Amazon.com, Jack's Favorite Free Windows Programs: What They Are, What They Do, and How to Get Started!.

Available from Amazon, Misunderstanding Windows 8: An Introduction, Orientation, and How-to for Windows 8! Also available at Barnes and Noble and ComputorEdge E-Books.

Available exclusively from Amazon, Windows 7 Secrets Four-in-One E-Book Bundle,

Getting Started with Windows 7: An Introduction, Orientation, and How-to for Using Windows 7,

Sticking with Windows XP—or Not? Why You Should or Why You Should Not Upgrade to Windows 7,

and That Does Not Compute!, brilliantly drawn cartoons by Jim Whiting for really stupid gags by Jack about computers and the people who use them.

A Free Windows Calorie Counting App

“This AutoHotkey Calorie Counting App Imports Diet Information from the Web”
by Jack Dunning

AutoHotkey is used to write a script which logs daily food intake while calculating and totaling calories. It builds on the previous To Do List and Address Book apps which use the ListView graphic user interface control.

This week we're moving on to a basic AutoHotkey Calorie Counter app. It is more involved than I thought it would be, but it introduces quite a few new techniques which include importing the food items directly from a Web page into the database, putting editing controls into a GroupBox for added convenience, reading the data file into memory for more speed, calculation of calories, and a number of other useful AutoHotkey techniques. Similar to both the To-Do List app and the Address Book app, Calorie Counter builds on the ListView techniques from those columns.

If you're not familiar with AutoHotkey, I can't stress enough how useful a little knowledge of it can be for Windows users. Windows will be here for a long time and people who can make computing easier for themselves and other users, whether at home or at work, will find that they increase their personal value to everyone around them. The best thing about AutoHotkey is that there are many simple beginner tricks which can immediately help any Windows user.

However, unless you've been following along from the beginning or are already familiar with writing scripts (of any type), I expect that much of what I address here will seem cryptic. But, if you are motivated to get the most out of your Windows computer, ComputorEdge has some beginner's AutoHotkey Web pages and I've written a couple of newbie AutoHotkey e-books which start with simple, but immediately useful, AutoHotkey techniques building up your own knowledge base bit by bit.

Counting Calories

Most people have tried counting calories at some time in their life. While it is commonly considered one of the most reasonable approaches to dieting, very few people stick with it. It takes a long time to get the best results, although if maintained long enough, it can eventually shrink the stomach and change eating habits for the better. If you have trouble staying on a diet, then don't expect this Calorie Counter app to be any more innovative than all the others readily available for computers. The big difference here is it's written in AutoHotkey, steals data from the Web, and, if you take the time to learn a little AutoHotkey, can be tailored to your specific needs.

I'm not trying to get anyone to go on a diet. My purpose is purely to show another possible AutoHotkey app and teach the techniques I used. Maybe seeing this will spark another idea (not diet related) which you could implement with AutoHotkey on your Windows computer. However, even if you have no knowledge of AutoHotkey, I've posted a command file (CalorieCount.exe) at our ComputorEdge AutoHotkey Dropbox site inside the CalorieCount.zip folder. You can download the ZIP and extract the EXE file, then run the app by double-clicking on the program icon. It will run directly and you don't need AutoHotkey installed on your Windows computer. (Note: It's a new program, so it probably has bugs in it. If you have a problem (or just want to ask a question), you can reach me at AutoHotkey Issues.)

How the Calorie Counter App Works

The Calorie Counter app is similar to both the To-Do List app and the Address Book app from the previous weeks. When either the AutoHotkey script (CalorieCount.ahk with AutoHotkey installed) or the compiled version (CalorieCount.exe no AutoHotkey installation required) is loaded, an always-on-top window opens displaying a ListView window (for the list of food consumed), a Food Search button for finding calorie listings on the Web site Calorie Count at About.com, and editing controls for adding and updating caloric intake (see Figure 1).

Figure 1. Initially the Calorie Count window opens on the current data and is blank. As the details of food items are entered, they are listed and totaled in the ListView window. To search the Web, enter the food in the search field (circled in red) and click Food Search.

The first step is to add your caloric intake by either directly entering the information into the text fields below or searching the Web site Calorie Count and automatically importing the food you highlight. Using the search and import feature saves a lot of typing.

For example, after entering "avocado" into the search field and clicking the Food Search button, the default Web browser is loaded and the Calorie Count search page is loaded with a results list for avocado (see Figure 2).

Figure 2. The calorie search page at caloriecount.about.com is loaded by the Food Search button.

Pick the listing that most closely fits your consumed food. A new page loads showing the caloric details for your chosen food. Now, select the bold name through to the serving size listed below the words "Nutrition Facts" (see Figure 3). All the information needed for this app is included in this selection.

Figure 3. The important information for the Calorie Count app included in the selected area of the Web page (inside the red box).

It is important to start the selection (place the cursor, click and hold the left-mouse button) just before the food name (i.e. "Hass Avocado") because the program assumes that is where it will find the name of the food. (Don't select the entire page or start your selection anywhere other than before the bold food name.) Then drag the mouse to include the line which starts with "Serving Size" and release the left mouse button. The area should appear selected as shown in Figure 3 above. (You could drag the mouse farther down the page because the extra data is ignored, but it would serve no purpose.)

Once the selection is made, use the hotkey combination CTRL++ALT+C to copy the details to the AutoHotkey Calorie Count editing fields (see Figure 4). The import can also be initiated by right-clicking on the CalorieCount AutoHotkey icon in the System Tray and selecting "Import Selected" from the pop-up menu. Be sure that the Web page is the active when you use either the hotkey combination or Import Selected from the System Tray right-click menu.

Figure 4. The hotkey combination CTRL+WIN+ALT+C copies the food name, serving size, and number of calories from the Web site to the editing fields in the Calorie Count window.

This import technique will only work for this particular Web site because it uses keys in the text to find the data of interest (food name, serving size, and number of calories per serving). Any other site would not contain the same keys or format, so rewriting the script would be needed top get it working. There is a slight deliberate delay in the import process, plus occasionally it doesn't work the first time—usually because the Web page isn't active. Just do it again (CTRL++ALT+C).

Once the food details are added to the editing fields, make any necessary adjustments including the number of servings before clicking the Add to List button. When importing, the number of servings always start at 1. The total calories are calculated from the calories per serving and the number of servings will appear in text to the right of the word "Calories" in the lower right side of the window (see Figure 5).

Figure 5. The total number of calories for a new food item is automatically calculated when either Calories/Serving or Number Servings is changed. Click "Add to List" to insert the data into the ListView. Right-click on an item for options to Edit or Delete an item.

As food is added to the ListView, the last column (Total Calories) keeps a running total of calories for the day. To make an adjustment, right-click on an item and select Edit from the menu. The item will be loaded into the editing fields for updating. (The Add to List button will change to an Update button.) Make any necessary changes and click the Update button (which will become the Add to List button again). To delete an item, right-click on that item and select Delete from the menu.

If you close or minimize the Calorie Count window, you can reopen it with either CTRL+ALT+W or by selecting Show Calorie Count from the AutoHotkey icon right-click menu in the System Tray.

The Calorie Count automatically initially loads with today's date. However, you can switch to any other day with the Date control at the top of the window. You can either use the cursor arrows to change the selected portion of the date or open the selection calendar by clicking the calendar icon at the right end of the Date control. The numeric portions of the date (day and year) will also accept direct number input.

At this point, the data is only saved to the data file (CalorieCount.txt) when the app is exited, reloaded, or the date is changed with the Date control. An increment backup file of the data file (CalorieCount[timestamp].txt) is made only on exit or reload.

Remember the Calorie Count app is not finished. I expect that there are a few bugs, plus I've already had a request to add weight tracking to the script (possibly next week).

The CalorieCount.ahk Script

As can be seen, there is a lot going on in this AutoHotkey script. It will take a couple of weeks (maybe more) to address the various pieces of code. The pertinent snippets of code are included as they are discussed. To see the code in the context of the total script, see the complete current CalorieCount.ahk code listing at the end of this file.

The Graphic User Interface Layout

Before discussing the importing for data from the Web, there are some techniques used in the layout of the editing controls which differ from previous examplesand are worth examining. The code for Calorie Count window is similar to that used in the Address Book app with some significant changes:

Gui, Add, Text, w75 xm section, Date

Gui, Add, DateTime, ys vFood1 gChangeDate, LongDate

Gui, Add, ListView, xm section sort r10 w500 vMyListView gMyListview,  | Food

| Serving Size | Cal/Serv | # Servings | # Calories | Total Calories

Gui, Add, Button, section gFoodSearch , Food Search

Gui, Add, Edit, w100 ys yp+2 vFood9, Enter Food Search

Gui, Add, GroupBox, r6 w500 xs section , Food Information

Gui, Add, Text,  xp+30 yp+25  , Food or Drink

Gui, Add, Edit, w350 xp+100 yp-3 vFood2, Food

Gui, Add, Text, xp-100 yp+28, Serving Size

Gui, Add, Edit, w300 xp+100 yp-3 vFood3, Serving size

Gui, Add, Text, xp-100 yp+28, Calories/Serving

Gui, Add, Edit, w50 xp+100 yp-3 vFood4 number right,

Gui, Add, Text, xp+70 yp+3 , Number Servings

Gui, Add, Edit, w50 xp+100 yp-3 vFood5 gTotalCalCalc right,

Gui, Add, Text, xp+70 yp+3, Calories

Gui, Add, Text, w50 xp+50 yp vFood6

Gui, Add, Button, xp-400 yp+23 gAddItem, Add to List

Other than the use of the DateTime control at the top of the listing, the GroupBox control:

Gui, Add, GroupBox, r6 w500 xs section, Food Information

which affects how the control positioning parameters are approached, is the most notable addition.

Using the GroupBox GUI Control

Initially, the GroupBox control looks like it is merely a cosmetic addition which puts a title on and an outline around another group of controls—and in many ways it is only for looks. However to make the best use of a GroupBox the section option is used, making all the controls within the box part of that section. The usual xm or xs and ym or xs position options don't help because they place the controls following the GroupBox outside the box. Using the xp±n and yp±n options for positioning not only allows placing the other controls inside the box, but they also get tied together as a group anchored by the GroupBox control. Since each xp±n and yp±n option is relative to the upper left-hand corner of the previous control, the entire group becomes a block of controls which can be moved to another location (or to put in another script as a block) by merely repositioning the first control, which in this case is the GroupBox. (Note: This type of relative grouping only helps when initially positioning a group in a GUI. It does not help with positioning the controls while doing active resizing through the GuiSize label.)

As you scan through the various Text, Edit, and Button controls which appear after the GroupBox control, you see that each has both an xp and yp option for precise positioning relative to the top left-hand corner of the previous control. Some of the adjustments were made for purely aesthetic reasons—such as the alignment between the Text controls and the related Edit controls (see Figure 6).

Figure 6. The GroupBox control places a title at the top of the box and a light outline around the area. Relative positioning parameters (xp±n and yp±n) are best suited for placing controls inside the box. The xp±n option increments a control horizontally. The yp±n option increments a control vertically.

Using GroupBox is not as important as realizing that the relative xp±n and yp±n options for positioning controls can create locked blocks of code which will maintain their position as a group regardless of where they appear.

Calories by the Day

Since diets are usually measured by the day, it makes sense for the calorie counter to work by the day. If this were purely a daily counter with no history, then the list could be cleared each day and start over. However, if all history is wiped out, there is no feeling of being on a diet or knowledge of accomplishment. Virtually every calorie counter (even a notebook and pencil) uses some type of calendar to keep a daily count. Therefore, the DateTime control is added to make the diet daily:

Gui, Add, DateTime, ys vFood1 gChangeDate, LongDate

Notice that the variable is Food1. The date and time will be stored in the first column of the ListView, which is also the primary sort column, although it is hidden from view. As with the Address Book discussed in previous columns, the variables are assigned names (Food1, Food2, Food3, …) to match up with the column numbers is the ListView. This makes the matching of columns to edit fields and parsed arrays much easier, especially if loops are involved.

The blank column for the datetime stamp appears in the ListView command as the first vertical line just before the column with the heading Food:

Gui, Add, ListView, xm section sort r10 w500 vMyListView gMyListview,  | Food

| Serving Size | Cal/Serv | # Servings | # Calories | Total Calories

If you didn't know it was there you would miss it completely. The vertical lines ( | ) delimiting the column headers are always located at the end of the column heading. That means the first column header is blank.

While the date does not appear in the ListView, it is used to filter the data, only displaying the items which match the date at the top of the window.

The Web Food Search

The search for calories on the Web is straightforward. Click the Food Search button and the target Web site is opened (caloriecount.about.com) with the default browser executing a search for the food entered into the search edit field:

FoodSearch:     ;Search for food items at caloriecount.about.com

Gui, Submit, NoHide

Run, http://caloriecount.about.com/cc/search2.php?searchpro=%Food9%

Return

Now the trick is capturing the data from the Web page and putting it into the correct fields.

Importing Food Data

The method I use for importing data to the AutoHotkey GUI is not nearly as elegant as the techniques used by Robert Ryan in his Dictionary app highlighted in "Five Cool Little Windows Apps." In fact, it's a little sloppy and may not work quite right for some of the Calorie Count Web pages at About.com. (I've tried it with a number of entries and it seems to work pretty well.) Ryan's Dictionary script directly accesses the Web page without ever opening a Web browser, then uses the enigmatic Regular Expression (RegEx) tools to parse the data from the target page. I consider Ryan's approach advanced techniques, whereas I'm currently working at an intermediate level. Even if I understood everything that Ryan did, it wouldn't be appropriate for the level of this column. (Regular Expressions represent an important topic for anyone advancing in programming. There have been many books written about them and they are an integral part of virtually every programming language.)

After copying (CTRL+C sent by the AutoHotkey script) the selected section of the Web page, as noted above, the Clipboard may contain data such as that shown in Figure 7. The Clipboard contents is displayed with the MsgBox command (MsgBox, %Clipboard%).

Figure 7. Data copied to the Clipboard from a Calorie Count Web page.

Note that the various pieces of data are located at different locations. I used this message box layout to pick the keys for locating the data I wanted. The code for copying, parsing and importing the data is as follows:

^#!c::               ;Import food items from caloriecount.about.com

WinActivate, Calories         ;added for right-click menu

WinWaitActive, Calories

Sleep, 200

SendInput, ^c

Sleep, 500

StringSplit, RowData, Clipboard , `n,

GuiControl, ,Food2, %RowData1%

Uppercheck := substr(rowdata2,1,1)

If Uppercheck is upper

GuiControl, ,Food2, %RowData1%, %Rowdata2%

GuiControl, ,Food5, 1

SelectedRow := 0                        ;These two lines were added for times when

GuiControl, ,Button3, Add to List       ;the edit controls are still in the Update mode

Loop, %Rowdata0%

{

If rowdata%A_Index% contains Serving Size

{

StringReplace, Serving, RowData%A_Index%,Serving Size%A_Space%,

GuiControl, ,Food3, %Serving%

}

If rowdata%A_Index% contains Grade

{

Next := A_Index+1

StringReplace, RowData%Next%, RowData%Next%, `r

GuiControl, ,Food4, % trim(RowData%Next%)

GuiControl, ,Food6, % trim(RowData%Next%)

}

}

Return

The subroutine is executed with the CTRL++ALT+C (^!#C) hotkey combination.

The first two lines of code (WinActivate and WinWaitActivate) were added so that the System Tray right-click menu option Import Selected would work. Originally, I would just select the text and hit the key combination. It worked no problem. But when using the right-click menu, the Web page became inactive. These lines resolved the problem.

Next the selected text is copied to the Clipboard (SendInput, ^c).

The contents of the Clipboard are parsed into lines of text and placed in an array called RowData (StringSplit, RowData, Clipboard , `n,).

If the selection of text on the Web page has been done properly, then the first variable (RowData1) will always be the name of the food (Food2). (Remember, Food1 is the date.) The Edit control is set to the RowData1 value (GuiControl, ,Food2, %RowData1%). That was easy, but I want to include the next line in the same food description. The problem is that the additional description didn't always exist, so I couldn't just add the next line.

I noted that when the additional food description line existed, it started with a capital letter, whereas, the next line never did. I wrote code which checked the first letter of the line for uppercase, then added the line to the control if it was true:

Uppercheck := substr(RowData2,1,1)

If Uppercheck is upper

GuiControl, ,Food2, %RowData1%, %Rowdata2%

SubStr(RowData2,1,1) is used to save the first character of the line to the variable UpperCheck. Next the If var is type conditional is used to determine if the character is uppercase (If Uppercheck is upper). The If var is type command is useful for checking a number of different character and variable types (integer, number, upper, lower, valid time or date, etc). If true (uppercase) the second line is added to the food description (GuiControl, ,Food2, %RowData1%, %Rowdata2%).

The value of Food5 always initiates at one serving (GuiControl, ,Food5, 1).

The next part is a little tricky. The number of lines varied from Web page to Web page, so I needed other methods for identifying the correct data. I put the parsed lines in a loop (Loop, %Rowdata0%), then I checked for two conditions.

The serving size always contained the words "Serving Size." The line before the number of calories always contained the word "Grade." I used two separate If conditionals to identify when these words were found in the loop (If rowdata%A_Index% contains Serving Size and If rowdata%A_Index% contains Grade).

The words "Serving Size" were removed from the identified string as follows:

StringReplace, Serving, RowData%A_Index%,Serving Size%A_Space%,

then store to Food3 (GuiControl, ,Food3, %Serving%).

When the word "Grade" is found, the next RowData variable in the loop contains the number of calories per serving:

Next := A_Index+1

GuiControl, ,Food4, % trim(RowData%Next%)

GuiControl, ,Food6, % trim(RowData%Next%)

then added to both Food4 and Food6 which start off at the same value. I later discovered that sometimes there was occasionally a spurious carriage return in the string which caused problems. This was resolved by removing it:

StringReplace, RowData%Next%, RowData%Next%, `r

More Calorie Count to Come

There is much more to discuss, such as how the data is read into memory, then accessed and altered, plus adding spreadsheet-like calculations to the app, but those must wait until next time. Eventually, I plan to use the saved calorie data to make a personal diet dictionary saving the continual looking up of calories on the Web.

You can find the complete CalorieCount.ahk AutoHotkey script and the compiled version CalorieCount.exe at the ComputorEdge AutoHotkey Dropbox site in the ZIP file CalorieCount.zip. You can also find the complete code listing to view the changes above in context (or for copy-and-paste) at the end of this column after the cool advertising for my two AutoHotkey e-books.

*                    *                    *

Now available in e-book format from Amazon, Jack's A Beginner's Guide to AutoHotkey, Absolutely the Best Free Windows Utility Software Ever!: Create Power Tools for Windows XP, Windows Vista, Windows 7 and Windows 8.

Building Power Tools for Windows XP, Windows Vista, Windows 7 and Windows 8, AutoHotkey is the most powerful, flexible, free Windows utility software available. Anyone can instantly add more of the functions that they want in all of their Windows programs, whether installed on their computer or while working on the Web. AutoHotkey has a universality not found in any other Windows utility—free or paid.

Based upon the series of articles in ComputorEdge, Jack takes you through his learning experience as he explores writing simple AutoHotkey scripts for adding repetitive text in any program or on the Web, running programs with special hotkeys or gadgets, manipulating the size and screen location of windows, making any window always-on-top, copying and moving files, and much more. Each chapter builds on the previous chapters.

For an EPUB (iPad, NOOK, etc.) version of A Beginner's Guide to AutoHotkey click here!

*                    *                    *

Jack's latest AutoHotkey book which is comprised of updated, reorganized and indexed columns from the last six months is now available at Amazon for Kindle hardware (or free software) users. Since the columns were not all written in a linear fashion, the book has been reorganized and broken up into parts by topic. The book is not for the complete beginner since it builds on the information in A Beginner's Guide to AutoHotkey. However, if a person is reasonably computer literate, they could go directly to this book for ideas and techniques without the first book.

If you've been following along with my AutoHotkey columns, then there is little new information in the book (although I have added more clarification for techniques I felt were either confusing or wrong). The only reason I can see to buy it would be as a handy reference. The AutoHotkey commands used are included in a special index to the chapters in which they appear. Even I can't remember everything I wrote.

For an EPUB (iPad, NOOK, etc.) version of Digging Deeper into AutoHotkey click here!

*                    *                    *

CalorieCount.ahk Script (Copy-and-Paste)

OnExit, UpdateFile

Global WinPos

SelectedRow := 0

Gui +AlwaysOnTop +Resize

Gui, Add, Text, w75 xm section, Date

Gui, Add, DateTime, ys vFood1 gChangeDate, LongDate

Gui, Add, ListView, xm section sort r10 w500 vMyListView gMyListview,  | Food

| Serving Size | Cal/Serv | # Servings | # Calories | Total Calories

Gui, Add, Button, section gFoodSearch , Food Search

Gui, Add, Edit, w100 ys yp+2 vFood9, Enter Food Search

Gui, Add, GroupBox, r6 w500 xs section , Food Information

Gui, Add, Text,  xp+30 yp+25  , Food or Drink

Gui, Add, Edit, w350 xp+100 yp-3 vFood2, Food

Gui, Add, Text, xp-100 yp+28, Serving Size

Gui, Add, Edit, w300 xp+100 yp-3 vFood3, Serving size

Gui, Add, Text, xp-100 yp+28, Calories/Serving

Gui, Add, Edit, w50 xp+100 yp-3 vFood4 number gTotalCalCalc right,

Gui, Add, Text, xp+70 yp+3 , Number Servings

Gui, Add, Edit, w50 xp+100 yp-3 vFood5 gTotalCalCalc right,

Gui, Add, Text, xp+70 yp+3, Calories

Gui, Add, Text, w50 xp+50 yp vFood6

Gui, Add, Button, xp-400 yp+23 gAddItem, Add to List

LV_ModifyCol(1, 0)

LV_ModifyCol(2, 150)

LV_ModifyCol(3, 125)

LV_ModifyCol(4, "Integer 50 NoSort")

LV_ModifyCol(5, "Float 50 NoSort")

LV_ModifyCol(6, "Integer 50 NoSort")

LV_ModifyCol(7, "Integer 50 NoSort")

IfExist, CalorieCount.txt ;Add data from CalorieCount.txt to ListView

{

FileCopy, CalorieCount.txt, CalorieCount%A_Now%.txt  ;incremental backup

FileRead, CalorieCount, CalorieCount.txt

LoadWindow(A_Now)

}

NextRow := 1

Menu, MyContextMenu, Add, Edit, EditItem

Menu, MyContextMenu, Add, Delete, DeleteItem

Menu, Tray, Add, Import Selected, ^#!C

Menu, Tray, Add, Show Calorie Count `^`!W, ShowCalorieCount

IfExist, CalorieCount.txt

{

FileReadLine, WinPos, CalorieCount.txt, 1

Gui, Show, %WinPos% , Calorie Count

}

Else

{

WinGetPos,X1,Y1,W1,H1,Program Manager

X2 := W1-800

Gui, Show, x%x2% y50 , Calorie Count

}

Hotkey, ^!w, ShowCalorieCount

ShowCalorieCount:

Gui, Show,, Calorie Count

Return

MyListView:

If A_GuiEvent = e          ;Finished editing first field of a row

LV_ModifyCol(1,"Sort")

Return

FoodSearch:     ;Search for food items at caloriecount.about.com

Gui, Submit, NoHide

Run, http://caloriecount.about.com/cc/search2.php?searchpro=%Food9%

Return

EditItem:          ;Move row from ListView columns into edit fields

SelectedRow := LV_GetNext()

StringSplit, RowData, EditText , |

Loop, 6

{

GuiControl, ,Food%A_Index%, % Rowdata%A_Index%

}

CalorieOld := Rowdata1 . ",""" . Rowdata2 . """,""" . Rowdata3 . """," . Rowdata4 . "," . Rowdata5 . "," . Rowdata6

GuiControl, ,Button3, Update

Return

ChangeDate:

Gui, Submit, NoHide

UpdateFile()

LV_Delete()

LoadWindow(Food1)

Return

GuiContextMenu:  ; Launched in response to a right-click or press of the Apps key.

if A_GuiControl <> MyListView  ; Display the menu only for clicks inside the ListView.

Return

LV_GetText(ColText, A_EventInfo,1)    ;Gather column data in string EditText

EditText := ColText

Loop 5

{

LV_GetText(ColText, A_EventInfo, A_Index+1)

EditText := EditText . "|" . ColText

}

Menu, MyContextMenu, Show, %A_GuiX%, %A_GuiY%

return

DeleteItem:         ;Deletes selected rows

MsgBox, 4100, Delete Food?, Delete Item? Click Yes or No?

IfMsgBox No    ;Don't delete

Return

SelectedRow := LV_GetNext()

StringSplit, RowData, EditText , |

StringReplace, RowData2, RowData2, ", ""

StringReplace, RowData3, RowData3, ", ""

CalorieOld := Rowdata1 . ",""" . Rowdata2 . """,""" . Rowdata3 . """," . trim(Rowdata4) . "," . trim(Rowdata5) . "," . Rowdata6

StringReplace, CalorieCount, CalorieCount, %CalorieOld%'n

StringReplace, CalorieCount, CalorieCount, %CalorieOld%

LV_Delete(SelectedRow)  ; Clear the row from the ListView.

Return

AddItem:                 ;Add new or update ListView row

Gui, Submit, NoHide

If SelectedRow = 0

{

If LV_GetCount() = 0

LastTotalCal := 0

Else

LV_GetText(LastTotalCal,LV_GetCount(),7)

Food1 := SubStr(Food1,1,8) . SubStr(A_Now,9,6)

Food6 := Round(Food4*Food5)

Food7 := Round((Food4*Food5)+LastTotalCal)

LV_Add("", Food1,Trim(Food2),Trim(Food3),Trim(Food4)

,Trim(Food5),Round(Food6),Round(Food7))

StringReplace, Food2, Food2,", "", All

StringReplace, Food3, Food3,", "", All

CalorieCount := CalorieCount . "`n" . Food1 . ",""" . Food2 . """,""" . Food3 . """," . Trim(Food4) . "," . Trim(Food5) . "," . Food6

}

else

{

If SelectedRow = 1

LastTotalCal := 0

Else

LV_GetText(LastTotalCal,SelectedRow-1,7)

Food6 := Round(Food4*Food5)

Food7 := Round((Food4*Food5)+LastTotalCal)

LV_Modify(SelectedRow,"", Food1,Food2,Food3,Food4

,Food5,Food6,Food7)

CalorieChange := Food1 . ",""" . Food2 . """,""" . Food3 . """," . Trim(Food4) . "," . Trim(Food5) . "," . Food6

StringReplace, CalorieCount, CalorieCount, %CalorieOld%, %CalorieChange%

LV_GetText(LastTotalCal, SelectedRow , 7)

Loopnum := Lv_GetCount()-SelectedRow

Loop, %Loopnum%

{

LV_GetText(Food6, SelectedRow+A_index , 6)

Food7 := Round(Food6)+Round(LastTotalCal)

LV_Modify(SelectedRow+A_index,"Col7", Food7 )

LV_GetText(LastTotalCal, SelectedRow+A_index , 7)

}

SelectedRow := 0

GuiControl, ,Button3, Add to List

}

Return

GuiSize:  ; Widen or narrow the ListView in response to the user's resizing of the window.

if A_EventInfo = 1  ; The window has been minimized.  No action needed.

return

; Otherwise, the window has been resized or maximized. Resize the ListView to match.

GuiControl, Move, MyListView, % "W" . (A_GuiWidth - 20)

Return

TotalCalCalc:        ;Calculate total calories

Gui, Submit, NoHide

TotalCalVal := Round(Food4 * Food5)

GuiControl, ,Food6, %TotalCalVal%

Return

^#!c::               ;Import food items from caloriecount.about.com

WinActivate, Calories         ;added for right-click menu

WinWaitActive, Calories

Sleep, 200

SendInput, ^c

Sleep, 500

StringSplit, RowData, Clipboard , `n,

GuiControl, ,Food2, %RowData1%

Uppercheck := substr(rowdata2,1,1)

If Uppercheck is upper

GuiControl, ,Food2, %RowData1%, %Rowdata2%

GuiControl, ,Food5, 1

SelectedRow := 0

GuiControl, ,Button3, Add to List

Loop, %Rowdata0%

{

If rowdata%A_Index% contains Serving Size

{

StringReplace, Serving, RowData%A_Index%,Serving Size%A_Space%,

GuiControl, ,Food3, %Serving%

}

If rowdata%A_Index% contains Grade

{

Next := A_Index+1

StringReplace, RowData%Next%, RowData%Next%, `r

GuiControl, ,Food4, % trim(RowData%Next%)

GuiControl, ,Food6, % trim(RowData%Next%)

}

}

Return

UpdateFile:  ;When exiting

DetectHiddenWindows On

UpdateFile()

ExitApp

Return

UpdateFile()    ;Saves data to file when ListView updated

{

Global

FileDelete, CalorieCount.txt

WinGet, Min, MinMax, Calorie Count

If Min = -1

WinRestore, Calorie Count

WinGetPos, X, Y, Width, Height, Calorie Count

Width -= 16

Height -= 38

NewPos = x%x% y%y% w%Width% h%Height%

FileAppend, %NewPos%, CalorieCount.txt

StringReplace, CalorieCount, CalorieCount, %WinPos%,

FileAppend, %CalorieCount%, CalorieCount.txt

}

LoadWindow(LoadDate)

{

Global

Loop, parse, CalorieCount, `n

{

If (A_index = 1 and SubStr(A_LoopField, 1, 1) = "x")

{

WinPos := A_LoopField

Continue

}

Else

{

If subStr(A_LoopField,1,8) = subStr(LoadDate,1,8)

{

Loop, Parse, A_LoopField , CSV

{

RowData%A_Index% := A_LoopField

}

If LV_GetCount() = 0

LastTotalCal := 0

LV_Add("", RowData1,RowData2,RowData3,RowData4

,RowData5,RowData6,Round((RowData4*RowData5)+LastTotalCal))

LastTotalCal := (RowData4*RowData5)+LastTotalCal

NextRow += 1

}

}

}

}

Jack is the publisher of ComputorEdge Magazine. He's been with the magazine since first issue on May 16, 1983. Back then, it was called The Byte Buyer. His Web site is www.computoredge.com. He can be reached at ceeditor@computoredge.com. Jack is now in the process of updating and compiling his hundreds of articles and columns into e-books. Currently available:

Just Released! Hidden Windows Tools for Protecting, Problem Solving and Troubleshooting Windows 8, Windows 7, Windows Vista, and Windows XP Computers.

Jack's A Beginner's Guide to AutoHotkey, Absolutely the Best Free Windows Utility Software Ever!: Create Power Tools for Windows XP, Windows Vista, Windows 7 and Windows 8 and Digging Deeper Into AutoHotkey.

Our second compilation of stupid ComputorEdge cartoons from 2011 and 2012 is now available at Amazon! That Does Not Compute, Too! ComputorEdge Cartoons, Volume II: "Do You Like Windows 8 or Would You Prefer an Apple?"

Currently only at Amazon.com, Jack's Favorite Free Windows Programs: What They Are, What They Do, and How to Get Started!.

Available from Amazon, Misunderstanding Windows 8: An Introduction, Orientation, and How-to for Windows 8! Also available at Barnes and Noble and ComputorEdge E-Books.

Available exclusively from Amazon, Windows 7 Secrets Four-in-One E-Book Bundle,

Getting Started with Windows 7: An Introduction, Orientation, and How-to for Using Windows 7,

Sticking with Windows XP—or Not? Why You Should or Why You Should Not Upgrade to Windows 7,

and That Does Not Compute!, brilliantly drawn cartoons by Jim Whiting for really stupid gags by Jack about computers and the people who use them.

Wally Wang's Apple Farm

“Going Digital”
by Wally Wang

Going Digital; Wearable Computing; Microsoft Tag Goes Belly Up; Microsoft Word on the iPad; Adding/Removing Items on Sidebar.

Music went digital a long time ago and wiped out all those record stores selling tape cassettes, vinyl records, and audio CDs. Books are starting to go digital as PDF, Kindle, and iBook files. Movies have long since gone digital as streaming files or massive MPEG files. Even physical objects are going digital as 3D printers increase in capabilities and decrease in price.

Not surprisingly, video game sales have been dropping over the years. With the PlayStation 4 and the Xbox One ready to arrive this holiday season, video game sales will likely increase. Yet while physical copies of video games keep dropping, digital sales of video games keeps growing.

Even people's expertise can go digital. In the old days, you had to attend classes to learn anything from an expert. Nowadays, you can just visit a site like the Khan Academy and just watch a video. Unlike a real classroom that requires you to show up at a certain time and place, video tutorials let you learn at your own pace at your own convenience. You can even replay the video or rewind it until you completely understand the material, which is impossible to do with a classroom lecture.

What can't go digital are unique experiences. Even though you can watch movies through Netflix, many people still go to movie theaters for the excitement of seeing a new movie on a big screen. People often stand in line hours or even days ahead of time to catch a particularly popular movie. That shared experience is something that digital files can't duplicate, and that's the key to success in today's digital world.

Restaurants simply serve food, but their strength is serving food conveniently for the customer (no dishes to wash or ingredients to buy and prepare) and providing a unique atmosphere such as dining along the coast. Restaurants aren't really in the food business as they are in the convenience and experience business. How successful would any restaurant be if they sold food out of a can that you could easily buy from a supermarket instead?

It's this shared experience that makes a difference between just being another business selling commodities that people could easily get somewhere else, or defining a profitable niche for themselves. What's killing the PC market is that PCs are just a commodity. A PC from Dell is no different than a PC from Acer or Hewlett-Packard.

What makes the iPhone and iPad unique is that you can't get it from anyone else, although rivals come close to duplicating its features and sometimes even surpassing them. Yet if you want an iPhone, you have to buy an Apple product. If you want a PC, you can buy it from lots of companies. Apple insures repeat customers. Someone buying a PC today might buy a Dell, but tomorrow they might buy a Toshiba or Sony PC instead. There's little loyalty among customers to PC vendors, which makes the PC market difficult to sell and profit from. The only company really profiting from PC loyalty is Microsoft since most PC users remain loyal to Windows.

If you're in business for yourself, ask how you're providing a unique experience that customers can't get anywhere else. Even as an individual job seeker, what makes your resume stand out? Most job seekers are simply commodities with similar backgrounds and experience as an accountant, bus driver, or lawyer. Apply for a job and you'll likely be treated like another commodity, which means probably being ignored.

To succeed, think of your skills as a digital asset that others can easily steal, copy, or find somewhere else. Now what advantage will someone have in choosing you over anyone else? If you want to work cheaper, companies can just outsource your job for even less. Instead, think like Apple and strive to be the only choice.

For example, there are plenty of photographers available that you can hire. Yet only a handful of photographers specialize in pet photography. If you wanted a great picture of your collie, would you go to any photographer or would you go to someone who specializes in pet photography?

Likewise, if you want a computer, you can buy a PC from anyone. If you want a Macintosh, an iPhone, or an iPad, you have no choice but to buy it from Apple. Apple has a monopoly on their own products. A pet photographer creates an artificial monopoly that separates her from every other photographer. As a business or job seeker, you need to create your own real or perceived monopoly in whatever field you're in.

Try to satisfy everyone like a general photographer, and there's no reason anyone should go to you. Try to create a monopoly and people have no choice but to go to you. Even though any photographer can take a picture of your dog, a specialized pet photographer immediately attracts just those customers who want pictures of their pets.

Of course, the market for general photographers is larger than for pet photographers, but the key is to create a large enough monopoly so you have all that market to yourself like Apple has done with their various products that can be imitated, but never exactly duplicated.

In the book How to Drive Your Competition Crazy, author Guy Kawasaki tells the story about a pizza parlor trying to compete against other pizza parlors in the neighborhood. Since pizza parlors basically sell a commodity (a pizza that you can get at another pizza parlor), this particular pizza parlor created their own artificial monopoly by offering a special deal.

Back in the days before the Internet, most pizza parlors could only advertise in places like the Yellow Pages, so this pizza parlor offered a deal that if you ripped out a competing pizza parlor's ad from the Yellow Pages and brought it in, that pizza parlor would give you a huge discount. The end result was that people wound up ripping out every pizza parlor ad from the Yellow Pages but one.

Now the next time people wanted to call for a pizza, the only ad left was the ad for the pizza parlor that had initiated the ad-ripping deal in the first place. By having customers destroy ads for their competitors, this pizza parlor basically created a monopoly all to itself.

Monopolies by themselves aren't wrong; just when they're abused. Lady Gaga is a monopoly because if you want to see Lady Gaga in concert, you have no choice but to buy a ticket. Yet nobody's forced to attend a Lady Gaga concert if they don't want to.

You can easily pirate Lady Gaga's music off the Internet as a digital file, yet people still attend her concerts anyway. That's because her concert offers more than just music. Likewise, the success of Apple is more than just a processor, RAM, and hard drives shoved in a case. Most anti-Apple critics focus on these technical specifications and justifiably point to lower cost alternatives in the PC world. Yet they're missing the monopoly of OS X.

If you just want technical specifications, you can buy any PC. If you want a computer running OS X, you have no choice but to get a Macintosh (or create an illegal "Hackintosh" by installing OS X on an ordinary PC). Tech-savvy users can easily build a Hackintosh, but most people will just opt for the convenience of getting a Macintosh.

Apple is basically a monopoly of their own creation. Microsoft Office is also a monopoly of its own creation. OpenOffice and LibreOffice can duplicate most features of Microsoft Office for free, yet companies still rely on Microsoft Office because they're willing to pay the price for the features that only Microsoft Office can provide such as near 100 percent file compatibility. If you don't like the Macintosh because you can get the same technical specifications cheaper in a PC, then you can use that same argument to dislike Microsoft Office because you can get the same features for free in OpenOffice or LibreOffice. You can even go one step further and ask yourself why pay for any operating system when you can use a free one like Linux instead?

Ultimately, the way to success is to create your own monopoly so customers will willingly flock to you. If everything went digital, including your own business or job skills, what would you have left to offer? If you can answer that question, you'll likely succeed in the future. If you can't answer that question, then you can fade away like Borders Bookstores, Tower Records, and Blockbuster Video.

Wearable Computing

Rumors claim that Apple is working on an iWatch device, which is basically a computer that you wear strapped to your body. While the iWatch is still nothing but a rumor, another type of wearable computer that is definitely not fiction is Google Glass.

One way to look at wearable computing is to take the old, grumpy, tech-savvy male approach and focus only on the drawbacks. Can a wearable computer have a screen the same size as a desktop monitor? Nope. Can a wearable computer offer a full size physical keyboard? Nope. Can a wearable computer run programs like AutoCAD? Nope. So therefore wearable computers are destined to fail like those two other massive flops that were unable to exactly duplicate all the features of desktop and laptop computers: the iPhone and the iPad.

A better way to look at new technology is to first examine its advantages and then weigh those advantages against its drawbacks. Stock traders typically spend all day staring at multiple monitors, all displaying different information on specific stocks or market trends. While most people just need one monitor, stock traders typically use two monitors or more.

Figure 1. Stock traders often rely on seeing multiple monitors at once.

With wearable computers like Google Glass, stock traders could keep important information directly in their sight no matter which way they turned, or even if they need to leave their desks. Google Glass could also accept voice commands so rather than type an order to buy or sell, or look at a specific stock, traders could just tell Google Glass what to do and see that information instantly. In the financial markets, speed is critical, so the less time it takes a trader to make a decision, the more likely he or she can profit from it.

For ordinary people, Google Glass offers another huge advantage that you can't duplicate with any other device. My friend tested Google Glass at his daughter's birthday party. By wearing a camera at all times that could see whatever he was looking at, he could capture birthday moments that would be difficult, if not impossible, to catch spontaneously by reaching for a mobile phone, aiming, and capturing a picture or video. With Google Glass, capturing moments quickly and easily is a huge advantage over any other type of camera that requires you to hold it at all times to duplicate the same ability to capture spontaneous moments.

Those fleeting birthday moments would normally be gone forever, but with Google Glass, he captured them forever. The only way he could have captured those same moments was to keep a camera aimed at his daughter the whole time, which meant he couldn't interact with anyone else at the party.

The cost of Google Glass is reportedly around $1,500 so don't expect many people to rush out and buy one right away. Yet Google Glass shows the value of wearable computers. Once again, the advantage isn't duplicating features of existing technology but in offering features that were either difficult or impossible to duplicate with existing technology.

Wearable computers won't replace PCs just like tablets won't completely replace PCs. However, with people able to buy smartphones, tablets, and wearable computers, they'll have less need for PCs except for performing tasks that are still the strength of PCs, such as running AutoCAD or typing and editing large reports.

Wearable computers either represent a new opportunity or a threat to the status quo. It doesn't matter what your point of view may be since wearable computers will change the world around you with or without your acceptance anyway.

Microsoft Tag Goes Belly Up

For some odd reason, Microsoft seems to be their own worst enemy. When QR codes, those chunky black and white images that embed information, started growing in popularity, Microsoft decided to copy the leading technology and offer their own version called Microsoft Tag. This logic of coming up with their own solution to a problem that doesn't need another solution seems puzzling.

With QR codes stalling in usage among smartphone users in America, Microsoft has finally decided to give up on their Microsoft Tag project. Strangely, Microsoft's own employees reportedly claimed that the company didn't fully support their efforts, which makes you wonder why Microsoft bothered to create a clone of QR codes if they weren't even going to support their own technology.

With failed initiatives ranging from The Microsoft Network (to compete against CompuServe and America Online), Silverlight (to compete against Adobe Flash), J# (to compete against Java), Kin (to compete against the iPhone), Zune (to compete against the iPod), and Surface tablets running Windows RT (to compete against the iPad), you have to wonder why Microsoft continues chasing after the leaders in any field instead of using their resources to blaze their own trail instead.

Of course, it takes imagination and planning to blaze your own trail while it's much easier to copy something and keep improving it while spending billions in the process like Bing (to compete against Google) and the Xbox (to compete against Nintendo and Sony's PlayStation). The way Microsoft's executives think (or don't think), you almost expect Microsoft to branch out into pizzas (to compete against Dominos), cars (to compete against Toyota), and animated cartoons (to compete against Pixar).

Microsoft could probably save billions if they fired all their top executives and just listened to their customers instead. That way we wouldn't have products like Windows 8, that ignored customer feedback, which would force Microsoft to release Windows 8.1 that incorporated all the customer feedback that the company had previously ignored with Windows 8.

Deciphering the strange logic of Microsoft's executives should be an interesting project for anyone who enjoys watching a dysfunctional corporation work against its own best interests. Then again, Microsoft is probably no different than most other large corporations and governments.

Microsoft Word on the iPad

For some odd reason, many people act as if Microsoft Office is the most crucial tool every business needs. While Microsoft Office can definitely be handy, just having Microsoft Office is no guarantee that anyone will do anything useful with it. Even though different versions of Microsoft Office aren't always 100 percent compatible with each other, people still seem to believe that file compatibility is one of the most important features in the world.

If you need Word file compatibility, there are plenty of iPad word processors that can save and edit Word .doc and .docx file formats. If you just need to work with Word documents, you can try Open Word Processor, which is designed specifically to maintain maximum compatibility with Word file formats. If you need an office suite to maintain file compatibility with Word, Excel, and PowerPoint files, then try QuickOffice, which is now owned by Google and available for both iOS and Android.

Figure 2. Open Word Processor is one of many iPad apps designed to create and edit Microsoft Office files.

You won't be able to do fancy formatting or extensive word processing on an iPad. Forget about creating an index or adding footnotes to a document, but for general typing and editing, typing text and sharing it with Microsoft Office users is simple and easy. If you're waiting for the official version of Microsoft Office for the iPad, ask yourself why. Do you really need the full power of Microsoft Office on the road? If so, then you might be better off with an ultralight laptop running Microsoft Office such as a MacBook Air. If not, then one of many Microsoft Office file compatibility apps should help you get work done while traveling.

After using an iPad to get light work done on the road, you might suddenly realize that an iPad can be a productive tool after all, especially in places where it's not convenient to take a laptop.

*                    *                    *

The Finder window typically displays common folders on the left pane, such as the Documents or Music folders. If you want to customize the folders that appear in this left pane, just click the Finder icon on the Dock to open a Finder window. Now you can right-click on a folder in the left pane and when a menu pops up, choose Remove from Sidebar.

If you want to add a folder to the sidebar, just drag and drop it over the sidebar. Now you can put your own favorite folders in the Finder window for quick one-click access whenever you need it.

In the early days, before Wally became an Internationally renowned comedian, computer book writer, and generally cool guy, Wally Wang used to hang around The Byte Buyer dangling participles with Jack Dunning and go to the gym to pump iron with Dan Gookin.

Wally is responsible for the following books:

My New Mac, Lion Edition

My New iPad 2

Steal This Computer Book

Microsoft Office 2010 For Dummies

Beginning Programming for Dummies

Beginning Programming All-in-One Reference for Dummies

Breaking Into Acting for Dummies with Larry Garrison

Strategic Entrepreneurism with Jon and Gerald Fisher

How to Live with a Cat (When You Really Don't Want To)

The Secrets of the Wall Street Stock Traders

Mac Programming For Absolute Beginners

Republican Fairy Tales (Children's Stories the 1% Tell About the Rest of Us)

The Zen of Effortless Selling with Moe Abdou

The 15-Minute Movie Method

Erotophobia (A novel)

In his spare time, Wally likes blogging about movies and writing screenplays at his site "The 15 Minute Movie Method." Wally can be reached at wally@computoredge.com.

Beyond Personal Computing

“Virtually Armed: Our Love of Fake Weapons, Dogs and Smart-Guns”
by Marilyn K. Martin

Everything from faux weapons to computer weapons.

There is something in our human psyche that loves to hold (or wear) fake weapons. Or feel the ridged joy of a fake grenade computer mouse under our palm, as we spend long days in our cubicle-forts taking orders for office products in three thousand different colors. On our own time, we rotate mega-weapons to blast away in our favorite FPS (First Person Shooter) video game, or dress up for Paintball Battle or the Hobbit Hangover Convention armed with the requisite "in character" weaponry. Although news of a genuine, cutting-edge computerized gun-scope can crash a company's Sales Plan due to all the "interest and inquiry."

Faux-weaponry and high-tech "possibilities" seem to surround us and, oddly, comfort us. Yes, deep down we are darn sure that in the event of a real Zombie Apocalypse, we could rise above our safe little worlds of machine-gun flash drives and chain-saw phone apps, and valiantly destroy our fair share of the hungry undead!

Weapon-Ware Peripherals for the Office

Solware used to sell a gun-shaped PC mouse, a perfect replica of a Sig Sauer P230 Design. It got a lot of media attention—then was discontinued.

If you can read Russian, you can always try to order the aforementioned grenade-mouse from Modding.ru. Not sure what the import rules are, and you may give the entry-point inspectors a mild heart attack, but it is a replica-weapon mouse that is available.

Then there's a USB Clown Cannon. It shoots 3 foam missiles 10-15 feet, and Vat19.com includes software that allows you to fire using just your arrow keys and space bar. But, alas, this product has been discontinued too. Although if you're into retro-weaponry, Vat19 does offer a "working wood catapult kit" for only $25. There are also the usual cardboard-and-tinfoil swords and waterguns for the defense of your cubicle-fort. But companies may frown on super-soakers which can actually "kill" keyboards.

If your cubicle "computer rig" is more into function over form, you could bypass the faux-guns for a genuine "electronic sentry" to guard your computer and cubicle from prying eyes. $40 will get you a Portal 2 Sentry Turret that plugs into a USB port. This Desk Defender is basically a motion sensor to deter snoops, and will say things like "Target Acquired," or "Preparing to dispense product!" if a spy gets too close. If it is moved or knocked over, it will call out "Critical Error!" or "Malfunctioning!"

Office Policies against Fake Weaponry?

None that I could find, with most official weapons' policies dealing with real guns. The people most concerned about fake-weapons are in the entertainment field. Science Fiction conventions get a lot of costumed characters, whose fake weapons have to be checked out for accidental-lethality upon entry.

And after the theater-shooter in Colorado, AMC Theaters passed a ban that theater-goers could no longer wear costumes or masks, nor carry fake weapons. Oh, and the GOP Convention in Tampa, Florida last year banned "dangerous and disruptive items" like hatchets, gas masks and large water guns. But real guns were OK.

Home Office Gun-Ware

In the sanctity of your own home, however, the lines between fake and real weaponry can blur. Besides, some guys (including survivalists, preppers and anti-zombie Special Ops) don't feel comfortable unless they are surrounded by enough firepower to take down the next hoard of marauding Decepticons.

Like the guy who has this for a home office, as shown in Gizmodo. Whether those rifles/guns shoot bullets or soft pellets, one could imagine that if that house was ever under-attack, the head-of-household could shout at some point, "Fall back to my computer armory!"

Replica Weaponry as Gifts

Maybe it's our always-alert-for-zombies defensive strategy these days, or it's geek-chic to wear faux-weaponry to bars for a great intro line, but fake or "repurposed weaponry" is suddenly hot. Not sure if I'd want to see a pair of slingshot-heels or a hand grenade perfume bottle (or jewelry box) under the Christmas tree. But there are probably a lot of teen boys and girls out there who'd love a pair of battleship-shoes or manicure-guns.

You can check all these out at TrendHunter or Toxel.

Comparing Computer Browsers to Guns

Sometimes, it's all a matter of perception, like what gun imagery pops up in your mind as you contemplate different browsers. But you can let your brain cells rest, since someone has already nailed this thought-experiment and added visuals.

Decoy War Machines: From Russia with a Lot of Hot Air

International sales of large military weapons and equipment is psycho-dangerous But if you're just a tiny country with only 15 people in your "standing army", say, but want to impress those Big Guys and their satellite photos with your sophisticated fake-military, call up a Moscow company called Rusbal, and check out their Inflatable Military Decoys. (Note that all prices are "Negotiable.") Or check out their SomethingTube video (in Russian) for inflate, deflate and sewing instructions. I swear, you'll never look at an inflatable air-bed the same way again...

Real High Tech Guns

The Consumer Electronic Show (CES) in early 2013 featured a Texas start-up called TrackingPoint and what they claim is The World's First Smart Rifle. They make "Precision Guided Firearms" (PGFs) fitted with advanced computerized scopes that can "calculate a firing solution" for your chosen target. The company offers three heavily customized hunting rifles, from a .300 Winchester Magnum to a .338 Lapua Magnum, that come with modified trigger mechanisms and variable weighting. You also have to purchase hand-loaded match grade rounds from TrackingPoint.

The basic idea is to tag-track a target from a distance, with one precisely calculated shot that always finds the bullseye. These $17,000 Linux-powered rifles were such a hit, that the company's site says they are now available by application-only. You can read more about this futuristic rifle with its computer-scope at ArsTechnica.

Cracked Magazine Unmasks the Hidden Horror of Shooter-Dogs

Leave it to our Slacker Sages at Cracked Magazine to find the oddest stat imaginable in the gun debate, and solemnly inform us that every year at least one person in the US is shot by...a trigger-pulling dog. This usually involves a dog that trips over or kicks a loaded gun with its "safety" off, which is on the floor of a vehicle or put down while hunting deep in some forest. BOOM!

In the cases cited, most of the owners lived, although a hunter in France had his entire hand blown off. (And that should be a life-lesson if you ever want to go hunting with a basset hound, whose ears alone are probably trigger-worthy!)   In March 2013, a police dog in Massachusetts was taken to a snowbank before a house, where three suspects had just been observed hastily burying something. The police dog took a whiff and started digging like mad. BOOM! He found the gun alright. "No humans—or dogs—were hurt."

Our intrepid Cracked researchers go on to inform us that the first dog-shooter in public records was in 1928—the same year Alexander Fleming discovered penicillin. "We're not saying there's a connection, but isn't it suspicious how the moment we found a way to live longer, dogs started shooting at us?" Indeed. And in 1947, a dog accidentally shot and killed another dog during a hunting trip in Idaho. The owner-hunters said they just left their dogs and loaded guns in their car while they went into a store. Upon returning to the car, they found "one dog dead with buckshot in his head." Nothing was said about any "remorse" on the part of the surviving, shooter-dog.

I read through their research references, and excited-dogs-shooting-owners-while-hunting seems to be the running theme here. One guy in Utah was bent over setting duck decoys, and his dog shot him in the posterior. Or, as the article informed us, "Twenty-seven rounds of birdshot were removed from the man's behind after the accident." After a dog-shoots-hunter episode in Iowa in 2007, a spokesman for the Iowa Department of Natural Resources confirmed that a hunter getting shot by their dog happens a couple times a year all over the US. You can read the whole article at Cracked.

So there! Better to stick with your faux weapon computer-mouse. And be darn sure your rifle's "safety" is on if you are going hunting with Man's Best Friend Until He Pulls The Trigger. And if they are chewers, better keep Spike and Leonard away from your inflatable deer stand too.

(Special thanks to Cakeheadlovesevil.wordpress.com and Cracked.com.)

Marilyn is a freelance writer and humorist, with a special interest (besides computers and technology) in Science Fiction. Besides short stories published in various magazines, she also has some new e-books available on Amazon Kindle: Hunting Monster Aliens is an on-going series of novellas, about a wise-cracking team of ghost investigators who occasionally turn into alien-monster hunters. Culture Crash! A California Yankee Transplanted to Texas is a collection of humor essays chronicling her adventures in her new home-state.

ComputorEdge E-Books has converted many of Marilyn's computer humor columns into four e-books.

Now available in a four-book Kindle bundle from Amazon.com The Best Computer and Internet Humor, Anecdotes, and Jokes Found on the Web. Marilyn's collection of the funniest stories about our computing machines and how we use them at home, the office, and in cyber space. Save 25% off the individual book price!

Editor's Letters: Tips and Thoughts from Readers

“Computer and Internet tips, plus comments on the articles and columns.”
by ComputorEdge Staff

"Tablet Vs PC Choice Clarity," "FLV Player Pop-up," "System File Checker"

Tablet Vs PC Choice Clarity

[Regarding Jack Dunning's August 9 article, "PCs Versus Tablets":]

Jack D. has really brought some clarity to the proposition of choice between tablets and PCs. Why choose? Depend on the PC and "play" with the tablet. The problem fades to insignificance.

-Walker, Colorado Springs, Colorado

Re: Your article this week, IMHO, If you have a new high end convertible laptop/tablet with 4 gigs ram and 500 or more gigs of storage and an external 23" monitor or high def TV with HDMI input and a wireless keyboard and mouse then you have the best of all possible PC options. Then a large screen smartphone or 7/10" android tablet would round out any possible mobile or desktop computing needs, (plus a 1 terabyte or more external HD and/or the cloud for multi media and backup purposes). With a docking Station you can leave all of the peripherals plugged in and the cords tucked out of sight and still take your computer on the road or onto the patio but with a 1 button or 1 USB plug disconnect. Of course the same goes for the Mac/iPad minority.

-Buck O, El Cajon, CA

FLV Player Pop-up

[Regarding the August 9 Digital Dave column:]

You mentioned the "paid" Revo Uninstaller. There is a paid version but there is also a free version. I'm sure mine is only one of many responses you will get for your comment.

-Walter Rosenfeld, Hemet, CA

Dear Digital Dave,

I recently experienced a session with FLV player. It came aboard as a fake Adobe Flash update and my "user" said it looked like a regular Adobe notice. It is a very annoying piece of...stuff.

I used MalwareBytes and CCleaner, then System restore. 10 minutes and done.

-PCMarty, San Diego, CA

I was so glad to see PC Marty's warning about fake Adobe Flash updates. I've been getting quite insistent reminders to update Adobe Flash daily, but haven't quite gotten around to it. Now I think I'll purposely keep ignoring them.

-Jan Mayer, Murrieta, CA

System File Checker

[Regarding the August 2 Digital Dave column:]

Dear Dave,

Following your instructions; after typing sfc.exe/scannow and hitting Enter, I get a statement that I must be an administrator running a console session in order to use the sfc utility. I got around this by doing the following:

All Programs => Accessories => right-click Command prompt => click Run as administrator => type sfc/scannow and hit Enter.

-Richard Hardy, La Jolla, CA

ComputorEdge always wants to hear from you, our readers. If you have specific comments about one of our articles, please click the "Tell us what you think about this article!" link at the top or bottom of the specific article/column at ComputorEdge.com. Your comments will be attached to the column and may appear at a later time in the "Editor's Letters" section.If you want to submit a short "ComputorQuick Review", or yell at us, please e-mail us at ceeditor@computoredge.com. If you would like to review our recent e-books, please visit ComputorEdge E-Books.

Send e-mail to ceeditor@computoredge.com with questions about editorial content.

Send mail to cewebmaster@computoredge.com with questions or comments about this Web site.

Copyright © 1997-2013 The Byte Buyer, Inc.

ComputorEdge Magazine, P.O. Box 83086, San Diego, CA 92138. (858) 484-1998

Click to Visit ComputorEdge™ Online on the Web!