Dan Appleman: Kibitzing and Commentary

My personal blog

I’m a big advocate of just-in-time learning. I talk about it often – it’s one of the key principles in my Pluralsight course “Learning Technology in the Information Age“. And while I usually think of it in terms of software development, it clearly applies to all technology – including Information Technology. And I made good use of that principle over the past week or two.

I host a number of blogs – the main ones being this one, searchtheforce.com, advancedapex.com, and teenleadershipbook.com. I know there are plenty of blog hosting sites, but I do it old school – I run my own server (virtual, of course) and host my own WordPress multi-site installation. I’ve done this all along, partly out of habit, partly out of the desire to have complete control over the sites, and partly because I’ve always wanted to keep at least that level of IT within my skill-set. I think it’s good for developers to know something about the underlying systems their code is running on.

These blogs have been around for a long time. Most were running on a Windows 2012 server on WordPress 4. A couple of weeks ago I received a request to upgrade searchtheforce.com, which was running on Ubunto 14.04 with nginx to SSL, which I did (more on that in a minute). But it occurred to me the other blogs were living on borrowed time. Windows Server 2012 is a few years away from end of extended support. WordPress 5 was out, but the themes I was using weren’t compatible with it. The sites were not responsive for mobile users and they didn’t support SSL encryption. Clearly it was well past time for an update.

Having just completed the upgrade an migration, I made list of all of the skills I had to learn to pull it off. Here are those I remember:

  • Update Ubuntu to latest LTS (14.04 to 18.04)
  • Configure nginx for SSL (that was the searchtheforce.com site)
  • AWS RDS database creation and editing with Mysql workbench
  • AWS EC2 instance creation, and admin tasks such as AMI creation, Elastic IP assignment, etc.
  • AWS S3 configuration (including new user, policy, etc) for backups
  • Google apps oauth configuration (from email support)
  • Google analytics settings (add site, change default from http to https)
  • Use of certbot and letsencrypt
  • apache installation and configuration
  • WordPress multisite installation and configuration
  • WordPress blog migration
  • .htaccess configuration (including redirect to SSL)
  • winscp and putty (SSH access)
  • Divi theme configuration and builder
  • Some CSS (I won’t mention HTML – I didn’t have to learn anything new there)
  • General Linux stuff (updating, upgrading, commands, editor – what can I say, I mostly use Windows)

Each of these involved research, some experimentation, and some mistakes along the way.

That’s a lot of tech to learn and use – especially for someone who doesn’t regularly do this kind of thing. That I can do it at all simply reinforces the idea in my Learning Technology in the Information course – that knowledge is cheap. Knowledge is easy – I found everything I needed via search. Understanding fundamental concepts are what make it possible to use that knowledge successfully. And none of the technologies I used for this exercise were completely alien to me. For example, I had to look up how to do a .htaccess redirect from http to https, but when I saw it, I instantly understood what it was doing. I had to figure out how to configure margins and padding for the divi theme builder, but I knew what margins and padding were, and so on.

We are always struggling with the balance between depth and breadth of learning any given technology. On some things, like Apex, I go for depth. This exercise was clearly about breadth, and it was an enormous amount of fun to wrangle all of these different technologies into their current form.

Now all I need to do is find a good Divi UI designer to give them a better look – but what can I say. Visual design is still, I think, more art than science, and that kind of artist, I am not (yet).