AmazonS3
tcp/443 tcp/80
CloudFront
tcp/443 tcp/80
Open service 2600:9000:223d:a00:18:32:2ec0:93a1:80 · blakeconsulting.org
2026-01-23 20:08
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 13379
Connection: close
Last-Modified: Sat, 01 Nov 2025 17:57:31 GMT
x-amz-server-side-encryption: AES256
Accept-Ranges: bytes
Server: AmazonS3
Date: Fri, 23 Jan 2026 20:08:52 GMT
ETag: "2c09f9c15526cd42b4e2facbb287a038"
X-Cache: Hit from cloudfront
Via: 1.1 626c544a24a86c6cd608360f520b6d8c.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: FRA56-P3
X-Amz-Cf-Id: sjuoxorfaPH00ZZJrm1iS87QIZhj4d62whtNpiLW0G11f0Sm44I6Zg==
Age: 2
Page title: Alan Blake | Agile | AI Automation
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Alan Blake | Agile | AI Automation</title>
<style>
/* ==== RESET & BASE ==== */
*, *::before, *::after { box-sizing: border-box; margin:0; padding:0; }
html { font-size: 100%; } /* 1rem = 16px base */
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
line-height: 1.6;
color: #333;
background:#f8f9fa;
min-height: 100vh;
}
a { text-decoration:none; color:inherit; }
img { max-width:100%; height:auto; display:block; }
.container { width:90%; max-width:1200px; margin:auto; padding:0 1rem; }
/* ==== TYPOGRAPHY ==== */
h1, h2, h3 { line-height:1.2; word-break: break-word; hyphens: auto; }
.hero h1 {
font-size: clamp(1.8rem, 6vw, 3rem);
margin-bottom:.5rem;
}
.hero p {
font-size: clamp(1rem, 3.5vw, 1.2rem);
max-width: 90vw;
margin:auto;
word-break: break-word;
hyphens: auto;
}
.section-title {
font-size: clamp(1.6rem, 5vw, 2.2rem);
text-align:center;
margin-bottom:2rem;
position:relative;
}
.section-title::after{
content:''; width:60px; height:4px; background:#3498db;
display:block; margin:0.5rem auto 0;
}
/* ==== HEADER & NAV ==== */
header {
background:#2c3e50; color:#fff;
position:sticky; top:0; z-index:100;
}
nav {
display:flex; justify-content:space-between; align-items:center;
padding:1rem 0;
}
.logo { font-size: clamp(1.2rem, 4vw, 1.5rem); font-weight:700; }
.nav-links {
display:flex; gap:1.5rem;
font-size: clamp(0.9rem, 3vw, 1rem);
list-style: none;
}
.nav-links a:hover { color:#3498db; }
.mobile-toggle { display:none; cursor:pointer; font-size:1.5rem; }
/* ==== HERO ==== */
.hero {
background: linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),
url('https://source.unsplash.com/random/1600x900/?code') center/cover no-repeat;
color:#fff; text-align:center;
padding: clamp(3rem, 12vh, 6rem) 0;
}
/* ==== SECTIONS ==== */
section { padding: clamp(2rem, 8vh, 4rem) 0; }
/* ---- ABOUT ---- */
.about-grid {
display:grid; gap:1.5rem;
grid-template-columns: minmax(0,1fr) minmax(0,2fr);
align-items:center;
}
.about-img img { border-radius:8px; box-shadow:0 5px 15px rgba(0,0,0,.1); }
.about-text p { margin-bottom:1rem; font-size: clamp(0.95rem, 3vw, 1rem); }
/* ---- PORTFOLIO ---- */
.portfolio-grid {
display:grid;
grid-template-columns: repeat(auto-fit, minmax(250px,1fr));
gap:1.5rem;
}
.project {
background:#fff; border-radius:8px; overflow:hidden;
box-shadow:0 5px 15px rgba(0,0,0,.08);
transition:transform .3s;
}
.project:hover { transform:translateY(-8px); }
.project-img {
height: clamp(140px, 30vw, 180px); background:#ddd;
display:flex; align-items:center; justify-content:center;
font-size: clamp(2rem, 8vw, 3rem); color:#aaa;
}
.project-body { padding:1.25rem; }
.project-title { font-size: clamp(1.1rem, 4vw, 1.25rem); margin-bottom:.4rem; }
.project p { font-size: clamp(0.9rem, 3vw, 1rem); }
.project-tags {
margin-top:.5rem; font-size: clamp(0.75rem, 2.5vw, .8rem);
display:f
Open service 2600:9000:223d:b800:18:32:2ec0:93a1:80 · blakeconsulting.org
2026-01-23 20:08
HTTP/1.1 403 Forbidden Server: CloudFront Date: Fri, 23 Jan 2026 20:08:53 GMT Content-Type: text/html Content-Length: 986 Connection: close X-Cache: Error from cloudfront Via: 1.1 e41703af87be84ac95b3cadf9d8dd470.cloudfront.net (CloudFront) X-Amz-Cf-Pop: FRA56-P3 X-Amz-Cf-Id: V6I6uLlSUmjG3oTe_Je1pfJRzb6DF9S7JEXXWKen8NNYriwuktyYXg== Page title: ERROR: The request could not be satisfied <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <TITLE>ERROR: The request could not be satisfied</TITLE> </HEAD><BODY> <H1>403 ERROR</H1> <H2>The request could not be satisfied.</H2> <HR noshade size="1px"> The Amazon CloudFront distribution is configured to block access from your country. We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner. <BR clear="all"> If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation. <BR clear="all"> <HR noshade size="1px"> <PRE> Generated by cloudfront (CloudFront) Request ID: V6I6uLlSUmjG3oTe_Je1pfJRzb6DF9S7JEXXWKen8NNYriwuktyYXg== </PRE> <ADDRESS> </ADDRESS> </BODY></HTML>
Open service 2600:9000:223d:800:18:32:2ec0:93a1:443 · blakeconsulting.org
2026-01-23 20:08
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 13379
Connection: close
Last-Modified: Sat, 01 Nov 2025 17:57:31 GMT
x-amz-server-side-encryption: AES256
Accept-Ranges: bytes
Server: AmazonS3
Date: Fri, 23 Jan 2026 20:08:52 GMT
ETag: "2c09f9c15526cd42b4e2facbb287a038"
X-Cache: Hit from cloudfront
Via: 1.1 8af5231b014ab5e8c35000dd4cf4b68c.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: FRA56-P3
X-Amz-Cf-Id: wwoDJhx9VFyS4HuphBzclKAwIeUxk_HQ6lr_6elWYnHS1rh1l_nvcQ==
Age: 2
Page title: Alan Blake | Agile | AI Automation
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Alan Blake | Agile | AI Automation</title>
<style>
/* ==== RESET & BASE ==== */
*, *::before, *::after { box-sizing: border-box; margin:0; padding:0; }
html { font-size: 100%; } /* 1rem = 16px base */
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
line-height: 1.6;
color: #333;
background:#f8f9fa;
min-height: 100vh;
}
a { text-decoration:none; color:inherit; }
img { max-width:100%; height:auto; display:block; }
.container { width:90%; max-width:1200px; margin:auto; padding:0 1rem; }
/* ==== TYPOGRAPHY ==== */
h1, h2, h3 { line-height:1.2; word-break: break-word; hyphens: auto; }
.hero h1 {
font-size: clamp(1.8rem, 6vw, 3rem);
margin-bottom:.5rem;
}
.hero p {
font-size: clamp(1rem, 3.5vw, 1.2rem);
max-width: 90vw;
margin:auto;
word-break: break-word;
hyphens: auto;
}
.section-title {
font-size: clamp(1.6rem, 5vw, 2.2rem);
text-align:center;
margin-bottom:2rem;
position:relative;
}
.section-title::after{
content:''; width:60px; height:4px; background:#3498db;
display:block; margin:0.5rem auto 0;
}
/* ==== HEADER & NAV ==== */
header {
background:#2c3e50; color:#fff;
position:sticky; top:0; z-index:100;
}
nav {
display:flex; justify-content:space-between; align-items:center;
padding:1rem 0;
}
.logo { font-size: clamp(1.2rem, 4vw, 1.5rem); font-weight:700; }
.nav-links {
display:flex; gap:1.5rem;
font-size: clamp(0.9rem, 3vw, 1rem);
list-style: none;
}
.nav-links a:hover { color:#3498db; }
.mobile-toggle { display:none; cursor:pointer; font-size:1.5rem; }
/* ==== HERO ==== */
.hero {
background: linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),
url('https://source.unsplash.com/random/1600x900/?code') center/cover no-repeat;
color:#fff; text-align:center;
padding: clamp(3rem, 12vh, 6rem) 0;
}
/* ==== SECTIONS ==== */
section { padding: clamp(2rem, 8vh, 4rem) 0; }
/* ---- ABOUT ---- */
.about-grid {
display:grid; gap:1.5rem;
grid-template-columns: minmax(0,1fr) minmax(0,2fr);
align-items:center;
}
.about-img img { border-radius:8px; box-shadow:0 5px 15px rgba(0,0,0,.1); }
.about-text p { margin-bottom:1rem; font-size: clamp(0.95rem, 3vw, 1rem); }
/* ---- PORTFOLIO ---- */
.portfolio-grid {
display:grid;
grid-template-columns: repeat(auto-fit, minmax(250px,1fr));
gap:1.5rem;
}
.project {
background:#fff; border-radius:8px; overflow:hidden;
box-shadow:0 5px 15px rgba(0,0,0,.08);
transition:transform .3s;
}
.project:hover { transform:translateY(-8px); }
.project-img {
height: clamp(140px, 30vw, 180px); background:#ddd;
display:flex; align-items:center; justify-content:center;
font-size: clamp(2rem, 8vw, 3rem); color:#aaa;
}
.project-body { padding:1.25rem; }
.project-title { font-size: clamp(1.1rem, 4vw, 1.25rem); margin-bottom:.4rem; }
.project p { font-size: clamp(0.9rem, 3vw, 1rem); }
.project-tags {
margin-top:.5rem; font-size: clamp(0.75rem, 2.5vw, .8rem);
display:f
Open service 52.222.214.88:80 · blakeconsulting.org
2026-01-23 20:08
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 13379
Connection: close
Last-Modified: Sat, 01 Nov 2025 17:57:31 GMT
x-amz-server-side-encryption: AES256
Accept-Ranges: bytes
Server: AmazonS3
Date: Fri, 23 Jan 2026 20:08:52 GMT
ETag: "2c09f9c15526cd42b4e2facbb287a038"
X-Cache: Hit from cloudfront
Via: 1.1 eaedf92fd05c53aa96f20b6322b473e6.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: FRA56-P3
X-Amz-Cf-Id: CooSWPMkp7sr2nI5s7DW1wmbBubFYRXryDbLh_x6Ai_XXgeiLEzPKA==
Age: 2
Page title: Alan Blake | Agile | AI Automation
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Alan Blake | Agile | AI Automation</title>
<style>
/* ==== RESET & BASE ==== */
*, *::before, *::after { box-sizing: border-box; margin:0; padding:0; }
html { font-size: 100%; } /* 1rem = 16px base */
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
line-height: 1.6;
color: #333;
background:#f8f9fa;
min-height: 100vh;
}
a { text-decoration:none; color:inherit; }
img { max-width:100%; height:auto; display:block; }
.container { width:90%; max-width:1200px; margin:auto; padding:0 1rem; }
/* ==== TYPOGRAPHY ==== */
h1, h2, h3 { line-height:1.2; word-break: break-word; hyphens: auto; }
.hero h1 {
font-size: clamp(1.8rem, 6vw, 3rem);
margin-bottom:.5rem;
}
.hero p {
font-size: clamp(1rem, 3.5vw, 1.2rem);
max-width: 90vw;
margin:auto;
word-break: break-word;
hyphens: auto;
}
.section-title {
font-size: clamp(1.6rem, 5vw, 2.2rem);
text-align:center;
margin-bottom:2rem;
position:relative;
}
.section-title::after{
content:''; width:60px; height:4px; background:#3498db;
display:block; margin:0.5rem auto 0;
}
/* ==== HEADER & NAV ==== */
header {
background:#2c3e50; color:#fff;
position:sticky; top:0; z-index:100;
}
nav {
display:flex; justify-content:space-between; align-items:center;
padding:1rem 0;
}
.logo { font-size: clamp(1.2rem, 4vw, 1.5rem); font-weight:700; }
.nav-links {
display:flex; gap:1.5rem;
font-size: clamp(0.9rem, 3vw, 1rem);
list-style: none;
}
.nav-links a:hover { color:#3498db; }
.mobile-toggle { display:none; cursor:pointer; font-size:1.5rem; }
/* ==== HERO ==== */
.hero {
background: linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),
url('https://source.unsplash.com/random/1600x900/?code') center/cover no-repeat;
color:#fff; text-align:center;
padding: clamp(3rem, 12vh, 6rem) 0;
}
/* ==== SECTIONS ==== */
section { padding: clamp(2rem, 8vh, 4rem) 0; }
/* ---- ABOUT ---- */
.about-grid {
display:grid; gap:1.5rem;
grid-template-columns: minmax(0,1fr) minmax(0,2fr);
align-items:center;
}
.about-img img { border-radius:8px; box-shadow:0 5px 15px rgba(0,0,0,.1); }
.about-text p { margin-bottom:1rem; font-size: clamp(0.95rem, 3vw, 1rem); }
/* ---- PORTFOLIO ---- */
.portfolio-grid {
display:grid;
grid-template-columns: repeat(auto-fit, minmax(250px,1fr));
gap:1.5rem;
}
.project {
background:#fff; border-radius:8px; overflow:hidden;
box-shadow:0 5px 15px rgba(0,0,0,.08);
transition:transform .3s;
}
.project:hover { transform:translateY(-8px); }
.project-img {
height: clamp(140px, 30vw, 180px); background:#ddd;
display:flex; align-items:center; justify-content:center;
font-size: clamp(2rem, 8vw, 3rem); color:#aaa;
}
.project-body { padding:1.25rem; }
.project-title { font-size: clamp(1.1rem, 4vw, 1.25rem); margin-bottom:.4rem; }
.project p { font-size: clamp(0.9rem, 3vw, 1rem); }
.project-tags {
margin-top:.5rem; font-size: clamp(0.75rem, 2.5vw, .8rem);
display:f
Open service 2600:9000:223d:800:18:32:2ec0:93a1:80 · blakeconsulting.org
2026-01-23 20:08
HTTP/1.1 403 Forbidden Server: CloudFront Date: Fri, 23 Jan 2026 20:08:52 GMT Content-Type: text/html Content-Length: 986 Connection: close X-Cache: Error from cloudfront Via: 1.1 4c692717a0e85914a993c3aa5c8a2ef6.cloudfront.net (CloudFront) X-Amz-Cf-Pop: FRA56-P3 X-Amz-Cf-Id: ARnXPRgI-ye-6yNraHqqBITaMYrwLvW3HPIEl5ipy_BHzBL90MWsbQ== Page title: ERROR: The request could not be satisfied <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <TITLE>ERROR: The request could not be satisfied</TITLE> </HEAD><BODY> <H1>403 ERROR</H1> <H2>The request could not be satisfied.</H2> <HR noshade size="1px"> The Amazon CloudFront distribution is configured to block access from your country. We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner. <BR clear="all"> If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation. <BR clear="all"> <HR noshade size="1px"> <PRE> Generated by cloudfront (CloudFront) Request ID: ARnXPRgI-ye-6yNraHqqBITaMYrwLvW3HPIEl5ipy_BHzBL90MWsbQ== </PRE> <ADDRESS> </ADDRESS> </BODY></HTML>
Open service 2600:9000:223d:2e00:18:32:2ec0:93a1:443 · blakeconsulting.org
2026-01-23 20:08
HTTP/1.1 403 Forbidden Server: CloudFront Date: Fri, 23 Jan 2026 20:08:52 GMT Content-Type: text/html Content-Length: 986 Connection: close X-Cache: Error from cloudfront Via: 1.1 a23fc047c59f0902384fa94644607c00.cloudfront.net (CloudFront) X-Amz-Cf-Pop: FRA56-P3 X-Amz-Cf-Id: DUYSvSB4IvVoTpctEOkyQkNQpnAFYJ1BuJEvZsrrvrBY1mJhcFniog== Page title: ERROR: The request could not be satisfied <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <TITLE>ERROR: The request could not be satisfied</TITLE> </HEAD><BODY> <H1>403 ERROR</H1> <H2>The request could not be satisfied.</H2> <HR noshade size="1px"> The Amazon CloudFront distribution is configured to block access from your country. We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner. <BR clear="all"> If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation. <BR clear="all"> <HR noshade size="1px"> <PRE> Generated by cloudfront (CloudFront) Request ID: DUYSvSB4IvVoTpctEOkyQkNQpnAFYJ1BuJEvZsrrvrBY1mJhcFniog== </PRE> <ADDRESS> </ADDRESS> </BODY></HTML>
Open service 52.222.214.31:80 · blakeconsulting.org
2026-01-23 20:08
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 13379
Connection: close
Last-Modified: Sat, 01 Nov 2025 17:57:31 GMT
x-amz-server-side-encryption: AES256
Accept-Ranges: bytes
Server: AmazonS3
Date: Fri, 23 Jan 2026 20:08:52 GMT
ETag: "2c09f9c15526cd42b4e2facbb287a038"
X-Cache: Hit from cloudfront
Via: 1.1 a23fc047c59f0902384fa94644607c00.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: FRA56-P3
X-Amz-Cf-Id: g6ccf8qxfPwiCnr1EUpG6XVtQEdXLj8o8Sgqwbx8SvDs6vwWCizBrw==
Age: 2
Page title: Alan Blake | Agile | AI Automation
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Alan Blake | Agile | AI Automation</title>
<style>
/* ==== RESET & BASE ==== */
*, *::before, *::after { box-sizing: border-box; margin:0; padding:0; }
html { font-size: 100%; } /* 1rem = 16px base */
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
line-height: 1.6;
color: #333;
background:#f8f9fa;
min-height: 100vh;
}
a { text-decoration:none; color:inherit; }
img { max-width:100%; height:auto; display:block; }
.container { width:90%; max-width:1200px; margin:auto; padding:0 1rem; }
/* ==== TYPOGRAPHY ==== */
h1, h2, h3 { line-height:1.2; word-break: break-word; hyphens: auto; }
.hero h1 {
font-size: clamp(1.8rem, 6vw, 3rem);
margin-bottom:.5rem;
}
.hero p {
font-size: clamp(1rem, 3.5vw, 1.2rem);
max-width: 90vw;
margin:auto;
word-break: break-word;
hyphens: auto;
}
.section-title {
font-size: clamp(1.6rem, 5vw, 2.2rem);
text-align:center;
margin-bottom:2rem;
position:relative;
}
.section-title::after{
content:''; width:60px; height:4px; background:#3498db;
display:block; margin:0.5rem auto 0;
}
/* ==== HEADER & NAV ==== */
header {
background:#2c3e50; color:#fff;
position:sticky; top:0; z-index:100;
}
nav {
display:flex; justify-content:space-between; align-items:center;
padding:1rem 0;
}
.logo { font-size: clamp(1.2rem, 4vw, 1.5rem); font-weight:700; }
.nav-links {
display:flex; gap:1.5rem;
font-size: clamp(0.9rem, 3vw, 1rem);
list-style: none;
}
.nav-links a:hover { color:#3498db; }
.mobile-toggle { display:none; cursor:pointer; font-size:1.5rem; }
/* ==== HERO ==== */
.hero {
background: linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),
url('https://source.unsplash.com/random/1600x900/?code') center/cover no-repeat;
color:#fff; text-align:center;
padding: clamp(3rem, 12vh, 6rem) 0;
}
/* ==== SECTIONS ==== */
section { padding: clamp(2rem, 8vh, 4rem) 0; }
/* ---- ABOUT ---- */
.about-grid {
display:grid; gap:1.5rem;
grid-template-columns: minmax(0,1fr) minmax(0,2fr);
align-items:center;
}
.about-img img { border-radius:8px; box-shadow:0 5px 15px rgba(0,0,0,.1); }
.about-text p { margin-bottom:1rem; font-size: clamp(0.95rem, 3vw, 1rem); }
/* ---- PORTFOLIO ---- */
.portfolio-grid {
display:grid;
grid-template-columns: repeat(auto-fit, minmax(250px,1fr));
gap:1.5rem;
}
.project {
background:#fff; border-radius:8px; overflow:hidden;
box-shadow:0 5px 15px rgba(0,0,0,.08);
transition:transform .3s;
}
.project:hover { transform:translateY(-8px); }
.project-img {
height: clamp(140px, 30vw, 180px); background:#ddd;
display:flex; align-items:center; justify-content:center;
font-size: clamp(2rem, 8vw, 3rem); color:#aaa;
}
.project-body { padding:1.25rem; }
.project-title { font-size: clamp(1.1rem, 4vw, 1.25rem); margin-bottom:.4rem; }
.project p { font-size: clamp(0.9rem, 3vw, 1rem); }
.project-tags {
margin-top:.5rem; font-size: clamp(0.75rem, 2.5vw, .8rem);
display:f
Open service 2600:9000:223d:3200:18:32:2ec0:93a1:443 · blakeconsulting.org
2026-01-23 20:08
HTTP/1.1 403 Forbidden Server: CloudFront Date: Fri, 23 Jan 2026 20:08:52 GMT Content-Type: text/html Content-Length: 986 Connection: close X-Cache: Error from cloudfront Via: 1.1 bfad099b4e1fa2ec7d21876e0293dc20.cloudfront.net (CloudFront) X-Amz-Cf-Pop: FRA56-P3 X-Amz-Cf-Id: tq59ncV0B8weUaRc_FScm-y7jKMXRVfex48Rv3i1wy3Vcp-uh8q1rQ== Page title: ERROR: The request could not be satisfied <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <TITLE>ERROR: The request could not be satisfied</TITLE> </HEAD><BODY> <H1>403 ERROR</H1> <H2>The request could not be satisfied.</H2> <HR noshade size="1px"> The Amazon CloudFront distribution is configured to block access from your country. We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner. <BR clear="all"> If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation. <BR clear="all"> <HR noshade size="1px"> <PRE> Generated by cloudfront (CloudFront) Request ID: tq59ncV0B8weUaRc_FScm-y7jKMXRVfex48Rv3i1wy3Vcp-uh8q1rQ== </PRE> <ADDRESS> </ADDRESS> </BODY></HTML>
Open service 2600:9000:223d:9600:18:32:2ec0:93a1:80 · blakeconsulting.org
2026-01-23 20:08
HTTP/1.1 403 Forbidden Server: CloudFront Date: Fri, 23 Jan 2026 20:08:52 GMT Content-Type: text/html Content-Length: 986 Connection: close X-Cache: Error from cloudfront Via: 1.1 bfad099b4e1fa2ec7d21876e0293dc20.cloudfront.net (CloudFront) X-Amz-Cf-Pop: FRA56-P3 X-Amz-Cf-Id: 68AxyJTDTDQs3lFNv9NpVhlJ5hhT2paeNQmffnqm0iSQuxmObinRpA== Page title: ERROR: The request could not be satisfied <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <TITLE>ERROR: The request could not be satisfied</TITLE> </HEAD><BODY> <H1>403 ERROR</H1> <H2>The request could not be satisfied.</H2> <HR noshade size="1px"> The Amazon CloudFront distribution is configured to block access from your country. We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner. <BR clear="all"> If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation. <BR clear="all"> <HR noshade size="1px"> <PRE> Generated by cloudfront (CloudFront) Request ID: 68AxyJTDTDQs3lFNv9NpVhlJ5hhT2paeNQmffnqm0iSQuxmObinRpA== </PRE> <ADDRESS> </ADDRESS> </BODY></HTML>
Open service 52.222.214.3:80 · blakeconsulting.org
2026-01-23 20:08
HTTP/1.1 403 Forbidden Server: CloudFront Date: Fri, 23 Jan 2026 20:08:52 GMT Content-Type: text/html Content-Length: 986 Connection: close X-Cache: Error from cloudfront Via: 1.1 5c79308f72e53cdf81a950b478a7e144.cloudfront.net (CloudFront) X-Amz-Cf-Pop: FRA56-P3 X-Amz-Cf-Id: YZJcaAzMNm4Ts9NpjQ3_KySzobquQqiI_bGdJ9xIIIbAt8ghPoaBow== Page title: ERROR: The request could not be satisfied <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <TITLE>ERROR: The request could not be satisfied</TITLE> </HEAD><BODY> <H1>403 ERROR</H1> <H2>The request could not be satisfied.</H2> <HR noshade size="1px"> The Amazon CloudFront distribution is configured to block access from your country. We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner. <BR clear="all"> If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation. <BR clear="all"> <HR noshade size="1px"> <PRE> Generated by cloudfront (CloudFront) Request ID: YZJcaAzMNm4Ts9NpjQ3_KySzobquQqiI_bGdJ9xIIIbAt8ghPoaBow== </PRE> <ADDRESS> </ADDRESS> </BODY></HTML>
Open service 2600:9000:223d:9600:18:32:2ec0:93a1:443 · blakeconsulting.org
2026-01-23 20:08
HTTP/1.1 403 Forbidden Server: CloudFront Date: Fri, 23 Jan 2026 20:08:52 GMT Content-Type: text/html Content-Length: 986 Connection: close X-Cache: Error from cloudfront Via: 1.1 e94c77a12a65a84cbcef7856ed7e0fb8.cloudfront.net (CloudFront) X-Amz-Cf-Pop: FRA56-P3 X-Amz-Cf-Id: rMiQphu3pDG8XMoaf5O6RVq-i5Lo3la4Kd77RHU4p7V303_B0hR9vA== Page title: ERROR: The request could not be satisfied <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <TITLE>ERROR: The request could not be satisfied</TITLE> </HEAD><BODY> <H1>403 ERROR</H1> <H2>The request could not be satisfied.</H2> <HR noshade size="1px"> The Amazon CloudFront distribution is configured to block access from your country. We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner. <BR clear="all"> If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation. <BR clear="all"> <HR noshade size="1px"> <PRE> Generated by cloudfront (CloudFront) Request ID: rMiQphu3pDG8XMoaf5O6RVq-i5Lo3la4Kd77RHU4p7V303_B0hR9vA== </PRE> <ADDRESS> </ADDRESS> </BODY></HTML>
Open service 2600:9000:223d:2e00:18:32:2ec0:93a1:80 · blakeconsulting.org
2026-01-23 20:08
HTTP/1.1 403 Forbidden Server: CloudFront Date: Fri, 23 Jan 2026 20:08:52 GMT Content-Type: text/html Content-Length: 986 Connection: close X-Cache: Error from cloudfront Via: 1.1 6851af5c4f6d355fa4ec39cc8cc0c358.cloudfront.net (CloudFront) X-Amz-Cf-Pop: FRA56-P3 X-Amz-Cf-Id: ifxlDm6MX3kMKZV-00OQdDKcCRCmOzWqoRIedhkXpeo0S45eGdKO_g== Page title: ERROR: The request could not be satisfied <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <TITLE>ERROR: The request could not be satisfied</TITLE> </HEAD><BODY> <H1>403 ERROR</H1> <H2>The request could not be satisfied.</H2> <HR noshade size="1px"> The Amazon CloudFront distribution is configured to block access from your country. We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner. <BR clear="all"> If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation. <BR clear="all"> <HR noshade size="1px"> <PRE> Generated by cloudfront (CloudFront) Request ID: ifxlDm6MX3kMKZV-00OQdDKcCRCmOzWqoRIedhkXpeo0S45eGdKO_g== </PRE> <ADDRESS> </ADDRESS> </BODY></HTML>
Open service 52.222.214.3:443 · blakeconsulting.org
2026-01-23 20:08
HTTP/1.1 403 Forbidden Server: CloudFront Date: Fri, 23 Jan 2026 20:08:52 GMT Content-Type: text/html Content-Length: 986 Connection: close X-Cache: Error from cloudfront Via: 1.1 a23fc047c59f0902384fa94644607c00.cloudfront.net (CloudFront) X-Amz-Cf-Pop: FRA56-P3 X-Amz-Cf-Id: K-J0q76Bo0VsQO2-MxI3TetmFj3WXWjSZU_DFyRrNeh91db267dE8Q== Page title: ERROR: The request could not be satisfied <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <TITLE>ERROR: The request could not be satisfied</TITLE> </HEAD><BODY> <H1>403 ERROR</H1> <H2>The request could not be satisfied.</H2> <HR noshade size="1px"> The Amazon CloudFront distribution is configured to block access from your country. We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner. <BR clear="all"> If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation. <BR clear="all"> <HR noshade size="1px"> <PRE> Generated by cloudfront (CloudFront) Request ID: K-J0q76Bo0VsQO2-MxI3TetmFj3WXWjSZU_DFyRrNeh91db267dE8Q== </PRE> <ADDRESS> </ADDRESS> </BODY></HTML>
Open service 2600:9000:223d:a00:18:32:2ec0:93a1:443 · blakeconsulting.org
2026-01-23 20:08
HTTP/1.1 403 Forbidden Server: CloudFront Date: Fri, 23 Jan 2026 20:08:52 GMT Content-Type: text/html Content-Length: 986 Connection: close X-Cache: Error from cloudfront Via: 1.1 29f7132906866b79866659848b3a3b68.cloudfront.net (CloudFront) X-Amz-Cf-Pop: FRA56-P3 X-Amz-Cf-Id: IJdZO0Uign-WOafhpZGCaBGuhpJ5GHCMNfAEHkOhqAMUPUqENxeqFA== Page title: ERROR: The request could not be satisfied <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <TITLE>ERROR: The request could not be satisfied</TITLE> </HEAD><BODY> <H1>403 ERROR</H1> <H2>The request could not be satisfied.</H2> <HR noshade size="1px"> The Amazon CloudFront distribution is configured to block access from your country. We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner. <BR clear="all"> If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation. <BR clear="all"> <HR noshade size="1px"> <PRE> Generated by cloudfront (CloudFront) Request ID: IJdZO0Uign-WOafhpZGCaBGuhpJ5GHCMNfAEHkOhqAMUPUqENxeqFA== </PRE> <ADDRESS> </ADDRESS> </BODY></HTML>
Open service 2600:9000:223d:b800:18:32:2ec0:93a1:443 · blakeconsulting.org
2026-01-23 20:08
HTTP/1.1 403 Forbidden Server: CloudFront Date: Fri, 23 Jan 2026 20:08:52 GMT Content-Type: text/html Content-Length: 986 Connection: close X-Cache: Error from cloudfront Via: 1.1 910a343c3141ba3fe805e18bded62490.cloudfront.net (CloudFront) X-Amz-Cf-Pop: FRA56-P3 X-Amz-Cf-Id: 73ummiu656-OsTS6FOXm0gsWhT8SO31KoSxmGHNHsD-kBeWQysBgMw== Page title: ERROR: The request could not be satisfied <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <TITLE>ERROR: The request could not be satisfied</TITLE> </HEAD><BODY> <H1>403 ERROR</H1> <H2>The request could not be satisfied.</H2> <HR noshade size="1px"> The Amazon CloudFront distribution is configured to block access from your country. We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner. <BR clear="all"> If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation. <BR clear="all"> <HR noshade size="1px"> <PRE> Generated by cloudfront (CloudFront) Request ID: 73ummiu656-OsTS6FOXm0gsWhT8SO31KoSxmGHNHsD-kBeWQysBgMw== </PRE> <ADDRESS> </ADDRESS> </BODY></HTML>
Open service 2600:9000:223d:9800:18:32:2ec0:93a1:443 · blakeconsulting.org
2026-01-23 20:08
HTTP/1.1 403 Forbidden Server: CloudFront Date: Fri, 23 Jan 2026 20:08:52 GMT Content-Type: text/html Content-Length: 986 Connection: close X-Cache: Error from cloudfront Via: 1.1 626c544a24a86c6cd608360f520b6d8c.cloudfront.net (CloudFront) X-Amz-Cf-Pop: FRA56-P3 X-Amz-Cf-Id: P3uL0f_p5gDrHE26yJJ15SSMWi8fqXwFE_ajjLFx-1K2h3BdjTEUug== Page title: ERROR: The request could not be satisfied <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <TITLE>ERROR: The request could not be satisfied</TITLE> </HEAD><BODY> <H1>403 ERROR</H1> <H2>The request could not be satisfied.</H2> <HR noshade size="1px"> The Amazon CloudFront distribution is configured to block access from your country. We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner. <BR clear="all"> If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation. <BR clear="all"> <HR noshade size="1px"> <PRE> Generated by cloudfront (CloudFront) Request ID: P3uL0f_p5gDrHE26yJJ15SSMWi8fqXwFE_ajjLFx-1K2h3BdjTEUug== </PRE> <ADDRESS> </ADDRESS> </BODY></HTML>
Open service 52.222.214.65:80 · blakeconsulting.org
2026-01-23 20:08
HTTP/1.1 403 Forbidden Server: CloudFront Date: Fri, 23 Jan 2026 20:08:52 GMT Content-Type: text/html Content-Length: 986 Connection: close X-Cache: Error from cloudfront Via: 1.1 7abd55cee48606340f570b45718202b6.cloudfront.net (CloudFront) X-Amz-Cf-Pop: FRA56-P3 X-Amz-Cf-Id: z2AGDpm_l946YeOzSHHN0-oVemOGfhlsG4SKEHLWOOyvEYloxL1weA== Page title: ERROR: The request could not be satisfied <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <TITLE>ERROR: The request could not be satisfied</TITLE> </HEAD><BODY> <H1>403 ERROR</H1> <H2>The request could not be satisfied.</H2> <HR noshade size="1px"> The Amazon CloudFront distribution is configured to block access from your country. We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner. <BR clear="all"> If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation. <BR clear="all"> <HR noshade size="1px"> <PRE> Generated by cloudfront (CloudFront) Request ID: z2AGDpm_l946YeOzSHHN0-oVemOGfhlsG4SKEHLWOOyvEYloxL1weA== </PRE> <ADDRESS> </ADDRESS> </BODY></HTML>
Open service 2600:9000:223d:c400:18:32:2ec0:93a1:443 · blakeconsulting.org
2026-01-23 20:08
HTTP/1.1 403 Forbidden Server: CloudFront Date: Fri, 23 Jan 2026 20:08:52 GMT Content-Type: text/html Content-Length: 986 Connection: close X-Cache: Error from cloudfront Via: 1.1 4c692717a0e85914a993c3aa5c8a2ef6.cloudfront.net (CloudFront) X-Amz-Cf-Pop: FRA56-P3 X-Amz-Cf-Id: 3cYaSVWsuQmSw7eYXdx0JIwfiVDjvVNoVm7ReYZncOFyCDK9lb0aiw== Page title: ERROR: The request could not be satisfied <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <TITLE>ERROR: The request could not be satisfied</TITLE> </HEAD><BODY> <H1>403 ERROR</H1> <H2>The request could not be satisfied.</H2> <HR noshade size="1px"> The Amazon CloudFront distribution is configured to block access from your country. We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner. <BR clear="all"> If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation. <BR clear="all"> <HR noshade size="1px"> <PRE> Generated by cloudfront (CloudFront) Request ID: 3cYaSVWsuQmSw7eYXdx0JIwfiVDjvVNoVm7ReYZncOFyCDK9lb0aiw== </PRE> <ADDRESS> </ADDRESS> </BODY></HTML>
Open service 52.222.214.65:443 · blakeconsulting.org
2026-01-23 20:08
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 13379
Connection: close
Last-Modified: Sat, 01 Nov 2025 17:57:31 GMT
x-amz-server-side-encryption: AES256
Accept-Ranges: bytes
Server: AmazonS3
Date: Fri, 23 Jan 2026 20:08:52 GMT
ETag: "2c09f9c15526cd42b4e2facbb287a038"
X-Cache: Hit from cloudfront
Via: 1.1 f3e00d74aa4544d776f78a159416d17a.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: FRA56-P3
X-Amz-Cf-Id: g4KrlQZaKP_a7WQCdEq_aFli3s440qBSvXISqQzYRDt6uYAmImKgoQ==
Age: 2
Page title: Alan Blake | Agile | AI Automation
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Alan Blake | Agile | AI Automation</title>
<style>
/* ==== RESET & BASE ==== */
*, *::before, *::after { box-sizing: border-box; margin:0; padding:0; }
html { font-size: 100%; } /* 1rem = 16px base */
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
line-height: 1.6;
color: #333;
background:#f8f9fa;
min-height: 100vh;
}
a { text-decoration:none; color:inherit; }
img { max-width:100%; height:auto; display:block; }
.container { width:90%; max-width:1200px; margin:auto; padding:0 1rem; }
/* ==== TYPOGRAPHY ==== */
h1, h2, h3 { line-height:1.2; word-break: break-word; hyphens: auto; }
.hero h1 {
font-size: clamp(1.8rem, 6vw, 3rem);
margin-bottom:.5rem;
}
.hero p {
font-size: clamp(1rem, 3.5vw, 1.2rem);
max-width: 90vw;
margin:auto;
word-break: break-word;
hyphens: auto;
}
.section-title {
font-size: clamp(1.6rem, 5vw, 2.2rem);
text-align:center;
margin-bottom:2rem;
position:relative;
}
.section-title::after{
content:''; width:60px; height:4px; background:#3498db;
display:block; margin:0.5rem auto 0;
}
/* ==== HEADER & NAV ==== */
header {
background:#2c3e50; color:#fff;
position:sticky; top:0; z-index:100;
}
nav {
display:flex; justify-content:space-between; align-items:center;
padding:1rem 0;
}
.logo { font-size: clamp(1.2rem, 4vw, 1.5rem); font-weight:700; }
.nav-links {
display:flex; gap:1.5rem;
font-size: clamp(0.9rem, 3vw, 1rem);
list-style: none;
}
.nav-links a:hover { color:#3498db; }
.mobile-toggle { display:none; cursor:pointer; font-size:1.5rem; }
/* ==== HERO ==== */
.hero {
background: linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),
url('https://source.unsplash.com/random/1600x900/?code') center/cover no-repeat;
color:#fff; text-align:center;
padding: clamp(3rem, 12vh, 6rem) 0;
}
/* ==== SECTIONS ==== */
section { padding: clamp(2rem, 8vh, 4rem) 0; }
/* ---- ABOUT ---- */
.about-grid {
display:grid; gap:1.5rem;
grid-template-columns: minmax(0,1fr) minmax(0,2fr);
align-items:center;
}
.about-img img { border-radius:8px; box-shadow:0 5px 15px rgba(0,0,0,.1); }
.about-text p { margin-bottom:1rem; font-size: clamp(0.95rem, 3vw, 1rem); }
/* ---- PORTFOLIO ---- */
.portfolio-grid {
display:grid;
grid-template-columns: repeat(auto-fit, minmax(250px,1fr));
gap:1.5rem;
}
.project {
background:#fff; border-radius:8px; overflow:hidden;
box-shadow:0 5px 15px rgba(0,0,0,.08);
transition:transform .3s;
}
.project:hover { transform:translateY(-8px); }
.project-img {
height: clamp(140px, 30vw, 180px); background:#ddd;
display:flex; align-items:center; justify-content:center;
font-size: clamp(2rem, 8vw, 3rem); color:#aaa;
}
.project-body { padding:1.25rem; }
.project-title { font-size: clamp(1.1rem, 4vw, 1.25rem); margin-bottom:.4rem; }
.project p { font-size: clamp(0.9rem, 3vw, 1rem); }
.project-tags {
margin-top:.5rem; font-size: clamp(0.75rem, 2.5vw, .8rem);
display:f
Open service 2600:9000:223d:9800:18:32:2ec0:93a1:80 · blakeconsulting.org
2026-01-23 20:08
HTTP/1.1 403 Forbidden Server: CloudFront Date: Fri, 23 Jan 2026 20:08:52 GMT Content-Type: text/html Content-Length: 986 Connection: close X-Cache: Error from cloudfront Via: 1.1 474733f16f494ddb794b4f7dfd7de966.cloudfront.net (CloudFront) X-Amz-Cf-Pop: FRA56-P3 X-Amz-Cf-Id: T1JURuWK-nDPheroUXigXaehUxkIa0hSofj-x8UUGJhKubj5-hlTLw== Page title: ERROR: The request could not be satisfied <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <TITLE>ERROR: The request could not be satisfied</TITLE> </HEAD><BODY> <H1>403 ERROR</H1> <H2>The request could not be satisfied.</H2> <HR noshade size="1px"> The Amazon CloudFront distribution is configured to block access from your country. We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner. <BR clear="all"> If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation. <BR clear="all"> <HR noshade size="1px"> <PRE> Generated by cloudfront (CloudFront) Request ID: T1JURuWK-nDPheroUXigXaehUxkIa0hSofj-x8UUGJhKubj5-hlTLw== </PRE> <ADDRESS> </ADDRESS> </BODY></HTML>
Open service 52.222.214.31:443 · blakeconsulting.org
2026-01-23 20:08
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 13379
Connection: close
Last-Modified: Sat, 01 Nov 2025 17:57:31 GMT
x-amz-server-side-encryption: AES256
Accept-Ranges: bytes
Server: AmazonS3
Date: Fri, 23 Jan 2026 20:08:52 GMT
ETag: "2c09f9c15526cd42b4e2facbb287a038"
X-Cache: Hit from cloudfront
Via: 1.1 122731c1a09cfba14dfeeff504946134.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: FRA56-P3
X-Amz-Cf-Id: kMHvE4cWEgxCvOwk6t-qsFnb95sjxhfD_DWGzt59xpXfmy9W2BMtbQ==
Age: 2
Page title: Alan Blake | Agile | AI Automation
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Alan Blake | Agile | AI Automation</title>
<style>
/* ==== RESET & BASE ==== */
*, *::before, *::after { box-sizing: border-box; margin:0; padding:0; }
html { font-size: 100%; } /* 1rem = 16px base */
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
line-height: 1.6;
color: #333;
background:#f8f9fa;
min-height: 100vh;
}
a { text-decoration:none; color:inherit; }
img { max-width:100%; height:auto; display:block; }
.container { width:90%; max-width:1200px; margin:auto; padding:0 1rem; }
/* ==== TYPOGRAPHY ==== */
h1, h2, h3 { line-height:1.2; word-break: break-word; hyphens: auto; }
.hero h1 {
font-size: clamp(1.8rem, 6vw, 3rem);
margin-bottom:.5rem;
}
.hero p {
font-size: clamp(1rem, 3.5vw, 1.2rem);
max-width: 90vw;
margin:auto;
word-break: break-word;
hyphens: auto;
}
.section-title {
font-size: clamp(1.6rem, 5vw, 2.2rem);
text-align:center;
margin-bottom:2rem;
position:relative;
}
.section-title::after{
content:''; width:60px; height:4px; background:#3498db;
display:block; margin:0.5rem auto 0;
}
/* ==== HEADER & NAV ==== */
header {
background:#2c3e50; color:#fff;
position:sticky; top:0; z-index:100;
}
nav {
display:flex; justify-content:space-between; align-items:center;
padding:1rem 0;
}
.logo { font-size: clamp(1.2rem, 4vw, 1.5rem); font-weight:700; }
.nav-links {
display:flex; gap:1.5rem;
font-size: clamp(0.9rem, 3vw, 1rem);
list-style: none;
}
.nav-links a:hover { color:#3498db; }
.mobile-toggle { display:none; cursor:pointer; font-size:1.5rem; }
/* ==== HERO ==== */
.hero {
background: linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),
url('https://source.unsplash.com/random/1600x900/?code') center/cover no-repeat;
color:#fff; text-align:center;
padding: clamp(3rem, 12vh, 6rem) 0;
}
/* ==== SECTIONS ==== */
section { padding: clamp(2rem, 8vh, 4rem) 0; }
/* ---- ABOUT ---- */
.about-grid {
display:grid; gap:1.5rem;
grid-template-columns: minmax(0,1fr) minmax(0,2fr);
align-items:center;
}
.about-img img { border-radius:8px; box-shadow:0 5px 15px rgba(0,0,0,.1); }
.about-text p { margin-bottom:1rem; font-size: clamp(0.95rem, 3vw, 1rem); }
/* ---- PORTFOLIO ---- */
.portfolio-grid {
display:grid;
grid-template-columns: repeat(auto-fit, minmax(250px,1fr));
gap:1.5rem;
}
.project {
background:#fff; border-radius:8px; overflow:hidden;
box-shadow:0 5px 15px rgba(0,0,0,.08);
transition:transform .3s;
}
.project:hover { transform:translateY(-8px); }
.project-img {
height: clamp(140px, 30vw, 180px); background:#ddd;
display:flex; align-items:center; justify-content:center;
font-size: clamp(2rem, 8vw, 3rem); color:#aaa;
}
.project-body { padding:1.25rem; }
.project-title { font-size: clamp(1.1rem, 4vw, 1.25rem); margin-bottom:.4rem; }
.project p { font-size: clamp(0.9rem, 3vw, 1rem); }
.project-tags {
margin-top:.5rem; font-size: clamp(0.75rem, 2.5vw, .8rem);
display:f
Open service 2600:9000:223d:c400:18:32:2ec0:93a1:80 · blakeconsulting.org
2026-01-23 20:08
HTTP/1.1 403 Forbidden Server: CloudFront Date: Fri, 23 Jan 2026 20:08:52 GMT Content-Type: text/html Content-Length: 986 Connection: close X-Cache: Error from cloudfront Via: 1.1 e41703af87be84ac95b3cadf9d8dd470.cloudfront.net (CloudFront) X-Amz-Cf-Pop: FRA56-P3 X-Amz-Cf-Id: rKHGoZnYWLzeu3uZk19rXfYejYgipVFDCDcf6k19srjB5GuTncwO-A== Page title: ERROR: The request could not be satisfied <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <TITLE>ERROR: The request could not be satisfied</TITLE> </HEAD><BODY> <H1>403 ERROR</H1> <H2>The request could not be satisfied.</H2> <HR noshade size="1px"> The Amazon CloudFront distribution is configured to block access from your country. We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner. <BR clear="all"> If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation. <BR clear="all"> <HR noshade size="1px"> <PRE> Generated by cloudfront (CloudFront) Request ID: rKHGoZnYWLzeu3uZk19rXfYejYgipVFDCDcf6k19srjB5GuTncwO-A== </PRE> <ADDRESS> </ADDRESS> </BODY></HTML>
Open service 52.222.214.88:443 · blakeconsulting.org
2026-01-23 20:08
HTTP/1.1 403 Forbidden Server: CloudFront Date: Fri, 23 Jan 2026 20:08:52 GMT Content-Type: text/html Content-Length: 986 Connection: close X-Cache: Error from cloudfront Via: 1.1 eaedf92fd05c53aa96f20b6322b473e6.cloudfront.net (CloudFront) X-Amz-Cf-Pop: FRA56-P3 X-Amz-Cf-Id: PNsxhdgDAnkHsw88GAXRDg6OhS6unTYdmlMkEvl9t_-BlHndFTRn3Q== Page title: ERROR: The request could not be satisfied <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <TITLE>ERROR: The request could not be satisfied</TITLE> </HEAD><BODY> <H1>403 ERROR</H1> <H2>The request could not be satisfied.</H2> <HR noshade size="1px"> The Amazon CloudFront distribution is configured to block access from your country. We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner. <BR clear="all"> If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation. <BR clear="all"> <HR noshade size="1px"> <PRE> Generated by cloudfront (CloudFront) Request ID: PNsxhdgDAnkHsw88GAXRDg6OhS6unTYdmlMkEvl9t_-BlHndFTRn3Q== </PRE> <ADDRESS> </ADDRESS> </BODY></HTML>
Open service 2600:9000:223d:3200:18:32:2ec0:93a1:80 · blakeconsulting.org
2026-01-23 20:08
HTTP/1.1 403 Forbidden Server: CloudFront Date: Fri, 23 Jan 2026 20:08:52 GMT Content-Type: text/html Content-Length: 986 Connection: close X-Cache: Error from cloudfront Via: 1.1 bfad099b4e1fa2ec7d21876e0293dc20.cloudfront.net (CloudFront) X-Amz-Cf-Pop: FRA56-P3 X-Amz-Cf-Id: Zb5mtplr3J8XjCiu2aByMdknfimUZnznKHovKGSwM1_tlAGBmsVHkQ== Page title: ERROR: The request could not be satisfied <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <TITLE>ERROR: The request could not be satisfied</TITLE> </HEAD><BODY> <H1>403 ERROR</H1> <H2>The request could not be satisfied.</H2> <HR noshade size="1px"> The Amazon CloudFront distribution is configured to block access from your country. We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner. <BR clear="all"> If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation. <BR clear="all"> <HR noshade size="1px"> <PRE> Generated by cloudfront (CloudFront) Request ID: Zb5mtplr3J8XjCiu2aByMdknfimUZnznKHovKGSwM1_tlAGBmsVHkQ== </PRE> <ADDRESS> </ADDRESS> </BODY></HTML>
2600:9000:223d:a00:18:32:2ec0:93a1 1 2600:9000:223d:b800:18:32:2ec0:93a1 1 2600:9000:223d:800:18:32:2ec0:93a1 1 52.222.214.88 1 2600:9000:223d:2e00:18:32:2ec0:93a1 1 52.222.214.31 1 2600:9000:223d:3200:18:32:2ec0:93a1 1 2600:9000:223d:9600:18:32:2ec0:93a1 1 52.222.214.3 1 2600:9000:223d:9800:18:32:2ec0:93a1 1 52.222.214.65 1 2600:9000:223d:c400:18:32:2ec0:93a1 1