Sunday 9 February 2014

Running around

Whilst reading a Java Code Geeks article I came across the Mechanical Sympathy Google group.

And this comment made me laugh a lot:

Endless spinning in user mode is not an absolute no-no. But you should think of it like you would about endless running in circles blindfolded in a large a minefield while holding both a pair of very sharp scissors and one hand grenade with the pin pulled out in each hand. If you stop to rest and scratch your nose, things can go bad. When attempting this, you want to have the force with you, and should control your breathing and keep your thoughts calm and pure.

The original thread is here.

Saturday 1 February 2014

Am I a Reactionary, A Wise Old Sage, Overcautious or simply just experienced?

I don't like Git. Too Complicated. I just never need to branch and merge that much. I tend to work on very small pieces of work, integrate as soon as they are done/tested then release them. I encourage my team to do the same. 

I prefer SVN. When I first assessed DVCS tooling Mercurial looked a lot simpler to use than Git.

I don't like Scala or Clojure. I just need Java++ with Lambdas (coming 8 - yay), properties and immutable classes.

Full on Scala looks worse than Perl for readability. Over my 30 year career I have read more code than I have written.

Clojure strikes me as something you could not build a big enterprise class system in. Abilities in enterprises vary wildly across regions and across time. A project setup by a bunch of uber-programmers in the US may be maintained by a much less experienced team in another location a few years down the line. Don't even start me on self-documenting code.

Clojure is where all the cool kids are in Jan 2014. It may change by March 2014 of course.

I prefer Java.

I don't like Linux for development but I love the command line tools that unix gives you. My experience is that these days Linux is no more resilient than Windows. Installations of Developer tools can be a PITA compared to Windows and you have the sheer awkwardness of the *nix community.

I prefer Windows (with Cygwin). I love the stuff that Scott Hanselman publishes on his annual(ish) list. They are real developer tools.

I don't like JavaScript. I love it that people have done insane things using it: PC Emulators, Quake emulators. But that scares me as well.

I prefer ...

I have no idea on that one.

...

My last word on self-documenting code (I could not resist)

It's rarely self documenting.

It requires a higher degree of skill than the average practitioner has.

In almost all SDC I have looked at, the developer writing it wasn't as good as he thought he was.

The only way to prove self-documenting code is to have it code reviewed AND APPROVED by someone who knows nothing about your system 5 YEARS AFTER YOU WROTE IT.



BDC - Big Dumb Cache

As part of my job we use Coherence. Its not a cheap tool at all but it does offer a fast and resilient way to store lots of data.

But my team only use it as a BDC. A Big Dumb Cache. We do that because we don't have deep level Coherence experts on the team. We don't trust all the fancy features. We don't like the programming model for them. We don't like the insistence on running on identical h/w, patches, switches etc etc

We're simple guys who like simple solutions because we have been bitten way too many times in our collective experience by complicated solutions.

But BDC....

Thats a term that I use all the time and I assumed I had read it somewhere... but I can't find a link. Crikey... did I invent it!?

We do use some of the fancier features of Coherence but nothing that we couldn't move away from and nothing that most of the NoSQL engines don't do already. The only thing stopping us is support and enterprise inertia.

I'm being a bit unfair. Enterprise inertia is the process by which enterprises assess things: support, training, installation, performance assessment, security, resiliency etc All of which are much bigger than... Hey, I found this great library on the internet that does everything we need.

But one day.. someone will come along and provide all that in an easy to use, support and maintain tool for people that just want a BDC and they won't need Coherence anymore.

Hazelcast?

Windows 8 really does rock

This post was from 2013 but I forgot to post it. Still valid though.

I decided to spend some time setting up a machine with Oracle Express. For years I has used Sybase and MS-SQL Server but my new project at work uses Oracle and I felt a bit lost.

I downloaded a 4GB VM from Oracle's website that used Oracle Linux (a Redhat variant and RH is what we use at work) and had Express and all sorts of things installed. I loaded it up in VirtualBox and got to work.

It was awful: old browsers, poor driver support and extremely slow.

Ok. Let's try it in Linux. I didn't want to use Ubuntu because it was slow in Parallels. I thought I'd try Linux Mint. I had it installed already and it wasn't slow! By now it was late and as soon as it started warning me about problems with using Open JDK in Intellij I gave up.

I downloaded a 64bit Ubuntu and it really was super slow in a VM. I added more video memory and it was a bit better.

Installing Java was another faff. Oracle downloads come as RPM and Ubuntu doesn't like RPM. Converting RPM to DEB seemed to work but needed lots of manual setup.

OK. lets quickly try Windows 8.

Easy. Peasy.

Updating Windows 7 ran smoothly.

Installing all applications using provided installers was easy.

It was fast.

Why on earth did I even bother with the mess that is Linux.