In Re In-depth guides about programming Tue, 13 Oct 2020 17:21:00 +0000 en-US hourly 1 In Re 32 32 Why Privacy Is the Most Important Concept of Our Time Thu, 01 Oct 2020 17:31:10 +0000 In case you are coming from Hacker News and are confused about some comments, be aware that I updated the essay to deal with some criticism.

The title is not hyperbole. I do think that privacy is the most important concept of our time. Let me tell you why:

  • internet is not a virtual world anymore, it is a dimension that permeates our lives; we work, socialize and get informed through the internet
  • our society is more diverse; we have some things in common with our neighbors and some with separate communities
  • privacy is integral to separate the different parts of our lives; once the separation could be just physical and accidental (i.e., you live here and work there), now it must be built intentionally because there are no natural barriers in information spreading

In short, internet has made sharing information easier and complexity has made information more dangerous. We need to evolve our understanding of rules and norms to deal with this new situation.

I have always believed in the importance of privacy, but I felt that common definitions (e.g., the right to be left alone) were lacking. In fact, I think that the whole conceptualization of privacy as simply a right of an individual and regarding private information as partial and limiting.

Think about this: the government can send policemen to surveil you and everybody they deem interesting. However, it can do this only for few people. This limitation is due to physical constraints, not legal ones. There is a limited number of policemen and you would notice if there was a police car in front of each house of the neighborhood. This is not true for internet communications: the government can spy everyone at once and you would never notice. As many whistleblowers have revealed, this is what the NSA has actually done.

So, the changes in society affect privacy directly but may also affect all our rights indirectly. Privacy is the fundamental principle that must respond to these changes.

You might say that then, maybe, I am not really thinking about privacy, but rather something else. That might be true, so let’s not talk about privacy, instead let’s talk about Ur-Privacy, the principles of any possible concept of privacy. Take this essay as the opinion of a random guy that cares about the issue.

What is Ur-Privacy

A few principles for privacy

Privacy is not just something we need to separate our private live from our public live. It is necessary to separate our private live, the communities we belong to and the public sphere from each other.

Privacy is about boundaries. It is not about hiding something but allowing to create a space with rules decided by its members. I like to compare it to borders. Some people say that borders are a restriction, something that limit freedom of movement and we do not need in the contemporary world. As if they were arbitrary obstacles put there by petty people. It almost makes sense if you do not think about them, after all you are actually stopped at a border.

However, that is not true, that is not why they exist. Borders delimit the area that a certain state control, an area where a specific set of rules and laws applies. There was a time before borders, in fact most of human history did not have clear borders. It was not a time of freedom, but anarchy, where bands of barbarians could roam into your home and pillage everything.

In this context is also important to remember that before the Peace of Westphalia modern European states were plagued by continual wars. The short version is that this was due to the combination of two facts:

  • modernity begets differences, different kings choose different religions1 and separated societies
  • however, the legitimacy of kings was still based on shared medieval ideals, like the concept of divine rule

In short, the issue was not that leaders wanted to make war all the time, they needed to do so because the legitimacy of their power depended, at least on some level, to what the rest of the European world was doing. If you claim to be a divine king there better be agreement on what the divine is, otherwise a guy that picks a different religion can also pick a different king. And, according to some, he could be a legitimate king. To change the situation this peace treaty established the principle that the internal affairs of a state are the exclusive interest of said state.

The connection with privacy is this: without clear rules on what is private and what is public, nobody knows which stuff belongs to whom. This means chaos and often that all belong to the strongest. Somebody might say that what you do in private, it is not private at all but political. It concerns the society at large. Therefore, it must be regulated according to their rules.

Privacy does not imply hiding the truth. Meaning depends on context, therefore everything should be considered within its context.

Privacy is about control. Without privacy we cannot decide for ourselves how to live our lives. If there is no privacy, all become public. Whoever has more power and an interest can affect your life according to their own rules. Then, I have to care about what other people think, otherwise they will control how I can behave. As before the peace of Westphalia, the issue is not that other people are bad, they have to do it. When everything is subject to public scrutiny, you either control the rules and judge others or you are judged and controlled by others.

Think about this way: we say a lot of things in our private lives that are not meant to be taken literally. In private we say something and then we add: you know what I mean. And that is actually true. We can do that because the people we talk to in private know us; they understand the context in which our words must be understood. And even more importantly: they care about us; they do not want to intentionally misunderstand us.

