Tuesday, May 22, 2012

Terrible Tuesday

Microsoft publishes updates to its Windows operating systems on the second Tuesday of every month. I have only half-facetiously been calling that day "Terrible Tuesday," but this past Tuesday (8 May 2012) was far worse than most. I encountered not one, not two, but four updates that would not install: one to Silverlight and three to .NET Framework 4.

As is so typical of Windows 7, in the course of researching fixes to those two problems [I consider the Silverlight and .NET problems as separate because their solutions were radically different], I encountered a third: I could not access or open the Event Viewer log window, open the Services window, or perform some several other related Windows functions even when I logged on to my admin account.

I will address these issues one by one. I will not regale you with any of the procedures that I tried but which ultimately failed. There is often some learning value even with failed attempts, but in the interest of keeping this post to a manageable length, I will forgo describing those unsuccessful efforts and limit my description only to what worked.

Finally, be aware that the problems I describe occurred only on my children's Windows 7 laptops. The updates all went smoothly on my ancient workhorse desktop running Windows XP. And for reasons that I still have not figured out, they also went smoothly on my own Windows 7 laptop. Go figure.

1. Event Viewer Window Failed To Open

On the second Tuesday in May 2012, Silverlight and .NET Framework 4 updates failed to install during Microsoft's monthly update process. My first thought was to open the Event Log to see whatever warning and/or error messages might be present on my computer to help me diagnose the problem.

[Note: in order to open [or attempt to open] the event log, click the sequence "Start orb | Control Panel" and then the link "View event logs" immediately under the "Administrative Tools" label.]

If your "Event Viewer" window opens successfully, you are good to go. Unfortunately for me, the Event Log would not open at all. Instead, I encountered the following error message:
"Event Log Service is unavailable. Verify that the service is running."
"No big deal," I thought to myself. "I'll just open the Services window and re-start the Event Log Service."

[Note: To open the Services window, it is necessary to click "Start orb | Control Panel | System and Security | Administrative Tools" and then double-click the link to "Services" in the right-hand panel.]

When I did that, I encountered more failure. Now my error message read as follows:
"Windows could not start the Windows Event Log service on Local Computer.
Error 4201: the instance name passed was not recognized as valid by a WMI data provider."
I was clearly stuck: I could not perform basic functions that any system administrator should be able to.

I immediately suspected that this problem was a self-inflicted wound. A week or two before, I attempted to copy the Windows folder contents onto my external hard drive for backup using the old tried-and-true drag-and-drop method in Windows Explorer. After a significant amount of time, the process finally ended but with precious few files and folders actually copied.

After repeated failed attempts and out of sheer frustration, I impulsively seized control of the "Windows" folder under my own administrative user name. Bingo! I was finally able to copy all the Windows folder files and sub-folders to my external hard drive for backup.

I naïvely thought all was well. Wrong! The Event Log problem and the Services functional problems [and who know what else!] were lurking beneath the surface. How to fix them?

The short answer: insure that the "SYSTEM" entity is included in the "Groups or user names" field in the Security tab of the Property window for the following folder:
"C:\Windows\System32\LogFiles\WMI\RtBackup"
I know what you're probably thinking: if that is the short answer, you'd hate to see the long answer. Yes, that was a mouthful, but bear with me just a bit longer.

I actually found two methods to accomplish this objective. The first method I am about to describe should more clearly illuminate the long-winded statement I made above:
  • In Windows Explorer, navigate your way to the folder "C:\Windows\System32\LogFiles\WMI\RtBackup"
  • Right-click on the folder and select the "Properties" menu at the very bottom
  • In the resulting window, select the Security tab
  • Click the "Edit..." button
  • In the resulting "Permissions for RtBackup" window, click the "Add..." button
  • In the resulting window, type the word "SYSTEM" (without quotation marks) into the field that says "Enter the object names to select (examples):"
  • Click the "OK" button
  • You will now be back in the "Permissions for RtBackup" window. Make sure that "SYSTEM" is selected in the "Group or user name" field. The bottom field should be labeled "Permissions for SYSTEM." If it is not already checked by default, click on the "Full control" option.
  • Click the "OK" button to save your new settings
You should now be back in the "Security" tab of the "RtBackup Properties" window. An entry for "SYSTEM" should now appear among the groups and user names listed in the top field, and if you select that "SYSTEM" entry, all options associated with full control should now be checked in the "Permissions for SYSTEM" window.

The second and much easier method: simply delete the folder
"C:\Windows\System32\LogFiles\WMI\RtBackup"
altogether and restart your machine.

As an alternative, if you are like me and are hesitant to delete system folders, simply rename the folder to something like
"C:\Windows\System32\LogFiles\WMI\RtBackup_original"
and then restart.

With either approach, when you restart your computer, Windows will re-create the missing folder and magically include the requisite "SYSTEM" entity among the groups and users along with the appropriate permissions.

