omitted public

This commit is contained in:
Mihit 2025-03-19 16:14:12 +00:00
parent 13c5e7a2cf
commit 5139ce51d6
35 changed files with 0 additions and 2209 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

View File

@ -1,193 +0,0 @@
<!DOCTYPE html>
<html lang="en" dir="auto">
<head><meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="robots" content="index, follow">
<title>404 Page not found | Mihit Mittal</title>
<meta name="keywords" content="">
<meta name="description" content="Mihit&#39;s blog">
<meta name="author" content="Me">
<link rel="canonical" href="https://mihitmittal.com/404.html">
<link crossorigin="anonymous" href="/assets/css/stylesheet.45e028aa8ce0961349adf411b013ee39406be2c0bc80d4ea3fc04555f7f4611a.css" integrity="sha256-ReAoqozglhNJrfQRsBPuOUBr4sC8gNTqP8BFVff0YRo=" rel="preload stylesheet" as="style">
<link rel="icon" href="https://mihitmittal.com/favicon.ico">
<link rel="icon" type="image/png" sizes="16x16" href="https://mihitmittal.com/favicon-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="https://mihitmittal.com/favicon-32x32.png">
<link rel="apple-touch-icon" href="https://mihitmittal.com/apple-touch-icon.png">
<link rel="mask-icon" href="https://mihitmittal.com/safari-pinned-tab.svg">
<meta name="theme-color" content="#2e2e33">
<meta name="msapplication-TileColor" content="#2e2e33">
<link rel="alternate" hreflang="en" href="https://mihitmittal.com/404.html">
<noscript>
<style>
#theme-toggle,
.top-link {
display: none;
}
</style>
<style>
@media (prefers-color-scheme: dark) {
:root {
--theme: rgb(29, 30, 32);
--entry: rgb(46, 46, 51);
--primary: rgb(218, 218, 219);
--secondary: rgb(155, 156, 157);
--tertiary: rgb(65, 66, 68);
--content: rgb(196, 196, 197);
--code-block-bg: rgb(46, 46, 51);
--code-bg: rgb(55, 56, 62);
--border: rgb(51, 51, 51);
}
.list {
background: var(--theme);
}
.list:not(.dark)::-webkit-scrollbar-track {
background: 0 0;
}
.list:not(.dark)::-webkit-scrollbar-thumb {
border-color: var(--theme);
}
}
</style>
</noscript><meta property="og:url" content="https://mihitmittal.com/404.html">
<meta property="og:site_name" content="Mihit Mittal">
<meta property="og:title" content="404 Page not found">
<meta property="og:description" content="Mihit&#39;s blog">
<meta property="og:locale" content="en-us">
<meta property="og:type" content="website">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="404 Page not found">
<meta name="twitter:description" content="Mihit&#39;s blog">
</head>
<body class="list" id="top">
<script>
if (localStorage.getItem("pref-theme") === "dark") {
document.body.classList.add('dark');
} else if (localStorage.getItem("pref-theme") === "light") {
document.body.classList.remove('dark')
} else if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
document.body.classList.add('dark');
}
</script>
<header class="header">
<nav class="nav">
<div class="logo">
<a href="https://mihitmittal.com/" accesskey="h" title="Mihit Mittal (Alt + H)">Mihit Mittal</a>
<div class="logo-switches">
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
</svg>
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<circle cx="12" cy="12" r="5"></circle>
<line x1="12" y1="1" x2="12" y2="3"></line>
<line x1="12" y1="21" x2="12" y2="23"></line>
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
<line x1="1" y1="12" x2="3" y2="12"></line>
<line x1="21" y1="12" x2="23" y2="12"></line>
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
</svg>
</button>
</div>
</div>
<ul id="menu">
<li>
<a href="https://mihitmittal.com/posts" title="Posts">
<span>Posts</span>
</a>
</li>
</ul>
</nav>
</header>
<main class="main">
<div class="not-found">404</div>
</main>
<footer class="footer">
<span>&copy; 2025 <a href="https://mihitmittal.com/">Mihit Mittal</a></span> ·
<span>
Powered by
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
<a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
</span>
</footer>
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
<path d="M12 6H0l6-6z" />
</svg>
</a>
<script>
let menu = document.getElementById('menu')
if (menu) {
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
menu.onscroll = function () {
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
}
}
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener("click", function (e) {
e.preventDefault();
var id = this.getAttribute("href").substr(1);
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
behavior: "smooth"
});
} else {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
}
if (id === "top") {
history.replaceState(null, null, " ");
} else {
history.pushState(null, null, `#${id}`);
}
});
});
</script>
<script>
var mybutton = document.getElementById("top-link");
window.onscroll = function () {
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
mybutton.style.visibility = "visible";
mybutton.style.opacity = "1";
} else {
mybutton.style.visibility = "hidden";
mybutton.style.opacity = "0";
}
};
</script>
<script>
document.getElementById("theme-toggle").addEventListener("click", () => {
if (document.body.className.includes("dark")) {
document.body.classList.remove('dark');
localStorage.setItem("pref-theme", 'light');
} else {
document.body.classList.add('dark');
localStorage.setItem("pref-theme", 'dark');
}
})
</script>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

View File

@ -1,199 +0,0 @@
<!DOCTYPE html>
<html lang="en" dir="auto">
<head><meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="robots" content="index, follow">
<title>Categories | Mihit Mittal</title>
<meta name="keywords" content="">
<meta name="description" content="Mihit&#39;s blog">
<meta name="author" content="Me">
<link rel="canonical" href="https://mihitmittal.com/categories/">
<link crossorigin="anonymous" href="/assets/css/stylesheet.45e028aa8ce0961349adf411b013ee39406be2c0bc80d4ea3fc04555f7f4611a.css" integrity="sha256-ReAoqozglhNJrfQRsBPuOUBr4sC8gNTqP8BFVff0YRo=" rel="preload stylesheet" as="style">
<link rel="icon" href="https://mihitmittal.com/favicon.ico">
<link rel="icon" type="image/png" sizes="16x16" href="https://mihitmittal.com/favicon-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="https://mihitmittal.com/favicon-32x32.png">
<link rel="apple-touch-icon" href="https://mihitmittal.com/apple-touch-icon.png">
<link rel="mask-icon" href="https://mihitmittal.com/safari-pinned-tab.svg">
<meta name="theme-color" content="#2e2e33">
<meta name="msapplication-TileColor" content="#2e2e33">
<link rel="alternate" type="application/rss+xml" href="https://mihitmittal.com/categories/index.xml">
<link rel="alternate" hreflang="en" href="https://mihitmittal.com/categories/">
<noscript>
<style>
#theme-toggle,
.top-link {
display: none;
}
</style>
<style>
@media (prefers-color-scheme: dark) {
:root {
--theme: rgb(29, 30, 32);
--entry: rgb(46, 46, 51);
--primary: rgb(218, 218, 219);
--secondary: rgb(155, 156, 157);
--tertiary: rgb(65, 66, 68);
--content: rgb(196, 196, 197);
--code-block-bg: rgb(46, 46, 51);
--code-bg: rgb(55, 56, 62);
--border: rgb(51, 51, 51);
}
.list {
background: var(--theme);
}
.list:not(.dark)::-webkit-scrollbar-track {
background: 0 0;
}
.list:not(.dark)::-webkit-scrollbar-thumb {
border-color: var(--theme);
}
}
</style>
</noscript><meta property="og:url" content="https://mihitmittal.com/categories/">
<meta property="og:site_name" content="Mihit Mittal">
<meta property="og:title" content="Categories">
<meta property="og:description" content="Mihit&#39;s blog">
<meta property="og:locale" content="en-us">
<meta property="og:type" content="website">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Categories">
<meta name="twitter:description" content="Mihit&#39;s blog">
</head>
<body class="list" id="top">
<script>
if (localStorage.getItem("pref-theme") === "dark") {
document.body.classList.add('dark');
} else if (localStorage.getItem("pref-theme") === "light") {
document.body.classList.remove('dark')
} else if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
document.body.classList.add('dark');
}
</script>
<header class="header">
<nav class="nav">
<div class="logo">
<a href="https://mihitmittal.com/" accesskey="h" title="Mihit Mittal (Alt + H)">Mihit Mittal</a>
<div class="logo-switches">
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
</svg>
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<circle cx="12" cy="12" r="5"></circle>
<line x1="12" y1="1" x2="12" y2="3"></line>
<line x1="12" y1="21" x2="12" y2="23"></line>
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
<line x1="1" y1="12" x2="3" y2="12"></line>
<line x1="21" y1="12" x2="23" y2="12"></line>
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
</svg>
</button>
</div>
</div>
<ul id="menu">
<li>
<a href="https://mihitmittal.com/posts" title="Posts">
<span>Posts</span>
</a>
</li>
</ul>
</nav>
</header>
<main class="main">
<header class="page-header">
<h1>Categories</h1>
</header>
<ul class="terms-tags">
</ul>
</main>
<footer class="footer">
<span>&copy; 2025 <a href="https://mihitmittal.com/">Mihit Mittal</a></span> ·
<span>
Powered by
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
<a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
</span>
</footer>
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
<path d="M12 6H0l6-6z" />
</svg>
</a>
<script>
let menu = document.getElementById('menu')
if (menu) {
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
menu.onscroll = function () {
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
}
}
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener("click", function (e) {
e.preventDefault();
var id = this.getAttribute("href").substr(1);
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
behavior: "smooth"
});
} else {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
}
if (id === "top") {
history.replaceState(null, null, " ");
} else {
history.pushState(null, null, `#${id}`);
}
});
});
</script>
<script>
var mybutton = document.getElementById("top-link");
window.onscroll = function () {
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
mybutton.style.visibility = "visible";
mybutton.style.opacity = "1";
} else {
mybutton.style.visibility = "hidden";
mybutton.style.opacity = "0";
}
};
</script>
<script>
document.getElementById("theme-toggle").addEventListener("click", () => {
if (document.body.className.includes("dark")) {
document.body.classList.remove('dark');
localStorage.setItem("pref-theme", 'light');
} else {
document.body.classList.add('dark');
localStorage.setItem("pref-theme", 'dark');
}
})
</script>
</body>
</html>

