mortenbock.dk Ads.txt file

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="profile" href="http://gmpg.org/xfn/11">
<link rel="pingback" href="https://blog.mortenbock.dk/xmlrpc.php">

<title>Morten Bock &#8211; Developer | .Net | Umbraco</title>
<meta name='robots' content='max-image-preview:large' />

<!-- Async WordPress.com Remote Login -->
<script id="wpcom_remote_login_js">
var wpcom_remote_login_extra_auth = '';
function wpcom_remote_login_remove_dom_node_id( element_id ) {
var dom_node = document.getElementById( element_id );
if ( dom_node ) { dom_node.parentNode.removeChild( dom_node ); }
}
function wpcom_remote_login_remove_dom_node_classes( class_name ) {
var dom_nodes = document.querySelectorAll( '.' + class_name );
for ( var i = 0; i < dom_nodes.length; i++ ) {
dom_nodes[ i ].parentNode.removeChild( dom_nodes[ i ] );
}
}
function wpcom_remote_login_final_cleanup() {
wpcom_remote_login_remove_dom_node_classes( "wpcom_remote_login_msg" );
wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_key" );
wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_validate" );
wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_js" );
wpcom_remote_login_remove_dom_node_id( "wpcom_request_access_iframe" );
wpcom_remote_login_remove_dom_node_id( "wpcom_request_access_styles" );
}

// Watch for messages back from the remote login
window.addEventListener( "message", function( e ) {
if ( e.origin === "https://r-login.wordpress.com" ) {
var data = {};
try {
data = JSON.parse( e.data );
} catch( e ) {
wpcom_remote_login_final_cleanup();
return;
}

if ( data.msg === 'LOGIN' ) {
// Clean up the login check iframe
wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_key" );

var id_regex = new RegExp( /^[0-9]+$/ );
var token_regex = new RegExp( /^.*|.*|.*$/ );
if (
token_regex.test( data.token )
&& id_regex.test( data.wpcomid )
) {
// We have everything we need to ask for a login
var script = document.createElement( "script" );
script.setAttribute( "id", "wpcom_remote_login_validate" );
script.src = '/remote-login.php?wpcom_remote_login=validate'
+ '&wpcomid=' + data.wpcomid
+ '&token=' + encodeURIComponent( data.token )
+ '&host=' + window.location.protocol
+ '//' + window.location.hostname
+ '&postid=286'
+ '&is_singular=';
document.body.appendChild( script );
}

return;
}

// Safari ITP, not logged in, so redirect
if ( data.msg === 'LOGIN-REDIRECT' ) {
window.location = 'https://wordpress.com/log-in?redirect_to=' + window.location.href;
return;
}

// Safari ITP, storage access failed, remove the request
if ( data.msg === 'LOGIN-REMOVE' ) {
var css_zap = 'html { -webkit-transition: margin-top 1s; transition: margin-top 1s; } /* 9001 */ html { margin-top: 0 !important; } * html body { margin-top: 0 !important; } @media screen and ( max-width: 782px ) { html { margin-top: 0 !important; } * html body { margin-top: 0 !important; } }';
var style_zap = document.createElement( 'style' );
style_zap.type = 'text/css';
style_zap.appendChild( document.createTextNode( css_zap ) );
document.body.appendChild( style_zap );

var e = document.getElementById( 'wpcom_request_access_iframe' );
e.parentNode.removeChild( e );

document.cookie = 'wordpress_com_login_access=denied; path=/; max-age=31536000';

return;
}

// Safari ITP
if ( data.msg === 'REQUEST_ACCESS' ) {
console.log( 'request access: safari' );

// Check ITP iframe enable/disable knob
if ( wpcom_remote_login_extra_auth !== 'safari_itp_iframe' ) {
return;
}

// If we are in a "private window" there is no ITP.
var private_window = false;
try {
var opendb = window.openDatabase( null, null, null, null );
} catch( e ) {
private_window = true;
}

if ( private_window ) {
console.log( 'private window' );
return;
}

var iframe = document.createElement( 'iframe' );
iframe.id = 'wpcom_request_access_iframe';
iframe.setAttribute( 'scrolling', 'no' );
iframe.setAttribute( 'sandbox', 'allow-storage-access-by-user-activation allow-scripts allow-same-origin allow-top-navigation-by-user-activation' );
iframe.src = 'https://r-login.wordpress.com/remote-login.php?wpcom_remote_login=request_access&origin=' + encodeURIComponent( data.origin ) + '&wpcomid=' + encodeURIComponent( data.wpcomid );

var css = 'html { -webkit-transition: margin-top 1s; transition: margin-top 1s; } /* 9001 */ html { margin-top: 46px !important; } * html body { margin-top: 46px !important; } @media screen and ( max-width: 660px ) { html { margin-top: 71px !important; } * html body { margin-top: 71px !important; } #wpcom_request_access_iframe { display: block; height: 71px !important; } } #wpcom_request_access_iframe { border: 0px; height: 46px; position: fixed; top: 0; left: 0; width: 100%; min-width: 100%; z-index: 99999; background: #23282d; } ';

var style = document.createElement( 'style' );
style.type = 'text/css';
style.id = 'wpcom_request_access_styles';
style.appendChild( document.createTextNode( css ) );
document.body.appendChild( style );

document.body.appendChild( iframe );
}

if ( data.msg === 'DONE' ) {
wpcom_remote_login_final_cleanup();
}
}
}, false );

// Inject the remote login iframe after the page has had a chance to load
// more critical resources
window.addEventListener( "DOMContentLoaded", function( e ) {
var iframe = document.createElement( "iframe" );
iframe.style.display = "none";
iframe.setAttribute( "scrolling", "no" );
iframe.setAttribute( "id", "wpcom_remote_login_key" );
iframe.src = "https://r-login.wordpress.com/remote-login.php"
+ "?wpcom_remote_login=key"
+ "&origin=aHR0cHM6Ly9ibG9nLm1vcnRlbmJvY2suZGs%3D"
+ "&wpcomid=105791522"
+ "&time=1758177755";
document.body.appendChild( iframe );
}, false );
</script>
<link rel='dns-prefetch' href='//s1.wp.com' />
<link rel='dns-prefetch' href='//s2.wp.com' />
<link rel='dns-prefetch' href='//s0.wp.com' />
<link rel='dns-prefetch' href='//fonts-api.wp.com' />
<link rel='dns-prefetch' href='//af.pubmine.com' />
<link rel="alternate" type="application/rss+xml" title="Morten Bock &raquo; Feed" href="https://blog.mortenbock.dk/feed/" />
<link rel="alternate" type="application/rss+xml" title="Morten Bock &raquo; Comments Feed" href="https://blog.mortenbock.dk/comments/feed/" />
<script type="text/javascript">
/* <![CDATA[ */
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function () {
oldonload();
func();
}
}
}
/* ]]> */
</script>
<script type="text/javascript">
/* <![CDATA[ */
window._wpemojiSettings = {"baseUrl":"https:\/\/s0.wp.com\/wp-content\/mu-plugins\/wpcom-smileys\/twemoji\/2\/72x72\/","ext":".png","svgUrl":"https:\/\/s0.wp.com\/wp-content\/mu-plugins\/wpcom-smileys\/twemoji\/2\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/s2.wp.com\/wp-includes\/js\/wp-emoji-release.min.js?m=1751981882i&ver=6.8.2-alpha-60439"}};
/*! This file is auto-generated */
!function(s,n){var o,i,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),a=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===a[t]})}function u(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);for(var n=e.getImageData(16,16,1,1),a=0;a<n.data.length;a++)if(0!==n.data[a])return!1;return!0}function f(e,t,n,a){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!a(e,"\ud83e\udedf")}return!1}function g(e,t,n,a){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):s.createElement("canvas"),o=r.getContext("2d",{willReadFrequently:!0}),i=(o.textBaseline="top",o.font="600 32px Arial",{});return e.forEach(function(e){i[e]=t(o,e,n,a)}),i}function t(e){var t=s.createElement("script");t.src=e,t.defer=!0,s.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",i=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){s.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+g.toString()+"("+[JSON.stringify(i),f.toString(),p.toString(),u.toString()].join(",")+"));",a=new Blob([e],{type:"text/javascript"}),r=new Worker(URL.createObjectURL(a),{name:"wpTestEmojiSupports"});return void(r.onmessage=function(e){c(n=e.data),r.terminate(),t(n)})}catch(e){}c(n=g(i,f,p,u))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings);
/* ]]> */
</script>
<style id='wp-emoji-styles-inline-css'>