You will now be able to open both the Event Log and the Services window. All this work just to overcome the first hurdle of three. But don't stop now: there's more fun to come...

2. All .NET Framework 4 Updates Failed

This actually turned out to be the easiest problem both to diagnose and to fix. To make a long story short, here are the steps to take:
  • Click "Start orb | Control Panel | Programs | Programs and Features"
  • In the resulting "Uninstall or change a program" window, select "Microsoft .NET Framework 4 Client Profile" from listed programs
  • Click the "Uninstall/Change" label at the top of the listed programs
  • Select the option "Repair .NET Framework 4 Client Profile to its original state"
  • Click the "Next" button and proceed with the repair
Eureka! When I returned to Windows Update and tried again, the three updates involving .NET Framework 4 succeeded.

On the down side, I had to also install four additional updates to .NET Framework 4. My guess is that "Repair .... to its original state" is a euphemism for something akin to a fresh re-install. That might explain why I had to install seven total updates instead of just the three I was expecting.

Whatever the case, this repair process worked for the .NET updates—but it failed miserably for Silverlight.

3. Silverlight Update Failed

The repair process that worked so nicely for .NET did not work at all for Silverlight largely because there was no "Repair" option available in the program list. The label said only "Uninstall" and not "Uninstall/Change." I was hesitant to completely uninstall Silverlight even if it was slightly outdated. I was fearful that if I could not re-install Silverlight, I would then be left without any functioning program at all.

But when I tried installing the new version over the old, I received the following error message:
"The feature you are trying to use is on a network resource that is unavailable. ...
[E]nter an alternate path to a folder containing the installation package 'silverlight.msi' in the box below."
It turns out that the procedure I finally used was even more radical. In Windows Explorer, I right-clicked on the file "C:\Windows\System32\regedit.exe" and selected the option "Run as administrator." I then navigated my way to the following registry key
"HKEY_CLASSES_ROOT\Installer\Products\
D7314F9862C648A4DB8BE2A5B47BE100"
—and then promptly deleted that entire key!

I had previously downloaded what I thought was the Silverlight installation file (Silverlight.exe) from Microsoft's web site http://www.microsoft.com/silverlight/. It was in fact the installation file, but not in the way that it first appeared.

I had read on Google that the Silverlight.exe file I downloaded was actually an archive file consisting of several different individual files. Sure enough, opening "Silverlight.exe" with WinZip, 7-Zip, IZArc, or any other archive program revealed four separate files within, one of which was named "silverlight.msi." Many of you will recognize the extension ".msi" as shorthand for "Microsoft installer." I then extracted the files to a folder on my hard drive and double-clicked on silverlight.msi.

Hallelujah! This installation process, coming as it did after deleting the registry key, successfully ran to completion. As with the .NET update, I had to install not only the update that highlighted the problem in the first place but another one as well.

Unresolved Questions

One small question that lingers in my mind: would double-clicking directly on the "Silverlight.exe" file I downloaded have worked just as well? That would have saved me the drill of extracting the four component files. If I am ever confronted with the same situation again, I will certainly give that a try first.

A second and more important question: could I have used the "Uninstall" option in the "Uninstall or change a program" window? I vaguely recollect that I tried and that the attempt failed. However, I neglected to write down any resulting error message, so I cannot be absolutely certain. At that point, I was juggling several balls in the air at the same time, and I guess I took my eye off one of them for a moment.

After the dust settled and Silverlight was finally working once again, I actually contemplated experimenting with the uninstall process—for a fleeting second. After all I had gone through to finally get Silverlight to work, I chickened out and chose to leave well enough alone.

However, you can bet that if this situation ever arises again, especially with Silverlight, I'll give "uninstall" a whirl first before I go mucking around in the registry again. If the "uninstall" works for you, then more power to you. If not, at least you now have another alternative that should work.

Final Thoughts

I have been a long-time critic of Microsoft and Windows, and these examples merely reinforce my inclinations. Why can Microsoft not even make functional updates to its own software (e.g., Silverlight and .NET) on its own latest-and-greatest operating system (i.e., Windows 7 Professional 64-bit)? I deeply resent having to squander so much of my own time and effort researching and resolving problems that just should not exist in the first place.

And if I were not already so angry, I might have laughed at some of the on-line forums where Microsoft's own technicians said several times: "Try this solution; if that doesn't work, try this second solution; and if they both fail, try third-party software."

Third party software? Microsoft unable to fix its own defective products? As Chatsworth Osborne Jr. so astutely observed on the old The Many Loves of Dobie Gillis TV show, "Surely you jest!"



And for all of you hardy souls who stuck with this narrative to the bitter end, I now ask you: do you begin to understand a little bit why I refer to it as Terrible Tuesday???

Wednesday, April 25, 2012

Parental Discretion Advised

There are at least three ways to prevent your children from accessing internet web sites that you do not want them to view:
  • Use your network router
  • Use individual web browser parental control features, if any
  • Use the Windows "hosts" file
