Google Reader Replacement Tryouts–Part 2

This weekend I followed up on the two RSS feed readers in my Google Reader Replacement Tryouts. I have been pretty happy with Tiny Tiny RSS. My only problem is that it could not read five feeds. The forums implied that the trunk version might fix some of the problems. After a few missteps my Tiny Tiny RSS is running the trunk version and two more feed are readable. I am still getting a 403 on http://sqlblog.com/blogs/mainfeed.aspx and a “LibXML error 5” on two other feeds.

While I was updating my notes on RSS readers I went back to Yoleoreader. When I was last there only a part of feed was imported and the site was having stability problems. I repeated the import and all of the my feeds got in. Although I like the UI the response time of the browser is much slower than Tiny Tiny RSS. It looks like more growing pains. So far Tiny Tiny RSS is faster and more stable.

Google Reader Replacement Tryouts

This week I decided to start the Google Reader replacement tryouts. It was the article, Yoleoreader Is Another Google Reader Alternative With Slick UI, by Jonathon Hu and the fact that Google Reader is supposed to disappear on July 1 that motivated me to get moving. I guess Google wants us to use Google+ instead of RSS readers. That is a much bigger problem for me than finding a RSS reader replacement. So I created an account on Yoleoreader and imported my feeds. The user interface is nice but the server rebooted during my feed import. I tried again but it still has not loaded. I guess they are having some problems scaling the system up for more users. The support person was nice but I think I will wait a week before trying again.

Another alternative to Google Reader is Tiny Tiny RSS. Since I have a self hosted site and experience installing web software, I installed it. For the average Google Reader user they need a  Yoleoreader type solution. I found some instructions for Installing Tiny Tiny RSS on Bluehost. The instructions relied on the command line so I modified the instructions to use the GUI tools. Here is my version of Richard’s instructions.

  1. I went to the Tiny Tiny RSS site and downloaded the tarball, v1.7.9 (May 13, 2013)
  2. I logged into the Controlpanel application on Bluehost and created a subdomain(Domains-Subdomains) with its own folder. I called the subdomain, reader, as a memorial to Google Reader.
  3. I used the File Manager(Files-File Manager) to upload the tarball to public_html, expanded the tarball, and then moved the source code to the reader folder.
  4. I created a new data base(Databases-MySQL Databases) called myusername_tt-rss, a data base user called myusername_ttrss, assigned the user to tt-rss, and assigned all privileges to the user.
  5. Although I used PhpMyAdmin to import the schema and edited the config.php file via the File Manager, I found that this was not necessary. When I opened the browser and went to http://reader.wehuberconsultingllc.com, I accidentally ended up at the install screen. I had saved my edits to config-dist.php. I followed its instructions to import the schema and edit the config.php. When I went to the home screen, everything worked. If I ever have to do this again I would open a browser and go directly to http://reader.wehuberconsultingllc.com/install/ instead.
  6. I followed the instructions for securing the admin password and importing my subscriptions and starred items.
  7. I followed the instructions for updating the feeds manually but I changed the cron job command line to:  cd ~/public_html/reader && /usr/php/53/usr/bin/php-cli ~/public_html/reader/update.php –feeds –quiet >/dev/null 2>&1

Here are some of my initial impressions on Tiny Tiny RSS.

  1. The user interface is not as slick as Yoleoreader but it is more than adequate as a replacement for Google Reader. My browser response time was excellent.
  2. My Google Reader feeds and starred items imported quickly without problems.
  3. Tiny Tiny RSS is more persnickety about the quality of the feeds. I guess that Google Reader fixed the feed problems behind the curtains. I read a bunch of comments from RSS developers complaining about the different feed exceptions that had to code for. In my case I had about twenty bad feeds. The feed shows up in red. Some of the feeds no longer exist. They were easy to fix. Some feeds have problems but still display the posts. Five feeds have valid addresses but the feed cannot be read. Maybe this weekend I will see if the newest version of the RSS and Atom code will fix the problem.

Where are RStudio’s Options Stored?

