This is a place where I share my thoughts on various software engineering ideals and whatever thoughts I have going on in my brain. There's no telling what you will find here...
May 10, 2013
Groovy Koans!
If you have never experienced any koans (there are koans for a lot of other programming languages) it is an interesting way to learn a new language. Each koan is designed to teach you a different aspect of the language by having you modify code in unit tests to get them to pass. As you pass through each koan the topics get more advanced.
So far I have only worked through the first 3 or 4 Groovy koans, but I am picking up things pretty quickly. The more I work and learn about Groovy I like how simplified it is compared to Java. I am really loving the auto properties and that it already has closures. I can't wait to get into some of the more advanced topics in the later koans.
**Side Note: Groovy Koans utilize Gradle for building and running the tests so you can get a nice preview of how easy it is to use Gradle over Ant and Maven. I am thinking Gradle will become my new build tool.
November 10, 2012
Codecademy
Earlier this year I started to get the itch to do some learning of languages other than Java and C#. I randomly came across a blog post about a site that had a developer pledge to do a coding assignment once a week for a year. It was called Code Year and it was pretty fun, but at a certain point I got busy with other things and fell behind by more than a few weeks. Last month I realized I was over 30 weeks behind and wanted to catch up. I made a pledge to do t least one assignment a day until I caught up.
I am proud to say that I have not only caught up on Code Year, but I have now completed every available training assignment on the site. So far I have learned jQuery, CSS, Python, and Ruby to a point where I can actually write meaningful code in each of them. If you are looking to branch out I suggest you check out the site.
*Codecademy – www.codecademy.com
*Code Year – www.codeyear.com
May 2, 2012
I'm A New Guy Again
My new position uses a completely different technology stack. I’ve gone from maintaining older Struts applications with no ORM tools to now working with the following stack:
- EJB
- JSF
- Seam
- JPA/Hibernate
So far I have only done some small things with each of these, but I will be starting a new project soon and expect to have this stack mastered by its completion. Wish me luck!
November 9, 2011
**Alert**:Removing Old RSS Feed URL
November 1, 2011
Moving Inside the JVM
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
- IoC Container
- ORM Framework
- Unit Test Framework
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 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.
December 1, 2010
An App Idea? Brilliant!
November 27, 2010
Windows Phone 7 Development
I recently went to a WP7 talk by Chris Koenig at the Fort Worth .NET User Group. It really piqued my interest as he went through some simple examples of creating apps for the Windows Phone 7 OS. I have dabbled in doing a little Android development and I have to say that Microsoft made the task of creating apps much easier than in Android. If you haven’t had a chance to give WP7 a look, I suggest you give it a try. History has shown that there isn’t much money to be made in the current market-based mobile app development, but it can provide a nice break from the monotonous work of the 9 to 5 job.
WP7 Resources Links
Chris Koenig WP7 Resources
AppHub
Blankenblog - 31 Days Of Windows Phone 7
November 1, 2010
What’s Next?
I have to admit I have come to a bit of crossroads when it comes to this blog and my journey in software development. I think I am in need of some sort of change. When you begin to feel like you are doing routine things over and over it means it is time to try something different. That is where I currently find myself. I have been doing normal Java development since the early 2000’s with only a few small detours. I think it is time for me to truly branch out and start learning the principles and practices of other technologies. Now I just need to decide what those technologies are… Any suggestions???
October 22, 2010
Book Review: C# 4.0 How-To
I have recently started to attempt to learn more about the latest .NET 4.0 release, primarily where C# is concerned. I have been primarily a Java developer, but have dabbled in C# from time to time so I like to see some of the new things the language has added. Luckily, I won a contest on Ben Watson’s blog for a free copy of his book, C# 4.0 How-To. I received the book a week ago and have slowly been making my way through it.
C# 4.0 How-To is a book is written in the cookbook style. It provides numerous examples of how to do the most basic things using the framework. It has examples on WCF, WPF, Silverlight, and even includes a simple example on using ASP.NET MVC. I have really enjoyed it so far. It is not a book for someone just getting started with programming, but is the perfect book for someone like me who has experience with modern OO languages, but does not know the ins and outs of the .NET framework. I am pretty sure that as I get started with some personal projects I have in mind, this book will sit by my side the entire time.
August 21, 2010
PhoneGap
I have recently started looking into getting into the mobile app development craze. I was looking for something that would possibly make this easier as I have no background in that area. A friend of mine told me to take a look at PhoneGap and so far I am pretty impressed. PhoneGap is a mobile development framework that lets you deploy your app across all the different phone types. Basically, you write your app using html and JavaScript and then PhoneGap takes care of the rest. I am looking forward to digging into it a little deeper, but thought I would go ahead and share it so others looking to get started on mobile apps might have a little help taking the first baby steps.
Links:
.NET Rocks! Episode - PhoneGap with Jesse MacFadyen and Filip Maj
May 18, 2010
I Have Found The Holy Grails
Grails just seems so straight forward to me. In one night I made it through the Grails User Guide, and was able to get a small app up and running. I have more learning to do with Grails, but I think we are going to become longtime friends.
With that in mind, I think it might be useful to actually do some posts on the various components of Grails. Would anyone be interested in that? Right now I am thinking something along the lines of a series of posts where in the end a full Grails app will have been built.