Day 15 - Cathode Ray Tube

Description

Cathode Ray Tube (CRT) is a vacuum tube that contains electron gun to beam and display images on a phosphorescent screen. The images is displayed on screen by using technology called rastering. (The image displayed line by line in fixed pattern) CRT were used to as a display monitor in older times and now were completely obsolete and replaced by newer Plasma and LCD monitor technology.

CRT display monitors usually very thick and heavy due to the internal construction. The screen must be coated with a lead glass to block off any X-ray emission.


Advantages

- No native resolution
- No input lag
- High contrast ratio
- Works with light guns
- Longer shelf time
- Can store in extreme temperature without degrading the monitor

Disadvantages

- Heavy and bulky
- Higher power consumption rate
- Very dangerous to repair
- Contains poisonous material such as lead
- Sensitive to magnetic interference

This article is referred from Wikipedia's Cathode Ray Tube article.

Day 14 - Universal Serial Bus (Part 2)

Types

There are 3 types of connectors, A, B and C.

Type-A

Probably the most common one of all three. It is used on almost all flash drives, power adapters, accessories and even speaker. It shape is rectangular and backward compatible for all versions. There are also mini-A and micro-A USB, but peripherals that uses this standard is very rare.


Type-B

USB Type B is less common. It is more squared compared to other types. It is usually used on printers and scanners. 3.0 ports supports backward compatible, but the 3.0 connector won't work in 2.0 port. It also has two smaller versions called mini-B and micro-B, which people can use it to charge small electrical appliances and older phones.


From left to right: Standard-B, Mini-B, Micro-B, Micro-B USB 3.0 and Standard-B USB 3.0.

Standard-B is used to connect large peripherals such as printers or scanners. Mini-B use to connect older portable devices while micro-B use to connect latest portable devices. The 3.0 versions of standard-B and micro-B are just upgraded to a faster speed.

Type-C

USB Type C is the latest standard. It is rarely used on a computer but more to mobile devices for chargers. USB Type C is tiny as it is only one third of an USB Type A. The feature that is most noticeable for Type C is that it do not have specified orientation, so user can plug it without worrying the USB is plugged upside-down.

This article is referred from Wikipedia's USB article.

Day 13 - Universal Serial Bus (Part 1)

Description

Universal Serial Bus (USB) is a standardized connector that replaced a lot of other older connectors such as PS/2. Game Port and Parallel Port. It provides connection and data transferring, as well as power supply to portable devices.

Version

Different version have different transfer speed. It is easy to determine the version of the USB by looking at the color code on the connecter. Blue color coded USB are usually 3.0 or 3.1 while other colors are usually below 3.0. Also, USB 3.0 or above should have the word SS in front of the logo to represent Super Speed.

Speed

The speed of USB is determined by it's respective versions. There are 4 major versions which is 1.0, 2.0, 3.0 and 3.1.

There are two types of USB version 1.0 which is Low Speed (1.5 Mbit/s) and Full Speed (12 Mbit/s). 2.0 brings High Speed delivering 480 Mbit/s of data transfer. Version 3.0 speed is 10 times faster (5 Gbit/s, SuperSpeed) than version 2.0 and version 3.1 is twice as fast as version 3.0 (10 Gbit/s, SuperSpeed+)

This article is referred from Wikipedia's USB article.

Day 12 - Simplex, Full Duplex and Half Duplex

Description

Simplex means the information is sent one way only, usually from the sender A to receiver B and cannot be switched back. Duplex means the information can be send both way, from A to B or B to A, or both at the same time.

The word simplex might be derived from 'Sim' which means 'Simple' and 'plex' which means 'Part of' or 'Structure'. The word duplex is derived from 'Du' which means 'Duo' and 'plex' which means 'Part of' or 'Structure'.

Simplex

Simplex sends the information one way only and the path is fixed. Examples are TV and radio broadcasting, where the receiver only receive but not send information.

Full Duplex

In full duplex, both parties can communicate simultaneously. Telephone is a type of full duplex communication tool, as both parties can be both sender and receiver (To speak and heard at the same time).

Half Duplex

Half duplex the other hand allows information to flow both way, but not simultaneously, which is, one party is the sender while another must be the receiver. Walkie-talkie is a half duplex communication tool, as a talker will push a button called 'Push-to-talk' to turn off the receiver but turn on the transmitter.

This article is referred from Wikipedia's Simplex communication and Duplex (telecommunications) article.

Day 11 - Modem (Part 2)

Types of modem

There are 4 types of modem, which is Internal modem, External modem, On-board modem and Removable modem.