When I was a child I would sometimes say and think that I wanted to kill my brother. I did not mean it literally and everybody knew it. If I said the same thing now, in public, to somebody that does not know me, the phrase would be different. It would be a threat.

Why is that? They are the exact same words. You know why, of course. I am different and the context is different. The real meaning of something, whether an action or a word, is not absolute, in most cases it is relative. When we speak in public, we share a different context, therefore our words have a different meaning.

So even if I say something as a hyperbole, or something that can be construed as an implicit threat (e.g., they must be stopped at all costs!), they might protest. You might say that they are overreacting, that it was just a joke, but how can they be sure of it? They do not know me. It is true that acts of violence are prepared by violent words. Even if you are unsure if something is really violent, you have to take a stand. You have to make clear that any attack against you is not permissible. Otherwise, somebody, maybe a crazy guy, might think that it is permissible and the right course of action. Somebody might feel legitimated to take your land and kingdom.

Privacy is not just needed to protect us from the government or exceptional situations. It is about understanding the rules that applies to every aspect of our life so that they can be fair for everybody.

Privacy is about everyday life. The issue is not simply that something we say can be considered a threat. When you are communicating with someone you need to be able to understand them. Communication requires a shared understanding at some level.

The easiest example to understand this are work discussions. When we talk with people that work in our field, we can communicate more easily the impact of a choice. This goes beyond the ability to use technical terminology: we know which are the main things to care about. The same discussion with our bosses would be different. Even making them understand the basic strengths and weaknesses is more challenging.

Now imagine being forced to communicate everything you do in the most general terms, to people that do not care about you, because everybody can see you. So, they can use any piece of information for their own needs. This could mean a policeman investigating you. It could also mean a company making you pay more for a pair sneakers, because they know how much disposable income you have and that you really love sneakers.

We need privacy to be aware of what is happening to us. It is too much to demand we know how other people interpret what we say. However, it is not excessive to ask that we can control what is shared about us.

Privacy Affects Everything

Defending privacy would require all-around changes

Privacy is the most important concept of our time, because it influences everything else. Without privacy we do not know what rules applies. Our lives will be judged according to the rules of somebody else in ways we cannot even imagine.

We cannot discuss all of the possible implications of privacy on other rights, so let’s see just the example of freedom of speech. Of course, sometimes you can also be judged for who you are: your religion or lack thereof, political opinion or sexual orientation.

Give me six lines written by the most honest man, and there I will find something to hang him.

Cardinal Richelieu

People lost jobs and had their lives ruined, because the mob judged something they said in private in a different way from what they expected. And they paid a price. You might say: that was fair. We might judge ourselves by our intentions, but others by their actions, which are real and objective.

XKCD – Free Speech

I, for once, disagree with XKCD and this view. There are a couple of different issues here:

  • how we should react to speech we disagree with
  • what was meant to be shared among friends was taken out of context and made public

This complicates the whole matter. At a first glance the first issue should not matter here, because we are talking about privacy. However, this is a bit more complicated. Violations of privacy can affect other rights and freedom. Freedom of speech is a right regarding the public sphere. You have always been able to say everything in private, for the simple fact that people cannot control that.

This allowed people to control what they said and did in public, while still having private opinions or lifestyles. This is not dishonesty. There are simply different parts of our lives. This separation is crucial to enjoy each of them at its fullest. If the private sphere becomes public, then either we get absolute freedom of speech (a sort of speech anarchy, if you will) or we lose freedom of speech.

Okay, then we demand to not violate privacy even in the case of bad speech. If you said something bad in private, then I cannot demand your boss to fire you. I cannot do that even by maintaining privacy: trust me on this, they said something really bad, you should fire them.

This is crucial, but we have to understand that simply enforcing privacy in the traditional way is not enough anymore. To protect privacy we need to re-interpret some rights we have. For instance, traditionally there have been exceptions to privacy for public interest. If you heard a public person saying something controversial in private you could go public about. The issue is that few people (i.e., the press) had that power. Now we all have it. So, to defend privacy we need to accept shared norms of behavior. We cannot expect consequences outside the context that caused them. And this cannot just be a law, but a social norm, too.

This is hard to do, because people have different idea of public interest. It is not true that we judge others by their actions. We judge others by our intentions. So, we must be strict about the norm that the answer to some speech should be only some other form of speech. In other words, if somebody offended you with some method, you should respond with the same method. If somebody said something bad, you cannot shove them. Actions by a mob in order to punish an alleged transgressor, punish a convicted transgressor, or intimidate them is not an answer to a bad argument, it is a lynching.

