You've already forked ProfessionalWebsite
788 lines
63 KiB
HTML
788 lines
63 KiB
HTML
<!DOCTYPE html>
|
|
<html data-bs-theme="auto" lang="en-gb">
|
|
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<!-- Matomo -->
|
|
<script>
|
|
var _paq = window._paq = window._paq || [];
|
|
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
|
|
_paq.push(['trackPageView']);
|
|
_paq.push(['enableLinkTracking']);
|
|
(function() {
|
|
var u="//analytics.adcmnetworks.co.uk/";
|
|
_paq.push(['setTrackerUrl', u+'matomo.php']);
|
|
_paq.push(['setSiteId', '1']);
|
|
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
|
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
|
|
})();
|
|
</script>
|
|
<!-- End Matomo Code -->
|
|
|
|
<script src="https://kit.fontawesome.com/8970d94f9b.js" crossorigin="anonymous"></script>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
|
|
<title>Bit:Box</title>
|
|
<link rel="canonical" href="https://www.mrdaviscsit.uk/my-work/projects-for-education/bitbox.html">
|
|
<meta property="og:url" content="https://www.mrdaviscsit.uk/my-work/projects-for-education/bitbox.html">
|
|
<meta name="twitter:description" content="The website of Mr. A. Davis, featuring a portfolio of work in computing education, digital projects, and curriculum resources. Explore blog posts, classroom tools, and professional insights focused on innovation, inclusion, and effective IT teaching.">
|
|
<meta property="og:type" content="website">
|
|
<meta name="twitter:card" content="summary">
|
|
<meta name="twitter:title" content="Mr Davis CS & IT">
|
|
<meta property="og:image" content="https://www.mrdaviscsit.uk/assets/img/projects/bit_box/bit_box_logo.png">
|
|
<meta name="description" content="A series of boxes, Microsoft Windows Application and website to teach students how binary works and the values of binary columns.">
|
|
<script>
|
|
(function() {
|
|
|
|
// JavaScript snippet handling Dark/Light mode switching
|
|
|
|
const getStoredTheme = () => localStorage.getItem('theme');
|
|
const setStoredTheme = theme => localStorage.setItem('theme', theme);
|
|
const forcedTheme = document.documentElement.getAttribute('data-bss-forced-theme');
|
|
|
|
const getPreferredTheme = () => {
|
|
|
|
if (forcedTheme) return forcedTheme;
|
|
|
|
const storedTheme = getStoredTheme();
|
|
if (storedTheme) {
|
|
return storedTheme;
|
|
}
|
|
|
|
const pageTheme = document.documentElement.getAttribute('data-bs-theme');
|
|
|
|
if (pageTheme) {
|
|
return pageTheme;
|
|
}
|
|
|
|
return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
|
|
}
|
|
|
|
const setTheme = theme => {
|
|
if (theme === 'auto' && window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
|
document.documentElement.setAttribute('data-bs-theme', 'dark');
|
|
} else {
|
|
document.documentElement.setAttribute('data-bs-theme', theme);
|
|
}
|
|
}
|
|
|
|
setTheme(getPreferredTheme());
|
|
|
|
const showActiveTheme = (theme, focus = false) => {
|
|
const themeSwitchers = [].slice.call(document.querySelectorAll('.theme-switcher'));
|
|
|
|
if (!themeSwitchers.length) return;
|
|
|
|
document.querySelectorAll('[data-bs-theme-value]').forEach(element => {
|
|
element.classList.remove('active');
|
|
element.setAttribute('aria-pressed', 'false');
|
|
});
|
|
|
|
for (const themeSwitcher of themeSwitchers) {
|
|
|
|
const btnToActivate = themeSwitcher.querySelector('[data-bs-theme-value="' + theme + '"]');
|
|
|
|
if (btnToActivate) {
|
|
btnToActivate.classList.add('active');
|
|
btnToActivate.setAttribute('aria-pressed', 'true');
|
|
}
|
|
}
|
|
}
|
|
|
|
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => {
|
|
const storedTheme = getStoredTheme();
|
|
if (storedTheme !== 'light' && storedTheme !== 'dark') {
|
|
setTheme(getPreferredTheme());
|
|
}
|
|
});
|
|
|
|
window.addEventListener('DOMContentLoaded', () => {
|
|
showActiveTheme(getPreferredTheme());
|
|
|
|
document.querySelectorAll('[data-bs-theme-value]')
|
|
.forEach(toggle => {
|
|
toggle.addEventListener('click', (e) => {
|
|
e.preventDefault();
|
|
const theme = toggle.getAttribute('data-bs-theme-value');
|
|
setStoredTheme(theme);
|
|
setTheme(theme);
|
|
showActiveTheme(theme);
|
|
})
|
|
})
|
|
});
|
|
})();
|
|
</script>
|
|
<link rel="icon" type="image/png" sizes="4860x4860" href="/assets/img/brand/ADCM%20Logo%202025.png">
|
|
<link rel="icon" type="image/png" sizes="4860x4860" href="/assets/img/brand/logo-white.png" media="(prefers-color-scheme: dark)">
|
|
<link rel="icon" type="image/png" sizes="4860x4860" href="/assets/img/brand/ADCM%20Logo%202025.png">
|
|
<link rel="icon" type="image/png" sizes="4860x4860" href="/assets/img/brand/logo-white.png" media="(prefers-color-scheme: dark)">
|
|
<link rel="icon" type="image/png" sizes="4860x4860" href="/assets/img/brand/ADCM%20Logo%202025.png">
|
|
<link rel="icon" type="image/png" sizes="4860x4860" href="/assets/img/brand/ADCM%20Logo%202025.png">
|
|
<link rel="icon" type="image/png" sizes="4860x4860" href="/assets/img/brand/ADCM%20Logo%202025.png">
|
|
<link rel="stylesheet" href="/assets/bootstrap/css/bootstrap.min.css">
|
|
<link rel="stylesheet" href="/assets/css/Lato.css">
|
|
<link rel="stylesheet" href="/assets/css/bss-overrides.css">
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css">
|
|
<link rel="stylesheet" href="/assets/css/styles.css">
|
|
<link rel="stylesheet" href="/assets/css/pikaday.min.css">
|
|
<link rel="stylesheet" href="/assets/css/CookieConsentComponent.css">
|
|
<link rel="stylesheet" href="/assets/css/animations.compiled.css">
|
|
<link rel="stylesheet" href="/assets/css/Carousel---Slider-With-Animation.css">
|
|
<link rel="stylesheet" href="/assets/css/Footer-Dark-Multi-Column-icons.css">
|
|
</head>
|
|
|
|
<body>
|
|
<nav class="navbar navbar-expand-md fixed-top portfolio-navbar gradient navbar-dark">
|
|
<div class="container-fluid"><a class="navbar-brand logo" href="/index.html"><img src="/assets/img/brand/logo-white.png" width="50" height="50"></a><button data-bs-toggle="collapse" class="navbar-toggler" data-bs-target="#navbarNav"><span class="visually-hidden">Toggle navigation</span><span class="navbar-toggler-icon"></span></button>
|
|
<div class="collapse navbar-collapse" id="navbarNav">
|
|
<ul class="navbar-nav ms-auto">
|
|
<li class="nav-item"><a class="nav-link" href="/index.html">Home</a></li>
|
|
<li class="nav-item"><a class="nav-link" href="/about.html">About</a></li>
|
|
<li class="nav-item"><a class="nav-link" href="/projects.html">My Work</a></li>
|
|
<li class="nav-item"><a class="nav-link" href="/blog.html">Blog</a></li>
|
|
<li class="nav-item"><a class="nav-link" href="/contact.html">Contact</a></li>
|
|
<li class="nav-item d-flex align-items-center mode-select"><a class="nav-link" id="light-mode" data-bs-theme-value="dark"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-sun-fill mb-1">
|
|
<path d="M8 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8M8 0a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 0m0 13a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 13m8-5a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2a.5.5 0 0 1 .5.5M3 8a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2A.5.5 0 0 1 3 8m10.657-5.657a.5.5 0 0 1 0 .707l-1.414 1.415a.5.5 0 1 1-.707-.708l1.414-1.414a.5.5 0 0 1 .707 0m-9.193 9.193a.5.5 0 0 1 0 .707L3.05 13.657a.5.5 0 0 1-.707-.707l1.414-1.414a.5.5 0 0 1 .707 0zm9.193 2.121a.5.5 0 0 1-.707 0l-1.414-1.414a.5.5 0 0 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .707M4.464 4.465a.5.5 0 0 1-.707 0L2.343 3.05a.5.5 0 1 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .708z"></path>
|
|
</svg></a><a class="nav-link" id="dark-mode" data-bs-theme-value="light"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-moon-stars-fill mb-1">
|
|
<path d="M6 .278a.768.768 0 0 1 .08.858 7.208 7.208 0 0 0-.878 3.46c0 4.021 3.278 7.277 7.318 7.277.527 0 1.04-.055 1.533-.16a.787.787 0 0 1 .81.316.733.733 0 0 1-.031.893A8.349 8.349 0 0 1 8.344 16C3.734 16 0 12.286 0 7.71 0 4.266 2.114 1.312 5.124.06A.752.752 0 0 1 6 .278"></path>
|
|
<path d="M10.794 3.148a.217.217 0 0 1 .412 0l.387 1.162c.173.518.579.924 1.097 1.097l1.162.387a.217.217 0 0 1 0 .412l-1.162.387a1.734 1.734 0 0 0-1.097 1.097l-.387 1.162a.217.217 0 0 1-.412 0l-.387-1.162A1.734 1.734 0 0 0 9.31 6.593l-1.162-.387a.217.217 0 0 1 0-.412l1.162-.387a1.734 1.734 0 0 0 1.097-1.097l.387-1.162zM13.863.099a.145.145 0 0 1 .274 0l.258.774c.115.346.386.617.732.732l.774.258a.145.145 0 0 1 0 .274l-.774.258a1.156 1.156 0 0 0-.732.732l-.258.774a.145.145 0 0 1-.274 0l-.258-.774a1.156 1.156 0 0 0-.732-.732l-.774-.258a.145.145 0 0 1 0-.274l.774-.258c.346-.115.617-.386.732-.732L13.863.1z"></path>
|
|
</svg></a></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
<main class="page">
|
|
<section class="portfolio-block block-intro">
|
|
<div class="container center-everything">
|
|
<div class="align-content-center heading blog-heading bitbox-various">
|
|
<h2>Bit:Box</h2>
|
|
<p>A series of boxes, Microsoft Windows Application and website to teach students how binary works and the values of binary columns.</p>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<section class="portfolio-block project">
|
|
<div class="container center-everything">
|
|
<div class="carousel slide carousel-fade project-carousel" data-bs-ride="carousel" id="carousel-1">
|
|
<div class="carousel-inner">
|
|
<div class="carousel-item active"><img class="img-fluid w-100 d-block slider-image-fit" width="1080" height="1080" src="/assets/img/projects/bit_box/bit_box_logo.png"></div>
|
|
</div>
|
|
<div><a class="carousel-control-prev" href="#carousel-1" role="button" data-bs-slide="prev"><span class="carousel-control-prev-icon"></span><span class="visually-hidden">Previous</span></a><a class="carousel-control-next" href="#carousel-1" role="button" data-bs-slide="next"><span class="carousel-control-next-icon"></span><span class="visually-hidden">Next</span></a></div>
|
|
<div class="carousel-indicators focus-ring"><button type="button" data-bs-target="#carousel-1" data-bs-slide-to="0" class="active"></button></div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col info">
|
|
<p>Bit:Box is an evolution of the Binary Light Box concept, a device which used lightbulbs and an Arduino microcontroller to visually demonstrate how binary numbers work and the values assigned to each binary column. By interacting with the light switches, students could better understand the concepts of binary counting, place values, and logic.</p>
|
|
<h3>Bit:Box Vs Binary Light Box</h3>
|
|
<p>The Binary Light Box was created to teach SEND students how binary works using physical lightbulbs and switches. The device was comprised of an MDF body with a black vinyl layer on the top. Inside the box was a micro:bit and several breakout boards to allow the device to sense when a switch was toggled and update a seven segment display to show the user the output.</p>
|
|
</div>
|
|
<div class="col-auto meta project-details">
|
|
<div class="tags"><span class="meta-heading">Project Status</span><span>Ongoing - in code maintenance phase</span><span class="meta-heading">Launched</span><span>Original Binary Light Box Code - June 2021<br>Bit:Box (Arduino) Code - January 2022<br>Bit:Box (Web) Code - October 2022</span><span class="meta-heading">Products Created</span><span>Physical Binary Light Box using micro:bit V1<br>Physical Binary Light Box using Arduino Mega<br>Microsoft Windows Application using Visual Basic .NET<br>Website using Bootstrap Studio and original JavaScript code.</span><a class="btn btn-primary project-buttons" role="button" href="https://gitea.adcmnetworks.co.uk/alexander/Binary-Light-Box" target="_blank"> View Binary Light Box on Gitea</a><a class="btn btn-primary project-buttons" role="button" href="https://gitea.adcmnetworks.co.uk/alexander/BitBox" target="_blank"> View Bit:Box (Arduino) on Gitea</a><a class="btn btn-primary project-buttons" role="button" href="https://gitea.adcmnetworks.co.uk/alexander/BitBox-Windows" target="_blank"> View Bit:Box (Windows) on Gitea</a><a class="btn btn-primary project-buttons" role="button" href="https://gitea.adcmnetworks.co.uk/alexander/BitBox-Web" target="_blank"> View Bit:Box (Web) on Gitea</a></div>
|
|
</div>
|
|
</div>
|
|
<div class="more-projects">
|
|
<h3 class="text-center more-projects-heading">More Projects</h3>
|
|
<div data-bss-type="blog-loop" data-bss-perpage="3" style="display: none !important;">
|
|
<div class="row gy-4 row-cols-1 row-cols-sm-2 row-cols-md-2 row-cols-lg-3 mt-0" data-bss-type="blog-loop-base">
|
|
<div class="post-tag-projects-for-education col" data-bss-type="blog-loop-item">
|
|
<div class="card"><a href="/my-work/projects-for-education/csbox.html"><img class="img-fluid card-img-top rainbow-border" width="500" height="500" src="/assets/img/projects/cs_box/csbox_logo.png"></a>
|
|
<div class="card-body"><a href="/my-work/projects-for-education/csbox.html">
|
|
<h4 class="text-body">CS:Box</h4>
|
|
</a>
|
|
<p class="card-text">An evolution of Bit:Box to incorporate different elements of the UK Computing Curriculum</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="post-tag-projects-for-education col" data-bss-type="blog-loop-item">
|
|
<div class="card"><a href="/my-work/projects-for-education/my-mind.html"><img class="img-fluid card-img-top rainbow-border" width="338" height="338" src="/assets/img/projects/my_mind/my_mind_logo.png"></a>
|
|
<div class="card-body"><a href="/my-work/projects-for-education/my-mind.html">
|
|
<h4 class="text-body">My Mind</h4>
|
|
</a>
|
|
<p class="card-text">An app concept that allows you to connect to a mental health and wellbeing councillor, call emergency helplines and talk to people who also suffer from mental health issues using the online forum</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="post-tag-projects-for-education col" data-bss-type="blog-loop-item">
|
|
<div class="card"><a href="/my-work/projects-for-education/nature-findings.html"><img class="img-fluid card-img-top rainbow-border" width="940" height="500" src="/assets/img/projects/nature_findings/naturefindingspreview.png"></a>
|
|
<div class="card-body"><a href="/my-work/projects-for-education/nature-findings.html">
|
|
<h4 class="text-body">Nature Findings</h4>
|
|
</a>
|
|
<p class="card-text">A Microsoft Windows Application to store and view bird sightings. Submitted as part of a final year project.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="post-tag-projects-for-education col" data-bss-type="blog-loop-item" style="display: none !important;">
|
|
<div class="card"><a href="/my-work/projects-for-education/task-master-ios.html"><img class="img-fluid card-img-top rainbow-border" width="940" height="500" src="/assets/img/projects/taskmaster_for%20ios/taskmasteriospreview.png"></a>
|
|
<div class="card-body"><a href="/my-work/projects-for-education/task-master-ios.html">
|
|
<h4 class="text-body">Task Master for iOS</h4>
|
|
</a>
|
|
<p class="card-text">Inspired by the BrumHack 5.0 entry. A Business Oriented Task and Project Management System, now for iOS.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<nav class="d-flex justify-content-center mt-3" data-bss-type="blog-loop-pagination">
|
|
<ul class="pagination">
|
|
<li class="page-item disabled" data-type="prev" data-page="1"><a class="page-link" aria-label="Previous" href="#"><span aria-hidden="true">«</span></a></li>
|
|
<li class="page-item active" data-type="regular" data-page="1"><a class="page-link" href="#">1</a></li>
|
|
<li class="page-item" data-type="regular" data-page="2"><a class="page-link" href="#">2</a></li>
|
|
<li class="page-item" data-type="next" data-page="2"><a class="page-link" aria-label="Next" href="#"><span aria-hidden="true">»</span></a></li>
|
|
</ul>
|
|
</nav>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</main>
|
|
<footer class="text-body bg-body" id="Light-Footer" data-bs-theme="light">
|
|
<div class="container py-4 py-lg-5 center-everything">
|
|
<div class="row justify-content-center">
|
|
<div class="col-sm-4 col-md-3 text-center text-lg-start d-flex flex-column">
|
|
<h3 class="fs-6 text-center text-body accreditations-title">Accreditations</h3>
|
|
<div class="swiper text-body w-100" id="light-swiper" data-bss-swiper="{"direction":"horizontal","loop":true,"autoplay":{"pauseOnMouseEnter":true},"autoHeight":true,"effect":"fade","fadeEffect":{"crossFade":true}}">
|
|
<div class="swiper-wrapper">
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/9c9dd6cd-2703-4539-adc9-366069cbc3a9/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/mce_microsoft_certified_educator.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/b5ac17a1-0914-496f-9d85-9608966259ee/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="600" height="600" src="/assets/img/accreditations/microsoft_innovative_educator_expert_2023_2024.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/ad92a7cb-3e4f-46e2-8e73-99dffd0eb69e/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="600" height="600" src="/assets/img/accreditations/microsoft_innovative_educator_expert_2024_2025.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/44756f05-e727-41c8-a352-a656c033c9f0/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="800" height="800" src="/assets/img/accreditations/pearson_onscreen%20assessment%20expert.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/52121ef6-0760-4870-91cc-1cb20001238b/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="1200" height="1200" src="/assets/img/accreditations/establishing_a_stem_club_from_creation_to_careers_2021_2022.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/60d50339-2dda-4991-90b5-7ff087975746/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="1200" height="1200" src="/assets/img/accreditations/secondary_computer_science_professional_development_2021_2022.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/e74f9011-4006-4570-824a-f483fdcb5b26/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="600" height="600" src="/assets/img/accreditations/secondary_computing_professional_development_2023_2.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/c73720d2-8208-4e2b-a1e5-c473961834d9/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="1200" height="1200" src="/assets/img/accreditations/gcse_computer_science_professional_development_2019_2020.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/c486279a-8e97-4779-90c1-56f09622e782/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="2000" height="2000" src="/assets/img/accreditations/gcse_computer_science_professional_development_2022_2023.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/e76ed57f-2270-47f5-8e7e-4136baa261f3/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="600" height="600" src="/assets/img/accreditations/gcse_computer_science_professional_development_2023.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/0e46d6b8-1a1b-4d16-a5d5-3b95661fb290/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/microsoft_office_specialist_master_2013.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/287d0ca4-bea1-4e18-b9e7-21f6a5d5d571/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/microsoft_office_specialist_word_2013_expert.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/f1831f0e-776b-49aa-8a8d-05817d4b1410/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/microsoft_office_specialist_word_2013.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/2ab55353-3267-46cc-b3f4-3099af54d869/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/microsoft_office_specialist_excel_2013.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/11162aa2-331a-4ec4-a612-665f3bc59cb1/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/microsoft_office_specialist_powerpoint_2013.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/cd328b1d-27b6-4410-be70-0792a99b72ea/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/microsoft_office_specialist_onenote_2013.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/da3b3b4c-cec4-4537-bb5b-486ce9ee6ee7/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/mta_security_fundamentals_certified_2016.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/23194bfe-30e4-4f8e-b9ec-338d060136dd/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/mta_networking_fundamentals_certified_2016.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/f0f27d87-424b-49e8-a444-95086d640e66/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/mta_windows_operating_system_fundamentals_certified_2016.png"></a></div>
|
|
</div>
|
|
</div>
|
|
<div class="swiper-nav-standalone d-flex justify-content-center accreditations-navigation" data-bss-swiper-target="#light-swiper">
|
|
<div class="swiper-button-prev"><button class="btn btn-primary btn-sm" type="button"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-arrow-left">
|
|
<path fill-rule="evenodd" d="M15 8a.5.5 0 0 0-.5-.5H2.707l3.147-3.146a.5.5 0 1 0-.708-.708l-4 4a.5.5 0 0 0 0 .708l4 4a.5.5 0 0 0 .708-.708L2.707 8.5H14.5A.5.5 0 0 0 15 8"></path>
|
|
</svg></button></div>
|
|
<div class="swiper-button-next"><button class="btn btn-primary btn-sm" type="button"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-arrow-right">
|
|
<path fill-rule="evenodd" d="M1 8a.5.5 0 0 1 .5-.5h11.793l-3.147-3.146a.5.5 0 0 1 .708-.708l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 0 1-.708-.708L13.293 8.5H1.5A.5.5 0 0 1 1 8"></path>
|
|
</svg></button></div>
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-4 col-md-3 text-center text-lg-start d-flex flex-column"></div>
|
|
<div class="col-sm-4 col-md-3 text-center text-lg-start d-flex flex-column"></div>
|
|
<div class="col-lg-3 text-center text-lg-start d-flex flex-column align-items-center order-first align-items-lg-start order-lg-last">
|
|
<div class="fw-bold d-flex align-items-center mb-2"><img src="/assets/img/brand/ADCM%20Logo%202025.png" width="50" height="50" class="footer-logo"><span>Mr A Davis</span></div>
|
|
<p>IT professional and Head of Computing in the West Midlands</p>
|
|
</div>
|
|
</div>
|
|
<hr>
|
|
<div class="d-flex justify-content-between align-items-center pt-3">
|
|
<p class="mb-0 footer-copyright">Copyright © 2025 ADCM Networks</p>
|
|
<ul class="list-inline mb-0">
|
|
<li class="list-inline-item"><a href="https://mstdn.social/@MrDavisCSIT"><svg xmlns="http://www.w3.org/2000/svg" viewBox="-32 0 512 512" width="1em" height="1em" fill="currentColor" class="text-body">
|
|
<!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. -->
|
|
<path d="M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"></path>
|
|
</svg></a></li>
|
|
<li class="list-inline-item"><a href="https://bsky.app/profile/mrdaviscsit.bsky.social"><i class="fa-brands fa-square-bluesky"></i></a></li>
|
|
<li class="list-inline-item"><a href="https://www.linkedin.com/in/mrdaviscsit/"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-linkedin text-body">
|
|
<path d="M0 1.146C0 .513.526 0 1.175 0h13.65C15.474 0 16 .513 16 1.146v13.708c0 .633-.526 1.146-1.175 1.146H1.175C.526 16 0 15.487 0 14.854V1.146zm4.943 12.248V6.169H2.542v7.225h2.401m-1.2-8.212c.837 0 1.358-.554 1.358-1.248-.015-.709-.52-1.248-1.342-1.248-.822 0-1.359.54-1.359 1.248 0 .694.521 1.248 1.327 1.248h.016zm4.908 8.212V9.359c0-.216.016-.432.08-.586.173-.431.568-.878 1.232-.878.869 0 1.216.662 1.216 1.634v3.865h2.401V9.25c0-2.22-1.184-3.252-2.764-3.252-1.274 0-1.845.7-2.165 1.193v.025h-.016a5.54 5.54 0 0 1 .016-.025V6.169h-2.4c.03.678 0 7.225 0 7.225h2.4"></path>
|
|
</svg></a></li>
|
|
<li class="list-inline-item"><a href="https://github.com/MrDavisCSIT"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-github text-body">
|
|
<path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.012 8.012 0 0 0 16 8c0-4.42-3.58-8-8-8"></path>
|
|
</svg></a></li>
|
|
<li class="list-inline-item"><a href="https://www.reddit.com/user/AlexanderEDavis95/"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-reddit text-body">
|
|
<path d="M6.167 8a.831.831 0 0 0-.83.83c0 .459.372.84.83.831a.831.831 0 0 0 0-1.661m1.843 3.647c.315 0 1.403-.038 1.976-.611a.232.232 0 0 0 0-.306.213.213 0 0 0-.306 0c-.353.363-1.126.487-1.67.487-.545 0-1.308-.124-1.671-.487a.213.213 0 0 0-.306 0 .213.213 0 0 0 0 .306c.564.563 1.652.61 1.977.61zm.992-2.807c0 .458.373.83.831.83.458 0 .83-.381.83-.83a.831.831 0 0 0-1.66 0z"></path>
|
|
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0m-3.828-1.165c-.315 0-.602.124-.812.325-.801-.573-1.9-.945-3.121-.993l.534-2.501 1.738.372a.83.83 0 1 0 .83-.869.83.83 0 0 0-.744.468l-1.938-.41a.203.203 0 0 0-.153.028.186.186 0 0 0-.086.134l-.592 2.788c-1.24.038-2.358.41-3.17.992-.21-.2-.496-.324-.81-.324a1.163 1.163 0 0 0-.478 2.224c-.02.115-.029.23-.029.353 0 1.795 2.091 3.256 4.669 3.256 2.577 0 4.668-1.451 4.668-3.256 0-.114-.01-.238-.029-.353.401-.181.688-.592.688-1.069 0-.65-.525-1.165-1.165-1.165z"></path>
|
|
</svg></a></li>
|
|
<li class="list-inline-item"><a href="https://www.youtube.com/channel/UCgDhiQMLbTemv2varDiW2rA"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-youtube text-body">
|
|
<path d="M8.051 1.999h.089c.822.003 4.987.033 6.11.335a2.01 2.01 0 0 1 1.415 1.42c.101.38.172.883.22 1.402l.01.104.022.26.008.104c.065.914.073 1.77.074 1.957v.075c-.001.194-.01 1.108-.082 2.06l-.008.105-.009.104c-.05.572-.124 1.14-.235 1.558a2.007 2.007 0 0 1-1.415 1.42c-1.16.312-5.569.334-6.18.335h-.142c-.309 0-1.587-.006-2.927-.052l-.17-.006-.087-.004-.171-.007-.171-.007c-1.11-.049-2.167-.128-2.654-.26a2.007 2.007 0 0 1-1.415-1.419c-.111-.417-.185-.986-.235-1.558L.09 9.82l-.008-.104A31.4 31.4 0 0 1 0 7.68v-.123c.002-.215.01-.958.064-1.778l.007-.103.003-.052.008-.104.022-.26.01-.104c.048-.519.119-1.023.22-1.402a2.007 2.007 0 0 1 1.415-1.42c.487-.13 1.544-.21 2.654-.26l.17-.007.172-.006.086-.003.171-.007A99.788 99.788 0 0 1 7.858 2h.193zM6.4 5.209v4.818l4.157-2.408z"></path>
|
|
</svg></a></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
<footer class="text-body bg-body" id="Dark-Footer" data-bs-theme="dark">
|
|
<div class="container py-4 py-lg-5 center-everything">
|
|
<div class="row justify-content-center">
|
|
<div class="col-sm-4 col-md-3 text-center text-lg-start d-flex flex-column">
|
|
<h3 class="fs-6 text-center text-body accreditations-title">Accreditations</h3>
|
|
<div class="swiper text-body w-100" id="dark-swiper" data-bss-swiper="{"direction":"horizontal","loop":true,"autoplay":{"pauseOnMouseEnter":true},"autoHeight":true,"effect":"fade","fadeEffect":{"crossFade":true}}">
|
|
<div class="swiper-wrapper">
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/9c9dd6cd-2703-4539-adc9-366069cbc3a9/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/mce_microsoft_certified_educator.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/b5ac17a1-0914-496f-9d85-9608966259ee/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="600" height="600" src="/assets/img/accreditations/microsoft_innovative_educator_expert_2023_2024.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/ad92a7cb-3e4f-46e2-8e73-99dffd0eb69e/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="600" height="600" src="/assets/img/accreditations/microsoft_innovative_educator_expert_2024_2025.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/44756f05-e727-41c8-a352-a656c033c9f0/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="800" height="800" src="/assets/img/accreditations/pearson_onscreen%20assessment%20expert.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/52121ef6-0760-4870-91cc-1cb20001238b/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="1200" height="1200" src="/assets/img/accreditations/establishing_a_stem_club_from_creation_to_careers_2021_2022.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/60d50339-2dda-4991-90b5-7ff087975746/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="1200" height="1200" src="/assets/img/accreditations/secondary_computer_science_professional_development_2021_2022.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/e74f9011-4006-4570-824a-f483fdcb5b26/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="600" height="600" src="/assets/img/accreditations/secondary_computing_professional_development_2023_2.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/c73720d2-8208-4e2b-a1e5-c473961834d9/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="1200" height="1200" src="/assets/img/accreditations/gcse_computer_science_professional_development_2019_2020.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/c486279a-8e97-4779-90c1-56f09622e782/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="2000" height="2000" src="/assets/img/accreditations/gcse_computer_science_professional_development_2022_2023.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/e76ed57f-2270-47f5-8e7e-4136baa261f3/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="600" height="600" src="/assets/img/accreditations/gcse_computer_science_professional_development_2023.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/0e46d6b8-1a1b-4d16-a5d5-3b95661fb290/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/microsoft_office_specialist_master_2013.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/287d0ca4-bea1-4e18-b9e7-21f6a5d5d571/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/microsoft_office_specialist_word_2013_expert.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/f1831f0e-776b-49aa-8a8d-05817d4b1410/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/microsoft_office_specialist_word_2013.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/2ab55353-3267-46cc-b3f4-3099af54d869/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/microsoft_office_specialist_excel_2013.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/11162aa2-331a-4ec4-a612-665f3bc59cb1/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/microsoft_office_specialist_powerpoint_2013.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/cd328b1d-27b6-4410-be70-0792a99b72ea/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/microsoft_office_specialist_onenote_2013.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/da3b3b4c-cec4-4537-bb5b-486ce9ee6ee7/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/mta_security_fundamentals_certified_2016.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/23194bfe-30e4-4f8e-b9ec-338d060136dd/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/mta_networking_fundamentals_certified_2016.png"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/f0f27d87-424b-49e8-a444-95086d640e66/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/mta_windows_operating_system_fundamentals_certified_2016.png"></a></div>
|
|
</div>
|
|
</div>
|
|
<div class="swiper-nav-standalone d-flex justify-content-center accreditations-navigation" data-bss-swiper-target="#dark-swiper">
|
|
<div class="swiper-button-prev"><button class="btn btn-primary btn-sm" type="button"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-arrow-left">
|
|
<path fill-rule="evenodd" d="M15 8a.5.5 0 0 0-.5-.5H2.707l3.147-3.146a.5.5 0 1 0-.708-.708l-4 4a.5.5 0 0 0 0 .708l4 4a.5.5 0 0 0 .708-.708L2.707 8.5H14.5A.5.5 0 0 0 15 8"></path>
|
|
</svg></button></div>
|
|
<div class="swiper-button-next"><button class="btn btn-primary btn-sm" type="button"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-arrow-right">
|
|
<path fill-rule="evenodd" d="M1 8a.5.5 0 0 1 .5-.5h11.793l-3.147-3.146a.5.5 0 0 1 .708-.708l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 0 1-.708-.708L13.293 8.5H1.5A.5.5 0 0 1 1 8"></path>
|
|
</svg></button></div>
|
|
</div>
|
|
<ul class="list-unstyled"></ul>
|
|
</div>
|
|
<div class="col-sm-4 col-md-3 text-center text-lg-start d-flex flex-column"></div>
|
|
<div class="col-sm-4 col-md-3 text-center text-lg-start d-flex flex-column"></div>
|
|
<div class="col-lg-3 text-center text-lg-start d-flex flex-column align-items-center order-first align-items-lg-start order-lg-last">
|
|
<div class="fw-bold d-flex align-items-center mb-2"><img src="/assets/img/brand/logo-white.png" width="50" height="50" class="footer-logo"><span>Mr A Davis</span></div>
|
|
<p>IT professional and Head of Computing in the West Midlands</p>
|
|
</div>
|
|
</div>
|
|
<hr>
|
|
<div class="d-flex justify-content-between align-items-center pt-3">
|
|
<p class="mb-0 footer-copyright">Copyright © 2025 ADCM Networks</p>
|
|
<ul class="list-inline mb-0">
|
|
<li class="list-inline-item"><a href="https://mstdn.social/@MrDavisCSIT"><svg xmlns="http://www.w3.org/2000/svg" viewBox="-32 0 512 512" width="1em" height="1em" fill="currentColor" class="text-body">
|
|
<!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. -->
|
|
<path d="M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"></path>
|
|
</svg></a></li>
|
|
<li class="list-inline-item"><a href="https://bsky.app/profile/mrdaviscsit.bsky.social"><i class="fa-brands fa-square-bluesky"></i></a></li>
|
|
<li class="list-inline-item"><a href="https://www.linkedin.com/in/mrdaviscsit/"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-linkedin text-body">
|
|
<path d="M0 1.146C0 .513.526 0 1.175 0h13.65C15.474 0 16 .513 16 1.146v13.708c0 .633-.526 1.146-1.175 1.146H1.175C.526 16 0 15.487 0 14.854V1.146zm4.943 12.248V6.169H2.542v7.225h2.401m-1.2-8.212c.837 0 1.358-.554 1.358-1.248-.015-.709-.52-1.248-1.342-1.248-.822 0-1.359.54-1.359 1.248 0 .694.521 1.248 1.327 1.248h.016zm4.908 8.212V9.359c0-.216.016-.432.08-.586.173-.431.568-.878 1.232-.878.869 0 1.216.662 1.216 1.634v3.865h2.401V9.25c0-2.22-1.184-3.252-2.764-3.252-1.274 0-1.845.7-2.165 1.193v.025h-.016a5.54 5.54 0 0 1 .016-.025V6.169h-2.4c.03.678 0 7.225 0 7.225h2.4"></path>
|
|
</svg></a></li>
|
|
<li class="list-inline-item"><a href="https://github.com/MrDavisCSIT"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-github text-body">
|
|
<path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.012 8.012 0 0 0 16 8c0-4.42-3.58-8-8-8"></path>
|
|
</svg></a></li>
|
|
<li class="list-inline-item"><a href="https://www.reddit.com/user/AlexanderEDavis95/"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-reddit text-body">
|
|
<path d="M6.167 8a.831.831 0 0 0-.83.83c0 .459.372.84.83.831a.831.831 0 0 0 0-1.661m1.843 3.647c.315 0 1.403-.038 1.976-.611a.232.232 0 0 0 0-.306.213.213 0 0 0-.306 0c-.353.363-1.126.487-1.67.487-.545 0-1.308-.124-1.671-.487a.213.213 0 0 0-.306 0 .213.213 0 0 0 0 .306c.564.563 1.652.61 1.977.61zm.992-2.807c0 .458.373.83.831.83.458 0 .83-.381.83-.83a.831.831 0 0 0-1.66 0z"></path>
|
|
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0m-3.828-1.165c-.315 0-.602.124-.812.325-.801-.573-1.9-.945-3.121-.993l.534-2.501 1.738.372a.83.83 0 1 0 .83-.869.83.83 0 0 0-.744.468l-1.938-.41a.203.203 0 0 0-.153.028.186.186 0 0 0-.086.134l-.592 2.788c-1.24.038-2.358.41-3.17.992-.21-.2-.496-.324-.81-.324a1.163 1.163 0 0 0-.478 2.224c-.02.115-.029.23-.029.353 0 1.795 2.091 3.256 4.669 3.256 2.577 0 4.668-1.451 4.668-3.256 0-.114-.01-.238-.029-.353.401-.181.688-.592.688-1.069 0-.65-.525-1.165-1.165-1.165z"></path>
|
|
</svg></a></li>
|
|
<li class="list-inline-item"><a href="https://www.youtube.com/channel/UCgDhiQMLbTemv2varDiW2rA"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-youtube text-body">
|
|
<path d="M8.051 1.999h.089c.822.003 4.987.033 6.11.335a2.01 2.01 0 0 1 1.415 1.42c.101.38.172.883.22 1.402l.01.104.022.26.008.104c.065.914.073 1.77.074 1.957v.075c-.001.194-.01 1.108-.082 2.06l-.008.105-.009.104c-.05.572-.124 1.14-.235 1.558a2.007 2.007 0 0 1-1.415 1.42c-1.16.312-5.569.334-6.18.335h-.142c-.309 0-1.587-.006-2.927-.052l-.17-.006-.087-.004-.171-.007-.171-.007c-1.11-.049-2.167-.128-2.654-.26a2.007 2.007 0 0 1-1.415-1.419c-.111-.417-.185-.986-.235-1.558L.09 9.82l-.008-.104A31.4 31.4 0 0 1 0 7.68v-.123c.002-.215.01-.958.064-1.778l.007-.103.003-.052.008-.104.022-.26.01-.104c.048-.519.119-1.023.22-1.402a2.007 2.007 0 0 1 1.415-1.42c.487-.13 1.544-.21 2.654-.26l.17-.007.172-.006.086-.003.171-.007A99.788 99.788 0 0 1 7.858 2h.193zM6.4 5.209v4.818l4.157-2.408z"></path>
|
|
</svg></a></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
<script>
|
|
(function() {
|
|
let collections = document.querySelectorAll('[data-bss-type="blog-loop"]');
|
|
let tagNavs = document.querySelectorAll('[data-bss-type="tag-nav"]');
|
|
let tagLoops = document.querySelectorAll('[data-bss-type="tag-loop"]');
|
|
let authorLoops = document.querySelectorAll('[data-bss-type="author-loop"]');
|
|
let authorNavs = document.querySelectorAll('[data-bss-type="author-nav"]');
|
|
|
|
window.addEventListener("popstate", (e) => {
|
|
for (let collection of collections) {
|
|
updateCollection(collection);
|
|
}
|
|
|
|
for (let tagNav of tagNavs) {
|
|
updateTagNav(tagNav);
|
|
}
|
|
|
|
for (let authorNav of authorNavs) {
|
|
updateAuthorNav(authorNav);
|
|
}
|
|
});
|
|
|
|
for (let collection of collections) {
|
|
|
|
updateCollection(collection);
|
|
|
|
if (!canPaginateCollection(collection)) continue;
|
|
|
|
let pagination = collection.querySelector('[data-bss-type="blog-loop-pagination"]');
|
|
|
|
pagination.addEventListener('click', function(e) {
|
|
let paginationItem = e.target.closest('.page-item');
|
|
if (!paginationItem) return;
|
|
|
|
e.preventDefault();
|
|
|
|
if (paginationItem.classList.contains('disabled') || paginationItem.classList.contains('active')) return;
|
|
|
|
let collection = paginationItem.closest('[data-bss-type="blog-loop"]');
|
|
if (!collection) return;
|
|
|
|
let page = parseInt(paginationItem.dataset.page);
|
|
if (!page) return;
|
|
|
|
let pageParam = getPageParameter(collection);
|
|
|
|
if (pageParam) {
|
|
const url = new URL(window.location);
|
|
url.searchParams.set(pageParam, page);
|
|
history.pushState({
|
|
[pageParam]: page
|
|
}, document.title, url);
|
|
|
|
for (let c of collections) {
|
|
let param = getPageParameter(c);
|
|
if (param !== pageParam) continue;
|
|
updateCollection(c);
|
|
}
|
|
} else {
|
|
updateCollection(collection, page);
|
|
}
|
|
});
|
|
}
|
|
|
|
for (let tagNav of tagNavs) {
|
|
updateTagNav(tagNav);
|
|
tagNav.addEventListener('click', onTagClick);
|
|
}
|
|
|
|
for (let tagLoop of tagLoops) {
|
|
tagLoop.addEventListener('click', onTagClick);
|
|
}
|
|
|
|
for (let authorLoop of authorLoops) {
|
|
authorLoop.addEventListener('click', onAuthorClick);
|
|
}
|
|
|
|
for (let authorNav of authorNavs) {
|
|
updateAuthorNav(authorNav);
|
|
}
|
|
|
|
function onTagClick(e) {
|
|
onBlogFilterClick(e);
|
|
|
|
for (let nav of tagNavs) {
|
|
updateTagNav(nav);
|
|
}
|
|
}
|
|
|
|
function onAuthorClick(e) {
|
|
onBlogFilterClick(e);
|
|
|
|
for (let authorNav of authorNavs) {
|
|
updateAuthorNav(authorNav);
|
|
}
|
|
}
|
|
|
|
function onBlogFilterClick(e) {
|
|
const item = e.target.closest('[data-bss-filter="blog"]');
|
|
if (!item || !item.dataset.hasOwnProperty('bssHref') || !item.dataset.hasOwnProperty('bssFilterParam')) return;
|
|
|
|
const stateNode = item.dataset.hasOwnProperty('bssStateNode') ? item : item.querySelector('[data-bss-state-node]');
|
|
|
|
if (stateNode && (stateNode.classList.contains('disabled') || stateNode.classList.contains('active'))) {
|
|
e.preventDefault();
|
|
return;
|
|
}
|
|
|
|
const link = item.dataset.bssHref;
|
|
if (!linksToCurrentPage(link)) return;
|
|
|
|
e.preventDefault();
|
|
|
|
const url = new URL(window.location);
|
|
const filterParam = item.dataset.bssFilterParam;
|
|
const filterValue = item.dataset.bssFilterValue || '';
|
|
|
|
const collectionsToUpdate = [];
|
|
const newQueryParams = {
|
|
[filterParam]: filterValue
|
|
};
|
|
|
|
for (let c of collections) {
|
|
if (!canFilterCollection(c)) continue;
|
|
collectionsToUpdate.push(c);
|
|
|
|
let pageParam = getPageParameter(c);
|
|
let page = url.searchParams.get(pageParam);
|
|
if (page === null || page == 1) continue;
|
|
|
|
newQueryParams[pageParam] = 1;
|
|
}
|
|
|
|
for (let param in newQueryParams) {
|
|
if (newQueryParams[param]) {
|
|
url.searchParams.set(param, newQueryParams[param]);
|
|
} else {
|
|
url.searchParams.delete(param);
|
|
}
|
|
}
|
|
|
|
history.pushState(newQueryParams, document.title, url);
|
|
|
|
for (let c of collectionsToUpdate) {
|
|
updateCollection(c);
|
|
}
|
|
}
|
|
|
|
function getCollectionFilters(collection) {
|
|
let filters = [];
|
|
|
|
try {
|
|
const parsed = JSON.parse(collection.dataset.bssFilters);
|
|
|
|
if (Array.isArray(parsed)) {
|
|
filters = parsed;
|
|
}
|
|
} catch (e) {}
|
|
|
|
return filters;
|
|
}
|
|
|
|
function getCollectionEmptyFilterAction(collection, filter = '') {
|
|
let emptyFilterActions = [];
|
|
|
|
try {
|
|
const parsed = JSON.parse(collection.dataset.bssEmptyFilterActions);
|
|
|
|
if (Array.isArray(parsed)) {
|
|
emptyFilterActions = parsed;
|
|
}
|
|
} catch (e) {}
|
|
|
|
const action = emptyFilterActions.find(action => action.filter === filter);
|
|
|
|
return action ? action.value : '';
|
|
}
|
|
|
|
function canFilterCollection(collection) {
|
|
return !!getCollectionFilters(collection).length;
|
|
}
|
|
|
|
function canFilterCollectionByTag(collection) {
|
|
return getCollectionFilters(collection).includes('tag');
|
|
}
|
|
|
|
function canFilterCollectionByAuthor(collection) {
|
|
return getCollectionFilters(collection).includes('author');
|
|
}
|
|
|
|
function shouldShowAllItemsForEmptyFilter(collection, filter = '') {
|
|
return getCollectionEmptyFilterAction(collection, filter) === 'show-all';
|
|
}
|
|
|
|
function canPaginateCollection(collection) {
|
|
return !!getCollectionPagination(collection);
|
|
}
|
|
|
|
function getCollectionPagination(collection) {
|
|
return collection.querySelector('[data-bss-type="blog-loop-pagination"]');
|
|
}
|
|
|
|
function getPageParameter(collection) {
|
|
return collection.dataset.bssPageParam;
|
|
}
|
|
|
|
function linksToCurrentPage(path = '') {
|
|
let currentURL, url;
|
|
|
|
try {
|
|
currentURL = new URL(window.location);
|
|
url = new URL(path, window.location.href);
|
|
} catch (e) {
|
|
console.error(e);
|
|
}
|
|
|
|
return currentURL.origin === url.origin && currentURL.pathname === url.pathname;
|
|
}
|
|
|
|
function updateCollection(collection, page, activeTag = '', activeAuthor = '') {
|
|
|
|
const url = new URL(window.location.href);
|
|
|
|
if (canPaginateCollection(collection)) {
|
|
if (!page) {
|
|
let pageParam = getPageParameter(collection);
|
|
page = (pageParam ? url.searchParams.get(pageParam) : 1) || 1;
|
|
}
|
|
}
|
|
|
|
if (canFilterCollectionByTag(collection) && !activeTag) {
|
|
let tagParam = 'tag';
|
|
activeTag = url.searchParams.get(tagParam) || '';
|
|
}
|
|
|
|
if (canFilterCollectionByAuthor(collection) && !activeAuthor) {
|
|
let authorParam = 'author';
|
|
activeAuthor = url.searchParams.get(authorParam) || '';
|
|
}
|
|
|
|
renderCollectionPage(collection, page, activeTag, activeAuthor);
|
|
}
|
|
|
|
function renderCollectionPage(collection, page = 1, activeTag = '', activeAuthor = '') {
|
|
|
|
page = Math.max(parseInt(page, 10), 1);
|
|
|
|
collection.style.removeProperty('display');
|
|
|
|
let loopBase = collection.querySelector('[data-bss-type="blog-loop-base"]');
|
|
loopBase && loopBase.style.removeProperty('display');
|
|
|
|
let emptyState = collection.querySelector('[data-bss-type="empty-state"]');
|
|
emptyState && emptyState.style.setProperty('display', 'none', 'important');
|
|
|
|
let listItems = [].slice.call(collection.querySelectorAll('[data-bss-type="blog-loop-item"]'));
|
|
listItems.forEach(item => item.style.setProperty('display', 'none', 'important'));
|
|
|
|
if (canFilterCollectionByTag(collection)) {
|
|
listItems = listItems.filter(item => activeTag ? item.classList.contains('post-tag-' + activeTag) : shouldShowAllItemsForEmptyFilter(collection, 'tag'));
|
|
}
|
|
|
|
if (canFilterCollectionByAuthor(collection)) {
|
|
listItems = listItems.filter(item => activeAuthor ? item.classList.contains('post-author-' + activeAuthor) : shouldShowAllItemsForEmptyFilter(collection, 'author'));
|
|
}
|
|
|
|
let perPage = collection.dataset.bssPerpage || listItems.length;
|
|
let visibleListItems = listItems.slice((page - 1) * perPage, page * perPage);
|
|
visibleListItems.forEach(item => item.style.removeProperty('display'));
|
|
|
|
let isEmpty = !visibleListItems.length;
|
|
|
|
if (isEmpty) {
|
|
loopBase && loopBase.style.setProperty('display', 'none', 'important');
|
|
emptyState && emptyState.style.removeProperty('display');
|
|
}
|
|
|
|
let itemCount = listItems.length;
|
|
let pageCount = Math.max(Math.ceil(itemCount / perPage), 1);
|
|
|
|
updateCollectionPagination(collection, page, pageCount, isEmpty);
|
|
|
|
if (collection.dataset.bssScrollOnChange) {
|
|
scrollToCollectionTop(collection);
|
|
}
|
|
}
|
|
|
|
function updateCollectionPagination(collection, page, pageCount, isEmpty) {
|
|
let pagination = getCollectionPagination(collection);
|
|
if (!pagination) return;
|
|
|
|
let paginationItems = [].slice.call(pagination.querySelectorAll('.page-item'));
|
|
|
|
if (pageCount === 1 || isEmpty) {
|
|
pagination.style.setProperty('display', 'none', 'important');
|
|
} else {
|
|
pagination.style.removeProperty('display');
|
|
}
|
|
|
|
let previousBtnDisabled = page - 1 <= 0;
|
|
let previousPage = previousBtnDisabled ? 1 : page - 1;
|
|
|
|
let nextBtnDisabled = page + 1 > pageCount;
|
|
let nextPage = nextBtnDisabled ? pageCount : page + 1;
|
|
|
|
for (let i = 0; i < paginationItems.length; i++) {
|
|
let paginationItem = paginationItems[i];
|
|
|
|
paginationItem.classList.remove('active', 'disabled');
|
|
|
|
if (paginationItem.dataset.type === 'prev') {
|
|
paginationItem.dataset.page = previousPage;
|
|
|
|
if (previousBtnDisabled) {
|
|
paginationItem.classList.add('disabled');
|
|
}
|
|
} else if (paginationItem.dataset.type === 'next') {
|
|
paginationItem.dataset.page = nextPage;
|
|
|
|
if (nextBtnDisabled) {
|
|
paginationItem.classList.add('disabled');
|
|
}
|
|
} else {
|
|
if (paginationItem.dataset.page > pageCount) {
|
|
paginationItem.style.setProperty('display', 'none', 'important');
|
|
} else {
|
|
paginationItem.style.removeProperty('display');
|
|
}
|
|
|
|
if (paginationItem.dataset.page == page) {
|
|
paginationItem.classList.add('active');
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function scrollToCollectionTop(collection) {
|
|
const rect = collection.getBoundingClientRect();
|
|
const viewHeight = Math.max(document.documentElement.clientHeight, window.innerHeight);
|
|
const threshold = 100;
|
|
|
|
if (rect.top >= 0 && viewHeight - rect.top > threshold) return;
|
|
|
|
setTimeout(() => {
|
|
collection.scrollIntoView({
|
|
behavior: "smooth",
|
|
block: "start",
|
|
inline: "start"
|
|
});
|
|
}, 0);
|
|
}
|
|
|
|
function updateTagNav(tagNav) {
|
|
const url = new URL(window.location.href);
|
|
|
|
let tagParam = 'tag';
|
|
let tag = url.searchParams.get(tagParam) || '';
|
|
|
|
renderTagNav(tagNav, tag);
|
|
}
|
|
|
|
function renderTagNav(tagNav, activeTag = '') {
|
|
if (!tagNav.dataset.bssSyncUrl) return;
|
|
|
|
let navItems = [].slice.call(tagNav.querySelectorAll('[data-bss-type="tag-loop-item"]'));
|
|
|
|
navItems.forEach(item => {
|
|
const activeClassNode = item.dataset.hasOwnProperty('bssStateNode') ? item : item.querySelector('[data-bss-state-node]');
|
|
if (!activeClassNode) return;
|
|
|
|
activeClassNode.classList.remove('active');
|
|
|
|
const link = item.dataset.bssHref;
|
|
if (!linksToCurrentPage(link) || activeClassNode.classList.contains('disabled')) return;
|
|
|
|
if (item.dataset.bssTag === activeTag) {
|
|
activeClassNode.classList.add('active');
|
|
}
|
|
});
|
|
}
|
|
|
|
function updateAuthorNav(authorNav) {
|
|
const url = new URL(window.location.href);
|
|
|
|
let authorParam = 'author';
|
|
let author = url.searchParams.get(authorParam) || '';
|
|
|
|
renderAuthorNav(authorNav, author);
|
|
}
|
|
|
|
function renderAuthorNav(authorNav, activeAuthor = '') {
|
|
if (!canFilterCollectionByAuthor(authorNav)) return;
|
|
|
|
authorNav.style.removeProperty('display');
|
|
|
|
let items = [].slice.call(authorNav.querySelectorAll('[data-bss-type="author-loop-item"]'));
|
|
items.forEach(item => item.classList.contains('author-' + activeAuthor) ? item.style.removeProperty('display') : item.style.setProperty('display', 'none', 'important'));
|
|
}
|
|
})();
|
|
</script>
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.0/jquery.min.js"></script>
|
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.6/dist/js/bootstrap.bundle.min.js"></script>
|
|
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script>
|
|
<script src="/assets/js/bs-init.js"></script>
|
|
<script src="/assets/js/Carousel---Slider-With-Animation-slider_with_animation.js"></script>
|
|
<script src="/assets/js/CookieConsentComponent-cookieconsent.js"></script>
|
|
<script src="https://kit.fontawesome.com/8970d94f9b.js"></script>
|
|
<script src="/assets/js/pikaday.min.js"></script>
|
|
<script src="/assets/js/text-carousel.js"></script>
|
|
<script src="/assets/js/theme.js"></script>
|
|
</body>
|
|
|
|
</html> |