Two additional methods include (1) installing specialized software made by McAfee, Norton/Symantec, Net Nanny, and other vendors; and (2) utilizing your ISP's parental control features, if any. These options are going to vary so much from one household to another that they are beyond the scope of this blog.

The first three methods listed above will have more general applicability, so let's tackle them one by one.

1. Your Network Router

The way to make only one change but still affects all computers without exception: block sites on your internet router.

Comcast happens to be my internet service provider (ISP), and they have provided me with an SMCWBR14S-N4 router. For those of you who share the same router, perform these steps:
  1. Log on
  2. Click the "Firewall" menu option at upper right
  3. Click the "Content filter" menu at the far left (last entry in list)
  4. Go to field "Add a URL filter" to block a url (alas: wild cards not accepted; enter "encrypted.google.com" and "www.google.com" separately, not the more generic "*.google.com")
    or
    Go to field "Add a Host (keyword) Filter" for specific keywords
  5. Click the corresponding "Add" button(s)
The exact details will obviously vary from one router to another, but the principle will be the same: log on to your router's software, locate the content filtering section, complete the applicable fields, then save your newly-created filters.

I consider this technique to be the strongest method of the three. It prevents all all computers on the network from using any of the blocked web sites. For example, consider the case where you happen to have a favorite adult web site you like to visit from time to time [and I am speaking purely hypothetically, of course] but which you do not want your children to visit. Then too bad, so sad: neither their computers nor yours will be able to access the forbidden fruit under this method. Everyone gets shut out.

2. Web Browser Parental Control Features

Another method involves blocking websites within particular web browsers. The following steps steps apply both to Internet Explorer versions 8 and 9:
  1. Open Internet Explorer
  2. Click "Tools | Internet Options" menus
  3. Select the "Content" tab
  4. In the "Content Advisor" section, click the "Enable" button
  5. Answer "Yes" in the User Account Control window to allow program changes
  6. Select the "Approved Sites" tab
  7. In the "Allow this website" field, add all sites that you want to block and click the "Never" button, not the "Always" button.

    [Note: You can block all subdomains of a website by entering *. in front of the domain. For example, if you want to block all sites of google.com, simply enter *.google.com]
  8. Select the "General tab"
  9. Check the option "Users can see websites that have no ratings"
  10. Click on the "Create password" button to set a password to control the Content Advisor
  11. Click the OK button to save changes
Firefox, unfortunately, has no intrinsic parental control features. Users must therefore rely on a variety of available add-ons for Firefox. I have read about one such add-on called BlockSite that supposedly performs what its name implies, but the reviews make it sound very problematic and troublesome. I personally have had very good success with another add-on called Procon Latte which I heartily recommend.

Opera has a built-in system similar to that of Internet Explorer:
  1. Open Opera
  2. Click on "Tools | Preferences..." menus
  3. Select "Advanced" tab
  4. Select "Content" menu from list at left
  5. Click "Blocked Content..." button at very bottom
  6. Clock the "Add..." button
  7. Type the url you wish to block in the field indicated
The blocked urls are stored in a file in the user's profile as per the following examples:

      C:\Documents and Settings\<user name>\Application Data\Opera\Opera\urlfilter.ini   (Windows XP)

      C:\Users\<user name>\AppData\Roaming\Opera\Opera\urlfilter.ini   (Windows 7)

For Google's Chrome browser, I found the following instructions on the internet but have not verified the process because I have not yet installed Chrome on any of my computers:
  1. Open your Chrome Web Browser
  2. Click the wrench symbol in the upper right corner.
  3. Choose "Tools"
  4. Click "Under the Hood" tab
  5. Choose "Change Proxy Settings"
  6. Click "Security" followed by "Restricted Sites"
  7. Double click "Sites" and add the site you want block
The methods in Internet Explorer, Opera, and Firefox are password-protected, so if you beat your children to the punch and are the first to assign those passwords, then you should be good to go. Wouldn't it be ironic if some tech-savvy youngsters read this article and preempted the parents by assigning their own password before the parents did, thus locking the *parents* out? Fortunately, I think you must have administrative privileges to set the passwords; if you have granted your children admin privileges for whatever reason, then you have only yourself to blame.

In addition to Firefox, Opera, and Internet Explorer, I also have Avant Browser, Maxthon, and K-Meleon browsers installed. If I were to eventually install Google Chrome as well, that would make seven browser accounts to modify. With my two children, that translates to potentially fourteen individual browser tweaks. I personally am just not that industrious; that many changes would simply be entirely too tedious, cumbersome, and unwieldy for me. However, if parents do not lock down all installed browsers, then children can simply try one browser after another until they find one that allows them access.

For these reasons, I consider this the weakest of the three approaches under consideration.


3. Edit the Windows "hosts" file

