Sometimes It’s Good To Fail an Interview

February 7th, 2010 by James Carr

Wow… sometimes memories sprout up out of nowhere, and tonight while painting the kitchen I was reminded of my first programming job interview waaaay back in 2003. See I had picked up a few pamphlets at the university career fair and landed a job interview with one of the few (or was it only?) firms offering a computer science related job there. So I dressed up with a tie, made sure I made three copies of my resume on expensive ass paper, put them in a fancy leather folder and headed off to the interview with my fingers crossed.

As I sat through the interview, I went through the usual motions of answering their questions about my background, listened to their marketing talk about how great their company is, and I chatted a bit about my hobbyist programming I did in my free time. Then came the bad news…. the interviewer smiled as he mulled over my resume, and he said he noticed that I didn’t have any COBOL experience. He asked me if I had ever taken any COBOL classes at the college, and I told him no… as far as I know they don’t even have it in the curriculum anymore.

“Really?” he replied, with a slight look of shock on his face. “Well, all of our systems are written in COBOL here, so that’s what you’d be developing in. We really need someone with COBOL experience.”

“Well, I pick up languages pretty quick… I just learned python last week and was able to do all kinds of things with it… I probably wouldn’t have any problems learning COBOL and actually using it.” I replied.

He smiled. “Well, that’s great James. I’ll tell you what, I’ll talk with the rest of my staff and I’ll try and get back with you by the end of the week to let you know if you made it in.”

And I never ever heard from them again. Another guy at my university, who had made straight As in CompSci and double majored in Mathematics got hired out there the following week, so I guessed maybe I just didn’t have a high enough GPA to meet their standards. I remember wondering what was so special about the language… I looked around online and the examples I found were pretty ugly and I remember wondering if it was some kind of joke? But I did hear from the guy who got the job out there that yes… all they programmed in was COBOL.

Looking back, I’m damn happy I never got the job. A large part of my growth was working for a small start up firm and getting the chance to work with all kinds of languages as well as do a lot of reading online to self-teach myself (I didn’t have any senior developers to work with… just me at first) that led me to read books like Design Patterns, Patterns of Enterprise Application Architecture, Refactoring, and even Extreme Programming Explained as I searched for a methodology to manage our projects. With no one to turn to, I often sought help in online forums, mailing lists, and usergroups in St.Louis. I think all of that played a large part in growing as a developer and evolving my thinking.

If I had gotten that job, I probably would have done my best to excel at it… and perhaps by now I would have been promoted to the position Programmer Analyst II. :)

Using Gradle For Your “Enterprise Java Project”

February 5th, 2010 by James Carr

Yesterday evening I fooled around with gradle quite a bit, finally sitting down and taking some time to learn it as I’ve been hearing lots of good things about it. And man, I like it!

I decided to use it to build the kind of project that enterprise architects go ga-ga over: a multi module project that contains a shared module with an interface (containing JAXWS annotations), a services war module to create a service implementation, and a client implementation to call it. It was a breeze and I finished it in a couple hours.

Read More »

links for 2010-02-05

February 5th, 2010 by James Carr

Running a Single Class From Gradle

February 5th, 2010 by James Carr

Whew… been learning a lot about gradle this evening, and I definitely like it. I’ll expand further with an in depth example, but for now just wanted to post a quick solution to something I was attempting to do. See, I wanted to be able to just type gradle run and have it run a single class from my project, but for some reason was having a difficult time figuring out how to make it work.

Luckily, gradle includes practically all the ant tasks so you can simply use ant.java:

task run(dependsOn:'build') <<{
        ant.java(classname: 'org.jamescarr.Main', fork: true,
        classpath: "${sourceSets.main.runtimeClasspath.asPath}")
}

We want it to depend on the build task so it will compile our classes and dependencies, then it’ll work as expected. :)

A Word About Forced “Agile”

February 3rd, 2010 by James Carr

There’s something that’s been on mind lately from my experiences in the “enterprise” world while contracting… something that’s been really eating at me. And it’s something I’d like to call “Forced Agile” and how it’s possibly the most destructive beast in our industry right now.

The symptoms are quite visible in any organization… different values, practices, and concepts that we use in the agile world for improving our teams are bastardized and turned against the team in the form of forced metrics that are required to be met. This doesn’t help the team one bit and honestly will simply cause the team much grief and do diddly squat to improve anything.

Four years ago I listened to Dave Thomas give a pretty good presentation on Cargo Cults and I’m now realizing something… most companies continue to use the cargo cult approach to adopting agile. They’ve bought into the silly idea that if you do X, Y and Z software will get released faster with zero defects. We’re better than that, and our industry deserves better than that.

Let’s drop this idea of agile being “a set of practices” to be strictly followed. If we really want to succeed at agile we first need to empower our teams to succeed. :)

Eclipse Buttons in Dialogs Not Working On Ubuntu

February 3rd, 2010 by James Carr

Here’s a weird problem I’ve been having lately that I thought I’d blog the solution to so that other people can have better luck when googling. Essentially, I installed a brand new copy of Ubuntu on my work laptop and was having an odd issue with the buttons in dialog boxes not working when I clicked on them.

Luckily, after some searching, I found this solution in the FAQ:

$ export GDK_NATIVE_WINDOWS=true
$ ./eclipse

That seems to have fixed the problem for me… but according to the FAQ “Your Mileage May Vary”. Good luck!

In The Wild: Mockito for Javascript

January 30th, 2010 by James Carr

Yes it’s true… there in is a framework that acts just like mockito for javascript: jsMockito!

The stubbing action looks pretty cool, and I’ll try in depth later when I’m home. But here’s a quick sample to whet your appetite:

    var mockedObject = mock(Array);

    when(mockedObject).get(1).thenReturn("hello world");

I’m a Stupid Moron

January 26th, 2010 by James Carr


Or am I? :)

Today I did something that made me step back and recall a time long long ago when I was working with SOAP on a project. See, I had to integrate a PHP application with a SOAP service and used a utility to generate all the client objects and stubs I needed, then ran into a weird problem. One of the fields in the response object contained a string… of xml. This meant I had to go and parse data manually out of that field by hand rather than having a nice object model created by the utility I used.

“Those stupid morons! Why can’t they learn to embrace the technology they’re using!”

Why did they have to go and embed xml inside a cdata tag!? Why couldn’t they just import the namespace for it (it was schema-less anyway) and include it in the SOAP body??

Anyway, what triggered this recollection? I was working on a SOAP service that returns, in addition to some information used by the application, a binary attachment that is read into a 3rd party library on the client side. Let’s say it’s a PNG or something. Anyway, we decided to try out some different image adapters on the server end and I discovered that I could change the format to SVG and not only would the 3rd party library used on the client be able to parse it… I wouldn’t even have to change ANYTHING on the client side because the 3rd party library automatically detected the type. So I switched the output to SVG and reran the client app… perfect! It worked fine. Then I looked at the raw soap packets it produced while testing it with SoapUI:

<image><!CDATA[[<?xml version="1.0">
<svg width="100%" height="100%" version="1.1"
xmlns="http://www.w3.org/2000/svg">
...]]></image>

*Facepalm* :(

I suppose to my credit, it’s not as if the client app itself is meant to parse the SVG data itself anyway. :)

links for 2010-01-26

January 26th, 2010 by James Carr

links for 2010-01-25

January 25th, 2010 by James Carr