Pages

November 9, 2011

**Alert**:Removing Old RSS Feed URL

If you still use my old feed url @ http://feeds.feedburner.com/TalesOfTheBlackDilbert please update your news reader to point to my new feed at http://feeds.feedburner.com/MrWillSoftware.  The old feed will go away at the end of the week.

November 1, 2011

Moving Inside the JVM

I am becoming more and more interested in JVM languages like Groovy and Scala. I truly believe that these languages created to run on the JVM are going to slowly displace Java. Java is beginning to suffer from neglect as it has not been pushed forward like it should have been.  Closures still not being in Java is the perfect example. Too many developers have been calling for this feature and it is supposedly going to be in Java 8, but I will be surprised if it makes the cut. Groovy and Scala already have support for closures, so I figure if these languages are already pushing forward I am going to jump on the train rather than wait for Java top catch up.



October 5, 2011

Steve Jobs, R.I.P.

I just heard the news that Steve Jobs has passed away at the age of 56. I knew he had to have been ill for him to let go of reigns to his Apple machine and sadly I was correct.  My fellow nerds should take a small moment and reflect a little in his honor.

Though I often disagreed with the manner in which he made some of his decisions on developing applications for his platforms, no one can argue with the success he brought to Apple and what he has done to innovation. In my opinion, Bill Gates brought some respect to nerds, but Steve Jobs made being a nerd cool. Think about it. When have you ever seen people of all walks of life stop what they are doing to check in on an announcement being made by a man in jeans, a black turtleneck, and white sneakers?

Rest in peace Steve Jobs. If I achieve 10% of the things you did in your short life I will be overly satisfied.

September 10, 2011

The Big Flaw in the Android Experience

My team at work is starting to make a big push to start having more of a mobile presence. This meant that I had the privilege of being sent to a training course for iOS development (via Pragmatic Studio).  I had only done some minor Android development before this so I was fully prepared to give iOS and Apple the stink eye. Something strange happened though. The more I sat in the class and worked on writing apps for iOS, the more I started to see what I consider the biggest flaw in Android. What is that you might ask? Android does not have a common look and feel across the OS and apps.

The more I wrote apps for iOS, the more I realized how each app had a common look and feel.  Even though they had different styles, they all had similar behavior and button/field placement. I could easily pick up any iPhone and open an app I would know how to navigate and what to expect in the screen layout.  When I open my Android phone, it is quite the opposite. If I open 10 apps, I can expect to see 10 different screen layouts. This is annoying to have every app behave differently and does not provide a sleek UX . Google needs to get a handle on this somehow.

I know Google has refrained from going the Apple route of thoroughly reviewing all apps submitted to the App Store, but they have to come up with some solution to the UX problem if they truly intend to dethrone the iPhone. If it was me, I would just review apps to check for obeying UI and security guidelines. That would still give developers the confidence that their app would easily and quickly pass through the approval process and make users more at ease.

July 15, 2011

Your Career is YOUR Career

I've learned a very valuable lesson this year:

You are responsible for your own career growth!

For many years I would complain about not being able to work with newer technologies and not being where I thought I should be in my career.  What did I do about it? Absolutely nothing... I basically had a "woe is me" attitude about it all until I happened to have a conversation with someone at a user group meeting. He told me that it was my career and that it would be what I made of it. I could not depend on others to push me to the next level I wanted to reach.  If I wanted to continuously learn and grow with new technologies it would have to start with me diving into them and then find a way to teach those around me so that I could enlighten others. That was the moment the light bulb blinked on for me and I have not looked back.  I am currently going through and learning all the things I should have been learning all this time.  Not only is it making me more marketable, but I am relishing the opportunity to finally be taking the next step in my career.

As a side note, here are a few technologies I've learned that most developers need to be current, regardless of their language of choice.
  • IoC Container
  • ORM Framework
  • Unit Test Framework
Feel free to add to the list.

May 20, 2011

Happy To Have a Nook Color

