AuthorMia Combeau

Student at 42Paris, digital world explorer. I code to the 42 school norm, which means for loops, switches, ternary operators and all kinds of other things are out of reach... for now!

The Internet’s Layered Network Architecture

T

We all know the Internet. It’s the network that enables data transfer on a global scale. Its magnitude is staggering: there are about 5 billion users, 200 million active websites, 300 billion emails sent daily and 40 thousand Google searches every second. We access it by different means (WiFi, optical fiber, coaxial cable…), and with various devices (computers, smartphones...

Coloring Terminal Text: tput and ANSI Escape Sequences

C

A terminal with black-on-white text or vice versa is not very interesting or attractive or informative. Thankfully, modern terminal emulators offer a variety of text styling options as well as foreground and background colors. It’s just a matter of knowing how to apply them with ANSI escape sequences or the tput command. We will explore both methods in this article. How a Terminal Formats...

How to Prepare for the 42 Piscine

H

One year ago to the day, I crossed the threshold of 42 school in Paris for the very first time. I was taking the plunge to try my luck in the Piscine trial. That month-long coding boot camp was a true intellectual and emotional whirlwind. I paddled as best I could to the finish line and ended up selected. This article describes how the 42 Piscine works and shares some advice from my personal...

Why a Blog is a Great Developer Tool

W

Every developer’s virtual toolbox should contain at least a text editor, a GitHub account and a blog. Being a developer is much more than knowing how to code. Developers must learn and adapt to new technologies, communicate with their peers in order to explain obscure points, and structure their thoughts in order to formulate solutions. They must also have an online presence and a...

Local, Global and Static Variables in C

L

A variable is a name we give to a memory storage area that our program can then manipulate. We can specify its size and its type depending on the values it will contain (char, int, long). But we can also control its lifespan and its scope when we declare it. This is why we need to be able to distinguish between local, global and static variables when we program in C. Local Variables Local...

Binary 010: The Uses of Bit Shifting and Bitwise Operations

B

Computers only know one language: binary. Our many programming languages allow us to give instructions in a human-readable format, which are then translated into long sequences of 0s and 1s. Although this level of abstraction is essential to us humans, it can be useful and even much more efficient to manipulate bits directly, thanks to bit shifting and bitwise operations. We previously had the...

Binary 001: Counting and Calculating Like a Computer

B

As we all know, a computer only knows two things: 1s and 0s. Every letter in this sentence, every color, every second of a video or of a piece of music, every web page, every program is nothing other than a long string of 1s and 0s. This is binary, and if we hope to communicate efficiently with these machines as programmers, we must understand how this base 2 numbering system works. Why do...

Malloc: Allocating Memory in C

M

In compiled programming languages ​​like C, it is often useful, or even necessary, to allocate memory dynamically on the heap, in order to accommodate variables of larger or uncertain size. The malloc function allows us to ask the operating system to allocate an area of ​​memory to be used in our program. In order to use malloc effectively, we must understand how two different parts of memory...