The ceramics teacher announced on opening day that he was dividing the class into two groups. All those on the left side of the studio, he said, would be graded solely on the quantity of work they produced, all those on the right solely on its quality.
His procedure was simple: on the final day of class he would bring in his bathroom scales and weigh the work of the “quantity” group: 50 pounds of pots rated an “A”, 40 pounds a “B”, and so on.
Those being graded on “quality”, however, needed to produce only one pot — albeit a perfect one — to get an “A”.
Well, came grading time and a curious fact emerged: the works of highest quality were all produced by the group being graded for quantity.
It seems that while the “quantity” group was busily churning out piles of work-and learning from their mistakes — the “quality” group had sat theorizing about perfection, and in the end had little more to show for their efforts than grandiose theories and a pile of dead clay.
For many, many years, Gary Keith maintained a set of files (“the files”) as part of the Browser Capabilities Project. These files contained thousands of entries mapping regular expressions to browser families, versions, platforms and capabilities, and these files were used by parsers written in a dozen languages to turn website visitors’ user-agent strings into structured data about their system. I’m truly thankful for the hard work Gary put in maintaining those files single-handedly for so many years.
At the end of 2012, after many months of warnings about his health and declining ability to run the project, it was closed with no new maintainer. Nobody’s stepped up to provide the same level of support he provided, and it’s no longer a reliable source of information about browsers and their capabilities.
If, like me, you need the ability to parse user agents for browser and platform information, I recommend the ua-parser project. It’s up-to-date, with a team of contributors, takes pull requests on github and provides libraries in 10 languages. It’s also much simpler to maintain, with only 1000 lines of YAML rather than 28,000 lines of INI files.
I’ll be using ua-parser as the basis of W3Counter’s browser and platform reports going forward.
This week, there is a good possibility the Senate will pass the Marketplace Fairness Act, often called the “internet sales tax bill”. Here’s what this bill will do:
Online sellers will be required to collect, report and pay sales taxes in all of the states (once the states meet certain requirements), rather than only the states the seller has a physical presence in.
Each state that wants “remote sellers” to collect sales tax must establish a single entity to manage tax collection and audits for the entire state. Sellers won’t have to deal with all 5,900+ separate taxing municipalities in the country, just 50.
Each state must provide a database indicating the types of products and services taxed, and at what rates and with what boundaries. If this is implemented like previous “internet sales tax” proposals, that means the database should map 5- and 9-digit zip codes to tax rates for each category of product or service to be taxed.
Each state must provide free software for both the calculation of sales taxes due at the time a transaction is being completed, and software to prepare sales tax returns.
There is a “small seller exemption”. If you collect less than $1,000,000 a year from out-of-state customers (based on the previous year), you will have no new obligations under this bill.
Many startups are exempt from collecting sales tax in their home states as they only sell services rather than tangible goods. Even if you’re exempt in your home state, you may not be exempt in others. Several states charge sales tax on all services, others charge sales tax on certain categories of service, and any of them could change their taxable classifications as part of opting in to the new systems this bill creates.
It’s very likely states will be providing APIs for computing sales tax; the bill requires their software be able to provide a tax rate for a specific online transaction as it’s taking place.
These APIs will all have to follow the same rules for determining whose tax applies to a specific customer: based on the delivery address provided by the customer; if not provided, then based on the customer’s address; if not provided, then the address of the customer’s payment instrument; if not provided, then the tax will be based on the location of the seller.
The bill encourages a new type of business into existence: “certified software providers”. These new software businesses can become certified by each state in computing and filing sales tax using that state’s APIs.
The bill creates a benefit for businesses to use these new certified services rather than integrate with all 50 states on their own. A business will not be liable for errors in its tax returns if they were prepared by a certified provider. That means no penalties or fees for mistakes.
The providers in turn have no liability for errors in the taxes they calculate and returns they prepare if the errors are a result of inaccurate information from a seller (i.e. miscategorized products or services), or inaccurate information from a state (i.e. the state’s API returning the wrong rate).
There’s little else contained in this relatively straightforward bill. Should it pass, online sellers will eventually be collecting sales tax for most of their US customers.
Since integrating 50 different software packages into every online store, filing 50 different sales tax returns, cutting 50 checks, and getting audited by 50 states is not an appealing idea to most small businesses, they’re almost guaranteed to pay a certified software provider to handle it.
I’m still waiting for the World of Warcraft live-action film that was promised back in 2006. Legendary Pictures only chose a director for it this week, 7 years later, and announced a 2015 release date. The game it’s based on will be 11 years old at that point — no doubt still popular, though, given the franchise is already 19 years old and still 10 million subscribers strong.
Every couple of months I re-evaluate my hosting choices to ensure they still makes sense in terms of cost, stability and service. Curious as to what choices other technology companies are making, I decided to conduct an independent survey of who hosts the Y Combinator-funded startups. Armed with only this spreadsheet listing the over 300 websites, my terminal and nslookup, I compiled this graph:
In all, I found 289 websites that weren’t dead or merged into another company’s website. Almost 3/4 of all sites were hosted by Amazon, Rackspace, Softlayer or Linode.