diff options
author | Adam T. Carpenter <atc@53hor.net> | 2020-11-24 08:38:02 -0500 |
---|---|---|
committer | Adam T. Carpenter <atc@53hor.net> | 2020-11-24 08:38:02 -0500 |
commit | db88cf6a17bf89759bf555647b14233b99be673c (patch) | |
tree | 1e6c5fd56b3cbf6ab1529da6417e0ecdd254c1a5 | |
download | 53hor-db88cf6a17bf89759bf555647b14233b99be673c.tar.xz 53hor-db88cf6a17bf89759bf555647b14233b99be673c.zip |
Basic redesign aimed at simplicity.
41 files changed, 1450 insertions, 0 deletions
diff --git a/about.html b/about.html new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/about.html diff --git a/computing/2019-04-06-why-have-a-website-in-2019.md b/computing/2019-04-06-why-have-a-website-in-2019.md new file mode 100644 index 0000000..96b659f --- /dev/null +++ b/computing/2019-04-06-why-have-a-website-in-2019.md @@ -0,0 +1,100 @@ +--- +permalink: /posts/{{categories}}/{{slug}} +title: Why Have a Website in 2019? +categories: + - technology +tags: + - website + - self-hosted + - blog + - online presence +published_date: "2019-04-06 20:50:19 +0000" +layout: post.liquid +is_draft: false +excerpt_separator: "\n\n\n" +--- + +> Adam, why on earth do you have a website? Wait... Is this a *blog*? It's +> 2019, why don't you just use Facebook?! + +I've wanted to have my own website for a long time mostly because I like +playing with technology. I think it's cool that I can make a few files on a +computer in my closet available for the entire world to see. The web has become +a near-necessity in our daily lives and it's only been around for a couple of +decades. That has always fascinated me enough to drive me to see if I can do it +on my own. I started self-hosting my own web server about a year ago now and +it's been an awesome study in the way all of the tech we use on the web works. + +A written website is also a good way to keep up on my writing skills. I've +graduated college and won't be writing essays for the foreseeable eternity. +Which is fine except that I have no reason to write creatively or formally +anymore. Having this site encourages me to continue turning thoughts into +words, even though it's more casual than a term paper. + +This extends into the professionalism of a personal website. Normally you can't +point your employer towards your Twitter profile as the distillation of your +online footprint. Having a website, especially one that separates professional +and personal interests, is ten times better than a resume, especially in the +world of technology. It lets you tell people exactly who you are and what you +do, without forcing them to navigate through an auth wall or a bunch of puppy +photos. Your professional and personal lives don't bleed together quite as much +and it makes for a kick-ass business card. + +Most importantly however, I enjoy the level of control that I gain with +creating and operating my own website, something I have also sought for a long +time. In high school I set up an old Dell from my school's recycling center +with Windows XP and Microsoft Internet Information Services. It didn't have SSL +or even a domain name but it was reachable over the WAN. I set up an upload +system so that my friends and I could 'post' memes and funny messages for each +other on raw html pages written with Microsoft Word. That was the extent of its +functionality. It was slow, insecure, and went offline every time the router +got a new IP assigned to it. But I didn't care. It was a site the school +couldn't block. It had no name and no rules and nobody could tell us what to do +with it because it was ours. And we called it the *Troll Nexus Center* because +we were 15 and brimming with creativity. + +My reasons then for building the Troll Nexus Center still stand now. *Having +your own website is having your own piece of internet property.* I first heard +this wording from [Luke Smith over on his YouTube +channel](https://www.youtube.com/watch?v=azkWYxyqh3Y) and it's one-hundred +percent true. Tumblogs, Google Sites, Facebook profiles, and GitHub Pages are +all like renting an apartment. Sure, there are some really nice apartments out +there ([we love ours!](https://www.thecommonwealthapts.com)) but it's not the +same as owning your own home. You have to pay rent obviously, and rent is +subject to change once your lease is up. If anything breaks you text your +landlord and wait to have it fixed. You aren't allowed to fix it yourself and +sometimes it doesn't get fixed at all. And of course you're limited by how much +you can customize things to your own liking. Whether it's painting walls or +knocking them down. + +These limitations may or may not apply to you. Whether you're paying for +storage, server space, metrics, or watching an ad every five seconds, these +services aren't free either. And you certainly can't fix everything that goes +wrong with them. I started on Google Sites. It's a truly fantastic system. +Building a site is like putting a PowerPoint slide together. I just plain +outgrew it. There were too many things I wanted to do that I simply couldn't. I +was also at the mercy of Google's constant change. After I finished +constructing my first site, Google [announced they would be shutting down the +old Google Sites in favor of an entirely new platform under the same +name](https://gsuiteupdates.googleblog.com/2016/11/a-totally-rebuilt-google-sitesnow.html). +Weeks of work got thrown out the window. You might also not care about ads or +customization. You may be intimidated by doing things yourself and prefer that +the landlord take care of everything. Personally, I like the challenge and the +craftsmanship that comes with doing something oneself. And I like being in +total control of my server, site, and content. Not from a tinfoil hat +perspective but from a "gosh I really wish I could just share more than 15 +gigabytes of family video with my relatives in New York and Ohio" perspective. + +So that's why I created my own website. If you want to know *how* I host my own +website, look for another post about my server setup where I'll explain +everything I'm hosting and how I got it all hooked up. And that's a wrap. Now +you know why I'm here instead of somewhere else online. Sure, I do have +Facebook and YouTube accounts but I don't frequently update anything on either +of them. This site is my home online. It's where I keep all of my interests, +hobbies, and memories for sharing with others. + +Now you know where to find me. If you want to keep up with me, subscribe to my +RSS feed up top! + + + diff --git a/computing/school-server-closets-are-utopic.md b/computing/school-server-closets-are-utopic.md new file mode 100644 index 0000000..cb9dc93 --- /dev/null +++ b/computing/school-server-closets-are-utopic.md @@ -0,0 +1,11 @@ +--- +excerpt_separator: "\n\n\n" +permalink: /posts/{{categories}}/{{slug}} +title: School Server Closets are Utopic +categories: +- technology +tags: [] +layout: post.liquid +is_draft: true +--- +Start writing already... diff --git a/contact.html b/contact.html new file mode 100644 index 0000000..af3ea4a --- /dev/null +++ b/contact.html @@ -0,0 +1,16 @@ +You can send me mail at this address: +<a href="mailto:mail@53hor.net">mail@53hor.net</a>. I also exist on the +following sites but may or may not use them that often. + +<ul> + <li><a href="#">Discord</a></li> + <li><a href="#">Facebook</a></li> + <li><a href="#">Reddit</a></li> + <li><a href="#">Twitter</a></li> + <li><a href="#">YouTube</a></li> + <li><a href="https://www.linkedin.com/in/adam-carpenter/">LinkedIn</a></li> + <li><a href="https://steamcommunity.com/id/53hornet/">Steam</a></li> +</ul> + +If you were looking for source code repositories, see +<a href="/software.html">Software</a>. diff --git a/includes/icons/.!26569!card-account-mail.svg b/includes/icons/.!26569!card-account-mail.svg new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/includes/icons/.!26569!card-account-mail.svg diff --git a/includes/icons/.!89047!card-account-mail.svg b/includes/icons/.!89047!card-account-mail.svg new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/includes/icons/.!89047!card-account-mail.svg diff --git a/includes/icons/at.svg b/includes/icons/at.svg new file mode 100644 index 0000000..d2d76d4 --- /dev/null +++ b/includes/icons/at.svg @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path fill="#ffffff" d="M12,15C12.81,15 13.5,14.7 14.11,14.11C14.7,13.5 15,12.81 15,12C15,11.19 14.7,10.5 14.11,9.89C13.5,9.3 12.81,9 12,9C11.19,9 10.5,9.3 9.89,9.89C9.3,10.5 9,11.19 9,12C9,12.81 9.3,13.5 9.89,14.11C10.5,14.7 11.19,15 12,15M12,2C14.75,2 17.1,3 19.05,4.95C21,6.9 22,9.25 22,12V13.45C22,14.45 21.65,15.3 21,16C20.3,16.67 19.5,17 18.5,17C17.3,17 16.31,16.5 15.56,15.5C14.56,16.5 13.38,17 12,17C10.63,17 9.45,16.5 8.46,15.54C7.5,14.55 7,13.38 7,12C7,10.63 7.5,9.45 8.46,8.46C9.45,7.5 10.63,7 12,7C13.38,7 14.55,7.5 15.54,8.46C16.5,9.45 17,10.63 17,12V13.45C17,13.86 17.16,14.22 17.46,14.53C17.76,14.84 18.11,15 18.5,15C18.92,15 19.27,14.84 19.57,14.53C19.87,14.22 20,13.86 20,13.45V12C20,9.81 19.23,7.93 17.65,6.35C16.07,4.77 14.19,4 12,4C9.81,4 7.93,4.77 6.35,6.35C4.77,7.93 4,9.81 4,12C4,14.19 4.77,16.07 6.35,17.65C7.93,19.23 9.81,20 12,20H17V22H12C9.25,22 6.9,21 4.95,19.05C3,17.1 2,14.75 2,12C2,9.25 3,6.9 4.95,4.95C6.9,3 9.25,2 12,2Z" /></svg> diff --git a/includes/icons/card-account-mail.svg b/includes/icons/card-account-mail.svg new file mode 100644 index 0000000..a55c913 --- /dev/null +++ b/includes/icons/card-account-mail.svg @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path fill="#ffffff" d="M21,8V7L18,9L15,7V8L18,10M22,3H2A2,2 0 0,0 0,5V19A2,2 0 0,0 2,21H22A2,2 0 0,0 24,19V5A2,2 0 0,0 22,3M8,6A3,3 0 0,1 11,9A3,3 0 0,1 8,12A3,3 0 0,1 5,9A3,3 0 0,1 8,6M14,18H2V17C2,15 6,13.9 8,13.9C10,13.9 14,15 14,17M22,12H14V6H22" /></svg> diff --git a/includes/icons/desktop-tower.svg b/includes/icons/desktop-tower.svg new file mode 100644 index 0000000..c1e7cfb --- /dev/null +++ b/includes/icons/desktop-tower.svg @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path fill="#ffffff" d="M8,2H16A2,2 0 0,1 18,4V20A2,2 0 0,1 16,22H8A2,2 0 0,1 6,20V4A2,2 0 0,1 8,2M8,4V6H16V4H8M16,8H8V10H16V8M16,18H14V20H16V18Z" /></svg> diff --git a/includes/icons/git.svg b/includes/icons/git.svg new file mode 100644 index 0000000..2c8a80d --- /dev/null +++ b/includes/icons/git.svg @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path fill="#ffffff" d="M2.6,10.59L8.38,4.8L10.07,6.5C9.83,7.35 10.22,8.28 11,8.73V14.27C10.4,14.61 10,15.26 10,16A2,2 0 0,0 12,18A2,2 0 0,0 14,16C14,15.26 13.6,14.61 13,14.27V9.41L15.07,11.5C15,11.65 15,11.82 15,12A2,2 0 0,0 17,14A2,2 0 0,0 19,12A2,2 0 0,0 17,10C16.82,10 16.65,10 16.5,10.07L13.93,7.5C14.19,6.57 13.71,5.55 12.78,5.16C12.35,5 11.9,4.96 11.5,5.07L9.8,3.38L10.59,2.6C11.37,1.81 12.63,1.81 13.41,2.6L21.4,10.59C22.19,11.37 22.19,12.63 21.4,13.41L13.41,21.4C12.63,22.19 11.37,22.19 10.59,21.4L2.6,13.41C1.81,12.63 1.81,11.37 2.6,10.59Z" /></svg> diff --git a/includes/icons/home-roof.svg b/includes/icons/home-roof.svg new file mode 100644 index 0000000..f4776ef --- /dev/null +++ b/includes/icons/home-roof.svg @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path fill="#ffffff" d="M19 16H22L12 7L2 16H5L12 9.69L19 16M7 8.81V7H4V11.5L7 8.81Z" /></svg> diff --git a/includes/icons/information-variant.svg b/includes/icons/information-variant.svg new file mode 100644 index 0000000..f345aea --- /dev/null +++ b/includes/icons/information-variant.svg @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path fill="#ffffff" d="M13.5,4A1.5,1.5 0 0,0 12,5.5A1.5,1.5 0 0,0 13.5,7A1.5,1.5 0 0,0 15,5.5A1.5,1.5 0 0,0 13.5,4M13.14,8.77C11.95,8.87 8.7,11.46 8.7,11.46C8.5,11.61 8.56,11.6 8.72,11.88C8.88,12.15 8.86,12.17 9.05,12.04C9.25,11.91 9.58,11.7 10.13,11.36C12.25,10 10.47,13.14 9.56,18.43C9.2,21.05 11.56,19.7 12.17,19.3C12.77,18.91 14.38,17.8 14.54,17.69C14.76,17.54 14.6,17.42 14.43,17.17C14.31,17 14.19,17.12 14.19,17.12C13.54,17.55 12.35,18.45 12.19,17.88C12,17.31 13.22,13.4 13.89,10.71C14,10.07 14.3,8.67 13.14,8.77Z" /></svg> diff --git a/includes/icons/rss-box.svg b/includes/icons/rss-box.svg new file mode 100644 index 0000000..691a07a --- /dev/null +++ b/includes/icons/rss-box.svg @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path fill="#ffffff" d="M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M7.5,15A1.5,1.5 0 0,0 6,16.5A1.5,1.5 0 0,0 7.5,18A1.5,1.5 0 0,0 9,16.5A1.5,1.5 0 0,0 7.5,15M6,10V12A6,6 0 0,1 12,18H14A8,8 0 0,0 6,10M6,6V8A10,10 0 0,1 16,18H18A12,12 0 0,0 6,6Z" /></svg>
\ No newline at end of file diff --git a/includes/icons/rss.svg b/includes/icons/rss.svg new file mode 100644 index 0000000..9321e73 --- /dev/null +++ b/includes/icons/rss.svg @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path fill="#ffffff" d="M6.18,15.64A2.18,2.18 0 0,1 8.36,17.82C8.36,19 7.38,20 6.18,20C5,20 4,19 4,17.82A2.18,2.18 0 0,1 6.18,15.64M4,4.44A15.56,15.56 0 0,1 19.56,20H16.73A12.73,12.73 0 0,0 4,7.27V4.44M4,10.1A9.9,9.9 0 0,1 13.9,20H11.07A7.07,7.07 0 0,0 4,12.93V10.1Z" /></svg> diff --git a/includes/icons/server.svg b/includes/icons/server.svg new file mode 100644 index 0000000..131c08b --- /dev/null +++ b/includes/icons/server.svg @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path fill="#ffffff" d="M4,1H20A1,1 0 0,1 21,2V6A1,1 0 0,1 20,7H4A1,1 0 0,1 3,6V2A1,1 0 0,1 4,1M4,9H20A1,1 0 0,1 21,10V14A1,1 0 0,1 20,15H4A1,1 0 0,1 3,14V10A1,1 0 0,1 4,9M4,17H20A1,1 0 0,1 21,18V22A1,1 0 0,1 20,23H4A1,1 0 0,1 3,22V18A1,1 0 0,1 4,17M9,5H10V3H9V5M9,13H10V11H9V13M9,21H10V19H9V21M5,3V5H7V3H5M5,11V13H7V11H5M5,19V21H7V19H5Z" /></svg> diff --git a/includes/iosevka-slab-regular.woff2 b/includes/iosevka-slab-regular.woff2 Binary files differnew file mode 100644 index 0000000..fda41e3 --- /dev/null +++ b/includes/iosevka-slab-regular.woff2 diff --git a/includes/rss.xml b/includes/rss.xml new file mode 100644 index 0000000..2e6890e --- /dev/null +++ b/includes/rss.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE xml> +<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> + <channel> + <title>53hornet's Feed</title> + <link>https://www.53hor.net</link> + <description>The World Wide Web pages of Adam T. Carpenter.</description> + <atom:link href="https://www.53hor.net/rss.xml" rel="self" type="application/rss+xml" /> + <item> + <title>Entry Title</title> + <link>https://www.53hor.net/wheels/2020-11-21-this-url.html</link> + <guid>https://www.mysite.com/?p=584674</guid> + <description>ho! thanketh thee f'r subscribing to mine own rss feedeth</description> + <pubDate>Wed, 02 Oct 2002 08:00:00 EST</pubDate> + </item> + </channel> +</rss> diff --git a/includes/stylesheet.css b/includes/stylesheet.css new file mode 100644 index 0000000..a24fc46 --- /dev/null +++ b/includes/stylesheet.css @@ -0,0 +1,84 @@ +@font-face { + font-family: "Iosevka Slab"; + src: url("/includes/iosevka-slab-regular.woff2"); +} + +:root { + --balboa: #195970; + --charcoal: #32444a; + --ruby: #9b111e; + --slate: #798d94; + --white: white; + --box-radius: 1em; + --box-border: 0.5em solid var(--white); +} + +body { + font-family: "Iosevka Slab", monospace; + font-size: 1.5em; + background-color: var(--balboa); + color: var(--white); + max-width: 50em; + margin: auto; + padding: 1em; +} + +nav { + list-style-type: none; + text-align: center; +} + +nav ul { + padding: 0; + margin: 0; +} + +nav li { + display: inline-block; + margin: 0.5em; + padding: 0.5em; +} + +nav img { + padding-right: 0.5em; +} + +nav a:link, +nav a:visited, +nav a:hover, +nav a:active { + display: flex; + align-items: center; + color: var(--white); + text-decoration: none; +} + +a:link { + color: var(--slate); +} + +a:visited { + color: var(--charcoal); +} + +code { + display: block; + background-color: var(--charcoal); + padding: 1em; + border-radius: var(--box-radius); + border-left: var(--box-border); + border-right: var(--box-border); +} + +.description { + background-color: var(--ruby); + padding: 1em; + border-radius: var(--box-radius); + border-left: var(--box-border); + border-right: var(--box-border); +} + +h1, +blockquote { + font-style: oblique; +} diff --git a/index.html b/index.html new file mode 100644 index 0000000..38d1231 --- /dev/null +++ b/index.html @@ -0,0 +1,70 @@ +<!DOCTYPE html> +<html> + <head> + <link rel="stylesheet" href="/includes/stylesheet.css" /> + <meta charset="utf-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <meta + property="og:description" + content="The World Wide Web pages of Adam Carpenter" + /> + <meta property="og:image" content="test.jpg" /> + <meta property="og:site_name" content="53hor.net" /> + <meta property="og:title" content="Adam Carpenter (53hornet)" /> + <meta property="og:type" content="website" /> + <meta property="og:url" content="https://www.53hor.net" /> + <title>53hornet -- Home</title> + </head> + + <body> + <header> + <noscript> + You don't have JavaScript enabled? That's cool, neither do I. + </noscript> + </header> + <nav> + <ul> + <li> + <a href="/"> + <img src="/includes/icons/home-roof.svg" /> + Home + </a> + </li> + <li> + <a href="/about.html"> + <img src="/includes/icons/information-variant.svg" /> + About + </a> + </li> + <li> + <a href="/software.html"> + <img src="includes/icons/git.svg" /> + Software + </a> + </li> + <li> + <a href="/services.html"> + <img src="/includes/icons/server.svg" /> + Services + </a> + </li> + <li> + <a href="/rss.xml"> + <img src="/includes/icons/rss-box.svg" /> + RSS + </a> + </li> + <li> + <a href="/contact.html"> + <img src="/includes/icons/card-account-mail.svg" /> + Contact + </a> + </li> + </ul> + </nav> + + <h1>53hornet</h1> + + <h2>The World Wide Web pages of Adam Carpenter (53hornet)</h2> + </body> +</html> diff --git a/life/2019-07-21-dancing-the-shag-and-the-new-lion-king.md b/life/2019-07-21-dancing-the-shag-and-the-new-lion-king.md new file mode 100644 index 0000000..f567ea5 --- /dev/null +++ b/life/2019-07-21-dancing-the-shag-and-the-new-lion-king.md @@ -0,0 +1,41 @@ +--- +permalink: "/posts/{{categories}}/{{slug}}" +title: Dancing the Shag and The New Lion King +categories: + - life +tags: + - carolina + - shag + - dancing + - wedding + - lion + - king + - remake +published_date: "2019-07-21 12:38:48 +0000" +layout: post.liquid +is_draft: false +excerpt_separator: "\n\n\n" +--- +Not all of my posts are huge, and they probably shouldn't be. Amy and I had a +really great time yesterday at Two Left Feet Dance Studio, learning more about +how to dance the Carolina Shag in preparation for our wedding (which is in less +than 20 days)! An enormous swing band is going to play all of our favorites +from the brass band/swing era, and one of the easiest dances to do to that +music is the Shag. I wrote a paper on the Shag a few years ago for school but +never actually learned how to do it. The steps are simple for us to remember +and it's easy enough to add flair or mix it up so we look like we know what +we're doing during our first dance. + +We also got out to see the new Lion King remake and I can honestly say it was +worth it. If anyone's a Lion King purist, it's Amy. It's easily been her +favorite movie since she was a toddler, and to see it tastefully redone almost +25 years after it was first released was thoroughly enjoyable. There were minor +alterations to literal sentences in the script that all added some context to +things that were always kind of assumed in the original (clarification on +Scar's backstory, etc.). I did however feel like they were trying to throw +Beyonce lines the way a middle-schooler tries to turn a 500-word paper into a +700-word paper. Regardless, it's definitely re-living the classic, not +re-hashing it. + + + diff --git a/life/2019-07-28-i-finally-found-a-drink-i-like.md b/life/2019-07-28-i-finally-found-a-drink-i-like.md new file mode 100644 index 0000000..aaf6e86 --- /dev/null +++ b/life/2019-07-28-i-finally-found-a-drink-i-like.md @@ -0,0 +1,32 @@ +--- +permalink: "/posts/{{categories}}/{{slug}}" +title: I Finally Found a Drink I Like! +categories: + - life +tags: + - mixed + - drinks +excerpt_separator: "\n\n\n" +published_date: "2019-07-28 01:36:47 +0000" +layout: post.liquid +is_draft: false +--- +Anyone who knows me even slightly well probably knows that I don't drink. And +it's not out of moral obligation or anything like that. I just plain can't +stand the taste of alcohol. So it's no surprise that my entire family has been +trying to throw different alcoholic beverages in my direction to see what +sticks. + +But it finally happened! I finally found a drink with alcohol in it. And not +only did I not gag, but I genuinely enjoy it, think it tastes great, and mix it +myself. + +It's called *Blackberry Cream Soda*. It's just blackberries, ginger ale, and +spiced rum. It's darn good. And it's going to be the signature drink at our +wedding, whatever that means. All I know is I can finally order something at a +bar and that's cool by me. + +![Behold, Blackberry Cream Soda](https://nextcloud.53hor.net/s/Jdpp8QYwo6nY9Fx/preview) + + + diff --git a/life/2019-08-11-marrying-my-best-friend.md b/life/2019-08-11-marrying-my-best-friend.md new file mode 100644 index 0000000..c70a3b0 --- /dev/null +++ b/life/2019-08-11-marrying-my-best-friend.md @@ -0,0 +1,24 @@ +--- +permalink: "/posts/{{categories}}/{{slug}}" +title: Marrying My Best Friend +categories: + - life +tags: + - wedding + - honeymoon + - carpenter + - squire +excerpt_separator: "\n\n\n" +published_date: "2019-08-11 14:56:58 +0000" +layout: post.liquid +is_draft: false +--- +It was an inexplicable mixture of joy and butterflies getting to marry my best +friend. It was truly like a dream come true, so much so that it drove me to +tears multiple times. Now that we're on our honeymoon, it feels simultaneously +like everything and nothing has changed but I think that's a good thing. + +More to come! + + + diff --git a/life/2020-04-10-the-obligatory-covid-19-post.md b/life/2020-04-10-the-obligatory-covid-19-post.md new file mode 100644 index 0000000..b0fe492 --- /dev/null +++ b/life/2020-04-10-the-obligatory-covid-19-post.md @@ -0,0 +1,49 @@ +--- +permalink: "/posts/{{categories}}/{{slug}}" +title: The Obligatory COVID-19 Post +categories: + - life +tags: [coronavirus, update, 8 months] +excerpt_separator: "\n\n\n" +published_date: "2020-04-10 02:41:15 +0000" +layout: post.liquid +is_draft: false +--- +We're alive! All three of us: Amy, Clementine, and myself. We're doing what we +do best and that is being hermits with zero social contact. That's pretty okay +by us though because it lets us slow down from all the fast-paced life changes +we've made in the past few months. + +In January Amy and I bought a house! We couldn't have done it without the +wonderful help of everyone who gave us wedding gifts. We got a nice little +standalone place in Suffolk, much closer to where I work and centrally located +for Amy's tutoring business. We spent all of January painting and prepping for +the big move. Late January and early February were all moving and unpacking and +trying to get back in the groove. Since the outbreak, we've been using the +extra time at home to finish up all the move-in projects we wanted to: +finishing painting, putting up shelves, hanging pictures, and rewiring +electrical outlets. + +Amy also finally got the chance to pursue her dream job: she started up her own +private tutoring business. She's been working hard with clients all over +Hampton Roads, from college students all the way to first-graders. Business was +booming before schools closed but I know she'll bring it back once things have +returned to normal again. No worries though, she's spending this time helping +William and Mary handle remote operations and students in need. She's also +[supposed to be] writing her master's thesis so she can graduate in May but you +know how it is. + +We're also working through a family illness, which is benign but difficult +nonetheless. We expect a speedy recovery and we're really excited for that. +All-in-all, we're really enjoying our lives as a happily married couple. It's +been about eight months now and I've enjoyed every minute of it: the glad, the +slightly stressed, and the overarching worry as the world took a strange turn. +But we're looking forward to a good Summer now. The weather has turned nice -- +really nice -- and Clementine is forcing us to get outside. She's in love with +her nice, big fenced-in yard and refuses to come in after catching hoops most +of the time. + +Stay safe! + + + diff --git a/life/2020-04-10-wedding-photos-are-here.md b/life/2020-04-10-wedding-photos-are-here.md new file mode 100644 index 0000000..cfe73d2 --- /dev/null +++ b/life/2020-04-10-wedding-photos-are-here.md @@ -0,0 +1,40 @@ +--- +permalink: "/posts/{{categories}}/{{slug}}" +title: Wedding Photos Are Here! +categories: + - life +tags: + - wedding + - photos + - reception + - ceremony + - bachelor + - bachelorette + - honeymoon +excerpt_separator: "\n\n\n" +published_date: "2020-04-10 03:06:00 +0000" +layout: post.liquid +is_draft: false +--- + +At long last we have all of our wedding photos together! Unfortunately a large +portion of the professional ones were lost during editing but we're extremely +fortunate to everyone who took pictures throughout the festivities so we have +more to share! We hope you enjoy flipping through them as much as we did! There +is also a collection of the photos we took while we were on our honeymoon on +Mackinac Island, MI. It was an absolutely magical place and truly the +experience of a lifetime for us to run away there. We're in contact with our +videographer, who's working on the final cut now. + +Everything is available at the links down below. You can scroll through the +photos, view them in fullscreen, and even download them or share them +elsewhere. We hope you have as much fun flipping through them as we did! + +# [Bachelor & Bachelorette Parties](https://nextcloud.53hor.net/s/eYLqeMGnSPGRNFE) + +# [Wedding Day](https://nextcloud.53hor.net/s/FxekyGQFTFKG5ot) + +# [Honeymoon](https://nextcloud.53hor.net/s/mgZ6M4ayqX73DqL) + + + diff --git a/life/playing-with-leaves.md b/life/playing-with-leaves.md new file mode 100644 index 0000000..9ab26f8 --- /dev/null +++ b/life/playing-with-leaves.md @@ -0,0 +1,10 @@ +--- +excerpt_separator: "\n\n\n" +permalink: "/posts/{{categories}}/{{slug}}" +title: Playing with Leaves +categories: [] +tags: [] +layout: post.liquid +is_draft: true +--- +Start writing already... diff --git a/programming/what-is-a-scripting-language-really.md b/programming/what-is-a-scripting-language-really.md new file mode 100644 index 0000000..88ad7fd --- /dev/null +++ b/programming/what-is-a-scripting-language-really.md @@ -0,0 +1,11 @@ +--- +permalink: /posts/{{categories}}/{{slug}} +excerpt_separator: "\n\n\n" +title: What Is a Scripting Language Really? +categories: + - technology +tags: [] +layout: post.liquid +is_draft: true +--- +Start writing already... diff --git a/services.html b/services.html new file mode 100644 index 0000000..bc1e844 --- /dev/null +++ b/services.html @@ -0,0 +1,30 @@ +<h2>Self-Hosted Applications</h2> + +<ul> + <li>FreeBSD Package Repository</li> + <li>Nextcloud Files, Contacts, Calendars</li> + <li>Plex Media Streaming</li> +</ul> + +<h2>Game Servers</h2> + +If I know you and you're welcome to join one of my game servers, you can find +those here. Non-public ones are password-protected. + +<ul> + <li> + <h3>[The Ultimate] Co-op (Chocolate Doom)</h3> + <a href="doom.53hor.net:3343">doom.53hor.net:3343</a> + </li> + <li> + <h3>DooM II (Chocolate Doom)</h3> + <a href="doom3.53hor.net:3343">doom3.53hor.net:3343</a> + </li> + <li> + <h3> + Skyrim Together (The Elder Scrolls V: Skyrim Special Edition w/ "Skyrim + Together" mod) + </h3> + <a href="st.53hor.net:10578">st.53hor.net:10578</a> + </li> +</ul> diff --git a/software.html b/software.html new file mode 100644 index 0000000..af0d66d --- /dev/null +++ b/software.html @@ -0,0 +1,10 @@ +You can find my source code repositories here: +<a href="https://git.53hor.net">Gitea</a> +I also exist on the following repository sites but don't really use them. + +<ul> + <li><a href="https://github.com/53hornet">GitHub</a></li> + <li><a href="https://gitlab.com/53hornet">GitLab</a></li> +</ul> + +If you were looking to contact me, see <a href="/contact.html">Contact</a>. diff --git a/template.html b/template.html new file mode 100644 index 0000000..b263d6b --- /dev/null +++ b/template.html @@ -0,0 +1,92 @@ +<!DOCTYPE html> +<html> + <head> + <link rel="stylesheet" href="/includes/stylesheet.css" /> + <meta charset="utf-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <meta + property="og:description" + content="The World Wide Web pages of Adam Carpenter" + /> + <meta property="og:image" content="test.jpg" /> + <meta property="og:site_name" content="53hor.net" /> + <meta property="og:title" content="Adam Carpenter (53hornet)" /> + <meta property="og:type" content="website" /> + <meta property="og:url" content="https://www.53hor.net" /> + <title>{{ title }}</title> + </head> + + <body> + <header> + <noscript> + You don't have JavaScript enabled? That's cool, neither do I. + </noscript> + </header> + <nav> + <ul> + <li> + <a href="/"> + <img src="/includes/icons/home-roof.svg" /> + Home + </a> + </li> + <li> + <a href="/about.html"> + <img src="/includes/icons/information-variant.svg" /> + About + </a> + </li> + <li> + <a href="/software.html"> + <img src="includes/icons/git.svg" /> + Software + </a> + </li> + <li> + <a href="/services.html"> + <img src="/includes/icons/desktop-tower.svg" /> + Hosted + </a> + </li> + <li> + <a href="/rss.xml"> + <img src="/includes/icons/rss.svg" /> + RSS + </a> + </li> + <li> + <a href="/contact.html"> + <img src="/includes/icons/at.svg" /> + Contact + </a> + </li> + </ul> + </nav> + + <h1> + {{ title }} + </h1> + + <article> + <p class="description"> + {{ description }} + </p> + + {{ article }} + + <pre> + <code> +int sample_code() { + let x = 1; + let y = x; + return 0; +} + </code> + </pre> + + <blockquote cite="wikipedia.org is a terrible primary source"> + {{ blockquote }} + </blockquote> + </article> + </body> +</html> diff --git a/unix/2019-07-04-the-best-way-to-transfer-gopro-files-with-linux.md b/unix/2019-07-04-the-best-way-to-transfer-gopro-files-with-linux.md new file mode 100644 index 0000000..89ebe97 --- /dev/null +++ b/unix/2019-07-04-the-best-way-to-transfer-gopro-files-with-linux.md @@ -0,0 +1,64 @@ +--- +permalink: "/posts/{{categories}}/{{slug}}" +title: The Best Way to Transfer GoPro Files with Linux +categories: + - technology +tags: + - gopro + - camera + - video + - download + - linux + - wireless +published_date: "2019-07-04 21:54:49 +0000" +layout: post.liquid +is_draft: false +excerpt_separator: "\n\n\n" +--- + +Transferring files off of most cameras to a Linux computer isn't all that +difficult. The exception is my GoPro Hero 4 Black. For 4th of July week I took +a bunch of video with the GoPro, approximately 20 MP4 files, about 3GB each. +The annoying thing about the GoPro's USB interface is you need additional +software to download everything through the cable. The camera doesn't just show +up as a USB filesystem that you can mount. The GoPro does have a micro-SD card +but I was away from home and didn't have any dongles or adapters. Both of these +solutions also mean taking the camera out of its waterproof case and off of its +mount. So here's what I did. + +GoPro cameras, after the Hero 3, can open up an ad-hoc wireless network that +lets you browse the GoPro's onboard files through an HTTP server. This means +you can open your browser and scroll through the files on the camera at an +intranet address, `10.5.5.9`, and download them one by one by clicking every +link on every page. If you have a lot of footage on there it kinda sucks. So, I +opened up the manual for `wget`. I'm sure you could get really fancy with some +of the options but the only thing I cared about was downloading every single +MP4 video off of the camera, automatically. I did not want to download any of +the small video formats or actual HTML files. Here's what I used: + +```sh +wget --recursive --accept "*.MP4" http://10.5.5.9:8080/ +``` + +This tells `wget` to download all of the files at the GoPro's address +recursively and skips any that don't have the MP4 extension. Now I've got a +directory tree with all of my videos in it. And the best part is I didn't have +to install the dinky GoPro app on my laptop. Hopefully this helps if you're +looking for an easy way to migrate lots of footage without manually clicking +through the web interface or installing additional software. The only downside +is if you're moving a whole lot of footage, it's not nearly as quick as just +moving files off the SD card. So I'd shoot for using the adapter to read off +the card first and only use this if that's not an option, such as when the +camera is mounted and you don't want to move it. + +Some things I would like to change/add: + +- Download all image files as well; should be easy, just another `--accept` +- Initiate parallel downloads +- Clean up the directory afterwards so I just have one level of depth + +I could probably write a quick and dirty shell script to do all of this for me +but I use the camera so infrequently that it's probably not even worth it. + + + diff --git a/unix/2019-09-28-my-preferred-method-for-data-recovery.md b/unix/2019-09-28-my-preferred-method-for-data-recovery.md new file mode 100644 index 0000000..14aaab4 --- /dev/null +++ b/unix/2019-09-28-my-preferred-method-for-data-recovery.md @@ -0,0 +1,203 @@ +--- +permalink: "/posts/{{categories}}/{{slug}}" +title: My Preferred Method for Data Recovery +categories: + - life +tags: + - data + - file + - photo + - recovery + - linux + - photorec +excerpt_separator: "\n\n\n" +published_date: "2019-09-28 20:20:05 +0000" +layout: post.liquid +is_draft: false +--- +This week Amy plugged in her flash drive to discover that there were no files +on it. Weeks before there had been dozens of large cuts of footage that she +needed to edit down for work. Hours of recordings were seemingly gone. And the +most annoying part was the drive had worked perfectly on several other +occasions. Just not now that the footage was actually needed of course. +Initially it looked like everything had been wiped clean, however both Amy's +Mac and her PC thought the drive was half full. It's overall capacity was 64GB +but it showed only about 36GB free. So there still had to be data on there if +we could find the right tool to salvage it. + +Luckily this wasn't the first time I had to recover accidentally (or magically) +deleted files. I had previously done so with some success at my tech support +job, for some college friends, and for my in-laws' retired laptops. So I had a +pretty clear idea of what to expect. The only trick was finding a tool that +knew what files it was looking for. The camera that took the video clips was a +Sony and apparently they record into `m2ts` files, which are kind of a unique +format in that they only show up on Blu-Ray discs and Sony camcorders. Enter my +favorite two tools for dealing with potentially-destroyed data: `ddrescue` and +`photorec`. + +## DDRescue + +`ddrescue` is a godsend of a tool. If you've ever used `dd` before, forget +about it. Use `ddrescue`. You might as well `alias dd=ddrescue` because it's +that great. By default it has a plethora of additional options, displays the +progress as it works, recovers and retries in the event of I/O errors, and does +everything that good old `dd` can do. It's particularly good at protecting +partitions or disks that have been corrupted or damaged by rescuing undamaged +portions first. Oh, and have you ever had to cancel a `dd` operation? Did I +mention that `ddrescue` can pause and resume operations? It's that good. + +## PhotoRec + +`photorec` is probably the best missing file recovery tool I've ever used in my +entire life. And I've used quite a few. I've never had as good results as I've +had with `photorec` with other tools like Recuva et. al. And `photorec` isn't +just for photos, it can recover documents (a la Office suite), music, images, +config files, and videos (including the very odd `m2ts` format!). The other +nice thing is `photorec` will work on just about any source. It's also free +software which makes me wonder why there are like $50 recovery tools for +Windows that look super sketchy. + +## In Practice + +So here's what I did to get Amy's files back. Luckily she didn't write anything +out to the drive afterward so the chances (I thought) were pretty good that I +would get *something* back. The first thing I always do is make a full image of +whatever media I'm trying to recover from. I do this for a couple of reasons. +First of all it's a backup. If something goes wrong during recovery I don't +have to worry about the original, fragile media being damaged or wiped. +Furthermore, I can work with multiple copies at a time. If it's a large image +that means multiple tools or even multiple PCs can work on it at once. It's +also just plain faster working off a disk image than a measly flash drive. So I +used `ddrescue` to make an image of Amy's drive. + +```shell +$ sudo ddrescue /dev/sdb1 amy-lexar.dd +GNU ddrescue 1.24 +Press Ctrl-C to interrupt + ipos: 54198 kB, non-trimmed: 0 B, current rate: 7864 kB/s + opos: 54198 kB, non-scraped: 0 B, average rate: 18066 kB/s +non-tried: 63967 MB, bad-sector: 0 B, error rate: 0 B/s + rescued: 54198 kB, bad areas: 0, run time: 2s +pct rescued: 0.08%, read errors: 0, remaining time: 59m + time since last successful read: n/a +Copying non-tried blocks... Pass 1 (forwards) +``` + +The result was a very large partition image that I could fearlessly play around +with. + +```shell +$ ll amy-lexar.dd +-rw-r--r-- 1 root root 60G Sep 24 02:45 amy-lexar.dd +``` + +Then I could run `photorec` on the image. This brings up a TUI with all of the +listed media that I can try and recover from. + +```shell +$ sudo photorec amy-lexar.dd + +PhotoRec 7.0, Data Recovery Utility, April 2015 +Christophe GRENIER <grenier@cgsecurity.org> +http://www.cgsecurity.org + + PhotoRec is free software, and +comes with ABSOLUTELY NO WARRANTY. + +Select a media (use Arrow keys, then press Enter): +>Disk amy-lexar.dd - 64 GB / 59 GiB (RO) + +>[Proceed ] [ Quit ] + +Note: +Disk capacity must be correctly detected for a successful recovery. +If a disk listed above has incorrect size, check HD jumper settings, BIOS +detection, and install the latest OS patches and disk drivers. +``` + +After hitting proceed `photorec` asks if you want to scan just a particular +partition or the whole disk (if you made a whole disk image). I can usually get +away with just selecting the partition I know the files are on and starting a +search. + +```shell +PhotoRec 7.0, Data Recovery Utility, April 2015 +Christophe GRENIER <grenier@cgsecurity.org> +http://www.cgsecurity.org + +Disk amy-lexar.dd - 64 GB / 59 GiB (RO) + + Partition Start End Size in sectors + Unknown 0 0 1 7783 139 4 125042656 [Whole disk] +> P FAT32 0 0 1 7783 139 4 125042656 [NO NAME] + +>[ Search ] [Options ] [File Opt] [ Quit ] + Start file recovery +``` + +Then `photorec` asks a couple of questions about the formatting of the media. +It can usually figure them out all by itself so I just use the default options +unless it's way out in left field. + +```shell +PhotoRec 7.0, Data Recovery Utility, April 2015 +Christophe GRENIER <grenier@cgsecurity.org> +http://www.cgsecurity.org + + P FAT32 0 0 1 7783 139 4 125042656 [NO NAME] + +To recover lost files, PhotoRec need to know the filesystem type where the +file were stored: + [ ext2/ext3 ] ext2/ext3/ext4 filesystem +>[ Other ] FAT/NTFS/HFS+/ReiserFS/... +``` + +Now this menu is where I don't just go with the default path. `photorec` will +offer to search just unallocated space or the entire partition. I always go for +the whole partition here; sometimes I'll get back files that I didn't really +care about but more often than not I end up rescuing more data this way. In +this scenario searching just unallocated space found no files at all. So I told +`photorec` to search everything. + +```shell +PhotoRec 7.0, Data Recovery Utility, April 2015 +Christophe GRENIER <grenier@cgsecurity.org> +http://www.cgsecurity.org + + P FAT32 0 0 1 7783 139 4 125042656 [NO NAME] + + +Please choose if all space need to be analysed: + [ Free ] Scan for file from FAT32 unallocated space only +>[ Whole ] Extract files from whole partition +``` + +Now it'll ask where you want to save any files it finds. I threw them all into +a directory under home that I could zip up and send to Amy's Mac later. + +```shell +PhotoRec 7.0, Data Recovery Utility, April 2015 + +Please select a destination to save the recovered files. +Do not choose to write the files to the same partition they were stored on. +Keys: Arrow keys to select another directory + C when the destination is correct + Q to quit +Directory /home/adam + drwx------ 1000 1000 4096 28-Sep-2019 12:10 . + drwxr-xr-x 0 0 4096 26-Jan-2019 15:32 .. +>drwxr-xr-x 1000 1000 4096 28-Sep-2019 12:10 amy-lexar-recovery +``` + +And then just press `C`. `photrec` will start copying all of the files it finds +into that directory. It reports what kinds of files it found and how many it +was able to locate. I was able to recover all of Amy's lost footage this way, +past, along with some straggler files that had been on the drive at one point. +This has worked for me many times in the past, both on newer devices like flash +drives and on super old, sketchy IDE hard drives. I probably won't ever pay for +data recovery unless a drive has been physically damaged in some way. In other +words, this software works great for me and I don't foresee the need for +anything else out there. It's simple to use and is typically pretty reliable. + + + diff --git a/unix/2020-07-26-now-this-is-a-minimal-install.md b/unix/2020-07-26-now-this-is-a-minimal-install.md new file mode 100644 index 0000000..9936ad4 --- /dev/null +++ b/unix/2020-07-26-now-this-is-a-minimal-install.md @@ -0,0 +1,54 @@ +--- +permalink: "/posts/{{categories}}/{{slug}}" +title: Now This is a Minimal Install! +categories: + - technology + - unix +tags: + - FreeBSD + - packages + - poudriere + - saneness +excerpt_separator: "\n\n\n" +published_date: "2020-07-26 15:21:13 +0000" +layout: post.liquid +is_draft: false +--- +Now this is a minimal install! + +I just got done configuring Poudriere on Freebsd 12.1-RELEASE. The awesome +thing about it is it allows you to configure and maintain your own package +repository. All of the ports and their dependencies are built from source with +personalized options. That means that I can maintain my own repo of just the +packages I need with just the compile-time options I need. For example, for the +Nvidia driver set I disabled all Wayland related flags. I use Xorg so there was +no need to have that functionality built in. + +Compile times are pretty long but I hope to change that by upgrading my home +server to FreeBSD as well (from Ubuntu Server). Then I can configure poudriere +to serve up a ports tree and my own pkg repo from there. The server is a lot +faster than my laptop and will build packages way faster, and I'll be able to +use those packages on both the server and my laptop and any jails I have +running. Jails (and ZFS) also make poudriere really cool to use as all of the +building is done inside a jail. When the time comes I can just remove the jail +and poudriere ports tree from my laptop and update pkg to point to my web +server. + +This is, as I understand it, the sane way to do package management in FreeBSD. +The binary package repo is basically the ports tree pre-assembled with default +options. Sometimes those packages are compiled without functionality that most +users don't need. In those situations, you're forced to use ports. The trouble +is you're not really supposed to mix ports and binary packages. The reason, +again as I understand it, is because ports are updated more frequently. So +binary packages and ports can have different dependency versions, which can +sometimes break compatibility on an upgrade. Most FreeBSD users recommend +installing everything with ports (which is just a make install inside the local +tree) but then you lose the package management features that come with pkg. +Poudriere lets you kind of do both by creating your "own personal binary repo" +out of a list of preconfigured, pre-built ports. + +FreeBSD rocks. + + + + diff --git a/unix/dear-god-why-are-pdf-editors-such-an-ordeal.md b/unix/dear-god-why-are-pdf-editors-such-an-ordeal.md new file mode 100644 index 0000000..5d7e5f4 --- /dev/null +++ b/unix/dear-god-why-are-pdf-editors-such-an-ordeal.md @@ -0,0 +1,18 @@ +--- +permalink: "/posts/{{categories}}/{{slug}}" +title: Dear God Why Are PDF Editors Such an Ordeal? +categories: [] +tags: [] +excerpt_separator: "\n\n\n" +layout: post.liquid +is_draft: true +--- + +All PDF editors/mergers/tools either: + +1. Cost hundreds of dollars +1. Require uploading private documents to a server for processing +1. Leave watermarks or charge you for "pro" features +1. Are blatant malware + +Except mupdf and mutool, which are absolutely amazing. diff --git a/unix/the-quest-for-automated-bluray-ripping.md b/unix/the-quest-for-automated-bluray-ripping.md new file mode 100644 index 0000000..6e20c14 --- /dev/null +++ b/unix/the-quest-for-automated-bluray-ripping.md @@ -0,0 +1,10 @@ +--- +excerpt_separator: "\n\n\n" +permalink: "/posts/{{categories}}/{{slug}}" +title: The Quest for Automated BluRay Ripping +categories: [] +tags: [] +layout: post.liquid +is_draft: true +--- +-> Start here <- diff --git a/wheels/2019-06-07-how-to-start-and-drive-a-hudson-hornet.md b/wheels/2019-06-07-how-to-start-and-drive-a-hudson-hornet.md new file mode 100644 index 0000000..312ad8c --- /dev/null +++ b/wheels/2019-06-07-how-to-start-and-drive-a-hudson-hornet.md @@ -0,0 +1,202 @@ +--- +permalink: "/posts/{{categories}}/{{slug}}" +title: How to Start and Drive a Hudson Hornet +categories: + - automotive +tags: + - hudson + - hornet + - start + - drive +published_date: "2019-06-07 00:30:37 +0000" +layout: post.liquid +is_draft: false +excerpt_separator: "\n\n\n" +--- + +My understanding is there are a lot of people out there for whom driving a car +from the mid-20th century is an oddity, a curiosity, or a life experience they +can't relate to. It's hard to capture what the actual experience is like in +words (hopefully my YouTube channel does a better job) but I think instead I +can do my best here to walk through the procedure of actually *operating* a +Hudson Hornet. + +There are some significant differences between driving the Hornet and most +other cars you come across today. Some of them are just because there are +sixty-six years between the Hudson and the 2019 model year. Others are +Hudson-specific. Many people who I've talked to have said that they would feel +intimidated driving my car (whether that's because of its perceived complexity +or obvious value to me). So, for those who just want to know how it's done: +here is how you start and drive a Hudson Hornet. + +# The Gauge Cluster, Switches, and Controls + +Open the door, slide onto the bench seat, and sit behind the [massive] steering +wheel. For those who haven't experienced it before, it feels like you have a +whole lot of room at your disposal, almost like there *should* be more matter +occupying the space around you. In front of you is probably the shiniest +dashboard you've ever seen. It's simple, and probably slightly familiar. + +From left to right above the steering wheel you have: + +- A speedometer that tops out at 120 mph (with 99K odometer inside) +- Fuel and coolant temperature gauges (and two warning lights; more on those + later) +- A mechanical, electrically-wound clock +- An AM radio +- A glove compartment + +From left to right under the steering wheel you have: + +- A 2-speed wiper control knob +- A weather control (heater) temperature slider +- A 2-speed weather control fan knob +- The ignition barrel +- A headlight switch +- A cigar-lighter (yes, cigar. Check out the owner's manual) + +Also, underneath the dashboard on the left there is a parking brake handle and +hood latch release and on the right there is an arm which raises and lowers the +fresh air cowl vent. Think of it as "recirculate" in more modern vehicles. If +you're looking for the turn signal lever it's the tiny stick to the left of the +steering wheel. The indicator is the little yellow light on the far left of the +dash. There's only one so it flashes when you're signalling left or right. We +also added our own air conditioning system, something Hudsons never came with +from the factory. + +# Dual-Range Hydramatic + +The first thing that might confuse some folks when they first see the car +running is the shift lever. Many Hornets came with three-speed manual +transmissions that were shifted from the column (overdrive was an option). +However, lots of owners paid extra for the optional "Dual-range Hydramatic", a +fully automatic transmission from General Motors. Truly, this car has a 4-speed +automatic that requires no manual shifting during normal use, making it that +much easier to take a boatload of people to get milkshakes. + +Behind the steering wheel is a shift indicator that deviates from the "PRNDL" +pattern most folks are familiar with. From left to right (shift arm fully at +the top to arm fully towards the bottom), the 'gears' are: + +- N (Neutral) +- 4-Dr (Drive, all four speeds) +- 3-Dr (Drive, three speeds only) +- Lo (Low gear) +- R (Reverse) + +Neutral isn't just a mid-way point between reverse and drive in this car. It's +a necessity. With automatic Hornets (and Hydramatics in general), neutral is +used to start the car. There is an electric lockout preventing the car from +being started in any gear but neutral, so you do have to put the car in neutral +before you turn the key (if you're on a hill put your foot on the brake or +engage the parking brake). + +Drive is split into 4-Dr and 3-Dr, which basically decides whether the +transmission utilizes high gear. In the owner's manual, Hudson recommends using +3-Dr for driving around town (as the low RPMs delivered by high gear means +unnecessary shifting in and out of 4th gear) and 4-Dr for highway driving. It +really depends on what speed you're going to be driving at but there isn't +anything wrong with driving around in 4 all the time. I typically leave it in +4th at sustained speeds above 45MPH. You can switch between these gears any +time while moving. + +Low gear basically locks the transmission in 2nd gear so you don't spin the +wheels. The owner's manual says this is for pulling out of sand or dirt if you +get stuck. + +Reverse works just about how you might expect but with an added catch: if the +engine is off it acts as park. That's right. When you turn the car off you can +put it in reverse and the transmission will engage a lock pin to prevent the +car from rolling. You can't start the car in this gear because of the lockout +however so you have to shift into neutral to start the car. So for starting, +put it in neutral, for stopping, put it in reverse. + +# Choke and Gas + +For cold starts, our Hornet (and I believe this was common for other Hudsons of +the time) is equipped with an automatic 2-stage choke. Push the pedal all the +way to the floor once to set the choke. After the car has started and has +warmed up, kick the gas quickly to the floor and release to cancel the choke. + +For warm starts the engine doesn't need the choke but likes to be given just a +little bit of gas while cranking. + +# The Keys, Ignition, and Warning Lights + +Hudsons like mine come with two keys. The octagonal one is for starting the +car, it's used in the ignition. The round one is used for the door and trunk +locks (and I believe in my case the glove box). My understanding is this is +actually reversed from the majority of Hudsons and is due to a locksmith error +at one point or another. + +The ignition switch sits so that the teeth of the key enter vertically. Turning +the key left powers accessories like the radio. Turning the key right once +switches the car to "ON" which will allow the engine to be started and remain +running. + +Here's where some things may vary depending on the year of the car. For '51 +Hornets, there's a separate starter button located all the way on the left +control pod. For these cars, you put the key in and turn it to "ON", and then +press and hold the button until the car has started up. For '52 Hornets +onwards, the ignition switch also activates the starter if you turn the key +past "ON" (like in most modern vehicles). + +If you turn the key to "ON" you'll see two red warning lights appear on the +dash next to the indicators marked "AMP" and "OIL". These are [alternator] +charging status and oil pressure status lights. Our car is equipped with a 12-V +alternator system so the AMP light really comes on if there is low voltage +while the oil pressure light comes on when there's low oil pressure. These +lights will only appear with engine off, key "ON" or if something has gone very +wrong. + +# Starting and Driving + +So now that I've gone over the basics of all the components, here is the normal +starting procedure. It actually varies depending on whether the engine has been +warmed up. That's life with carburetors. + +## From cold: + +- Put your foot on the brake, and shift the lever into neutral. Just push it + vertically, pulling towards you slightly if you need to. +- Push the gas pedal all the way to the floor once and let your foot back up + again to set the choke. +- Put the key in the ignition and start the car (the "AMP" and "OIL" lights + should switch off. +- Wait for the engine to smooth out so you know that it's warm enough to cancel + the choke, and kick the gas pedal once to cancel it. (If the RPMs are still +higher than idle then it's not quite at operating temperature yet) +- Pull the shifter down into 4-Dr or 3-Dr (or R), and release the parking brake + by twisting the handle towards the steering wheel +- Let off the brake and you're off! + +## From warm: + +- Put your foot on the brake and shift into neutral. +- While giving just a little bit of gas, start the car. Both warning lights + should disappear. When the engine fires up you can let off the gas and let it +idle. +- Pull the shifter into 4-Dr or 3-Dr (or R), and release the parking brake by + twisting the handle towards the steering wheel. +- Done. + +# Stopping and parking + +- Hold your foot on the brake and twist the parking brake handle towards the + door of the car, and pull it towards you +- When you're ready to shut off the engine, you can shift it into either + neutral or reverse and turn the key off. Shift it into reverse if you haven't +already to lock the transmission. + +Note: I usually engage the parking brake AND put the car in reverse, just to be +safe. If you had to pick one however I would use the transmission in case +you're on a steep hill and your brakes fail for whatever reason. + +And there you have it! Not much is different from most cars around today but +there are one or two quirks (more about old cars than about Hudsons in +particular). The only major thing to keep track of while driving is that you +have no power steering, so get ready to anticipate turns sooner and use more of +the wheel with every turn. + + + diff --git a/wheels/2019-07-04-yabs-yet-another-bad-shop.md b/wheels/2019-07-04-yabs-yet-another-bad-shop.md new file mode 100644 index 0000000..d123d92 --- /dev/null +++ b/wheels/2019-07-04-yabs-yet-another-bad-shop.md @@ -0,0 +1,158 @@ +--- +permalink: "/posts/{{categories}}/{{slug}}" +title: YABS - Yet Another Bad Shop +categories: + - automotive +tags: + - yabs + - sucky + - auto + - repair + - shops +published_date: "2019-07-04 22:12:46 +0000" +layout: post.liquid +is_draft: false +excerpt_separator: "\n\n\n" +--- + +Today I received a text message from a local mechanic/auto shop asking me to +leave them a Google review. It was an automated message from a shop that I know +well and have used many times in the past. Unfortunately, I have had several +poor experiences (at the time they seemed horrific) with them in the past year +and I can honestly say they'll never receive my business again. Now I could +have used this as an opportunity to leave them an anonymous nasty-gram but +instead I'm going to do the opposite. I'm going to write about everything I +don't like about them without telling you who they are or hiding who I am. Why +would I do that? Well for one, they were an excellent shop for many years. I +believe a recent change in management is to blame and I'm not going to ruin +their chances of making a comeback (because frankly I would like for them to +rebound). And secondly, I don't believe in hiding. This page and its author are +public knowledge. Now, in no particular order: a sample of awful work from yet +another bad shop. + +# Mom's Truck -- Balls Out + +Mom's truck is a 2007 Chrysler Aspen that she loves very much. Dad does a whole +lot of work on it himself (the both of us do pretty much everything we can +in-house so long as we have the right equipment). We've been taking her truck +into this shop for years because we've found them to be reliable, efficient, +and economical. As I said before, at some point in their recent history they +changed hands -- either ownership or management, I can't remember which. It was +around this time that Dad decided to overhaul Mom's front suspension. He +replaced the ball joints, tie rod ends, and a few other worn out parts. He then +did his own best-guess front-end alignment, but left everything loose so that +YABS could finish up the alignment and tighten everything. Now read that again +because it's important. Dad did his own alignment in our driveway (as a +cost-saving measure), got it decently close, but then instructed this shop to +finish the job and tighten everything up. + +Now here's where things fall apart. This shop full of professional mechanics +took one look at the alignment Dad did and decided it was good enough. Hooray +for Dad and supernatural mechanical skills, but the shop didn't even touch the +car. They called Dad back to come pick up the car, telling him it was already +good to go. They never tightened a thing, even after Dad explicitly told them +everything was loose and needed to be tightened but they didn't to touch a +thing. So what happened? Dad picked up the car assuming everything was A-OK and +Mom drove the car for about a week before the two front tires wore down so +badly they had to be replaced immediately. Everything fell out of alignment as +things loosened further and further and the tires wore unevenly until they +ripped themselves to shreds. The worst part? These weren't tires with 6+ years +on them. These were brand new tires. So YABS got to install two more front +tires and then tighten everything. They did not cover the costs, presumably +because it was Dad who had done the alignment. Strike one. + +# Friend's Minivan -- Crude Necessities + +A good friend of ours drives a 2005-2006 Chrysler Town and Country. It was +actually Mom's car before upgrading to the Aspen (the minivan was perfect in +every way but it couldn't tow). Our friend has been using YABS for just a long +as we have. Once again, things started getting kinda strange after several +years of good service. She started getting charged extra for simple repairs she +had them doing very consistently. They also started tacking on extra items for +routine jobs. She would go in for an inspection and they would claim she needed +a new Part X. Now this in and of itself isn't an uncommon or even strange +request to make. As cars age they need things and sometimes you don't know what +they need until you visit a professional mechanic. They remember the things you +forget about. + +One day they did all the forgetting, and they forgot a pretty important, nay, +crucial engine component: motor oil. Our friend took her minivan into YABS for +a routine oil change. Good diligence on her part. And she's not the type to do +that change on her own. She's too old to get under a car anyway (no offense!). +So she took the van to YABS and they did a job they've done thousands of times: +drain oil, replaced the filter, and gave her back the car. Easy peasy right? +Now I know I'm not a professional but I'm thinking someone might have wanted to +double-check that several quarts of synthetic had left the shop shelf and gone +into the car they just backed out of the bay door. Now this part of the story +I'm a little fuzzy on so take it with a large, heaping grain of salt, but I can +say for a fact that they failed to *completely* refill the engine oil before +returning her car. Supposedly there was enough in there such that the minivan +survived long enough for them to realize it before she drove off. + +# Monty, My 2013 Ford Focus -- Nut Allergy + +I decided to give YABS another try after a long leave of absence. I needed new +tires all around for my daily driver. I also needed an inspection and an +alignment. A simple set of tasks for any shop (you see where this is going). I +initially tried to go to another local shop but they were all out of the tires +I was looking to get so I caved and went to YABS. About halfway through the job +they gave me a call and told me they had some bad news. They said that there +were some issues getting the lug nuts off my wheels and that they had all been +stripped, warped, or otherwise destroyed in the process. They told me the only +fix was to get new ones from a supplier in town for about $160. Keep in mind +the entire job (inspection, tires, etc.) was going to cost $650. Furthermore, +dad and I had no problem getting those lug nuts off and back on again just a few +weeks prior when we changed the transmission fluid. + +They didn't have an explanation that I could reconcile with. Joe Schmo over +the phone told me this is typical of Fords and Chryslers these days and that +they'd like to keep my lug nuts for a class action lawsuit they're participating +in. Now why on Earth would any sane mechanic, with full knowledge they are +dealing with a defective set of lug nuts, take a high power impact wrench to +those wheels without speaking with the owner about it first? Smelled fishy to +me honestly. But what was I gonna do? Dad went out and grabbed twenty new +lug nuts for cheaper than they wanted to sell them for. + +Oh the tires were Cooper GTs by the way and they're amazing. They're smooth +and quiet and came with a very nice warranty. They're also made in the USA, +which is very important to me. 10/10 would recommend. + +# Ole Blue -- Tunnel Vision + +This was the real kicker. And this one doesn't really have any trailing +narrative. I got four new tires on Ole Blue, my 1953 Hudson Hornet. They were +delivered to our house: four brand new Diamond Back wide white wall radials. +Super nice tires, with a super nice road hazard warranty (as a side note I +totally recommend you [check out Diamond Back's website]() if you're looking +for white wall radials). So we brought the car to YABS with the new tires and +asked them to mount them on the car. + +When we went to pick up the car everything looked great and I drove off. I made +it all the way to the Monitor Merrimack Memorial Bridge Tunnel before I heard a +loud rattling and a bang. I looked in the rear-view mirror and swore I could +see my precious hubcap rolling off to eternity. When they replaced the hubcaps +they didn't fully press one of them on. And it's not that difficult. These hub +caps are very secure when pressed on the rim, we've never had problems with +them. Oh and we're talking about Hudson hubcaps that came with the car, and +aren't super easy to find. And I couldn't stop to get out and grab it because I +was right at the mouth of the tunnel. We went back later to try and see it but +we couldn't. And it was probably destroyed getting thrown from the car anyways. + +The worst part is, the hubcap took a chunk out of my white wall on its way out +from under the wheel skirt. So the day I got the tires I had to take a picture +and redeem my road hazard warranty. Luckily, Diamond Back were true to their +word and sent me a new one no questions asked. The beat up tire is now my +spare. + +# Not All Bad + +Like I said before, YABS used to be a very nice shop with friendly people that +did good work. And they didn't charge exorbitant prices for their work. Times +have changed, and I believe management has as well. I've stopped visiting their +shop completely. I found a new one that I trust and will be taking all of my +cars to. They've already done a safety inspection on Ole Blue and didn't put up +a fuss. They're clean and friendly and don't seem to be out to screw me. But as +with everything else, your mileage may vary. + + + diff --git a/wheels/2019-08-30-keep-right-except-to-pass.md b/wheels/2019-08-30-keep-right-except-to-pass.md new file mode 100644 index 0000000..0e6daba --- /dev/null +++ b/wheels/2019-08-30-keep-right-except-to-pass.md @@ -0,0 +1,51 @@ +--- +permalink: "/posts/{{categories}}/{{slug}}" +title: Keep Right Except to Pass +categories: + - automotive +tags: + - left lane hogs + - virginia drivers + - passing lane + - thru lanes +excerpt_separator: "\n\n\n" +published_date: "2019-08-30 19:57:34 +0000" +layout: post.liquid +is_draft: false +--- +Greetings fellow drivers of Hampton Roads. You may have noticed a new sign on +I264 today that befuddled or confused you. It went something along the lines of + +> LEFT LANE IS +> FOR PASSING +> NOT CRUISING + +Believe it or not this has been the law throughout Virginia for years ([read +about it +here](https://law.lis.virginia.gov/vacode/title46.2/chapter8/section46.2-804/) +and +[here](https://law.lis.virginia.gov/vacode/title46.2/chapter8/section46.2-842.1/)). +The law states you keep right except while passing. In most other states things +work this way but in Virginia, especially around here, the left lane is treated +as a moving, cruising lane. If you're in the left lane and you've completed a +pass please be mindful of the cars behind you and move back over into the +right-hand lane(s) so that other drivers can do the same. + +It's really nice when this is practiced (like I said, I've experienced it in +other states) because you can easily move over when there are slow vehicles +ahead and then continue on your merry way. It reduces congestion and prevents +people from having to pass in the right lane, which is both annoying and +dangerous. Especially since this is typically the lane cars from entrance and +exit ramps are merging with. + +Don't forget too that it isn't rude or road-rage-y for someone behind you to +honk their horn or flash their lights if you're moving too slowly in the +passing lane. This is a perfectly polite request to pass you. You don't set or +enforce the speed limit. The correct (and legal) thing to do, believe it or +not, is to move over and slow down to let them pass you. It's all about safe +and sane driving etiquette. If you aren't actively passing other cars, move on +over to the right. It goes a long way. + + + + diff --git a/wheels/my-first-car-is-a-1953-hudson-hornet.md b/wheels/my-first-car-is-a-1953-hudson-hornet.md new file mode 100644 index 0000000..d03da5a --- /dev/null +++ b/wheels/my-first-car-is-a-1953-hudson-hornet.md @@ -0,0 +1,9 @@ +--- +title: My First Car Is a 1953 Hudson Hornet +categories: [] +tags: [] +layout: post.liquid +is_draft: true +excerpt_separator: "\n\n\n" +--- +Start writing already... diff --git a/wheels/oh-sh-t-or-the-case-for-safer-classic-cars.md b/wheels/oh-sh-t-or-the-case-for-safer-classic-cars.md new file mode 100644 index 0000000..d48093c --- /dev/null +++ b/wheels/oh-sh-t-or-the-case-for-safer-classic-cars.md @@ -0,0 +1,10 @@ +--- +permalink: "/posts/{{categories}}/{{slug}}" +excerpt_separator: "\n\n\n" +title: "Oh, Sh*t, or, the Case for Safer Classic Cars" +categories: ["automotive"] +tags: [] +layout: post.liquid +is_draft: true +--- +Start writing already... diff --git a/wheels/old-cars-are-perfectly-viable-machines.md b/wheels/old-cars-are-perfectly-viable-machines.md new file mode 100644 index 0000000..2f4e104 --- /dev/null +++ b/wheels/old-cars-are-perfectly-viable-machines.md @@ -0,0 +1,15 @@ +--- +excerpt_separator: "\n\n\n" +permalink: "/posts/{{categories}}/{{slug}}" +title: Old Cars are Perfectly Viable Machines +categories: [] +tags: [] +layout: post.liquid +is_draft: true +--- + +- tow boats +- road trips +- groceries +- commuting + diff --git a/wheels/sketchy-looking-gas-stations-aren-t-that-sketchy.md b/wheels/sketchy-looking-gas-stations-aren-t-that-sketchy.md new file mode 100644 index 0000000..d81b295 --- /dev/null +++ b/wheels/sketchy-looking-gas-stations-aren-t-that-sketchy.md @@ -0,0 +1,10 @@ +--- +excerpt_separator: "\n\n\n" +permalink: "/posts/{{categories}}/{{slug}}" +title: "Sketchy-Looking Gas Stations Aren't That Sketchy" +categories: [] +tags: [] +layout: post.liquid +is_draft: true +--- +Start writing already... |