Docker Lab – Containerising your website, Part 4 (Let’s Encrypt)

If you’ve been following along with this series of tutorials, you’ll have built a LEMP stack capable of handling multiple vhosts. That’s all very well – but if you expect your users to enter their username and password into the site then you’ll need to provide them with a little security. The only way to do that is with ssl, certificates for which used to be pricey or came with strings attached.

Let’s Encrypt is a certificate authority started by the Electronic Frontier Foundation, Mozilla Foundation, University of Michigan, Akamai Technologies and Cisco Systems to provide ssl certificates for free, and to simplify the process of securing your website into the bargain. They take donations though – and this is one project that you really should consider supporting. Continue reading “Docker Lab – Containerising your website, Part 4 (Let’s Encrypt)”

Docker Lab – Containerising your website, Part 2 (PHP)

In the previous instalment (Docker Lab – Containerising your website, Part 1), we installed Docker and Docker Compose, and set up an Nginx container. If all you need is to serve a few static pages there’s no need to read any further. But if you need your website to be dynamic, if you need PHP and, perhaps, a database, read on…

These instructions assume that you have followed the steps in part 1. Continue reading “Docker Lab – Containerising your website, Part 2 (PHP)”

Docker Lab – Containerising your website, Part 1 (Nginx)

For many years now, 45RPMSoftware has maintained its own webservers (hosted on virtual machines by Rackspace).  These webservers have been set up in the ‘traditional’ manner, with a LAMP (Linux, Apache, MySQL, PHP) stack.  They’ve worked well and so I’ve ignored them, which isn’t the right way to run a website and especially not one which hosts your business.For many years now, 45RPMSoftware has maintained its own webservers (hosted on virtual machines by Rackspace).  These webservers have been set up in the ‘traditional’ manner, with a LAMP (Linux, Apache, MySQL, PHP) stack.  They’ve worked well and so I’ve ignored them, which isn’t the right way to run a website and especially not one which hosts your business. Continue reading “Docker Lab – Containerising your website, Part 1 (Nginx)”

Object Oriented C – Encapsulation

If you haven’t read my earlier articles on Object Oriented Programming in C (Objects and Polymorphism) I suggest that you go back and read these first.  It isn’t necessary to understand these concepts in order to understand Encapsulation – but it might help give you some background into what I am attempting to achieve here.

To recap, Encapsulation is a means of preventing access to internal object data, ensuring that the data can only be accessed and modified via methods. That’s not to say the internal object data can never be manipulated directly – but one has the option to decide how best the data should be accessed. In explicitly OOP languages this is often achieved through the use of the ‘private’, ‘public’ and ‘protected’ keywords. Continue reading “Object Oriented C – Encapsulation”

Object Oriented C – Polymorphism

If you haven’t yet read ‘Object Oriented C – Objects‘ Stop! Go Back! Go and read that earlier post before continuing. In this post I build on the earlier concepts, so much of this won’t make sense without it.

In my last tutorial, I demonstrated that it is possible to write Object Oriented code in C. I wrote some classes, and instantiated objects on those classes. I even made a start on sorting out C’s hopeless string handling (before giving up because others have already solved the problem). This time I’m going to extend the tutorial to cover Polymorphism. Continue reading “Object Oriented C – Polymorphism”

Object Oriented C – Objects

Bear with me a while. I am going to stand of the shoulders of my favourite giants (Kernighan and Ritchie, since you ask) and address an oft-made point of criticism which is levelled against my code.

The criticism? Namely that my C++ code looks suspiciously like C. There’s a good reason for this – I like C, and I’m not so keen on C++. C++ is (in my view, and with apologies to its many fans) a bad way of making C object oriented – as evidenced by the need, on occasion, to drop into plain old C in order to avoid name mangling. Objective C is object oriented C done right – but that’s a topic for another day. In the mean time, I want to address my critics by making C look like C++ – and writing an OOP program in C. Continue reading “Object Oriented C – Objects”

Steam What?

In order to test a game that I’m developing at the moment I built myself a budget Steam Box (because what’s the point of building a high-end box when I want my game to be accessible for everyone?) The all-in cost came to less than £200, using a 1.6GHz quad core Athlon processor, and I’m far more impressed with it than I thought I would be.
Having built my box, I took it for a test-drive. Some things work amazingly well (power frugal games like Braid, for example, but big hitters like Brütal Legend are very playable too), but let’s back up a moment… Continue reading “Steam What?”

Which one to buy?

I’m often asked which computer I’d recommend. I don’t have a stock answer to this question – what I say depends on many things. How technologically savvy the asker is, for example, and what sort of tasks they want to do. If the asker only has basic requirements then I’ve usually recommended a low end Mac of some kind, perhaps second hand, depending on the budget. If a server is required then I’d recommend Linux for heavy lifting and OS X Server for small work groups. For serious, heavy duty, computing then there is very little (which is to say nothing) to beat a medium to high end Mac – I use a Mac Pro tower myself. For the seriously cash strapped then Raspberry Pi is hard to ignore, and it will be impossible to ignore once the Raspberry Pi Foundation manages to sort out a case for it.

Now, though, there’s a new OS that deserves very serious consideration for light computing duties. True it’s been out for a few years now, but I’d say it’s now definitely ready for Prime Time. What is it? Chrome OS.

Who Should Use It?
Anyone who only has light computing requirements. If you only need to browse the web, email, do a little word processing or spreadsheeting and play a game or two then Chrome OS is perfect.

Why Should They Use It?
It has an elegant UI and it’s very user friendly. Google has put some serious thought into Chrome OS, and it’s a doodle to use – even for someone who has never really used a computer before. It doesn’t even require any maintenance. Best of all, it doesn’t require any user accounts to be set up on the computer – a Chrome OS user either signs in their Google account, or signs in as a Guest.

What Are The Disadvantages?
Google doesn’t seem to be as confident of their OS as I am. Either that, or they’re too busy peddling Android (which just isn’t as nice as it’s competitors). This is a pity, because Chrome OS is definitely the finest OS of its kind. Given that it is also the only OS of its kind, this might seem like damning with faint praise – but it isn’t, I assure you. Chrome OS is genuinely a thing of beauty.
And this is the main problem – the only official means of getting a Chrome OS computer is a laptop like Samsung’s Chrome Book which is an over-priced, underspecced, KIRF knock off of the old black MacBook. Good luck finding one of those in Currys or Dixons. You could, of course, download the OS and then install it on your own computer – but if you aren’t very computer literate then that kind of defeats the main point of Chrome OS.
Other than that, the only real disadvantage is a paucity of available software that will run without an Internet connection. This isn’t a big deal though because the main bases are covered and as Chrome OS grows in popularity (and I hope that it will grow in popularity), good quality software is sure to follow.