update to astro 4 plus new post
This commit is contained in:
Vendored
+8
-1
@@ -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");
|
||||
}
|
||||
|
||||
+6
-5
@@ -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 +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 |
@@ -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" folder–where macOS stores iCloud Drive locally–are 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.
|
||||
@@ -7,6 +7,7 @@ const blogCollection = defineCollection({
|
||||
tags: z.array(
|
||||
z.enum([
|
||||
'Apps',
|
||||
'Digital Life',
|
||||
'Gaming',
|
||||
'Learning',
|
||||
'Life',
|
||||
|
||||
+11
-11
@@ -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>
|
||||
|
||||
@@ -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
@@ -6,7 +6,8 @@
|
||||
"paths": {
|
||||
"@components/*": ["src/components/*"],
|
||||
"@layouts/*": ["src/layouts/*"],
|
||||
"@styles/*": ["src/styles/*"]
|
||||
"@styles/*": ["src/styles/*"],
|
||||
"@images/*": ["src/images/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user