Colorado and Amazon Battle and People Like Me Suffer
The Problem
Last month Colorado state legislature passed a bill that requires out-of-state stores to report unpaid sales tax to the state, and to the buyer. Basically, if you buy something from an online retailer, like Amazon.com, you don’t pay sales tax. Instead, you are supposed to pay sales tax on your own to the state. This is called “Use Tax” and has been in place since before the Internet. But most people don’t know about Use Tax and don’t pay it. So when people in Colorado buy something from Amazon, they get away with not paying sales tax.
Why Is It a Problem?
The government of Colorado wants this to stop for several reasons. One is that the state needs money, and the unpaid millions of dollars could help. The other is that they see this as unfair competition to in-state stores. They think people are buying from Amazon instead of from the store in their neighborhood so they can avoid sales tax.
Whose Responsibility Is It?
So the state makes it the buyer’s responsibility to pay the state. This makes sense, since the buyer is in Colorado. The seller isn’t. In fact, if the seller is in Colorado, say with a local “nexus of operations” like a retail store, they already charge sales tax, even when you buy online. So retailers like Target and Apple already charge sales tax. No problem there.
But the new bill also makes it Amazon’s responsibility. Which is strange, since Amazon doesn’t have any operations in Colorado. No stores, no employees, nothing. So Colorado is exerting its power outside of the borders of Colorado.
The Supreme Court already weighed in on this, saying that it is illegal for states to impose sales tax on companies that do not have a nexus in the state.
What Are Affiliates?
So enter “affiliates.” Amazon calls them “Associates.” Basically, anyone who has a Web site, such as a blog, can be an affiliate. All that means is that you can place links for pages on Amazon on your Web site. Instead of getting paid when someone views an ad, or clicks on it, you get paid if someone goes to Amazon from your link and buys something.
So say I have a site about socks. I blog about socks. I review them, I tell people where to find deals, and so on. I can put a link on my site that links to a page on Amazon that has socks for sale. If someone clicks on my ad, they go to the Amazon page with the socks on it. If they buy those socks, I may get a small cut, say 5% of the sale.
If a lot of people come to my site because I am a good sock blogger, then I could potentially earn part or all of my living from writing my sock blog.
Making the Problem Worse
In other states, similar bills have passed that use affiliates as a “nexus of operations.” If some blogger has an affiliate link on their site, it counts just as if Amazon had a real store on that state’s soil.
Amazon believes that the Supreme Court’s decision doesn’t apply to such a lame excuse for a nexus. But in order to protect itself it simple does this: It forbids affiliates in that state.
So North Carolina passed a bill that said affiliates count as a nexus, and therefore Amazon must collect sales tax and send it on to the state. Amazon reacted by simply forbidding affiliates in North Carolina, closing all existing affiliate accounts. No affiliates, no nexus, no sales tax.
The same thing happened in Colorado this week. Amazon closed all affiliate accounts in Colorado.
Wasn’t the Colorado Bill Different?
Yes, it was. Legislators worked with bloggers in the state to remove the idea of affiliates as a nexus from the bill. But in the end Amazon still closed all affiliates in the state. They warned legislators that they would do this if the bill passed.
How Will This Hurt Colorado Small Businesses?
One article I read estimates that more than 3,000 people earned some of their income from the Amazon affiliate program. I’m sure a lot of them earn only a small portion of their income from it. I, myself, stood to make about $2 or $3 thousand from Amazon affiliate links in 2010.
If I am average, then the total revenue lost will be around $7.5 million. That’s income that the state would have collected income tax on. That’s money that Colorado residents would have spent while living in the state.
So right off the bat we’ve got a substantial individual and state revenue decrease. This is the opposite of what the legislators intended, I’m sure. But it is exactly what any Internet-related businessperson could have told them would happen.
Who Is To Blame?
Both the state government and Amazon are to blame here. The state should have known this would happen. Amazon told them it would. Amazon did this in other states. The Colorado government passed a bill they should have known would have an immediate impact on small business and individuals.
The reason the state passed this bill was to get Amazon to inform Colorado customers about the tax they owed, and send that information to the state. But legislators should have known that Amazon was not going to do that. And they surely aren’t going to do it now. So, any state revenue benefit is not going to happen. But the impact to the bloggers of Colorado has already occurred.
Amazon can also be blamed for overreacting here. The Colorado bill doesn’t not say that affiliates are nexus, so Amazon could have gone about business as usual and just refused Colorado’s request for action and information.
?Shouldn’t Government Stand Up to Big Business?
On the one hand, it is great that Colorado wants to stand up to the out-of-state Amazon company. But on the other hand, retaliation from Amazon is directly hurting Colorado citizens.
If this was the case of two big companies in a fight, then may the best one win. But it isn’t. Colorado state government serves the people. They shouldn’t put their hate for Amazon ahead of the well-being of their citizens.
Both Amazon and Colorado are using affiliates as pawns in this game. But Colorado is supposed to be working for the people. It should take the high road here in favor of people, not politics.
How Can This Be Fixed
Simple. Colorado should repeal this law. Amazon has already said they will re-instate the affiliates if this happens.
Other states are willing to put their politics ahead of their people and will take this to the Supreme Count. Once that happens, then all states and Amazon can act together to comply with the decision.
This is a battle that Colorado citizens did not ask for and can only result in casualties, not victories.
Bottom Line
iPhones Apps Made With Flash
You’d think that someone like me, a Flash game developer and a Mac Enthusiast, would be very disappointed that Flash doesn’t work in the browser on the iPhone. But I’m not. I can see all the problems: touches aren’t mouse movements and the on-screen keyboard isn’t the same as a real keyboard. Most Flash movies on most Web pages would be a disaster on the iPhone, especially games. They’d have to be re-worked to be of any value. Plus, I’ve seen the versions of Flash on other PDA-like devices and they run slow and are battery-killers.
But from the very start I’ve theorized that a Publish-to-iPhone-app option would be the best way to go. And sure enough, it looks like Adobe is poised to bring us that in Flash CS5 next year.
Now I’m excited. After all, I’ve got about 50 games that I can easily port to the iPhone now. Some of them won’t make it because of keyboard controls or screen size. But some are just perfect for the iPhone’s touch interface.
And I can make money from them. iPhone apps, as opposed to iPhone games in Web pages, can be easily monetized through the App store. This will bring a whole new life to some of my old games. Plus, I’m looking forward to making some new games specifically for the iPhone — a new canvas to draw on with new capabilities and restrictions.
So here’s what I hope the new export-to-iPhone function does. First and foremost, it should export strong, efficient code. I don’t want to have to spend days optimizing code like I did for Flash lite on PDAs, which was 100 times slower than Flash on a PC.
Second, I want at least some access to the iPhone touch interface. These can map to mouse events, sure, but I don’t want my hands tied with just clicks, like I am with JavaScript in Safari.
Third, I want access to other parts of the iPhone SDK too — like the accelerometers, GPS, saving data, etc. I can live without them in the first generation of Flash export, but I hope Adobe is at least trying to get these in there.
Fourth, I want to avoid XCode altogether. Not a big deal, but using XCode to set up a finished program with titles, IDs, icons, etc, is a pain. I’m not hopeful on this, but it would be nice.
Fifth, I want it to go smoothly. I don’t want Apple flagging Flash-created apps as something different and giving us Flash developers a hard time. I don’t think this will be a problem. After all, I use Cocos2D right now to make iPhone apps, and Apple doesn’t care. I don’t really think Apple will notice the difference since all they get is a binary anyway.
So the main thing now is to bring it on. I can’t wait for this. I guess I can spend some time adapting some games to a 320×480 or 480×320 size, and eliminating any need for a keyboard. I can probably also convert some old games to pure AS3, since this would speed them up. It may be that AS3 is required for the export anyway. That’s the way I would do it.
So I’m getting ready and I’m excited. In the meantime I’ve halted all other iPhone game development. No point wasting more time with XCode when I can be doing Flash in just a few months.
WordPress Plug-Ins That I’d Like to See
I’ve been using WordPress for various sites for a number of years. Rarely have I been able to use it as-is. Usually, I have to go into the code and make some changes to get things to work the way I want. But recently I was lectured by someone about this. I should be using plug-ins (AKA add-ons) instead of modifying code.
It is true that modifying the WordPress code has one huge disadvantage: it is very hard to update to the latest version of WordPress. Before any update, I need to go though the new files and add my little changes. It makes it a pain and I end up skipping updates because of it.
Writing my own plug-ins is no going to happen. Do I add WordPress to my growing list of expertise? There just isn’t enough room in my brain.
So if there are any WordPress plug-in programmers out there looking for some ideas. Here are four plug-ins that I would love to see. Or, if you know of a plug-in that does this, let me know.
1. Private Tags
Tags are a useful way to organize your posts. I use tags to indicate topics covered in a post. But I also use them for other things. For instance, if a post is to be included in newsletter number 43, I tag it n43. The problem is that those tags appear in lists and clouds that the public can see. I’d like to be able to indicate that a tag is “private” and not use it in lists and clouds that the public sees. The post should be visible, sure, just not that it is tagged with that particular tag.
2. Indented Paragraphs
This one has driven me crazy since the dawn of WordPress. I want each paragraph in a post to have a little space after it, to separate it from the next paragraph. In addition, I’d like the first line of each paragraph to be indented, like it would be in a book or newspaper.
Now, there are tons of ways to do this if you are writing a post. But what if you want to apply a change like this to all of your previous posts. This is difficult to do as a WordPress modification, and I’ve never seen it work quite right.
3. Daily Status Report: Number of users, plug-ins, comments, images, etc.
A common WordPress break-in technique includes the addition of plug-ins to your install. So you can avoid a lot by simply confirming that no new plug-ins have been added. A good way to do this is via email. I’d love a plug in that send me a status email every day with the number of plug-ins and any changes. And while it is doing that, it might as well tall me if any new users have been created, the number of comments added, etc. This would be a useful tool to look for any anomalies.
4. Email Alert on Login
With all of the nasty people and bots out there targeting WordPress installations, I’ve come up with a variety of WordPress modifications to make it more secure. Some of those revolve around the fact that I rarely let people register for my sites — doing so only creates another ID and password for them to remember, a huge database of users for me to maintain, and doesn’t seem to cut down comment spam or have many other positive benefits.
So if someone tries to log on, it should be me. So I’ve modified WordPress to simply email me when someone logs on. Every once in a while I get someone (or a bot) trying to do this. I get their IP address and add them to my firewall. I also see what user name and ID they used, so I can monitor their attempts.
5. Access Restriction
I’ve seen the horrors of a WordPress break-in. It used to be able to happen no matter how secure your server, passwords or firewall was. Things are better with the latest versions of WordPress, but I’ve learned to take nothing for granted.
You should be able to restrict admin login, or access to any admin page, by things like IP address or even browser type. Not everyone has a static ID, but this could be useful for those of us that do. And perhaps the ability to change the standard directories and file names. So instead of wp-admin or wp-content it could be something else, which would really make it hard for a lot of the WordPress hacking scripts out there.
Now I know how to do all of these — I have done all of these — but as code base modifications, not plug-ins. I’m fine with that other than the pain it takes to update. But I think WordPress would be a better platform if some enterprising developer wrote plug-ins for all of these.
Things You Should Know About Writing and Reading Computer Books
So I have written 13 computer books, with my latest coming out in September. Most have been about either Flash or Shockwave game development. All have been for major computer book publishers and have been distributed in retail stores worldwide.
There are so many misconceptions about how computer books are created and what you should get out of them. I deal with these misconceptions all the time. Most are just interesting, but some cause problems. But it seems that every time I start to talk about them, people are interested. So I thought I’d write up a list of the most common ones.
1. Computer book authors get rich from the royalties they earn from their books.
Of course, this is a misconception. Look at the numbers. Let’s say a book costs $25 at the store. You buy it for $20 at Amazon.com. That probably means that Amazon bought the book from the publisher’s warehouse for about $10. The lion’s share of that goes to the publisher. They paid to have the book printed and also spent a lot of money on editing, layout, marketing and accounting. The author would get about 10% of that, sometimes much less. So the author ends up with $1. But some of that is withheld for returns and there are other small deductions as well. If a book sells well, say 10,000 copies, then the author may take home $8,000 in royalties.
Now, contrast that with the time the author spent writing the book. Perhaps 3 months of writing and 1 month dealing with editing and reviewing edits from other editors.
A dedicated and motivated computer book author can make a living at this, but only if he or she is constantly working and producing new books. Most authors are like me and are actually working on other things most of the time, and produce a book here and there on the side, about a subject that we already know thoroughly — so no research is needed.
And I should point out that some computer books are created for a set fee, not royalties. So the author is simply writing for a fixed payday.
2. A computer book is created by the author.
The author is the writer, yes. But that is only one part of the team that creates the book. In my experience at least editors are involved: tech, copy, and project editors. Plus someone does the design and layout. Other people take care of other tasks. Look in the front of any major computer book and see how many people are listed. They all worked on it.
3. The author thought of the idea for the book.
This is true in some cases. In other cases, a publisher may identify a market for a book, and then seek an author to write it. Then in other cases the author and publisher may already know each other and discuss “the next project” — drawing on what the author can write about and what the publisher needs. A lot of my books are between the first and third cases. I come up with an idea and pitch it to the publisher. The publisher likes the idea, but proposes small changes in focus or audience.
4. The author sells the book.
I get this a lot. Someone buys a book and there is a defect, like the CD is missing or a page is torn. They want to know if I can send them a new one! That’s like getting a flat tire and calling up the automotive engineer who designed your car.
The book is produced by the publisher and sold by a bookstore. If the book has a defect, then you return it to the store. If the store gives you a hard time, then contact the publisher. I don’t have your $25 and I can’t ship you a new book.
5. Computer book authors can predict the future.
So once a book is out there, it isn’t like a Web site. It won’t update. For instance, when you buy a book about Flash CS3, and then you sit down to use it with CS4, keep in mind that CS4 didn’t exist when I wrote the book. I couldn’t predict what would change. So if something doesn’t work quite right, keep that in mind and try to use logic to figure it out.
6. You paid $25 for a book, you get free consulting from the author.
I love getting questions from readers, don’t get me wrong. But sometimes it gets out of hand. People ask me to complete their projects for them or create code samples for them. You can hire someone to do that. They would be called a consultant and would probably get between $50 and $150 per hour, if not more. For $25 you get a book, not a consultant. If the author responds to your email, then please thank him or her for his time. Remember that he or she probably has a full-time job and a lot of work to do, so ask reasonable questions and expect reasonable answers.
7. You paid $25 for a book, you get free tutoring.
Related to point 6. A lot of students use computer books, sometimes even assigned to them by their teachers. If you are paying for school and you have a question, ask the teacher. That’s what they are there for. At least that’s what they should be there for. You can ask the book author a question about the book, certainly, but don’t expect the author to help you do your homework.
8. By writing a book, an author proclaims that his way is the only way.
When using computers there are usually many ways to do similar tasks. With programming, this is especially true. But a computer book author must choose one style or method or the book won’t be able to move forward and teach the subject. That doesn’t mean that the method is the only way. It doesn’t mean that the author declares other methods as being wrong. So if you disagree with something in a computer book, pat yourself on the shoulder for understanding that particular subject thoroughly enough to be able to see multiple methods of accomplishing the task. Then move on.
9. You can skip ahead in a computer book without consequences.
If you are learning a new subject and are excited about it, it might be tempting to skip ahead. But then if you encounter something you don’t understand, realize that you need to go back and read what you have missed. I get lots of questions from people who skip chapters in my books to get to the game they want to create, and then find they don’t understand some concepts. I put chapter 12 after chapters 1-11 for a reason.
10. Reading a computer book will make you an expert.
You buy a book on Flash game programming and read it from front to back. Now you are an expert and able to make any game, right? Guess what, I got a bachelor’s degree in Computer Science. I’ve been writing programs for 27 years. Don’t think that one book is a substitute for education and experience. It can be one step, certainly. But if you finish the book and find that you are unable to figure out how to create the program you need, then consider that you may need to learn more and you may need to get some more experience under your belt.
My First NetBook
So I’ve been fascinated by the NetBook craze. Actually, I loved NetBooks even before they existed, being fascinated by the early Toshiba mini-notebooks in the 90s. But I’ve never owned one, until now. With prices close to $200 for a decent machine and my love of gadgets, it was just a matter of time.
I decided to go with the Asus eeePC since it gets the most attention and I wanted something popular to increase the chance of information and hacks being widely available. I got an older 900 series because I wanted to go small — and it looks like the newer ones are a little bigger.
For $219 I got 1GB of memory and 20GB SSD drive. Of course, I went with the Asus version of the Linux OS, and not Windows XP. I was tempted to go with XP, just because I could probably run Flash and Director on it, but I really wanted to use Linux. I may install eeeBuntu, but for now the Asus OS seems just fine.
So my first impressions are that it is indeed small and light. Perfect. I will be able to take this on short trips rather than my MacBook Pro, which is three times the weight. After all, while traveling, I just need email and Web access. I don’t really do any development while on the move.
The OS is a collection of apps, of which Firefox is the big one. That’s all I really need. It does have an email client, but I’ll probably never touch it. It also includes Open Office 2.0 which may come in handy for taking notes at conferences. A lot of the other applications are actually just Web links to email, Google Docs, Wikipedia, etc. But there is an instant messaging app and even Skype.
The hardware includes a camera and mic. And there is a video recording application that may come in handy. There are also headphone and a microphone input jack, as well as 3 USB 2.0 jacks and an SD card slot. Completing the ports are an ethernet jack and a VGA output to run an external monitor. OK, I can see doing presentations on this thing.
At first I thought that the trackpad was going to be a problem. Not the pad itself, but the hard-to-press button below it. Then I realized that you can tap on the pad to click. So the button is really just for click+hold and right clicks. In fact, the track pad responds to two-touch for scrolling. The keyboard is small and hard to type on, but is still so much better than iPhone typing that I don’t mind.
The best app, for me, on the thing is one that isn’t even shown in the interface. By pressing Home+T I can bring up the terminal window. Then by typing “krdc” I can run the KDE Remote Desktop. This is the Linux version of Mac’s screen sharing, or VNC. Without a problem I can share the screen of my Mac Pro. That’s pretty much what I do with my MacBook Pro anyway.
So I’m pretty pleased with the NetBook so far. Combined with the fact that I now use a Mac Pro as my main machine, this might mean I don’t need to get a new MacBook Pro when my old one gives out.
Update: I got tired of the toy-like Asus OS. Plus I wasn’t able to install any additional applications for some mysterious reason. So I installed eeeBuntu standard. A real OS. I’ve used Ubuntu before, so it was all very familiar.
I love this little device even more now. Firefox rendering of pages is much better in this OS. It looks just like on a Mac or PC now. And I am able to add applications galore. It comes with a built-in VNC client that I don’t like, but I installed the krdc application without a problem. I was even surprised that my Sprint USB modem worked without any issues. So now I can use it pretty much anywhere in the U.S.
