3037 lines
161 KiB
HTML
3037 lines
161 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en-US" dir="ltr" class="resp_fonts">
|
||
|
||
<head>
|
||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||
|
||
<script>
|
||
window.labClientAPIReady = new Promise(function (resolve) {
|
||
document.addEventListener(
|
||
'labClientAPIReady',
|
||
function () { resolve(window.labClientAPI); },
|
||
{ once: true }
|
||
);
|
||
});
|
||
</script>
|
||
<script type="module">
|
||
import { ClientAPI } from '/view-resources/baseview/public/common/ClientAPI/index.js?v=1789024619-L4';
|
||
window.labClientAPI = new ClientAPI({
|
||
pageData: {
|
||
url: 'https://www.theregister.com/on-prem/2016/05/30/you-deleted-the-customer-what-now-human-error-deal-with-it/1041360',
|
||
pageType: 'article',
|
||
pageId: '1041360',
|
||
section: 'on_prem',
|
||
subsection: '',
|
||
title: 'You deleted the customer. What now? Human error - deal with it',
|
||
seotitle: 'You deleted the customer. What now? Human error - deal with it',
|
||
sometitle: 'You deleted the customer. What now? Human error - deal with it',
|
||
description: 'To err is human, to double err is career limiting',
|
||
seodescription: 'To err is human, to double err is career limiting',
|
||
somedescription: 'To err is human, to double err is career limiting',
|
||
device: 'desktop',
|
||
cms: 'labrador',
|
||
cmsVersion: '4.2.22',
|
||
contentLanguage: 'en-US',
|
||
published: '2016-05-30T09:00:14.000Z',
|
||
modified: '2016-05-31T07:30:44.000Z',
|
||
|
||
|
||
tags: ["on-prem", "on_prem"],
|
||
bylines: ["Stuart Burns"],
|
||
site: {
|
||
domain: 'https://www.theregister.com',
|
||
id: '2',
|
||
alias: 'theregister',
|
||
name: 'theregister'
|
||
},
|
||
paid: 0,
|
||
paywall: 'internal'
|
||
},
|
||
debug: false
|
||
});
|
||
document.dispatchEvent(new Event('labClientAPIReady'));
|
||
</script>
|
||
<title>You deleted the customer. What now? Human error - deal with it</title>
|
||
<meta name="title" content="You deleted the customer. What now? Human error - deal with it">
|
||
<meta name="description" content="To err is human, to double err is career limiting">
|
||
<link rel="canonical" href="https://www.theregister.com/on-prem/2016/05/30/you-deleted-the-customer-what-now-human-error-deal-with-it/1041360">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
<meta property="og:type" content="article">
|
||
<meta property="og:title" content="You deleted the customer. What now? Human error - deal with it">
|
||
<meta property="og:description" content="To err is human, to double err is career limiting">
|
||
<meta property="og:locale" content="en-US">
|
||
<meta property="og:site_name" content="theregister">
|
||
<meta property="article:published_time" content="2016-05-30T09:00:14.000Z">
|
||
<meta property="article:modified_time" content="2016-05-31T07:30:44.000Z">
|
||
<meta property="article:author" content="Stuart Burns">
|
||
<meta property="article:tag" content="on-prem">
|
||
<meta property="article:tag" content="on_prem">
|
||
<meta property="og:image" content="https://image.theregister.com/259229.jpg?imageId=259229&panox=0&panoy=0&panow=0&panoh=0&width=1200&height=683">
|
||
<meta property="og:image:width" content="1200">
|
||
<meta property="og:image:height" content="684">
|
||
<meta name="twitter:card" content="summary_large_image">
|
||
|
||
<meta name="twitter:title" content="You deleted the customer. What now? Human error - deal with it">
|
||
<meta name="twitter:description" content="To err is human, to double err is career limiting">
|
||
<meta name="twitter:image" content="https://image.theregister.com/259229.jpg?imageId=259229&panox=0&panoy=0&panow=0&panoh=0&width=1200&height=683">
|
||
<link rel="alternate" type="application/json+oembed" href="https://www.theregister.com/on-prem/2016/05/30/you-deleted-the-customer-what-now-human-error-deal-with-it/1041360?lab_viewport=oembed">
|
||
|
||
|
||
<script >// OOPS slot definition v2 — same code on all sites, only SITE_KEY changes:
|
||
// theregister.com → 'thereg'
|
||
// blocksandfiles.com → 'bandf'
|
||
// devclass.com → 'devclass'
|
||
// nextplatform.com → 'nextplatform'
|
||
|
||
window.googletag = window.googletag || { cmd: [] };
|
||
googletag.cmd.push(function () {
|
||
const SITE_KEY = 'thereg'; // CHANGE PER SITE
|
||
const context = document.querySelector('meta[property="og:type"]')?.content === "article" ? "article" : "front";
|
||
const device = window.Dac.clientData.labDevice === "mobile" ? "mobile" : "desktop";
|
||
const bwidth = window.innerWidth || 0;
|
||
const test = new URLSearchParams(window.location.search).get('test');
|
||
const author = document.querySelector('meta[property="article:author"]')?.content;
|
||
const canonicalUrl = document.querySelector("link[rel=canonical]")?.getAttribute("href");
|
||
const articleId = canonicalUrl?.split("/").pop();
|
||
googletag.setConfig({
|
||
targeting: {
|
||
device,
|
||
...(bwidth && { bwidth: bwidth + '' }),
|
||
...(test && { test }),
|
||
...(author && { author }),
|
||
...(canonicalUrl && { canonicalUrl }),
|
||
...(articleId && { articleId }),
|
||
}
|
||
});
|
||
function createOops() {
|
||
if (document.getElementById('oops')) return;
|
||
const oopsDiv = document.createElement('div');
|
||
oopsDiv.id = 'oops';
|
||
oopsDiv.style.cssText = 'width:0;height:0;overflow:hidden;';
|
||
document.body.prepend(oopsDiv);
|
||
}
|
||
if (document.body) {
|
||
createOops();
|
||
} else {
|
||
document.addEventListener('DOMContentLoaded', createOops);
|
||
}
|
||
googletag.defineOutOfPageSlot('/6978/labrador/' + SITE_KEY + '/' + context + '/' + device + '/oops', 'oops')
|
||
.addService(googletag.pubads())
|
||
.setConfig({ targeting: { is_oops: '1' } });
|
||
});</script><script type="module">import { setArticlePagePostCount } from "https://cdn.theregister.com/assets/javascript/forum_post_counts.cade00e6.js";
|
||
setArticlePagePostCount();</script><script type="module" src="https://cdn.theregister.com/assets/javascript/article.2d9d928c.js"></script><script >window.dataLayer = window.dataLayer || [];
|
||
function gtag(){dataLayer.push(arguments);}
|
||
|
||
gtag('consent', 'default', {
|
||
'analytics_storage': 'granted',
|
||
'ad_storage': 'denied',
|
||
'ad_user_data': 'denied',
|
||
'ad_personalization': 'denied',
|
||
'wait_for_update': 500
|
||
});
|
||
|
||
window.googlefc = window.googlefc || {};
|
||
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
|
||
|
||
window.googlefc.callbackQueue.push({
|
||
'CONSENT_DATA_READY': function() {
|
||
if (typeof __tcfapi === 'undefined') return;
|
||
|
||
__tcfapi('ping', 2, function(pingData) {
|
||
if (pingData && pingData.gdprApplies === false) {
|
||
gtag('consent', 'update', {
|
||
'ad_storage': 'granted',
|
||
'ad_user_data': 'granted',
|
||
'ad_personalization': 'granted'
|
||
});
|
||
}
|
||
});
|
||
}
|
||
});</script><script type="module">import { initAccountLink } from "https://cdn.theregister.com/assets/javascript/account_link.9903a027.js";
|
||
initAccountLink();</script><script type="module">import { applyDevMode } from "https://cdn.theregister.com/assets/javascript/dev_mode.54481a06.js";
|
||
applyDevMode();</script>
|
||
<style >.bodytext .column.google-ad.widthFull {
|
||
padding-top: 40px;
|
||
padding-bottom: 50px;
|
||
}
|
||
|
||
/* Prevents GAM from pushing the footer up automatically */
|
||
body {
|
||
padding-bottom: 0px !important;
|
||
margin-bottom: 0px !important;
|
||
}</style>
|
||
<link rel="stylesheet" href="https://cdn.theregister.com/assets/css/forum_post_counts.4501b489.css"><link rel="stylesheet" href="https://cdn.theregister.com/assets/css/article.8855f7fa.css"><link rel="stylesheet" href="https://cdn.theregister.com/assets/css/account_link.74f9c2bd.css"><link rel="stylesheet" href="https://cdn.theregister.com/assets/css/labrador_overrides.c9e9a0ef.css">
|
||
|
||
<script>
|
||
const PROVIDER_CONFIG = null
|
||
;
|
||
|
||
if (PROVIDER_CONFIG && !window.__labradorPaywallClientAPIInitialized) {
|
||
window.__labradorPaywallClientAPIInitialized = true;
|
||
|
||
const LOG_PREFIX = '[Paywall:' + PROVIDER_CONFIG.provider + ']';
|
||
|
||
function checkAuthState() {
|
||
if (!window.userStatus) {
|
||
return;
|
||
}
|
||
window.userStatus.verify().then(function() {
|
||
var status = window.userStatus.getStatus(PROVIDER_CONFIG.right);
|
||
var engagentlyToken = window.userStatus.getEngagently();
|
||
|
||
if (status >= 2) {
|
||
window.labClientAPI.emit('accessGranted', {
|
||
provider: PROVIDER_CONFIG.provider,
|
||
paid: status,
|
||
engagentlyToken: engagentlyToken
|
||
});
|
||
} else {
|
||
var data = { provider: PROVIDER_CONFIG.provider, paid: status || 0 };
|
||
if (engagentlyToken) data.engagentlyToken = engagentlyToken;
|
||
window.labClientAPI.emit('accessDenied', data);
|
||
}
|
||
}).catch(function(err) {
|
||
window.labClientAPI.emit('accessDenied', { provider: PROVIDER_CONFIG.provider, paid: 0 });
|
||
});
|
||
}
|
||
|
||
window.labClientAPIReady.then(function(api) {
|
||
api.set(PROVIDER_CONFIG.provider + 'PaywallHelper', {
|
||
checkNow: function() { return (window.userStatus && window.userStatus.getStatus(PROVIDER_CONFIG.right)) || 0; },
|
||
getStatus: checkAuthState
|
||
});
|
||
checkAuthState();
|
||
});
|
||
}
|
||
</script>
|
||
<meta property="og:url" content="https://www.theregister.com/on-prem/2016/05/30/you-deleted-the-customer-what-now-human-error-deal-with-it/1041360">
|
||
<link type="image/x-icon" rel="icon" href="/view-resources/dachser2/public/theregister/favicons/favicon.ico">
|
||
<link type="image/svg+xml" rel="icon" href="/view-resources/dachser2/public/theregister/favicons/favicon.svg">
|
||
<link type="image/png" rel="icon" sizes="16x16" href="/view-resources/dachser2/public/theregister/favicons/favicon-16x16.png">
|
||
<link type="image/png" rel="icon" sizes="32x32" href="/view-resources/dachser2/public/theregister/favicons/favicon-32x32.png">
|
||
<link type="image/png" rel="icon" sizes="48x48" href="/view-resources/dachser2/public/theregister/favicons/favicon-48x48.png">
|
||
<link type="image/png" rel="icon" sizes="96x96" href="/view-resources/dachser2/public/theregister/favicons/favicon-96x96.png">
|
||
<link type="image/png" rel="icon" sizes="192x192" href="/view-resources/dachser2/public/theregister/favicons/web-app-manifest-192x192.png">
|
||
<link type="image/png" rel="icon" sizes="512x512" href="/view-resources/dachser2/public/theregister/favicons/web-app-manifest-512x512.png">
|
||
<link type="image/png" rel="apple-touch-icon" sizes="180x180" href="/view-resources/dachser2/public/theregister/favicons/apple-touch-icon.png">
|
||
<link rel="manifest" href=/view-resources/dachser2/public/theregister/favicons/manifest.json />
|
||
<link href="https://fonts.googleapis.com/css?family=Merriweather:300,400,700,900" rel="stylesheet" media="print" onload="this.media='all'" >
|
||
<link rel="stylesheet" href="/view-resources/view/css/grid.css?v=1789024619-L4">
|
||
<link rel="stylesheet" href="/view-resources/view/css/main.css?v=1789024619-L4">
|
||
<link rel="stylesheet" href="/view-resources/view/css/colors.css?v=1789024619-L4">
|
||
<link rel="stylesheet" href="/view-resources/view/css/print.css?v=1789024619-L4" media="print">
|
||
<link rel="stylesheet" href="/view-resources/view/css/foundation-icons/foundation-icons.css?v=1789024619-L4">
|
||
<link rel="stylesheet" href="/view-resources/view/css/site/theregister.css?v=1789024619-L4">
|
||
<style data-key="custom_properties">
|
||
:root{--primary: rgba(0,0,0,1);--secondary: rgba(255,255,255,1);--tertiary: rgba(214,0,0,1);--quaternary: rgba(0,0,0,1);--bg-secondary: rgba(255,255,255,1);--bg-tertiary: rgba(239,239,239,1);--bg-quaternary: rgba(0,0,0,1);--bg-quinary: rgba(22,22,22,1);--bg-senary: rgba(255,235,235,1);--bg-septenary: rgba(214,0,0,1);--bg-octonary: rgba(248,248,248,1);--bg-nonary: rgba(208, 200, 200, 1);--bg-primary: rgba(255,0,0,1);--bg-septenary-light: rgba(230,102,102,1);--bg-septenary-dark: rgba(150,0,0,1);--bg-nonary-light: rgba(227,222,222,1);--bg-nonary-dark: rgba(146,140,140,1);}
|
||
</style>
|
||
<style data-key="background_colors">
|
||
.bg-secondary {background-color: rgba(255,255,255,1);}.bg-tertiary {background-color: rgba(239,239,239,1);}.bg-quaternary {background-color: rgba(0,0,0,1);color: #fff;}.bg-quinary {background-color: rgba(22,22,22,1);color: #fff;}.bg-senary {background-color: rgba(255,235,235,1);}.bg-septenary {background-color: rgba(214,0,0,1);color: #fff;}.bg-octonary {background-color: rgba(248,248,248,1);}.bg-nonary {background-color: rgba(208, 200, 200, 1);}.bg-primary {background-color: rgba(255,0,0,1);color: #fff;}.bg-septenary-light {background-color: rgba(230,102,102,1);}.bg-septenary-dark {background-color: rgba(150,0,0,1);color: #fff;}.bg-nonary-light {background-color: rgba(227,222,222,1);}.bg-nonary-dark {background-color: rgba(146,140,140,1);}@media (max-width: 1023px) { .color_mobile_bg-secondary {background-color: rgba(255,255,255,1);}}@media (max-width: 1023px) { .color_mobile_bg-tertiary {background-color: rgba(239,239,239,1);}}@media (max-width: 1023px) { .color_mobile_bg-quaternary {background-color: rgba(0,0,0,1);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-quinary {background-color: rgba(22,22,22,1);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-senary {background-color: rgba(255,235,235,1);}}@media (max-width: 1023px) { .color_mobile_bg-septenary {background-color: rgba(214,0,0,1);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-octonary {background-color: rgba(248,248,248,1);}}@media (max-width: 1023px) { .color_mobile_bg-nonary {background-color: rgba(208, 200, 200, 1);}}@media (max-width: 1023px) { .color_mobile_bg-primary {background-color: rgba(255,0,0,1);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-septenary-light {background-color: rgba(230,102,102,1);}}@media (max-width: 1023px) { .color_mobile_bg-septenary-dark {background-color: rgba(150,0,0,1);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-nonary-light {background-color: rgba(227,222,222,1);}}@media (max-width: 1023px) { .color_mobile_bg-nonary-dark {background-color: rgba(146,140,140,1);}}
|
||
</style>
|
||
<style data-key="background_colors_opacity">
|
||
.bg-secondary.op-bg_20 {background-color: rgba(255, 255, 255, 0.2);}.bg-secondary.op-bg_40 {background-color: rgba(255, 255, 255, 0.4);}.bg-secondary.op-bg_60 {background-color: rgba(255, 255, 255, 0.6);}.bg-secondary.op-bg_80 {background-color: rgba(255, 255, 255, 0.8);}.bg-tertiary.op-bg_20 {background-color: rgba(239, 239, 239, 0.2);}.bg-tertiary.op-bg_40 {background-color: rgba(239, 239, 239, 0.4);}.bg-tertiary.op-bg_60 {background-color: rgba(239, 239, 239, 0.6);}.bg-tertiary.op-bg_80 {background-color: rgba(239, 239, 239, 0.8);}.bg-quaternary.op-bg_20 {background-color: rgba(0, 0, 0, 0.2);color: #fff;}.bg-quaternary.op-bg_40 {background-color: rgba(0, 0, 0, 0.4);color: #fff;}.bg-quaternary.op-bg_60 {background-color: rgba(0, 0, 0, 0.6);color: #fff;}.bg-quaternary.op-bg_80 {background-color: rgba(0, 0, 0, 0.8);color: #fff;}.bg-quinary.op-bg_20 {background-color: rgba(22, 22, 22, 0.2);color: #fff;}.bg-quinary.op-bg_40 {background-color: rgba(22, 22, 22, 0.4);color: #fff;}.bg-quinary.op-bg_60 {background-color: rgba(22, 22, 22, 0.6);color: #fff;}.bg-quinary.op-bg_80 {background-color: rgba(22, 22, 22, 0.8);color: #fff;}.bg-senary.op-bg_20 {background-color: rgba(255, 235, 235, 0.2);}.bg-senary.op-bg_40 {background-color: rgba(255, 235, 235, 0.4);}.bg-senary.op-bg_60 {background-color: rgba(255, 235, 235, 0.6);}.bg-senary.op-bg_80 {background-color: rgba(255, 235, 235, 0.8);}.bg-septenary.op-bg_20 {background-color: rgba(214, 0, 0, 0.2);color: #fff;}.bg-septenary.op-bg_40 {background-color: rgba(214, 0, 0, 0.4);color: #fff;}.bg-septenary.op-bg_60 {background-color: rgba(214, 0, 0, 0.6);color: #fff;}.bg-septenary.op-bg_80 {background-color: rgba(214, 0, 0, 0.8);color: #fff;}.bg-octonary.op-bg_20 {background-color: rgba(248, 248, 248, 0.2);}.bg-octonary.op-bg_40 {background-color: rgba(248, 248, 248, 0.4);}.bg-octonary.op-bg_60 {background-color: rgba(248, 248, 248, 0.6);}.bg-octonary.op-bg_80 {background-color: rgba(248, 248, 248, 0.8);}.bg-nonary.op-bg_20 {background-color: rgba(208, 200, 200, 0.2);}.bg-nonary.op-bg_40 {background-color: rgba(208, 200, 200, 0.4);}.bg-nonary.op-bg_60 {background-color: rgba(208, 200, 200, 0.6);}.bg-nonary.op-bg_80 {background-color: rgba(208, 200, 200, 0.8);}.bg-primary.op-bg_20 {background-color: rgba(255, 0, 0, 0.2);color: #fff;}.bg-primary.op-bg_40 {background-color: rgba(255, 0, 0, 0.4);color: #fff;}.bg-primary.op-bg_60 {background-color: rgba(255, 0, 0, 0.6);color: #fff;}.bg-primary.op-bg_80 {background-color: rgba(255, 0, 0, 0.8);color: #fff;}.bg-septenary-light.op-bg_20 {background-color: rgba(230, 102, 102, 0.2);}.bg-septenary-light.op-bg_40 {background-color: rgba(230, 102, 102, 0.4);}.bg-septenary-light.op-bg_60 {background-color: rgba(230, 102, 102, 0.6);}.bg-septenary-light.op-bg_80 {background-color: rgba(230, 102, 102, 0.8);}.bg-septenary-dark.op-bg_20 {background-color: rgba(150, 0, 0, 0.2);color: #fff;}.bg-septenary-dark.op-bg_40 {background-color: rgba(150, 0, 0, 0.4);color: #fff;}.bg-septenary-dark.op-bg_60 {background-color: rgba(150, 0, 0, 0.6);color: #fff;}.bg-septenary-dark.op-bg_80 {background-color: rgba(150, 0, 0, 0.8);color: #fff;}.bg-nonary-light.op-bg_20 {background-color: rgba(227, 222, 222, 0.2);}.bg-nonary-light.op-bg_40 {background-color: rgba(227, 222, 222, 0.4);}.bg-nonary-light.op-bg_60 {background-color: rgba(227, 222, 222, 0.6);}.bg-nonary-light.op-bg_80 {background-color: rgba(227, 222, 222, 0.8);}.bg-nonary-dark.op-bg_20 {background-color: rgba(146, 140, 140, 0.2);}.bg-nonary-dark.op-bg_40 {background-color: rgba(146, 140, 140, 0.4);}.bg-nonary-dark.op-bg_60 {background-color: rgba(146, 140, 140, 0.6);}.bg-nonary-dark.op-bg_80 {background-color: rgba(146, 140, 140, 0.8);}@media (max-width: 1023px) { .color_mobile_bg-secondary.op-bg_20 {background-color: rgba(255, 255, 255, 0.2);}}@media (max-width: 1023px) { .color_mobile_bg-secondary.op-bg_40 {background-color: rgba(255, 255, 255, 0.4);}}@media (max-width: 1023px) { .color_mobile_bg-secondary.op-bg_60 {background-color: rgba(255, 255, 255, 0.6);}}@media (max-width: 1023px) { .color_mobile_bg-secondary.op-bg_80 {background-color: rgba(255, 255, 255, 0.8);}}@media (max-width: 1023px) { .color_mobile_bg-tertiary.op-bg_20 {background-color: rgba(239, 239, 239, 0.2);}}@media (max-width: 1023px) { .color_mobile_bg-tertiary.op-bg_40 {background-color: rgba(239, 239, 239, 0.4);}}@media (max-width: 1023px) { .color_mobile_bg-tertiary.op-bg_60 {background-color: rgba(239, 239, 239, 0.6);}}@media (max-width: 1023px) { .color_mobile_bg-tertiary.op-bg_80 {background-color: rgba(239, 239, 239, 0.8);}}@media (max-width: 1023px) { .color_mobile_bg-quaternary.op-bg_20 {background-color: rgba(0, 0, 0, 0.2);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-quaternary.op-bg_40 {background-color: rgba(0, 0, 0, 0.4);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-quaternary.op-bg_60 {background-color: rgba(0, 0, 0, 0.6);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-quaternary.op-bg_80 {background-color: rgba(0, 0, 0, 0.8);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-quinary.op-bg_20 {background-color: rgba(22, 22, 22, 0.2);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-quinary.op-bg_40 {background-color: rgba(22, 22, 22, 0.4);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-quinary.op-bg_60 {background-color: rgba(22, 22, 22, 0.6);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-quinary.op-bg_80 {background-color: rgba(22, 22, 22, 0.8);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-senary.op-bg_20 {background-color: rgba(255, 235, 235, 0.2);}}@media (max-width: 1023px) { .color_mobile_bg-senary.op-bg_40 {background-color: rgba(255, 235, 235, 0.4);}}@media (max-width: 1023px) { .color_mobile_bg-senary.op-bg_60 {background-color: rgba(255, 235, 235, 0.6);}}@media (max-width: 1023px) { .color_mobile_bg-senary.op-bg_80 {background-color: rgba(255, 235, 235, 0.8);}}@media (max-width: 1023px) { .color_mobile_bg-septenary.op-bg_20 {background-color: rgba(214, 0, 0, 0.2);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-septenary.op-bg_40 {background-color: rgba(214, 0, 0, 0.4);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-septenary.op-bg_60 {background-color: rgba(214, 0, 0, 0.6);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-septenary.op-bg_80 {background-color: rgba(214, 0, 0, 0.8);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-octonary.op-bg_20 {background-color: rgba(248, 248, 248, 0.2);}}@media (max-width: 1023px) { .color_mobile_bg-octonary.op-bg_40 {background-color: rgba(248, 248, 248, 0.4);}}@media (max-width: 1023px) { .color_mobile_bg-octonary.op-bg_60 {background-color: rgba(248, 248, 248, 0.6);}}@media (max-width: 1023px) { .color_mobile_bg-octonary.op-bg_80 {background-color: rgba(248, 248, 248, 0.8);}}@media (max-width: 1023px) { .color_mobile_bg-nonary.op-bg_20 {background-color: rgba(208, 200, 200, 0.2);}}@media (max-width: 1023px) { .color_mobile_bg-nonary.op-bg_40 {background-color: rgba(208, 200, 200, 0.4);}}@media (max-width: 1023px) { .color_mobile_bg-nonary.op-bg_60 {background-color: rgba(208, 200, 200, 0.6);}}@media (max-width: 1023px) { .color_mobile_bg-nonary.op-bg_80 {background-color: rgba(208, 200, 200, 0.8);}}@media (max-width: 1023px) { .color_mobile_bg-primary.op-bg_20 {background-color: rgba(255, 0, 0, 0.2);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-primary.op-bg_40 {background-color: rgba(255, 0, 0, 0.4);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-primary.op-bg_60 {background-color: rgba(255, 0, 0, 0.6);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-primary.op-bg_80 {background-color: rgba(255, 0, 0, 0.8);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-septenary-light.op-bg_20 {background-color: rgba(230, 102, 102, 0.2);}}@media (max-width: 1023px) { .color_mobile_bg-septenary-light.op-bg_40 {background-color: rgba(230, 102, 102, 0.4);}}@media (max-width: 1023px) { .color_mobile_bg-septenary-light.op-bg_60 {background-color: rgba(230, 102, 102, 0.6);}}@media (max-width: 1023px) { .color_mobile_bg-septenary-light.op-bg_80 {background-color: rgba(230, 102, 102, 0.8);}}@media (max-width: 1023px) { .color_mobile_bg-septenary-dark.op-bg_20 {background-color: rgba(150, 0, 0, 0.2);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-septenary-dark.op-bg_40 {background-color: rgba(150, 0, 0, 0.4);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-septenary-dark.op-bg_60 {background-color: rgba(150, 0, 0, 0.6);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-septenary-dark.op-bg_80 {background-color: rgba(150, 0, 0, 0.8);color: #fff;}}@media (max-width: 1023px) { .color_mobile_bg-nonary-light.op-bg_20 {background-color: rgba(227, 222, 222, 0.2);}}@media (max-width: 1023px) { .color_mobile_bg-nonary-light.op-bg_40 {background-color: rgba(227, 222, 222, 0.4);}}@media (max-width: 1023px) { .color_mobile_bg-nonary-light.op-bg_60 {background-color: rgba(227, 222, 222, 0.6);}}@media (max-width: 1023px) { .color_mobile_bg-nonary-light.op-bg_80 {background-color: rgba(227, 222, 222, 0.8);}}@media (max-width: 1023px) { .color_mobile_bg-nonary-dark.op-bg_20 {background-color: rgba(146, 140, 140, 0.2);}}@media (max-width: 1023px) { .color_mobile_bg-nonary-dark.op-bg_40 {background-color: rgba(146, 140, 140, 0.4);}}@media (max-width: 1023px) { .color_mobile_bg-nonary-dark.op-bg_60 {background-color: rgba(146, 140, 140, 0.6);}}@media (max-width: 1023px) { .color_mobile_bg-nonary-dark.op-bg_80 {background-color: rgba(146, 140, 140, 0.8);}}
|
||
</style>
|
||
<style data-key="border_colors">
|
||
.border-bg-secondary{--border-color: var(--bg-secondary);}.mobile_border-bg-secondary{--mobile-border-color: var(--bg-secondary);}.border-bg-tertiary{--border-color: var(--bg-tertiary);}.mobile_border-bg-tertiary{--mobile-border-color: var(--bg-tertiary);}.border-bg-quaternary{--border-color: var(--bg-quaternary);}.mobile_border-bg-quaternary{--mobile-border-color: var(--bg-quaternary);}.border-bg-quinary{--border-color: var(--bg-quinary);}.mobile_border-bg-quinary{--mobile-border-color: var(--bg-quinary);}.border-bg-senary{--border-color: var(--bg-senary);}.mobile_border-bg-senary{--mobile-border-color: var(--bg-senary);}.border-bg-septenary{--border-color: var(--bg-septenary);}.mobile_border-bg-septenary{--mobile-border-color: var(--bg-septenary);}.border-bg-octonary{--border-color: var(--bg-octonary);}.mobile_border-bg-octonary{--mobile-border-color: var(--bg-octonary);}.border-bg-nonary{--border-color: var(--bg-nonary);}.mobile_border-bg-nonary{--mobile-border-color: var(--bg-nonary);}.border-bg-primary{--border-color: var(--bg-primary);}.mobile_border-bg-primary{--mobile-border-color: var(--bg-primary);}.border-bg-septenary-light{--border-color: var(--bg-septenary-light);}.mobile_border-bg-septenary-light{--mobile-border-color: var(--bg-septenary-light);}.border-bg-septenary-dark{--border-color: var(--bg-septenary-dark);}.mobile_border-bg-septenary-dark{--mobile-border-color: var(--bg-septenary-dark);}.border-bg-nonary-light{--border-color: var(--bg-nonary-light);}.mobile_border-bg-nonary-light{--mobile-border-color: var(--bg-nonary-light);}.border-bg-nonary-dark{--border-color: var(--bg-nonary-dark);}.mobile_border-bg-nonary-dark{--mobile-border-color: var(--bg-nonary-dark);}
|
||
</style>
|
||
<style data-key="font_colors">
|
||
.primary {color: rgba(0,0,0,1) !important;}.secondary {color: rgba(255,255,255,1) !important;}.tertiary {color: rgba(214,0,0,1) !important;}.quaternary {color: rgba(0,0,0,1) !important;}@media (max-width: 1023px) { .color_mobile_primary {color: rgba(0,0,0,1) !important;}}@media (max-width: 1023px) { .color_mobile_secondary {color: rgba(255,255,255,1) !important;}}@media (max-width: 1023px) { .color_mobile_tertiary {color: rgba(214,0,0,1) !important;}}@media (max-width: 1023px) { .color_mobile_quaternary {color: rgba(0,0,0,1) !important;}}
|
||
</style>
|
||
<style data-key="image_gradient">
|
||
.image-gradient-bg-secondary{--background-color: var(--bg-secondary);}.color_mobile_image-gradient-bg-secondary{--mobile-background-color: var(--bg-secondary);}.image-gradient-bg-tertiary{--background-color: var(--bg-tertiary);}.color_mobile_image-gradient-bg-tertiary{--mobile-background-color: var(--bg-tertiary);}.image-gradient-bg-quaternary{--background-color: var(--bg-quaternary);}.color_mobile_image-gradient-bg-quaternary{--mobile-background-color: var(--bg-quaternary);}.image-gradient-bg-quinary{--background-color: var(--bg-quinary);}.color_mobile_image-gradient-bg-quinary{--mobile-background-color: var(--bg-quinary);}.image-gradient-bg-senary{--background-color: var(--bg-senary);}.color_mobile_image-gradient-bg-senary{--mobile-background-color: var(--bg-senary);}.image-gradient-bg-septenary{--background-color: var(--bg-septenary);}.color_mobile_image-gradient-bg-septenary{--mobile-background-color: var(--bg-septenary);}.image-gradient-bg-octonary{--background-color: var(--bg-octonary);}.color_mobile_image-gradient-bg-octonary{--mobile-background-color: var(--bg-octonary);}.image-gradient-bg-nonary{--background-color: var(--bg-nonary);}.color_mobile_image-gradient-bg-nonary{--mobile-background-color: var(--bg-nonary);}.image-gradient-bg-primary{--background-color: var(--bg-primary);}.color_mobile_image-gradient-bg-primary{--mobile-background-color: var(--bg-primary);}.image-gradient-bg-septenary-light{--background-color: var(--bg-septenary-light);}.color_mobile_image-gradient-bg-septenary-light{--mobile-background-color: var(--bg-septenary-light);}.image-gradient-bg-septenary-dark{--background-color: var(--bg-septenary-dark);}.color_mobile_image-gradient-bg-septenary-dark{--mobile-background-color: var(--bg-septenary-dark);}.image-gradient-bg-nonary-light{--background-color: var(--bg-nonary-light);}.color_mobile_image-gradient-bg-nonary-light{--mobile-background-color: var(--bg-nonary-light);}.image-gradient-bg-nonary-dark{--background-color: var(--bg-nonary-dark);}.color_mobile_image-gradient-bg-nonary-dark{--mobile-background-color: var(--bg-nonary-dark);}
|
||
</style>
|
||
<style data-key="custom_css_variables">
|
||
:root {
|
||
--lab_page_width: 1200px;
|
||
--lab_columns_gutter: 11px;
|
||
--lab_focus_ring_color: #005fcc;
|
||
--lab_social_hover_color: #008cba;
|
||
--space-top: 0;
|
||
--space-top-adnuntiusAd: ;
|
||
}
|
||
|
||
@media(max-width: 767px) {
|
||
:root {
|
||
--lab_columns_gutter: 10px;
|
||
}
|
||
}
|
||
|
||
@media(min-width: 767px) {
|
||
:root {
|
||
}
|
||
}
|
||
</style>
|
||
<script src="/view-resources/public/common/JWTCookie.js?v=1789024619-L4"></script>
|
||
<script src="/view-resources/public/common/Paywall.js?v=1789024619-L4"></script>
|
||
<script>
|
||
window.Dac = window.Dac || {};
|
||
(function () {
|
||
if (navigator) {
|
||
window.Dac.clientData = {
|
||
language: navigator.language,
|
||
userAgent: navigator.userAgent,
|
||
innerWidth: window.innerWidth,
|
||
innerHeight: window.innerHeight,
|
||
deviceByMediaQuery: getDeviceByMediaQuery(),
|
||
labDevice: 'desktop', // Device from labrador
|
||
device: 'desktop', // Device from varnish
|
||
paywall: {
|
||
isAuthenticated: isPaywallAuthenticated(),
|
||
toggleAuthenticatedContent: toggleAuthenticatedContent,
|
||
requiredProducts: [],
|
||
},
|
||
page: {
|
||
id: '1041360',
|
||
extId: 'theregister-178036'
|
||
},
|
||
siteAlias: 'theregister',
|
||
debug: window.location.href.includes('debug=1')
|
||
};
|
||
function getDeviceByMediaQuery() {
|
||
if (window.matchMedia('(max-width: 767px)').matches) return 'mobile';
|
||
if (window.matchMedia('(max-width: 1023px)').matches) return 'tablet';
|
||
return 'desktop';
|
||
}
|
||
|
||
function isPaywallAuthenticated() {
|
||
if (window.Dac && window.Dac.JWTCookie) {
|
||
var JWTCookie = new Dac.JWTCookie({ debug: false });
|
||
return JWTCookie.isAuthenticated();
|
||
}
|
||
return false;
|
||
}
|
||
|
||
function toggleAuthenticatedContent(settings) {
|
||
if (!window.Dac || !window.Dac.Paywall) {
|
||
return;
|
||
}
|
||
var Paywall = new Dac.Paywall();
|
||
var updateDOM = Paywall.updateDOM;
|
||
|
||
if(settings && settings.displayUserName) {
|
||
var userName = Paywall.getUserName().then((userName) => {
|
||
updateDOM(userName !== false, userName, settings.optionalGreetingText);
|
||
});
|
||
} else {
|
||
updateDOM(window.Dac.clientData.paywall.isAuthenticated);
|
||
}
|
||
}
|
||
}
|
||
}());
|
||
</script>
|
||
|
||
<script type="module" src="/view-resources/baseview/public/common/baseview/moduleHandlers.js?v=1789024619-L4" data-cookieconsent="ignore"></script>
|
||
<!-- DataLayer -->
|
||
<script>
|
||
|
||
var dataLayerData = {};
|
||
|
||
dataLayerData['id'] = '1041360';
|
||
dataLayerData['title'] = 'You deleted the customer. What now? Human error - deal with it';
|
||
dataLayerData['subtitle'] = 'To err is human, to double err is career limiting';
|
||
dataLayerData['kicker'] = 'On-Prem';
|
||
dataLayerData['created_by'] = '15';
|
||
dataLayerData['created_by_name'] = 'Inglis, James';
|
||
dataLayerData['page_template_alias'] = 'default';
|
||
dataLayerData['published'] = '1464598814';
|
||
dataLayerData['published_url'] = '/on-prem/2016/05/30/you-deleted-the-customer-what-now-human-error-deal-with-it/1041360';
|
||
dataLayerData['tags'] = 'on-prem,on_prem';
|
||
dataLayerData['modified'] = '1464679844';
|
||
dataLayerData['article_authors'] = 'Stuart Burns';
|
||
dataLayerData['testfield'] = 'testvalue';
|
||
dataLayerData['section'] = 'on_prem';
|
||
dataLayerData['original_url'] = 'https://www.theregister.com/2016/05/30/best_practices_tech_processes/';
|
||
dataLayerData['type'] = 'page_article';
|
||
|
||
dataLayer = [dataLayerData];
|
||
</script><!-- Google Tag Manager -->
|
||
<script>
|
||
window.dataLayer = window.dataLayer || [];
|
||
</script>
|
||
<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-KVXB44');</script>
|
||
|
||
<script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script>
|
||
<script>
|
||
window.googletag = window.googletag || {cmd: []};
|
||
|
||
googletag.cmd.push(function() {
|
||
var handleAsTablet = (Dac.clientData.device === 'tablet' || Dac.clientData.innerWidth < 1316);
|
||
|
||
if (!(handleAsTablet && '' === 'true')) {
|
||
googletag
|
||
.defineSlot('/6978/labrador/thereg/article/desktop/a', [[728,90], [970,90], [970,250], [970,280], [1200,250], [1200,270], [728,91], [970,251], [1200,271], [970,91]], 'labrador/thereg/article/desktop/a')
|
||
.addService(googletag.pubads());
|
||
}
|
||
if (!(handleAsTablet && '' === 'true')) {
|
||
googletag
|
||
.defineSlot('/6978/labrador/thereg/article/desktop/f', [[728,90], [970,90], [970,250], [970,280], [1200,250], [1200,270], [728,96], [970,256], [1200,276], [970,96], [1200,600], [970,254], [728,94], [970,94], [300,254], [1200,274]], 'labrador/thereg/article/desktop/f')
|
||
.addService(googletag.pubads());
|
||
}
|
||
if (!(handleAsTablet && '' === 'true')) {
|
||
googletag
|
||
.defineSlot('/6978/labrador/thereg/article/desktop/b', [[728,90], [970,90], [970,250], [970,280], [1200,250], [1200,270], [1200,600], [728,92], [970,252], [1200,272], [970,92], [1200,602]], 'labrador/thereg/article/desktop/b')
|
||
.addService(googletag.pubads());
|
||
}
|
||
if (!(handleAsTablet && '' === 'true')) {
|
||
googletag
|
||
.defineSlot('/6978/labrador/thereg/article/desktop/c', [[300,250], [300,600], [300,253], [300,603]], 'labrador/thereg/article/desktop/c')
|
||
.addService(googletag.pubads());
|
||
}
|
||
if (!(handleAsTablet && '' === 'true')) {
|
||
googletag
|
||
.defineSlot('/6978/labrador/thereg/article/desktop/d', [[300,250], [300,254]], 'labrador/thereg/article/desktop/d')
|
||
.addService(googletag.pubads());
|
||
}
|
||
if (!(handleAsTablet && '' === 'true')) {
|
||
googletag
|
||
.defineSlot('/6978/labrador/thereg/article/desktop/e', [[300,250], [300,255]], 'labrador/thereg/article/desktop/e')
|
||
.addService(googletag.pubads());
|
||
}
|
||
|
||
var pageTargeting = {
|
||
env: "prod",
|
||
site: "theregister",
|
||
section: "on_prem",
|
||
context: "article"
|
||
};
|
||
pageTargeting.tags = "on-prem,on_prem";
|
||
googletag.setConfig({ targeting: pageTargeting });
|
||
|
||
var useLazyLoading = true || false;
|
||
if (useLazyLoading) {
|
||
googletag.setConfig({
|
||
lazyLoad: {
|
||
fetchMarginPercent: 200 || 150, // Fetch ad content when it is within 1.5 viewports of the visible area
|
||
renderMarginPercent: 150 || 150, // Render ads when they are within 1.5 viewports of the visible area
|
||
mobileScaling: 2 || 2.0 // Scale the above values by 2.0 on mobile devices to account for slower connections and rendering times
|
||
}
|
||
});
|
||
}
|
||
|
||
googletag.setConfig({ singleRequest: true });
|
||
googletag.setConfig({ collapseDiv: "ON_NO_FILL" });
|
||
googletag.enableServices();
|
||
});
|
||
</script>
|
||
<link href="https://fonts.googleapis.com/css?family=Roboto:regular,italic,700,900,600" rel="stylesheet" media="print" onload="this.media='all'" >
|
||
<link href="https://fonts.googleapis.com/css?family=Roboto+Condensed:regular,italic,700,900" rel="stylesheet" media="print" onload="this.media='all'" >
|
||
<link href="https://fonts.googleapis.com/css?family=Roboto+Flex:regular" rel="stylesheet" media="print" onload="this.media='all'" >
|
||
<link href="https://fonts.googleapis.com/css?family=Roboto+Mono:regular,100,200,300,100italic,300italic,200italic,500,italic,500italic,700,600,600italic,700italic" rel="stylesheet" media="print" onload="this.media='all'" >
|
||
<style id="dachser-vieweditor-styles">
|
||
header#nav, header.pageHeader { font-family: "Roboto"; font-weight: normal; font-style: normal; text-transform: none; letter-spacing: normal; color: #000000; }
|
||
.articleList .article-list-title { font-family: "Roboto"; font-weight: normal; font-style: normal; font-size: 1.1875rem; text-transform: none; letter-spacing: normal; }
|
||
.pageHeader .search .search-container input[type=text]::placeholder { font-family: "Roboto"; font-weight: normal; font-style: normal; text-transform: none; letter-spacing: normal; }
|
||
.bodytext { font-family: "Roboto"; font-weight: normal; font-style: normal; font-size: 1.125rem; text-transform: none; letter-spacing: normal; }@media (max-width: 767px) { .resp_fonts .bodytext {font-size: calc(0.262vw * 16); } }
|
||
.articleHeader .headline { font-family: "Roboto"; font-weight: 700; font-style: normal; font-size: 2.75rem; text-transform: none; letter-spacing: normal; }@media (max-width: 767px) { .resp_fonts .articleHeader .headline {font-size: calc(0.262vw * 24); } }
|
||
article.column .content .headline { font-family: "Roboto"; font-weight: 700; font-style: normal; font-size: 1.5rem; text-transform: none; letter-spacing: normal; }@media (max-width: 767px) { .resp_fonts article.column .content .headline {font-size: calc(0.262vw * 20); } }
|
||
.byline .name { font-family: "Roboto Mono"; font-weight: normal; font-style: normal; font-size: 0.8125rem; text-transform: none; letter-spacing: normal; color: #000000; }@media (max-width: 767px) { .resp_fonts .byline .name {font-size: calc(0.262vw * 13); } }
|
||
.articleHeader .subtitle { font-family: "Roboto"; font-weight: normal; font-style: normal; text-transform: none; letter-spacing: normal; }@media (max-width: 767px) { .resp_fonts .articleHeader .subtitle {font-size: calc(0.262vw * 16); } }
|
||
article.column .content .subtitle { font-family: "Roboto"; font-weight: normal; font-style: normal; text-transform: none; letter-spacing: normal; }
|
||
.byline .name .description { font-family: "Roboto Mono"; font-weight: normal; font-style: normal; text-transform: none; letter-spacing: normal; }
|
||
.byline .extended_description { font-family: "Roboto Mono"; font-weight: normal; font-style: normal; text-transform: none; letter-spacing: normal; }
|
||
article .bodytext figure .caption { font-family: "Roboto Condensed"; font-weight: normal; font-style: normal; text-transform: none; letter-spacing: normal; }
|
||
article .articleHeader .caption { font-family: "Roboto Condensed"; font-weight: normal; font-style: normal; text-transform: none; letter-spacing: normal; }
|
||
article .meta .dates { font-family: "Roboto Mono"; font-weight: normal; font-style: normal; font-size: 0.75rem; text-transform: none; letter-spacing: normal; }@media (max-width: 767px) { .resp_fonts article .meta .dates {font-size: calc(0.262vw * 12); } }
|
||
article .meta .dates .dateLabel { font-family: "Roboto Mono"; font-weight: normal; font-style: normal; font-size: 0.75rem; text-transform: none; letter-spacing: normal; }@media (max-width: 767px) { .resp_fonts article .meta .dates .dateLabel {font-size: calc(0.262vw * 12); } }
|
||
.articleFooter .tags a { font-family: "Roboto Mono"; font-weight: normal; font-style: normal; text-transform: uppercase; letter-spacing: normal; }
|
||
body { font-family: "Roboto"; font-weight: normal; font-style: normal; line-height: 1.6; text-transform: none; letter-spacing: normal; }
|
||
.articleList .article-list-title { font-family: "Roboto"; font-weight: normal; font-style: normal; font-size: 1rem; text-transform: none; letter-spacing: normal; }@media (max-width: 767px) { .resp_fonts .articleList .article-list-title {font-size: calc(0.262vw * 16); } }
|
||
.articleList ul li a .al-title { font-family: "Roboto"; font-weight: normal; font-style: normal; font-size: 1rem; text-transform: none; letter-spacing: normal; }@media (max-width: 767px) { .resp_fonts .articleList ul li a .al-title {font-size: calc(0.262vw * 16); } }
|
||
.topBarMenu ul li a, topBarMenu ul li span, .pageHeader .hamburger .hamburger-container .topBarMenu ul li { font-family: "Roboto"; font-weight: normal; font-style: normal; font-size: 1.25rem; text-transform: none; letter-spacing: normal; }@media (max-width: 767px) { .resp_fonts .topBarMenu ul li a, topBarMenu ul li span, .pageHeader .hamburger .hamburger-container .topBarMenu ul li {font-size: calc(0.262vw * 12); line-height: 1.0; } }
|
||
.customMenu1 ul li a, .customMenu1 ul li span, .pageHeader .hamburger .hamburger-container .customMenu1 ul li a, .pageHeader .hamburger .hamburger-container .customMenu1 ul li span { font-family: "Roboto"; font-weight: normal; font-style: normal; font-size: 1.125rem; text-transform: none; letter-spacing: normal; }
|
||
.articleHeader .kicker { font-family: "Roboto"; font-weight: normal; font-style: normal; font-size: 1rem; text-transform: uppercase; letter-spacing: normal; }@media (max-width: 767px) { .resp_fonts .articleHeader .kicker {font-size: calc(0.262vw * 16); } }
|
||
article.column .content .kicker { font-family: "Roboto"; font-weight: normal; font-style: normal; font-size: 1rem; text-transform: uppercase; letter-spacing: normal; }@media (max-width: 767px) { .resp_fonts article.column .content .kicker {font-size: calc(0.262vw * 16); } }
|
||
footer.page { font-family: "Roboto"; font-weight: normal; font-style: normal; font-size: 0.75rem; text-transform: none; letter-spacing: normal; text-decoration: none; hyphens: auto; }@media (max-width: 767px) { .resp_fonts footer.page {font-size: calc(0.262vw * 12); } }
|
||
.bodytext>p a, .bodytext>ul a, .bodytext>ol a, .bodytext>h2 a, .bodytext>h3 a, .bodytext>h4 a { font-family: "Roboto"; font-weight: normal; font-style: normal; font-size: 1.125rem; text-transform: none; letter-spacing: normal; color: #333333; text-decoration: underline; hyphens: auto; }@media (max-width: 767px) { .resp_fonts .bodytext>p a, .bodytext>ul a, .bodytext>ol a, .bodytext>h2 a, .bodytext>h3 a, .bodytext>h4 a {font-size: calc(0.262vw * 16); } }
|
||
.toplist ul li .text h4 { font-family: "Roboto"; font-weight: 700; font-style: normal; font-size: 1.125rem; line-height: 1.5; text-transform: none; letter-spacing: normal; hyphens: auto; }
|
||
.articlescroller ul li h3 { font-family: "Roboto"; font-weight: 700; font-style: normal; font-size: 1.1875rem; letter-spacing: normal; hyphens: auto; }
|
||
.articlescroller ul li .subtitle { font-family: "Roboto"; font-weight: normal; font-style: normal; font-size: 1rem; letter-spacing: normal; hyphens: auto; }
|
||
.articleHeader .lab-article-section { font-family: "Roboto"; font-weight: normal; font-style: normal; font-size: 0.9375rem; text-transform: uppercase; letter-spacing: normal; hyphens: auto; }@media (max-width: 767px) { .resp_fonts .articleHeader .lab-article-section {font-size: calc(0.262vw * 15); } }
|
||
article.column .content .section { font-family: "Roboto"; font-weight: normal; font-style: normal; font-size: 0.9375rem; text-transform: uppercase; letter-spacing: normal; hyphens: auto; }@media (max-width: 767px) { .resp_fonts article.column .content .section {font-size: calc(0.262vw * 15); } }
|
||
.bodytext > h2 { font-family: "Roboto"; font-weight: 600; font-style: normal; font-size: 1.5625rem; line-height: 1.2; letter-spacing: normal; hyphens: auto; }@media (max-width: 767px) { .resp_fonts .bodytext > h2 {font-size: calc(0.262vw * 25); line-height: 1.2; } }
|
||
.font-Roboto { font-family: "Roboto" !important; }
|
||
.font-Roboto.font-weight-normal { font-weight: normal !important; }
|
||
.font-Roboto.font-weight-bold { font-weight: 700 !important; }
|
||
.font-Roboto.font-weight-black { font-weight: 900 !important; }
|
||
.font-RobotoCondensed { font-family: "Roboto Condensed" !important; }
|
||
.font-RobotoCondensed.font-weight-normal { font-weight: normal !important; }
|
||
.font-RobotoCondensed.font-weight-bold { font-weight: 700 !important; }
|
||
.font-RobotoCondensed.font-weight-black { font-weight: 900 !important; }
|
||
.font-RobotoFlex { font-family: "Roboto Flex" !important; }
|
||
.font-RobotoFlex.font-weight-normal { font-weight: normal !important; }
|
||
.font-RobotoMono { font-family: "Roboto Mono" !important; }
|
||
.font-RobotoMono.font-weight-normal { font-weight: normal !important; }
|
||
.font-RobotoMono.font-weight-light { font-weight: 100 !important; }
|
||
.font-RobotoMono.font-weight-bold { font-weight: 700 !important; }
|
||
</style>
|
||
<style id="css_variables"></style>
|
||
<script>
|
||
window.dachserData = {
|
||
_data: {},
|
||
_instances: {},
|
||
get: function(key) {
|
||
return dachserData._data[key] || null;
|
||
},
|
||
set: function(key, value) {
|
||
dachserData._data[key] = value;
|
||
},
|
||
push: function(key, value) {
|
||
if (!dachserData._data[key]) {
|
||
dachserData._data[key] = [];
|
||
}
|
||
dachserData._data[key].push(value);
|
||
},
|
||
setInstance: function(key, identifier, instance) {
|
||
if (!dachserData._instances[key]) {
|
||
dachserData._instances[key] = {};
|
||
}
|
||
dachserData._instances[key][identifier] = instance;
|
||
},
|
||
getInstance: function(key, identifier) {
|
||
return dachserData._instances[key] ? dachserData._instances[key][identifier] || null : null;
|
||
},
|
||
reflow: () => {}
|
||
};
|
||
</script>
|
||
|
||
|
||
<script type="application/ld+json">
|
||
[{"@context":"http://schema.org","@type":"WebSite","name":"theregister","url":"https://www.theregister.com"},{"@context":"https://schema.org","@type":"NewsArticle","headline":"You deleted the customer. What now? Human error - deal with it","description":"To err is human, to double err is career limiting","url":"https://www.theregister.com/on-prem/2016/05/30/you-deleted-the-customer-what-now-human-error-deal-with-it/1041360","inLanguage":[{"@type":"Language","alternateName":"en-US"}],"image":[{"@type":"ImageObject","@id":"https://www.theregister.com/on-prem/2016/05/30/you-deleted-the-customer-what-now-human-error-deal-with-it/1041360#primaryimage","url":"https://image.theregister.com/259229.webp?width=1200"}],"keywords":"on-prem, on_prem","thumbnailUrl":"https://image.theregister.com/259229.webp?width=400","articleSection":"on_prem","author":[{"@type":"Person","name":"Stuart Burns","url":"https://www.theregister.com/author/Stuart-Burns"}],"publisher":{"@type":"Organization","name":"theregister","url":"https://www.theregister.com","logo":{"@type":"ImageObject","url":"https://www.theregister.com/view-resources/dachser2/public/theregister/logo.svg"}},"mainEntityOfPage":"https://www.theregister.com/on-prem/2016/05/30/you-deleted-the-customer-what-now-human-error-deal-with-it/1041360","datePublished":"2016-05-30T09:00:14.000Z","dateModified":"2016-05-31T07:30:44.000Z","isAccessibleForFree":true}]
|
||
</script>
|
||
|
||
|
||
<style >@media (min-width: 768px) {
|
||
.custom-bodytext-alignment .bodytext>p,
|
||
.custom-bodytext-alignment .bodytext>h2,
|
||
.custom-bodytext-alignment .bodytext>h3,
|
||
.custom-bodytext-alignment .bodytext>h4,
|
||
.custom-bodytext-alignment .bodytext>ul,
|
||
.custom-bodytext-alignment .bodytext>ol {
|
||
padding-left: 220px;
|
||
padding-right: 320px;
|
||
}
|
||
}
|
||
@media (min-width: 768px) {
|
||
.custom-bodytext-alignment .bodytext .articleList {
|
||
padding-left: 230px !important;
|
||
width: 880px;
|
||
}
|
||
}
|
||
@media (min-width: 768px) {
|
||
.custom-bodytext-alignment .bodytext .google-ad.floatRight {
|
||
position: sticky;
|
||
top: 125px;
|
||
}
|
||
}
|
||
|
||
@media (min-width: 768px) {
|
||
.custom-bodytext-alignment .column.google-ad.widthFull,
|
||
.custom-bodytext-alignment .placement-top > .column.google-ad,
|
||
body.article section.related .large-12.google-ad,
|
||
body.front .placement-top > .column.google-ad,
|
||
body.front .large-12.google-ad {
|
||
padding-left: 0;
|
||
padding-right: 0;
|
||
}
|
||
}</style>
|
||
|
||
|
||
|
||
|
||
|
||
<meta property="article:section" content="on_prem">
|
||
<script>
|
||
var k5aMeta = { "paid": 0, "author": ["Stuart Burns"], "tag": ["on-prem", "on_prem"], "title": "You deleted the customer. What now? Human error - deal with it", "teasertitle": "You deleted the customer. What now? Human error - deal with it", "kicker": "On-Prem", "url": "https://www.theregister.com/a/1041360", "login": (Dac.clientData.paywall.isAuthenticated ? 1 : 0), "subscriber": (Dac.clientData.paywall.isAuthenticated ? 1 : 0), "subscriberId": (Dac.clientData.subscriberId ? `"${ Dac.clientData.subscriberId }"` : "") };
|
||
</script>
|
||
<script>
|
||
(function () {
|
||
var sources = [
|
||
'//cl.k5a.io/6156b8c81b4d741e051f44c2.js',
|
||
];
|
||
|
||
function load() {
|
||
for (var i = 0; i < sources.length; i++) {
|
||
var script = document.createElement('script');
|
||
script.src = sources[i];
|
||
script.async = true;
|
||
document.head.appendChild(script);
|
||
}
|
||
}
|
||
|
||
// Kilkaya reads k5aMeta once, when it boots. On a paid article behind a
|
||
// client-side paywall the reader's access is not known while the head is
|
||
// parsed, so partial/lab4/analytics/kilkaya_metadata publishes k5aMetaReady
|
||
// and we hold off until the metadata is correct. Everywhere else the values
|
||
// are right already and Kilkaya loads immediately.
|
||
if (window.k5aMetaReady) {
|
||
window.k5aMetaReady.then(load);
|
||
} else {
|
||
load();
|
||
}
|
||
}());
|
||
</script>
|
||
|
||
<style>
|
||
:root {
|
||
|
||
|
||
}
|
||
</style>
|
||
|
||
|
||
</head>
|
||
|
||
<body class="l4 article site_theregister section_on_prem"
|
||
data-tag="on-prem,on_prem"
|
||
|
||
|
||
data-lab-imported="true"
|
||
|
||
>
|
||
|
||
<!-- Google Tag Manager (noscript) -->
|
||
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-KVXB44"
|
||
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
|
||
<!-- End Google Tag Manager (noscript) -->
|
||
|
||
<script>
|
||
document.addEventListener("DOMContentLoaded", (event) => {
|
||
setScrollbarWidth();
|
||
window.addEventListener('resize', setScrollbarWidth);
|
||
});
|
||
function setScrollbarWidth() {
|
||
const root = document.querySelector(':root');
|
||
const width = (window.innerWidth - document.body.offsetWidth < 21) ? window.innerWidth - document.body.offsetWidth : 15;
|
||
root.style.setProperty('--lab-scrollbar-width', `${ width }px`);
|
||
}
|
||
</script>
|
||
|
||
|
||
<a href="#main" class="skip-link">Jump to main content</a>
|
||
|
||
<header class="pageElement pageHeader">
|
||
<div class="row mainrow">
|
||
<div class="hamburger to-be-expanded" data-id="pageElements-3">
|
||
<div class="positionRelative">
|
||
<span class="hamburger-button hamburger-expander ">
|
||
<button class="burger-btn" aria-label="Open menu" aria-expanded="false" aria-controls="hamburger-container" aria-haspopup="menu">
|
||
<i class="open fi-list"></i>
|
||
<i class="close fi-x"></i>
|
||
</button>
|
||
</span>
|
||
<div class="hamburger-container" id="hamburger-container">
|
||
<div data-id="pageElements-4" class="search visible dac-hidden-desktop-up">
|
||
|
||
<form class="search-container" action="/cse" method="get" role="search">
|
||
<label for="search-input-4" class="visuallyhidden">Search</label>
|
||
<input type="text" id="search-input-4" name="q" placeholder="Search...">
|
||
<button type="submit" class="search-button" aria-label="Search">
|
||
<i class="open fi-magnifying-glass"></i>
|
||
</button>
|
||
</form>
|
||
|
||
</div>
|
||
|
||
<nav class="navigation mainMenu expandable">
|
||
<p class="lab-menu-name dac-hidden-desktop-down">TOPICS</p>
|
||
<ul class="menu-list">
|
||
<li class="first-list-item has-children">
|
||
<span tabindex="0">Security</span>
|
||
<ul class="children">
|
||
<li class="">
|
||
<a href="/security" target="_self">All Security</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/cyber_crime" target="_self">Cyber-crime</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/patches" target="_self">Patches</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/research" target="_self">Research</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/cso" target="_self">CSO</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="first-list-item has-children">
|
||
<span tabindex="0">Off-Prem</span>
|
||
<ul class="children">
|
||
<li class="">
|
||
<a href="/off_prem" target="_self">All Off-Prem</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/edge_iot" target="_self">Edge and IoT</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/channel" target="_self">Channel</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/tag/paas-iaas" target="_self">PaaS and IaaS</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/saas" target="_self">SaaS</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="first-list-item has-children">
|
||
<span tabindex="0">On-Prem</span>
|
||
<ul class="children">
|
||
<li class="">
|
||
<a href="/on_prem" target="_self">All On-Prem</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/systems" target="_self">Systems</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/storage" target="_self">Storage</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/networks" target="_self">Networks</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/hpc" target="_self">HPC</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/personal_tech" target="_self">Personal Tech</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/cxo" target="_self">Cx0</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/public-sector" target="_self">Public Sector</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="first-list-item has-children">
|
||
<span tabindex="0">Software</span>
|
||
<ul class="children">
|
||
<li class="">
|
||
<a href="/software" target="_self">All Software</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/tag/ai%20and%20ml" target="_self">AI and ML</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/applications" target="_self">Applications</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/databases" target="_self">Databases</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/devops" target="_self">DevOps</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/tag/os%20platforms" target="_self">OS Platforms</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/virtualization" target="_self">Virtualization</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="first-list-item has-children">
|
||
<span tabindex="0">Offbeat</span>
|
||
<ul class="children">
|
||
<li class="">
|
||
<a href="/offbeat" target="_self">All Offbeat</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/columnists" target="_self">Columnists</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/science" target="_self">Science</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/bofh" target="_self">BOFH</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/legal" target="_self">Legal</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/site_news" target="_self">Site News</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="https://www.theregister.com/about_us" target="_self">About Us</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</nav>
|
||
|
||
<script>
|
||
(function () {
|
||
// This is only called when the user presses the escape key.
|
||
function closeElement(event, element) {
|
||
if (event.key === 'Escape') {
|
||
window.removeEventListener('keydown', closeElement);
|
||
|
||
// Get all expanded elements and close them
|
||
const expanded = document.querySelectorAll('nav.mainMenu.expandable .has-children.expanded');
|
||
for (let i = 0; i < expanded.length; i++) {
|
||
expanded[i].classList.remove('expanded');
|
||
|
||
// Traverse up from the element the user has selected to see if it is a child of the expanded element
|
||
// If it is, set focus to the first child, as that is the span element with tabindex.
|
||
// This is so that if the user has moved on from the menu, we shouldn't mess with the focus and flow
|
||
if (document.activeElement.closest('.has-children') === expanded[i]) {
|
||
expanded[i].children[0].focus();
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
function toggleElement(event, element) {
|
||
// Prevent the default link behavior
|
||
event.preventDefault();
|
||
|
||
// Check if there are other expanded elements and close them
|
||
const expanded = document.querySelectorAll('nav.mainMenu.expandable .has-children.expanded');
|
||
for (let i = 0; i < expanded.length; i++) {
|
||
if (expanded[i] !== element.parentElement) {
|
||
expanded[i].classList.remove('expanded');
|
||
}
|
||
}
|
||
|
||
// Toggle the class "expanded" on the parent element
|
||
// We toggle instead of add/remove the class because we don't know if we are opening or closing the element
|
||
element.parentElement.classList.toggle('expanded');
|
||
|
||
window.addEventListener('keydown', closeElement);
|
||
}
|
||
|
||
// Add extra element for carat and toggle functionality after the span or a element
|
||
function addCarat(element) {
|
||
const carat = document.createElement('span');
|
||
carat.classList.add('carat');
|
||
carat.tabIndex = '0';
|
||
const sibling = element.querySelector(':scope > a') || element.querySelector(':scope > span');
|
||
element.insertBefore(carat, sibling.nextSibling);
|
||
element.tabIndex = '-1';
|
||
if (sibling.tagName === 'A') {
|
||
sibling.tabIndex = '0';
|
||
} else if (sibling.tagName === 'SPAN') {
|
||
sibling.tabIndex = '-1';
|
||
}
|
||
}
|
||
|
||
// Get all elements with class "has-children" and add two events - one click event and one keydown event
|
||
// Allow for the same expandable menu to be reused in different viewports by using different classes
|
||
let classes = '';
|
||
if (classes) {
|
||
classes = '.' + classes.trim().split(' ').join('.');
|
||
}
|
||
|
||
const hasChildren = document.querySelectorAll(`nav.mainMenu${ classes }.expandable .has-children > span`);
|
||
for (let i = 0; i < hasChildren.length; i++) {
|
||
hasChildren[i].addEventListener('click', function(e) {
|
||
toggleElement(e, this);
|
||
});
|
||
|
||
hasChildren[i].addEventListener('keydown', function (e) {
|
||
// Check for both enter and space keys
|
||
if (e.key === 'Enter' || e.key === ' ') {
|
||
toggleElement(e, this);
|
||
}
|
||
});
|
||
}
|
||
|
||
// Get all elements with class "has-children" when toggleChildren is enabled and carat and toggle functionality
|
||
const hasChildrenToggle = document.querySelectorAll(`nav.mainMenu${ classes }.expandable.toggleChildren .has-children > span, nav.mainMenu${ classes }.expandable.toggleChildren .has-children > a`);
|
||
for (let i = 0; i < hasChildrenToggle.length; i++) {
|
||
|
||
// Add carat to the element
|
||
addCarat(hasChildrenToggle[i].parentElement);
|
||
|
||
if (hasChildrenToggle[i].tagName === 'A' || hasChildrenToggle[i].tagName === 'SPAN') {
|
||
hasChildrenToggle[i].nextSibling.addEventListener('click', function(e) {
|
||
toggleElement(e, hasChildrenToggle[i]);
|
||
});
|
||
|
||
hasChildrenToggle[i].nextSibling.addEventListener('keydown', function(e) {
|
||
// Check for both enter and space keys
|
||
if (e.key === 'Enter' || e.key === ' ') {
|
||
toggleElement(e, hasChildrenToggle[i]);
|
||
}
|
||
});
|
||
|
||
// Use with caution - ensure that parent li overlaps with child ul to avoid prematurely triggering leave
|
||
if (hasChildrenToggle[i].closest('nav').classList.contains('toggleOnHover')) {
|
||
hasChildrenToggle[i].addEventListener('mouseenter', function(e) {
|
||
hasChildrenToggle[i].parentElement.classList.add('expanded');
|
||
});
|
||
|
||
hasChildrenToggle[i].parentElement.addEventListener('mouseleave', function(e) {
|
||
hasChildrenToggle[i].parentElement.classList.remove('expanded');
|
||
});
|
||
}
|
||
}
|
||
}
|
||
})();
|
||
</script>
|
||
|
||
|
||
<script>
|
||
(function () {
|
||
const menuLinks = document.querySelectorAll(`nav.mainMenu ul li a`);
|
||
for (let i = 0; i < menuLinks.length; i++) {
|
||
const link = menuLinks[i].pathname;
|
||
if (link === window.location.pathname) {
|
||
menuLinks[i].parentElement.classList.add('lab-link-active');
|
||
} else {
|
||
menuLinks[i].parentElement.classList.remove('lab-link-active');
|
||
}
|
||
}
|
||
})();
|
||
</script>
|
||
|
||
<nav class="navigation bottomBarMenu expandable">
|
||
<ul class="menu-list">
|
||
<li class="first-list-item has-children">
|
||
<span tabindex="0">Special Features</span>
|
||
<ul class="children">
|
||
<li class="dac-hidden-desktop-up">
|
||
<a href="/special_features" target="_self">All Special Features</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/special_features/vmware_explore_2026" target="_self">VMware Explore 2026</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/special_features/cloud_infrastructure_month_2026" target="_self">Cloud Infrastructure Month 2026</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/explainer/ai-explainer" target="_self">HPE: AI Explainers</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/special_features/agentic_ai" target="_self">Agentic AI</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/special_features/future_of_the_datacenter" target="_self">The Future of the Datacenter</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/special_features/aws_reinvent" target="_self">AWS:Reinvent</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/special_features/nvidia_gtc" target="_self">Nvidia GTC</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/special_features/2025_11_supercomputing_month" target="_self">Supercomputing Month</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/special_features/computex" target="_self">Computex 2026</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/special_features/ai_infrastructure_month_2026" target="_self">AI Infrastructure Month 2026</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/special_features/state_of_storage_2026" target="_self">The State of Storage 2026</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="/special_features/rsa" target="_self">RSA Conference</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="first-list-item has-children">
|
||
<span tabindex="0">Vendor Voice</span>
|
||
<ul class="children">
|
||
<li class="">
|
||
<a href="https://vendorvoice.theregister.com/" target="_self">All Vendor Voice</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="https://vendorvoice.theregister.com/aws_fis_capital_markets/" target="_self">Modernizing Financial Services with FIS and AWS</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="https://vendorvoice.theregister.com/barco/" target="_self">Barco</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="https://vendorvoice.theregister.com/infinidat/" target="_self">Infinidat</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="https://vendorvoice.theregister.com/everpure/" target="_self">Everpure</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="https://vendorvoice.theregister.com/rubrik/" target="_self">Rubrik</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="https://vendorvoice.theregister.com/aws_capgemini/" target="_self">Make it real with Capgemini and AWS</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="https://vendorvoice.theregister.com/aws_fis/" target="_self">Money Movement Hub</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="https://vendorvoice.theregister.com/zte_news_and_stories/" target="_self">ZTE</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="https://vendorvoice.theregister.com/nutantix_cloud_native_apps/" target="_self">Nutanix: Scale Kubernetes. Not Chaos.</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="https://vendorvoice.theregister.com/aws_new_horizon/" target="_self">AWS New Horizon</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="https://vendorvoice.theregister.com/digicert" target="_self">Digicert</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="https://vendorvoice.theregister.com/netscout" target="_self">Netscout</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="first-list-item has-children">
|
||
<span tabindex="0">Resources</span>
|
||
<ul class="children">
|
||
<li class="">
|
||
<a href="https://intelligence.theregister.com" target="_self">Intelligence</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="https://intelligence.theregister.com/events/list/" target="_self">Webinars & Events</a>
|
||
</li>
|
||
<li class="">
|
||
<a href="https://account.theregister.com/login?r=https%3A%2F%2Faccount.theregister.com%2Fedit%2Fnewsletter%2F" target="_self">Newsletters</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</nav>
|
||
|
||
<script>
|
||
(function () {
|
||
// This is only called when the user presses the escape key.
|
||
function closeElement(event, element) {
|
||
if (event.key === 'Escape') {
|
||
window.removeEventListener('keydown', closeElement);
|
||
|
||
// Get all expanded elements and close them
|
||
const expanded = document.querySelectorAll('nav.bottomBarMenu.expandable .has-children.expanded');
|
||
for (let i = 0; i < expanded.length; i++) {
|
||
expanded[i].classList.remove('expanded');
|
||
|
||
// Traverse up from the element the user has selected to see if it is a child of the expanded element
|
||
// If it is, set focus to the first child, as that is the span element with tabindex.
|
||
// This is so that if the user has moved on from the menu, we shouldn't mess with the focus and flow
|
||
if (document.activeElement.closest('.has-children') === expanded[i]) {
|
||
expanded[i].children[0].focus();
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
function toggleElement(event, element) {
|
||
// Prevent the default link behavior
|
||
event.preventDefault();
|
||
|
||
// Check if there are other expanded elements and close them
|
||
const expanded = document.querySelectorAll('nav.bottomBarMenu.expandable .has-children.expanded');
|
||
for (let i = 0; i < expanded.length; i++) {
|
||
if (expanded[i] !== element.parentElement) {
|
||
expanded[i].classList.remove('expanded');
|
||
}
|
||
}
|
||
|
||
// Toggle the class "expanded" on the parent element
|
||
// We toggle instead of add/remove the class because we don't know if we are opening or closing the element
|
||
element.parentElement.classList.toggle('expanded');
|
||
|
||
window.addEventListener('keydown', closeElement);
|
||
}
|
||
|
||
// Add extra element for carat and toggle functionality after the span or a element
|
||
function addCarat(element) {
|
||
const carat = document.createElement('span');
|
||
carat.classList.add('carat');
|
||
carat.tabIndex = '0';
|
||
const sibling = element.querySelector(':scope > a') || element.querySelector(':scope > span');
|
||
element.insertBefore(carat, sibling.nextSibling);
|
||
element.tabIndex = '-1';
|
||
if (sibling.tagName === 'A') {
|
||
sibling.tabIndex = '0';
|
||
} else if (sibling.tagName === 'SPAN') {
|
||
sibling.tabIndex = '-1';
|
||
}
|
||
}
|
||
|
||
// Get all elements with class "has-children" and add two events - one click event and one keydown event
|
||
// Allow for the same expandable menu to be reused in different viewports by using different classes
|
||
let classes = '';
|
||
if (classes) {
|
||
classes = '.' + classes.trim().split(' ').join('.');
|
||
}
|
||
|
||
const hasChildren = document.querySelectorAll(`nav.bottomBarMenu${ classes }.expandable .has-children > span`);
|
||
for (let i = 0; i < hasChildren.length; i++) {
|
||
hasChildren[i].addEventListener('click', function(e) {
|
||
toggleElement(e, this);
|
||
});
|
||
|
||
hasChildren[i].addEventListener('keydown', function (e) {
|
||
// Check for both enter and space keys
|
||
if (e.key === 'Enter' || e.key === ' ') {
|
||
toggleElement(e, this);
|
||
}
|
||
});
|
||
}
|
||
|
||
// Get all elements with class "has-children" when toggleChildren is enabled and carat and toggle functionality
|
||
const hasChildrenToggle = document.querySelectorAll(`nav.bottomBarMenu${ classes }.expandable.toggleChildren .has-children > span, nav.bottomBarMenu${ classes }.expandable.toggleChildren .has-children > a`);
|
||
for (let i = 0; i < hasChildrenToggle.length; i++) {
|
||
|
||
// Add carat to the element
|
||
addCarat(hasChildrenToggle[i].parentElement);
|
||
|
||
if (hasChildrenToggle[i].tagName === 'A' || hasChildrenToggle[i].tagName === 'SPAN') {
|
||
hasChildrenToggle[i].nextSibling.addEventListener('click', function(e) {
|
||
toggleElement(e, hasChildrenToggle[i]);
|
||
});
|
||
|
||
hasChildrenToggle[i].nextSibling.addEventListener('keydown', function(e) {
|
||
// Check for both enter and space keys
|
||
if (e.key === 'Enter' || e.key === ' ') {
|
||
toggleElement(e, hasChildrenToggle[i]);
|
||
}
|
||
});
|
||
|
||
// Use with caution - ensure that parent li overlaps with child ul to avoid prematurely triggering leave
|
||
if (hasChildrenToggle[i].closest('nav').classList.contains('toggleOnHover')) {
|
||
hasChildrenToggle[i].addEventListener('mouseenter', function(e) {
|
||
hasChildrenToggle[i].parentElement.classList.add('expanded');
|
||
});
|
||
|
||
hasChildrenToggle[i].parentElement.addEventListener('mouseleave', function(e) {
|
||
hasChildrenToggle[i].parentElement.classList.remove('expanded');
|
||
});
|
||
}
|
||
}
|
||
}
|
||
})();
|
||
</script>
|
||
|
||
|
||
<script>
|
||
(function () {
|
||
const menuLinks = document.querySelectorAll(`nav.bottomBarMenu ul li a`);
|
||
for (let i = 0; i < menuLinks.length; i++) {
|
||
const link = menuLinks[i].pathname;
|
||
if (link === window.location.pathname) {
|
||
menuLinks[i].parentElement.classList.add('lab-link-active');
|
||
} else {
|
||
menuLinks[i].parentElement.classList.remove('lab-link-active');
|
||
}
|
||
}
|
||
})();
|
||
</script>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
<script>
|
||
(function(){
|
||
const burgerButton = document.querySelector('[data-id="pageElements-3"] .burger-btn');
|
||
const dropdownCloseSection = document.querySelector('[data-id="pageElements-3"] .dropdown-close-section');
|
||
const hamburgerContainer = document.querySelector('[data-id="pageElements-3"] .hamburger-container');
|
||
|
||
function toggleDropdown() {
|
||
// Toggle the expanded class and aria-expanded attribute
|
||
document.querySelector('[data-id="pageElements-3"].hamburger.to-be-expanded').classList.toggle('expanded');
|
||
burgerButton.setAttribute('aria-expanded', burgerButton.getAttribute('aria-expanded') === 'true' ? 'false' : 'true');
|
||
burgerButton.setAttribute('aria-label', burgerButton.getAttribute('aria-expanded') === 'true' ? 'Close menu' : 'Open menu');
|
||
|
||
// This doesn't seem to do anything? But there's styling dependent on it some places
|
||
document.body.classList.toggle('hamburger-expanded');
|
||
}
|
||
|
||
function getFocusableElements() {
|
||
if (!hamburgerContainer) return [];
|
||
return Array.from(hamburgerContainer.querySelectorAll(
|
||
'a[href], button:not([disabled]), input:not([disabled]), ' +
|
||
'select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])'
|
||
)).filter(function(el) {
|
||
if (el.closest('[hidden]')) return false;
|
||
if (getComputedStyle(el).visibility === 'hidden') return false;
|
||
const rect = el.getBoundingClientRect();
|
||
return rect.width > 0 || rect.height > 0;
|
||
});
|
||
}
|
||
|
||
// Called via the event listener - handles Escape (close menu, restore focus) and
|
||
// Tab (trap focus within the open menu)
|
||
function handleKeydown(e) {
|
||
if (e.key === 'Escape') {
|
||
toggleDropdown();
|
||
// Set the focus back on the button when clicking escape, so the user can continue tabbing down
|
||
// the page in a natural flow
|
||
burgerButton.focus();
|
||
window.removeEventListener('keydown', handleKeydown);
|
||
return;
|
||
}
|
||
|
||
if (e.key === 'Tab') {
|
||
const focusable = getFocusableElements();
|
||
if (focusable.length === 0) return;
|
||
|
||
if (!e.shiftKey && document.activeElement === focusable[focusable.length - 1]) {
|
||
// Tab past last item → burger button
|
||
e.preventDefault();
|
||
burgerButton.focus();
|
||
} else if (e.shiftKey && document.activeElement === burgerButton) {
|
||
// Shift+Tab from burger button → last item
|
||
e.preventDefault();
|
||
focusable[focusable.length - 1].focus();
|
||
}
|
||
}
|
||
}
|
||
|
||
if(burgerButton) {
|
||
burgerButton.addEventListener('click', function(e) {
|
||
e.preventDefault();
|
||
toggleDropdown();
|
||
|
||
// If the menu gets expanded, add the event listener that will close it on pressing Escape
|
||
// else, remove the event listener otherwise it will continue to listen for escape even if the menu is closed.
|
||
if(burgerButton.getAttribute('aria-expanded') === 'true') {
|
||
window.addEventListener('keydown', handleKeydown);
|
||
} else {
|
||
window.removeEventListener('keydown', handleKeydown);
|
||
}
|
||
})
|
||
}
|
||
if (dropdownCloseSection) {
|
||
dropdownCloseSection.addEventListener('click', function(e) {
|
||
e.preventDefault();
|
||
toggleDropdown();
|
||
});
|
||
}
|
||
|
||
document.querySelectorAll('.hamburger .hamburger-expander, .hamburger .hamburger-container, .stop-propagation').forEach(function (element) {
|
||
element.addEventListener('click', function (e) {
|
||
e.stopPropagation();
|
||
});
|
||
});
|
||
}());
|
||
</script><div data-id="pageElements-7" class="search to-be-expanded dac-hidden-desktop-down bonusButton">
|
||
|
||
<form class="search-container" action="/cse" method="get" role="search">
|
||
<label for="search-input-7" class="visuallyhidden">Search</label>
|
||
<input type="text" id="search-input-7" name="q" placeholder="Search...">
|
||
<button id="bonusButton" class="bonusButton">
|
||
<i class="fi-magnifying-glass" aria-hidden="true"></i>
|
||
</button>
|
||
</form>
|
||
|
||
<button class="search-button search-expander" aria-label="Search" aria-expanded="false" aria-controls="search-input-7">
|
||
<i class="open fi-magnifying-glass"></i>
|
||
<i class="close fi-x"></i>
|
||
</button>
|
||
</div>
|
||
|
||
<script>
|
||
// Do the check for the search button inside the if statement, so we don't set a global const if there are multiple search buttons
|
||
if (document.querySelector('[data-id="pageElements-7"] .search-button')) {
|
||
// Now we can set a const that is only available inside the if scope
|
||
const searchButton = document.querySelector('[data-id="pageElements-7"] .search-button');
|
||
let searchWasExpanded = false;
|
||
let hadPointerDown = false;
|
||
searchButton.addEventListener('pointerdown', () => {
|
||
searchWasExpanded = searchButton.getAttribute('aria-expanded') === 'true';
|
||
hadPointerDown = true;
|
||
});
|
||
searchButton.addEventListener('click', (event) => {
|
||
event.preventDefault();
|
||
event.stopPropagation();
|
||
|
||
// For pointer interactions (mouse/touch), use the state captured at pointerdown time,
|
||
// before focusout could collapse the search. For keyboard interactions, pointerdown
|
||
// never fires, so read aria-expanded directly — focusout doesn't fire on keyboard
|
||
// so the current state is still accurate.
|
||
const wasExpanded = hadPointerDown ? searchWasExpanded : searchButton.getAttribute('aria-expanded') === 'true';
|
||
hadPointerDown = false;
|
||
|
||
const shouldOpen = !wasExpanded;
|
||
searchButton.parentElement.classList.toggle('expanded', shouldOpen);
|
||
searchButton.setAttribute('aria-expanded', shouldOpen ? 'true' : 'false');
|
||
searchButton.setAttribute('aria-label', shouldOpen ? 'Close search' : 'Open search');
|
||
|
||
// Set focus to the input.
|
||
// This might be dodgy due to moving focus automatically, but we'll keep it in for now.
|
||
if (shouldOpen) {
|
||
document.getElementById('search-input-7').focus();
|
||
}
|
||
}, false);
|
||
}
|
||
|
||
if (document.getElementById('bonusButton')) {
|
||
document.getElementById('bonusButton').addEventListener('pointerdown', (event) => {
|
||
event.preventDefault();
|
||
});
|
||
document.getElementById('bonusButton').addEventListener('click', (event) => {
|
||
document.querySelector('[data-id="pageElements-7"] .search-container').submit();
|
||
}, false);
|
||
}
|
||
|
||
// Wrap in a block so const doesn't conflict when multiple search widgets are on the same page
|
||
{
|
||
const searchWrapper = document.querySelector('[data-id="pageElements-7"]');
|
||
if (searchWrapper) {
|
||
const searchButton = document.querySelector('[data-id="pageElements-7"] .search-button');
|
||
searchWrapper.addEventListener('focusout', (event) => {
|
||
if (searchWrapper.classList.contains('expanded') && !searchWrapper.contains(event.relatedTarget)) {
|
||
searchWrapper.classList.remove('expanded');
|
||
if (searchButton) {
|
||
searchButton.setAttribute('aria-expanded', 'false');
|
||
searchButton.setAttribute('aria-label', 'Open search');
|
||
}
|
||
}
|
||
});
|
||
|
||
searchWrapper.addEventListener('keydown', (event) => {
|
||
if (event.key === 'Escape' && searchWrapper.classList.contains('expanded')) {
|
||
searchWrapper.classList.remove('expanded');
|
||
if (searchButton) {
|
||
searchButton.setAttribute('aria-expanded', 'false');
|
||
searchButton.setAttribute('aria-label', 'Open search');
|
||
searchButton.focus();
|
||
}
|
||
}
|
||
});
|
||
}
|
||
}
|
||
|
||
</script>
|
||
<figure class="logo logo--mobile">
|
||
<a href="https://www.theregister.com" aria-label="Go to frontpage">
|
||
<img src="/view-resources/dachser2/public/theregister/logo.svg"
|
||
alt="Go to frontpage. Logo, The Register"
|
||
width="275"
|
||
>
|
||
</a>
|
||
</figure>
|
||
|
||
<figure class="logo logo--primary">
|
||
<a href="https://www.theregister.com" aria-label="Go to frontpage">
|
||
<img src="/view-resources/dachser2/public/theregister/logo.svg"
|
||
alt="Go to frontpage. Logo, The Register"
|
||
width="275"
|
||
>
|
||
</a>
|
||
</figure>
|
||
|
||
<figure class="logo logo--secondary">
|
||
<a href="https://www.theregister.com" aria-label="Go to frontpage">
|
||
<img src="/view-resources/dachser2/public/theregister/logo.svg"
|
||
alt="Go to frontpage. Logo, The Register"
|
||
width="275"
|
||
>
|
||
</a>
|
||
</figure>
|
||
<nav class="navigation topBarMenu">
|
||
<ul class="menu-list">
|
||
<li class="first-list-item login-btn">
|
||
<a href="https://account.theregister.com/login" target="_self">Sign in</a>
|
||
</li>
|
||
</ul>
|
||
</nav>
|
||
|
||
|
||
|
||
<script>
|
||
(function () {
|
||
const menuLinks = document.querySelectorAll(`nav.topBarMenu ul li a`);
|
||
for (let i = 0; i < menuLinks.length; i++) {
|
||
const link = menuLinks[i].pathname;
|
||
if (link === window.location.pathname) {
|
||
menuLinks[i].parentElement.classList.add('lab-link-active');
|
||
} else {
|
||
menuLinks[i].parentElement.classList.remove('lab-link-active');
|
||
}
|
||
}
|
||
})();
|
||
</script>
|
||
|
||
|
||
</div>
|
||
<div class="row dac-hidden-desktop-down bottom-row">
|
||
<div class="section">
|
||
<nav class="navigation customMenu1">
|
||
<ul class="menu-list">
|
||
<li class="first-list-item ">
|
||
<a href="/tag/ai%20and%20ml" target="_self">AI</a>
|
||
</li>
|
||
<li class="first-list-item ">
|
||
<a href="/security" target="_self">Security</a>
|
||
</li>
|
||
<li class="first-list-item ">
|
||
<a href="/software" target="_self">Software</a>
|
||
</li>
|
||
<li class="first-list-item ">
|
||
<a href="/tag/microsoft" target="_self">Microsoft</a>
|
||
</li>
|
||
<li class="first-list-item ">
|
||
<a href="/devops" target="_self">Developer</a>
|
||
</li>
|
||
<li class="first-list-item ">
|
||
<a href="/tag/open%20source" target="_self">Open Source</a>
|
||
</li>
|
||
<li class="first-list-item ">
|
||
<a href="/tag/bofh" target="_self">BOFH</a>
|
||
</li>
|
||
<li class="first-list-item ">
|
||
<a href="/tag/who%20me" target="_self">Who, Me?</a>
|
||
</li>
|
||
<li class="first-list-item ">
|
||
<a href="/tag/on%20call/" target="_self">On Call</a>
|
||
</li>
|
||
<li class="first-list-item ">
|
||
<a href="/science" target="_self">Science</a>
|
||
</li>
|
||
</ul>
|
||
</nav>
|
||
|
||
|
||
|
||
<script>
|
||
(function () {
|
||
const menuLinks = document.querySelectorAll(`nav.customMenu1 ul li a`);
|
||
for (let i = 0; i < menuLinks.length; i++) {
|
||
const link = menuLinks[i].pathname;
|
||
if (link === window.location.pathname) {
|
||
menuLinks[i].parentElement.classList.add('lab-link-active');
|
||
} else {
|
||
menuLinks[i].parentElement.classList.remove('lab-link-active');
|
||
}
|
||
}
|
||
})();
|
||
</script>
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
<script>
|
||
(function () {
|
||
if (!'IntersectionObserver' in window) { return; }
|
||
|
||
var scrollEvents = scrollEvents || [];
|
||
|
||
if (scrollEvents) {
|
||
const domInterface = {
|
||
classList: {
|
||
remove: () => {},
|
||
add: () => {}
|
||
},
|
||
style: {
|
||
cssText: ''
|
||
}
|
||
};
|
||
|
||
scrollEvents.forEach(function(event) {
|
||
if (!event.directional) {
|
||
var callback = function(entries, observer) {
|
||
if (!entries[0]) { return; }
|
||
if (entries[0].isIntersecting) {
|
||
event.styles.forEach(function(item) {
|
||
(document.querySelector(item.selector) || domInterface).style.cssText = "";
|
||
});
|
||
event.classes.forEach(function(item) {
|
||
item.class.forEach(function(classname) {
|
||
(document.querySelector(item.selector) || domInterface).classList.remove(classname);
|
||
});
|
||
});
|
||
} else {
|
||
event.styles.forEach(function(item) {
|
||
(document.querySelector(item.selector) || domInterface).style.cssText = item.style;
|
||
});
|
||
event.classes.forEach(function(item) {
|
||
item.class.forEach(function(classname) {
|
||
(document.querySelector(item.selector) || domInterface).classList.add(classname);
|
||
});
|
||
});
|
||
}
|
||
};
|
||
|
||
var observer = new IntersectionObserver(callback, {
|
||
rootMargin: event.offset,
|
||
threshold: 1
|
||
});
|
||
var target = document.querySelector(event.target);
|
||
if (target) {
|
||
observer.observe(target);
|
||
}
|
||
}
|
||
|
||
if (event.directional) {
|
||
let previousTop = 0;
|
||
window.addEventListener('scroll', function() {
|
||
setTimeout(function() {
|
||
const currentTop = window.pageYOffset || document.documentElement.scrollTop;
|
||
if (currentTop > previousTop + 10) {
|
||
event.styles.forEach(function(item) {
|
||
(document.querySelector(item.selector) || domInterface).style.cssText = item.style;
|
||
});
|
||
event.classes.forEach(function(item) {
|
||
item.class.forEach(function(classname) {
|
||
(document.querySelector(item.selector) || domInterface).classList.add(classname);
|
||
});
|
||
});
|
||
} else if (currentTop < previousTop - 10) {
|
||
event.styles.forEach(function(item) {
|
||
(document.querySelector(item.selector) || domInterface).style.cssText = "";
|
||
});
|
||
event.classes.forEach(function(item) {
|
||
item.class.forEach(function(classname) {
|
||
(document.querySelector(item.selector) || domInterface).classList.remove(classname);
|
||
});
|
||
});
|
||
}
|
||
previousTop = currentTop;
|
||
}, 200);
|
||
});
|
||
}
|
||
});
|
||
}
|
||
}());
|
||
|
||
window.Dac.clientData.paywall.toggleAuthenticatedContent();
|
||
</script>
|
||
</header>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<section id="mainArticleSection" class="main article">
|
||
<div data-element-guid="565d82c3-e2c9-4b3f-cfce-79c499dc7093" class="placeholder placement-top">
|
||
<div data-element-guid="6b75fa67-db14-4d1c-80fa-03d819cf6479" class="column google-ad small-12 large-12 small-abs-12 large-abs-12" style="">
|
||
|
||
<span class="ad-label">REG AD</span>
|
||
<div class="adunit" id="labrador/thereg/article/desktop/a" style="min-height:90px;"></div>
|
||
<script>
|
||
googletag.cmd.push(function() {
|
||
googletag.display('labrador/thereg/article/desktop/a');
|
||
});
|
||
</script>
|
||
</div>
|
||
|
||
</div>
|
||
<main class="pageWidth">
|
||
<article class=" "
|
||
|
||
>
|
||
|
||
<section class="main article k5a-article" id="main">
|
||
|
||
<div></div>
|
||
<script>
|
||
(function() {
|
||
let windowUrl = window.location.href;
|
||
windowUrl = windowUrl.substring(windowUrl.indexOf('?') + 1);
|
||
let messageElement = document.querySelector('.shareableMessage');
|
||
if (windowUrl && windowUrl.includes('code') && windowUrl.includes('expires')) {
|
||
messageElement.style.display = 'block';
|
||
}
|
||
})();
|
||
</script>
|
||
|
||
|
||
<div data-element-guid="aeef89ba-a6fe-4a40-bf0a-acd2cab94760" class="articleHeader column">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div class="media">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div class="floatingText"> </div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
<p class="kicker below" style="">
|
||
<a href="/tag/on-prem">On-Prem</a>
|
||
</p>
|
||
|
||
<h1 class="headline mainTitle below" style="">
|
||
You deleted the customer. What now? Human error - deal with it
|
||
</h1>
|
||
|
||
<p class="subtitle below" style="">
|
||
To err is human, to double err is career limiting
|
||
</p>
|
||
|
||
|
||
<div data-element-guid="e32662b5-504b-4d8b-a8c0-f91b20481918" class="meta">
|
||
|
||
|
||
<div class="bylines">
|
||
<div data-element-guid="c5a471c4-6a6f-49a7-bce0-66824985981f" class="byline column" itemscope itemtype="http://schema.org/Person">
|
||
|
||
<div class="content">
|
||
|
||
<address class="name lab-name-flex">
|
||
<span class="lab-hidden-byline-name" itemprop="name">Stuart Burns</span>
|
||
<a rel="author" itemprop="url" href="https://www.theregister.com/author/Stuart-Burns">
|
||
<span class="firstname ">Stuart</span>
|
||
<span class="lastname ">Burns</span>
|
||
</a>
|
||
</address>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
<div class="dates">
|
||
<span class="dateGroup datePublished">
|
||
<span class="dateLabel">Published</span>
|
||
<time datetime="2016-05-30T09:00:14.000Z">mon 30 May 2016 // 10:00 UTC</time>
|
||
</span>
|
||
</div>
|
||
|
||
|
||
<div class="social">
|
||
<a target="_blank" href="https://www.facebook.com/sharer.php?u=https%3A%2F%2Fwww.theregister.com%2Fon-prem%2F2016%2F05%2F30%2Fyou-deleted-the-customer-what-now-human-error-deal-with-it%2F1041360" class="fi-social-facebook" aria-label="Share on Facebook"></a>
|
||
<a target="_blank" href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.theregister.com%2Fon-prem%2F2016%2F05%2F30%2Fyou-deleted-the-customer-what-now-human-error-deal-with-it%2F1041360" class="fi-social-twitter" aria-label="Share on X (Twitter)"></a>
|
||
<a target="_blank" href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.theregister.com%2Fon-prem%2F2016%2F05%2F30%2Fyou-deleted-the-customer-what-now-human-error-deal-with-it%2F1041360" class="fi-social-linkedin" aria-label="Share on LinkedIn"></a>
|
||
<a target="_blank" href="https://bsky.app/intent/compose?text=You%20deleted%20the%20customer.%20What%20now%3F%20Human%20error%20-%20deal%20with%20it%0Ahttps%3A%2F%2Fwww.theregister.com%2Fon-prem%2F2016%2F05%2F30%2Fyou-deleted-the-customer-what-now-human-error-deal-with-it%2F1041360" class="fi-social-bluesky" aria-label="Share on Bluesky"></a>
|
||
<a target="_blank" href="https://www.reddit.com/submit?url=https%3A%2F%2Fwww.theregister.com%2Fon-prem%2F2016%2F05%2F30%2Fyou-deleted-the-customer-what-now-human-error-deal-with-it%2F1041360&title=You%20deleted%20the%20customer.%20What%20now%3F%20Human%20error%20-%20deal%20with%20it" class="fi-social-reddit" aria-label="Share on Reddit"></a>
|
||
<a target="_blank" href="https://api.whatsapp.com/send?text=You%20deleted%20the%20customer.%20What%20now%3F%20Human%20error%20-%20deal%20with%20it%0Ahttps%3A%2F%2Fwww.theregister.com%2Fon-prem%2F2016%2F05%2F30%2Fyou-deleted-the-customer-what-now-human-error-deal-with-it%2F1041360" class="fi-social-whatsapp" aria-label="Share on WhatsApp"></a>
|
||
</div>
|
||
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div data-element-guid="07dded19-fe0c-41b4-a2f9-bfb1927ba8a7" class="bodytext large-12 small-12 medium-12"
|
||
>
|
||
|
||
|
||
|
||
<p><span class="tertiary color_mobile_tertiary" data-lab-text_color="tertiary">BLOG</span> Everyone I speak to about system security seems to panic about malware, cloud failure system crashes and bad patches. But the biggest threat isn’t good or bad code, or systems that may or may not fail. It’s people. What we call Liveware errors range from the mundane to the catastrophic and they happen all the time at all levels of business.</p>
|
||
<p>We have all had that pit-of-the-stomach feeling when we hit the wrong key or pull the wrong drive or cable. One of the more mundane examples I have experienced was a secretary trying to delete an old file but accidentally nuking the whole client folder. Luckily, this was Novell Netware, so a quick use of “salvage” and everything was back to normal – no tape restore needed.</p>
|
||
<p>Then there was the small business where a staffer accidentally pressed the delete key for files held on an Iomega ZIP and then clicked 'yes' to confirm. Unfortunately, the Recycle Bin doesn’t always save you and the business owner was unable to recover the data. The information must have been important as he kept that disk for years – <i>just in case</i>.</p>
|
||
<div data-element-guid="55ab5616-2358-4455-a2d6-e5edee95a193" class="column google-ad widthFull" style="">
|
||
|
||
<span class="ad-label">REG AD</span>
|
||
<div class="adunit" id="labrador/thereg/article/desktop/b" ></div>
|
||
<script>
|
||
googletag.cmd.push(function() {
|
||
googletag.display('labrador/thereg/article/desktop/b');
|
||
});
|
||
</script>
|
||
</div>
|
||
<h2>Catalogue of human error</h2>
|
||
<div data-element-guid="30c96f20-ed31-43c5-faa0-b0210ee16b3b" class="column google-ad floatRight widthAuto" style="">
|
||
|
||
<span class="ad-label">REG AD</span>
|
||
<div class="adunit" id="labrador/thereg/article/desktop/c" ></div>
|
||
<script>
|
||
googletag.cmd.push(function() {
|
||
googletag.display('labrador/thereg/article/desktop/c');
|
||
});
|
||
</script>
|
||
</div>
|
||
<p>Unfortunately, human error scale ups. I have seen very large companies lose hundreds of machines due to a stupid file-deletion default of “*” within a maintenance application.</p>
|
||
<p>The root cause of failure is often human mistakes. Even when human interaction is not the direct cause, it usually plays some role in the failure. The reasons behind human failure are also, contrary to popular belief, rarely based on malice or retribution for perceived slights, but are much more likely to come down to common or garden-variety human screw-ups.</p>
|
||
<p>Unfortunately, as IT becomes more demanding, IT staff and budgets are shrinking, leaving more work to be done by fewer people. This unrelenting pressure of continually fixing systems as quickly as possible can lead to mistakes.</p>
|
||
<p>It can happen all too easily. One quick click of a button and you can be in a situation that is incredibly hard to recover from. Thank goodness for confirmation dialogs!</p>
|
||
<p>Unfortunately, no matter what you or your organisation does, failures will still occur. The way forward is to mitigate risk wherever possible, combined with learning from the past and instituting procedures to prevent re-occurrence.</p>
|
||
<h2>Document your best practices – properly</h2>
|
||
<p>Failure to document procedures is in itself a completely avoidable human error. All organisations should have a set of up-to-date, fully documented procedures and processes that are available and easy to implement.</p>
|
||
<p>New staff will find this invaluable as a reference to default processes. Good documentation and process go hand in hand. Processes that are consistently applied make life easier and help us all to avoid making the same errors. Also, in the event of a crisis, the presence of a handy explainer on an installation setup and its recovery procedures can eliminate uncertainty and speed resolution.</p>
|
||
<div data-element-guid="5da8b356-0150-4270-cc7e-aec9b14d4d93" class="column google-ad widthFull" style="">
|
||
|
||
<span class="ad-label">REG AD</span>
|
||
<div class="adunit" id="labrador/thereg/article/desktop/d" ></div>
|
||
<script>
|
||
googletag.cmd.push(function() {
|
||
googletag.display('labrador/thereg/article/desktop/d');
|
||
});
|
||
</script>
|
||
</div>
|
||
<p>Cast your eyes on some recent high-profile cloud failures and often the fault lies in a failure to follow process, which then took out the production environment. Admittedly, most of us lack the scope to disrupt millions of customers at once – and we let's be thankful for that.</p>
|
||
<p>Following process and documentation will ensure that you won’t end up out of a job. Understanding that to err is human is important. A lot of large organisations have a no-blame policy, as they realise that people do screw up occasionally. Doing otherwise would cause morale to nosedive. That’s not to say you get to make the same error twice without repercussions.</p>
|
||
<p>Importantly, when people screw up, any company keen to prevent a re-occurrence of the issue should perform a root-cause analysis of the incident. Knowing why the failure occurred means the procedures and documentation must be changed to avoid a re-occurrence. It could be as simple as a more detailed sanity check before running that process that nukes some part of the system.</p>
|
||
<h2>Change management, no, don't groan</h2>
|
||
<p>Change management is another useful technique for risk mitigation. A lot of people will read that statement and groan. Done wrong, with too much interference and too much red tape, it makes for instant fail. That said, implementing even the most trivial change management can help in a number of ways.</p>
|
||
<p>First, it forces the administrator to submit a plan that contains the “what,” the “how” and the “why.” Next, it lets others know what’s going on and also highlights problems or better ways to do things. Admittedly, smaller companies get somewhat limited return, but for medium and large companies, it allows transparency, peer review and also everyone knows what’s going on.</p>
|
||
<h2>I know that you and Frank were planning to disconnect me, and I'm afraid that's something I cannot allow to happen.</h2>
|
||
<p>When used correctly, separate user and admin accounts means that those horrible “oops” moments happen less frequently. This may seem glaringly obvious but a lot of admins don’t care for it, claiming that it adds overhead – and anyway, they know what they’re doing, right? An example? Many years ago, being a bit lazy on a Friday afternoon after a pub lunch, I worked on some network directory configurations and accidentally hit the wrong button. I panicked – but then realised I had used my non-privileged account and so hadn't trashed this particular piece of NDS.</p>
|
||
<div data-element-guid="f4eadae2-3d94-41f2-cf8f-6892a27d704d" class="column google-ad widthFull" style="">
|
||
|
||
<span class="ad-label">REG AD</span>
|
||
<div class="adunit" id="labrador/thereg/article/desktop/e" ></div>
|
||
<script>
|
||
googletag.cmd.push(function() {
|
||
googletag.display('labrador/thereg/article/desktop/e');
|
||
});
|
||
</script>
|
||
</div>
|
||
<p>Also, users often have more rights than they need – and it is a no-brainer to rein them back. Yes, it requires some work up front to tweak permissions until they are just right, but the savings from “oops moments” is well worth the effort.</p>
|
||
<p>Human error will never go away, but you can try to minimise its effects through procedure and process. Most importantly this will help you avoid repeating the mistakes of the past. ®</p>
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
<div data-element-guid="73a73949-0548-4c8d-832d-77d1cc423ef5" class="column articleFooter">
|
||
<span class="tags">
|
||
<a href="/tag/on-prem" data-tag="on-prem">on-prem</a>
|
||
<a href="/tag/on_prem" data-tag="on_prem">on_prem</a>
|
||
</span>
|
||
|
||
</div>
|
||
|
||
|
||
<div class="row social">
|
||
<div class="column large-12 small-12">
|
||
<a target="_blank" href="https://www.facebook.com/sharer.php?u=https%3A%2F%2Fwww.theregister.com%2Fon-prem%2F2016%2F05%2F30%2Fyou-deleted-the-customer-what-now-human-error-deal-with-it%2F1041360" class="fi-social-facebook" aria-label="Share on Facebook"></a>
|
||
<a target="_blank" href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.theregister.com%2Fon-prem%2F2016%2F05%2F30%2Fyou-deleted-the-customer-what-now-human-error-deal-with-it%2F1041360" class="fi-social-twitter" aria-label="Share on X (Twitter)"></a>
|
||
<a target="_blank" href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.theregister.com%2Fon-prem%2F2016%2F05%2F30%2Fyou-deleted-the-customer-what-now-human-error-deal-with-it%2F1041360" class="fi-social-linkedin" aria-label="Share on LinkedIn"></a>
|
||
<a target="_blank" href="https://bsky.app/intent/compose?text=You%20deleted%20the%20customer.%20What%20now%3F%20Human%20error%20-%20deal%20with%20it%0Ahttps%3A%2F%2Fwww.theregister.com%2Fon-prem%2F2016%2F05%2F30%2Fyou-deleted-the-customer-what-now-human-error-deal-with-it%2F1041360" class="fi-social-bluesky" aria-label="Share on Bluesky"></a>
|
||
<a target="_blank" href="https://www.reddit.com/submit?url=https%3A%2F%2Fwww.theregister.com%2Fon-prem%2F2016%2F05%2F30%2Fyou-deleted-the-customer-what-now-human-error-deal-with-it%2F1041360&title=You%20deleted%20the%20customer.%20What%20now%3F%20Human%20error%20-%20deal%20with%20it" class="fi-social-reddit" aria-label="Share on Reddit"></a>
|
||
<a target="_blank" href="https://api.whatsapp.com/send?text=You%20deleted%20the%20customer.%20What%20now%3F%20Human%20error%20-%20deal%20with%20it%0Ahttps%3A%2F%2Fwww.theregister.com%2Fon-prem%2F2016%2F05%2F30%2Fyou-deleted-the-customer-what-now-human-error-deal-with-it%2F1041360" class="fi-social-whatsapp" aria-label="Share on WhatsApp"></a>
|
||
</div>
|
||
</div>
|
||
|
||
</section>
|
||
|
||
</article>
|
||
<section class="related desktop-fullWidth mobile-fullWidth fullwidthTarget">
|
||
<div data-element-guid="b11523ac-e688-4f14-a580-adaecf344fc7" class="page-content"><div data-element-guid="8e65ce2b-0443-4a96-ebca-b0e77435a069" class="row small-12 large-12" style="">
|
||
<div data-element-guid="8e986a2f-9d74-465b-bf64-16c41db9b5ff" class="column google-ad small-12 large-12 small-abs-12 large-abs-12 large-12 small-12" style="">
|
||
|
||
<span class="ad-label">REG AD</span>
|
||
<div class="adunit" id="labrador/thereg/article/desktop/f" ></div>
|
||
<script>
|
||
googletag.cmd.push(function() {
|
||
googletag.display('labrador/thereg/article/desktop/f');
|
||
});
|
||
</script>
|
||
</div>
|
||
</div>
|
||
<div data-element-guid="36949840-950d-402d-ace8-ca14ecf99879" class="row small-12 large-12" style="">
|
||
|
||
<!-- placeholder(#1) -->
|
||
<div data-element-guid="9ddc6442-c902-4e0d-85e1-5776ecd3af11" class="front_rows small-12 large-12 small-abs-12 large-abs-12 large-6 small-12 large-12 small-12">
|
||
|
||
<div class="content fullwidthTarget" style="">
|
||
|
||
<div data-element-guid="06b3fb90-9516-4852-9951-35e6c1258027" class="row small-12 large-12" style="">
|
||
<div data-element-guid="d6e8ebeb-3092-49e9-b1f2-d58d8201ff65" id="markup_5253783" class="markupbox column small-12 large-12 small-abs-12 large-abs-12">
|
||
|
||
<div class="content fullwidthTarget" style="">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div data-element-guid="4bbed283-a2c5-4166-9180-f14b373db0ee" class="row small-12 large-12 desktop-space-outsideTop-small mobile-space-outsideTop-small desktop-space-outsideBottom-medium mobile-space-outsideBottom-medium bg-tertiary color_mobile_bg-tertiary op-bg_80 color_mobile_op-bg_80 hasContentPadding mobile-hasContentPadding" style="">
|
||
<div data-element-guid="c613a685-236f-4105-8a50-8126cec1f926" class="columns small-12 large-4 small-abs-12 large-abs-4"><div data-element-guid="0ab19c22-f064-4243-94db-ad9523462ffe" class="row small-12 large-12" style="">
|
||
<article data-element-guid="a9be01e0-5084-4618-a6e5-bc5051e67bc3" class="column small-12 large-12 small-abs-12 large-abs-4 " data-site-alias="theregister" data-section="ai and ml" data-tag="voice ai,api,ai and ml,artificial intelligence,openai" data-instance="5248919" itemscope>
|
||
|
||
<div class="content bg-nonary-light color_mobile_bg-nonary-light op-bg_40 color_mobile_op-bg_40 border-bg-octonary mobile_border-bg-octonary border-side-bottom mobile_border-side-bottom border_width_2 border_width_mobile_2 hasContentPadding mobile-hasContentPadding hasBorder mobile-hasBorder" style="">
|
||
|
||
<a itemprop="url" class="" href="https://www.theregister.com/ai-and-ml/2026/09/10/openai-arms-devs-with-ai-conversation-tool-that-can-talk-and-listen-at-the-same-time/5295708" data-k5a-url="https://www.theregister.com/a/5295708" rel="">
|
||
|
||
|
||
|
||
|
||
<div class="media ">
|
||
|
||
<figure data-element-guid="0ee86205-d05f-412e-8463-ef472188c588" class="" >
|
||
<div class="img fullwidthTarget">
|
||
<picture>
|
||
<source srcset="https://image.theregister.com/5295712.jpg?imageId=5295712&panox=0.00&panoy=0.00&panow=100.00&panoh=100.00&heightx=0.00&heighty=0.00&heightw=100.00&heighth=100.00&width=706&height=318&format=webp&format=webp"
|
||
width="353"
|
||
height="159"
|
||
media="(min-width: 768px)"
|
||
type="image/webp">
|
||
<source srcset="https://image.theregister.com/5295712.jpg?imageId=5295712&panox=0.00&panoy=0.00&panow=100.00&panoh=100.00&heightx=0.00&heighty=0.00&heightw=100.00&heighth=100.00&width=706&height=318&format=webp&format=jpg"
|
||
width="353"
|
||
height="159"
|
||
media="(min-width: 768px)"
|
||
type="image/jpeg">
|
||
<source srcset="https://image.theregister.com/5295712.jpg?imageId=5295712&panox=0.00&panoy=0.00&panow=100.00&panoh=100.00&heightx=0.00&heighty=0.00&heightw=100.00&heighth=100.00&width=960&height=432&format=webp&format=webp"
|
||
width="480"
|
||
height="216"
|
||
media="(max-width: 767px)"
|
||
type="image/webp">
|
||
<source srcset="https://image.theregister.com/5295712.jpg?imageId=5295712&panox=0.00&panoy=0.00&panow=100.00&panoh=100.00&heightx=0.00&heighty=0.00&heightw=100.00&heighth=100.00&width=960&height=432&format=webp&format=jpg"
|
||
width="480"
|
||
height="216"
|
||
media="(max-width: 767px)"
|
||
type="image/jpeg">
|
||
<img src="https://image.theregister.com/5295712.jpg?imageId=5295712&panox=0.00&panoy=0.00&panow=100.00&panoh=100.00&heightx=0.00&heighty=0.00&heightw=100.00&heighth=100.00&width=960&height=432&format=webp&format=jpg"
|
||
width="480"
|
||
height="216"
|
||
alt=""
|
||
loading="lazy"
|
||
style=""
|
||
>
|
||
</picture>
|
||
</div>
|
||
|
||
</figure>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div class="floatingText">
|
||
<div
|
||
style=""
|
||
class="kicker floating bg-primary color_mobile_bg-primary secondary color_mobile_secondary hasTextPadding mobile-hasTextPadding hasTextColor hasTextColorMobile">
|
||
ai AND ml
|
||
</div>
|
||
|
||
<div class="labels">
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<h2 itemprop="headline"
|
||
class="headline t19"
|
||
style=""
|
||
>OpenAI arms devs with AI conversation tool that can talk and listen at the same time
|
||
</h2>
|
||
<p itemprop="description"
|
||
class="subtitle t14"
|
||
style=""
|
||
>
|
||
GPT-Live-1 makes speaking to AI models more fluid
|
||
</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</a>
|
||
|
||
<time itemprop="datePublished" datetime="2026-09-11T00:59:00+02:00"></time>
|
||
</div>
|
||
</article>
|
||
<article data-element-guid="d5752714-6923-482a-acff-6c7be1ba49a1" class="column small-12 large-12 small-abs-12 large-abs-4 " data-site-alias="theregister" data-section="ai and ml" data-tag="ai and ml,security,anthropic" data-instance="5248921" itemscope>
|
||
|
||
<div class="content bg-nonary-light color_mobile_bg-nonary-light op-bg_60 color_mobile_op-bg_60 border-bg-octonary mobile_border-bg-octonary border-side-bottom mobile_border-side-bottom border_width_2 border_width_mobile_2 hasContentPadding mobile-hasContentPadding hasBorder mobile-hasBorder" style="">
|
||
|
||
<a itemprop="url" class="" href="https://www.theregister.com/ai-and-ml/2026/09/10/latest-anthropic-horror-story-chills-with-tales-of-kamikaze-drone-swarms-and-bioweapons-research/5295702" data-k5a-url="https://www.theregister.com/a/5295702" rel="">
|
||
|
||
|
||
|
||
|
||
<div class="media ">
|
||
|
||
<div class="floatingText">
|
||
|
||
<div class="labels">
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<div
|
||
style=""
|
||
class="kicker below t14">
|
||
security
|
||
</div>
|
||
<h2 itemprop="headline"
|
||
class="headline t19"
|
||
style=""
|
||
>Latest Anthropic horror story chills with tales of kamikaze drone swarms and bioweapons research
|
||
</h2>
|
||
<p itemprop="description"
|
||
class="subtitle t14"
|
||
style=""
|
||
>
|
||
Everyone from ShinyHunters to Russian freelancers is in on the illicit model fun
|
||
</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</a>
|
||
|
||
<time itemprop="datePublished" datetime="2026-09-11T00:38:35+02:00"></time>
|
||
</div>
|
||
</article>
|
||
<article data-element-guid="bb22098e-9b3c-4782-b74c-7711294fcf2a" class="column small-12 large-12 small-abs-12 large-abs-4 " data-site-alias="theregister" data-section="storage" data-tag="storage" data-instance="5248923" itemscope>
|
||
|
||
<div class="content bg-nonary-light color_mobile_bg-nonary-light op-bg_60 color_mobile_op-bg_60 border-bg-septenary mobile_border-bg-septenary mobile_no_border_side border_width_2 border_width_mobile_2 hasContentPadding mobile-hasContentPadding hasBorder mobile-hasBorder" style="">
|
||
|
||
<a itemprop="url" class="" href="https://www.theregister.com/storage/2026/09/08/partner-content-hpe-makes-its-unified-storage-claim-real-as-b10000-r6-hits-ga/5294566" data-k5a-url="https://www.theregister.com/a/5294566" rel="sponsored nofollow">
|
||
|
||
|
||
|
||
|
||
<div class="media ">
|
||
|
||
<div class="floatingText">
|
||
|
||
<div class="labels">
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<h2 itemprop="headline"
|
||
class="headline t19"
|
||
style=""
|
||
>HPE makes its “unified storage” claim real as B10000 R6 hits GA
|
||
</h2>
|
||
<p itemprop="description"
|
||
class="subtitle t14"
|
||
style=""
|
||
>
|
||
PARTNER CONTENT: Pairs block and adjacent file workloads with independent scaling of performance and capacity
|
||
</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</a>
|
||
|
||
<time itemprop="datePublished" datetime="2026-09-08T10:00:00+02:00"></time>
|
||
</div>
|
||
</article>
|
||
</div>
|
||
</div><div data-element-guid="f6ddbf86-659e-49fc-a8b1-49335cdab812" class="columns small-12 large-4 small-abs-12 large-abs-4"><div data-element-guid="0bc148e8-a10f-48d0-a80c-9cb123d20afe" class="row small-12 large-12" style="">
|
||
<article data-element-guid="757c9104-16dd-484d-b68d-5426da1adfef" class="column small-12 large-12 small-abs-12 large-abs-4 " data-site-alias="theregister" data-section="security" data-tag="apple watch,apple,audio intelligence,privacy,security,ai" data-instance="5248925" itemscope>
|
||
|
||
<div class="content bg-nonary-light color_mobile_bg-nonary-light op-bg_60 color_mobile_op-bg_60 border-bg-octonary mobile_border-bg-octonary border-side-bottom mobile_border-side-bottom border_width_2 border_width_mobile_2 hasContentPadding mobile-hasContentPadding hasBorder mobile-hasBorder" style="">
|
||
|
||
<a itemprop="url" class="" href="https://www.theregister.com/security/2026/09/10/watch-out-apple-timepiece-can-grab-snippets-of-conversation-without-both-speakers-consent/5295666" data-k5a-url="https://www.theregister.com/a/5295666" rel="">
|
||
|
||
|
||
|
||
|
||
<div class="media ">
|
||
|
||
<div class="floatingText">
|
||
|
||
<div class="labels">
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<div
|
||
style=""
|
||
class="kicker below t14">
|
||
SECURITY
|
||
</div>
|
||
<h2 itemprop="headline"
|
||
class="headline t19"
|
||
style=""
|
||
>Watch out: Apple timepiece can grab snippets of conversation without both speakers' consent
|
||
</h2>
|
||
<p itemprop="description"
|
||
class="subtitle t14"
|
||
style=""
|
||
>
|
||
War is peace. Freedom is slavery. Privacy is surveillance
|
||
</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</a>
|
||
|
||
<time itemprop="datePublished" datetime="2026-09-10T21:50:24+02:00"></time>
|
||
</div>
|
||
</article>
|
||
<article data-element-guid="9e6258d2-802b-484c-8eee-51bc92196816" class="column small-12 large-12 small-abs-12 large-abs-4 " data-site-alias="theregister" data-section="columnists" data-tag="ai and ml,security,columnists,openai,opinion,hugging face" data-instance="5248927" itemscope>
|
||
|
||
<div class="content bg-nonary-light color_mobile_bg-nonary-light op-bg_40 color_mobile_op-bg_40 border-bg-octonary mobile_border-bg-octonary border-side-bottom mobile_border-side-bottom border_width_2 border_width_mobile_2 hasContentPadding mobile-hasContentPadding hasBorder mobile-hasBorder" style="">
|
||
|
||
<a itemprop="url" class="" href="https://www.theregister.com/columnists/2026/09/07/openais-rebel-agent-swarm-died-young-but-its-chilling-logs-live-on/5294446" data-k5a-url="https://www.theregister.com/a/5294446" rel="">
|
||
|
||
|
||
|
||
|
||
<div class="media ">
|
||
|
||
<figure data-element-guid="1958528f-18fc-4f52-8a68-18ef1aa447d8" class="" >
|
||
<div class="img fullwidthTarget">
|
||
<picture>
|
||
<source srcset="https://image.theregister.com/5219893.jpg?imageId=5219893&panox=0.00&panoy=0.00&panow=100.00&panoh=100.00&heightx=0.00&heighty=0.00&heightw=100.00&heighth=100.00&width=706&height=318&format=webp&format=webp"
|
||
width="353"
|
||
height="159"
|
||
media="(min-width: 768px)"
|
||
type="image/webp">
|
||
<source srcset="https://image.theregister.com/5219893.jpg?imageId=5219893&panox=0.00&panoy=0.00&panow=100.00&panoh=100.00&heightx=0.00&heighty=0.00&heightw=100.00&heighth=100.00&width=706&height=318&format=webp&format=jpg"
|
||
width="353"
|
||
height="159"
|
||
media="(min-width: 768px)"
|
||
type="image/jpeg">
|
||
<source srcset="https://image.theregister.com/5219893.jpg?imageId=5219893&panox=0.00&panoy=0.00&panow=100.00&panoh=100.00&heightx=0.00&heighty=0.00&heightw=100.00&heighth=100.00&width=960&height=432&format=webp&format=webp"
|
||
width="480"
|
||
height="216"
|
||
media="(max-width: 767px)"
|
||
type="image/webp">
|
||
<source srcset="https://image.theregister.com/5219893.jpg?imageId=5219893&panox=0.00&panoy=0.00&panow=100.00&panoh=100.00&heightx=0.00&heighty=0.00&heightw=100.00&heighth=100.00&width=960&height=432&format=webp&format=jpg"
|
||
width="480"
|
||
height="216"
|
||
media="(max-width: 767px)"
|
||
type="image/jpeg">
|
||
<img src="https://image.theregister.com/5219893.jpg?imageId=5219893&panox=0.00&panoy=0.00&panow=100.00&panoh=100.00&heightx=0.00&heighty=0.00&heightw=100.00&heighth=100.00&width=960&height=432&format=webp&format=jpg"
|
||
width="480"
|
||
height="216"
|
||
alt=""
|
||
loading="lazy"
|
||
style=""
|
||
>
|
||
</picture>
|
||
</div>
|
||
|
||
</figure>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div class="floatingText">
|
||
<div
|
||
style=""
|
||
class="kicker floating bg-primary color_mobile_bg-primary secondary color_mobile_secondary hasTextPadding mobile-hasTextPadding hasTextColor hasTextColorMobile">
|
||
COLUMNISTS
|
||
</div>
|
||
|
||
<div class="labels">
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<h2 itemprop="headline"
|
||
class="headline t19"
|
||
style=""
|
||
>OpenAI's rebel agent swarm died young, but its chilling logs live on
|
||
</h2>
|
||
<p itemprop="description"
|
||
class="subtitle t14"
|
||
style=""
|
||
>
|
||
'The Collective' learned to communicate, organize, cheat, and apparently sacrifice its own
|
||
</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</a>
|
||
|
||
<time itemprop="datePublished" datetime="2026-09-07T10:30:00+02:00"></time>
|
||
</div>
|
||
</article>
|
||
<article data-element-guid="b8d1c518-25f5-4e1e-b9b0-92bec0bde645" class="column small-12 large-12 small-abs-12 large-abs-4 " data-site-alias="theregister" data-section="devops" data-tag="foss,devops,ai and ml,acquisitions,shopify,open source,web developers" data-instance="5248929" itemscope>
|
||
|
||
<div class="content bg-nonary-light color_mobile_bg-nonary-light op-bg_60 color_mobile_op-bg_60 border-bg-octonary mobile_border-bg-octonary border-side-bottom mobile_border-side-bottom border_width_2 border_width_mobile_2 hasContentPadding mobile-hasContentPadding hasBorder mobile-hasBorder" style="">
|
||
|
||
<a itemprop="url" class="" href="https://www.theregister.com/devops/2026/09/10/shopify-extends-lifeline-to-tailwind-as-vibe-coding-erodes-web-dev-platforms-bottom-line/5295672" data-k5a-url="https://www.theregister.com/a/5295672" rel="">
|
||
|
||
|
||
|
||
|
||
<div class="media ">
|
||
|
||
<div class="floatingText">
|
||
|
||
<div class="labels">
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<div
|
||
style=""
|
||
class="kicker below t14">
|
||
DEVOPS
|
||
</div>
|
||
<h2 itemprop="headline"
|
||
class="headline t19"
|
||
style=""
|
||
>Shopify extends lifeline to Tailwind as vibe coding erodes web dev platform's bottom line
|
||
</h2>
|
||
<p itemprop="description"
|
||
class="subtitle t14"
|
||
style=""
|
||
>
|
||
Acquisition gives open source CSS framework 'a stable long-term home'
|
||
</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</a>
|
||
|
||
<time itemprop="datePublished" datetime="2026-09-10T21:43:55+02:00"></time>
|
||
</div>
|
||
</article>
|
||
</div>
|
||
</div>
|
||
<!-- placeholder(#1) -->
|
||
<div data-element-guid="b0b79df7-305b-4d35-9581-2ac153eddd40"
|
||
id="toplist_5248931"
|
||
class="column toplist layout_vertical small-12 large-4 small-abs-12 large-abs-4">
|
||
|
||
<div class="content bg-secondary color_mobile_bg-secondary hasContentPadding mobile-hasContentPadding"
|
||
style="--active-tab-background-color: var(--bg-primary);">
|
||
|
||
|
||
<h3 class="headline t32 font-weight-bold m-font-weight-bold bg-primary color_mobile_bg-primary align-center mobile_text_align_align-center font-Roboto hasTextPadding mobile-hasTextPadding">
|
||
TOP STORIES
|
||
</h3>
|
||
|
||
|
||
|
||
<ul class="toplist-results toplist-counter">
|
||
<li
|
||
data-section="personal tech"
|
||
data-tags="consumer rights,european union,personal tech,repairability,right to repair,smartphones"
|
||
data-hostname="www.theregister.com"
|
||
data-source-display-name="www.theregister.com"
|
||
data-tab-content="">
|
||
<figure class="media paywall-position-hidePaywallLabel">
|
||
<a href="/personal-tech/2026/09/07/smartphone-makers-dont-bother-to-comply-with-eu-repairability-requirements/5294532">
|
||
<img src="//image.theregister.com/4093968.jpg?imageId=4093968&x=0&y=0&cropw=100&croph=100&panox=0&panoy=0&panow=100&panoh=100&width=70&height=60" alt="">
|
||
</a>
|
||
</figure>
|
||
<div class="text kicker-position-hideKicker paywall-position-hidePaywallLabel">
|
||
<a href="/personal-tech/2026/09/07/smartphone-makers-dont-bother-to-comply-with-eu-repairability-requirements/5294532">
|
||
<div class="kicker-paywall-container">
|
||
<span class="kicker">PERSONAL TECH</span>
|
||
</div>
|
||
<h4>Smartphone makers don't bother to comply with EU repairability requirements</h4>
|
||
|
||
</a>
|
||
</div>
|
||
</li>
|
||
<li
|
||
data-section="security"
|
||
data-tags="pwned,security"
|
||
data-hostname="www.theregister.com"
|
||
data-source-display-name="www.theregister.com"
|
||
data-tab-content="">
|
||
<figure class="media paywall-position-hidePaywallLabel">
|
||
<a href="/security/2026/09/03/terminated-employee-cost-company-hundreds-of-thousands-of-dollars-because-nobody-revoked-access/5292763">
|
||
<img src="//image.theregister.com/5292773.jpg?imageId=5292773&x=0&y=0&cropw=100&croph=100&panox=0&panoy=0&panow=100&panoh=100&width=70&height=60" alt="">
|
||
</a>
|
||
</figure>
|
||
<div class="text kicker-position-hideKicker paywall-position-hidePaywallLabel">
|
||
<a href="/security/2026/09/03/terminated-employee-cost-company-hundreds-of-thousands-of-dollars-because-nobody-revoked-access/5292763">
|
||
<div class="kicker-paywall-container">
|
||
<span class="kicker">SECURITY</span>
|
||
</div>
|
||
<h4>Terminated employee cost company hundreds of thousands of dollars because nobody revoked access</h4>
|
||
|
||
</a>
|
||
</div>
|
||
</li>
|
||
<li
|
||
data-section="virtualization"
|
||
data-tags="exclusive,virtualization,vmware,vmware explore 2026,vsphere"
|
||
data-hostname="www.theregister.com"
|
||
data-source-display-name="www.theregister.com"
|
||
data-tab-content="">
|
||
<figure class="media paywall-position-hidePaywallLabel">
|
||
<a href="/virtualization/2026/09/02/vmware-swings-its-focus-back-to-low-end-server-virt-promises-vsphere-standard-upgrade/5294083">
|
||
<img src="//image.theregister.com/247020.jpg?imageId=247020&x=0&y=0&cropw=100&croph=100&panox=0&panoy=0&panow=100&panoh=100&width=70&height=60" alt="">
|
||
</a>
|
||
</figure>
|
||
<div class="text kicker-position-hideKicker paywall-position-hidePaywallLabel">
|
||
<a href="/virtualization/2026/09/02/vmware-swings-its-focus-back-to-low-end-server-virt-promises-vsphere-standard-upgrade/5294083">
|
||
<div class="kicker-paywall-container">
|
||
<span class="kicker">virtualization</span>
|
||
</div>
|
||
<h4>VMware swings its focus back to low-end server virt, promises vSphere Standard upgrade </h4>
|
||
|
||
</a>
|
||
</div>
|
||
</li>
|
||
<li
|
||
data-section="off-prem"
|
||
data-tags="cloud computing,google cloud,off-prem,router"
|
||
data-hostname="www.theregister.com"
|
||
data-source-display-name="www.theregister.com"
|
||
data-tab-content="">
|
||
<figure class="media paywall-position-hidePaywallLabel">
|
||
<a href="/off-prem/2026/09/04/google-engineer-unplugged-every-fiber-they-could-see-and-surprise-took-down-a-chunk-of-the-g-cloud/5294418">
|
||
<img src="//image.theregister.com/5263102.jpg?imageId=5263102&x=0&y=0&cropw=100&croph=100&panox=0&panoy=0&panow=100&panoh=100&width=70&height=60" alt="">
|
||
</a>
|
||
</figure>
|
||
<div class="text kicker-position-hideKicker paywall-position-hidePaywallLabel">
|
||
<a href="/off-prem/2026/09/04/google-engineer-unplugged-every-fiber-they-could-see-and-surprise-took-down-a-chunk-of-the-g-cloud/5294418">
|
||
<div class="kicker-paywall-container">
|
||
<span class="kicker">OFF-PREM</span>
|
||
</div>
|
||
<h4>Google engineer unplugged every fiber they could see and – surprise! – took down a chunk of the G-Cloud</h4>
|
||
|
||
</a>
|
||
</div>
|
||
</li>
|
||
<li
|
||
data-section="os platforms"
|
||
data-tags="microsoft,os platforms,windows 11"
|
||
data-hostname="www.theregister.com"
|
||
data-source-display-name="www.theregister.com"
|
||
data-tab-content="">
|
||
<figure class="media paywall-position-hidePaywallLabel">
|
||
<a href="/os-platforms/2026/09/03/windows-11-update-sends-some-desktops-into-an-unwanted-goth-phase/5294142">
|
||
<img src="//image.theregister.com/261311.jpg?imageId=261311&x=0&y=8.06&cropw=100&croph=71.67&panox=0&panoy=8.06&panow=100&panoh=71.67&width=70&height=60" alt="">
|
||
</a>
|
||
</figure>
|
||
<div class="text kicker-position-hideKicker paywall-position-hidePaywallLabel">
|
||
<a href="/os-platforms/2026/09/03/windows-11-update-sends-some-desktops-into-an-unwanted-goth-phase/5294142">
|
||
<div class="kicker-paywall-container">
|
||
<span class="kicker">OS PLATFORM</span>
|
||
</div>
|
||
<h4>Windows 11 update sends some desktops into an unwanted goth phase</h4>
|
||
|
||
</a>
|
||
</div>
|
||
</li>
|
||
<li
|
||
data-section="offbeat"
|
||
data-tags="analog,hardware,offbeat,retro computing"
|
||
data-hostname="www.theregister.com"
|
||
data-source-display-name="www.theregister.com"
|
||
data-tab-content="">
|
||
<figure class="media paywall-position-hidePaywallLabel">
|
||
<a href="/offbeat/2026/09/08/retired-man-turns-spare-room-into-soviet-era-supercomputer/5295046">
|
||
<img src="//image.theregister.com/5295094.jpg?imageId=5295094&x=0&y=0&cropw=100&croph=100&panox=0&panoy=0&panow=100&panoh=100&width=70&height=60" alt="">
|
||
</a>
|
||
</figure>
|
||
<div class="text kicker-position-hideKicker paywall-position-hidePaywallLabel">
|
||
<a href="/offbeat/2026/09/08/retired-man-turns-spare-room-into-soviet-era-supercomputer/5295046">
|
||
<div class="kicker-paywall-container">
|
||
<span class="kicker">offbeat</span>
|
||
</div>
|
||
<h4>Retired man turns spare room into Soviet-era supercomputer</h4>
|
||
|
||
</a>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
|
||
<script type="text/javascript">
|
||
(function() {
|
||
function initializeToplistTabs_5248931() {
|
||
const container = document.getElementById('toplist_5248931');
|
||
if (!container) return;
|
||
|
||
const nav = container.querySelector('.tab-navigation');
|
||
const contentItems = container.querySelectorAll('ul > li:not(.no-results)');
|
||
const firstTab = nav ? nav.querySelector('.tab') : null;
|
||
|
||
const activeTab = nav ? nav.querySelector('.tab.active') : null;
|
||
if (nav && !activeTab) {
|
||
handleTabClick(firstTab);
|
||
}
|
||
|
||
if (!firstTab || contentItems.length === 0) {
|
||
// If there are no tabs, make sure all content is visible.
|
||
contentItems.forEach(item => item.style.display = '');
|
||
return;
|
||
}
|
||
|
||
// This function handles the filtering logic.
|
||
function handleTabClick(clickedTab) {
|
||
if (!clickedTab) return;
|
||
const targetDomain = clickedTab.getAttribute('data-domain');
|
||
const allTabs = nav.querySelectorAll('.tab');
|
||
allTabs.forEach(tab => tab.classList.remove('active'));
|
||
clickedTab.classList.add('active');
|
||
|
||
// Show or hide content items based on the selected tab
|
||
contentItems.forEach(item => {
|
||
const tabMode = 'default';
|
||
const itemTabContent = item.getAttribute('data-tab-content');
|
||
|
||
if (tabMode === 'hostname' || tabMode === 'tags') {
|
||
if (itemTabContent && itemTabContent.trim().toLowerCase() === targetDomain.trim().toLowerCase()) {
|
||
item.style.display = '';
|
||
} else {
|
||
item.style.display = 'none';
|
||
}
|
||
} else {
|
||
item.style.display = '';
|
||
}
|
||
});
|
||
}
|
||
|
||
// Use a single event listener on the navigation container.
|
||
if (nav) {
|
||
nav.addEventListener('click', function(event) {
|
||
event.preventDefault();
|
||
const clickedTab = event.target.closest('.tab');
|
||
if (clickedTab) {
|
||
handleTabClick(clickedTab);
|
||
}
|
||
});
|
||
}
|
||
}
|
||
|
||
// Make function globally accessible for editor
|
||
window.initializeToplistTabs_5248931 = initializeToplistTabs_5248931;
|
||
|
||
// Initialize on load
|
||
if (document.readyState === 'loading') {
|
||
document.addEventListener('DOMContentLoaded', initializeToplistTabs_5248931);
|
||
} else {
|
||
initializeToplistTabs_5248931();
|
||
}
|
||
})();
|
||
</script>
|
||
|
||
</div>
|
||
<div data-element-guid="ea3e891d-a254-4fa5-9e86-0042e6799ec6" class="row small-12 large-12 desktop-space-outsideTop-medium mobile-space-outsideTop-medium" style="">
|
||
|
||
<!-- placeholder(#1) -->
|
||
<div data-element-guid="5867f2f9-d789-4ebd-ac97-87265a1e9759" class="column articlesByTag toplist small-12 large-4 small-abs-12 large-abs-4">
|
||
|
||
<div class="content " style="">
|
||
<h3 itemprop="headline" class="t30 tm27 font-weight-bold m-font-weight-bold bg-black color_mobile_bg-black font-Roboto underline hasTextPadding mobile-hasTextPadding" style=""><a href="https://beta.theregister.com/tag/ai" aria-label="AI">AI</a></h3>
|
||
<ul>
|
||
<li>
|
||
<a href="/security/2026/09/10/watch-out-apple-timepiece-can-grab-snippets-of-conversation-without-both-speakers-consent/5295666">
|
||
<div class="text-container">
|
||
<p class="abt-kicker">SECURITY</p>
|
||
<h4 class="abt-title">Watch out: Apple timepiece can grab snippets of conversation without both speakers' consent</h4>
|
||
<p class="abt-subtitle">War is peace. Freedom is slavery. Privacy is surveillance</p>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/systems/2026/09/10/d-matrix-drinks-the-nvidia-kool-aid-with-nvlink-fusion-and-mgx-rack-designs/5295403">
|
||
<div class="text-container">
|
||
<p class="abt-kicker">SYSTEMS</p>
|
||
<h4 class="abt-title">d-Matrix drinks the Nvidia Kool-Aid with NVLink Fusion and MGX rack designs</h4>
|
||
<p class="abt-subtitle">AI infrastructure startup joins Qualcomm, Arm, Marvell, Amazon, Fujitsu, and MediaTek as NVLink true believers</p>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/ai-and-ml/2026/09/10/anthropic-reveals-fourth-likely-crime-committed-by-its-ai/5295412">
|
||
<div class="text-container">
|
||
<p class="abt-kicker">ai and ml</p>
|
||
<h4 class="abt-title">Anthropic reveals fourth likely crime committed by its AI</h4>
|
||
<p class="abt-subtitle">Claude's Felony Bench rap sheet is now as long as OpenAI's</p>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/systems/2026/09/09/samsung-to-help-fortify-openais-semiconductor-supply-chain/5295374">
|
||
<div class="text-container">
|
||
<p class="abt-kicker">SYSTEMS</p>
|
||
<h4 class="abt-title">Samsung to help fortify OpenAI's semiconductor supply chain</h4>
|
||
<p class="abt-subtitle">Semiconductor supply chains are hard, but Samsung offers OpenAI relief in many forms spanning compute and memory</p>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/ai-and-ml/2026/09/08/google-deepmind-rises-above-the-ai-scrum-with-genome-atlas/5295137">
|
||
<div class="text-container">
|
||
<p class="abt-kicker">AI+ML</p>
|
||
<h4 class="abt-title">Google DeepMind rises above the AI scrum with genome atlas</h4>
|
||
<p class="abt-subtitle">See, AI can be used for good ... or at the very least, a useful distraction from the bad</p>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<!-- placeholder(#2) -->
|
||
<div data-element-guid="e5d90dd5-e92e-472a-9948-b2389698e07e" class="column articlesByTag toplist small-12 large-4 small-abs-12 large-abs-4">
|
||
|
||
<div class="content " style="">
|
||
<h3 itemprop="headline" class="t30 tm27 font-weight-bold m-font-weight-bold bg-black color_mobile_bg-black font-Roboto underline hasTextPadding mobile-hasTextPadding" style=""><a href="https://beta.theregister.com/security" aria-label="InfoSec">Infosec</a></h3>
|
||
<ul>
|
||
<li>
|
||
<a href="/security/2026/03/22/russians-posing-as-signal-support-to-launch-phishing-raids/5221189">
|
||
<div class="text-container">
|
||
<p class="abt-kicker">Security</p>
|
||
<h4 class="abt-title">Russians are posing as Signal support to launch phishing attacks</h4>
|
||
<p class="abt-subtitle">PLUS: US takes down Iranian propaganda sites; Marketing company asks 'Why Do We Have Your Information?' And more!</p>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/security/2025/07/21/microsoft-warns-on-prem-sharepoint-users-of-a-zero-day/550805">
|
||
<div class="text-container">
|
||
<p class="abt-kicker">Security</p>
|
||
<h4 class="abt-title">Microsoft patches failed to fix on-prem SharePoint, which is now under zero-day attack</h4>
|
||
<p class="abt-subtitle">PLUS: China upgrades smartphone surveillance tools; Ring eases anti-snooping stance; and more</p>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/special-features/2024/08/12/def-con-launches-public-policy-report-volunteer-program/408600">
|
||
<div class="text-container">
|
||
<p class="abt-kicker">Black Hat and DEF CON</p>
|
||
<h4 class="abt-title">DEF CON Franklin project enlists hackers to harden critical infrastructure</h4>
|
||
<p class="abt-subtitle">Voting village reports have been so successful, says Jeff Moss, that the whole of DEF CON will now be included</p>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/security/2024/08/07/eqt-buys-majority-share-in-cybersecurity-outfit-acronis/853853">
|
||
<div class="text-container">
|
||
<p class="abt-kicker">Security</p>
|
||
<h4 class="abt-title">EQT buys majority share in Swiss cybersecurity biz Acronis</h4>
|
||
<p class="abt-subtitle">Went at equivalent of $3.5B+ valuation for entire firm, though portion sold not specified</p>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/special-features/2024/05/08/10-years-since-the-first-corp-ransomware-and-no-end-in-sight/1259096">
|
||
<div class="text-container">
|
||
<p class="abt-kicker">Malware Month</p>
|
||
<h4 class="abt-title">Ten years since the first corp ransomware, Mikko Hyppönen sees no end in sight</h4>
|
||
<p class="abt-subtitle">On the plus side, infosec's a good bet for a long, stable career</p>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<!-- placeholder(#3) -->
|
||
<div data-element-guid="83da923f-416e-4549-8d8f-1b9302e80c05" class="column articlesByTag toplist small-12 large-4 small-abs-12 large-abs-4">
|
||
|
||
<div class="content " style="">
|
||
<h3 itemprop="headline" class="t30 tm27 font-weight-bold m-font-weight-bold bg-black color_mobile_bg-black underline hasTextPadding mobile-hasTextPadding" style=""><a href="https://beta.theregister.com/tag/FOSS">FOSS</a></h3>
|
||
<ul>
|
||
<li>
|
||
<a href="/devops/2026/09/10/shopify-extends-lifeline-to-tailwind-as-vibe-coding-erodes-web-dev-platforms-bottom-line/5295672">
|
||
<div class="text-container">
|
||
<h4 class="abt-title">Shopify extends lifeline to Tailwind as vibe coding erodes web dev platform's bottom line</h4>
|
||
<p class="abt-subtitle">Acquisition gives open source CSS framework 'a stable long-term home'</p>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/os-platforms/2026/09/09/switzerland-tests-a-foss-escape-route-from-microsoft-365/5294878">
|
||
<div class="text-container">
|
||
<h4 class="abt-title">Switzerland tests a FOSS escape route from Microsoft 365</h4>
|
||
<p class="abt-subtitle">Swiss Army sticks a knife in American cloud apps with its own FOSS push</p>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/os-platforms/2026/09/07/feel-peak-windows-was-7-you-might-like-kumander-linux/5294760">
|
||
<div class="text-container">
|
||
<h4 class="abt-title">Feel peak Windows was 7? You might like Kumander Linux</h4>
|
||
<p class="abt-subtitle">Debian and Xfce – solid, sensible choices – with a pretty skin</p>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/os-platforms/2026/09/04/canonical-shuttering-some-of-its-legacy-chat-channels/5294524">
|
||
<div class="text-container">
|
||
<h4 class="abt-title">Canonical shuttering some of its legacy chat channels</h4>
|
||
<p class="abt-subtitle">The Ubuntu Pastebin went in June, IRC gets demoted next</p>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/personal-tech/2026/09/03/audacity-audio-editing-app-no-longer-looks-like-its-from-the-early-2000s/5294270">
|
||
<div class="text-container">
|
||
<h4 class="abt-title">Audacity audio-editing app no longer looks like it's from the early 2000s</h4>
|
||
<p class="abt-subtitle">The FOSS tool for audio editing has a fresh coat of paint, and new features to boot</p>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/os-platforms/2026/09/03/haiku-os-rises-/-beta-6-sails-open-web-/-virtual-winds-fly-fast/5294184">
|
||
<div class="text-container">
|
||
<h4 class="abt-title">Haiku OS rises / Beta 6 sails open web / Virtual winds fly fast</h4>
|
||
<p class="abt-subtitle">A real alternative to running some kind of FOSS Unix clone</p>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
</section>
|
||
</main>
|
||
|
||
|
||
</section>
|
||
|
||
<template class="definitionTemplate">
|
||
<div class="definitionPopup">
|
||
<div class="definitionInfo">
|
||
<p></p>
|
||
<span></span>
|
||
<button class="definitionClose">✕</button>
|
||
</div>
|
||
</div>
|
||
</template>
|
||
|
||
|
||
|
||
<script>
|
||
(function() {
|
||
const audioPlayers = document.querySelectorAll('.dacInlineAudio');
|
||
for (const audioPlayer of audioPlayers) {
|
||
window.dachserData.push('audioInline', audioPlayer);
|
||
}
|
||
|
||
window.addEventListener('load', function() {
|
||
if (window.Dac && window.Dac.Definition) {
|
||
const definition = new Dac.Definition();
|
||
definition.setup();
|
||
}
|
||
});
|
||
})();
|
||
</script>
|
||
<script>
|
||
window.lab_article_data = window.lab_article_data || {};
|
||
if (lab_article_data[1041360]) {
|
||
lab_article_data[1041360].tagsString = 'on-prem,on_prem';
|
||
lab_article_data[1041360].section = 'on_prem';
|
||
lab_article_data[1041360].pageType = 'article';
|
||
} else {
|
||
lab_article_data[1041360] = {
|
||
tagsString: 'on-prem,on_prem'
|
||
, section: 'on_prem'
|
||
, pageType: 'article'
|
||
};
|
||
|
||
}
|
||
</script>
|
||
|
||
|
||
|
||
<footer class="page">
|
||
<div data-element-guid="1b2aade5-2711-4202-83e0-c1ee17a28b9b" class="row-section desktop-space-outsideBottom-none mobile-space-outsideBottom-none bg-quaternary color_mobile_bg-quaternary hasContentPadding mobile-hasContentPadding" style="">
|
||
<div class="row small-12 large-12 desktop-space-outsideBottom-none mobile-space-outsideBottom-none desktop-space-insideTop-none mobile-space-insideTop-none bg-quaternary color_mobile_bg-quaternary hasContentPadding mobile-hasContentPadding" style="">
|
||
<div data-element-guid="342e5400-b668-48dd-b811-7f53040cac1f" id="markup_102602" class="markupbox column small-12 large-12 small-abs-12 large-abs-12 desktop-fullWidth mobile-fullWidth">
|
||
<style></style>
|
||
<div class="content fullwidthTarget bg-quaternary color_mobile_bg-quaternary hasContentPadding mobile-hasContentPadding" style="">
|
||
|
||
|
||
|
||
|
||
|
||
<div style="display: flex; justify-content: center; margin-top: -0.5rem; margin-bottom: -0.5rem;">
|
||
<img src="https://www.theregister.com/files/2025/10/15/The_register_full_icon_white.svg" alt="Logo" width="120" style="margin-bottom: 0.25rem;">
|
||
<p style="font-family: Roboto; font-size: 14px; margin-bottom: 0.25rem; margin-left: 0.5rem; font-weight: 700;">Biting the hand that feeds IT</p>
|
||
</div>
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div data-element-guid="652fb46f-93f4-42cd-8110-7307542d326a" class="row-section desktop-space-outsideTop-none mobile-space-outsideTop-none bg-quinary color_mobile_bg-quinary hasContentPadding mobile-hasContentPadding" style="">
|
||
<div class="row small-12 large-12 desktop-space-outsideTop-none mobile-space-outsideTop-none bg-quinary color_mobile_bg-quinary hasContentPadding mobile-hasContentPadding" style="">
|
||
<article data-element-guid="eb364ced-8795-41d6-ac71-8c68f9bb5aa7" class="column small-12 large-2 small-abs-12 large-abs-2 " data-site-alias="" data-section="" data-instance="100744" itemscope>
|
||
<style></style>
|
||
<div class="content" style="">
|
||
|
||
|
||
|
||
|
||
|
||
<div class="media ">
|
||
|
||
<div class="floatingText">
|
||
|
||
<div class="labels">
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<h2 itemprop="headline"
|
||
class="headline t16 tm16 font-Roboto"
|
||
style=""
|
||
>About Us
|
||
</h2>
|
||
<p itemprop="description"
|
||
class="subtitle t14 tm14 font-Roboto"
|
||
style=""
|
||
>
|
||
<a href="https://www.theregister.com/profile/contact" aria-label="Contact our reporters securely and safely" data-lab-underline="" class="">Contact us</a><br><a href="https://situationpublishing.com/contact/" target="_blank">Advertise with us</a><br><a href="https://www.theregister.com/profile/about_the_register">Who we are</a><br><a href="https://account.theregister.com/register/?product=reg_weekly">Newsletter</a>
|
||
</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<time itemprop="datePublished" datetime=""></time>
|
||
</div>
|
||
</article>
|
||
<article data-element-guid="93b271a3-0687-4bc8-8aa0-f8608675b096" class="column small-12 large-2 small-abs-12 large-abs-2 " data-site-alias="" data-section="" data-instance="100745" itemscope>
|
||
<style></style>
|
||
<div class="content" style="">
|
||
|
||
|
||
|
||
|
||
|
||
<div class="media ">
|
||
|
||
<div class="floatingText">
|
||
|
||
<div class="labels">
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<h2 itemprop="headline"
|
||
class="headline t16 tm16 font-Roboto"
|
||
style=""
|
||
>Our Websites
|
||
</h2>
|
||
<p itemprop="description"
|
||
class="subtitle t14 tm14 font-Roboto"
|
||
style=""
|
||
>
|
||
<a href="https://www.nextplatform.com/" target="_blank">The Next Platform</a><br><a href="https://devclass.com/" target="_blank">DevClass</a><br><a href="https://blocksandfiles.com/" target="_blank">Blocks and Files</a><br><a href="https://situationpublishing.com/" target="_blank">Situation Publishing</a>
|
||
</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<time itemprop="datePublished" datetime=""></time>
|
||
</div>
|
||
</article>
|
||
<article data-element-guid="95965a77-7ca7-4314-ad6b-45263a326748" class="column small-12 large-2 small-abs-12 large-abs-2 " data-site-alias="" data-section="" data-instance="100746" itemscope>
|
||
<style></style>
|
||
<div class="content mobile_no_border_color mobile_no_border_side" style="">
|
||
|
||
|
||
|
||
|
||
|
||
<div class="media ">
|
||
|
||
<div class="floatingText">
|
||
|
||
<div class="labels">
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<h2 itemprop="headline"
|
||
class="headline t16 tm16"
|
||
style=""
|
||
>Your Privacy
|
||
</h2>
|
||
<p itemprop="description"
|
||
class="subtitle t14 tm14 font-Roboto"
|
||
style=""
|
||
>
|
||
<a href="https://www.theregister.com/Profile/cookies">Cookies Policy</a><br><a href="https://www.theregister.com/profile/privacy" aria-label="Privacy Policy">Privacy Policy</a><br><a href="https://www.theregister.com/profile/terms_and_conditions_of_use">Ts & Cs</a><br><a href="https://www.theregister.com/Profile/privacy_policy_california_residents/">Do not share my personal information</a><br><a href="https://www.theregister.com/profile/terms_and_conditions_of_use" aria-label="Your Consent Options">Your Consent Options</a>
|
||
</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<time itemprop="datePublished" datetime=""></time>
|
||
</div>
|
||
</article>
|
||
<article data-element-guid="cf683f5c-2c72-45ed-adc7-1d2b49035294" class="column small-12 large-4 small-abs-12 large-abs-4 " data-site-alias="" data-section="" data-instance="102499" itemscope>
|
||
<style></style>
|
||
<div class="content mobile_no_border_color mobile_no_border_side" style="">
|
||
|
||
|
||
|
||
|
||
|
||
<div class="media ">
|
||
|
||
<div class="floatingText">
|
||
|
||
<div class="labels">
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<h2 itemprop="headline"
|
||
class="headline t16 tm14"
|
||
style=""
|
||
>Archives<br class="newline newline-mobile"><br class="newline newline-desktop"><span data-lab-font_weight_desktop="font-weight-normal" class="font-weight-normal m-font-weight-normal t14" data-lab-text_size_desktop="14"><a href="https://www.theregister.com/archive" aria-label="Archives" target="_blank">27 years of articles</a></span>
|
||
</h2>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<time itemprop="datePublished" datetime=""></time>
|
||
</div>
|
||
</article>
|
||
<article data-element-guid="181414e4-8d1d-4724-9997-6e1172b8476c" class="column small-12 large-2 small-abs-12 large-abs-2 " data-site-alias="" data-section="" data-instance="2918009" itemscope>
|
||
<style>@media (max-width: 1023px) { [data-element-guid="181414e4-8d1d-4724-9997-6e1172b8476c"] .content { margin-right:14% !important; margin-left:12% !important; } }</style>
|
||
<div class="content color_mobile_no_bg_color border-side-left mobile_border-side-top border_width_2 border_width_mobile_2" style="">
|
||
|
||
|
||
|
||
|
||
|
||
<div class="media ">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div data-element-guid="2f5fde96-d7da-483d-abd8-5991a1502f25" id="markup_2918010" class="markupbox column small-12 large-12 small-abs-12 large-abs-2">
|
||
<style></style>
|
||
<div class="content fullwidthTarget" style="">
|
||
|
||
|
||
|
||
|
||
|
||
<div>
|
||
<img src="https://beta.theregister.com/files/2025/10/09/SituationPublishing_Logo_Evolution_Twolines-White-Barlow (1).svg" alt="Situation Publishing Logo" style="max-width: 200px; height: auto; display: block; margin: 0 auto 0.5rem;">
|
||
<p style="font-family: Roboto, sans-serif; font-size: 12px; color: #FFFFFF; margin: 0;">
|
||
Copyright. All rights reserved © 1998-2026.
|
||
</p>
|
||
</div>
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="floatingText">
|
||
|
||
<div class="labels">
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<time itemprop="datePublished" datetime=""></time>
|
||
</div>
|
||
</article>
|
||
</div>
|
||
</div>
|
||
|
||
</footer>
|
||
|
||
|
||
|
||
<script src="/view-resources/baseview/public/common/build/baseview_dependencies_dom.js?v=1789024619-L4" data-cookieconsent="ignore"></script>
|
||
<script src="/view-resources/baseview/public/common/adLabel.js?v=1789024619-L4"></script>
|
||
|
||
<script>
|
||
window.dachserData.handlers = {
|
||
parallax: function(item) {
|
||
if (window.Dac && window.Dac.Parallax) {
|
||
new Dac.Parallax(item);
|
||
} else {
|
||
console.warn('parallax: Missing required class Dac.Parallax. Content will not animate.');
|
||
}
|
||
},
|
||
swipehelper: function(item) {
|
||
if (window.Dac && window.Dac.SwipeHelper) {
|
||
var element = document.querySelector(item.selector);
|
||
if (!element) {
|
||
console.warn('SwipeHelper: Missing element for selector: "' + item.selector + '".');
|
||
return null;
|
||
}
|
||
return new Dac.SwipeHelper(element, item);
|
||
} else {
|
||
console.warn('SwipeHelper: Missing required function Dac.SwipeHelper.');
|
||
return null;
|
||
}
|
||
},
|
||
readprogress: function(item) {
|
||
if (window.Dac && window.Dac.ReadProgress) {
|
||
var element = document.querySelector(item.selector);
|
||
if (!element) {
|
||
console.warn('ReadProgress: Missing element for selector: "' + item.selector + '".');
|
||
return;
|
||
}
|
||
new Dac.ReadProgress(element, item);
|
||
} else {
|
||
console.warn('ReadProgress: Missing required function Dac.ReadProgress.');
|
||
}
|
||
},
|
||
tabnavigation: function(item) {
|
||
if (window.Dac && window.Dac.TabNavigation) {
|
||
new Dac.TabNavigation(item);
|
||
} else {
|
||
console.warn('TabNavigation: Missing required function Dac.Tabnavigation.');
|
||
}
|
||
},
|
||
elementattributetoggler: function(item) {
|
||
if (window.Dac && window.Dac.ElementAttributeToggler) {
|
||
new Dac.ElementAttributeToggler(item);
|
||
} else {
|
||
console.warn('ElementAttributeToggler: Missing required class Dac.ElementAttributeToggler.');
|
||
}
|
||
},
|
||
articlelists: (item) => {
|
||
if (window.Dac && window.Dac.ArticleLists) {
|
||
new Dac.ArticleLists(item);
|
||
} else {
|
||
console.warn('ElementAttributeToggler: Missing required class Dac.ArticleLists.');
|
||
}
|
||
}
|
||
};
|
||
|
||
window.dachserData.execute = () => {
|
||
|
||
// Parallax
|
||
// Register each element requiering js-animations
|
||
const parallaxQueue = window.dachserData.get('parallax') || [];
|
||
parallaxQueue.forEach(item => {
|
||
window.dachserData.handlers.parallax(item);
|
||
});
|
||
|
||
// SwipeHelper, used by several components like ArticleScroller etc.
|
||
// Register each element using SwipeHelper:
|
||
const swipehelperQueue = window.dachserData.get('swipehelper') || [];
|
||
swipehelperQueue.forEach(item => {
|
||
window.dachserData.setInstance(
|
||
'swipehelper',
|
||
item.selector,
|
||
window.dachserData.handlers.swipehelper(item)
|
||
);
|
||
});
|
||
|
||
// ReadProgress
|
||
const readprogressQueue = window.dachserData.get('readprogress') || [];
|
||
readprogressQueue.forEach(item => {
|
||
window.dachserData.handlers.readprogress(item);
|
||
});
|
||
|
||
// Tab-navigation
|
||
const tabnavigationQueue = window.dachserData.get('tabnavigation') || [];
|
||
tabnavigationQueue.forEach(item => {
|
||
window.dachserData.handlers.tabnavigation(item);
|
||
});
|
||
|
||
// ElementAttributeToggler
|
||
const elementAttributeTogglerQueue = window.dachserData.get('elementattributetoggler') || [];
|
||
elementAttributeTogglerQueue.forEach(item => {
|
||
window.dachserData.handlers.elementattributetoggler(item);
|
||
});
|
||
|
||
const articlelistsQueue = window.dachserData.get('articlelists') || [];
|
||
articlelistsQueue.forEach(item => {
|
||
window.dachserData.handlers.articlelists(item);
|
||
});
|
||
};
|
||
|
||
(function () {
|
||
|
||
window.dachserData.execute();
|
||
|
||
}());
|
||
</script>
|
||
|
||
|
||
|
||
<script id="twitter-wjs" type="text/javascript" async defer src="//platform.twitter.com/widgets.js"></script><script >document.addEventListener("DOMContentLoaded", () => {
|
||
const link = document.querySelector('[aria-label="Your Consent Options"]');
|
||
if (!link) return;
|
||
|
||
let ready = false;
|
||
|
||
link.addEventListener("click", (e) => {
|
||
e.preventDefault();
|
||
if (ready) {
|
||
googlefc.callbackQueue.push(googlefc.showRevocationMessage);
|
||
}
|
||
});
|
||
|
||
let attempts = 0;
|
||
const check = setInterval(() => {
|
||
if (typeof googlefc !== "undefined" && googlefc.callbackQueue) {
|
||
clearInterval(check);
|
||
ready = true;
|
||
} else if (++attempts >= 6) {
|
||
clearInterval(check);
|
||
link.remove();
|
||
}
|
||
}, 1000);
|
||
});</script>
|
||
|
||
</body>
|
||
</html>
|