AmazonS3
tcp/443 tcp/80
Fly fbde0e6c3
tcp/443 tcp/80
Open service 54.230.228.40:80 · bannerman.com
2026-01-12 04:13
HTTP/1.1 301 Moved Permanently Content-Length: 0 Connection: close Date: Sun, 11 Jan 2026 11:26:06 GMT Location: https://www.bannerman.com/ Server: AmazonS3 X-Cache: Hit from cloudfront Via: 1.1 39665d11bf385fb9aabc991f857b37dc.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P5 X-Amz-Cf-Id: 6I4do19r9U9-wGQ6KCneTMjuZLk80hA70poxZPPUdSPdCwgu6o9xsg== Age: 60465
Open service 54.230.228.35:443 · bannerman.com
2026-01-12 04:13
HTTP/1.1 301 Moved Permanently Content-Length: 0 Connection: close Date: Sun, 11 Jan 2026 11:26:06 GMT Location: https://www.bannerman.com/ Server: AmazonS3 X-Cache: Hit from cloudfront Via: 1.1 a2eaac3682e999c3b0a69ad54d815412.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P5 X-Amz-Cf-Id: SA1jGMFEj_mgxE3-ossf2p_9p2672A7xxPjbAmViDHTmVER9oSQwJA== Age: 60464
Open service 54.230.228.118:80 · bannerman.com
2026-01-12 04:13
HTTP/1.1 301 Moved Permanently Content-Length: 0 Connection: close Date: Sun, 11 Jan 2026 11:26:06 GMT Location: https://www.bannerman.com/ Server: AmazonS3 X-Cache: Hit from cloudfront Via: 1.1 b87d7a7588235c761c8602f922d332f4.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P5 X-Amz-Cf-Id: 1fgsiR_AXiXM-_MjvaRSC2OLn4DZvAUmqyyMs-a7B3VB3SIOrT1-Lw== Age: 60464
Open service 54.230.228.35:80 · bannerman.com
2026-01-12 04:13
HTTP/1.1 301 Moved Permanently Content-Length: 0 Connection: close Date: Sun, 11 Jan 2026 11:26:06 GMT Location: https://www.bannerman.com/ Server: AmazonS3 X-Cache: Hit from cloudfront Via: 1.1 e18c612d6dd4d2546736ebc7db886b6a.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P5 X-Amz-Cf-Id: XLwLILgyytiLYKVX1rvwO81AcuazFpZYsp4lBVm5MuoSgDpOZk8CiQ== Age: 60464
Open service 54.230.228.118:443 · bannerman.com
2026-01-12 04:13
HTTP/1.1 301 Moved Permanently Content-Length: 0 Connection: close Date: Sun, 11 Jan 2026 11:26:06 GMT Location: https://www.bannerman.com/ Server: AmazonS3 X-Cache: Hit from cloudfront Via: 1.1 cd703a45a77324fb8797a25a15ba227e.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P5 X-Amz-Cf-Id: lEs8CbG-c9lNEaEMKwmmN9hPklS8_QPcxBfjYH50G1Nf8ynmE1ys1w== Age: 60464
Open service 54.230.228.96:443 · bannerman.com
2026-01-12 04:13
HTTP/1.1 301 Moved Permanently Content-Length: 0 Connection: close Date: Sun, 11 Jan 2026 11:26:06 GMT Location: https://www.bannerman.com/ Server: AmazonS3 X-Cache: Hit from cloudfront Via: 1.1 59c812f2c62b260446c519ec0c6279cc.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P5 X-Amz-Cf-Id: mI2bt036ull57JSNC5V0Ek_DDpj0VbvAg-I2Awh-EZmXtodUhGwEHg== Age: 60464
Open service 54.230.228.96:80 · bannerman.com
2026-01-12 04:13
HTTP/1.1 301 Moved Permanently Content-Length: 0 Connection: close Date: Sun, 11 Jan 2026 11:26:06 GMT Location: https://www.bannerman.com/ Server: AmazonS3 X-Cache: Hit from cloudfront Via: 1.1 4b3ef7616dbf62f98d54524f0218face.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P5 X-Amz-Cf-Id: Wp4u1-UjAD3WAMCxbnSfbjSfDfFYo8-S5PworB0GYa3h_8ZtyE_f5w== Age: 60464
Open service 54.230.228.40:443 · bannerman.com
2026-01-12 04:13
HTTP/1.1 301 Moved Permanently Content-Length: 0 Connection: close Date: Sun, 11 Jan 2026 11:26:06 GMT Location: https://www.bannerman.com/ Server: AmazonS3 X-Cache: Hit from cloudfront Via: 1.1 7d775f7e444ed74169f0db8decde7d20.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P5 X-Amz-Cf-Id: 2DJzz8-N4VCKITPiJf1RGPaXY63VwD9_sca6XiD-s_BQvEBw1kCwsA== Age: 60464
Open service 2a09:8280:1::3:3273:443 · blog.bannerman.com
2025-12-30 00:22
HTTP/1.1 200 OK
content-type: text/html; charset=utf-8
x-ua-compatible: IE=Edge,chrome=1
etag: "aadc576f39f97d8fa7e6f6d9d4234300"
cache-control: max-age=0, private, must-revalidate
set-cookie: after_login=; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT
x-request-id: 1ba19f4776ffd2fd2326e97972493d9f
x-runtime: 0.026471
vary: Origin
transfer-encoding: chunked
date: Tue, 30 Dec 2025 00:22:03 GMT
server: Fly/fbde0e6c3 (2025-12-17)
via: 1.1 fly.io, 1.1 fly.io
fly-request-id: 01KDPA4980S1FS0ZAKTC9VMAGG-lhr
Page title: Bannerman
<!DOCTYPE html>
<html class='no-js'>
<head>
<title>Bannerman</title>
<meta content='width=device-width,initial-scale=1' name='viewport'>
<meta name="description" content="Bannerman"/>
<meta property="og:title" content="Bannerman"/>
<meta property="og:type" content="website"/>
<meta property="og:url" content="https://blog.bannerman.com/"/>
<meta property="og:site_name" content="Bannerman"/>
<meta property="og:description" content="Bannerman"/>
<link href="https://phthemes.s3.amazonaws.com/17/BgU6xecGcNq8qad7/images/favicon.ico?v=1575993676" rel='shortcut icon' type='image/x-icon'>
<link href="//fonts.googleapis.com/css?family=Catamaran:300,400,600|Roboto:500&subset=latin,latin-ext"
media="screen" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="https://phthemes.s3.amazonaws.com/17/BgU6xecGcNq8qad7/blog.css?v=1594122555">
<link rel="alternate" type="application/atom+xml" href="https://blog.bannerman.com/posts.atom">
<script>
window.Posthaven = window.Posthaven || {};
window.Posthaven.currentPage = {"postIds":"1182575,1184247,1184245","pageCounter":"site-12535"};
window.Posthaven.domain = 'posthaven.com';
window.Posthaven.strings = {"archive.no_results":"No results found.","date":null,"forms.comment.anon_error":"Please enter your name and email.","forms.subscribe.after_subscribe_notice":"You have been subscribed. Check your email to confirm your subscription.","forms.subscribe.after_follow_notice":"You're now following this blog.","forms.subscribe.after_unfollow_notice":"You've unfollowed this blog.","gallery.of":"of","relative_date":null};
</script>
<link href="/assets/blog-internal-ebf9cc379e51c299993a0f443d1fee65.css"
media="all" rel="stylesheet" />
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '488600357843531',
xfbml : true,
version : 'v2.6'
});
};
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
<style>
#header_parent { background-color: #1daaca !important; }
</style>
</head>
<body id='site_12535'>
<div id='container'>
<div id='header_parent'>
<nav class='posthaven-user-menu posthaven-control'>
<span class='posthaven-user-required' style='display: none;'>
<span class='posthaven-admin-required' style='display: none;'>
<a href="https://posthaven.com/dashboard#sites/12535">Manage</a>
<a href="https://posthaven.com/dashboard#sites/12535/posts/new">New Post</a>
</span>
<a href="/posthaven/xd/logout" data-posthaven-method="delete">Logout</a>
</span>
<span class='posthaven-anon'>
<a href="https://posthaven.com/users/sign_in?return_host=blog.bannerman.com" class="posthaven-login">Login</a>
</span>
</nav>
<header id='topbar'>
<a href="https://posthaven.com/"><div class='posthaven-tab'></div></a>
</header>
<div id='flash'>
</div>
<header id='header'>
<h1>
<a href="https://blog.bannerman.com/">Bannerman</a>
</h1>
</header>
</div>
<div id='main_container'>
<div class='main-content'>
<div id="main">
<div class="post-container">
<article class="post">
<header>
<div class="post-title">
<h2><a href="https://blog.bannerman.com/building-the-safety-net">Building the Safety Net</a></h2>
</div>
</header>
<div class="post-body" id="post_body_1182575">
<div class="posthaven-post-body"><h1>
<b></b>Building the Safety Net</h1><p>By Mike Gi
Open service 188.93.148.37:80 · blog.bannerman.com
2025-12-30 00:22
HTTP/1.1 301 Moved Permanently location: https://blog.bannerman.com/ server: Fly/fbde0e6c3 (2025-12-17) via: 1.1 fly.io fly-request-id: 01KDPA48SJ0PJS8076Q1315M2C-ewr content-length: 0 date: Tue, 30 Dec 2025 00:22:03 GMT
Open service 2a09:8280:1::3:3273:80 · blog.bannerman.com
2025-12-30 00:22
HTTP/1.1 301 Moved Permanently location: https://blog.bannerman.com/ server: Fly/fbde0e6c3 (2025-12-17) via: 1.1 fly.io fly-request-id: 01KDPA48R6Q6AMWN739KD3NTR3-fra content-length: 0 date: Tue, 30 Dec 2025 00:22:03 GMT
Open service 188.93.148.37:443 · blog.bannerman.com
2025-12-30 00:22
HTTP/1.1 200 OK
content-type: text/html; charset=utf-8
x-ua-compatible: IE=Edge,chrome=1
etag: "aadc576f39f97d8fa7e6f6d9d4234300"
cache-control: max-age=0, private, must-revalidate
set-cookie: after_login=; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT
x-request-id: 7661ca0a254c9d806eceac91a1c2132c
x-runtime: 0.056305
vary: Origin
transfer-encoding: chunked
date: Tue, 30 Dec 2025 00:22:03 GMT
server: Fly/fbde0e6c3 (2025-12-17)
via: 1.1 fly.io, 1.1 fly.io
fly-request-id: 01KDPA48W2HJ0KTAPRXT0FAQWE-fra
Page title: Bannerman
<!DOCTYPE html>
<html class='no-js'>
<head>
<title>Bannerman</title>
<meta content='width=device-width,initial-scale=1' name='viewport'>
<meta name="description" content="Bannerman"/>
<meta property="og:title" content="Bannerman"/>
<meta property="og:type" content="website"/>
<meta property="og:url" content="https://blog.bannerman.com/"/>
<meta property="og:site_name" content="Bannerman"/>
<meta property="og:description" content="Bannerman"/>
<link href="https://phthemes.s3.amazonaws.com/17/BgU6xecGcNq8qad7/images/favicon.ico?v=1575993676" rel='shortcut icon' type='image/x-icon'>
<link href="//fonts.googleapis.com/css?family=Catamaran:300,400,600|Roboto:500&subset=latin,latin-ext"
media="screen" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="https://phthemes.s3.amazonaws.com/17/BgU6xecGcNq8qad7/blog.css?v=1594122555">
<link rel="alternate" type="application/atom+xml" href="https://blog.bannerman.com/posts.atom">
<script>
window.Posthaven = window.Posthaven || {};
window.Posthaven.currentPage = {"postIds":"1182575,1184247,1184245","pageCounter":"site-12535"};
window.Posthaven.domain = 'posthaven.com';
window.Posthaven.strings = {"archive.no_results":"No results found.","date":null,"forms.comment.anon_error":"Please enter your name and email.","forms.subscribe.after_subscribe_notice":"You have been subscribed. Check your email to confirm your subscription.","forms.subscribe.after_follow_notice":"You're now following this blog.","forms.subscribe.after_unfollow_notice":"You've unfollowed this blog.","gallery.of":"of","relative_date":null};
</script>
<link href="/assets/blog-internal-ebf9cc379e51c299993a0f443d1fee65.css"
media="all" rel="stylesheet" />
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '488600357843531',
xfbml : true,
version : 'v2.6'
});
};
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
<style>
#header_parent { background-color: #1daaca !important; }
</style>
</head>
<body id='site_12535'>
<div id='container'>
<div id='header_parent'>
<nav class='posthaven-user-menu posthaven-control'>
<span class='posthaven-user-required' style='display: none;'>
<span class='posthaven-admin-required' style='display: none;'>
<a href="https://posthaven.com/dashboard#sites/12535">Manage</a>
<a href="https://posthaven.com/dashboard#sites/12535/posts/new">New Post</a>
</span>
<a href="/posthaven/xd/logout" data-posthaven-method="delete">Logout</a>
</span>
<span class='posthaven-anon'>
<a href="https://posthaven.com/users/sign_in?return_host=blog.bannerman.com" class="posthaven-login">Login</a>
</span>
</nav>
<header id='topbar'>
<a href="https://posthaven.com/"><div class='posthaven-tab'></div></a>
</header>
<div id='flash'>
</div>
<header id='header'>
<h1>
<a href="https://blog.bannerman.com/">Bannerman</a>
</h1>
</header>
</div>
<div id='main_container'>
<div class='main-content'>
<div id="main">
<div class="post-container">
<article class="post">
<header>
<div class="post-title">
<h2><a href="https://blog.bannerman.com/building-the-safety-net">Building the Safety Net</a></h2>
</div>
</header>
<div class="post-body" id="post_body_1182575">
<div class="posthaven-post-body"><h1>
<b></b>Building the Safety Net</h1><p>By Mike Gi