Internal modem are the modem that is NOT on a motherboard itself, but it is connected to a connector (Usually PCI slot). These modem can be called as network card. External modem are the modem between computer and the Internet. They usually contained in a box and connected using cables, usually serial or USB.

On-board modem is the modem located on motherboard itself. It cannot be removed but can be disabled when needed. Removable modem are wireless network cards connected through USB or older serial ports. It can be removed.


Versions of modem

Modem are classified by the rate of data transfer in a certain amount of time. They also classified by symbol rate (Baud) and connection method. Two main version are Digital Subscriber Line (DSL) and Dial-up.

DSL modem are very common to transfer data using the telephone line. There are a few types of DSL modem, but most of them are Asymmetric Digital Subscriber Line (ADSL). ADSL has different speed for uplink and downlink, that is, download speed is usually faster than upload speed. 

An uncommon modem called Symmetric Digital Subscriber Line (SDSL) allow the speed to be similar on both download and upload. Very highspeed Digital Subscriber Line (VDSL) divides the telephony line and data line into two band, so telephony line won't interfere with data line, thus improving the speed.

Other than DSL, another type of modem called Dial-up is an older way of connecting to the Internet. User are required to use the dial the phone number of an Internet Service Provided (ISP) to connect to the Internet. This kind of connection method is not widely used but it is very common for the 90s as the speed is slower than other connection method.

This article is referred from Wikipedia's Modem article.

Day 10 - Modem (Part 1)

Description

Modem is the short for Modulator and Demodulator. It is a hardware that use to communicate with other distant computers or more commonly used to connect to the Internet nowadays. 2 modems are required to make a connection and each modem can send and receive data.

Modulation and Demodulation

Modulation is an act of encoding the digital data from a computer into analog signal. Demodulation is an act of decoding the analog signal back to digital data.

This article is referred from Wikipedia's Modem article.

Day 9 - Open Systems Interconnection model

Description

Open Systems Interconnection or OSI for short, is a conceptual network model that standardize the communication function in a system. The goal is to intercorporate all communication systems into one model using standard protocol. This model is very similar to the networking model of TCP/IP but the difference here is it has 7 layers instead of 4 in TCP/IP.

Layer 1: Physical Layer

It mostly deal with raw data. The data is transported using electrical impulse, light or radio wave physically. It also define the transmission mode and the use of network topology. Ethernet is one of the physical layer entity.

Layer 2: Data Link Layer

Data are encoded and decoded into bits here. It also contains Media Access Control (MAC) and Logic Link Control (LLC). MAC handles the network access permission while LLC handles the flow control and do error checking. Point-to-Point-Protocol is one of the data link layer entity.

Layer 3: Network Layer

Everything about network are handled here. Packet switching (Switch from a message to several packets), routing of packets and virtual circuit for node to node networking can be found here. Other features such as addressing, error handling and congestion control works together here. Internet Protocol is one of the network layer entity.

Layer 4: Transport Layer

This is the layer that manages where to flow the datagram and avoid possible congestion. It also detect datagram error. Transmission Control Protocol (TCP) is one of the transport layer entity.

Layer 5: Session Layer

This layer manage the connection between application. For example, session layer can establish a
connection if the connection is lost. Remote Procedure Calls (RPC) is one of the session layer entity.

Layer 6: Presentation Layer

Presentation layer translate normal text from application to network format and vice versa. This layer will change the data format and encrypt it. Encryption is one of the presentation layer entity.

Layer 7: Application Layer

This layer can interact with users directly. This layer provides mailing services, file transfer and Internet browsing. File Transfer Protocol (FTP) is one of the application layer entity.


This article is referred from Wikipedia's OSI model article. (With a few sub-articles)

Day 8 - Internet Protocol Suite (TCP/IP)

Description

Internet Protocol Suite, or famously known as TCP/IP, is a model of networking layering consists of 4 layers which is Application layer, Transport layer, Internet layer and Link layer. Each layer is represented with a protocol for data transmission. The most important layer is Transport layer and Internet layer as it consist of both TCP and IP protocol, which ensure data is sent and received successfully.

Application layer

This is the top most layer in Internet Protocol Suite. It is the layer where data were processed to sent and after receiving. Programs and applications can only access and exchange data in this layer. Examples of protocol belonged in this layer are HyperText Transfer Protocol (HTTP), File Transfer Protocol (FTP) and Simple Mail Transfer Protocol (SMTP).

Analogy: This is the place where you send or receive a pascal to or from oversea in post office.

