Category Archives: Programming

It’s The Process

At work we have a process that must be followed for you get changes into production.  It’s not a foreign concept, just about any respectable company has a process, some are just more strict than others.  If measuring processes was done on a scale ranging from none to overboard I’d think we’re somewhere between middle of the road and overboard.

 

Well today I found that some of our application server logs were not making it to our Splunk servers from a sub environment.  After troubleshooting the problem I found that the Splunk agent didn’t have permissions and would have to be bounced.  Bouncing a Splunk agent isn’t a problem in of itself except we have some  processes running that have to be stopped before hand.  Long story short, it’s a pain to do it but thankfully I have a fix to make life good for all parties involved!  It’s past the commit for next week’s release but we have a way of getting these changes in.  This is a low risk change, comment out a section in an XML file.  Enter overboard process:

  1. Test the fix in the testing environment
  2. Create RFC (Request for Change)
  3. Wait for approval…
  4. Create outage ticket linking it to the approved RFC even though the problem has been there for 9+ months and nobody noticed…
  5. Create BCR (Baseline Change Request) for approved RFC and outage ticket
  6. Speak to an approval board to move forward
  7. Check in change
  8. Submit build request (configuration has to be built)
  9. Wait for approval…
  10. Deploy

Ten steps!  That’s 10 steps and about 4 hours of paper work, phone calls, putting cover sheets on TPS reports for something that could have been done in literally 20 minutes.  I don’t mind submitting build requests or a single change request form, some paperwork can be a good thing.  But I will never understand why I have to create an outage for fixing a problem that I’m already going to have to speak to.

To JavaOne I Go Again

I’m going back to JavaOne again this year!  I enjoyed the conference last September and I’m looking forward to this year’s conference.  A little bummed it’s not in the Mascone Center (again) this year but  overall I thought Oracle did a good job with the Hilton, Niko, and Parc 55.  Sessions are booked, flight reserved, and hotel ready.  San Francisco here I come again!

Picking a language

Every year at work we review our development and performance objectives.  How did we do on them, what are the objectives for this year, etc.  Since I pick my development objectives I’ve decided that one of them will be to learn three new languages/frameworks.  There are plenty of languages and frameworks to choose from, so much in fact that I have had a hard time nailing down which ones I want to try and tackle.  Of the many options to choose from I’ve narrowed down the list to the following six:

  • Grails
  • Python
  • Objective C – really get into it this time especially now that I have my new MacBook Pro :)
  • Scala
  • Ruby On Rails
  • GWT

I actually jump started my goal in the beginning of the year by attending one of the SATJUG meetings which was over Grails.  The presentation at the JUG was enough to grab my attention and bump it up in my list.  Groovy is an interesting language and I’m really liking how the Grails framework makes use of it’s dynamic nature.  There’s also some entertaining value of having a class called GString in the core language.  Scaffolding is nothing new but Grails does it with flair.  Throw GORM into the mix and you have yourself a pretty slick web framework.  Despite all that I don’t see it having a home at work other than for prototyping due to our ‘culture’ which saddens me.  Regardless, this framework has a lot going for it.

I still haven’t picked my next language/framework, I’m open to suggestions, but I hope the next one I pick is as unique and versatile as Groovy/Grails :)

Being Pragmatic

The Pragmatic Programmer

The Pragmatic Programmer

One of my colleges and I were discussing the dynamics of our team and what changes we would like to see.  It was one of those fun conversations where you know something needs to change but you’re not quite sure so you’re left to pure brainstorming.  During our conversation we started talking about “required reading” for our team with the hopes of getting more out of our team.  The Pragmatic Programmer was one of the books that came up that I had not heard of.  If you’re a programmer/developer and do not own this book stop now, click the link, and order it.  Go ahead, I’ll wait.  Don’t let the © 2000 fool you, buy the book!

The Pragmatic Programmer won’t teach you how to program in a specific language or tell you the answers to all of a developer’s life questions.  What it does do, very well I might add, is give you a advice from their experiences that can help you become a better programmer.  If you’ve been programming for a while like myself or just getting into it this book will help guide you along the way.

Learning IntelliJ

A couple months back I landed a free IntelliJIDEA license while attending the SATJUG.  I’ve it installed on my personal computer but just haven’t really used it.  Each time I start to hobby code my mouse instinctively hovers over the Eclipse icon.  It’s not that I’m against using a non-eclipse based IDE, it’s just that I hate trying to learn how to use a new IDE.  I learned how to use Eclipse because it was “the” IDEA at the time and it’s what I use at the office, well actually we use MyEclipse which I despise….  Everything I’ve read about IntelliJ has been positive and looks like I’ll like it, it’s now up to me to learn to use it.

I will learn to use IntelliJ. I will learn to use IntelliJ.  I will learn to use IntelliJ!

JavaOne 2010 Photos

Been meaning to post these. Here are the pictures from JavaOne 2010. I took them with my iPhone so take it for what it’s worth.

Java mascot

Doing the Wicket ‘thang

Wicket in Action Lately I’ve been playing around with Wicket for work.  It’s a very interesting framework that, from my experience at least, you will either love immediately or scratch your head for a time as you unlearn Struts or another framework.

We don’t need no stink’n JSPs!
It seems that with Wicket the days of having to write Java in JSPs are gone, in fact Wicket doesn’t use JSPs, it uses good ol’ fashion HTML files.  This is very nice and allows you to really separate the design of a page from the functionality.  The only downside with how Wicket uses the HTML markup is if you change the structure of the markup, which you will do when developing, you’ll have to reorder your components in code and recompile.  If you make use of Wicket’s markup, which you will, the number of times you have to recompile goes down drastically.

Read more »

JavaOne Sessions

Some of the JavaOne sessions have been posted online, looking forward to them!

WARNING!  Continue reading only if you’re interest in the abstract description of the sessions.  These are just some of the sessions that caught my eye.  There’s a lot to review since we’re finally moving from Java 1.4 to Java 1.6.

Read more »

Android and the Missing GEN Folder

I’ve been playing around with Android now and so far it’s been a good experience save one really annoying thing.

Project ‘Project Name’ is missing required source folder: ‘gen’

Seriously?!  I mean come on, the folder is in the project for crying out loud!  Sadly I’m not the only one who has been plagued by this error.  Many Google searches later and still no hard-fast answer that.  I have found one thing that seems to help although it’s a pain to keep doing it over and over again….

  1. Delete the R.java file under the gen folder
  2. Refresh the project
  3. Build Project, not Clean

This, so far, seems to be the only way to consistently get rid of the missing gen folder message….

Edit:

It seems I’m getting more and more traffic to this post.  Christian provided the correct fix below on how to resolve the missing GEN folder in the comments below.  Set the Java version of the project to 1.6 and you’ll be troubled no more.  Thanks Christian.

Objective C

Makes me want to relearn assembler.