diff --git a/README.md b/README.md
index dbd269c61..e7d2cd15b 100644
--- a/README.md
+++ b/README.md
@@ -4,8 +4,7 @@
[Forgetful Notes](https://forgetfulnotes.com) is my _digital garden_ of knowledge. It serves as a platform for my learning and creative endeavours. A space for thinking through, building upon, and coming back to.
-[](https://semanticdata.github.io/eleventy-notes/)
-[](https://eleventy-notes-chi.vercel.app)
+[](https://semanticdata.github.io/eleventy-notes/) [](https://eleventy-notes-chi.vercel.app)
## 📑 Table of Contents
@@ -107,11 +106,11 @@ You can add custom CSS code within `/quartz/styles/custom.scss`. You will then n
### Fonts
-| Used in: | Font Family | Previous Font |
-| -------- | :------------------------------------------------------: | :----------------------------------------------------------------------: |
-| Headers | [Bitter](https://fonts.google.com/specimen/Bitter) | [Schibsted Grotesk](https://fonts.google.com/specimen/Schibsted+Grotesk) |
-| Body | [Bitter](https://fonts.google.com/specimen/Bitter) | [Source Sans Pro](https://fonts.google.com/specimen/Source+Sans+3) |
-| Code | [Fira Mono](https://fonts.google.com/specimen/Fira+Mono) | [IBM Plex Mono](https://fonts.google.com/specimen/IBM+Plex+Mono) |
+| Used in: | Font Family | Previous Font |
+| --- | :-: | :-: |
+| Headers | [Bitter](https://fonts.google.com/specimen/Bitter) | [Schibsted Grotesk](https://fonts.google.com/specimen/Schibsted+Grotesk) |
+| Body | [Bitter](https://fonts.google.com/specimen/Bitter) | [Source Sans Pro](https://fonts.google.com/specimen/Source+Sans+3) |
+| Code | [Fira Mono](https://fonts.google.com/specimen/Fira+Mono) | [IBM Plex Mono](https://fonts.google.com/specimen/IBM+Plex+Mono) |
## 📁 Folder Structure
diff --git a/content/Aurora Borealis Sighting.md b/content/Aurora Borealis Sighting.md
index 737f43cca..7e20cc413 100644
--- a/content/Aurora Borealis Sighting.md
+++ b/content/Aurora Borealis Sighting.md
@@ -63,8 +63,7 @@ Below are maps showing the most southern extent of where aurora might be observa
### July 12th, 2023
-
-G is NOAA Geomagnetic Storm Index (0–5)
+ G is NOAA Geomagnetic Storm Index (0–5)
Kp is Planetary K Index (0–9)
### September 18th, 2023
diff --git a/content/Bookmarklets.md b/content/Bookmarklets.md
index 81a0f4874..516057ba7 100644
--- a/content/Bookmarklets.md
+++ b/content/Bookmarklets.md
@@ -16,16 +16,16 @@ Alternatively, you may copy the code for a bookmarklet and create your own. If y
```js
javascript: var evl,
em,
- expr = prompt("Formula... (eg: 2*3 + 7/8)", "");
+ expr = prompt("Formula... (eg: 2*3 + 7/8)", "")
with (Math)
try {
- evl = parseFloat(eval(expr));
+ evl = parseFloat(eval(expr))
if (isNaN(evl)) {
- throw Error("Not a number!");
+ throw Error("Not a number!")
}
- void prompt("Result:", evl);
+ void prompt("Result:", evl)
} catch (em) {
- alert(em);
+ alert(em)
}
```
@@ -37,26 +37,26 @@ with (Math)
javascript: (function () {
var count = 0,
text,
- dv;
- text = prompt("Search phrase:", "");
- if (text == null || text.length == 0) return;
- hlColor = prompt("Color:", "yellow");
- dv = document.defaultView;
+ dv
+ text = prompt("Search phrase:", "")
+ if (text == null || text.length == 0) return
+ hlColor = prompt("Color:", "yellow")
+ dv = document.defaultView
function searchWithinNode(node, te, len) {
- var pos, skip, spannode, middlebit, endbit, middleclone;
- skip = 0;
+ var pos, skip, spannode, middlebit, endbit, middleclone
+ skip = 0
if (node.nodeType == 3) {
- pos = node.data.toUpperCase().indexOf(te);
+ pos = node.data.toUpperCase().indexOf(te)
if (pos >= 0) {
- spannode = document.createElement("SPAN");
- spannode.style.backgroundColor = hlColor;
- middlebit = node.splitText(pos);
- endbit = middlebit.splitText(len);
- middleclone = middlebit.cloneNode(true);
- spannode.appendChild(middleclone);
- middlebit.parentNode.replaceChild(spannode, middlebit);
- ++count;
- skip = 1;
+ spannode = document.createElement("SPAN")
+ spannode.style.backgroundColor = hlColor
+ middlebit = node.splitText(pos)
+ endbit = middlebit.splitText(len)
+ middleclone = middlebit.cloneNode(true)
+ spannode.appendChild(middleclone)
+ middlebit.parentNode.replaceChild(spannode, middlebit)
+ ++count
+ skip = 1
}
} else if (
node.nodeType == 1 &&
@@ -65,13 +65,13 @@ javascript: (function () {
node.tagName.toUpperCase != "STYLE"
) {
for (var child = 0; child < node.childNodes.length; ++child) {
- child = child + searchWithinNode(node.childNodes[child], te, len);
+ child = child + searchWithinNode(node.childNodes[child], te, len)
}
}
- return skip;
+ return skip
}
- window.status = "Searching for '" + text + "'...";
- searchWithinNode(document.body, text.toUpperCase(), text.length);
+ window.status = "Searching for '" + text + "'..."
+ searchWithinNode(document.body, text.toUpperCase(), text.length)
window.status =
"Found " +
count +
@@ -79,8 +79,8 @@ javascript: (function () {
(count == 1 ? "" : "s") +
" of %27" +
text +
- "%27.";
-})();
+ "%27."
+})()
```
### First Commit of Repository
@@ -93,15 +93,15 @@ javascript: ((b) =>
.then((c) => Promise.all([c.headers.get("link"), c.json()]))
.then((c) => {
if (c[0]) {
- var d = c[0].split(",")[1].split(";")[0].slice(2, -1);
- return fetch(d).then((e) => e.json());
+ var d = c[0].split(",")[1].split(";")[0].slice(2, -1)
+ return fetch(d).then((e) => e.json())
}
- return c[1];
+ return c[1]
})
.then((c) => c.pop().html_url)
.then((c) => (window.location = c)))(
window.location.pathname.match(/\/([^\/]+\/[^\/]+)(?:\/tree\/([^\/]+))?/),
-);
+)
```
### Tab Title Editor
@@ -109,8 +109,7 @@ javascript: ((b) =>
Tab Title Editor
```js
-javascript: void (document.title =
- prompt("Enter page title") ?? document.title);
+javascript: void (document.title = prompt("Enter page title") ?? document.title)
```
### Tab Title and Icon Editor
@@ -142,9 +141,9 @@ javascript: (() => {
"//" +
window.location.hostname +
window.location.pathname,
- );
- window.open(url, "_blank");
-})();
+ )
+ window.open(url, "_blank")
+})()
```
### Post to Hacker News
@@ -177,13 +176,13 @@ javascript:(function()%7B%2F%2F%20Water.css%20Bookmarklet%0A%2F%2F%20-----------
```js
javascript: (function () {
- let domStyle = document.getElementById("domStylee");
+ let domStyle = document.getElementById("domStylee")
if (domStyle) {
- document.body.removeChild(domStyle);
- return;
+ document.body.removeChild(domStyle)
+ return
}
- domStyle = document.createElement("style");
- domStyle.setAttribute("id", "domStylee");
+ domStyle = document.createElement("style")
+ domStyle.setAttribute("id", "domStylee")
domStyle.append(
[
"* { color:#0f0!important;outline:solid #f00 1px!important; background-color: rgba(255,0,0,.2) !important; }",
@@ -198,9 +197,9 @@ javascript: (function () {
[
"* * * * * * * * * { background-color: rgba(0,0,255,.2) !important; }",
].join(),
- );
- document.body.appendChild(domStyle);
-})();
+ )
+ document.body.appendChild(domStyle)
+})()
```
```js
@@ -236,37 +235,37 @@ javascript:(function()%7Bvar%20body%20%3D%20document.getElementsByTagName('body'
Show Stylesheets
```js
-javascript: s = document.getElementsByTagName("STYLE");
-ex = document.getElementsByTagName("LINK");
-d = window.open().document;
-/*set base href*/ d.open();
-d.close();
-b = d.body;
+javascript: s = document.getElementsByTagName("STYLE")
+ex = document.getElementsByTagName("LINK")
+d = window.open().document
+/*set base href*/ d.open()
+d.close()
+b = d.body
function trim(s) {
- return s.replace(/^\s*\n/, "").replace(/\s*$/, "");
+ return s.replace(/^\s*\n/, "").replace(/\s*$/, "")
}
function iff(a, b, c) {
- return b ? a + b + c : "";
+ return b ? a + b + c : ""
}
function add(h) {
- b.appendChild(h);
+ b.appendChild(h)
}
function makeTag(t) {
- return d.createElement(t);
+ return d.createElement(t)
}
function makeText(tag, text) {
- t = makeTag(tag);
- t.appendChild(d.createTextNode(text));
- return t;
+ t = makeTag(tag)
+ t.appendChild(d.createTextNode(text))
+ return t
}
-add(makeText("style", "iframe{width:100%;height:18em;border:1px solid;"));
-add(makeText("h3", (d.title = "Style sheets in " + location.href)));
+add(makeText("style", "iframe{width:100%;height:18em;border:1px solid;"))
+add(makeText("h3", (d.title = "Style sheets in " + location.href)))
for (i = 0; i < s.length; ++i) {
- add(makeText("h4", "Inline style sheet" + iff(' title="', s[i].title, '"')));
- add(makeText("pre", trim(s[i].innerHTML)));
+ add(makeText("h4", "Inline style sheet" + iff(' title="', s[i].title, '"')))
+ add(makeText("pre", trim(s[i].innerHTML)))
}
for (i = 0; i < ex.length; ++i) {
- rs = ex[i].rel.split(" ");
+ rs = ex[i].rel.split(" ")
for (j = 0; j < rs.length; ++j)
if (rs[j].toLowerCase() == "stylesheet") {
add(
@@ -279,14 +278,14 @@ for (i = 0; i < ex.length; ++i) {
'"' +
iff(' title="', ex[i].title, '"'),
),
- );
- iframe = makeTag("iframe");
- iframe.src = ex[i].href;
- add(iframe);
- break;
+ )
+ iframe = makeTag("iframe")
+ iframe.src = ex[i].href
+ add(iframe)
+ break
}
}
-void 0;
+void 0
```
### CSS Stats
@@ -303,20 +302,20 @@ javascript:location.href='http://cssstats.com/stats?url=%27+window.location.href
```js
javascript: (function () {
- var el = document.createElement("script");
- el.type = "text/javascript";
+ var el = document.createElement("script")
+ el.type = "text/javascript"
el.src =
- "https://micmro.github.io/performance-bookmarklet/dist/performanceBookmarklet.min.js";
+ "https://micmro.github.io/performance-bookmarklet/dist/performanceBookmarklet.min.js"
el.onerror = function () {
alert(
'Looks like the Content Security Policy directive is blocking the use of bookmarklets\n\nYou can copy and paste the content of:\n\n"https://micmro.github.io/performance-bookmarklet/dist/performanceBookmarklet.min.js"\n\ninto your console instead\n\n(link is in console already)',
- );
+ )
console.log(
"https://micmro.github.io/performance-bookmarklet/dist/performanceBookmarklet.min.js",
- );
- };
- document.getElementsByTagName("body")[0].appendChild(el);
-})();
+ )
+ }
+ document.getElementsByTagName("body")[0].appendChild(el)
+})()
```
### Font Finder
@@ -326,29 +325,29 @@ javascript: (function () {
```js
javascript: (function () {
function getSelectedNode() {
- if (window.getSelection().focusNode === null) return null;
- return window.getSelection().focusNode.parentNode;
+ if (window.getSelection().focusNode === null) return null
+ return window.getSelection().focusNode.parentNode
}
function getNodeFontStack(node) {
- return window.getComputedStyle(node).fontFamily;
+ return window.getComputedStyle(node).fontFamily
}
function getFirstAvailableFont(fonts) {
for (let font of fonts) {
- let fontName = font.trim().replace(/"/g, "");
- let isAvailable = document.fonts.check(`16px ${fontName}`);
- if (!isAvailable) continue;
- return fontName;
+ let fontName = font.trim().replace(/"/g, "")
+ let isAvailable = document.fonts.check(`16px ${fontName}`)
+ if (!isAvailable) continue
+ return fontName
}
}
- let node = getSelectedNode();
+ let node = getSelectedNode()
if (!node) {
- window.alert("Please select a string of text and try again.");
- return;
+ window.alert("Please select a string of text and try again.")
+ return
}
- let fonts = getNodeFontStack(node).split(",");
- let firstAvailableFont = getFirstAvailableFont(fonts);
- window.alert(`Font: ${firstAvailableFont}`);
-})();
+ let fonts = getNodeFontStack(node).split(",")
+ let firstAvailableFont = getFirstAvailableFont(fonts)
+ window.alert(`Font: ${firstAvailableFont}`)
+})()
```
### View Fonts
@@ -357,15 +356,15 @@ javascript: (function () {
```js
javascript: void (function (d) {
- var e = d.createElement("script");
- e.setAttribute("type", "text/javascript");
- e.setAttribute("charset", "UTF-8");
+ var e = d.createElement("script")
+ e.setAttribute("type", "text/javascript")
+ e.setAttribute("charset", "UTF-8")
e.setAttribute(
"src",
"//www.typesample.com/assets/typesample.js?r=" + Math.random() * 99999999,
- );
- d.body.appendChild(e);
-})(document);
+ )
+ d.body.appendChild(e)
+})(document)
```
### Indentify Fonts
@@ -374,15 +373,15 @@ javascript: void (function (d) {
```js
javascript: void (function (d) {
- var e = d.createElement("script");
- e.setAttribute("type", "text/javascript");
- e.setAttribute("charset", "UTF-8");
+ var e = d.createElement("script")
+ e.setAttribute("type", "text/javascript")
+ e.setAttribute("charset", "UTF-8")
e.setAttribute(
"src",
"//www.typesample.com/assets/typesample.js?r=" + Math.random() * 99999999,
- );
- d.body.appendChild(e);
-})(document);
+ )
+ d.body.appendChild(e)
+})(document)
```
### Stress Test
@@ -399,19 +398,19 @@ javascript:(function()%7Bvar%20d=document,s=d.createElement('script'),doit=funct
```js
javascript: (function () {
- document.designMode = "on";
- const s = document.createElement("style");
- s.innerHTML = `body::before{content:'%E2%9C%8F%EF%B8%8F Edit Mode (ESC to end)';z-index:64;padding:1em;background:white;color:black;display:block;margin:1em;font-size:30px;border:5px solid green;}`;
- document.body.appendChild(s);
- window.scrollTo(0, 0);
+ document.designMode = "on"
+ const s = document.createElement("style")
+ s.innerHTML = `body::before{content:'%E2%9C%8F%EF%B8%8F Edit Mode (ESC to end)';z-index:64;padding:1em;background:white;color:black;display:block;margin:1em;font-size:30px;border:5px solid green;}`
+ document.body.appendChild(s)
+ window.scrollTo(0, 0)
document.addEventListener("keyup", (e) => {
if (e.key === "Escape") {
- document.designMode = "off";
- s.remove();
- document.removeEventListener("keyup", e);
+ document.designMode = "off"
+ s.remove()
+ document.removeEventListener("keyup", e)
}
- });
-})();
+ })
+})()
```
### Edit Current Page
@@ -419,9 +418,9 @@ javascript: (function () {
Edit Current Page
```js
-javascript: document.body.contentEditable = "true";
-document.designMode = "on";
-void 0;
+javascript: document.body.contentEditable = "true"
+document.designMode = "on"
+void 0
```
### User Agent Stats
@@ -430,8 +429,8 @@ void 0;
```js
javascript: void (() => {
- prompt("User agent:", navigator.userAgent);
-})();
+ prompt("User agent:", navigator.userAgent)
+})()
```
### WebDev Multi Tools
@@ -448,20 +447,20 @@ javascript:(function () %7Bvar v %3D document.createElement(%27script%27)%3Bv.sr
```js
javascript: (function () {
- var el = document.createElement("script");
- el.type = "text/javascript";
+ var el = document.createElement("script")
+ el.type = "text/javascript"
el.src =
- "https://micmro.github.io/performance-bookmarklet/dist/performanceBookmarklet.min.js";
+ "https://micmro.github.io/performance-bookmarklet/dist/performanceBookmarklet.min.js"
el.onerror = function () {
alert(
'Looks like the Content Security Policy directive is blocking the use of bookmarklets\n\nYou can copy and paste the content of:\n\n"https://micmro.github.io/performance-bookmarklet/dist/performanceBookmarklet.min.js"\n\ninto your console instead\n\n(link is in console already)',
- );
+ )
console.log(
"https://micmro.github.io/performance-bookmarklet/dist/performanceBookmarklet.min.js",
- );
- };
- document.getElementsByTagName("body")[0].appendChild(el);
-})();
+ )
+ }
+ document.getElementsByTagName("body")[0].appendChild(el)
+})()
```
### Website Dev Stack
@@ -471,41 +470,41 @@ javascript: (function () {
```js
javascript: (function () {
var d = document,
- e = d.getElementById("wappalyzer-container");
+ e = d.getElementById("wappalyzer-container")
if (e !== null) {
- d.body.removeChild(e);
+ d.body.removeChild(e)
}
var u = "https://www.wappalyzer.com/",
t = new Date().getTime(),
c = d.createElement("div"),
p = d.createElement("div"),
l = d.createElement("link"),
- s = d.createElement("script");
- c.setAttribute("id", "wappalyzer-container");
- l.setAttribute("rel", "stylesheet");
- l.setAttribute("href", u + "css/bookmarklet.css");
- d.head.appendChild(l);
- p.setAttribute("id", "wappalyzer-pending");
+ s = d.createElement("script")
+ c.setAttribute("id", "wappalyzer-container")
+ l.setAttribute("rel", "stylesheet")
+ l.setAttribute("href", u + "css/bookmarklet.css")
+ d.head.appendChild(l)
+ p.setAttribute("id", "wappalyzer-pending")
p.setAttribute(
"style",
"background-image: url(" + u + "images/spinner.gif) !important",
- );
- c.appendChild(p);
- s.setAttribute("src", u + "bookmarklet/wappalyzer.js");
+ )
+ c.appendChild(p)
+ s.setAttribute("src", u + "bookmarklet/wappalyzer.js")
s.onload = function () {
- window.wappalyzer = new Wappalyzer();
- s = d.createElement("script");
- s.setAttribute("src", u + "bookmarklet/apps.js");
+ window.wappalyzer = new Wappalyzer()
+ s = d.createElement("script")
+ s.setAttribute("src", u + "bookmarklet/apps.js")
s.onload = function () {
- s = d.createElement("script");
- s.setAttribute("src", u + "bookmarklet/driver.js");
- c.appendChild(s);
- };
- c.appendChild(s);
- };
- c.appendChild(s);
- d.body.appendChild(c);
-})();
+ s = d.createElement("script")
+ s.setAttribute("src", u + "bookmarklet/driver.js")
+ c.appendChild(s)
+ }
+ c.appendChild(s)
+ }
+ c.appendChild(s)
+ d.body.appendChild(c)
+})()
```
### Website Stack - Built With
@@ -515,7 +514,7 @@ javascript: (function () {
```js
javascript: void open(
"https://builtwith.com/?" + encodeURIComponent(location.href),
-);
+)
```
### Heatmap - Web Loading Time
@@ -524,10 +523,10 @@ javascript: void open(
```js
javascript: (function () {
- var el = document.createElement("script");
- el.src = "https://zeman.github.io/perfmap/perfmap.js";
- document.body.appendChild(el);
-})();
+ var el = document.createElement("script")
+ el.src = "https://zeman.github.io/perfmap/perfmap.js"
+ document.body.appendChild(el)
+})()
```
### Instagram - Download Photo
@@ -544,19 +543,19 @@ javascript:(function(){;!function(e)%7Bvar%20t=%7B%7D;function%20n(a)%7Bif(t%5Ba
```js
javascript: (function () {
- var i, x;
+ var i, x
for (i = 0; (x = document.links[i]); ++i)
- x.style.color = ["blue", "red", "orange"][sim(x, location)];
+ x.style.color = ["blue", "red", "orange"][sim(x, location)]
function sim(a, b) {
- if (a.hostname != b.hostname) return 0;
+ if (a.hostname != b.hostname) return 0
if (fixPath(a.pathname) != fixPath(b.pathname) || a.search != b.search)
- return 1;
- return 2;
+ return 1
+ return 2
}
function fixPath(p) {
- p = (p.charAt(0) == "/" ? "" : "/") + p;
- /*many browsers*/ p = p.split("?")[0];
- /*opera*/ return p;
+ p = (p.charAt(0) == "/" ? "" : "/") + p
+ /*many browsers*/ p = p.split("?")[0]
+ /*opera*/ return p
}
-})();
+})()
```
diff --git a/content/Journal.md b/content/Journal.md
index 74fa79dd5..262c34cae 100644
--- a/content/Journal.md
+++ b/content/Journal.md
@@ -4,9 +4,7 @@ description: This section explores the concept of maintaining a Public Journal.
compartir: true
---
-> [!note]
-> I'm still defining what exactly I should include in this journal. I'm currently making sure it's not _too_ technical, or difficult to read.
-This page explores the concept of keeping a public journal, something I haven't done before. I'm still defining what exactly I should include in this journal. I'm currently making sure it's not too technical, or difficult to read.
+> [!note] I'm still defining what exactly I should include in this journal. I'm currently making sure it's not _too_ technical, or difficult to read. This page explores the concept of keeping a public journal, something I haven't done before. I'm still defining what exactly I should include in this journal. I'm currently making sure it's not too technical, or difficult to read.
## 2024
diff --git a/content/Projects.md b/content/Projects.md
index 0c1fac905..236823239 100644
--- a/content/Projects.md
+++ b/content/Projects.md
@@ -53,8 +53,7 @@ _Approx. budget: $1,070,000_
### 🚨 MTPD Substation Rehab
-Rehabilitate previous public space into new Metro
-Transit Police Dept. Substation in downtown Saint Paul.
+Rehabilitate previous public space into new Metro Transit Police Dept. Substation in downtown Saint Paul.
_Approx. budget: $880,000_
### 🚗 Pavement Management Program
diff --git a/content/Quotes.md b/content/Quotes.md
index 6c0a88f59..2b25fa5d1 100644
--- a/content/Quotes.md
+++ b/content/Quotes.md
@@ -32,10 +32,7 @@ Collection of quotes I like.
## Ashtavakra Gita
-> "The wise man knows the Self,
-> And he plays the game of life.
-> But the fool lives in the world
-> Like a beast of burden."
+> "The wise man knows the Self, And he plays the game of life. But the fool lives in the world Like a beast of burden."
## Big Mouth
@@ -131,8 +128,7 @@ Collection of quotes I like.
>
> I don't know. The only thing I do know… is that we have to be kind.
>
-> Please. Be kind… especially when we don't know what's going on.
-> I know you see yourself as a fighter. Well, I see myself as one too. This is how I fight."
+> Please. Be kind… especially when we don't know what's going on. I know you see yourself as a fighter. Well, I see myself as one too. This is how I fight."
## Yuval Noah Harari
diff --git a/content/SSD NVMe Comparison.md b/content/SSD NVMe Comparison.md
index d2a964a07..b5918df92 100644
--- a/content/SSD NVMe Comparison.md
+++ b/content/SSD NVMe Comparison.md
@@ -48,8 +48,7 @@ Let's break it down:
### Price
-Based on price per $1.
-Selected $0.10 as the baseline after averaging some calculations.
+Based on price per $1. Selected $0.10 as the baseline after averaging some calculations.
- 1 point for every $0.01 / GB below $0.10
diff --git a/content/Words.md b/content/Words.md
index 224fc747c..14f4deeac 100644
--- a/content/Words.md
+++ b/content/Words.md
@@ -13,8 +13,7 @@ Compilation of Words I like. Visit the [source](https://wordwarriors.wayne.edu/l
## Anodyne (adjective)
1. Capable of soothing or eliminating pain.
-2. Not likely to offend or arouse tensions.
- Also used as a _noun_ to describe something that soothes, calms, or comforts.
+2. Not likely to offend or arouse tensions. Also used as a _noun_ to describe something that soothes, calms, or comforts.
## Arete (noun)