Amazon’s Digital Wonderland

A few weeks ago I found myself in Seattle, WA. Contrary to popular belief, it was a rather bright and sunny few days (if somewhat chilly). Here’s an obligatory picture of the Sky Needle.

Sky Needle

Anyways, on the first day there I fought a mostly losing battle against travel-induced tiredness (I was up at 4:30 in the morning) and walked around downtown for a while, somewhat zombie-like. I spent the most of the next day in one of Amazon’s new buildings attending their first ever PhD Symposium. I got to meet Amazon employees like Swami Sivasubramanian, one of the creators of Amazon’s Dynamo database, as well as fellow graduate students like Rahul Potharaju. The day was full of interesting presentations and the breaks in between were packed with lots of cool conversations. I presented my current project, Merlin(excuse the visuals) and got some good feedback. All-in-all it was a great day, I had a wonderful time and I hope Amazon keeps having more of these research Symposia.

But that’s not what this post is about. Personally, I think of Amazon as a retailer first and a technology company second. In fact, I’ve even written a post about their exemplary customer service. Even though I’ve known about EC2 for years and have used both S3 and Glacier as personal backup, the idea of Amazon as a technology company has always been at the back of my mind. In fact, it was only while attending the symposium that I really thought about the full weight of Amazon as a technology services company.

After coming home I looked up the keynote from Amazon’s recent Re:Invent conference. The keynote shows off some of their more interesting recent technology (including new EC2 instances) as well as client technologies built on top of it (including companies like Netflix and Vimeo). I also stumbled across Dave Winer’s post on Amazon’s support of static JavaScript applications and why that’s so interesting and important.

The more I think about it, the more I like Amazon. They make incredible technology, employ lots of really smart people and have a refreshingly honest and direct business model in an industry dominated by advertising and harvesting user data. From computation, to storage, to scalable DNS, Amazon offers a suite of services that’s just about stunning in its breadth. Though I’ve had little use for their services personally (apart from Glacier for backup), I can see myself extensively using their systems and technology if I was building any of type of scalable, distributed service.

Even as I write this, I’m trying to come up with excuses for trying out more of their technology. What would I build? I honestly don’t know. But looking at the range of Amazon technologies and thinking about the possibilities reminds me of the feelings I got when I first started programming and learning about computers.

In many ways, the world has changed since I started writing code about 12 years ago. I had a lot of fun writing LOGO and BASIC programs and then hacking together little Perl scripts. Today I find myself wondering what the loosely coupled services and technologies offered by Amazon and other cloud computing services enable. I wonder if the new programmers of today, still learning on primarily single-threaded, single-box computing platforms, should be encouraged to move on to the brave new world of instantly accessible, practically unlimited computing power. I wonder what we’ll achieve if we were to take distributed, connected computation as the starting point, rather than the state of the art.

As an ending note, let’s think about Microsoft. It’s become standard to talk about Google as today’s Microsoft, but I’m starting to wonder if that title doesn’t rightfully belong to Amazon. I’m not talking about monopolistic activities or questionable business practices, but rather their similarities in making computing more popular. Microsoft’s goal (ostensibly) was to put a computer in every household. Amazon, for its part, has commoditized high-powered computing and distributed systems and made them available to people with modest budgets. I suppose the more things change, the more they stay the same.

Amazon has good customer service

Last week I realized I didn’t have a single usable USB Flash drive. So what do I do? I hope on Amazon and order myself one of course. I got this nice Kingston 32GB drive that looked small enough to fit on my keyring and spent a few minutes in awe of the fact that this tiny thing had more capacity than my first computer’s hard drive (a paltry 20GB).

I ordered it on April 15 at night and since I have Amazon Prime, I got an estimated delivery date of April 18. Unfortunately, the 18th came and went and there was no sign of the package showing up. The tracker on Amazon said that the package had “left the seller” on April 16 but had made on progress since then. Since this was the first time Amazon had been late with a package, I decided to give them some slack and wait a few more days. On Monday, April 21, there was still no sign of the package so I decided to contact and see if I could get some answers.

