Tuesday, January 21, 2014

Wasted time

In the ideal world, programming looks something like this:
Go to my desk. 
Tap on the keyboard to wake up my computer. 
Write code. 
Save and commit. 
Push code out to the world. 

Today wasn't one of those days. 

My work day was lost to meetings.  I listened to others debate the future of our product.  In the end, I wasn't even sure what the debate was over; thus, there wasn't a good resolution.  It was a waste of time. 

I then got home where I wanted to work on my Android app.  Since this is a one man hobby project, there were no meetings to attend.  I've been working on this for the last few days, so I had a good idea of what I wanted to complete today.  However, for some reason, when I plugged my phone into my computer, there was no connection.  I finally figured out that the usb cord just stopped working.  Not sure what happened there. 

To summarize, during the day, I didn't have time to write code because humans/coworkers couldn't come to an agreement quickly.  At night, I couldn't work because I couldn't connect my laptop to my phone.

Every day I wake up and hope to be productive.  Some days, like today, things arise which reduce your productivity to 0.  That's it. 

Sunday, January 5, 2014

Ready Player One

I just finished reading Ready Player One by Ernest Cline (recommended by the guys from Programming Throwdown).


I don't consider myself a big science fiction fan, but I enjoyed this one.  One of the reviewers of this book said that it is a cross between the Matrix and Harry Potter, which is an apt description.  It doesn't require advanced science or programming knowledge.

The premise of the story is as follows.  There is a contest in a virtual reality world/game with a humungous prize.  The game depends on playing video games and amassing trivial knowledge from the 1980s.

As always, different people will enjoy and dislike different parts of the book.

The thing I liked most was the idea of working hard and preparing.  The contest was unpredictable, so the contestants spent all their waking hours learning and practicing anything they could get their hands on.  Those who prepared the hardest and smartest did the best.

If you are looking for a feel-good book that anyone could read, I'd highly recommend this one.

Android Studio - preview of the future

I do not like to be on the bleeding edge of technology.  I'll leave the headaches and perhaps glory to those early adopters who blaze a trail, write a review, and try out every new product that passes their way.

With that said, I spent some time getting Android Studio up and running this weekend.  There are a few reasons why this might turn out to be a waste of my time.

It's still a very immature product.  As of today, I'm using version 0.4.0.  This means, it is buggy. For example, see this bug and hacky workaround.  I ran into this issue, when I tried to build a new project from scratch.  I hadn't touched a line of code yet, and I already had a bug.

As with most new things, there is a learning curve associated with using Android Studio.  In the previously mentioned bugs, there were a number of unfamiliar terms to me: such as gradle, facet, module.  Lucky for me Google + Stackoverflow offered a solution, but debugging a problem in this environment can be pretty tough.  Was it my user error (probably) or was it a buggy part of Android Studio (possibly)?

But if I wait long enough, things should get better, right?  Well, maybe.  Google has smart engineers who can fix bugs and improve the product.  But like any other company, they have limited resources, and they might decide to stop supporting Android Studio (as they have done with other products).   

So, with all that is has going against Android Studio, why did I decide to start using it?  

First, I found out that sample Android projects were now set up for use with Android Studio.  I suppose sample projects for Eclipse are available elsewhere, but this is a strong endorsement for Android Studio.  

Second, I never fell in love with Eclipse.  Heck, I never even felt very comfortable with it.  I'm sure part of the reason is that I didn't spend enough time trying to become a better Eclipse user.  For that reason, I'm not qualified to say whether it is a good or bad product.  It certainly is useful for many people, and I've used it to build a few Android apps.  But, I'm not committed to it, and I'm willing to try something else.  

I think it was in the Pragmatic Programmer where it mentioned that it is really important for a developer to become proficient with the text editor or IDE they choose to use.  Writing code with an IDE that you don't like is clumsy and painful.

I hope my move to Android Studio is worthwhile.