Kid On Point

Tom Granot-Scalosub's Personal Website

Continuous Integration & Deployment For Android Using CircleCI - Top To Bottom Tutorial

March 5, 2019

A More Picture Like Explanation Of Version Control Software

February 15, 2019

I initially wrote this as a general explanation of version control software in a certain class’s Piazza Q&A forum, while I was an undergrad student under Dr. Tal Moran @ IDC Herzliya. I really liked the metaphor, so I decided to publish it here as well. :)

Let’s take a walk down metaphor lane for a second, shall we?

Say I’m not Tom the programmer, but I’m in fact Tomatia - the world-famous Italian restaurant.

We specialise in creating delicious, beautifully-crafted and ridiculously expensive pieces of software, that are universally liked and used in organisations big and small. We also give a lot of those pieces of software for free, so the world can enjoy them and create even better pieces of software on top of them.

In addition, let’s say that my personal computer is the building the restaurant it’s in, and all the little programs in my computer are workers, hired by me (and paid by tiny, tiny bits of processing power) to do certain jobs.

Out front you have the restaurant manager, a very serious-looking woman by the name of High Sierra, an esteemed member of the famous family of Macintosh. She is very beautiful, very fast on her feet and hates the guys over at the Office next door. She thinks they’re kind of boring, and generally dislikes looking at them through the restaurant’s Windows. Eh, ugly.

Back in the kitchen you’ll find the cooks and the Chef. The Chef is a very IntelliJent - but kind of clumsy - guy called IDEA. A lot of the chefs in the other restaurants in the area are friends of his - the guy who cooks for the Office that’s located in front of the restaurant’s Windows, the old and very tired chef who everybody knows is going to die soon, and even the sous-chef everybody likes and uses despite the fact that he has no intentions of ever becoming a full-fledged chef.

A very important part of the kitchen staff is Hal. Hal has hair of silver and slides through the kitchen like a fluid and not like a computer program. Because of these qualities, he’s often referred to by the nickname Mercurial, like the chemical element Mercury - that is a silver-y coloured fluid of sorts.

Hal has a very important job - he is in charge of a small table in the front of the kitchen. That table is the place where the cooks and the Chef bring out the plates before they’re going out to the customers in the dining area. Hal needs to make sure he knows everything that’s going on at this table at any given time.

In order to remember all the things that happened in his table during a certain shift, he keeps a small notebook with a record of everything. Quickly, though, he realised that writing “Someone brought a new plate to the table” or “A plate went out to a customer” every time one of these things happen can take up all of his notebook in no time!

Hal is smart.

Instead of writing all of these long sentences, he decided he will write them in code. Hal’s also a little weird, so in order to add some flavour to his notebook he decided he will prefix each line with the letters hg (yeah, you got it, like the chemical symbol for Mercury. Slick.

To remember his code, Hal made a small list on the back cover of his notebook:

All in all, Hal is very satisfied with the system he’s created. In fact, he’s so satisfied with it, that he’s bragging about it to all of the other Hals in all the other restaurants in the area.

This doesn’t always go well for Hal.

More specifically, there is one person - in the same position as Hal - working for a French restaurant on a nearby town. His full name is Guy Immanuel Trebouche, but most of his friends just call him Git. He’s a lot more popular with the ladies than Hal is - most of the times they go out for post-shift drinks in a bar, Git gets lots of phone numbers while Hal gets just the one. Maybe.

Git also considers himself to be a much more complex and sophisticated person than Hal. This, unfortunately, means that none of the ladies he ends up calling understand what he has to say. He tells people it’s because of his french accent, but deep inside Git knows that it’s because he’s truly a difficult person to understand.

Sometimes Git looks up at his pink-coloured ceiling and all the branches out his window, and wonders what it’s like to be a simpleton like Hal. Maybe there’s a blessing in disguise there? Maybe if he’ll be more like Hal someone will actually understand him for once?

All the while, Hal sits at home, alone, and wonders the opposite thing: He wonders how his life would have turned out if he was more like Git and less like himself. Maybe he wouldn’t sit at home every night waiting for the phone to ring…..

But the story of the differences between Git and Hal is, I’m afraid, a story for another day.