img.wp-smiley, img.emoji {
display: inline !important;
border: none !important;
box-shadow: none !important;
height: 1em !important;
width: 1em !important;
margin: 0 0.07em !important;
vertical-align: -0.1em !important;
background: none !important;
padding: 0 !important;
}
</style>
<link crossorigin='anonymous' rel='stylesheet' id='all-css-2-1' href='https://s1.wp.com/wp-content/plugins/gutenberg-core/v20.6.0/build/block-library/style.css?m=1744959081i&cssminify=yes' type='text/css' media='all' />
<style id='wp-block-library-inline-css'>
.has-text-align-justify {
text-align:justify;
}
.has-text-align-justify{text-align:justify;}
</style>
<style id='classic-theme-styles-inline-css'>
/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
</style>
<link crossorigin='anonymous' rel='stylesheet' id='all-css-4-1' href='/_static/??-eJyVzDEOgCAMQNELiQU1Jg7Gs2AlDYpAaInx9ro5O/7hfbiywhTFRYEcKvnIQPXN1RVSa0h4MOxOssVDBXunKoqK34DlDq5F5gb+LIoVH4k/vpyzGYe+03oyw/4AcmU1KQ==&cssminify=yes' type='text/css' media='all' />
<link crossorigin='anonymous' rel='stylesheet' id='all-css-6-1' href='/_static/??-eJzTLy/QzcxLzilNSS3WzyrWz01NyUxMzUnNTc0rQeEU5CRWphbp5qSmJyZX6uVm5uklFxfr6OPTDpRD5sM02efaGpoZmFkYGRuZGmQBAHPvL0Y=&cssminify=yes' type='text/css' media='all' />
<style id='jetpack-sharing-buttons-style-inline-css'>
.jetpack-sharing-buttons__services-list{display:flex;flex-direction:row;flex-wrap:wrap;gap:0;list-style-type:none;margin:5px;padding:0}.jetpack-sharing-buttons__services-list.has-small-icon-size{font-size:12px}.jetpack-sharing-buttons__services-list.has-normal-icon-size{font-size:16px}.jetpack-sharing-buttons__services-list.has-large-icon-size{font-size:24px}.jetpack-sharing-buttons__services-list.has-huge-icon-size{font-size:36px}@media print{.jetpack-sharing-buttons__services-list{display:none!important}}.editor-styles-wrapper .wp-block-jetpack-sharing-buttons{gap:0;padding-inline-start:0}ul.jetpack-sharing-buttons__services-list.has-background{padding:1.25em 2.375em}
</style>
<link crossorigin='anonymous' rel='stylesheet' id='all-css-8-1' href='/_static/??-eJx9jEEOAiEQBD/kQECjeDC+ZWEnijIwYWA3/l72op689KFTVXplCCU3zE1z6reYRYfiUwlP0VYZpwxIJE4IFRd10HOU9iFA2iuhCiI7/ROiDt9WxfETT20jCOc4YUIa2D9t5eGA91xRBMZS7ATtPkTZvCtdzNEZt7f2fHq8Afl7R7w=&cssminify=yes' type='text/css' media='all' />
<style id='global-styles-inline-css'>
:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-family--albert-sans: 'Albert Sans', sans-serif;--wp--preset--font-family--alegreya: Alegreya, serif;--wp--preset--font-family--arvo: Arvo, serif;--wp--preset--font-family--bodoni-moda: 'Bodoni Moda', serif;--wp--preset--font-family--bricolage-grotesque: 'Bricolage Grotesque', sans-serif;--wp--preset--font-family--cabin: Cabin, sans-serif;--wp--preset--font-family--chivo: Chivo, sans-serif;--wp--preset--font-family--commissioner: Commissioner, sans-serif;--wp--preset--font-family--cormorant: Cormorant, serif;--wp--preset--font-family--courier-prime: 'Courier Prime', monospace;--wp--preset--font-family--crimson-pro: 'Crimson Pro', serif;--wp--preset--font-family--dm-mono: 'DM Mono', monospace;--wp--preset--font-family--dm-sans: 'DM Sans', sans-serif;--wp--preset--font-family--dm-serif-display: 'DM Serif Display', serif;--wp--preset--font-family--domine: Domine, serif;--wp--preset--font-family--eb-garamond: 'EB Garamond', serif;--wp--preset--font-family--epilogue: Epilogue, sans-serif;--wp--preset--font-family--fahkwang: Fahkwang, sans-serif;--wp--preset--font-family--figtree: Figtree, sans-serif;--wp--preset--font-family--fira-sans: 'Fira Sans', sans-serif;--wp--preset--font-family--fjalla-one: 'Fjalla One', sans-serif;--wp--preset--font-family--fraunces: Fraunces, serif;--wp--preset--font-family--gabarito: Gabarito, system-ui;--wp--preset--font-family--ibm-plex-mono: 'IBM Plex Mono', monospace;--wp--preset--font-family--ibm-plex-sans: 'IBM Plex Sans', sans-serif;--wp--preset--font-family--ibarra-real-nova: 'Ibarra Real Nova', serif;--wp--preset--font-family--instrument-serif: 'Instrument Serif', serif;--wp--preset--font-family--inter: Inter, sans-serif;--wp--preset--font-family--josefin-sans: 'Josefin Sans', sans-serif;--wp--preset--font-family--jost: Jost, sans-serif;--wp--preset--font-family--libre-baskerville: 'Libre Baskerville', serif;--wp--preset--font-family--libre-franklin: 'Libre Franklin', sans-serif;--wp--preset--font-family--literata: Literata, serif;--wp--preset--font-family--lora: Lora, serif;--wp--preset--font-family--merriweather: Merriweather, serif;--wp--preset--font-family--montserrat: Montserrat, sans-serif;--wp--preset--font-family--newsreader: Newsreader, serif;--wp--preset--font-family--noto-sans-mono: 'Noto Sans Mono', sans-serif;--wp--preset--font-family--nunito: Nunito, sans-serif;--wp--preset--font-family--open-sans: 'Open Sans', sans-serif;--wp--preset--font-family--overpass: Overpass, sans-serif;--wp--preset--font-family--pt-serif: 'PT Serif', serif;--wp--preset--font-family--petrona: Petrona, serif;--wp--preset--font-family--piazzolla: Piazzolla, serif;--wp--preset--font-family--playfair-display: 'Playfair Display', serif;--wp--preset--font-family--plus-jakarta-sans: 'Plus Jakarta Sans', sans-serif;--wp--preset--font-family--poppins: Poppins, sans-serif;--wp--preset--font-family--raleway: Raleway, sans-serif;--wp--preset--font-family--roboto: Roboto, sans-serif;--wp--preset--font-family--roboto-slab: 'Roboto Slab', serif;--wp--preset--font-family--rubik: Rubik, sans-serif;--wp--preset--font-family--rufina: Rufina, serif;--wp--preset--font-family--sora: Sora, sans-serif;--wp--preset--font-family--source-sans-3: 'Source Sans 3', sans-serif;--wp--preset--font-family--source-serif-4: 'Source Serif 4', serif;--wp--preset--font-family--space-mono: 'Space Mono', monospace;--wp--preset--font-family--syne: Syne, sans-serif;--wp--preset--font-family--texturina: Texturina, serif;--wp--preset--font-family--urbanist: Urbanist, sans-serif;--wp--preset--font-family--work-sans: 'Work Sans', sans-serif;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}.has-albert-sans-font-family{font-family: var(--wp--preset--font-family--albert-sans) !important;}.has-alegreya-font-family{font-family: var(--wp--preset--font-family--alegreya) !important;}.has-arvo-font-family{font-family: var(--wp--preset--font-family--arvo) !important;}.has-bodoni-moda-font-family{font-family: var(--wp--preset--font-family--bodoni-moda) !important;}.has-bricolage-grotesque-font-family{font-family: var(--wp--preset--font-family--bricolage-grotesque) !important;}.has-cabin-font-family{font-family: var(--wp--preset--font-family--cabin) !important;}.has-chivo-font-family{font-family: var(--wp--preset--font-family--chivo) !important;}.has-commissioner-font-family{font-family: var(--wp--preset--font-family--commissioner) !important;}.has-cormorant-font-family{font-family: var(--wp--preset--font-family--cormorant) !important;}.has-courier-prime-font-family{font-family: var(--wp--preset--font-family--courier-prime) !important;}.has-crimson-pro-font-family{font-family: var(--wp--preset--font-family--crimson-pro) !important;}.has-dm-mono-font-family{font-family: var(--wp--preset--font-family--dm-mono) !important;}.has-dm-sans-font-family{font-family: var(--wp--preset--font-family--dm-sans) !important;}.has-dm-serif-display-font-family{font-family: var(--wp--preset--font-family--dm-serif-display) !important;}.has-domine-font-family{font-family: var(--wp--preset--font-family--domine) !important;}.has-eb-garamond-font-family{font-family: var(--wp--preset--font-family--eb-garamond) !important;}.has-epilogue-font-family{font-family: var(--wp--preset--font-family--epilogue) !important;}.has-fahkwang-font-family{font-family: var(--wp--preset--font-family--fahkwang) !important;}.has-figtree-font-family{font-family: var(--wp--preset--font-family--figtree) !important;}.has-fira-sans-font-family{font-family: var(--wp--preset--font-family--fira-sans) !important;}.has-fjalla-one-font-family{font-family: var(--wp--preset--font-family--fjalla-one) !important;}.has-fraunces-font-family{font-family: var(--wp--preset--font-family--fraunces) !important;}.has-gabarito-font-family{font-family: var(--wp--preset--font-family--gabarito) !important;}.has-ibm-plex-mono-font-family{font-family: var(--wp--preset--font-family--ibm-plex-mono) !important;}.has-ibm-plex-sans-font-family{font-family: var(--wp--preset--font-family--ibm-plex-sans) !important;}.has-ibarra-real-nova-font-family{font-family: var(--wp--preset--font-family--ibarra-real-nova) !important;}.has-instrument-serif-font-family{font-family: var(--wp--preset--font-family--instrument-serif) !important;}.has-inter-font-family{font-family: var(--wp--preset--font-family--inter) !important;}.has-josefin-sans-font-family{font-family: var(--wp--preset--font-family--josefin-sans) !important;}.has-jost-font-family{font-family: var(--wp--preset--font-family--jost) !important;}.has-libre-baskerville-font-family{font-family: var(--wp--preset--font-family--libre-baskerville) !important;}.has-libre-franklin-font-family{font-family: var(--wp--preset--font-family--libre-franklin) !important;}.has-literata-font-family{font-family: var(--wp--preset--font-family--literata) !important;}.has-lora-font-family{font-family: var(--wp--preset--font-family--lora) !important;}.has-merriweather-font-family{font-family: var(--wp--preset--font-family--merriweather) !important;}.has-montserrat-font-family{font-family: var(--wp--preset--font-family--montserrat) !important;}.has-newsreader-font-family{font-family: var(--wp--preset--font-family--newsreader) !important;}.has-noto-sans-mono-font-family{font-family: var(--wp--preset--font-family--noto-sans-mono) !important;}.has-nunito-font-family{font-family: var(--wp--preset--font-family--nunito) !important;}.has-open-sans-font-family{font-family: var(--wp--preset--font-family--open-sans) !important;}.has-overpass-font-family{font-family: var(--wp--preset--font-family--overpass) !important;}.has-pt-serif-font-family{font-family: var(--wp--preset--font-family--pt-serif) !important;}.has-petrona-font-family{font-family: var(--wp--preset--font-family--petrona) !important;}.has-piazzolla-font-family{font-family: var(--wp--preset--font-family--piazzolla) !important;}.has-playfair-display-font-family{font-family: var(--wp--preset--font-family--playfair-display) !important;}.has-plus-jakarta-sans-font-family{font-family: var(--wp--preset--font-family--plus-jakarta-sans) !important;}.has-poppins-font-family{font-family: var(--wp--preset--font-family--poppins) !important;}.has-raleway-font-family{font-family: var(--wp--preset--font-family--raleway) !important;}.has-roboto-font-family{font-family: var(--wp--preset--font-family--roboto) !important;}.has-roboto-slab-font-family{font-family: var(--wp--preset--font-family--roboto-slab) !important;}.has-rubik-font-family{font-family: var(--wp--preset--font-family--rubik) !important;}.has-rufina-font-family{font-family: var(--wp--preset--font-family--rufina) !important;}.has-sora-font-family{font-family: var(--wp--preset--font-family--sora) !important;}.has-source-sans-3-font-family{font-family: var(--wp--preset--font-family--source-sans-3) !important;}.has-source-serif-4-font-family{font-family: var(--wp--preset--font-family--source-serif-4) !important;}.has-space-mono-font-family{font-family: var(--wp--preset--font-family--space-mono) !important;}.has-syne-font-family{font-family: var(--wp--preset--font-family--syne) !important;}.has-texturina-font-family{font-family: var(--wp--preset--font-family--texturina) !important;}.has-urbanist-font-family{font-family: var(--wp--preset--font-family--urbanist) !important;}.has-work-sans-font-family{font-family: var(--wp--preset--font-family--work-sans) !important;}
:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;}
:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}
</style>
<link crossorigin='anonymous' rel='stylesheet' id='all-css-10-1' href='/_static/??/wp-content/themes/pub/nucleare/style.css,/wp-content/mu-plugins/jetpack-plugin/moon/_inc/genericons/genericons/genericons.css?m=1753284714j&cssminify=yes' type='text/css' media='all' />
<link rel='stylesheet' id='nucleare-fonts-css' href='https://fonts-api.wp.com/css?family=Roboto%3A400%2C700%2C700italic%2C400italic%7CPlayfair+Display%3A400%2C400italic%2C700italic%2C700&#038;subset=latin%2Clatin-ext' media='all' />
<link crossorigin='anonymous' rel='stylesheet' id='all-css-12-1' href='/_static/??-eJx9y80OwiAMB/AXsjZLMOrB+CyMdAxTWkIhe/0xL+rF2/8jP9wKBJVG0rCtlMmw9BmlByZfCYMZLuMHv5FppvMYTviFcofCPSYxrDSzxhHjm33qPxRJgTX4llR+CizsUz3oMz8md7k7d7tO7rUDjnZBsA==&cssminify=yes' type='text/css' media='all' />
<link crossorigin='anonymous' rel='stylesheet' id='print-css-13-1' href='https://s1.wp.com/wp-content/mu-plugins/global-print/global-print.css?m=1465851035i&cssminify=yes' type='text/css' media='print' />
<link crossorigin='anonymous' rel='stylesheet' id='all-css-14-1' href='https://s1.wp.com/wp-content/themes/pub/nucleare/inc/style-wpcom.css?m=1428690127i&cssminify=yes' type='text/css' media='all' />
<style id='jetpack-global-styles-frontend-style-inline-css'>
:root { --font-headings: unset; --font-base: unset; --font-headings-default: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif; --font-base-default: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;}
</style>
<link crossorigin='anonymous' rel='stylesheet' id='all-css-16-1' href='https://s2.wp.com/wp-content/themes/h4/global.css?m=1420737423i&cssminify=yes' type='text/css' media='all' />
<script type="text/javascript" id="wpcom-actionbar-placeholder-js-extra">
/* <![CDATA[ */
var actionbardata = {"siteID":"105791522","postID":"0","siteURL":"https:\/\/blog.mortenbock.dk","xhrURL":"https:\/\/blog.mortenbock.dk\/wp-admin\/admin-ajax.php","nonce":"ea989929fe","isLoggedIn":"","statusMessage":"","subsEmailDefault":"instantly","proxyScriptUrl":"https:\/\/s0.wp.com\/wp-content\/js\/wpcom-proxy-request.js?ver=20211021","i18n":{"followedText":"New posts from this site will now appear in your <a href=\"https:\/\/wordpress.com\/reader\">Reader<\/a>","foldBar":"Collapse this bar","unfoldBar":"Expand this bar","shortLinkCopied":"Shortlink copied to clipboard."}};
/* ]]> */
</script>
<script type="text/javascript" id="jetpack-mu-wpcom-settings-js-before">
/* <![CDATA[ */
var JETPACK_MU_WPCOM_SETTINGS = {"assetsUrl":"https:\/\/s1.wp.com\/wp-content\/mu-plugins\/jetpack-mu-wpcom-plugin\/moon\/jetpack_vendor\/automattic\/jetpack-mu-wpcom\/src\/build\/"};
/* ]]> */
</script>
<script crossorigin='anonymous' type='text/javascript' src='/_static/??/wp-content/js/rlt-proxy.js,/wp-content/blog-plugins/wordads-classes/js/cmp/v2/cmp-stub.js?m=1720530689j'></script>
<script type="text/javascript" id="rlt-proxy-js-after">
/* <![CDATA[ */
rltInitialize( {"token":null,"iframeOrigins":["https:\/\/widgets.wp.com"]} );
/* ]]> */
</script>
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://f2467e96c0454199ab4bbd67007edab7.wordpress.com/xmlrpc.php?rsd" />
<meta name="generator" content="WordPress.com" />
<link rel='shortlink' href='https://wp.me/79TcS' />

<!-- Jetpack Open Graph Tags -->
<meta property="og:type" content="website" />
<meta property="og:title" content="Morten Bock" />
<meta property="og:description" content="Developer | .Net | Umbraco" />
<meta property="og:url" content="https://blog.mortenbock.dk/" />
<meta property="og:site_name" content="Morten Bock" />
<meta property="og:image" content="https://s0.wp.com/i/blank.jpg?m=1383295312i" />
<meta property="og:image:width" content="200" />
<meta property="og:image:height" content="200" />
<meta property="og:image:alt" content="" />
<meta property="og:locale" content="en_US" />
<meta name="twitter:creator" content="@mortenbock" />
<meta name="twitter:site" content="@mortenbock" />

<!-- End Jetpack Open Graph Tags -->
<link rel="shortcut icon" type="image/x-icon" href="https://s1.wp.com/i/favicon.ico?m=1713425267i" sizes="16x16 24x24 32x32 48x48" />
<link rel="icon" type="image/x-icon" href="https://s1.wp.com/i/favicon.ico?m=1713425267i" sizes="16x16 24x24 32x32 48x48" />
<link rel="apple-touch-icon" href="https://s2.wp.com/i/webclip.png?m=1713868326i" />
<link rel="search" type="application/opensearchdescription+xml" href="https://blog.mortenbock.dk/osd.xml" title="Morten Bock" />
<link rel="search" type="application/opensearchdescription+xml" href="https://s1.wp.com/opensearch.xml" title="WordPress.com" />
<style type="text/css">.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style> <style type="text/css">
.recentcomments a {
display: inline !important;
padding: 0 !important;
margin: 0 !important;
}

table.recentcommentsavatartop img.avatar, table.recentcommentsavatarend img.avatar {
border: 0px;
margin: 0;
}

table.recentcommentsavatartop a, table.recentcommentsavatarend a {
border: 0px !important;
background-color: transparent !important;
}

td.recentcommentsavatarend, td.recentcommentsavatartop {
padding: 0px 0px 1px 0px;
margin: 0px;
}

td.recentcommentstextend {
border: none !important;
padding: 0px 0px 2px 10px;
}

.rtl td.recentcommentstextend {
padding: 0px 10px 2px 0px;
}

td.recentcommentstexttop {
border: none;
padding: 0px 0px 0px 10px;
}

.rtl td.recentcommentstexttop {
padding: 0px 10px 0px 0px;
}
</style>
<meta name="description" content="Developer | .Net | Umbraco" />
<script type="text/javascript">
/* <![CDATA[ */
var wa_client = {}; wa_client.cmd = []; wa_client.config = { 'blog_id': 105791522, 'blog_language': 'en', 'is_wordads': false, 'hosting_type': 0, 'afp_account_id': null, 'afp_host_id': 5038568878849053, 'theme': 'pub/nucleare', '_': { 'title': 'Advertisement', 'privacy_settings': 'Privacy Settings' }, 'formats': [ 'belowpost', 'bottom_sticky', 'sidebar_sticky_right', 'sidebar', 'gutenberg_rectangle', 'gutenberg_leaderboard', 'gutenberg_mobile_leaderboard', 'gutenberg_skyscraper' ] };
/* ]]> */
</script>
<script type="text/javascript">

window.doNotSellCallback = function() {

var linkElements = [
'a[href="https://wordpress.com/?ref=footer_blog"]',
'a[href="https://wordpress.com/?ref=footer_website"]',
'a[href="https://wordpress.com/?ref=vertical_footer"]',
'a[href^="https://wordpress.com/?ref=footer_segment_"]',
].join(',');

var dnsLink = document.createElement( 'a' );
dnsLink.href = 'https://wordpress.com/advertising-program-optout/';
dnsLink.classList.add( 'do-not-sell-link' );
dnsLink.rel = 'nofollow';
dnsLink.style.marginLeft = '0.5em';
dnsLink.textContent = 'Do Not Sell or Share My Personal Information';

var creditLinks = document.querySelectorAll( linkElements );

if ( 0 === creditLinks.length ) {
return false;
}

Array.prototype.forEach.call( creditLinks, function( el ) {
el.insertAdjacentElement( 'afterend', dnsLink );
});

return true;
};