[ Sender's Post Office ] [ Sorting Area ] → [ Sender's country van ] → [ Ships oversea] ↓
[ Receiver's Post Office ] [ Sorting Area ] ← [ Receiver's country van ] ← [ Ships oversea ]

Transport layer

This is the second layer in Internet Protocol Suite. Data from or to Application layer is processed here. Transport layer assign the destination for the data. When transport layer recieved a data, it will transport the data to correct application layer protocol. Examples of transport layer are Transmission Control Protocol (TCP) and User Datagram Protocol (UDP)

Analogy: This is where your pascal will be sorted and organized before shipping into a van to deliver it.

[ Sender's Post Office ] [ Sorting Area ] [ Sender's country van ] → [ Ships oversea] ↓
[ Receiver's Post Office ] [ Sorting Area ] [ Receiver's country van ] ← [ Ships oversea ]

Internet layer

The third layer of Internet Protocol Suite. It routes the data through network to it's destination. It also find for another route when the original route is having problem. Example of this layer is Internet Protocol (IP).

Analogy: This is where a van will deliver your pascal to the dock where ships will deliver the pascal oversea.

[ Sender's Post Office ] → [ Sorting Area ] [ Sender's country van ] [ Ships oversea] ↓
[ Receiver's Post Office ] ← [ Sorting Area ] [ Receiver's country van ] [ Ships oversea ]

Link layer

This is the lowest layer of Internet Protocol Suite. It is the layer where data transmit through the connection physically through wires. Example for this layer is ARP (Address Resolution Protocol) and Ethernet.

Analogy: This is the place where a ship will deliver your pascal oversea to another location.

[ Sender's Post Office ] → [ Sorting Area ] → [ Sender's country van ] [ Ships oversea]
[ Receiver's Post Office ] ← [ Sorting Area ] ← [ Receiver's country van ] [ Ships oversea ]

This article is referred from Wikipedia's Internet protocol suite article. (With a few sub-articles)

Day 7 - Esoteric programming language (esolang)

Description

Esoteric programming language serves little or no purposes for a coder. It is used as a challenge, debugging test, Prove of Concept (PoC) or even as a joke. The creators of esolang usually do not intent the language to be used on mainstream programming. Such language are popular among hackers and hobbyist.

Examples of esolang

Here are some well known esolang with Hello World sample:

Brainfuck:
Very well known esolang, it only uses 8 symbols to represent the code. The word "brain fuck" means the code is too complicated it exceeded one's  limit of understanding.
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
 ..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.

Chef:
Another well known esolang. It is a stack based language where program looks like a cooking recipe.
Hello World Souffle.

This recipe prints the immortal words "Hello world!", in a basically brute force way. It also makes a lot of food for one person.

Ingredients.
72 g haricot beans
101 eggs
108 g lard
111 cups oil
32 zucchinis
119 ml water
114 g red salmon
100 g dijon mustard
33 potatoes

Method.
Put potatoes into the mixing bowl. Put dijon mustard into the mixing bowl. Put lard into the mixing bowl. Put red salmon into the mixing bowl. Put oil into the mixing bowl. Put water into the mixing bowl. Put zucchinis into the mixing bowl. Put oil into the mixing bowl. Put lard into the mixing bowl. Put lard into the mixing bowl. Put eggs into the mixing bowl. Put haricot beans into the mixing bowl. Liquefy contents of the mixing bowl. Pour contents of the mixing bowl into the baking dish.

INTERCAL:
Short for Compiler Language With No Pronounceable Acronym, it is possibly the oldest esolang created.
DO ,1 <- #13
PLEASE DO ,1 SUB #1 <- #238
DO ,1 SUB #2 <- #108
DO ,1 SUB #3 <- #112
DO ,1 SUB #4 <- #0
DO ,1 SUB #5 <- #64
DO ,1 SUB #6 <- #194
DO ,1 SUB #7 <- #48
PLEASE DO ,1 SUB #8 <- #22
DO ,1 SUB #9 <- #248
DO ,1 SUB #10 <- #168
DO ,1 SUB #11 <- #24
DO ,1 SUB #12 <- #16
DO ,1 SUB #13 <- #162
PLEASE READ OUT ,1
PLEASE GIVE UP

LOLCODE:
LOLCODE is a language derived from an Internet phenomenon called lolcats.
HAI 1.2
CAN HAS STDIO?
VISIBLE "HAI WORLD!"
KTHXBYE

Piet:
This language uses 20 colours, ordered with 6-steps hue cycles and 3-step brightness cycles plus black and white. The language is named after a Dutch painter Piet Mondrain. 













