cloudflare
tcp/443 tcp/80 tcp/8443
Open service 172.66.47.87:80 · blog-jfdesignnet.pages.dev
2026-01-10 20:17
HTTP/1.1 301 Moved Permanently
Date: Sat, 10 Jan 2026 20:17:35 GMT
Content-Length: 0
Connection: close
Location: https://blog-jfdesignnet.pages.dev/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=40ukWh4xkU7so7%2BzjQNNDeRR4Jk4qdbG35iUp%2FBoYgmqBiE%2FRDj8CWgZRDdv2lheeXQjmMaFTWq8tn4xuFfb85vNNXKK3D%2Fz%2FfnyABSbogczeeBvWsPFfy3X"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bbedbd2dfd464b8-EWR
alt-svc: h3=":443"; ma=86400
Open service 172.66.44.169:8443 · blog-jfdesignnet.pages.dev
2026-01-10 20:17
HTTP/1.1 200 OK
Date: Sat, 10 Jan 2026 20:17:35 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 22778
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
ETag: "d39d7fb33eaafa41dba4c881b18fbf1b"
Link: <//cdnjs.cloudflare.com>; rel="preconnect", <//www.googletagmanager.com>; rel="preconnect", <//www.google-analytics.com>; rel="preconnect", <https://fonts.googleapis.com>; rel="preconnect"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=kZo4lGcMhAicAmUam%2FDkyXtgn4Bw5ZV1fwpnvpv0BW3Sos1XdC7ppLCKAtd1a4H15M5q3ninMmDKYf914ue6A8qI6q2tMoLrOIGz2FQVJhfNMM2peTdTeRh7"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bbedbd37bc134bd-SJC
alt-svc: h3=":8443"; ma=86400
Page title: JFDesignnet BlogMenu OpenMenu Close
<!doctype html>
<html
itemscope
lang="en-us"
itemtype="http://schema.org/WebPage">
<head>
<meta name="generator" content="Hugo 0.118.2">
<meta charset="utf-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=5" />
<meta name="theme-name" content="hugoplate" />
<link rel="shortcut icon" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_96x0_resize_lanczos_3.png" type="image/x-icon">
<link rel="icon" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_96x0_resize_lanczos_3.png" type="image/x-icon">
<link rel="icon" type="image/png" sizes="48x48" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_48x0_resize_lanczos_3.png">
<link rel="icon" type="image/png" sizes="96x96" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_96x0_resize_lanczos_3.png">
<link rel="apple-touch-icon" sizes="144x144" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_144x0_resize_lanczos_3.png">
<link rel="manifest" href="/manifest.webmanifest" />
<meta
name="msapplication-TileColor"
content="#ddd" />
<meta
name="theme-color"
content="#ffffff" />
<title>JFDesignnet Blog</title>
<meta
name="keywords"
content="jfdesignnet, jfdesign, jfblog" />
<meta
name="description"
content="jfdesignnet personal blog" />
<meta name="author" content="jfdesignnet" />
<meta property="og:image:width" content="120" />
<meta property="og:image:height" content="120" />
<meta
property="og:image:type"
content="image/
.png
" />
<meta property="og:title" content="JFDesignnet Blog" />
<meta property="og:description" content="jfdesignnet personal blog" />
<meta property="og:type" content="website" />
<meta property="og:url" content="/" />
<meta name="twitter:title" content="JFDesignnet Blog" />
<meta name="twitter:description" content="jfdesignnet personal blog" />
<script>
let indexURL = "/searchindex.json";
let includeSectionsInSearch = ["blog"];
let no_results_for = "No results for";
let empty_search_results_placeholder = "Type something to search..";
</script>
<meta http-equiv="x-dns-prefetch-control" content="on" />
<link rel="preconnect" href="https://use.fontawesome.com" crossorigin />
<link rel="preconnect" href="//cdnjs.cloudflare.com" />
<link rel="preconnect" href="//www.googletagmanager.com" />
<link rel="preconnect" href="//www.google-analytics.com" />
<link rel="dns-prefetch" href="https://use.fontawesome.com" />
<link rel="dns-prefetch" href="//ajax.googleapis.com" />
<link rel="dns-prefetch" href="//cdnjs.cloudflare.com" />
<link rel="dns-prefetch" href="//www.googletagmanager.com" />
<link rel="dns-prefetch" href="//www.google-analytics.com" />
<link rel="dns-prefetch" href="//fonts.googleapis.com" />
<link rel="dns-prefetch" href="//connect.facebook.net" />
<link rel="dns-prefetch" href="//platform.linkedin.com" />
<link rel="dns-prefetch" href="//platform.twitter.com" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<script>
(function () {
const googleFont = document.createElement("link");
googleFont.href = "https://fonts.googleapis.com/css2?family=Heebo:wght@400;600&family=Signika:wght@500;700&display=swap";
googleFont.type = "text/css";
googleFont.rel = "stylesheet";
document.head.appendChild(googleFont);
})();
</script>
<link
href="/css/style.min.ad95c37c52512b4195d08a387f5500e5f04f1198e6eae78ef0adf38525c2ad68.css"
integrity="sha256-rZXDfFJRK0GV0Io4f1UA5fBPEZjm6ueO8K3zhSXCrWg="
rel="stylesheet" />
<link
defer
async
rel="stylesheet"
Open service 172.66.44.169:443 · blog-jfdesignnet.pages.dev
2026-01-10 20:17
HTTP/1.1 200 OK
Date: Sat, 10 Jan 2026 20:17:35 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 22778
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
ETag: "d39d7fb33eaafa41dba4c881b18fbf1b"
Link: <//cdnjs.cloudflare.com>; rel="preconnect", <//www.googletagmanager.com>; rel="preconnect", <//www.google-analytics.com>; rel="preconnect", <https://fonts.googleapis.com>; rel="preconnect"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=%2BXLkacnurbka3sL%2FXIeuSvtCYe9Qznae6aqJiobl0bWkyWts4s8OBum9jnvuB2p43met0x74bqNR3Try0EwqYkv261PoxKzOR7gkie%2B3tWIkWFbV8fI59K8a"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bbedbd2baa89c5d-SIN
alt-svc: h3=":443"; ma=86400
Page title: JFDesignnet BlogMenu OpenMenu Close
<!doctype html>
<html
itemscope
lang="en-us"
itemtype="http://schema.org/WebPage">
<head>
<meta name="generator" content="Hugo 0.118.2">
<meta charset="utf-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=5" />
<meta name="theme-name" content="hugoplate" />
<link rel="shortcut icon" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_96x0_resize_lanczos_3.png" type="image/x-icon">
<link rel="icon" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_96x0_resize_lanczos_3.png" type="image/x-icon">
<link rel="icon" type="image/png" sizes="48x48" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_48x0_resize_lanczos_3.png">
<link rel="icon" type="image/png" sizes="96x96" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_96x0_resize_lanczos_3.png">
<link rel="apple-touch-icon" sizes="144x144" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_144x0_resize_lanczos_3.png">
<link rel="manifest" href="/manifest.webmanifest" />
<meta
name="msapplication-TileColor"
content="#ddd" />
<meta
name="theme-color"
content="#ffffff" />
<title>JFDesignnet Blog</title>
<meta
name="keywords"
content="jfdesignnet, jfdesign, jfblog" />
<meta
name="description"
content="jfdesignnet personal blog" />
<meta name="author" content="jfdesignnet" />
<meta property="og:image:width" content="120" />
<meta property="og:image:height" content="120" />
<meta
property="og:image:type"
content="image/
.png
" />
<meta property="og:title" content="JFDesignnet Blog" />
<meta property="og:description" content="jfdesignnet personal blog" />
<meta property="og:type" content="website" />
<meta property="og:url" content="/" />
<meta name="twitter:title" content="JFDesignnet Blog" />
<meta name="twitter:description" content="jfdesignnet personal blog" />
<script>
let indexURL = "/searchindex.json";
let includeSectionsInSearch = ["blog"];
let no_results_for = "No results for";
let empty_search_results_placeholder = "Type something to search..";
</script>
<meta http-equiv="x-dns-prefetch-control" content="on" />
<link rel="preconnect" href="https://use.fontawesome.com" crossorigin />
<link rel="preconnect" href="//cdnjs.cloudflare.com" />
<link rel="preconnect" href="//www.googletagmanager.com" />
<link rel="preconnect" href="//www.google-analytics.com" />
<link rel="dns-prefetch" href="https://use.fontawesome.com" />
<link rel="dns-prefetch" href="//ajax.googleapis.com" />
<link rel="dns-prefetch" href="//cdnjs.cloudflare.com" />
<link rel="dns-prefetch" href="//www.googletagmanager.com" />
<link rel="dns-prefetch" href="//www.google-analytics.com" />
<link rel="dns-prefetch" href="//fonts.googleapis.com" />
<link rel="dns-prefetch" href="//connect.facebook.net" />
<link rel="dns-prefetch" href="//platform.linkedin.com" />
<link rel="dns-prefetch" href="//platform.twitter.com" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<script>
(function () {
const googleFont = document.createElement("link");
googleFont.href = "https://fonts.googleapis.com/css2?family=Heebo:wght@400;600&family=Signika:wght@500;700&display=swap";
googleFont.type = "text/css";
googleFont.rel = "stylesheet";
document.head.appendChild(googleFont);
})();
</script>
<link
href="/css/style.min.ad95c37c52512b4195d08a387f5500e5f04f1198e6eae78ef0adf38525c2ad68.css"
integrity="sha256-rZXDfFJRK0GV0Io4f1UA5fBPEZjm6ueO8K3zhSXCrWg="
rel="stylesheet" />
<link
defer
async
rel="stylesheet"
Open service 2606:4700:310c::ac42:2f57:443 · blog-jfdesignnet.pages.dev
2026-01-10 20:17
HTTP/1.1 200 OK
Date: Sat, 10 Jan 2026 20:17:35 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 22778
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
ETag: "d39d7fb33eaafa41dba4c881b18fbf1b"
Link: <//cdnjs.cloudflare.com>; rel="preconnect", <//www.googletagmanager.com>; rel="preconnect", <//www.google-analytics.com>; rel="preconnect", <https://fonts.googleapis.com>; rel="preconnect"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=OBhlFIhUdYuqbPjSQ%2BVZ5UBDF1LwHZNLJbOYiw0CLexNhIece8h8X823fWixhAQY%2BKhr5begLUa3%2BarQ8zVrgsNCXyDAKhC6cBPtcofY6hgi7zfSRscs3Y52C8h5xa4OE3wLUBUd"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bbedbd2be1eebbc-YYZ
alt-svc: h3=":443"; ma=86400
Page title: JFDesignnet BlogMenu OpenMenu Close
<!doctype html>
<html
itemscope
lang="en-us"
itemtype="http://schema.org/WebPage">
<head>
<meta name="generator" content="Hugo 0.118.2">
<meta charset="utf-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=5" />
<meta name="theme-name" content="hugoplate" />
<link rel="shortcut icon" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_96x0_resize_lanczos_3.png" type="image/x-icon">
<link rel="icon" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_96x0_resize_lanczos_3.png" type="image/x-icon">
<link rel="icon" type="image/png" sizes="48x48" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_48x0_resize_lanczos_3.png">
<link rel="icon" type="image/png" sizes="96x96" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_96x0_resize_lanczos_3.png">
<link rel="apple-touch-icon" sizes="144x144" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_144x0_resize_lanczos_3.png">
<link rel="manifest" href="/manifest.webmanifest" />
<meta
name="msapplication-TileColor"
content="#ddd" />
<meta
name="theme-color"
content="#ffffff" />
<title>JFDesignnet Blog</title>
<meta
name="keywords"
content="jfdesignnet, jfdesign, jfblog" />
<meta
name="description"
content="jfdesignnet personal blog" />
<meta name="author" content="jfdesignnet" />
<meta property="og:image:width" content="120" />
<meta property="og:image:height" content="120" />
<meta
property="og:image:type"
content="image/
.png
" />
<meta property="og:title" content="JFDesignnet Blog" />
<meta property="og:description" content="jfdesignnet personal blog" />
<meta property="og:type" content="website" />
<meta property="og:url" content="/" />
<meta name="twitter:title" content="JFDesignnet Blog" />
<meta name="twitter:description" content="jfdesignnet personal blog" />
<script>
let indexURL = "/searchindex.json";
let includeSectionsInSearch = ["blog"];
let no_results_for = "No results for";
let empty_search_results_placeholder = "Type something to search..";
</script>
<meta http-equiv="x-dns-prefetch-control" content="on" />
<link rel="preconnect" href="https://use.fontawesome.com" crossorigin />
<link rel="preconnect" href="//cdnjs.cloudflare.com" />
<link rel="preconnect" href="//www.googletagmanager.com" />
<link rel="preconnect" href="//www.google-analytics.com" />
<link rel="dns-prefetch" href="https://use.fontawesome.com" />
<link rel="dns-prefetch" href="//ajax.googleapis.com" />
<link rel="dns-prefetch" href="//cdnjs.cloudflare.com" />
<link rel="dns-prefetch" href="//www.googletagmanager.com" />
<link rel="dns-prefetch" href="//www.google-analytics.com" />
<link rel="dns-prefetch" href="//fonts.googleapis.com" />
<link rel="dns-prefetch" href="//connect.facebook.net" />
<link rel="dns-prefetch" href="//platform.linkedin.com" />
<link rel="dns-prefetch" href="//platform.twitter.com" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<script>
(function () {
const googleFont = document.createElement("link");
googleFont.href = "https://fonts.googleapis.com/css2?family=Heebo:wght@400;600&family=Signika:wght@500;700&display=swap";
googleFont.type = "text/css";
googleFont.rel = "stylesheet";
document.head.appendChild(googleFont);
})();
</script>
<link
href="/css/style.min.ad95c37c52512b4195d08a387f5500e5f04f1198e6eae78ef0adf38525c2ad68.css"
integrity="sha256-rZXDfFJRK0GV0Io4f1UA5fBPEZjm6ueO8K3zhSXCrWg="
rel="stylesheet" />
<link
defer
async
rel="stylesheet"
Open service 2606:4700:310c::ac42:2f57:80 · blog-jfdesignnet.pages.dev
2026-01-10 20:17
HTTP/1.1 301 Moved Permanently
Date: Sat, 10 Jan 2026 20:17:35 GMT
Content-Length: 0
Connection: close
Location: https://blog-jfdesignnet.pages.dev/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=PVdI8k7Iy1Da6RYQsi1OqMBuM4pFNEQwDZ%2BW%2B4r4cWqx5jg1CsHb5krTea2ReEvGm1Okla99Hjyj4tftoEAuebWZx5jvHeZ4WTbDGAWw5mK%2FecSPPjtcezybP9H3Bq78LtnDkN9d"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bbedbd2690afcd9-YYZ
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:310c::ac42:2ca9:80 · blog-jfdesignnet.pages.dev
2026-01-10 20:17
HTTP/1.1 301 Moved Permanently
Date: Sat, 10 Jan 2026 20:17:35 GMT
Content-Length: 0
Connection: close
Location: https://blog-jfdesignnet.pages.dev/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=GWmcmErEbrMxNGl6%2FgGJz3A6vnbLwg47iIxoqSc69UcJLlM1jPnUzs%2BmBj06HNaKiXtmwPfwD%2BEIg19lFFiOF7UkdCfQJb0jM2V6rwREumdOFz1nXpxOs9%2BYHiM9t3NazRk7F2v5"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bbedbd2685676a4-LHR
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:310c::ac42:2f57:8443 · blog-jfdesignnet.pages.dev
2026-01-10 20:17
HTTP/1.1 200 OK
Date: Sat, 10 Jan 2026 20:17:35 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 22778
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
ETag: "d39d7fb33eaafa41dba4c881b18fbf1b"
Link: <//cdnjs.cloudflare.com>; rel="preconnect", <//www.googletagmanager.com>; rel="preconnect", <//www.google-analytics.com>; rel="preconnect", <https://fonts.googleapis.com>; rel="preconnect"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=lPO3bkvmDrfL6ZjwaJLWICFGz9iKhxEj9CXz%2B6APzZWGyNojWLiWdleeULpAyRp4OTakfKeWntOB%2FdOGaIwN2d4ZGuODMlpoSNzFeSUDqTdEvybfXBxWmQyNP8ShEsU5xPcFqQgt"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bbedbd26eb1c0b5-FRA
alt-svc: h3=":8443"; ma=86400
Page title: JFDesignnet BlogMenu OpenMenu Close
<!doctype html>
<html
itemscope
lang="en-us"
itemtype="http://schema.org/WebPage">
<head>
<meta name="generator" content="Hugo 0.118.2">
<meta charset="utf-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=5" />
<meta name="theme-name" content="hugoplate" />
<link rel="shortcut icon" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_96x0_resize_lanczos_3.png" type="image/x-icon">
<link rel="icon" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_96x0_resize_lanczos_3.png" type="image/x-icon">
<link rel="icon" type="image/png" sizes="48x48" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_48x0_resize_lanczos_3.png">
<link rel="icon" type="image/png" sizes="96x96" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_96x0_resize_lanczos_3.png">
<link rel="apple-touch-icon" sizes="144x144" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_144x0_resize_lanczos_3.png">
<link rel="manifest" href="/manifest.webmanifest" />
<meta
name="msapplication-TileColor"
content="#ddd" />
<meta
name="theme-color"
content="#ffffff" />
<title>JFDesignnet Blog</title>
<meta
name="keywords"
content="jfdesignnet, jfdesign, jfblog" />
<meta
name="description"
content="jfdesignnet personal blog" />
<meta name="author" content="jfdesignnet" />
<meta property="og:image:width" content="120" />
<meta property="og:image:height" content="120" />
<meta
property="og:image:type"
content="image/
.png
" />
<meta property="og:title" content="JFDesignnet Blog" />
<meta property="og:description" content="jfdesignnet personal blog" />
<meta property="og:type" content="website" />
<meta property="og:url" content="/" />
<meta name="twitter:title" content="JFDesignnet Blog" />
<meta name="twitter:description" content="jfdesignnet personal blog" />
<script>
let indexURL = "/searchindex.json";
let includeSectionsInSearch = ["blog"];
let no_results_for = "No results for";
let empty_search_results_placeholder = "Type something to search..";
</script>
<meta http-equiv="x-dns-prefetch-control" content="on" />
<link rel="preconnect" href="https://use.fontawesome.com" crossorigin />
<link rel="preconnect" href="//cdnjs.cloudflare.com" />
<link rel="preconnect" href="//www.googletagmanager.com" />
<link rel="preconnect" href="//www.google-analytics.com" />
<link rel="dns-prefetch" href="https://use.fontawesome.com" />
<link rel="dns-prefetch" href="//ajax.googleapis.com" />
<link rel="dns-prefetch" href="//cdnjs.cloudflare.com" />
<link rel="dns-prefetch" href="//www.googletagmanager.com" />
<link rel="dns-prefetch" href="//www.google-analytics.com" />
<link rel="dns-prefetch" href="//fonts.googleapis.com" />
<link rel="dns-prefetch" href="//connect.facebook.net" />
<link rel="dns-prefetch" href="//platform.linkedin.com" />
<link rel="dns-prefetch" href="//platform.twitter.com" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<script>
(function () {
const googleFont = document.createElement("link");
googleFont.href = "https://fonts.googleapis.com/css2?family=Heebo:wght@400;600&family=Signika:wght@500;700&display=swap";
googleFont.type = "text/css";
googleFont.rel = "stylesheet";
document.head.appendChild(googleFont);
})();
</script>
<link
href="/css/style.min.ad95c37c52512b4195d08a387f5500e5f04f1198e6eae78ef0adf38525c2ad68.css"
integrity="sha256-rZXDfFJRK0GV0Io4f1UA5fBPEZjm6ueO8K3zhSXCrWg="
rel="stylesheet" />
<link
defer
async
rel="stylesheet"
Open service 172.66.47.87:443 · blog-jfdesignnet.pages.dev
2026-01-10 20:17
HTTP/1.1 200 OK
Date: Sat, 10 Jan 2026 20:17:35 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 22778
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
ETag: "d39d7fb33eaafa41dba4c881b18fbf1b"
Link: <//cdnjs.cloudflare.com>; rel="preconnect", <//www.googletagmanager.com>; rel="preconnect", <//www.google-analytics.com>; rel="preconnect", <https://fonts.googleapis.com>; rel="preconnect"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=OvVr0Xcg70ppREIth7nBNQkmqlqK50OKJqtZB9oKE7OL%2F%2FwMznB%2BqKtcykixYfkWMSf3Nfi5ro7YXFCw3eEqzzBizsdsBa4GKXQ%2BC85%2BtgjmerJ8ryjNOO3Y"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bbedbd25bb73639-FRA
alt-svc: h3=":443"; ma=86400
Page title: JFDesignnet BlogMenu OpenMenu Close
<!doctype html>
<html
itemscope
lang="en-us"
itemtype="http://schema.org/WebPage">
<head>
<meta name="generator" content="Hugo 0.118.2">
<meta charset="utf-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=5" />
<meta name="theme-name" content="hugoplate" />
<link rel="shortcut icon" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_96x0_resize_lanczos_3.png" type="image/x-icon">
<link rel="icon" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_96x0_resize_lanczos_3.png" type="image/x-icon">
<link rel="icon" type="image/png" sizes="48x48" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_48x0_resize_lanczos_3.png">
<link rel="icon" type="image/png" sizes="96x96" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_96x0_resize_lanczos_3.png">
<link rel="apple-touch-icon" sizes="144x144" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_144x0_resize_lanczos_3.png">
<link rel="manifest" href="/manifest.webmanifest" />
<meta
name="msapplication-TileColor"
content="#ddd" />
<meta
name="theme-color"
content="#ffffff" />
<title>JFDesignnet Blog</title>
<meta
name="keywords"
content="jfdesignnet, jfdesign, jfblog" />
<meta
name="description"
content="jfdesignnet personal blog" />
<meta name="author" content="jfdesignnet" />
<meta property="og:image:width" content="120" />
<meta property="og:image:height" content="120" />
<meta
property="og:image:type"
content="image/
.png
" />
<meta property="og:title" content="JFDesignnet Blog" />
<meta property="og:description" content="jfdesignnet personal blog" />
<meta property="og:type" content="website" />
<meta property="og:url" content="/" />
<meta name="twitter:title" content="JFDesignnet Blog" />
<meta name="twitter:description" content="jfdesignnet personal blog" />
<script>
let indexURL = "/searchindex.json";
let includeSectionsInSearch = ["blog"];
let no_results_for = "No results for";
let empty_search_results_placeholder = "Type something to search..";
</script>
<meta http-equiv="x-dns-prefetch-control" content="on" />
<link rel="preconnect" href="https://use.fontawesome.com" crossorigin />
<link rel="preconnect" href="//cdnjs.cloudflare.com" />
<link rel="preconnect" href="//www.googletagmanager.com" />
<link rel="preconnect" href="//www.google-analytics.com" />
<link rel="dns-prefetch" href="https://use.fontawesome.com" />
<link rel="dns-prefetch" href="//ajax.googleapis.com" />
<link rel="dns-prefetch" href="//cdnjs.cloudflare.com" />
<link rel="dns-prefetch" href="//www.googletagmanager.com" />
<link rel="dns-prefetch" href="//www.google-analytics.com" />
<link rel="dns-prefetch" href="//fonts.googleapis.com" />
<link rel="dns-prefetch" href="//connect.facebook.net" />
<link rel="dns-prefetch" href="//platform.linkedin.com" />
<link rel="dns-prefetch" href="//platform.twitter.com" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<script>
(function () {
const googleFont = document.createElement("link");
googleFont.href = "https://fonts.googleapis.com/css2?family=Heebo:wght@400;600&family=Signika:wght@500;700&display=swap";
googleFont.type = "text/css";
googleFont.rel = "stylesheet";
document.head.appendChild(googleFont);
})();
</script>
<link
href="/css/style.min.ad95c37c52512b4195d08a387f5500e5f04f1198e6eae78ef0adf38525c2ad68.css"
integrity="sha256-rZXDfFJRK0GV0Io4f1UA5fBPEZjm6ueO8K3zhSXCrWg="
rel="stylesheet" />
<link
defer
async
rel="stylesheet"
Open service 172.66.47.87:8443 · blog-jfdesignnet.pages.dev
2026-01-10 20:17
HTTP/1.1 200 OK
Date: Sat, 10 Jan 2026 20:17:35 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 22778
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
ETag: "d39d7fb33eaafa41dba4c881b18fbf1b"
Link: <//cdnjs.cloudflare.com>; rel="preconnect", <//www.googletagmanager.com>; rel="preconnect", <//www.google-analytics.com>; rel="preconnect", <https://fonts.googleapis.com>; rel="preconnect"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=Su2caJvBRmec3xzKJWOxaFHltDgGiRqYwuC%2Fm9CEZJ9Z4mb2VKLxR3gN80rcxccYIKPf%2F8XXIGP0rZ1ksWwfuFCuGm%2FoKqLItECFQgQkXd9ejAtBhleP1nvD"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bbedbd27b114d50-FRA
alt-svc: h3=":8443"; ma=86400
Page title: JFDesignnet BlogMenu OpenMenu Close
<!doctype html>
<html
itemscope
lang="en-us"
itemtype="http://schema.org/WebPage">
<head>
<meta name="generator" content="Hugo 0.118.2">
<meta charset="utf-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=5" />
<meta name="theme-name" content="hugoplate" />
<link rel="shortcut icon" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_96x0_resize_lanczos_3.png" type="image/x-icon">
<link rel="icon" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_96x0_resize_lanczos_3.png" type="image/x-icon">
<link rel="icon" type="image/png" sizes="48x48" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_48x0_resize_lanczos_3.png">
<link rel="icon" type="image/png" sizes="96x96" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_96x0_resize_lanczos_3.png">
<link rel="apple-touch-icon" sizes="144x144" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_144x0_resize_lanczos_3.png">
<link rel="manifest" href="/manifest.webmanifest" />
<meta
name="msapplication-TileColor"
content="#ddd" />
<meta
name="theme-color"
content="#ffffff" />
<title>JFDesignnet Blog</title>
<meta
name="keywords"
content="jfdesignnet, jfdesign, jfblog" />
<meta
name="description"
content="jfdesignnet personal blog" />
<meta name="author" content="jfdesignnet" />
<meta property="og:image:width" content="120" />
<meta property="og:image:height" content="120" />
<meta
property="og:image:type"
content="image/
.png
" />
<meta property="og:title" content="JFDesignnet Blog" />
<meta property="og:description" content="jfdesignnet personal blog" />
<meta property="og:type" content="website" />
<meta property="og:url" content="/" />
<meta name="twitter:title" content="JFDesignnet Blog" />
<meta name="twitter:description" content="jfdesignnet personal blog" />
<script>
let indexURL = "/searchindex.json";
let includeSectionsInSearch = ["blog"];
let no_results_for = "No results for";
let empty_search_results_placeholder = "Type something to search..";
</script>
<meta http-equiv="x-dns-prefetch-control" content="on" />
<link rel="preconnect" href="https://use.fontawesome.com" crossorigin />
<link rel="preconnect" href="//cdnjs.cloudflare.com" />
<link rel="preconnect" href="//www.googletagmanager.com" />
<link rel="preconnect" href="//www.google-analytics.com" />
<link rel="dns-prefetch" href="https://use.fontawesome.com" />
<link rel="dns-prefetch" href="//ajax.googleapis.com" />
<link rel="dns-prefetch" href="//cdnjs.cloudflare.com" />
<link rel="dns-prefetch" href="//www.googletagmanager.com" />
<link rel="dns-prefetch" href="//www.google-analytics.com" />
<link rel="dns-prefetch" href="//fonts.googleapis.com" />
<link rel="dns-prefetch" href="//connect.facebook.net" />
<link rel="dns-prefetch" href="//platform.linkedin.com" />
<link rel="dns-prefetch" href="//platform.twitter.com" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<script>
(function () {
const googleFont = document.createElement("link");
googleFont.href = "https://fonts.googleapis.com/css2?family=Heebo:wght@400;600&family=Signika:wght@500;700&display=swap";
googleFont.type = "text/css";
googleFont.rel = "stylesheet";
document.head.appendChild(googleFont);
})();
</script>
<link
href="/css/style.min.ad95c37c52512b4195d08a387f5500e5f04f1198e6eae78ef0adf38525c2ad68.css"
integrity="sha256-rZXDfFJRK0GV0Io4f1UA5fBPEZjm6ueO8K3zhSXCrWg="
rel="stylesheet" />
<link
defer
async
rel="stylesheet"
Open service 2606:4700:310c::ac42:2ca9:443 · blog-jfdesignnet.pages.dev
2026-01-10 20:17
HTTP/1.1 200 OK
Date: Sat, 10 Jan 2026 20:17:35 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 22778
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
ETag: "d39d7fb33eaafa41dba4c881b18fbf1b"
Link: <//cdnjs.cloudflare.com>; rel="preconnect", <//www.googletagmanager.com>; rel="preconnect", <//www.google-analytics.com>; rel="preconnect", <https://fonts.googleapis.com>; rel="preconnect"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=uf%2BjN%2FYIpU7PlGAt7Jx2NX0QuEpb0bVhVjwtqy%2BRC6NjWFhiQ0hoBts3Smn1QpyaMK1aMzAYSSyGECamiZgiAipIskMkoIfrxAwoRIOB%2FzP1PrV%2BQxV%2FT%2FRP%2BuOJXomKyNS2JF7z"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bbedbd25dfc1e4e-FRA
alt-svc: h3=":443"; ma=86400
Page title: JFDesignnet BlogMenu OpenMenu Close
<!doctype html>
<html
itemscope
lang="en-us"
itemtype="http://schema.org/WebPage">
<head>
<meta name="generator" content="Hugo 0.118.2">
<meta charset="utf-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=5" />
<meta name="theme-name" content="hugoplate" />
<link rel="shortcut icon" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_96x0_resize_lanczos_3.png" type="image/x-icon">
<link rel="icon" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_96x0_resize_lanczos_3.png" type="image/x-icon">
<link rel="icon" type="image/png" sizes="48x48" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_48x0_resize_lanczos_3.png">
<link rel="icon" type="image/png" sizes="96x96" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_96x0_resize_lanczos_3.png">
<link rel="apple-touch-icon" sizes="144x144" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_144x0_resize_lanczos_3.png">
<link rel="manifest" href="/manifest.webmanifest" />
<meta
name="msapplication-TileColor"
content="#ddd" />
<meta
name="theme-color"
content="#ffffff" />
<title>JFDesignnet Blog</title>
<meta
name="keywords"
content="jfdesignnet, jfdesign, jfblog" />
<meta
name="description"
content="jfdesignnet personal blog" />
<meta name="author" content="jfdesignnet" />
<meta property="og:image:width" content="120" />
<meta property="og:image:height" content="120" />
<meta
property="og:image:type"
content="image/
.png
" />
<meta property="og:title" content="JFDesignnet Blog" />
<meta property="og:description" content="jfdesignnet personal blog" />
<meta property="og:type" content="website" />
<meta property="og:url" content="/" />
<meta name="twitter:title" content="JFDesignnet Blog" />
<meta name="twitter:description" content="jfdesignnet personal blog" />
<script>
let indexURL = "/searchindex.json";
let includeSectionsInSearch = ["blog"];
let no_results_for = "No results for";
let empty_search_results_placeholder = "Type something to search..";
</script>
<meta http-equiv="x-dns-prefetch-control" content="on" />
<link rel="preconnect" href="https://use.fontawesome.com" crossorigin />
<link rel="preconnect" href="//cdnjs.cloudflare.com" />
<link rel="preconnect" href="//www.googletagmanager.com" />
<link rel="preconnect" href="//www.google-analytics.com" />
<link rel="dns-prefetch" href="https://use.fontawesome.com" />
<link rel="dns-prefetch" href="//ajax.googleapis.com" />
<link rel="dns-prefetch" href="//cdnjs.cloudflare.com" />
<link rel="dns-prefetch" href="//www.googletagmanager.com" />
<link rel="dns-prefetch" href="//www.google-analytics.com" />
<link rel="dns-prefetch" href="//fonts.googleapis.com" />
<link rel="dns-prefetch" href="//connect.facebook.net" />
<link rel="dns-prefetch" href="//platform.linkedin.com" />
<link rel="dns-prefetch" href="//platform.twitter.com" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<script>
(function () {
const googleFont = document.createElement("link");
googleFont.href = "https://fonts.googleapis.com/css2?family=Heebo:wght@400;600&family=Signika:wght@500;700&display=swap";
googleFont.type = "text/css";
googleFont.rel = "stylesheet";
document.head.appendChild(googleFont);
})();
</script>
<link
href="/css/style.min.ad95c37c52512b4195d08a387f5500e5f04f1198e6eae78ef0adf38525c2ad68.css"
integrity="sha256-rZXDfFJRK0GV0Io4f1UA5fBPEZjm6ueO8K3zhSXCrWg="
rel="stylesheet" />
<link
defer
async
rel="stylesheet"
Open service 172.66.44.169:80 · blog-jfdesignnet.pages.dev
2026-01-10 20:17
HTTP/1.1 301 Moved Permanently
Date: Sat, 10 Jan 2026 20:17:35 GMT
Content-Length: 0
Connection: close
Location: https://blog-jfdesignnet.pages.dev/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=qyOoJ6Ox18DSUBFp90x9Ew4iyZXLAOmzrggt2%2FzswNXXWWnTu7MMxqkcYLDJZ8KJbkeTVmyXls66lwtx%2FiVlywow9y55h44mbVaebG84%2FsFZlbUkqkN%2BnTPY"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bbedbd21fbfdb0c-FRA
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:310c::ac42:2ca9:8443 · blog-jfdesignnet.pages.dev
2026-01-10 20:17
HTTP/1.1 200 OK
Date: Sat, 10 Jan 2026 20:17:35 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 22778
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
ETag: "d39d7fb33eaafa41dba4c881b18fbf1b"
Link: <//cdnjs.cloudflare.com>; rel="preconnect", <//www.googletagmanager.com>; rel="preconnect", <//www.google-analytics.com>; rel="preconnect", <https://fonts.googleapis.com>; rel="preconnect"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=ivFRe3FtmKUDMc%2FuIxrHRHPTTJIDuShJIXdfjXQy4cS4adxjdPBDQp1wHxcb7toi9NhyfMPJfKWQR%2FJl9qwoYL4J059n5V%2FustoQz1ibWTs8GHEui2GhXLTPsksBMDEPzi1c81oI"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bbedbd25f58c11c-AMS
alt-svc: h3=":8443"; ma=86400
Page title: JFDesignnet BlogMenu OpenMenu Close
<!doctype html>
<html
itemscope
lang="en-us"
itemtype="http://schema.org/WebPage">
<head>
<meta name="generator" content="Hugo 0.118.2">
<meta charset="utf-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=5" />
<meta name="theme-name" content="hugoplate" />
<link rel="shortcut icon" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_96x0_resize_lanczos_3.png" type="image/x-icon">
<link rel="icon" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_96x0_resize_lanczos_3.png" type="image/x-icon">
<link rel="icon" type="image/png" sizes="48x48" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_48x0_resize_lanczos_3.png">
<link rel="icon" type="image/png" sizes="96x96" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_96x0_resize_lanczos_3.png">
<link rel="apple-touch-icon" sizes="144x144" href="/images/favicon_huf2bcca6a64f05b4cbd6f349c0b9dbf4b_9026_144x0_resize_lanczos_3.png">
<link rel="manifest" href="/manifest.webmanifest" />
<meta
name="msapplication-TileColor"
content="#ddd" />
<meta
name="theme-color"
content="#ffffff" />
<title>JFDesignnet Blog</title>
<meta
name="keywords"
content="jfdesignnet, jfdesign, jfblog" />
<meta
name="description"
content="jfdesignnet personal blog" />
<meta name="author" content="jfdesignnet" />
<meta property="og:image:width" content="120" />
<meta property="og:image:height" content="120" />
<meta
property="og:image:type"
content="image/
.png
" />
<meta property="og:title" content="JFDesignnet Blog" />
<meta property="og:description" content="jfdesignnet personal blog" />
<meta property="og:type" content="website" />
<meta property="og:url" content="/" />
<meta name="twitter:title" content="JFDesignnet Blog" />
<meta name="twitter:description" content="jfdesignnet personal blog" />
<script>
let indexURL = "/searchindex.json";
let includeSectionsInSearch = ["blog"];
let no_results_for = "No results for";
let empty_search_results_placeholder = "Type something to search..";
</script>
<meta http-equiv="x-dns-prefetch-control" content="on" />
<link rel="preconnect" href="https://use.fontawesome.com" crossorigin />
<link rel="preconnect" href="//cdnjs.cloudflare.com" />
<link rel="preconnect" href="//www.googletagmanager.com" />
<link rel="preconnect" href="//www.google-analytics.com" />
<link rel="dns-prefetch" href="https://use.fontawesome.com" />
<link rel="dns-prefetch" href="//ajax.googleapis.com" />
<link rel="dns-prefetch" href="//cdnjs.cloudflare.com" />
<link rel="dns-prefetch" href="//www.googletagmanager.com" />
<link rel="dns-prefetch" href="//www.google-analytics.com" />
<link rel="dns-prefetch" href="//fonts.googleapis.com" />
<link rel="dns-prefetch" href="//connect.facebook.net" />
<link rel="dns-prefetch" href="//platform.linkedin.com" />
<link rel="dns-prefetch" href="//platform.twitter.com" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<script>
(function () {
const googleFont = document.createElement("link");
googleFont.href = "https://fonts.googleapis.com/css2?family=Heebo:wght@400;600&family=Signika:wght@500;700&display=swap";
googleFont.type = "text/css";
googleFont.rel = "stylesheet";
document.head.appendChild(googleFont);
})();
</script>
<link
href="/css/style.min.ad95c37c52512b4195d08a387f5500e5f04f1198e6eae78ef0adf38525c2ad68.css"
integrity="sha256-rZXDfFJRK0GV0Io4f1UA5fBPEZjm6ueO8K3zhSXCrWg="
rel="stylesheet" />
<link
defer
async
rel="stylesheet"