A few months back I received a Barnes & Noble Nook Color a few months back as a belated birthday gift. I can honestly say it has enhanced my reading habits.  I have never been an avid reader, but I am really enjoying it.  I have been able to read a few technical books on the device and really like being able to quickly jump through the book to the various sections when I need to use it as a reference.  My back is slowly thanking me as well as I am able to replace some of my paper books with the electronic version. I look forward to seeing where the device goes from this point.  Regardless, I am glad to have it in my possession.

April 29, 2011

We Need Debt Collectors

I've been thinking a lot about technical debt lately. We all have that one piece of code or module that everyone avoids like the plague because it is essentially a big jumble of hacks upon hacks. This isn't that big of a problem if it is a small piece of code that is rarely used, but what do you do if that code is one of the main pieces of your application?

I have been in a situation like this and it is not pretty. That one piece of code turns out to be the most popular for customer requests. The developers know something needs to be done about it, but with all the requests coming in, they are not provided with dedicated time to fix it. So in turn, the time needed to fix the problems increase with each feature. The developers then decide that the time it would take to fix the problem is more than it would take to rewrite the module from scratch so they start down that road thinking they are in the clear. However, they just doubled their work as they must maintain the current module as well. You get the picture...

The moral of this is to avoid the shortcuts that lead to technical debt and if you cannot, do your best to recover the debt ASAP or you will back yourself into a corner.

April 15, 2011

iPad 2 or Android Tablet???

ALERT: This is a non-nerd post…

My wife will be returning to school in the fall to start working towards her PhD and I am thinking that she would benefit from using a tablet. I just can’t decide if I should get her the iPad 2 or one of the newer Android tablets running Honeycomb. We currently have Android phones and she seems to like hers, but until I get Honeycomb in my hands I have no idea how Android translates to the tablet.

So what does a tech guy do? He asks for input from other tech guys who have gotten their hands on the devices. So please share any opinions you might have on the iPad 2 or one of the tablets running Honeycomb. You can either respond to the post or let me know what you think on twitter at @mrwillsw.

April 6, 2011

Java Doesn’t Make Money Easy

I am currently working on writing a small loan payment calculator application for Android, and trying to be a good boy and use the java.math.BigDecimal class to handle the money representations. It took me a bit to get it going, but I am really wishing I had gone “old school” and just used an integer and done all the calculations at the penny level.

The BigDecimal class methods initially seemed to be pretty straightforward. You just call the add, subtract, multiply, or divide methods like you would if you were doing normal calculations. So I wrote my test case, implemented the formula in my LoanCalculator class, and kicked off my test full of excitement about being able to tie all of this in to the Activity UI I had all set up. Nothing but red and a big stacktrace.

Exception in thread "main" java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.

It turns out that when calling the BigDecimal.divide() method you need to specifically set the scale and rounding method so the object knows how to represent the decimal value in the cases where it is a repeating number, ex. 2/3 = 0.6666666666666…. I got that situated, got my test passed and moved on my way. I always wondered why I never saw BigDecimal used frequently and now I know why. Unless you pay attention to what you are doing and really read the API specification you will get errors and stacktraces that some devs would rather just avoid.

March 8, 2011

Shifting Focus


It has taken me some time, but I have finally found my way. I have decided that I am going to begin to focus on mobile app development. It is an area of software development that has kept my interest. It is something I can do away from whatever job I have to pay the bills and, should I become very strong in the area, can open me up to the quickly increasing number of mobile app developer positions available.

Currently, I am working my way through learning the basics of developing for Android. I started there because I have an Android phone, but I intend to also learn how to develop for Windows Phone as it will also help me learn Silverlight in the process. Luckily, I have a few resources to help me get started with both.

I am very excited about this and I hope to share things I learn.

January 29, 2011

Following the TDD Road

Like many people, I have not yet made my way down the TDD path. My current job does not use it and I don’t think it will any time soon and I have yet figured out how to get started on my own.  Luckily, I have found someone to show me the ropes and get me started. I am pretty excited about it. I will finally be making the jump into more current development techniques.  From what everyone tells me, once I get started with TDD I won’t be able to design/develop any other way. I’m psyched.