I was looking at Joseph Reid’s description on how to set up RStudio when I realized I did not know where the RStudio settings are stored.  Since I created a portableapps version of RStudio, I was curious if it left any files on the hard drive. The answer is found in the article, Resetting RStudio’s State. Here is the pertinent part of Windows Vista and 7 users:

RStudio stores your custom settings and options in a hidden directory called RStudio-Desktop. If this directory does not exist, RStudio will create it on start up. This directory includes user settings, log files, and other state information. Removing (or renaming) this directory will reset RStudio’s state analogous to a fresh installation.

We recommend renaming this directory to create a backup version instead of completely deleting it. This allows you to save your settings, incase you want to revert back to them. Additionally, if you experienced a crash or RStudio failed to start, this directory may contain vital information for determining the source of the error. In this case, we recommend renaming this directory to backup-rstudio-desktop and sending it along with a support request.

Accessing the RStudio-Desktop Directory

Windows

You can open an Explorer window into the RStudio-Desktop directory by typing the following command into Start -> Run:

For Windows Vista and 7:

%localappdata%\RStudio-Desktop

Occam’s Razor Meets The Internet Sales Tax

I was reading a post on internet sales when one of commenters compared internet sales to the problem with liquor sales across state borders. Here was my reply as I make the argument internet sales tax will fail because it is too complex. Simplicity is typically the best solution and the internet sales tax is not simple. The internet sales tax plan is a recipe for failure.

Since I grew up in Northern VA the reason the residents went to DC to purchase liquor was because the prices were cheaper. Virginia sold liquor via state run alcohol beverage control stores(ABC). DC had private businesses selling liquor who drummed up business by aggressively promoting their products. Over a period of years Virginia decided it was wiser and simpler to allow VA grocery stores to competitively price beer and wine and to allow the ABC stores to competitively price their liquor than to ask police officers to monitor liquor sales at the border. The simple solution won but it took many years and a lot of complaining by local residents and grocery stores.

If we try to look for a simple solution to internet sales tax we do not have one for either the small businesses or the smaller states. If I had a choice of creating a small business that was tax exempt or expand one that would pay internet sales taxes, I would choose to create a tax exempt business. Internet retailing is brutal so any advantage I get on Amazon is good! What can California do? Sue me in civil court!? Good luck with that!

Does anyone think it will be cost effective for Alaska and the other smaller states to collect internet sales tax? I am sure there are state employees who are dreading the thought of thousands of sales tax applications that will result in little to no tax revenue. All that work for so little money. Isn’t this the same situation as posting police officers at the border to catch out of state liquor sales? Customers are amazingly adaptive. I would not be surprised if we create a new market for package forwarding from states that do not collect sales tax. If the internet sales tax is not as simple to implement as the payroll tax, it will fail. Simplicity wins in the end.

RE:All Your Tax-Free Internet Shopping Is About To End

From the Business Insider we have this article about the demise of tax-free Internet Shopping.

"Supporters of this online sales tax bill are trying to muscle it through before senators find out how disastrous it would be for businesses in their states," Ayotte said. "I will fight this power grab every step of the way to protect small online businesses in New Hampshire and across the nation."

Baucus said the bill would require relatively small Internet retailers to comply with sales tax laws in thousands of jurisdictions.
"This legislation doesn’t help businesses expand and grow and hire more employees," Baucus said. "Instead, it forces small businesses to hire expensive lawyers and accountants to deal with the burdensome paperwork and added complexity of tax rules and filings across multiple states."

But Sen. Dick Durbin, D-Ill., said the bill requires participating states to make it relatively easy for Internet retailers to comply. States must provide free computer software to help retailers calculate sales taxes, based on where shoppers live. States must also establish a single entity to receive Internet sales tax revenue, so retailers don’t have to send them to individual counties or cities.

"We’re way beyond the quill pen and leger days," Durbin said. "Thanks to computers and thanks to software it is not that complex."

