Hacker News new | past | comments | ask | show | jobs | submit login
And that, kids, is why we call it a “Patch” (twitter.com)
331 points by redknight666 on Jan 15, 2017 | hide | past | web | favorite | 56 comments

My favorite is "log", named after logbooks. Logbooks have maritime origins, where the ships speed is recorded. Even today, speedometer on ships are in many languages called "a log" since the original method consists of throwing an actual log overboard with a string attached to it. The string would have knots with regular intervals. To determine the speed, you count how many knots pass through your hand in a certain time.

And I suppose that's also the origin of measuring speed in "knots" (?)


Update: my original answer was short because, well, I'm a sailor. But for more, see: https://en.wikipedia.org/wiki/Knot_(unit)

Yep. For scale: if you count for one minute, a knot every 30m or so on the string will give you your speed in nautical miles per hour (=knots)

> To determine the speed, you count how many knots pass through your hand in a certain time.

But how did they count "a certain time"? (Before stopwatches).

The origins of precise clocks is because ships needed to calculate how far they had travelled in terms of longitude (eastwast/westward. How far you've travel north/south is easy to calculate by how high the sun goes).

The British crown established an award for whoever could come up with a precise clock of this reason, it's a fascinating story, I recommend the book "Longitude: The True Story of a Lone Genius Who Solved the Greatest Scientific Problem of His Time" by Dava Sobel.

Also if you're interested in inventors from the late 17th Century, I highly recommend: "The Man Who Knew Too Much: The inventive life of Robert Hooke"

Sandglasses were around for a long time.

Well, we assume it was a long time but maybe sandglasses were really inaccurate.

I'm not sure if it would matter if they were really inaccurate if the ship used the same sandglass and rope. I've read about the shipping log -> world map work [1] where it details that the speeds/distances for a given group of boats had different errors which the gentlemen developed a technique to resolve.

[1] https://priceonomics.com/a-map-of-the-world-made-from-shippi...

Mechanical pocket watches or ship's clocks. They were expensive but accurate enough.

This is why the DEL key is all ones. It was used to overpunch the wrong letter on a paper tape and replace it with a character that meant ignore (delete) it.

As done on an ASR-33 https://en.wikipedia.org/wiki/Teletype_Model_33

I'm sorry, "all ones"?

The ASCII code for DEL is 127, which is 1111111 in binary.

Ah, of course. :) Thanks for the clarification!

Yup, I talked about this (and the origins of ASCII and why Ctrl+M is new line etc) in a talk I gave at the end of last year entitled "A brief history of Unicode". The video recording has just been published on InfoQ:


Really interesting! Thanks for sharing.

Things like this are great to remind ourselves of some of the rationale for the ways things are.

When I worked at a company which used a lot of Fortran, I kept a punch card at my desk. Among other things this made it easier to explain to new people why there was a column limit for code.

Eventually an HR person came around and told me to remove the card because the top management was coming to visit soon. Among other things this made it easier to understand the role of HR in a large company.

> Eventually an HR person came around and told me to remove the card because the top management was coming to visit soon. Among other things this made it easier to understand the role of HR in a large company.

What on earth?

Yeah I am with you here. Why would you not want management to know you have an educational punch card?

Maybe just to make the desks look clean? But yeah, HR... everyone's favourite department, it seems.

HR's function at a large company is to defend the company against you.

Oooooh and also, if you're not paying for the product, you -are- the product.

Leave these glib platitudes at Reddit.

Actually, it's a testable hypothesis. This is the inverse of what you believe, I presume?

It seems trivial to find a counter example to your claim...

It seems difficult to support even the weaker claim, that there exists an HR department at a large company that defends your interests against that company.

I wonder why you seem so convinced of your position?

Around that time, the same HR department decreed that nothing in anyone's cubicle could protrude higher than the inter-cubicle divider wall, about nine inches.

One employee had to take down a little American flag (this was two years after 9/11) and another, a trophy the company had given him.

Now I know why Catbert the HR is colored devil red.

What prop did you use to explain pekludge_()?

Wow, this is an obscure reference. Nothing at all turns up on DDG, and two results on google: One Slashdot comment from seventeen years ago, and two undocumented lines in an attachment from the Eclipse IDE bugzilla:



This may be the most obscure reference to a thing that clearly exists that I've ever seen. Well done.

Can't be too obscure; I've got 15 upvotes already. :)

But here's the story: In 2003, jzwinck and I were desk neighbors at a company everyone here has heard of whose original technology was written in the 1980s on computers made by Perkin-Elmer, a big government contractor most famous for screwing up the Hubble telescope's mirror.

Instead of pids, processes had names. You could send a command to them like this: "SEND MYPROG EXIT" and then, if you wrote your program to accept an EXIT command, it would run your subroutine. This was also used for interprocess communication.

