Home » Software Development (page 289)

Software Development

Git vs. SVN – Commandline Syntax Reference

Learning the git workflow takes a bit of brain retraining, but since I’ve been using SVN almost entirely via commandline (because Subversive sucks and locks up my Eclipse when I try to use it for anything beyond synching/updating/committing a handful of files), adopting git’s commandline syntax is reasonably similar. Consider these simple operations: Initial checkout from existing repo for a ...

Read More »

Diversity in Open Source Projects

I’ve been talking a lot about diversity lately. There are, of course, different kinds of diversity; but when I talk about diversity, I tend to mean diversity in the organizations contributing to an open source project: multiple organizations from different parts of the industry working together. Doug tweeted recently on the topic: Why do you need diverse projects? So when ...

Read More »

Defensive Programming: Being Just-Enough Paranoid

Hey, let’s be careful out there. Sergeant Esterhaus, daily briefing to the force of Hill Street Blues When developers run into an unexpected bug and can’t fix it, they’ll “add some defensive code” to make the code safer and to make it easier to find the problem. Sometimes just doing this will make the problem go away. They’ll tighten up ...

Read More »

Git in colour

I’ve been using Git for a while now, but only today realized I can have coloured output for diff, grep, branch, show-branch and status, without having to hook in any other external tools (like colordiff, for example). Here’s my ~/.gitconfig file, which enables colour: [user] name = Nick Boldt email = nickboldt (at) gmail.com [giggle] main-window-maximized = false main-window-geometry = ...

Read More »

Disassembling Tell Don’t Ask

In my last blog I defined Tell Don’t Ask (TDA) using a simple shopping cart example. In it the shopping cart was responsible for working out the total cost of the items in the cart as opposed to the client asking for a list of items and then calculating the total cost itself. The TDA example is shown below: public ...

Read More »

Working with legacy code

Context Large organisations’ systems may have from tens of thousands to a few million lines of code and a good part of those lines is legacy code. By legacy code I mean code without tests. Many of these systems started being written many years ago, before the existence of cool things and frameworks we take for granted today. Due to ...

Read More »

Here Is The Main Reason Why You Suck At Interviews

I’ve talked about interviews from one perspective or another on several occasions, you might even say it is a pet subject of mine. It’s fascinating because most people are no good at interviews and when it comes to developer interviews – well; let’s just say there is a whole new dimension for us to suck at with coding questions, whiteboards ...

Read More »

Setup Git server with read/write HTTPS on Debian

Three months ago we decided to move our projects to Git. I guess you already know the advantages of Git over Subversion, as there are too many discussions for this subject. I will describe here a fast and minimal configuration of how to turn a Debian GNU/Linux box to a Git server that supports read and write actions via HTTP(S). ...

Read More »

Mentorship in Software Craftsmanship

First, a little bit of background and metaphor In the medieval times, apprentices would work in workshops an would be mentored by senior craftsmen (journeymen) or by the master craftsman himself. The apprentice had the responsibility to learn, observing the master’s and everyone else’s work, questioning everything and practising as much as he could. This was different from the teacher/student ...

Read More »