This article is referred from Wikipedia's Esoteric programming language article.

Day 6 - Low, Mid and High level programming languages

Description

The level resembles the level of abstraction between the language and the machine code. The lower the level, the lesser the abstraction, thus making it harder for coder to understand and more looking like a machine code.

Low level programming language

This type of programming language provides little to no amount of abstraction. Most of the code are hard to understand and contains little meaning to the coder. This level doesn't require interpreter or compiler to handle the code. It uses assembler that runs the code directly on processor. A low level programming language can execute code very quickly and uses minimal amount of memory. Examples of the language in this level are Assembly and Machine Code.

Middle level programming language

This level of programming language provides more abstraction, while having fair amount of hard to understand machine code. It is easier to use, making a program simpler and more understandable. This level of language dealt with variables, arrays, boolean expressions and other abstract computer science concepts. Examples for this type of language are C, C++, and Java.

High level programming language

Highest level of programming language is very easy to understand as it offers high amount of abstraction. As a pay-off, high level programming language do not offer as much function as low level programming language. Examples of this type of language are Perl, Ruby, Python and Visual Basic.

Example rank of programming languages

Lowest: Machine code
Low: Assembly
Medium-low: C
Medium: C++
Medium-high: Java
High: Python
Highest: SQL

This article is referred from Wikipedia's Low-level programming language, High-level programming language and Very high-level programming language article.

Day 5 - GUID Partition Table (GPT)

GUID Partition Table

GPT is a new way to handle a file system that could possibly replace the older standard MBR. It should be used on an UEFI (Unified Extensible Firmware Interface) system, although some BIOS (Basic Input Output System) system do support GPT file system

Features

GPT superseded MBR with the following features:
- GPT breaks the MBR partition limit of 2 TiB to virtually unlimited 18 EB (~18,000,000 TB)
- GPT allows up to 128 primary partitions to be made
- A protective MBR sector will be located at sector 0, the most front of the partition to prevent MBR-only operating system mistaken the the GPT as unpartitioned and overwrite everything in the GPT
- It stores critical files on after the protective MBR and end of partition to increase redundancy
- It contains cyclic redundancy check (CRC) to check for corrupted files and attempt to repair it

Compatibility

Most newer versions of operating systems supports reading and writing file on a GPT file system.

Support both read/write and booting from GPT (BIOS and UEFI):
- Windows Vista and 7 (64 bit only), 8, 8.1 and 10 (32 bit and 64 bit)
- Windows Server 2003 (IA-64), 2008, 2008 R2, 2012 and 2016 (IA-32)

Complete support for GPT:
- Windows Server from 2003 to 2016 that uses IA-64 architecture
- OS X since 10.4 (Only for Intel Macintosh Computer)
- Linux, Fedora since version 8 and Ubuntu since version 8.4
- FreeBSD since version 7.0
- Solaris since Solaris 10

This article is referred from Wikipedia's GUID Partition Table article.

Day 4 - Master Boot Record (MBR)

Master Boot Record



MBR is an older way to handle file system. MBR exist since 1983, even before Microsoft Windows exist. MBR contains the information about how the file system be handled. It also holds the bootloader. Optionally it contains 32-bit disk time stamp and signature.

Limitations

MBR has a few limitation, which is the reason why MBR is superseded by GPT (GUID Partition Table). The limitations are:
- MBR can only handle maximum hard disk size of 2 TiB (~2.2 TB).
- MBR can only have maximum of 4 primary partition, or 3 primary partition and 1 extended partition. (The extended partition can contains unlimited amount of logical partitions, but logical partition cannot be booted.)

This article is referred from Wikipedia's Master Boot Record article.

Day 3 - Common video ports

Introduction
There are a lot of video output connectors, this post will briefly introduce 5 of the common ones and their respective features.

Composite video connector (Early 1940)

Composite video connector is specifically for television and it is always yellow in color. It is designed date back to 1940 along with the red and white audio connector. This connector uses analog to transmit signal, therefore it is very vulnerable to interference and the quality will degrade very quickly due to length of the connector. This connector can be found in older television and game consoles, although it is almost obsolete by superseded by  new HDMI and DisplayPort cable.

VGA connector (1987)

VGA is short for Video Graphics Array. It is 3-rows 15-pin DE-15 (D-sub) connector. It transmit signal using analog, therefore it is vulnerable to environmental inference and degrade with distance. This connector has a lock at both side to tighten the connection. Many monitors support VGA, as it is designed to connect to a CRT monitor. This cable is still usable even until today and some of the newer graphic card still supports VGA connector. It has a maximum resolution of 2048×1536@85Hz.

