Posts

The Mouse on Your Desk

Image
The mouse is today almost as ubiquitous as the smart phone. Although Douglas Engelbart is credited with its invention, the mouse has ancestors that predate the prototype that was presented in Engelbart's December 9th 1968 Mother of All Demos. One cannot begin to discuss the origins of the mouse without talking about the trackball. The trackball was a pointing device that was invented in post-World War II-era Britain by Ralph Benjamin. It was invented to become a more useful replacement for the then joystick which was used to input coordinates for analog computers that would then calculate the future positions of target aircraft. All of this happened under the auspices of the British Royal Navy - one of dozens of examples of war being the driver of innovation in computing. The trackball was useful enough that Kenyon Taylor, Tom Cranston and Fred Longstaff of the Royal Canadian Navy, invented their own trackball. Unlike Ralph Benjamin's trackball, this iteration was never patente...

How your VPN works

Image
VPN stands for Virtual Private Network and like the deep web, VPNs have democratized internet access and provided security to those who need it most. In addition, they have also removed some of the barriers that service providers put in place based on geography. A famous example of this is the wide use of VPNs to access Netflix content that has not been made available in some geographical locations.   Some individuals reside in countries with repressive governments that have control over the internet and what can be accessed over it and thus control what their citizens can access. Others have to contend with governments that collect their personal data or have mass surveillance programs. All of the aforementioned situations can be avoided with the use of a VPN. Now that the place that VPN technology holds in our highly connected society is obvious, how do they actually work? To uncover the inner workings of the technology, we will employ the use of an analogy. Think of the internet...

Why you need a Password Manager right now

Image
Cyber crime has been on the rise and in a world beginning to embrace remote work, it has become all the more important to protect oneself from the havoc often wreaked by cyber criminals.     The majority of cyber attacks exploit the human element that is often baked into technology and this is why security is often one of the greatest concerns of any development team. Unfortunately, one of the most popular entry points for criminals is through your password. If you come up with your own passwords, chances are that they are moderately secure at best and at worst are an open door for cyber criminals. You may want to change them all right now especially if you are reusing some of them. Usually, sites that require login credentials save your password using a hashing algorithm; which transforms your password into a seemingly random assortment of characters referred to as a hash. The hash that results from your password is then saved to a database and then used in the future to auth...

How To Become a Software Developer in 2021

Image
    There is growing consensus that we are indeed in the 4th industrial revolution. One of the most pervasive pillars of the contemporary industrial revolution is digital technology. So pervasive and undeniable is the impact of said technology on today's society that this era has been termed the digital age. Now, with a mass shift to and embrace of digital technology, comes a transformation of the demands of the workplace; roles that have traditionally been staples of the workplace are fast being replaced by digital equivalents of themselves. These digital equivalents are requiring less human participation - unfortunately. Driving this change are leaps that have been made in the field of computing and the dominance of the internet. The consequence has thus been that software developers are arguably becoming the most sought after professionals in many industries. Therefore, with all of the aforementioned realities in mind, how does one go about becoming a software developer tod...

Compiled versus Interpreted Languages

Image
  Programming languages generally fall into two categories: interpreted  and compiled . However, modern innovations and some very intelligent developers have significantly blurred the line between what can be considered an interpreted language and what can be considered a compiled language. How your computer understands code Computers only understand low level machine language; also called binary code. Binary code consists of instructions written as 1s and 0s or binary. Understanding and writing computer programs in binary isn't practical for your run-of-the-mill developer and as such, they need a high level language that is human-readable. This is where high level languages come in.  Therefore, a program is first written in a high level language. Then, a compiler or an interpreter transforms the program's high level language - which a computer does not yet understand - to low level binary code that the computer can then run. Compilers and interpreters are themselves prog...

The Deep and Dark Web

Image
The term: "The Dark Web," invokes in many illicit activity, criminals, identity theft and hackers. While it does harbor criminal activity, the dark web forms part of a greater portion of the internet known as The Deep Web.  Yes, the deep and the dark web are two different entities. The deep web represents parts of the world wide web that are not indexed by traditional search engines like Google, DuckDuckGo or Bing. That is, they do not typically appear in search engine results. Examples of such are password protected pages like those belonging to websites owned by banks or paid streaming services, websites intentionally hidden from web crawlers, messages exchanged between users on websites/web apps and comments on forums. This very blog is on the deep web. The part of the world wide web that you and I see through our google searches is what is referred to as the surface web. It may not seem like it but the surface web is a only a small portion of the web. Over 90% of the web ...

Windows, macOS or Linux?

Image
Windows, Linux or macOS; which operating system(OS) should I use? Before I answer the question, let's explore the world of operating systems a little by talking about each of the three aforementioned systems.  Windows is a proprietary operating system that was developed by Microsoft and runs on a plethora of device types. For purpose, I will only focus on Windows for PC(PC is short for Personal Computer: the laptop you and I use to surf the internet, play games or write and submit reports and assignments is a personal computer). Personal computers are by far one of the more ubiqitious computer types right next to smartphones.There are other types of computers such as supercomputers and mainframe computers but that is a topic worth exploring on its own. Okay, back to Windows:  The Windows OS was first released in November of 1985 as Windows 1.0. Today, the latest version of the OS is Windows 10. Windows is still the most popular OS in the world for PCs and comes built-in on mos...

Databases: What are they and why are they important?