View File

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>Categories on Mihit Mittal</title>
<link>https://mihitmittal.com/categories/</link>
<description>Recent content in Categories on Mihit Mittal</description>
<generator>Hugo -- 0.142.0</generator>
<language>en-us</language>
<atom:link href="https://mihitmittal.com/categories/index.xml" rel="self" type="application/rss+xml" />
</channel>
</rss>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

View File

@ -1,294 +0,0 @@
<!DOCTYPE html>
<html lang="en" dir="auto">
<head>
<meta name="generator" content="Hugo 0.142.0"><meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="robots" content="index, follow">
<title>Mihit Mittal</title>
<meta name="keywords" content="Blog, Portfolio, PaperMod">
<meta name="description" content="Mihit&#39;s blog">
<meta name="author" content="Me">
<link rel="canonical" href="https://mihitmittal.com/">
<link crossorigin="anonymous" href="/assets/css/stylesheet.45e028aa8ce0961349adf411b013ee39406be2c0bc80d4ea3fc04555f7f4611a.css" integrity="sha256-ReAoqozglhNJrfQRsBPuOUBr4sC8gNTqP8BFVff0YRo=" rel="preload stylesheet" as="style">
<link rel="icon" href="https://mihitmittal.com/favicon.ico">
<link rel="icon" type="image/png" sizes="16x16" href="https://mihitmittal.com/favicon-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="https://mihitmittal.com/favicon-32x32.png">
<link rel="apple-touch-icon" href="https://mihitmittal.com/apple-touch-icon.png">
<link rel="mask-icon" href="https://mihitmittal.com/safari-pinned-tab.svg">
<meta name="theme-color" content="#2e2e33">
<meta name="msapplication-TileColor" content="#2e2e33">
<link rel="alternate" type="application/rss+xml" href="https://mihitmittal.com/index.xml">
<link rel="alternate" hreflang="en" href="https://mihitmittal.com/">
<noscript>
<style>
#theme-toggle,
.top-link {
display: none;
}
</style>
<style>
@media (prefers-color-scheme: dark) {
:root {
--theme: rgb(29, 30, 32);
--entry: rgb(46, 46, 51);
--primary: rgb(218, 218, 219);
--secondary: rgb(155, 156, 157);
--tertiary: rgb(65, 66, 68);
--content: rgb(196, 196, 197);
--code-block-bg: rgb(46, 46, 51);
--code-bg: rgb(55, 56, 62);
--border: rgb(51, 51, 51);
}
.list {
background: var(--theme);
}
.list:not(.dark)::-webkit-scrollbar-track {
background: 0 0;
}
.list:not(.dark)::-webkit-scrollbar-thumb {
border-color: var(--theme);
}
}
</style>
</noscript><meta property="og:url" content="https://mihitmittal.com/">
<meta property="og:site_name" content="Mihit Mittal">
<meta property="og:title" content="Mihit Mittal">
<meta property="og:description" content="Mihit&#39;s blog">
<meta property="og:locale" content="en-us">
<meta property="og:type" content="website">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Mihit Mittal">
<meta name="twitter:description" content="Mihit&#39;s blog">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Mihit Mittal",
"url": "https://mihitmittal.com/",
"description": "Mihit's blog",
"logo": "https://mihitmittal.com/favicon.ico",
"sameAs": [
"https://www.linkedin.com/in/mihitmittal/", "https://git.hserve.win/Mihit", "https://leetcode.com/u/MihitMittal/", "mailto:website@mihitmittal.com"
]
}
</script>
</head>
<body class="list" id="top">
<script>
if (localStorage.getItem("pref-theme") === "dark") {
document.body.classList.add('dark');
} else if (localStorage.getItem("pref-theme") === "light") {
document.body.classList.remove('dark')
} else if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
document.body.classList.add('dark');
}
</script>
<header class="header">
<nav class="nav">
<div class="logo">
<a href="https://mihitmittal.com/" accesskey="h" title="Mihit Mittal (Alt + H)">Mihit Mittal</a>
<div class="logo-switches">
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
</svg>
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<circle cx="12" cy="12" r="5"></circle>
<line x1="12" y1="1" x2="12" y2="3"></line>
<line x1="12" y1="21" x2="12" y2="23"></line>
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
<line x1="1" y1="12" x2="3" y2="12"></line>
<line x1="21" y1="12" x2="23" y2="12"></line>
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
</svg>
</button>
</div>
</div>
<ul id="menu">
<li>
<a href="https://mihitmittal.com/posts" title="Posts">
<span>Posts</span>
</a>
</li>
</ul>
</nav>
</header>
<main class="main">
<article class="first-entry home-info">
<header class="entry-header">
<h1>Mihit&rsquo;s blog</h1>
</header>
<div class="entry-content">
Hi! My name is Mihit. I am a data scientist, who graduated from SP Jain Global Management with a bachlor&rsquo;s degree in data science. My hobbies are tinkering with various electronics to learn more about how they work, sometimes I post about it here.
</div>
<footer class="entry-footer">
<div class="social-icons" >
<a href="https://www.linkedin.com/in/mihitmittal/" target="_blank" rel="noopener noreferrer me"
title="Linkedin">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round">
<path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path>
<rect x="2" y="9" width="4" height="12"></rect>
<circle cx="4" cy="4" r="2"></circle>
</svg>
</a>
<a href="https://git.hserve.win/Mihit" target="_blank" rel="noopener noreferrer me"
title="Github">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round">
<path
d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22">
</path>
</svg>
</a>
<a href="https://leetcode.com/u/MihitMittal/" target="_blank" rel="noopener noreferrer me"
title="Leetcode">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" stroke="none" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round">
<path
d="M13.483 0a1.374 1.374 0 0 0-.961.438L7.116 6.226l-3.854 4.126a5.266 5.266 0 0 0-1.209 2.104 5.35 5.35 0 0 0-.125.513 5.527 5.527 0 0 0 .062 2.362 5.83 5.83 0 0 0 .349 1.017 5.938 5.938 0 0 0 1.271 1.818l4.277 4.193.039.038c2.248 2.165 5.852 2.133 8.063-.074l2.396-2.392c.54-.54.54-1.414.003-1.955a1.378 1.378 0 0 0-1.951-.003l-2.396 2.392a3.021 3.021 0 0 1-4.205.038l-.02-.019-4.276-4.193c-.652-.64-.972-1.469-.948-2.263a2.68 2.68 0 0 1 .066-.523 2.545 2.545 0 0 1 .619-1.164L9.13 8.114c1.058-1.134 3.204-1.27 4.43-.278l3.501 2.831c.593.48 1.461.387 1.94-.207a1.384 1.384 0 0 0-.207-1.943l-3.5-2.831c-.8-.647-1.766-1.045-2.774-1.202l2.015-2.158A1.384 1.384 0 0 0 13.483 0zm-2.866 12.815a1.38 1.38 0 0 0-1.38 1.382 1.38 1.38 0 0 0 1.38 1.382H20.79a1.38 1.38 0 0 0 1.38-1.382 1.38 1.38 0 0 0-1.38-1.382z" />
</svg>
</a>
<a href="mailto:website@mihitmittal.com" target="_blank" rel="noopener noreferrer me"
title="Email">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 21" fill="none" stroke="currentColor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round">
<path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"></path>
<polyline points="22,6 12,13 2,6"></polyline>
</svg>
</a>
</div>
</footer>
</article>
<article class="post-entry">
<header class="entry-header">
<h2 class="entry-hint-parent">Creating a multi access-point home network from scratch
</h2>
</header>
<div class="entry-content">
<p>My home was undergoing reconstruction during 2022, and with a fresh start you get the opportunity to fix problems that plagued you before. The old building was constructed in the 1980s and with the brick and cement walls in India it is impossible to get a good Wi-Fi connection or add cabling to add additional access points. This time, I made sure to have at least one CAT6 cable going to each room, in order to be able to fix any dead spots by simply adding in access points in problem spots, and turning a bundle of wire into a home network system that handles terabytes of data each month has been a learning experience.
...</p>
</div>
<footer class="entry-footer"><span title='2023-04-05 00:00:00 +0530 +0530'>April 5, 2023</span>&nbsp;·&nbsp;5 min&nbsp;·&nbsp;966 words&nbsp;·&nbsp;Me</footer>
<a class="entry-link" aria-label="post link to Creating a multi access-point home network from scratch" href="https://mihitmittal.com/posts/3/"></a>
</article>
<article class="post-entry">
<header class="entry-header">
<h2 class="entry-hint-parent">Automating lights based on outdoor luminosity and day cycles
</h2>
</header>
<div class="entry-content">
<p>My house has outdoor lights on the front façade as part of the overall design of the house. These lights were currently turned on manually at a regular time everyday, but someone had to go to turn them off for the night. This proved to be very inconvenient, and resulted in my dad asking me to create some sort of solution to automate the task. I started mapping out the problem in order to understand it better and to break it down into components in order to understand how this would be solved, and concluded the following things:
...</p>
</div>
<footer class="entry-footer"><span title='2023-02-02 00:00:00 +0530 +0530'>February 2, 2023</span>&nbsp;·&nbsp;5 min&nbsp;·&nbsp;873 words&nbsp;·&nbsp;Me</footer>
<a class="entry-link" aria-label="post link to Automating lights based on outdoor luminosity and day cycles" href="https://mihitmittal.com/posts/2/"></a>
</article>
<article class="post-entry">
<header class="entry-header">
<h2 class="entry-hint-parent">Upgrading a motherboards BIOS, without flashback or a CPU
</h2>
</header>
<div class="entry-content">
<p>After running a homelab on an old laptop for many years, I finally decided to bite the bullet and finally part out a PC to use as my home server, to run my websites, cloud storage, home automation using Home Assistant, and local DNS resolution on my network. The specs of the final build were as follows:
AMD Ryzen 4600G 4x8 GB DDR4 3200 by Crucial Gigabyte Gaming X B450 Motherboard 1TB SSD storage 12TB HDD storage Cooler Master MWE 450 Bronze V2 450W PSU Despite the current silicon shortages, acquiring the parts was surprisingly quick and painless. After collecting all the components that were ordered, I begun the simple process of assembling it all together only to discover that I got no sign of life upon pressing the power button. Now, it was my first time building a PC but it wasnt my first time taking on a project like this, which made it all the more confusing as to why there was a problem. I was reading the motherboards manual and scratching my head when suddenly it hit me. The motherboard was manufactured in October 2020, which meant that the BIOS revision on the motherboard was much older than what was required in order for it to support my CPU. This was quite a big problem. I had no older CPU which I could use to update the motherboard, and without this, the build was completely halted. I tried looking around local shops in order to find anyone who would update the BIOS but could not find anyone willing to take the project on, leaving my only option being taking the 45 minute drive to the closest service center in order to get it updated.
...</p>
</div>
<footer class="entry-footer"><span title='2022-12-27 00:00:00 +0530 +0530'>December 27, 2022</span>&nbsp;·&nbsp;3 min&nbsp;·&nbsp;538 words&nbsp;·&nbsp;Me</footer>
<a class="entry-link" aria-label="post link to Upgrading a motherboards BIOS, without flashback or a CPU" href="https://mihitmittal.com/posts/1/"></a>
</article>
</main>
<footer class="footer">
<span>&copy; 2025 <a href="https://mihitmittal.com/">Mihit Mittal</a></span> ·
<span>
Powered by
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
<a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
</span>
</footer>
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
<path d="M12 6H0l6-6z" />
</svg>
</a>
<script>
let menu = document.getElementById('menu')
if (menu) {
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
menu.onscroll = function () {
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
}
}
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener("click", function (e) {
e.preventDefault();
var id = this.getAttribute("href").substr(1);
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
behavior: "smooth"
});
} else {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
}
if (id === "top") {
history.replaceState(null, null, " ");
} else {
history.pushState(null, null, `#${id}`);
}
});
});
</script>
<script>
var mybutton = document.getElementById("top-link");
window.onscroll = function () {
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
mybutton.style.visibility = "visible";
mybutton.style.opacity = "1";
} else {
mybutton.style.visibility = "hidden";
mybutton.style.opacity = "0";
}
};
</script>
<script>
document.getElementById("theme-toggle").addEventListener("click", () => {
if (document.body.className.includes("dark")) {
document.body.classList.remove('dark');
localStorage.setItem("pref-theme", 'light');
} else {
document.body.classList.add('dark');
localStorage.setItem("pref-theme", 'dark');
}
})
</script>
</body>
</html>

