Posts

The first part half of this post will discuss an overview of different testing techniques and approaches that you can use within your development cycle to improve code quality. Followed by some useful RSpec snippets and patterns when leveraging RSpec for testing your Ruby code.

Practical Docker

11 December, 2020

Docker is a new and upcoming technology, this post walks through a high level overview of Docker and how you might incorporate it in to your workflow.

This article explains how to write a very simple x86 bootloader script which can be used as the entry point to running a custom operating system. It assumes some knowledge of assembly, but hopefully all required knowledge should be available within this stand-alone article.

Developer tools

16 April, 2018

Here's a collection of useful tools that you may reap productivity from. From password managers, to http clients - it's good to know what's available at your disposal.

Docker is a great way to provide a consistent environment for running your development environment, test suite, as well as your production servers. It provides an easy method of specifying the environment requirements, dependencies, as well as your required linux distribution.

For instance; If you are making use of automated tests as part of your Continuous Integration pipeline, it can be useful to know how to run your JavaScript tests within a docker container.

Page objects can be used as a powerful method of abstracting your tests from implementation. Importantly they can be used reduce fragile tests, and promote DRYness - via the encapsulation of common functionality within simple methods. This article attempts to define the ubiquitous language of page objects, and how you might use them when testing your web applications.

JavaScript Fun

28 January, 2012

If there's one thing I like to do in life, it's have fun with JavaScript.

Can you guess what this code does?

_= +!![],__$=_+_,__=__$|_,$$=__$<<_,_$=$$+$$,____=![]+[],$_$=({})+[],$$$=[][_]+[],$__=$_$[_],
$$_=(!![]+[])[_],_$_=$_$[__<<_],$_$$=____[$$],$=[][____[__]+$__+$$_+_$_] + [],_$$=____[__$],
$_$_="h",___=[][($__$=$[__]+$__+$[__$]+____[__]+_$_+$$_+$[_]+$[__]+_$_+$__+$$_)][$__$]($$_+
$_$$+_$_+$[_]+$$_+$[__$]+$[_$]+_$_+$_$_+$$$[$$+_]+____[__])(),___[____[_]+_$$+$_$$+$$_+_$_](
$_$_+$_$$+_$$+_$$+$__+$[_$]+($$__=___+[])[$$__[_$$+$_$$+$$$[_]+([[]+[]][+[]][$__$]+[])[_$+$$
+__$]+_$_+$_$_]-__$]+$__+$$_+_$$+$$$[_$])

Welcome

04 May, 2011

Hello, I am Alan Foster and I hope you enjoy reading my first blog post.

Within this portfolio I hope to maintain a list of the things that…