</script>
<script id="cmp-configuration" type="application/configuration">{"gvlVersion":"124","consentLanguage":"EN","locale":"en","vendorsAll":"BSUAOIRKgQQoJAQI4BAAhAEBiAYACECAAABAACAAAAAAAhEAEAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAABAAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAiAAIAAAgAAgAAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQA","vendorsLegInterest":"BSUAEAQKgAAoAAAIgAAAgAAACAIACAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAIAAAgAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQA","ajaxUrl":"\/wp-admin\/admin-ajax.php","ajaxNonce":"6c8cb2618a","modulePath":"https:\/\/s1.wp.com\/wp-content\/blog-plugins\/wordads-classes\/js\/cmp\/v2\/","gvlPath":"https:\/\/public-api.wordpress.com\/wpcom\/v2\/sites\/105791522\/cmp\/v3\/vendors\/en\/","_":{"title":"Privacy & Cookies","intro":"We, WordPress.com, and our advertising partners store and\/or access information on your device and also process personal data, like unique identifiers, browsing activity, and other standard information sent by your device including your IP address. This information is collected over time and used for personalised advertising, advertising measurement, audience research and services development specific to our ads program. If this sounds good to you, select \"I Agree!\" below. Otherwise, you can get more information, customize your consent preferences for over 51 different ad vendors, or decline consent by selecting \"Learn More\". Note that your preferences apply to all websites in the <a href=\"https:\/\/automattic.com\/cookies\/#user-ads-consent\" target=\"_blank\">WordPress.com network<\/a>, and if you change your mind in the future you can update your preferences anytime by visiting the Privacy link displayed under each ad or by using the \"Privacy\" option in the Action Bar located at the bottom-right corner of the screen. One last thing, our partners may process some of your data based on legitimate interests instead of consent but you can object to that by choosing \"Learn More\" and then disabling the Legitimate Interests toggle under any listed Purpose or Partner.","config":"Learn More","accept":"I Agree!","viewPartners":"View Partners","error":"We're sorry but an unexpected error occurred. Please try again later."}}</script><script type="text/javascript">
window.google_analytics_uacct = "UA-52447-2";
</script>

<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-52447-2']);
_gaq.push(['_gat._anonymizeIp']);
_gaq.push(['_setDomainName', 'none']);
_gaq.push(['_setAllowLinker', true]);
_gaq.push(['_initData']);
_gaq.push(['_trackPageview']);

(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ga);
})();
</script>
</head>

<body class="home blog wp-theme-pubnucleare customizer-styles-applied jetpack-reblog-enabled">
<div id="page" class="hfeed site">
<a class="skip-link screen-reader-text" href="#content">Skip to content</a>

<div class="navigation-bar clear">
<div class="navigation-block">
<nav id="site-navigation" class="main-navigation" role="navigation">
<button class="menu-toggle" aria-controls="menu" aria-expanded="false"><i class="fa fa-bars"></i><span class="screen-reader-text">Open Menu</span></button>
<div class="menu"><ul>
<li class="current_page_item"><a href="https://blog.mortenbock.dk/">Home</a></li><li class="page_item page-item-1"><a href="https://blog.mortenbock.dk/about/">About</a></li>
</ul></div>
</nav><!-- #site-navigation -->

<div class="social-links">
<div class="menu-socials-container"><ul id="menu-socials" class="menu"><li id="menu-item-299" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-299"><a href="https://hachyderm.io/@mortenbock"><span class="screen-reader-text">Mastodon</span></a></li>
</ul></div>
<div class="open-search top-search"><i class="fa fa-search"><span class="screen-reader-text">Search</span></i></div>
</div>
</div>
</div>

<div class="search-full">
<div class="search-container">
<form role="search" method="get" class="search-form" action="https://blog.mortenbock.dk/">
<label>
<span class="screen-reader-text">Search for:</span>
<input type="search" class="search-field" placeholder="Search &hellip;" value="" name="s" />
</label>
<input type="submit" class="search-submit" value="Search" />
</form> <span><a class="close-search"><i class="fa fa-close space-right"></i>Close</a></span>
</div>
</div>

<header id="masthead" class="site-header" role="banner">
<div class="site-branding">
<h1 class="site-title"><a href="https://blog.mortenbock.dk/" rel="home">Morten Bock</a></h1>
<h2 class="site-description">Developer | .Net | Umbraco</h2>
</div><!-- .site-branding -->
</header><!-- #masthead -->

<div id="content" class="site-content">

<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">




<article id="post-286" class="post-286 post type-post status-publish format-standard hentry category-not-categorized tag-umbraco">
<header class="entry-header">
<h1 class="entry-title"><a href="https://blog.mortenbock.dk/2018/02/14/how-to-add-a-warming-up-message-to-your-umbraco-site/" rel="bookmark">How to add a Warming Up message to your Umbraco&nbsp;site</a></h1> <div class="entry-meta small-part">
<span class="posted-on"><i class="fa fa-clock-o space-left-right"></i><a href="https://blog.mortenbock.dk/2018/02/14/how-to-add-a-warming-up-message-to-your-umbraco-site/" rel="bookmark"><time class="entry-date published" datetime="2018-02-14T19:06:09+00:00">14. February 2018</time><time class="updated" datetime="2018-02-16T09:31:48+00:00">16. February 2018</time></a></span><span class="byline"> <i class="fa fa-user space-left-right"></i><span class="author vcard"><a class="url fn n" href="https://blog.mortenbock.dk/author/mortenbock/">Morten Bock</a></span></span><span class="comments-link"><i class="fa fa-comments-o space-left-right"></i><a href="https://blog.mortenbock.dk/2018/02/14/how-to-add-a-warming-up-message-to-your-umbraco-site/#comments">1 Comment</a></span> </div><!-- .entry-meta -->
</header><!-- .entry-header -->

<div class="entry-content">
<p>When building a website, the optimal thing is that the users experience no downtime while a new version of the site is being deployed. This can however be quite complex to achieve in reality, and usually requires that you have multiple web servers.</p>
<p>The next best thing is that your users at least do not just get a browser showing nothing, while the page takes forever to load. While deploying, you could use the app_offline.htm, but that just blocks all requests, and when you remove it, the site still has not booted up.</p>
<p>In this post we will look at</p>
<ul>
<li>How to configure this</li>
<li>What are the potential issues</li>
<li>What can we do to solve it</li>
</ul>
<p><a class="more-link" href="https://blog.mortenbock.dk/2018/02/14/how-to-add-a-warming-up-message-to-your-umbraco-site/">Read More &raquo;</a></p>
</div><!-- .entry-content -->

<footer class="entry-footer">
<div class="entry-bottom small-part">
</div>
</footer><!-- .entry-footer -->
</article><!-- #post-## -->


<article id="post-203" class="post-203 post type-post status-publish format-standard has-post-thumbnail hentry category-not-categorized tag-umbraco">
<figure class="entry-featured-image">
<a href="https://blog.mortenbock.dk/2017/02/03/error-page-setup-in-umbraco/" rel="bookmark" title="Error page setup in&nbsp;Umbraco">
<img width="810" height="279" src="https://blog.mortenbock.dk/wp-content/uploads/2017/02/errorblogpost.png?w=810" class="attachment-nucleare-normal-post size-nucleare-normal-post wp-post-image" alt="" decoding="async" srcset="https://blog.mortenbock.dk/wp-content/uploads/2017/02/errorblogpost.png?w=810 810w, https://blog.mortenbock.dk/wp-content/uploads/2017/02/errorblogpost.png?w=150 150w, https://blog.mortenbock.dk/wp-content/uploads/2017/02/errorblogpost.png?w=300 300w, https://blog.mortenbock.dk/wp-content/uploads/2017/02/errorblogpost.png?w=768 768w, https://blog.mortenbock.dk/wp-content/uploads/2017/02/errorblogpost.png?w=1024 1024w, https://blog.mortenbock.dk/wp-content/uploads/2017/02/errorblogpost.png 1357w" sizes="(max-width: 810px) 100vw, 810px" data-attachment-id="283" data-permalink="https://blog.mortenbock.dk/2017/02/03/error-page-setup-in-umbraco/errorblogpost/" data-orig-file="https://blog.mortenbock.dk/wp-content/uploads/2017/02/errorblogpost.png" data-orig-size="1357,467" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="errorblogpost" data-image-description="" data-image-caption="" data-medium-file="https://blog.mortenbock.dk/wp-content/uploads/2017/02/errorblogpost.png?w=300" data-large-file="https://blog.mortenbock.dk/wp-content/uploads/2017/02/errorblogpost.png?w=809" /> <figcaption><p><i class="fa fa-file-text"></i></p></figcaption>
</a>
</figure>
<header class="entry-header">
<h1 class="entry-title"><a href="https://blog.mortenbock.dk/2017/02/03/error-page-setup-in-umbraco/" rel="bookmark">Error page setup in&nbsp;Umbraco</a></h1> <div class="entry-meta small-part">
<span class="posted-on"><i class="fa fa-clock-o space-left-right"></i><a href="https://blog.mortenbock.dk/2017/02/03/error-page-setup-in-umbraco/" rel="bookmark"><time class="entry-date published" datetime="2017-02-03T20:32:40+00:00">3. February 2017</time><time class="updated" datetime="2017-02-04T11:50:17+00:00">4. February 2017</time></a></span><span class="byline"> <i class="fa fa-user space-left-right"></i><span class="author vcard"><a class="url fn n" href="https://blog.mortenbock.dk/author/mortenbock/">Morten Bock</a></span></span><span class="comments-link"><i class="fa fa-comments-o space-left-right"></i><a href="https://blog.mortenbock.dk/2017/02/03/error-page-setup-in-umbraco/#comments">11 Comments</a></span> </div><!-- .entry-meta -->
</header><!-- .entry-header -->

<div class="entry-content">
<p>Before deploying your Umbraco website to production, you want to make sure you are not displaying the standard YSOD to users in cases of exceptions.</p>
<p>I wanted to make a setup that achieves the following:</p>
<ol>
<li>Show a nice error page to the user</li>
<li>Show the page on the url where the exception happens</li>
<li>Return the appropriate 500 status code</li>
</ol>
<p><a class="more-link" href="https://blog.mortenbock.dk/2017/02/03/error-page-setup-in-umbraco/">Read More &raquo;</a></p>
<div id="atatags-370373-68cba9db8a6ed">
<script type="text/javascript">
__ATA = window.__ATA || {};
__ATA.cmd = window.__ATA.cmd || [];
__ATA.cmd.push(function() {
__ATA.initVideoSlot('atatags-370373-68cba9db8a6ed', {
sectionId: '370373',
format: 'inread'
});
});
</script>
</div> </div><!-- .entry-content -->

<footer class="entry-footer">
<div class="entry-bottom small-part">
</div>
</footer><!-- .entry-footer -->
</article><!-- #post-## -->


<article id="post-155" class="post-155 post type-post status-publish format-standard hentry category-not-categorized tag-google-tag-manager">
<header class="entry-header">
<h1 class="entry-title"><a href="https://blog.mortenbock.dk/2016/06/06/what-is-gtm_cookies_win-in-gtm/" rel="bookmark">What is gtm_cookies_win in&nbsp;GTM?</a></h1> <div class="entry-meta small-part">
<span class="posted-on"><i class="fa fa-clock-o space-left-right"></i><a href="https://blog.mortenbock.dk/2016/06/06/what-is-gtm_cookies_win-in-gtm/" rel="bookmark"><time class="entry-date published" datetime="2016-06-06T14:39:36+00:00">6. June 2016</time><time class="updated" datetime="2016-06-06T14:44:14+00:00">6. June 2016</time></a></span><span class="byline"> <i class="fa fa-user space-left-right"></i><span class="author vcard"><a class="url fn n" href="https://blog.mortenbock.dk/author/mortenbock/">Morten Bock</a></span></span><span class="comments-link"><i class="fa fa-comments-o space-left-right"></i><a href="https://blog.mortenbock.dk/2016/06/06/what-is-gtm_cookies_win-in-gtm/#comments">1 Comment</a></span> </div><!-- .entry-meta -->
</header><!-- .entry-header -->

<div class="entry-content">
<p>If you have started using the &#8220;environments&#8221; feature in Google Tag Manager (if not, read why you should at <a href="http://www.simoahava.com/analytics/better-qa-with-google-tag-manager-environments/">Simo Ahava&#8217;s blogpost on environments</a>), then maybe you&#8217;ve experienced some weird/confusing behaviour when using the preview/debug functions.</p>
<p>You may have also noticed the <em>gtm_cookies_win=x</em> in your tracking snippet.</p>
<figure data-shortcode="caption" id="attachment_157" aria-describedby="caption-attachment-157" style="width: 769px" class="wp-caption alignnone"><img data-attachment-id="157" data-permalink="https://blog.mortenbock.dk/2016/06/06/what-is-gtm_cookies_win-in-gtm/2016-06-06_1616/" data-orig-file="https://blog.mortenbock.dk/wp-content/uploads/2016/06/2016-06-06_1616.png" data-orig-size="769,381" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="2016-06-06_1616" data-image-description="" data-image-caption="" data-medium-file="https://blog.mortenbock.dk/wp-content/uploads/2016/06/2016-06-06_1616.png?w=300" data-large-file="https://blog.mortenbock.dk/wp-content/uploads/2016/06/2016-06-06_1616.png?w=769" class="alignnone size-full wp-image-157" src="https://blog.mortenbock.dk/wp-content/uploads/2016/06/2016-06-06_1616.png?w=809" alt="2016-06-06_1616" srcset="https://blog.mortenbock.dk/wp-content/uploads/2016/06/2016-06-06_1616.png 769w, https://blog.mortenbock.dk/wp-content/uploads/2016/06/2016-06-06_1616.png?w=150&amp;h=74 150w, https://blog.mortenbock.dk/wp-content/uploads/2016/06/2016-06-06_1616.png?w=300&amp;h=149 300w" sizes="(max-width: 769px) 100vw, 769px" /><figcaption id="caption-attachment-157" class="wp-caption-text">Tracking snippet from the &#8220;Staging&#8221; environment.</figcaption></figure>
<p>After searching for information about the gtm_cookies_win parameter, and not finding anything, I decided to try and debug my way out of it.</p>
<p><a class="more-link" href="https://blog.mortenbock.dk/2016/06/06/what-is-gtm_cookies_win-in-gtm/">Read More &raquo;</a></p>
</div><!-- .entry-content -->

<footer class="entry-footer">
<div class="entry-bottom small-part">
</div>
</footer><!-- .entry-footer -->
</article><!-- #post-## -->


<article id="post-61" class="post-61 post type-post status-publish format-standard hentry category-not-categorized">
<header class="entry-header">
<h1 class="entry-title"><a href="https://blog.mortenbock.dk/2016/03/21/out-of-the-box/" rel="bookmark">Out of the&nbsp;box</a></h1> <div class="entry-meta small-part">
<span class="posted-on"><i class="fa fa-clock-o space-left-right"></i><a href="https://blog.mortenbock.dk/2016/03/21/out-of-the-box/" rel="bookmark"><time class="entry-date published updated" datetime="2016-03-21T10:37:52+00:00">21. March 2016</time></a></span><span class="byline"> <i class="fa fa-user space-left-right"></i><span class="author vcard"><a class="url fn n" href="https://blog.mortenbock.dk/author/mortenbock/">Morten Bock</a></span></span><span class="comments-link"><i class="fa fa-comments-o space-left-right"></i><a href="https://blog.mortenbock.dk/2016/03/21/out-of-the-box/#respond">Leave a comment</a></span> </div><!-- .entry-meta -->
</header><!-- .entry-header -->

