CS101 Midterm
actual colors are stored in what format?
binary
volatile
computer's memory is volatile...it is erased when the power is turned off
executable
creating a program that the computer can run
Moore's Law
describes the remarkable evolution of manufacturing technology ■ Moore noted that the number of transistors that can fit on a microchip doubles every 12 to 18 months ■ this pattern has held true for the past 30 years ■ industry analysts predict that it will continue to hold for the near future
resistance
electricity flowing through the wire meets resistance in the copper, and the signal is diminished; this limits distance, since the longer the wire, the more diminished the signal
Electricity Basics
electricity is a flow of electrons, the negatively charged particles in atoms, through a medium electricity can be quantified in amperes or voltage ■ amperes gauge electron flow: 1 amp is equal to 6.24 quintillion electrons flowing past a given point each second ■ voltage measures the physical force produced by the flow of electrons: standard household in United States has 110 to 120 volt outlets
Mechanical devices
from simple mechanical calculating devices to powerful modern computers, computing technology has evolved through technological breakthroughs
From Circuits to Microchips
initially, circuits were built by wiring together individual transistors ■ this did not lend itself to mass production ■ it also meant that even simple circuits consisting of tens or hundreds of transistors were quite large (to allow space for human hands) in 1958, two researchers (Jack Kilby and Robert Noyce) independently developed techniques that allowed for the mass-production of circuitry ■ circuitry (transistors + connections) is layered onto a single wafer of silicon, known as a microchip ■ since every component is integrated onto the same microchip, these circuits became known as integrated circuits
From Gates to Integrated Circuits
transistors are connected to form basic logic gates, which are then combined to build more advanced circuitry
From Transistors to Gates
transistors can be combined to form a circuit, which controls the flow of electricity in order to produce a particular behavior
Interpreted vs. Compiled Languages
interpreters can be run on anything compiled are specific for a particular kind of machine (if you wanna run it on a mac it needs to be written for a mac)
Truth Tables
-A Truth Table is used to describe to output of a logical circuit -It lists the inputs, the operation, and the result -Simplest example is a truth table for NOT, also called an Inverter
Transistors
1948 - the transistor was developed by Bardeen, Brattain, and Shockley -a transistor is a solid piece of metal attached to a wire that serves as a switch by alternatively conducting or resisting electricity -transistors allowed for the development of smaller, faster machines at a lower cost semiconductors are metals that can be manipulated to be either good or bad conductors of electricity ■ the first transistors were made of germanium and gold, but modern transistors are constructed from silicon ■ through a process known as doping, impurities are added to a slab of silicon, causing the metal to act as an electrical switch
When was the abacus invented?
3000 BC
Protocol
A protocol is simply a set of rules that describe how devices talk to each other ▪ It's like agreeing on which language...French, Italian, Spanish...to speak among friends ▪ Protocols describe the format of the messages that are sent between devices ▪ Messages are sent as groups of bytes - Just 1s and 0s!
Generation 0: Mechanical Computers - mid 1800's
Babbage designed his "analytical engine" ■ its design expanded upon mechanical calculators, but was programmable via punch-cards (similar to Jacquard's loom) ■ Babbage's vision described the general layout of modern computers ■ he never completed a functional machine - his design was beyond the technology of the day
Bluetooth
Bluetooth was intended to replace physical wires to connect things like a mouse to a computer
LAN protocols
At the local level, protocols (rules) are responsible for allowing devices to share a limited resource...the network connection ▪ There might be two or two hundred devices, all wanting to use the network ▪ Sharing the local network in a fair manner is the goal ▪ There are two general approaches - Orderly process: Token Ring, i.e. - Free-for-all: Ethernet, i.e
Digital to Analog (D/A) Conversion
In D/A Conversion, each stored number is read at a regular interval and a circuit outputs the equivalent voltage ▪ An electronic filter is used to smooth out the jumps from number to number
Token Ring
In a token ring network, device are attached to the LAN in a ring ▪ A special message, called a token, is passed from one device to the next, around the ring ▪ A device is only allowed to transmit when it holds the token ▪ The token has a timer, so that after a certain amount of time it must be passed along Token ring is very efficient, since only one device can transmit at a time ▪ A style of token ring called FDDI uses fiber to create a very fast, very efficient network ▪ That being said, ring networks are actually very rare in the wild
Programming languages
Programming languages take human-style language and transform it into the 1s and 0s that the computer understands ▪ The 1s and 0s we end with is called machine language The machine language is stored on some media, such as a disk drive or thumb drive, until it is ready to be used ▪ The program is then read from disk into the computer's memory and executed
Special IP networks
There are three IP subnets that are special in that they DO NOT pass through to the Internet - they are just for local networks ▪ They are: - 192.168.0.0 (64k addresses) - 172.16.0.0 to 172.31.0.0 (1M addresses) - 10.0.0.0 (16M addresses) ▪ These private networks allow us to build large IP networks that are not directly connected to the Internet
Common features of Programming Languages
Variables • Logic • Input / output • Math
Encoding
We need to come up with a scheme to send 1s and 0s across a wire ▪ You'd think that we would use two levels of voltage on the wire to encode either a 1 or a 0 (high voltage=1, low voltage=0) ▪ In reality we do use two levels, but it's the transition from one to the other (high to low or low to high) that signals a 1 or a 0 ▪ If we used absolute levels (high and low), a cable that was plugged in upside down would result in incorrect transmission ▪ Another problem we need to solve is that each computer has its own internal clock, and they aren't synchronized ▪ Reading a bit (a 1 or 0) is done by timing...we know, for example, that each bit is 10 milliseconds in length, and so every 10 milliseconds we can read a bit ▪ If the sending and receiving clocks drift apart (due to temperature or other issues), eventually the timing will get out of synch and we might start missing bits ▪ (For the curious this is called clock skew) To solve this, an extra transition (low to high or high to low) is inserted into the middle of each bit to provide a precise clock signal to the receiving end
Hyperlinks
▪ The whole point of the web is to link page together ▪ Hyperlink tags, <a>...</a>, have two parts - The URL of the linked page - The text to display as part of the link ▪ Example: - <a href="http://bu.edu">BU homepage</a> ▪ The <a> tag uses an attribute, which is additional information about the tag; here the attribute is href, or hypertext reference ▪ The opening tag, then, is - <a href="http://bu.edu"> ▪ Then we have the text to display - BU homepage ▪ And finally the end tag, - </a>
Differences between 802.11 flavors
▪ There are several flavors of wireless - 802.11 a/b/n/g and so on ▪ Mostly the difference is how fast the connection is ▪ Less often it is about the channels the radio uses ▪ The 802.11 protocols are for the most part compatible with each other ▪ In a mixed network with devices using several protocols, generally the slowest will be the one that is used
Header tags
▪ There are several header tags available to create hierarchical structure ▪ They are <h1> (top level) <h2> (next level down) . . . <h6> (lowest level)
Lists
▪ There are two styles of list available: - Unordered (without numbers) - Ordered (with numbers) ▪ Lists are a nested style...here's an ordered list <ol> <li>First item...</li> <li>Second item...</li>
What about the cloud?
▪ There's nothing magic about cloud services ▪ Let's look at storing files on the cloud, say on Google Drive - On the server side, there are racks and racks and racks of physical hard disks (Google deploys in excess of 1 million servers) - The files are redundantly stored across several physical disks to prevent data loss if one disk fails - When you upload a file to the cloud, it is indexed, tagged for your account, and copied across those redundant disks
Well-known port numbers
▪ To keep things simple, common programs like web servers, email servers, and so on use standard port numbers - Web server on port 80, 8000, or 8080 - Secure web server on port 443 - Email server on port 25 - The game Doom on port 666
Differential Manchester encoding
'differential' means that we look for transitions from one level to another rather than an absolute low or high value ▪ 'Manchester' indicates that we send along the extra transition in the middle of each bit Transition in middle of each bit provides clocking - A transition at start of phase is a 0 - No transition at start of phase is a 1
Unicode
- ASCII can only store 128 characters, but many non-English alphabets contain many more symbols than that - Unicode was developed as a 2-byte (16-bit) solution that can handle many more characters
Analog
- An analog signal is one that can vary continuously, like this one -light, sound, our senses
disadvantages to Packet Switching
- Breaking up messages into small pieces means that they have to be reassembled at the receiving end - The small message pieces don't necessarily take the same path through the network, which means they might arrive out of order - It's possible that some message pieces might never make it to the destination
Bar codes
- Four widths of bars -Numbers are encoded by groups of four bars - Longer bars are for scanner alignment -Limited amount of data that can be encoded
Two styles of computing
- Thin client - Thick client ▪ The difference is the answer to the question: Where's the work being done?
word
-16 bits -two bytes
hexadecimal
-A base-16 number system that uses sixteen distinct symbols 0-9 and A-F to represent numbers from 0 to 15. -0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F -One reason we use hex so much is that it is much easier to remember or work with a hex value than its equivalent binary value...really it's just a convenience
digital
-A digital signal 'jumps' between levels...it is not continuous -discrete numbers
Operating Systems
-An operating system is a collection of programs that manage peripheral devices and other resources - in the 60's, operating systems enabled time-sharing, where users share a computer by swapping jobs in and out -as computers became affordable to small businesses, specialized programming languages were developed
Going from decimal to binary
-Basically we can just successively divide a decimal number by 2 and record the remainder each time -To get the result, start with the bottom digit and go up the column
BCD
-Binary Coded Decimal -Basically we are using binary but only allowing the values 0 to 9 -An advantage (and it's a big one) is that we can encode two decimal digits in one byte...one in each nibble (recall 1 byte = 8 bits, 1 nibble = 4 bits) -For example, 45 is encoded as 0100 0101
QR codes
-Created for the Japanese auto industry -A 2-dimensional grid encodes many more characters than a 1-dimensional barcode - Large and small squares used for alignment -Error-correcting bits allow for decoding an incomplete square - This 33x33 grid can encode up to 50 characters
Circuit switching
-In a circuit-switched network, a connection (called a circuit) is made between two devices ▪ The circuit is said to be "nailed up" in reference to old telegraph wires ▪ The circuit remains up until the connection is no longer needed, even if no messages are being sent ▪ This has several advantages: - We can analyze the circuit for noise and adjust the speed of the data being sent - Messages arrive in the same order that they are sent - The circuit is always available
Bits and bytes
-In computing we do things by powers of 2 (because switches) -Because of the way computer memory is built (among other things), we organize bits into groups of 4, 8, 16, 32, 64, and so on
BASIC
-Invented by Bill Gates and Paul Allen -early languages were designed for specific computers; remember, there might be only one or two copies of a particular machine -
Storing Colors
-Like numbers, there is no switch setting for 'red' or 'purple' or 'cornflake' -We need some way to map colors onto numeric equivalents which we can...you guessed it... convert to binary and store on the computer -There are many schemes, but a common one is RGB...for red, blue, green -modern LED and LCD screen still use pixels of red, green, and blue -RGB values are 24 bits wide, with 8 bits for each of the colors -Since 8 bits can hold 256 different values, each color can be assigned a number from 0 to 255 -RGB is widely used when working with web pages and HTML/CSS -We represent the colors as three 2-digit hex values
Base 2 (binary)
-Recall that any number raised to the zeroth power is 1 by definition -From there, the exponent tells us how many 2s we multiply together -For example, 23 is 2 x 2 x 2 or 8 - And so... -This works exactly the same way in binary, except that we use powers of 2 rather than powers of 10
Binary
-Since switches have only two states, on or off, we use a numbering system that has only two values, 0 and 1 (zero and one) -This is called the binary numbering system - In a computer, each 1 or 0 is known as a bit, which is short for binary digit -Every number in decimal can be represented in binary form
The Universal Gate
-The NAND gate, which we've see earlier is known as a 'universal' gate because NAND can be combined to create a circuit that mimics every other logical operation -Because it is easier to manufacture gates that are uniform, most microcircuitry is designed almost exclusively as a collection of NAND gates -When Apple says its new A8 chips have 2 billion transistors, almost all of those transistors are configured into NAND gates
Base 10 (decimal)
-The base is just a notation we use to encode numeric values -Each digit in a number is information that we use to come up with the final value - For example, we know that in a decimal (base 10) number, from right to left we are talking about the 'ones', 'tens', 'hundreds', 'thousands' positions and so on -Since we are working with a decimal, base-ten number, each column from left to right represents a power of ten -Recall that any number raised to the zeroth power is 1 by definition -From there, the exponent tells us how many 10s we multiply together
how are computers like a glorified light?
-The basic component in digital electronics, including computers, is a simple switch -Just like a light switch, an electronic switch has two states... on and off (and no smart remarks about dimmer switches) -There are gazillions of these switches in a CPU chip (a typical quad-core Intel i7 has 1.4 billion of them) - The switches are combined into circuits to do useful things
ASCII
-There are several letter-mapping schemes, but ASCII, the American Standard Code for Information interchange, is a popular one - Each 7-bit ASCII code maps to one character - For example, the letter 'a' is stored as 110 0001 - In addition to the alphabet and numbers, there are several control characters (such as 0x07, 'ring bell' and 0x0a, 'line feed')
Storing characters
-When we type a document, say in Word or Pages, or perhaps an email, it feels as though we are storing letters on the computer...a, y, g, and so on - But remember that the computer can only deal with 1s and 0s - We need some way to map a binary number to a letter so the computer can store and work with it
There are two ways to connect devices together into a LAN
-Wires -Wireless Wired LANs are older technology; wireless is the current method (in most cases)
Analog-to-Digital (A/D) Conversion
-have to take the original thing, whether it be a photo, song, or whatever, and convert it to binary numbers that the computer can work with -Typically an electronic chip will do the conversion; it takes an analog signal in on one side and outputs the digital result
"stored program" computer
-von Neumann popularized the idea -Memory stores both data and programs -Central Processing Unit (CPU) executes by loading program instructions from memory and executing them in sequence -Input/Output devices allow for interaction with the user virtually all modern machines follow this von Neumann Architecture
Converting binary to hexadecimal
1. Break the binary number into 4-bit parts 2. Convert each part to decimal 3. Write the hex equivalent
Converting hexadecimal to binary
1. Separate each digit 2. Convert each digit to decimal 3. Write the 4-bit binary value for each digit
How many different symbols can ASCII store?
128
nibble
4 bits
byte
8 bits
whois
A tool called whois can give you lots of info about who owns a domain name or an IP address
variable
A variable is a symbol that holds some value ▪ We use the variable in our program, and the value that it represents is stored in memory
Ada Lovelace
Ada Lovelace, daughter of Lord Byron, the poet, was a dear friend of Charles Babbage and was fascinated by his Analytical Engine She was a polymath, interested in a wide variety of topics; her algorithm to compute Bernoulli numbers, written in 1842, is recognized as the first computer program
DSL
Digital Subscriber Line (DSL) is relatively old technology but still prevalent in many parts of the US ▪ It uses the Plain Old Telephone System (POTS) to transmit data alongside voice information ▪ Filters are used to separate voice from data ▪ Because it uses old telephone wires, speed is limited to less than 1Mbit/s (usually a lot slower) The device used to attach to a DSL line is a modulator/demodulator (modem) ▪ The system uses audio tones to transmit data
compiled
Do everything ahead of time...translate the human-readable code into machine language, store it, and then execute it at some later time
What kind of switching does the Internet use?
Even though packet switching is much more complex than circuit switching, it is what the Internet uses ▪ The connections from device to device are managed by routers ▪ First let's take a look at the addresses the Internet and its routers use
Networking 2 things
Every device on a network has some sort of address (we'll use the word 'device' to refer to something attached to a network) - each address is unique on the network ▪ Every connection on a network is between only two devices (also called point-to-point)
Local Area Networks (LANs)
Generally speaking, local networks are the devices around you ▪ These local devices are connected directly together and can talk to one another ▪ For example, your room might have a laptop, a desktop, and a printer ▪ There are lots of other network-size definitions, such as Wide Area, Personal Area, and Metropolitan Area
Frequency hopping
Invented by film actress Heddy Lamar in the 1940s as a way for Allied ships to communicate securely The basics: Transmit on one channel for a short period of time (a few milliseconds), then switch to another channel, then another... ▪ The transmitters and receivers use the same hopping pattern and stay in sync ▪ The result is that it's statistically unlikely for two devices to be using the same channel at the same time
Brackets
It's an open-source WYSIWYG code editor sponsored in part by Adobe ▪ It works with many programming languages but is especially good for HTML ▪ HTML is a STRUCTURAL language, not visual, and a page might look different depending on which browser is being used
Physical characteristics of wire
LAN wiring is typically a set of eight thin wires, twisted into pairs, packaged as four pairs in a single cable
the web server
Listens for requests in the form of a URL ▪ Uses the URL to locate a file in its directory structure ▪ Might run code inside the file (such as PHP) to create dynamic HTML, often via a database ▪ Returns the HTML file to the browser (client)
Two kinds of compression
Lossless and Lossy compression
MPEG
MPEG video compression is lossy ▪ It strives to remove as much information as possible from the original video stream ▪ Video is typically a series of still images taken at 24 frames per second ▪ One big win - if something in a frame of video is identical to the one before, there's no need to save it, just store what has changed ▪ MPEG also looks at the color information of adjacent pixels and 'smooths' them ▪ If one pixel is nearly the same color as its neighbor, both are assigned an in-between value ▪ Our eyes don't typically notice the difference
Networking layers
Modern networks are arranged in layers, with each layer responsible for a small portion of the overall network communication
Index files
Notice that http://www.bu.edu/cs/courses doesn't have a file name at the end of it, just a directory ▪ Web servers treat any file named 'index.html' as a default file to return if no other file is specified ▪ Since it is the default, we don't have to write out the entire URL (though we could)... http://www.bu.edu/cs/courses/index.html
The Open Source community
One feature of open source is that volunteers work together to create new products ▪ The Linux operating system, for example, is developed and maintained by thousands of volunteers ▪ When someone has an idea for a project, they'll announce it on various software forums and ask for volunteers to make it happen ▪ The result of decades of this sort of work is that a vast majority of programs you use every day are FOSS ▪ Web servers, apps, operating systems, databases, even Brackets ▪ Most developers work on FOSS projects just for the pleasure of it
FORTRAN
One of the original high level languages, short for Formula Translation, created by John Backus to make programming easier for math and science applications.
Wire vs Fiber
Optical fiber is increasingly used to connect LAN devices ▪ Fiber uses light rather than electricity to transmit and receive bits ▪ Each strand of fiber is made of glass and about the thickness of a human hair ▪ While there are limits to the length and speed of transmission, fiber is hundreds to thousands times faster than copper cable
Generation 0: Mechanical Computers - 1642
Pascal built a mechanical calculating machine -used mechanical gears, a hand-crank, dials and knobs -other similar machines followed
A computer can only do a very limited number of things, such as:
Store and retrieve numbers in memory • Add numbers together • Shift numbers left and right
NAND Gate
The NAND gate is an AND gate followed by a NOT gate. The output of a NAND gate is logic 0 when all inputs are logic 1.
NOR gate
The NOR gate is a combination of an OR followed by a NOT gate. The output is logic 0 when any of the inputs is logic 1.
Octal
The octal number system is base 8, using only digits 0 through 7.
XOR Gate
The output of this gate is logic 1 if an odd number of its inputs are logic 1; otherwise, the output of this gate is logic 0.
CD audio
To create a standard CD, the A/D converter samples the music at the rate of 44,100 times per second ▪ Each sample is 16 bits (2 bytes) long ▪ There are two sample streams, one for the left and one for the right in a stereo recording ▪ Let's do the math: 44,100 x 2 x 16bits = 1,411,200 bits stored each second ▪ A typical song is about 32 million bytes (32Mb) long
interpreted
Translate the human-readable code into machine language one line / statement at a time while the program is running
modulo
Usually you will also find %, which is the modulo operator; it returns the remainder of a division: 5%2 would be 1 (5 / 2 is 2 with remainder 1) ▪ You might use modulo to see if a value is even or odd 47 % 13 = MODULO 8
The Boolean expression for the NOR gate
Y = (A + B)'
The Boolean expression for the XOR gate
Y = (A · B') + (A' · B)
The Boolean expression for the NAND gate
Y = (A · B)'
The Boolean expression for the OR gate
Y = A + B
The Boolean expression for the AND gate
Y = A · B or Y = AB
The Boolean expression for the NOT gate
Y = A'.
Client-server
You might recall that the internet is primarily a client-server architecture - Clients request information - Servers send information back ▪ We sometimes call this a request-response architecture ▪ Web servers are just applications that listen for requests and return a response
PMOS Transistor
a PMOS transistor is positively doped, so that the switch is "closed" when there is no current on the control
Lossy compression
accepts some loss of quality in return for a much smaller file Humans are pretty good at filling in the gaps when listening to sound or viewing moving images ▪ For example, in a conversation you might not get every word, but you'll understand the meaning ▪ Lossy compression takes advantage of this by removing 'unnecessary' parts of the original to reduce its size ton University Slideshow Title Goes Here CS101 Intro to CS 18 ▪ In music, for example, there are highs and lows that most human ears can't hear...no need for those ▪ When two sounds are playing simultaneously, we hear only the louder one...we can just drop the quieter one ▪ Some sounds are heard better than others, so we can deemphasize them ▪ The result is a file with less information, and thus smaller ▪ This is how MP3s work
NMOS transistor
an NMOS transistor is negatively doped, so that the switch is "open" when there is no current, but "closes" when there is current
Generation 4: VLSI
late 1970's - Very Large Scale Integration (VLSI) -by the late 1970's, manufacturing advances allowed placing hundreds of thousands of transistors w/ circuitry on a chip -this "very large scale integration" resulted in mass-produced microprocessors and other useful IC's - since computers could be constructed by simply connecting powerful IC's and peripheral devices, they were easier to make and more affordable -with VLSI came the rise of personal computing
Generation 1: Vacuum Tubes
mid 1940's - vacuum tubes replaced relays -a vacuum tube is a light bulb containing a partial vacuum to speed electron flow -vacuum tubes could control the flow of electricity faster than relays since they had no moving parts - invented by Lee de Forest in 1906 1940's - hybrid computers using vacuum tubes and relays were built
Generation 2: Transistors
mid 1950's - transistors began to replace tubes -a transistor is a piece of silicon whose conductivity can be turned on and off using an electric current ! they performed the same switching function of vacuum tubes, but were smaller, faster, more reliable, and cheaper to mass produce -invented by Bardeen, Brattain, & Shockley in 1948 (earning them the 1956 Nobel Prize in physics) -some historians claim the transistor was the most important invention of the 20th century
Generation 3: Integrated Circuits
mid 1960's - integrated circuits (IC) were produced -Noyce and Kilby independently developed techniques for packaging transistors and circuitry on a silicon chip (Kilby won the 2000 Nobel Prize in physics) -this advance was made possible by miniaturization & improved manufacturing -allowed for mass-producing useful circuitry
Electricity and Switches
modern computers are powered by electricity, using electrical signals to store and manipulate information the components of a computer require electrical power to carry out their assigned task ■ electricity generates the light that shines through a computer screen, illuminating the individual pixels that make up images and letters ■ electricity runs the motor that spins the hard-drive disk, allowing information to be accessed ■ main memory and CPU employ electrical signals to store and manipulate data ■ bit patterns are represented by the presence or absence of electrical current along a wire
AND gate
produces voltage on its output wire if both input wires carry voltage
OR gate
produces voltage on its output wire if either input wire carries voltage
Generation 0: Mechanical Computers - 1930's
several engineers independently built "computers" using electromagnetic relays ■ an electromagnetic relay is physical switch, which can be opened/closed via electrical current ■ relays were used extensively in early telephone exchanges
TRACEROUTE
shows the name or IP address of each router between you and the destination, and the ping time between them and your machine
Packaging Microchips
since a silicon chip is fragile, the chip is encased in plastic for protection ■ metal pins are inserted on both sides of the packaging, facilitating easy connections to other microchips impact of the microchip ■ lower cost due to mass production ■ faster operation speed due to the close proximity of circuits on chips ■ simpler design/construction of computers using prepackaged components
The word calculate comes from
the Latin calculus or pebble
Generation 0: Mechanical Computers - 1805
the first programmable device was Jacquard's loom ■ the loom wove tapestries with elaborate, programmable patterns ■ a pattern was represented by metal punch-cards, fed into the loom ■ using the loom, it became possible to mass-produce tapestries, and even reprogram it to produce different patterns simply by changing the cards
NOT gate
the flow of electricity is manipulated so that the output signal is always opposite of the input signal
nonvolatile
the information is not erased when power is turned off (unlike memory) Disk and related media (thumb drive, DVD etc)
Generation 5: Parallelism/Networks
the latest generation of computers is still hotly debated - no new switching technologies, but changes in usage have occurred parallel processing has become widespread - multi-core processors provide simple parallelism, can spread jobs across cores - similarly, high-end machines (e.g. Web servers) can have multiple CPU's - in 1997, highly parallel Deep Blue beat Kasparov in a chess match -most computers today are networked
Input and output (I/O)
the manner in which data is received into a computer system, and the manner in which information and the results of processing are provided to the user from a computer system
Switches
the most basic tool for controlling the flow of electricity is a switch ■ a switch can be flipped to connect or disconnect two wires, thus regulating the flow of electricity between them example: a light switch on a wall serves as an intermediary between the power line entering your home and the outlet that operates a lighting fixture
Manufacturing IC (integrated circuits)
the production of integrated circuits is one of the most complex engineering processes in the world ■ transistors on chips can be as small as .065 microns (roughly 1/1,500th the width of human hair) ■ since a hair or dust particle can damage circuitry during manufacture, chips are created in climate-controlled "clean rooms"
Gates and Binary Logic
the term "gate" suggests a simple circuit that controls the flow of electricity ■ we can think of a gate as computing a function of binary values - 0 represents no current; 1 represents current
Full-adder Circuit
the term "half-adder" refers to the fact that when you add binary numbers containing more than one bit, summing the corresponding bit pairs by column is only half the job ■ you must also consider that a bit might be carried over from the previous addition ■ using half-adders and logical gates as building blocks, we can design a circuit that takes this into account (known as a full-adder)
4-bit Adder Circuit
using full-adders as building blocks, we can design a more complex circuit that sums two 4-bit numbers ■ since a full-adder is required to add each corresponding bit pair together (along with possible carry), the circuit will need four full-adders wired together
Lossless compression
you can exactly recreate the original version from the compressed file ▪ Let's start with a sentence: The rain in Spain falls mainly on the plain ▪ The sentence has 43 characters including spaces ▪ Do you see any repeating patterns in the sentence? ▪ The character sequence a-i-n appears quite a bit We could set up a small part of our file with an index of sequences, Applied to a large file, a 30% reduction would be significant ▪ The compression program scans the file looking for patterns, stores the patterns in a dictionary, and replaces relevant patterns with dictionary indexes ▪ This is lossless...we can exactly recreate the original
Ethernet Basic Rules
• Got traffic? First, listen to make sure that nobody else is using the wire - If busy, defer the transmission, and try again • Once the coast is clear, start transmitting • While transmitting, listen for collisions • A collision happens when two devices are transmitting at the same time, effectively canceling each other out - If you detect a collision within the collision window, stop transmitting and back off for a random amount of time. Retry • Try for a number of times (16 typically), then give up • There's no real order here, and it's possible for all devices to try to transmit at the same time • Even though it sounds chaotic, this is what most LANs use • Formall, this is Carrier Sense Multiple Access / Collision Detection (CSMA/CD)
Open Source Software (OSS)
• We often equate open-source with 'free', but that's not necessarily the case • Open-source simply means that the original source code for the software is publicly available for inspection and modification
Colossus (1943)
■ first "electronic computer", built by the British govt. (based on designs by Alan Turing) ■ used to decode Nazi communications during the war ■ the computer was top-secret, so did not influence other researchers
ENIAC (1946)
■ first publicly-acknowledged "electronic computer", built by Eckert & Mauchly (UPenn) ■ contained 18,000 vacuum tubes and 1,500 relays ■ weighed 30 tons, consumed 140 kwatts
github
▪ 'git' is a tool used to track changes to software, bugs, documentation, and to provide collaboration among teams ▪ github has about 10 million users and just finished a funding round with a valuation of $2b ▪ They see about 4,000 new projects started each day, some big, some small
A good way to learn HTML...
▪ ...is to look at the HTML of pages that you like ▪ To do that, in your browser click File / Save As on the page you want to look at ▪ On OS/X be sure to save the file as Page Source ▪ You can now open up the file in Brackets or other text editor to see how things were designed ▪ Most browsers also offer View Page Source if you just want a quick look
For loops
▪ A for loop executes a series of steps a certain number of times
Routers
▪ A router connects IP networks together ▪ There are 232 or 4 billion possible IP addresses ▪ We could just have one ginormous router with 4 billion ports...a message would enter on one port and be delivered to another ▪ This is currently impractical, so we have lots of smaller routers ▪ Each router is responsible for a small number of IP addresses ▪ The addresses are divided into groups called sub-networks (or just "sub-nets") ▪ In an IP address, a zero at the end indicates that we are not talking about a single IP address, but instead a sub-network ▪ Each router is connected to one or more subnets, one on each of its ports ▪ An eight-port router would, then, be connected to up to eight subnets ▪ When a message comes in one port, the router looks at the subnet number of the TO address and decides which port it will use to deliver it ▪ The router keeps track of its routes by using a little table of ports and subnets and does a lookup each time a message comes in ▪ Your laptop or desktop connects (via either Ethernet or 802.11 wireless) to a local router
What uses Ethernet?
▪ Ethernet is used on almost all network devices ▪ It is the low-level, point-to-point protocol for laptops, printers, desktops, video devices like Roku or AppleTV, and just about anything else you can think of ▪ Ethernet is a wired medium - if a network cable plugs into the back of a device, you're almost guaranteed it is Ethernet
DNS
▪ A service called the Domain Name Service automatically translates names like www.amazon.com into IP addresses like 205.251.242.103 for us ▪ Just like routers, DNS servers are set up as a hierarchical tree ▪ At the very top of the tree is the server for the root domain, called "." ▪ In fact, all domain names end in a dot, like www.bu.edu. - we just omit it since it's the same for every address ▪ Every time you access a site, www.amazon.com your local computer looks in a local cache (a table in memory) to see if it knows the IP address ▪ If it doesn't, your computer asks its local DNS server, which looks in its cache ▪ If the local DNS server doesn't know the address, it will ask the "." server if it knows which other server might know the answer ▪ The "." server is quite busy, so it will probably suggest asking the .com server ▪ The .com server will point us to the "A" server (a for amazon) ▪ The "A" server will send back the address of the server owned by Amazon, which has the address we are looking for
Syncing cloud files
▪ A small program runs on your computer that watches files both on your computer and on the cloud ▪ When one of them changes, the new version is copied to any place that needs it - If you change it on your computer, the changed file is copied to the cloud server - If another of your computers is connected to the cloud server, it will receive the new copy, too
String variables
▪ A string is a collection of characters, and it is stored in memory one character per memory location; each character is typically 1 or 2 bytes ▪ We can indicate a string in most languages with quotation marks myString = "This is an awesome string"
While loops
▪ A while loop executes a series of steps while some condition is true ▪ The test (the part between the parens) returns either true or false ▪ The loop continues until the test returns false ▪ We use while loops when we don't know how many times we need to repeat the steps...it relies on an external condition
Wireless LANs use radios
▪ Access points and 802.11 are radio-based ▪ The radios operate in an unlicensed portion of the radio spectrum (transmitters like WBZ require a license from the FCC) ▪ In the same spectrum portion are garage door openers, baby monitors, cordless telephones, microwave ovens...just about every consumer item that uses radio ▪ To avoid interference with all these devices, 802.11 use frequency hopping
Wireless LANs
▪ All those wireless access points you see at Best Buy use a protocol with the mellifluous name '802.11' ▪ 802.11 operates in a similar fashion to Ethernet; each wireless device has a unique address, and messages are sent point-to-point from one device to another ▪ The access point operates as a kind of switch, receiving messages and resending them to the
Document structure
▪ An HTML document has a specific structure ▪ The entire document starts and ends with <html>...</html>, which marks it as an HTML doc ▪ The first part contains metadata...the title of the page, keywords for use in search, author's name, and so on ▪ It's called the Head of the document and is surrounded by <head>...</head> tags ▪ After the Head comes the Body, which is the main content of the page and is surrounded by <body>...</ body> ▪ Not surprisingly, after the Body comes the Footer (which really should have just been called the Foot, right?) ▪ The Footer is typically placed at the bottom of a page and is surrounded by <footer>...</footer>
Loops
▪ Another form of logic is looping; doing a series of steps repeatedly ▪ There are two forms: a while loop and a for loop ▪ They are similar but used for different situations
impedance
▪ Another limit is impedance, which is similar to resistance, but varies according to the speed (ie the frequency) of the signal; this limits the overall speed
Thick client
▪ As desktop computers started becoming more powerful and less expensive in the 80s and 90s, the trend was to move work from the mainframe to the client ▪ Since the client is doing most of the work, we call it "thick" (no, I don't know why) ▪ The client requests data from the back end, works on it, and sends the results back for storage ▪ This trend started prior to the introduction of what we know as the modern PC, and the PC accelerated it
Ethernet frame
▪ At the LAN level, the messages we are passing back and forth are called frames ▪ The frame is pretty basic, just addresses, the data, and a little bit of extra information
Router hierarchy
▪ At the local level, a router might know about a very small number of subnets, similar to 192.168.1.0, 192.168.2.0 and so on ▪ At the next level up, the router will know how to deliver to subnets like 192.168.0.0 and 192.169.0.0 ▪ At the very top level of the Internet, each route includes millions of addresses
Ports
▪ Each computer uses 64k unique port numbers, from 0 to 65535 ▪ Each application is assigned one of those numbers ▪ The message going to or coming from the network carries both the sender's and receiver's port number, just like the "to" and "from" addresses we've seen earlier ▪ This lets us use one network connection to service multiple applications (called "multiplexing")
The DEFAULT route
▪ Each router has an extra port that is used for a "default" route ▪ The default route is used when the router doesn't know how to deliver a message ▪ The hope is that the next router might have a clue ▪ Routers are arranged as a tree, and at each level the routers know how to deliver to larger and larger numbers of subnets
HTML tag format
▪ Each tag in HTML has a beginning and an end ▪ Here's an example...a paragraph is marked with the <P>...</P> tag set: <P>This is a new paragraph in my soon-to-be bestseller mystery about a university professor who discovers a hidden message in a large Citgo sign looming over campus.</P> ▪ The / indicates the end of a tag ▪ For every tag, there should be a matching end tag ▪ Tags may be nested; here's a tag for emphasis inside a paragraph: <P>Who could have <i>known</i> that the message would change life as we know it?</P> ▪ We think of <i>...</i> as "italic" but really it is just emphasis...different browsers will interpret it differently ▪ Another emphasis tag is <b>...</b>, which we think of as "bold"
Web architecture
▪ Early web sites were built as thin client...all of the work was done at the web server, and just the things that were to be displayed were sent back to the browser ▪ This evolved into a more balanced model as web-oriented programming languages such as Javascript were developed ▪ Today, much of the work is done in the browser, with the server passing code to the browser to execute locally
The Ethernet protocol
▪ Ethernet was developed at Xerox by Bob Metcalfe in the 1970s ▪ The protocol calls for messages of up to 1500 bytes and describes how devices decide when to send their messages and when to listen ▪ Addresses in Ethernet are 6 bytes (48 bits) long ▪ Each message includes the recipient's address, the sender's address, and some additional information about the message
What does GPL look like?
▪ GPL is only one of many open-source licenses, but all work similarly ▪ You may sell, distribute, modify, and basically do whatever you want to with the software ▪ However, you must provide the source code to all of your product if any portion of it uses GPL licensed code ▪ Many companies make money by selling services around open source products...
The <table>
▪ HTML has a rich set of tags to create tables ▪ The tables are organized logically in rows ▪ For 'pretty' tables we'll apply CSS rules, but the basic tables aren't horrible ▪ Each table tag can take a width parameter, expressed in percentage of the page or div or row width, or an absolute size - A table 80% of the page width: <table width=80%> - A data item 20% of the row width: <td width=80%> - A data item exactly 50 pixels wide: <td width=50px> ▪ Another useful attribute is align, which can be left, center, or right - A row 80% wide and aligned flush right: <row width="80%" align="right">
Thin client
▪ Historically, most computer applications have been thin client ▪ A simple display and keyboard, called a "dumb terminal" connect over a network to a more powerful computer and is used to type in data and make requests ▪ The remote computer does all of the work, and sends the result back to the terminal for display ▪ You'll see these everywhere...next time you are at the bank, sneak a look at the computer the teller is using...if you see a lot of green, it's probably a thin client, dumb terminal ▪ Why green? ▪ Cheap terminals often use monochrome, green phosphor, and so these are called "green screens"
Borrowing images
▪ If you find an image that you like on the web, and you have permission to use it, you can just right-click on the image itself on the web site and copy the URL of the image ▪ Then just use that URL in the <img> tag on your own page
JPEG
▪ Image compression is pretty similar to video compression ▪ In JPEG, a lossy method is first run to reduce the number of similar adjacent pixels, and to slightly flatten out the highs and lows of the image ▪ A lossless compression is then run on the result ▪ Like audio, you can choose the sample rates...a severely compressed image would be quite blocky
Port example
▪ Imagine a server - The IP address is 192.168.1.5 - The Ethernet address is 00:2b:4c:12:45:b8 - The email server program uses port 25 - The web server uses port 80 ▪ If you wanted to visit a web page on the server, you'd go to http:// 192.168.1.5:80 - The :80 means you want to connect to port 80 ▪ The server would receive the request, look at the port number, and hand the message to the web server
LAN to WAN
▪ In a nutshell, your local network is primarily Ethernet, which ties together all of your local devices such as printers, laptops, media and so on ▪ Anything outside your local area goes through a router to the IP network and the Internet ▪ Long-haul routes, such as North America to Africa, are typically made on undersea fiber cables or satellite shots ▪ There are so many moving parts...it's a miracle that all of this works! ▪ And then there's the whole mobile (i.e. cell phone) network story...
Variable types
▪ In memory, different kinds of values take different amounts of space ▪ For example, an integer (a counting number like 5) might take 2 bytes, while a float (a number with a decimal like 123.456) might take 4 bytes ▪ This means that the program needs to know what type a variable is in order to set aside the correct amount of space
Gratis vs Libre
▪ In terms of software, Stallman sees programming as an expression of free speech ▪ So, Stallman and the Free Software movement don't necessarily believe that software should be free and in gratis, but rather free as in libre ▪ Because of this, software licensed under the GPL is open code available for all to see, but may also be sold and distributed ▪ Stallman developed the notion of copyleft which requires that new software which contains portions of code licensed under GPL must also be GPLd in its entirety
Local vs remote images
▪ In this example the image is coming from a web server...we know that because it starts with http <img src="http://c773974.r74.cf2.rackcdn.com/ 0434177_302356.jpg"> ▪ If the image is stored on the same computer as the web server, you only need to include the directory and file name...the web server will find it
text compression
▪ It turns out that text is really easy to compress ▪ The idea is similar to other schemes...look for patterns and give common ones a special code ▪ For example, 'the', 'and', 'is', 'was', and so on are very common in English sentences ▪ There's no reason to send the entire word, just send a code
Bluetooth protocol
▪ Just like Ethernet, Bluetooth is a protocol, or set of rules, on how to send messages between two devices ▪ It has its own set of addresses which are 48 bits (6 bytes) and are unique ▪ Usually Bluetooth is used just as a wire replacement and isn't intended for forming complete networks ▪ Bluetooth is much slower than Ethernet, with speeds of 25 Megabits / second
XML
▪ Let's create an XML structure to hold employee information <xml> <employee> <name> </name> <id> </id> <salary> </salary> <department> </department> </employee> </xml> ▪ The record tells us ABOUT an employee, ie what we will use to describe an employee ▪ It isn't the actual data ▪ We can use the structure to define multiple employees, like this...
De-duplication
▪ Let's say GOOG has 10 million users of Google Drive ▪ And let's say that all 10 million have saved Pomplamoose's mashup up Pharrell's Happy and Daft Punk's Get Lucky (Because it is so awesome) ▪ Would it make sense to store all 10 million copies? ▪ NO! ▪ GOOG will de-duplicate the file ▪ This means it will store ONE copy but also store a reference to that copy in the 10 million accounts that think they've stored their own personal copy
Caching
▪ That's a lot of work and a lot of messages for just one address ▪ We don't want to do this more than once ▪ When we get the IP address for www.amazon.com your local computer caches the address (stores it in a table) and the next time it is needed just grabs the address from there, which is much faster
Image attributes
▪ Like most HTML tags, images have many attributes; some commonly used ones are - align="right" (or left, or center) - width and height : width="100px" - text to be included in a popup when someone hovers (or the image can't be displayed) alt="This is Maggie with a sock." ▪ So, an image of Maggie with a sock might look like this: <img src="http://kidpub.com/images/ maggieSock.jpg" width="100px" alt="Mags with my sock" ▪ It's pretty common to include images in tables or divs to specify their location on a page
Logic
▪ Logic statements return either true or false; they are boolean operations • Usually we use an if statement to execute a logical operation • if (this statement is true) do a series of steps otherwise do a different series of steps • The test is often a comparison operator such as equal (==), less than (<), or greater than (>)
Tables for positioning
▪ Many web page designs us tables to implement layout and design ▪ The entire page is an 'outer' table, and smaller tables are written as rows inside of it
Adding binary numbers
▪ Much simpler than adding decimal numbers...just two values, 0 and 1 ▪ We do have to worry about carrying, though
Libraries
▪ Nearly all computer languages include a set of libraries that add functionality to the base language ▪ For example, most languages don't offer a built-in random number generator, but will have a library that does ▪ This keeps the base language small, and you then can add just the functions that you need for your task ▪ Companies spring up around specialized libraries, and programmers often create and share useful libraries
Connecting Ethernet devices
▪ Normally Ethernet devices don't plug directly into each other ▪ We use a device called a switch to connect two or more Ethernet devices together - the cables plug into a connector called a port ▪ When a switch receives a message, it looks at the recipient's address and determines which port to deliver the message to
Internet operating systems
▪ On the server side, the major operating system players are Linux /Unix and Windows ▪ Linux / Unix accounts for between 60% and 80% of all web servers (some analysts put that closer to 90%) ▪ Apple's OS/X has about 0.1% market share (though some include it in the Unix count since that's what it really is)
Adding images
▪ One more tag to look at today ▪ The <img> tag allows you to place an image on the page ▪ It has a few important attributes...the most important is the location of the image file
Internet addresses
▪ Outside of the LAN, addresses are in Internet Protocol (IP) format ▪ You've probably seen lots of these ▪ They look like: 192.168.1.16 ▪ This "dotted decimal" format is just a convenience for humans...the computer reads it as a 32-bit binary number ▪ If you were bored you could convert the dotted decimal, which is something like base 256, into its 32-bit equivalent -Every device connect to the Internet has a unique IP address (with one big exception) ▪ Remember how an Ethernet switch looks at the "To:" address of a message and decides which port to deliver it to? ▪ IP has the same kind of device
Math
▪ Programming languages provide basic math operations ▪ They look the same as your calculator: +, -, *, /
the client server
▪ Receives a file from the web server ▪ Interprets the HTML code inside the file ▪ Might run additional programs inside the file (such as Javascript) ▪ Displays the HTML according to its own internal rules (ie how <b> text is displayed)
Stallman
▪ Richard Stallman (rms) (Harvard, MIT) started thinking about how software was being distributed in proprietary, closed formats in the 1980s while working at the Media Lab ▪ In 1989 he published the first version of the GNU General Public License, which says that the recipient and user of software is free to use, modify, redistribute, and otherwise own the software ▪ PROVIDED that such modifications are released back to the community
Ethernet LANs
▪ Since Ethernet uses wires, the physical size of the network is limited ▪ There's also a practical limit to the number of ports a switch can have, though it is possible to connect switches together ▪ We normally consider Ethernet to be a protocol for Local Area Networks (LANs) ▪ Ethernet is relatively fast - speeds of 100 Megabit / second or 1 Gigabit / second are common
What's behind the thick client?
▪ Since the client is doing most of the work, really all we need on the other side is data, usually stored in a database or a set of files ▪ Computers on the back end tend to be highly optimized and are data-centric ▪ Modern examples are database systems from Oracle and IBM ▪ The back-end is still expensive...those Oracle licenses can be several hundred thousand dollars per year per CPU (and a machine might have dozens of CPUs
A short history of HTML
▪ Sir Tim Berners-Lee, working at CERN (European Center for Nuclear Research) starting thinking about how to share research documents with coworkers in the early 1980s ▪ In 1990 he wrote a memo describing a simple system for sharing, and over the next several months wrote both a server and a client that used the Hypertext Markup Language (HTML) ▪ The idea of hypertext wasn't new, but Berners-Lee was the first to create a networked, shareable, and simple system ▪ HTML is based on SGML, the Standard Generalized Markup Language designed for documents ▪ SGML is based on XML, the extensible Markup Language ▪ XML, SGML, and HTML separate the STRUCTURE of a document from its CONTENT
Servers
▪ So what does a server do? - The short answer: It runs applications that listen to ports and respond to requests - A web server, for example, receives a request for a page, assembles the page, and sends it to the client - A streaming music server like Spotify receives a request for a song, retrieves it, and sends it to the client - A file server receives a request for a file, retrieves it, and sends it to the client ▪ A single machine might host several different servers
HTML elements
▪ Text is marked up in HTML coding to indicate what is a header, what is a list, and so on ▪ HTML is display independent...it is up to the browser to read and interpret the markup and display the element ▪ For example, one browser might display a header as bold, sans-serif font, centered; another browser might display it as serif, flush left, italic ▪ In both cases the element is still a header, it's just being interpreted and displayed differently
Apache
▪ The Apache project grew out of a commercial web server offered by Netscape in the late 1990s ▪ A small group of enthusiasts periodically published fixes to buggy Netscape web serve code ▪ At some point they created a new version of the server with all of their bug fixes applied ▪ A bug fix is often in the form of a 'patch' ▪ The new server was thus name a-patchy-server (Apache) ▪ The Apache project grew rapidly and today is responsible for most of the software that runs the web ▪ In March 2015 Apache held about 40% market share, with Microsoft in third place behind nginX at 10% ▪ Apache holds about 60% market share in the top million busiest sites on the web
A/D conversion
▪ The basic idea is that we take a 'sample' of an analog signal at regular intervals ▪ The sample is usually a voltage, which is an electrical value; how large or small is the voltage at any given time? ▪ One the sample is made, the recorded value is converted to a binary number for storage
Trees
▪ The code is often set up as an upside-down tree ▪ Rather than store a word or group of words, we just store directions to find them, plus the tree itself
Cookies
▪ The most common way to fix statelessness in web transactions is to use a cookie ▪ A cookie is a small file stored on your computer that contains information about you and the site you are on ▪ Each site creates and maintains its own cookie ▪ The cookie,might, for example, contain your user ID ▪ The cookie is sent along with every click you make on the site ▪ When the server gets the cookie, it opens it up and extracts information it needs, such as your user ID ▪ The server then looks up things in its database about you and what you are doing, for example - The last page you visited - The ID of your shopping cart - Your first name ▪ This gives us the illusion that we are 'logged in' to a site
Packet switching
▪ The other style of connection is called packet switching ▪ In a packet network, a circuit is established for only the amount of time that it takes to send a single message ▪ Once the message is sent, the circuit is dropped ▪ Long messages are broken up into many smaller messages ▪ This has several advantages: - The circuit is not occupied if no messages are sent, so other devices can use it - If part of the network is congested, different circuit can be established to go around that portion
Files on the server side
▪ The server examines the URL (Universal Resource Locator) and picks it apart to determine which file to process ▪ Files on a web server are stored in directories or folders just as they are on your computer ▪ When you see a URL such as http://www.bu.edu/cs/courses there is a director called cs on the web server, and a subdirectory under it called courses
Client-side programs
▪ The web server might return a page that, in addition to HTML, contains Javascript ▪ Javascript is run in the browser; we say it is run client-side ▪ Client-side code is usually there to provide interaction or other 'live' features
What does the server do?
▪ The web server simply listens on the network for a request from a client (such as a web browser) ▪ When it gets a request, it returns an HTML page to the client ▪ It might do some additional processing on the page before it is returned ▪ If a page has several items on it, such as graphics or ads (or secret tracking code), the client will request them one at a time from the server
Client-server
▪ This kind of setup is called client-server...a local client, like your browser or your email or your Spotify program talking to a remote server ▪ We sometimes call this a request-response architecture; the client makes a request and the server sends a response ▪ This presents a teeny problem...think of all the programs running on your computer that use the network ▪ Now recall that there's only one network connection coming out of the back of your computer, and that it has just one, unique address ▪ How does the network know which program it should deliver data to? How does it know a message is a piece of music going to your Spotify app?
Two ways to implement cloud
▪ Type 1: Store files on the cloud and just move items to the client as they are worked on or streamed. Save changes back to the cloud. - (This is how Chromebooks work) ▪ Type 2: Store files on the cloud, but keep multiple client machines in sync with all changes...files reside both on the cloud and on the client
What's behind the green screen?
▪ Usually there's some sort of mainframe computer doing the work - a mainframe is just a large, industrial-strength, fast, fabulously expensive computer ▪ Applications fall into many categories, but you'll see them in use in the airline industry, banking, insurance, and so on ▪ Many of these applications are relatively old - 15 to 30 years - but still quite usable; many are written in COBOL (remember the Y2K bug?) ▪ Companies with mainframe systems have very large investments in their computers and want to hang on to them for as long as possible
Structure vs Content
▪ When we write a document, it obviously has content, but it also embodies some form elements ▪ For example, a news item might have a title, a byline some subtitles, a picture, and a tagline ▪ SGML and HTML are markup languages that let the author identify the form elements ▪ The goal is to be able to control the "look" of an element without messing with the content
Saving and viewing a web page
▪ You can use just about any text editor to write HTML code 1. Save the file with the .html extension, i.e. mywebpage.html 2. In a browser, click the File / Open... menu to open your file 3. The browser reads the file and displays it as a web page 4. Profit!
Popular web servers
▪ You'll find several different 'brands' of web server on the internet - IIS from Microsoft is the biggest 'paid' solution - nginX is a high-performance open-source solution - The number one web server on the internet: Apache