SOLID Design principles

SOLID Design Principles – Part 1

You may have heard of SOLID. The SOLID design principles are well known design principles in object-oriented software design. The principles were first promoted by Robert C. Martin (also known as Uncle Bob). Later Michael Feathers introduced the SOLID acronym.

Continue reading
Stack of pancakes

Full stack and a word of the week

Obfuscation: The action of making something obscure, unclear or unintelligible.

I had such fun with my last two words of the week that I decided to keep the theme today. (For the developers, now you know where the term “code obfuscation” comes from.)

Recently someone asked me about the concept of a “full-stack developer”. This is one of those buzz words that recruiters and managers love. So what, if anything, does the term “full-stack developer” mean?

Continue reading
Two people texting on their cell phones

5 tips to secure your mobile

Everybody has a mobile phone. The chances are good that you are reading this on your phone. We do almost everything from our phones, and that means our phones have access to a lot of personal data.

Your smartphone is essentially a mini-computer. So most of the threats we face on our PCs apply to our phones too. Websites that contain malware can infect a mobile device and compromise both your data and device.

Continue reading
Stylised man with lego blocks

Java Modularity – Part 5 – Reflection

One of the key design drivers of the Java module system was strong encapsulation. By default, a type in a module is not accessible to other modules unless it’s a public type and its containing package is exported. We can choose exactly which packages we want to expose; the rest are hidden.

Continue reading
Vector cartoon of user glaring at monitor

Password hygiene and my word of the week

Crogglement: The state of being paralysed with shock or surprise.

That’s my word of the week. It is one way to describe my state of mind last week when I was doing some password hygiene. Other words would be more familiar to you, but less polite.

My experience overlaps two topics that are critical to all of us: security and privacy. I’ll recap on two essential principles, and then share my experience.

Continue reading
Set of tools laid out in a row

Tools, Skills and Excuses

If Lewis wasn’t such an outstanding Java lecturer, I’d want to hire him as a handyman. He enjoys DIY tasks, and does them with the same precision as he does everything else. (If you’ve attended one of his courses, you’ll know what I mean. I draw a vague shape on the whiteboard and ask my class to pretend it’s a square. Lewis draws a square.)

Apart from his natural enthusiasm for making things work, Lewis has two other qualities that make him an amazing handyman. The first is his attention to detail — because yes, the devil IS in the details. The second is his experience with his tools.

Now I am also a stickler for detail, but my handy(wo)man skills are woeful. And part of that is because I so seldom use a hammer or a screwdriver or a drill. So when I do, the holes I drill are skew and I hit my fingers with the hammer.

There is an important lesson in this.

Continue reading