<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><generator uri="https://jekyllrb.com/" version="4.1.1">Jekyll</generator><link href="https://www.abbluiz.com/feed.xml" rel="self" type="application/atom+xml"/><link href="https://www.abbluiz.com/" rel="alternate" type="text/html" hreflang="en"/><updated>2023-11-02T18:48:01+00:00</updated><id>https://www.abbluiz.com/feed.xml</id><title type="html">LABB</title><subtitle>A developer's blog &amp; portfolio / Blog &amp; portfólio de um desenvolvedor</subtitle><author><name>LABB</name></author><entry><title type="html">Shredding your storage device (not an April Fools’ joke)</title><link href="https://www.abbluiz.com/posts/security/shredding-your-storage-device-not-april-fools/" rel="alternate" type="text/html" title="Shredding your storage device (not an April Fools’ joke)"/><published>2020-04-02T00:00:00+00:00</published><updated>2020-04-02T00:00:00+00:00</updated><id>https://www.abbluiz.com/posts/security/shredding-your-storage-device-not-april-fools</id><content type="html" xml:base="https://www.abbluiz.com/posts/security/shredding-your-storage-device-not-april-fools/">&lt;p&gt;All data that is stored in your digital storage device is stored as bytes. It is difficult for humans to work with bytes directly. Hell, it’s difficult even for computer programs running on operating systems to work with bytes directly all the time. That’s why there are also file systems, so programs and humans can manage files, not bytes. When you delete a file, you’re not really deleting them, you’re just telling the file system to ignore it so you can reuse that space on the hard drive later. But what if you want to make sure a file, or an entire device, is really erased?&lt;/p&gt; &lt;p&gt;To do that you will also need to replace every stored byte with zero, or perhaps random data, including the file system itself. It’s not enough to delete all the files in a pendrive or external hard drive to make sure it’s empty. Someone with the proper knowledge could recreate the file system and recover the files you supposedly deleted. The reason this happens is because erasing data for real is very slow, and in a lot of cases, unnecessary. But in some cases, like if you want to sell a storage device and you want to make sure nobody will have access to your personal files, it is a very good idea to properly delete the device (alternatively, you can encrypt all the data).&lt;/p&gt; &lt;p&gt;Using most Linux distributions, and a terminal emulator, we will see how we can properly erase an entire storage device with 2 different tools: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;shred&lt;/code&gt; (modern) and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;dd&lt;/code&gt; (older, but still reliable). You should choose one of these tools, don’t need to use both.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&quot;#preparation&quot;&gt;Preparing a device to be erased&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;#shred&quot;&gt;Erasing a device using the &lt;em&gt;shred&lt;/em&gt; tool&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;#dd&quot;&gt;Erasing a device using the &lt;em&gt;dd&lt;/em&gt; tool&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;h1 id=&quot;preparing-a-device-to-be-erased&quot;&gt;Preparing a device to be erased&lt;a name=&quot;preparation&quot;&gt;&lt;/a&gt;&lt;/h1&gt; &lt;ol&gt; &lt;li&gt; &lt;p&gt;Needless to say, backup all important data beforehand. You will most likely lose ALL your data after properly erasing your device.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;After the obvious backup, you should start a computer that runs on Linux, or another Unix-like operating system. If you don’t use Linux, make sure your operating system has the tools we will be using, and also be aware that some instructions might not be valid for all operating systems.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;Plug in the device you want to erase to the computer.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;Now you will need to determine which &lt;strong&gt;device node&lt;/strong&gt; is mapped to yours on Linux. Try and find your device node by reading the output of the following command: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sudo fdisk -l&lt;/code&gt;. It can be something like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/dev/sda&lt;/code&gt;.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;Optional: If you can’t find the device node that easy, compare the outputs of the previous command without the device plugged in and with the device plugged in. The device node can also be something like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/dev/sdc&lt;/code&gt; or even &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/dev/xvdi&lt;/code&gt;.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;Make sure your device is NOT mounted. Use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sudo umount /dev/xxx&lt;/code&gt; to unmount it if you need, replacing the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;xxx&lt;/code&gt; on &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/dev/xxx&lt;/code&gt; with your device name.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;Once again, make sure you have your data backed up AND you have properly determined which device node your device was mapped to on Linux. If you get this wrong, you can delete the wrong data. If you’re not sure, send a question replying this post on the Fediverse (link in the end) and do some research.&lt;/p&gt; &lt;/li&gt; &lt;/ol&gt; &lt;h1 id=&quot;erasing-a-device-using-the-shred-tool&quot;&gt;Erasing a device using the &lt;em&gt;shred&lt;/em&gt; tool&lt;a name=&quot;shred&quot;&gt;&lt;/a&gt;&lt;/h1&gt; &lt;p&gt;For detailed instructions and information about this tool, you can enter &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;man shred&lt;/code&gt; to know more.&lt;/p&gt; &lt;p&gt;To start shredding, you can use the following command (don’t forget to replace &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/dev/xxx&lt;/code&gt; with the device node of the disk you want to erase):&lt;/p&gt; &lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-terminal&quot; data-lang=&quot;terminal&quot;&gt;&lt;span class=&quot;go&quot;&gt;sudo shred -vfz /dev/xxx&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt; &lt;p&gt;Now sit back and relax, because this will take a lot of time to complete. You can watch the progress as the command does its job.&lt;/p&gt; &lt;p&gt;After it completes, your device will be free from all the data you have used before. You may need to recreate the file system and format the device again, so you or other person can use it.&lt;/p&gt; &lt;h1 id=&quot;erasing-a-device-using-the-dd-tool&quot;&gt;Erasing a device using the &lt;em&gt;dd&lt;/em&gt; tool&lt;a name=&quot;dd&quot;&gt;&lt;/a&gt;&lt;/h1&gt; &lt;p&gt;For detailed instructions, you can enter &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;man dd&lt;/code&gt; to know more.&lt;/p&gt; &lt;p&gt;To start shredding, you can use the following command (don’t forget to replace &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/dev/xxx&lt;/code&gt; with the device node of the disk you want to erase):&lt;/p&gt; &lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-terminal&quot; data-lang=&quot;terminal&quot;&gt;&lt;span class=&quot;go&quot;&gt;sudo dd if=/dev/urandom of=/dev/xxx bs=10M status=progress&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt; &lt;p&gt;Time to relax, because this will also take awhile. You can watch the progress as the command does its job.&lt;/p&gt; &lt;p&gt;After it completes, your device will be ready to be used again (but again without any file system).&lt;/p&gt; &lt;p&gt;I hope you learned something useful today!&lt;/p&gt;</content><author><name>LABB</name></author><category term="security"/><category term="dd-cmd"/><category term="shred-cmd"/><summary type="html">All data that is stored in your digital storage device is stored as bytes. It is difficult for humans to work with bytes directly. Hell, it’s difficult even for computer programs running on operating systems to work with bytes directly all the time. That’s why there are also file systems, so programs and humans can manage files, not bytes. When you delete a file, you’re not really deleting them, you’re just telling the file system to ignore it so you can reuse that space on the hard drive later. But what if you want to make sure a file, or an entire device, is really erased?</summary></entry><entry><title type="html">“Hello, World!” in 5 different languages</title><link href="https://www.abbluiz.com/posts/programming/hello-world-in-5-different-languages/" rel="alternate" type="text/html" title="“Hello, World!” in 5 different languages"/><published>2020-03-15T23:20:00+00:00</published><updated>2020-03-15T23:20:00+00:00</updated><id>https://www.abbluiz.com/posts/programming/hello-world-in-5-different-languages</id><content type="html" xml:base="https://www.abbluiz.com/posts/programming/hello-world-in-5-different-languages/">&lt;p&gt;Humans and computers use language to communicate with the world. Spoken languages such as Portuguese and English are used as a means of communication between humans. Computers also communicate with each other using various types of languages. These languages can take the form of protocols, binary signals, among other things. But when humans want to communicate with machines? That’s when a programming language comes to place.&lt;/p&gt; &lt;p&gt;Programming languages are the best way humans can communicate with computers, because it’s a middle ground between spoken languages and computer instructions. However, there’s a catch: generally speaking, computers do not understand programming languages by themselves. They need an interpreter or compiler that transforms the language into something easier for them to process, such as zeroes and ones: their native tongue, if you will.&lt;/p&gt; &lt;p&gt;Traditionally, when programmers start learning a new language, their first “words” are generally used to accomplish something very simple: to tell the computer to display “Hello, World!” to the screen. Let us see how we can do that in 5 different programming languages, and as a bonus, display “Hello, World!” in 5 different spoken languages as well.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&quot;#c&quot;&gt;“Hello, World!” in C&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;#bash&quot;&gt;“Hello, World!” in Bash&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;#java&quot;&gt;“Hello, World!” in Java&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;#python&quot;&gt;“Hello, World!” in Python&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;#cpp&quot;&gt;“Hello, World!” in C++&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;I want to start with the first programming language I’ve learned and the first spoken language I’ve learned: C and Portuguese, respectively. If you’re running a GNU/Linux distribution or another UNIX-like operating system, you may be able to see how to run the code.&lt;/p&gt; &lt;h1 id=&quot;hello-world-in-c&quot;&gt;“Hello, World!” in C&lt;a name=&quot;c&quot;&gt;&lt;/a&gt;&lt;/h1&gt; &lt;p&gt;C is a simple, yet extremely powerful language, because it is what some developers call “low-level” language. That means it is closer of what a computer can understand by itself.&lt;/p&gt; &lt;p&gt;So here’s the code necessary to display “Hello, World!” in Portuguese, using the C language:&lt;/p&gt; &lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-c&quot; data-lang=&quot;c&quot;&gt;&lt;span class=&quot;cp&quot;&gt;#include &amp;lt;stdio.h&amp;gt; &lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;main&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;printf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Olá, Mundo!&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt; &lt;p&gt;Here’s the output after compiling and running the code:&lt;/p&gt; &lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;gp&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;gcc code.c &lt;span class=&quot;gp&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;./a.out &lt;span class=&quot;go&quot;&gt;Olá, Mundo!&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt; &lt;h1 id=&quot;hello-world-in-bash&quot;&gt;“Hello, World!” in Bash&lt;a name=&quot;bash&quot;&gt;&lt;/a&gt;&lt;/h1&gt; &lt;p&gt;Bash is an interpreted language. It means it does not need to be compiled. An interpreter translates the instructions one by one so the computer can understand it. In this case, we can create a script file that the interpreter will read line by line and interpret it.&lt;/p&gt; &lt;p&gt;So here’s the script to display “Hello, World!” in English, using Bash:&lt;/p&gt; &lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;c&quot;&gt;#!/bin/bash&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;Hello, World!&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt; &lt;p&gt;And here’s the output after running the script:&lt;/p&gt; &lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;gp&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;./script.sh &lt;span class=&quot;go&quot;&gt;Hello, World!&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt; &lt;h1 id=&quot;hello-world-in-java&quot;&gt;“Hello, World!” in Java&lt;a name=&quot;java&quot;&gt;&lt;/a&gt;&lt;/h1&gt; &lt;p&gt;Java is a different kind of language. It is actually compiled to bytecode, which computers do not understand. Once compiled, this bytecode needs to be interpreted by a JVM (Java Virtual Machine), a special kind of program that will tell the computer what it should do based on the bytecode. Because the way it works, bytecode can be runned everywhere! Or at least everywhere as long as there’s a JVM running on that computer.&lt;/p&gt; &lt;p&gt;It also uses the Object-Oriented paradigm of dealing with code, so it is quite different to use as well. Here’s how we can display “Hello, World!” in French, using Java:&lt;/p&gt; &lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-java&quot; data-lang=&quot;java&quot;&gt;&lt;span class=&quot;kd&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;HelloWorld&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;main&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nc&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;[]&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;args&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;System&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;out&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Bonjour monde!&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt; &lt;p&gt;Here’s the output after compiling it to bytecode and running the bytecode:&lt;/p&gt; &lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;gp&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;javac HelloWorld.java &lt;span class=&quot;gp&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;java HelloWorld &lt;span class=&quot;go&quot;&gt;Bonjour monde!&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt; &lt;h1 id=&quot;hello-world-in-python3&quot;&gt;“Hello, World!” in Python3&lt;a name=&quot;python&quot;&gt;&lt;/a&gt;&lt;/h1&gt; &lt;p&gt;Python is another interpreted language. It’s very popular with automation scripts, but also in machine learning and data science.&lt;/p&gt; &lt;p&gt;A tip about Python that might help you if you are starting: always double-check your indentation and try to use an IDE that helps you with that. Consistent indentation is absolutely necessary with Python, otherwise the code will not run.&lt;/p&gt; &lt;p&gt;Here’s how we can display “Hello, World!” in Spanish, using Python:&lt;/p&gt; &lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-python&quot; data-lang=&quot;python&quot;&gt;&lt;span class=&quot;c1&quot;&gt;#!/usr/bin/env python3 &lt;/span&gt; &lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;¡Hola Mundo!&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt; &lt;p&gt;And here’s the output after running the script:&lt;/p&gt; &lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;gp&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;python3 script.py &lt;span class=&quot;go&quot;&gt;¡Hola Mundo!&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt; &lt;h1 id=&quot;hello-world-in-c-1&quot;&gt;“Hello, World!” in C++&lt;a name=&quot;cpp&quot;&gt;&lt;/a&gt;&lt;/h1&gt; &lt;p&gt;Finally, let’s use C++. It is backwards compatible with C, so the C code we have used before will work here. But instead of doing that, we can use C++ specific code.&lt;/p&gt; &lt;p&gt;Here’s how to display “Hello, World!” in Italian, using C++:&lt;/p&gt; &lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-cpp&quot; data-lang=&quot;cpp&quot;&gt;&lt;span class=&quot;cp&quot;&gt;#include &amp;lt;iostream&amp;gt; &lt;/span&gt; &lt;span class=&quot;k&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;namespace&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;std&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;main&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;cout&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;Ciao mondo!&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;endl&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt; &lt;p&gt;Here’s the output after compiling and running the code:&lt;/p&gt; &lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;gp&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;g++ code.cpp &lt;span class=&quot;gp&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;./a.out &lt;span class=&quot;go&quot;&gt;Ciao mondo!&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt; &lt;p&gt;That’s it! I hope you liked my first post! Goodbye, World!&lt;/p&gt;</content><author><name>LABB</name></author><category term="programming"/><category term="c-lang"/><category term="bash-shell"/><category term="java-lang"/><category term="python-lang"/><category term="cpp-lang"/><summary type="html">Humans and computers use language to communicate with the world. Spoken languages such as Portuguese and English are used as a means of communication between humans. Computers also communicate with each other using various types of languages. These languages can take the form of protocols, binary signals, among other things. But when humans want to communicate with machines? That’s when a programming language comes to place.</summary></entry></feed>