PageSourceSearch

https://www.jasom.net/

html jasom.net collected 2026-09-25 19:11:37 UTC 36,570 bytes, 216 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en-US">
3    <head>
4        <meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0" /><link rel="preload" href="https://www.jasom.net/wp-content/cache/fvm/min/1789975772-css1634d4dce8e447e2c70cd0166c761ba9940e6c34d2e9692825788b6db6095.css" as="style" media="all" />
5<link rel="preload" href="https://www.jasom.net/wp-content/cache/fvm/min/1789975772-css408638780cced6081b56e3badc186475902f92e43428fb7f74a81f7f66a92.css" as="style" media="all" />
6<link rel="preload" href="https://www.jasom.net/wp-content/cache/fvm/min/1789975772-cssa0643b4e3ad9323ceb09416f88ee34fa695b9d321cf83b1dc8749f7265f4d.css" as="style" media="all" />
6<script data-cfasync="false">if(navigator.userAgent.match(/MSIE|Internet Explorer/i)||navigator.userAgent.match(/Trident\/7\..*?rv:11/i)){var href=document.location.href;if(!href.match(/[?&]iebrowser/)){if(href.indexOf("?")==-1){if(href.indexOf("#")==-1){document.location.href=href+"?iebrowser=1"}else{document.location.href=href.replace("#","?iebrowser=1#")}}else{if(href.indexOf("#")==-1){document.location.href=href+"&iebrowser=1"}else{document.location.href=href.replace("#","&iebrowser=1#")}}}}</script>
vendor: 2 bytes, line 6
6
7<script data-cfasync="false">class FVMLoader{constructor(e){this.triggerEvents=e,this.eventOptions={passive:!0},this.userEventListener=this.triggerListener.bind(this),this.delayedScripts={normal:[],async:[],defer:[]},this.allJQueries=[]}_addUserInteractionListener(e){this.triggerEvents.forEach(t=>window.addEventListener(t,e.userEventListener,e.eventOptions))}_removeUserInteractionListener(e){this.triggerEvents.forEach(t=>window.removeEventListener(t,e.userEventListener,e.eventOptions))}triggerListener(){this._removeUserInteractionListener(this),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",this._loadEverythingNow.bind(this)):this._loadEverythingNow()}async _loadEverythingNow(){this._runAllDelayedCSS(),this._delayEventListeners(),this._delayJQueryReady(this),this._handleDocumentWrite(),this._registerAllDelayedScripts(),await this._loadScriptsFromList(this.delayedScripts.normal),await this._loadScriptsFromList(this.delayedScripts.defer),await this._loadScriptsFromList(this.delayedScripts.async),await this._triggerDOMContentLoaded(),await this._triggerWindowLoad(),window.dispatchEvent(new Event("wpr-allScriptsLoaded"))}_registerAllDelayedScripts(){document.querySelectorAll("script[type=fvmdelay]").forEach(e=>{e.hasAttribute("src")?e.hasAttribute("async")&&!1!==e.async?this.delayedScripts.async.push(e):e.hasAttribute("defer")&&!1!==e.defer||"module"===e.getAttribute("data-type")?this.delayedScripts.defer.push(e):this.delayedScripts.normal.push(e):this.delayedScripts.normal.push(e)})}_runAllDelayedCSS(){document.querySelectorAll("link[rel=fvmdelay]").forEach(e=>{e.setAttribute("rel","stylesheet")})}async _transformScript(e){return await this._requestAnimFrame(),new Promise(t=>{const n=document.createElement("script");let r;[...e.attributes].forEach(e=>{let t=e.nodeName;"type"!==t&&("data-type"===t&&(t="type",r=e.nodeValue),n.setAttribute(t,e.nodeValue))}),e.hasAttribute("src")?(n.addEventListener("load",t),n.addEventListener("error",t)):(n.text=e.text,t()),e.parentNode.replaceChild(n,e)})}async _loadScriptsFromList(e){const t=e.shift();return t?(await this._transformScript(t),this._loadScriptsFromList(e)):Promise.resolve()}_delayEventListeners(){let e={};function t(t,n){!function(t){function n(n){return e[t].eventsToRewrite.indexOf(n)>=0?"wpr-"+n:n}e[t]||(e[t]={originalFunctions:{add:t.addEventListener,remove:t.removeEventListener},eventsToRewrite:[]},t.addEventListener=function(){arguments[0]=n(arguments[0]),e[t].originalFunctions.add.apply(t,arguments)},t.removeEventListener=function(){arguments[0]=n(arguments[0]),e[t].originalFunctions.remove.apply(t,arguments)})}(t),e[t].eventsToRewrite.push(n)}function n(e,t){let n=e[t];Object.defineProperty(e,t,{get:()=>n||function(){},set(r){e["wpr"+t]=n=r}})}t(document,"DOMContentLoaded"),t(window,"DOMContentLoaded"),t(window,"load"),t(window,"pageshow"),t(document,"readystatechange"),n(document,"onreadystatechange"),n(window,"onload"),n(window,"onpageshow")}_delayJQueryReady(e){let t=window.jQuery;Object.defineProperty(window,"jQuery",{get:()=>t,set(n){if(n&&n.fn&&!e.allJQueries.includes(n)){n.fn.ready=n.fn.init.prototype.ready=function(t){e.domReadyFired?t.bind(document)(n):document.addEventListener("DOMContentLoaded2",()=>t.bind(document)(n))};const t=n.fn.on;n.fn.on=n.fn.init.prototype.on=function(){if(this[0]===window){function e(e){return e.split(" ").map(e=>"load"===e||0===e.indexOf("load.")?"wpr-jquery-load":e).join(" ")}"string"==typeof arguments[0]||arguments[0]instanceof String?arguments[0]=e(arguments[0]):"object"==typeof arguments[0]&&Object.keys(arguments[0]).forEach(t=>{delete Object.assign(arguments[0],{[e(t)]:arguments[0][t]})[t]})}return t.apply(this,arguments),this},e.allJQueries.push(n)}t=n}})}async _triggerDOMContentLoaded(){this.domReadyFired=!0,await this._requestAnimFrame(),document.dispatchEvent(new Event("DOMContentLoaded2")),await this._requestAnimFrame(),window.dispatchEvent(new Event("DOMContentLoaded2")),await this._requestAnimFrame(),document.dispatchEvent(new Event("wpr-readystatechange")),await this._requestAnimFrame(),document.wpronreadystatechange&&document.wpronreadystatechange()}
7async _triggerWindowLoad(){await this._requestAnimFrame(),window.dispatchEvent(new Event("wpr-load")),await this._requestAnimFrame(),window.wpronload&&window.wpronload(),await this._requestAnimFrame(),this.allJQueries.forEach(e=>e(window).trigger("wpr-jquery-load")),window.dispatchEvent(new Event("wpr-pageshow")),await this._requestAnimFrame(),window.wpronpageshow&&window.wpronpageshow()}_handleDocumentWrite(){const e=new Map;document.write=document.writeln=function(t){const n=document.currentScript,r=document.createRange(),i=n.parentElement;let a=e.get(n);void 0===a&&(a=n.nextSibling,e.set(n,a));const s=document.createDocumentFragment();r.setStart(s,0),s.appendChild(r.createContextualFragment(t)),i.insertBefore(s,a)}}async _requestAnimFrame(){return new Promise(e=>requestAnimationFrame(e))}static run(){const e=new FVMLoader(["keydown","mousemove","touchmove","touchstart","touchend","wheel"]);e._addUserInteractionListener(e)}}FVMLoader.run();</script>
7
8        <meta http-equiv="X-UA-Compatible" content="IE=edge">
9		
10		
11
12
13<meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />
14
15	
16	<title>Jasom Dotnet</title>
17	<meta name="description" content="Webcraftsman" />
18	<link rel="canonical" href="https://www.jasom.net/" />
19	<link rel="next" href="https://www.jasom.net/page/2/" />
20	<meta property="og:locale" content="en_US" />
21	<meta property="og:type" content="website" />
22	<meta property="og:title" content="Jasom Dotnet" />
23	<meta property="og:description" content="Blog where I publish my thoughts." />
24	<meta property="og:url" content="https://www.jasom.net/" />
25	<meta property="og:site_name" content="Jasom Dotnet" />
26	<meta property="og:image" content="https://www.jasom.net/wp-content/uploads/2019/07/wordcamp_bratislava_2018.jpg" />
27	<meta property="og:image:width" content="2048" />
28	<meta property="og:image:height" content="1536" />
29	<meta property="og:image:type" content="image/jpeg" />
30	<meta name="twitter:card" content="summary_large_image" />
31	<meta name="twitter:site" content="@jasomdotnet" />
32	
32<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https:\/\/schema.org","@graph":[{"@type":"CollectionPage","@id":"https:\/\/www.jasom.net\/","url":"https:\/\/www.jasom.net\/","name":"Jasom Dotnet","isPartOf":{"@id":"https:\/\/www.jasom.net\/#website"},"about":{"@id":"https:\/\/www.jasom.net\/#\/schema\/person\/149323688c09014404b080c2cb464790"},"description":"Webcraftsman","breadcrumb":{"@id":"https:\/\/www.jasom.net\/#breadcrumb"},"inLanguage":"en-US"},{"@type":"BreadcrumbList","@id":"https:\/\/www.jasom.net\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home"}]},{"@type":"WebSite","@id":"https:\/\/www.jasom.net\/#website","url":"https:\/\/www.jasom.net\/","name":"Jasom Dotnet","description":"Webcraftsman","publisher":{"@id":"https:\/\/www.jasom.net\/#\/schema\/person\/149323688c09014404b080c2cb464790"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.jasom.net\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.jasom.net\/#\/schema\/person\/149323688c09014404b080c2cb464790","name":"jasom","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.jasom.net\/wp-content\/uploads\/2019\/07\/me_square.jpg","url":"https:\/\/www.jasom.net\/wp-content\/uploads\/2019\/07\/me_square.jpg","contentUrl":"https:\/\/www.jasom.net\/wp-content\/uploads\/2019\/07\/me_square.jpg","width":384,"height":384,"caption":"jasom"},"logo":{"@id":"https:\/\/www.jasom.net\/wp-content\/uploads\/2019\/07\/me_square.jpg"},"description":"I know how to code. At least some basics :D","sameAs":["https:\/\/www.jasom.net\/","https:\/\/x.com\/jasomdotnet","https:\/\/www.youtube.com\/user\/jasomnet"]}]}</script>
32
33	
34
35
36<link rel="alternate" type="application/rss+xml" title="Jasom Dotnet &raquo; Feed" href="https://www.jasom.net/feed/" />
37<link rel="alternate" type="application/rss+xml" title="Jasom Dotnet &raquo; Comments Feed" href="https://www.jasom.net/comments/feed/" />
38<style id="wp-img-auto-sizes-contain-inline-css" media="all">img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}</style>
39<style id="classic-theme-styles-inline-css" media="all">/*! This file is auto-generated */
40.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>
41
42<style id="global-styles-inline-css" media="all">: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;
42--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,rgb(6,147,227) 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,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red:linear-gradient(135deg,rgb(255,105,0) 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--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 rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp:6px 6px 0px rgb(0, 0, 0)}.wp-block-button{--wp--preset--dimension--25:25%;--wp--preset--dimension--50:50%;--wp--preset--dimension--75:75%;--wp--preset--dimension--100:100%}:where(body){margin:0}:where(.is-layout-flex){gap:.5em}:where(.is-layout-grid){gap:.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}body{padding-top:0;padding-right:0;padding-bottom:0;padding-left:0}:root :where(.wp-element-button,.wp-block-button__link){background-color:#32373c;border-width:0;color:#fff;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;padding-top:calc(0.667em + 2px);padding-right:calc(1.333em + 2px);padding-bottom:calc(0.667em + 2px);padding-left:calc(1.333em + 2px);text-decoration:none;text-transform:inherit}.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}
42.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}</style>
43
44<link rel='stylesheet' id='mkaz-code-syntax-prism-css-css' href='https://www.jasom.net/wp-content/cache/fvm/min/1789975772-css1634d4dce8e447e2c70cd0166c761ba9940e6c34d2e9692825788b6db6095.css' media='all' />
45<link rel='stylesheet' id='digital-nomad-css' href='https://www.jasom.net/wp-content/cache/fvm/min/1789975772-css408638780cced6081b56e3badc186475902f92e43428fb7f74a81f7f66a92.css' media='all' />
46<style id="digital-nomad-inline-css" media="all">#placeholder{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 2048 1536'%3E%3Cfilter id='b'%3E%3CfeGaussianBlur stdDeviation='12' /%3E%3C/filter%3E%3Cpath fill='%239c8872' d='M0 0h2048v1536H0z'/%3E%3Cg filter='url(%23b)' transform='matrix(8 0 0 8 4 4)' fill-opacity='.5'%3E%3Cellipse fill='%23170000' rx='1' ry='1' transform='matrix(74.81414 -1.73659 1.21307 52.26042 65.8 167)'/%3E%3Cellipse fill='%23fff' rx='1' ry='1' transform='rotate(-177.5 125 40.2) scale(137.18797 35.34812)'/%3E%3Cpath fill='%23a56121' d='M54 105h136v57H54z'/%3E%3Cpath fill='%23fff' d='M178 184l54-14-40-29z'/%3E%3Cellipse fill='%23271300' cx='32' cy='183' rx='104' ry='48'/%3E%3Cellipse fill='%23541e00' rx='1' ry='1' transform='rotate(32.9 -163.1 517.3) scale(25.9513 85.08599)'/%3E%3Cellipse fill='%23d0cbc2' rx='1' ry='1' transform='matrix(226.00608 -21.96163 1.64121 16.88962 152.5 8.2)'/%3E%3Cellipse fill='%23cdeaf9' rx='1' ry='1' transform='matrix(51.58271 6.18875 -1.951 16.26137 0 80.8)'/%3E%3C/g%3E%3C/svg%3E")}#header{background-image:url(https://www.jasom.net/wp-content/uploads/2023/09/goodbay_n_welcome_ceremony.jpg)}@media (min-width:480px){#header{background-image:url(https://www.jasom.net/wp-content/uploads/2023/09/goodbay_n_welcome_ceremony.jpg)}}.inner_content,#respond,.comment-body{max-width:56rem}</style>
47
48<link rel='stylesheet' id='child-css' href='https://www.jasom.net/wp-content/cache/fvm/min/1789975772-cssa0643b4e3ad9323ceb09416f88ee34fa695b9d321cf83b1dc8749f7265f4d.css' media='all' />
49    <style media="all">.logo{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 384'%3E%3Cfilter id='b'%3E%3CfeGaussianBlur stdDeviation='12' /%3E%3C/filter%3E%3Cpath fill='%2397765b' d='M0 0h384v384H0z'/%3E%3Cg filter='url(%23b)' transform='matrix(1.5 0 0 1.5 .8 .8)' fill-opacity='.5'%3E%3Cpath fill='%23fff' d='M39 120L0 271h145z'/%3E%3Cellipse cx='148' cy='20' rx='255' ry='49'/%3E%3Cellipse fill='%23ffbe80' cx='150' cy='159' rx='32' ry='134'/%3E%3Cellipse fill='%23000a19' rx='1' ry='1' transform='matrix(-57.13598 -44.47915 17.47528 -22.44799 235.4 136.8)'/%3E%3Cellipse fill='%23000014' cx='88' cy='87' rx='38' ry='41'/%3E%3Cellipse fill='%23ff8a32' rx='1' ry='1' transform='matrix(-45.09286 19.79438 -24.50284 -55.81902 201.8 207.7)'/%3E%3Cellipse fill='%23fff' cx='64' cy='230' rx='42' ry='50'/%3E%3Cellipse fill='%23fff' rx='1' ry='1' transform='matrix(-9.60004 16.95877 -26.01349 -14.72576 149.3 131.8)'/%3E%3Cellipse fill='%23ff6210' rx='1' ry='1' transform='matrix(-42.60371 -32.459 19.96961 -26.2109 110 166.5)'/%3E%3Cellipse fill='%235cffff' rx='1' ry='1' transform='matrix(19.54455 -21.78275 14.30236 12.83278 241.2 89.4)'/%3E%3C/g%3E%3C/svg%3E")}</style>
50    
51<link rel="icon" href="https://www.jasom.net/wp-content/uploads/2019/07/me_square-300x300.jpg" sizes="192x192" />
52
53
54    </head>
55
56    <body class="home blog wp-custom-logo wp-theme-digital-nomad wp-child-theme-child intended_front_page">
57				<a class="skip-link screen-reader-text" href="#content">Skip to content</a>
58				<header id="placeholder" class="basic_bg">
59			<div id="header" class="basic_bg"> 
60				<div id="headelements">
61					<div id="cell">
62						<div class="inner_content">
63							<div class="stabilize header_text text_shadow">
64								<div class="main_header_block">
65									
66<a href="https://www.jasom.net" rel="home" class="logo_link">
67
68	
69		<img src="https://www.jasom.net/wp-content/uploads/2019/07/me_square.jpg" alt="Jasom Dotnet - Webcraftsman" title="Jasom Dotnet - Webcraftsman" class="logo">
70
71	
72</a>																		
73<div class="textwidget custom-html-widget">I'm a web <a href="https://stackoverflow.com/users/2195238/jasom-dotnet" target="_blank" rel="nofollow">developer</a> with focus on WordPress, website performance and online marketing. I maintain <a href="https://www.jasom.net/digital-nomad-wordpress-theme/">Digital Nomad WordPress theme</a>. In Slovakia I occasionally write for <a href="https://www.ointernete.sk/" target="_blank">Ointernete.sk</a> technology news. My <a href="https://www.jasom.net/yellow-hat/">podcast</a> is called Yellow Hat. Read my <a href="https://www.jasom.net/archive/">blog</a> or <a href="https://www.jasom.net/contact/">contact</a> me.</div>								</div>
74								<noscript id="general">Some features may not work without JavaScript</noscript>
75															</div>
76															<div id="jump_down">
77									<a href="#content">Skip to content</a>
78								</div>
79													</div>
80					</div>
81									</div>
82			</div>
83		</header>
84
85		<section id="main">
86	<div id="content" class="digitalnomad_post_container">
87		<article id="post_2705" class="preview_content basic_bg b-lazy post-2705 post type-post status-publish format-standard has-post-thumbnail hentry category-webmastering tag-apache tag-nginx tag-private-prefetch-proxy tag-traffic-advice" data-src="https://www.jasom.net/wp-content/uploads/2022/06/traffic_advice-1024x499.jpg">
88<noscript><style>#post_2705 {background-image: url('https://www.jasom.net/wp-content/uploads/2022/06/traffic_advice-1024x499.jpg');}</style></noscript>
89 <a href="https://www.jasom.net/private-prefetch-proxy-well-known-traffic-advice-apache-htaccess-nginx/" title="I have found repeating 404 errors caused by the request https://www.exampe.com/.well-known/traffic-advice by &quot;Chrome Privacy Preserving Prefetch Proxy&quot; bot so I read several&hellip;">
90  <div class="preview_inside">
91   <div class="preview_time main_time text_shadow"><time class="published" datetime="2022-06-07T16:51:29+00:00" title="June 7, 2022">4 years ago</time></div>
92   <h2 class="preview_title main_title text_shadow">Traffic Advice: How to Configure Apache or Nginx for Chrome Privacy Preserving Prefetch Proxy</h2>
93  </div>
94 </a>
95</article>
96<article id="post_833" class="preview_content basic_bg b-lazy post-833 post type-post status-publish format-standard hentry category-wordpress tag-google-fonts" data-src="https://www.jasom.net/wp-content/uploads/2019/10/webdevelopment_photo_by_pixabay_com-1024x576.jpg">
97<noscript><style>#post_833 {background-image: url('https://www.jasom.net/wp-content/uploads/2019/10/webdevelopment_photo_by_pixabay_com-1024x576.jpg');}</style></noscript>
98 <a href="https://www.jasom.net/host-google-fonts-locally-in-wordpress-theme/" title="If you are in the EU, due to GDPR host Google fonts used in your WordPress website locally. How? It&#039;s &quot;easy&quot;, just&hellip;">
99  <div class="preview_inside">
100   <div class="preview_time main_time text_shadow"><time class="published" datetime="2020-12-10T17:33:47+00:00" title="December 10, 2020">6 years ago</time></div>
101   <h2 class="preview_title main_title text_shadow">How to host Google Fonts locally in your WordPress theme</h2>
102  </div>
103 </a>
104</article>
105<article id="post_686" class="preview_content basic_bg b-lazy post-686 post type-post status-publish format-standard has-post-thumbnail hentry category-wordpress tag-plug-in tag-repository" data-src="https://www.jasom.net/wp-content/uploads/2020/02/ajaxantispam-banner-1544x500-1-1024x332.jpg">
106<noscript><style>#post_686 {background-image: url('https://www.jasom.net/wp-content/uploads/2020/02/ajaxantispam-banner-1544x500-1-1024x332.jpg');}</style></noscript>
107 <a href="https://www.jasom.net/custom-wordpress-plugin-repository/" title="I have written my own anti-spam plugin. It has been live-tested 3 months. Since then the code has proven to be very&hellip;">
108  <div class="preview_inside">
109   <div class="preview_time main_time text_shadow"><time class="published" datetime="2020-03-21T22:39:29+00:00" title="March 21, 2020">7 years ago</time></div>
110   <h2 class="preview_title main_title text_shadow">Custom WordPress Plug-in Repository With Automatic Updates</h2>
111  </div>
112 </a>
113</article>
114<article id="post_726" class="preview_content basic_bg b-lazy post-726 post type-post status-publish format-standard has-post-thumbnail hentry category-webmastering tag-ahrefs tag-aspiegel tag-majestic tag-moz tag-semrush" data-src="https://www.jasom.net/wp-content/uploads/2020/03/bots-14-18-03-2020-pie-chart-ahrefs-leads-1024x576.png">
115<noscript><style>#post_726 {background-image: url('https://www.jasom.net/wp-content/uploads/2020/03/bots-14-18-03-2020-pie-chart-ahrefs-leads-1024x576.png');}</style></noscript>
116 <a href="https://www.jasom.net/bot-traffic-analysis-march-2020/" title="Which bots consume my server&#039;s resources the most? What&#039;s the situation with bots at the beginning of 2020? To answer the questions&hellip;">
117  <div class="preview_inside">
118   <div class="preview_time main_time text_shadow">
118<time class="published" datetime="2020-03-20T13:32:47+00:00" title="March 20, 2020">7 years ago</time></div>
119   <h2 class="preview_title main_title text_shadow">Bot Traffic Analysis &#8211; This Backlink Scraper Leads [March 2020]</h2>
120  </div>
121 </a>
122</article>
123<article id="post_654" class="preview_content basic_bg b-lazy post-654 post type-post status-publish format-standard has-post-thumbnail hentry category-wordpress" data-src="https://www.jasom.net/wp-content/uploads/2019/10/default_header_image_yulia-agnis-6c3OvB6H0dY-unsplash-1024x576.jpg">
124<noscript><style>#post_654 {background-image: url('https://www.jasom.net/wp-content/uploads/2019/10/default_header_image_yulia-agnis-6c3OvB6H0dY-unsplash-1024x576.jpg');}</style></noscript>
125 <a href="https://www.jasom.net/digital-nomad-wordpress-theme/" title="It&#039;s not in theme, it&#039;s in the content! But good theme also helps…">
126  <div class="preview_inside">
127   <div class="preview_time main_time text_shadow"><time class="published" datetime="2019-10-06T11:37:33+00:00" title="October 6, 2019">7 years ago</time></div>
128   <h2 class="preview_title main_title text_shadow">Digital Nomad WordPress theme</h2>
129  </div>
130 </a>
131</article>
132<article id="post_17" class="preview_content basic_bg b-lazy post-17 post type-post status-publish format-standard has-post-thumbnail hentry category-tutorials tag-lubuntu tag-ubuntu" data-src="https://www.jasom.net/wp-content/uploads/2019/07/lubuntu_command_after_start_lxsession_configuration.jpg">
133<noscript><style>#post_17 {background-image: url('https://www.jasom.net/wp-content/uploads/2019/07/lubuntu_command_after_start_lxsession_configuration.jpg');}</style></noscript>
134 <a href="https://www.jasom.net/how-to-run-command-after-start-on-lubuntu-18-04/" title="Short tutorial on how to run commands after start on Lubuntu. This manual was tested on Lubuntu 18.04. 1. Create file under&hellip;">
135  <div class="preview_inside">
136   <div class="preview_time main_time text_shadow"><time class="published" datetime="2019-07-13T00:34:33+00:00" title="July 13, 2019">7 years ago</time></div>
137   <h2 class="preview_title main_title text_shadow">How to run command after start on Lubuntu 18.04</h2>
138  </div>
139 </a>
140</article>
141<article id="post_20" class="preview_content basic_bg b-lazy post-20 post type-post status-publish format-standard hentry category-webdev tag-linux tag-nginx tag-ubuntu" data-src="https://www.jasom.net/wp-content/uploads/2019/10/webdevelopment_photo_by_pixabay_com-1024x576.jpg">
142<noscript><style>#post_20 {background-image: url('https://www.jasom.net/wp-content/uploads/2019/10/webdevelopment_photo_by_pixabay_com-1024x576.jpg');}</style></noscript>
143 <a href="https://www.jasom.net/how-to-install-and-secure-phpmyadmin-with-nginx-on-an-ubuntu-16-04-server/" title="Tutorial on Digitalocean.com did&#039;t finish part about how to install and secure phpMyAdmin with Nginx on Ubuntu 16.04 so here it is.&hellip;">
144  <div class="preview_inside">
145   <div class="preview_time main_time text_shadow"><time class="published" datetime="2016-09-07T14:29:55+00:00" title="September 7, 2016">10 years ago</time></div>
146   <h2 class="preview_title main_title text_shadow">How To Install and Secure phpMyAdmin with Nginx on an Ubuntu 16.04 Server</h2>
147  </div>
148 </a>
149</article>
150<article id="post_21" class="preview_content basic_bg b-lazy post-21 post type-post status-publish format-standard has-post-thumbnail hentry category-drupal tag-drush tag-git tag-modules" data-src="https://www.jasom.net/wp-content/uploads/2016/01/specific-dev-version-drupal-module-front.jpg">
151<noscript><style>#post_21 {background-image: url('https://www.jasom.net/wp-content/uploads/2016/01/specific-dev-version-drupal-module-front.jpg');}</style></noscript>
152 <a href="https://www.jasom.net/how-to-download-specific-dev-version-of-drupal-module-simply-using-git-checkout-or-drush-make/" title="Dev versions of modules aren&#039;t minor versioned, they are always current. If you need specific dev version you&#039;d have to download it&hellip;">
153  <div class="preview_inside">
154   <div class="preview_time main_time text_shadow"><time class="published" datetime="2016-01-11T08:51:37+00:00" title="January 11, 2016">11 years ago</time></div>
155   <h2 class="preview_title main_title text_shadow">How to download specific dev version of drupal module? Simply using “git checkout” or “drush make”</h2>
156  </div>
157 </a>
158</article>
159	</div>
160	<span id="sentinel"></span>
161<noscript><nav class="post_nav single-yes"><div class="preview_content basic_bg" style="background-image: url('https://www.jasom.net/wp-content/uploads/2019/09/dumbier_trip_2018-1.jpg');"><a href="https://www.jasom.net/page/2/" class="post_nav_link post_nav_next text_shadow" rel="next"><div class="preview_inside">Next Page &raquo;</div></a></div></nav></noscript></section>
162<footer id="footer" class="basic_bg">
163
164    <div id="footer_inside" class="text_shadow">
165		<span id="spinner"></span>
166		        <p>
167            2026 &copy; Jasom Dotnet.
168            Powered by <a href="https://wordpress.org/" target="_blank">WordPress</a>.            Themed by <a href="https://www.jasom.net" target="_blank">Jasom Dotnet</a>.        </p>
169            </div>
170
171</footer>
172
173            <noscript id="deferred-styles">
174            <style>
175                #footer {background-image: url('https://www.jasom.net/wp-content/uploads/2023/09/line_between_Europe_and_Asia-1024x576.jpg');}
176                @media (min-width: 480px) {#footer {background-image: url('https://www.jasom.net/wp-content/uploads/2023/09/line_between_Europe_and_Asia.jpg');}}
177            </style>
178            </noscript>
179            
179<script type="speculationrules">
180{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/child/*","/wp-content/themes/digital-nomad/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
181</script>
181
182        <a href="#header" class="gp" title="&uarr; Up">&uarr; Up</a>
183        
183<script id="mkaz-code-syntax-prism-js-js-extra">
184var prism_settings = {"pluginUrl":"https://www.jasom.net/wp-content/plugins/code-syntax-block/"};
185//# sourceURL=mkaz-code-syntax-prism-js-js-extra
186</script>
vendor: 1 bytes, line 186
186
187<script id="mkaz-code-syntax-prism-js-js" src="https://www.jasom.net/wp-content/plugins/code-syntax-block/assets/prism/prism.js?ver=1719250798"></script>
vendor: 1 bytes, line 187
187
188<script id="blazy-lazyload-js" src="https://www.jasom.net/wp-content/themes/digital-nomad/js/blazy.min.js?ver=1.2.0"></script>
vendor: 1 bytes, line 188
188
189<script id="blazy-lazyload-js-after">
190var bLazy = new Blazy({offset:500,});
191//# sourceURL=blazy-lazyload-js-after
192</script>
vendor: 1 bytes, line 192
192
193<script id="digital-nomad-js" src="https://www.jasom.net/wp-content/themes/digital-nomad/js/main.min.js?ver=1.2.0"></script>
vendor: 1 bytes, line 193
193
194<script id="digital-nomad-js-after">
195var postUrl = "https://www.jasom.net/wp-admin/admin-ajax.php";
196var ajaxNonce = "5c85a0c2dd";
197var postTypeObject = "post";
198var whatKind = "archive";
199var rescrollMsg = "Rescroll to load next posts.";
200var noMorePostsMsg = "That's all";
201var noJsonMsg = "Server returned empty AJAX response. Probably some cache plugin is in conflict with nonce. Adjust \"Nonce Lifetime\" setting in Customizer or contact theme's developer.";
202var noValidJsonMsg = "Server returned invalid jSon string. Contact theme's developer.";
203var ajaxFailedMsg = "AJAX request failed. Contact theme's developer.";
204var spinnerHTML = "<div class='hcs'><div class='cir cir-1'></div><div class='cir cir-2'></div></div>";
205var unexpectedMsg = "Something unexpected happened with AJAX request :-/";
206document.getElementById("spinner").innerHTML = spinnerHTML;
207
208//# sourceURL=digital-nomad-js-after
209</script>
209
210
211<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"8f330f365fef4832bd7a4c88557b3b14","r":1,"spa":2}' crossorigin="anonymous"></script>
211
212</body>
213</html>
214<!-- Cached page generated by WP-Super-Cache on 2026-09-25 09:55:15 -->
215
216<!-- Compression = gzip -->

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.