<div class="entry-content">
<p>When planning a new ecommerce website, you most likely have a budget. And of course you want to spend you money wisely, in order to get the most value in terms of design and features that will help you reach your goals.</p>
<p>Typically, when evaluating different platforms, it then makes sense to ask the question: &#8220;What do we get &#8216;out of the box&#8217;?&#8221;. And that is a perfectly valid concern. Anything that you can get included from the platform vendor logically means that you don&#8217;t have to pay your developers to write the same code.</p>
<p>But choosing to use those &#8220;out of the box&#8221; features might come a a different kind of price, depending on the the layer of the application they exist in. Let&#8217;s try and take a look at some examples.<a class="more-link" href="https://blog.mortenbock.dk/2016/03/21/out-of-the-box/">Read More &raquo;</a></p>
</div><!-- .entry-content -->

<footer class="entry-footer">
<div class="entry-bottom small-part">
</div>
</footer><!-- .entry-footer -->
</article><!-- #post-## -->


<article id="post-56" class="post-56 post type-post status-publish format-standard hentry category-not-categorized">
<header class="entry-header">
<h1 class="entry-title"><a href="https://blog.mortenbock.dk/2016/02/21/an-open-standard-for-universal-one-click-purchases/" rel="bookmark">An open standard for universal one click&nbsp;purchases</a></h1> <div class="entry-meta small-part">
<span class="posted-on"><i class="fa fa-clock-o space-left-right"></i><a href="https://blog.mortenbock.dk/2016/02/21/an-open-standard-for-universal-one-click-purchases/" rel="bookmark"><time class="entry-date published" datetime="2016-02-21T19:50:04+00:00">21. February 2016</time><time class="updated" datetime="2016-03-21T10:48:06+00:00">21. March 2016</time></a></span><span class="byline"> <i class="fa fa-user space-left-right"></i><span class="author vcard"><a class="url fn n" href="https://blog.mortenbock.dk/author/mortenbock/">Morten Bock</a></span></span><span class="comments-link"><i class="fa fa-comments-o space-left-right"></i><a href="https://blog.mortenbock.dk/2016/02/21/an-open-standard-for-universal-one-click-purchases/#respond">Leave a comment</a></span> </div><!-- .entry-meta -->
</header><!-- .entry-header -->

<div class="entry-content">
<p>Every year at work, we take a few days to try and do something different from our everyday work, and se if we can live up to the name of the even: “Innovation Camp”.</p>
<p>This year I decided to try and take a look at the concept of an open standard for user-centric click-once payments. The idea is that a customer can create his shopping basket as per usual, but when he is done, then he can transfer all his billing, shipping and payment information to the merchant/gateway with one click.<a class="more-link" href="https://blog.mortenbock.dk/2016/02/21/an-open-standard-for-universal-one-click-purchases/">Read More &raquo;</a></p>
</div><!-- .entry-content -->

<footer class="entry-footer">
<div class="entry-bottom small-part">
</div>
</footer><!-- .entry-footer -->
</article><!-- #post-## -->


<article id="post-40" class="post-40 post type-post status-publish format-standard hentry category-not-categorized">
<header class="entry-header">
<h1 class="entry-title"><a href="https://blog.mortenbock.dk/2014/09/26/the-hasbang-controversy/" rel="bookmark">The hasbang controversy</a></h1> <div class="entry-meta small-part">
<span class="posted-on"><i class="fa fa-clock-o space-left-right"></i><a href="https://blog.mortenbock.dk/2014/09/26/the-hasbang-controversy/" rel="bookmark"><time class="entry-date published" datetime="2014-09-26T17:35:06+00:00">26. September 2014</time><time class="updated" datetime="2016-03-21T10:48:21+00:00">21. March 2016</time></a></span><span class="byline"> <i class="fa fa-user space-left-right"></i><span class="author vcard"><a class="url fn n" href="https://blog.mortenbock.dk/author/mortenbock/">Morten Bock</a></span></span><span class="comments-link"><i class="fa fa-comments-o space-left-right"></i><a href="https://blog.mortenbock.dk/2014/09/26/the-hasbang-controversy/#respond">Leave a comment</a></span> </div><!-- .entry-meta -->
</header><!-- .entry-header -->

<div class="entry-content">
<p>The other day I responded to a tweet about using prerendering tools to serve JS driven pages to crawlers.</p>
<div class="embed-twitter">
<blockquote class="twitter-tweet" width="550">
<p lang="en" dir="ltr">If you have to use <a href="http://t.co/1QPSt9cYoi">http://t.co/1QPSt9cYoi</a> you&#39;re doing it wrong.</p>
<p>&mdash; David J Marland (@djmarland) <a href="https://twitter.com/djmarland/status/515087881053167616">September 25, 2014</a></p></blockquote>
<p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<p>Afterwards a twitter debate followed, and as usual, much is lost in a debate limited to 140 char chunks. Basically the opinion was that if you use hashbang urls, you are the spawn of the devil, and you will kill all the kittens in the world ;).</p>
<p>I will try to present my argument why I think using hasbang urls can be an acceptable solution to a specific problem.<a class="more-link" href="https://blog.mortenbock.dk/2014/09/26/the-hasbang-controversy/">Read More &raquo;</a></p>
</div><!-- .entry-content -->

<footer class="entry-footer">
<div class="entry-bottom small-part">
</div>
</footer><!-- .entry-footer -->
</article><!-- #post-## -->


<article id="post-22" class="post-22 post type-post status-publish format-standard hentry category-not-categorized tag-google tag-windows-phone">
<header class="entry-header">
<h1 class="entry-title"><a href="https://blog.mortenbock.dk/2013/10/21/shared-google-calendars-on-the-nokia-lumia-1020/" rel="bookmark">Shared Google calendars on the Nokia Lumia&nbsp;1020</a></h1> <div class="entry-meta small-part">
<span class="posted-on"><i class="fa fa-clock-o space-left-right"></i><a href="https://blog.mortenbock.dk/2013/10/21/shared-google-calendars-on-the-nokia-lumia-1020/" rel="bookmark"><time class="entry-date published" datetime="2013-10-21T16:10:00+00:00">21. October 2013</time><time class="updated" datetime="2017-02-25T08:20:44+00:00">25. February 2017</time></a></span><span class="byline"> <i class="fa fa-user space-left-right"></i><span class="author vcard"><a class="url fn n" href="https://blog.mortenbock.dk/author/mortenbock/">Morten Bock</a></span></span> </div><!-- .entry-meta -->
</header><!-- .entry-header -->

<div class="entry-content">
<p>I just got my new Lumia 1020 which runs Windows Phone 8, and wanted to set up my Google stuff to sync with the phone. I use two factor auth, and after creating an application specific password, it synced up all my email, and my own calendars.</p>
<p>But my wife&#8217;s shared calendar did not show up, and given the history of issues between google and Windows Phone, I started searching for a solution. The Lumia 1020 is no longer using Active Sync, so all the old guides were no longer relevant. By pure luck, I stumbled on a post with this link:</p>
<p><a href="https://www.google.com/calendar/syncselect">https://www.google.com/calendar/syncselect</a></p>
<p>That will let you select which calendars should be synced when using CalDAV access, which is what the Lumia 1020 is now using.</p>
<p>You might need to remove/save/add the checkbox for syncing calendars for your google account on your phone before it shows up, but I now have the shared calendar in there as well.</p>
<p>I hope this might help out others struggling with this.</p>
</div><!-- .entry-content -->

<footer class="entry-footer">
<div class="entry-bottom small-part">
</div>
</footer><!-- .entry-footer -->
</article><!-- #post-## -->


<article id="post-24" class="post-24 post type-post status-publish format-standard hentry category-not-categorized tag-miniprofiler tag-mvc tag-umbraco">
<header class="entry-header">
<h1 class="entry-title"><a href="https://blog.mortenbock.dk/2013/09/22/profiling-mvc-views-in-umbraco-6/" rel="bookmark">Profiling MVC views in Umbraco&nbsp;6</a></h1> <div class="entry-meta small-part">
<span class="posted-on"><i class="fa fa-clock-o space-left-right"></i><a href="https://blog.mortenbock.dk/2013/09/22/profiling-mvc-views-in-umbraco-6/" rel="bookmark"><time class="entry-date published" datetime="2013-09-22T16:23:00+00:00">22. September 2013</time><time class="updated" datetime="2016-03-21T10:48:46+00:00">21. March 2016</time></a></span><span class="byline"> <i class="fa fa-user space-left-right"></i><span class="author vcard"><a class="url fn n" href="https://blog.mortenbock.dk/author/mortenbock/">Morten Bock</a></span></span><span class="comments-link"><i class="fa fa-comments-o space-left-right"></i><a href="https://blog.mortenbock.dk/2013/09/22/profiling-mvc-views-in-umbraco-6/#respond">Leave a comment</a></span> </div><!-- .entry-meta -->
</header><!-- .entry-header -->

<div class="entry-content">
<p>As you might know, <a href="http://umbraco.com/">Umbraco</a> 6 includes the <a href="http://miniprofiler.com/">MiniProfiler</a> out of the box. This is great, as it gives everyone a chance to figure out what parts of your site might not be performing as well as they could. However, I discovered that sometimes the results that you get can be somewhat misleading, and I decided to dig into it a bit further.<a class="more-link" href="https://blog.mortenbock.dk/2013/09/22/profiling-mvc-views-in-umbraco-6/">Read More &raquo;</a></p>
</div><!-- .entry-content -->

<footer class="entry-footer">
<div class="entry-bottom small-part">
</div>
</footer><!-- .entry-footer -->
</article><!-- #post-## -->


<article id="post-44" class="post-44 post type-post status-publish format-standard hentry category-not-categorized tag-energi tag-natur tag-svindel">
<header class="entry-header">
<h1 class="entry-title"><a href="https://blog.mortenbock.dk/2009/08/10/natur-energi/" rel="bookmark">Natur-Energi bruger ufine&nbsp;metoder</a></h1> <div class="entry-meta small-part">
<span class="posted-on"><i class="fa fa-clock-o space-left-right"></i><a href="https://blog.mortenbock.dk/2009/08/10/natur-energi/" rel="bookmark"><time class="entry-date published" datetime="2009-08-10T17:47:00+00:00">10. August 2009</time><time class="updated" datetime="2016-03-21T10:49:07+00:00">21. March 2016</time></a></span><span class="byline"> <i class="fa fa-user space-left-right"></i><span class="author vcard"><a class="url fn n" href="https://blog.mortenbock.dk/author/mortenbock/">Morten Bock</a></span></span><span class="comments-link"><i class="fa fa-comments-o space-left-right"></i><a href="https://blog.mortenbock.dk/2009/08/10/natur-energi/#comments">3 Comments</a></span> </div><!-- .entry-meta -->
</header><!-- .entry-header -->

<div class="entry-content">
<p>Jeg vil gerne lige gøre mit til at advare mod selskabet Natur-Energi der tilsyneladende ikke har meget respekt for forbrugernes rettigheder. Flere andre har også have uheldige oplevelser med dem, som f.eks. Tonni, der blev svindlet med nog bil streamer værk: <a href="http://ekstrabladet.dk/kup/vagthundene/article1195722.ece">http://ekstrabladet.dk/kup/vagthundene/article1195722.ece</a> og John der åbenbart skulle skifte selskab fordi han var med i en spørgeskemaundersøgelse:<a href="http://24.dk/user/johnsmedehus/perma/2009/07/19/det_er_da_halvfarligt_at_deltage_i_sprgeskemaer_p_netet">http://24.dk/user/johnsmedehus/perma/2009/07/19/det_er_da_halvfarligt_at_deltage_i_sprgeskemaer_p_netet</a></p>
<p>Og Mogens har her på facebook beskrevet noget der meget godt ligner den situation vi også er i:<a href="http://www.facebook.com/wall.php?id=59887513919">http://www.facebook.com/wall.php?id=59887513919</a></p>
<p>Humlen i det hele er at Natur-Energi synes det er helt OK at de hijacker dit el-abonnement uden at fortælle det til dig. Det eneste du skal gøre er bare lige at gøre dit og dat for at vise at du &#8220;støtter grøn energi&#8221;, og hvem gør ikke det? Det glemmer bare helt at fortælle at de selv er et el-selskab der har tænkt sig at overtage leverancen af strøm til dig. Og vupti, så får du en faktura. Hvis du prøver at ringe til dem, ja så får du lov at vente i 10 minutter til noget musik før linjen bare bliver tavs. Fedt&#8230;<a class="more-link" href="https://blog.mortenbock.dk/2009/08/10/natur-energi/">Read More &raquo;</a></p>
</div><!-- .entry-content -->

<footer class="entry-footer">
<div class="entry-bottom small-part">
</div>
</footer><!-- .entry-footer -->
</article><!-- #post-## -->


<article id="post-38" class="post-38 post type-post status-publish format-standard hentry category-not-categorized tag-google-analytics tag-javascript tag-linktracking">
<header class="entry-header">
<h1 class="entry-title"><a href="https://blog.mortenbock.dk/2007/04/15/google-analytics-outgoing-links/" rel="bookmark">Tracking all outgoing links with Google&nbsp;Analytics</a></h1> <div class="entry-meta small-part">
<span class="posted-on"><i class="fa fa-clock-o space-left-right"></i><a href="https://blog.mortenbock.dk/2007/04/15/google-analytics-outgoing-links/" rel="bookmark"><time class="entry-date published" datetime="2007-04-15T17:31:00+00:00">15. April 2007</time><time class="updated" datetime="2016-01-30T18:10:05+00:00">30. January 2016</time></a></span><span class="byline"> <i class="fa fa-user space-left-right"></i><span class="author vcard"><a class="url fn n" href="https://blog.mortenbock.dk/author/mortenbock/">Morten Bock</a></span></span><span class="comments-link"><i class="fa fa-comments-o space-left-right"></i><a href="https://blog.mortenbock.dk/2007/04/15/google-analytics-outgoing-links/#respond">Leave a comment</a></span> </div><!-- .entry-meta -->
</header><!-- .entry-header -->

<div class="entry-content">
<p>I wanted to try and find a way to track all of the outgoing links on my blog, without haven to modify the html of the link. What I found was that using javascript listeners would probably be the best solution. Actually this technique can be used for a lot of stuff, but this is what I did:</p>
<pre class="brush: jscript; title: ; notranslate" title="">
// Cross-browser implementation of element.addEventListener()
function addListener(element, type, expression, bubbling) {
bubbling = bubbling || false;

if (window.addEventListener) { // Standard
element.addEventListener(type, expression, bubbling);
return true;
} else if (window.attachEvent) { // IE
element.attachEvent('on' + type, expression);
return true;
} else return false;
}

//This is what i want to do whenever someone clicks on the page
function itHappened(evt) {

//Get the clicket element
var tg = (window.event) ? evt.srcElement : evt.target;
//If it is an A element
if (tg.nodeName == 'A') {
//And it is not an internal link
if (tg.href.indexOf(location.host) == -1) {
//Replace all odd characters, so that it works with Analytics Niavgation analysis
var url = tg.href.replace(/[^a-z|A-Z]/g, &quot;_&quot;);

var txt = tg.innerHTML.replace(/[^a-z|A-Z]/g, &quot;_&quot;);
var str = '/outgoinglink/-' + txt + '-' + url;
try {
//Track it
urchinTracker(str);
}
catch (err) {
//alert('error: ' + err);
}
}
}
}
//Add the click listener to the document
addListener(document, 'click', itHappened);
</pre>
<p>I hope you can use it. Any comments or advice is very welcome 🙂</p>
</div><!-- .entry-content -->

