All Posts

Explore all articles from Life Beyond Fife - Page 11

git

Backup as often as you like

Have you ever experimented with a few different approaches to solving a tricky problem only later to try to salvage an earlier working state with a mixture of <Ctrl>+Z bashing and consulting the last known state in the VCS server? Or do you get round that by making occasional copies of files or subdirectories, possibly with "\v1" suffixes? Well with git, there's a better way. You wouldn't commit code to the origin repo that was broken, incomplete or didn't pass all unit, integration and acceptance tests. And the same applies to the origin repo with DVCS as well. However, remember...

2 min readRead more →
git

Work on multiple changes concurrently

Some server-client Version Control Systems (VCSs), for instance Perforce, have concepts like shelving where you can isolate changes you make for a bug fix from concurrent changes for a new product feature. In a perfect world we'd only ever work on one task at a time but we know how unrealistic an expectation that is from life. Context switching when programming is a huge productivity killer and any extra tasks that takes up time when moving from one thing to another e.g. juggling changes for different features in one file into separate commits, should be avoided. For users of server-client...

1 min readRead more →
Power of the server in your client
git

Power of the server in your client

The previous generation of Version Control Systems (VCS), like Subversion, have a traditional client-server model. All the functionality relating to version control resides on the server. The client i.e. your local development machine, has access to just a single snapshot of the codebase; nothing can be done with respect to versioning without access to the VCS server. [](/images/originals/traditional-VCS.png) Git, however, is a Distributed Version Control System (DVCS) - there is no server-client relationship because every machine that has git installed is itself a server. What was previously your dumb client becomes a fully fledged server. Any ability your company repo...

2 min readRead more →
git

For those not yet using git

Whether you're yet to use the world's favourite new version control system in earnest or not, be under no illusions - it is the future, git has won. But then you already knew that. This series of blog posts are for those who haven't learned git possibly for one of the following reasons: - You find the quick introductions don't adequately explain the complex concepts of git - You find the "grok the man pages" approach to learning convoluted and impenetrable - You find brick walls when arguing why your team should adopt git If any of those sound familiar,...

3 min readRead more →
Yo dawg, I heard you like functions
follies

Yo dawg, I heard you like functions

It's hopefully old news to you all but the free lunch is over (NB this article is 10 years old). TL;DR – as we come up against the physical limits of how small transistors can be future computation gains will come from more processors, not faster processors. We can already see this looking at the number of cores we have available in development standard laptops. Writing code that can distribute its workload across multiple cores will only become more important as time goes on. As we move more and more services to AWS ensuring we get the most value for...

9 min readRead more →
A git workflow for beginners
follies

A git workflow for beginners

The web is awash with introductions and guides to using git. There's this visual guide here, that interactive tutorial there, reams of documentation, and of course all kinds of troubleshooting help. But if you're coming from a traditional Version Control System (SVN, Perforce, Clearcase etc.) the main barrier to using git is not answering the question, "How to I checkout and commit code changes?", but rather, "How do I use all these complex features to develop software?" This guide is a complementary resource to the others, providing a working template of how you should use git in order to deliver...

11 min readRead more →