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!

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 »

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.

I Found My Next Project

Since I’ve pretty much stopped playing video games I’ve been tinkering around with Ruby On Rails and other development platforms/languages. While tinkering I stumbled across Aptana which is a web-developer IDE built off of the Eclipse project. So far, I’ve been impressed with Aptana as a web-developer IDE however it’s lacking in some areas. Mainly, it’s a HTML, CSS, and Javascript IDE with RoR support available as a plug-in and PHP support in the works. Not bad considering it’s still in beta :) Aptana is everything I could want in an IDE except for the lack of ASP support. My current company programs solely in ASP despite how old it is and my numerous attempts to move to .NET. Which brings me to my next project, and ASP editor for Aptana. I don’t know how long it will take or how much time I’ll be able to put into it but it should be fun. Not just because I have a new project but also because it will be nice to get back into Java again.

Palm Emulators

Part of my job is developing a website that will be ran on a Treo 650. The Treo is a cool palm pilot/cell phone that runs for about $600 if you’re interested. What makes devloping this website so much fun is that the Treo uses a browser called Blazer. Blazer is actually a decent browser for a palm. It has HTML 4.0, XHTML, XML, CSS 1.0/2.0, and Javascript 1.5 support. The Javascript support is debateable in my opinion considering some simple scripts don’t work while others do but it does have some support. One of the most anoying things about Blazer is the way that it handles tables. You can create a table, specify the width, border, cell padding/spacing, etc all you want. Won’t actually do you any good but you can specify it. Table borders are the only thing that seems to work correctly! Another annoyance, however needed, is the way that selects, drop down lists and lists, are displayed. Sure it has to render the selects but why can I not specify the width?! Something like

<select name="name" size="2" style="width: 20px">

<option>1</option>

<option>2</option>

<option>some really long text goes here!!!!</option>

</select>

would work fine on just about any browser. However when it’s rendered it still takes the full required length! There are other things that are annoying but are just small quirks that I won’t go into full detail right now. Check out the simulator if you’re interested.