Another way to block web sites in Windows: modify the "hosts" file (found in "C:\Windows\System32\drivers\etc\hosts"). The idea of modifying "hosts" has been around since at least Windows XP, but the details are somewhat different for Windows 7.

The following steps must be taken on each applicable Windows 7 computer:
  1. Open an elevated instance of Notepad or Wordpad32 (i.e., open as administrator)
  2. Drill down to folder "C:\Windows\System32\drivers\etc\"
  3. Set file type to "All Files (*.*)" to display files with no extension
  4. Right click on file "hosts" and select the "Properties" menu item
  5. Uncheck "Read only" attribute
  6. Finish opening "hosts" and edit: for offending sites, add lines such as
    127.0.0.1   www.googles.it         and/or
    127.0.0.1   googles.it
  7. Save changes with "Save As...", again setting file type to "All Files (*.*)"
  8. After saving "hosts" file, reset "Read-only" attribute
[Note: Some anti-malware software such as SpyBot Search & Destroy automatically add numerous entries into the "hosts" file to block sites identified as malicious and therefore harmful. All the more reason to add such anti-malware in addition to your firewall and anti-virus software.]

I consider this approach to be the happy medium between the other two. It is nowhere near as draconian as using the router settings which block any and all computers on the network from accessing the blocked sites. Instead, I can target only the "hosts" file on my children's computers while leaving my own computer unaffected.

On the other hand, this technique is nowhere near as cumbersome as having to adjust the settings of a multitude of different web browsers for each user. Indeed, only one "hosts" file is involved that covers all users of that computer regardless of the browser(s) involved.

Of course, this last method might not be applicable if you happen to share a computer with your children because editing the "hosts" file to block web sites will affect your own account, too. If your child's computer has only one browser installed—most likely Internet Explorer—then maybe the web browser tweak option is the simplest way to go. If you do not use the computer much but other family members have one or more computers with multiple browsers, then maybe programming the network router is the best option. As with almost anything these days, you will have to choose the alternative that best suits your particular situation.



For further reading:

Blocking Web Sites in Windows 7

Setting Up Parental Controls (Microsoft site)

Sunday, April 22, 2012

Hungry for Missing Feeds?

For reasons I have never understood, Mozilla has deleted the RSS feed icon from the URL field of the Firefox web browser. Prior to version 4 of Firefox, this RSS icon appeared in the address/URL field whenever the site had RSS feed capabilities. Users had only to click on the icon to subscribe to RSS feeds from that site. On the other hand, the icon was altogether absent if the site had no such RSS capability. In short, this method provided a very quick, definitive, and convenient visual cue.

Alas: that useful feature is no more. Beginning with the release of Firefox version 4 on 22 March 2011, there is no longer any visual cue whatsoever because there is no longer any RSS icon at all.

Or is there? Yes, in fact, there is: it is just well hidden. To display it, simply click on "View | Toolbars | Customize..." menus and find the "Subscribe" button with the RSS icon. Simply drag the button to the toolbar of your choice.

Voilà! Unlike before, the RSS logo will always be present. Now, however, the "Subscribe" button becomes an active link with bold black print in the presence of an RSS feed site. Conversely, the button becomes an inactive link with faded gray print in the absence of an RSS feed. Not quite as prominent a visual cue as the original, but it will suffice; it is certainly better than nothing.

It still irks me that users must discover this solution on their own and then implement it. This is especially puzzling in light of the fact that Mozilla's own SeaMonkey browser still retains the original feature of the RSS icon in the URL field. It took me over a year before I stumbled upon the new Firefox alternative, and then thanks only to this helpful web site.

I did personally reap an immediate benefit from this discovery. It so happens that in order to view the RSS icon on my local school district's web site, Firefox users must:

  • allow font@http://themes.googleusercontent.com (based on JavaScript)     *AND*
  • allow system colors     *AND*
  • allow images

By default, I have all three of those features disabled in Firefox. I disable JavaScript as a security measure; I apply my own soothing color scheme to avoid migraine headaches caused by the garishly bright color schemes present on most web sites; and I disable images to avoid an avalanche of unwanted advertisement eyesores.

As a result, I never saw the RSS icon on my school district's quirky web site and was therefore completely unaware that the site even had RSS capability — that is, until I installed the "Subscribe" button on my "Bookmarks Toolbar" in the manner described above. Lo and behold: the bold black "Subscribe" link drew my attention and alerted me to the presence of RSS.

Yippie kay yay! My hunger for RSS feeds is once again satiated.

Sunday, March 18, 2012

Google's "Privacy Policy" Oxymoron

Marketers are rapidly overtaking lawyers as my most despised profession. The marketers take a marvelous tool like the internet and them promptly abuse it. [As an example of non-internet marketing abuses, our local Walmart now has small TV screens in almost every aisle that broadcast nothing but a steady stream of advertisements. And our Exxon gas stations now have a small TV screen between each pair of gas tanks to promote the products sold inside the local store. Gag me with the proverbial spoon!]

