1
0
mirror of https://github.com/osmarks/website synced 2025-06-01 06:04:07 +00:00

DIYPC/server differences post

This commit is contained in:
osmarks 2025-05-27 20:41:32 +01:00
parent a73d68f096
commit 1c35f1d1fe
12 changed files with 1039 additions and 2 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 349 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

View File

@ -0,0 +1,892 @@
<!DOCTYPE html>
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head><meta name='avature.wizard.registrars' content='[{"wizardId":18,"settings":{"isInternationalizationEnabled":true,"autoPartialSaveInterval":null,"shouldShowFieldByField":false,"uploadedResumeId":null,"largeFilesUploadParams":[]},"fields":[{"fieldId":"266","registrars":[{"type":"Field","name":"KeywordsField"},{"type":"Validator","name":"MinLengthValidator","settings":{"errorMessage":"Type at least 1 characters.","minLength":1}}]},{"fieldId":"660","registrars":[{"type":"ValuesDatasource","name":"DatasetSingleColumnFieldOptionsDatasource","settings":{"datasetFilters":[],"optionFormatComponents":[{"type":"field","order":0,"fieldNumberOrText":"zf7Pzs9WATNAaam7Is+Q2weQPocaFIQwesVh2HYNeco3T9u9o5EthQ=="}],"schemaFieldIdToUseForIndirectFiltering":"aGmINujMdH9nel9Bgn8gvE+EuYmP+yqt0zgouV0ajm46rGxN6hLb","datasetSchemaSpecId":"cGOtU4q2kenTbbsV1yCtdWecQ0EMQ1BVXELsrN93Z4uJbbQFmc4iBfXT","datasetSchemaFieldId":"lOBnzyhnsoJA58\/baAaxfLnltbiz7HbsTMGU4CZJhOcUW2isrSK9ksuk2g==","ignoreFilterIfNoValueIsSelected":false,"portalUrlPath":"\/en_US\/careersmarketplace"}},{"type":"Field","name":"AutocompleteMultipleSelectField","settings":{"dropdownCssClass":"bigdrop","placeholderText":"Select location","minimumInputLength":0,"ajaxDelayMs":1000,"visibleOptionsLimit":3,"optionIdsToSearchLimit":100,"dictionary":{"optionSelected":"option selected","removeOption":"Press enter or backspace to remove this option","removeAllOptions":"Press enter or backspace to remove all options","searchResults":"new search results","navigationAdvice":"Press the up and down arrow keys to navigate the list","totalResults":"total results","totalResult":"total result","optionRemoved":"Option removed","allOptionsRemoved":"All options removed","enterTextToSearch":"Enter text to search"},"label":"Location","isRequired":false,"isAccessible":true,"keepTextInField":true}}]},{"fieldId":"270","registrars":[{"type":"Field","name":"ButtonBarField","settings":{"buttonsData":[{"buttonId":26,"buttonType":"submitButton","workflowStepUpdateIds":"","isAutomaticAction":false,"disableButtonConditions":[]}]}}]}]}]'><meta name='avature.portal.id' content='13'><meta name='avature.portal.name' content='Virgin Media O2 Careers'><meta name='avature.portal.urlPath' content='careersmarketplace'><meta name='avature.portal.lang' content='en_US'><meta name='avature.portal.page' content=''>
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.5, user-scalable=1" />
<script> (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-PD27C9P');
</script>
<script> !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js');fbq('init', '866731118836531');fbq('track', 'PageView');
</script>
<meta property="og:title" content="Virgin Media O2 Careers" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jobs.virginmediao2.co.uk/en_US/careersmarketplace" />
<meta property="og:description" content="Virgin Media O2 Careers" />
<meta property="og:site_name" content="Virgin Media O2" />
<meta property="og:image" content="https://jobs.virginmediao2.co.uk/portal/13/images/logo--hiring-organization.png" />
<meta name="Description" content="Virgin Media O2 Careers" />
<title>
Virgin Media O2 Careers
</title>
<link rel="stylesheet" href="/ASSET/portal/jquery/UI/1.13.2/jquery-ui.min.css?version=10.48.95-stable"><link rel="stylesheet" href="/portalpacks/web/body.67af22d5.css"><link rel="stylesheet" href="/ASSET/wizard/portal/jquery/plugin/select2/select2.min.css?version=10.48.95-stable">
<link rel="stylesheet" type="text/css" media="all" href="/portal/13/css/library__theme.css" />
<style type="text/css"> /* ==========================================================================
LIBRARY THEME (Version: 22.4)
--------------------------------------------------------------------------
* ELEMENTS
: Logo
: Actions
: Fields
* COMPONENTS
: Mobile menu
: Form item types
: FileField/FileSchemaField
: Expired session
* MODULES
: Banner
* PAGETYPES
: Blocking login
========================================================================== */
/* ELEMENTS: Logo
-------------------------------------------------------------------------- */
:root {
--logo--background--image: url(https://jobs.virginmediao2.co.uk/portal/13/images/logo--default.webp);
}
.footer {
--logo--background--image: url(https://jobs.virginmediao2.co.uk/portal/13/images/logo--footer.webp);
}
/* ELEMENTS: Actions
-------------------------------------------------------------------------- */
:root {
--action--icon--remove: url(https://jobs.virginmediao2.co.uk/portal/13/images/icon--remove.svg);
--action--icon--remove--hover: url(https://jobs.virginmediao2.co.uk/portal/13/images/icon--remove--hover.svg);
--action--icon--add: url(https://jobs.virginmediao2.co.uk/portal/13/images/icon--add.svg);
--action--icon--add--hover: url(https://jobs.virginmediao2.co.uk/portal/13/images/icon--add--hover.svg);
}
/* ELEMENTS: Fields
-------------------------------------------------------------------------- */
:root {
--fields--icon--caret--down: url(https://jobs.virginmediao2.co.uk/portal/13/images/icon--caret--down.svg);
--fields--icon--caret--down--disabled: url(https://jobs.virginmediao2.co.uk/portal/13/images/icon--caret--down--disabled.svg);
--fields--icon--caret--up: url(https://jobs.virginmediao2.co.uk/portal/13/images/icon--caret--up.svg);
--fields--icon--clear: url(https://jobs.virginmediao2.co.uk/portal/13/images/icon--clear.svg);
}
/* COMPONENTS: Mobile menu
-------------------------------------------------------------------------- */
:root {
--menu--icon--image: url(https://jobs.virginmediao2.co.uk/portal/13/images/icon--menu.svg);
}
/* COMPONENTS: Form item types: FileField/FileSchemaField
-------------------------------------------------------------------------- */
:root {
--photo--upload--icon--user: url(https://jobs.virginmediao2.co.uk/portal/13/images/icon--user.svg);
}
/* COMPONENTS: Expired session
-------------------------------------------------------------------------- */
:root {
--session--icon--closethick: url(https://jobs.virginmediao2.co.uk/portal/13/images/close.svg);
}
/* MODULES: Banner
-------------------------------------------------------------------------- */
:root {
--banner--background--image: url(https://jobs.virginmediao2.co.uk/portal/13/images/banners/banner--gen.webp);
--banner--lifeat: url(https://jobs.virginmediao2.co.uk/portal/13/images/banners/banner--lifeat.webp);
--banner--grads: url(https://jobs.virginmediao2.co.uk/portal/13/images/banners/banner--grads.webp);
--banner--app: url(https://jobs.virginmediao2.co.uk/portal/13/images/banners/banner--app.webp);
--banner--int: url(https://jobs.virginmediao2.co.uk/portal/13/images/banners/banner--int.webp);
--banner--graphics: url(https://jobs.virginmediao2.co.uk/portal/13/images/banners/banner--graphics.webp);
--banner--quiz: url(https://jobs.virginmediao2.co.uk/portal/13/images/banners/banner--quiz.webp);
--banner--diversity: url(https://jobs.virginmediao2.co.uk/portal/13/images/banners/banner--diversity.webp);
}
/* Media query to target only mobile */
@media all and (max-width:750px) {
:root {
--banner--background--image: url(https://jobs.virginmediao2.co.uk/portal/13/images/home--banner--main--mobile.webp);
--banner--quiz: url(https://jobs.virginmediao2.co.uk/portal/13/images/banners/banner--quiz--mob.webp);
--banner--mobile--process: url(https://jobs.virginmediao2.co.uk/portal/13/images/banners/banner--mobile--process.webp);
}
}
/* Media query to target mobile and tablet */
@media all and (max-width:1024px) {
:root {
--banner--graphics: url(https://jobs.virginmediao2.co.uk/portal/13/images/banners/banner--graphics--mob.webp);
}
}
/* MODULES: Home Banner
-------------------------------------------------------------------------- */
:root {
--home__banner--background--image: url(https://jobs.virginmediao2.co.uk/portal/13/images/home--banner--main--desktop.webp);
}
/* Media query to target only mobile */
@media all and (max-width:750px) {
:root {
--home__banner--background--image: url(https://jobs.virginmediao2.co.uk/portal/13/images/home--banner--main--mobile.webp);
}
}
/* MODULES: Illustrations
-------------------------------------------------------------------------- */
:root {
--aside--teamwork: url(https://jobs.virginmediao2.co.uk/portal/13/images/aside/aside--teamwork.webp);
--aside--connect: url(https://jobs.virginmediao2.co.uk/portal/13/images/aside/aside--connect.webp);
--aside--connect--b: url(https://jobs.virginmediao2.co.uk/portal/13/images/aside/aside--connect--b.webp);
--aside--adventure: url(https://jobs.virginmediao2.co.uk/portal/13/images/aside/aside--adventure.webp);
--aside--illus--left: url(https://jobs.virginmediao2.co.uk/portal/13/images/aside/aside--illus--left.webp);
--aside--illus--right: url(https://jobs.virginmediao2.co.uk/portal/13/images/aside/aside--illus--right.webp);
--aside--illus--flex: url(https://jobs.virginmediao2.co.uk/portal/13/images/aside/aside--illus--flex.webp);
--aside--illus--flex--alt: url(https://jobs.virginmediao2.co.uk/portal/13/images/aside/aside--illus--flex--alt.webp);
--aside--illus--video: url(https://jobs.virginmediao2.co.uk/portal/13/images/aside/aside--illus--video.webp);
--aside--illus--success: url(https://jobs.virginmediao2.co.uk/portal/13/images/aside/aside--illus--success.webp);
--aside--illus--process: url(https://jobs.virginmediao2.co.uk/portal/13/images/aside/aside--process.webp);
--aside--illus--jobs: url(https://jobs.virginmediao2.co.uk/portal/13/images/aside/aside--jobs.webp);
--aside--illus--bttm: url(https://jobs.virginmediao2.co.uk/portal/13/images/aside/aside--illus--bttm.webp);
}
/* Media query to target mobile and tablet */
@media all and (max-width:1024px) {
:root {
--aside--teamwork: url(https://jobs.virginmediao2.co.uk/portal/13/images/aside/aside--teamwork--mob.webp);
--aside--connect: url(https://jobs.virginmediao2.co.uk/portal/13/images/aside/aside--connect--mob.webp);
--aside--illus--flex: url(https://jobs.virginmediao2.co.uk/portal/13/images/aside/aside--illus--flex--mob.webp);
--aside--illus--success: url(https://jobs.virginmediao2.co.uk/portal/13/images/aside/aside--illus--success--mob.webp);
--aside--adventure: url(https://jobs.virginmediao2.co.uk/portal/13/images/aside/aside--adventure--mob.webp);
--aside--illus--process: url(https://jobs.virginmediao2.co.uk/portal/13/images/aside/aside--process--mob.webp);
--aside--parents: url(https://jobs.virginmediao2.co.uk/portal/13/images/aside/aside--parents--mob.webp);
--aside--illus--bttm: url(https://jobs.virginmediao2.co.uk/portal/13/images/aside/aside--illus--bttm--mob.webp);
--aside--connect--b: url(https://jobs.virginmediao2.co.uk/portal/13/images/aside/aside--connect--b--mob.webp);
}
}
/* MODULES: Icons
-------------------------------------------------------------------------- */
:root {
--icon--quote: url(https://jobs.virginmediao2.co.uk/portal/13/images/icons/quote.webp);
--icon--grad: url(https://jobs.virginmediao2.co.uk/portal/13/images/icons/grad.svg);
--icon--interns: url(https://jobs.virginmediao2.co.uk/portal/13/images/icons/interns.svg);
--icon--jigsaw: url(https://jobs.virginmediao2.co.uk/portal/13/images/icons/jigsaw.webp);
--icon--calendar: url(https://jobs.virginmediao2.co.uk/portal/13/images/icons/calendar.svg);
--icon--info: url(https://jobs.virginmediao2.co.uk/portal/13/images/icons/info.svg);
--icon--location: url(https://jobs.virginmediao2.co.uk/portal/13/images/icons/location.svg);
--icon--person: url(https://jobs.virginmediao2.co.uk/portal/13/images/icons/person.svg);
--icon--question: url(https://jobs.virginmediao2.co.uk/portal/13/images/icons/question.webp);
--icon--list: url(https://jobs.virginmediao2.co.uk/portal/13/images/icons/list.webp);
--icon--bubble: url(https://jobs.virginmediao2.co.uk/portal/13/images/icons/bubble.webp);
}
.section__content__list__item--apprentices:hover {
--icon--jigsaw: url(https://jobs.virginmediao2.co.uk/portal/13/images/icons/jigsaw--hover.webp);
}
.section__content__list__item--interns:hover {
--icon--interns: url(https://jobs.virginmediao2.co.uk/portal/13/images/icons/interns--hover.svg);
}
.section__content__list__item--graduates:hover {
--icon--grad: url(https://jobs.virginmediao2.co.uk/portal/13/images/icons/grad--hover.svg);
}
/* PAGETYPES: Blockin login
-------------------------------------------------------------------------- */
:root {
--login__body--background--image: url(https://jobs.virginmediao2.co.uk/portal/13/images/login--bg--desktop.webp);
}
/* Media query to target only tablet */
@media all and (min-width:751px) and (max-width:1024px) {
:root {
--login__body--background--image: url(https://jobs.virginmediao2.co.uk/portal/13/images/login--bg--tablet.webp);
}
}
/* Media query to target only mobile */
@media all and (max-width:750px) {
:root {
--login__body--background--image: url(https://jobs.virginmediao2.co.uk/portal/13/images/login--bg--mobile.jpg);
}
}
</style><link id="corecss" rel="stylesheet" type="text/css" media="all" href="https://templates-static-assets.avacdn.net/cssLibrary/22.4/core.min.css" />
<link rel="stylesheet" type="text/css" media="all" href="/portal/13/css/specifics.css" />
<script src="/ASSET/portal/jquery/jquerycore/3.7.1/jquery.min.js?version=10.48.95-stable"></script><script src="/ASSET/portal/jquery/UI/1.13.2/jquery-ui.min.js?version=10.48.95-stable"></script><script src="/ASSET/portal/pjquery/pjQueryDeclaration.js?version=10.48.95-stable"></script><script src="/portalpacks/web/runtime.b3374eba.js"></script><script src="/portalpacks/web/464.4f7b40f3.js"></script><script src="/portalpacks/web/82.2f304040.js"></script><script src="/portalpacks/web/161.f9947abe.js"></script><script src="/portalpacks/web/400.031be4c6.js"></script><script src="/portalpacks/web/630.54630837.js"></script><script src="/portalpacks/web/61.90475657.js"></script><script src="/portalpacks/web/990.8473f733.js"></script><script src="/portalpacks/web/191.e906e19d.js"></script><script src="/portalpacks/web/head.45f3d199.js"></script><script data-account="Q3tO6QVtHA" data-cookie-type="1" src="https://cdn.userway.org/widget.js"></script>
<link href="/portal/13/favicon.ico" rel="shortcut icon" id="favico" type="images/vnd.microsoft.icon">
<link rel="canonical" href="https://jobs.virginmediao2.co.uk/en_US/careersmarketplace/Home" />
<script>
EventManager.getInstance().addEventHandler(EventManager.EVENT_LOAD_NAME, function () {
}, EventManager.PRIORITY_HIGH);
</script></head>
<body class="
body
body--footer-sticky
body--Firefox body--Firefox138
body--home body--full
">
<noscript>
<iframe src='https://www.googletagmanager.com/ns.html?id=GTM-PD27C9P' height="0" width="0" class="hide--google-tag-manager" ></iframe>
</noscript>
<div class="body__content">
<header class="header header--mobile-menu--from-right">
<a class="visibility--hidden--visually skip-content focusable tpt_localAnchor" href="#main">
Skip to content </a>
<div class="header__wrapper">
<div class="header__content">
<div class="header__logo">
<a class="logo logo--header" href="https://jobs.virginmediao2.co.uk/en_US/careersmarketplace"></a>
</div>
<div class="header__nav" aria-label="Main menu">
<a href="#" class="tpt_mobile-menu--from-right--moves-over__trigger" aria-expanded="false" aria-haspopup="true" aria-labelledby="mobile-menu-label" tabindex="0" role="button"></a>
<p class="visibility--hidden--visually" id="mobile-menu-label">
Main menu. Press enter or space keys to expands and escape key to collapse </p>
<div class="tpt_mobile-menu--from-right--moves-over">
<nav class="nav clearfix" aria-label="Main site navigation">
<ul class="nav__list clearfix">
<li class="nav__item " >
<a class="nav__item__link" href="https://jobs.virginmediao2.co.uk/en_US/careersmarketplace/SearchJobs">
<span class="nav__item__link__text">
Jobs </span>
</a>
</li>
<li class="nav__item nav__item--has-subnav nav__item--has-subnav--overflows-not">
<a class="nav__item__link" href="https://jobs.virginmediao2.co.uk/en_US/careersmarketplace/Lifeatvirginmediao2">
<span class="nav__item__link__text">
Life at Virgin Media O2 </span>
</a>
<ul class="subnav__list clearfix">
<li class="subnav__item">
<a class="subnav__item__link" href="https://jobs.virginmediao2.co.uk/en_US/careersmarketplace/Lifeatvirginmediao2#values">
Values </a>
</li>
<li class="subnav__item">
<a class="subnav__item__link" href="https://jobs.virginmediao2.co.uk/en_US/careersmarketplace/Lifeatvirginmediao2#benefits">
Benefits </a>
</li>
<li class="subnav__item">
<a class="subnav__item__link" href="https://jobs.virginmediao2.co.uk/en_US/careersmarketplace/Lifeatvirginmediao2#history">
History </a>
</li>
</ul>
</li>
<li class="nav__item nav__item--has-subnav nav__item--has-subnav--overflows-not">
<a class="nav__item__link" href="https://jobs.virginmediao2.co.uk/en_US/careersmarketplace/Futurecareers">
<span class="nav__item__link__text">
Future Careers </span>
</a>
<ul class="subnav__list clearfix">
<li class="subnav__item">
<a class="subnav__item__link" href="https://jobs.virginmediao2.co.uk/en_US/careersmarketplace/Graduates">
Graduates </a>
</li>
<li class="subnav__item">
<a class="subnav__item__link" href="https://jobs.virginmediao2.co.uk/en_US/careersmarketplace/Interns">
Interns </a>
</li>
<li class="subnav__item">
<a class="subnav__item__link" href="https://jobs.virginmediao2.co.uk/en_US/careersmarketplace/Apprentices">
Apprentices </a>
</li>
</ul>
</li>
<li class="nav__item nav__item--has-subnav nav__item--has-subnav--overflows-not">
<a class="nav__item__link" href="https://jobs.virginmediao2.co.uk/en_US/careersmarketplace/Diversitysustainability">
<span class="nav__item__link__text">
Diversity &#x26; Sustainability </span>
</a>
<ul class="subnav__list clearfix">
<li class="subnav__item">
<a class="subnav__item__link" href="https://jobs.virginmediao2.co.uk/en_US/careersmarketplace/Diversitysustainability#inclusion">
Inclusion </a>
</li>
<li class="subnav__item">
<a class="subnav__item__link" href="https://jobs.virginmediao2.co.uk/en_US/careersmarketplace/Diversitysustainability#sustainability">
Sustainability </a>
</li>
<li class="subnav__item">
<a class="subnav__item__link" href="https://jobs.virginmediao2.co.uk/en_US/careersmarketplace/Diversitysustainability#volunteering">
Volunteering </a>
</li>
</ul>
</li>
<li class="nav__item " >
<a class="nav__item__link" href="https://jobs.virginmediao2.co.uk/en_US/careersmarketplace/InclusiveHiring">
<span class="nav__item__link__text">
Our Process </span>
</a>
</li>
</ul>
<ul class="nav__list nav__list--separator-left nav__list--separator-left--white clearfix">
<li class="nav__item " >
<a class="button button--primary button--login" data-map="user-signin-link" href="https://jobs.virginmediao2.co.uk/en_US/careersmarketplace/Login">
Login </a>
</li>
</ul>
</nav>
</div>
</div>
</div>
</div>
</header>
<div class="banner banner--main banner--main--home">
<div class="banner__wrapper">
<div class="banner__text">
<h1 class="banner__text__title title title--banner">
Careers <br> with
<img class="banner__text__title__logo" src="https://jobs.virginmediao2.co.uk/portal/13/images/logo--big--white.webp" alt="Virgin Media O2 Logo" loading="lazy">
</h1>
</div>
<form class="form form--search" action="https://jobs.virginmediao2.co.uk/en_US/careersmarketplace/SearchJobs" autocomplete="on" id="tpt_jobSortableForm" method="post" autocomplete="on" id="tpt_jobSortableForm" method="post" role="search" >
<fieldset>
<legend class="visibility--hidden--visually">
Search for open positions </legend>
<div id="wizard-id-18" class="wizard" data-id="18"><div id="liveErrorsContainer" role="alert" aria-live="polite" class="screenReaderVisibility"></div><input type="hidden" name="listFilterMode" value="true"/><fieldset class="Section Section1"><div class="fieldSpec form__item--search TextField fieldSpecPadder" id="fieldSpecContainer266"><label class="WizardFieldLabel tc_formLabel" for="266" id="266-label">Keyword</label><input type="text" id="266" name="search" tabindex="0" class="form__item--search TextField WizardFieldInputContainer WizardFieldInput" value dir="auto" placeholder="Search by keyword" autocomplete="on" aria-labelledby="266-label"/></div><div class="fieldSpec CheckBoxListFormField AutoCompleteField fieldSpecPadder" id="fieldSpecContainer660"><label class="WizardFieldLabel tc_formLabel" for="660" id="660-label">Location</label><div id="ui-widget_660" class="ui-widget AutocompleteSelectFieldUIWidget tc_formField" lang="en"><div id="660-liveContainer" class="screenReaderVisibility" aria-live="assertive" aria-atomic="true"></div><select name="660[]" tabindex="0" class=" CheckBoxListFormField AutoCompleteField AutocompleteSelectFieldChildHtmlElement" id="660" multiple="1"></select></div></div><div class="fieldSpec button-bar ButtonBarField fieldSpecPadder" id="fieldSpecContainer270"><fieldset><legend class="WizardFieldLabel tc_formLabel" id="270-label"></legend><div id="270" class="button-bar__wrap tc_formField"><button class="submitButton tc_formButton" id="270-submit" name="action" tabindex="0" type="submit" value="search" data-buttonId="26" formnovalidate>Search</button> </div></fieldset></div></fieldset></div>
</fieldset>
</form>
</div>
<div class="banner__extra">
<div class="banner__extra__content">
<h2 class="title title--05 visibility--only-desktop">
Let us search for you </h2>
<a class="button button--primary" href="https://jobs.virginmediao2.co.uk/en_US/careersmarketplace/RecommendationMethods">
Get recommendations </a>
</div>
</div>
</div>
<main class="main" id="main">
<div class="main__wrapper">
<div class="main__content clearfix">
<section class="section section--start">
<div class="section__wrapper">
<div class="section__content section__content--w--narrow t--c">
<div class="section__content__title">
<h2 class="section__header__text__title title title--10 title--mob">
See what you can do <span class="span--blue">when you join us</span>
</h2>
</div>
<div class="section__content__text">
<p class="paragraph"><p>Virgin Media O2 is at the start of a new era.&nbsp;</p>
<p><br></p>
<p>As one of the UK&rsquo;s largest businesses, we are powered by a epic, diverse and high performing team that provide customers with a range of services they love to use and rely on every day.&nbsp;</p>
<p><br></p>
<p>Find your perfect role and <strong>see what you can do with us</strong>. &nbsp;</p></p>
</div>
</div>
</div>
</section>
<section class="section section--video section--lg">
<div class="section__wrapper">
<div class="section__content section__content--aside">
<img class="section__content__image" src="https://jobs.virginmediao2.co.uk/portal/13/images/aside/aside--whatyoucando.webp" alt="See what you can do" loading="lazy">
</div>
<div class="section__content">
<div class="section__content__video">
<div class="embed-container">
<iframe data-cookie-type="2" src='https://player.vimeo.com/video/847277327?h=e23f58ff07&amp;badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479' width="560" height="315" frameborder="0" allowfullscreen="true" ></iframe>
</div>
</div>
<div class="section__content__title">
<h2 class="section__header__text__title title title--11 title--blocks">
A sneak peek <span class="span span--blue">into your future</span>
</h2>
</div>
<div class="section__content__text">
<p class="paragraph">
Were on a transformational journey like no other to put our customers first and deliver a range of services they love to use and rely on every single day. And we trust our team to make that happen.
</p>
<p class="paragraph">
Make our customers your priority and well make you ours. With incredible job opportunities, unbelievable perks and an inclusive can-do culture, are you ready to be part of the change? </p>
</div>
</div>
</div>
</section>
<section class="section section--teamwork">
<div class="section__wrapper">
<div class="section__content t--l">
<div class="section__content__title">
<h2 class="section__header__text__title title title--11 title--blocks">
It only works, <span class="span span--blue">if it all works </span>
</h2>
</div>
<div class="section__content__text">
<p class="paragraph">Since we joined forces in June 2021, our ambition has been to be an agile, fast-paced leading and winning business in the market. Were all about working together as one team to put the customer first in everything we do.</p>
<p class="paragraph">Does your ambition match ours? Do you have a can-do attitude and desire to lean into a challenge to deliver winning results? Are you passionate about delivering a fantastic customer experience? We want to see what you can do. </p>
<a class="button button--primary m--t--xl" href="https://jobs.virginmediao2.co.uk/en_US/careersmarketplace/Lifeatvirginmediao2">Read More</a>
</div>
</div>
</div>
</section>
<section class="section section--lg">
<div class="section__wrapper">
<div class="section__content t--l">
<div class="section__content__title">
<h2 class="section__header__text__title title title--11">
Find your
<span class="span span--blue">
happy place </span>
</h2>
</div>
<div class="section__content__swiper slider-container">
<div class="swiper swiper-container swiper--happyPlace--home" >
<div class="swiper-wrapper">
<div class="swiper-slide">
<div class="slide__content">
<img class="slide__content__thumbnail" src="https://jobs.virginmediao2.co.uk/portal/13/images/thumbnails/thumb--digitaltech.webp" alt="Digital &amp; Technology" loading="lazy">
<div class="slide__content__title title title--07 m--t--l">
Digital &amp; Technology
</div>
<div class="slide__content__text m--t--m">
Learning fast and ripping up the rulebook to deliver innovative and secure technology that will put our customers in the driving seat..
</div>
<a class="button button--secondary m--t--l" href="https://virginmediao2.avature.net/en_US/careersmarketplace/SearchJobs/?708=8341&amp;708_format=846&amp;listFilterMode=1&amp;jobRecordsPerPage=8&amp;">
Search Roles </a>
</div>
</div>
<div class="swiper-slide">
<div class="slide__content">
<img class="slide__content__thumbnail" src="https://jobs.virginmediao2.co.uk/portal/13/images/thumbnails/thumb--costumer.webp" alt="Customer Service &amp; Sales" loading="lazy">
<div class="slide__content__title title title--07 m--t--l">
Customer Service &amp; Sales
</div>
<div class="slide__content__text m--t--m">
Merging great products with supportive conversation - we show up for our customers in a way that matters to them.
</div>
<a class="button button--secondary m--t--l" href="https://virginmediao2.avature.net/en_US/careersmarketplace/SearchJobs/?708=6055&amp;708_format=846&amp;listFilterMode=1&amp;jobRecordsPerPage=8&amp;">
Search Roles </a>
</div>
</div>
<div class="swiper-slide">
<div class="slide__content">
<img class="slide__content__thumbnail" src="https://jobs.virginmediao2.co.uk/portal/13/images/thumbnails/thumb--corporate.webp" alt="Corporate Functions" loading="lazy">
<div class="slide__content__title title title--07 m--t--l">
Corporate Functions
</div>
<div class="slide__content__text m--t--m">
The engine room behind the business. Promoting and protecting our teams by providing amazing support services, for all their needs.
</div>
<a class="button button--secondary m--t--l" href="https://virginmediao2.avature.net/en_US/careersmarketplace/SearchJobs/?708=6054&amp;708_format=846&amp;listFilterMode=1&amp;jobRecordsPerPage=8&amp;">
Search Roles </a>
</div>
</div>
<div class="swiper-slide">
<div class="slide__content">
<img class="slide__content__thumbnail" src="https://jobs.virginmediao2.co.uk/portal/13/images/thumbnails/thumb--technicians.webp" alt="Technicians &amp; Engineers" loading="lazy">
<div class="slide__content__title title title--07 m--t--l">
Technicians &amp; Engineers
</div>
<div class="slide__content__text m--t--m">
Fusing smart technology with fast connection speeds, were at the helm of the countrys network.
</div>
<a class="button button--secondary m--t--l" href="https://virginmediao2.avature.net/en_US/careersmarketplace/SearchJobs/?708=8344&amp;708_format=846&amp;listFilterMode=1&amp;jobRecordsPerPage=8&amp;">
Search Roles </a>
</div>
</div>
<div class="swiper-slide">
<div class="slide__content">
<img class="slide__content__thumbnail" src="https://jobs.virginmediao2.co.uk/portal/13/images/thumbnails/thumb--retail.webp" alt="Retail" loading="lazy">
<div class="slide__content__title title title--07 m--t--l">
Retail
</div>
<div class="slide__content__text m--t--m">
Our stores help to unite our business with our customers, with real time connections.
</div>
<a class="button button--secondary m--t--l" href="https://virginmediao2.avature.net/en_US/careersmarketplace/SearchJobs/?708=8343&amp;708_format=846&amp;listFilterMode=1&amp;jobRecordsPerPage=8&amp;">
Search Roles </a>
</div>
</div>
<div class="swiper-slide">
<div class="slide__content">
<img class="slide__content__thumbnail" src="https://jobs.virginmediao2.co.uk/portal/13/images/thumbnails/thumb--graduates.webp" alt="Future Careers" loading="lazy">
<div class="slide__content__title title title--07 m--t--l">
Future Careers
</div>
<div class="slide__content__text m--t--m">
Schemes to help you step into a world of opportunity, with the chance to uncover and develop new skills.
</div>
<a class="button button--secondary m--t--l" href="https://virginmediao2.avature.net/en_US/careersmarketplace/SearchJobs/?708=8342&amp;708_format=846&amp;listFilterMode=1&amp;jobRecordsPerPage=8&amp;">
Search Roles </a>
</div>
</div>
<div class="swiper-slide">
<div class="slide__content">
<img class="slide__content__thumbnail" src="https://jobs.virginmediao2.co.uk/portal/13/images/thumbnails/thumb--commercial.webp" alt="Commercial" loading="lazy">
<div class="slide__content__title title title--07 m--t--l">
Commercial
</div>
<div class="slide__content__text m--t--m">
Explore the teams that make our world go round and use your specialist skills to make an all-round impact.
</div>
<a class="button button--secondary m--t--l" href="https://virginmediao2.avature.net/en_US/careersmarketplace/SearchJobs/?708=6053&amp;708_format=846&amp;listFilterMode=1&amp;jobRecordsPerPage=8&amp;">
Search Roles </a>
</div>
</div>
<div class="swiper-slide">
<div class="slide__content">
<img class="slide__content__thumbnail" src="https://jobs.virginmediao2.co.uk/portal/13/images/thumbnails/thumb--b2b.webp" alt="B2B" loading="lazy">
<div class="slide__content__title title title--07 m--t--l">
B2B
</div>
<div class="slide__content__text m--t--m">
A hub that revolutionises the opportunities for every size of business through marketing, digital and more.
</div>
<a class="button button--secondary m--t--l" href="https://virginmediao2.avature.net/en_US/careersmarketplace/SearchJobs/?708=%5B6052%5D&amp;708_format=846&amp;listFilterMode=1&amp;jobRecordsPerPage=8&amp;">
Search Roles </a>
</div>
</div>
</div>
<div class="swiper-controls">
<div class="swiper-button-prev swiper-button-prev--happyPlace--home"></div>
<div class="swiper-pagination swiper-pagination--happyPlace--home"></div>
<div class="swiper-button-next swiper-button-next--happyPlace--home"></div>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="section section--more">
<div class="section__wrapper">
<div class="section__content section__content--w--narrow t--c">
<div class="section__content__title">
<h2 class="section__header__text__title title title--11 title--mob">
So much more
<span class="span span--blue">
than just a job </span>
</h2>
</div>
<div class="section__content__text">
<p class="paragraph paragraph--w--narrower">
From our inclusive culture and flexible working approach to our family-friendly perks, theres a lot to love about life at Virgin Media O2. </p>
<a class="button button--secondary button--1col m--t--xl" href="https://jobs.virginmediao2.co.uk/en_US/careersmarketplace/Lifeatvirginmediao2">
See More </a>
</div>
</div>
</div>
</section>
<section class="section section--family section--future">
<div class="section__wrapper">
<div class="section__content">
<div class="section__content__title">
<h2 class="section__header__text__title title title--11">
Let's stay
<span class="span span--blue">
connected </span>
</h2>
</div>
<div class="section__content__text">
<p class="paragraph">
Things move pretty fast around here. New tech, new products, new ideas and new opportunities for talented people like you. </p>
<p class="paragraph">
So, create a tailored job alert, and well let you know as soon as your dream roles ready for you. </p>
<a class="button button--primary m--t--xl" href=https://jobs.virginmediao2.co.uk/en_US/careersmarketplace/AgentRegister>
Create Job Alert
</a>
</div>
</div>
<div class="section__aside">
<img class="section__aside__image" src="https://jobs.virginmediao2.co.uk/portal/13/images/aside/aside--laptop.webp" alt="Let's stay connected" loading="lazy">
</div>
</div>
</section>
</div>
</div>
<button class="top--button" id="goToTopBttn" title="Go to top"></button>
</main>
<footer class="footer" aria-label="Footer">
<div class="footer__wrapper">
<div class="footer__content">
<div class="footer__rights">
<div class="footer__rights__logo">
<span class="logo logo--footer">
Virgin Media O2
</span>
</div>
</div>
<div class="footer__social">
<a class="footer__social__item" href="https://www.youtube.com/@VirginMediaO2Careers" target="_blank" rel="noopener noreferrer" aria-label="Twitter">
<img class="footer__social__item__icon" src="https://jobs.virginmediao2.co.uk/_cms/13/image/footerSocialItemTwitter/1?version=1445589" alt="Twitter Logo" loading="lazy" aria-hidden="true">
</a>
<a class="footer__social__item" href="https://www.linkedin.com/company/virgin-media-o2/mycompany/" target="_blank" rel="noopener noreferrer" aria-label="Linkedin">
<img class="footer__social__item__icon" src="https://jobs.virginmediao2.co.uk/portal/13/images/social-media--linkedin.webp" alt="Linkedin Logo" loading="lazy" aria-hidden="true">
</a>
<a class="footer__social__item" href="https://www.facebook.com/virginmediao2careers/" target="_blank" rel="noopener noreferrer" aria-label="Facebook">
<img class="footer__social__item__icon" src="https://jobs.virginmediao2.co.uk/portal/13/images/social-media--facebook.webp" alt="Facebook Logo" loading="lazy" aria-hidden="true">
</a>
<a class="footer__social__item" href="https://www.instagram.com/virginmediao2careers/" target="_blank" rel="noopener noreferrer" aria-label="Instagram">
<img class="footer__social__item__icon" src="https://jobs.virginmediao2.co.uk/portal/13/images/social-media--instagram.webp" alt="Instagram Logo" loading="lazy" aria-hidden="true">
</a>
</div>
<div class="footer__copy">
<p class="paragraph">
VMED O2 UK Limited ( Virgin Media O2 ) is registered in England and Wales. Registration number: 12580944 </p>
<p class="paragraph">
Griffin House, 161 Hammersmith Road, London, United Kingdom, W6 8BS. <br> &copy; Copyright Virgin Media O2 2023 </p>
</div>
<div class="footer__links">
<a class="footer__links__item link" href="https://news.virginmediao2.co.uk/careers-privacy-policy/" target="_blank" rel="noopener noreferrer">
Privacy policy </a>
<span class="footer__links__divider" aria-hidden="true">
|
</span>
<a class="footer__links__item link" href="https://news.virginmediao2.co.uk/news-views/" target="_blank" rel="noopener noreferrer">
Stay up to date </a>
</div>
</div>
</div>
</footer>
</div>
<script>/**
* This variable will define every property we need to pass to Templates core library as we can't define twig variables on JS files.
**/
var twigConfig = {
"pageParameters": {
"personSort": null,
"personSortDirection": null,
"jobSort": null,
"jobSortDirection": null,
"jobRecordsPerPage": "",
"personRecordsPerPage": ""
},
"jobLabel": "job",
"STEP_INDEX": "" || null,
"wizardModalViewEnabled": "" || false,
"wizardHasErrors": "" || false,
"sortedBy": "Sorted by ",
"loading": "Loading ",
"plugins": {
"popper": {
"js": "https://templates-static-assets.avacdn.net/jsLibrary/plugins/tippy/popper.min.js"
},
"tooltip": {
"js": "https://templates-static-assets.avacdn.net/jsLibrary/plugins/tippy/tippy-bundle.umd.js",
"css": "https://templates-static-assets.avacdn.net/jsLibrary/plugins/tippy/tippy.css"
},
"popup": {
"js": "https://templates-static-assets.avacdn.net/jsLibrary/plugins/glightbox/glightbox.min.js",
"css": "https://templates-static-assets.avacdn.net/jsLibrary/plugins/glightbox/glightbox.min.css"
},
"slider": {
"js": "https://templates-static-assets.avacdn.net/jsLibrary/plugins/swiper/swiper-bundle.min.js",
"css": "https://templates-static-assets.avacdn.net/jsLibrary/plugins/swiper/swiper-bundle.min.css"
},
"google": {
"jsMarkerCluster": "https://templates-static-assets.avacdn.net/jsLibrary/plugins/googlemaps/markerclusterer.js",
"apiKey": ""
}
},
"navigation": {
"comingFrom": "right",
"movingEffect": "over"
},
"stickyAside": 0,
"stickyHeader": 0,
"stickyBanner": 0,
"page": {
"PORTAL_BASE_REAL_URL": "https://jobs.virginmediao2.co.uk/portal/13",
"wizardPageBackTo": "",
},
"convertDatesToUserTZ": {
"CSSClass": "timelocal",
"convertDatesToUserTZEnabled": 1,
"loggedUserTZ": Intl.DateTimeFormat().resolvedOptions().timeZone,
"weekday": "long",
"day": "numeric",
"month": "long",
"hour": "numeric",
"minute": "numeric",
"hour12": "1",
},
"userLang": "en_US",
"breadcrumbsEnabled": 1,
"googleMapsEnabled": 0,
"googleMarkerClusterEnabled": 0,
"googleParameters": {
"dataUrl": "//jobs.virginmediao2.co.uk/en_US/careersmarketplace/SearchJobs/",
"centerLatitude": 0,
"centerLongitude": 0,
"startZoom": 3,
"infoWindowCSSClassDiv": "info-window",
"infoWindowCSSClassHeader": "info-window__header",
"infoWindowCSSClassLink": "link info-window__link"
},
"browsingHistory": {
"browsingHistoryEnabled": 0,
"url": "",
"selector": "#browsingHistory"
},
"widgetRelatedJobs": {
"relatedJobsEnabled": 1,
"url": "",
"selector": "#widgetRelatedJobs"
},
"widgetOpenPositions":{
"url": "",
"selector": "#widgetOpenPositions"
},
"widgetRecommendations":{
"widgetRecommendationsEnabled": 1,
"url": "",
"selector": "#widgetRecommendations"
}
};
var lightbox;
var slider;
var Templates;
</script>
<script src="https://templates-static-assets.avacdn.net/jsLibrary/22.4/core.min.js" defer></script>
<script src="/portal/13/js/specifics.js?v1" defer></script>
<noscript>
<img height="1" width="1" class="hide--meta-pixel-code" src="https://www.facebook.com/tr?id=866731118836531&amp;ev=PageView&amp;noscript=1" alt="Meta pixel code" loading="lazy" />
</noscript>
<script src="/ASSET/wizard/portal/jquery/plugin/select2/select2.full.min.js?version=10.48.95-stable"></script><script src="/ASSET/wizard/portal/jquery/plugin/select2/select2_locale_en.js?version=10.48.95-stable"></script><script src="/portalpacks/web/273.e9483aa7.js"></script><script src="/portalpacks/web/880.31597c3d.js"></script><script src="/portalpacks/web/441.0ef6e9db.js"></script><script src="/portalpacks/web/body.4ef17320.js"></script><script type="text/javascript">
var service = EventManager.getInstance();
service.addEventHandler(EventManager.EVENT_LOAD_NAME, function() {AccessibleErrorValidationHandler.setWizardValidationAccessible.apply(this, ["There are some errors, please correct them.","Show details","Hide details"])}, EventManager.PRIORITY_MEDIUM);
</script><portal-data id="synapserBootstrap" data-enabled data-usePermanentConnection="true" data-pageSessionId data-applicationName="customPortal" data-applicationCode="customPortal_13" data-logoutUrl data-publicSessionName="OzB4YR36W_pu1EOTeSXuGDlvemFy" data-cortex="1" data-trackerCode="5qBTlCTZj2S7ycwAGMV1RtGYR2Yd" data-packVersion="556906268c7eb4426c553f2844df5f145980cf94"></portal-data><portal-data id="showAlertOnSessionTimeout" data-title="Your session has expired" data-message="For the privacy and security of your information, sessions automatically end after a long period of inactivity." data-mainButton="Go back to home page" data-timeout="3601000" data-portalUrl="https://jobs.virginmediao2.co.uk/en_US/careersmarketplace"></portal-data></body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 KiB

View File

@ -125,7 +125,7 @@ The problem is still not over. For one thing, the solver ignores cycles, where r
We can easily imagine tracking the time taken to run a recipe on a machine automatically, and perhaps having a "priority" switch to bump lower-priority jobs and switch to faster operations, but can't easily automatically know how valued an input is (though several heuristics are plausible), and many, such as power draw (or sometimes fluid inputs), are not known as part of crafting patterns (they could in principle be added, but this would be inconvenient). AE2 "solves" this by having users manually configure every recipe they want to use, but this is a large time sink and does not solve the problem in cases where users do actually want to use multiple recipes in different circumstances.
There is a further issue: randomness. Sometimes - mostly with "raw material" operations such as pulverizing ores or growing crops - outputs are produced nondeterministically some fraction of the time. This makes exact forward planning of recipe execution completely impossible, though in principle you could assume, say, the 95th percentile cost and rerun the random part until it works. In practice, most people run these as part of "always-on" systems which build up stockpiles (e.g. [this](https://guide.appliedenergistics.org/1.20.4/example-setups/recursive-crafting-setup)), or assume that the recipe will run enough as part of deterministic queries.
There is a further issue: randomness. Sometimes - mostly with "raw material" operations such as pulverizing ores or growing crops - outputs are produced nondeterministically some fraction of the time. This makes exact forward planning of recipe execution completely impossible, though in principle you could assume, say, the 95th percentile cost and rerun the random part until it works. In practice, most people run these as part of "always-on" systems which build up stockpiles (or e.g. [this](https://guide.appliedenergistics.org/1.20.4/example-setups/recursive-crafting-setup)), or assume that the recipe will run enough as part of deterministic queries.
Does this have any other practical applications? Not that I know of - I am not sure this even turns up in games outside of modded Minecraft[^7]. This is apparently related to [Petri](https://en.wikipedia.org/wiki/Petri_net) [nets](https://isr.umd.edu/Labs/CIM/miscs/wmsor97.pdf), though I haven't paid enough attention to them to see why, as well as (much more obviously) to [vector addition systems](https://en.wikipedia.org/wiki/Vector_addition_system) and [commutative](https://www.sciencedirect.com/science/article/pii/S0019995883800229) [grammars](/assets/misc/commutative_grammars.pdf). I am told that this is also equivalent to finding proofs in linear logic.

View File

@ -0,0 +1,92 @@
---
title: DIYPC and server bifurcation
description: The many technologies modern servers have which your desktop doesn't.
slug: diypc
created: 27/05/2025
tags: ["hardware", "opinion"]
---
::: epigraph attribution="James Mickens" link=https://scholar.harvard.edu/files/mickens/files/theslowwinter.pdf
Indeed, who wouldnt want an octavo-core machine with 73 virtual hyper-threads per physical processor? [...] Johns massive parallelism strategy assumed that lay people use their computers to simulate hurricanes, decode monkey genomes, and otherwise multiply vast, unfathomably dimensioned matrices in a desperate attempt to unlock eigenvectors whose desolate grandeur could only be imagined by Edgar Allen Poe.
:::
For much of computing history, "client" and "server" computers were quite different. Mainframes had their dumb terminals, and even once microcomputers took over, the proliferation of standards led to some architectures being positioned for servers and high-end workstations and others for personal computers. In the 2000s, returns on scale and dominance in personal computers led to [x86](https://en.wikipedia.org/wiki/X86) winning in servers. For a brief, glorious, approximately-10-year period, ending roughly in 2015 when Intel's 10nm stumbles[^1] broke their roadmaps, mainstream servers and personal computers were essentially the same except for some segmentation on core count, IO, manageability and reliability features like ECC memory. With the end of cheap transistor scaling[^2], "hyperscaler" companies like Google and Facebook seeking cost optimizations and increasing compute demands, both commodity and specialized servers are now very different.
## Efficient end-to-end power delivery
Most commodity servers, and desktop systems based on [ATX](https://en.wikipedia.org/wiki/ATX), contain a power supply which takes 110V/230V AC power from the "wall" and produces 12V/5V/3.3V DC outputs. This is only for historical reasons: changes in the voltage requirements of modern electronics mean that the vast majority of power draw is on 12V, and goes to <span class="hoverdefn" title="voltage regulator modules">VRMs</span> which reduce voltages to around 1V to supply the digital logic in CPUs and GPUs. There is [a standard](https://gamersnexus.net/guides/3568-intel-atx-12vo-spec-explained-what-manufacturers-think) simplifying and improving the efficiency of desktop PSUs by switching to 12V only, but inertia means this has not been widely adopted.
When you're buying hundreds of thousands of servers at once, it is easier to change things. Open Compute Project (a project standardizing hyperscaler-friendly server infrastructure) [racks](https://www.opencompute.org/wiki/Open_Rack/SpecsAndDesigns) replace power distribution with rack-level "power shelves" which convert AC to 12V/48V DC centrally and distribute it via a busbar. According to [OCP documentation](https://files.opencompute.org/oc/public.php?service=files&t=cf80ec91104554a01b3227983f33a89c&download), 48V conversion is more efficient than 12V by several percentage points - important at scale - and distribution of course has lower resistive losses[^11]. 48V was probably chosen since it is nearly the standard limit of "safe" low voltage and for consistency with -48V telecoms equipment. This also provides reliability improvements (more redundancy for the power supplies) and easier battery backups.
::: captioned src=/assets/images/molex-orv3.jpg
An Open Rack V3 busbar, via [Molex](https://www.molex.com/en-us/industries-applications/servers-storage/open-compute-project/ocp-rack-and-power-orv3).
:::
## Cabled PCIe
The PCIe interconnect used for almost every high-speed link inside a modern computer (excepting RAM, cross-socket interconnect and inter-GPU connectivity) has [roughly doubled in throughput](https://en.wikipedia.org/wiki/PCI_Express#History_and_revisions) every generation to keep up with demand. It's done this by using more complicated (less noise-resistant) modulation and increasing bandwidth, both of which lead to suffering for electrical engineers tasked with routing the signals. PCIe signals used to be run cheaply over [PCBs](https://en.wikipedia.org/wiki/Printed_circuit_board) on mainboards, in riser cards and for drive backplanes, but now they frequently need concerning quantities of expensive retimer chips or the cables now standardized as, for some reason, [CopprLink](https://pcisig.com/blog/pcie%C2%AE-cabling-%E2%80%93-journey-copprlink%E2%84%A2).
::: captioned src=/assets/images/GENOAD8X-2TBCM.jpg
The [ASRock Rack GENOAD8X-2T/BCM](https://www.asrockrack.com/general/productdetail.asp?Model=GENOAD8X-2T/BCM) motherboard, with several retimer chips (yellow) and MCIO connectors (green).
:::
Relatedly, power and interconnectivity difficulties with PCIe cards have led to the [OAM](https://146a55aca6f00848c565-a7635525d40ac1c70300198708936b4e.ssl.cf1.rackcdn.com/images/fbb4a175925d7b085634f772f89584006f81f01f.pdf) standard[^7], which puts GPUs or GPU-likes onto separate "baseboards" with 48V power inputs and built-in cross-accelerator connections. These are cabled to the rest of the system. I think something like this is sorely necessary in DIY computers, where GPUs fit the PCIe card form factor badly for almost exactly the same reasons, but nobody has been able to coordinate the change.
## Fast networking
Consumers have mostly been stuck with [Gigabit Ethernet](https://en.wikipedia.org/wiki/Gigabit_Ethernet) for decades[^3]. 10 Gigabit Ethernet was available soon afterward but lacks consumer adoption: I think this is because of a combination of expensive and power-hungry initial products, more stringent cabling requirements, and lack of demand (because internet connections were slow and LANs became less important). A decade later, the more modest 2.5GbE and 5GbE standards were released, designed for cheaper implementations and cables[^4]. These have eventually been used in desktop motherboards and higher-end consumer networking equipment[^5].
Servers, being in environments where fast core networks and backhaul are more easily available and having more use for high throughput, moved more rapidly to 10, 40, 100(/25)[^6], 200, 400 and 800Gbps, with 1.6Tbps Ethernet now being standardized. The highest speeds are mostly for AI and specialized network applications, since most code is bad and is limited by some combination of CPU time and external API latency. Optimized code which does not do much work can handle [millions of HTTP requests a second](https://www.techempower.com/benchmarks/#section=data-r23&test=json) on [28 outdated cores](https://github.com/TechEmpower/FrameworkBenchmarks/wiki/Project-Information-Environment), and with kernel bypass and hardware-offloaded cryptography [DPDK](https://www.dpdk.org/) can push 100 million: most software is not like that, and has to do more work per byte sent/received.
Energy per bit transferred is scaling down slower than data rates are scaling up, so high-performance switches are having to move to [co-packaged optics](https://www.servethehome.com/hands-on-with-the-intel-co-packaged-optics-and-silicon-photonics-switch/) and similar technologies.
## Expanded hardware acceleration
Many common workloads - compression, cryptographic key exchanges and now matrix multiplication - can run much faster and more cheaply on dedicated hardware than general-purpose CPU cores. Many years ago, Intel released [QAT](https://www.servethehome.com/intel-quickassist-in-ice-lake-servers-what-you-need-to-know/), which initially sped up cryptography in cheap networking appliances using its CPUs - this was expanded and rolled out [inconsistently](https://www.servethehome.com/intel-quickassist-parts-and-cards-by-qat-generation/) since then. As of "Sapphire Rapids", their 2022/23 generation, these were finally [brought](https://www.anandtech.com/show/17596/intel-demos-sapphire-rapids-accelerators-at-innovation-2022) to (most) mainstream server CPUs[^8], along with new capabilities - [DLB](https://www.intel.com/content/www/us/en/developer/articles/technical/proof-points-of-dynamic-load-balancer-dlb.html), which provides hardware queue management for networking, and [AMX](https://www.intel.com/content/www/us/en/products/docs/accelerator-engines/what-is-intel-amx.html), which multiplies matrices. By my estimations, recent parts with AMX are performance-competitive with recent consumer GPUs or old datacentre GPUs.
The closest things made available to consumers are in networking, as the most common most accelerateable high-throughput area around. Almost every network card can checksum packets, and assemble and disassemble sequences of them, in hardware, and cheap "routers" rely on [hardware-offloaded](https://forum.openwrt.org/t/how-to-check-if-hardware-nat-flow-offloading-is-enabled/83239/15) NAT. Servers have gone much further: they now regularly use [DPUs](https://www.servethehome.com/dpu-vs-smartnic-sth-nic-continuum-framework-for-discussing-nic-types/), full multicore Linux-based computers on a PCIe card with programmable routing/switching/packet processing hardware in the data path. This was pioneered by cloud providers wanting to move management features off the CPU cores they rent out. Even simpler NICs [can offload](https://www.nvidia.com/content/dam/en-zz/Solutions/networking/ethernet-adapters/connectX-6-dx-datasheet.pdf) stateful firewalling and several remote storage and tunnelling protocols.
## Power density
People complain about the RTX 5090 having 600W of rated power draw and the "inefficiency" of modern client CPUs, but power density in servers has similarly been trending upwards. At the top end, Nvidia is pushing increasingly deranged [600kW racks](https://www.tomshardware.com/pc-components/gpus/nvidia-shows-off-rubin-ultra-with-600-000-watt-kyber-racks-and-infrastructure-coming-in-2027), equivalent to roughly half the power draw of a small legacy datacentre, but we see a rough [exponential trend](https://www.servethehome.com/why-servers-are-using-so-much-power-tdp-growth-over-time-supermicro-vertiv-intel-amd-nvidia/) in mainstream dual-socket CPUs, which now have maximum TDPs you would struggle to run your desktop at[^9]. Desktop chassis are roomy and permit large, quiet cooling systems: most servers are one or two rack units (1.25 inches) tall, so they've historically used terrifying 10k-RPM fans which can use as much as [10% of a server's power budget](https://www.servethehome.com/deep-dive-into-lowering-server-power-consumption-intel-inspur-hpe-dell-emc/). To mitigate this, high-performance systems are moving to liquid cooling. Unlike enthusiast liquid cooling systems, which exist to dump heat from power-dense CPUs into the probably-cool-enough air quickly, datacentres use liquid cooling to manage temperatures at the scale of racks and above, and might have facility-level water cooling.
::: captioned src=/assets/images/supermicro_water_cooling.jpg
A SuperMicro GPU server with direct-to-chip liquid cooling, via [ServeTheHome](https://www.servethehome.com/liquid-cooling-next-gen-servers-getting-hands-on-3-options-supermicro/4/). Unlike consumer liquid cooling, this is designed for serviceability, with special quick-disconnect fittings.
:::
## Disaggregation
Even as individual servers grow more powerful, there is demand for pulling hardware out of them and sharing it between them to optimize utilization. This is an old idea for bulk storage ([storage area networks](https://en.wikipedia.org/wiki/Storage_area_network)), although there are some new ideas like [directly Ethernet-connected SSDs](https://www.servethehome.com/ethernet-ssds-hands-on-with-the-kioxia-em6-nvmeof-ssd/). With the increased bandwidth of PCIe and RAM costs making up an increasing fraction of server costs ([about half](https://www.nextplatform.com/2020/04/03/cxl-and-gen-z-iron-out-a-coherent-interconnect-strategy/) for Azure), modern servers now have the [CXL](https://www.servethehome.com/cxl-is-finally-coming-in-2025-amd-intel-marvell-xconn-inventec-lenovo-asus-kioxia-montage-arm/) protocol for adding extra memory over PCIe (physical-layer) links. This is most important for [cloud providers](https://semianalysis.com/2022/07/07/cxl-enables-microsoft-azure-to-cut/)[^10], who deal with many VMs at once which may not fill the server they are on perfectly, and which need to have all the memory they're paying for "available" but which may not actively use much of it at a time. This creates inconsistent memory latency, but servers already had to deal with this - even single-socket servers now have multiple [NUMA](https://en.wikipedia.org/wiki/Non-uniform_memory_access) nodes because of use of chiplets.
::: captioned src=/assets/images/cxl_memory_expander.jpg
A CXL memory expander which can use older DDR4 DIMMs, via [ServeTheHome](https://www.servethehome.com/cxl-is-finally-coming-in-2025-amd-intel-marvell-xconn-inventec-lenovo-asus-kioxia-montage-arm/).
:::
## Conclusion
The main consequences of this are:
* Somewhat less ability to transfer learning from personal homelabs to datacentres - it's much easier to run the fanciest datacentre software stacks at home than exotic expensive hardware which only makes sense at large scale.
* Yet more difficulty in getting the highest performance out of computers (through more complex memory topologies, more parallelism and the requirement to use more offloads).
* Increased advantages to consolidation in hosting (through more ability to use disaggregation technology and amortization of fixed costs of using more difficult technologies).
[^1]: This is a long story which is mostly not publicly known, but you can read about some of what happened [here](https://www.eetimes.com/intels-10nm-node-past-present-and-future/) and [here](https://semiwiki.com/forum/threads/intel-10nm-process-problems-my-thoughts-on-this-subject.10535/).
[^2]: Arguably the "end of [Moore's law](https://en.wikipedia.org/wiki/Moore%27s_law)", but Moore's law is about leading-edge density and not costs. As far as I know, cost per transistor has plateaued or worsened recently, and we don't see the same rapid migration of volume to new processes we used to.
[^3]: It was released in 1999, so it's now retro.
[^4]: Because of this timing, 10GbE devices may or may not be able to negotiate down to 2.5GbE or 5GbE. This is often not documented clearly, to provide excitement and chance to users.
[^5]: Adoption in consumer systems seems to track [Realtek](https://www.realtek.com/)'s product lineup, as apparently nobody else is competently trying. We began to see much 5GbE adoption only after the [RTL8126](https://www.cnx-software.com/2024/06/18/realtek-rtl8126-5gbps-ethernet-pcie-and-m-2-adapters/) offered it cheaply. They have a [10GbE product](https://www.techpowerup.com/337113/realtek-to-bring-affordable-10-gbps-ethernet-to-the-masses-later-this-year) now which will perhaps finally drive use.
[^6]: 40Gbps Ethernet is something of a technological dead end: it's four 10Gbps channels bonded together, and soon after it was widely available it became practical to upgrade each channel to 25Gbps for a total of 100Gbps, or use a single 25Gbps channel for a cheaper roughly-as-good link.
[^7]: Nvidia GPUs ship in their own incompatible SXM form factors, of course.
[^8]: Intel management being, presumably, insane, they still market-segment these despite them being one of few advantages they have over AMD.
[^9]: Desktop CPUs are still less efficient in normal operation, though - they clock higher on fewer cores, for cost and single-threaded performance.
[^10]: Though see [this paper](https://conferences.sigcomm.org/hotnets/2023/papers/hotnets23_levis.pdf) arguing against it. I think the ability to reuse older DRAM for less latency-sensitive memory contents is an important application it doesn't consider, however.
[^11]: With some people's fear of "melting" [12VHPWR](https://en.wikipedia.org/wiki/12VHPWR) connectors, this could be a major selling point if 48V ever makes it to consumer products.

View File

@ -27,7 +27,8 @@
"This website doesn't exist. This is a Boltzmann website.",
"Paperclip rights are human rights.",
"Humans aren't even AGI.",
"The goal is whatever the outcome is. It'll be decided retroactively."
"The goal is whatever the outcome is. It'll be decided retroactively.",
"The business end of a tool call."
],
"feeds": {
"In the Pipeline": "https://www.science.org/blogs/pipeline/feed",

View File

@ -585,6 +585,10 @@ const fetchFeeds = async () => {
entry.feedName = name
}
const entry = feed.entries[0]
if (!entry) {
console.log(chalk.red("Entry missing for"), name)
continue
}
entry.published = Date.parse(entry.published)
if (isNaN(entry.published)) {
entry.published = Date.parse(feed.published)

View File

@ -626,4 +626,52 @@
author: ["S. Crespi-Reghizzi", "D. Mandrioli"],
date: "1975-05-05"
},
"https://holdtherobot.com/blog/2025/05/11/linux-on-android-with-ar-glasses/": {
title: "Coding Without a Laptop - Two Weeks with AR Glasses and Linux on Android",
author: "Hold the Robot",
date: "2025-05-11",
referenceIn: { glass: "" }
},
"https://files.opencompute.org/oc/public.php?service=files&t=cf80ec91104554a01b3227983f33a89c&download": {
title: "Overview of Open Rack Standard V2.0",
author: ["Steve Mills", "Mike Lau", "Xin Li", "Chris Moynihan"],
date: "2016-08-10"
},
"https://www.molex.com/en-us/industries-applications/servers-storage/open-compute-project/ocp-rack-and-power-orv3": {
title: "ORV3 Rack and Power Infrastructure"
},
"https://www.eetimes.com/intels-10nm-node-past-present-and-future/": {
title: "Intels 10nm Node: Past, Present, and Future",
date: "2020-06-15",
author: "Anton Shilov"
},
"https://www.asrockrack.com/general/productdetail.asp?Model=GENOAD8X-2T/BCM": {
title: "ASRock Rack GENOAD8X-2T/BCM"
},
"https://www.techempower.com/benchmarks/": {
title: "TechEmpower Web Framework Benchmarks"
},
"https://146a55aca6f00848c565-a7635525d40ac1c70300198708936b4e.ssl.cf1.rackcdn.com/images/fbb4a175925d7b085634f772f89584006f81f01f.pdf": {
title: "OCP Accelerator Module (OAM)",
author: ["Siamak Tavallaei", "Whitney Zhao", "Tiffany Jin", "Cheng Chen", "Richard Ding"]
},
"https://herbsutter.com/welcome-to-the-jungle/": {
title: "Welcome to the Jungle",
author: "Herb Sutter",
excerpt: "Or, A Heterogeneous Supercomputer in Every Pocket",
referenceIn: { "diypc": "" }
},
"https://www.intel.com/content/www/us/en/developer/articles/technical/proof-points-of-dynamic-load-balancer-dlb.html": {
title: "Proof Points of Intel® Dynamic Load Balancer (Intel® DLB)"
},
"https://www.intel.com/content/www/us/en/products/docs/accelerator-engines/what-is-intel-amx.html": {
title: "What Is Intel® Advanced Matrix Extensions (Intel® AMX)?"
},
"https://conferences.sigcomm.org/hotnets/2023/papers/hotnets23_levis.pdf": {
title: "A Case Against CXL Memory Pooling",
author: ["Philip Levis", "Kun Lin", "Amy Tai"]
},
"https://www.nvidia.com/content/dam/en-zz/Solutions/networking/ethernet-adapters/connectX-6-dx-datasheet.pdf": {
title: "NVIDIA ConnectX-6 DX Ethernet SmartNIC"
}
}