The Internet of Things (IoT) is a term to describe the collection of computing devices that seamlessly integrate into the world around us, almost to the point of being invisible.
Such devices contain sensors to harvest data from the world these objects exist inside. The special thing about all the data harvested is its ability to provide some utility for an end user. Utility is generated from models that can can extrapolate information from the data and enhance our interaction with the world around us. Basically, the data from these devices is used to provide our life with useful information.
Smart refrigerators, thermostats, doorbells, and watches are just a few examples of devices being connected to the internet. Gone are the days where a device didn’t have any sort of connectivity to the internet. The internet enables these devices to communicate with us so we can figure out interesting things to do with them. Wireless connectivity exposes these devices to the global area of the internet, effectively stripping away their previous insular nature. …
Launching Python3 propels you into a world that consists of objects, links among said objects, and methods that operate on them. The goal is to leave you better equipped to understand Python’s paradigm so you can comprehend its language.
In the object-oriented paradigm, a class is the blueprint containing attributes and methods it controls. An object is an instance of a class much like a house is an instance of the base blueprint. Attributes and methods that were defined in the base class are available in any instance of the class. Strings, floats, ints, and lists are all valid examples of classes in the language. Initializing a variable and binding it to a specific value is referred to as instantiation, meaning that an object belonging to a specific class was created. Based on the example below, the left hand side of a “variable assignment” is the variable name and the right hand side is a specific object created in memory. That name is bound to the object in memory containing the value 1. In a language like C, a variable is like a “box” containing the value that was assigned and therein lies the difference with Python. Values created in the Python space are objects belonging to specific classes and variables are simply references to these objects. …
I’ve recently completed a project on building an implementation of a shell complete with a full understanding of the process that is easily transferrable to anyone’s interest in learning how the real shell works. You need to be able to get input from the user in some kind a loop that constantly waits on the user, parse the text for tokens, and execute commands by looking for them in the path. The fundamental idea behind the shell involves getting text from the user and combining it with system calls to print an output on the terminal.
Getting Input from the User and Storing it in the…
You see a library above and see it contains a multitude of files just waiting to be used by you. You can use the library to accomplish a specific goal you had in mind. Let’s say you wanted to learn how to write a good book (who wouldn’t want to learn that?). You would learn from the masters, right? Tackling a huge project like that without getting some guidance, some instruction, from somebody who’s already figured it out would be a fool’s errand. …
Files are everywhere in the Linux filesystem, down to text files and files that read input from the keyboard. Files contain the actual content of the file and the information about itself (called metadata). The metadata and pointers to the locations holding the data are stored in a data structure called an inode. An inode is a collection of inumbers for all files within the file system. Essentially, every file is associated with an inode index(the inumber).
The file’s attributes (such as owner, group ID, permissions, and pointers to the data blocks holding the data) are stored in the inode. The name that any user can give to that file is stored in a different inode. The inode number is the attribute that contains all the information about the file, instead of the name. …
GCC, known as the GNU Compiler Collection, contains a collection of programs that can translate source code to assembly code. gcc is able to compile C, C++, Java, Fortran, and other programs by going through the text in the files to determine the appropriate programs to finish the compilation process. The illustration above shows the process from text written in the programming language to the generation of machine code at the end.
You must be sitting at a computer right now and interested in this confusing yet magical machine that can get you to obey. These fascinating machines have their own language, interpret “sentences” that we feed them, and produce output at lightning speeds. Before we get to that, let’s start from the very basics of computing, shall we ?
The computer that you are using right now consists of a variety of hardware ranging from a CPU (the brain of the computer), display (the monitor), memory, to other components that I haven’t listed. …
The ability to realize and comprehend the architecture of intricate software is of paramount significance to me primarily because it would allow me to contribute to a tech organization as a software engineer. Holberton’s pragmatic approach to computer science education would provide the necessary tools and environment to achieve said goal.
I’ve been interested in software ever since I started programming in my university’s engineering courses. I would spend time thinking about what made Matlab and its host operating system work. I wanted to understand the layers of code and the architectural principles behind complex software such as an operating system. I sit on a computer that I’ve personally built yet I feel clueless when it comes to the software that exists on it and the hardware that enables everything I enjoy doing. …
About