Rainbow backlite keyboard

Automate Ubuntu System Updates


Security is such an important thing these days and one of the best ways that you can protect yourself is by ensuring that your system is always up to date.  A large part of updates that you apply to your system is security patches.  This post is a “quick tip” for those that might be new to Linux, particularly those on Debian based distros like Ubuntu where we will demonstrate an easy way to setup automatic system updates so you never have to wonder if you’re system is up to date again.

Code on a screen

Observer – A Tool for State Management


 This is the second in our Software Design Pattern series of posts and today we are going to take a look at the Observer pattern.  The formal intent of the Observer Pattern as defined in the GOF Design Pattern book is, “Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.”  This pattern is actually used quite often, for example when you create a listener on an element in JavaScript for when that element is clicked.  Anytime you have a situation where one object needs to know when another object’s state changes, you can use the Observer pattern.

orange fractual

Singleton – Pattern or Anti-Pattern?


Patterns are interesting to me.  You can observe patterns almost wherever you look.  Where you see a repeated pattern it seems obvious that some sort of thinking has gone into what you’re observing.  Patterns imply design and design implies a designer.  As a Christian this has great meaning for me because the design that is observed in creation such as the Fibonacci sequence points to a designer that had purpose in the way this world was made.  This is much like software design.  A good software solution always results from a very intentional and skilled software engineer thinking about the way the software should be written and then building the solution accordingly.  Software solutions do not just happen, a designer must make choices and follow best practices to build something that solves the problem that is being addressed.