Friday, November 22, 2013

If You Were a Subscriber, You Ain't No More, No More, No More, No More ...

Like the song said.

The perils and pitfalls of blogging will soon be a topic, based upon the recent experiences of TheHackerCIO.

Stay tuned for details

For now, however, if you WERE a subscriber, and had entered your email address into the widget to get an email notification, that won't be coming anymore.

The fix is simple: RE-ENTER your email into the NEW widget now displayed with friendly lettering on the right hand side of the blog.

I'll explain the need for the change later, when I review my experience so far on the Google Blogger site: the good, the bad, and the ugly.

For Now I Remain,


LinkedIn Scam On the Radar

A little fun yesterday, as TheHackerCIO willingly took the bait from a scam-spam LinkedIn request purportedly from Ben S. Bernanke.

It was fun also to exercise the imagination and give a government official your "honest opinion" about his work.

But the real motivating reason for accepting this was simple.

It was to put me on the hook once again.

TheHackerCIO likes to know how things work. And this is a perfect opportunity to see how the reporting procedures actually work for reporting spam and scam. So that was started today, by opening a ticket with LinkedIn.

I'll fill you in on the details as I learn them.

I Remain,


Thursday, November 21, 2013

TheHackerCIO accepts Ben Bernanke (The Fed Chairman's) Linked-In Request

TheHackerCIO is a apparently a wildly interesting guy for the Fed Chairman. (Yes, TheHackerCIO can get scammed too, but plays along when it's fun. I'm using crowd-sourcing to find out what the scam is -- so credits go to the first one to figure it out)

Anyway, so a LinkedIn request came in to me a moment ago from Ben. I accepted him, naturally, and sent him a message to see how I can be of service. 

Here is my message text:

Hi Ben:

I really don't know how my services as at CTO/Java Architect/Developer can be of assistance or interest to you. I don't do much in the realm of economic policy.

In fact, I'm an Austrian, so I don't approve of even having a "Fed," not to mention the evil of pumping money into the economy and consequently creating economic dislocations that will have to be paid for years from now.

However, I am open to hear how I can be of interest to you as the 22nd connection you wish to make.

I highly suggest, if you wish to get acquainted with my thinking about technology, or management, that you read my lively and informative blog: at

And if you need any assistance in transitioning from your job into Java development, I can put you in touch with a number of colleagues.


James Rothering


JQuery Meetup & Unit Testing

Last night was a JQuery Meetup, hosted at Q. I decided to attend; I'm trying to push myself into the whole world of Javascript/JQuery. Which means, for a hard-core Java server guy, that I'm pushing myself out of my comfort zone.

That's always a good thing. TheHackerCIO believes in continuous pushing out of the comfort zone; pushing the edge-of-the-envelope.

The Transcript

I really like these Meetups, regardless of the underlying technology, because of the method of presentation. Natalie MacLees, who runs them enters her sample code and runs it all live. So any errors have to be resolved on the fly. This is amazing productive of insight. I love it. Last nights showed implementation of a slider.

The second interesting technique she uses is this: after the code works, she begins showing variants. For instance, you could have written this line in a shorter idiom, in this way. See the results! It's way cool. Last night she had at least three successively more condensed iterations.

The second presentation was on QUnit, a TDD testing framework for JS. I picked up one point about TDD worth reflecting on, since I don't do that many bug fixes these days, which was that prior to fixing a bug, you should write the test showing the code Red. Only then should you fix the bug and change state to Green. Thus you now have a regression test guarding against inadvertent reintroduction of the bug.

End Transcript

My own problems centered around getting jQuery installed on my follow-along PC. My sublime editor had to be reinstalled, then I had to get jQuery downloaded. So I fell behind in entering the code along with Natalie. But she promised to post a link to the code, which I will add here, when I see it.

I Remain,


Wednesday, November 20, 2013

geeky Cucumber

Our GeekyBookClub is the best! Last night was a perfect illustration. TheHackerCIO came in totally unprepared. Unread Chapters. No time to read them. Too much client Hacking this week. Plus the Bus. Dev for the coming year!

Some would be intimidated by going to a book club, especially where the reputation of the club members is so high. I've heard that this is a "Guru's group."

TheHackerCIO is intrepid. Guru's don't intimidate.  Plus, we completely lack Prima-Donnas in the group anyway!

So, we had a wonderful time. Earl, as always, had performed the reading with his usual highlighting of every relevant passage and lots of sticky tabs along the edge to locate them the faster. Thank Deity for the "Earls" of the world.

The way we structure our club, members "bid" the page number of their next comment or question. The lowest bid wins. It makes everything flow along smoothly. We also allow backtracking to pages covered in prior meetings.  Which means that next week, when I get caught up on the reading, I'll be able to revisit everything that I just got a nice conversational and high-level introduction to at last nights Meetup.

In Chapter 5 we noted with interest the principle that:

 DAMP (Descriptive and Meaningful Statements)  
trumps DRY (Don't Repeat Yourself), 
when writing examples, because readability is paramount.

Someone remarked about the "bug magnet" -- that they had heard of a chick-magnet, but not a bug magnet. There was a general consensus that chick-magnets were preferable.

One member is moving away from a proprietary CMS to Magnolia, which came top of list, for:

  •  working easily, 
  • runs locally, 
  • doesn’t have to be deployed on a dev environment.
Which puts it onto the radar for consideration, at least by me.

Our local Groovy bigot held forth about the wonders of that JVM language, in support of closures. He expressed his wonder and indignation at Java's implementation of lambda expressions versus the superior work in Groovy. TheHackerCIO needs to get more into Groovy to follow this, but for those geeks interested and not in-the-know, here is the difference between a Lambda and a Closure:

A Closure has access to the static variables.

That is to say:

1. a Closure:
Z = {a, b : (a+x * y +z)}

2. A Lambda is the same as above, but without access to the static x, y which are now out of scope.

Then they discussed "Gstring", which is apparently another Groovy idiom, and not a racy nightclub exhibit. It's some kind of a templating expression language that will fit into a string to replace items.

I asked for the best book/resource to learn Groovy, and was recommended this:

The Definitive Guide to Grails 2, by Greame Roche, which apparently covers Groovy in an appendix which should be read first. Going by what the reviewers say, anyway. 

Then we started discussing Clojure (yes, Clojure the functional language, not to be confused with closures, the functional programming idiom that, when called returns another function)

We talked a bit about how Clojure is so hard to follow/read, at least for us, mere mortals. I remarked about how nice it would be to work with the smart people who DO work in it, for instance the people at Factual. And we got this capper:

"Clojure is ok when the system is small enough to be retained entirely in the head. When it outgrows that, or a mere moral must deal with it, it collapses." A whole lot of wisdom is contained in that epigram.

And for that Wisdom I am Grateful to the GeekBookClub Members &

I Remain,


Tuesday, November 19, 2013

Sickness & Taking Out The Garbage Scientifically

As the pills took hold of my internal (bodily) Garbage Collector and tuned it to more efficiently remove unneeded and unwanted objects, TheHackerCIO's thought naturally turned to his beloved JVM and it's own GC algorithms. For those more managerial, Garbage collection is part of the major advantage of Java over the old C and C++ environments. It allows the programmer to depend upon the environment to manage memory, rather than having to explicitly perform this in code.

There are two major advantages to using GCs. Memory management takes up a huge amount of development time, estimated by some at 40 to 60%! And secondly, if you mess up, it's easy to get a memory leak. Those are what cause your old windows box to hang on you, back in the day. The memory of your machine kept getting used up and never was released, so eventually there was no more memory left. So you were "hosed." That's a technical term. :-)

GC is an important issue in todays world, and I had been unsatisfied by the Java Performance book our Geeky Book Club read recently, most specifically by it's treatment of the GC algorithms. It seemed to be poorly organized from the standpoint of fundamental types of GC. Instead it plunged right in to the present state of GC available.

I was confirmed in this opinion by hearing a wonderful talk by Azul, who make a for-purchase JVM built around the idea of a "pauseless GC." In other words, in most GCs, when you collect the garbage, all work must stop. This is called "Stop the World," because all threads doing application work are stopped while the GC "pauses," collects the garbage, reclaims memory for new use, and then restarts the application. If the heap is big, a pause could be long. Maybe seconds. Maybe even 4-5 seconds? Now your talking availability problems!

Consequently, the GC needs to be understood. And tuned.

The talk by AzulSystems was far better organized. It cut through euphemism, defined and organized the presentation around fundamental GC types, then explored the currently available GCs and how they fit into those categories in terms of their performance characteristics. And the CTO mentioned that the bible for them was this book by Jones (image below), called The Garbage Collection Handbook:

So naturally, I ordered a copy.

The book is wonderful. I'm only on chapter two, but even if difficult/demanding, since it's well organized and doesn't leave dangling questions, it's a far better resource to read first, before attempting the Java Performance book, already reviewed here.

Plus, this is the absolute latest update on GC algorithms and technology! Further details will follow.

I Remain Thinking of Garbage,



Monday, November 18, 2013

Abolish HR Departments Now!

Little is better than seeing your own opinion voiced independently! TheHackerCIO was thrilled to see one of his own deeply held & radical views put forth by Bernard Mayer, in his article Why We No Longer Need HR Departments.

Euphemism is automatically suspect. At least in my book. Why this ubiquitous change to HR? My father worked where they had a "Payroll and Personnel" department, which is far more honest and straightforward. At least it named a proper and true function for the department. And it was far more concrete and lacked the BS-factor.

Do people really believe that the individuals at their companies are resources? Are they really "Human capital," to be managed along with the "Financial Capital?" And,  perhaps, as interchangeable quantities?

Of course, as one commentator notes, (Kristen),  a lot of the "work" of "HR" departments is really "Submission to the Forced Regulations Imposed by Government." In which case, the department should be honestly named to reflect this. I know that Wall Street firms -- some of the most highly regulated firms in existence -- have departments of "Compliance." I prefer "Department of Submission," but compliance is probably acceptable: it's at least honest, even if too neutral.

But Bernard says it all much more forcefully that I. Well, OK, nearly as forcefully, and certainly with more detailed argumentation. Read him for yourself.

I Remain,