View File

@ -1,42 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>Mihit Mittal</title>
<link>https://mihitmittal.com/</link>
<description>Recent content on Mihit Mittal</description>
<generator>Hugo -- 0.142.0</generator>
<language>en-us</language>
<lastBuildDate>Wed, 05 Apr 2023 00:00:00 +0530</lastBuildDate>
<atom:link href="https://mihitmittal.com/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Creating a multi access-point home network from scratch</title>
<link>https://mihitmittal.com/posts/3/</link>
<pubDate>Wed, 05 Apr 2023 00:00:00 +0530</pubDate>
<guid>https://mihitmittal.com/posts/3/</guid>
<description>&lt;p&gt;My home was undergoing reconstruction during 2022, and with a fresh start you get the opportunity to fix problems that plagued you before. The old building was constructed in the 1980s and with the brick and cement walls in India it is impossible to get a good Wi-Fi connection or add cabling to add additional access points. This time, I made sure to have at least one CAT6 cable going to each room, in order to be able to fix any dead spots by simply adding in access points in problem spots, and turning a bundle of wire into a home network system that handles terabytes of data each month has been a learning experience.&lt;/p&gt;</description>
</item>
<item>
<title>Automating lights based on outdoor luminosity and day cycles</title>
<link>https://mihitmittal.com/posts/2/</link>
<pubDate>Thu, 02 Feb 2023 00:00:00 +0530</pubDate>
<guid>https://mihitmittal.com/posts/2/</guid>
<description>&lt;p&gt;My house has outdoor lights on the front façade as part of the overall design of the house. These lights were currently turned on manually at a regular time everyday, but someone had to go to turn them off for the night. This proved to be very inconvenient, and resulted in my dad asking me to create some sort of solution to automate the task. I started mapping out the problem in order to understand it better and to break it down into components in order to understand how this would be solved, and concluded the following things:&lt;/p&gt;</description>
</item>
<item>
<title>Upgrading a motherboards BIOS, without flashback or a CPU</title>
<link>https://mihitmittal.com/posts/1/</link>
<pubDate>Tue, 27 Dec 2022 00:00:00 +0530</pubDate>
<guid>https://mihitmittal.com/posts/1/</guid>
<description>&lt;p&gt;After running a homelab on an old laptop for many years, I finally decided to bite the bullet and finally part out a PC to use as my home server, to run my websites, cloud storage, home automation using Home Assistant, and local DNS resolution on my network. The specs of the final build were as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AMD Ryzen 4600G&lt;/li&gt;
&lt;li&gt;4x8 GB DDR4 3200 by Crucial&lt;/li&gt;
&lt;li&gt;Gigabyte Gaming X B450 Motherboard&lt;/li&gt;
&lt;li&gt;1TB SSD storage&lt;/li&gt;
&lt;li&gt;12TB HDD storage&lt;/li&gt;
&lt;li&gt;Cooler Master MWE 450 Bronze V2 450W PSU&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Despite the current silicon shortages, acquiring the parts was surprisingly quick and painless. After collecting all the components that were ordered, I begun the simple process of assembling it all together only to discover that I got no sign of life upon pressing the power button. Now, it was my first time building a PC but it wasn&amp;rsquo;t my first time taking on a project like this, which made it all the more confusing as to why there was a problem. I was reading the motherboard&amp;rsquo;s manual and scratching my head when suddenly it hit me. The motherboard was manufactured in October 2020, which meant that the BIOS revision on the motherboard was much older than what was required in order for it to support my CPU. This was quite a big problem. I had no older CPU which I could use to update the motherboard, and without this, the build was completely halted. I tried looking around local shops in order to find anyone who would update the BIOS but could not find anyone willing to take the project on, leaving my only option being taking the 45 minute drive to the closest service center in order to get it updated.&lt;/p&gt;</description>
</item>
</channel>
</rss>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

View File

@ -1,10 +0,0 @@
<!DOCTYPE html>
<html lang="en-us">
<head>
<title>https://mihitmittal.com/</title>
<link rel="canonical" href="https://mihitmittal.com/">
<meta name="robots" content="noindex">
<meta charset="utf-8">
<meta http-equiv="refresh" content="0; url=https://mihitmittal.com/">
</head>
</html>

View File

