Beginner’s Guide to CloudFormation and AWS CLI: Part 1

AWS keeps pushing the boundaries in Cloud Computing, and we all want to take a bite. The benefits are countless, and the cost predictable, making it suitable for individuals, startups, small companies, and even the largest of enterprises (like Amazon themselves).

When you do get started, however, you find yourself presented with 55 colourful, modern-looking icons on the console, and many acronyms, each representing a different service offering from AWS.

This series is focused on one of those 55: CloudFormation, and if you’re reading it, you’re probably keen on getting started. Why bother? Infrastructure as code, and thus version controllable infrastructure. Trivially rollback-able stacks. One command to deploy a near-arbitrarily complex infrastructure, and similarly to take it down. There’s tremendous potential.

My favourites are that I’m not encumbered by the myriad of options the console presents, and that it’s reproducible by nature, allowing me to do what I do best: trial and error.

You, though. You’ve seen a CloudFormation template or three before, and understand some of the concepts behind the technology, but have discovered that writing them isn’t as simple as it seems. This series will try and guide you through some first steps, and some practices to help you find your feet when you’re out on your own.

Continue reading “Beginner’s Guide to CloudFormation and AWS CLI: Part 1”

Push-based Remote Deployment with Git (Revised)

Git is everyday. It has become an essential in the programmer’s toolbox and supports all the good buzzwords – maintainability, agility, predictability, you name it. The hooking functionality it provides has spawned an industry of its own, with companies like Codeship, Hakiri, Travis CI and such being fundamentally structured atop it.

These hooks are straight forward to work with, so just as the creators of those companies would’ve, we can jump in and have a go ourselves. I use it so I can easily push changes to web servers, etcetera, instead of having to manually (and error prone-ly) sync files, and that’s what I’ll be demonstrating here – one push to deploy.

It’ll be a simplified version of Digital Ocean’s great Git hooks post, and an improvement to a similar post I wrote almost a year ago (which has a critical security flaw (see my comment on that post)).

So lets get started…

Continue reading “Push-based Remote Deployment with Git (Revised)”

Getting Started and Productive with LaTeX (BasicTeX) on OS X (Terminal)

LaTeX is old. That’s good because its output is second to none. However, it’s also bad as it’s less intuitive and more “clunky” than most modern technologies.

Once you get going, though, things will come along smoothly and you’ll love the results. I recently used it to create a research proposal, so I’ll share some things which made my work with LaTeX less frustrating and more efficient.

We’ll be looking at installing and getting on the road with BasicTeX; a slimmed down version of the 2+GB MacTeX. Installation of additional packages will be covered as that’s very necessary. All work will be done in the Terminal as opposed to with a GUI.

Note that this isn’t a guide on how to write LaTeX documents, so that need won’t be addressed. Rather, this will regard the experience of working with LaTeX more comfortably: with simplified; clutter-free; and change-aware/automatic compilation.

I’d recommend that after reading this you then find a writing guide to skim through (if you need to), and acquaint yourself with some of the online TeX communities and the amazing support they offer. With all this, you’ll quickly scale the learning curve and become proficient in working with LaTeX.

Continue reading “Getting Started and Productive with LaTeX (BasicTeX) on OS X (Terminal)”