The History of the Silicon Based Desktop Computer
Developing a website on the conventional desktop computer using HTML5 and CSS3. This project goes through about a century of progress bringing us up to today. This includes early work on field effect transistors. That led to work on other transistors including the Bipolar Junction Transistor, collectively caled the first generation computers. This in turn led to a breakthrough giving MOSFET transistors or metal–oxide–semiconductor field-effect transistors. This era was the second generation. The third generation was all about integrated circuits and the fourth generation is about microprocessors. The fourth generation was from 1971 to 1980. However, as current silicon based desktop computers essentially use a very small scale version of these microprocessors, effectively we are still in the fourth generation of desktop computers.
This project was a good learning experience about css and html. Challenges included modifying css style rules to target only specific sections of code without affecting others. This was most difficult towards the end of the project. Also, trying to position items on the page involved trail and error. Another challenge was ingtegrating different features together.
Image of Final Project Final Project Source CodeThe parts of the project
Value of feature to user
who website is for: - People who have an interest in the history of computers.
What they want to achieve - To get a quick overview of some of the main points of computer history, with some detail on interesting technologies.
How the project achieves this - This website uses CSS Style Sheets to present information on computer history in a way that is intuitive and creates a positive user experience.
- Wireframe in Balsamiq
- Navigation bar
- User survey form
- Horizontal timeline
- Vertical timelines
Computer History Timeline Image Created with Balsamiq | Tech Event 1 | Tech Event 2 | Tech Event 3 | User Survey Form Image |
Image Created with Balsamiq of wireframe for videos proposed for webpages named tech event 1 2 and 3 |
Third Table of Wireframe Updated Plan made using Balsamiq: Content and video ideas for tech event 1, 2 and 3
Image Created with Balsamiq of wireframe for content and videos proposed for webpages named tech event 1 2 and 3 |
-
There are 5 webpages on the site.
- Home Page with Timeline spanning from 1925 to the 2021.
- 3 pages dedicated to different eras of development of the Computer
- pre_and_first_generation.html has two eras.
- Prior to First Generation: Gives information on the field effect transistor (FET)
- First Generation: Gives information on other transistors including the Bipolar Junction Transistor (BJT).
- second_generation.html gives information on the key technology of the Second Generation of Computers, the MOSFET or metal-oxide-semiconductor field-effect transistor
- third_and_fourth_generation.html has two eras.
- Third Generation: Gives information on integrated circuits (ICs)
- Fourth Generation: Gives information on the microprocessor and explains that while this era is listed as being from 1971 to 1980, current desktop computers still use microprocessors, although the technology has significantly advanced. Also including is a piece on EUV Extreme Ultraviolet lithography, used in semi-conductor fabrication. Finally, there is a link to a recent news article semiconductor shortages and how this is affecting not only desktop computers but a wide range of other technologies.
- pre_and_first_generation.html has two eras.
- Survey Form to gather user feedback about the website.
-
The website features a form element. This is a survey of how the user found the content and overall impression of the website.
-
The love-running guided website building project was used as a template.
-
Matrix Color Scheme
-
Navigation Bar
- Featured on all five pages.
- Responsive element.
HTML5 | CSS3 | Gitpod | Git | GitHub | Stack Overflow | W3Schools | MDN Web Docs |
- Tried to make a reflection like shine effect occur above the buttons on the navigation bar as well as below. However, can only use a single before pseudo-class on a single element.
- Make buttons rotate, giving the illusion of shifting perspective when user moves mouse.
- Add light switch to switch from Matrix theme green font on black background to blue font on white background.
- Add audio to website, with image of an amplifier, switch, and sign asking if user wants to turn the sound on.
- Improve Compatibility: Remove flexbox as not supported in Internet Explorer 10 as mentioned here.
- Make Buttons align center in Navigation bar.
- Use list item appended to content id and ::marker pseudo element selector as a CSS selector, as identified using Google Chrome Developer Tools Inspect Element.
- Purpose: To style tech event 1 page content
- Details of testing.
A unified theme was needed to communicate that the website was about computer history. So, the color scheme of green and black used in the 1999 Movie "The Matrix" was used.
AAA requires a contrast ratio of 7:1. WCAG 2.1 Part 1.4.6 Contrast(Enhanced) - Level AAA
For contrast, bright green on black rated well.
As a secondary color combination, white and light blue were too low contrast. So, blue color was deepened.
By default, internal website pages open on same page for the user, in order to avoid cluttering up browser with many tabs when moving around the website.
High Contrast
- Box-shadow inset parameter not used, as only partially supported on Internet Explorer 9.
- Browser Compatibility: inset not used as shorthand for positioning top right bottom left as no support for functionality in Edge, Internet Explorer, Opera Android or Samsung Internet.
- Browser Compatibility: hsl CSS property, alpha parameter: Internet Explorer Browser does not support alpha parameter in hsl hue staturation lightness property in CSS Stylesheets.
- Matrix Green on Black has a contrast ratio of 10.33:1, which exceeds the 7:1 ratio specification for W3C Web Accessibility Initiative (WAI).
Figure above shows results of color accessibility check for high contrast green font on black background color combination
Figure above shows results of color accessibility check for high contrast blue font on white background color combination
Bug: Unstyled Home Button (Resolved)
- Home button on Navigation bar on Home page was not being styled by CSS. Cause:
- The button id deleted from anchor for home page in Navigation bar in error. Fix:
- The button id reinstated to anchor for home page in Navigation bar.
Bug: Bulleted Navigation bar (Resolved) (Note: See also nav Bug 2 here) Since the addition of unordered list and list item tags to Navigation bar on home page:
- Bullets are present to the left of buttons Cause:
- Unordered list and list item tags. Fix:
- Add bulletless class selector rule to CSS stylesheet with list-style property set to a value of none.
- Add bulletless class to list items on home page.
Bug: Vertical Navigation bar (Resolved) Since the addition of unordered list and list item tags to Navigation bar on home page:
- Navigation bar is displaying vertically not horizontally Attempts:
- Tried setting text align to center in CSS to override user agent stylesheet setting text align to webkit match parent in Browser. However, when new setting was applied, this did not change the display. Potential Solutions:
- Use card, instead of Unordered List. Detail to be added. Fix:
- Use inline-block value for display property in CSS rule targeting list item element in CSS Stylesheet
- Problem:
- Detection: The following images were not displaying in README in "First Table of Wireframe Rough Plan Sketch made in using Balsamiq:" pre_and_first_generation.png second_generation.png third_and_fourth_generation.png
- Cause:
- files not found for given href and src values
- Root Cause:
- Renaming the files does not seem to affect the name in the path the system uses to refer to the files.
- Solution (Workaround):
- Changed href and src values back to original values
- Refer to deleted version of path in commit b560138c5da5bc558a0fbd5ffe5cfe98ec6ac308 for original values used for href and src, featuring Capitalisations in file names Solution: renamed files and issue resolved. (Had to copy files into a folder outside of the git repository delete and commit the images and add the images. So, from git or bash perspective the files being added were new so no discrepancies between old and new file extension cases.)
- To try and address this, the ending was amended to lowercase, .jpg in keeping with the rest of the .jpg files.
- However, when the links were updated to .jpg they did not work.
- It emerged that even though the file was renamed to .jpg, the system stil refered to them as .jpg
- In the interest of simplicity, the files were reverted to the orignal .JPG extension.
- Note: Images are hex_to_rgb_hash3af568.JPG hex_to_rgb_hash2b2527.JPG and nav_bar_image.JPG Solution: Renamed these files from .JPG to .jpg and this issue resolved itself. (Had to copy files into a folder outside of the git repository delete and commit the images and add the images. So, from git or bash perspective the files being added were new so no discrepancies between old and new file extension cases.)
- Potentially, changing the file names or file paths through the Windows system does not change the Linux file paths in the same way.
Solution: Adjusted font in stylesheet.
Bug: Partial width Navigation bar Before the addition of unordered list and list item tags:
- Navigation bar was not stetching fully horizontally across screen. Information Gathering:
- Set nav element and unordered list element to orange in turn. Both took up full width of screen.
- Set list element to orange, and it took up the width of a button on home page. Potential Causes:
- Button class, button hover class, anchor element, or list item element could be preventing buttons from spreading across width of page.
- Document Object Model is not set correctly.
- Browser default properties
- Some single property is set wrong or inherited preventing full width. Attempts:
- Tried setting width to different percentages, however these did not take into account different text widths.
- Other than using new units for width like view width, with potential Backward Compatibility issues, there does not seem to be a way to set font to a percentage of screen width.
- Added orange and blue background color to body element in home page. This did not take effect in the Browser.
Potential Other Solutions:
- Use card, instead of Unordered List. Detail to be added.
- Revisit HTML file
- Build second Nav bar for trial purposes
- Use card approach mentioned above in trial Nav bar
- Try using only Nav bar or only unordered list to see which is easier to make fill full width of pages
- CSS Grid
- 1 Dimentional alternative to CSS Grid
- Experiment with display, position, float, inline-block, block and inline values.
- Experiment with center, right, left, bottom, top values.
- Revisit solution search.
- Try using span element
- Look up div element
- Try using margin property Resolution:
- Added div element as a container for the nav bar and added CSS Style rules for asterisk nav menu and nav links button.
- Resolved
- Problem:
- Detection:
- timeline displays vertically on home page
- Cause:
- style2 css stylesheet not connecting to style home page
- Root Cause:
- rel attribute of CSS Stylesheet set to "alternate stylesheet" not "alternative stylesheet" -Solution:
- Changed rel attribute of CSS Stylesheet from "alternate stylesheet" to "alternative stylesheet"
- Detection:
- Resolved
- Context: For vertical timeline merged with two columns.
- Problem:
- 2 section opening tags and two section closing tags within nested element tree.
- Only one set is coupled together by system.
- Cause:
- Second section opening tag does not close before the containing unordered list element, inside the first opening Section tag, closes.
- So, after the unordered list nested inside the first opening section element closes, the second opning Section tag nested in the unordered list seems closed off like a local variable within the unordered list.
- Therefore, when first Section closing tag appears, since the most recent Section tag is not visible so to speak, due to being nested in the unordered list, the system pairs the aforementioned first Section closing tag with the first Section closing tag.
- A second Section closing tag comes after this first, now paired Section closing tag; however, the aforementioned second Section closing tag is unpaired.
- This is because the first opening Section tag is now paired with the first Section closing tag; and the second Section closing tag is not visible, due to being "locked" it seems inside the unordered list.
- Root Cause:
- Although this reference is for XML it illustrates a similar problem to that experienced here with highlighting a right and a wrong approach to closing nested elements in HTML.
- Solution: Second Section element was brought outside nested unordered list, allowing both opening Section tags to pair with both closing Section tags.
- Original incorrect, problematic Section tag order, including unordered list: open (unordered list open) OPEN (unordered list close) close CLOSE. Where, OPEN and CLOSE are unpaired.
- Final correct Section tag order, showing nested unordered list: open open (unordered list) close close.
- General take away rule of thumb: Nested element must close before parent element.
minor Debug (asterisk selector, zero padding, bullets and numbering, list related elements, indented nav bar minor Bug)
- (Note: No bullet nav Bug 1, as it was slightly different for "Bug: Bulleted Navigation bar (Resolved)"). See Fixed Bugs.
- In style css, asterisk selector with padding set to zero was preventing bullets and numbers in unordered and ordered lists from being displayed.
- However, removal of this declaration makes nav bar indent on all pages.
- Potentially, could make a more specific selector than asterisk, which selects all elements, to set padding to zero in most elements while avoiding all elements related to lists: unordered list, ordered list, and list item elements.
- However, ideally this would not affect the nav bar, or any other elements now being styled by the asterisk selector.
- To pursue this line of debugging, could try to find out and list all the elements which are styled by asterisk.
- Could potentially use Google Chrome Developer Tools Inspect Element.
- For the purpose of moving on with adding text content to the website, the nav bar may temporarily need to be left indented, to allow bullet point lists.
- Next Steps:
- Replace asterisk selector with nav bar Selector.
- Check which, if any, parts of site change.
- Add duplicates of rule changing selector as needed to include more elements in order to undo these changes.
- If unfixed by this approach potentially revert to asterisk selector and modify or try a different approach.
- Scenario: Adding and merging vertical timeline and two columns with each other and pre_and_first_generation.html.
- Trying to right align text in left column
- Problem: Text aligning half way across left column not towards right of column.
- Why was this a problem: Verticaly timeline runs down the center of the page and years (on the left) need to be close to this line (to the right of the left column).
- Debugging: Drew out element tree and tried alternatively using different selectors in element tree with same declaration
- Used Inspect Element on Browser
- Adjusted colors of different elements
- Recorded how colored elements in question appeared by color, then related this back to selector in CSS stylesheet and finally back to element in HTML.
- Cause: The same column class was targetting multiple elements in left and right columns and at different points in the element tree.
- Solution: created numbered column classes as needed.
- Problem: Padding not showing between right aligned text in left column and bullet point used as time point.
- Debugging: Added colors to elements and same padding declaration to different selectors
- Solution: It was necessary to target the inner elements nested in the element tree. By process of elimination narrowed it down to two rules and picked the one which set padding correctly.
- Scenario: Wrapping section opening and closing tags around merged vertical timeline with two columns in pre_and_first_generation.html
- Problem: Content of second time point aligns left when merged vertical timeline with two columns is wrapped in section tags.
- Workaround: Left merged vertical timeline with two columns without section tag wrapping.
- Potential Cause: Enclosing section tags within each other may be problematic if not nested correctly.
- If section closing tag for first section is supposed to come first, this will probably not be read this way by the system.
- This may result in unexpected behaviour of site.
- Reference on the use of section elements
- It appears that using section tag for timeline means section cannot be used to contain timeline.
process to deploy on GitHub.
Live Link:
- photos
- images
- images online
- images in assets>images
- blue_white_color_combination.jpg
- color_contrast_check_matrix.png
- color_contrast_check_matrix.png
- css_validator_check.png
- final_project_validated.png
- green_black_blue_white_colors.jpg
- hex_to_rgb_hash0000ff.jpg
- hex_to_rgb_hash2b2527.jpg
- hex_to rgb_hash3af568.jpg
- hex_to_rgb_hashffffff.jpg
- matrix_image.jpg
- nav_bar_image.jpg
- pre_and_first_generation.png
- qr_code_for_further_reading_first_generation.png
- second_generation.png
- third_and_fourth_generation.png
- time_line_sketch.png
- user_survey_form.png
- wireframe_for_content.png
- wireframe_for_videos.png
- Here are reference sources used in the project.
-
How to use links in README Link to Pages
- How to link to part of the same document in Markdown?
- Used this to add anchor element(s) to Heading(s) (and possibly other components) in README, to allow for internal links. See Comment by vgavro on this site: Support internal links in markdown long_descriptions
Use unordered list element with list item elements for each anchor element to make navigation bar stretch across page.
-
Using internal HTML page links How do I link to part of a page? (hash?)
-
How to play audio in a html page. HTML Audio
- link: The External Resource Link element
- The HTML a tag defines a hyperlink HTML Links
- Describes link types using a, area, form and link Link types
-Used in selector at the start of first CSS Stylesheet article tag
- a The Anchor element
- The HTML a tag defines a hyperlink HTML Links
- Potential solution to Bug with unordered list making Navigation bar display vertically. Use display property, with a value of inline-block to set navigation bar horizontal. horizontal nav bar / unordered list
- Can have more than one Navigation bar. Used temporarily for debugging Partial width Navigation bar Bug. Is it possible to add multiple CSS navigation bars on one HTML page and if yes, how?
- Making the nav bar span the width of the page
- CSS Margins
- Inline CSS formatting best practices - Two questions
- CSS Syntax
- First source using :root to declare css variables early in CSS stylesheet. CSS variable
- Second source using :root to declare css variables early in CSS stylesheet. CSS variables in MDN Web Docs
- Third source using :root. CSS root Selector
- First source using box sizing in CSS. Reset box sizing
- Second source using box sizing in CSS. Box Sizing
- Third source using box sizing in CSS. CSS Box Sizing, W3Schools article
- Fourth source using box sizing in CSS. CSS Box Sizing Property, W3Schools article
- CSS Pseudo-elements Before and After pseudo elements explained - part one: how they work
- CSS Pseudo-elements
- Source 1 for CSS before selector. CSS ::before Selector, W3Schools article
- Source 2 for CSS before selector. CSS ::before selector
- Source 1 for CSS after selector. CSS ::after Selector, W3Schools article
- Source 2 for CSS after selector. CSS ::after selector
- Short answer? No because the browser will only render the first one. Can a HTML element have multiple unique ID attributes? [duplicate]
- In CSS2.1, an element can only have at most one of any kind of pseudo-element at any time. (This means an element can have both a :before and an :after pseudo-element — it just cannot have more than one of each kind.) Can I have multiple :before pseudo-elements for the same element?
- A CSS pseudo-class is a keyword added to a selector that specifies a special state of the selected element(s). For example, :hover can be used to change a button's color when the user's pointer hovers over it. Pseudo-classes
- CSS position Property
- Although there is support in new inset property, this was avoided for Browser Compatibility. (No) CSS shorthand for positioning
- New inset property, which acts like shorthand. Not used for Browser Compatibility. inset
- The left CSS property pertains to the horizontal position of an element. left
- If perspective() is one of multiple function values, it must be listed first. transform
- The perspective() CSS function defines a transformation that sets the distance between the user and the z=0 plane perspective()
- CSS Transform: Rotating a 3D object with perspective based on mouse position
- The rotate CSS function rotate()
- The rotateX CSS function defines a transformation that rotates an element around the horizontal axis.rotateX()
- CSS Syntax for filter Property includes setting value to blur CSS filter Property
- The blurCSS function applies a Gaussian blur to the input image. blur
The CSS Asterisk selector * selects all HTML elements.
- First source for asterisk selector. CSS asterisk * selector
- Second source for asterisk selector. CSS asterisk * selector
- Third source for asterisk selector. CSS asterisk * selector
- In CSS, the size unit rem stands for root element. Using rem versus em size units in CSS
- Rem in CSS: Understanding and Using rem Units
- Using a CSS declaration with cursor property set to a value of pointer, to display pointing hand in CSS. Cursor property set to value of pointer
- How to refer to the different parts of a CSS Rule. Anatomy of a CSS Rule
- CSS Grid
- Test page Grid Layout
- The Multi-Grid One-Page Layout
- Put each grid inside section element containers CodePen Home: CSS Multi-Grid One-Page Layout Experiment with CSS Grid, Flexbox and HTML5 Sections
- Yes, only 1 of each for each "section" of your page. html5: using header or footer tag twice?
- Using CSS properties from user agent stylesheet to create rule native to project stylesheet that overrides these properties, to increase margin at top of webpage
- This gives instructions from December 2018. Chrome was on version 72 and is now on version 91. So, there have been changes in the interim. This includes changes to the instructions given. Instead of the Select automatically checkbox, now there is a Use Browser Default checkbox. Also, as there is an option to set different devices. Override the user agent string
- What is a user agent stylesheet?
- four states of any link. a: link a:visited a:hover a:active How To Add Links In CSS
Colors - Tool for selecting multiple colors for website. Adobe Color Wheel
- Color design theory
- Color wheel calculator tool for picking website. Sessions College
- Tool for checking Accessibility of Color combination chosen for website. Accessibility of color combination Tool
- Used this site to check if font/background combinations are above 7:1 contrast ratio.Web Accessibility In Mind WebAIM
- Add inline style to h2 element to center content
- CSS HSL Colors
- Browser Compatibility: hsl CSS property, alpha parameter: Internet Explorer Browser does not support alpha parameter in hsl hue staturation lightness property in CSS Stylesheets hsl()
- CSS hsl() Function
- Colors HSL
- How to use text shadow in CSS Stylesheets. CSS Syntax uses horizontal shadow, vertical shadow, blur radius, and color parameters. CSS text-shadow Property
- Browser Compatibility: Only Partial Support in Internet Explorer 9 for Box shadow inset parameter. box-shadow
- CSS box-shadow Property
- CSS Box Shadow
- box-shadow
- Using Google fonts in a few of my pages and hit a wall when trying to use variations of a font. Importing three faces, Normal, Bold, ExtraBold via the link tag. How to use the variants of the font in my CSS. Answer: They use regular CSS. Just use regular font family property. Now decide what "weight" the font should have by adding font weight property (values in parentheses) as needed for semi-bold, for bold (700), for extra bold (800). Specifying Style and Weight for Google Fonts
- How to use Google Fonts CSS Google Fonts
- Roboto Google font code
- Center Links & Add Borders. CSS Vertical Navigation Bar
- Block elements take up the full width by default.
- Combining Multiple CSS Selectors Multiple Class / ID and Class Selectors
- Used to add button colors to scroll bar used in horizontal scroling timeline on home page. ::-webkit-scrollbar
- How to use console VIM editor in Integrated Development Environment to add git commit messages with line breaks. Learning How to Git: Creating a (Longer) Commit Message
- How to add a line break to a git commit message from the terminal, using "here document". How to commit with a header and a message in git from the command line
- Here document is a file literal or input stream literal. It behaves as a separate file. It originates in Unix shell and is found in Bash. Here document
- EOF stands for End Of File. EOF
- Here document is a file literal or input stream literal. It behaves as a separate file. It originates in Unix shell and is found in Bash. Here document
- Use git diff to transform current directory into a git repository. git init
- Explains chunks in git diff git diff
- Fourth item in numbered list under Combined diff format heading gives information on chunks. [git diff Documentation]https://git-scm.com/docs/git-diff#_combined_diff_format)
- Best explanation of git diff git chunk header
- Rule 7 Use commit message body to explain what and why not how. How to COMMIT BETTER with GIT
- How to open default editor from terminal in Integrated Development Environment to write a git commit message. Also, reasons not to use punctuation marks. How to Write Good Commit Messages in GitHub?
- Reason not to use commas in git commit messages. Also, if exporting git commit messages to csv, how to switch to semicolon delimitors instead of commas. This allows export of commit messages with commas, without messages splitting into different cells at each comma. How to escape commas inside commit title/subject in Git logs?
- How to view git commits on GitHub Repositories
- Image (from stackoverflow link above) highlighting where to access git commits
- What does the abbreviation IDE stand for? What Is an IDE? | Codecademy
- How to set Vim to word wrap at the end of a line, for use in terminal to write commit messages. Automatic word wrapping
- Hard wrap recommended at 72 characters for git commits using Vim. How to wrap git commit comments?
- No CSS in README with GitHub. GitHub does not allow for CSS to affect README.md files
- How to align images in Readme using HTML. Center images in README
- GitHub Repository on how to do an image in a README_using Markdown
- Anatomy of the html tag
- Resource for Markdown. R_Markdown
- To make the bullet point center with the text in an unordered list: in the unordered list element, add list style position CSS property, set to a value of inside. Center bullets of an unordered list with text
- Matrix colors used as a theme for website. Green and Black Colors taken from this image
- Default image compressor. TinyPNG
- Used any time TinPNG gave jfif file, which will not run in Integrated Development Environment. JPEG_compressor
-
CodeInstitute lessons on the Editor were used as a template for how to showcase technologies. The technologies used in this project, are shown in this Readme file. Creating a Webpage that showcases technologies used in a Project
- Used for styling horizontal scroll bar for timeline on home page How TO - Custom Scrollbar
-
root body button and button hover CSS Rules taken from here. CSS Neon Button Worked Example
-
Used overflow property set to a value of hidden. Making the nav bar span the width of the page
-
Used while debugging Nav bar Partial Width Bug. This code was reproduced locally in a separate repository and then stripped down to find which elements were needed to fix the nav bar Partial Width bug. The asterisk class with box sizing, zero margin, zero padding and font family properties was taken from 11:20 in video, as well as nav menu and nav links button classes taken from 19:04 in video. This solved the Nav bar Partial width bug. How to Make a Responsive Navigation Menu Navbar Using HTML, CSS, and Javascript Tutorial
-
Used for form and matrix background image generation. gitpod-full-template
-
Used for form and matrix background image generation. Signup Form Challenge 1 Code Institute Project love running 2.0
-
Merged Vertical timeline with 2 Columns.
- Used this to add anchor element(s) to Heading(s) (and possibly other components) in README, to allow for internal links. See Comment by vgavro on this site: Support internal links in markdown long_descriptions
Used section elements as containers to allow for multiple grids on home page.
- The Multi-Grid One-Page Layout
- Put each grid inside section element containers CodePen Home: CSS Multi-Grid One-Page Layout Experiment with CSS Grid, Flexbox and HTML5 Sections
- Three declarations were taken from this source. These were used to center the header on the home page. CodePen Home: CSS Multi-Grid One-Page Layout Experiment with CSS Grid, Flexbox and HTML5 Sections
-
Historical data source History of computing hardware (1960s–present)
- photos
- images
- images online
- Font Awesome - Frown Face - Meh Face - Smiley Face
- video
- Video on vacuum tube computers, considered the first generation computer. For video, please click here: Computer History 1949 -1960 Early Vacuum Tube Computers Overview, History Project Educational
- Video on How a MOSFET works
- EUV