Once I found the Amazon Contact Us page I was glad to see that there was a live chat option along with the usual phone and email option. The chat experience was really smooth. After some simple questions to narrow down the problem I was talking to a real human (I think) within a few minutes. Once I told them what the problem was, they checked on the package status and immediately offered me a free replacement or refund, without even asking. I went with the replacement and today the package showed up at my doorstep. The process was smooth and quick and entirely without fuss. It’s definitely one of (if not the) smoothest customer service experience I’ve ever had.

It wasn’t perfect: the orders page has options to Track, Return/Replace Items, Leave Package/Delivery Feedback or Write a Review. There’s no way to say that the package delivery seems stuck. Under the Delivery Feedback I can say that I haven’t received the package, but it just tells me to leave more feedback when I get it. It would be great to actually have an option to say that there’s something’s wrong with the delivery and I want Amazon to look into it. Secondly, while the whole contact process was smooth, it was hard to find the contact page in the first place. There doesn’t seem to be a contact button or link on the main Amazon page or site and there’s nothing of the sort on the Track Orders page either. I had to Google for “Amazon contact” to find the page. It was smooth sailing after that point, but it’s definitely something I wish was smoother.

Anyways, the point is that I had a smooth customer service experience with Amazon and though there are rough spots, it was very good on the whole. Now I’m going to stop talking about my first world problems and get back to hacking in OCaml.

Goodbye Netflix, hello reading

I cancelled my Netflix subscription yesterday because I’d been using it both too much and too little. I had both the streaming service and one DVD out at a time. While the DVD option has a much larger selection than the streaming, I found myself hardly every using it. In fact I’ve only checked out out a handful of DVDs since getting a Macbook Air without an optical drive over a year ago. Even when I did check one out it took me days or weeks to actually watch and return it. At the same time, I watched too much over streaming. It’s far too easy to just sit and keep hitting the next episode button for hours on end. It was taking up far too much time that would be better spent elsewhere.

I’m not giving up TV completely. We have a large TV in the living room and my roommate has a Roku box and Netflix streaming. However I’ve been spending more time at my desk and trying not to sit on the couch for more than short periods of time. I also plan on keeping the watching down to a few hours on the weekends (if that). I have Amazon Prime (plugged into the Roku too) and while Amazon and Netflix have mostly overlapping free selections, there’s more available to rent on Amazon. That makes it possible to watch something when I really want to (like The Avengers over the weekend) but keeps me from contiuously browsing.

I do however, want to spend more time reading actual books (not blogs or websites and certainly not “social media”). I have a Kindle which I love (and would like to use more) and Amazon occasionally has really nice deals. Cornell also has really big libraries with great collections which I want to make more use of. Personally I find myself being much calmer and more collected if I spend half an hour or so just reading without thinking about anything else. It’s a pretty relaxing and it feels even better if I’m actively learning something from it.

Michael Fogus (who writes a great blog) has posts on “extreme reading” and “reading for the rushed” which offer some great advice for reading more and better. I’m already a pretty fast reader (reading a couple of technical papers a week will do that to you) but one thing I’m interested in trying out is taking notes while reading. I normally hate marking up books, so I’m getting a small notebook (Field notes or Moleskine Cahier) and using that. I don’t know how this will work for fiction but for non-fiction I tend to come across lots of interesting facts that I would like to remember. For example yesterday while reading Martyn Amos’ “Genesis Machines” I found out that Turing was prompted by a friend’s death to start thinking about the possibility about moving human thought to non-biological substrates. These are the types of things I’d like to remember and maybe come back to later.

I’m leaving for India in a few weeks time which means lots of time on planes and away from reliable Internet connections. That in turn means lots of time and opportunity for reading. My Kindle is already well-stocked and I hope this time at home turns into a good start for a year of reading. Ideally I want to read at least a book a week. That might be a bit ambitious, but I won’t find out without giving it a try. For the time being though, it’s back to finishing “Genesis Machines”.

A Whole Lot About Books

Today’s post is just a collection of things about books. These are things that I’ve been wanting to talk about for a while, but none of them individually deserved a full post on its own. So I’m going to put them all together here and put them into a coherent narrative.

First off, you may have heard about the Kindle fiasco where Amazon removed a customer’s account without warning (or explanation) and then deleted all her books. Said customer’s account has been restored but it raises question about Amazon and the Kindle. I personally love the Kindle hardware and service, but I also want to actually own my books. I still buy paper copies of books that I want to keep and will read more than once. All my textbooks are paper too.