As a computer professional and a person who has tried to figure out which sales tax numbers to use in Ohio, I am skeptical that we can implement this system without a lot of small business pain. Here are some of my questions:

  1. If participating states are providing software to help retailers calculate sales, does that mean I will have to integrate fifty different sales tax calculators into our online order entry system so that I can show the customer the correct sales tax when they are checking out? Yes, Senator Durbin, fifty different sales tax calculators destroys productivity as much as going back to a quill pen and ledger. In a perfect IT world I would use a single number for the entire state and I would not have to worry with county and city taxes or exempt products. Getting the states to agree to a generic sales tax like this is probably like herding cats.
  2. I assume the states will want the sales tax to be paid monthly with annual reconciliations. This may not be that hard for Amazon but for our small business with a part time accountant this could be a lot of extra work that contributes nothing to the bottom line. If a part time accountant makes a mistake on one form, that is a problem. If more than one form has a problem, that is an accounting disaster and it may take a full time  accountant to fix the problem. Now just imagine if a state wants to audit your books. Multiplying the opportunity to fail by 50 does not sound like a plan to encourage and grow small businesses.
  3. If we had a test environment it might be interesting to see if small businesses opt to not sell merchandise in certain states or set up sales tax exempt subsidiaries.
  4. If you opt to pay sales tax electronically, you will have fifty or more userids you will need to keep up with. This problem could be reduced with a national clearing house organization to consolidate payments and record keeping but I don’t see that in the law.
  5. If you are a small business exempt for sales tax collection and you market  some of your products through Amazon, are you required to collect and report sales tax because Amazon is required to collect and report sales tax?
  6. If the legislators were serious about this internet tax, the legislators should convince Amazon and Google to take the lead with an open source project to standardize the code used for sales tax calculations and reporting. Amazon and Google have a lot of small businesses as customers and it would be nice if we came up with the same sales tax for an order. Small businesses view the changes required to support an internet sales tax as all risk and no reward. For those who believe in the law of unintended consequences, there is an incentive for a business to stay small so they can stay tax exempt.

My First Donation to an Open Source Project

I am glad to say that I finally donated to an open source project today. I have been thinking about donating to various open source projects over the years and have never gotten around to donating. The lucky recipient is PortableApps.com. They made a pitch for money, they were part of the group I was considering donating to, and they caught me at the right time.  Good for them!

Portableapps is one of several open source products I use on a regular basis. I like programs that do not mess with the windows registry and portableapps has a whole bunch of programs that are minimally invasive. As an old IT guy I have re-installed my fair share of operating systems due to registry problems. I even installed portableapps on some servers I care for. If you are careful you can use one copy available to several computers by using a shared network drive. Most of the portableapps applications I install are applications I use occasionally. The one exception is the portableapps version of Google Chrome. I guess I started using the portable version in response to some Internet Explorer problems and never changed. One of the nicest features of portableapps is that it is easy to update your applications.This is one of the cleanest and nicest ways to keep your occasionally used programs up to date. Nice job John!

Exchange Server Event ID Descriptions Are Missing

This week I had the pleasure of trying to figure out why the Exchange 2003 server was having problems again. It has been a long time since I looked closely at Exchange but the event log was not helpful. All of the Exchange Server Event ID Descriptions were missing. I did not need the descriptions to tell me we had run out of space so I set about purging old email messages and setting the “Deleted Item Retention” to zero. After the regular Exchange maintenance completed I still was getting some messages, so I set out to fix the description problem.

In my case I found out that the event ID descriptions were missing as described in XGEN: Exchange Server Event ID Descriptions Are Missing. Unfortunately this KB did not provide a sample to work from so I had to go elsewhere. Eventually I found a sample registry and manually entered the keys for MSExchangeIs Mailbox Store, MSExchangeIs Public Store, MSExchangeIS, and MSExchangeSA. Now I can look in the event log to see how  we are to filling up the Exchange database.

Powershell Snippets