<footer class="entry-footer">
<div class="entry-bottom small-part">
</div>
</footer><!-- .entry-footer -->
</article><!-- #post-## -->



</main><!-- #main -->
</div><!-- #primary -->


<div id="secondary" class="widget-area" role="complementary">
<aside id="search-2" class="widget widget_search"><form role="search" method="get" class="search-form" action="https://blog.mortenbock.dk/">
<label>
<span class="screen-reader-text">Search for:</span>
<input type="search" class="search-field" placeholder="Search &hellip;" value="" name="s" />
</label>
<input type="submit" class="search-submit" value="Search" />
</form></aside>
<aside id="recent-posts-2" class="widget widget_recent_entries">
<h2 class="widget-title">Recent Posts</h2>
<ul>
<li>
<a href="https://blog.mortenbock.dk/2018/02/14/how-to-add-a-warming-up-message-to-your-umbraco-site/">How to add a Warming Up message to your Umbraco&nbsp;site</a>
</li>
<li>
<a href="https://blog.mortenbock.dk/2017/02/03/error-page-setup-in-umbraco/">Error page setup in&nbsp;Umbraco</a>
</li>
<li>
<a href="https://blog.mortenbock.dk/2016/06/06/what-is-gtm_cookies_win-in-gtm/">What is gtm_cookies_win in&nbsp;GTM?</a>
</li>
<li>
<a href="https://blog.mortenbock.dk/2016/03/21/out-of-the-box/">Out of the&nbsp;box</a>
</li>
<li>
<a href="https://blog.mortenbock.dk/2016/02/21/an-open-standard-for-universal-one-click-purchases/">An open standard for universal one click&nbsp;purchases</a>
</li>
</ul>

</aside><aside id="recent-comments-2" class="widget widget_recent_comments"><h2 class="widget-title">Recent Comments</h2> <table class="recentcommentsavatar" cellspacing="0" cellpadding="0" border="0">
<tr><td title="Heinrik Nielsen Leth" class="recentcommentsavatartop" style="height:48px; width:48px;"><img referrerpolicy="no-referrer" alt='Heinrik Nielsen Leth&#039;s avatar' src='https://2.gravatar.com/avatar/e099819737c247cc479afce6e889da64e363b92036aa71739e99945cf74ac514?s=48&#038;d=identicon&#038;r=G' srcset='https://2.gravatar.com/avatar/e099819737c247cc479afce6e889da64e363b92036aa71739e99945cf74ac514?s=48&#038;d=identicon&#038;r=G 1x, https://2.gravatar.com/avatar/e099819737c247cc479afce6e889da64e363b92036aa71739e99945cf74ac514?s=72&#038;d=identicon&#038;r=G 1.5x, https://2.gravatar.com/avatar/e099819737c247cc479afce6e889da64e363b92036aa71739e99945cf74ac514?s=96&#038;d=identicon&#038;r=G 2x, https://2.gravatar.com/avatar/e099819737c247cc479afce6e889da64e363b92036aa71739e99945cf74ac514?s=144&#038;d=identicon&#038;r=G 3x, https://2.gravatar.com/avatar/e099819737c247cc479afce6e889da64e363b92036aa71739e99945cf74ac514?s=192&#038;d=identicon&#038;r=G 4x' class='avatar avatar-48' height='48' width='48' loading='lazy' decoding='async' /></td><td class="recentcommentstexttop" style="">Heinrik Nielsen Leth on <a href="https://blog.mortenbock.dk/2009/08/10/natur-energi/comment-page-1/#comment-10129">Natur-Energi bruger ufine&hellip;</a></td></tr><tr><td title="François" class="recentcommentsavatarend" style="height:48px; width:48px;"><a href="https://www.gokam.co.uk" rel="nofollow"><img referrerpolicy="no-referrer" alt='François&#039;s avatar' src='https://2.gravatar.com/avatar/bb9304ed1c862a4ff8d37b86585090ad75f1b87169814060d8761ac31def4c80?s=48&#038;d=identicon&#038;r=G' srcset='https://2.gravatar.com/avatar/bb9304ed1c862a4ff8d37b86585090ad75f1b87169814060d8761ac31def4c80?s=48&#038;d=identicon&#038;r=G 1x, https://2.gravatar.com/avatar/bb9304ed1c862a4ff8d37b86585090ad75f1b87169814060d8761ac31def4c80?s=72&#038;d=identicon&#038;r=G 1.5x, https://2.gravatar.com/avatar/bb9304ed1c862a4ff8d37b86585090ad75f1b87169814060d8761ac31def4c80?s=96&#038;d=identicon&#038;r=G 2x, https://2.gravatar.com/avatar/bb9304ed1c862a4ff8d37b86585090ad75f1b87169814060d8761ac31def4c80?s=144&#038;d=identicon&#038;r=G 3x, https://2.gravatar.com/avatar/bb9304ed1c862a4ff8d37b86585090ad75f1b87169814060d8761ac31def4c80?s=192&#038;d=identicon&#038;r=G 4x' class='avatar avatar-48' height='48' width='48' loading='lazy' decoding='async' /></a></td><td class="recentcommentstextend" style=""><a href="https://www.gokam.co.uk" rel="nofollow">François</a> on <a href="https://blog.mortenbock.dk/2016/06/06/what-is-gtm_cookies_win-in-gtm/comment-page-1/#comment-10034">What is gtm_cookies_win in&hellip;</a></td></tr><tr><td title="frankfu1122" class="recentcommentsavatarend" style="height:48px; width:48px;"><a href="http://catmasphere.wordpress.com" rel="nofollow"><img referrerpolicy="no-referrer" alt='frankfu1122&#039;s avatar' src='https://2.gravatar.com/avatar/2f6a197299bfe6a58f4b29374ed938e180bf5bebcc65e8dea430cda8173f50e9?s=48&#038;d=identicon&#038;r=G' srcset='https://2.gravatar.com/avatar/2f6a197299bfe6a58f4b29374ed938e180bf5bebcc65e8dea430cda8173f50e9?s=48&#038;d=identicon&#038;r=G 1x, https://2.gravatar.com/avatar/2f6a197299bfe6a58f4b29374ed938e180bf5bebcc65e8dea430cda8173f50e9?s=72&#038;d=identicon&#038;r=G 1.5x, https://2.gravatar.com/avatar/2f6a197299bfe6a58f4b29374ed938e180bf5bebcc65e8dea430cda8173f50e9?s=96&#038;d=identicon&#038;r=G 2x, https://2.gravatar.com/avatar/2f6a197299bfe6a58f4b29374ed938e180bf5bebcc65e8dea430cda8173f50e9?s=144&#038;d=identicon&#038;r=G 3x, https://2.gravatar.com/avatar/2f6a197299bfe6a58f4b29374ed938e180bf5bebcc65e8dea430cda8173f50e9?s=192&#038;d=identicon&#038;r=G 4x' class='avatar avatar-48' height='48' width='48' loading='lazy' decoding='async' /></a></td><td class="recentcommentstextend" style=""><a href="http://catmasphere.wordpress.com" rel="nofollow">frankfu1122</a> on <a href="https://blog.mortenbock.dk/2018/02/14/how-to-add-a-warming-up-message-to-your-umbraco-site/comment-page-1/#comment-9775">How to add a Warming Up messag&hellip;</a></td></tr><tr><td title="Rune Gregersen" class="recentcommentsavatarend" style="height:48px; width:48px;"><img referrerpolicy="no-referrer" alt='Rune Gregersen&#039;s avatar' src='https://0.gravatar.com/avatar/ffd60acc03b83ad423477bb3dfce39d6e2f70c65fd6b7cf2e5fc2ea64e4994a3?s=48&#038;d=identicon&#038;r=G' srcset='https://0.gravatar.com/avatar/ffd60acc03b83ad423477bb3dfce39d6e2f70c65fd6b7cf2e5fc2ea64e4994a3?s=48&#038;d=identicon&#038;r=G 1x, https://0.gravatar.com/avatar/ffd60acc03b83ad423477bb3dfce39d6e2f70c65fd6b7cf2e5fc2ea64e4994a3?s=72&#038;d=identicon&#038;r=G 1.5x, https://0.gravatar.com/avatar/ffd60acc03b83ad423477bb3dfce39d6e2f70c65fd6b7cf2e5fc2ea64e4994a3?s=96&#038;d=identicon&#038;r=G 2x, https://0.gravatar.com/avatar/ffd60acc03b83ad423477bb3dfce39d6e2f70c65fd6b7cf2e5fc2ea64e4994a3?s=144&#038;d=identicon&#038;r=G 3x, https://0.gravatar.com/avatar/ffd60acc03b83ad423477bb3dfce39d6e2f70c65fd6b7cf2e5fc2ea64e4994a3?s=192&#038;d=identicon&#038;r=G 4x' class='avatar avatar-48' height='48' width='48' loading='lazy' decoding='async' /></td><td class="recentcommentstextend" style="">Rune Gregersen on <a href="https://blog.mortenbock.dk/2017/02/03/error-page-setup-in-umbraco/comment-page-1/#comment-9763">Error page setup in&nbsp;Umbra&hellip;</a></td></tr><tr><td title="Norbert" class="recentcommentsavatarend" style="height:48px; width:48px;"><img referrerpolicy="no-referrer" alt='Norbert&#039;s avatar' src='https://2.gravatar.com/avatar/b4a6e7f8bf5dbe541e70d4c028ca235817e3d9b2338430140b5513631f0c5498?s=48&#038;d=identicon&#038;r=G' srcset='https://2.gravatar.com/avatar/b4a6e7f8bf5dbe541e70d4c028ca235817e3d9b2338430140b5513631f0c5498?s=48&#038;d=identicon&#038;r=G 1x, https://2.gravatar.com/avatar/b4a6e7f8bf5dbe541e70d4c028ca235817e3d9b2338430140b5513631f0c5498?s=72&#038;d=identicon&#038;r=G 1.5x, https://2.gravatar.com/avatar/b4a6e7f8bf5dbe541e70d4c028ca235817e3d9b2338430140b5513631f0c5498?s=96&#038;d=identicon&#038;r=G 2x, https://2.gravatar.com/avatar/b4a6e7f8bf5dbe541e70d4c028ca235817e3d9b2338430140b5513631f0c5498?s=144&#038;d=identicon&#038;r=G 3x, https://2.gravatar.com/avatar/b4a6e7f8bf5dbe541e70d4c028ca235817e3d9b2338430140b5513631f0c5498?s=192&#038;d=identicon&#038;r=G 4x' class='avatar avatar-48' height='48' width='48' loading='lazy' decoding='async' /></td><td class="recentcommentstextend" style="">Norbert on <a href="https://blog.mortenbock.dk/2017/02/03/error-page-setup-in-umbraco/comment-page-1/#comment-9481">Error page setup in&nbsp;Umbra&hellip;</a></td></tr> </table>
</aside><aside id="archives-2" class="widget widget_archive"><h2 class="widget-title">Archives</h2>
<ul>
<li><a href='https://blog.mortenbock.dk/2018/02/'>February 2018</a></li>
<li><a href='https://blog.mortenbock.dk/2017/02/'>February 2017</a></li>
<li><a href='https://blog.mortenbock.dk/2016/06/'>June 2016</a></li>
<li><a href='https://blog.mortenbock.dk/2016/03/'>March 2016</a></li>
<li><a href='https://blog.mortenbock.dk/2016/02/'>February 2016</a></li>
<li><a href='https://blog.mortenbock.dk/2014/09/'>September 2014</a></li>
<li><a href='https://blog.mortenbock.dk/2013/10/'>October 2013</a></li>
<li><a href='https://blog.mortenbock.dk/2013/09/'>September 2013</a></li>
<li><a href='https://blog.mortenbock.dk/2009/08/'>August 2009</a></li>
<li><a href='https://blog.mortenbock.dk/2007/04/'>April 2007</a></li>
</ul>

</aside><aside id="categories-2" class="widget widget_categories"><h2 class="widget-title">Categories</h2>
<ul>
<li class="cat-item cat-item-18689"><a href="https://blog.mortenbock.dk/category/not-categorized/">Not categorized</a>
</li>
</ul>

</aside><aside id="meta-2" class="widget widget_meta"><h2 class="widget-title">Meta</h2>
<ul>
<li><a class="click-register" href="https://wordpress.com/start?ref=wplogin">Create account</a></li> <li><a href="https://f2467e96c0454199ab4bbd67007edab7.wordpress.com/wp-login.php">Log in</a></li>
<li><a href="https://blog.mortenbock.dk/feed/">Entries feed</a></li>
<li><a href="https://blog.mortenbock.dk/comments/feed/">Comments feed</a></li>

<li><a href="https://wordpress.com/" title="Powered by WordPress, state-of-the-art semantic personal publishing platform.">WordPress.com</a></li>
</ul>

</aside></div><!-- #secondary -->

</div><!-- #content -->

<footer id="colophon" class="site-footer" role="contentinfo">


<div id="tertiary" class="widget-areas clear" role="complementary">
<div class="widget-area" id="footer-sidebar-1">
<aside id="search-3" class="widget widget_search"><form role="search" method="get" class="search-form" action="https://blog.mortenbock.dk/">
<label>
<span class="screen-reader-text">Search for:</span>
<input type="search" class="search-field" placeholder="Search &hellip;" value="" name="s" />
</label>
<input type="submit" class="search-submit" value="Search" />
</form></aside>
<aside id="recent-posts-3" class="widget widget_recent_entries">
<h2 class="widget-title">Recent Posts</h2>
<ul>
<li>
<a href="https://blog.mortenbock.dk/2018/02/14/how-to-add-a-warming-up-message-to-your-umbraco-site/">How to add a Warming Up message to your Umbraco&nbsp;site</a>
</li>
<li>
<a href="https://blog.mortenbock.dk/2017/02/03/error-page-setup-in-umbraco/">Error page setup in&nbsp;Umbraco</a>
</li>
<li>
<a href="https://blog.mortenbock.dk/2016/06/06/what-is-gtm_cookies_win-in-gtm/">What is gtm_cookies_win in&nbsp;GTM?</a>
</li>
<li>
<a href="https://blog.mortenbock.dk/2016/03/21/out-of-the-box/">Out of the&nbsp;box</a>
</li>
<li>
<a href="https://blog.mortenbock.dk/2016/02/21/an-open-standard-for-universal-one-click-purchases/">An open standard for universal one click&nbsp;purchases</a>
</li>
</ul>

</aside><aside id="recent-comments-3" class="widget widget_recent_comments"><h2 class="widget-title">Recent Comments</h2> <table class="recentcommentsavatar" cellspacing="0" cellpadding="0" border="0">
<tr><td title="Heinrik Nielsen Leth" class="recentcommentsavatartop" style="height:48px; width:48px;"><img referrerpolicy="no-referrer" alt='Heinrik Nielsen Leth&#039;s avatar' src='https://2.gravatar.com/avatar/e099819737c247cc479afce6e889da64e363b92036aa71739e99945cf74ac514?s=48&#038;d=identicon&#038;r=G' srcset='https://2.gravatar.com/avatar/e099819737c247cc479afce6e889da64e363b92036aa71739e99945cf74ac514?s=48&#038;d=identicon&#038;r=G 1x, https://2.gravatar.com/avatar/e099819737c247cc479afce6e889da64e363b92036aa71739e99945cf74ac514?s=72&#038;d=identicon&#038;r=G 1.5x, https://2.gravatar.com/avatar/e099819737c247cc479afce6e889da64e363b92036aa71739e99945cf74ac514?s=96&#038;d=identicon&#038;r=G 2x, https://2.gravatar.com/avatar/e099819737c247cc479afce6e889da64e363b92036aa71739e99945cf74ac514?s=144&#038;d=identicon&#038;r=G 3x, https://2.gravatar.com/avatar/e099819737c247cc479afce6e889da64e363b92036aa71739e99945cf74ac514?s=192&#038;d=identicon&#038;r=G 4x' class='avatar avatar-48' height='48' width='48' loading='lazy' decoding='async' /></td><td class="recentcommentstexttop" style="">Heinrik Nielsen Leth on <a href="https://blog.mortenbock.dk/2009/08/10/natur-energi/comment-page-1/#comment-10129">Natur-Energi bruger ufine&hellip;</a></td></tr><tr><td title="François" class="recentcommentsavatarend" style="height:48px; width:48px;"><a href="https://www.gokam.co.uk" rel="nofollow"><img referrerpolicy="no-referrer" alt='François&#039;s avatar' src='https://2.gravatar.com/avatar/bb9304ed1c862a4ff8d37b86585090ad75f1b87169814060d8761ac31def4c80?s=48&#038;d=identicon&#038;r=G' srcset='https://2.gravatar.com/avatar/bb9304ed1c862a4ff8d37b86585090ad75f1b87169814060d8761ac31def4c80?s=48&#038;d=identicon&#038;r=G 1x, https://2.gravatar.com/avatar/bb9304ed1c862a4ff8d37b86585090ad75f1b87169814060d8761ac31def4c80?s=72&#038;d=identicon&#038;r=G 1.5x, https://2.gravatar.com/avatar/bb9304ed1c862a4ff8d37b86585090ad75f1b87169814060d8761ac31def4c80?s=96&#038;d=identicon&#038;r=G 2x, https://2.gravatar.com/avatar/bb9304ed1c862a4ff8d37b86585090ad75f1b87169814060d8761ac31def4c80?s=144&#038;d=identicon&#038;r=G 3x, https://2.gravatar.com/avatar/bb9304ed1c862a4ff8d37b86585090ad75f1b87169814060d8761ac31def4c80?s=192&#038;d=identicon&#038;r=G 4x' class='avatar avatar-48' height='48' width='48' loading='lazy' decoding='async' /></a></td><td class="recentcommentstextend" style=""><a href="https://www.gokam.co.uk" rel="nofollow">François</a> on <a href="https://blog.mortenbock.dk/2016/06/06/what-is-gtm_cookies_win-in-gtm/comment-page-1/#comment-10034">What is gtm_cookies_win in&hellip;</a></td></tr><tr><td title="frankfu1122" class="recentcommentsavatarend" style="height:48px; width:48px;"><a href="http://catmasphere.wordpress.com" rel="nofollow"><img referrerpolicy="no-referrer" alt='frankfu1122&#039;s avatar' src='https://2.gravatar.com/avatar/2f6a197299bfe6a58f4b29374ed938e180bf5bebcc65e8dea430cda8173f50e9?s=48&#038;d=identicon&#038;r=G' srcset='https://2.gravatar.com/avatar/2f6a197299bfe6a58f4b29374ed938e180bf5bebcc65e8dea430cda8173f50e9?s=48&#038;d=identicon&#038;r=G 1x, https://2.gravatar.com/avatar/2f6a197299bfe6a58f4b29374ed938e180bf5bebcc65e8dea430cda8173f50e9?s=72&#038;d=identicon&#038;r=G 1.5x, https://2.gravatar.com/avatar/2f6a197299bfe6a58f4b29374ed938e180bf5bebcc65e8dea430cda8173f50e9?s=96&#038;d=identicon&#038;r=G 2x, https://2.gravatar.com/avatar/2f6a197299bfe6a58f4b29374ed938e180bf5bebcc65e8dea430cda8173f50e9?s=144&#038;d=identicon&#038;r=G 3x, https://2.gravatar.com/avatar/2f6a197299bfe6a58f4b29374ed938e180bf5bebcc65e8dea430cda8173f50e9?s=192&#038;d=identicon&#038;r=G 4x' class='avatar avatar-48' height='48' width='48' loading='lazy' decoding='async' /></a></td><td class="recentcommentstextend" style=""><a href="http://catmasphere.wordpress.com" rel="nofollow">frankfu1122</a> on <a href="https://blog.mortenbock.dk/2018/02/14/how-to-add-a-warming-up-message-to-your-umbraco-site/comment-page-1/#comment-9775">How to add a Warming Up messag&hellip;</a></td></tr><tr><td title="Rune Gregersen" class="recentcommentsavatarend" style="height:48px; width:48px;"><img referrerpolicy="no-referrer" alt='Rune Gregersen&#039;s avatar' src='https://0.gravatar.com/avatar/ffd60acc03b83ad423477bb3dfce39d6e2f70c65fd6b7cf2e5fc2ea64e4994a3?s=48&#038;d=identicon&#038;r=G' srcset='https://0.gravatar.com/avatar/ffd60acc03b83ad423477bb3dfce39d6e2f70c65fd6b7cf2e5fc2ea64e4994a3?s=48&#038;d=identicon&#038;r=G 1x, https://0.gravatar.com/avatar/ffd60acc03b83ad423477bb3dfce39d6e2f70c65fd6b7cf2e5fc2ea64e4994a3?s=72&#038;d=identicon&#038;r=G 1.5x, https://0.gravatar.com/avatar/ffd60acc03b83ad423477bb3dfce39d6e2f70c65fd6b7cf2e5fc2ea64e4994a3?s=96&#038;d=identicon&#038;r=G 2x, https://0.gravatar.com/avatar/ffd60acc03b83ad423477bb3dfce39d6e2f70c65fd6b7cf2e5fc2ea64e4994a3?s=144&#038;d=identicon&#038;r=G 3x, https://0.gravatar.com/avatar/ffd60acc03b83ad423477bb3dfce39d6e2f70c65fd6b7cf2e5fc2ea64e4994a3?s=192&#038;d=identicon&#038;r=G 4x' class='avatar avatar-48' height='48' width='48' loading='lazy' decoding='async' /></td><td class="recentcommentstextend" style="">Rune Gregersen on <a href="https://blog.mortenbock.dk/2017/02/03/error-page-setup-in-umbraco/comment-page-1/#comment-9763">Error page setup in&nbsp;Umbra&hellip;</a></td></tr><tr><td title="Norbert" class="recentcommentsavatarend" style="height:48px; width:48px;"><img referrerpolicy="no-referrer" alt='Norbert&#039;s avatar' src='https://2.gravatar.com/avatar/b4a6e7f8bf5dbe541e70d4c028ca235817e3d9b2338430140b5513631f0c5498?s=48&#038;d=identicon&#038;r=G' srcset='https://2.gravatar.com/avatar/b4a6e7f8bf5dbe541e70d4c028ca235817e3d9b2338430140b5513631f0c5498?s=48&#038;d=identicon&#038;r=G 1x, https://2.gravatar.com/avatar/b4a6e7f8bf5dbe541e70d4c028ca235817e3d9b2338430140b5513631f0c5498?s=72&#038;d=identicon&#038;r=G 1.5x, https://2.gravatar.com/avatar/b4a6e7f8bf5dbe541e70d4c028ca235817e3d9b2338430140b5513631f0c5498?s=96&#038;d=identicon&#038;r=G 2x, https://2.gravatar.com/avatar/b4a6e7f8bf5dbe541e70d4c028ca235817e3d9b2338430140b5513631f0c5498?s=144&#038;d=identicon&#038;r=G 3x, https://2.gravatar.com/avatar/b4a6e7f8bf5dbe541e70d4c028ca235817e3d9b2338430140b5513631f0c5498?s=192&#038;d=identicon&#038;r=G 4x' class='avatar avatar-48' height='48' width='48' loading='lazy' decoding='async' /></td><td class="recentcommentstextend" style="">Norbert on <a href="https://blog.mortenbock.dk/2017/02/03/error-page-setup-in-umbraco/comment-page-1/#comment-9481">Error page setup in&nbsp;Umbra&hellip;</a></td></tr> </table>
</aside><aside id="archives-3" class="widget widget_archive"><h2 class="widget-title">Archives</h2>
<ul>
<li><a href='https://blog.mortenbock.dk/2018/02/'>February 2018</a></li>
<li><a href='https://blog.mortenbock.dk/2017/02/'>February 2017</a></li>
<li><a href='https://blog.mortenbock.dk/2016/06/'>June 2016</a></li>
<li><a href='https://blog.mortenbock.dk/2016/03/'>March 2016</a></li>
<li><a href='https://blog.mortenbock.dk/2016/02/'>February 2016</a></li>
<li><a href='https://blog.mortenbock.dk/2014/09/'>September 2014</a></li>
<li><a href='https://blog.mortenbock.dk/2013/10/'>October 2013</a></li>
<li><a href='https://blog.mortenbock.dk/2013/09/'>September 2013</a></li>
<li><a href='https://blog.mortenbock.dk/2009/08/'>August 2009</a></li>
<li><a href='https://blog.mortenbock.dk/2007/04/'>April 2007</a></li>
</ul>

</aside><aside id="categories-3" class="widget widget_categories"><h2 class="widget-title">Categories</h2>
<ul>
<li class="cat-item cat-item-18689"><a href="https://blog.mortenbock.dk/category/not-categorized/">Not categorized</a>
</li>
</ul>

</aside><aside id="meta-3" class="widget widget_meta"><h2 class="widget-title">Meta</h2>
<ul>
<li><a class="click-register" href="https://wordpress.com/start?ref=wplogin">Create account</a></li> <li><a href="https://f2467e96c0454199ab4bbd67007edab7.wordpress.com/wp-login.php">Log in</a></li>
<li><a href="https://blog.mortenbock.dk/feed/">Entries feed</a></li>
<li><a href="https://blog.mortenbock.dk/comments/feed/">Comments feed</a></li>

<li><a href="https://wordpress.com/" title="Powered by WordPress, state-of-the-art semantic personal publishing platform.">WordPress.com</a></li>
</ul>

</aside> </div>


</div><!-- #secondary -->

<div class="site-info small-part">
<a href="https://wordpress.com/?ref=footer_website" rel="nofollow">Create a free website or blog at WordPress.com.</a>

</div><!-- .site-info -->
</footer><!-- #colophon -->
</div><!-- #page -->
<a href="#top" class="to-top"><i class="fa fa-angle-up fa-lg"><span class="screen-reader-text">Back to top</span></i></a>
<!-- -->
<script type="speculationrules">
{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/files\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/pub\/nucleare\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
</script>
<script type="text/javascript" src="//0.gravatar.com/js/hovercards/hovercards.min.js?ver=202538924dcd77a86c6f1d3698ec27fc5da92b28585ddad3ee636c0397cf312193b2a1" id="grofiles-cards-js"></script>
<script type="text/javascript" id="wpgroho-js-extra">
/* <![CDATA[ */
var WPGroHo = {"my_hash":""};
/* ]]> */
</script>
<script crossorigin='anonymous' type='text/javascript' src='https://s2.wp.com/wp-content/mu-plugins/gravatar-hovercards/wpgroho.js?m=1610363240i'></script>

<script>
// Initialize and attach hovercards to all gravatars
( function() {
function init() {
if ( typeof Gravatar === 'undefined' ) {
return;
}

if ( typeof Gravatar.init !== 'function' ) {
return;
}

Gravatar.profile_cb = function ( hash, id ) {
WPGroHo.syncProfileData( hash, id );
};

Gravatar.my_hash = WPGroHo.my_hash;
Gravatar.init(
'body',
'#wp-admin-bar-my-account',
{
i18n: {
'Edit your profile →': 'Edit your profile →',
'View profile →': 'View profile →',
'Contact': 'Contact',
'Send money': 'Send money',
'Sorry, we are unable to load this Gravatar profile.': 'Sorry, we are unable to load this Gravatar profile.',
'Gravatar not found.': 'Gravatar not found.',
'Too Many Requests.': 'Too Many Requests.',
'Internal Server Error.': 'Internal Server Error.',
'Is this you?': 'Is this you?',
'Claim your free profile.': 'Claim your free profile.',
'Email': 'Email',
'Home Phone': 'Home Phone',
'Work Phone': 'Work Phone',
'Cell Phone': 'Cell Phone',
'Contact Form': 'Contact Form',
'Calendar': 'Calendar',
},
}
);
}

if ( document.readyState !== 'loading' ) {
init();
} else {
document.addEventListener( 'DOMContentLoaded', init );
}
} )();
</script>

<div style="display:none">
<div class="grofile-hash-map-322139124a85d969d098d1701b052e74">
</div>
<div class="grofile-hash-map-ec1948fb7b0cd2ff02f7d580634e7f36">
</div>
<div class="grofile-hash-map-15eeb9790933721436db5c20aa38cabc">
</div>
<div class="grofile-hash-map-ee9e8d2df75e5e2ac78f65de2a9bc71f">
</div>
<div class="grofile-hash-map-f59e22b54f499274912f98122a67b275">
</div>
</div>
<!-- CCPA [start] -->
<script type="text/javascript">
( function () {

var setupPrivacy = function() {

// Minimal Mozilla Cookie library
// https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie/Simple_document.cookie_framework
var cookieLib = window.cookieLib = {getItem:function(e){return e&&decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*"+encodeURIComponent(e).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=\\s*([^;]*).*$)|^.*$"),"$1"))||null},setItem:function(e,o,n,t,r,i){if(!e||/^(?:expires|max\-age|path|domain|secure)$/i.test(e))return!1;var c="";if(n)switch(n.constructor){case Number:c=n===1/0?"; expires=Fri, 31 Dec 9999 23:59:59 GMT":"; max-age="+n;break;case String:c="; expires="+n;break;case Date:c="; expires="+n.toUTCString()}return"rootDomain"!==r&&".rootDomain"!==r||(r=(".rootDomain"===r?".":"")+document.location.hostname.split(".").slice(-2).join(".")),document.cookie=encodeURIComponent(e)+"="+encodeURIComponent(o)+c+(r?"; domain="+r:"")+(t?"; path="+t:"")+(i?"; secure":""),!0}};

// Implement IAB USP API.
window.__uspapi = function( command, version, callback ) {

// Validate callback.
if ( typeof callback !== 'function' ) {
return;
}

// Validate the given command.
if ( command !== 'getUSPData' || version !== 1 ) {
callback( null, false );
return;
}

// Check for GPC. If set, override any stored cookie.
if ( navigator.globalPrivacyControl ) {
callback( { version: 1, uspString: '1YYN' }, true );
return;
}

// Check for cookie.
var consent = cookieLib.getItem( 'usprivacy' );

// Invalid cookie.
if ( null === consent ) {
callback( null, false );
return;
}

// Everything checks out. Fire the provided callback with the consent data.
callback( { version: 1, uspString: consent }, true );
};

// Initialization.
document.addEventListener( 'DOMContentLoaded', function() {

// Internal functions.
var setDefaultOptInCookie = function() {
var value = '1YNN';
var domain = '.wordpress.com' === location.hostname.slice( -14 ) ? '.rootDomain' : location.hostname;
cookieLib.setItem( 'usprivacy', value, 365 * 24 * 60 * 60, '/', domain );
};

var setDefaultOptOutCookie = function() {
var value = '1YYN';
var domain = '.wordpress.com' === location.hostname.slice( -14 ) ? '.rootDomain' : location.hostname;
cookieLib.setItem( 'usprivacy', value, 24 * 60 * 60, '/', domain );
};

var setDefaultNotApplicableCookie = function() {
var value = '1---';
var domain = '.wordpress.com' === location.hostname.slice( -14 ) ? '.rootDomain' : location.hostname;
cookieLib.setItem( 'usprivacy', value, 24 * 60 * 60, '/', domain );
};

var setCcpaAppliesCookie = function( applies ) {
var domain = '.wordpress.com' === location.hostname.slice( -14 ) ? '.rootDomain' : location.hostname;
cookieLib.setItem( 'ccpa_applies', applies, 24 * 60 * 60, '/', domain );
}

var maybeCallDoNotSellCallback = function() {
if ( 'function' === typeof window.doNotSellCallback ) {
return window.doNotSellCallback();
}

return false;
}

// Look for usprivacy cookie first.
var usprivacyCookie = cookieLib.getItem( 'usprivacy' );

// Found a usprivacy cookie.
if ( null !== usprivacyCookie ) {

// If the cookie indicates that CCPA does not apply, then bail.
if ( '1---' === usprivacyCookie ) {
return;
}

// CCPA applies, so call our callback to add Do Not Sell link to the page.
maybeCallDoNotSellCallback();

// We're all done, no more processing needed.
return;
}

// We don't have a usprivacy cookie, so check to see if we have a CCPA applies cookie.
var ccpaCookie = cookieLib.getItem( 'ccpa_applies' );

// No CCPA applies cookie found, so we'll need to geolocate if this visitor is from California.
// This needs to happen client side because we do not have region geo data in our $SERVER headers,
// only country data -- therefore we can't vary cache on the region.
if ( null === ccpaCookie ) {

var request = new XMLHttpRequest();
request.open( 'GET', 'https://public-api.wordpress.com/geo/', true );

request.onreadystatechange = function () {
if ( 4 === this.readyState ) {
if ( 200 === this.status ) {

// Got a geo response. Parse out the region data.
var data = JSON.parse( this.response );
var region = data.region ? data.region.toLowerCase() : '';
var ccpa_applies = ['california', 'colorado', 'connecticut', 'delaware', 'indiana', 'iowa', 'montana', 'new jersey', 'oregon', 'tennessee', 'texas', 'utah', 'virginia'].indexOf( region ) > -1;
// Set CCPA applies cookie. This keeps us from having to make a geo request too frequently.
setCcpaAppliesCookie( ccpa_applies );

// Check if CCPA applies to set the proper usprivacy cookie.
if ( ccpa_applies ) {
if ( maybeCallDoNotSellCallback() ) {
// Do Not Sell link added, so set default opt-in.
setDefaultOptInCookie();
} else {
// Failed showing Do Not Sell link as required, so default to opt-OUT just to be safe.
setDefaultOptOutCookie();
}
} else {
// CCPA does not apply.
setDefaultNotApplicableCookie();
}
} else {
// Could not geo, so let's assume for now that CCPA applies to be safe.
setCcpaAppliesCookie( true );
if ( maybeCallDoNotSellCallback() ) {
// Do Not Sell link added, so set default opt-in.
setDefaultOptInCookie();
} else {
// Failed showing Do Not Sell link as required, so default to opt-OUT just to be safe.
setDefaultOptOutCookie();
}
}
}
};

// Send the geo request.
request.send();
} else {
// We found a CCPA applies cookie.
if ( ccpaCookie === 'true' ) {
if ( maybeCallDoNotSellCallback() ) {
// Do Not Sell link added, so set default opt-in.
setDefaultOptInCookie();
} else {
// Failed showing Do Not Sell link as required, so default to opt-OUT just to be safe.
setDefaultOptOutCookie();
}
} else {
// CCPA does not apply.
setDefaultNotApplicableCookie();
}
}
} );
};

// Kickoff initialization.
if ( window.defQueue && defQueue.isLOHP && defQueue.isLOHP === 2020 ) {
defQueue.items.push( setupPrivacy );
} else {
setupPrivacy();
}

} )();
</script>

<!-- CCPA [end] -->
<div id="actionbar" dir="ltr" style="display: none;"
class="actnbr-pub-nucleare actnbr-has-follow actnbr-has-actions">
<ul>
<li class="actnbr-btn actnbr-hidden">
<a class="actnbr-action actnbr-actn-follow " href="">
<svg class="gridicon" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path clip-rule="evenodd" d="m4 4.5h12v6.5h1.5v-6.5-1.5h-1.5-12-1.5v1.5 10.5c0 1.1046.89543 2 2 2h7v-1.5h-7c-.27614 0-.5-.2239-.5-.5zm10.5 2h-9v1.5h9zm-5 3h-4v1.5h4zm3.5 1.5h-1v1h1zm-1-1.5h-1.5v1.5 1 1.5h1.5 1 1.5v-1.5-1-1.5h-1.5zm-2.5 2.5h-4v1.5h4zm6.5 1.25h1.5v2.25h2.25v1.5h-2.25v2.25h-1.5v-2.25h-2.25v-1.5h2.25z" fill-rule="evenodd"></path></svg>
<span>Subscribe</span>
</a>
<a class="actnbr-action actnbr-actn-following no-display" href="">
<svg class="gridicon" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill-rule="evenodd" clip-rule="evenodd" d="M16 4.5H4V15C4 15.2761 4.22386 15.5 4.5 15.5H11.5V17H4.5C3.39543 17 2.5 16.1046 2.5 15V4.5V3H4H16H17.5V4.5V12.5H16V4.5ZM5.5 6.5H14.5V8H5.5V6.5ZM5.5 9.5H9.5V11H5.5V9.5ZM12 11H13V12H12V11ZM10.5 9.5H12H13H14.5V11V12V13.5H13H12H10.5V12V11V9.5ZM5.5 12H9.5V13.5H5.5V12Z" fill="#008A20"></path><path class="following-icon-tick" d="M13.5 16L15.5 18L19 14.5" stroke="#008A20" stroke-width="1.5"></path></svg>
<span>Subscribed</span>
</a>
<div class="actnbr-popover tip tip-top-left actnbr-notice" id="follow-bubble">
<div class="tip-arrow"></div>
<div class="tip-inner actnbr-follow-bubble">
<ul>
<li class="actnbr-sitename">
<a href="https://blog.mortenbock.dk">
<img loading='lazy' alt='' src='https://s2.wp.com/i/logo/wpcom-gray-white.png?m=1479929237i' srcset='https://s2.wp.com/i/logo/wpcom-gray-white.png 1x' class='avatar avatar-50' height='50' width='50' /> Morten Bock </a>
</li>
<div class="actnbr-message no-display"></div>
<form method="post" action="https://subscribe.wordpress.com" accept-charset="utf-8" style="display: none;">
<div>
<input type="email" name="email" placeholder="Enter your email address" class="actnbr-email-field" aria-label="Enter your email address" />
</div>
<input type="hidden" name="action" value="subscribe" />
<input type="hidden" name="blog_id" value="105791522" />
<input type="hidden" name="source" value="https://blog.mortenbock.dk/" />
<input type="hidden" name="sub-type" value="actionbar-follow" />
<input type="hidden" id="_wpnonce" name="_wpnonce" value="8cda9d3054" /> <div class="actnbr-button-wrap">
<button type="submit" value="Sign me up">
Sign me up </button>
</div>
</form>
<li class="actnbr-login-nudge">
<div>
Already have a WordPress.com account? <a href="https://wordpress.com/log-in?redirect_to=https%3A%2F%2Fr-login.wordpress.com%2Fremote-login.php%3Faction%3Dlink%26back%3Dhttps%253A%252F%252Fblog.mortenbock.dk%252F2018%252F02%252F14%252Fhow-to-add-a-warming-up-message-to-your-umbraco-site%252F">Log in now.</a> </div>
</li>
</ul>
</div>
</div>
</li>
<li class="actnbr-btn actnbr-hidden no-display" onclick="javascript:__tcfapi( 'showUi' );">
<a class="actnbr-action actnbr-actn-privacy" href="#">
<svg class="gridicon gridicons-info-outline" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g><path d="M13 9h-2V7h2v2zm0 2h-2v6h2v-6zm-1-7c-4.41 0-8 3.59-8 8s3.59 8 8 8 8-3.59 8-8-3.59-8-8-8m0-2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2z"/></g></svg> <span>Privacy </span>
</a>
</li>
<li class="actnbr-ellipsis actnbr-hidden">
<svg class="gridicon gridicons-ellipsis" height="24" width="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g><path d="M7 12c0 1.104-.896 2-2 2s-2-.896-2-2 .896-2 2-2 2 .896 2 2zm12-2c-1.104 0-2 .896-2 2s.896 2 2 2 2-.896 2-2-.896-2-2-2zm-7 0c-1.104 0-2 .896-2 2s.896 2 2 2 2-.896 2-2-.896-2-2-2z"/></g></svg> <div class="actnbr-popover tip tip-top-left actnbr-more">
<div class="tip-arrow"></div>
<div class="tip-inner">
<ul>
<li class="actnbr-sitename">
<a href="https://blog.mortenbock.dk">
<img loading='lazy' alt='' src='https://s2.wp.com/i/logo/wpcom-gray-white.png?m=1479929237i' srcset='https://s2.wp.com/i/logo/wpcom-gray-white.png 1x' class='avatar avatar-50' height='50' width='50' /> Morten Bock </a>
</li>
<li class="actnbr-folded-follow">
<a class="actnbr-action actnbr-actn-follow " href="">
<svg class="gridicon" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path clip-rule="evenodd" d="m4 4.5h12v6.5h1.5v-6.5-1.5h-1.5-12-1.5v1.5 10.5c0 1.1046.89543 2 2 2h7v-1.5h-7c-.27614 0-.5-.2239-.5-.5zm10.5 2h-9v1.5h9zm-5 3h-4v1.5h4zm3.5 1.5h-1v1h1zm-1-1.5h-1.5v1.5 1 1.5h1.5 1 1.5v-1.5-1-1.5h-1.5zm-2.5 2.5h-4v1.5h4zm6.5 1.25h1.5v2.25h2.25v1.5h-2.25v2.25h-1.5v-2.25h-2.25v-1.5h2.25z" fill-rule="evenodd"></path></svg>
<span>Subscribe</span>
</a>
<a class="actnbr-action actnbr-actn-following no-display" href="">
<svg class="gridicon" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill-rule="evenodd" clip-rule="evenodd" d="M16 4.5H4V15C4 15.2761 4.22386 15.5 4.5 15.5H11.5V17H4.5C3.39543 17 2.5 16.1046 2.5 15V4.5V3H4H16H17.5V4.5V12.5H16V4.5ZM5.5 6.5H14.5V8H5.5V6.5ZM5.5 9.5H9.5V11H5.5V9.5ZM12 11H13V12H12V11ZM10.5 9.5H12H13H14.5V11V12V13.5H13H12H10.5V12V11V9.5ZM5.5 12H9.5V13.5H5.5V12Z" fill="#008A20"></path><path class="following-icon-tick" d="M13.5 16L15.5 18L19 14.5" stroke="#008A20" stroke-width="1.5"></path></svg>
<span>Subscribed</span>
</a>
</li>
<li class="actnbr-signup"><a href="https://wordpress.com/start/">Sign up</a></li>
<li class="actnbr-login"><a href="https://wordpress.com/log-in?redirect_to=https%3A%2F%2Fr-login.wordpress.com%2Fremote-login.php%3Faction%3Dlink%26back%3Dhttps%253A%252F%252Fblog.mortenbock.dk%252F2018%252F02%252F14%252Fhow-to-add-a-warming-up-message-to-your-umbraco-site%252F">Log in</a></li>
<li class="flb-report">
<a href="https://wordpress.com/abuse/?report_url=https://blog.mortenbock.dk" target="_blank" rel="noopener noreferrer">
Report this content </a>
</li>
<li class="actnbr-reader">
<a href="https://wordpress.com/reader/feeds/44558204">
View site in Reader </a>
</li>
<li class="actnbr-subs">
<a href="https://subscribe.wordpress.com/">Manage subscriptions</a>
</li>
<li class="actnbr-fold"><a href="">Collapse this bar</a></li>
</ul>
</div>
</div>
</li>
</ul>
</div>

<script>
window.addEventListener( "load", function( event ) {
var link = document.createElement( "link" );
link.href = "https://s0.wp.com/wp-content/mu-plugins/actionbar/actionbar.css?m=1750255835i&amp;v=20250116";
link.type = "text/css";
link.rel = "stylesheet";
document.head.appendChild( link );

var script = document.createElement( "script" );
script.src = "https://s0.wp.com/wp-content/mu-plugins/actionbar/actionbar.js?m=1738713573i&amp;v=20250204";
script.defer = true;
document.body.appendChild( script );
} );
</script>

<div id="jp-carousel-loading-overlay">
<div id="jp-carousel-loading-wrapper">
<span id="jp-carousel-library-loading">&nbsp;</span>
</div>
</div>
<div class="jp-carousel-overlay" style="display: none;">

<div class="jp-carousel-container">
<!-- The Carousel Swiper -->
<div
class="jp-carousel-wrap swiper jp-carousel-swiper-container jp-carousel-transitions"
itemscope
itemtype="https://schema.org/ImageGallery">
<div class="jp-carousel swiper-wrapper"></div>
<div class="jp-swiper-button-prev swiper-button-prev">
<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<mask id="maskPrev" mask-type="alpha" maskUnits="userSpaceOnUse" x="8" y="6" width="9" height="12">
<path d="M16.2072 16.59L11.6496 12L16.2072 7.41L14.8041 6L8.8335 12L14.8041 18L16.2072 16.59Z" fill="white"/>
</mask>
<g mask="url(#maskPrev)">
<rect x="0.579102" width="23.8823" height="24" fill="#FFFFFF"/>
</g>
</svg>
</div>
<div class="jp-swiper-button-next swiper-button-next">
<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<mask id="maskNext" mask-type="alpha" maskUnits="userSpaceOnUse" x="8" y="6" width="8" height="12">
<path d="M8.59814 16.59L13.1557 12L8.59814 7.41L10.0012 6L15.9718 12L10.0012 18L8.59814 16.59Z" fill="white"/>
</mask>
<g mask="url(#maskNext)">
<rect x="0.34375" width="23.8822" height="24" fill="#FFFFFF"/>
</g>
</svg>
</div>
</div>
<!-- The main close buton -->
<div class="jp-carousel-close-hint">
<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<mask id="maskClose" mask-type="alpha" maskUnits="userSpaceOnUse" x="5" y="5" width="15" height="14">
<path d="M19.3166 6.41L17.9135 5L12.3509 10.59L6.78834 5L5.38525 6.41L10.9478 12L5.38525 17.59L6.78834 19L12.3509 13.41L17.9135 19L19.3166 17.59L13.754 12L19.3166 6.41Z" fill="white"/>
</mask>
<g mask="url(#maskClose)">
<rect x="0.409668" width="23.8823" height="24" fill="#FFFFFF"/>
</g>
</svg>
</div>
<!-- Image info, comments and meta -->
<div class="jp-carousel-info">
<div class="jp-carousel-info-footer">
<div class="jp-carousel-pagination-container">
<div class="jp-swiper-pagination swiper-pagination"></div>
<div class="jp-carousel-pagination"></div>
</div>
<div class="jp-carousel-photo-title-container">
<h2 class="jp-carousel-photo-caption"></h2>
</div>
<div class="jp-carousel-photo-icons-container">
<a href="#" class="jp-carousel-icon-btn jp-carousel-icon-info" aria-label="Toggle photo metadata visibility">
<span class="jp-carousel-icon">
<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<mask id="maskInfo" mask-type="alpha" maskUnits="userSpaceOnUse" x="2" y="2" width="21" height="20">
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.7537 2C7.26076 2 2.80273 6.48 2.80273 12C2.80273 17.52 7.26076 22 12.7537 22C18.2466 22 22.7046 17.52 22.7046 12C22.7046 6.48 18.2466 2 12.7537 2ZM11.7586 7V9H13.7488V7H11.7586ZM11.7586 11V17H13.7488V11H11.7586ZM4.79292 12C4.79292 16.41 8.36531 20 12.7537 20C17.142 20 20.7144 16.41 20.7144 12C20.7144 7.59 17.142 4 12.7537 4C8.36531 4 4.79292 7.59 4.79292 12Z" fill="white"/>
</mask>
<g mask="url(#maskInfo)">
<rect x="0.8125" width="23.8823" height="24" fill="#FFFFFF"/>
</g>
</svg>
</span>
</a>
<a href="#" class="jp-carousel-icon-btn jp-carousel-icon-comments" aria-label="Toggle photo comments visibility">
<span class="jp-carousel-icon">
<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<mask id="maskComments" mask-type="alpha" maskUnits="userSpaceOnUse" x="2" y="2" width="21" height="20">
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.3271 2H20.2486C21.3432 2 22.2388 2.9 22.2388 4V16C22.2388 17.1 21.3432 18 20.2486 18H6.31729L2.33691 22V4C2.33691 2.9 3.2325 2 4.3271 2ZM6.31729 16H20.2486V4H4.3271V18L6.31729 16Z" fill="white"/>
</mask>
<g mask="url(#maskComments)">
<rect x="0.34668" width="23.8823" height="24" fill="#FFFFFF"/>
</g>
</svg>

<span class="jp-carousel-has-comments-indicator" aria-label="This image has comments."></span>
</span>
</a>
</div>
</div>
<div class="jp-carousel-info-extra">
<div class="jp-carousel-info-content-wrapper">
<div class="jp-carousel-photo-title-container">
<h2 class="jp-carousel-photo-title"></h2>
</div>
<div class="jp-carousel-comments-wrapper">
<div id="jp-carousel-comments-loading">
<span>Loading Comments...</span>
</div>
<div class="jp-carousel-comments"></div>
<div id="jp-carousel-comment-form-container">
<span id="jp-carousel-comment-form-spinner">&nbsp;</span>
<div id="jp-carousel-comment-post-results"></div>
<form id="jp-carousel-comment-form">
<label for="jp-carousel-comment-form-comment-field" class="screen-reader-text">Write a Comment...</label>
<textarea
name="comment"
class="jp-carousel-comment-form-field jp-carousel-comment-form-textarea"
id="jp-carousel-comment-form-comment-field"
placeholder="Write a Comment..."
></textarea>
<div id="jp-carousel-comment-form-submit-and-info-wrapper">
<div id="jp-carousel-comment-form-commenting-as">
<fieldset>
<label for="jp-carousel-comment-form-email-field">Email (Required)</label>
<input type="text" name="email" class="jp-carousel-comment-form-field jp-carousel-comment-form-text-field" id="jp-carousel-comment-form-email-field" />
</fieldset>
<fieldset>
<label for="jp-carousel-comment-form-author-field">Name (Required)</label>
<input type="text" name="author" class="jp-carousel-comment-form-field jp-carousel-comment-form-text-field" id="jp-carousel-comment-form-author-field" />
</fieldset>
<fieldset>
<label for="jp-carousel-comment-form-url-field">Website</label>
<input type="text" name="url" class="jp-carousel-comment-form-field jp-carousel-comment-form-text-field" id="jp-carousel-comment-form-url-field" />
</fieldset>
</div>
<input
type="submit"
name="submit"
class="jp-carousel-comment-form-button"
id="jp-carousel-comment-form-button-submit"
value="Post Comment" />
</div>
</form>
</div>
</div>
<div class="jp-carousel-image-meta">
<div class="jp-carousel-title-and-caption">
<div class="jp-carousel-photo-info">
<h3 class="jp-carousel-caption" itemprop="caption description"></h3>
</div>

<div class="jp-carousel-photo-description"></div>
</div>
<ul class="jp-carousel-image-exif" style="display: none;"></ul>
<a class="jp-carousel-image-download" href="#" target="_blank" style="display: none;">
<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<mask id="mask0" mask-type="alpha" maskUnits="userSpaceOnUse" x="3" y="3" width="19" height="18">
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.84615 5V19H19.7775V12H21.7677V19C21.7677 20.1 20.8721 21 19.7775 21H5.84615C4.74159 21 3.85596 20.1 3.85596 19V5C3.85596 3.9 4.74159 3 5.84615 3H12.8118V5H5.84615ZM14.802 5V3H21.7677V10H19.7775V6.41L9.99569 16.24L8.59261 14.83L18.3744 5H14.802Z" fill="white"/>
</mask>
<g mask="url(#mask0)">
<rect x="0.870605" width="23.8823" height="24" fill="#FFFFFF"/>
</g>
</svg>
<span class="jp-carousel-download-text"></span>
</a>
<div class="jp-carousel-image-map" style="display: none;"></div>
</div>
</div>
</div>
</div>
</div>

</div>
<script crossorigin='anonymous' type='text/javascript' src='/_static/??-eJzTLy/QTc7PK0nNK9EvyClNz8wr1i+uzCtJrMjITM/IAeKS1CJMEWP94uSizIISoOIM5/yiVL2sYh19yo1yKiotzvAKBvOBRtrn2hqamhsYGZhYWphmAQCbEEFF'></script>
<script type='text/javascript'>
(function(){
var corecss = document.createElement('link');
var themecss = document.createElement('link');
var corecssurl = "https://s1.wp.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/styles/shCore.css?m=1656525858i&amp;ver=3.0.9b";
if ( corecss.setAttribute ) {
corecss.setAttribute( "rel", "stylesheet" );
corecss.setAttribute( "type", "text/css" );
corecss.setAttribute( "href", corecssurl );
} else {
corecss.rel = "stylesheet";
corecss.href = corecssurl;
}
document.head.appendChild( corecss );
var themecssurl = "https://s2.wp.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/styles/shThemeDefault.css?m=1363304414i&amp;ver=3.0.9b";
if ( themecss.setAttribute ) {
themecss.setAttribute( "rel", "stylesheet" );
themecss.setAttribute( "type", "text/css" );
themecss.setAttribute( "href", themecssurl );
} else {
themecss.rel = "stylesheet";
themecss.href = themecssurl;
}
document.head.appendChild( themecss );
})();
SyntaxHighlighter.config.strings.expandSource = '+ expand source';
SyntaxHighlighter.config.strings.help = '?';
SyntaxHighlighter.config.strings.alert = 'SyntaxHighlighter\n\n';
SyntaxHighlighter.config.strings.noBrush = 'Can\'t find brush for: ';
SyntaxHighlighter.config.strings.brushNotHtmlScript = 'Brush wasn\'t configured for html-script option: ';
SyntaxHighlighter.defaults['pad-line-numbers'] = false;
SyntaxHighlighter.defaults['toolbar'] = false;
SyntaxHighlighter.all();

// Infinite scroll support
document.addEventListener( 'is.post-load', function () {
SyntaxHighlighter.highlight();
} );
</script>
<link crossorigin='anonymous' rel='stylesheet' id='all-css-0-2' href='/_static/??-eJyNjMEKgzAQBX9Ifdha9CJ+StF1KdFkN7gJ+X0RbM89zjAMSqxJJbEkhFxHnz9ODBunONN+M4Kq4O2EsHil3WDFRT4aMqvw/yHomj0baD40G/tf9BXXcApj27+ej6Hr2247ASkBO20=&cssminify=yes' type='text/css' media='all' />
<script type="text/javascript" id="jetpack-carousel-js-extra">
/* <![CDATA[ */
var jetpackSwiperLibraryPath = {"url":"https:\/\/s2.wp.com\/wp-content\/mu-plugins\/jetpack-plugin\/moon\/_inc\/blocks\/swiper.js"};
var jetpackCarouselStrings = {"widths":[370,700,1000,1200,1400,2000],"is_logged_in":"","lang":"en","ajaxurl":"https:\/\/blog.mortenbock.dk\/wp-admin\/admin-ajax.php","nonce":"07c3ae2e4f","display_exif":"1","display_comments":"1","single_image_gallery":"1","single_image_gallery_media_file":"","background_color":"black","comment":"Comment","post_comment":"Post Comment","write_comment":"Write a Comment...","loading_comments":"Loading Comments...","image_label":"Open image in full-screen.","download_original":"View full size <span class=\"photo-size\">{0}<span class=\"photo-size-times\">\u00d7<\/span>{1}<\/span>","no_comment_text":"Please be sure to submit some text with your comment.","no_comment_email":"Please provide an email address to comment.","no_comment_author":"Please provide your name to comment.","comment_post_error":"Sorry, but there was an error posting your comment. Please try again later.","comment_approved":"Your comment was approved.","comment_unapproved":"Your comment is in moderation.","camera":"Camera","aperture":"Aperture","shutter_speed":"Shutter Speed","focal_length":"Focal Length","copyright":"Copyright","comment_registration":"0","require_name_email":"1","login_url":"https:\/\/f2467e96c0454199ab4bbd67007edab7.wordpress.com\/wp-login.php?redirect_to=https%3A%2F%2Fblog.mortenbock.dk%2F2016%2F06%2F06%2Fwhat-is-gtm_cookies_win-in-gtm%2F","blog_id":"105791522","meta_data":["camera","aperture","shutter_speed","focal_length","copyright"],"stats_query_args":"blog=105791522&v=wpcom&tz=0&user_id=0&arch_home=1&subd=f2467e96c0454199ab4bbd67007edab7","is_public":"1"};
/* ]]> */
</script>
<script crossorigin='anonymous' type='text/javascript' src='/_static/??-eJyNj0GOwjAMRS9EaoGoygZxFJS6oePWsaM6aTn+FGmKECyGle2v9ywbluRQJQfJ0LL2LnHpSQwWnTrfmUP2ZsFgWCOf2c2HarAdvGj5J8QVSKUFKcjBT+FBb/23uJ+p95lUvhRspOSYZHQ3xWLuRvd387+HMCaYD49StUU6/rg1lqc+hJw8jn8zRFWBKwlCW4g7QD9pscBPbguqSB8fvazdMLck1Pg2rt4lnvdNXZ+a5nSsh1/oH6A6'></script>

<script type="text/javascript">
(function () {
var wpcom_reblog = {
source: 'toolbar',

toggle_reblog_box_flair: function (obj_id, post_id) {

// Go to site selector. This will redirect to their blog if they only have one.
const postEndpoint = `https://wordpress.com/post`;

// Ideally we would use the permalink here, but fortunately this will be replaced with the
// post permalink in the editor.
const originalURL = `${ document.location.href }?page_id=${ post_id }`;

const url =
postEndpoint +
'?url=' +
encodeURIComponent( originalURL ) +
'&is_post_share=true' +
'&v=5';

const redirect = function () {
if (
! window.open( url, '_blank' )
) {
location.href = url;
}
};

if ( /Firefox/.test( navigator.userAgent ) ) {
setTimeout( redirect, 0 );
} else {
redirect();
}
},
};

window.wpcom_reblog = wpcom_reblog;
})();
</script>
<script src="//stats.wp.com/w.js?68" defer></script> <script type="text/javascript">
_tkq = window._tkq || [];
_stq = window._stq || [];
_tkq.push(['storeContext', {'blog_id':'105791522','blog_tz':'0','user_lang':'en','blog_lang':'en','user_id':'0'}]);
_stq.push(['view', {'blog':'105791522','v':'wpcom','tz':'0','user_id':'0','arch_home':'1','subd':'f2467e96c0454199ab4bbd67007edab7'}]);
_stq.push(['extra', {'crypt':'UE5XaGUuOTlwaD85flAmcm1mcmZsaDhkV11YdWtpP0NsWnVkPS9sL0ViLndld3BTTVtuWDM4P1prRmthcVVFRVRUfFs0Ljkwdkh4Ujg/cGhbb3ZFcmwxV1p1LWh0X2ksfjh+aC92MiV3NTRCcExZPUw9SnB4TCVfM3BIOT1yTFpkMT1bP1NtR05KYSZfelNtK18ydmtKLTMsbkFSX3J6S0J3ZWNLVlZXXStHfj9Ld0dBNnQlK0F5WEVLSlV+N3RoVlgxY3V2OC8uV1NWOURMNng0aTk2M29kN3J5X08vK1NOUmlkdTFsL1k3cEJCREg0UVFGJWloYzV2dmRscHBYYXRSS2NBfDRbZ0l4dnNkTTlUZ3hJc3dyZlF3clZBSDZ3S0EvcGN2VixzUkJ4MHp+XXFEMT1UVTY1TEF4aWpSUXdfVkhjNGJ4aEJIWTM/OC9Y'}]);
_stq.push([ 'clickTrackerInit', '105791522', '0' ]);
</script>
<noscript><img src="https://pixel.wp.com/b.gif?v=noscript" style="height:1px;width:1px;overflow:hidden;position:absolute;bottom:1px;" alt="" /></noscript>
<meta id="bilmur" property="bilmur:data" content="" data-provider="wordpress.com" data-service="simple" data-site-tz="Etc/GMT-0" data-custom-props="{&quot;logged_in&quot;:&quot;0&quot;,&quot;wptheme&quot;:&quot;pub\/nucleare&quot;,&quot;wptheme_is_block&quot;:&quot;0&quot;}" >
<script defer src="/wp-content/js/bilmur.min.js?i=16&amp;m=202538"></script>
</body>
</html>

Ads.Txt Alerts - A trading name of Red Volcano Limited

Waterloo Buildings, Second Floor Rear, 53 London Road, Southampton, Hampshire, United Kingdom, SO15 2AD

© Red Volcano 2020. All Rights Reserved.