@ -1,314 +0,0 @@
<!DOCTYPE html>
<html lang="en" dir="auto">
<head><meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="robots" content="index, follow">
<title>Upgrading a motherboards BIOS, without flashback or a CPU | Mihit Mittal</title>
<meta name="keywords" content="">
<meta name="description" content="After running a homelab on an old laptop for many years, I finally decided to bite the bullet and finally part out a PC to use as my home server, to run my websites, cloud storage, home automation using Home Assistant, and local DNS resolution on my network. The specs of the final build were as follows:
AMD Ryzen 4600G
4x8 GB DDR4 3200 by Crucial
Gigabyte Gaming X B450 Motherboard
1TB SSD storage
12TB HDD storage
Cooler Master MWE 450 Bronze V2 450W PSU
Despite the current silicon shortages, acquiring the parts was surprisingly quick and painless. After collecting all the components that were ordered, I begun the simple process of assembling it all together only to discover that I got no sign of life upon pressing the power button. Now, it was my first time building a PC but it wasn&rsquo;t my first time taking on a project like this, which made it all the more confusing as to why there was a problem. I was reading the motherboard&rsquo;s manual and scratching my head when suddenly it hit me. The motherboard was manufactured in October 2020, which meant that the BIOS revision on the motherboard was much older than what was required in order for it to support my CPU. This was quite a big problem. I had no older CPU which I could use to update the motherboard, and without this, the build was completely halted. I tried looking around local shops in order to find anyone who would update the BIOS but could not find anyone willing to take the project on, leaving my only option being taking the 45 minute drive to the closest service center in order to get it updated.">
<meta name="author" content="Me">
<link rel="canonical" href="https://mihitmittal.com/posts/1/">
<link crossorigin="anonymous" href="/assets/css/stylesheet.45e028aa8ce0961349adf411b013ee39406be2c0bc80d4ea3fc04555f7f4611a.css" integrity="sha256-ReAoqozglhNJrfQRsBPuOUBr4sC8gNTqP8BFVff0YRo=" rel="preload stylesheet" as="style">
<link rel="icon" href="https://mihitmittal.com/favicon.ico">
<link rel="icon" type="image/png" sizes="16x16" href="https://mihitmittal.com/favicon-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="https://mihitmittal.com/favicon-32x32.png">
<link rel="apple-touch-icon" href="https://mihitmittal.com/apple-touch-icon.png">
<link rel="mask-icon" href="https://mihitmittal.com/safari-pinned-tab.svg">
<meta name="theme-color" content="#2e2e33">
<meta name="msapplication-TileColor" content="#2e2e33">
<link rel="alternate" hreflang="en" href="https://mihitmittal.com/posts/1/">
<noscript>
<style>
#theme-toggle,
.top-link {
display: none;
}
</style>
<style>
@media (prefers-color-scheme: dark) {
:root {
--theme: rgb(29, 30, 32);
--entry: rgb(46, 46, 51);
--primary: rgb(218, 218, 219);
--secondary: rgb(155, 156, 157);
--tertiary: rgb(65, 66, 68);
--content: rgb(196, 196, 197);
--code-block-bg: rgb(46, 46, 51);
--code-bg: rgb(55, 56, 62);
--border: rgb(51, 51, 51);
}
.list {
background: var(--theme);
}
.list:not(.dark)::-webkit-scrollbar-track {
background: 0 0;
}
.list:not(.dark)::-webkit-scrollbar-thumb {
border-color: var(--theme);
}
}
</style>
</noscript><meta property="og:url" content="https://mihitmittal.com/posts/1/">
<meta property="og:site_name" content="Mihit Mittal">
<meta property="og:title" content="Upgrading a motherboards BIOS, without flashback or a CPU">
<meta property="og:description" content="After running a homelab on an old laptop for many years, I finally decided to bite the bullet and finally part out a PC to use as my home server, to run my websites, cloud storage, home automation using Home Assistant, and local DNS resolution on my network. The specs of the final build were as follows:
AMD Ryzen 4600G 4x8 GB DDR4 3200 by Crucial Gigabyte Gaming X B450 Motherboard 1TB SSD storage 12TB HDD storage Cooler Master MWE 450 Bronze V2 450W PSU Despite the current silicon shortages, acquiring the parts was surprisingly quick and painless. After collecting all the components that were ordered, I begun the simple process of assembling it all together only to discover that I got no sign of life upon pressing the power button. Now, it was my first time building a PC but it wasnt my first time taking on a project like this, which made it all the more confusing as to why there was a problem. I was reading the motherboards manual and scratching my head when suddenly it hit me. The motherboard was manufactured in October 2020, which meant that the BIOS revision on the motherboard was much older than what was required in order for it to support my CPU. This was quite a big problem. I had no older CPU which I could use to update the motherboard, and without this, the build was completely halted. I tried looking around local shops in order to find anyone who would update the BIOS but could not find anyone willing to take the project on, leaving my only option being taking the 45 minute drive to the closest service center in order to get it updated.">
<meta property="og:locale" content="en-us">
<meta property="og:type" content="article">
<meta property="article:section" content="posts">
<meta property="article:published_time" content="2022-12-27T00:00:00+05:30">
<meta property="article:modified_time" content="2022-12-27T00:00:00+05:30">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Upgrading a motherboards BIOS, without flashback or a CPU">
<meta name="twitter:description" content="After running a homelab on an old laptop for many years, I finally decided to bite the bullet and finally part out a PC to use as my home server, to run my websites, cloud storage, home automation using Home Assistant, and local DNS resolution on my network. The specs of the final build were as follows:
AMD Ryzen 4600G
4x8 GB DDR4 3200 by Crucial
Gigabyte Gaming X B450 Motherboard
1TB SSD storage
12TB HDD storage
Cooler Master MWE 450 Bronze V2 450W PSU
Despite the current silicon shortages, acquiring the parts was surprisingly quick and painless. After collecting all the components that were ordered, I begun the simple process of assembling it all together only to discover that I got no sign of life upon pressing the power button. Now, it was my first time building a PC but it wasn&rsquo;t my first time taking on a project like this, which made it all the more confusing as to why there was a problem. I was reading the motherboard&rsquo;s manual and scratching my head when suddenly it hit me. The motherboard was manufactured in October 2020, which meant that the BIOS revision on the motherboard was much older than what was required in order for it to support my CPU. This was quite a big problem. I had no older CPU which I could use to update the motherboard, and without this, the build was completely halted. I tried looking around local shops in order to find anyone who would update the BIOS but could not find anyone willing to take the project on, leaving my only option being taking the 45 minute drive to the closest service center in order to get it updated.">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1 ,
"name": "Posts",
"item": "https://mihitmittal.com/posts/"
},
{
"@type": "ListItem",
"position": 2 ,
"name": "Upgrading a motherboards BIOS, without flashback or a CPU",
"item": "https://mihitmittal.com/posts/1/"
}
]
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "Upgrading a motherboards BIOS, without flashback or a CPU",
"name": "Upgrading a motherboards BIOS, without flashback or a CPU",
"description": "After running a homelab on an old laptop for many years, I finally decided to bite the bullet and finally part out a PC to use as my home server, to run my websites, cloud storage, home automation using Home Assistant, and local DNS resolution on my network. The specs of the final build were as follows:\nAMD Ryzen 4600G 4x8 GB DDR4 3200 by Crucial Gigabyte Gaming X B450 Motherboard 1TB SSD storage 12TB HDD storage Cooler Master MWE 450 Bronze V2 450W PSU Despite the current silicon shortages, acquiring the parts was surprisingly quick and painless. After collecting all the components that were ordered, I begun the simple process of assembling it all together only to discover that I got no sign of life upon pressing the power button. Now, it was my first time building a PC but it wasn\u0026rsquo;t my first time taking on a project like this, which made it all the more confusing as to why there was a problem. I was reading the motherboard\u0026rsquo;s manual and scratching my head when suddenly it hit me. The motherboard was manufactured in October 2020, which meant that the BIOS revision on the motherboard was much older than what was required in order for it to support my CPU. This was quite a big problem. I had no older CPU which I could use to update the motherboard, and without this, the build was completely halted. I tried looking around local shops in order to find anyone who would update the BIOS but could not find anyone willing to take the project on, leaving my only option being taking the 45 minute drive to the closest service center in order to get it updated.\n",
"keywords": [
],
"articleBody": "After running a homelab on an old laptop for many years, I finally decided to bite the bullet and finally part out a PC to use as my home server, to run my websites, cloud storage, home automation using Home Assistant, and local DNS resolution on my network. The specs of the final build were as follows:\nAMD Ryzen 4600G 4x8 GB DDR4 3200 by Crucial Gigabyte Gaming X B450 Motherboard 1TB SSD storage 12TB HDD storage Cooler Master MWE 450 Bronze V2 450W PSU Despite the current silicon shortages, acquiring the parts was surprisingly quick and painless. After collecting all the components that were ordered, I begun the simple process of assembling it all together only to discover that I got no sign of life upon pressing the power button. Now, it was my first time building a PC but it wasnt my first time taking on a project like this, which made it all the more confusing as to why there was a problem. I was reading the motherboards manual and scratching my head when suddenly it hit me. The motherboard was manufactured in October 2020, which meant that the BIOS revision on the motherboard was much older than what was required in order for it to support my CPU. This was quite a big problem. I had no older CPU which I could use to update the motherboard, and without this, the build was completely halted. I tried looking around local shops in order to find anyone who would update the BIOS but could not find anyone willing to take the project on, leaving my only option being taking the 45 minute drive to the closest service center in order to get it updated.\nSince this project had to be halted while I could figure out what I could do about this situation, I continued undertaking smaller projects in order to keep busy. While looking around my drawer for DuPont leads for something else, I found my saving grace, a CH341A programmer and an EEPROM clip. I had completely forgotten that I had these in my possession, and immediately realized that they are what going to save this project.\nI removed the CPU from its socket in order to protect it from reverse voltage from the programmer and hooked the clip directly onto the motherboards EEPROM chip\nUpon running flashrom, surprisingly the chip was detected on the first try, and I was able to read the data off the EEPROM without any hiccups\n~ flashrom -p ch341a_spi -r output1.bin flashrom v1.2-552-gea0ae15 on Linux 6.0.12.rog.fc37 (x86_64) flashrom is free software, get the source code at https://flashrom.org Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns). Found Winbond flash chip \"W25Q128.W\" (16384 kB, SPI) on ch341a_spi. Reading flash... I then repeated the same command again, outputting to output2.bin. After comparing the MD5sum of both output1.bin and output2.bin and checking that they are the same file, hence ensuring that the connection on the chip is stable, I then sent the command to write the new firmware file onto the EEPROM\n~ flashrom -p ch341a_spi -w B450GX.63e After waiting for the flash to finish, I was finally greeted with the gigabyte BIOS menu, finally marking this project as finished\n",
"wordCount" : "538",
"inLanguage": "en",
"datePublished": "2022-12-27T00:00:00+05:30",
"dateModified": "2022-12-27T00:00:00+05:30",
"author":{
"@type": "Person",
"name": "Me"
},
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://mihitmittal.com/posts/1/"
},
"publisher": {
"@type": "Organization",
"name": "Mihit Mittal",
"logo": {
"@type": "ImageObject",
"url": "https://mihitmittal.com/favicon.ico"
}
}
}
</script>
</head>
<body class="" id="top">
<script>
if (localStorage.getItem("pref-theme") === "dark") {
document.body.classList.add('dark');
} else if (localStorage.getItem("pref-theme") === "light") {
document.body.classList.remove('dark')
} else if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
document.body.classList.add('dark');
}
</script>
<header class="header">
<nav class="nav">
<div class="logo">
<a href="https://mihitmittal.com/" accesskey="h" title="Mihit Mittal (Alt + H)">Mihit Mittal</a>
<div class="logo-switches">
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
</svg>
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<circle cx="12" cy="12" r="5"></circle>
<line x1="12" y1="1" x2="12" y2="3"></line>
<line x1="12" y1="21" x2="12" y2="23"></line>
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
<line x1="1" y1="12" x2="3" y2="12"></line>
<line x1="21" y1="12" x2="23" y2="12"></line>
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
</svg>
</button>
</div>
</div>
<ul id="menu">
<li>
<a href="https://mihitmittal.com/posts" title="Posts">
<span>Posts</span>
</a>
</li>
</ul>
</nav>
</header>
<main class="main">
<article class="post-single">
<header class="post-header">
<div class="breadcrumbs"><a href="https://mihitmittal.com/">Home</a>&nbsp;»&nbsp;<a href="https://mihitmittal.com/posts/">Posts</a></div>
<h1 class="post-title entry-hint-parent">
Upgrading a motherboards BIOS, without flashback or a CPU
</h1>
<div class="post-meta"><span title='2022-12-27 00:00:00 +0530 +0530'>December 27, 2022</span>&nbsp;·&nbsp;3 min&nbsp;·&nbsp;538 words&nbsp;·&nbsp;Me
</div>
</header>
<div class="post-content"><p>After running a homelab on an old laptop for many years, I finally decided to bite the bullet and finally part out a PC to use as my home server, to run my websites, cloud storage, home automation using Home Assistant, and local DNS resolution on my network. The specs of the final build were as follows:</p>
<ul>
<li>AMD Ryzen 4600G</li>
<li>4x8 GB DDR4 3200 by Crucial</li>
<li>Gigabyte Gaming X B450 Motherboard</li>
<li>1TB SSD storage</li>
<li>12TB HDD storage</li>
<li>Cooler Master MWE 450 Bronze V2 450W PSU</li>
</ul>
<p>Despite the current silicon shortages, acquiring the parts was surprisingly quick and painless. After collecting all the components that were ordered, I begun the simple process of assembling it all together only to discover that I got no sign of life upon pressing the power button. Now, it was my first time building a PC but it wasn&rsquo;t my first time taking on a project like this, which made it all the more confusing as to why there was a problem. I was reading the motherboard&rsquo;s manual and scratching my head when suddenly it hit me. The motherboard was manufactured in October 2020, which meant that the BIOS revision on the motherboard was much older than what was required in order for it to support my CPU. This was quite a big problem. I had no older CPU which I could use to update the motherboard, and without this, the build was completely halted. I tried looking around local shops in order to find anyone who would update the BIOS but could not find anyone willing to take the project on, leaving my only option being taking the 45 minute drive to the closest service center in order to get it updated.</p>
<p>Since this project had to be halted while I could figure out what I could do about this situation, I continued undertaking smaller projects in order to keep busy. While looking around my drawer for DuPont leads for something else, I found my saving grace, a CH341A programmer and an EEPROM clip. I had completely forgotten that I had these in my possession, and immediately realized that they are what going to save this project.</p>
<p>I removed the CPU from it&rsquo;s socket in order to protect it from reverse voltage from the programmer and hooked the clip directly onto the motherboard&rsquo;s EEPROM chip</p>
<p><img alt="Image" loading="lazy" src="/1/mobo.png"></p>
<p>Upon running flashrom, surprisingly the chip was detected on the first try, and I was able to read the data off the EEPROM without any hiccups</p>
<pre><code>~ flashrom -p ch341a_spi -r output1.bin
flashrom v1.2-552-gea0ae15 on Linux 6.0.12.rog.fc37 (x86_64)
flashrom is free software, get the source code at https://flashrom.org
Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
Found Winbond flash chip &quot;W25Q128.W&quot; (16384 kB, SPI) on ch341a_spi.
Reading flash...
</code></pre>
<p>I then repeated the same command again, outputting to output2.bin. After comparing the MD5sum of both output1.bin and output2.bin and checking that they are the same file, hence ensuring that the connection on the chip is stable, I then sent the command to write the new firmware file onto the EEPROM</p>
<pre><code>~ flashrom -p ch341a_spi -w B450GX.63e
</code></pre>
<p>After waiting for the flash to finish, I was finally greeted with the gigabyte BIOS menu, finally marking this project as finished</p>
</div>
<footer class="post-footer">
<ul class="post-tags">
</ul>
</footer>
</article>
</main>
<footer class="footer">
<span>&copy; 2025 <a href="https://mihitmittal.com/">Mihit Mittal</a></span> ·
<span>
Powered by
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
<a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
</span>
</footer>
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
<path d="M12 6H0l6-6z" />
</svg>
</a>
<script>
let menu = document.getElementById('menu')
if (menu) {
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
menu.onscroll = function () {
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
}
}
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener("click", function (e) {
e.preventDefault();
var id = this.getAttribute("href").substr(1);
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
behavior: "smooth"
});
} else {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
}
if (id === "top") {
history.replaceState(null, null, " ");
} else {
history.pushState(null, null, `#${id}`);
}
});
});
</script>
<script>
var mybutton = document.getElementById("top-link");
window.onscroll = function () {
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
mybutton.style.visibility = "visible";
mybutton.style.opacity = "1";
} else {
mybutton.style.visibility = "hidden";
mybutton.style.opacity = "0";
}
};
</script>
<script>
document.getElementById("theme-toggle").addEventListener("click", () => {
if (document.body.className.includes("dark")) {
document.body.classList.remove('dark');
localStorage.setItem("pref-theme", 'light');
} else {
document.body.classList.add('dark');
localStorage.setItem("pref-theme", 'dark');
}
})
</script>
</body>
</html>