Luckily, many non-Amazon ebook vendors will provide DRM-free ePubs. If you have ePubs then the best reading experience for them is using the Readmill app on the iPad. They also recently added support for Adobe DRM, PDFs as well as books from the Kobo and Google Play store. Readmill will also sync your books to an online library and provides highlighting and social features to share what you’re reading. Highly recommended, I just wish they connected to Goodreads and Findings.

Unfortunately the Humble Bundle for eBooks has already ended. This bundle offered a selection of DRM-free ebooks (including some graphic novels) at your own price. The amount you paid got split between the authors, a number of charities and the Humble Bundle team. I hear that if eBooks counted all of these authors would have made the New York Times bestseller list. We can count this one as a success for DRM-free, post-scarcity publishing. You can sign up to receive notifications of later Humble Bundles and I hope to see similar bundles in the future.

A few weeks ago I reviewed Cal Newport’s excellent book “So Good They Can’t Ignore You”. It offers examples and advice on forging a career that’s based not on nebulous definitions of passion but rather on cultivating rare and valuable skills. If you’ve been wanting to read this book but haven’t gotten around to it yet, here’s your chance. Social Books is a new online book. Members read one book a month, sharing and discussing it as they go along. Their first book is So Good and they’re starting November 1. I’ve already read the book but I think it would be a learning experience to do it again.

Last but not least, one of my friends from college has been writing a blog called Courtney Reads a Lot. If you guessed that it’s all about books, you guessed right. If you’re looking for new books to read or a constant stream of book-related posts subscribe to her blog.

That’s all for today. Enjoy your weekend and see you all next week.

The cloud is not secure

We’re getting closer and closer to an age where our data is separate from the machines that we use to manipulate and interact with it. A stepping stone to that future is the “cloud” – a remote, server-based repository of your information that can be accessed by a variety of applications and interfaces. In some ways the cloud has been around since the beginning of computing (dumb terminals plugging into mainframes) but the new, shiny, consumer cloud is both similar and indifferent. And there are many incarnations.

Apple’s iCloud is a complex, powerful solution for remotely storing your data and making it accessible to your apps whether on any of your devices. A simpler solution is Dropbox which syncs your files between devices (and offers a decent web interface). In recent weeks Dropbox has become quite controversial. Dropbox had a serious security breach that allowed people to log into any account using any password. It was a very serious flaw and a serious oversight on Dropbox’s part. They’re currently being sued over the matter. More recently they made an important addition to their terms of service which gives them broad-reaching rights over your data. However they have made efforts to make it clear that they have no interests in rights greater than what they need to run the service.

While services like Dropbox are great and convenient (and probably have the user’s best interest at heart) one thing needs to be made very clear: The cloud is not secure. Having a strong password is no guarantee of security. Putting copyright licenses on your work is no guarantee of security if the TOS give the hosting company rights to it. It is safest to assume that at some point in the near future any data you keep on a cloud storage service can and will be compromised. Under “compromise” I include perfectly legal government seizures as well.

The only data that I put in Dropbox is stuff that I will be making public anyways – copies of school projects, essays or reports that I intend for people to see and distribute. I would never put anything I consider even remotely private in the hands of a service like Dropbox. You should only put private, personal data in the cloud if you first encrypt it locally with a proven encryption algorithm and the encryption algorithm is implemented by an open source, trusted piece of software. The open source is important otherwise there is no way to know that there isn’t a backdoor of some sort. To access the data you should download the encrypted version and then decrypt locally. Anything unencrypted that goes over the wire (or the air) is probably wide open to the world to see. For most people this already includes their email and Facebook data.

I keep my online backups in an encrypted Amazon S3 bucket. I also keep some code on a remote server and make sure to connect over SSH. However, I also don’t keep things like passwords, PINs and account numbers in any written form. The only really secure data is data that doesn’t exist. That being said, modern encryption techniques are still a pretty good defense in most cases. In this age of the cloud you should keep in mind that any data you put unencrypted on someone else’s servers (whether they be files in Dropbox or photos on Facebook) is essentially public.