There is a difference between killing somebody and just ruining their lives. However, it is still bad. It is still lynching, something we do to one to control one hundred. Making somebody lose their livelihood because of something they said in private it is not fair, because they said it in a different context. They were not prepared to be judged by their worst enemies. And they should not have.

The philosopher Jeremy Bentham described the perfect prison as the Panopticon. A prison where in every cell there was a one-way mirror. This way the guards could watch the inmates without being seen. Therefore the inmates would have to behave as if they were always watched. That kind of sounds like the world right now. And I am ready to lose the power to punish bad people in order to protect me from people that think I am a bad guy.

What Should We Do?

A modest proposal

So what has to be done to defend privacy? There should be clear boundaries about private, social and public spaces:

  • a private space regards only you or your family
  • a social space is something involving a community, either a virtual one like a forum or a real one like a city
  • a public space is for all actors of society

By clear boundaries I mean that we should create rules, norms and even icons to define these spaces. For instance, we could demand that if you are about to post something that is going to be seen by the whole world, then a social network should show you a globe in the input box, maybe even color-code it in red.

We should make laws to defend the differences between such spaces. For example, no ad-tracking in private spaces. No sharing of private content with third-parties2. Even legal authorities should not be able to just ask for anything private of John Smith, please. The authorities should be able only to get access to something that is directly linked to the matter at hand.

Everything that was shared in a social space should not be taken out of it. Sharing of such content should be blocked and moral norms should require that we chastise people that try to publicize that. Yes, even if you find something compromising about your enemy, you should not bring it in the the public space. It belongs to somebody else. Authorities might have access to all social content, with a valid reason.

Of course these are just examples. The gist of it is that we should go in such details, because ideals of freedom, justice and privacy are made real by statutes, laws and social norms. Ideals must have bodies to affect the real world: we should find a way not just to talk about privacy, but to embody it in different forms.

What we know today as freedom of speech, freedom of assembly, etc. were defined piece by piece. We should do the same for privacy, for the world that exists right now.

For example, you might think that I was unfair to XKCD before. Companies have the right to block people on their platform so that they can sell ads to other companies without embarrassment. If people do not like that, they should make their own Facebook. The problem is that they cannot do that. You can make another newspaper, and to defend freedom of the press, the government cannot stop you.

However, you cannot make another Facebook. You cannot find 2 other billion people to put in your social network. Competition is impossible. Therefore either the government regulates Facebook to allow all content or they force Facebook identities to behave like telephone numbers: if you go somewhere else you can bring them with you and operate with Facebook ones.

I repeat, these are just practical examples to make the concept clearer. The objective of this essay is not to persuade you about this or that technical measure, but that a new, deeper understanding of privacy is needed.


Privacy and its consequences

Privacy is the principle of separation of concerns, different spaces should not interfere with each other. It is like the principle of separation of powers in government.

Privacy is necessary to understand how our information is used and having a chance to make sure it is used fairly. Without it the whole of society can enter any space and judge it in ways that are unpredictable. Without privacy we cannot understand the consequences of our choices.

Contemporary society is more diverse, freer; and exactly because of that is more complicated. We cannot expect the rest of society to understand everything else. We must ensure that there is separation between different parts, so that people can explore their own interests without interference. This does not mean renouncing to public discourse, but making sure that is not an obstacle to the rest. When people will engage with the whole society, everybody will consider that context matters, we are different but equal.

Consider this: we are the most educated civilizations in the history of mankind and yet public discourse is the stupidest it has ever been.

Imagine that you disagree with your own group, what do you think is the most probable message about you:

  • you are a traitor
  • you fully support the cause, however you disagree with this particular course of action because X

This happens because everything we said is taken out of context, therefore:

  • only the simplest ideas can travel among the public
  • the group must costantly protect itself from outsiders

If we create rules and norms that make harder to do that, we will have greater quality both in public and social discourse.

Defending privacy is going to be a long struggle: we will need to change many aspects of our societies. It will be complicated and challenging, but we are going to live in a better world.

Think about the fact that at a first glance we are both more and less free compared to people in medieval times. Let’s focus on one example: the ability to move great distances. In medieval times you could just hop on a horse and start moving3. Nowadays a car must be produced according to an infinite amount of rules and you also need a specific license to drive one. And yet, in practical terms, our ability to move is much higher compared to that of a medieval person. We can do it quicker and for longer distances. So, we are in some ways both more and less constrained in our movement.