First/End of Month Date calculations

 
$dNow = get-date 
$dNowMonth = $dNow.Month 
$dNowYear = $dNow.Year 
#Use for beginning of month datetime search, first day at 00 am 
$firstDayOfMonth = get-date "$dNowMonth/1/$dNowYear" 
#Use for end of month datetime search, first day of next month at 00 am 
$lastDayOfMonth = $firstDayOfMonth.AddMonths(1) 
#Use this end of month search when you do not need the time value 
$ReallastDayOfMonth = $lastDayOfMonth.AddDays(-1) 
write-host "FirstDay = $firstDayOfMonth LastDay = $lastDayOfMonth RealLastDayOfMonth = $ReallastDayOfMonth" 

Create alias if does not exist

 
if ( -not (get-alias zip -ErrorAction SilentlyContinue)) 
    {new-item -path alias:zip -value "C:\Program Files\7-Zip\7z.exe"} 

Map the network drive if it does not exist( with “filesystem” fix for Test-Path on a network drive).

 
$drive = "H:" 
$remotedir = "\\myserver\SYSBACKUPS" 
$localdir = "F:\SYSBACKUPS\" 
$filesel = "sql_db_" + (get-Date -uformat "%Y%m%d") + ".7z" 
if (-not(Test-Path ($localdir+$filesel))) 
    {
    #We do not have the backup file so lets see if network drive is mapped 
    if (-not (Test-Path -path "filesystem::H:\")) 
        { 
        $net = new-object -ComObject WScript.Network
        $net.MapNetworkDrive($drive, $remotedir, $false, "username", "password")
        }
#... Insert rest of the code here
}

Classic ASP and Amazon MWS

Okay, I know I am writing about stuff almost no one cares about. Classic ASP is the Dodo of web programming. Who in their right mind would be writing Classic ASP transactions to Amazon MWS? Isn’t Classic ASP dead! The only saving grace from Amazon not supporting Classic ASP is that Amazon’s support of PHP or C# is  not exactly brilliant. So for the few of you who might be interested, submitting MWS transactions using Classic ASP can be done. Most of the ASP code is already available in the forums. The only trick is the  request and feed signatures.

The key to the request signature problem was to implement Daniel O’Malley’s contribution in the post, I have authentication code for Classic ASP — anyone need it?. The trick was how to create a base64 encoded SHA256 signature that Amazon requires for the request. Several people tried to write native ASP functions for SHA256, MD5, and Base64 encoding but they could not match the results of the Amazon Scratchpad.  Daniel’s solution was to call JavaScript functions from ASP. That was brilliantly simple! He wrote a simple WSC wrapper for the JavaScript code available at http://pajhome.org.uk/crypt/md5/ and published it as sha256.wsc. That was cool! The Base64 encoded SHA256 signatures it generates matches the Amazon Scratchpad. I got it to work on the ListOrders and GetOrder transactions but I needed more. I needed to submit a “_POST_ORDER_FULFILLMENT_DATA_” feed and Amazon required a Base64 encoded MD5 signature for the feed data. This is an important transaction if you want to get paid. If you do not have a lot of Amazon orders your marketing person could update this manually. If you prefer the marketing person to focus on generating more sales, you should probably consider doing this task automatically. In our case we had a system that kept track of tracking numbers for each order.  So I followed Daniel’s example and merged the MD5 code from the same web site into Daniel’s code. My code is called sha256md5.wsc file. My testing confirmed that it generated both sha256 and md5 signatures that matched the Amazon Scratchpad. After a week of posting fulfillment data I have to conclude it is working. Your mileage may vary! Guess what? Our sales are up! I guess the plan of letting marketing folks focus on marketing is working! I love it when a plan comes together!

SQL 2008 Express installation errors with 0x84B10001

In my case I was trying to update SQL Server Management Studio (SSMS) from 2005 to 2008. Yea, I know it is 2012 but the 2005 stuff was working. As a general rule I don’t mess with stuff that is working but 2008 SSMS is a simple way to get 2008 SMO for PowerShell. The 2008 SSMS installation complained about the existing 2005 version and asked me to uninstall the 2005 version before proceeding. After I uninstalled the 2005 version I resumed the 2008 installation and it generated this error message.

SQL Server Setup has encountered the following error:

Unable to generate a temporary class (result=1).
error CS0006: Metadata file ‘C:\WINDOWS\assembly\GAC_MSIL\MSClusterLib\1.0.0.0__89845dcd8080cc91\MSClusterLib.dll’ could not be found

Error code 0x84B10001.

Although some folks recommended repairing the SQL installation, my fix was simple. I restarted the 2008 installation and it re-installed the missing items.

Getting Updated Google Shopping Results

After I fixed my problem with Google Shopping I decided to see how long it would take for my browser to show correct shopping results. It has been almost a week and no change in the results. Today I decided to move on. I fixed the problem on Internet Explorer by deleting browsing history(cookies). Fixing the problem on Google Chrome was a bit more challenging. Here was the setting that worked.

Settings - Clear browsing data_2012-11-05_11-56-33

Fixing the Google Shopping problem where no products show up even though the product ads are searchable

I have been battling this problem with Product Ads for some time. Our Products Ads were supposedly search-able but we could not find them using Google Shopping. We could find our products via a standard Google search and via Google Shopper on my android phone. In the last email of this continuing saga of questionable product support I saw a telephone number. Previous phone calls by our marketing guy had Google support recommending that he increase the bid amount and open the server up for Google bot searches. None of those recommendations worked but I really did not have a choice. So I called Google and they recommended that I add a default product ad extension for all products. Hmm… Here’s the steps:

  1. Bring up your product listing ads campaign, My Product Listing Ads.
  2. Click on the Ad Extensions tab.
  3. In my case the Ad Extensions area of the screen was blank, so I clicked on the New Extension button.
  4. There was only one choice for me, All products, so I selected it. Now I have one Ad Extension on my screen for all products.
  5. The person from Google said it would take about 12 hours for it to process.

This morning our products are searchable in Google Shopping from most desktops and we are back into the comparisons. I guess that a default product extension is a necessary step. See the picture below for an example.

We still have the problem where we get different search results from different browsers and laptops. My desktop using Chrome seems to be using an old version of shopping results where as my Firefox browser on the same computer retrieves current shopping results. I guess Chrome uses a cached version and will eventually catch up. Another new change for Google Shopping is that  "site:" does not work any more. It is fascinating that Bing and Google have had so many problems with shopping search engines.

Campaign Management_2012-10-30_10-59-37a

Comparison Shopping Engines: Want to Compete with Amazon? Start Offering Remarkable Content

Here is a great post by Trinity Hartman, Managing Editor of Content Ping that argues that the best way to compete with Amazon is with great content and offers a few pointers on how to improve the content.

If CSEs want to compete with Amazon as places where online shoppers go to discover products and compare prices, they’ll need to improve their content.

Making Great Content Work

Here’s my advice to CSEs on how they can become go-to sites for product discovery and research:

  1. Obtain outstanding product descriptions
  2. Make room at the product page level for enhanced content (lifestyle images, video, 3D images, magnification, buying guides, etc.)
  3. Pay attention to product page design
  4. Include more consumer-generated content (product reviews) 

Comparison Shopping Engines: Want to Compete with Amazon? Start Offering Remarkable Content
CPC_Andrew
Fri, 28 Sep 2012 15:13:06 GMT

Playing with Pythonxy

I am not a python developer but occasionally I find a need to do something in Python. Over the years I tried Python and Python plus Eclipse.  About a year ago I tried Pythonxy and liked it.  I initially downloaded the package since I wanted to do some statistical analysis using python and this was an easy way to get all of the dependencies. Here are some of features I like and dislike.

Likes

  1. Naturally it includes Python and a wide assortment of packages including NumPy, SciPy, Matplotlib, and IPython. It is kind of a no brainer to set up a Python environment with a full complement of libraries.
  2. It includes a nice full featured python IDE, Spyder.  If you do not like Spyder you can always go back to Scite and IDLE.
  3. It includes several packages I wanted to play with Eclipse, QtwxPython, and MinGW although Eclipse is now an extra package.

Dislikes

  1. It is a large download, 477 MB.
  2. I converted my statistical analysis to R  so I have little use for the scientific libraries.
  3. In some cases you will be working with older packages, such as IPython(0.10.2) and MinGW(4.5) and upgrading these packages breaks other things. In the case of MinGW I installed the newest Msys/MinGW version over the old installed version(MinGW32-xy) and everything seems to be working. However, upgrading IPython to the latest version breaks the enhanced command consoles for IPython.
  4. Occasionally I have problems installing Pythonxy at work. Mcafee flags the log2del.exe as a trojan while Security Essentials at home does not. This is annoying since several people have reported Mcafee’s report as a false positive.

Amazon to Not Pay For Google Shopping Listings

Tien Nguyen wrote a nice article, Amazon to Not Pay For Google Shopping Listings, in which he said:

In all it’s good news for retailers, large or small to not have to compete with Amazon for eyeballs on their products, similar to an MLB team learning that the high budgeted Yankees are bowing out of the season. Since Google Shopping Ads’ costs will be determined by the market, similar to Adwords (which interestingly enough Amazon is still on), one less high spender should in theory lower costs and increase visiblity for the rest.

On one hand I agree with him that it is good to not be competing with Amazon in Google Shopping. Lower ad costs will be good, too. At one time it seemed that every time I looked at a Google Shopping price comparison Amazon was at the top of the list. In recent months I found more and more instances in which Amazon was not the low cost price leader. The bad news is that even when we were the price leader, we were not getting either the clicks or the conversions.

Our marketing guy is pretty skeptical about Google Shopping Ads. Our trial run with Google Shopping ended with terrible conversion rates compared to Google Adwords. We are getting a better bang for our advertising buck with Google Adwords.  Part of the problem is that Google Shopping and Adwords are competing against each other for the same sale rather than being complimentary or additive. When I look at the potential for this channel, I am pretty dismayed. Google Shopping has the most comprehensive comparison shopping list out there and we are getting about the same sales from Google Shopping as we are getting from Shopzilla.  Our Nextag sales are even better. I don’t get it.

An e-mail message that is larger than the sending message size limit or the receiving message size limit is not delivered

This problem plagued us for the last couple of days. One of our vendors sent us a 11 MB Acrobat catalog as an attachment to a regular email message and Microsoft’s Exchange was not letting it through. I thought that the personal sending and receiving limits would override the global limits. This would allow a few people to receive large attachments. Microsoft’s KB 28572 set me straight.

These global settings affect all Exchange recipients. If a recipient has configured their own personal sending or receiving message size limits, the global message size limits override the individual message size limits of the mailbox.

Google Shopping Problems

We finally gave up on Google Product Ads this week. We get a lot more traffic from Google Shopping than from the Product Ads so it made sense to turn Product Ads off until Google can get their act together. Our problems with Google Shopping seems to have started on June 28th when our search clicks fell off to almost nothing.  Despite all of our products showing available for Product Search only 934 products could be found using Google Shopping. We tried briefly to try and make our feed work for both Product Ads and Product Search but the progress was too little and too slow. So we unchecked the Product Ads box on the advanced feed settings and submitted the feed again. The disapproved Product Ads is zero and the products we can find using a generic Google Shopping search has climbed from 4390 to 5510 and our search clicks are back to where they were before this mess. This whole mess could have been avoided with some good diagnostic messages in Merchant Center and some decent customer support.

Dashboard_2012-07-09_16-31-12

Google Shopping is not listing products if the product-ads or product search is disapproved

In the Merchant Center Troubleshooting group  Celebird said this  in response to the question Google Product Ads Disapproved but Product Search Approved:

for a u.s. feed the two policies have now been combined —
if product-ads is disapproved the items will not be listed;
if product-search is disapproved the items will not be listed.

Although I have not seen this confirmed in any Google communication, it sure looks like this is what is happening. The big problem is that we do not know why our Product Ads are being disapproved. It is hard to fix a problem without an error report. Here is my previous post on this problem, Google Shopping Fail? Webmasters Report – CPC Strategy .