Here are some measures I have already taken to try to limit the intrusion of marketers into my internet web browser:
  • turn cookies off
    (selectively allow for those sites that have valid security need like on-line banking)
  • turn JavaScript off, then selectively allow as necessary
  • turn pop-up windows off
  • even turn images off to block gif animations (selectively allowing images for things like editorial cartoons, of course!)
  • use only secure, encrypted Google (https://encrypted.google.com) to search, not the usual open and unencrypted http://www.google.com/
  • recently installed add-on called "Ghostery" on my Firefox browser: a real eye-opener to the vast array of entities tracking us on almost every web site. As a result, I have chosen to block everything listed as 3rd party elements (820 as of this writing!)
I am not happy with what I'm seeing and hearing about Google's changes to their so-called privacy policy that became effective on 1 March 2012. I give them credit for publicizing the changes in advance, but the term "privacy" in this case a gross misnomer. On the contrary, they instead encompass ways to increase the range and scope of sharing user information with an expanding base of commercial vendors. At this rate, "Google privacy policy" is destined to become a classic oxymoron along with my previous favorites: military intelligence, congressional ethics, rap music, and Microsoft Works.

My previous internet service provider (Verizon) assigned dynamic IP addresses, so I would shut down each night and log on the next day to a different IP address. Unfortunately, my current internet service provider (Comcast) assigns static IP addresses. That means that even though I still shut down every night, I log on the next day to the very same external IP address I had the day before. That makes it far too easy for transactions to be identified to me over long periods of time, thus making it easier for vendors to compile my browsing history.

Consequently, I now take special additional measures aimed specifically at Google:
  • When I check my Google mail account, I read the mail and then promptly sign out. No searches or other transactions while signed in to gmail.
  • Same thing for Google+: whenever I sign in to Google+, I read the postings, make my own posting(s), if any, and then promptly sign out. Again, no searches or other transactions while signed in to Google+.
  • Same applies to Google's Blogspot: sign in, post new blog, then immediately sign out. Again, no searches or any other transactions while signed in to Google's Blogspot.
  • Ditto for our family web page posted to Google's web site hosting service at sites.google.com. Same principle applies: sign in, make changes or additions to my web page, and promptly sign out. No other searches or other transactions while signed in to Google's web site service.
  • Likewise for my individualized Google search profile (iGoogle). In addition to selecting a baseball stadium background, I have selected a variety of widgets to show MLB/NFL/NBA scores, the performance of various stock market indices as well as my own mutual fund holdings, news briefs, weather updates, etc. This is the most insidious because I must sign in to see all of this information and I am sitting right there at the Google search page! Even so, the same principle applies: sign on, view the information, and then sign out.
You can see how pervasive Google has become to my internet life, but one clear pattern should now become clear: execute no Google searches while signed in to any Google account!

As a result, in addition to all the privacy measures I outlined above, I have now for the first time in my life begun experimenting with using manual proxy servers chosen from a list of publicly available (i.e., free) proxies. The primary purpose, of course, is to maintain anonymity by hiding my readily identifiable Comcast static IP address.

A quick summary of results after changing to manual proxies, especially the https proxy: Facebook and Google mail require verification (e.g. a CAPTCHA input screen and/or answering a security question) with each proxy change. By contrast, Twitter, Comcast, and Yahoo mail presented no problems at all.

My initial thought was to simply disable my manual proxies and revert to "Use system [default] proxy settings" whenever I access Facebook or Google mail. However, I quickly rejected that notion because Facebook and Google are the most aggressive profilers out there. As such, they are the prime target for security measures such as these.

I have instead settled for a compromise that while not quite eliminating all problems, does greatly reduce them: use manual proxies for the standard http but not for https. If something is securely encrypted already, then I presumably will remain moderately safe even without https proxies and all of their associated problems.

I now feel slightly more comfortable with that compromise because of another recent discovery I just made: my Google Web History has apparently never been activated. You can check your own status by logging on to any of your Google accounts (gmail, Google+, Blogspot, etc.) and then visiting the https://www.google.com/history/ url. In my case, I see the following hogwash narrative:



Web History makes search better

Your Web History includes searches you've done on Google and pages you've clicked in search results. Web History allows you to:

See personalized search predictions as you type.
Get results and recommendations that are tailored to your preferences.
Search the full content of pages you've already seen.

You can view and edit your Web History from any computer by signing in to your Google Account. Learn more.



This is followed by two buttons labeled "No thanks" and "Turn Web History on." Guess which one I selected.

If your history has already been activated, you will have to explore how to turn it off if you still can now that the 1 March 2012 deadline has passed. More than likely, you will have to experiment with settings to minimize future tracking of your comings and goings. Good luck with that!

And if all of this sounds slightly paranoid, just remember what Sigmund Freud himself once noted: even paranoids can have real enemies!

Casey at the Bat - Release 2.0

"Casey at the Bat" was always my favorite poem as a youngster, but now I am beginning to wonder why. In trying to memorize the baseball poem as a mental exercise, I've had occasion to read it over several times as an adult, and I can only shake my head in disappointment.

Consider this: Mudville's opponent was leading 4-3 in the ninth inning. After two outs ("...when Cooney died at first, and Barrows did the same"), Casey's team then suddenly placed runners at second base and third base ("There was Jimmy safe at second and Flynn a-hugging third").

With the tying and winning runs already in scoring position, two outs, and first base open, why on earth would the opponent pitch to Casey? Obviously, they would not: they would walk Casey intentionally and take their chances with the next (and presumably weaker) hitter. Of course, that might not make for a very interesting poem.

At the very least, the poem needs to be re-written with Casey as the sixth batter in the inning, not the fifth. The batter immediately ahead of Casey then needs to get hit by a pitch or draw a base on balls to load the bases with two outs. Only then would the opponent have to pitch to Casey in a bases loaded, two-out, all-or-nothing, do-or-die situation.

As it stands, "Casey at the Bat" simply has no credibility with regard to baseball strategy. Alas: another childhood icon shattered.

Any aspiring poets out there able to compose some extra lines? The following is my first attempt at a proposed new stanza to be inserted between verses 4 and 5:

"But wait! There's more!" as the TV ads would say.
There's one more noxious batter coming into play.
But contemplating Casey, the pitcher lost control.
He plunked that batter with a pitch and cringed within his soul.

Move over, Ernest Lawrence Thayer.

Thursday, February 23, 2012

Religious Convictions Almost Criminal

The farce that is the Republican primary election seems to revolve around who is the most Christian. What pompous arrogance to presume that Christianity has a monopoly on virtue.

It took us until 1960 to elect a Catholic president and 2008 to elect a non-white. Next major milestone: electing a woman. (Elizabeth Warren, anyone?) But we will not truly stamp ourselves as a country of genuinely equal opportunity for all until we elect a Jew or a Buddhist or an openly-avowed, self-proclaimed Muslim or, even better yet, an atheist/agnostic.

Alas: our presidential candidates must still pass the religious litmus test. In that regard, we are little better than the Middle East religious theocracies we so roundly criticize. Pick your poison.

As Andy Borowitz said about Rick Santorum, "You are running for President. The position of Spanish Inquisitor is no longer available."

Sunday, October 23, 2011

Repelling a Tax

I fail to understand how Herman Cain's whine-whine-whine proposal would hold much appeal. It diminishes the most progressive tax (i.e., the graduated income tax) and imposes yet another regressive tax (i.e., a national sales tax).

And for businesses, how many auto manufacturers and car dealers will be thrilled to see what was once a $20,000 automobile suddenly escalate to $21,800? That will certainly impact sales of price-sensitive goods, especially in an already struggling economy.

I normally applaud efforts to simplify the tax code. My parents lived in Pennsylvania, so when I was stationed overseas in the Navy, I claimed PA as my home state. I don't know how it is now, but back then the tax form was the size of an old IBM punch card. It took 10-15 minutes to complete, and only that long because I kept stopping in amazement. I strongly favor simplification of the federal tax code as well, but Cain's formula is horribly misguided: lopsided in favor of businesses while tilted heavily against ordinary wage-earners.

First and foremost, however, we must stop using tax policies for social engineering. For example, in the early 80's, Congress passed a tax law encouraging construction. Builders cranked out new buildings solely to capitalize on those tax breaks, not because there was any market for those building. Houston and other cities wound up with vast inventories of unoccupied office buildings all because of a misguided tax statute. The law of unintended consequences is one law Congress cannot repeal and too often promotes.

We should strive to create an environment where businesses pursue projects based entirely on their own merits, not skewed by the distorted lenses of tax inducements. I as a homeowner would willingly surrender my home mortgage tax deduction if it led to a simpler, more equitable tax structure with no business loopholes. Instead, every February-April we create a cottage industry of tax preparers. We need to stop this foolishness now.

Sunday, July 3, 2011

Death Knell for Firefox

Has anybody else become as frustrated with Mozilla's Firefox web browser as I have?

What once distinguished Firefox from other browsers was the abundance of marvelous and powerful add-ons. Unfortunately, Mozilla's accelerated release schedule combined with its laggard approval system has rendered too many of my favorite add-ons totally inoperative.

With Firefox 3.6.18, I had 42 add-ons (excluding those having to do with Java). With Firefox 5.0, I was down to 29, a loss of 13, or 30%. A few of those lost add-ons were deadwood that I didn't really mind losing, but many others I considered essential. In any case, a 30% attrition rate is simply not sustainable. And without add-ons, Firefox becomes just another browser.

I had not even overcome the hurdles of going from version 3.6.18 to version 4.01 yet when Mozilla already released version 5.0. Not only has Mozilla outstripped its add-on developers ability to keep up, but it has left its users behind as well. Users value stability and continuity, not rapid-fire change just for the sake of change. Mozilla seems to have totally abandoned users in that regard.

Most of Mozilla's inconsequential, cosmetic changes are merely eye candy and/or otherwise irrelevant to the average user. Mozilla seems to have fallen prey to its own technical wizardry: making changes simply because they can, not because those changes add anything meaningful to the user's browsing experience.

I used to swear by Firefox, but now I find myself swearing at it. As a result, after using Firefox exclusively since 2005, my family and I have given up on Firefox entirely. Out of sheer frustration, we have instead switched to another browser. In our opinion, Mozilla has run a formerly great product right into the ground.

Can you say "Netscape?" For the opposite reason (too many changes in Firefox versus not enough changes in Netscape), the end result is likely to be the same: extinction.

As Buck Owens & His Buckaroos once sang, "Adios, farewell, goodbye, good luck, so long."

Tuesday, May 31, 2011

Google Neglects Its Own

In September 2009, I created my family web page on Google. Now, more than 18 months later, it still does not appear on Google's own search engine even though Google itself hosts the site.

In stark contrast, I posted the same content on my family web page on Comcast a full year later in September 2010, and yet Google's search engine displayed my Comcast site within a few short weeks.

This anomaly compelled me to research ways to create visibility for my Google-hosted web page on Google's own search engine. The following saga will outline the sequence of events that Google led me to take and that you presumably must take as well.

The first necessary step involved logging on to Google Webmaster Tools using a Gmail account. After signing in, execute the following steps:
  • In the "Verification home" window, click the button "Add a site..."
  • In the next pop-up window, enter the applicable web site url in the field provided (in my case, http://sites.google.com/site/gumby32/)
  • In the "Verify ownership" window, click on the second "Alternate methods" tab
  • Select the first option of the three: "Add a meta tag to your site's home page." Indeed, Google's own help entry states: "This is the best option if you don't have access to your server." That is certainly true for those of us who are merely clients of Google sites. Meta tags will look something like this, only all on one single line:
    <meta name="google-site-verification"
    content="b0l0X5ZOJiT9kRSABjuXlE-
    w3kkjL8zPTUJyMMOO6x0" />
  • Copy the entire meta tag that appears in the window and save it somewhere convenient. You will soon need to paste this meta tag into a particular field in your web page header information.
  • Click the "Verify" button to complete the verification process.
Once your site has been verified, you may exit Webmaster Tools and then sign in to your Google web site. After you log on, follow these steps:
  • Click "More actions | Manage site"
  • From the menu at the left, click "Site setting - General"
  • In the window to the right, paste your saved entry from Google Webmasters above into the field "Google Webmaster Tools verification"
  • Click the "Save changes" button at the bottom to save your work
As added insurance, I availed myself of a service Google offers to add your URL to Google. Entering the top-level url of your web site into the designated field and then submitting it supposedly adds your site to Google's index each time Google's web crawler scans the web.

By going through all of these contortions, I thought I had covered all of my bases. Boy, was I mistaken: I had no idea of what still lay ahead.

I had completed my web site verification process and submitted my url to Google on 9 April 2011. I had read that Google's web crawler operates early each month, so I was prepared to wait a few weeks for my site to appear in a Google search sometime in early May.

I waited patiently until 1 May, when I began to check almost daily. To my increasing chagrin, my site still failed to appear in any Google search over the next two full weeks. In frustration, I re-submitted my url to Google once again on 14 May, but another full week passed with no results.

In the course of researching these requirements, I was dimly aware of an additional process whereby users could also submit a site map of their web page to Google. Finally, out of sheer desperation, I undertook the following steps:
  • Create a plain text file with all of the links you want Google to crawl. Log on to your web site, navigate your way to the sitemap location, and click the "List" button. Then:
    • highlight all links in the list
    • right-click the selected links
    • in the resulting menu, select "Copy Selected Links"
    • paste all links to a file "sitemap.txt"
  • Upload the newly-created file "sitemap.txt" anywhere onto your web site. "Web Site Overview" is always appropriate, but it really doesn't matter because the file is only a temporary device that you can eventually delete.
  • Log on to Google Webmaster Tools once again
  • In the Home window, click the site at issue (in my case, "sites.google.com/site/gumby32/")
  • In the window at left, click on "Site Configuration"
  • In the expanded menu, click "Sitemaps"
  • Back in the window at the right, click the button "Submit a Sitemap"
  • Copy the relevant portion of the link from the plain text file that you uploaded earlier and then paste that portion into the blank field. In my case, the correct entry was "home/sitemap.txt?attredirects=0&d=1" even though the complete link of the attached file was "https://sites.google.com/site/gumby32/home/sitemap.txt?attredirects=0&d=1"
  • Click the "Submit Sitemap" button
  • Once the URLs are accepted and acknowledged, you may delete the "sites.txt" file that you uploaded (and which will appear as an attachment) because it is no longer needed. You probably don't want an unsightly text file with no ostensible purpose littering your web site.
This technique appeared to work because the status column in the sitemap listing showed a green check mark instead of the red "X" displayed in my first two failed attempts. I was further encouraged because the field above the sitemap listing displayed the correct count of 33 submitted URLs along with the entry "Index count pending."

I was now at the end of my rope. I knew of no other measures to take. I had submitted 33 specific URLs that were all accepted and acknowledged. If that failed to work, then I was fully prepared to give up.

I completed this process on 24 May and initially expected to wait until the monthly web crawl in early June. However, after all this time and effort, I was beginning to feel anxious. I could not wait any longer, so I launched my inquiry on 26 May.

Eureka!
  • My first Google search ("gumby32 site:sites.google.com") suddenly yielded all 33 of my web site links where it previously displayed only the message "Your search ... did not match any documents."
  • A search for "gumby32 greiner" only showed seven items, but numbers six and seven were my résumé and main web page, respectively.
  • A search for my full name "Robert Brian Greiner" produced 633,000 results, but my main web page was listed fourth on the first page!
Not every search came up roses, however. My search for gumby32 alone produced 3,700 results, but after wading through the first six pages, I found no mention of my site. Even so, I have at least some reason to believe that my web site is now on the radar scope. Clearly, adding the site map links was the turning point.

While I am pleased to finally have my web page finally listed in Google searches, I am not at all happy about the obstacles I had to overcome. I am both perplexed and somewhat dismayed that Google erects so many barriers in the path of its own customers while requiring no special action by the customers of its competitors (in my case, Comcast) to be included in a Google search.

Is it just me, or is there something wrong with this picture?

Sunday, May 29, 2011

Windows 7: Dr. Jekyll or Mr. Hyde?

Windows 7 has again revealed its Dr.-Jekyll-and-Mr.-Hyde syndrome: namely, the fortuitous discovery of a useful feature leading to yet another intractable problem.

First, let's tackle the useful feature that is almost artfully concealed from users. Quite by accident, I found that there is more information available to users from the Control Panel than would appear at first blush. To see what I mean, try the following steps:
  • Click on the "Start" orb
  • Click "Control Panel" menu item
  • Do not click on any of the icons that appear in the window below. Instead, click directly on the the right arrow immediately following the words "Control Panel" in the field near the top of the page
  • In the resulting menu, select the first menu entry: "All Control Panel Items"
The resulting window unveils a treasure trove of features. Many are directly available in the original Control Panel window, but some are not.

Of particular interest to me is the link "Performance Information and Tools." Clicking this link will open a window showing a Windows Experience Index for each of five categories. Below the main area is a link entitled "What do these numbers mean?" Read up on the index if you like, but that is not what is important.

Of greater value is an unobtrusive link to the right that reads "View and print detailed performance and system information." Clicking on that link displays expanded information about your computer system, including (but not limited to) processor speed, total memory, storage capacity of all attached hard drives, graphics memory and processing speed, and network adapters.

My teen-age son needs this information when he goes shopping for computer games to determine if his machine has the capacity for the particular computer game he intends to buy. Why Microsoft buries this system information so deeply is an irritating mystery.

But that is not the worst of it. We are now ready to address the intractable problem I mentioned at the start of this diatribe. At the top and bottom of the expanded system information window is a button that reads "Print this page." As you would expect, clicking on either of these links will open another window that lists all available printers. If you happen to be mobile with a laptop that is not connected to any printer, that window is not very helpful. You can, of course, select the option "Print to file," in which case your results will be saved to a .prn file that is illegible to anything other than printer software and is therefore equally useless.

In researching how to handle this .prn file, I stumbled across one nifty solution that involves an entirely different approach. This method entails downloading and installing two free software programs:
CutePDF Writer installs itself as a pseudo printer in the Windows control panel's "Printers and Faxes" window (XP) or "Devices and Printers" window (Win7). Simply go through the drill of printing a file, making sure to choose the "CutePDF Writer" printer icon in the "Print" window. After you click the "Print" button, a "Save as" window will then appear with .pdf as the only file type permitted. Drill down to the desired folder, assign a meaningful file name, and click the "Save" button. Mission accomplished.

In this manner, CutePDF Writer and its silent partner Ghostwriter allow any application with a print button or print menu to save a file in .pdf format. Both programs are very easy to install and even easier to use, and they seem to work perfectly together.

Using these two marvelous programs, I was able to save the information from my computer's detailed performance and system information discussed above. Whereas I had been totally thwarted by Microsoft's lame "Print this page" button, I now have the data in a single .pdf file as a permanent electronic reference that is eminently readable and easily transferable to another computer for eventual printing. Sweet!

Maybe I should I instead say "Suite!"