Then PE stopped making computers, and the company switched to Unix, but didn't want to rewrite all its IPC code. So it wrote a Fortran function called PEKLUDGE that took a string parameter representing the program name and stored it somewhere so that it could be used to receive IPCs later. The first thing every program did from that point on was call this function with the first arg from the command line, which was supposed to be the program name plus maybe a number if the machine needed to have multiple copies running.

Then they switched from Fortran to C for all new programs, and the way to call old Fortran functions in C was to lowercase the name and add an underscore.

And that's the story of why every program at this company starts with a call to pekludge_(argv[1])

My favorite is "monkey-patch," which came from engineers incorrectly reproducing an earlier term, "guerilla patch", as "gorilla patch": https://web.archive.org/web/20120730014107/http://wiki.zope.....

There were patches to machines, cables, memory modules, dresses, etc etc before punch cards. They are all better metaphors than that picture because they offer functionality and aren't just binarily subtractive like the picture.

First punch card control system was made in 1725, so it's not exactly a new technology.

Source: https://en.m.wikipedia.org/wiki/Punched_card

The patch panel on the enigma encryption devices seem like an apt metaphor for patching code.

<sigh> no it isn't. The word 'patch' was used to mean 'a small fix' hundreds of years before computers were even invented. e.g. patching a hole in a sweater.

Is there an old use of the word patch that doesn't directly relate to physical holes (eg., would someone call fixing a tear a "patch"?). If no, then the line of reasoning still makes sense, because without punch cards there would be no physical holes to patch.

I would wonder what term has been used historically for "a small fix to a large conceptual design after flaws have been pointed out." In the modern day, that's almost always "a patch": mathematical theorems get patches, architectural plans get patches, etc. When did this usage start, and what came before it?

Yeah. When referring to non-physical things, 'patch up' is basically interchangeable with 'mend.' Patching up a relationship is a common usage that comes to mind.

Don't be a spoilsport :-) Always cooler to retro-actively patch the origins of popular terms..

Did you know the letter 'A' was invented for the 1983 TV show, the A-Team?

That's amusing, but the linguistics sounds wrong to me. The "patch" tool was written by Larry Wall (of Perl fame) in the early 80's based on the preexisting diff format. Neither had much ancestry in common with paper tape storage, which was never really a Unix thing.

Introduction of patch: https://groups.google.com/d/msg/net.unix-wizards/SDJZ28k40Co...

Larry Wall using the term "patch" prior to that: https://groups.google.com/d/msg/net.news.b/HhK847iU7ZA/7Wox7...

(It was already a well-established term.)

You think Larry Wall chose the name with no reference to existing terminology?

I'm saying there's no evidence that this terminology has anything to do with paper tape

What about "Monkey Patch"?

That's wonderful!

bugs also used to be real bugs

That’s not true. The word “bug” has been used for problems in engineering well before computers; the funny story we all heard about a moth trapped in a relay causing a _bug_ in the Harvard Mark II is from 1947. Edison himself used the word back in 1878. The Wikipedia article about “Software bug” is pretty interesting: https://en.wikipedia.org/wiki/Software_bug#Etymology

For those interested Grace Hopper helped popularize this term

    In 1946, when Hopper was released from active duty,
    she joined the Harvard Faculty at the Computation
    Laboratory where she continued her work on the Mark II
    and Mark III. Operators traced an error in the Mark II
    to a moth trapped in a relay, coining the term bug.
    This bug was carefully removed and taped to the log
    book. Stemming from the first bug, today we call
    errors or glitches in a program a bug.
Reference (wikipedia) https://en.wikipedia.org/wiki/Software_bug

Reference (which wikipedia cites) http://ei.cs.vt.edu/~history/Hopper.Danis.html

Grace Hopper (grasshopper) popularizing bugs... Can't make this stuff up.

Here's a photo of the first computer "bug" from 1947:


Incorrect. It was the first case of a software bug being an actual bug. In other words - a true pun. The first computer bug was found in 1843 by Ada Lovelace. https://en.wikipedia.org/wiki/Software_bug#History Thomas Edison used the term bug to indicate a flaw in 1873 http://theinstitute.ieee.org/tech-history/technology-history...

Concept of insects getting into computing machines is likely as old as such machines; oldest I'm aware of might be the Antikythera mechanism, which some estimate to be as old as 200BC.

As for the "correctness" of "bug" - appears you agree this is the first historically documented reference to an insect being the source of a computing error and the "quotes" infer this means insect, though agree this might not be obvious to some.

Punch card's date back to 1725 so the term may relate to literal bugs. Though, not in what we think of as computers.

Language nit-pick: in English, we just use "s" to make words plural, no apostrophe is needed. The correct way to make "card" plural is "cards."

Like oxen, geese or sheep?

Registration is open for Startup School 2019. Classes start July 22nd.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact