Web Architecture 101

The above diagram is a fairly good representation of our architecture at Storyblocks. If you’re not an experienced web developer, you’ll likely find it complicated. The walk through below should make it more approachable before we dive into the details of each component.

A user searches on Google for “Strong Beautiful Fog And Sunbeams In The Forest”. The first result happens to be from Storyblocks, our leading stock photo and vectors site. The user clicks the result which redirects their browser to the image details page. Underneath the hood the user’s browser sends a request to a DNS server to lookup how to contact Storyblocks, and then sends the request.

The request hits our load balancer, which randomly chooses one of the 10 or so web servers we have running the site at the time to process the request. The web server looks up some information about the image from our caching service and fetches the remaining data about it from the database. We notice that the color profile for the image has not been computed yet, so we send a “color profile” job to our job queue, which our job servers will process asynchronously, updating the database appropriately with the results.

Next, we attempt to find similar photos by sending a request to our full text search service using the title of the photo as input. The user happens to be a logged into Storyblocks as a member so we look up his account information from our account service. Finally, we fire off a page view event to our data firehose to be recorded on our cloud storage system and eventually loaded into our data warehouse, which analysts use to help answer questions about the business.

The server now renders the view as HTML and sends it back to the user’s browser, passing first through the load balancer. The page contains Javascript and CSS assets that we load into our cloud storage system, which is connected to our CDN, so the user’s browser contacts the CDN to retrieve the content. Lastly, the browser visibly renders the page for the user to see. To read more :

Source : https://engineering.videoblocks.com/web-architecture-101-a3224e126947


How PCs Work

The word computer refers to an object that can accept some input and produce some output. In fact, the human brain itself is a sophisticated computer, and scientists are learning more about how it works with each passing year. Our most common use of the word computer, though, is to describe an electronic device containing a microprocessor. To read more :

Source : https://computer.howstuffworks.com/pc.htm/printable

Number Systems

Numbers are all around us and for the most part we take them for granted. If I offered you $1337 dollars you would be happy because you know that is a fairly reasonable number of dollars. A number system is a means of representing amounts of things. Decimal is just one of several number systems though and others, in paticular binary, are important to understand in various fields, especially computing. To read more ;

Source : https://ryanstutorials.net/binary-tutorial/

Binary Conversions

It’s important to be able to translate a value from one number system into another. We need to be able to tell when two values represent the same amount. Sometimes, shortcuts become available to us. For instance octal and hexadecimal are often used as shorthand for binary (we’ll see why below). Certain systems will only accept values in a certain base as well. Fortunately, switching between number systems is not too difficult.

There are many calculators now which can do conversions for you. Just about every desktop OS, smart phone and tablet has one built in or one can easily be aquired. It is perfectly fine to use the calculator but we should know how to do it by hand as well. This will give us a much better understanding as to what is actually happening. That understanding is important in order to understand how certain mechanisms work (especially in computing). My recommnedation is to practice on paper by hand but use the calculator to verify your working. To read more:

Source https://ryanstutorials.net/binary-tutorial/binary-conversions.php

Unicode, UTF-8 Tutorial

UTF8 Tutorial

This tutorial covers Unicode and its UTF-8 mapping standard. It will start at zero with explaining bits and binary structures, followed by an explanation of the ASCII, extended ASCII and Unicode character sets and ending with some conclusions on how to use UTF-8 en-/decoding with Flash & PHP.

What are bytes and bits?

Bit means “binary digit” and is the smallest unit of computerized data. A bit is a 2-base number, i.e. it has either the value of 0 or 1.
byte is an amount of memory, a certain collection of bits, originally variable in size but now almost always eight bits. This makes 28 or 256 possible values for a byte.

byte = 1 2 3 4 5 6 7 8
bit bit bit bit bit bit bit bit
1|0 1|0 1|0 1|0 1|0 1|0 1|0 1|0

Some example bytes could be 00000001 or 11111111 or 01010011.
Now how can we calculate the decimal value of this binary encoded byte. What we need is a conversion from base 2 to base 10.
Every 1 or 0 of these binary values is associated with an exponential of 2. For 8 bits it looks like the following:

byte = 1 2 3 4 5 6 7 8
128 (27) 64 (26) 32 (25) 16 (24) (23) (22) 2 (21) (20)
1|0 1|0 1|0 1|0 1|0 1|0 1|0 1|0

The calculation of the decimal equivalent of the binary value 00000001:

byte = 128 64 32 16 8 4 2 1
0 0 0 0 0 0 0 1 = 1

The calculation of the decimal equivalent of the binary value 11111111:

byte = 128 64 32 16 8 4 2 1
1 1 1 1 1 1 1 1 = 128+64+32+16+8+4+2+1 = 255

The calculation of the decimal equivalent of the binary value 01010011:

byte = 128 64 32 16 8 4 2 1
0 1 0 1 0 0 1 1 = 64+16+2+1 = 83

What is ASCII?

ASCII stands for American Standard Code for Information Interchange and is a standard for assigning numerical values to the set of letters in the Roman alphabet and typographic characters. The ASCII character set can be represented by 7 bits. This makes 27 or 128 different values resp. characters.
As ASCII uses only 7 of the 8 bits available of an byte the first bit is always 0: 0xxxxxxx;
Below there is a table of decimal values, their binary expressions and the character assigned to that value due to the ASCII standard. The first 32 characters are control characters. To read more :

