Day: June 11, 2020
Some computer terms have an unusual origin. Many words refer to long-forgotten technologies. In this article, we will blow away the dust of the times from some terms that we use every day.
Most of the article is taken from Wikipedia, but finding explanations is not so easy if you don’t know what to look for.
Contemporary meaning: meaningless talk about trivial issues.
The term ” bike-shed effect ” or ” bike-shedding ” originated as a metaphor for the law of triviality. Danish developer Poul-Henning Kamp, a member of the Berkeley Software Distribution community, popularized the phrase in 1999 on the FreeBSD mailing list. The term then spread throughout the software development industry.
Initially, the term was introduced as a consequence of the more general “Parkinson’s law.” The author dramatizes the “law of triviality” on the example of discussions in the atomic reactor committee, contrasting them with discussions of a bicycle canopy ( bike-shed): “The time spent discussing any agenda item is inversely proportional to the size of the budget.” An ordinary person is not able to realize how expensive and complex an atomic reactor is. Therefore, it is assumed that those who work on it understand the full extent. On the other hand, anyone can imagine a cheap and easy bike shed. And the planning of its construction can lead to endless discussions, because each participant will want to demonstrate their contribution to the common cause.
The modern meaning: a piece of code that is copied over and over, either without changes or almost without them.
Initially, the term Boiler plate described steel bent into cylinders for the manufacture of water heaters. Then it began to be used in the media for a banal or non-original text. Also called metal printing forms with pre-prepared text, for example, with advertisements or syndicated columns that were transmitted to small local newspapers. By analogy, the printed forms themselves were also called boilerplates.. One of the major suppliers of such forms was Western Newspaper Union. She offered newspapers with little geographical coverage “print-ready stories containing national or international news.” These “stories” could contain advertisements placed next to plain text.
Installation for bending steel billets for water heaters.
A man holds a curved plate. Various companies offered such forms to small newspapers.
Current meaning: defective part of code or equipment.
The origin is not known! Contrary to popular belief, the term appeared even before Grace Hopper discovered the insect in the Mark II computer. Engineers have used this word at least since the 1870s. That is, a “bug” arose long before computers and software. For example, Thomas Edison used it in his notes.
Modern meaning: move the cursor to the beginning of the next line.
Both terms are taken from typewriters.
The carriage holds a sheet of paper and moves from left to right, changing the print position as you press the buttons. Carriage Return — The operation of moving a carriage to its original position from the left edge of a sheet of paper.
However, simply returning the carriage to the left is not enough to start a new line. After all, the carriage will remain on the same line, just go to its beginning. Therefore, you also need to translate the line: a sheet of paper inside the typewriter scrolls up one line.
Both operations (carriage return and line feed) were usually performed simultaneously when the carriage return lever was pressed.
Mechanical typewriter. On the left is the carriage return lever.
\nis responsible for the line feed (ASCII characters: LF) or the creation of a new line.
\ris the carriage return, and
\nis the line feed (CR + LF).
And this video shows the basic mechanics of carriage return and line feed:
Modern meaning: a meta key on Apple computers, allowing you to create additional keyboard shortcuts.
Quote from Wikipedia:
The ⌘ symbol appeared in the late stages of the Macintosh project. The development team first applied the old Apple key, but Steve Jobs did not like the fact that the apples filled the Mac menu next to the Command key. In his opinion, this was an excessive use of the logo. Jobs decided to use a different character. Graphic designer Susan Kare took up the development just a few days before the deadline. Looking through the collection of characters, she came across a sign similar to clover. It is often used in northern countries to indicate cultural sites and attractions (it is an official road sign for attracting tourists in Denmark, Finland, Iceland, Norway and Sweden. Swedish users Makov often call this key Fornminne (an ancient monument), and Danish users call it Seværdighedstegn) . When Susan showed the symbol to the other team members, everyone approved of him. So it was accepted in 1984 to denote the Command key. Susan claims that she was later informed that this symbol was used in Scandinavia due to the resemblance to the plan of the square castle with corner towers.
Norwegian road sign Severdighet.
Borgholm castle, which could become the basis for the symbol.
Current significance: taking a snapshot of the state of a (crashed) program by storing all the memory it uses for subsequent analysis.
Memory with an array of 32 x 32 ferrite cores, storing 1024 bits (128 bytes) of data. The first samples of memory on magnetic cores were printed on paper, which is quite reasonable, given the small volume of bytes.
Modern meaning: a visual icon (for example, a flickering vertical line) on the display indicating the position (say, for data entry). Source .
Cursor is Latin for runner. This word was called a transparent carriage on a slide rule – slider, slider. The thinner line was drawn on the slider to select the desired position on the ruler. Later, the term “cursor” migrated to computers.
An advertisement for the IBM 604 Electronic Calculating Punch, released in December 1951. The device itself began to be produced in 1948. It was alleged that the calculator could replace 150 engineers with slide rules. You can see the transparent cursor – the slider – on the ruler in the middle of the picture.
Modern meaning: user interface that allows you to quickly assess the status of the system.
Initially, the word dashboard called a wooden panel in front of the cart, which protected the coachman from dirt flying from under the horses’ hooves.
With the start of the automotive industry, the dashboard began to be called the panel in front of the driver. It was logical to place all the necessary indicators here, so that it would be convenient for the driver to look at them. Gradually, the term became more associated with dashboards than with protection.
Dashboard dashboard on a wagon.
Modern meaning: a network security system that creates a barrier between a trusted internal network and an untrusted external network, such as the Internet.
Fire walls – firewalls – were mainly used in town houses, but they were also found in individual houses. They were intended to prevent the spread of fire and smoke in the event of a fire. In computer technology, the term “firewall” has been used since the 1980s.
Fire wall dividing the building into two separate residential units.
Modern significance: the type of computer programs that provide low-level equipment management and are closely associated with it.
Ascher Opler used the term firmware in 1967 in an article for Datamation Magazine. Initially, the firmware was separated from hardware (the processor itself) and software (the usual instructions executed by the processor). Firmware existed on the border between hardware and software, hence the name firmware . The original article is available here .
Current meaning: universal stubs for variable names.
The term is likely derived from the military abbreviation FUBAR . It is deciphered in different ways, but most often as FUBAR: “f *** ed up beyond all recognition” (“complete confusion”).
In programming, the word foo was first used around 1960 in the Massachusetts Technological Railway Modeling Club. Complex systems were created there, in different places of which emergency switches were used. With their help, it was possible to correct situations if something undesirable happened – for example, when a train at full speed approached an obstacle on the road.
As far as I understood, the authors had real emergency shutdown buttons, which, for lack of a better name, were signed by foo . Perhaps, by analogy with the military FUBAR to indicate situations when everything is very, very bad.
Emergency switch (button) to be pressed to prevent reckless operation. Perhaps the buttons at the club of model railway workers were signed as foo.
Modern meaning: self-employed person who is not bound by long-term labor obligations.
Cover of comic book about Ivanhoe.
In the story, the lord offers King Richard his army of mercenaries, “free lances” (free lances):
I offered Richard the service of my Free Lances, and he refused them – I will lead them to Hull, seize on shipping, and embark for Flanders; thanks to the bustling times, a man of action will always find employment.Book Translation:
I offered Richard the services of my free squad, but he refused. I will take my people to Hull, put on ships and leave with them to Flanders. In troubled times, a military man can find business everywhere.
Thus, the “free lancer” is a mercenary howling for the one who pays the most. Free means not working for free, but having the freedom to choose an employer (in English, free can mean “free” or “free”).
Modern meaning: the file in which the events of a computer program or system are recorded.
The sailors used the lag to measure the speed of the ship. The tool was a flat wooden block ( log in English can mean “log”), tied to a long rope. Knots were imposed at equal intervals on the rope. Lag behind the ship for a certain period of time by some distance, and the sailors counted the number of imposed nodes. This was the speed of the ship, measured in knots.
Speed calculation was important for navigation, so it was recorded in a logbook, which in English was called log book. Other information was also brought in there – weather conditions, coastal landmarks, etc. All this made it possible to more accurately determine the location of the ship. Later, they began to add to logbooks – to log, log – and other information related to the ship. For example, port charges or depletion of stocks too fast.
Sailors using a lag measure the speed of the ship. Source .
The device lag. Source .
Page from the logbook of the British ship Winchelsea. In the second column, the speed in knots calculated using the lag. Source .
Modern meaning: a piece of code that can be used to fix or improve a computer program.
At the dawn of computer science, if you made a mistake in the program, you had to fix the punched tape or punched card by sticking patches on the holes made.
Punched tape with patches that cover some holes.
Current significance: a way of checking the availability and duration of a response from a computer over a network.
Ping is a terminal program created by Mike Muuss in 1983. It was included in all versions of UNIX, Windows, and macOS. The author called it so because “ it is the sound of a sonar in which the principle of echolocation is embodied.  ping uses the timed IP / ICMP packets ECHO_REQUEST and ECHO_REPLY to calculate the “distance” to the target machine . ” I recommend reading the entire text .
Modern meaning: an interface (often textual) for interacting with a computer system.
The author of the term, Louis Pouzin, did not explain the origin of the word in his essay The Origins of the Shell . However, it can be traced back to the predecessor of Unix, the Multics system. Here is what her dictionary says :
The command line is passed [to the shell] for execution by the
Historical note: Obviously, the shell in Multics (footnote 1) was named so because it was a shell (footnote 3);
Footnote 3 says:
A wireframe program created manually or generated by another program (for example, a parser generator). It provides the necessary spells for setting some goals and manage the flow (used as a synonym (term driver
driver )). It is assumed that the user will enter some code so that the system performs the necessary actions. This approach is accepted in the world of AI and Microsoft Windows, and this confuses Unix hackers.
Unfortunately, the book does not provide evidence of this statement.
I like the (probably historically incorrect) walnut analogy: the shell is the outer shell that protects the kernel.
Modern meaning: an effective way to allocate memory, reusing previously allocated fragments.
The cache for an object of a certain type or size consists of several pre-allocated sections of memory (slabs). Each slab consists of fragments of a fixed size, suitable for some objects. (
We watched TV together, and the Kellogg ad started, which read “Can you pinch an inch?” (Can you pull off even an inch?).The bottom line is that when you are overweight, you can pull more than an inch of fat on your waist, and a plate of cornflakes will help you get rid of it.Tommy, who weighed about 113 kg, without blinking, reached for his stomach and answered the advertising slogan: “Damn, I can grab the slab!”
A decade later, Bonwick remembered this when he was looking for a word to describe the allocation of large areas of memory.
And here is the same advertisement:
Modern meaning: unsolicited e-mails, such as letters, messages on forums and chat rooms.
The term refers us to the 1969 television show of the British comedy group Monty Python. According to the plot, in one cafe, Spam (a brand of canned ham) was added to almost every dish. So the authors spoiled the widespread distribution of this and other imported meat products in post-war Britain. Then in the country there were still food cards, and so they restored their agriculture. Source .
Modern meaning: a graphical interface element that allows you to choose from a predefined set of mutually exclusive options.
The “radio buttons” had mechanical analog progenitors that were used in radios. Later they were used in tape and cassette recorders, in audio players (remember Walkman). And even later – in VCRs and camcorders.
Old car radio and radio buttons in CSS. Only one option can be selected at any given time.
Modern meaning: the difference between uppercase and lowercase letters on the keyboard.
In those days when the text for printing was typed by hand, single lead imprint letters were used. Words and sentences were collected from them. Uppercase and lowercase letters were stored in different boxes to speed up the painstaking typing process.
Box for typographic set. Source .
Current meaning: HTTP code meaning “File not found.”
There is a story that the origin of this number is connected with the server room, where the central WWW database was located. Admins had to manually find the requested files and send them over the network. If the file was missing, the admins wrote a message: “Room 404: file not found.”
Most likely, this is a myth, and the number for the code was chosen based on FTP codes.
The etymology of the names of programming languages and many abbreviations deserves a separate article. But I decided to briefly talk about some of them.
The language was created by Björn Stroustrup based on the C language. Its name is a programming pun intended by Rick Mascitti, a colleague of Straustrup. “++” means the post-increment operator found in many C-like languages. It increases the value of the variable by 1. This is a hint that C ++ is the spiritual “heir” of C.
C-like language, like C ++. His name alludes to “incremental” C ++ improvements: the # sign looks like four pluses. That is, C # == (C ++) ++. In addition, the name is inspired by musical notation, in which # means that the note needs to be played a half tonal higher.
Note C #.
The acronym PNG stands for Portable Network Graphics . The format arose in response to the fact that in 1994 at CompuServe, support for the GIF format was lined with licensing fees. A working group led by hacker Thomas Boutell created .webp, a patent-free replacement for GIF. Therefore, I prefer the unofficial format name: PNG’s Not GIF . Here is a great article about PNG history. Source .
You need to know the past to understand the present.- Carl Sagan (1980)
I hope you enjoyed this selection.
I have been watching the IT market for quite some time, but I never wrote anything. This is the first part of my first paste, and therefore I ask you not to hate much.
In my articles, I want to share my experience in finding, training and integrating interns or June into a product team (not to be confused with freelance teams or something).
First of all, you need to understand that everything written below is purely my personal, subjective opinion. It is based on many years of observations and experience, in particular, the experience and observations of the last five years. Of course, I do not pretend to be exclusive and do not claim that it is the ultimate truth.
In the first part, we will consider the difference between two faces of the same entity. And this, in turn, will help you decide who you want to see in your team.
Consider two basic options:
In fact, the differences between the ordinary programmer of our time (you also see these shamelessly lying advertisements “become a Java developer in 3 months!”?) And the account manager Sveta are not so many. Of course, I’m not talking about all-all account managers or all programmers. I take the main “mass”, which, apparently, will be hitting this post (the first version was much tougher). Go.
For most, programming has now become just a job. Yes, by all means, by simple work, which, however, is not surprising; and announcements about “Java in 3 months” courses are direct proof of this.
A programmer may or may not write.
He will do your features, ask a minimum of questions, or on the contrary, a maximum (I will talk about such in the next part).
The programmer rarely thinks about trends, innovations. He writes as the tops recommend (often) or as the top virgin bloggers recommend. For example, I don’t understand why Facebook has such a disgusting, illogical and confusing organization of the front, and why it is fashionable. Well, at least drop my karma, but I don’t understand.
Unfortunately, these are the bitter realities of our time.
On the one hand, this is awesome! Progress does not stand still, humanity is developing. And on the other hand (girls from HR agencies will understand me), the market is oversaturated with incompetent or low-skilled personnel!
Yes, it is in principle oversaturated, the price tags began to level off. There are no crazy vacancies where companies are looking for June for $ 100k. At least I haven’t seen such people for a long time. Leads are increasingly worth up to ₽250k, well, etc.
This is true, but do you need such a programmer? Now if you take the average frontend developer, he will certainly be interviewed, as WebDev-type channels publish questions from social networks of different companies and, of course, answers to them, and on YouTube they’re fumbling with guides for all sorts of things like closures, promises, callbacks and other “necessary” pieces.
At the output, we get a front-end, who in a month learned everything that is usually taught in courses up to six months, and what really is?
Actually, it’s an oil painting: a developer does not understand the basic principles of web development (DOM, CSS Flow Layout, HTML 5 API, es6 +, immutability, etc), he does it “as shown in that video player”. Or does it on the principle of “I wrote to you here on the dock … the same rules?”
Of course, such personnel also have a certain value.
Who can they be useful in the first place?
As a rule, most of their lives are devoted to self-development and learning.
Engineers will sort your legacy into atoms, find bottlenecks, suggest solutions, if an engineer with extensive experience, then he is able to pick up a team if he has an HR agency or even alone.
He does not need TK, since he knows that this is a waste of time, and it is easier to carry out decomposition and staging of tasseks directly by getting acquainted with the requirements for entering the project.
First, the analysis of requirements, then design, at the end of development. Yes, that’s exactly in that order. By and large, the ratio of time spent is distributed in a similar way: 40/40/20, well, of course ±.
The use of complex practices is also a key feature, because if you ask an ordinary developer what he knows about * DD, with a greater likelihood of giving a clear answer, he will not be able, with the engineers otherwise. The code is often written through TDD , planning flow work on a product from a client through a set of practices from BDD , designing a product through DDD .
The quality of the code is often an order of magnitude higher than that of programmers. Until it became fashionable to use linters and typo-checkers, everyone didn’t care how to write and what to write for, now everything has become a little different, but the trends have not changed much: the cleanliness, readability, scalability, modularity of the code for hired developers still leaves much to be desired.
In the next part, we will consider several options for attracting people to your team, depending on your choice (programmer or engineer). Consider the entire search process. Process automation options. What to do if there are very few responses or vice versa a lot. And most importantly, what should be an effective test case for your future keyboard mates.
I have been working on freelance for 6 years with a short office break of 2.5 months. And for all this time I have not met a single person who would say to me: “Freelance? Brr … horror.”
On the contrary, people admire freelancers, and some even openly admit that they envy and somewhere deep in their wet fantasies also dream of working from home, for themselves. And few people come up with the idea that in most cases, freelance is not the pink rose from Instagram, where a person lies under a palm tree in Bali and receives 500k monthly for 2-3 working hours a day.
Do I love freelance? Yes, with all my heart. Will I ever go to the office? Hardly. But I am against his romanticization: it also has its drawbacks, as in any other work.
And here are 5 reasons why freelancing is not so perfect as it seems.
“Working for an uncle sucks. It’s all about being in free swimming! ” – familiar words of tired office workers (yes what really there, I myself used to say that once). But for some reason, no one takes into account that the uncle gives work in “free swimming”, the uncle pays, the uncle sends corrections and comments, and sometimes the uncle also sets the conditions for cooperation.
Yes, you can refuse to work and look for another project, but in this case, change the maximum uncle to aunt and all will also work for “someone”. The only difference with the office is that no one will tell you how to dress, what time to be at your desk, and what time to get out of it. But globally, this notorious uncle you will always have that in the office, that through the laptop.
You can be an arbitrarily talented performer, but, as a rule, this is not enough: you also need to be able to organize your work, be able to competently communicate, search for orders, pricing, and promote your services.
Here is a simple example for you: one of my acquaintances is a smart specialist in one of the technical fields, but completely uncommunicative and non-initiative. If you give him a job in his hands, he will do it perfectly. But finding a few projects for yourself, presenting yourself to a new customer, discussing the price – for him it’s an impossible task, he’s uncomfortable doing these things.
Therefore, he openly declares that he cannot imagine himself as a freelancer (and he does the right thing, in my opinion), but in the office he feels like a fish in water.
I won’t talk much about the dead seasons, instability and other things, this is probably understandable without me. Moreover, with competent financial planning and the organization of their work, these dead seasons can be minimized – a matter of experience.
I just want to draw your attention to the fact that most freelance gurus, especially when they call on their courses to switch to work for themselves, focus on the ceilingless salary. And for some reason, they often forget that this phenomenon has a downside: you can earn indecently a lot on freelance, but nothing can be earned.
It’s not that this format of work is only for the most fearless, no, but at least at first it’s foolish to wait for reinforced concrete stability in terms of money.
In my opinion, this is one of the most widespread myths: “Freelance is svaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa but but to the essence. What is meant by freedom? Ability to work not from the office in tiguli, but in a cozy cafe near the house? Do not wear suit, and stay in pajamas all day long? Have an opportunity to walk in the park after lunch for an hour or two? Well, it counts.
But do not flatter yourself; in all other respects, freelance is not so “free.” Over 6 years of experience, I met only a couple of colleagues who could afford:
In general, there are two castes of people who can easily afford all this – very experienced freelancers with serious price tags and, often, a team of assistants and … loafers.
Before the first, you need to grow for a long time, with the second everything is so clear. In the total mass, the average freelancer is very attached to his stool, sometimes more than 8 hours a day.
The stupid word “proactivity” is, no matter how strange it sounds, the reality of a freelancer. You have to invest in money and time: study kilometers of information, take courses, attend conferences, buy new software, in other words, constantly keep abreast.
It is unlikely that you will succeed, as is often the case in the office, “take it as simple”: settle down in a warm place and sit quietly working, wait for an increase in salary and position. You need to move all the time, keep up with the market, update your skills, otherwise competitors will easily take your place.
To work faster, more productively and more money, I had to buy a new laptop, start a blog (and then the second one, by the way, it is about freelance ), learn how to distribute the load for a week ahead and keep accountability to myself, subscribe to several YouTube and Telegrams channels, start communicating and sharing knowledge with colleagues.
And in the office what? In the office, perhaps it would be enough for me to simply come every day at 9:00 and once a year to attend some boring seminar.
Conclusion: you do not need to romanticize freelance, it is good, but imperfect. Be realistic.