Rust: Ownership

March 24, 2020 Rust Software 2 min

Reading Time: 2 minutes Rust neither uses garbage collection nor automatic reference counting nor manual memory management. It has chosen a rather different approach: memory is managed through a system of ownership with a set of rules that the compiler checks at compile time.

Rust: Data types

March 24, 2020 Rust Software 2 min

Reading Time: 2 minutes Rust is a statically typed language so it must know the types of all variables at compile time.

An intro to JavaScript Modules

March 24, 2020 JavaScript Software 4 min

Reading Time: 4 minutes Modules divide programs into clusters of code that, by some criterion, belong together. Most programming languages have a scope level between global (everyone can see it) and local (only this function can see it). JavaScript does not. The only way to create a new scope in JavaScript is with a function. Hence, modules are god sent.

तू चल

February 5, 2020 Scribbles 0 Comments < 1 min

Reading Time: < 1 minute तू खुद की खोज में निकल तू किस लिए हताश है, तू चल तेरे वजूद की समय को भी तलाश है ।

Daisy VI: Computer Architecture

January 12, 2020 Engineering 3 min

Reading Time: 3 minutes Compared to all the other machines around us, the most unique feature of the digital computer is its amazing versatility. How does a machine with a finite hardware perform seemingly infinite array of tasks, from games to word processing to scientific simulation?

Daisy V: Machine Language

January 11, 2020 Engineering 3 min

Reading Time: 3 minutes A computer can be described , abstractly, by specifying and demonstrating its machine language capabilities. Seeing some low-level programs written in machine language helps us understand not only how to get the computer to do things, but also why its hardware was designed in a certain way. Machine language is the most profound interface in the overall computer enterprise—the fine line where hardware meets software. This the point where abstract thoughts and symbolic instructions are turned into physical operations performed in silicon.

Daisy IV: Memory

January 10, 2020 Engineering 2 min

Reading Time: 2 minutes The most elementary sequential chip in the computer is a device called a flip-flop. There are several variants of flip-flops. In this project, I've used the variant called a data flip-flop or DFF. Its interface consists of a single bit data input, and a single-bit data output. In addition, the DFF has a clock input that continuously changes according to the master clock's signal. For the purpose of this project, DFFs are treated as primitive building blocks from which all other memory elements are built.

Daisy III: Sequential logic

January 9, 2020 Engineering 2 min

Reading Time: 2 minutes All the Boolean and arithmetic chips built so far have been combinational. Combinational chips compute functions that depend solely on combinations of their input values. These relatively simple chips provide many important processing functions (like the ALU) but they cannot maintain state. Since computers must be able to store and recall values too, they need memory elements that can preserve data over time. These memory elements are built using sequential logic.

Daisy II: The ALU

January 8, 2020 Engineering 2 min

Reading Time: 2 minutes The chips built thus far have been generic, i.e. their designs are universal and would hold for any computer. The ALU is the first bit of proprietary chip added into the mix. There is no universal way of designing an ALU. It all depends on product requirements.

Daisy I: Logic gates

January 7, 2020 Engineering 3 min

Reading Time: 3 minutes All computer chips are made from the same building blocks: elementary logic gates. A logic gate is a physical device that implements a mathematical logic (Boolean) function. The simplest example of a logic gate is the `NOT` gate. It takes a single input and outputs its inverse. If the signal is ON, the inverter outputs OFF and vice versa. These gates can be constructed in many different ways but their logic behaviour remains consistent across all computers.