DVI connectors (1999)

DVI is short for Digital Visual Interface. It has a few types of connectors type, namely DVI-I, DVI-D and DVI-A. DVI-D and DVI-A both have single link and double link to choose from. There is also Mini-DVI and Micro-DVI but I won't talk about it here.
Digital version of these connector won't degrade much easier than analog ones. For a cable length up to 4.5 meters will work just fine with maximum resolution of 1980x1200 at single link and 2048x1536 at dual link. A DVI booster can be used to boost the signal across longer distance.

HDMI connectors (2002)

HDMI stands for High-Definition Multimedia Interface. This is a digital connector that exist in newer type of monitors and backward-compatible with DVI using a DVI to HDMI converter (Although no sound output can be made due to DVI can't transfer sound). HDMI transfer uncompressed video and audio from HDMI source. Initial HDMI version 1.0 managed to encode 1980x1200@60Hz but the latest 2.0 version (2013) managed to encode display up to 4096x2160@60Hz.

DisplayPort (2008)

DisplayPort is a better replacement for HDMI. The latest version is 1.4, which is only published recently on March 2016. The main difference between DisplayPort and HDMI is DisplayPort has a lock, which can be locked firmly on the port to prevent accidental fall off. DisplayPort can support resolution up to 7680x4320@60Hz, which is pretty ridiculous for now. 

This article is referred from Wikipedia's Composite Video, VGA Connector, Digital Visual Interface, HDMI and Display Port articles.

Day 2 - Scalable Link Interface (SLI)

Scalable Link Interface

Scalable Link Interface (SLI) is a nVidia brand name of technology combining 2 to 4 graphic cards to produce one single video output. 
Graphic cards will be setup in a master-slave mode, one card will be the master and others will work for the master card. For example, a 3 way SLI setup will have 3 cards. The first card will be the master and others will be slave. All cards will divide the workload accordingly and when the slave cards finished their processing, they will output the result to master card and master card will then output all the result to a projecting device.
To reduce the latency between master and slave cards, a SLI bridge is used to reduce the bandwidth constrain and able to send data between two cards directly. SLI will work without the bridge but performance for high-end cards could suffer due to not enough bandwidth.

AMD has similar technology called AMD CrossFireX.

Modes available 

There are a few modes to configure the SLI, two of which is Split Frame Rendering (SFR) and Alternating Frame Rendering (AFR).

SFR works by splitting the workload of a frame equally to each card. For example, a frame with clear sky and some building can be split by a 7 to 3 ratio, since rendering the sky doesn't require much more processing power than the buildings, some extra building workload will be given to the card that render the sky.

AFR on the other hand renders by dividing the frame need to render to each card. For example, to render 60 frames, 30 frames will render by the first card and another 30 frames will render by the second card.

SLI can also use to double the anti-aliasing (AA) performance by splitting the workload.

This article is referred from Wikipedia's Scalable Link Interface article.

Day 1 - Onion routing

Onion Routing

Onion routing is a method of transferring a message through computer networks anonymously. The anonymity is done by encapsulating the message by layers of encryptions, just like layers on onion. To decrypt the onion message, the sender pick a series of nodes to route the onion. This series of nodes is called a chain, the first node is called entry node and the last node is called exit node.
When the sender send the onion message to the entry node, the entry node will only decrypt the onion message, pealing off the first layer of encryption to reveal the next destination. It will not know whether the previous node is actually the sender, or just one of the node in the chain, therefore it would not be able to know where the location of sender, but only the location for the next node. After the first layer of node had been decrypted, the onion message will send to the second node in the chain to decrypt, and send to the third node in the chain... until the exit node, which reveal the message. The message will then send to the receiver by the exit node.

Disadvantages 

Even this technique of encryption will increase the anonymity of the sender, hiding the origin of the sender, some ISP can trace and log the connection between two computers/node. The information such as the time the connection occur and the amount of data sent can be seen by ISP. For example, sender send an onion message on 0 seconds and the size is 50 kilobytes. ISP will log the connection between the sender and the entry node. Then, the entry node receives, decrypt and send the message with the size exactly 50 kilobytes to the next node. A few second later, the node received the exact same 50 kilobytes of the file... By this, ISP can determine the connection from entry node to exit node.

Secondly, the exit node can be compromised to see the raw message. The job of the exit node is to reveal the last encryption and send the raw message to the receiver. Therefore, the exit node could be compromised and crackers can extract the raw message from it, possibly containing passwords, personal identity and bank accounts.

This article is referred from Wikipedia's Onion routing article.