View File

@ -1,298 +0,0 @@
<!DOCTYPE html>
<html lang="en" dir="auto">
<head><meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="robots" content="index, follow">
<title>Automating lights based on outdoor luminosity and day cycles | Mihit Mittal</title>
<meta name="keywords" content="">
<meta name="description" content="My house has outdoor lights on the front façade as part of the overall design of the house. These lights were currently turned on manually at a regular time everyday, but someone had to go to turn them off for the night. This proved to be very inconvenient, and resulted in my dad asking me to create some sort of solution to automate the task. I started mapping out the problem in order to understand it better and to break it down into components in order to understand how this would be solved, and concluded the following things:">
<meta name="author" content="Me">
<link rel="canonical" href="https://mihitmittal.com/posts/2/">
<link crossorigin="anonymous" href="/assets/css/stylesheet.45e028aa8ce0961349adf411b013ee39406be2c0bc80d4ea3fc04555f7f4611a.css" integrity="sha256-ReAoqozglhNJrfQRsBPuOUBr4sC8gNTqP8BFVff0YRo=" rel="preload stylesheet" as="style">
<link rel="icon" href="https://mihitmittal.com/favicon.ico">
<link rel="icon" type="image/png" sizes="16x16" href="https://mihitmittal.com/favicon-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="https://mihitmittal.com/favicon-32x32.png">
<link rel="apple-touch-icon" href="https://mihitmittal.com/apple-touch-icon.png">
<link rel="mask-icon" href="https://mihitmittal.com/safari-pinned-tab.svg">
<meta name="theme-color" content="#2e2e33">
<meta name="msapplication-TileColor" content="#2e2e33">
<link rel="alternate" hreflang="en" href="https://mihitmittal.com/posts/2/">
<noscript>
<style>
#theme-toggle,
.top-link {
display: none;
}
</style>
<style>
@media (prefers-color-scheme: dark) {
:root {
--theme: rgb(29, 30, 32);
--entry: rgb(46, 46, 51);
--primary: rgb(218, 218, 219);
--secondary: rgb(155, 156, 157);
--tertiary: rgb(65, 66, 68);
--content: rgb(196, 196, 197);
--code-block-bg: rgb(46, 46, 51);
--code-bg: rgb(55, 56, 62);
--border: rgb(51, 51, 51);
}
.list {
background: var(--theme);
}
.list:not(.dark)::-webkit-scrollbar-track {
background: 0 0;
}
.list:not(.dark)::-webkit-scrollbar-thumb {
border-color: var(--theme);
}
}
</style>
</noscript><meta property="og:url" content="https://mihitmittal.com/posts/2/">
<meta property="og:site_name" content="Mihit Mittal">
<meta property="og:title" content="Automating lights based on outdoor luminosity and day cycles">
<meta property="og:description" content="My house has outdoor lights on the front façade as part of the overall design of the house. These lights were currently turned on manually at a regular time everyday, but someone had to go to turn them off for the night. This proved to be very inconvenient, and resulted in my dad asking me to create some sort of solution to automate the task. I started mapping out the problem in order to understand it better and to break it down into components in order to understand how this would be solved, and concluded the following things:">
<meta property="og:locale" content="en-us">
<meta property="og:type" content="article">
<meta property="article:section" content="posts">
<meta property="article:published_time" content="2023-02-02T00:00:00+05:30">
<meta property="article:modified_time" content="2023-02-02T00:00:00+05:30">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Automating lights based on outdoor luminosity and day cycles">
<meta name="twitter:description" content="My house has outdoor lights on the front façade as part of the overall design of the house. These lights were currently turned on manually at a regular time everyday, but someone had to go to turn them off for the night. This proved to be very inconvenient, and resulted in my dad asking me to create some sort of solution to automate the task. I started mapping out the problem in order to understand it better and to break it down into components in order to understand how this would be solved, and concluded the following things:">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1 ,
"name": "Posts",
"item": "https://mihitmittal.com/posts/"
},
{
"@type": "ListItem",
"position": 2 ,
"name": "Automating lights based on outdoor luminosity and day cycles",
"item": "https://mihitmittal.com/posts/2/"
}
]
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "Automating lights based on outdoor luminosity and day cycles",
"name": "Automating lights based on outdoor luminosity and day cycles",
"description": "My house has outdoor lights on the front façade as part of the overall design of the house. These lights were currently turned on manually at a regular time everyday, but someone had to go to turn them off for the night. This proved to be very inconvenient, and resulted in my dad asking me to create some sort of solution to automate the task. I started mapping out the problem in order to understand it better and to break it down into components in order to understand how this would be solved, and concluded the following things:\n",
"keywords": [
],
"articleBody": "My house has outdoor lights on the front façade as part of the overall design of the house. These lights were currently turned on manually at a regular time everyday, but someone had to go to turn them off for the night. This proved to be very inconvenient, and resulted in my dad asking me to create some sort of solution to automate the task. I started mapping out the problem in order to understand it better and to break it down into components in order to understand how this would be solved, and concluded the following things:\nThere are 5 different lights in total, one being the lights for the parking and others for the facade. The parking lights need to be turned on when it gets dark during the day, for example during a rain storm or in the early evening Near sunset, all lights need to be turned on. At 11PM, only the lights in the driveway need to be turned on. Near sunrise, the driveway lights need to be turned off With this information, I decided upon using a system that would use a light sensor in order to check what the current light status is outdoors and use that information along with the sunset and sunrise time of the day to determine when the lights are turned on and turned off.\nI began creating a light sensor using a NodeMCU ESP8266 as the microcontroller of choice. It is a low power device with plenty of GPIO pins as well as having built in Wi-Fi, which makes it very easy to use along with the rest of the control infrastructure. I added a BH1750 which is a digital light sensor which communicates via serial peripheral interface to the microcontroller and provides it the ability to sense the light outside. This is a foundation on which is project is built as the time when the lights are triggered can vary based on the seasons and setting a fixed time for triggering would be unlike how a human would determine their state.\nI used ESPHome to add functionality to the device. I did consider writing software for this myself that would communicate over MQTT but ultimately decided against it as ESPHome provides their own API for communication to HomeAssistant, and it would be one less component that would need to be maintained.\nI then designed and 3d printed a case for the microcontroller using my Ender 5 Pro and Fusion360, and then used prusaslicer to print it out using PLA plastic. The case is built to snap together on both sides but I added tape as an additional layer of security.\nI then began to work on the hardware which would control the power to the lights. I had 5 individual lights that needed to be powered on and off, and decided to use a 6 relay smart switch in order to control them. I found a company based in Delhi called Tinxy that was manufacturing smart relay boards themselves along with writing the software for them, and decided that they would be perfect for the task at hand. I overwrote the factory software on the ESP8266 microcontroller on the smart relay board with ESPHome by soldering on header pins to allow a serial communication bridge and began experimentation.\nAccording to the documentation provided by Tinxy, the board uses serial communication to communicate to another microcontroller onboard as the ESP8266 does not have enough GPIO pins in order to accommodate 6 relays, status LEDs, reset buttons and more. The communication to the microcontroller was a simple string which followed the following pattern.\n#1100# ;Turn Relay 1 on #1000# ;Turn Relay 1 off #2100# ;Turn Relay 2 on #2000# ;Turn Relay 2 off Using this, I created dummy switches in ESPHome which send these commands when the switch is turned on or off over the GPIO 1 and 3 pins which are for hardware serial TX on the ESP8266.\nAfter adding the ability to trigger the hardware using HomeAssistant locally, I connected the relay board to mains voltage in order to test out if everything works as intended.\nWith the hardware portion out of the way, I was finally able to begin work on the software component of this project. I used HomeAssistant for handling the automation of the project as it provides a solid backbone to build software on and integrates very well with all of the components of the project.\nI began by mapping out what conditions need to be satisfied in order to determine what the state of the lights would be. I decided upon using the data from the light sensor, if the sun has set or risen, the current status of the switches as well as a time condition in order to make sure that the lights still trigger in case one or more of the other conditions fail, for example in case of the light sensor malfunctioning or not having internet access which would disallow polling the status of the sun.\nI tuned and tweaked the value for the light intensity using security camera footage until I was pleased with the results and after finishing the software component this project has finally come to a wrap.\n",
"wordCount" : "873",
"inLanguage": "en",
"datePublished": "2023-02-02T00:00:00+05:30",
"dateModified": "2023-02-02T00:00:00+05:30",
"author":{
"@type": "Person",
"name": "Me"
},
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://mihitmittal.com/posts/2/"
},
"publisher": {
"@type": "Organization",
"name": "Mihit Mittal",
"logo": {
"@type": "ImageObject",
"url": "https://mihitmittal.com/favicon.ico"
}
}
}
</script>
</head>
<body class="" id="top">
<script>
if (localStorage.getItem("pref-theme") === "dark") {
document.body.classList.add('dark');
} else if (localStorage.getItem("pref-theme") === "light") {
document.body.classList.remove('dark')
} else if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
document.body.classList.add('dark');
}
</script>
<header class="header">
<nav class="nav">
<div class="logo">
<a href="https://mihitmittal.com/" accesskey="h" title="Mihit Mittal (Alt + H)">Mihit Mittal</a>
<div class="logo-switches">
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
</svg>
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<circle cx="12" cy="12" r="5"></circle>
<line x1="12" y1="1" x2="12" y2="3"></line>
<line x1="12" y1="21" x2="12" y2="23"></line>
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
<line x1="1" y1="12" x2="3" y2="12"></line>
<line x1="21" y1="12" x2="23" y2="12"></line>
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
</svg>
</button>
</div>
</div>
<ul id="menu">
<li>
<a href="https://mihitmittal.com/posts" title="Posts">
<span>Posts</span>
</a>
</li>
</ul>
</nav>
</header>
<main class="main">
<article class="post-single">
<header class="post-header">
<div class="breadcrumbs"><a href="https://mihitmittal.com/">Home</a>&nbsp;»&nbsp;<a href="https://mihitmittal.com/posts/">Posts</a></div>
<h1 class="post-title entry-hint-parent">
Automating lights based on outdoor luminosity and day cycles
</h1>
<div class="post-meta"><span title='2023-02-02 00:00:00 +0530 +0530'>February 2, 2023</span>&nbsp;·&nbsp;5 min&nbsp;·&nbsp;873 words&nbsp;·&nbsp;Me
</div>
</header>
<div class="post-content"><p>My house has outdoor lights on the front façade as part of the overall design of the house. These lights were currently turned on manually at a regular time everyday, but someone had to go to turn them off for the night. This proved to be very inconvenient, and resulted in my dad asking me to create some sort of solution to automate the task. I started mapping out the problem in order to understand it better and to break it down into components in order to understand how this would be solved, and concluded the following things:</p>
<ul>
<li>There are 5 different lights in total, one being the lights for the parking and others for the facade.</li>
<li>The parking lights need to be turned on when it gets dark during the day, for example during a rain storm or in the early evening</li>
<li>Near sunset, all lights need to be turned on.</li>
<li>At 11PM, only the lights in the driveway need to be turned on.</li>
<li>Near sunrise, the driveway lights need to be turned off</li>
</ul>
<p>With this information, I decided upon using a system that would use a light sensor in order to check what the current light status is outdoors and use that information along with the sunset and sunrise time of the day to determine when the lights are turned on and turned off.</p>
<p>I began creating a light sensor using a NodeMCU ESP8266 as the microcontroller of choice. It is a low power device with plenty of GPIO pins as well as having built in Wi-Fi, which makes it very easy to use along with the rest of the control infrastructure. I added a BH1750 which is a digital light sensor which communicates via serial peripheral interface to the microcontroller and provides it the ability to sense the light outside. This is a foundation on which is project is built as the time when the lights are triggered can vary based on the seasons and setting a fixed time for triggering would be unlike how a human would determine their state.</p>
<p>I used ESPHome to add functionality to the device. I did consider writing software for this myself that would communicate over MQTT but ultimately decided against it as ESPHome provides their own API for communication to HomeAssistant, and it would be one less component that would need to be maintained.</p>
<p>I then designed and 3d printed a case for the microcontroller using my Ender 5 Pro and Fusion360, and then used prusaslicer to print it out using PLA plastic. The case is built to snap together on both sides but I added tape as an additional layer of security.</p>
<p><img alt="Image" loading="lazy" src="/2/sensor.jpg"></p>
<p>I then began to work on the hardware which would control the power to the lights. I had 5 individual lights that needed to be powered on and off, and decided to use a 6 relay smart switch in order to control them. I found a company based in Delhi called Tinxy that was manufacturing smart relay boards themselves along with writing the software for them, and decided that they would be perfect for the task at hand. I overwrote the factory software on the ESP8266 microcontroller on the smart relay board with ESPHome by soldering on header pins to allow a serial communication bridge and began experimentation.</p>
<p><img alt="Image" loading="lazy" src="/2/flashing.jpg"></p>
<p>According to the documentation provided by Tinxy, the board uses serial communication to communicate to another microcontroller onboard as the ESP8266 does not have enough GPIO pins in order to accommodate 6 relays, status LEDs, reset buttons and more. The communication to the microcontroller was a simple string which followed the following pattern.</p>
<pre><code>#1100# ;Turn Relay 1 on
#1000# ;Turn Relay 1 off
#2100# ;Turn Relay 2 on
#2000# ;Turn Relay 2 off
</code></pre>
<p>Using this, I created dummy switches in ESPHome which send these commands when the switch is turned on or off over the GPIO 1 and 3 pins which are for hardware serial TX on the ESP8266.</p>
<p><img alt="Image" loading="lazy" src="/2/hassio_dashboard.png"></p>
<p>After adding the ability to trigger the hardware using HomeAssistant locally, I connected the relay board to mains voltage in order to test out if everything works as intended.</p>
<p><img alt="Image" loading="lazy" src="/2/testing.jpg"></p>
<p>With the hardware portion out of the way, I was finally able to begin work on the software component of this project. I used HomeAssistant for handling the automation of the project as it provides a solid backbone to build software on and integrates very well with all of the components of the project.</p>
<p>I began by mapping out what conditions need to be satisfied in order to determine what the state of the lights would be. I decided upon using the data from the light sensor, if the sun has set or risen, the current status of the switches as well as a time condition in order to make sure that the lights still trigger in case one or more of the other conditions fail, for example in case of the light sensor malfunctioning or not having internet access which would disallow polling the status of the sun.</p>
<p><img alt="Image" loading="lazy" src="/2/hassio_automation.png"></p>
<p>I tuned and tweaked the value for the light intensity using security camera footage until I was pleased with the results and after finishing the software component this project has finally come to a wrap.</p>
</div>
<footer class="post-footer">
<ul class="post-tags">
</ul>
</footer>
</article>
</main>
<footer class="footer">
<span>&copy; 2025 <a href="https://mihitmittal.com/">Mihit Mittal</a></span> ·
<span>
Powered by
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
<a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
</span>
</footer>
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
<path d="M12 6H0l6-6z" />
</svg>
</a>
<script>
let menu = document.getElementById('menu')
if (menu) {
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
menu.onscroll = function () {
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
}
}
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener("click", function (e) {
e.preventDefault();
var id = this.getAttribute("href").substr(1);
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
behavior: "smooth"
});
} else {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
}
if (id === "top") {
history.replaceState(null, null, " ");
} else {
history.pushState(null, null, `#${id}`);
}
});
});
</script>
<script>
var mybutton = document.getElementById("top-link");
window.onscroll = function () {
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
mybutton.style.visibility = "visible";
mybutton.style.opacity = "1";
} else {
mybutton.style.visibility = "hidden";
mybutton.style.opacity = "0";
}
};
</script>
<script>
document.getElementById("theme-toggle").addEventListener("click", () => {
if (document.body.className.includes("dark")) {
document.body.classList.remove('dark');
localStorage.setItem("pref-theme", 'light');
} else {
document.body.classList.add('dark');
localStorage.setItem("pref-theme", 'dark');
}
})
</script>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@ -1,253 +0,0 @@
<!DOCTYPE html>
<html lang="en" dir="auto">
<head><meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="robots" content="index, follow">
<title>Posts | Mihit Mittal</title>
<meta name="keywords" content="">
<meta name="description" content="Posts - Mihit Mittal">
<meta name="author" content="Me">
<link rel="canonical" href="https://mihitmittal.com/posts/">
<link crossorigin="anonymous" href="/assets/css/stylesheet.45e028aa8ce0961349adf411b013ee39406be2c0bc80d4ea3fc04555f7f4611a.css" integrity="sha256-ReAoqozglhNJrfQRsBPuOUBr4sC8gNTqP8BFVff0YRo=" rel="preload stylesheet" as="style">
<link rel="icon" href="https://mihitmittal.com/favicon.ico">
<link rel="icon" type="image/png" sizes="16x16" href="https://mihitmittal.com/favicon-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="https://mihitmittal.com/favicon-32x32.png">
<link rel="apple-touch-icon" href="https://mihitmittal.com/apple-touch-icon.png">
<link rel="mask-icon" href="https://mihitmittal.com/safari-pinned-tab.svg">
<meta name="theme-color" content="#2e2e33">
<meta name="msapplication-TileColor" content="#2e2e33">
<link rel="alternate" type="application/rss+xml" href="https://mihitmittal.com/posts/index.xml">
<link rel="alternate" hreflang="en" href="https://mihitmittal.com/posts/">
<noscript>
<style>
#theme-toggle,
.top-link {
display: none;
}
</style>
<style>
@media (prefers-color-scheme: dark) {
:root {
--theme: rgb(29, 30, 32);
--entry: rgb(46, 46, 51);
--primary: rgb(218, 218, 219);
--secondary: rgb(155, 156, 157);
--tertiary: rgb(65, 66, 68);
--content: rgb(196, 196, 197);
--code-block-bg: rgb(46, 46, 51);
--code-bg: rgb(55, 56, 62);
--border: rgb(51, 51, 51);
}
.list {
background: var(--theme);
}
.list:not(.dark)::-webkit-scrollbar-track {
background: 0 0;
}
.list:not(.dark)::-webkit-scrollbar-thumb {
border-color: var(--theme);
}
}
</style>
</noscript><meta property="og:url" content="https://mihitmittal.com/posts/">
<meta property="og:site_name" content="Mihit Mittal">
<meta property="og:title" content="Posts">
<meta property="og:description" content="Mihit&#39;s blog">
<meta property="og:locale" content="en-us">
<meta property="og:type" content="website">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Posts">
<meta name="twitter:description" content="Mihit&#39;s blog">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1 ,
"name": "Posts",
"item": "https://mihitmittal.com/posts/"
}
]
}
</script>
</head>
<body class="list" id="top">
<script>
if (localStorage.getItem("pref-theme") === "dark") {
document.body.classList.add('dark');
} else if (localStorage.getItem("pref-theme") === "light") {
document.body.classList.remove('dark')
} else if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
document.body.classList.add('dark');
}
</script>
<header class="header">
<nav class="nav">
<div class="logo">
<a href="https://mihitmittal.com/" accesskey="h" title="Mihit Mittal (Alt + H)">Mihit Mittal</a>
<div class="logo-switches">
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
</svg>
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<circle cx="12" cy="12" r="5"></circle>
<line x1="12" y1="1" x2="12" y2="3"></line>
<line x1="12" y1="21" x2="12" y2="23"></line>
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
<line x1="1" y1="12" x2="3" y2="12"></line>
<line x1="21" y1="12" x2="23" y2="12"></line>
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
</svg>
</button>
</div>
</div>
<ul id="menu">
<li>
<a href="https://mihitmittal.com/posts" title="Posts">
<span class="active">Posts</span>
</a>
</li>
</ul>
</nav>
</header>
<main class="main">
<header class="page-header"><div class="breadcrumbs"><a href="https://mihitmittal.com/">Home</a></div>
<h1>
Posts
</h1>
</header>
<article class="post-entry">
<header class="entry-header">
<h2 class="entry-hint-parent">Creating a multi access-point home network from scratch
</h2>
</header>
<div class="entry-content">
<p>My home was undergoing reconstruction during 2022, and with a fresh start you get the opportunity to fix problems that plagued you before. The old building was constructed in the 1980s and with the brick and cement walls in India it is impossible to get a good Wi-Fi connection or add cabling to add additional access points. This time, I made sure to have at least one CAT6 cable going to each room, in order to be able to fix any dead spots by simply adding in access points in problem spots, and turning a bundle of wire into a home network system that handles terabytes of data each month has been a learning experience.
...</p>
</div>
<footer class="entry-footer"><span title='2023-04-05 00:00:00 +0530 +0530'>April 5, 2023</span>&nbsp;·&nbsp;5 min&nbsp;·&nbsp;966 words&nbsp;·&nbsp;Me</footer>
<a class="entry-link" aria-label="post link to Creating a multi access-point home network from scratch" href="https://mihitmittal.com/posts/3/"></a>
</article>
<article class="post-entry">
<header class="entry-header">
<h2 class="entry-hint-parent">Automating lights based on outdoor luminosity and day cycles
</h2>
</header>
<div class="entry-content">
<p>My house has outdoor lights on the front façade as part of the overall design of the house. These lights were currently turned on manually at a regular time everyday, but someone had to go to turn them off for the night. This proved to be very inconvenient, and resulted in my dad asking me to create some sort of solution to automate the task. I started mapping out the problem in order to understand it better and to break it down into components in order to understand how this would be solved, and concluded the following things:
...</p>
</div>
<footer class="entry-footer"><span title='2023-02-02 00:00:00 +0530 +0530'>February 2, 2023</span>&nbsp;·&nbsp;5 min&nbsp;·&nbsp;873 words&nbsp;·&nbsp;Me</footer>
<a class="entry-link" aria-label="post link to Automating lights based on outdoor luminosity and day cycles" href="https://mihitmittal.com/posts/2/"></a>
</article>
<article class="post-entry">
<header class="entry-header">
<h2 class="entry-hint-parent">Upgrading a motherboards BIOS, without flashback or a CPU
</h2>
</header>
<div class="entry-content">
<p>After running a homelab on an old laptop for many years, I finally decided to bite the bullet and finally part out a PC to use as my home server, to run my websites, cloud storage, home automation using Home Assistant, and local DNS resolution on my network. The specs of the final build were as follows:
AMD Ryzen 4600G 4x8 GB DDR4 3200 by Crucial Gigabyte Gaming X B450 Motherboard 1TB SSD storage 12TB HDD storage Cooler Master MWE 450 Bronze V2 450W PSU Despite the current silicon shortages, acquiring the parts was surprisingly quick and painless. After collecting all the components that were ordered, I begun the simple process of assembling it all together only to discover that I got no sign of life upon pressing the power button. Now, it was my first time building a PC but it wasnt my first time taking on a project like this, which made it all the more confusing as to why there was a problem. I was reading the motherboards manual and scratching my head when suddenly it hit me. The motherboard was manufactured in October 2020, which meant that the BIOS revision on the motherboard was much older than what was required in order for it to support my CPU. This was quite a big problem. I had no older CPU which I could use to update the motherboard, and without this, the build was completely halted. I tried looking around local shops in order to find anyone who would update the BIOS but could not find anyone willing to take the project on, leaving my only option being taking the 45 minute drive to the closest service center in order to get it updated.
...</p>
</div>
<footer class="entry-footer"><span title='2022-12-27 00:00:00 +0530 +0530'>December 27, 2022</span>&nbsp;·&nbsp;3 min&nbsp;·&nbsp;538 words&nbsp;·&nbsp;Me</footer>
<a class="entry-link" aria-label="post link to Upgrading a motherboards BIOS, without flashback or a CPU" href="https://mihitmittal.com/posts/1/"></a>
</article>
</main>
<footer class="footer">
<span>&copy; 2025 <a href="https://mihitmittal.com/">Mihit Mittal</a></span> ·
<span>
Powered by
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
<a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
</span>
</footer>
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
<path d="M12 6H0l6-6z" />
</svg>
</a>
<script>
let menu = document.getElementById('menu')
if (menu) {
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
menu.onscroll = function () {
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
}
}
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener("click", function (e) {
e.preventDefault();
var id = this.getAttribute("href").substr(1);
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
behavior: "smooth"
});
} else {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
}
if (id === "top") {
history.replaceState(null, null, " ");
} else {
history.pushState(null, null, `#${id}`);
}
});
});
</script>
<script>
var mybutton = document.getElementById("top-link");
window.onscroll = function () {
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
mybutton.style.visibility = "visible";
mybutton.style.opacity = "1";
} else {
mybutton.style.visibility = "hidden";
mybutton.style.opacity = "0";
}
};
</script>
<script>
document.getElementById("theme-toggle").addEventListener("click", () => {
if (document.body.className.includes("dark")) {
document.body.classList.remove('dark');
localStorage.setItem("pref-theme", 'light');
} else {
document.body.classList.add('dark');
localStorage.setItem("pref-theme", 'dark');
}
})
</script>
</body>
</html>

