avatarRadu Zaharia

Summarize

Building your home private cloud: the power of a text file

Photo by Patrick Tomasso on Unsplash

There are many aspects to cover when thinking about “the cloud”. It’s a term that was so vaguely defined and businesses applied it to so many things that it’s difficult to capture it in a single sentence. I will try to argue today that the opposite of “the cloud” is not the home network, although of course in part it is.

But the cloud does something much more destructive than simply storing things on someone else’s computer: it encodes your data in proprietary formats, databases, data structures made to link your data with other aspects of someone’s business of which you know nothing about and gives you access to it via an all powerful gatekeeper, the app. Beyond the home network, today I will argue that opposite of “the cloud” is the file, especially the text file.

What is special about a file?

Photo by Ali Bakhtiari on Unsplash

I talked about files a bit when questioning the complex architectural decisions around simple tasks that could be solved using plain text files. When thinking about the cloud, files stand out because you can interact with them directly. At least you know where your data is. Text files have something extra: they are human readable. They don’t need an app. You cannot possibly constrain the user in any way when using text files. The content is open for reading, storage and processing using text processing tools. The user fully owns the data.

But say you understand the privacy issues proposed by the cloud and you want out. You don’t want another app, you want to own your data: how can you possibly just store your personal data in files? Well first let’s talk about standards. If you have a picture in JPEG format, it obeys the JPEG standard. The standard means you can go somewhere on the web and learn how to read, write and process JPEG files. Even though you don’t have a JPEG viewer, you can build it. In a sense, the random bytes of that JPEG file are accessible to you because even though it’s not directly human readable, you have all the free documentation needed to display it.

Email, contacts, calendars, maybe more?

Photo by Mathyas Kurmann on Unsplash

But then, what is the standard for email? It’s RFC 5322 if you want to get technical. Do you know what it describes though? A text file. Yes, the email, the content of the email that is sometimes saved to a file with an .eml extension is a plain old text file. It obeys a format, it has a header, content and attachments, but you can read it all with a text editor and you can build a parser on your own to extract everything in an organized interface.

What is the standard for contacts? It’s the vcard if you need the name, files with the .vcf extension. But what does it contain? Text. It’s a text file that again obeys a certain structure, fully human readable and easy to parse by any text processor. The standard specifies many fields, the order in which they may appear, everything easy and ready to use. Even better, all Linux tools dealing with contacts know how to handle these files and folders of them with ease. Evolution, Thunderbird, all can use contacts from a folder of .vcf files.

What about calendars? What is a calendar event? It’s an .ics file obeying the iCalendar standard. How does an .ics file look like? Surely it must be tough and complicated to understand! Nope, it’s a plain text file. All your calendars are made of calendar events stored in perfectly human understandable text files following a clear and simple standard. And again, Thunderbird and others can freely use calendar folders as their data source.

To do lists? Is there a standard for that too? No, but you may not need one. A to do list is the best example of a readable file. You don’t need complex React applications with a graph storage and a nodejs back-end to have a to do list. It can be a simple text file. It can be a markup file. It can be whatever you want it to be but a file nonetheless that you can read, open and use with tools given out of the box by the operating system.

Achieving freedom for your data

Photo by Jason Hogan on Unsplash

So let’s return to the cloud for a moment. As we said earlier, the issue is not just the distributed way of storage that makes you unable to locate, touch and interact directly with your data files. In fact, cloud systems want to hide the files as best they can because once you get a hold of them, your job escaping the cloud is almost done. But the other issue is ignoring the standards and using proprietary formats such as even if you get to the files, you are unable to read them at all.

So to escape all that you need two things: the home network and the data converted into normal standards, able to be read by all standards abiding apps and tools. And Linux indeed excels at offering tools for data standards.

I hope I made you think about the importance of the file. About knowing where it is, how to read it and interacting with it either directly with a text editor or with an app that reads and obeys standards. The Linux and Unix idea of “everything is a file” goes well beyond its intended scope here. If everything is a file then everything is touchable by an administrator or a user. There is no hidden format, no hidden location in “the cloud”, there is nothing unknown. The file itself is the gatekeeper and that makes you who owns the file, its master.

If you decide to move your data from the cloud into your own home network you will immediately feel the importance of files and will get a better grasp of how information is stored in computer systems. This of course will make you a better user and a better administrator. If the cloud gives you ignorance, freedom from it will give you knowledge and passion for your devices and their operating systems. See you next time!

Linux
Cloud Services
Home Network
Home Server
Privacy
Recommended from ReadMedium