`What happens when you type a URL in your browser and press Enter?` This is a common interview question used to assess a candidate’s web stack knowledge. Many software engineering candidates struggle with this concept, myself included. The following are a few concepts that every developer should be familiar with.
The Domain Name Server (DNS) is a collection of hundreds of root servers scattered around the world, each server containing info that points every domain request to an IP address. Because looking up the domain and IP address takes significant time, your browser will often save the lookup in the…
IoT is an umbrella term for “smart” devices that are connected to each other through the internet. This article will cover a brief history of IoT, the advantages of IoT, but will mainly cover the inherent risks of IoT.
Brief History of Smart Devices
The first smart device may have begun as early as 1982 when a coke machine was added to an early form of a network called the ARPANET. It merely reported if coke was stocked and the temperature of the cooler. The Internet of Things was likely “born” between 2008 and 2009, at the point when more…
Python is an object-oriented language, where every assignment can be much bigger than it seems.
For example, a simple string assignment to a variable:
x = “hello”
This string assignment is actually an object that can hold many pieces of contextual data such as the length of the string.
All objects have an ID.
But how does Python find these objects?
The id() function might help.
The id() function returns the unique ID from every object. Common objects, like integers from -5 to 256 have constant IDs that don’t change. …
Libraries are used in C to ensure that our code is reusable and organized. One type of library in C is the Dynamic Library. The Dynamic library consists of separate pieces of object code. Because of this modularity, it’s possible to alter the source code without needing to recompile the entire program. This flexibility, however, comes at the cost of final runtime speed. For comparison, static libraries are more efficient than dynamic libraries in the final product. Dynamic libraries would be best utilized for application development while static libraries would be preferred in the final product.
To create a dynamic…
The short answer is that create-react-app has the “noEmit” setting set to “true” by default.
The tsc command used by itself will look for the tsconfig.json file in the current and parent directories.
thiscomputer codefolder % tsc
The shallow version:
To compile all your C files in the directory to object files:
gcc -c *.c
To create a library:
ar -rc yourlibraryname.a *.o
Then index your library:
The in-depth version:
We use libraries to organize information, which often simplifies access to that information. The same can be said for C libraries, in which a library could house many small functions and scripts, rather than having a huge collection of files in a directory.
Once the library is built, the program main.o can be compiled to an executable with the following command:
cc main.o -L. -lyourlibraryname…
Terminal input command:
First, the file goes through the preprocessor where the code from header files (like #include <stdio.h> or #include “custom_library_file”) are placed into the output file. Your file just got a bit larger.
Second, the file goes through the compiler where all the code in the file is translated to assembly code:
There is a meme I can’t find about a Mom deleting a game on her child’s computer, but the child isn’t too bothered because she only deleted the shortcut to the game and not the actual itself. A symbolic link on Linux is like a Window’s shortcut: you can delete it, but the file that it points to remains untouched. They’re like weeds.
A hard link in Linux is a file that points to the inode of a file so that it gets all the attributes of the file. Basically, a hard link points to the same data block as…