<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
<link rel="preconnect" href="https://serve.themediateam.net" crossorigin>
<script src="/static/external/js/jquery-1.12.3.min.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="keywords" content="
Browser,
Firefox,
GitHub,
Internet Explorer,
marc andreessen,
Vintage Computing,
Web
" />
<!-- RSS FEEDS -->
<link rel="alternate" href="/xml/all.rss" type="application/rss+xml" charset="utf-8" title="bit-tech feed" />
<link rel="alternate" href="/xml/bittech.rss" type="application/rss+xml" charset="utf-8" title="Article feed" />
<link rel="alternate" href="/xml/news.rss" type="application/rss+xml" charset="utf-8" title="News feed" />
<link rel="alternate" href="/xml/hardware.rss" type="application/rss+xml" charset="utf-8" title="Hardware feed" />
<link rel="alternate" href="/xml/gaming.rss" type="application/rss+xml" charset="utf-8" title="Gaming feed" />
<link rel="alternate" href="/xml/modding.rss" type="application/rss+xml" charset="utf-8" title="Modding feed" />
<link rel="alternate" href="/xml/blog.rss" type="application/rss+xml" charset="utf-8" title="Blog feed" />
<link rel="alternate" href="/xml/blog/podcasts.rss" type="application/rss+xml" charset="utf-8" title="Podcasts feed" />
<link rel="alternate" href="/xml/bits.rss" type="application/rss+xml" charset="utf-8" title="Bits feed" />
<style>
/* open-sans-regular - latin */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
src: url('../fonts/open-sans-v27-latin-regular.eot'); /* IE9 Compat Modes */
src: local(''),
url("/static/public/css/fonts/open-sans-v27-latin-regular.eot?#iefix") format('embedded-opentype'), /* IE6-IE8 */
url("/static/public/css/fonts/open-sans-v27-latin-regular.woff2") format('woff2'), /* Super Modern Browsers */
url("/static/public/css/fonts/open-sans-v27-latin-regular.woff") format('woff'), /* Modern Browsers */
url("/static/public/css/fonts/open-sans-v27-latin-regular.ttf") format('truetype'), /* Safari, Android, iOS */
url("/static/public/css/fonts/open-sans-v27-latin-regular.svg#OpenSans") format('svg'); /* Legacy iOS */
}
</style>
<link rel="canonical" href="https://bit-tech.net/news/tech/software/hackers-resurrect-ncsa-mosaic/1/" />
<meta name="theme-color" content="#3f2856">
<!-- OLD STYLES -->
<link rel="apple-touch-icon" href="//images.bit-tech.net/images/webclip.png" />
<!-- NEW STYLES -->
<link rel="shortcut icon" href="/static/public/image/favicon.ico" />
<style>
*, *:after, *:before {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
body {
margin: 0;
}
[class*='col-'] {
float: left;
min-height: 1px;
}
.col-1-1 {
width: 100%;
}
.col-3-12 {
width: 25%;
}
.col-6-12 {
width: 50%;
}
.col-1-3 {
width: 33.33%;
}
.col-1-4 {
width: 25%;
}
.col-1-8 {
width: 12.5%;
}
.col-9-12 {
width: 75%;
}
</style>
<link rel="stylesheet" href="/static/public/css/main.v2.css" />
<link rel="stylesheet" href="/static/public/css/external/lite-yt-embed.css">
<style>
@font-face {
font-family: 'FontAwesome';
src: url('/static/external/css/font-awesome-4.6.3/fonts/fontawesome-webfont.eot?v=4.6.3');
src: url('/static/external/css/font-awesome-4.6.3/fonts/fontawesome-webfont.eot?#iefix&v=4.6.3') format('embedded-opentype'), url('/static/external/css/font-awesome-4.6.3/fonts/fontawesome-webfont.woff2?v=4.6.3') format('woff2'), url('/static/external/css/font-awesome-4.6.3/fonts/fontawesome-webfont.woff?v=4.6.3') format('woff'), url('/static/external/css/font-awesome-4.6.3/fonts/fontawesome-webfont.ttf?v=4.6.3') format('truetype'), url('/static/external/css/font-awesome-4.6.3/fonts/fontawesome-webfont.svg?v=4.6.3#fontawesomeregular') format('svg');
font-weight: normal;
font-style: normal;
}
.fa {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale
}
.fa-home:before {
content: "\f015";
}
.fa-envelope:before {
content: "\f0e0";
}
.fa-comments:before {
content: "\f086";
}
.fa-chevron-left:before {
content: "\f053";
}
.fa-shopping-cart:before {
content: "\f07a";
}
</style>
<link rel="stylesheet" href="/static/public/css/section/news.css" />
<link rel="stylesheet" href="/static/public/css/category/tech.css" />
<style>
body{
margin:0;
background:#000 url("/static/public/image/bittech_18_bg.jpg") fixed no-repeat 50% 0;
}
#side_column{
float:right;
}
#blurBackground{
margin: 0;
background: #000 url("/static/public/image/bittech_18_bg.jpg") fixed no-repeat 50% 0;
}
#blurBackground.blurred{
filter: blur(4px);
-webkit-filter: blur(4px);
filter: blur(4px);
-o-filter: blur(4px);
-ms-filter: blur(4px);
-moz-filter: blur(4px);
}
#skin {
position: absolute;
left: 0px;
top: 0px;
right: 0px;
bottom: 0px;
width: 100%;
}
#skin > #skinclick {
display: block;
width: 100%;
height: 100%;
}
body .pageContainer {
z-index: 999;
background: white;
}
#skin {
position: absolute;
left: 0px;
top: 0px;
right: 0px;
bottom: 0px;
width: 100%;
}
#skin > #skinclick {
display: block;
width: 100%;
height: 100%;
}
body .pageContainer {
z-index: 9999;
background: white;
}
</style>
<script type="text/javascript">
document.cutoff = 980;
</script>
<link rel="stylesheet" href="/static/public/css/detail.v2.css" />
<link rel="stylesheet" href="/static/public/css/legacy_graphs.css" />
<link rel="stylesheet" href="/static/public/css/legacy.css" defer/>
<!-- sharethis buttons -->
<script type='text/javascript' src='//platform-api.sharethis.com/js/sharethis.js#property=594b47e099baea0012f9c055&product=inline-share-buttons' async='async'></script>
<link rel="stylesheet" href="/static/public/css/external/icons.css" defer/>
<!-- for google -->
<title>Hackers resurrect NCSA Mosaic | bit-tech.net</title>
<meta name="description" content="A small band of hackers on the GitHub code sharing site have resurrected an early release of NCSA Mosaic, the first graphical web browser ever released." />
<meta name="robots" content="index, follow" />
<meta name="googlebot" content="index, follow" />
<meta charset="utf-8">
<!-- for facebook -->
<meta property="og:url" content="https://bit-tech.net/news/tech/software/hackers-resurrect-ncsa-mosaic/1/" />
<meta property="og:title" content="Hackers resurrect NCSA Mosaic | bit-tech.net" />
<meta property="og:description" content="A small band of hackers on the GitHub code sharing site have resurrected an early release of NCSA Mosaic, the first graphical web browser ever released." />
<meta property="og:image" content="https://bit-tech.net//images.bit-tech.net/news_images/2010/03/hackers-resurrect-ncsa-mosaic/featured_single.jpg" />
<meta property="fb:app_id" content="1859842647618090"/>
<meta property="og:type" content="article" />
<meta property="og:locale" content="en_GB" />
<!-- for twitter -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="@bittech" />
<meta name="twitter:creator" content="@bittech" />
<meta name="twitter:title" content="Hackers resurrect NCSA Mosaic | bit-tech.net">
<meta name="twitter:description" content="A small band of hackers on the GitHub code sharing site have resurrected an early release of NCSA Mosaic, the first graphical web browser ever released." />
<meta name="twitter:image" content="https://bit-tech.net//images.bit-tech.net/news_images/2010/03/hackers-resurrect-ncsa-mosaic/featured_single.jpg" />
<!-- Schema.org markup for Google+ -->
<meta itemprop="name" content="Hackers resurrect NCSA Mosaic | bit-tech.net">
<meta itemprop="description" content="A small band of hackers on the GitHub code sharing site have resurrected an early release of NCSA Mosaic, the first graphical web browser ever released.">
<meta itemprop="image" content="https://bit-tech.net//images.bit-tech.net/news_images/2010/03/hackers-resurrect-ncsa-mosaic/featured_single.jpg">
<!-- for amazon -->
<link rel="search" type="application/opensearchdescription+xml" href="/opensearch_xml/" title="https://bit-tech.net search" />
<!-- more on meta tags and SEO -->
<!-- JSON-LD markup -->
<script type="application/ld+json">
{
"@context" : "http://schema.org",
"@type" : "Article",
"name" : "Hackers resurrect NCSA Mosaic",
"headline" : "Hackers resurrect NCSA Mosaic",
"inLanguage":"en",
"url" : "https://bit-tech.net//news/tech/software/hackers-resurrect-ncsa-mosaic/1/",
"image": "https://bit-tech.net//images.bit-tech.net/news_images/2010/03/hackers-resurrect-ncsa-mosaic/featured_single.jpg",
"datePublished" : "2010-03-09T12:51:07+00:00",
"dateModified" : "2010-03-09T12:51:07+00:00",
"discussionUrl" : "https://forums.bit-tech.net/index.php?threads/184500",
"description" : "A small band of hackers on the GitHub code sharing site have resurrected an early release of NCSA Mosaic, the first graphical web browser ever released.",
"author" : {
"@type" : "Person",
"name" : "Gareth Halfacree"
},
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://bit-tech.net/news/tech/software/hackers-resurrect-ncsa-mosaic/1/"
},
"publisher": {
"@type": "Organization",
"name": "bit-tech",
"url" : "https://bit-tech.net/",
"sameAs": [
"https://www.facebook.com/bittech",
"https://twitter.com/bittech",
"https://www.instagram.com/bit_tech/",
"https://www.youtube.com/channel/UCGxtYMx16kD7jK0RKSxsVrw"
],
"logo": {
"@type": "ImageObject",
"url": "https://www.themediateam.net/static/img/resources/bit-tech/bit-tech.png"
}
}
}
</script>
<!-- JSON-LD markup -->
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Organization",
"name": "bit-tech",
"url" : "https://bit-tech.net/",
"sameAs": [
"https://www.facebook.com/bittech",
"https://twitter.com/bittech",
"https://www.instagram.com/bit_tech/",
"https://www.youtube.com/channel/UCGxtYMx16kD7jK0RKSxsVrw"
],
"logo": {
"@type": "ImageObject",
"url": "https://www.themediateam.net/static/img/resources/bit-tech/bit-tech.png"
}
}
</script>
</head>
<body>
<!-- Style Switcher -->
<input id="settings-btn" type="checkbox" class="settings-btn">
<label for="settings-btn" class="settings-box-element"><i class="fa fa-chevron-left"></i></label>
<!-- the white box that contains the buttons -->
<div class="buttons-wrapper settings-box-element"></div>
<!-- Style Switcher Themes -->
<!-- dark background -->
<input id="dark-layout" class="dark-layout" type="radio" name="layout">
<label for="dark-layout" class="layout-buttons settings-box-element">Dark Theme</label>
<!-- light background -->
<input id="light-layout" class="light-layout" type="radio" name="layout" checked>
<label for="light-layout" class="layout-buttons settings-box-element">Light Theme</label>
<!-- ./Style Switcher -->
<div id="blurBackground">
<a name="top" id="top"></a>
<div class="pageContainer">
<div id="brandHeader" class="clearfix">
<a href="/"><img class="logo" src="/static/public/image/bit_tech_logo_white.png" alt="bit-tech"></a>
</div>
<div id="navContainer" class="clearfix">
<div id="mainNav" class="clearfix">
<ul id="topList" class="clearfix">
<a href="/">
<li id="topListHome" class="topLi " >
<div class="topLi-icon fa fa-home" style="display:none;"></div>
<img src="/static/public/image/icons/home-icon.svg" alt="bit-tech home page">
<span>Home</span>
</li>
</a>
<a href="/category/tech/">
<li data-section="tech" class="topLi active" >
<div class="topLi-icon" style="display:none;"></div>
<span>Tech</span>
</li>
</a>
<a href="/category/modding/">
<li data-section="modding" class="topLi " >
<div class="topLi-icon" style="display:none;"></div>
<span>Modding</span>
</li>
</a>
<a href="/category/gaming/">
<li data-section="gaming" class="topLi " >
<div class="topLi-icon" style="display:none;"></div>
<span>Gaming</span>
</li>
</a>
<a href="//forums.bit-tech.net">
<li id="topListForum" >
<div class="topLi-icon fa fa-comments" style="display:none;"></div>
<span>Forum</span>
</li>
</a>
</ul>
<div class="right_box">
<div class="icons">
<a href="https://www.facebook.com/bittech">
<img src="/static/public/image/icons/facebook.svg" alt="bit-tech Facebook page">
</a>
<a href="https://www.twitter.com/bittech">
<img src="/static/public/image/icons/twitter.svg" alt="bit-tech Twitter feed">
</a>
<a href="https://www.instagram.com/bit_tech/">
<img src="/static/public/image/icons/instagram.svg" alt="bit-tech Instagram feed">
</a>
<a href="https://www.youtube.com/c/bittech1">
<img src="/static/public/image/icons/youtube.svg" alt="bit-tech YouTube channel">
</a>
<a href="https://discord.gg/EBGNWYm">
<img src="/static/public/image/icons/discord.svg" alt="bit-tech discord channel">
</a>
<a href="/rss/">
<img src="/static/public/image/icons/rss.svg" alt="bit-tech RSS feed">
</a>
</div>
</div>
<div class="account-options">
<a id="accounts_icon" href="https://forums.bit-tech.net/index.php/login">
<span class="account-option">Login</span>
</a>
<a href="https://forums.bit-tech.net/index.php?login/login">
<span class="account-option">Register</span>
</a>
</div>
</div>
<div id="subNav" class="clearfix">
<ul id="secondList" style="display: inline-flex; max-width: initial; width: initial;">
<li >
<a href="/category/tech/">
<span>All</span>
</a>
</li>
<li class="active" >
<a href="/news/tech/">
<span>News</span>
</a>
</li>
<li class="" >
<a href="/reviews/tech/">
<span>Reviews</span>
</a>
</li>
<li class="" >
<a href="/features/tech/">
<span>Features</span>
</a>
</li>
<li class="" >
<a href="/previews/tech/">
<span>Previews</span>
</a>
</li>
<li class="" >
<a href="/guides/tech/">
<span>Guides</span>
</a>
</li>
<li class="" >
<a href="/blogs/tech/">
<span>Blogs</span>
</a>
</li>
<li class="" >
<a href="/competitions/tech/">
<span>Competitions</span>
</a>
</li>
<li class="" >
<a href="/press-releases/">
<span>Press Releases</span>
</a>
</li>
</ul>
<div class="search">
<form id="search_form" action="/search/" method="get" accept-charset="utf-8">
<input type="text" name="q" value="" placeholder="SEARCH"/>
<span class="button">
<input type="submit" value="">
</span>
</form>
</div>
</div>
<div id="anotherSubNav" class="clearfix">
<ul id="thirdList" style="display: inline-flex; max-width: initial; width: initial;">
<li class="active">
<a href="/news/tech/">
<span>All</span>
</a>
</li>
<li >
<a href="
/news/tech/audio/
">
<span>Audio</span>
</a>
</li>
<li >
<a href="
/news/tech/cases/
">
<span>Cases</span>
</a>
</li>
<li >
<a href="
/news/tech/cooling/
">
<span>Cooling</span>
</a>
</li>
<li >
<a href="
/news/tech/cpus/
">
<span>CPUs</span>
</a>
</li>
<li >
<a href="
/news/tech/graphics/
">
<span>Graphics</span>
</a>
</li>
<li >
<a href="
/news/tech/laptops/
">
<span>Laptops</span>
</a>
</li>
<li >
<a href="
/news/tech/memory/
">
<span>Memory</span>
</a>
</li>
<li >
<a href="
/news/tech/mobile/
">
<span>Mobile</span>
</a>
</li>
<li >
<a href="
/news/tech/monitors/
">
<span>Monitors</span>
</a>
</li>
<li >
<a href="
/news/tech/motherboards/
">
<span>Motherboards</span>
</a>
</li>
<li >
<a href="
/news/tech/networking/
">
<span>Networking</span>
</a>
</li>
<li >
<a href="
/news/tech/pcs/
">
<span>PCs</span>
</a>
</li>
<li >
<a href="
/news/tech/peripherals/
">
<span>Peripherals</span>
</a>
</li>
<li >
<a href="
/news/tech/psus/
">
<span>PSUs</span>
</a>
</li>
<li >
<a href="
/news/tech/software/
">
<span>Software</span>
</a>
</li>
<li >
<a href="
/news/tech/storage/
">
<span>Storage</span>
</a>
</li>
</ul>
</div>
</div>
<div id="bodyContainer" class="clearfix">
<div class="clearfix" style="clear:both;">
<div id="main_column">
<link rel="stylesheet" type="text/css" href="/static/public/modal/baguetteBox.css">
<style>
.image-source-link {
color: #98C3D1;
}
.mfp-with-zoom .mfp-container,
.mfp-with-zoom.mfp-bg {
opacity: 0;
-webkit-backface-visibility: hidden;
/* ideally, transition speed should match zoom duration */
-webkit-transition: all 0.3s ease-out;
-moz-transition: all 0.3s ease-out;
-o-transition: all 0.3s ease-out;
transition: all 0.3s ease-out;
}
.mfp-with-zoom.mfp-ready .mfp-container {
opacity: 1;
}
.mfp-with-zoom.mfp-ready.mfp-bg {
opacity: 0.8;
}
.mfp-with-zoom.mfp-removing .mfp-container,
.mfp-with-zoom.mfp-removing.mfp-bg {
opacity: 0;
}
</style>
<div class="articleCopy">
<div id="article-top">
<div id="article-details">
<div class="object_headings" style="flex-grow: 1;">
<h1 class="heading" >Hackers resurrect NCSA Mosaic</h1>
<div class="clearfix">
<p class="author" >Written by
<a href="/author/gareth-halfacree/">
Gareth Halfacree
</a>
</p>
<div class="sharethis-inline-share-buttons" ></div>
</div>
<p class="datetime" >March 9, 2010 | 12:51</p>
<p class="tags" >Tags: <a href="/tag/browser/">#browser</a> <a href="/tag/firefox/">#firefox</a> <a href="/tag/github/">#github</a> <a href="/tag/internet-explorer/">#internet-explorer</a> <a href="/tag/marc-andreessen/">#marc-andreessen</a> <a href="/tag/vintage-computing/">#vintage-computing</a> <a href="/tag/web/">#web</a> </p>
<p class="companies">Companies: <a href="/company/ncsa/">#ncsa</a> <a href="/company/open-source/">#open-source</a> </p>
</div>
</div>
<div id="top_thumbnail" class="clearfix" >
<img src="//images.bit-tech.net/news_images/2010/03/hackers-resurrect-ncsa-mosaic/featured_single.jpg" alt="">
</div>
</div>
<div id="page_body" class="object_body">
If you fancy taking a step back in time - or if you're Johnny-come-lately looking to find out just what the previous generation had to put up with - then perhaps you'd like to try one of the first web browsers ever created?<br />
<br />
The source code for NCSA Mosaic 2.7 - Marc Andreessen's browser which became the basis for Netscape Navigator and Internet Explorer, and would eventually become Mozilla Firefox - has been uploaded to source-code sharing site GitHub by user Alan Dipert.<br />
<br />
Linux users capable of compiling programs from source are free to <a href="http://github.com/alandipert/ncsa-mosaic" target="_blank">download</a> the package and learn just what the early days of the web looked like circa 1993.<br />
<br />
According to <a href="http://www.webmonkey.com/2010/03/browse-the-web-as-it-looked-in-1993/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+wired%2Findex+%28Wired%3A+Index+3+%28Top+Stories+2%29%29&utm_content=Google+Reader" target="_blank">Webmonkey</a>, the package runs surprisingly well on modern Linux systems, and the few niggles that exist - such as poor support for PNG format graphics - are busily being patched out by GitHub community members.<br />
<br />
The Mosaic browser is the precursor to most modern graphical web browsers, and a piece of history. While being able to run it on your modern system might not have any <i>practical</i> purpose, it's an exercise in digital archeology for anyone interested in the birth of the web as we know it today.<br />
<br />
Just don't try doing your Internet banking on it.<br />
<br />
Are you impressed by the efforts made to port the Mosaic brower, or could the coders behind the project have found something better to do with their time? What browser did you use when you first got on to the web? Share your thoughts over in <a href="http://forums.bit-tech.net/showthread.php?t=184500">the forums</a>.<br>
</div>
<div id="comments_container" class="comments" style='overflow: auto;'>
<div id="comments_action">
<p class="login-link">Want to comment? Please log in.</p>
</div>
<a href="//forums.bit-tech.net/index.php?threads/184500">Discuss this in the forums</a>
<div id="current_comments" class="clearfix" >
</div>
<div id="comments_nav" class="col-1-1">
<div id="batch_numbers"></div>
</div>
</div>
<div id="related_articles_container" class="clearfix">
<h3 class="headingBar">RELATED ARTICLES</h3>
<div id="detail-related-container">
<div id="article_75932" class="article software news tech software ">
<div class="articleinfo">
<a href="/news/tech/software/basic-50/1/">
<img src="//images.bit-tech.net/news_images/2014/05/basic-50/featured_double.jpg" alt="BASIC celebrates its 50th anniversary">
<div class="article_info">
<div class="category-dot tech software"></div>
<h4 class="article_heading" >
BASIC celebrates its 50th anniversary
</h4>
<div class="summery clearfix">
<p>Spreads from mainframes to mobiles.</p>
<span class="published" >May 1, 2014 | 09:58</span>
</div>
</div>
</a>
</div>
<div class="rightseparator"></div>
<div class="bottomseparator"></div>
</div>
<div id="article_75296" class="article None news ">
<div class="articleinfo">
<a href="/news/apple-dos/1/">
<img src="//images.bit-tech.net/news_images/2013/11/apple-dos/featured_double.jpg" alt="Apple DOS source hits Computer History Museum">
<div class="article_info">
<div class="category-dot None None"></div>
<h4 class="article_heading" >
Apple DOS source hits Computer History Museum
</h4>
<div class="summery clearfix">
<p>Vintage code public for the first time.</p>
<span class="published" >November 13, 2013 | 11:15</span>
</div>
</div>
</a>
</div>
<div class="rightseparator"></div>
<div class="bottomseparator"></div>
</div>
<div id="article_73351" class="article tech news tech ">
<div class="articleinfo">
<a href="/news/tech/8-bit-spaghetti/1/">
<img src="//images.bit-tech.net/news_images/2012/05/8-bit-spaghetti/featured_double.jpg" alt="8 Bit Spaghetti documents home computer build">
<div class="article_info">
<div class="category-dot None tech"></div>
<h4 class="article_heading" >
8 Bit Spaghetti documents home computer build
</h4>
<div class="summery clearfix">
<p>Kyle Hovey is documenting his homebrew 8-bit computer, built at the TTL level, and it's a fascinating read.</p>
<span class="published" >May 1, 2012 | 11:02</span>
</div>
</div>
</a>
</div>
<div class="rightseparator"></div>
<div class="bottomseparator"></div>
</div>
</div>
</div>
</div>
<script src="/static/public/modal/baguetteBox.js"> </script>
<script>
function resizeImages() {
images = document.querySelectorAll('#page_body img');
for (let index = 0; index < images.length; index++) {
image = images[index];
// if (image.width == 430) {
// image.parentNode.width = 430;
// image.style.marginRight = "20px";
// }
if (image.width == 300) {
// console.log(image.parentElement)
image.parentElement.width = 430;
image.parentElement.style.width = "49%";
image.width = 430;
image.style.marginRight = "20px";
}
}
}
// window.onload = resizeImages()
// setTimeout(resizeImages, 5000);
elems = document.querySelectorAll('#page_body table')
if (elems) {
for (let index = 0; index < elems.length; index++) {
elems[index].style = '';
}
}
elems = document.querySelectorAll('#page_body table *')
if (elems) {
for (let index = 0; index < elems.length; index++) {
elems[index].style = '';
}
}
// elems.forEach( function(element) {
// element.style = ''
// });
window.onload = function() {
ad = document.querySelector('div.footerContainer div.xtag_container')
related = document.querySelector('#related_articles_container')
related.before(ad);
resizeImages()
};
</script>
</div>
<div id="side_column" class="grid_6">
<div id="banners">
<div class="side_bar_banners" >
<a href="//forums.bit-tech.net/index.php?forums/project-logs.42/">
<img src="/static/public/image/sidebar_banners/project_logs.jpg" alt="Project logs" loading="lazy">
</a>
</div>
<div class="side_bar_banners" >
<a href="/category/modding/">
<img src="/static/public/image/sidebar_banners/modding.jpg" alt="modding content" loading="lazy">
</a>
</div>
<div class="side_bar_banners" >
<a href="https://www.corsair.com/uk/en/">
<img src="/static/public/image/sidebar_banners/corsair2021.jpg" alt="Corsair" loading="lazy">
</a>
</div>
</div>
<div id="latest-video">
<lite-youtube videoid="yoe5YiHXGHA"></lite-youtube>
<img src="/static/public/image/YouTube_full-color.svg" alt="YouTube logo" loading="lazy">
<div>
<h5 id="latest-video-text">MSI MPG Velox 100R Chassis Review</h5>
<p>October 14 2021 | 15:04</p>
</div>
</div>
<div style="float:right;" ></div>
</div>
</div>
</div>
<div class="footerContainer clearfix">
<div id="footer" class="clearfix" >
<div id="bottom_links_container" class="clearfix" >
<div id="bottom-site-links">
<h2 class="heading" >Site Links</h2>
<ul class="site">
<li>
<a href="/">Home</a>
</li>
<li>
<a href="/terms/">Terms</a>
</li>
<li>
<a href="/about/">About</a>
</li>
<li>
<a href="mailto:hello@bit-tech.net">Advertise</a>
</li>
<li>
<a href="/scores/">Award Guide</a>
</li>
<li>
<a href="mailto:hello@bit-tech.net?subject=Site Contact Us">Contact Us</a>
</li>
</ul>
</div>
<div id="bottom-company-links">
<h2 class="heading" >Popular Companies</h2>
<ul>
<li>
<a href="/company/nvidia/">
<span>NVIDIA</span>
</a>
</li>
<li>
<a href="/company/amd/">
<span>AMD</span>
</a>
</li>
<li>
<a href="/company/intel/">
<span>Intel</span>
</a>
</li>
<li>
<a href="/company/corsair/">
<span>Corsair</span>
</a>
</li>
<li>
<a href="/company/apple/">
<span>APPLE</span>
</a>
</li>
<li>
<a href="/company/google/">
<span>Google</span>
</a>
</li>
<li>
<a href="/company/microsoft/">
<span>Microsoft</span>
</a>
</li>
<li>
<a href="/company/steam/">
<span>Steam</span>
</a>
</li>
<li>
<a href="/company/arm/">
<span>arm</span>
</a>
</li>
<li>
<a href="/company/asus/">
<span>ASUS</span>
</a>
</li>
<li>
<a href="/company/msi/">
<span>MSI</span>
</a>
</li>
<li>
<a href="/company/gigabyte/">
<span>GIGABYTE</span>
</a>
</li>
</ul>
</div>
<div class="icons">
<h2 class="heading">let's get social</h2>
<ul>
<li>
<a href="https://www.facebook.com/bittech">
<img src="/static/public/image/icons/facebook.svg" alt="bit-tech Facebook page" loading="lazy">
</a>
</li>
<li>
<a href="https://www.twitter.com/bittech">
<img src="/static/public/image/icons/twitter.svg" alt="bit-tech Twitter feed" loading="lazy">
</a>
</li>
<li>
<a href="https://www.instagram.com/bit_tech/">
<img src="/static/public/image/icons/instagram.svg" alt="bit-tech Instagram feed" loading="lazy">
</a>
</li>
<li>
<a href="https://www.youtube.com/c/bittech1">
<img src="/static/public/image/icons/youtube.svg" alt="bit-tech YouTube channel" loading="lazy">
</a>
</li>
<li>
<a href="https://discord.gg/EBGNWYm">
<img src="/static/public/image/icons/discord.svg" alt="bit-tech discord channel" loading="lazy">
</a>
</li>
<li>
<a href="/rss/">
<img src="/static/public/image/icons/rss.svg" alt="bit-tech RSS feed" loading="lazy">
</a>
</li>
</ul>
</div>
<img src="/static/public/image/bit_tech_logo_white.png" style="float: right;" alt="bit-tech logo" loading="lazy">
</div>
<br>
<div id="bottom_info_container" >
<p>Copyright © 2000 - 2026, bit-tech.net. All rights reserved.</p>
</div>
<div id="theMediaTeamLogoContainer" style="float:right;">
<a href="https://www.themediateam.net/">
<img id="theMediaTeamLogo" src="/static/public/image/part_of_the_media_team.png" style="width:100%;" alt="The Media Team logo" loading="lazy">
</a>
</div>
</div>
</div>
</div>
</div>
<div class="opaque"></div>
<div id="login_form" style="display: none;" class="login">
<div class="login-header">
<div class="login-title">Login Form</div>
<div class="login-exit"></div>
</div>
<div class="login-form"></div>
<div class="login-footer"></div>
</div>
<!-- JSON-LD -->
<script type="text/javascript" src="/static/head/generateFromURL.js"></script>
<!-- Tangular Template -->
<script src="/static/external/js/Tangular.min.js"></script>
<script type="text/template" id="sidebar_article_template">
<div class="sidebar_article[[ categories_string ]] [[ value.section ]]" >
<div class="image">
<a href="[[ value.get_absolute_url ]]">
<img src="[[ thumbnail ]]" alt="[[ value.title ]]" loading="lazy">
</a>
</div>
<div class="details">
<div class="title">
<a href="[[ value.get_absolute_url ]]">
<h4> [[ value.title ]] </h4>
</a>
</div>
</div>
</div>
</script>
<!-- SCRIPTS -->
<script type="text/javascript">
// desktop mobile split
$.ajaxSetup({
beforeSend: function(xhr, settings) {
function getCookie(name) {
var cookieValue = null;
if (document.cookie && document.cookie != '') {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = jQuery.trim(cookies[i]);
// Does this cookie string begin with the name we want?
if (cookie.substring(0, name.length + 1) == (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}
if (!(/^http:.*/.test(settings.url) || /^https:.*/.test(settings.url))) {
// Only send the token to relative URLs i.e. locally.
xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));
}
}
});
Ta.settings.delimiters = ["[[", "]]"];
</script>
<script src="/static/public/javascript/public.v2.js"></script>
<script>
window.BITTECH.Urls = {
top_stories: "/api/functions/get_top_stories/",
suggested_articles: "/api/functions/get_suggestions/"
};
var formValues = JSON.parse(localStorage.getItem('bit-tech-style')) || {};
var $checkboxes = $("input[type='radio']");
function updateStorage(){
$checkboxes.each(function(){
formValues[this.id] = this.checked;
});
localStorage.setItem("bit-tech-style", JSON.stringify(formValues));
}
$checkboxes.on("change", function(){
updateStorage();
});
// On page load
$.each(formValues, function(key, value) {
$("#" + key).prop('checked', value);
});
(function($) {
setTimeout(function(){
$('#skin').css('height', $(document).height());
$('style').each(function(){
$(this).text(
$(this).text().replace('body, body#bit-gamer', '#blurBackground')
);
});
});
$("img[src*='featured_double']").each(function(index, value) {
$(this).error(function() {
var img = $(this).clone();
var img_container = $(this).closest('.image');
var new_src = img.attr("src").replace("featured_double", "index_img");
img.attr("src", new_src);
$(this).replaceWith(img);
if (img_container.css('background-image')){
img_container.css('background-image', 'url(' + new_src + ')');
}
});
$(this).attr("src", function() {
return this.src;
});
});
var resManager = new window.BITTECH.ResolutionSwitcher();
resManager.checkResolution();
var resizeTimer;
$(window).resize(function(){
clearTimeout(resizeTimer);
resizeTimer = setTimeout(function(){
resManager.checkResolution();
}, 500);
});
// short signup script
function short_signup_redirect(){
var email = $('#shortSignup input[type="email"]').val();
window.top.location = '/';
}
$('span.send').on('click', function(){
short_signup_redirect();
});
$('#email').keypress(function(event){
var keycode = (event.keyCode ? event.keyCode : event.which);
if(keycode == '13'){
short_signup_redirect();
}
});
$('.search input[type="text"]').keypress(function(event){
var keycode = (event.keyCode ? event.keyCode : event.which);
if(keycode == '13'){
$('.search form').submit();
}
});
// function to handle the user being subscribed
function subscribed(){
// hide the subscribe to newsletter
$('#shortSignup').remove()
};
// sign me up click
$('#signMeUp').click(function(){
// post to subscribe
$.post("/cms/emails/api/functions/short-signup/", function(data){
if (data.status === 'success'){
subscribed();
} else {
$('#shortSignup .signMeUpContainer').html('<h3 class="align-left headingBar">ADD YOUR EMAIL <a href="/accounts/profile/" style="text-decoration:underline;">HERE</a> TO SUBSCRIBE</h3>');
$('#signMeUp').hide();
};
});
});
// check if user is signed up
$.get("/cms/emails/api/functions/is-subscribed/", function(data){
if (data.subscribed === true){
subscribed();
};
});
// identify visitor and metadata if there is a user agent
var visitor_id = null;
if ((typeof navigator !== 'undefined' || navigator !== null) && navigator.userAgent) {
visitor_id = localStorage.getItem('visitor_id');
$.get('/cms/intelligence/visit_meta/' + visitor_id + '/').done(function(data) {
localStorage.setItem('visitor_id', data['visitor_id']);
// initialise poll once we're sure they have a visitor ID
// initializePolls();
$.get('/cms/community/associate/' + data['visitor_id'] + '/');
var url_string = '';
var joiner = '?';
$('div.article').each(function(x){
var key = 'article_' + x.toString();
var value = $(this).attr('id').split('_')[1]
url_string = url_string + joiner + x.toString() + '=' + value;
joiner = '&';
});
});
}
})(jQuery);
(function ($) {
var Modal = (function () {
function Modal(options) {
this.options = {
$el: $("<div/>")
};
$.extend(this.options, options);
}
Modal.prototype.show = function () {
$(".opaque").addClass("show");
this.el().fadeIn("fast");
this.trigger("show");
return this;
};
Modal.prototype.hide = function () {
$(".opaque").removeClass("show");
this.el().fadeOut("fast");
this.trigger("hide");
return this;
};
Modal.prototype.on = function (evt, cb) {
this.options.$el.on(evt, cb.bind(this));
};
Modal.prototype.el = function () {
return this.options.$el;
};
Modal.prototype.off = function (evt) {
this.options.$el.off(evt);
};
Modal.prototype.trigger = function (evt, data) {
this.options.$el.trigger(evt, data);
};
return Modal;
})();
var login_form = $("#login_form");
var modal = new Modal({ $el: login_form });
$.fn.serializeObject = function() {
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name]) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
$(function() {
$('#page_body').find('img').each(function(index, image) {
var caption = $(image).attr('caption');
$(image).replaceWith(
$('<a/>').css({
'overflow': 'auto',
'display': 'inline-block',
'flex-direction': 'column',
'justify-content': 'center',
'text-align': 'center',
'float': $(image).css('float')
})
.attr('data-isimage', true)
.attr('href', $(image).attr('data-src') || $(image).attr('src'))
.html([
$(image).clone(),
'<figcaption style="font-size: 10px; font-weight: 300;"><i> '+
(caption && caption.length ? $(image).attr('caption') : 'Click to enlarge')
+ ' </i></figcaption>',
])
)
});
if (window.baguetteBox) {
baguetteBox.run('.object_body');
}
});
})(jQuery);
</script>
<script>
// media query change
function WidthChange(mq) {
if (mq.matches) {
// window width is at least 950px
$(header).css({
'height': '65px',
'width': '100%',
'background-color': 'rgb(245, 245, 245)',
// 'color': 'white',
'position': 'fixed',
'bottom': '0px',
'z-index': '9999',
'font-size': '1vw',
'text-align': 'center',
'max-height': '55px',
'font-size': '14px',
})
} else {
// window width is less than 950px
$(header).css({
'height': '90px',
'width': '100%',
'background-color': 'rgb(245, 245, 245)',
// 'color': 'white',
'position': 'fixed',
'bottom': '0px',
'z-index': '9999',
'font-size': '3vw',
'text-align': 'center',
'max-height': '115px',
'font-size': '14px',
})
}
}
if (!localStorage.getItem("bit-tech-privacy")||localStorage.getItem("bit-tech-privacy")==='false') {
header = document.createElement('div')
header.setAttribute('id', 'GDPR');
// media query event handler
if (matchMedia) {
const mq = window.matchMedia("(min-width: 950px)");
mq.addListener(WidthChange);
WidthChange(mq);
}
text = document.createElement('p');
text.innerHTML = 'In line with recent changes to data protection legislation in the UK and Europe we would like to direct you to our updated <a href="https://www.themediateam.net/privacy/" alt="The Media Team privacy policy">Privacy Policy here</a>.';
$(text).css({
'margin': '0px'
})
header.appendChild(text)
button = document.createElement('button')
button.innerHTML = 'Dismiss';
$(button).css({
'position': 'absolute',
'bottom': '5px',
'left': '0px',
'right': '0px',
'left': '0px',
'width': '65px',
'margin-left': 'auto',
'margin-right': 'auto',
'background-color': '#555555',
'border': 'none',
'color': 'white',
'padding': '5px',
'text-align': 'center',
'text-decoration': 'none',
})
button.onclick = function() {
localStorage.setItem('bit-tech-privacy', 'true');
$(header).css({
'display': 'none'
})
}
header.appendChild(button);
document.body.appendChild(header);
} else {
console.log("");
}
</script>
<script>
$('a[href*="thinq.co.uk"]').each(function(i, v){
$(v).after($(v).text());
$(v).remove();
});
</script>
<style>
body, #blurBackground {
background-attachment: fixed !important;
}
</style>
<script src="/static/public/javascript/external/lite-yt-embed.js"></script>
<script type="text/template" id="comments_template">
<div class="comment col-1-1" id="comment_[[ id ]]" data-member="[[ user_id ]]" data-id="[[ id ]]" data-username="[[ username ]]">
<div class="heading clearfix">
<h4>[[ title ]]</h4>
</div>
<div class="comment_text_container">
<div class="comment_text"></div>
<img class="quote-icon" src="/static/public/image/icons/comment_reply.png" alt="">
</div>
</dv>
</script>
<script type="text/javascript">
(function ($) {
$.get('/api/functions/xenforo_user_exists/', {'user':''}, function(data){
if (!data.authenticated){
$('#quick_comment').remove();
} else {
$('#comments_action').remove();
}
});
// related articles
// register page views
$.get("/cms/content/page_hit/", {
visitor_id: localStorage.getItem('visitor_id'),
page_id: 110996,
browser_width: $(window).width()
});
function detach(element, destination){
var detached = element.detach();
destination.append(detached);
}
// NZXT competition
if ($('div#page_body h2').text() === 'Competition: Win one of three NZXT prizes!') $('.articleCopy').html($('.articleCopy').html().replace('***QUESTION GOES HERE***', '<iframe style="border: 0pt none;" src="http://app.themediateam.net/poll/27/" width="600" height="300" sandbox="allow-same-origin allow-forms allow-scripts allow-popups allow-top-navigation"></iframe>'));
// Cube Competition
if ($('div#page_body h2').text() === 'Competition: Win this awesome Cube gaming PC!') $('.articleCopy').html($('.articleCopy').html().replace('***QUESTION GOES HERE***', '<iframe id="cube-competition" style="border: 0pt none;" src="http://app.themediateam.net/poll/28/" width="600" height="300" scrolling="no" sandbox="allow-same-origin allow-forms allow-scripts allow-popups allow-top-navigation"></iframe>'));
// NZXT competition ending in July 22nd
if ($('div#page_body h2').text() === 'Competition: Win an NZXT H440 EnVyUs case, Hue+ lighting controller or Gridv2 fan controller') $('.articleCopy').html($('.articleCopy').html().replace('**ENTER FORM HERE**', '<iframe style="border: 0pt none;" src="http://app.themediateam.net/poll/29/" width="600" height="400" scrolling="no" sandbox="allow-same-origin allow-forms allow-scripts allow-popups allow-top-navigation"></iframe>'));
if (screen.width <= 640)$('iframe#cube-competition').attr('scrolling', 'yes');
// Raven competition ending in July 19th
if ($('div#page_body h2').text() === 'Competition: Win a load of awesome SilverStone gear!') $('.articleCopy').html($('.articleCopy').html().replace('***QUESTIONNAIRE GOES HERE***', '<iframe id="raven-compo" style="border: 0pt none;" src="http://app.themediateam.net/poll/30/" width="600" height="600" scrolling="no" sandbox="allow-same-origin allow-forms allow-scripts allow-popups allow-top-navigation"></iframe>'));
// Tickets competition
if ($('div#page_body h2').text() === 'Competition: Win a pair of ROCCAT VIP Insomnia 58 tickets!') $('.articleCopy').html($('.articleCopy').html().replace('***QUESTIONNAIRE GOES HERE***', '<iframe id="ticket-compo" style="border: 0pt none;" src="http://app.themediateam.net/poll/31/" width="600" height="600" scrolling="no" sandbox="allow-same-origin allow-forms allow-scripts allow-popups allow-top-navigation"></iframe>'));
// SilverStone competition
if ($('div#page_body h2').text() === 'Competition: Win one of three SilverStone prizes!') $('.articleCopy').html($('.articleCopy').html().replace('***QUESTIONNAIRE GOES HERE***', '<iframe id="silver-compo" style="border: 0pt none;" src="http://app.themediateam.net/poll/32/" width="600" height="600" scrolling="no" sandbox="allow-same-origin allow-forms allow-scripts allow-popups allow-top-navigation"></iframe>'));
// if ($('.award img').attr('alt').indexOf('bittech-') > -1 || $('.award img').attr('alt').indexOf('bitgamer-') > -1) $('.overall').hide();
// $(".overall").each(function(){ if ($(this).css("display") === "none") {$(this).remove();}});
var newScoresClone = $('#newScores').detach();
var lastChild = $('.articleCopy').children().last();
if (lastChild.is('center'))
lastChild.before(newScoresClone);
else
$('div.articleCopy').append(newScoresClone);
var get_comments_url = "/api/functions/get_comments/68822/1/";
var template = Ta.compile($("#comments_template").html());
var base_comment_html = function(id, title, user_id, username) {
return template({
id: id,
title: title,
user_id: user_id,
username: username,
});
};
function regenerate_comments_batch(batch_num){
empty_comments();
$.ajax({
url: get_comments_url.slice(0, -2) + batch_num + '/',
type: 'GET',
success: function(data){
$('#comments_container').prepend('<div id="current_comments" class="clearfix" ></div>');
if (data.result === 'success'){
data.posts.forEach(function(v, i){
if (v.message_state==="visible") {
var date = new Date(v.post_date * 1000);
var formatted_date = date.toString().substring(0, 21)
$('#current_comments').append(base_comment_html(v.post_id, 'Posted by ' + v.username + ' - ' + formatted_date, v.user_id, v.username));
$('#comment_' + v.post_id).find('.comment_text').html(v.message_html);
}
});
} else if (data.result === 'failed'){
console.log(data.error);
}
// $('#current_comments').delay(600).slideDown(600);
$('.quote-icon').click(function(){
var comment = $(this).closest('[id*="comment"]');
quote_comment(comment.attr('id').split('_')[1]);
});
},
});
$('button.active').removeClass('active');
$('button#batch_' + batch_num).addClass('active');
if (batch_num === 1){
$('button#first_batch').addClass('active');
} else if (!jQuery('button#batch_' + (parseInt(batch_num) + 1)).length){
$('button#last_batch').addClass('active');
}
}
var base_batch_button_html = function(batch_num){
return '<button class="comments_batch" id="batch_' + batch_num + '" >' + batch_num + '</button>'
}
function empty_comments(){
$('div#current_comments').attr('id', 'old_comments');
$('div#old_comments').fadeOut(600, function(){
$('div#old_comments').remove();
$('div#current_comments').fadeIn(600);
});
}
$.ajax({
url: get_comments_url,
success: function(data){
if (data.result === 'success'){
data.posts.forEach(function(v, i){
if (v.message_state==="visible") {
var date = new Date(v.post_date * 1000);
var formatted_date = date.toString().substring(0, 21)
$('#current_comments').append(base_comment_html(v.post_id, 'Posted by ' + v.username + ' - ' + formatted_date, v.user_id, v.username));
$('#comment_' + v.post_id).find('.comment_text').html(v.message_html);
}
});
var batches = Math.ceil((data.count)/5);
if (batches > 1){
$('div#comments_nav')
.append('<button id="last_batch">Last</button>')
.prepend('<button id="first_batch">First</button>');
var html = []
for (var i = 1; i <= batches; i++) html.push(base_batch_button_html(i));
$('div#comments_nav #batch_numbers').append(html);
} else {
$('#comments_nav').remove()
}
} else if (data.result === 'failed'){
console.log(data.error);
}
$('#first_batch').click(function(){
regenerate_comments_batch(1);
});
$('#last_batch').click(function(){
regenerate_comments_batch(batches);
});
$('#batch_numbers .comments_batch').click(function(){
var batch = jQuery(this).attr('id').split('_')[1];
regenerate_comments_batch(batch);
});
$('button#first_batch').addClass('active');
$('button#batch_1').addClass('active');
$('.quote-icon').click(function(){
var comment = $(this).closest('[id*="comment"]');
quote_comment(comment.attr('id').split('_')[1]);
});
},
});
// to post comments
var comment_post_url = '/api/functions/create_xenforo_post/68822/';
// submit comment click
$('#quick_comment_submit').click(function(){
// to prevent blank comments
if ($('#quick_comment_text').val().length > 0){
// post comment as request.user.username
$.post(comment_post_url,
{
'message' : $('#quick_comment_text').val()
},
// to handle response
function(data){
if (data.success == true){
$('#quick_comment').html('<p class="success">Thank you, your comment has been posted!</p>');
} else {
$('#quick_comment').html('<p class="failed">Your comment failed to post.</p>');
}
}
);
}
});
function quote_comment(comment_id){
// get comment, get vars needed for quote bb code
var comment = $('#comment_' + comment_id);
var username = comment.attr('data-username');
var post_id = comment.attr('data-id');
var member = comment.attr('data-member');
var text = comment.find('.comment_text').text();
// if quote already quotes, remove the nested quote from the text
if (comment.find('.comment_text').html().split('<blockquote>')[1]){
var text = comment.find('.comment_text').html().split('</blockquote>')[1];
}
var quote_text = '[QUOTE="' + username + ', post: ' + post_id + ', member: ' + member + '"]' + text + '[/QUOTE]';
$('#quick_comment_text').val(quote_text);
}
})(jQuery);
</script>
</body>
</html>