JAW Speak

Jonathan Andrew Wolter

Archive for January, 2009

One Unit Test should have Prevented Google from Categorizing the Entire Internet as Malware

with 13 comments

Reading time: 2 – 3 minutes

The google wide massive glitch which this morning, categorized nearly every search result as malware could have been prevented by unit testing. This is a wonderful example why even “silly little scripts” should be test driven.

This is what happened. A file was checked in with a ‘/’ in it. This file listed some or all of the sites Google warns to be dangerous malware sites. When it rolled out to different data centers it it caused search results to be rendered with warning messages next to almost every search result.

One could have written unit tests to assert that typos (such as ‘/’) are not parsed, accidentally causing the entire web to be miscategorized. I really hope to read more about this on the Google Testing Blog, it’s a prime example for this company to take leadership and further promote Unit Testing, and even the opportunity for Test Driven Development. Miško, care to take that post up?

They handled it well, and Marissa Mayer made a post on the Official Google Blog:

We periodically update that list and released one such update to the site this morning. Unfortunately (and here’s the human error), the URL of ‘/’ was mistakenly checked in as a value to the file and ‘/’ expands to all URLs.

I say let’s use this as a publicity moment for testing. I am certain that testing has literally prevented many disasters in complex systems, however because the tests did their work — they got no publicity. Let’s see promotion of “lessons learned,” Google!

Where have you been saved by tests? Or, where was your big blunder that a test could have fixed?

Written by Jonathan

January 31st, 2009 at 4:30 pm

Posted in code, testability

PayPal Sellers’ Chargebacks and the Temporary Hold Account

without comments

Reading time: 4 – 6 minutes

I was on the phone today with Paypal Disputes trying to understand how they deal with disputes from sellers. Here’s my notes from the phone conversation for anyone curious:

These first two refer to the following screenshots:

Paypal txn XXXYYYZZZ, chargeback

Paypal Txn Chargeback

Paypal txn AAABBBCCC, dispute

Paypal Txn Dispute

Q: What does the Status column mean in Txn details? Is this the status as of “today” (when we are looking at the website), or as of the date for that line item?
A: This is very confusing. The status column actually changes based on the status of the Hold. So if I were to have looked at this line item on Dec 22nd, it would not have shown “Removed”. I think this is a flawed representation of line items. (They should instead never change, but just have different “as of dates’” opinions of the status. See http://martinfowler.com/eaaDev/timeNarrative.html).

Q: Two example transactions: XXXYYYZZZ and AAABBBCCC. The first was net $ -10 due to a chargeback settlement. (All told, the sale cost me $10 bucks). The second appeared to be net $0. (I was even after a sale and full refund). Both resulted in the original purchase getting fully refunded. The first had a line item “Chargeback Settlement” the second had that same last line item as “Reversal.” What does this mean?
A: One was a chargeback, the other was a PayPal dispute. Only the chargeback had the $10 fee. The other was just a reversal.

Q: What does “update to reversal” mean?
A: Means a hold is released. Need every record step by step recorded. So PayPal first is notified of the dispute (either from their website via a PayPal dispute or from their bank via a credit card dispute). Immediately the amount of funds for the net value of the account are put on hold. (At this point the PayPal fee is refunded). The funds on hold are unavailable (frozen) until the dispute is finished. When the dispute is resolved, there is a transaction to unfreeze the funds on hold. If the dispute is not in your favor, then you will also see a net outflow of funds (possibly with or without a $10 chargeback fee).

Q: What is difference if I get a chargeback from a Bank Account versus a Credit card?
A: Well, you can’t actually get a chargeback on a bank account. Bank accounts typically do not have a capability for the account holder to “dispute” a charge. When you see a reversal on a bank account, this is probably because they contacted PayPal and directly initiated a Buyer’s dispute. One exception is for bank accounts with Visa or MasterCard check cards. Those are processed as credit cards, and thus could create a chargeback.

Q: How do I know if a dispute is a chargeback or a paypal dispute, by looking at the Transaction Details page?
A: You may or may not be able to. Chargebacks settled against the seller will have a “Chargeback Settlement” transaction type at the end of the Related Transactions. But ultimately, you will get know the difference based on the email they send you upon the initial dispute.

Q: What are the fees for chargebacks? I see sometimes an extra $10 and other times no extra fee.
A: Chargebacks have a $10 fee, always. This fee is incurred at the time of resolution. When the claim is first made, the paypal fee (i.e. $3.17) is refunded and your net amount (i.e. $95.87) is placed into a Temporary Holds account. (Which you can track as a current liability in your accounting system and handle this with a journal entry).

Q: How do I know which way the chargeback was settled? In my company’s favor or against us?
A: It should say in the Resolution Center on that dispute’s details page.

Q: I sell downloadable goods online, how can I get Seller Protection?
A: You probably can not. This link (must log in) has details about physical product requirement. Seller protection is great though for physical products, because it prevents you from ever getting chargebacks.

Hopefully this is helpful to some of you.

Written by Jonathan

January 24th, 2009 at 3:41 pm

Posted in online business

Tagged with