Image
Databases make the world go round. In this age of information, databases are arguably the most important piece of technology and will continue to impact technological development today and for generations to come. Just about every application you have ever used relies on a database in one form or another and so today, we discuss the database. What is a database and why is it such a big deal? DEFINITION: Well, a database is defined as a collection of structured data or information. The collection in question is often stored on a computer and can be accessed, manipulated and/or managed through a Database Management System(DBMS).  A DBMS is software that acts as a middleman between clients(users of the database) and the database and can also perform administrative tasks on the database. DATA & INFORMATION: WHAT IS THE DIFFERENCE? Data is facts that pertain to a particular subject. For example: age, height, weight, photos, colleges attended, phone number etc...These are all facts ...

Cloud Computing: What is it and Why is it Important?

Image
Cloud computing has grown considerably since the early 2000s.  451 Research predicted that in 2017, a third of all spending on IT will be on cloud computing.  What is Cloud Computing? Cloud computing refers to the provision of on-demand computer services over the internet on a pay-as-you-go model. The aforementioned computing services include software services, database management, intelligence, analytics and hardware(servers). Cloud computing is often provided by vendors with vast computing resources and relies on the economics of scale. Major players in this space are AWS(Amazon Web Services), Microsoft's Azure, IBM Cloud, Alibaba Cloud and Google Cloud.  There are various service models that are provided by vendors and the use of each depends on the needs of a customer. These service models include (but are not limited to): Infrastructure as a Service (IaaS), Platform as a Service (PaaS) and Software as a Service (SaaS). IaaS : this involves the provision of computing...

What Are Cookies?

Image
You've probably heard of them. They show up in an alert on most of the web pages you visit. You've probably also heard that they are a big deal. Today, I will answer a question you have secretly asked yourself once or twice. So, what are cookies? Cookies are minute bits ( no pun intended ) of information that are stored on a user's computer by their web browser while they interact with a website. The aformentioned bits ( still, no pun intended ) are a way in which websites "remember" the state in which the user left a web page in a previous visit or visits. For example, cookies help remember the number of items in your shopping cart as you traverse an e-commerce website. Cookies can also serve as a record of a user's browsing activity and remember information the user entered into form fields such as names, email addresses, physical addresses and the like.  Who invented cookies? A prolific computer programmer named Lou Montulli coined the term "cookie...

Reflection: I look back the year's trials and tribulations

Image
This week's post is a reflection. This year has brought with it significant changes both personal and with regard to the trajectory of my career. When the year began, I had fully recovered from a life changing surgery and felt that I had a new lease on life; a chance to start over. The future seemed exciting with a great many prospects to look forward to.  During the years leading up to 2020, I had successfully masked serious mental illness. I had achieved this morbid feat through a toxic reliance on myself and had cultivated a belief system which at its core mandated that I solve my own problems and that no one had the acumen to help me. Back to the beginning of the year: things were also looking up in the realm of academia. I had successfully completed the first two years of my four-year degree programme and was primed and ready to tackle year three. However, there was a problem. The meagre passion I had for my degree programme would finally succumb as my lack of interest in the ...

JavaScript Strict Mode

Image
  JavaScript's strict mode, introduced in ECMAScript 5, is a way to  opt-in  to a restricted variant of JavaScript, thereby implicitly opting-out of "sloppy mode". Strict mode isn't just a subset: it intentionally has different semantics from normal code. Strict mode implements several changes to normal JS code semantics: 1.  Eliminates some JavaScript silent errors by changing them to throw errors. 2.  Fixes mistakes that make it difficult for JavaScript engines to perform optimizations: strict mode code can sometimes be made to run faster than identical code that's not strict mode. 3.  Prohibits some syntax likely to be defined in future versions of ECMAScript How does one go about invoking strict mode in their code? There are several places you can do this and these include in functions, for whole scripts and since ECMAScript 2015, in modules. To invoke strict mode in functions, simply add  'use strict';  OR  "use strict";  to the beg...

How JavaScript uses hashing

Image
Privacy and the security of information has become more important now than ever. For as long as information - valuable information - has existed, there have always been people plotting to obtain it in nefarious ways. Having established this context, today we will discuss hashing . Before anything else, we answer the occasion's most important question: what is hashing? Hashing is defined as taking a value and applying a mathematical operation (a hashing algorithm or hashing function) to it and getting a new value (known as a hash, hash value or digest message). Yes, it is a form of cryptography. What is this hashing useful for? Well, one of the most important areas in which it is applied is in information security. For example, when storing user passwords in a database, simply storing string values as they are is insecure and this is where hashing comes in. Password values are hashed and the resulting values are stored in the database. The stored hashes are then used to authenticat...

Interfaces in object oriented programming languages and prototype-based languages

Image
Today we talk interfaces. Interfaces are especially important in Object Oriented Programming(OOP) and the programming languages that espouse this paradigm. One of the programming languages that employ OOP is Python. Before we go about explaining what interfaces are, it is important to define OOP first and how it is structured. OOP consists of classes which are entities that contain attributes and methods that perform specific tasks based on what the class is meant for. Classes are used to construct objects which are instances of classes. These objects then inherit attributes and methods from their parent classes.  For example, a button class with attributes such as color, size and methods that perform actions like allowing users to download files or perform operations on databases. Now, different button objects can be constructed from the button class and although they will inherit a set of attributes and methods, they will implement them differently in differing scenarios. Having ...