This is not an accident, the complexity is not arbitrary: we need to ensure that cars are a viable mean of transportation. Without rules, cars would broke too frequently, drivers will be involved in too many incidents and any road might fall apart when you drive on it.

The greater complexity of rules concerning transportation has actually increased our ability to move. It seems a paradox but it is true.

I think that with the right understanding of privacy we can be more safe, have a greater autonomy in our choices and more freedom.


1. The king decided the religion for the state, not the people: the principle was Cuius regio, eius religio. The idea of personal freedom of religion came later.

2 Companies could still share content for technical reasons, such as hosting it. They would lose the cede the rights to third parties and to share it willy-nilly for commercial reasons.

3. I am ignoring legal and monetary issues that made this difficult for common people to actually do that

In-depth Articles

Get in-depth guides, articles and updates in your inbox

]]> 14
What are Windows Terminal, PowerShell, etc. Tue, 24 Mar 2020 00:00:00 +0000 There was a time when Microsoft considered open source an enemy. Now they are releasing open source software left and right and even using open source as a core part of their strategy. This slow change of strategy has left us with a few different open source software by Microsoft, that occupy the same space.

This can be confusing (at least to me), so this is the summary of what is happening in the world of terminal, shell, command line, etc. on Windows.

Background Info and Terminology

Here is a bit of background info to understand why all of this is happening.

The fundamental reason is developer, developers, developers. Microsoft needs to get developers to use their services: they want people to develop on Windows and to use Azure. So, it is trying to make life easier for them and become the best choice for developers.

.NET Core is the Only Future

Microsoft originally developed the .NET Framework to run software on Windows. It was not open source. Ximian, then Xamarin (now owned by Microsoft) developed Mono, an open source implementation of the .NET Framework that could run on Linux and MacOS. There was a clear separation.

During the course of the years, Microsoft open sourced almost everything, from the language (C#) to a new open source alternative to the .NET Framework called .NET Core. Now we are to a point that the Windows-only .NET Framework is a legacy platform, .NET Core will become .NET 5 and the only actively developed .NET platform.

The .NET Framework will be actively maintained, but it is not the platform you should develop on. Given the investment Microsoft has made on open source this is a somewhat obvious development, but it still feels weird for us older developers.


A shell is a user interface for the operating system. A text shell is a command-line interface (CLI), as opposed to a Graphical User Interface (GUI). A text shell/CLI is also known as a command-line interpreter. You execute commands using a shell.

Examples of text shells are: Bash and the Windows Command Prompt (or CMD).

Terminal Emulator

The definition of a terminal emulator is less clear, for the simple reason that the concept of terminal has lost importance. There was a time when people sit in front a keyboard and screen, but the rest of the computer was somewhere else. You typed in your terminal, but the work was executed on the mainframe. This system of keyboard, screen and their software was a terminal. A terminal emulator is a program that replace that, it takes the stuff you type and pass it to the shell.

Examples of terminal emulators are: konsole, GNOME Terminal and Windows Console.

Windows Terminal, PowerShell, Command Prompt, etc.

Now that the foundation is laid on, everything should be clear.

Microsoft developed the Command Prompt for Windows and DOS. It is a text shell. There are actually several versions that are mostly compatible, but this is beyond the point here. It is not very good, but it keeps working.

Much later Microsoft created Windows PowerShell based on the .NET Framework. PowerShell is a text shell, but also a scripting language. It was a Windows-only software. Then they developed it further in PowerShell Core, which is based on .NET Core, cross-platform and open-source. The last version of the original PowerShell is 5.1, it is still maintained, but legacy software.

Update: actually this all changed again in July 2020. Now PowerShell 7 is the heir of both PowerShell Core and Windows PowerShell. It is cross-platform, but with all the power of Windows PowerShell on Windows.

Finally, Windows Terminal is the open source terminal emulator designed for Windows. It supports all kinds of shells: the Command Prompt, PowerShell (old and Core), SSH, the Windows Subsystem for Linux (WSL) and the Azure Cloud Shell.

Here is a short table.

NameWhatShould I Start Using it?
Windows Command PromptOld shell for WindowsNo
Windows ConsoleOld terminal emulator for WindowsNo
Windows PowerShellOldish shell based on .NET FrameworkNo
PowerShell CoreNewish cross-platform shell based on .NET CoreNo
PowerShell 7Latest cross-platform shell with more power on WindowsYes
Windows TerminalNew terminal emulator for WindowsYes

In-depth Articles

Get in-depth guides, articles and updates in your inbox

]]> 0