Source : http://www.zehnet.de/2005/02/12/unicode-utf-8-tutorial/

How Microprocessors Work

The computer you are using to read this page uses a microprocessor to do its work. The microprocessor is the heart of any normal computer, whether it is a desktop machine, a server or a laptop. The microprocessor you are using might be a Pentium, a K6, a PowerPC, a Sparc or any of the many other brands and types of microprocessors, but they all do approximately the same thing in approximately the same way.

A microprocessor — also known as a CPU or central processing unit — is a complete computation engine that is fabricated on a single chip. The first microprocessor was the Intel 4004, introduced in 1971. The 4004 was not very powerful — all it could do was add and subtract, and it could only do that 4 bits at a time. But it was amazing that everything was on one chip. Prior to the 4004, engineers built computers either from collections of chips or from discrete components (transistors wired one at a time). The 4004 powered one of the first portable electronic calculators.

To read more :

Source : https://computer.howstuffworks.com/microprocessor.htm/printable

How Computer Memory Works

Although memory is technically any form of electronic storage, it is used most often to identify fast, temporary forms of storage. If your computer’s CPU had to constantly access the hard drive to retrieve every piece of data it needs, it would operate very slowly. When the information is kept in memory, the CPU can access it much more quickly. Most forms of memory are intended to store data temporarily.

As you can see in the diagram above, the CPU accesses memory according to a distinct hierarchy. Whether it comes from permanent storage (the hard drive) or input (the keyboard), most data goes in random access memory (RAM) first. The CPU then stores pieces of data it will need to access, often in a cache, and maintains certain special instructions in the register. We’ll talk about cache and registers later.

All of the components in your computer, such as the CPU, the hard drive and the operating system, work together as a team, and memory is one of the most essential parts of this team. From the moment you turn your computer on until the time you shut it down, your CPU is constantly using memory. Let’s take a look at a typical scenario:

  • You turn the computer on.
  • The computer loads data from read-only memory (ROM) and performs a power-on self-test (POST) to make sure all the major components are functioning properly. As part of this test, the memory controller checks all of the memory addresses with a quick read/write operation to ensure that there are no errors in the memory chips. Read/write means that data is written to a bitand then read from that bit.
  • The computer loads the basic input/output system (BIOS) from ROM. The BIOS provides the most basic information about storage devices, boot sequence, security, Plug and Play (auto device recognition) capability and a few other items.
  • The computer loads the operating system (OS) from the hard drive into the system’s RAM. Generally, the critical parts of the operating system are maintained in RAM as long as the computer is on. This allows the CPU to have immediate access to the operating system, which enhances the performance and functionality of the overall system.
  • When you open an application, it is loaded into RAM. To conserve RAM usage, many applications load only the essential parts of the program initially and then lo
    ad other pieces as needed.
  • After an application is loaded, any files that are opened for use in that application are loaded into RAM.
  • When you save a file and close the application, the file is written to the specified storage device, and then it and the application are purged from RAM.

Source : https://computer.howstuffworks.com/computer-memory.htm/printable

Parity bit

In computers, parity (from the Latin paritas, meaning equal or equivalent) is a technique that checks whether data has been lost or written over when it is moved from one place in storage to another or when it is transmitted between computers.

How parity works

Because data transmission is not an entirely error-free process, data is not always received in the same way as it was transmitted. A parity bit adds checksums into data that enable the target device to determine whether the data was received correctly.

An additional binary digit, the parity bit, is added to a group of bits that are moved together. This bit, sometimes referred to as a check bit, is used only to identify whether the moved bits arrived successfully.


7 bits of data (count of 1-bits) 8 bits including parity
even odd
0000000 0 00000000 10000000
1010001 3 11010001 01010001
1101001 4 01101001 11101001
1111111 7 11111111 01111111

parity bit, or check bit, is a bit added to a string of binary code to ensure that the total number of 1-bits in the string is even or odd. Parity bits are used as the simplest form of error detecting code.

There are two variants of parity bits: even parity bitand odd parity bit.

In the case of even parity, for a given set of bits, the occurrences of bits whose value is 1 is counted. If that count is odd, the parity bit value is set to 1, making the total count of occurrences of 1s in the whole set (including the parity bit) an even number. If the count of 1s in a given set of bits is already even, the parity bit’s value is 0. To read more :

Source : https://en.wikipedia.org/wiki/Parity_bit

Source : https://searchstorage.techtarget.com/definition/parity

Why Online Harassment Is Still Ruining Lives–And How We Can Stop It

The Supreme Court may have just made it harder to prosecute online threats, but there’s still much that can be done to fight harassment online.


In 2010, Anthony Elonis threatened his estranged wife by writing rants on his Facebook page such as, “There’s one way to love you but a thousand ways to kill you. I’m not going to rest until your body is a mess, soaked in blood and dying from all the little cuts.”

For making these threats, a federal district court sentenced him to more than three years in prison.

On June 1, the Supreme Court voided that conviction, explaining that the standard the court had used to judge whether Elonis’s threats were “true threats” was not sufficient. The district court had asked jurors to consider only whether the threats would cause a reasonable person to be afraid. Chief Justice Roberts wrote that juries should also consider whether the defendant intended to make a true threat. The ruling will make it more difficult than ever to prosecute the authors of online death and rape threats.

To read more :

Source : https://www.fastcompany.com/3046772/why-online-harassment-is-still-ruining-lives-and-how-we-can-stop-it