update to astro 4 plus new post

This commit is contained in:
2024-01-27 21:28:00 -05:00
parent beffc3335e
commit 29fc5be452
11 changed files with 77 additions and 33 deletions
+8 -1
View File
@@ -269,6 +269,13 @@ declare module 'astro:content' {
collection: "blog";
data: InferEntrySchema<"blog">
} & { render(): Render[".md"] };
"my-backup-solution.md": {
id: "my-backup-solution.md";
slug: "my-backup-solution";
body: string;
collection: "blog";
data: InferEntrySchema<"blog">
} & { render(): Render[".md"] };
"my-favorite-little-apps-part-2.md": {
id: "my-favorite-little-apps-part-2.md";
slug: "my-favorite-little-apps-part-2";
@@ -384,5 +391,5 @@ declare module 'astro:content' {
type AnyEntryMap = ContentEntryMap & DataEntryMap;
type ContentConfig = typeof import("../src/content/config");
type ContentConfig = typeof import("../src/content/config.js");
}
BIN
View File
Binary file not shown.
+6 -5
View File
@@ -11,14 +11,15 @@
"astro": "astro"
},
"dependencies": {
"@astrojs/mdx": "^1.1.5",
"@astrojs/netlify": "^3.0.4",
"@astrojs/rss": "^3.0.0",
"astro": "^3.5.4",
"@astrojs/mdx": "2.1.0",
"@astrojs/netlify": "5.0.0",
"@astrojs/rss": "4.0.4",
"astro": "4.2.6",
"date-fns": "^3.3.1",
"date-fns-tz": "^1.3.7",
"markdown-it": "^13.0.1",
"sanitize-html": "^2.9.0"
"sanitize-html": "^2.9.0",
"sharp": "^0.33.2"
},
"devDependencies": {
"prettier": "^2.8.1",
@@ -1 +0,0 @@
<svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0_287_24406)" fill="currentColor"><path d="M18.4 3a1 1 0 1 0-2 0h2zm-2 3.6a1 1 0 1 0 2 0h-2zM7.6 3a1 1 0 0 0-2 0h2zm-2 3.6a1 1 0 0 0 2 0h-2zM3.586 20.414l-.707.707.707-.707zm16.828 0l-.707-.707.707.707zm0-15.028l.707-.707-.707.707zm-16.828 0l-.707-.707.707.707zM20 8.8V17h2V8.8h-2zM17 20H7v2h10v-2zM4 17V8.8H2V17h2zM7.001 5.8H16.998v-2H7.003v2zM21 9H3v2h18V9zm-4.6-6v3.6h2V3h-2zM5.6 3v3.6h2V3h-2zM7 20c-.971 0-1.599-.002-2.061-.064-.434-.059-.57-.153-.646-.229l-1.414 1.414c.51.51 1.138.709 1.793.797C5.3 22.002 6.085 22 7 22v-2zm-5-3c0 .915-.002 1.701.082 2.328.088.655.287 1.284.797 1.793l1.414-1.414c-.076-.076-.17-.212-.229-.646C4.002 18.6 4 17.971 4 17H2zm18 0c0 .971-.002 1.599-.064 2.061-.059.434-.153.57-.229.646l1.414 1.414c.51-.51.709-1.138.797-1.793C22.002 18.7 22 17.915 22 17h-2zm-3 5c.915 0 1.701.002 2.328-.082.655-.088 1.284-.287 1.793-.797l-1.414-1.414c-.076.076-.212.17-.646.229-.462.062-1.09.064-2.061.064v2zm5-13.2c0-.915.002-1.701-.082-2.328-.088-.655-.287-1.284-.797-1.793l-1.414 1.414c.076.076.17.212.229.646.062.462.064 1.09.064 2.061h2zm-5.001-3c.971 0 1.6.002 2.062.064.434.059.57.153.646.229l1.414-1.414c-.51-.51-1.138-.709-1.794-.797C18.7 3.798 17.914 3.8 17 3.8v2zM4 8.8c0-.971.002-1.599.064-2.061.059-.434.153-.57.229-.646L2.879 4.679c-.51.51-.709 1.138-.797 1.793C1.998 7.1 2 7.885 2 8.8h2zm3.001-5c-.915 0-1.701-.002-2.328.082-.656.088-1.285.287-1.794.797l1.414 1.414c.076-.076.212-.17.646-.229.463-.062 1.09-.064 2.062-.064v-2zM8.5 17.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm4.5 0a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm4.5 0a1 1 0 1 1-2 0 1 1 0 0 1 2 0z"/><path d="M17.5 17.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm-9-4a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm4.5 0a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm4.5 0a1 1 0 1 1-2 0 1 1 0 0 1 2 0z"/><path d="M17.5 13.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0z"/></g><defs><clipPath id="clip0_287_24406"><path fill="currentColor" d="M0 0H24V24H0z"/></clipPath></defs></svg>

Before

Width:  |  Height:  |  Size: 1.9 KiB

-1
View File
@@ -1 +0,0 @@
<svg fill="none" height="24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M19 21v-1.45c0-.977 0-1.465-.113-1.864a3 3 0 0 0-2.073-2.073c-.399-.113-.887-.113-1.864-.113h-6.9c-.977 0-1.465 0-1.864.113a3 3 0 0 0-2.073 2.073C4 18.085 4 18.573 4 19.55V21M16.2 7.06c0 2.245-1.88 4.065-4.2 4.065S7.8 9.305 7.8 7.06 9.68 2.996 12 2.996s4.2 1.82 4.2 4.064z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/></svg>