View File

@ -1,42 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>Posts on Mihit Mittal</title>
<link>https://mihitmittal.com/posts/</link>
<description>Recent content in Posts on Mihit Mittal</description>
<generator>Hugo -- 0.142.0</generator>
<language>en-us</language>
<lastBuildDate>Wed, 05 Apr 2023 00:00:00 +0530</lastBuildDate>
<atom:link href="https://mihitmittal.com/posts/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Creating a multi access-point home network from scratch</title>
<link>https://mihitmittal.com/posts/3/</link>
<pubDate>Wed, 05 Apr 2023 00:00:00 +0530</pubDate>
<guid>https://mihitmittal.com/posts/3/</guid>
<description>&lt;p&gt;My home was undergoing reconstruction during 2022, and with a fresh start you get the opportunity to fix problems that plagued you before. The old building was constructed in the 1980s and with the brick and cement walls in India it is impossible to get a good Wi-Fi connection or add cabling to add additional access points. This time, I made sure to have at least one CAT6 cable going to each room, in order to be able to fix any dead spots by simply adding in access points in problem spots, and turning a bundle of wire into a home network system that handles terabytes of data each month has been a learning experience.&lt;/p&gt;</description>
</item>
<item>
<title>Automating lights based on outdoor luminosity and day cycles</title>
<link>https://mihitmittal.com/posts/2/</link>
<pubDate>Thu, 02 Feb 2023 00:00:00 +0530</pubDate>
<guid>https://mihitmittal.com/posts/2/</guid>
<description>&lt;p&gt;My house has outdoor lights on the front façade as part of the overall design of the house. These lights were currently turned on manually at a regular time everyday, but someone had to go to turn them off for the night. This proved to be very inconvenient, and resulted in my dad asking me to create some sort of solution to automate the task. I started mapping out the problem in order to understand it better and to break it down into components in order to understand how this would be solved, and concluded the following things:&lt;/p&gt;</description>
</item>
<item>
<title>Upgrading a motherboards BIOS, without flashback or a CPU</title>
<link>https://mihitmittal.com/posts/1/</link>
<pubDate>Tue, 27 Dec 2022 00:00:00 +0530</pubDate>
<guid>https://mihitmittal.com/posts/1/</guid>
<description>&lt;p&gt;After running a homelab on an old laptop for many years, I finally decided to bite the bullet and finally part out a PC to use as my home server, to run my websites, cloud storage, home automation using Home Assistant, and local DNS resolution on my network. The specs of the final build were as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AMD Ryzen 4600G&lt;/li&gt;
&lt;li&gt;4x8 GB DDR4 3200 by Crucial&lt;/li&gt;
&lt;li&gt;Gigabyte Gaming X B450 Motherboard&lt;/li&gt;
&lt;li&gt;1TB SSD storage&lt;/li&gt;
&lt;li&gt;12TB HDD storage&lt;/li&gt;
&lt;li&gt;Cooler Master MWE 450 Bronze V2 450W PSU&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Despite the current silicon shortages, acquiring the parts was surprisingly quick and painless. After collecting all the components that were ordered, I begun the simple process of assembling it all together only to discover that I got no sign of life upon pressing the power button. Now, it was my first time building a PC but it wasn&amp;rsquo;t my first time taking on a project like this, which made it all the more confusing as to why there was a problem. I was reading the motherboard&amp;rsquo;s manual and scratching my head when suddenly it hit me. The motherboard was manufactured in October 2020, which meant that the BIOS revision on the motherboard was much older than what was required in order for it to support my CPU. This was quite a big problem. I had no older CPU which I could use to update the motherboard, and without this, the build was completely halted. I tried looking around local shops in order to find anyone who would update the BIOS but could not find anyone willing to take the project on, leaving my only option being taking the 45 minute drive to the closest service center in order to get it updated.&lt;/p&gt;</description>
</item>
</channel>
</rss>

