Deploying upstream@d2475acaac55013d628cdd1d183003faf0b60267: Publish libakerror article, update plan
This commit is contained in:
@@ -45,7 +45,7 @@
|
||||
content="2022-03-17">
|
||||
<meta
|
||||
property="og:article:modified_time"
|
||||
content="2026-01-08">
|
||||
content="2026-01-11">
|
||||
<meta
|
||||
property="og:article:author"
|
||||
content="Andrew Kesterson">
|
||||
@@ -98,6 +98,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -136,15 +167,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -283,13 +317,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -369,6 +403,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -527,23 +568,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
content="2022-05-02">
|
||||
<meta
|
||||
property="og:article:modified_time"
|
||||
content="2026-01-08">
|
||||
content="2026-01-11">
|
||||
<meta
|
||||
property="og:article:author"
|
||||
content="Andrew Kesterson">
|
||||
@@ -98,6 +98,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -136,15 +167,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -283,13 +317,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -369,6 +403,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -539,23 +580,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
content="2022-05-04">
|
||||
<meta
|
||||
property="og:article:modified_time"
|
||||
content="2026-01-08">
|
||||
content="2026-01-11">
|
||||
<meta
|
||||
property="og:article:author"
|
||||
content="Andrew Kesterson">
|
||||
@@ -98,6 +98,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -136,15 +167,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -283,13 +317,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -369,6 +403,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -533,23 +574,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
content="2022-05-19">
|
||||
<meta
|
||||
property="og:article:modified_time"
|
||||
content="2026-01-08">
|
||||
content="2026-01-11">
|
||||
<meta
|
||||
property="og:article:author"
|
||||
content="Andrew Kesterson">
|
||||
@@ -98,6 +98,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -136,15 +167,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -283,13 +317,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -369,6 +403,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -536,23 +577,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
content="2022-10-15">
|
||||
<meta
|
||||
property="og:article:modified_time"
|
||||
content="2026-01-08">
|
||||
content="2026-01-11">
|
||||
<meta
|
||||
property="og:article:author"
|
||||
content="Andrew Kesterson">
|
||||
@@ -98,6 +98,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -136,15 +167,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -283,13 +317,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -369,6 +403,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -539,23 +580,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
content="2023-09-12">
|
||||
<meta
|
||||
property="og:article:modified_time"
|
||||
content="2026-01-08">
|
||||
content="2026-01-11">
|
||||
<meta
|
||||
property="og:article:author"
|
||||
content="Andrew Kesterson">
|
||||
@@ -98,6 +98,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -136,15 +167,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -283,13 +317,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -369,6 +403,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -540,23 +581,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
content="2023-09-24">
|
||||
<meta
|
||||
property="og:article:modified_time"
|
||||
content="2026-01-08">
|
||||
content="2026-01-11">
|
||||
<meta
|
||||
property="og:article:author"
|
||||
content="Andrew Kesterson">
|
||||
@@ -98,6 +98,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -136,15 +167,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -283,13 +317,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -369,6 +403,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -541,23 +582,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
content="2023-09-28">
|
||||
<meta
|
||||
property="og:article:modified_time"
|
||||
content="2026-01-08">
|
||||
content="2026-01-11">
|
||||
<meta
|
||||
property="og:article:author"
|
||||
content="Andrew Kesterson">
|
||||
@@ -98,6 +98,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -136,15 +167,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -283,13 +317,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -369,6 +403,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -539,23 +580,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
content="2023-10-10">
|
||||
<meta
|
||||
property="og:article:modified_time"
|
||||
content="2026-01-08">
|
||||
content="2026-01-11">
|
||||
<meta
|
||||
property="og:article:author"
|
||||
content="Andrew Kesterson">
|
||||
@@ -98,6 +98,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -136,15 +167,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -283,13 +317,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -369,6 +403,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -540,23 +581,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
content="2023-11-05">
|
||||
<meta
|
||||
property="og:article:modified_time"
|
||||
content="2026-01-08">
|
||||
content="2026-01-11">
|
||||
<meta
|
||||
property="og:article:author"
|
||||
content="Andrew Kesterson">
|
||||
@@ -98,6 +98,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -136,15 +167,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -283,13 +317,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -369,6 +403,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -533,23 +574,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
content="2023-12-23">
|
||||
<meta
|
||||
property="og:article:modified_time"
|
||||
content="2026-01-08">
|
||||
content="2026-01-11">
|
||||
<meta
|
||||
property="og:article:author"
|
||||
content="Andrew Kesterson">
|
||||
@@ -98,6 +98,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -136,15 +167,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -283,13 +317,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -369,6 +403,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -556,23 +597,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
content="2024-01-29">
|
||||
<meta
|
||||
property="og:article:modified_time"
|
||||
content="2026-01-08">
|
||||
content="2026-01-11">
|
||||
<meta
|
||||
property="og:article:author"
|
||||
content="Andrew Kesterson">
|
||||
@@ -98,6 +98,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -136,15 +167,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -283,13 +317,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -369,6 +403,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -542,23 +583,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
content="2024-02-09">
|
||||
<meta
|
||||
property="og:article:modified_time"
|
||||
content="2026-01-08">
|
||||
content="2026-01-11">
|
||||
<meta
|
||||
property="og:article:author"
|
||||
content="Andrew Kesterson">
|
||||
@@ -98,6 +98,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -136,15 +167,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -283,13 +317,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -369,6 +403,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -533,23 +574,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
content="2024-03-03">
|
||||
<meta
|
||||
property="og:article:modified_time"
|
||||
content="2026-01-08">
|
||||
content="2026-01-11">
|
||||
<meta
|
||||
property="og:article:author"
|
||||
content="Andrew Kesterson">
|
||||
@@ -98,6 +98,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -136,15 +167,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -283,13 +317,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -369,6 +403,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -567,23 +608,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
content="2024-03-05">
|
||||
<meta
|
||||
property="og:article:modified_time"
|
||||
content="2026-01-08">
|
||||
content="2026-01-11">
|
||||
<meta
|
||||
property="og:article:author"
|
||||
content="Andrew Kesterson">
|
||||
@@ -98,6 +98,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -136,15 +167,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -283,13 +317,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -369,6 +403,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -580,23 +621,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
content="2024-03-08">
|
||||
<meta
|
||||
property="og:article:modified_time"
|
||||
content="2026-01-08">
|
||||
content="2026-01-11">
|
||||
<meta
|
||||
property="og:article:author"
|
||||
content="Andrew Kesterson">
|
||||
@@ -98,6 +98,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -136,15 +167,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -283,13 +317,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -369,6 +403,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -596,23 +637,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
content="2025-01-04">
|
||||
<meta
|
||||
property="og:article:modified_time"
|
||||
content="2026-01-08">
|
||||
content="2026-01-11">
|
||||
<meta
|
||||
property="og:article:author"
|
||||
content="Andrew Kesterson">
|
||||
@@ -98,6 +98,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -136,15 +167,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -283,13 +317,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -369,6 +403,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -502,13 +543,13 @@
|
||||
|
||||
<div class="nav-item-prev">
|
||||
<a
|
||||
href="/2026/01/08/Smart-LEGO/"
|
||||
href="/2026/01/11/News-2026-Week-1/"
|
||||
class="nav-link">
|
||||
<i class="iconfont icon-left nav-prev-icon"></i>
|
||||
<div>
|
||||
<div class="nav-label">Prev</div>
|
||||
|
||||
<div class="nav-title">Smart LEGO </div>
|
||||
<div class="nav-title">News - 2026 - Week 1 </div>
|
||||
|
||||
</div>
|
||||
</a>
|
||||
@@ -570,23 +611,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
842
2026/01/11/News-2026-Week-1/index.html
Normal file
842
2026/01/11/News-2026-Week-1/index.html
Normal file
@@ -0,0 +1,842 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width, initial-scale=1.0, minimum-scale=1.0">
|
||||
<meta
|
||||
http-equiv="X-UA-Compatible"
|
||||
content="ie=edge">
|
||||
<meta
|
||||
name="theme-color"
|
||||
content="#fff"
|
||||
id="theme-color">
|
||||
<meta
|
||||
name="description"
|
||||
content="AKLabs">
|
||||
<link
|
||||
rel="icon"
|
||||
href="/">
|
||||
<title>News - 2026 - Week 1</title>
|
||||
|
||||
|
||||
<meta
|
||||
property="og:title"
|
||||
content="News - 2026 - Week 1">
|
||||
|
||||
|
||||
<meta
|
||||
property="og:url"
|
||||
content="https://aklabs.net/2026/01/11/News-2026-Week-1/index.html">
|
||||
|
||||
|
||||
<meta
|
||||
property="og:img"
|
||||
content="/images/akesterson.webp">
|
||||
|
||||
|
||||
|
||||
<meta
|
||||
property="og:type"
|
||||
content="article">
|
||||
<meta
|
||||
property="og:article:published_time"
|
||||
content="2026-01-11">
|
||||
<meta
|
||||
property="og:article:modified_time"
|
||||
content="2026-01-11">
|
||||
<meta
|
||||
property="og:article:author"
|
||||
content="Andrew Kesterson">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="preload" href="//at.alicdn.com/t/font_1946621_i1kgafibvw.css" as="style" >
|
||||
<link rel="preload" href="//at.alicdn.com/t/font_1952792_89b4ac4k4up.css" as="style" >
|
||||
<link rel="preload" href="/css/main.css" as="style" >
|
||||
|
||||
<link rel="modulepreload" href="//instant.page/5.1.0">
|
||||
|
||||
<link rel="stylesheet" href="/css/main.css">
|
||||
|
||||
<link rel="stylesheet" href="//at.alicdn.com/t/font_1946621_i1kgafibvw.css">
|
||||
|
||||
<link rel="stylesheet" href="//at.alicdn.com/t/font_1952792_89b4ac4k4up.css">
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/lightbox/baguetteBox.min.css">
|
||||
|
||||
<script>
|
||||
function loadScript(url, cb) {
|
||||
var script = document.createElement('script');
|
||||
script.src = url;
|
||||
if (cb) script.onload = cb;
|
||||
script.async = true;
|
||||
document.body.appendChild(script);
|
||||
}
|
||||
function loadCSS(href, data, attr) {
|
||||
var sheet = document.createElement('link');
|
||||
sheet.ref = 'stylesheet';
|
||||
sheet.href = href;
|
||||
sheet.dataset[data] = attr;
|
||||
document.head.appendChild(sheet);
|
||||
}
|
||||
function changeCSS(cssFile, data, attr) {
|
||||
var oldlink = document.querySelector(data);
|
||||
var newlink = document.createElement("link");
|
||||
newlink.setAttribute("rel", "stylesheet");
|
||||
newlink.setAttribute("href", cssFile);
|
||||
newlink.dataset.prism = attr;
|
||||
document.head.replaceChild(newlink, oldlink);
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
dark: 'light',
|
||||
light: 'dark'
|
||||
};
|
||||
var themeColor = {
|
||||
dark: '#1c1c1e',
|
||||
light: '#fff'
|
||||
}
|
||||
// get the data of css prefers-color-scheme
|
||||
var getCssMediaQuery = function() {
|
||||
return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
|
||||
};
|
||||
// reverse current darkmode setting function
|
||||
var reverseDarkModeSetting = function() {
|
||||
var setting = localStorage.getItem('user-color-scheme');
|
||||
if(reverseDarkList[setting]) {
|
||||
setting = reverseDarkList[setting];
|
||||
} else if(setting === null) {
|
||||
setting = reverseDarkList[getCssMediaQuery()];
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
localStorage.setItem('user-color-scheme', setting);
|
||||
return setting;
|
||||
};
|
||||
// apply current darkmode setting
|
||||
</script>
|
||||
|
||||
<script>
|
||||
var setDarkmode = function(mode) {
|
||||
var setting = mode || localStorage.getItem('user-color-scheme');
|
||||
if(setting === getCssMediaQuery()) {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="preload" href="/js/lib/lightbox/baguetteBox.min.js" as="script">
|
||||
<link rel="preload" href="/js/lib/lightbox/baguetteBox.min.css" as="style" >
|
||||
|
||||
|
||||
<link rel="preload" href="/js/lib/lozad.min.js" as="script">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<meta name="generator" content="Hexo 6.0.0"><link rel="alternate" href="/atom.xml" title="AKLabs" type="application/atom+xml">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
|
||||
<nav class="navbar">
|
||||
<div class="navbar-logo">
|
||||
<a class="navbar-logo-main" href="/">
|
||||
|
||||
<span class="navbar-logo-dsc">AKLabs</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="navbar-menu">
|
||||
|
||||
<a
|
||||
href="/now"
|
||||
class="navbar-menu-item">
|
||||
|
||||
~/.plan
|
||||
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/archives"
|
||||
class="navbar-menu-item">
|
||||
|
||||
Archive
|
||||
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/categories"
|
||||
class="navbar-menu-item">
|
||||
|
||||
Categories
|
||||
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/about"
|
||||
class="navbar-menu-item">
|
||||
|
||||
About
|
||||
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/consulting"
|
||||
class="navbar-menu-item">
|
||||
|
||||
Consulting
|
||||
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/contact"
|
||||
class="navbar-menu-item">
|
||||
|
||||
Contact
|
||||
|
||||
</a>
|
||||
|
||||
<button
|
||||
class="navbar-menu-item darknavbar navbar-menu-btn"
|
||||
aria-label="Toggle dark mode"
|
||||
id="dark">
|
||||
<i class="iconfont icon-weather"></i>
|
||||
</button>
|
||||
<button
|
||||
class="navbar-menu-item searchnavbar navbar-menu-btn"
|
||||
aria-label="Toggle search"
|
||||
id="search">
|
||||
<!-- <i
|
||||
class="iconfont icon-search"
|
||||
style="font-size: 1.2rem; font-weight: 400;">
|
||||
</i> -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img"
|
||||
class="iconify iconify--ion" width="28" height="28" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512">
|
||||
<path fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="28"
|
||||
d="M256 80a176 176 0 1 0 176 176A176 176 0 0 0 256 80Z"></path>
|
||||
<path fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="28"
|
||||
d="M232 160a72 72 0 1 0 72 72a72 72 0 0 0-72-72Z"></path>
|
||||
<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="28"
|
||||
d="M283.64 283.64L336 336"></path>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div
|
||||
id="local-search"
|
||||
style="display: none">
|
||||
<input
|
||||
class="navbar-menu-item"
|
||||
id="search-input"
|
||||
placeholder="请输入搜索内容..." />
|
||||
<div id="search-content"></div>
|
||||
</div>
|
||||
|
||||
<div class="section-wrap">
|
||||
<div class="container">
|
||||
<div class="columns">
|
||||
<aside class="left-column">
|
||||
|
||||
<div class="card card-author">
|
||||
|
||||
<img
|
||||
src="/images/akesterson.webp"
|
||||
class="author-img"
|
||||
width="88"
|
||||
height="88"
|
||||
alt="author avatar">
|
||||
|
||||
<p class="author-name">Andrew Kesterson</p>
|
||||
<p class="author-description"><center><i>"Love God. Live Righteously. Die Well."</i> <br/> <br/> <a target="_blank" rel="noopener" href="https://github.com/akesterson">GitHub</a> || <a target="_blank" rel="noopener" href="https://www.linkedin.com/in/andrewkesterson/">LinkedIn</a> <br/> </center></p>
|
||||
<div class="author-message">
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-tags-count"
|
||||
href="/tags">
|
||||
<span>0</span>
|
||||
<span>Tags</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="sticky-tablet">
|
||||
|
||||
|
||||
<article class="display-when-two-columns spacer">
|
||||
<div class="card card-content toc-card">
|
||||
<div class="toc-header">
|
||||
<i
|
||||
class="iconfont icon-menu"
|
||||
style="padding-right: 2px;">
|
||||
</i>TOC
|
||||
</div>
|
||||
<ol class="toc"><li class="toc-item toc-level-2"><a class="toc-link" href="#AOSP-twice-yearly-releases-Calm-down-F-x2F-OSS-advocates"><span class="toc-text">AOSP twice yearly releases? Calm down, F/OSS advocates.</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Everything-old-is-new-again-the-return-of-the-keyboard-computer"><span class="toc-text">Everything old is new again: the return of the keyboard computer</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#There-is-nothing-new-under-the-sun-AI-just-does-it-faster"><span class="toc-text">There is nothing new under the sun, AI just does it faster</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Sociopaths-and-hardcore-gamers-in-civil-service"><span class="toc-text">Sociopaths and hardcore gamers in civil service</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Goodbye-APIs-hello-AI-interfaces"><span class="toc-text">Goodbye APIs, hello AI interfaces</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Quantum-computing-complexity-and-comprehension"><span class="toc-text">Quantum computing, complexity, and comprehension</span></a></li></ol>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
|
||||
<article class="card card-content categories-widget">
|
||||
<div class="categories-card">
|
||||
<div class="categories-header">
|
||||
<i
|
||||
class="iconfont icon-fenlei"
|
||||
style="padding-right: 2px;">
|
||||
</i>Categories
|
||||
</div>
|
||||
<div class="categories-list">
|
||||
|
||||
<a href="/categories/Books/">
|
||||
<div class="categories-list-item">
|
||||
Books
|
||||
<span class="categories-list-item-badge">13</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Faith/">
|
||||
<div class="categories-list-item">
|
||||
Faith
|
||||
<span class="categories-list-item-badge">6</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Outdoors/">
|
||||
<div class="categories-list-item">
|
||||
Outdoors
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Technology/">
|
||||
<div class="categories-list-item">
|
||||
Technology
|
||||
<span class="categories-list-item-badge">3</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Leadership/">
|
||||
<div class="categories-list-item">
|
||||
Leadership
|
||||
<span class="categories-list-item-badge">7</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Philosophy/">
|
||||
<div class="categories-list-item">
|
||||
Philosophy
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/History/">
|
||||
<div class="categories-list-item">
|
||||
History
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Liberal-Education/">
|
||||
<div class="categories-list-item">
|
||||
Liberal-Education
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<article class="card card-content tags-widget">
|
||||
<div class="tags-card">
|
||||
<div class="tags-header">
|
||||
<i
|
||||
class="iconfont icon-biaoqian"
|
||||
style="padding-right: 2px;">
|
||||
</i>hot tags
|
||||
</div>
|
||||
<div class="tags-list">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
|
||||
</div>
|
||||
</aside>
|
||||
<main class="main-column">
|
||||
|
||||
<article class="card card-content">
|
||||
<header>
|
||||
<h1 class="post-title">
|
||||
News - 2026 - Week 1
|
||||
</h1>
|
||||
</header>
|
||||
<div class="post-meta post-show-meta">
|
||||
<time datetime="2026-01-11T03:03:05.993Z">
|
||||
<i
|
||||
class="iconfont icon-calendar"
|
||||
style="margin-right: 2px;">
|
||||
</i>
|
||||
<span>2026-01-11</span>
|
||||
</time>
|
||||
|
||||
<span class="dot"></span>
|
||||
|
||||
<a
|
||||
href="/categories/Technology/"
|
||||
class="post-meta-link">
|
||||
Technology
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/categories/Current-Events/"
|
||||
class="post-meta-link">
|
||||
Current Events
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
<span class="dot"></span>
|
||||
<span>3k words</span>
|
||||
|
||||
</div>
|
||||
|
||||
</header>
|
||||
<div
|
||||
id="section"
|
||||
class="post-content">
|
||||
<p>Here are my thoughts on the news this week. It’s worth what you paid for it.</p>
|
||||
<h2 id="AOSP-twice-yearly-releases-Calm-down-F-x2F-OSS-advocates"><a href="#AOSP-twice-yearly-releases-Calm-down-F-x2F-OSS-advocates" class="headerlink" title="AOSP twice yearly releases? Calm down, F/OSS advocates."></a>AOSP twice yearly releases? Calm down, F/OSS advocates.</h2><p><a target="_blank" rel="noopener" href="https://www.androidauthority.com/aosp-source-code-schedule-3630018/">AndroidAuthority</a> reports that Google will only be releasing the source code for AOSP, Android Open Source Platform, twice a year.</p>
|
||||
<blockquote>
|
||||
<p>“Effective in 2026, to align with our trunk-stable development model and ensure platform stability for the ecosystem, we will publish source code to AOSP in Q2 and Q4. For building and contributing to AOSP, we recommend utilizing android-latest-release instead of aosp-main. The aosp-latest-release manifest branch will always reference the most recent release pushed to AOSP. For more information, see Changes to AOSP.”</p>
|
||||
</blockquote>
|
||||
<p>Reactions on slashdot and other places are typically upset. “Android isn’t open source”, “Time to find an alternative”, etc. While I don’t necessarily <em>disagree</em> with some of these commenters, I think they’re misunderstanding (or choosing to distort) what’s happening here. They feel like Google is doing the Evil thing again (<a target="_blank" rel="noopener" href="https://en.wikipedia.org/wiki/Criticism_of_Google">which they are frequently guilty of</a>) and withholding source code from certain releases that fall between the twice yearly releases. They see this as a stepping stone towards Android becoming closed source. I’m inclined to read the announcement at face value, and believe what it says: They’re transitioning to twice yearly releases, and asking everyone to start doing the same, and are aligning their source releases with that process. I don’t really see the problem with that.</p>
|
||||
<p>Now whether or not Android is truly open source is an entirely different (and nuanced) question, and <a target="_blank" rel="noopener" href="https://www.reddit.com/r/Android/comments/1ld6u05/aosp_is_no_longer_open_source_and_hasnt_been/">some of us do feel a certain kind of way about that</a>. But this announcement is a bit of a nothing burger.</p>
|
||||
<h2 id="Everything-old-is-new-again-the-return-of-the-keyboard-computer"><a href="#Everything-old-is-new-again-the-return-of-the-keyboard-computer" class="headerlink" title="Everything old is new again: the return of the keyboard computer"></a>Everything old is new again: the return of the keyboard computer</h2><p>Remember the home computers of the 1980s? Remember how their form factor tended to be that of a big bulky keyboard you plugged in to a monitor (or, if you were spendy, a special monitor)? Commodore VIC-20, 64 and 128, ZX Spectrum and Spectrum +2, Amiga 500, Amstad CPC 464, BBC Micro, etc. This form factor essentially defined personal computers in the late 1970s and early 1980s. </p>
|
||||
<p>Now, we see this form factor as a quaint reminder of a simpler time, and there is even some nostalgia around it. The Commodore 64 has always had a really strong cult following, and with <a target="_blank" rel="noopener" href="https://www.tomshardware.com/video-games/retro-gaming/commodore-corporation-bv-acquisition-completed-by-fan-led-consortium-prepare-for-new-retro-futurist-products-with-the-deal-signed-sealed-and-paid-for-ahead-of-schedule">the recent acquisition of Commodore by (essentially) the fan community itself</a>, there is even a new Commodore computer being released for the first time in decades, <a target="_blank" rel="noopener" href="https://www.commodore.net/product-page/commodore-64-ultimate-basic-beige-batch2">the Commodore Ultimate</a> - and you can guess the form factor on this bad boy. Thus far, I have resisted the completely nonsensical urge to buy one of these things and put it on my desk. We’ll see how long the $350 price tag helps me keep such a level headed position. </p>
|
||||
<p>I like to say “everything old is new again”, because we tend to live in a circle of trends, and things keep coming back around. Apparently it is the time of the keyboard computer once again, because - believe it or not! - there is a brand new keyboard form factor PC <strong>for the enterprise</strong>. Yes, you read that right, HP’s enterprise PC lineup now includes a keyboard PC, the HP EliteBoard G1a.</p>
|
||||
<center><img alt="HP EliteBoard G1a" src="/images/hp-eliteboard-g1a.jpg"/></center>
|
||||
|
||||
<p><a target="_blank" rel="noopener" href="https://www.theregister.com/2026/01/06/hp_keyboard_pc/">The Register</a> ran a story about this little curiosity recently, and they note that it is intended to fill a very specific niche: for enterprises which use “hot desks” or “hotel cubes” where an employee might pop in and work for a day, but they may not use the same hot desk or hotel cube every day, so leaving a permanent workstation doesn’t make sense. I guess that HP also assumes A) these workers do not work when away from their desk (a blessed expectation in this modern age), or B) these enterprises are going to choose not to simply issue laptops to these workers. </p>
|
||||
<p>Personally, it’s charming, and I love to see it. But as a former enterprise IT manager, it’s a baffling choice. Issuing laptops seems like the smarter thing to do as an enterprise - your IT team is probably already issuing them, already storing them, already has a support contract for keeping them running, already has spare parts, your workforce is already using them, and you don’t have to equip desks with separate monitors and mice. Mice are going to get lost. Monitors are going to get moved away from the hotel cube/hot desk when someone’s “give me a second monitor” IT ticket takes too long to fulfill. And the workers who are issued these things are absolutely not going to be inclined to open them and work from home, let alone a coffee shop. You’d better have very strict expectations that these workers only do work in the hot desk, at the office.</p>
|
||||
<p>And if that’s your expectation …. why not just put a frickin desktop there? I don’t get it.</p>
|
||||
<h2 id="There-is-nothing-new-under-the-sun-AI-just-does-it-faster"><a href="#There-is-nothing-new-under-the-sun-AI-just-does-it-faster" class="headerlink" title="There is nothing new under the sun, AI just does it faster"></a>There is nothing new under the sun, AI just does it faster</h2><p>This one probably should’ve gotten its own post.</p>
|
||||
<p><a target="_blank" rel="noopener" href="https://thenewstack.io/why-your-dashboards-are-obsolete-in-the-age-of-ai/">The New Stack</a> ran a story recently about how traditional methods of monitoring and reacting to events in your IT infrastructure are out of date in the age of AI. Specifically they mention dashboards, but that’s not what they’re actually talking about. They’re talking about having humans in the incident response loop.</p>
|
||||
<p>In the article, they make the point that the traditional incident response workflow is slow. Consider:</p>
|
||||
<ol>
|
||||
<li>An event occurs somewhere in your IT infrastructure or application</li>
|
||||
<li>Some sensor detects this event</li>
|
||||
<li>Some sensor sends the event to a centralized tool for monitoring such events</li>
|
||||
<li>The centralized tool slaps a timestamp on the event and aggregates it with everything else</li>
|
||||
<li>Something notices that event, and decides it needs to alert a human. Incident Response procedures for your organization begins here.</li>
|
||||
<li>A human receives the alert, reads it with their eyeballs, and process it with their smartmeat.</li>
|
||||
<li>That human consults with other humans, and they combine their smartmeat about what to do about the event</li>
|
||||
<li>Some human (maybe the same human) uses their fingermeat to twiddle some bits, reacting to the event, and hopefully resolving it. If not, GOTO 3.</li>
|
||||
</ol>
|
||||
<p>The argument in the article is that AI tools make your dashboards obsolete because steps 6, 7, and 8 of the process can now be automated by AI, and executed faster than a human team could ever hope to do so. And, yes, that’s true, automation can react faster than humans. But that’s no secret to those of us who have actually been in this industry for more than a few days, and we don’t need AI to do it.</p>
|
||||
<p>Anyone hear of <a target="_blank" rel="noopener" href="https://medium.com/@seetharamugn/the-complete-guide-to-event-driven-architecture-b25226594227">“event driven architecture”</a>? This is a very old idea that predates AI. The idea is that you have an architecture where decoupled systems don’t really know about each other’s guts, and they just respond to events occurring, with those events coming over standardized interfaces. It’s a good idea. It’s also been coupled with incident response by DevOps folks for nearly as long <a target="_blank" rel="noopener" href="https://www.test-king.com/blog/mastering-incident-and-event-response-foundations-for-devops-resilience/">to automate systems in response to bad things happening</a>.</p>
|
||||
<p>The AI driven workflows that the New Stack article refers to are really no different than what your DevOps/DevSecOps/NoOps/SRE team has been doing alrady. The difference is that these flows:</p>
|
||||
<ol>
|
||||
<li>Probably use some amount of automatic introspection (AI tools inspecting the output of a set of components to determine how to parse that output, and classify it into normal and error conditions)</li>
|
||||
<li>Probably use some amount of automatic code generation (AI tools generating code that <strong>should</strong> work to reset a given system to a normal state when an error condition is detected)</li>
|
||||
<li>Probably replace humans in steps 6, 7, 8 of the previous flow with multiple AI agents that can reach consensus (according to business rules codified by humans) about when it is time to execute the code from item #2</li>
|
||||
</ol>
|
||||
<p>Which I think is just hilarious, because it flies in the face of what we got told by the enterprise for so long. Your human automation teams have been capable of delivering this functionality to you all along - in fact we’ve been BEGGING you to let us write the software and turn it on, and you have continuously refused. And the reasoning is always the same. “You want to automatically change the production system in response to a change? We aren’t comfortable with that. A human must be in charge of deciding to throw that lever.” And even when the business may have been comfortable with allowing automation to do it, frequently change controls were in place that prevented such activities, often in response to regulatory or legal requirements that prevented the automation from doing the needful.</p>
|
||||
<p>So how is this suddenly okay now that it’s AI doing it? AI is less deterministic, less idempotent, less comprehensible, and less predictable. And yet we expect enterprises to allow AI to have the keys to prod when the deterministic, idempotent, comprehensible, utterly predictable code from their automation teams, has been refused for so long?</p>
|
||||
<p>Whatever. Do what you want, man. But when your agents hallucinate something and fire when they shouldn’t, or don’t fire when they should, your SRE team is gonna have a bash script that can fix your problems. This problem, and the solution, is not new, you’re just finding a new, faster, and arguably worse way to handle it.</p>
|
||||
<p>Get off my lawn.</p>
|
||||
<h2 id="Sociopaths-and-hardcore-gamers-in-civil-service"><a href="#Sociopaths-and-hardcore-gamers-in-civil-service" class="headerlink" title="Sociopaths and hardcore gamers in civil service"></a>Sociopaths and hardcore gamers in civil service</h2><p><a target="_blank" rel="noopener" href="https://slashdot.org/story/26/01/05/1452249/people-of-dubious-character-are-more-likely-to-enter-public-service?utm_source=rss1.0mainlinkanon&utm_medium=feed">Slashdot reports on a Chinese paper thusly</a></p>
|
||||
<blockquote>
|
||||
<p>A new working paper from researchers at the University of Hong Kong has found that Chinese graduate students who plagiarized more heavily in their master’s theses were significantly more likely to pursue careers in the civil service and to climb the ranks faster once inside. John Liu and co-authors analyzed 6 million dissertations from CNKI, a Chinese academic repository, and cross-referenced them against public records of civil-service exam-takers to identify 120,000 civil servants and their academic work. Those who entered the public sector had plagiarism scores 15.6% above average. Customs and tax officials fared worst – their scores ran 25% and 26% higher than private-sector peers respectively. Within the civil service, those who plagiarized more were promoted 9% faster during the first five years of their careers. The researchers validated their plagiarism metric through an experiment involving 443 job applicants who were asked to roll dice for rewards without monitoring. Those who had plagiarized more also reported improbably high rolls.</p>
|
||||
</blockquote>
|
||||
<p>This shouldn’t really surprise anyone who has spent any time working in civil service - whether in government, police, fire, or EMS. For whatever reason, these positions tend to attract a certain kind of people who tend to either be the absolute best kind of person, or the absolute worst kind of person. (And sometimes they are both, unfortunately.) We also know that civil service somehow tends to wind up promoting and rewarding nepotists and sociopaths, because they’ve learned how to play the game, and to rig it. What’s worse is that, often times, they are doing it from a place of positive moral justification - “the ends justify the means”. And history has shown us, over and over, why that’s a very dangerous line to walk, and we shouldn’t tolerate it. But we do, because ultimately, we need <strong>results</strong> from the people in these positions. And we are often willing to either look the other way, or simply not look too hard into the details, when someone is getting results.</p>
|
||||
<p>Sociopaths are great at getting results. They also scare the hell out of us. But sociopaths are great at understanding the rules, and maximizing their ability to operate in those rules for their own benefit. They learn what people expect to see, and they use their chameleon superpowers to show that on the outside, while still getting what they want through other less visible means. Cheating is fine, as long as the social expectations are met on the outside. Dirty deeds are fine, as long as the socially acceptable outcome is achieved, and nobody can really see how that sausage is getting made. The ends justify the means.</p>
|
||||
<p>Back in the early 2000s, <a target="_blank" rel="noopener" href="https://www.escapistmagazine.com/">The Escapist</a> was still being published as a zine. (Personally I miss it.) It was released as a PDF with pages you would turn and everything (anyone remember PDF readers that animated pages turning and made the paper shuffling noise? I do, and I don’t miss that at all.) One article from Volume 1 Issue 22 struck me as being so damned good that I’ve saved a copy of that on my NAS ever since, and every once in a while, something happens that makes me bring it up again.</p>
|
||||
<p><a target="_blank" rel="noopener" href="https://archive.org/details/theescapist_201911/TheEscapist_22_final/page/n17/mode/2up">Escapist Volume 1 Issue 22</a> is still available on the Internet Archive as of the time of this writing. Just in case, I also have a local copy of it <a href="/pdf/escapist-1-22.pdf">attached to this article</a>. In this issue, John Tynes wrote an article called “The Contrarian: Why We Fight”. In the article, he explains why hardcore gamers so often tended to gravitate towards games about war and conquest with violent themes. It’s a really great article that says more about human psychology than maybe the author meant to say, and I recommend reading it. But when thinking of sociopaths in civil service, I’m remindeded of this part of the article:</p>
|
||||
<blockquote>
|
||||
<p>I believe humans have a deep longing for authority, to possess it or to obey it. It is tempered by our empathy, our ability to view another’s situation and project it onto ourselves. But our games know nothing of empathy. We optimize our play to reach the solution in the most direct way possible. When you watch a video of someone completing the entirety of Half-Life in 45 minutes, you have to think: That guy could make the trains run on time. There is no pause for conversation or exploration. There is merely the fanatical implementation of an optimal result.</p>
|
||||
<p>A final solution.</p>
|
||||
<p>Somebody has to save the world. And that means somebody has to rule it. We gamers have had the training. We’ve learned the mindset. We know the score. We are efficient, deadly, methodical. If only we were in charge – then, oh then, we could show the world how much we care about it. We could wrap our arms around all that suffering and whisper over our speed runs, our fervent smashing of crates, the countless times we’ve saved them all already. And if any of them talked back or questioned our wisdom we could show them exactly what we’ve learned.</p>
|
||||
<p>Press the button.</p>
|
||||
</blockquote>
|
||||
<h2 id="Goodbye-APIs-hello-AI-interfaces"><a href="#Goodbye-APIs-hello-AI-interfaces" class="headerlink" title="Goodbye APIs, hello AI interfaces"></a>Goodbye APIs, hello AI interfaces</h2><p><a target="_blank" rel="noopener" href="https://thenewstack.io/data-in-2026-interchangeable-models-clouds-and-specialization/">The New Stack</a> ran a story recently about how data management is going to change in 2026, for a bunch of reasons. In the article, there was an interesting claim made about how systems will interact in the future.</p>
|
||||
<blockquote>
|
||||
<p>Such collaboration will range the gamut of data-centric resources, from federation infrastructure to traditional databases supporting different modalities, vector embeddings, and protocols such as MCP, Agent-User Interaction (AG-UI), and Agent to UI (A2UI). Users will no longer look for a single hyperscaler or vendor offering these things, but rather “the ability to plug and play,” commented Yugabyte CEO Karthik Ranganathan. “Just saying one thing will do it all is like saying we know the answer to a question even before you’ve asked it.”</p>
|
||||
</blockquote>
|
||||
<p>Imagine the horror of your only programmatic interface to a given system being, not a well defined API, with defined and structured inputs and outputs on a contract with a schema, but an agentic interface that you talk to, in awful natural language, and hope it does the right thing.</p>
|
||||
<p>Sweet Jesus. And developers think they have it bad now.</p>
|
||||
<h2 id="Quantum-computing-complexity-and-comprehension"><a href="#Quantum-computing-complexity-and-comprehension" class="headerlink" title="Quantum computing, complexity, and comprehension"></a>Quantum computing, complexity, and comprehension</h2><p>I am not a quantum computing expert, but <a target="_blank" rel="noopener" href="https://thenewstack.io/fewer-wires-more-qubits-d-wave-tackles-quantum-computings-cable-problem/">a recent article about wires and qubits</a> got me thinking.</p>
|
||||
<blockquote>
|
||||
<p>“If you think about how the semiconducting industry evolved, you’ve got chips in your phone and your laptop with billions of transistors. There’s absolutely not billions of control lines that go down to the chip,” </p>
|
||||
</blockquote>
|
||||
<p>It’s been said that you haven’t achieved mastery of something until you can explain it to a non-technical person outside of your field. It’s also been said that genius is the ability to reduce the complex to the simple.</p>
|
||||
<p>The shrinking number of control lines on a chip represent an increasing understanding of the utility of the chip, thereby allowing us to present a more narrow interface to the device. In the early days there was a 1:1 number of lines on a CPU for memory address, data, etc. An 8 bit machine had 8 address lines and 8 data lines. Over time we’ve been able to improve performance and simplify the API on these components to reduce the number of directly exposed items. Even in the 80s, computers did not have instructions for referencing individual bits in memory, they dealt only in bytes (logical operations not excepted). As our understanding of the machine and its use cases proceeded, the interfaces got smaller and simpler.</p>
|
||||
<p>On a long enough timeline Quantum computing will, assuming the technology has sufficient utility to drive continued development and refinement, reach the point where binary <a target="_blank" rel="noopener" href="https://en.wikipedia.org/wiki/Von_Neumann_architecture">von neumann</a> <a target="_blank" rel="noopener" href="https://en.wikipedia.org/wiki/Computer">general purpose computers</a> reached in the 80s. When that happens, I wonder what the languages and tooling to communicate with them is going to look like, as the interfaces (once standardized) will undoubtedly look nothing like what we’re used to.</p>
|
||||
<p>Just as one example, the idea of a “General Purpose Computer” is so intrinsically tied to our idea of a “Computer” that Wikipedia has no separate article for a General Purpose Computer. Quantum Computing is going to be a whole new frontier.</p>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
<div class="nav">
|
||||
|
||||
<div class="nav-item-prev">
|
||||
<a
|
||||
href="/2026/01/11/libakerror/"
|
||||
class="nav-link">
|
||||
<i class="iconfont icon-left nav-prev-icon"></i>
|
||||
<div>
|
||||
<div class="nav-label">Prev</div>
|
||||
|
||||
<div class="nav-title">libakerror </div>
|
||||
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="nav-item-next">
|
||||
<a
|
||||
href="/2025/01/04/Socrates-got-a-raw-deal/"
|
||||
class="nav-link">
|
||||
<div>
|
||||
<div class="nav-label">Next</div>
|
||||
|
||||
<div class="nav-title">Socrates got a raw deal </div>
|
||||
|
||||
</div>
|
||||
<i class="iconfont icon-right nav-next-icon"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="card card-content toc-card"
|
||||
id="mobiletoc">
|
||||
<div class="toc-header">
|
||||
<i
|
||||
class="iconfont icon-menu"
|
||||
style="padding-right: 2px;">
|
||||
</i>TOC
|
||||
</div>
|
||||
<ol class="toc"><li class="toc-item toc-level-2"><a class="toc-link" href="#AOSP-twice-yearly-releases-Calm-down-F-x2F-OSS-advocates"><span class="toc-text">AOSP twice yearly releases? Calm down, F/OSS advocates.</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Everything-old-is-new-again-the-return-of-the-keyboard-computer"><span class="toc-text">Everything old is new again: the return of the keyboard computer</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#There-is-nothing-new-under-the-sun-AI-just-does-it-faster"><span class="toc-text">There is nothing new under the sun, AI just does it faster</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Sociopaths-and-hardcore-gamers-in-civil-service"><span class="toc-text">Sociopaths and hardcore gamers in civil service</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Goodbye-APIs-hello-AI-interfaces"><span class="toc-text">Goodbye APIs, hello AI interfaces</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Quantum-computing-complexity-and-comprehension"><span class="toc-text">Quantum computing, complexity, and comprehension</span></a></li></ol>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<aside class="right-column">
|
||||
<div class="sticky-widescreen">
|
||||
|
||||
|
||||
<article class="card card-content toc-card">
|
||||
<div class="toc-header">
|
||||
<i
|
||||
class="iconfont icon-menu"
|
||||
style="padding-right: 2px;">
|
||||
</i>TOC
|
||||
</div>
|
||||
<ol class="toc"><li class="toc-item toc-level-2"><a class="toc-link" href="#AOSP-twice-yearly-releases-Calm-down-F-x2F-OSS-advocates"><span class="toc-text">AOSP twice yearly releases? Calm down, F/OSS advocates.</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Everything-old-is-new-again-the-return-of-the-keyboard-computer"><span class="toc-text">Everything old is new again: the return of the keyboard computer</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#There-is-nothing-new-under-the-sun-AI-just-does-it-faster"><span class="toc-text">There is nothing new under the sun, AI just does it faster</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Sociopaths-and-hardcore-gamers-in-civil-service"><span class="toc-text">Sociopaths and hardcore gamers in civil service</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Goodbye-APIs-hello-AI-interfaces"><span class="toc-text">Goodbye APIs, hello AI interfaces</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Quantum-computing-complexity-and-comprehension"><span class="toc-text">Quantum computing, complexity, and comprehension</span></a></li></ol>
|
||||
</article>
|
||||
|
||||
|
||||
<article class="card card-content">
|
||||
<div class="recent-posts-card">
|
||||
<div class="recent-posts-header">
|
||||
<i
|
||||
class="iconfont icon-wenzhang_huaban"
|
||||
style="padding-right: 2px;">
|
||||
</i>Recent Posts
|
||||
</div>
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
|
||||
</div>
|
||||
</aside>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer class="footer">
|
||||
<div class="footer-container">
|
||||
<div>
|
||||
<div class="footer-dsc">
|
||||
<span>
|
||||
Copyright ©
|
||||
|
||||
|
||||
-
|
||||
2026
|
||||
|
||||
</span>
|
||||
|
||||
<a
|
||||
href="mailto:andrew@aklabs.net"
|
||||
class="footer-link">
|
||||
Andrew Kesterson
|
||||
</a>
|
||||
<br/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="footer-dsc">
|
||||
|
||||
Powered by
|
||||
<a
|
||||
href="https://hexo.io/"
|
||||
class="footer-link"
|
||||
target="_blank"
|
||||
rel="nofollow noopener noreferrer">
|
||||
Hexo
|
||||
</a>
|
||||
|
||||
|
||||
<span> | </span>
|
||||
|
||||
|
||||
Theme -
|
||||
<a
|
||||
href="https://github.com/theme-kaze"
|
||||
class="footer-link"
|
||||
target="_blank"
|
||||
rel="nofollow noopener noreferrer">
|
||||
Kaze
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</footer>
|
||||
|
||||
|
||||
<a
|
||||
role="button"
|
||||
id="scrollbutton"
|
||||
class="basebutton"
|
||||
aria-label="回到顶部">
|
||||
<i class="iconfont icon-arrowleft button-icon"></i>
|
||||
</a>
|
||||
|
||||
<a
|
||||
role="button"
|
||||
id="menubutton"
|
||||
aria-label="menu button"
|
||||
class="basebutton">
|
||||
<i class="iconfont icon-menu button-icon"></i>
|
||||
</a>
|
||||
<a
|
||||
role="button"
|
||||
id="popbutton"
|
||||
class="basebutton"
|
||||
aria-label="控制中心">
|
||||
<i class="iconfont icon-expand button-icon"></i>
|
||||
</a>
|
||||
<a
|
||||
role="button"
|
||||
id="darkbutton"
|
||||
class="basebutton darkwidget"
|
||||
aria-label="夜色模式">
|
||||
<i class="iconfont icon-weather button-icon"></i>
|
||||
</a>
|
||||
<a
|
||||
role="button"
|
||||
id="searchbutton"
|
||||
class="basebutton searchwidget"
|
||||
aria-label="搜索">
|
||||
<i class="iconfont icon-search button-icon"></i>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
var addImgLayout = function () {
|
||||
var img = document.querySelectorAll('.post-content img')
|
||||
var i
|
||||
for (i = 0; i < img.length; i++) {
|
||||
var wrapper = document.createElement('a')
|
||||
wrapper.setAttribute('href', img[i].getAttribute('data-src'))
|
||||
wrapper.setAttribute('aria-label', 'illustration')
|
||||
wrapper.style.cssText =
|
||||
'width: 100%; display: flex; justify-content: center;'
|
||||
if (img[i].alt) wrapper.dataset.caption = img[i].alt
|
||||
wrapper.dataset.nolink = true
|
||||
img[i].before(wrapper)
|
||||
wrapper.append(img[i])
|
||||
var divWrap = document.createElement('div')
|
||||
divWrap.classList.add('gallery')
|
||||
wrapper.before(divWrap)
|
||||
divWrap.append(wrapper)
|
||||
}
|
||||
baguetteBox.run('.gallery')
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
loadScript(
|
||||
"/js/lib/lightbox/baguetteBox.min.js",
|
||||
addImgLayout
|
||||
)
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<script src="/js/main.js"></script>
|
||||
|
||||
|
||||
<script>
|
||||
var addLazyload = function () {
|
||||
var observer = lozad('.lozad', {
|
||||
load: function (el) {
|
||||
el.srcset = el.getAttribute('data-src')
|
||||
},
|
||||
loaded: function (el) {
|
||||
el.classList.add('loaded')
|
||||
},
|
||||
})
|
||||
observer.observe()
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
loadScript('/js/lib/lozad.min.js', addLazyload)
|
||||
</script>
|
||||
|
||||
<script src="//instant.page/5.1.0" type="module"
|
||||
integrity="sha384-by67kQnR+pyfy8yWP4kPO12fHKRLHZPfEsiSXR8u2IKcTdxD805MGUXBzVPnkLHw"></script>
|
||||
|
||||
<script>
|
||||
var googleAnalytics = function () {
|
||||
window.dataLayer = window.dataLayer || []
|
||||
function gtag() {
|
||||
dataLayer.push(arguments)
|
||||
}
|
||||
gtag('js', new Date())
|
||||
gtag('config', 'G-S3YLF516N6')
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
loadScript(
|
||||
'https://www.googletagmanager.com/gtag/js?id=' +
|
||||
'G-S3YLF516N6',
|
||||
googleAnalytics
|
||||
)
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
786
2026/01/11/Single-Pane-of-Glass/index.html
Normal file
786
2026/01/11/Single-Pane-of-Glass/index.html
Normal file
@@ -0,0 +1,786 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width, initial-scale=1.0, minimum-scale=1.0">
|
||||
<meta
|
||||
http-equiv="X-UA-Compatible"
|
||||
content="ie=edge">
|
||||
<meta
|
||||
name="theme-color"
|
||||
content="#fff"
|
||||
id="theme-color">
|
||||
<meta
|
||||
name="description"
|
||||
content="AKLabs">
|
||||
<link
|
||||
rel="icon"
|
||||
href="/">
|
||||
<title>Single Pane of Glass</title>
|
||||
|
||||
|
||||
<meta
|
||||
property="og:title"
|
||||
content="Single Pane of Glass">
|
||||
|
||||
|
||||
<meta
|
||||
property="og:url"
|
||||
content="https://aklabs.net/2026/01/11/Single-Pane-of-Glass/index.html">
|
||||
|
||||
|
||||
<meta
|
||||
property="og:img"
|
||||
content="/images/akesterson.webp">
|
||||
|
||||
|
||||
<meta
|
||||
property="og:img"
|
||||
content="There are too many ways of doing the same shit across too many different mediums and platforms">
|
||||
|
||||
|
||||
<meta
|
||||
property="og:type"
|
||||
content="article">
|
||||
<meta
|
||||
property="og:article:published_time"
|
||||
content="2026-01-11">
|
||||
<meta
|
||||
property="og:article:modified_time"
|
||||
content="2026-01-11">
|
||||
<meta
|
||||
property="og:article:author"
|
||||
content="Andrew Kesterson">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="preload" href="//at.alicdn.com/t/font_1946621_i1kgafibvw.css" as="style" >
|
||||
<link rel="preload" href="//at.alicdn.com/t/font_1952792_89b4ac4k4up.css" as="style" >
|
||||
<link rel="preload" href="/css/main.css" as="style" >
|
||||
|
||||
<link rel="modulepreload" href="//instant.page/5.1.0">
|
||||
|
||||
<link rel="stylesheet" href="/css/main.css">
|
||||
|
||||
<link rel="stylesheet" href="//at.alicdn.com/t/font_1946621_i1kgafibvw.css">
|
||||
|
||||
<link rel="stylesheet" href="//at.alicdn.com/t/font_1952792_89b4ac4k4up.css">
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/lightbox/baguetteBox.min.css">
|
||||
|
||||
<script>
|
||||
function loadScript(url, cb) {
|
||||
var script = document.createElement('script');
|
||||
script.src = url;
|
||||
if (cb) script.onload = cb;
|
||||
script.async = true;
|
||||
document.body.appendChild(script);
|
||||
}
|
||||
function loadCSS(href, data, attr) {
|
||||
var sheet = document.createElement('link');
|
||||
sheet.ref = 'stylesheet';
|
||||
sheet.href = href;
|
||||
sheet.dataset[data] = attr;
|
||||
document.head.appendChild(sheet);
|
||||
}
|
||||
function changeCSS(cssFile, data, attr) {
|
||||
var oldlink = document.querySelector(data);
|
||||
var newlink = document.createElement("link");
|
||||
newlink.setAttribute("rel", "stylesheet");
|
||||
newlink.setAttribute("href", cssFile);
|
||||
newlink.dataset.prism = attr;
|
||||
document.head.replaceChild(newlink, oldlink);
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
dark: 'light',
|
||||
light: 'dark'
|
||||
};
|
||||
var themeColor = {
|
||||
dark: '#1c1c1e',
|
||||
light: '#fff'
|
||||
}
|
||||
// get the data of css prefers-color-scheme
|
||||
var getCssMediaQuery = function() {
|
||||
return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
|
||||
};
|
||||
// reverse current darkmode setting function
|
||||
var reverseDarkModeSetting = function() {
|
||||
var setting = localStorage.getItem('user-color-scheme');
|
||||
if(reverseDarkList[setting]) {
|
||||
setting = reverseDarkList[setting];
|
||||
} else if(setting === null) {
|
||||
setting = reverseDarkList[getCssMediaQuery()];
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
localStorage.setItem('user-color-scheme', setting);
|
||||
return setting;
|
||||
};
|
||||
// apply current darkmode setting
|
||||
</script>
|
||||
|
||||
<script>
|
||||
var setDarkmode = function(mode) {
|
||||
var setting = mode || localStorage.getItem('user-color-scheme');
|
||||
if(setting === getCssMediaQuery()) {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="preload" href="/js/lib/lightbox/baguetteBox.min.js" as="script">
|
||||
<link rel="preload" href="/js/lib/lightbox/baguetteBox.min.css" as="style" >
|
||||
|
||||
|
||||
<link rel="preload" href="/js/lib/lozad.min.js" as="script">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<meta name="generator" content="Hexo 6.0.0"><link rel="alternate" href="/atom.xml" title="AKLabs" type="application/atom+xml">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
|
||||
<nav class="navbar">
|
||||
<div class="navbar-logo">
|
||||
<a class="navbar-logo-main" href="/">
|
||||
|
||||
<span class="navbar-logo-dsc">AKLabs</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="navbar-menu">
|
||||
|
||||
<a
|
||||
href="/now"
|
||||
class="navbar-menu-item">
|
||||
|
||||
~/.plan
|
||||
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/archives"
|
||||
class="navbar-menu-item">
|
||||
|
||||
Archive
|
||||
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/categories"
|
||||
class="navbar-menu-item">
|
||||
|
||||
Categories
|
||||
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/about"
|
||||
class="navbar-menu-item">
|
||||
|
||||
About
|
||||
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/consulting"
|
||||
class="navbar-menu-item">
|
||||
|
||||
Consulting
|
||||
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/contact"
|
||||
class="navbar-menu-item">
|
||||
|
||||
Contact
|
||||
|
||||
</a>
|
||||
|
||||
<button
|
||||
class="navbar-menu-item darknavbar navbar-menu-btn"
|
||||
aria-label="Toggle dark mode"
|
||||
id="dark">
|
||||
<i class="iconfont icon-weather"></i>
|
||||
</button>
|
||||
<button
|
||||
class="navbar-menu-item searchnavbar navbar-menu-btn"
|
||||
aria-label="Toggle search"
|
||||
id="search">
|
||||
<!-- <i
|
||||
class="iconfont icon-search"
|
||||
style="font-size: 1.2rem; font-weight: 400;">
|
||||
</i> -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img"
|
||||
class="iconify iconify--ion" width="28" height="28" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512">
|
||||
<path fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="28"
|
||||
d="M256 80a176 176 0 1 0 176 176A176 176 0 0 0 256 80Z"></path>
|
||||
<path fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="28"
|
||||
d="M232 160a72 72 0 1 0 72 72a72 72 0 0 0-72-72Z"></path>
|
||||
<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="28"
|
||||
d="M283.64 283.64L336 336"></path>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div
|
||||
id="local-search"
|
||||
style="display: none">
|
||||
<input
|
||||
class="navbar-menu-item"
|
||||
id="search-input"
|
||||
placeholder="请输入搜索内容..." />
|
||||
<div id="search-content"></div>
|
||||
</div>
|
||||
|
||||
<div class="section-wrap">
|
||||
<div class="container">
|
||||
<div class="columns">
|
||||
<aside class="left-column">
|
||||
|
||||
<div class="card card-author">
|
||||
|
||||
<img
|
||||
src="/images/akesterson.webp"
|
||||
class="author-img"
|
||||
width="88"
|
||||
height="88"
|
||||
alt="author avatar">
|
||||
|
||||
<p class="author-name">Andrew Kesterson</p>
|
||||
<p class="author-description"><center><i>"Love God. Live Righteously. Die Well."</i> <br/> <br/> <a target="_blank" rel="noopener" href="https://github.com/akesterson">GitHub</a> || <a target="_blank" rel="noopener" href="https://www.linkedin.com/in/andrewkesterson/">LinkedIn</a> <br/> </center></p>
|
||||
<div class="author-message">
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-tags-count"
|
||||
href="/tags">
|
||||
<span>0</span>
|
||||
<span>Tags</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="sticky-tablet">
|
||||
|
||||
|
||||
<article class="display-when-two-columns spacer">
|
||||
<div class="card card-content toc-card">
|
||||
<div class="toc-header">
|
||||
<i
|
||||
class="iconfont icon-menu"
|
||||
style="padding-right: 2px;">
|
||||
</i>TOC
|
||||
</div>
|
||||
<ol class="toc"><li class="toc-item toc-level-1"><a class="toc-link"><span class="toc-text"></span></a></li></ol>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
|
||||
<article class="card card-content categories-widget">
|
||||
<div class="categories-card">
|
||||
<div class="categories-header">
|
||||
<i
|
||||
class="iconfont icon-fenlei"
|
||||
style="padding-right: 2px;">
|
||||
</i>Categories
|
||||
</div>
|
||||
<div class="categories-list">
|
||||
|
||||
<a href="/categories/Books/">
|
||||
<div class="categories-list-item">
|
||||
Books
|
||||
<span class="categories-list-item-badge">13</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Faith/">
|
||||
<div class="categories-list-item">
|
||||
Faith
|
||||
<span class="categories-list-item-badge">6</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Outdoors/">
|
||||
<div class="categories-list-item">
|
||||
Outdoors
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Technology/">
|
||||
<div class="categories-list-item">
|
||||
Technology
|
||||
<span class="categories-list-item-badge">3</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Leadership/">
|
||||
<div class="categories-list-item">
|
||||
Leadership
|
||||
<span class="categories-list-item-badge">7</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Philosophy/">
|
||||
<div class="categories-list-item">
|
||||
Philosophy
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/History/">
|
||||
<div class="categories-list-item">
|
||||
History
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Liberal-Education/">
|
||||
<div class="categories-list-item">
|
||||
Liberal-Education
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<article class="card card-content tags-widget">
|
||||
<div class="tags-card">
|
||||
<div class="tags-header">
|
||||
<i
|
||||
class="iconfont icon-biaoqian"
|
||||
style="padding-right: 2px;">
|
||||
</i>hot tags
|
||||
</div>
|
||||
<div class="tags-list">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
|
||||
</div>
|
||||
</aside>
|
||||
<main class="main-column">
|
||||
|
||||
<article class="card card-content">
|
||||
<header>
|
||||
<h1 class="post-title">
|
||||
Single Pane of Glass
|
||||
</h1>
|
||||
</header>
|
||||
<div class="post-meta post-show-meta">
|
||||
<time datetime="2026-01-11T03:03:05.994Z">
|
||||
<i
|
||||
class="iconfont icon-calendar"
|
||||
style="margin-right: 2px;">
|
||||
</i>
|
||||
<span>2026-01-11</span>
|
||||
</time>
|
||||
|
||||
<span class="dot"></span>
|
||||
|
||||
<a
|
||||
href="/categories/Technology/"
|
||||
class="post-meta-link">
|
||||
Technology
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
<span class="dot"></span>
|
||||
<span>405 words</span>
|
||||
|
||||
</div>
|
||||
|
||||
</header>
|
||||
<div
|
||||
id="section"
|
||||
class="post-content">
|
||||
<h1 id=""><a href="#" class="headerlink" title=""></a></h1><p>On a given day, I have to manage:</p>
|
||||
<ul>
|
||||
<li>Three telephones that can ring</li>
|
||||
<li>Two telephones that can manage text messages</li>
|
||||
<li>Five separate chat programs</li>
|
||||
<li>(At least) Three separate computers that I actually use (not even counting servers)</li>
|
||||
<li>(At least) Three separate email accounts</li>
|
||||
<li>(At least) Five separate task trackers</li>
|
||||
<li>(At least) Three separate note apps (or physical notebooks with notes in them)</li>
|
||||
</ul>
|
||||
<p>How do I know what to do next? Let me check my task tracker. Oh wait… which one should I check first? Okay, I’ll check that one. But… what if I’m forgetting something important in the other four task trackers? I should go check. </p>
|
||||
<center><img alt="Actual footage of me finding my next task" src="/images/dog-chasing-tail.gif"/></center>
|
||||
|
||||
<p>Hey this is an interesting news story that I’d like to forward to my wife. Let’s send it over to her quickly. Wait.. what’s the best way to send it? I found it on my laptop. She doesn’t use discord, or IRC, or steam chat, or mattermost. Her phone is an iphone, my PC is linux, so I can’t forward it from my laptop using iMessage. I could use google messenger, paired with my second android phone, to send it via google messages, but then she’s getting a text from my work number, which is confusing. I could email it, but that will take forever. I guess I’ll just send it over facebook messenger, and let Zuck see the meme.</p>
|
||||
<center><img alt="Which mail carrier did that go through again?" src="/images/no-mail-charlie-brown.gif"/></center>
|
||||
|
||||
<p>Oh hey here’s a good idea I should write down for later. <em>later arrives</em> … Now where did I put that idea? I need to work on it some more. Did I put it in my Synology notes? In the notebook I keep in my breast pocket? In onenote? In my emacs org-mode that I am kinda half-assed using? In that random text file on my laptop that I forgot to sync somewhere else so I can reach it when I’m here at the coffee shop on my Android tablet? Well …. I guess that idea wasn’t that important anyway. I’m sure I’ll find it later.</p>
|
||||
<center><img alt="O Note, Where Art Thou?" src="/images/i-disappear-sometimes.jpg"/></center>
|
||||
|
||||
<p>The fragmentation of the digital landscape, particularly my digital landscape, is absolutely out of control. My kingdom for a single tool for each of my central needs:</p>
|
||||
<ul>
|
||||
<li>Communication</li>
|
||||
<li>Planning</li>
|
||||
<li>Note taking</li>
|
||||
</ul>
|
||||
<p>I am officially on a quest to identify the proper single pane of glass for all of these items and to mercilessly eliminate the others from my life.</p>
|
||||
<center><img alt="I'm a grown ass man" src="/images/too-old-for-this-shit.gif"/></center>
|
||||
|
||||
|
||||
</div>
|
||||
<div>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
<div class="nav">
|
||||
|
||||
|
||||
<div class="nav-item-next">
|
||||
<a
|
||||
href="/2026/01/11/Smart-LEGO/"
|
||||
class="nav-link">
|
||||
<div>
|
||||
<div class="nav-label">Next</div>
|
||||
|
||||
<div class="nav-title">Smart LEGO </div>
|
||||
|
||||
</div>
|
||||
<i class="iconfont icon-right nav-next-icon"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="card card-content toc-card"
|
||||
id="mobiletoc">
|
||||
<div class="toc-header">
|
||||
<i
|
||||
class="iconfont icon-menu"
|
||||
style="padding-right: 2px;">
|
||||
</i>TOC
|
||||
</div>
|
||||
<ol class="toc"><li class="toc-item toc-level-1"><a class="toc-link"><span class="toc-text"></span></a></li></ol>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<aside class="right-column">
|
||||
<div class="sticky-widescreen">
|
||||
|
||||
|
||||
<article class="card card-content toc-card">
|
||||
<div class="toc-header">
|
||||
<i
|
||||
class="iconfont icon-menu"
|
||||
style="padding-right: 2px;">
|
||||
</i>TOC
|
||||
</div>
|
||||
<ol class="toc"><li class="toc-item toc-level-1"><a class="toc-link"><span class="toc-text"></span></a></li></ol>
|
||||
</article>
|
||||
|
||||
|
||||
<article class="card card-content">
|
||||
<div class="recent-posts-card">
|
||||
<div class="recent-posts-header">
|
||||
<i
|
||||
class="iconfont icon-wenzhang_huaban"
|
||||
style="padding-right: 2px;">
|
||||
</i>Recent Posts
|
||||
</div>
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
|
||||
</div>
|
||||
</aside>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer class="footer">
|
||||
<div class="footer-container">
|
||||
<div>
|
||||
<div class="footer-dsc">
|
||||
<span>
|
||||
Copyright ©
|
||||
|
||||
|
||||
-
|
||||
2026
|
||||
|
||||
</span>
|
||||
|
||||
<a
|
||||
href="mailto:andrew@aklabs.net"
|
||||
class="footer-link">
|
||||
Andrew Kesterson
|
||||
</a>
|
||||
<br/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="footer-dsc">
|
||||
|
||||
Powered by
|
||||
<a
|
||||
href="https://hexo.io/"
|
||||
class="footer-link"
|
||||
target="_blank"
|
||||
rel="nofollow noopener noreferrer">
|
||||
Hexo
|
||||
</a>
|
||||
|
||||
|
||||
<span> | </span>
|
||||
|
||||
|
||||
Theme -
|
||||
<a
|
||||
href="https://github.com/theme-kaze"
|
||||
class="footer-link"
|
||||
target="_blank"
|
||||
rel="nofollow noopener noreferrer">
|
||||
Kaze
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</footer>
|
||||
|
||||
|
||||
<a
|
||||
role="button"
|
||||
id="scrollbutton"
|
||||
class="basebutton"
|
||||
aria-label="回到顶部">
|
||||
<i class="iconfont icon-arrowleft button-icon"></i>
|
||||
</a>
|
||||
|
||||
<a
|
||||
role="button"
|
||||
id="menubutton"
|
||||
aria-label="menu button"
|
||||
class="basebutton">
|
||||
<i class="iconfont icon-menu button-icon"></i>
|
||||
</a>
|
||||
<a
|
||||
role="button"
|
||||
id="popbutton"
|
||||
class="basebutton"
|
||||
aria-label="控制中心">
|
||||
<i class="iconfont icon-expand button-icon"></i>
|
||||
</a>
|
||||
<a
|
||||
role="button"
|
||||
id="darkbutton"
|
||||
class="basebutton darkwidget"
|
||||
aria-label="夜色模式">
|
||||
<i class="iconfont icon-weather button-icon"></i>
|
||||
</a>
|
||||
<a
|
||||
role="button"
|
||||
id="searchbutton"
|
||||
class="basebutton searchwidget"
|
||||
aria-label="搜索">
|
||||
<i class="iconfont icon-search button-icon"></i>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
var addImgLayout = function () {
|
||||
var img = document.querySelectorAll('.post-content img')
|
||||
var i
|
||||
for (i = 0; i < img.length; i++) {
|
||||
var wrapper = document.createElement('a')
|
||||
wrapper.setAttribute('href', img[i].getAttribute('data-src'))
|
||||
wrapper.setAttribute('aria-label', 'illustration')
|
||||
wrapper.style.cssText =
|
||||
'width: 100%; display: flex; justify-content: center;'
|
||||
if (img[i].alt) wrapper.dataset.caption = img[i].alt
|
||||
wrapper.dataset.nolink = true
|
||||
img[i].before(wrapper)
|
||||
wrapper.append(img[i])
|
||||
var divWrap = document.createElement('div')
|
||||
divWrap.classList.add('gallery')
|
||||
wrapper.before(divWrap)
|
||||
divWrap.append(wrapper)
|
||||
}
|
||||
baguetteBox.run('.gallery')
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
loadScript(
|
||||
"/js/lib/lightbox/baguetteBox.min.js",
|
||||
addImgLayout
|
||||
)
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<script src="/js/main.js"></script>
|
||||
|
||||
|
||||
<script>
|
||||
var addLazyload = function () {
|
||||
var observer = lozad('.lozad', {
|
||||
load: function (el) {
|
||||
el.srcset = el.getAttribute('data-src')
|
||||
},
|
||||
loaded: function (el) {
|
||||
el.classList.add('loaded')
|
||||
},
|
||||
})
|
||||
observer.observe()
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
loadScript('/js/lib/lozad.min.js', addLazyload)
|
||||
</script>
|
||||
|
||||
<script src="//instant.page/5.1.0" type="module"
|
||||
integrity="sha384-by67kQnR+pyfy8yWP4kPO12fHKRLHZPfEsiSXR8u2IKcTdxD805MGUXBzVPnkLHw"></script>
|
||||
|
||||
<script>
|
||||
var googleAnalytics = function () {
|
||||
window.dataLayer = window.dataLayer || []
|
||||
function gtag() {
|
||||
dataLayer.push(arguments)
|
||||
}
|
||||
gtag('js', new Date())
|
||||
gtag('config', 'G-S3YLF516N6')
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
loadScript(
|
||||
'https://www.googletagmanager.com/gtag/js?id=' +
|
||||
'G-S3YLF516N6',
|
||||
googleAnalytics
|
||||
)
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
782
2026/01/11/Smart-LEGO/index.html
Normal file
782
2026/01/11/Smart-LEGO/index.html
Normal file
@@ -0,0 +1,782 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width, initial-scale=1.0, minimum-scale=1.0">
|
||||
<meta
|
||||
http-equiv="X-UA-Compatible"
|
||||
content="ie=edge">
|
||||
<meta
|
||||
name="theme-color"
|
||||
content="#fff"
|
||||
id="theme-color">
|
||||
<meta
|
||||
name="description"
|
||||
content="AKLabs">
|
||||
<link
|
||||
rel="icon"
|
||||
href="/">
|
||||
<title>Smart LEGO</title>
|
||||
|
||||
|
||||
<meta
|
||||
property="og:title"
|
||||
content="Smart LEGO">
|
||||
|
||||
|
||||
<meta
|
||||
property="og:url"
|
||||
content="https://aklabs.net/2026/01/11/Smart-LEGO/index.html">
|
||||
|
||||
|
||||
<meta
|
||||
property="og:img"
|
||||
content="/images/akesterson.webp">
|
||||
|
||||
|
||||
|
||||
<meta
|
||||
property="og:type"
|
||||
content="article">
|
||||
<meta
|
||||
property="og:article:published_time"
|
||||
content="2026-01-11">
|
||||
<meta
|
||||
property="og:article:modified_time"
|
||||
content="2026-01-11">
|
||||
<meta
|
||||
property="og:article:author"
|
||||
content="Andrew Kesterson">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="preload" href="//at.alicdn.com/t/font_1946621_i1kgafibvw.css" as="style" >
|
||||
<link rel="preload" href="//at.alicdn.com/t/font_1952792_89b4ac4k4up.css" as="style" >
|
||||
<link rel="preload" href="/css/main.css" as="style" >
|
||||
|
||||
<link rel="modulepreload" href="//instant.page/5.1.0">
|
||||
|
||||
<link rel="stylesheet" href="/css/main.css">
|
||||
|
||||
<link rel="stylesheet" href="//at.alicdn.com/t/font_1946621_i1kgafibvw.css">
|
||||
|
||||
<link rel="stylesheet" href="//at.alicdn.com/t/font_1952792_89b4ac4k4up.css">
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/lightbox/baguetteBox.min.css">
|
||||
|
||||
<script>
|
||||
function loadScript(url, cb) {
|
||||
var script = document.createElement('script');
|
||||
script.src = url;
|
||||
if (cb) script.onload = cb;
|
||||
script.async = true;
|
||||
document.body.appendChild(script);
|
||||
}
|
||||
function loadCSS(href, data, attr) {
|
||||
var sheet = document.createElement('link');
|
||||
sheet.ref = 'stylesheet';
|
||||
sheet.href = href;
|
||||
sheet.dataset[data] = attr;
|
||||
document.head.appendChild(sheet);
|
||||
}
|
||||
function changeCSS(cssFile, data, attr) {
|
||||
var oldlink = document.querySelector(data);
|
||||
var newlink = document.createElement("link");
|
||||
newlink.setAttribute("rel", "stylesheet");
|
||||
newlink.setAttribute("href", cssFile);
|
||||
newlink.dataset.prism = attr;
|
||||
document.head.replaceChild(newlink, oldlink);
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
dark: 'light',
|
||||
light: 'dark'
|
||||
};
|
||||
var themeColor = {
|
||||
dark: '#1c1c1e',
|
||||
light: '#fff'
|
||||
}
|
||||
// get the data of css prefers-color-scheme
|
||||
var getCssMediaQuery = function() {
|
||||
return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
|
||||
};
|
||||
// reverse current darkmode setting function
|
||||
var reverseDarkModeSetting = function() {
|
||||
var setting = localStorage.getItem('user-color-scheme');
|
||||
if(reverseDarkList[setting]) {
|
||||
setting = reverseDarkList[setting];
|
||||
} else if(setting === null) {
|
||||
setting = reverseDarkList[getCssMediaQuery()];
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
localStorage.setItem('user-color-scheme', setting);
|
||||
return setting;
|
||||
};
|
||||
// apply current darkmode setting
|
||||
</script>
|
||||
|
||||
<script>
|
||||
var setDarkmode = function(mode) {
|
||||
var setting = mode || localStorage.getItem('user-color-scheme');
|
||||
if(setting === getCssMediaQuery()) {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="preload" href="/js/lib/lightbox/baguetteBox.min.js" as="script">
|
||||
<link rel="preload" href="/js/lib/lightbox/baguetteBox.min.css" as="style" >
|
||||
|
||||
|
||||
<link rel="preload" href="/js/lib/lozad.min.js" as="script">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<meta name="generator" content="Hexo 6.0.0"><link rel="alternate" href="/atom.xml" title="AKLabs" type="application/atom+xml">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
|
||||
<nav class="navbar">
|
||||
<div class="navbar-logo">
|
||||
<a class="navbar-logo-main" href="/">
|
||||
|
||||
<span class="navbar-logo-dsc">AKLabs</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="navbar-menu">
|
||||
|
||||
<a
|
||||
href="/now"
|
||||
class="navbar-menu-item">
|
||||
|
||||
~/.plan
|
||||
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/archives"
|
||||
class="navbar-menu-item">
|
||||
|
||||
Archive
|
||||
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/categories"
|
||||
class="navbar-menu-item">
|
||||
|
||||
Categories
|
||||
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/about"
|
||||
class="navbar-menu-item">
|
||||
|
||||
About
|
||||
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/consulting"
|
||||
class="navbar-menu-item">
|
||||
|
||||
Consulting
|
||||
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/contact"
|
||||
class="navbar-menu-item">
|
||||
|
||||
Contact
|
||||
|
||||
</a>
|
||||
|
||||
<button
|
||||
class="navbar-menu-item darknavbar navbar-menu-btn"
|
||||
aria-label="Toggle dark mode"
|
||||
id="dark">
|
||||
<i class="iconfont icon-weather"></i>
|
||||
</button>
|
||||
<button
|
||||
class="navbar-menu-item searchnavbar navbar-menu-btn"
|
||||
aria-label="Toggle search"
|
||||
id="search">
|
||||
<!-- <i
|
||||
class="iconfont icon-search"
|
||||
style="font-size: 1.2rem; font-weight: 400;">
|
||||
</i> -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img"
|
||||
class="iconify iconify--ion" width="28" height="28" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512">
|
||||
<path fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="28"
|
||||
d="M256 80a176 176 0 1 0 176 176A176 176 0 0 0 256 80Z"></path>
|
||||
<path fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="28"
|
||||
d="M232 160a72 72 0 1 0 72 72a72 72 0 0 0-72-72Z"></path>
|
||||
<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="28"
|
||||
d="M283.64 283.64L336 336"></path>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div
|
||||
id="local-search"
|
||||
style="display: none">
|
||||
<input
|
||||
class="navbar-menu-item"
|
||||
id="search-input"
|
||||
placeholder="请输入搜索内容..." />
|
||||
<div id="search-content"></div>
|
||||
</div>
|
||||
|
||||
<div class="section-wrap">
|
||||
<div class="container">
|
||||
<div class="columns">
|
||||
<aside class="left-column">
|
||||
|
||||
<div class="card card-author">
|
||||
|
||||
<img
|
||||
src="/images/akesterson.webp"
|
||||
class="author-img"
|
||||
width="88"
|
||||
height="88"
|
||||
alt="author avatar">
|
||||
|
||||
<p class="author-name">Andrew Kesterson</p>
|
||||
<p class="author-description"><center><i>"Love God. Live Righteously. Die Well."</i> <br/> <br/> <a target="_blank" rel="noopener" href="https://github.com/akesterson">GitHub</a> || <a target="_blank" rel="noopener" href="https://www.linkedin.com/in/andrewkesterson/">LinkedIn</a> <br/> </center></p>
|
||||
<div class="author-message">
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-tags-count"
|
||||
href="/tags">
|
||||
<span>0</span>
|
||||
<span>Tags</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="sticky-tablet">
|
||||
|
||||
|
||||
<article class="display-when-two-columns spacer">
|
||||
<div class="card card-content toc-card">
|
||||
<div class="toc-header">
|
||||
<i
|
||||
class="iconfont icon-menu"
|
||||
style="padding-right: 2px;">
|
||||
</i>TOC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
|
||||
|
||||
<article class="card card-content categories-widget">
|
||||
<div class="categories-card">
|
||||
<div class="categories-header">
|
||||
<i
|
||||
class="iconfont icon-fenlei"
|
||||
style="padding-right: 2px;">
|
||||
</i>Categories
|
||||
</div>
|
||||
<div class="categories-list">
|
||||
|
||||
<a href="/categories/Books/">
|
||||
<div class="categories-list-item">
|
||||
Books
|
||||
<span class="categories-list-item-badge">13</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Faith/">
|
||||
<div class="categories-list-item">
|
||||
Faith
|
||||
<span class="categories-list-item-badge">6</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Outdoors/">
|
||||
<div class="categories-list-item">
|
||||
Outdoors
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Technology/">
|
||||
<div class="categories-list-item">
|
||||
Technology
|
||||
<span class="categories-list-item-badge">3</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Leadership/">
|
||||
<div class="categories-list-item">
|
||||
Leadership
|
||||
<span class="categories-list-item-badge">7</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Philosophy/">
|
||||
<div class="categories-list-item">
|
||||
Philosophy
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/History/">
|
||||
<div class="categories-list-item">
|
||||
History
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Liberal-Education/">
|
||||
<div class="categories-list-item">
|
||||
Liberal-Education
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<article class="card card-content tags-widget">
|
||||
<div class="tags-card">
|
||||
<div class="tags-header">
|
||||
<i
|
||||
class="iconfont icon-biaoqian"
|
||||
style="padding-right: 2px;">
|
||||
</i>hot tags
|
||||
</div>
|
||||
<div class="tags-list">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
|
||||
</div>
|
||||
</aside>
|
||||
<main class="main-column">
|
||||
|
||||
<article class="card card-content">
|
||||
<header>
|
||||
<h1 class="post-title">
|
||||
Smart LEGO
|
||||
</h1>
|
||||
</header>
|
||||
<div class="post-meta post-show-meta">
|
||||
<time datetime="2026-01-11T03:03:05.994Z">
|
||||
<i
|
||||
class="iconfont icon-calendar"
|
||||
style="margin-right: 2px;">
|
||||
</i>
|
||||
<span>2026-01-11</span>
|
||||
</time>
|
||||
|
||||
<span class="dot"></span>
|
||||
|
||||
<a
|
||||
href="/categories/Technology/"
|
||||
class="post-meta-link">
|
||||
Technology
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
<span class="dot"></span>
|
||||
<span>279 words</span>
|
||||
|
||||
</div>
|
||||
|
||||
</header>
|
||||
<div
|
||||
id="section"
|
||||
class="post-content">
|
||||
<p><a target="_blank" rel="noopener" href="https://tech.slashdot.org/story/26/01/06/1842257/lego-unveils-smart-bricks-its-most-significant-evolution-in-50-years?utm_source=rss1.0mainlinkanon&utm_medium=feed">A Slashdot user reports that</a></p>
|
||||
<blockquote>
|
||||
<p>The Lego Group today unveiled Smart Bricks, a tiny computer that fits entirely inside a classic 2x4 brick and which the company is calling the most significant evolution in its building system since the introduction of the minifigure in 1978. The Smart Brick contains a custom ASIC smaller than a single Lego stud and includes light and sound output, light sensors, inertial sensors for detecting movement and tilt, and a microphone that functions as a virtual button rather than a recording device. The bricks detect NFC-equipped smart tags embedded in new tiles and minifigures, and they form a Bluetooth mesh network to sense each other’s position and orientation. They charge wirelessly on a pad that can handle multiple bricks simultaneously.</p>
|
||||
</blockquote>
|
||||
<p>So we have physical artifacts the size of a lego brick that can:</p>
|
||||
<ul>
|
||||
<li>detect movement and tilt</li>
|
||||
<li>sense light</li>
|
||||
<li>output light and sound</li>
|
||||
<li>a microphone that acts like a button</li>
|
||||
</ul>
|
||||
<p>I’m really curious to get my hands on some of these and see what you can do with them. I could easily see them being constructed into physical artifacts that serve as some kind of interactive amusement device - at the very least, you would be able to make a Simon Says or BopIt. I’m also curious how (if at all) they could interact with Mindstorms. I’m sure someone out there will figure out a way to make them interact with smoething they weren’t meant to.</p>
|
||||
<p>On a long enough timeline, we’ll have an entire computer constructed entirely of LEGO Smart Bricks that runs DOOM, like a real life minecraft Redstone contraption.</p>
|
||||
<p>What a time to be alive.</p>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
<div class="nav">
|
||||
|
||||
<div class="nav-item-prev">
|
||||
<a
|
||||
href="/2026/01/11/Single-Pane-of-Glass/"
|
||||
class="nav-link">
|
||||
<i class="iconfont icon-left nav-prev-icon"></i>
|
||||
<div>
|
||||
<div class="nav-label">Prev</div>
|
||||
|
||||
<div class="nav-title">Single Pane of Glass </div>
|
||||
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="nav-item-next">
|
||||
<a
|
||||
href="/2026/01/11/libakerror/"
|
||||
class="nav-link">
|
||||
<div>
|
||||
<div class="nav-label">Next</div>
|
||||
|
||||
<div class="nav-title">libakerror </div>
|
||||
|
||||
</div>
|
||||
<i class="iconfont icon-right nav-next-icon"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="card card-content toc-card"
|
||||
id="mobiletoc">
|
||||
<div class="toc-header">
|
||||
<i
|
||||
class="iconfont icon-menu"
|
||||
style="padding-right: 2px;">
|
||||
</i>TOC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<aside class="right-column">
|
||||
<div class="sticky-widescreen">
|
||||
|
||||
|
||||
<article class="card card-content toc-card">
|
||||
<div class="toc-header">
|
||||
<i
|
||||
class="iconfont icon-menu"
|
||||
style="padding-right: 2px;">
|
||||
</i>TOC
|
||||
</div>
|
||||
|
||||
</article>
|
||||
|
||||
|
||||
<article class="card card-content">
|
||||
<div class="recent-posts-card">
|
||||
<div class="recent-posts-header">
|
||||
<i
|
||||
class="iconfont icon-wenzhang_huaban"
|
||||
style="padding-right: 2px;">
|
||||
</i>Recent Posts
|
||||
</div>
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
|
||||
</div>
|
||||
</aside>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer class="footer">
|
||||
<div class="footer-container">
|
||||
<div>
|
||||
<div class="footer-dsc">
|
||||
<span>
|
||||
Copyright ©
|
||||
|
||||
|
||||
-
|
||||
2026
|
||||
|
||||
</span>
|
||||
|
||||
<a
|
||||
href="mailto:andrew@aklabs.net"
|
||||
class="footer-link">
|
||||
Andrew Kesterson
|
||||
</a>
|
||||
<br/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="footer-dsc">
|
||||
|
||||
Powered by
|
||||
<a
|
||||
href="https://hexo.io/"
|
||||
class="footer-link"
|
||||
target="_blank"
|
||||
rel="nofollow noopener noreferrer">
|
||||
Hexo
|
||||
</a>
|
||||
|
||||
|
||||
<span> | </span>
|
||||
|
||||
|
||||
Theme -
|
||||
<a
|
||||
href="https://github.com/theme-kaze"
|
||||
class="footer-link"
|
||||
target="_blank"
|
||||
rel="nofollow noopener noreferrer">
|
||||
Kaze
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</footer>
|
||||
|
||||
|
||||
<a
|
||||
role="button"
|
||||
id="scrollbutton"
|
||||
class="basebutton"
|
||||
aria-label="回到顶部">
|
||||
<i class="iconfont icon-arrowleft button-icon"></i>
|
||||
</a>
|
||||
|
||||
<a
|
||||
role="button"
|
||||
id="menubutton"
|
||||
aria-label="menu button"
|
||||
class="basebutton">
|
||||
<i class="iconfont icon-menu button-icon"></i>
|
||||
</a>
|
||||
<a
|
||||
role="button"
|
||||
id="popbutton"
|
||||
class="basebutton"
|
||||
aria-label="控制中心">
|
||||
<i class="iconfont icon-expand button-icon"></i>
|
||||
</a>
|
||||
<a
|
||||
role="button"
|
||||
id="darkbutton"
|
||||
class="basebutton darkwidget"
|
||||
aria-label="夜色模式">
|
||||
<i class="iconfont icon-weather button-icon"></i>
|
||||
</a>
|
||||
<a
|
||||
role="button"
|
||||
id="searchbutton"
|
||||
class="basebutton searchwidget"
|
||||
aria-label="搜索">
|
||||
<i class="iconfont icon-search button-icon"></i>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
var addImgLayout = function () {
|
||||
var img = document.querySelectorAll('.post-content img')
|
||||
var i
|
||||
for (i = 0; i < img.length; i++) {
|
||||
var wrapper = document.createElement('a')
|
||||
wrapper.setAttribute('href', img[i].getAttribute('data-src'))
|
||||
wrapper.setAttribute('aria-label', 'illustration')
|
||||
wrapper.style.cssText =
|
||||
'width: 100%; display: flex; justify-content: center;'
|
||||
if (img[i].alt) wrapper.dataset.caption = img[i].alt
|
||||
wrapper.dataset.nolink = true
|
||||
img[i].before(wrapper)
|
||||
wrapper.append(img[i])
|
||||
var divWrap = document.createElement('div')
|
||||
divWrap.classList.add('gallery')
|
||||
wrapper.before(divWrap)
|
||||
divWrap.append(wrapper)
|
||||
}
|
||||
baguetteBox.run('.gallery')
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
loadScript(
|
||||
"/js/lib/lightbox/baguetteBox.min.js",
|
||||
addImgLayout
|
||||
)
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<script src="/js/main.js"></script>
|
||||
|
||||
|
||||
<script>
|
||||
var addLazyload = function () {
|
||||
var observer = lozad('.lozad', {
|
||||
load: function (el) {
|
||||
el.srcset = el.getAttribute('data-src')
|
||||
},
|
||||
loaded: function (el) {
|
||||
el.classList.add('loaded')
|
||||
},
|
||||
})
|
||||
observer.observe()
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
loadScript('/js/lib/lozad.min.js', addLazyload)
|
||||
</script>
|
||||
|
||||
<script src="//instant.page/5.1.0" type="module"
|
||||
integrity="sha384-by67kQnR+pyfy8yWP4kPO12fHKRLHZPfEsiSXR8u2IKcTdxD805MGUXBzVPnkLHw"></script>
|
||||
|
||||
<script>
|
||||
var googleAnalytics = function () {
|
||||
window.dataLayer = window.dataLayer || []
|
||||
function gtag() {
|
||||
dataLayer.push(arguments)
|
||||
}
|
||||
gtag('js', new Date())
|
||||
gtag('config', 'G-S3YLF516N6')
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
loadScript(
|
||||
'https://www.googletagmanager.com/gtag/js?id=' +
|
||||
'G-S3YLF516N6',
|
||||
googleAnalytics
|
||||
)
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
1440
2026/01/11/libakerror/index.html
Normal file
1440
2026/01/11/libakerror/index.html
Normal file
File diff suppressed because it is too large
Load Diff
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -532,12 +577,12 @@
|
||||
</h1>
|
||||
</header>
|
||||
<div class="post-meta post-show-meta">
|
||||
<time datetime="2026-01-08T14:22:41.403Z">
|
||||
<time datetime="2026-01-11T03:03:05.995Z">
|
||||
<i
|
||||
class="iconfont icon-calendar"
|
||||
style="margin-right: 2px;">
|
||||
</i>
|
||||
<span>2026-01-08</span>
|
||||
<span>2026-01-11</span>
|
||||
</time>
|
||||
|
||||
|
||||
@@ -657,23 +702,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -706,6 +751,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -713,7 +762,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -569,23 +614,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -618,6 +663,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -625,7 +674,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -601,23 +646,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -650,6 +695,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -657,7 +706,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -569,23 +614,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -618,6 +663,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -625,7 +674,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -633,23 +678,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -682,6 +727,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -689,7 +738,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -601,23 +646,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -650,6 +695,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -657,7 +706,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -569,23 +614,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -618,6 +663,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -625,7 +674,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -569,23 +614,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -618,6 +663,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -625,7 +674,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -569,23 +614,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -618,6 +663,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -625,7 +674,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -649,23 +694,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -698,6 +743,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -705,7 +754,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -569,23 +614,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -618,6 +663,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -625,7 +674,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -569,23 +614,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -618,6 +663,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -625,7 +674,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -601,23 +646,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -650,6 +695,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -657,7 +706,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -633,23 +678,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -682,6 +727,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -689,7 +738,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -569,23 +614,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -618,6 +663,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -625,7 +674,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -569,23 +614,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -618,6 +663,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -625,7 +674,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -538,26 +583,10 @@
|
||||
<div class="archive-timeline-item">
|
||||
<div class="archive-timeline-post">
|
||||
<div class="card card-content">
|
||||
<div class="archive-timeline-post-date">2026-01-08</div>
|
||||
<div class="archive-timeline-post-date">2026-01-11</div>
|
||||
<div class="archive-timeline-post-content">
|
||||
<a
|
||||
href="/2026/01/08/News-2026-Week-1/"
|
||||
class="archive-timeline-post-item">
|
||||
News - 2026 - Week 1
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="archive-timeline-item">
|
||||
<div class="archive-timeline-post">
|
||||
<div class="card card-content">
|
||||
<div class="archive-timeline-post-date">2026-01-08</div>
|
||||
<div class="archive-timeline-post-content">
|
||||
<a
|
||||
href="/2026/01/08/Single-Pane-of-Glass/"
|
||||
href="/2026/01/11/Single-Pane-of-Glass/"
|
||||
class="archive-timeline-post-item">
|
||||
Single Pane of Glass
|
||||
</a>
|
||||
@@ -570,10 +599,10 @@
|
||||
<div class="archive-timeline-item">
|
||||
<div class="archive-timeline-post">
|
||||
<div class="card card-content">
|
||||
<div class="archive-timeline-post-date">2026-01-08</div>
|
||||
<div class="archive-timeline-post-date">2026-01-11</div>
|
||||
<div class="archive-timeline-post-content">
|
||||
<a
|
||||
href="/2026/01/08/Smart-LEGO/"
|
||||
href="/2026/01/11/Smart-LEGO/"
|
||||
class="archive-timeline-post-item">
|
||||
Smart LEGO
|
||||
</a>
|
||||
@@ -582,6 +611,38 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="archive-timeline-item">
|
||||
<div class="archive-timeline-post">
|
||||
<div class="card card-content">
|
||||
<div class="archive-timeline-post-date">2026-01-11</div>
|
||||
<div class="archive-timeline-post-content">
|
||||
<a
|
||||
href="/2026/01/11/libakerror/"
|
||||
class="archive-timeline-post-item">
|
||||
libakerror
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="archive-timeline-item">
|
||||
<div class="archive-timeline-post">
|
||||
<div class="card card-content">
|
||||
<div class="archive-timeline-post-date">2026-01-11</div>
|
||||
<div class="archive-timeline-post-content">
|
||||
<a
|
||||
href="/2026/01/11/News-2026-Week-1/"
|
||||
class="archive-timeline-post-item">
|
||||
News - 2026 - Week 1
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
@@ -601,23 +662,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -650,6 +711,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -657,7 +722,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -538,26 +583,10 @@
|
||||
<div class="archive-timeline-item">
|
||||
<div class="archive-timeline-post">
|
||||
<div class="card card-content">
|
||||
<div class="archive-timeline-post-date">2026-01-08</div>
|
||||
<div class="archive-timeline-post-date">2026-01-11</div>
|
||||
<div class="archive-timeline-post-content">
|
||||
<a
|
||||
href="/2026/01/08/News-2026-Week-1/"
|
||||
class="archive-timeline-post-item">
|
||||
News - 2026 - Week 1
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="archive-timeline-item">
|
||||
<div class="archive-timeline-post">
|
||||
<div class="card card-content">
|
||||
<div class="archive-timeline-post-date">2026-01-08</div>
|
||||
<div class="archive-timeline-post-content">
|
||||
<a
|
||||
href="/2026/01/08/Single-Pane-of-Glass/"
|
||||
href="/2026/01/11/Single-Pane-of-Glass/"
|
||||
class="archive-timeline-post-item">
|
||||
Single Pane of Glass
|
||||
</a>
|
||||
@@ -570,10 +599,10 @@
|
||||
<div class="archive-timeline-item">
|
||||
<div class="archive-timeline-post">
|
||||
<div class="card card-content">
|
||||
<div class="archive-timeline-post-date">2026-01-08</div>
|
||||
<div class="archive-timeline-post-date">2026-01-11</div>
|
||||
<div class="archive-timeline-post-content">
|
||||
<a
|
||||
href="/2026/01/08/Smart-LEGO/"
|
||||
href="/2026/01/11/Smart-LEGO/"
|
||||
class="archive-timeline-post-item">
|
||||
Smart LEGO
|
||||
</a>
|
||||
@@ -582,6 +611,38 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="archive-timeline-item">
|
||||
<div class="archive-timeline-post">
|
||||
<div class="card card-content">
|
||||
<div class="archive-timeline-post-date">2026-01-11</div>
|
||||
<div class="archive-timeline-post-content">
|
||||
<a
|
||||
href="/2026/01/11/libakerror/"
|
||||
class="archive-timeline-post-item">
|
||||
libakerror
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="archive-timeline-item">
|
||||
<div class="archive-timeline-post">
|
||||
<div class="card card-content">
|
||||
<div class="archive-timeline-post-date">2026-01-11</div>
|
||||
<div class="archive-timeline-post-content">
|
||||
<a
|
||||
href="/2026/01/11/News-2026-Week-1/"
|
||||
class="archive-timeline-post-item">
|
||||
News - 2026 - Week 1
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
@@ -601,23 +662,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -650,6 +711,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -657,7 +722,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -538,26 +583,10 @@
|
||||
<div class="archive-timeline-item">
|
||||
<div class="archive-timeline-post">
|
||||
<div class="card card-content">
|
||||
<div class="archive-timeline-post-date">2026-01-08</div>
|
||||
<div class="archive-timeline-post-date">2026-01-11</div>
|
||||
<div class="archive-timeline-post-content">
|
||||
<a
|
||||
href="/2026/01/08/News-2026-Week-1/"
|
||||
class="archive-timeline-post-item">
|
||||
News - 2026 - Week 1
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="archive-timeline-item">
|
||||
<div class="archive-timeline-post">
|
||||
<div class="card card-content">
|
||||
<div class="archive-timeline-post-date">2026-01-08</div>
|
||||
<div class="archive-timeline-post-content">
|
||||
<a
|
||||
href="/2026/01/08/Single-Pane-of-Glass/"
|
||||
href="/2026/01/11/Single-Pane-of-Glass/"
|
||||
class="archive-timeline-post-item">
|
||||
Single Pane of Glass
|
||||
</a>
|
||||
@@ -570,10 +599,10 @@
|
||||
<div class="archive-timeline-item">
|
||||
<div class="archive-timeline-post">
|
||||
<div class="card card-content">
|
||||
<div class="archive-timeline-post-date">2026-01-08</div>
|
||||
<div class="archive-timeline-post-date">2026-01-11</div>
|
||||
<div class="archive-timeline-post-content">
|
||||
<a
|
||||
href="/2026/01/08/Smart-LEGO/"
|
||||
href="/2026/01/11/Smart-LEGO/"
|
||||
class="archive-timeline-post-item">
|
||||
Smart LEGO
|
||||
</a>
|
||||
@@ -583,6 +612,38 @@
|
||||
</div>
|
||||
|
||||
|
||||
<div class="archive-timeline-item">
|
||||
<div class="archive-timeline-post">
|
||||
<div class="card card-content">
|
||||
<div class="archive-timeline-post-date">2026-01-11</div>
|
||||
<div class="archive-timeline-post-content">
|
||||
<a
|
||||
href="/2026/01/11/libakerror/"
|
||||
class="archive-timeline-post-item">
|
||||
libakerror
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="archive-timeline-item">
|
||||
<div class="archive-timeline-post">
|
||||
<div class="card card-content">
|
||||
<div class="archive-timeline-post-date">2026-01-11</div>
|
||||
<div class="archive-timeline-post-content">
|
||||
<a
|
||||
href="/2026/01/11/News-2026-Week-1/"
|
||||
class="archive-timeline-post-item">
|
||||
News - 2026 - Week 1
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="archive-timeline-tag"><span>2025</span></div>
|
||||
|
||||
|
||||
@@ -684,25 +745,6 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="archive-timeline-tag"><span>2023</span></div>
|
||||
|
||||
|
||||
<div class="archive-timeline-item">
|
||||
<div class="archive-timeline-post">
|
||||
<div class="card card-content">
|
||||
<div class="archive-timeline-post-date">2023-12-23</div>
|
||||
<div class="archive-timeline-post-content">
|
||||
<a
|
||||
href="/2023/12/23/United-States-Catholic-Catechism-for-Adults/"
|
||||
class="archive-timeline-post-item">
|
||||
US Catholic Catechism for Adults
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="nav">
|
||||
@@ -739,23 +781,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -788,6 +830,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -795,7 +841,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -535,6 +580,22 @@
|
||||
<div class="archive-timeline-tag"><span>2023</span></div>
|
||||
|
||||
|
||||
<div class="archive-timeline-item">
|
||||
<div class="archive-timeline-post">
|
||||
<div class="card card-content">
|
||||
<div class="archive-timeline-post-date">2023-12-23</div>
|
||||
<div class="archive-timeline-post-content">
|
||||
<a
|
||||
href="/2023/12/23/United-States-Catholic-Catechism-for-Adults/"
|
||||
class="archive-timeline-post-item">
|
||||
US Catholic Catechism for Adults
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="archive-timeline-item">
|
||||
<div class="archive-timeline-post">
|
||||
<div class="card card-content">
|
||||
@@ -681,22 +742,6 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="archive-timeline-item">
|
||||
<div class="archive-timeline-post">
|
||||
<div class="card card-content">
|
||||
<div class="archive-timeline-post-date">2022-03-17</div>
|
||||
<div class="archive-timeline-post-content">
|
||||
<a
|
||||
href="/2022/03/17/The-Righteous-Mind/"
|
||||
class="archive-timeline-post-item">
|
||||
The Righteous Mind
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="nav">
|
||||
@@ -714,6 +759,18 @@
|
||||
</div>
|
||||
|
||||
|
||||
<div class="nav-item-next">
|
||||
<a
|
||||
href="/archives/page/3/"
|
||||
class="nav-link">
|
||||
<div>
|
||||
<div class="nav-label">Next</div>
|
||||
|
||||
</div>
|
||||
<i class="iconfont icon-right nav-next-icon"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
@@ -733,23 +790,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -782,6 +839,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -789,7 +850,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
949
archives/page/3/index.html
Normal file
949
archives/page/3/index.html
Normal file
@@ -0,0 +1,949 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width, initial-scale=1.0, minimum-scale=1.0">
|
||||
<meta
|
||||
http-equiv="X-UA-Compatible"
|
||||
content="ie=edge">
|
||||
<meta
|
||||
name="theme-color"
|
||||
content="#fff"
|
||||
id="theme-color">
|
||||
<meta
|
||||
name="description"
|
||||
content="AKLabs">
|
||||
<link
|
||||
rel="icon"
|
||||
href="/">
|
||||
<title>Archive</title>
|
||||
|
||||
|
||||
<meta
|
||||
property="og:title"
|
||||
content="Archive">
|
||||
|
||||
|
||||
<meta
|
||||
property="og:url"
|
||||
content="https://aklabs.net/archives/page/3/index.html">
|
||||
|
||||
|
||||
<meta
|
||||
property="og:img"
|
||||
content="/images/akesterson.webp">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="preload" href="//at.alicdn.com/t/font_1946621_i1kgafibvw.css" as="style" >
|
||||
<link rel="preload" href="//at.alicdn.com/t/font_1952792_89b4ac4k4up.css" as="style" >
|
||||
<link rel="preload" href="/css/main.css" as="style" >
|
||||
|
||||
<link rel="modulepreload" href="//instant.page/5.1.0">
|
||||
|
||||
<link rel="stylesheet" href="/css/main.css">
|
||||
|
||||
<link rel="stylesheet" href="//at.alicdn.com/t/font_1946621_i1kgafibvw.css">
|
||||
|
||||
<link rel="stylesheet" href="//at.alicdn.com/t/font_1952792_89b4ac4k4up.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function loadScript(url, cb) {
|
||||
var script = document.createElement('script');
|
||||
script.src = url;
|
||||
if (cb) script.onload = cb;
|
||||
script.async = true;
|
||||
document.body.appendChild(script);
|
||||
}
|
||||
function loadCSS(href, data, attr) {
|
||||
var sheet = document.createElement('link');
|
||||
sheet.ref = 'stylesheet';
|
||||
sheet.href = href;
|
||||
sheet.dataset[data] = attr;
|
||||
document.head.appendChild(sheet);
|
||||
}
|
||||
function changeCSS(cssFile, data, attr) {
|
||||
var oldlink = document.querySelector(data);
|
||||
var newlink = document.createElement("link");
|
||||
newlink.setAttribute("rel", "stylesheet");
|
||||
newlink.setAttribute("href", cssFile);
|
||||
newlink.dataset.prism = attr;
|
||||
document.head.replaceChild(newlink, oldlink);
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
dark: 'light',
|
||||
light: 'dark'
|
||||
};
|
||||
var themeColor = {
|
||||
dark: '#1c1c1e',
|
||||
light: '#fff'
|
||||
}
|
||||
// get the data of css prefers-color-scheme
|
||||
var getCssMediaQuery = function() {
|
||||
return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
|
||||
};
|
||||
// reverse current darkmode setting function
|
||||
var reverseDarkModeSetting = function() {
|
||||
var setting = localStorage.getItem('user-color-scheme');
|
||||
if(reverseDarkList[setting]) {
|
||||
setting = reverseDarkList[setting];
|
||||
} else if(setting === null) {
|
||||
setting = reverseDarkList[getCssMediaQuery()];
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
localStorage.setItem('user-color-scheme', setting);
|
||||
return setting;
|
||||
};
|
||||
// apply current darkmode setting
|
||||
</script>
|
||||
|
||||
<script>
|
||||
var setDarkmode = function(mode) {
|
||||
var setting = mode || localStorage.getItem('user-color-scheme');
|
||||
if(setting === getCssMediaQuery()) {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="preload" href="/js/lib/lightbox/baguetteBox.min.js" as="script">
|
||||
<link rel="preload" href="/js/lib/lightbox/baguetteBox.min.css" as="style" >
|
||||
|
||||
|
||||
<link rel="preload" href="/js/lib/lozad.min.js" as="script">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<meta name="generator" content="Hexo 6.0.0"><link rel="alternate" href="/atom.xml" title="AKLabs" type="application/atom+xml">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
|
||||
<nav class="navbar">
|
||||
<div class="navbar-logo">
|
||||
<a class="navbar-logo-main" href="/">
|
||||
|
||||
<span class="navbar-logo-dsc">AKLabs</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="navbar-menu">
|
||||
|
||||
<a
|
||||
href="/now"
|
||||
class="navbar-menu-item">
|
||||
|
||||
~/.plan
|
||||
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/archives"
|
||||
class="navbar-menu-item">
|
||||
|
||||
Archive
|
||||
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/categories"
|
||||
class="navbar-menu-item">
|
||||
|
||||
Categories
|
||||
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/about"
|
||||
class="navbar-menu-item">
|
||||
|
||||
About
|
||||
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/consulting"
|
||||
class="navbar-menu-item">
|
||||
|
||||
Consulting
|
||||
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/contact"
|
||||
class="navbar-menu-item">
|
||||
|
||||
Contact
|
||||
|
||||
</a>
|
||||
|
||||
<button
|
||||
class="navbar-menu-item darknavbar navbar-menu-btn"
|
||||
aria-label="Toggle dark mode"
|
||||
id="dark">
|
||||
<i class="iconfont icon-weather"></i>
|
||||
</button>
|
||||
<button
|
||||
class="navbar-menu-item searchnavbar navbar-menu-btn"
|
||||
aria-label="Toggle search"
|
||||
id="search">
|
||||
<!-- <i
|
||||
class="iconfont icon-search"
|
||||
style="font-size: 1.2rem; font-weight: 400;">
|
||||
</i> -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img"
|
||||
class="iconify iconify--ion" width="28" height="28" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512">
|
||||
<path fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="28"
|
||||
d="M256 80a176 176 0 1 0 176 176A176 176 0 0 0 256 80Z"></path>
|
||||
<path fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="28"
|
||||
d="M232 160a72 72 0 1 0 72 72a72 72 0 0 0-72-72Z"></path>
|
||||
<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="28"
|
||||
d="M283.64 283.64L336 336"></path>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div
|
||||
id="local-search"
|
||||
style="display: none">
|
||||
<input
|
||||
class="navbar-menu-item"
|
||||
id="search-input"
|
||||
placeholder="请输入搜索内容..." />
|
||||
<div id="search-content"></div>
|
||||
</div>
|
||||
|
||||
<div class="section-wrap">
|
||||
<div class="container">
|
||||
<div class="columns">
|
||||
<aside class="left-column">
|
||||
|
||||
<div class="card card-author">
|
||||
|
||||
<img
|
||||
src="/images/akesterson.webp"
|
||||
class="author-img"
|
||||
width="88"
|
||||
height="88"
|
||||
alt="author avatar">
|
||||
|
||||
<p class="author-name">Andrew Kesterson</p>
|
||||
<p class="author-description"><center><i>"Love God. Live Righteously. Die Well."</i> <br/> <br/> <a target="_blank" rel="noopener" href="https://github.com/akesterson">GitHub</a> || <a target="_blank" rel="noopener" href="https://www.linkedin.com/in/andrewkesterson/">LinkedIn</a> <br/> </center></p>
|
||||
<div class="author-message">
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-tags-count"
|
||||
href="/tags">
|
||||
<span>0</span>
|
||||
<span>Tags</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="sticky-tablet">
|
||||
|
||||
|
||||
|
||||
<article class="card card-content categories-widget">
|
||||
<div class="categories-card">
|
||||
<div class="categories-header">
|
||||
<i
|
||||
class="iconfont icon-fenlei"
|
||||
style="padding-right: 2px;">
|
||||
</i>Categories
|
||||
</div>
|
||||
<div class="categories-list">
|
||||
|
||||
<a href="/categories/Books/">
|
||||
<div class="categories-list-item">
|
||||
Books
|
||||
<span class="categories-list-item-badge">13</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Faith/">
|
||||
<div class="categories-list-item">
|
||||
Faith
|
||||
<span class="categories-list-item-badge">6</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Outdoors/">
|
||||
<div class="categories-list-item">
|
||||
Outdoors
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Technology/">
|
||||
<div class="categories-list-item">
|
||||
Technology
|
||||
<span class="categories-list-item-badge">3</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Leadership/">
|
||||
<div class="categories-list-item">
|
||||
Leadership
|
||||
<span class="categories-list-item-badge">7</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Philosophy/">
|
||||
<div class="categories-list-item">
|
||||
Philosophy
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/History/">
|
||||
<div class="categories-list-item">
|
||||
History
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Liberal-Education/">
|
||||
<div class="categories-list-item">
|
||||
Liberal-Education
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<article class="card card-content tags-widget">
|
||||
<div class="tags-card">
|
||||
<div class="tags-header">
|
||||
<i
|
||||
class="iconfont icon-biaoqian"
|
||||
style="padding-right: 2px;">
|
||||
</i>hot tags
|
||||
</div>
|
||||
<div class="tags-list">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
|
||||
<article class="card card-content widescreen-archive archive-widget">
|
||||
<div class="archive-card">
|
||||
<div class="archive-card-header">
|
||||
<i
|
||||
class="iconfont icon-wodebaobiao"
|
||||
style="padding-right: 2px;">
|
||||
</i>Archive
|
||||
</div>
|
||||
<div class="archive-card-list">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a
|
||||
href="/archives/2025"
|
||||
class="archive-card-list-item">
|
||||
2025
|
||||
<span class="archive-card-list-item-badge">1</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a
|
||||
href="/archives/2024"
|
||||
class="archive-card-list-item">
|
||||
2024
|
||||
<span class="archive-card-list-item-badge">5</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a
|
||||
href="/archives/2023"
|
||||
class="archive-card-list-item">
|
||||
2023
|
||||
<span class="archive-card-list-item-badge">6</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a
|
||||
href="/archives/2022"
|
||||
class="archive-card-list-item">
|
||||
2022
|
||||
<span class="archive-card-list-item-badge">5</span>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
</div>
|
||||
</aside>
|
||||
<main class="main-column">
|
||||
|
||||
<div class="card card-content">
|
||||
<h1 class="widget-title">Archive</h1>
|
||||
</div>
|
||||
<div class="archive-timeline">
|
||||
|
||||
|
||||
|
||||
<div class="archive-timeline-tag"><span>2022</span></div>
|
||||
|
||||
|
||||
<div class="archive-timeline-item">
|
||||
<div class="archive-timeline-post">
|
||||
<div class="card card-content">
|
||||
<div class="archive-timeline-post-date">2022-03-17</div>
|
||||
<div class="archive-timeline-post-content">
|
||||
<a
|
||||
href="/2022/03/17/The-Righteous-Mind/"
|
||||
class="archive-timeline-post-item">
|
||||
The Righteous Mind
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="nav">
|
||||
|
||||
<div class="nav-item-prev">
|
||||
<a
|
||||
href="/archives/page/2/"
|
||||
class="nav-link">
|
||||
<i class="iconfont icon-left nav-prev-icon"></i>
|
||||
<div>
|
||||
<div class="nav-label">Prev</div>
|
||||
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<aside class="right-column">
|
||||
<div class="sticky-widescreen">
|
||||
|
||||
|
||||
|
||||
<article class="card card-content">
|
||||
<div class="recent-posts-card">
|
||||
<div class="recent-posts-header">
|
||||
<i
|
||||
class="iconfont icon-wenzhang_huaban"
|
||||
style="padding-right: 2px;">
|
||||
</i>Recent Posts
|
||||
</div>
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
|
||||
<article class="card card-content">
|
||||
<div class="archive-card">
|
||||
<div class="archive-card-header">
|
||||
<i
|
||||
class="iconfont icon-wodebaobiao"
|
||||
style="padding-right: 2px;">
|
||||
</i>Archive
|
||||
</div>
|
||||
<div class="archive-card-list">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a
|
||||
href="/archives/2025"
|
||||
class="archive-card-list-item">
|
||||
2025
|
||||
<span class="archive-card-list-item-badge">1</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a
|
||||
href="/archives/2024"
|
||||
class="archive-card-list-item">
|
||||
2024
|
||||
<span class="archive-card-list-item-badge">5</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a
|
||||
href="/archives/2023"
|
||||
class="archive-card-list-item">
|
||||
2023
|
||||
<span class="archive-card-list-item-badge">6</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a
|
||||
href="/archives/2022"
|
||||
class="archive-card-list-item">
|
||||
2022
|
||||
<span class="archive-card-list-item-badge">5</span>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
</div>
|
||||
</aside>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer class="footer">
|
||||
<div class="footer-container">
|
||||
<div>
|
||||
<div class="footer-dsc">
|
||||
<span>
|
||||
Copyright ©
|
||||
|
||||
|
||||
-
|
||||
2026
|
||||
|
||||
</span>
|
||||
|
||||
<a
|
||||
href="mailto:andrew@aklabs.net"
|
||||
class="footer-link">
|
||||
Andrew Kesterson
|
||||
</a>
|
||||
<br/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="footer-dsc">
|
||||
|
||||
Powered by
|
||||
<a
|
||||
href="https://hexo.io/"
|
||||
class="footer-link"
|
||||
target="_blank"
|
||||
rel="nofollow noopener noreferrer">
|
||||
Hexo
|
||||
</a>
|
||||
|
||||
|
||||
<span> | </span>
|
||||
|
||||
|
||||
Theme -
|
||||
<a
|
||||
href="https://github.com/theme-kaze"
|
||||
class="footer-link"
|
||||
target="_blank"
|
||||
rel="nofollow noopener noreferrer">
|
||||
Kaze
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</footer>
|
||||
|
||||
|
||||
<a
|
||||
role="button"
|
||||
id="scrollbutton"
|
||||
class="basebutton"
|
||||
aria-label="回到顶部">
|
||||
<i class="iconfont icon-arrowleft button-icon"></i>
|
||||
</a>
|
||||
|
||||
<a
|
||||
role="button"
|
||||
id="menubutton"
|
||||
aria-label="menu button"
|
||||
class="basebutton">
|
||||
<i class="iconfont icon-menu button-icon"></i>
|
||||
</a>
|
||||
<a
|
||||
role="button"
|
||||
id="popbutton"
|
||||
class="basebutton"
|
||||
aria-label="控制中心">
|
||||
<i class="iconfont icon-expand button-icon"></i>
|
||||
</a>
|
||||
<a
|
||||
role="button"
|
||||
id="darkbutton"
|
||||
class="basebutton darkwidget"
|
||||
aria-label="夜色模式">
|
||||
<i class="iconfont icon-weather button-icon"></i>
|
||||
</a>
|
||||
<a
|
||||
role="button"
|
||||
id="searchbutton"
|
||||
class="basebutton searchwidget"
|
||||
aria-label="搜索">
|
||||
<i class="iconfont icon-search button-icon"></i>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
<script src="/js/main.js"></script>
|
||||
|
||||
|
||||
<script>
|
||||
var addLazyload = function () {
|
||||
var observer = lozad('.lozad', {
|
||||
load: function (el) {
|
||||
el.srcset = el.getAttribute('data-src')
|
||||
},
|
||||
loaded: function (el) {
|
||||
el.classList.add('loaded')
|
||||
},
|
||||
})
|
||||
observer.observe()
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
loadScript('/js/lib/lozad.min.js', addLazyload)
|
||||
</script>
|
||||
|
||||
<script src="//instant.page/5.1.0" type="module"
|
||||
integrity="sha384-by67kQnR+pyfy8yWP4kPO12fHKRLHZPfEsiSXR8u2IKcTdxD805MGUXBzVPnkLHw"></script>
|
||||
|
||||
<script>
|
||||
var googleAnalytics = function () {
|
||||
window.dataLayer = window.dataLayer || []
|
||||
function gtag() {
|
||||
dataLayer.push(arguments)
|
||||
}
|
||||
gtag('js', new Date())
|
||||
gtag('config', 'G-S3YLF516N6')
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
loadScript(
|
||||
'https://www.googletagmanager.com/gtag/js?id=' +
|
||||
'G-S3YLF516N6',
|
||||
googleAnalytics
|
||||
)
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
130
atom.xml
130
atom.xml
@@ -6,7 +6,7 @@
|
||||
<link href="https://aklabs.net/atom.xml" rel="self"/>
|
||||
|
||||
<link href="https://aklabs.net/"/>
|
||||
<updated>2026-01-08T14:22:41.402Z</updated>
|
||||
<updated>2026-01-11T03:03:05.994Z</updated>
|
||||
<id>https://aklabs.net/</id>
|
||||
|
||||
<author>
|
||||
@@ -16,31 +16,12 @@
|
||||
|
||||
<generator uri="https://hexo.io/">Hexo</generator>
|
||||
|
||||
<entry>
|
||||
<title>News - 2026 - Week 1</title>
|
||||
<link href="https://aklabs.net/2026/01/08/News-2026-Week-1/"/>
|
||||
<id>https://aklabs.net/2026/01/08/News-2026-Week-1/</id>
|
||||
<published>2026-01-08T14:22:41.402Z</published>
|
||||
<updated>2026-01-08T14:22:41.402Z</updated>
|
||||
|
||||
|
||||
<summary type="html">Musings on android source code releases, the return of the keyboard PC, some AI workflows are just event driven architecture, sociopaths in civil service, what happens when AI interfaces replace proper APIs, and comprehensible interfaces to quantum computing chips</summary>
|
||||
|
||||
|
||||
|
||||
<category term="Technology" scheme="https://aklabs.net/categories/Technology/"/>
|
||||
|
||||
<category term="Current Events" scheme="https://aklabs.net/categories/Current-Events/"/>
|
||||
|
||||
|
||||
</entry>
|
||||
|
||||
<entry>
|
||||
<title>Single Pane of Glass</title>
|
||||
<link href="https://aklabs.net/2026/01/08/Single-Pane-of-Glass/"/>
|
||||
<id>https://aklabs.net/2026/01/08/Single-Pane-of-Glass/</id>
|
||||
<published>2026-01-08T14:22:41.402Z</published>
|
||||
<updated>2026-01-08T14:22:41.402Z</updated>
|
||||
<link href="https://aklabs.net/2026/01/11/Single-Pane-of-Glass/"/>
|
||||
<id>https://aklabs.net/2026/01/11/Single-Pane-of-Glass/</id>
|
||||
<published>2026-01-11T03:03:05.994Z</published>
|
||||
<updated>2026-01-11T03:03:05.994Z</updated>
|
||||
|
||||
|
||||
<summary type="html">There are too many ways of doing the same shit across too many different mediums and platforms</summary>
|
||||
@@ -54,10 +35,10 @@
|
||||
|
||||
<entry>
|
||||
<title>Smart LEGO</title>
|
||||
<link href="https://aklabs.net/2026/01/08/Smart-LEGO/"/>
|
||||
<id>https://aklabs.net/2026/01/08/Smart-LEGO/</id>
|
||||
<published>2026-01-08T14:22:41.402Z</published>
|
||||
<updated>2026-01-08T14:22:41.402Z</updated>
|
||||
<link href="https://aklabs.net/2026/01/11/Smart-LEGO/"/>
|
||||
<id>https://aklabs.net/2026/01/11/Smart-LEGO/</id>
|
||||
<published>2026-01-11T03:03:05.994Z</published>
|
||||
<updated>2026-01-11T03:03:05.994Z</updated>
|
||||
|
||||
|
||||
|
||||
@@ -73,6 +54,42 @@
|
||||
<category term="Technology" scheme="https://aklabs.net/categories/Technology/"/>
|
||||
|
||||
|
||||
</entry>
|
||||
|
||||
<entry>
|
||||
<title>libakerror</title>
|
||||
<link href="https://aklabs.net/2026/01/11/libakerror/"/>
|
||||
<id>https://aklabs.net/2026/01/11/libakerror/</id>
|
||||
<published>2026-01-11T03:03:05.994Z</published>
|
||||
<updated>2026-01-11T03:03:05.994Z</updated>
|
||||
|
||||
|
||||
<summary type="html">A C library I wrote for exception style error handling in C code</summary>
|
||||
|
||||
|
||||
|
||||
<category term="technology" scheme="https://aklabs.net/categories/technology/"/>
|
||||
|
||||
|
||||
</entry>
|
||||
|
||||
<entry>
|
||||
<title>News - 2026 - Week 1</title>
|
||||
<link href="https://aklabs.net/2026/01/11/News-2026-Week-1/"/>
|
||||
<id>https://aklabs.net/2026/01/11/News-2026-Week-1/</id>
|
||||
<published>2026-01-11T03:03:05.993Z</published>
|
||||
<updated>2026-01-11T03:03:05.993Z</updated>
|
||||
|
||||
|
||||
<summary type="html">Musings on android source code releases, the return of the keyboard PC, some AI workflows are just event driven architecture, sociopaths in civil service, what happens when AI interfaces replace proper APIs, and comprehensible interfaces to quantum computing chips</summary>
|
||||
|
||||
|
||||
|
||||
<category term="Technology" scheme="https://aklabs.net/categories/Technology/"/>
|
||||
|
||||
<category term="Current Events" scheme="https://aklabs.net/categories/Current-Events/"/>
|
||||
|
||||
|
||||
</entry>
|
||||
|
||||
<entry>
|
||||
@@ -80,7 +97,7 @@
|
||||
<link href="https://aklabs.net/2025/01/04/Socrates-got-a-raw-deal/"/>
|
||||
<id>https://aklabs.net/2025/01/04/Socrates-got-a-raw-deal/</id>
|
||||
<published>2025-01-04T15:06:30.000Z</published>
|
||||
<updated>2026-01-08T14:22:41.402Z</updated>
|
||||
<updated>2026-01-11T03:03:05.994Z</updated>
|
||||
|
||||
|
||||
|
||||
@@ -109,7 +126,7 @@
|
||||
<link href="https://aklabs.net/2024/03/08/new-manager-pt3/"/>
|
||||
<id>https://aklabs.net/2024/03/08/new-manager-pt3/</id>
|
||||
<published>2024-03-08T00:10:28.000Z</published>
|
||||
<updated>2026-01-08T14:22:41.403Z</updated>
|
||||
<updated>2026-01-11T03:03:05.995Z</updated>
|
||||
|
||||
|
||||
|
||||
@@ -132,7 +149,7 @@
|
||||
<link href="https://aklabs.net/2024/03/05/new-manager-pt2/"/>
|
||||
<id>https://aklabs.net/2024/03/05/new-manager-pt2/</id>
|
||||
<published>2024-03-05T12:10:28.000Z</published>
|
||||
<updated>2026-01-08T14:22:41.402Z</updated>
|
||||
<updated>2026-01-11T03:03:05.995Z</updated>
|
||||
|
||||
|
||||
|
||||
@@ -155,7 +172,7 @@
|
||||
<link href="https://aklabs.net/2024/03/03/new-manager-pt1/"/>
|
||||
<id>https://aklabs.net/2024/03/03/new-manager-pt1/</id>
|
||||
<published>2024-03-03T12:10:28.000Z</published>
|
||||
<updated>2026-01-08T14:22:41.402Z</updated>
|
||||
<updated>2026-01-11T03:03:05.994Z</updated>
|
||||
|
||||
|
||||
|
||||
@@ -178,7 +195,7 @@
|
||||
<link href="https://aklabs.net/2024/02/09/expectations/"/>
|
||||
<id>https://aklabs.net/2024/02/09/expectations/</id>
|
||||
<published>2024-02-09T08:30:30.000Z</published>
|
||||
<updated>2026-01-08T14:22:41.402Z</updated>
|
||||
<updated>2026-01-11T03:03:05.994Z</updated>
|
||||
|
||||
|
||||
|
||||
@@ -201,7 +218,7 @@
|
||||
<link href="https://aklabs.net/2024/01/29/Simon-Sinek-Start-with-Why/"/>
|
||||
<id>https://aklabs.net/2024/01/29/Simon-Sinek-Start-with-Why/</id>
|
||||
<published>2024-01-29T16:35:48.000Z</published>
|
||||
<updated>2026-01-08T14:22:41.402Z</updated>
|
||||
<updated>2026-01-11T03:03:05.994Z</updated>
|
||||
|
||||
|
||||
|
||||
@@ -226,7 +243,7 @@
|
||||
<link href="https://aklabs.net/2023/12/23/United-States-Catholic-Catechism-for-Adults/"/>
|
||||
<id>https://aklabs.net/2023/12/23/United-States-Catholic-Catechism-for-Adults/</id>
|
||||
<published>2023-12-23T17:03:44.000Z</published>
|
||||
<updated>2026-01-08T14:22:41.402Z</updated>
|
||||
<updated>2026-01-11T03:03:05.994Z</updated>
|
||||
|
||||
|
||||
|
||||
@@ -251,7 +268,7 @@
|
||||
<link href="https://aklabs.net/2023/11/05/Copper-Sun/"/>
|
||||
<id>https://aklabs.net/2023/11/05/Copper-Sun/</id>
|
||||
<published>2023-11-05T20:01:51.000Z</published>
|
||||
<updated>2026-01-08T14:22:41.401Z</updated>
|
||||
<updated>2026-01-11T03:03:05.993Z</updated>
|
||||
|
||||
|
||||
|
||||
@@ -276,7 +293,7 @@
|
||||
<link href="https://aklabs.net/2023/10/10/The-Cost-of-Discipleship/"/>
|
||||
<id>https://aklabs.net/2023/10/10/The-Cost-of-Discipleship/</id>
|
||||
<published>2023-10-10T20:23:33.000Z</published>
|
||||
<updated>2026-01-08T14:22:41.402Z</updated>
|
||||
<updated>2026-01-11T03:03:05.994Z</updated>
|
||||
|
||||
|
||||
|
||||
@@ -301,7 +318,7 @@
|
||||
<link href="https://aklabs.net/2023/09/28/Bill-Heavey-Jerkey-What-Did-I-Just-Eat/"/>
|
||||
<id>https://aklabs.net/2023/09/28/Bill-Heavey-Jerkey-What-Did-I-Just-Eat/</id>
|
||||
<published>2023-09-28T20:34:33.000Z</published>
|
||||
<updated>2026-01-08T14:22:41.401Z</updated>
|
||||
<updated>2026-01-11T03:03:05.993Z</updated>
|
||||
|
||||
|
||||
|
||||
@@ -326,7 +343,7 @@
|
||||
<link href="https://aklabs.net/2023/09/24/How-Should-We-Then-Live/"/>
|
||||
<id>https://aklabs.net/2023/09/24/How-Should-We-Then-Live/</id>
|
||||
<published>2023-09-24T20:58:40.000Z</published>
|
||||
<updated>2026-01-08T14:22:41.401Z</updated>
|
||||
<updated>2026-01-11T03:03:05.993Z</updated>
|
||||
|
||||
|
||||
|
||||
@@ -351,7 +368,7 @@
|
||||
<link href="https://aklabs.net/2023/09/12/Christianity-First-3000-Years/"/>
|
||||
<id>https://aklabs.net/2023/09/12/Christianity-First-3000-Years/</id>
|
||||
<published>2023-09-12T21:20:20.000Z</published>
|
||||
<updated>2026-01-08T14:22:41.401Z</updated>
|
||||
<updated>2026-01-11T03:03:05.993Z</updated>
|
||||
|
||||
|
||||
|
||||
@@ -376,7 +393,7 @@
|
||||
<link href="https://aklabs.net/2022/10/15/Live-Not-By-Lies/"/>
|
||||
<id>https://aklabs.net/2022/10/15/Live-Not-By-Lies/</id>
|
||||
<published>2022-10-15T22:11:25.000Z</published>
|
||||
<updated>2026-01-08T14:22:41.402Z</updated>
|
||||
<updated>2026-01-11T03:03:05.993Z</updated>
|
||||
|
||||
|
||||
|
||||
@@ -401,7 +418,7 @@
|
||||
<link href="https://aklabs.net/2022/05/19/Jesus-Outside-the-Lines/"/>
|
||||
<id>https://aklabs.net/2022/05/19/Jesus-Outside-the-Lines/</id>
|
||||
<published>2022-05-19T21:51:09.000Z</published>
|
||||
<updated>2026-01-08T14:22:41.401Z</updated>
|
||||
<updated>2026-01-11T03:03:05.993Z</updated>
|
||||
|
||||
|
||||
|
||||
@@ -426,7 +443,7 @@
|
||||
<link href="https://aklabs.net/2022/05/04/American-Prison/"/>
|
||||
<id>https://aklabs.net/2022/05/04/American-Prison/</id>
|
||||
<published>2022-05-04T21:42:34.000Z</published>
|
||||
<updated>2026-01-08T14:22:41.401Z</updated>
|
||||
<updated>2026-01-11T03:03:05.993Z</updated>
|
||||
|
||||
|
||||
|
||||
@@ -449,7 +466,7 @@
|
||||
<link href="https://aklabs.net/2022/05/02/The-Hero-Code/"/>
|
||||
<id>https://aklabs.net/2022/05/02/The-Hero-Code/</id>
|
||||
<published>2022-05-02T21:58:12.000Z</published>
|
||||
<updated>2026-01-08T14:22:41.402Z</updated>
|
||||
<updated>2026-01-11T03:03:05.994Z</updated>
|
||||
|
||||
|
||||
|
||||
@@ -462,31 +479,6 @@
|
||||
|
||||
|
||||
|
||||
<category term="Books" scheme="https://aklabs.net/categories/Books/"/>
|
||||
|
||||
<category term="Leadership" scheme="https://aklabs.net/categories/Leadership/"/>
|
||||
|
||||
|
||||
</entry>
|
||||
|
||||
<entry>
|
||||
<title>The Righteous Mind</title>
|
||||
<link href="https://aklabs.net/2022/03/17/The-Righteous-Mind/"/>
|
||||
<id>https://aklabs.net/2022/03/17/The-Righteous-Mind/</id>
|
||||
<published>2022-03-17T21:31:56.000Z</published>
|
||||
<updated>2026-01-08T14:22:41.402Z</updated>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<summary type="html"><img alt="Image of The Righteous Mind" style="float: left; padding: 20px 20px 20px 20px;"</summary>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<category term="Books" scheme="https://aklabs.net/categories/Books/"/>
|
||||
|
||||
<category term="Leadership" scheme="https://aklabs.net/categories/Leadership/"/>
|
||||
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -739,23 +784,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -788,6 +833,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -795,7 +844,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -618,23 +663,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -667,6 +712,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -674,7 +723,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -538,10 +583,10 @@
|
||||
<div class="archive-timeline-item">
|
||||
<div class="archive-timeline-post">
|
||||
<div class="card card-content">
|
||||
<div class="archive-timeline-post-date">2026-01-08</div>
|
||||
<div class="archive-timeline-post-date">2026-01-11</div>
|
||||
<div class="archive-timeline-post-content">
|
||||
<a
|
||||
href="/2026/01/08/News-2026-Week-1/"
|
||||
href="/2026/01/11/News-2026-Week-1/"
|
||||
class="archive-timeline-post-item">
|
||||
News - 2026 - Week 1
|
||||
</a>
|
||||
@@ -569,23 +614,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -618,6 +663,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -625,7 +674,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -652,23 +697,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -701,6 +746,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -708,7 +757,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -569,23 +614,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -618,6 +663,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -625,7 +674,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -668,23 +713,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -717,6 +762,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -724,7 +773,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -569,23 +614,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -618,6 +663,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -625,7 +674,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -569,23 +614,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -618,6 +663,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -625,7 +674,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -569,23 +614,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -618,6 +663,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -625,7 +674,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -538,26 +583,10 @@
|
||||
<div class="archive-timeline-item">
|
||||
<div class="archive-timeline-post">
|
||||
<div class="card card-content">
|
||||
<div class="archive-timeline-post-date">2026-01-08</div>
|
||||
<div class="archive-timeline-post-date">2026-01-11</div>
|
||||
<div class="archive-timeline-post-content">
|
||||
<a
|
||||
href="/2026/01/08/News-2026-Week-1/"
|
||||
class="archive-timeline-post-item">
|
||||
News - 2026 - Week 1
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="archive-timeline-item">
|
||||
<div class="archive-timeline-post">
|
||||
<div class="card card-content">
|
||||
<div class="archive-timeline-post-date">2026-01-08</div>
|
||||
<div class="archive-timeline-post-content">
|
||||
<a
|
||||
href="/2026/01/08/Single-Pane-of-Glass/"
|
||||
href="/2026/01/11/Single-Pane-of-Glass/"
|
||||
class="archive-timeline-post-item">
|
||||
Single Pane of Glass
|
||||
</a>
|
||||
@@ -570,10 +599,10 @@
|
||||
<div class="archive-timeline-item">
|
||||
<div class="archive-timeline-post">
|
||||
<div class="card card-content">
|
||||
<div class="archive-timeline-post-date">2026-01-08</div>
|
||||
<div class="archive-timeline-post-date">2026-01-11</div>
|
||||
<div class="archive-timeline-post-content">
|
||||
<a
|
||||
href="/2026/01/08/Smart-LEGO/"
|
||||
href="/2026/01/11/Smart-LEGO/"
|
||||
class="archive-timeline-post-item">
|
||||
Smart LEGO
|
||||
</a>
|
||||
@@ -582,6 +611,22 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="archive-timeline-item">
|
||||
<div class="archive-timeline-post">
|
||||
<div class="card card-content">
|
||||
<div class="archive-timeline-post-date">2026-01-11</div>
|
||||
<div class="archive-timeline-post-content">
|
||||
<a
|
||||
href="/2026/01/11/News-2026-Week-1/"
|
||||
class="archive-timeline-post-item">
|
||||
News - 2026 - Week 1
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
@@ -601,23 +646,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -650,6 +695,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -657,7 +706,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -532,7 +577,7 @@
|
||||
Categories
|
||||
</div>
|
||||
<div>
|
||||
Total 20 posts
|
||||
Total 21 posts
|
||||
</div>
|
||||
</div>
|
||||
<div class="card card-content categories-page-card">
|
||||
@@ -603,6 +648,17 @@
|
||||
</span>
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/categories/technology/"
|
||||
class="categories-page-list-item"
|
||||
style="margin-top: 0;">
|
||||
<span>technology</span>
|
||||
<span
|
||||
class="categories-page-list-item-total">
|
||||
Total 1 posts
|
||||
</span>
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/categories/Current-Events/"
|
||||
class="categories-page-list-item"
|
||||
@@ -654,23 +710,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -703,6 +759,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -710,7 +770,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
932
categories/technology/index.html
Normal file
932
categories/technology/index.html
Normal file
@@ -0,0 +1,932 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width, initial-scale=1.0, minimum-scale=1.0">
|
||||
<meta
|
||||
http-equiv="X-UA-Compatible"
|
||||
content="ie=edge">
|
||||
<meta
|
||||
name="theme-color"
|
||||
content="#fff"
|
||||
id="theme-color">
|
||||
<meta
|
||||
name="description"
|
||||
content="AKLabs">
|
||||
<link
|
||||
rel="icon"
|
||||
href="/">
|
||||
<title>Categories</title>
|
||||
|
||||
|
||||
<meta
|
||||
property="og:title"
|
||||
content="Categories">
|
||||
|
||||
|
||||
<meta
|
||||
property="og:url"
|
||||
content="https://aklabs.net/categories/technology/index.html">
|
||||
|
||||
|
||||
<meta
|
||||
property="og:img"
|
||||
content="/images/akesterson.webp">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="preload" href="//at.alicdn.com/t/font_1946621_i1kgafibvw.css" as="style" >
|
||||
<link rel="preload" href="//at.alicdn.com/t/font_1952792_89b4ac4k4up.css" as="style" >
|
||||
<link rel="preload" href="/css/main.css" as="style" >
|
||||
|
||||
<link rel="modulepreload" href="//instant.page/5.1.0">
|
||||
|
||||
<link rel="stylesheet" href="/css/main.css">
|
||||
|
||||
<link rel="stylesheet" href="//at.alicdn.com/t/font_1946621_i1kgafibvw.css">
|
||||
|
||||
<link rel="stylesheet" href="//at.alicdn.com/t/font_1952792_89b4ac4k4up.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function loadScript(url, cb) {
|
||||
var script = document.createElement('script');
|
||||
script.src = url;
|
||||
if (cb) script.onload = cb;
|
||||
script.async = true;
|
||||
document.body.appendChild(script);
|
||||
}
|
||||
function loadCSS(href, data, attr) {
|
||||
var sheet = document.createElement('link');
|
||||
sheet.ref = 'stylesheet';
|
||||
sheet.href = href;
|
||||
sheet.dataset[data] = attr;
|
||||
document.head.appendChild(sheet);
|
||||
}
|
||||
function changeCSS(cssFile, data, attr) {
|
||||
var oldlink = document.querySelector(data);
|
||||
var newlink = document.createElement("link");
|
||||
newlink.setAttribute("rel", "stylesheet");
|
||||
newlink.setAttribute("href", cssFile);
|
||||
newlink.dataset.prism = attr;
|
||||
document.head.replaceChild(newlink, oldlink);
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
dark: 'light',
|
||||
light: 'dark'
|
||||
};
|
||||
var themeColor = {
|
||||
dark: '#1c1c1e',
|
||||
light: '#fff'
|
||||
}
|
||||
// get the data of css prefers-color-scheme
|
||||
var getCssMediaQuery = function() {
|
||||
return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
|
||||
};
|
||||
// reverse current darkmode setting function
|
||||
var reverseDarkModeSetting = function() {
|
||||
var setting = localStorage.getItem('user-color-scheme');
|
||||
if(reverseDarkList[setting]) {
|
||||
setting = reverseDarkList[setting];
|
||||
} else if(setting === null) {
|
||||
setting = reverseDarkList[getCssMediaQuery()];
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
localStorage.setItem('user-color-scheme', setting);
|
||||
return setting;
|
||||
};
|
||||
// apply current darkmode setting
|
||||
</script>
|
||||
|
||||
<script>
|
||||
var setDarkmode = function(mode) {
|
||||
var setting = mode || localStorage.getItem('user-color-scheme');
|
||||
if(setting === getCssMediaQuery()) {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="preload" href="/js/lib/lightbox/baguetteBox.min.js" as="script">
|
||||
<link rel="preload" href="/js/lib/lightbox/baguetteBox.min.css" as="style" >
|
||||
|
||||
|
||||
<link rel="preload" href="/js/lib/lozad.min.js" as="script">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<meta name="generator" content="Hexo 6.0.0"><link rel="alternate" href="/atom.xml" title="AKLabs" type="application/atom+xml">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
|
||||
<nav class="navbar">
|
||||
<div class="navbar-logo">
|
||||
<a class="navbar-logo-main" href="/">
|
||||
|
||||
<span class="navbar-logo-dsc">AKLabs</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="navbar-menu">
|
||||
|
||||
<a
|
||||
href="/now"
|
||||
class="navbar-menu-item">
|
||||
|
||||
~/.plan
|
||||
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/archives"
|
||||
class="navbar-menu-item">
|
||||
|
||||
Archive
|
||||
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/categories"
|
||||
class="navbar-menu-item">
|
||||
|
||||
Categories
|
||||
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/about"
|
||||
class="navbar-menu-item">
|
||||
|
||||
About
|
||||
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/consulting"
|
||||
class="navbar-menu-item">
|
||||
|
||||
Consulting
|
||||
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/contact"
|
||||
class="navbar-menu-item">
|
||||
|
||||
Contact
|
||||
|
||||
</a>
|
||||
|
||||
<button
|
||||
class="navbar-menu-item darknavbar navbar-menu-btn"
|
||||
aria-label="Toggle dark mode"
|
||||
id="dark">
|
||||
<i class="iconfont icon-weather"></i>
|
||||
</button>
|
||||
<button
|
||||
class="navbar-menu-item searchnavbar navbar-menu-btn"
|
||||
aria-label="Toggle search"
|
||||
id="search">
|
||||
<!-- <i
|
||||
class="iconfont icon-search"
|
||||
style="font-size: 1.2rem; font-weight: 400;">
|
||||
</i> -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img"
|
||||
class="iconify iconify--ion" width="28" height="28" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512">
|
||||
<path fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="28"
|
||||
d="M256 80a176 176 0 1 0 176 176A176 176 0 0 0 256 80Z"></path>
|
||||
<path fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="28"
|
||||
d="M232 160a72 72 0 1 0 72 72a72 72 0 0 0-72-72Z"></path>
|
||||
<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="28"
|
||||
d="M283.64 283.64L336 336"></path>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div
|
||||
id="local-search"
|
||||
style="display: none">
|
||||
<input
|
||||
class="navbar-menu-item"
|
||||
id="search-input"
|
||||
placeholder="请输入搜索内容..." />
|
||||
<div id="search-content"></div>
|
||||
</div>
|
||||
|
||||
<div class="section-wrap">
|
||||
<div class="container">
|
||||
<div class="columns">
|
||||
<aside class="left-column">
|
||||
|
||||
<div class="card card-author">
|
||||
|
||||
<img
|
||||
src="/images/akesterson.webp"
|
||||
class="author-img"
|
||||
width="88"
|
||||
height="88"
|
||||
alt="author avatar">
|
||||
|
||||
<p class="author-name">Andrew Kesterson</p>
|
||||
<p class="author-description"><center><i>"Love God. Live Righteously. Die Well."</i> <br/> <br/> <a target="_blank" rel="noopener" href="https://github.com/akesterson">GitHub</a> || <a target="_blank" rel="noopener" href="https://www.linkedin.com/in/andrewkesterson/">LinkedIn</a> <br/> </center></p>
|
||||
<div class="author-message">
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-tags-count"
|
||||
href="/tags">
|
||||
<span>0</span>
|
||||
<span>Tags</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="sticky-tablet">
|
||||
|
||||
|
||||
|
||||
<article class="card card-content categories-widget">
|
||||
<div class="categories-card">
|
||||
<div class="categories-header">
|
||||
<i
|
||||
class="iconfont icon-fenlei"
|
||||
style="padding-right: 2px;">
|
||||
</i>Categories
|
||||
</div>
|
||||
<div class="categories-list">
|
||||
|
||||
<a href="/categories/Books/">
|
||||
<div class="categories-list-item">
|
||||
Books
|
||||
<span class="categories-list-item-badge">13</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Faith/">
|
||||
<div class="categories-list-item">
|
||||
Faith
|
||||
<span class="categories-list-item-badge">6</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Outdoors/">
|
||||
<div class="categories-list-item">
|
||||
Outdoors
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Technology/">
|
||||
<div class="categories-list-item">
|
||||
Technology
|
||||
<span class="categories-list-item-badge">3</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Leadership/">
|
||||
<div class="categories-list-item">
|
||||
Leadership
|
||||
<span class="categories-list-item-badge">7</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Philosophy/">
|
||||
<div class="categories-list-item">
|
||||
Philosophy
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/History/">
|
||||
<div class="categories-list-item">
|
||||
History
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Liberal-Education/">
|
||||
<div class="categories-list-item">
|
||||
Liberal-Education
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<article class="card card-content tags-widget">
|
||||
<div class="tags-card">
|
||||
<div class="tags-header">
|
||||
<i
|
||||
class="iconfont icon-biaoqian"
|
||||
style="padding-right: 2px;">
|
||||
</i>hot tags
|
||||
</div>
|
||||
<div class="tags-list">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
|
||||
<article class="card card-content widescreen-archive archive-widget">
|
||||
<div class="archive-card">
|
||||
<div class="archive-card-header">
|
||||
<i
|
||||
class="iconfont icon-wodebaobiao"
|
||||
style="padding-right: 2px;">
|
||||
</i>Archive
|
||||
</div>
|
||||
<div class="archive-card-list">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a
|
||||
href="/archives/2025"
|
||||
class="archive-card-list-item">
|
||||
2025
|
||||
<span class="archive-card-list-item-badge">1</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a
|
||||
href="/archives/2024"
|
||||
class="archive-card-list-item">
|
||||
2024
|
||||
<span class="archive-card-list-item-badge">5</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a
|
||||
href="/archives/2023"
|
||||
class="archive-card-list-item">
|
||||
2023
|
||||
<span class="archive-card-list-item-badge">6</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a
|
||||
href="/archives/2022"
|
||||
class="archive-card-list-item">
|
||||
2022
|
||||
<span class="archive-card-list-item-badge">5</span>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
</div>
|
||||
</aside>
|
||||
<main class="main-column">
|
||||
|
||||
<div class="card card-content category-page-card">
|
||||
<div class="categories-page-title">Categories - technology</div>
|
||||
</div>
|
||||
<div class="archive-timeline">
|
||||
|
||||
|
||||
|
||||
<div class="archive-timeline-tag"><span>2026</span></div>
|
||||
|
||||
|
||||
<div class="archive-timeline-item">
|
||||
<div class="archive-timeline-post">
|
||||
<div class="card card-content">
|
||||
<div class="archive-timeline-post-date">2026-01-11</div>
|
||||
<div class="archive-timeline-post-content">
|
||||
<a
|
||||
href="/2026/01/11/libakerror/"
|
||||
class="archive-timeline-post-item">
|
||||
libakerror
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<aside class="right-column">
|
||||
<div class="sticky-widescreen">
|
||||
|
||||
|
||||
|
||||
<article class="card card-content">
|
||||
<div class="recent-posts-card">
|
||||
<div class="recent-posts-header">
|
||||
<i
|
||||
class="iconfont icon-wenzhang_huaban"
|
||||
style="padding-right: 2px;">
|
||||
</i>Recent Posts
|
||||
</div>
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
|
||||
<article class="card card-content">
|
||||
<div class="archive-card">
|
||||
<div class="archive-card-header">
|
||||
<i
|
||||
class="iconfont icon-wodebaobiao"
|
||||
style="padding-right: 2px;">
|
||||
</i>Archive
|
||||
</div>
|
||||
<div class="archive-card-list">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a
|
||||
href="/archives/2025"
|
||||
class="archive-card-list-item">
|
||||
2025
|
||||
<span class="archive-card-list-item-badge">1</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a
|
||||
href="/archives/2024"
|
||||
class="archive-card-list-item">
|
||||
2024
|
||||
<span class="archive-card-list-item-badge">5</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a
|
||||
href="/archives/2023"
|
||||
class="archive-card-list-item">
|
||||
2023
|
||||
<span class="archive-card-list-item-badge">6</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a
|
||||
href="/archives/2022"
|
||||
class="archive-card-list-item">
|
||||
2022
|
||||
<span class="archive-card-list-item-badge">5</span>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
</div>
|
||||
</aside>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer class="footer">
|
||||
<div class="footer-container">
|
||||
<div>
|
||||
<div class="footer-dsc">
|
||||
<span>
|
||||
Copyright ©
|
||||
|
||||
|
||||
-
|
||||
2026
|
||||
|
||||
</span>
|
||||
|
||||
<a
|
||||
href="mailto:andrew@aklabs.net"
|
||||
class="footer-link">
|
||||
Andrew Kesterson
|
||||
</a>
|
||||
<br/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="footer-dsc">
|
||||
|
||||
Powered by
|
||||
<a
|
||||
href="https://hexo.io/"
|
||||
class="footer-link"
|
||||
target="_blank"
|
||||
rel="nofollow noopener noreferrer">
|
||||
Hexo
|
||||
</a>
|
||||
|
||||
|
||||
<span> | </span>
|
||||
|
||||
|
||||
Theme -
|
||||
<a
|
||||
href="https://github.com/theme-kaze"
|
||||
class="footer-link"
|
||||
target="_blank"
|
||||
rel="nofollow noopener noreferrer">
|
||||
Kaze
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</footer>
|
||||
|
||||
|
||||
<a
|
||||
role="button"
|
||||
id="scrollbutton"
|
||||
class="basebutton"
|
||||
aria-label="回到顶部">
|
||||
<i class="iconfont icon-arrowleft button-icon"></i>
|
||||
</a>
|
||||
|
||||
<a
|
||||
role="button"
|
||||
id="menubutton"
|
||||
aria-label="menu button"
|
||||
class="basebutton">
|
||||
<i class="iconfont icon-menu button-icon"></i>
|
||||
</a>
|
||||
<a
|
||||
role="button"
|
||||
id="popbutton"
|
||||
class="basebutton"
|
||||
aria-label="控制中心">
|
||||
<i class="iconfont icon-expand button-icon"></i>
|
||||
</a>
|
||||
<a
|
||||
role="button"
|
||||
id="darkbutton"
|
||||
class="basebutton darkwidget"
|
||||
aria-label="夜色模式">
|
||||
<i class="iconfont icon-weather button-icon"></i>
|
||||
</a>
|
||||
<a
|
||||
role="button"
|
||||
id="searchbutton"
|
||||
class="basebutton searchwidget"
|
||||
aria-label="搜索">
|
||||
<i class="iconfont icon-search button-icon"></i>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
<script src="/js/main.js"></script>
|
||||
|
||||
|
||||
<script>
|
||||
var addLazyload = function () {
|
||||
var observer = lozad('.lozad', {
|
||||
load: function (el) {
|
||||
el.srcset = el.getAttribute('data-src')
|
||||
},
|
||||
loaded: function (el) {
|
||||
el.classList.add('loaded')
|
||||
},
|
||||
})
|
||||
observer.observe()
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
loadScript('/js/lib/lozad.min.js', addLazyload)
|
||||
</script>
|
||||
|
||||
<script src="//instant.page/5.1.0" type="module"
|
||||
integrity="sha384-by67kQnR+pyfy8yWP4kPO12fHKRLHZPfEsiSXR8u2IKcTdxD805MGUXBzVPnkLHw"></script>
|
||||
|
||||
<script>
|
||||
var googleAnalytics = function () {
|
||||
window.dataLayer = window.dataLayer || []
|
||||
function gtag() {
|
||||
dataLayer.push(arguments)
|
||||
}
|
||||
gtag('js', new Date())
|
||||
gtag('config', 'G-S3YLF516N6')
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
loadScript(
|
||||
'https://www.googletagmanager.com/gtag/js?id=' +
|
||||
'G-S3YLF516N6',
|
||||
googleAnalytics
|
||||
)
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -603,23 +648,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -652,6 +697,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -659,7 +708,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -600,23 +645,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -649,6 +694,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -656,7 +705,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
BIN
images/butwhy.jpeg
Normal file
BIN
images/butwhy.jpeg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.3 KiB |
BIN
images/disciprine.jpg
Normal file
BIN
images/disciprine.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 102 KiB |
BIN
images/waiting-bear.webp
Normal file
BIN
images/waiting-bear.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 32 KiB |
348
index.html
348
index.html
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -528,7 +573,136 @@
|
||||
<div class="card">
|
||||
|
||||
<article class="card card-content">
|
||||
<a href="/2026/01/08/News-2026-Week-1/">
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/">
|
||||
<h1 class="post-title">
|
||||
Single Pane of Glass
|
||||
</h1>
|
||||
</a>
|
||||
<div class="card-excerpt">
|
||||
|
||||
There are too many ways of doing the same shit across too many different mediums and platforms
|
||||
|
||||
</div>
|
||||
<div class="card-post-footer">
|
||||
<div class="post-meta">
|
||||
<time datetime="2026-01-11T03:03:05.994Z">
|
||||
<i
|
||||
class="iconfont icon-calendar"
|
||||
style="margin-right: 2px;">
|
||||
</i>
|
||||
<span>2026-01-11</span>
|
||||
</time>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<span class="dot"></span>
|
||||
|
||||
|
||||
<a
|
||||
href="/categories/Technology/"
|
||||
class="post-meta-link">
|
||||
Technology
|
||||
</a>
|
||||
|
||||
|
||||
</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/">Read Details </a>
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
|
||||
<article class="card card-content">
|
||||
<a href="/2026/01/11/Smart-LEGO/">
|
||||
<h1 class="post-title">
|
||||
Smart LEGO
|
||||
</h1>
|
||||
</a>
|
||||
<div class="card-excerpt">
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="card-post-footer">
|
||||
<div class="post-meta">
|
||||
<time datetime="2026-01-11T03:03:05.994Z">
|
||||
<i
|
||||
class="iconfont icon-calendar"
|
||||
style="margin-right: 2px;">
|
||||
</i>
|
||||
<span>2026-01-11</span>
|
||||
</time>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<span class="dot"></span>
|
||||
|
||||
|
||||
<a
|
||||
href="/categories/Technology/"
|
||||
class="post-meta-link">
|
||||
Technology
|
||||
</a>
|
||||
|
||||
|
||||
</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/">Read Details </a>
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
|
||||
<article class="card card-content">
|
||||
<a href="/2026/01/11/libakerror/">
|
||||
<h1 class="post-title">
|
||||
libakerror
|
||||
</h1>
|
||||
</a>
|
||||
<div class="card-excerpt">
|
||||
|
||||
I’d like to present a C library I wrote for exception style error handling in C code, why I wrote it, and why I pr...
|
||||
|
||||
</div>
|
||||
<div class="card-post-footer">
|
||||
<div class="post-meta">
|
||||
<time datetime="2026-01-11T03:03:05.994Z">
|
||||
<i
|
||||
class="iconfont icon-calendar"
|
||||
style="margin-right: 2px;">
|
||||
</i>
|
||||
<span>2026-01-11</span>
|
||||
</time>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<span class="dot"></span>
|
||||
|
||||
|
||||
<a
|
||||
href="/categories/technology/"
|
||||
class="post-meta-link">
|
||||
technology
|
||||
</a>
|
||||
|
||||
|
||||
</div>
|
||||
<a href="/2026/01/11/libakerror/">Read Details </a>
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
|
||||
<article class="card card-content">
|
||||
<a href="/2026/01/11/News-2026-Week-1/">
|
||||
<h1 class="post-title">
|
||||
News - 2026 - Week 1
|
||||
</h1>
|
||||
@@ -541,12 +715,12 @@
|
||||
</div>
|
||||
<div class="card-post-footer">
|
||||
<div class="post-meta">
|
||||
<time datetime="2026-01-08T14:22:41.402Z">
|
||||
<time datetime="2026-01-11T03:03:05.993Z">
|
||||
<i
|
||||
class="iconfont icon-calendar"
|
||||
style="margin-right: 2px;">
|
||||
</i>
|
||||
<span>2026-01-08</span>
|
||||
<span>2026-01-11</span>
|
||||
</time>
|
||||
|
||||
|
||||
@@ -573,93 +747,7 @@
|
||||
|
||||
|
||||
</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/">Read Details </a>
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
|
||||
<article class="card card-content">
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/">
|
||||
<h1 class="post-title">
|
||||
Single Pane of Glass
|
||||
</h1>
|
||||
</a>
|
||||
<div class="card-excerpt">
|
||||
|
||||
There are too many ways of doing the same shit across too many different mediums and platforms
|
||||
|
||||
</div>
|
||||
<div class="card-post-footer">
|
||||
<div class="post-meta">
|
||||
<time datetime="2026-01-08T14:22:41.402Z">
|
||||
<i
|
||||
class="iconfont icon-calendar"
|
||||
style="margin-right: 2px;">
|
||||
</i>
|
||||
<span>2026-01-08</span>
|
||||
</time>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<span class="dot"></span>
|
||||
|
||||
|
||||
<a
|
||||
href="/categories/Technology/"
|
||||
class="post-meta-link">
|
||||
Technology
|
||||
</a>
|
||||
|
||||
|
||||
</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/">Read Details </a>
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
|
||||
<article class="card card-content">
|
||||
<a href="/2026/01/08/Smart-LEGO/">
|
||||
<h1 class="post-title">
|
||||
Smart LEGO
|
||||
</h1>
|
||||
</a>
|
||||
<div class="card-excerpt">
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="card-post-footer">
|
||||
<div class="post-meta">
|
||||
<time datetime="2026-01-08T14:22:41.402Z">
|
||||
<i
|
||||
class="iconfont icon-calendar"
|
||||
style="margin-right: 2px;">
|
||||
</i>
|
||||
<span>2026-01-08</span>
|
||||
</time>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<span class="dot"></span>
|
||||
|
||||
|
||||
<a
|
||||
href="/categories/Technology/"
|
||||
class="post-meta-link">
|
||||
Technology
|
||||
</a>
|
||||
|
||||
|
||||
</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/">Read Details </a>
|
||||
<a href="/2026/01/11/News-2026-Week-1/">Read Details </a>
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
@@ -958,58 +1046,6 @@
|
||||
</article>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
|
||||
<article class="card card-content">
|
||||
<a href="/2023/12/23/United-States-Catholic-Catechism-for-Adults/">
|
||||
<h1 class="post-title">
|
||||
US Catholic Catechism for Adults
|
||||
</h1>
|
||||
</a>
|
||||
<div class="card-excerpt">
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="card-post-footer">
|
||||
<div class="post-meta">
|
||||
<time datetime="2023-12-23T17:03:44.000Z">
|
||||
<i
|
||||
class="iconfont icon-calendar"
|
||||
style="margin-right: 2px;">
|
||||
</i>
|
||||
<span>2023-12-23</span>
|
||||
</time>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<span class="dot"></span>
|
||||
|
||||
|
||||
<a
|
||||
href="/categories/Books/"
|
||||
class="post-meta-link">
|
||||
Books
|
||||
</a>
|
||||
|
||||
|
||||
<a
|
||||
href="/categories/Faith/"
|
||||
class="post-meta-link">
|
||||
Faith
|
||||
</a>
|
||||
|
||||
|
||||
</div>
|
||||
<a href="/2023/12/23/United-States-Catholic-Catechism-for-Adults/">Read Details </a>
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="nav">
|
||||
|
||||
@@ -1045,23 +1081,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -1094,6 +1130,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1101,7 +1141,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -551,23 +596,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -600,6 +645,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -607,7 +656,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -532,17 +577,17 @@
|
||||
</h1>
|
||||
</header>
|
||||
<div class="post-meta post-show-meta">
|
||||
<time datetime="2026-01-08T14:22:41.450Z">
|
||||
<time datetime="2026-01-11T03:03:06.043Z">
|
||||
<i
|
||||
class="iconfont icon-calendar"
|
||||
style="margin-right: 2px;">
|
||||
</i>
|
||||
<span>2026-01-08</span>
|
||||
<span>2026-01-11</span>
|
||||
</time>
|
||||
|
||||
|
||||
<span class="dot"></span>
|
||||
<span>253 words</span>
|
||||
<span>264 words</span>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -559,12 +604,15 @@ Patched libsdlerror (which is now renamed to <a target="_blank" rel="noopener" h
|
||||
<li><p><input checked="" disabled="" type="checkbox">
|
||||
Started a fork of <a target="_blank" rel="noopener" href="https://github.com/akesterson/py-synologydsm-api">py-synologydsm-api</a> to implement the various <code>SYNO.Cal.*</code> APIs necessary to fetch Calendar and Event objects. (See the WIP here](<a target="_blank" rel="noopener" href="https://github.com/akesterson/py-synologydsm-api/pull/1">https://github.com/akesterson/py-synologydsm-api/pull/1</a>)) Very primitive enumeration is working. Needs some more work before it’s useful for my purposes, lots more work before it’s suitable for contribution back upstream.</p>
|
||||
</li>
|
||||
<li><p><input checked="" disabled="" type="checkbox">
|
||||
Wrote an article about <a target="_blank" rel="noopener" href="https://github.com/akesterson/libakerror">libakerror</a> explaining why this kind of error handling is useful in C</p>
|
||||
</li>
|
||||
</ul>
|
||||
<h2 id="Specific-Plans"><a href="#Specific-Plans" class="headerlink" title="Specific Plans"></a>Specific Plans</h2><!-- personal .plan here -->
|
||||
<ul>
|
||||
<li>Write an article about <a target="_blank" rel="noopener" href="https://github.com/akesterson/libakerror">libakerror</a> explaining why this kind of error handling is useful in C</li>
|
||||
<li>Implement <a target="_blank" rel="noopener" href="https://github.com/akesterson/py-synologydsm-api">py-synologydsm-api</a> SYNO.Cal event filtering by calendar ID and filtering by date (only show me events in the future)</li>
|
||||
<li>Publish my RFC on Decentralized Claim-Based Professional Credentials and Trust Attestations, aka, “how we can use the crypto web of trust to solve the AI slop hiring problem in our job market”</li>
|
||||
<li>Do some things with the kubernetes homelab, letsencrypt, synology, and …. things</li>
|
||||
</ul>
|
||||
<h1 id="Musings"><a href="#Musings" class="headerlink" title="Musings"></a>Musings</h1><!-- musings here -->
|
||||
<blockquote>
|
||||
@@ -610,23 +658,23 @@ Started a fork of <a target="_blank" rel="noopener" href="https://github.com/ake
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -659,6 +707,10 @@ Started a fork of <a target="_blank" rel="noopener" href="https://github.com/ake
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -666,7 +718,7 @@ Started a fork of <a target="_blank" rel="noopener" href="https://github.com/ake
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -525,6 +570,58 @@
|
||||
</aside>
|
||||
<main class="main-column">
|
||||
|
||||
<div class="card">
|
||||
|
||||
<article class="card card-content">
|
||||
<a href="/2023/12/23/United-States-Catholic-Catechism-for-Adults/">
|
||||
<h1 class="post-title">
|
||||
US Catholic Catechism for Adults
|
||||
</h1>
|
||||
</a>
|
||||
<div class="card-excerpt">
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="card-post-footer">
|
||||
<div class="post-meta">
|
||||
<time datetime="2023-12-23T17:03:44.000Z">
|
||||
<i
|
||||
class="iconfont icon-calendar"
|
||||
style="margin-right: 2px;">
|
||||
</i>
|
||||
<span>2023-12-23</span>
|
||||
</time>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<span class="dot"></span>
|
||||
|
||||
|
||||
<a
|
||||
href="/categories/Books/"
|
||||
class="post-meta-link">
|
||||
Books
|
||||
</a>
|
||||
|
||||
|
||||
<a
|
||||
href="/categories/Faith/"
|
||||
class="post-meta-link">
|
||||
Faith
|
||||
</a>
|
||||
|
||||
|
||||
</div>
|
||||
<a href="/2023/12/23/United-States-Catholic-Catechism-for-Adults/">Read Details </a>
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
|
||||
<article class="card card-content">
|
||||
@@ -976,58 +1073,6 @@
|
||||
</article>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
|
||||
<article class="card card-content">
|
||||
<a href="/2022/03/17/The-Righteous-Mind/">
|
||||
<h1 class="post-title">
|
||||
The Righteous Mind
|
||||
</h1>
|
||||
</a>
|
||||
<div class="card-excerpt">
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="card-post-footer">
|
||||
<div class="post-meta">
|
||||
<time datetime="2022-03-17T21:31:56.000Z">
|
||||
<i
|
||||
class="iconfont icon-calendar"
|
||||
style="margin-right: 2px;">
|
||||
</i>
|
||||
<span>2022-03-17</span>
|
||||
</time>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<span class="dot"></span>
|
||||
|
||||
|
||||
<a
|
||||
href="/categories/Books/"
|
||||
class="post-meta-link">
|
||||
Books
|
||||
</a>
|
||||
|
||||
|
||||
<a
|
||||
href="/categories/Leadership/"
|
||||
class="post-meta-link">
|
||||
Leadership
|
||||
</a>
|
||||
|
||||
|
||||
</div>
|
||||
<a href="/2022/03/17/The-Righteous-Mind/">Read Details </a>
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="nav">
|
||||
|
||||
@@ -1044,6 +1089,18 @@
|
||||
</div>
|
||||
|
||||
|
||||
<div class="nav-item-next">
|
||||
<a
|
||||
href="/page/3/"
|
||||
class="nav-link">
|
||||
<div>
|
||||
<div class="nav-label">Next</div>
|
||||
|
||||
</div>
|
||||
<i class="iconfont icon-right nav-next-icon"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
@@ -1063,23 +1120,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -1112,6 +1169,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1119,7 +1180,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
975
page/3/index.html
Normal file
975
page/3/index.html
Normal file
@@ -0,0 +1,975 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width, initial-scale=1.0, minimum-scale=1.0">
|
||||
<meta
|
||||
http-equiv="X-UA-Compatible"
|
||||
content="ie=edge">
|
||||
<meta
|
||||
name="theme-color"
|
||||
content="#fff"
|
||||
id="theme-color">
|
||||
<meta
|
||||
name="description"
|
||||
content="AKLabs">
|
||||
<link
|
||||
rel="icon"
|
||||
href="/">
|
||||
<title>AKLabs</title>
|
||||
|
||||
|
||||
<meta
|
||||
property="og:title"
|
||||
content="AKLabs">
|
||||
|
||||
|
||||
<meta
|
||||
property="og:url"
|
||||
content="https://aklabs.net/page/3/index.html">
|
||||
|
||||
|
||||
<meta
|
||||
property="og:img"
|
||||
content="/images/akesterson.webp">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="preload" href="//at.alicdn.com/t/font_1946621_i1kgafibvw.css" as="style" >
|
||||
<link rel="preload" href="//at.alicdn.com/t/font_1952792_89b4ac4k4up.css" as="style" >
|
||||
<link rel="preload" href="/css/main.css" as="style" >
|
||||
|
||||
<link rel="modulepreload" href="//instant.page/5.1.0">
|
||||
|
||||
<link rel="stylesheet" href="/css/main.css">
|
||||
|
||||
<link rel="stylesheet" href="//at.alicdn.com/t/font_1946621_i1kgafibvw.css">
|
||||
|
||||
<link rel="stylesheet" href="//at.alicdn.com/t/font_1952792_89b4ac4k4up.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function loadScript(url, cb) {
|
||||
var script = document.createElement('script');
|
||||
script.src = url;
|
||||
if (cb) script.onload = cb;
|
||||
script.async = true;
|
||||
document.body.appendChild(script);
|
||||
}
|
||||
function loadCSS(href, data, attr) {
|
||||
var sheet = document.createElement('link');
|
||||
sheet.ref = 'stylesheet';
|
||||
sheet.href = href;
|
||||
sheet.dataset[data] = attr;
|
||||
document.head.appendChild(sheet);
|
||||
}
|
||||
function changeCSS(cssFile, data, attr) {
|
||||
var oldlink = document.querySelector(data);
|
||||
var newlink = document.createElement("link");
|
||||
newlink.setAttribute("rel", "stylesheet");
|
||||
newlink.setAttribute("href", cssFile);
|
||||
newlink.dataset.prism = attr;
|
||||
document.head.replaceChild(newlink, oldlink);
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
dark: 'light',
|
||||
light: 'dark'
|
||||
};
|
||||
var themeColor = {
|
||||
dark: '#1c1c1e',
|
||||
light: '#fff'
|
||||
}
|
||||
// get the data of css prefers-color-scheme
|
||||
var getCssMediaQuery = function() {
|
||||
return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
|
||||
};
|
||||
// reverse current darkmode setting function
|
||||
var reverseDarkModeSetting = function() {
|
||||
var setting = localStorage.getItem('user-color-scheme');
|
||||
if(reverseDarkList[setting]) {
|
||||
setting = reverseDarkList[setting];
|
||||
} else if(setting === null) {
|
||||
setting = reverseDarkList[getCssMediaQuery()];
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
localStorage.setItem('user-color-scheme', setting);
|
||||
return setting;
|
||||
};
|
||||
// apply current darkmode setting
|
||||
</script>
|
||||
|
||||
<script>
|
||||
var setDarkmode = function(mode) {
|
||||
var setting = mode || localStorage.getItem('user-color-scheme');
|
||||
if(setting === getCssMediaQuery()) {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="preload" href="/js/lib/lightbox/baguetteBox.min.js" as="script">
|
||||
<link rel="preload" href="/js/lib/lightbox/baguetteBox.min.css" as="style" >
|
||||
|
||||
|
||||
<link rel="preload" href="/js/lib/lozad.min.js" as="script">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<meta name="generator" content="Hexo 6.0.0"><link rel="alternate" href="/atom.xml" title="AKLabs" type="application/atom+xml">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
|
||||
<nav class="navbar">
|
||||
<div class="navbar-logo">
|
||||
<a class="navbar-logo-main" href="/">
|
||||
|
||||
<span class="navbar-logo-dsc">AKLabs</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="navbar-menu">
|
||||
|
||||
<a
|
||||
href="/now"
|
||||
class="navbar-menu-item">
|
||||
|
||||
~/.plan
|
||||
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/archives"
|
||||
class="navbar-menu-item">
|
||||
|
||||
Archive
|
||||
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/categories"
|
||||
class="navbar-menu-item">
|
||||
|
||||
Categories
|
||||
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/about"
|
||||
class="navbar-menu-item">
|
||||
|
||||
About
|
||||
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/consulting"
|
||||
class="navbar-menu-item">
|
||||
|
||||
Consulting
|
||||
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/contact"
|
||||
class="navbar-menu-item">
|
||||
|
||||
Contact
|
||||
|
||||
</a>
|
||||
|
||||
<button
|
||||
class="navbar-menu-item darknavbar navbar-menu-btn"
|
||||
aria-label="Toggle dark mode"
|
||||
id="dark">
|
||||
<i class="iconfont icon-weather"></i>
|
||||
</button>
|
||||
<button
|
||||
class="navbar-menu-item searchnavbar navbar-menu-btn"
|
||||
aria-label="Toggle search"
|
||||
id="search">
|
||||
<!-- <i
|
||||
class="iconfont icon-search"
|
||||
style="font-size: 1.2rem; font-weight: 400;">
|
||||
</i> -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img"
|
||||
class="iconify iconify--ion" width="28" height="28" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512">
|
||||
<path fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="28"
|
||||
d="M256 80a176 176 0 1 0 176 176A176 176 0 0 0 256 80Z"></path>
|
||||
<path fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="28"
|
||||
d="M232 160a72 72 0 1 0 72 72a72 72 0 0 0-72-72Z"></path>
|
||||
<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="28"
|
||||
d="M283.64 283.64L336 336"></path>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div
|
||||
id="local-search"
|
||||
style="display: none">
|
||||
<input
|
||||
class="navbar-menu-item"
|
||||
id="search-input"
|
||||
placeholder="请输入搜索内容..." />
|
||||
<div id="search-content"></div>
|
||||
</div>
|
||||
|
||||
<div class="section-wrap">
|
||||
<div class="container">
|
||||
<div class="columns">
|
||||
<aside class="left-column">
|
||||
|
||||
<div class="card card-author">
|
||||
|
||||
<img
|
||||
src="/images/akesterson.webp"
|
||||
class="author-img"
|
||||
width="88"
|
||||
height="88"
|
||||
alt="author avatar">
|
||||
|
||||
<p class="author-name">Andrew Kesterson</p>
|
||||
<p class="author-description"><center><i>"Love God. Live Righteously. Die Well."</i> <br/> <br/> <a target="_blank" rel="noopener" href="https://github.com/akesterson">GitHub</a> || <a target="_blank" rel="noopener" href="https://www.linkedin.com/in/andrewkesterson/">LinkedIn</a> <br/> </center></p>
|
||||
<div class="author-message">
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-tags-count"
|
||||
href="/tags">
|
||||
<span>0</span>
|
||||
<span>Tags</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="sticky-tablet">
|
||||
|
||||
|
||||
|
||||
<article class="card card-content categories-widget">
|
||||
<div class="categories-card">
|
||||
<div class="categories-header">
|
||||
<i
|
||||
class="iconfont icon-fenlei"
|
||||
style="padding-right: 2px;">
|
||||
</i>Categories
|
||||
</div>
|
||||
<div class="categories-list">
|
||||
|
||||
<a href="/categories/Books/">
|
||||
<div class="categories-list-item">
|
||||
Books
|
||||
<span class="categories-list-item-badge">13</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Faith/">
|
||||
<div class="categories-list-item">
|
||||
Faith
|
||||
<span class="categories-list-item-badge">6</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Outdoors/">
|
||||
<div class="categories-list-item">
|
||||
Outdoors
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Technology/">
|
||||
<div class="categories-list-item">
|
||||
Technology
|
||||
<span class="categories-list-item-badge">3</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Leadership/">
|
||||
<div class="categories-list-item">
|
||||
Leadership
|
||||
<span class="categories-list-item-badge">7</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Philosophy/">
|
||||
<div class="categories-list-item">
|
||||
Philosophy
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/History/">
|
||||
<div class="categories-list-item">
|
||||
History
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Liberal-Education/">
|
||||
<div class="categories-list-item">
|
||||
Liberal-Education
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<article class="card card-content tags-widget">
|
||||
<div class="tags-card">
|
||||
<div class="tags-header">
|
||||
<i
|
||||
class="iconfont icon-biaoqian"
|
||||
style="padding-right: 2px;">
|
||||
</i>hot tags
|
||||
</div>
|
||||
<div class="tags-list">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
|
||||
<article class="card card-content widescreen-archive archive-widget">
|
||||
<div class="archive-card">
|
||||
<div class="archive-card-header">
|
||||
<i
|
||||
class="iconfont icon-wodebaobiao"
|
||||
style="padding-right: 2px;">
|
||||
</i>Archive
|
||||
</div>
|
||||
<div class="archive-card-list">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a
|
||||
href="/archives/2025"
|
||||
class="archive-card-list-item">
|
||||
2025
|
||||
<span class="archive-card-list-item-badge">1</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a
|
||||
href="/archives/2024"
|
||||
class="archive-card-list-item">
|
||||
2024
|
||||
<span class="archive-card-list-item-badge">5</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a
|
||||
href="/archives/2023"
|
||||
class="archive-card-list-item">
|
||||
2023
|
||||
<span class="archive-card-list-item-badge">6</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a
|
||||
href="/archives/2022"
|
||||
class="archive-card-list-item">
|
||||
2022
|
||||
<span class="archive-card-list-item-badge">5</span>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
</div>
|
||||
</aside>
|
||||
<main class="main-column">
|
||||
|
||||
<div class="card">
|
||||
|
||||
<article class="card card-content">
|
||||
<a href="/2022/03/17/The-Righteous-Mind/">
|
||||
<h1 class="post-title">
|
||||
The Righteous Mind
|
||||
</h1>
|
||||
</a>
|
||||
<div class="card-excerpt">
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="card-post-footer">
|
||||
<div class="post-meta">
|
||||
<time datetime="2022-03-17T21:31:56.000Z">
|
||||
<i
|
||||
class="iconfont icon-calendar"
|
||||
style="margin-right: 2px;">
|
||||
</i>
|
||||
<span>2022-03-17</span>
|
||||
</time>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<span class="dot"></span>
|
||||
|
||||
|
||||
<a
|
||||
href="/categories/Books/"
|
||||
class="post-meta-link">
|
||||
Books
|
||||
</a>
|
||||
|
||||
|
||||
<a
|
||||
href="/categories/Leadership/"
|
||||
class="post-meta-link">
|
||||
Leadership
|
||||
</a>
|
||||
|
||||
|
||||
</div>
|
||||
<a href="/2022/03/17/The-Righteous-Mind/">Read Details </a>
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="nav">
|
||||
|
||||
<div class="nav-item-prev">
|
||||
<a
|
||||
href="/page/2/"
|
||||
class="nav-link">
|
||||
<i class="iconfont icon-left nav-prev-icon"></i>
|
||||
<div>
|
||||
<div class="nav-label">Prev</div>
|
||||
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<aside class="right-column">
|
||||
<div class="sticky-widescreen">
|
||||
|
||||
|
||||
|
||||
<article class="card card-content">
|
||||
<div class="recent-posts-card">
|
||||
<div class="recent-posts-header">
|
||||
<i
|
||||
class="iconfont icon-wenzhang_huaban"
|
||||
style="padding-right: 2px;">
|
||||
</i>Recent Posts
|
||||
</div>
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
|
||||
<article class="card card-content">
|
||||
<div class="archive-card">
|
||||
<div class="archive-card-header">
|
||||
<i
|
||||
class="iconfont icon-wodebaobiao"
|
||||
style="padding-right: 2px;">
|
||||
</i>Archive
|
||||
</div>
|
||||
<div class="archive-card-list">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a
|
||||
href="/archives/2025"
|
||||
class="archive-card-list-item">
|
||||
2025
|
||||
<span class="archive-card-list-item-badge">1</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a
|
||||
href="/archives/2024"
|
||||
class="archive-card-list-item">
|
||||
2024
|
||||
<span class="archive-card-list-item-badge">5</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a
|
||||
href="/archives/2023"
|
||||
class="archive-card-list-item">
|
||||
2023
|
||||
<span class="archive-card-list-item-badge">6</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a
|
||||
href="/archives/2022"
|
||||
class="archive-card-list-item">
|
||||
2022
|
||||
<span class="archive-card-list-item-badge">5</span>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
</div>
|
||||
</aside>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer class="footer">
|
||||
<div class="footer-container">
|
||||
<div>
|
||||
<div class="footer-dsc">
|
||||
<span>
|
||||
Copyright ©
|
||||
|
||||
|
||||
-
|
||||
2026
|
||||
|
||||
</span>
|
||||
|
||||
<a
|
||||
href="mailto:andrew@aklabs.net"
|
||||
class="footer-link">
|
||||
Andrew Kesterson
|
||||
</a>
|
||||
<br/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="footer-dsc">
|
||||
|
||||
Powered by
|
||||
<a
|
||||
href="https://hexo.io/"
|
||||
class="footer-link"
|
||||
target="_blank"
|
||||
rel="nofollow noopener noreferrer">
|
||||
Hexo
|
||||
</a>
|
||||
|
||||
|
||||
<span> | </span>
|
||||
|
||||
|
||||
Theme -
|
||||
<a
|
||||
href="https://github.com/theme-kaze"
|
||||
class="footer-link"
|
||||
target="_blank"
|
||||
rel="nofollow noopener noreferrer">
|
||||
Kaze
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</footer>
|
||||
|
||||
|
||||
<a
|
||||
role="button"
|
||||
id="scrollbutton"
|
||||
class="basebutton"
|
||||
aria-label="回到顶部">
|
||||
<i class="iconfont icon-arrowleft button-icon"></i>
|
||||
</a>
|
||||
|
||||
<a
|
||||
role="button"
|
||||
id="menubutton"
|
||||
aria-label="menu button"
|
||||
class="basebutton">
|
||||
<i class="iconfont icon-menu button-icon"></i>
|
||||
</a>
|
||||
<a
|
||||
role="button"
|
||||
id="popbutton"
|
||||
class="basebutton"
|
||||
aria-label="控制中心">
|
||||
<i class="iconfont icon-expand button-icon"></i>
|
||||
</a>
|
||||
<a
|
||||
role="button"
|
||||
id="darkbutton"
|
||||
class="basebutton darkwidget"
|
||||
aria-label="夜色模式">
|
||||
<i class="iconfont icon-weather button-icon"></i>
|
||||
</a>
|
||||
<a
|
||||
role="button"
|
||||
id="searchbutton"
|
||||
class="basebutton searchwidget"
|
||||
aria-label="搜索">
|
||||
<i class="iconfont icon-search button-icon"></i>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
<script src="/js/main.js"></script>
|
||||
|
||||
|
||||
<script>
|
||||
var addLazyload = function () {
|
||||
var observer = lozad('.lozad', {
|
||||
load: function (el) {
|
||||
el.srcset = el.getAttribute('data-src')
|
||||
},
|
||||
loaded: function (el) {
|
||||
el.classList.add('loaded')
|
||||
},
|
||||
})
|
||||
observer.observe()
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
loadScript('/js/lib/lozad.min.js', addLazyload)
|
||||
</script>
|
||||
|
||||
<script src="//instant.page/5.1.0" type="module"
|
||||
integrity="sha384-by67kQnR+pyfy8yWP4kPO12fHKRLHZPfEsiSXR8u2IKcTdxD805MGUXBzVPnkLHw"></script>
|
||||
|
||||
<script>
|
||||
var googleAnalytics = function () {
|
||||
window.dataLayer = window.dataLayer || []
|
||||
function gtag() {
|
||||
dataLayer.push(arguments)
|
||||
}
|
||||
gtag('js', new Date())
|
||||
gtag('config', 'G-S3YLF516N6')
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
loadScript(
|
||||
'https://www.googletagmanager.com/gtag/js?id=' +
|
||||
'G-S3YLF516N6',
|
||||
googleAnalytics
|
||||
)
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -80,6 +80,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
function prismThemeChange() {
|
||||
if(document.getElementById('theme-color').dataset.mode === 'dark') {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-tomorrow.min.css', '[data-prism]', 'prism-tomorrow');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-tomorrow.min.css', 'prism', 'prism-tomorrow');
|
||||
}
|
||||
} else {
|
||||
if(document.querySelector('[data-prism]')) {
|
||||
changeCSS('/js/lib/prism/prism-defauult.min.css', '[data-prism]', 'prism-defauult');
|
||||
} else {
|
||||
loadCSS('/js/lib/prism/prism-defauult.min.css', 'prism', 'prism-defauult');
|
||||
}
|
||||
}
|
||||
}
|
||||
prismThemeChange()
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/js/lib/prism/prism-line-numbers.min.css">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
// control reverse button
|
||||
var reverseDarkList = {
|
||||
@@ -118,15 +149,18 @@
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else if(reverseDarkList[setting]) {
|
||||
document.documentElement.setAttribute('data-user-color-scheme', setting);
|
||||
document.getElementById('theme-color').content = themeColor[setting];
|
||||
document.getElementById('theme-color').dataset.mode = setting;
|
||||
prismThemeChange();
|
||||
} else {
|
||||
document.documentElement.removeAttribute('data-user-color-scheme');
|
||||
localStorage.removeItem('user-color-scheme');
|
||||
document.getElementById('theme-color').content = themeColor[getCssMediaQuery()];
|
||||
document.getElementById('theme-color').dataset.mode = getCssMediaQuery();
|
||||
prismThemeChange();
|
||||
}
|
||||
};
|
||||
setDarkmode();
|
||||
@@ -265,13 +299,13 @@
|
||||
<a
|
||||
class="author-posts-count"
|
||||
href="/archives">
|
||||
<span>20</span>
|
||||
<span>21</span>
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
<a
|
||||
class="author-categories-count"
|
||||
href="/categories">
|
||||
<span>9</span>
|
||||
<span>10</span>
|
||||
<span>Categories</span>
|
||||
</a>
|
||||
<a
|
||||
@@ -339,6 +373,13 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/technology/">
|
||||
<div class="categories-list-item">
|
||||
technology
|
||||
<span class="categories-list-item-badge">1</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/categories/Current-Events/">
|
||||
<div class="categories-list-item">
|
||||
Current-Events
|
||||
@@ -404,6 +445,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -411,7 +456,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -561,23 +606,23 @@
|
||||
<div class="recent-posts-list">
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Single-Pane-of-Glass/"><div class="recent-posts-item-content">Single Pane of Glass</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2026-01-08</div>
|
||||
<a href="/2026/01/08/Smart-LEGO/"><div class="recent-posts-item-content">Smart LEGO</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/libakerror/"><div class="recent-posts-item-content">libakerror</div></a>
|
||||
</div>
|
||||
|
||||
<div class="recent-posts-item">
|
||||
<div class="recent-posts-item-title">2025-01-04</div>
|
||||
<a href="/2025/01/04/Socrates-got-a-raw-deal/"><div class="recent-posts-item-content">Socrates got a raw deal</div></a>
|
||||
<div class="recent-posts-item-title">2026-01-11</div>
|
||||
<a href="/2026/01/11/News-2026-Week-1/"><div class="recent-posts-item-content">News - 2026 - Week 1</div></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -610,6 +655,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -617,7 +666,7 @@
|
||||
href="/archives/2026"
|
||||
class="archive-card-list-item">
|
||||
2026
|
||||
<span class="archive-card-list-item-badge">3</span>
|
||||
<span class="archive-card-list-item-badge">4</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user