Absorb Knowledge in 30 Seconds | Brain Bytes #5
Tags: webdev, programming, beginners, computerscience
Published: 2021-09-27 10:31:41

## Recap 🧠
[Brain Bytes](https://www.brainbytes.dev/) helps self-taught web-developers grow their computer science knowledge by learning new things every day! 💪  

You can also [follow BrainBytes on twitter](https://twitter.com/brain_bytes_dev) for daily knowledge!

## Bytes of the Week


### SASS vs SCSS
Briefly, they do the same thing but with a different syntax.

SASS example:
```
$color: blue
$bg: red

body
  color: $-color
  background-color: $bg
```

SCSS example:
```
$color: blue;
$bg: red;

body {
  color: $color;
  background-color: $bg;
}
```
And both compile to the same CSS:
```
body {
  color: blue;
  background-color: red;
}
```

___

### ACID
ACID is a set of guiding principles that ensure database transactions are processed reliably:

**Atomicity**: commits finish an entire operation successfully or the database rolls back to its prior state

**Consistency**: Any change maintains data consistency or is canceled completely

**Isolation**: Any read or write will not be impacted by others reads or writes of separate transactions

**Durability**: successful commits will survive permanently

___

### Browser Layout Engine
A layout engine is a software used by web browsers to interpret HTML, CSS, javascript and embedded content (like images) and to draw everything to your screen.

Gecko is the layout engine developed by Mozilla and used in the Firefox browsers.

Blink is the one used by Chrome and developed by Google, with contributions from Facebook, Microsoft, IBM and others.

___

### Concurrency
Concurrency is the ability of different parts of a program to be executed at the same time simultaneously, without affecting the final outcome.

Parallel execution of the concurrent units can significantly improve the overall speed of the execution in multi-processor and multi-core systems.

___

### Dining Philosophers Problem
The [dining philosophers problem](https://en.wikipedia.org/wiki/Dining_philosophers_problem) is an example problem often used in concurrent algorithm design to illustrate synchronization issues and techniques for resolving them.

___

### Pointer
**A pointer is an object that stores a memory address.** It references a location in memory, and obtaining the value stored at that location is known as dereferencing the pointer.

As an analogy, a page number in a book's index could be considered a pointer to the corresponding page; dereferencing such a pointer would be done by flipping to the page with the given page number and reading the text found on that page.

___

### Garbage Collection
Garbage collection is the **process of automatically freeing up memory space that is no longer used by objects.** It finds the unused objects (that are no longer used by the program) and deletes or removes them to free up the memory.

Most high-level programming languages have some sort of garbage collection built in, while low-level programming languages may add garbage collection through libraries.

___

### OWASP
The Open Web Application Security Project ([OWASP](https://owasp.org/)) is a nonprofit foundation founded in 2001 that works to improve the security of software. **The OWASP Foundation is the source for developers and technologists to secure the web.**

___

### Library vs Framework
Frameworks and libraries are both code written by someone else to help solve common problems.

**A framework tells the developer what they need (inversion of control). A library gives the programmer freedom to choose where and when to use it.**

The degree of freedom a library or framework gives the developer will dictate how “opinionated” it is.

___

### Alan Kay
Alan Kay is an American computer scientist. He is best known for his **pioneering work on object-oriented programming and windowing graphical user interface (GUI) design.**

He was leading the team that developed Smalltalk (object-oriented programming language), and has provided fundamental contributions to personal computing.

## Come and participate!
[Brain Bytes](https://www.brainbytes.dev/) is an open source project, so go and share your own knowledge or reach out to me if you want to participate in its development!


Thanks for reading 🙏 ❤️