Before

Width:  |  Height:  |  Size: 451 B

@@ -1 +0,0 @@
<svg fill="none" height="24" width="24" xmlns="http://www.w3.org/2000/svg"><g stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><rect height="18" rx="2" width="18" x="3" y="3"/><path d="M3 7h18M7 11.5h10M7 16h6"/></g></svg>

Before

Width:  |  Height:  |  Size: 259 B

+37
View File
@@ -0,0 +1,37 @@
---
title: 'My Backup Solution'
pubDate: '1/27/24'
tags: ['Tech', 'Digital Life']
---
Backing up your data is probably the most important thing you can do with it. This is something I learned the hard way, a little over 10 years ago now, when I lost almost everything on a failed hard drive. Photos, school projects, personal projects, a bunch of terrible stories I wrote (to be fair, that last one wasn't a huge loss). It was then I decided to get serious about backing up, and scrounged up what little money I had at the time to buy a 500GB external drive.
Since then, though my backup solution has evolved, I haven't lost a single bit of data. Outside of my own stupidity of course, but that's another story...
My current backup solution is 2-fold:
First, my entire MacBook is backed up over my local network to an external 4TB drive connected to Mac Mini server using [Carbon Copy Cloner](https://bombich.com/).
Second, the Mac Mini server is then backed up to the cloud via [Backblaze](https://www.backblaze.com/).
To complicate things a tad, I also have a 1TB external SSD connected to the Mac Mini which I use as extra storage for files I don't really need on my MacBook, but still want to keep. This SSD is also backed up to the 4TB drive (via another install of Carbon Copy Cloner), and is thus included in the Backblaze backup.
I've opted to use Carbon Copy Cloner instead of Time Machine because it offers a lot more flexibility, both in scheduling and in how my backups are organized.
For example, the external SSD on the Mac Mini doesn't get written to a whole lot, so I have it scheduled to backup once a day. It's probably a little excessive for how often I actually need to save files there, but I figure it's better to backup more often than I actually need.
On my MacBook, I have it set to backup every 6 hours. I figured this was a good balance between safety and convenience. Most of my mission-critical work is code, which I commit to GitHub on a regular basis, and I'd rather not have to tie up my network every hour.
Finally, I have both these backups separated into their own folders on the 4TB drive for organizational purposes, which I don't think is possible, or at least not that easy to set up, with Time Machine.
But my solution is not perfect, and I have identified a few weaknesses in my setup:
Firstly, my backup is not bootable. This is more of a convenience than anything else, but because of how I have everything configured it's not possible to boot from my network backup.
Also, because my backups are over my local network, I can only backup from home. This isn't the end of the world since I don't often take my MacBook with me for more than a few hours but there have been instances where I've been away for a few days with it in tow. But again, it would be mostly an inconvenience because my mission-critical work gets pushed to GitHub regularly.
Thirdly, I don't have a great solution for keeping backups of my photos and anything else I have in iCloud. While both my local Photos library and the "Mobile Documents" folderwhere macOS stores iCloud Drive locallyare included in the backup, the way iCloud handles files, and its overall reliability, makes me a little nervous. What if some of my photos are missing from the local library, or some document in my iCloud Drive isn't properly downloaded. I don't have a great solution to this, but I am open to suggestions. Please [hit me up on Mastodon](https://mastodon.social/@ghalldev) if you have any.
And finally, I don't have another offsite backup, so if my apartment burns down AND Backblaze for some reason loses all my data (which is an unlikely, but not impossible, scenario) I'm SOL. Even having a backup drive at a relative's house that I backup to once in a while would be better than relying entirely on local network backups and the cloud.
But if there's one thing I learned, and would like to impart on anyone who, in the year 2024, doesn't have a backup, is that _any_ backup is better than _no_ backup. It all depends on your risk tolerance and how much complexity you want to introduce. But I think, at the very least, backing up to an external drive connected to your computer is a must.
+1
View File
@@ -7,6 +7,7 @@ const blogCollection = defineCollection({
tags: z.array(
z.enum([
'Apps',
'Digital Life',
'Gaming',
'Learning',
'Life',
+11 -11
View File
@@ -1,19 +1,19 @@
---
export const prerender = true;
import Layout from '@layouts/Layout.astro';
const styles = {
img: {
display: 'block',
maxWidth: '300px',
margin: 'auto',
marginBottom: '26px',
borderRadius: '200px',
},
};
---
<Layout title="About">
<img src="/portrait.jpg" alt="me" style={styles.img} />
<img src="/portrait.jpg" alt="me" class="portrait" />
<slot />
</Layout>
<style>
.portrait {
display: block;
max-width: 300px;
margin: auto;
margin-bottom: 26px;
border-radius: 200px;
}
</style>
+1 -1
View File
@@ -115,7 +115,7 @@ pre code,
code {
color: var(--orange);
font-family: 'JetBrainsMono', monospace;
font-size: 1rem;
font-size: 0.9rem;
padding: 2px 4px;
border-radius: var(--radius);
background: rgba(155, 155, 155, 0.2);
+2 -1
View File
@@ -6,7 +6,8 @@
"paths": {
"@components/*": ["src/components/*"],
"@layouts/*": ["src/layouts/*"],
"@styles/*": ["src/styles/*"]
"@styles/*": ["src/styles/*"],
"@images/*": ["src/images/*"]
}
}
}