View File

@ -1,10 +0,0 @@
<!DOCTYPE html>
<html lang="en-us">
<head>
<title>https://mihitmittal.com/posts/</title>
<link rel="canonical" href="https://mihitmittal.com/posts/">
<meta name="robots" content="noindex">
<meta charset="utf-8">
<meta http-equiv="refresh" content="0; url=https://mihitmittal.com/posts/">
</head>
</html>

View File

@ -1,3 +0,0 @@
User-agent: *
Disallow:
Sitemap: https://mihitmittal.com/sitemap.xml

View File

@ -1,24 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://mihitmittal.com/posts/3/</loc>
<lastmod>2023-04-05T00:00:00+05:30</lastmod>
</url><url>
<loc>https://mihitmittal.com/</loc>
<lastmod>2023-04-05T00:00:00+05:30</lastmod>
</url><url>
<loc>https://mihitmittal.com/posts/</loc>
<lastmod>2023-04-05T00:00:00+05:30</lastmod>
</url><url>
<loc>https://mihitmittal.com/posts/2/</loc>
<lastmod>2023-02-02T00:00:00+05:30</lastmod>
</url><url>
<loc>https://mihitmittal.com/posts/1/</loc>
<lastmod>2022-12-27T00:00:00+05:30</lastmod>
</url><url>
<loc>https://mihitmittal.com/categories/</loc>
</url><url>
<loc>https://mihitmittal.com/tags/</loc>
</url>
</urlset>

