What’s A Java Developer To Learn?

With the economy continuing on it’s tailspin, lots of developers are finding themselves out of work. Those that are lucky to still have a job (like myself) live in fear that their company may downsize at any time and they’ll be looking for work.

This means that it’s more important than usual for a software engineer to be “marketable”. Engineers need to make sure they stay current on technologies that are widely used in their field. This is a somewhat daunting task considering just how many technologies there are out there. Luckily, there are resources to help narrow this down.

What follows is an investigation into what technologies/products/frameworks/languages/tools are showing up in job postings for Java developers using Indeed.com. This sort of thing can be very handy if you’re looking to improve your skillset and would like to focus on improvements that make you more likely to land a new job if you were to need to.

Continue reading ‘What’s A Java Developer To Learn?’ »


My Least Favorite Interview Question

There is one type of interview question I see pretty frequently that drives me absolutely bonkers. I’ve never actually been given this queston myself, but I’ve worked at a lot of companies that like to ask it (I’ve been lucky). Just recently, a friend of mine who has been interviewing mentioned some of the questions he was given; one of them fit this description and all I could do was feel bad for the poor guy. There’s no way he answered it correctly, despite being a very capable software engineer.

I refer to this question as the “Career In A Bottle Question”

The Career In A Bottle Question

Very often this question is actually given prior to an interview, as something you submit to a company after passing an initial phone screening but before they bring you in. The question takes a form similar to the following:

Write a program that will [anything]. Please write it as though it were going into production.

It’s the second sentence that does a candidate in. Why? Because there is no right way to answer the question.

Continue reading ‘My Least Favorite Interview Question’ »


Apple: Semi-First Impressions

Two months ago, I took a new job with Rally Software. I’ll write a post about the company some other time, but I do want to highlight one aspect of the company: the usage of Apple products.

I spent most of my youth in Windows, but I switched to Linux a few years back and greatly enjoyed it. It annoyed me that I didn’t know my way around Mac OS, the only remaining one of the “big three” with which I was not proficient. When I took the job at Rally, I was excited to find out that they were an Apple shop. All of the developers had powerful mac machines, the pairing stations were all iMacs, and pretty much everyone owned a Macbook or iPhone, or both. Rally was going to be a good place to learn my way around the world of Apple, so I was excited.

To give a little background on myself, I am a bit of an open source zealot. Even when I was a Windows user (for a while, I worked as a Flash programmer and Flash didn’t run in Linux), I replaced the Windows shell with LiteStep, an open source shell. I ran open source Windows software almost exclusively - my goal was to make the Windows Kernel the only proprietary thing running on my machine.

The only Apple product I had owned up until I took the new job had been an iPod, but I replaced the iPod firmware with Rockbox, which is open source. A year ago I wanted to upgrade my iPod Nano to the newer, smaller model, but when I brought it home and tried to install Rockbox on it, I found out that the newer Nanos had some kind of protection that prevented firmware replacement. My response was to actually return the Nano to the store and keep my old one, which I still use.

So suffice it to say, ‘closed’ systems irritate me, and Apple products are arguably the most closed hardware/software products available for purchase. I decided to go into this process with an open mind, since I wanted to learn my way around Mac OS X, but the odds were definitely stacked against Apple, so take what I say here as a fundamentally biased view of the world.

Continue reading ‘Apple: Semi-First Impressions’ »


What the Hell, Wikipedia?

So I open up my Firefox browser and decide to go to http://www.fivethirtyeight.com to satisfy my obsession with the recent U.S. election. I finish typing “five” and the address bar automatically shows me that fivethirtyeight is a likely destination in a drop-down box. I try to hit down and enter, but miss the down key, hitting enter instead.

This causes Firefox to do an “I’m feeling lucky” search for “five”, which lands me right here:

http://en.wikipedia.org/wiki/5_(number)

That’s right, it’s an entire article about the number five. Wikipedia has an entire article just on the number five. The article helpfully starts by telling me that five “is the natural number following 4 and preceding 6.”

This article talks about how five is represented in other numbering systems, places you can find five in science, in religion, and in sports. Muslims pray to Allah five times a day. Take Five is a famous jazz standard composed by Paul Desmond. Five is the number of kyu grades in judo. 5 is the most common number of gears for automobiles with manual transmission.

Continue reading ‘What the Hell, Wikipedia?’ »


Listing Only Java Processes

Ever do something like the following?

ps aux | grep 'java'

Pretty annoying, especially considering that the output usually shows the enormous startup script commands running with Java. Wouldn’t it be nice if you could just run a command that would list only java processes, and specifically list what the actual application running within the VM is?

As I learned at a JUG last night, there IS a program that will do this. It’s called ‘jps‘.

JPS will list only the java processes running, with their actual PIDs and the shortened names of the entry classnames or jar files. This lets you handily see what is actually running:

jps
18027 Java2Demo.JAR
18032 jps
18005 jstat

Where can you get this amazing tool? You already have it! It’s part of the JDK, apparently. Go to a terminal and type ‘jps’ and check it out.

The program also takes options to list full classnames and it can even connect to a remote machine and list JVMs remotely.

How did I not know about this? It rocks my face off.