Need a Java Expert?

Posted in General, Java, Software Development on April 21, 2015 by jstevenperry

I will be available for Java development work starting in the mid-to-late-July timeframe. If you’re looking for 3-4 Java developers, engage me instead. You won’t be sorry.

Check out my resume at


J Steven Perry

New Makoto Java Android App: Policy Debate Timer

Posted in Android, Java on November 30, 2014 by jstevenperry

My company, Makoto Consulting Group Inc, released its first Android app, which is available now in the Google Play Store:

Get it on Google Play

Special thanks to Foster Perry for the design work and business analysis for the app.


Amazon Prime – Totally Worth It

Posted in Personal with tags , on December 27, 2013 by jstevenperry

I joined Amazon Prime a year or so ago. Not only do I get free 2 day shipping on all my orders, they have fantastic customer service! So, I ordered some stuff that was supposed to show up a week before Christmas. Well, it never showed up. So I waited an extra week, just to be safe. At this point, I figured the package just got lost. So I started a live chat with an rep and in minutes I was told I will have a credit card refund. If I end up getting the items from UPS (I’ll be over here holding my breath), all I have to do is contact for a shipping label and I can ship them back at no charge.

That’s pretty awesome. I don’t know whether or not my outstanding customer service experience today is because I’m a Prime member, but I’d like to think it is. If not, then all the more reason to shop with


Posted in Java, Open Source, Software Development on December 27, 2013 by jstevenperry


Anyone who uses the JDK Date/Time API knows it, well, sucks. Badly.

Joda-Time was created to remedy the numerous shortcomings in the JDK’s stock Date/Time API. And it pretty much ruled for a very long time. Include it in my Maven POM and, boom!, just like that, I had a very good Date/Time API.

I wrote an article for IBM DeveloperWorks about Joda-Time in an attempt to share this news with those who didn’t know they had to suffer in silence.

So imagine when I read this article at JavaWorld about JSR-310. Basically Joda-Time’s (very few) design flaws will be fixed and the spirit of Joda-Time will be included in the JDK as part of Java 8 (at least, that is the plan). I’m sure that is not a completely accurate characterization of the situation, but basically the new JDK Date/Time API will be very familiar to anyone who has used Joda-Time.


My Resume

Posted in About Me, Personal on December 11, 2013 by jstevenperry

My Resume

As a consultant, I’m always looking for my next job (kind of like being a politician, only I’m honest and deliver something of real value). If you want to see what I’ve done, what I’ve written, where I went to college, click on the link above. Or the one below:


Breaking Bad

Posted in Personal, Philosophy, TV on September 27, 2013 by jstevenperry

I began watching this show on a lark, and was hooked from the very first episode. I’ve watched them all (now multiple times, thanks to Netflix), and enjoy them very much. More than once I have asked myself why I am so drawn to this story of greed, obsession, lust, avarice, and raw humanity.

Walter White is a superbly intelligent individual. But he is also a deeply flawed human being. Several times throughout the show he could have walked away a rich man, and chose not to. Though it’s not completely clear why he walked away from Gray Matter (which, ironically, would have made him more millions – legitimately – than cooking meth every did), a careful study of the show reveals that Walter always feels that his genius is unappreciated. So he sold his shares, left Gray Matter with a huge resentment and “a couple of months’ rent”, and subsequently slid into mediocrity. That haunted him until his diagnosis.

From the beginning we see a man on a mission, and it takes him from hero, to killer, to criminal mastermind, and finally to fugitive. Like the man, the mission is deeply flawed. Never feeling fully appreciated, his obsession (matched only by his brother-in-law Hank’s obsession to catch the mysterious “Heisenberg”) leads him down a very dark path from which redemption is hopeless.

That said, Walter seems comfortable knowing that what he is doing is illegal. He seems to grow more at ease with the terrible things he has done, but never tries to justify it in terms of “free markets” or any other such nonsense, and does not try to disguise stealing from innocent (if perhaps greedy) people as “Capitalism at its finest.” In fact, he proudly declares more than once that the money he has acquired by cooking methamphetamine is money he “earned.”

Perhaps the lesson is this: greed in any form, leads to destruction. Period.

Or maybe the lesson is, when you have 1,000 gallons of methylamine and you can sell it for $15,000,000, take the deal.

That doesn’t make for very good TV though.

JBoss AS 7 Debugging With Eclipse

Posted in Eclipse, Java, JBoss EAP, Software Development with tags , on July 31, 2013 by jstevenperry

If you have ever wanted to debug application code running on a instance of JBoss then this post is for you. This information is in various places on the Net, but I thought I would pull it together in one spot. That’s how I roll.

First off, I use JBoss EAP 6.1 (AS 7) and Eclipse Juno. These instructions will probably work for you should your versions be different. Just wanted to get that out of the way.

Next, You will need to start JBoss with a few extra options to the JVM. You can set these either in standalone.xml, or via the JAVA_OPTS environment variable. The options look basically the same, but for this post I will use JAVA_OPTS. Read this post from the JBoss Community forum if you want to use standalone.xml to configure the JVM parameters.

Add this line to your existing JAVA_OPTS:

-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n

The port number (8787) above must match your Eclipse setup (see below).

Finally, you will need to tell Eclipse how to connect to the remote process. In Eclipse, click the Debug button’s drop-down arrow and select “Debug Configurations”.

  • In that dialog, navigate to “Remote Java Application” and click the “New” button.
  • Under “Project” select the project that contains the code you want to debug.
  • Under Connection Type make sure “Standard (Socket Attach)” is selected.
  • Under Connection Properties, make sure the host (e.g., localhost) and port (which must match the port spec in the JAVA_OPTS, in this case 8787) are set.
  • Click on the “Source” tab and add any projects containing code you want to debug (if there are other projects in your workspace that contain code other than the main project).
  • In the Common tab, under “Display in favorites menu” select the Debug icon and a handy dandy icon will appear in your Debug toolbar dropdown (the name will be the same as the Project setting from earlier).

If JBoss is already running (with the options set earlier) click Debug to attach. If not, start JBoss, then click Debug to attach.

Now you can set breakpoints, step through your code, etc.

Have fun!



Get every new post delivered to your Inbox.

Join 64 other followers