View File

@ -1,199 +0,0 @@
<!DOCTYPE html>
<html lang="en" dir="auto">
<head><meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="robots" content="index, follow">
<title>Tags | Mihit Mittal</title>
<meta name="keywords" content="">
<meta name="description" content="Mihit&#39;s blog">
<meta name="author" content="Me">
<link rel="canonical" href="https://mihitmittal.com/tags/">
<link crossorigin="anonymous" href="/assets/css/stylesheet.45e028aa8ce0961349adf411b013ee39406be2c0bc80d4ea3fc04555f7f4611a.css" integrity="sha256-ReAoqozglhNJrfQRsBPuOUBr4sC8gNTqP8BFVff0YRo=" rel="preload stylesheet" as="style">
<link rel="icon" href="https://mihitmittal.com/favicon.ico">
<link rel="icon" type="image/png" sizes="16x16" href="https://mihitmittal.com/favicon-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="https://mihitmittal.com/favicon-32x32.png">
<link rel="apple-touch-icon" href="https://mihitmittal.com/apple-touch-icon.png">
<link rel="mask-icon" href="https://mihitmittal.com/safari-pinned-tab.svg">
<meta name="theme-color" content="#2e2e33">
<meta name="msapplication-TileColor" content="#2e2e33">
<link rel="alternate" type="application/rss+xml" href="https://mihitmittal.com/tags/index.xml">
<link rel="alternate" hreflang="en" href="https://mihitmittal.com/tags/">
<noscript>
<style>
#theme-toggle,
.top-link {
display: none;
}
</style>
<style>
@media (prefers-color-scheme: dark) {
:root {
--theme: rgb(29, 30, 32);
--entry: rgb(46, 46, 51);
--primary: rgb(218, 218, 219);
--secondary: rgb(155, 156, 157);
--tertiary: rgb(65, 66, 68);
--content: rgb(196, 196, 197);
--code-block-bg: rgb(46, 46, 51);
--code-bg: rgb(55, 56, 62);
--border: rgb(51, 51, 51);
}
.list {
background: var(--theme);
}
.list:not(.dark)::-webkit-scrollbar-track {
background: 0 0;
}
.list:not(.dark)::-webkit-scrollbar-thumb {
border-color: var(--theme);
}
}
</style>
</noscript><meta property="og:url" content="https://mihitmittal.com/tags/">
<meta property="og:site_name" content="Mihit Mittal">
<meta property="og:title" content="Tags">
<meta property="og:description" content="Mihit&#39;s blog">
<meta property="og:locale" content="en-us">
<meta property="og:type" content="website">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Tags">
<meta name="twitter:description" content="Mihit&#39;s blog">
</head>
<body class="list" id="top">
<script>
if (localStorage.getItem("pref-theme") === "dark") {
document.body.classList.add('dark');
} else if (localStorage.getItem("pref-theme") === "light") {
document.body.classList.remove('dark')
} else if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
document.body.classList.add('dark');
}
</script>
<header class="header">
<nav class="nav">
<div class="logo">
<a href="https://mihitmittal.com/" accesskey="h" title="Mihit Mittal (Alt + H)">Mihit Mittal</a>
<div class="logo-switches">
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
</svg>
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<circle cx="12" cy="12" r="5"></circle>
<line x1="12" y1="1" x2="12" y2="3"></line>
<line x1="12" y1="21" x2="12" y2="23"></line>
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
<line x1="1" y1="12" x2="3" y2="12"></line>
<line x1="21" y1="12" x2="23" y2="12"></line>
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
</svg>
</button>
</div>
</div>
<ul id="menu">
<li>
<a href="https://mihitmittal.com/posts" title="Posts">
<span>Posts</span>
</a>
</li>
</ul>
</nav>
</header>
<main class="main">
<header class="page-header">
<h1>Tags</h1>
</header>
<ul class="terms-tags">
</ul>
</main>
<footer class="footer">
<span>&copy; 2025 <a href="https://mihitmittal.com/">Mihit Mittal</a></span> ·
<span>
Powered by
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
<a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
</span>
</footer>
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
<path d="M12 6H0l6-6z" />
</svg>
</a>
<script>
let menu = document.getElementById('menu')
if (menu) {
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
menu.onscroll = function () {
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
}
}
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener("click", function (e) {
e.preventDefault();
var id = this.getAttribute("href").substr(1);
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
behavior: "smooth"
});
} else {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
}
if (id === "top") {
history.replaceState(null, null, " ");
} else {
history.pushState(null, null, `#${id}`);
}
});
});
</script>
<script>
var mybutton = document.getElementById("top-link");
window.onscroll = function () {
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
mybutton.style.visibility = "visible";
mybutton.style.opacity = "1";
} else {
mybutton.style.visibility = "hidden";
mybutton.style.opacity = "0";
}
};
</script>
<script>
document.getElementById("theme-toggle").addEventListener("click", () => {
if (document.body.className.includes("dark")) {
document.body.classList.remove('dark');
localStorage.setItem("pref-theme", 'light');
} else {
document.body.classList.add('dark');
localStorage.setItem("pref-theme", 'dark');
}
})
</script>
</body>
</html>

View File

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>Tags on Mihit Mittal</title>
<link>https://mihitmittal.com/tags/</link>
<description>Recent content in Tags on Mihit Mittal</description>
<generator>Hugo -- 0.142.0</generator>
<language>en-us</language>
<atom:link href="https://mihitmittal.com/tags/index.xml" rel="self" type="application/rss+xml" />
</channel>
</rss>