…and back to your regularly scheduled website

Sorry about that down time, apparently, a little billing mishap occurred and my site went down for a few days.  It’s amazing what happens when emails aren’t sent to your correct addresses.

And since I’m talking like I’m in a commercial, I’ll give you a preview of what to expect on Lane Holloway dot com in the coming months.  First, more content about programming process and design.  Second, more content about programming in Java and Scala and, if I get the time, Clojure.  Thirdly, I’ll talk about some of the newer things out there like “Big Data” (gotta have the air quotes).  Fourth, since I’m taking a class about SAT solvers, I might work up some articles on SAT solvers and some of the issues surrounding them.  It’ll help me understand them more and perhaps, give you, a chance to get your feet wet with them.  Lastly, I don’t know, I’m sure I’ll find something interesting to write about.

Anyway, coming up next will be some articles about programming.  I’ve got a few in the pipeline for y’all. 🙂

Source Code Control and Release Management

Two concepts that are never touched on in college, yet are highly important in business (and academia for that matter) are source code control and release management.  Yes, everyone knows that it should be done, yet I’ve never really seen a good primer on it until recently.  The funny part is, these primers came from The Daily WTF (which I guess is appropriate when one thinks about it).

The source control primer goes from the ground up describing exactly what source control is and covers many of the common operations done in source control: gets, puts, merging, branching, labeling and even shelving.  The release management primer is also quite good and gives a good idea of how release management should work and even provides a nice example to help follow along with the concepts of release management.

These two articles definitely helped codify a few concepts in my mind about source code control (more than just use it) and release management (more than just: don’t break the build) and it should help you as well.

Are there any other articles out there that are worth reading about source code control and release management that might add some more insight that was missed in these two?  Let me know.

Canceling TiVo

Who would have thought my next post would be about me canceling my TiVo service?  After canceling my NetFlix account, I realized, I really haven’t watched TV in a long time and wouldn’t really miss the TiVo service, because honestly, if I miss a show, I miss a show and I know it’ll be played again multiple times in the near future.  Also, I just haven’t had near the time (or inclination) to sit down and watch TV there are many other things I’d love to do besides watching TV.  So, here is to canceling TiVo and NetFlix and gaining an extra $30 a month for doing something else with. 🙂

Canceling NetFlix

Yes, you read that right, I canceled NetFlix.  I love NetFlix and think it is a great service, but I still canceled it, now let me explain why.

NetFlix was first given to me as a Christmas present by my brother in 2009.  I immediately fell in love with the instant streaming, so many movies available right away and I was watching movie after movie of everything I thought I wanted to buy and soon found out, I didn’t.  But, NetFlix did allow me to see these films for only a few bucks a month.  I didn’t even care about renting their DVDs.  Fast forward a couple months and I’m finding out that I don’t have the time to watch the movies on NetFlix as much and on top of that, they’re going to up the fee by an extra dollar.  At this point I was a little ticked that they upped the fee for having the ability to receive DVDs by a buck and seeing a lot of the movies I wanted to watch on Instant Queue be moved into the “we don’t know when they’ll show back up” category, they were becoming a little worthless to me.  Why should I pay $10 / month when I don’t have time to even watch a single movie or TV show from NetFlix?  The answer is, I shouldn’t (nor should you :)).

So, I made the executive decision last night to cancel my NetFlix subscription.  Is this a stupid thing to do or a smart thing?  As of right now, I believe it is a smart thing to do.  It was $10 / month that was going toward something that I honestly wasn’t using and now it’s making me think I’m going to see about canceling my TiVo subscription as well.  Why should I be paying for a service I’m not going to use and haven’t honestly used in over 8 or 9 months?

Installing Maven, Sonar and MySQL on Mac OS X 10.6

If you program a lot, then these tools should at least be pretty familiar to you.  If not, then you’ve probably never heard of Test Driven Development and Software Quality either (I’ll accept that you’ve heard of MySQL and OS X no matter what :)).  These tools help create a process to program and release code along with analyzing the structure of your code.  MySQL, of course, is used as the back end for Sonar.  I recently decided since I was doing a lot of coding on my PhD work that it’d be fun to setup the tools that I use at work and see just how good (or bad) my code for my PhD is.  So, I set about downloading and installing the various tools.  Find them was very simple since they are all open source projects.  You can find them at these places:

Once these are all downloaded, the installation of all three is very straight forward and the documents can guide you them with ease.  The only problem I had was getting Sonar to work with MySQL correctly.  When Sonar first runs, it is supposed to create a Sonar DB inside of MySQL (once you set the Sonar config file to use MySQL).  In my case however, it wasn’t doing that at all.  So I had to manually create a database within MySQL called ‘sonar’ and then start Sonar running, at which point, it created all of the tables it needed and began running flawlessly.

The next step is to convert existing projects to build with Maven (or make new projects using Maven).  This also requires some modification of the pom.xml files to hook into Sonar.  I had to place the Sonar profile section that is normally inside the settings.xml for Maven into the POM for the project which I was working on.  This fixed the issue of Sonar not being able to connect to the MySQL database.

With this I was able to get all the tools working on my machine with no real issues (other than seeing how bad static analysis thought my code was).  Using this I’m hoping that I’ll be able to write some nice clean code and have it all working brilliantly so when I need to modify it, the code will make complete sense and be easy to extend and modify in the future.