Humans are lazy. Evolutionarily it’s an adaptive trait, helping us to get the most value with the least effort. It’s also what led us to innovate and create tools, which let us do more with less work.
Laziness is a double edged sword though. Innovations that can help us out greatly in the long run often come with an upfront cost requiring lots of thinking, experimenting, and good decision making. However, as lazy humans, we’re likely to want to take the path of least resistance.
Software engineering is quite possibly the pinnacle of laziness, allowing us to do vast amounts…
A few weeks ago I spent a week writing implementations of the Bank tech test, to demonstrate high code quality, test driven development process and object oriented design principles.
Let’s compare and contrast the tools they offer.
The requirements are the same for each implementation.
A couple of weeks ago I graduated from Makers Academy. The bootcamp culminated with a two-week project. Our team created a game to learn VSCode shortcuts. You can play it here!
The next cohort are about to start their final projects, so here are some lessons I learned that hopefully might be of use to them (or indeed anyone).
We had very ambitious plans for the UI. Just take a look at our look and feel section of our Miro board:
I had even created assets for a rocket ship that would take off from some Cape Canaveral style launch…
As I’ve been making little apps, I’ve been thinking about User Experience (UX), User Interfaces (UI), and their implementation, but as I’ve done all three myself I haven’t really had to think too hard about making clear cut lines between them.
I turned to this blog article for some answers. UI/UX are briefly compared and contrasted, and then 6 UI/UX experts give different opinions as to what…
Today’s work on the MySpace revival project was interrupted by an urgent message from our “client”:
The business has recently bought a competing social media platform and has made the decision to consolidate the platforms - but keep the look and identity of each site. The decision reached is to use your current backend, but expose it as a Rails API for front-end apps to consume. The CTO feels React.js is a good choice but recommends you discuss it as a team.
Our work on our fully rails site needed to pivot to an API only service, that would be…
You’re probably familiar with Google, and other search engines, and have used these powerful tools to look for probably literally anything you want to find out, even just to check how to spell something (I checked how to spell Lamborghini just now).
But there’s a lot more that Google and other search engines can do, especially when it comes to using them to solve programming problems.
Good search engine technique is like driving a Lambo: it’s possible to get somewhere just in first gear, but it’s much faster to use all the gears.
So let’s start our engines!
To illustrate this concept, it is time for another contrived, kitchen related (see previous post involving toasters), analogy.
Imagine you have some chores to do.
You create a detailed todo list to plan out your day (in Markdown, because you are of course a…
Recently I’ve been developing small web apps in Ruby, using Sinatra as a back end, testing with RSpec and Capybara. This has gone well, however I have noticed that there are certain scenarios in which Sinatra’s helpful 404 and 500 error pages can cause false positives in your tests.
Let’s say we want a simple web app that you can enter a phrase into and it will echo it back to you. The Capybara feature test for this looks like:
So in order to pass this test, add a route to the controller for
get '/' that returns the…
Let’s learn a little bit about Object Oriented Programming! Dependency injection, polymorphism, and forwarding.
I’m using GitHub gists for these example to try it out.
Let’s say we had some Ruby code for a Journey class that let’s us pass in a destination, and start and finish the journey, returning a relevant string with the destination interpolated:
This is all very well and good, but at the moment it’s hard coded that we will walk all journeys. What if we want to go via a different mode of transport?
This could be done by passing in a mode of…
Week 1 of the Makers programming academy has been all about Test Driven Development and Object Oriented Programming. And what better to show that off with a toaster app.
TDD is a process by which requirements for a program inform tests that test those requirements. In order to pass a test only the most basic production code needs to be written, Then another test is set, and more production code, and so on and so forth, incrementing the form of the program until it satisfies all the requirements. …
Improviser with Gamez Improv, Improbotics, The Nursery Theatre and Hoopla Impro. Learning to program properly with Makers Academy.