diff options
| author | Adam T. Carpenter <atc@53hor.net> | 2020-11-29 08:53:22 -0500 | 
|---|---|---|
| committer | Adam T. Carpenter <atc@53hor.net> | 2020-11-29 08:53:22 -0500 | 
| commit | aa6ade8c1bc51bc8f379442bb00710438d1385fd (patch) | |
| tree | d0a99de1f2ceec24c6fe15d61661f96a33a05d3b /posts | |
| parent | daa21252743400c83f9d46c7fdefc00058553d7f (diff) | |
| download | 53hor-aa6ade8c1bc51bc8f379442bb00710438d1385fd.tar.xz 53hor-aa6ade8c1bc51bc8f379442bb00710438d1385fd.zip  | |
organized posts, added profile, started makefile
Diffstat (limited to 'posts')
15 files changed, 2206 insertions, 0 deletions
diff --git a/posts/computing/2019-04-06-why-have-a-website-in-2019.html b/posts/computing/2019-04-06-why-have-a-website-in-2019.html new file mode 100644 index 0000000..f8520d4 --- /dev/null +++ b/posts/computing/2019-04-06-why-have-a-website-in-2019.html @@ -0,0 +1,176 @@ +<!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="/includes/images/logo_diag.png" /> +    <meta property="og:site_name" content="53hor.net" /> +    <meta property="og:title" content="Why Have a Web Site in 2019?" /> +    <meta property="og:type" content="website" /> +    <meta property="og:url" content="https://www.53hor.net" /> +    <title>53hornet ➙ Why Have a Web Site in 2019?</title> +  </head> + +  <body> +    <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="/hosted.html"> +            <img src="/includes/icons/desktop-tower.svg" /> +            Hosted +          </a> +        </li> +        <li> +          <a type="application/rss+xml" 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> + +    <article> +      <h1>Why Have a Web Site in 2019?</h1> +      <blockquote> +        Adam, why on earth do you have a website? Wait... Is this a +        <em>blog</em>? It's 2019, why don't you just use Facebook?! +      </blockquote> + +      <p> +        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. +      </p> + +      <p> +        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. +      </p> + +      <p> +        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. +      </p> + +      <p> +        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 +        <em>Troll Nexus Center</em> because that's what you do when you're 15 +      </p> + +      <p> +        My reasons then for building the Troll Nexus Center still stand now. +        <em +          >Having your own website is having your own piece of internet +          property.</em +        > +        I first heard this wording from +        <a href="https://www.youtube.com/watch?v=azkWYxyqh3Y" +          >Luke Smith over on his YouTube channel</a +        > +        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 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. +      </p> + +      <p> +        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 +        <a +          href="https://gsuiteupdates.googleblog.com/2016/11/a-totally-rebuilt-google-sitesnow.html" +          >announced they would be shutting down the old Google Sites in favor +          of an entirely new platform under the same name</a +        >. 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 myself. 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. +      </p> + +      <p> +        So that's why I created my own website. If you want to know +        <em>how</em> 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. +      </p> + +      <p> +        Now you know where to find me. If you want to keep up with me, be +        old-fashioned and subscribe to my RSS feed. +      </p> +    </article> +  </body> +</html> diff --git a/posts/life/2019-07-21-dancing-the-shag-and-the-new-lion-king.html b/posts/life/2019-07-21-dancing-the-shag-and-the-new-lion-king.html new file mode 100644 index 0000000..692a132 --- /dev/null +++ b/posts/life/2019-07-21-dancing-the-shag-and-the-new-lion-king.html @@ -0,0 +1,91 @@ +<!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="/includes/images/logo_diag.png" /> +    <meta property="og:site_name" content="53hor.net" /> +    <meta property="og:title" content="Dancing the Shag & Two Left Feet" /> +    <meta property="og:type" content="website" /> +    <meta property="og:url" content="https://www.53hor.net" /> +    <title>53hornet ➙ Dancing the Shag & Two Left Feet</title> +  </head> + +  <body> +    <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="/hosted.html"> +            <img src="/includes/icons/desktop-tower.svg" /> +            Hosted +          </a> +        </li> +        <li> +          <a type="application/rss+xml" 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> + +    <article> +      <h1>Dancing the Shag & Two Left Feet</h1> +      <p> +        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. +      </p> + +      <p> +        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. +      </p> +    </article> +  </body> +</html> diff --git a/posts/life/2019-07-28-i-finally-found-a-drink-i-like.html b/posts/life/2019-07-28-i-finally-found-a-drink-i-like.html new file mode 100644 index 0000000..447c454 --- /dev/null +++ b/posts/life/2019-07-28-i-finally-found-a-drink-i-like.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="/includes/images/logo_diag.png" /> +    <meta property="og:site_name" content="53hor.net" /> +    <meta property="og:title" content="Finally Found a Drink I Like" /> +    <meta property="og:type" content="website" /> +    <meta property="og:url" content="https://www.53hor.net" /> +    <title>53hornet ➙ Finally Found a Drink I Like</title> +  </head> + +  <body> +    <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="/hosted.html"> +            <img src="/includes/icons/desktop-tower.svg" /> +            Hosted +          </a> +        </li> +        <li> +          <a type="application/rss+xml" 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> + +    <article> +      <h1>Finally Found a Drink I Like</h1> +      <p> +        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. +      </p> + +      <p> +        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. +      </p> + +      <p> +        It's called <em>Blackberry Cream Soda</em>. 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. +      </p> + +      <p> +        <img +          src="https://nextcloud.53hor.net/s/Jdpp8QYwo6nY9Fx/preview" +          alt="Behold, Blackberry Cream Soda" +        /> +      </p> +    </article> +  </body> +</html> diff --git a/posts/life/2019-08-11-marrying-my-best-friend.html b/posts/life/2019-08-11-marrying-my-best-friend.html new file mode 100644 index 0000000..ab348e7 --- /dev/null +++ b/posts/life/2019-08-11-marrying-my-best-friend.html @@ -0,0 +1,74 @@ +<!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="/includes/images/logo_diag.png" /> +    <meta property="og:site_name" content="53hor.net" /> +    <meta property="og:title" content="I Married My Best Friend!" /> +    <meta property="og:type" content="website" /> +    <meta property="og:url" content="https://www.53hor.net" /> +    <title>53hornet ➙ I Married My Best Friend!</title> +  </head> + +  <body> +    <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="/hosted.html"> +            <img src="/includes/icons/desktop-tower.svg" /> +            Hosted +          </a> +        </li> +        <li> +          <a type="application/rss+xml" 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> + +    <article> +      <h1>I Married My Best Friend!</h1> +      <p> +        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. +      </p> + +      <p>More to come!</p> +    </article> +  </body> +</html> diff --git a/posts/life/2020-04-10-the-obligatory-covid-19-post.html b/posts/life/2020-04-10-the-obligatory-covid-19-post.html new file mode 100644 index 0000000..aa948f6 --- /dev/null +++ b/posts/life/2020-04-10-the-obligatory-covid-19-post.html @@ -0,0 +1,109 @@ +<!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="/includes/images/logo_diag.png" /> +    <meta property="og:site_name" content="53hor.net" /> +    <meta property="og:title" content="Obligatory COVID-19 Post" /> +    <meta property="og:type" content="website" /> +    <meta property="og:url" content="https://www.53hor.net" /> +    <title>53hornet ➙ Obligatory COVID-19 Post</title> +  </head> + +  <body> +    <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="/hosted.html"> +            <img src="/includes/icons/desktop-tower.svg" /> +            Hosted +          </a> +        </li> +        <li> +          <a type="application/rss+xml" 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> + +    <article> +      <h1>Obligatory COVID-19 Post</h1> +      <p> +        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. +      </p> + +      <p> +        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. +      </p> + +      <p> +        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. +      </p> + +      <p> +        We're also working through a family illness, which adds difficulty . We +        expect a speedy recovery though 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. +      </p> + +      <p>Stay safe, smart, and sane!</p> +    </article> +  </body> +</html> diff --git a/posts/life/2020-04-10-wedding-photos-are-here.html b/posts/life/2020-04-10-wedding-photos-are-here.html new file mode 100644 index 0000000..01fc955 --- /dev/null +++ b/posts/life/2020-04-10-wedding-photos-are-here.html @@ -0,0 +1,102 @@ +<!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="/includes/images/logo_diag.png" /> +    <meta property="og:site_name" content="53hor.net" /> +    <meta property="og:title" content="Wedding Photo Debacle" /> +    <meta property="og:type" content="website" /> +    <meta property="og:url" content="https://www.53hor.net" /> +    <title>53hornet ➙ Wedding Photo Debacle</title> +  </head> + +  <body> +    <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="/hosted.html"> +            <img src="/includes/icons/desktop-tower.svg" /> +            Hosted +          </a> +        </li> +        <li> +          <a type="application/rss+xml" 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> + +    <article> +      <h1>Wedding Photo Debacle</h1> + +      <p> +        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. +      </p> + +      <p> +        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! +      </p> + +      <ul> +        <li> +          <a href="https://nextcloud.53hor.net/s/eYLqeMGnSPGRNFE" +            >Bachelor & Bachelorette Parties</a +          > +        </li> + +        <li> +          <a href="https://nextcloud.53hor.net/s/FxekyGQFTFKG5ot" +            >Wedding Day</a +          > +        </li> + +        <li> +          <a href="https://nextcloud.53hor.net/s/mgZ6M4ayqX73DqL">Honeymoon</a> +        </li> +      </ul> +    </article> +  </body> +</html> diff --git a/posts/programming/2020-07-11-why-computer-science-at-w-m.html b/posts/programming/2020-07-11-why-computer-science-at-w-m.html new file mode 100644 index 0000000..9d98c9c --- /dev/null +++ b/posts/programming/2020-07-11-why-computer-science-at-w-m.html @@ -0,0 +1,255 @@ +<!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="/includes/images/logo_diag.png" /> +    <meta property="og:site_name" content="53hor.net" /> +    <meta +      property="og:title" +      content="Why Computer Science at William and Mary" +    /> +    <meta property="og:type" content="website" /> +    <meta property="og:url" content="https://www.53hor.net" /> +    <title>53hornet ➙ Why Computer Science at William and Mary</title> +  </head> + +  <body> +    <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="/hosted.html"> +            <img src="/includes/icons/desktop-tower.svg" /> +            Hosted +          </a> +        </li> +        <li> +          <a type="application/rss+xml" 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> + +    <article> +      <h1>Why Computer Science at William and Mary</h1> + +      <p class="description"> +        Recently a rising high-school senior asked for input on what going to +        the College of William and Mary was like for a Computer Science degree. +        They were asking about the program itself as well as what it's like on +        and off campus. Here's what I sent to them. +      </p> + +      <h2>Quick Intro</h2> + +      <p> +        I graduated with a Bachelor's in Computer Science from W&M in 2018. +        I'm a couple years in the workforce now but can still remember my +        experiences well enough to hopefully add my honest opinion on my time +        there as well as how it prepared me for my career. I will also add a +        little bit about my time on campus in a dorm and off-campus in Colonial +        Williamsburg. +      </p> + +      <h2>Courses and Curriculum</h2> + +      <p> +        I felt very positively about the array of courses that were offered +        while I was a student. I took a variety of core prerequisites, just like +        everyone else, and a good mix of electives. The courses I took include +        Data Structures and Algorithms, Software Development/Engineering, +        Computer Organization/Architecture, UNIX Systems Programming, Computer +        Graphics/Animation, and Computer and Network Security. This list is not +        exhaustive and I'm sure they aren't all offered anymore. I was also +        required to take a few math classes (Calc I, II, Discrete Math, Linear +        Algebra, and Finite Automata). +      </p> + +      <p> +        It is true that the courses listed at <code>cs.wm.edu</code> aren't all +        offered at the same time. And it is also true that the higher-level +        electives pretty much all required my core prerequisites to be +        completed. The result is that the electives all came in my final two +        years. My understanding is the curriculum is designed to give someone +        the best possible background in computing as a whole. A lot of the +        topics may seem like they would never be useful in the "real world" but +        I have found the opposite is true. I am an application developer at a +        three-letter company. My day-to-day work is building and debugging web +        apps, but there's been a lot more to it than that. My first assignment +        on the job was scraping bytes off a remote shell and writing a parser to +        sift through them. The level of understanding I gathered from my core +        classes helped more than I expected they would. I think as a whole they +        give me an edge at work and help me teach my colleagues about +        algorithms, performance, and systems administration. +      </p> + +      <p> +        That being said, course registration was always nightmarish. It was very +        difficult to get into the limited seats in the classes I was most +        interested in. Eventually the heads of the department had to pass around +        a sign up sheet and organize every student into courses, classrooms, and +        professors so that seniors would graduate on time and we could all get +        <em>something</em> on our schedules. I hope the shortage of teachers has +        caught up since I graduated. I learned from a long-time faculty member +        that this is largely a result of the exponential growth of incoming CS +        degree-seekers. The program has grown very popular in the last ten years +        and I like to think grads are catching on to that. +      </p> + +      <h2>Teaching</h2> + +      <p> +        CS@W&M had neutral to good instructors for me. Some were far worse +        than others, as with all subjects. When I was there, lots of the older +        faculty were retiring and quickly being replaced with younger, newer +        instructors, which added to the growing pains of the program. The most +        important thing again was making sure there were enough teachers to +        teach all of the students. +      </p> + +      <p> +        I know a few of my peers were very upset about what they described as a +        lack of communication or availability from their professors. Some have +        also mentioned they didn't like having to learn material on their own +        and wanted more to come from instruction. I don't deny that the material +        itself was difficult and there was a lot of hard work I had to do on my +        own to understand very involved concepts in intense, fast-paced courses. +        I think that hard work has paid off. I don't think there's realistically +        anywhere someone can learn about computing where they won't do any +        learning on their own. I am also a very visual, and hands-on learner so +        I suppose your mileage may vary. +      </p> + +      <p> +        The most important takeaway from this for me was the ability to pick up +        new concepts and technologies quickly and apply them productively. The +        majority of professors had project-driven courses. Lots of due dates +        meant learning how to transform what I read or learned in class into +        practical applications in short amounts of time. This has become, +        according to those I work with, one of my greater assets. I am +        constantly learning new things in my career and I don't have a lecturer +        to explain things to me. It's very powerful to have that and I am +        thankful for it. It also helps me teach that knowledge to my colleagues +        so we can move faster as a team. +      </p> + +      <h2>Campus</h2> + +      <p> +        I agree with my peers about the conditions of classrooms and buildings +        on campus. Some are old. I guess that comes with an old university but +        there are a choice few that haven't been kept up as best they could. +        Since CS is growing so fast it's also long outgrown its own offices. +        Classrooms are scattered throughout every academic building on campus +        and I probably had a CS course in at least 80% of them. That meant +        jumping from one side of campus to another and back again in between +        periods. +      </p> + +      <p> +        The College itself isn't too sprawling. I am long-legged and I found I +        could get from one end of campus to another in fifteen minutes on foot. +        I rode bike a lot to get to classes where I only had ten minutes to do +        it. It's also pretty marshy and woodsy in a lot of areas, so during the +        rainy season some walking paths got muddy or flooded. Good boots +        required. I have never been in as good shape as when I had to do all +        that walking but I definitely got soaked and winded making those +        transitions. +      </p> + +      <p> +        I appreciate history and architecture and was drawn in by the look and +        feel of William and Mary as a result. Without getting too romantic, it's +        definitely a beautiful place to attend classes. The ancient Wren +        building still holds classes and it's a monument to the College's +        tradition. However, I really appreciated the modern academic buildings +        on the other side of campus where all of the new construction was taking +        place. Modern lab equipment and the library lived there. +      </p> + +      <p> +        The dorms were nothing to write home about. Lots of them were nested in +        the woods and built ages ago so they were a little tired and even dingy. +        Others are brand new and well maintained; ask around and get opinions on +        which ones to go for first chance you get. I made do with what I got for +        the first couple of years by keeping it clean and decorated. My last two +        years I lived in a couple of off-campus apartments. It was well worth +        the switch. Depending on where you are on campus you may need at least a +        bike to access local restaurants, shops, and the grocery store. A bike +        is a good idea anyway but it's not necessary for every dorm. +      </p> + +      <h2>Colonial Williamsburg</h2> + +      <p> +        Lots of my peers didn't appreciate CW as a "college town" but I enjoyed +        my time there. I can't speak about parties or clubbing, I was boring and +        didn't do any of that. I made a great group of friends and we would walk +        into town to get ice cream, see historical attractions (most of which +        are free as a student, IIRC), and see movies or plays when we weren't +        studying or playing video games in the dorm. There are some good, +        sort-of-affordable restaurants but they're kind of driving distance. +      </p> + +      <p> +        The best part about living there was meeting my wife. We would go on +        long walks to get away from studying and wound up seeing +        horse-and-carriages and the Governor's Palace and things like that. We +        would also escape with her car to go to some of the surrounding towns to +        get away to nice grocery stores and fun places to eat and explore on the +        weekends. I also have family in the area so it was easy for me to stop +        by home and say hi, although I know lots of students wanted to get as +        far away from home as possible. +      </p> + +      <h2>Parting Words</h2> + +      <p> +        I don't consider myself a gung ho alumnus. There are lots of things I +        think could be improved, both in CS and at W&M as a whole but I do +        not regret my going there. There is no such thing as "everything is +        great" or "everything is terrible". It's not so definitive. I had my +        fair share of gripes and at times it strained me. There were pros and +        cons but I think I have a lot to be thankful for (I landed my job +        through W&M recruiting and the career center as well, which are +        fantastic resources). I cannot say "do this instead of that." I haven't +        gone to any other colleges and don't know enough about them to recommend +        them as better or worse. What I can recommend is the same path I took +        for folks who want to pursue a degree in Computer Science. I think +        you'll come away from it all the more knowledgable, resourceful, and +        dedicated. +      </p> +    </article> +  </body> +</html> diff --git a/posts/programming/2020-11-24-i-like-hyper-more-than-actix.html b/posts/programming/2020-11-24-i-like-hyper-more-than-actix.html new file mode 100644 index 0000000..33c5d9e --- /dev/null +++ b/posts/programming/2020-11-24-i-like-hyper-more-than-actix.html @@ -0,0 +1,23 @@ +<h1> +  I Like <a href="https://hyper.rs">hyper</a> more than +  <a href="https://actix.rs">Actix Web</a> +</h1> + +<article> +  <p> +    I've been using Actix Web as the HTTP service layer for some web +    applications for a while now. I've written several APIs for work and +    personal projects on top of Actix and always thought it was pretty spiffy +    for what it does: listen for HTTP requests and respond to them with code +    I've written. I was always a little bummed about how large the dependency +    tree was with the project though, and how long it took to compile. +  </p> + +  <p> +    Recently I've been trying to write or depend on as little code as is +    possible to get the job done, so I've been trying to take a look at whether +    or not I +    <em>need</em> what I've written or imported or even though of implementing +    before I've written anything. +  </p> +</article> diff --git a/posts/unix/2019-07-04-the-best-way-to-transfer-gopro-files-with-linux.html b/posts/unix/2019-07-04-the-best-way-to-transfer-gopro-files-with-linux.html new file mode 100644 index 0000000..15c776f --- /dev/null +++ b/posts/unix/2019-07-04-the-best-way-to-transfer-gopro-files-with-linux.html @@ -0,0 +1,133 @@ +<!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="/includes/images/logo_diag.png" /> +    <meta property="og:site_name" content="53hor.net" /> +    <meta +      property="og:title" +      content="Offloading GoPro Footage the Easy Way!" +    /> +    <meta property="og:type" content="website" /> +    <meta property="og:url" content="https://www.53hor.net" /> +    <title>53hornet ➙ Offloading GoPro Footage the Easy Way!</title> +  </head> + +  <body> +    <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="/hosted.html"> +            <img src="/includes/icons/desktop-tower.svg" /> +            Hosted +          </a> +        </li> +        <li> +          <a type="application/rss+xml" 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> + +    <article> +      <h1>Offloading GoPro Footage the Easy Way!</h1> + +      <p> +        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. +      </p> + +      <p> +        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, <code>10.5.5.9</code>, 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 +        <code>wget</code>. 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: +      </p> + +      <pre> +        <code> +sh wget --recursive --accept "*.MP4" http://10.5.5.9:8080/ +		</code> +      </pre> + +      <p> +        This tells <code>wget</code> 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. +      </p> + +      <p>Some things I would like to change/add:</p> + +      <ul> +        <li> +          Download all image files as well; should be easy, just another +          <code>--accept</code> +        </li> +        <li>Initiate parallel downloads</li> +        <li> +          Clean up the directory afterwards so I just have one level of depth +        </li> +      </ul> + +      <p> +        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. +      </p> +    </article> +  </body> +</html> diff --git a/posts/unix/2019-09-28-my-preferred-method-for-data-recovery.html b/posts/unix/2019-09-28-my-preferred-method-for-data-recovery.html new file mode 100644 index 0000000..b63ba5a --- /dev/null +++ b/posts/unix/2019-09-28-my-preferred-method-for-data-recovery.html @@ -0,0 +1,282 @@ +<!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="/includes/images/logo_diag.png" /> +    <meta property="og:site_name" content="53hor.net" /> +    <meta property="og:title" content="How I Do Data Recovery" /> +    <meta property="og:type" content="website" /> +    <meta property="og:url" content="https://www.53hor.net" /> +    <title>53hornet ➙ How I Do Data Recovery</title> +  </head> + +  <body> +    <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="/hosted.html"> +            <img src="/includes/icons/desktop-tower.svg" /> +            Hosted +          </a> +        </li> +        <li> +          <a type="application/rss+xml" 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> + +    <article> +      <h1>How I Do Data Recovery</h1> + +      <p> +        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. +      </p> + +      <p> +        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 <code>m2ts</code> 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: +        <code>ddrescue</code> and <code>photorec</code>. +      </p> + +      <h2>DDRescue</h2> + +      <p> +        <code>ddrescue</code> is a godsend of a tool. If you've ever used +        <code>dd</code> before, forget about it. Use <code>ddrescue</code>. You +        might as well <code>alias dd=ddrescue</code> 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 <code>dd</code> 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 +        <code>dd</code> operation? Did I mention that <code>ddrescue</code> can +        pause and resume operations? It's that good. +      </p> + +      <h2>PhotoRec</h2> + +      <p> +        <code>photorec</code> 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 <code>photorec</code> with other +        tools like Recuva et. al. And <code>photorec</code> isn't just for +        photos, it can recover documents (a la Office suite), music, images, +        config files, and videos (including the very odd +        <code>m2ts</code> format!). The other nice thing is +        <code>photorec</code> 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. +      </p> + +      <h2>In Practice</h2> + +      <p> +        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 <em>something</em> 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 <code>ddrescue</code> to make an image of Amy's drive. +      </p> + +      <pre><code> +$ 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) +	  </code></pre> + +      <p> +        The result was a very large partition image that I could fearlessly play +        around with. +      </p> + +      <pre> +		<code> +$ ll amy-lexar.dd +-rw-r--r-- 1 root root 60G Sep 24 02:45 amy-lexar.dd +        </code> +	  </pre> + +      <p> +        Then I could run <code>photorec</code> on the image. This brings up a +        TUI with all of the listed media that I can try and recover from. +      </p> + +      <pre><code> +$ sudo photorec amy-lexar.dd + +PhotoRec 7.0, Data Recovery Utility, April 2015 +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. +	  </code></pre> + +      <p> +        After hitting proceed <code>photorec</code> 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. +      </p> + +      <pre><code> +PhotoRec 7.0, Data Recovery Utility, April 2015 +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 +	  </code></pre> + +      <p> +        Then <code>photorec</code> 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. +      </p> + +      <pre><code> +PhotoRec 7.0, Data Recovery Utility, April 2015 +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/... +	  </code></pre> + +      <p> +        Now this menu is where I don't just go with the default path. +        <code>photorec</code> 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 +        <code>photorec</code> to search everything. +      </p> + +      <pre><code> +PhotoRec 7.0, Data Recovery Utility, April 2015 +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 +	  </code></pre> + +      <p> +        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. +      </p> + +      <pre><code> +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 +	  </code></pre> + +      <p> +        And then just press <code>C</code>. <code>photrec</code> 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. +      </p> +    </article> +  </body> +</html> diff --git a/posts/unix/2020-07-26-now-this-is-a-minimal-install.html b/posts/unix/2020-07-26-now-this-is-a-minimal-install.html new file mode 100644 index 0000000..07a398a --- /dev/null +++ b/posts/unix/2020-07-26-now-this-is-a-minimal-install.html @@ -0,0 +1,107 @@ +<!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="/includes/images/logo_diag.png" /> +    <meta property="og:site_name" content="53hor.net" /> +    <meta property="og:title" content="Now This is a Minimal Install!" /> +    <meta property="og:type" content="website" /> +    <meta property="og:url" content="https://www.53hor.net" /> +    <title>53hornet ➙ Now This is a Minimal Install!</title> +  </head> + +  <body> +    <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="/hosted.html"> +            <img src="/includes/icons/desktop-tower.svg" /> +            Hosted +          </a> +        </li> +        <li> +          <a type="application/rss+xml" 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> + +    <article> +      <h1>Now This is a Minimal Install!</h1> + +      <p> +        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. +      </p> + +      <p> +        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. +      </p> + +      <p> +        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. +      </p> + +      <p>FreeBSD rocks.</p> +    </article> +  </body> +</html> diff --git a/posts/unix/dear-god-why-are-pdf-editors-such-an-ordeal.html b/posts/unix/dear-god-why-are-pdf-editors-such-an-ordeal.html new file mode 100644 index 0000000..9adc833 --- /dev/null +++ b/posts/unix/dear-god-why-are-pdf-editors-such-an-ordeal.html @@ -0,0 +1,79 @@ +<!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="/includes/images/logo_diag.png" /> +    <meta property="og:site_name" content="53hor.net" /> +    <meta property="og:title" content="All PDF Readers/Editors Suck" /> +    <meta property="og:type" content="website" /> +    <meta property="og:url" content="https://www.53hor.net" /> +    <title>53hornet ➙ All PDF Readers/Editors Suck</title> +  </head> + +  <body> +    <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="/hosted.html"> +            <img src="/includes/icons/desktop-tower.svg" /> +            Hosted +          </a> +        </li> +        <li> +          <a type="application/rss+xml" 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> + +    <article> +      <h1>All PDF Readers/Editors Suck</h1> + +      <p>All PDF editors/mergers/tools either:</p> + +      <ol> +        <li>Cost hundreds of dollars</li> +        <li>Require uploading private documents to a server for processing</li> +        <li>Leave watermarks or charge you for "pro" features</li> +        <li>Are blatant malware</li> +      </ol> + +      <p> +        Except mupdf and mutool, which are absolutely amazing and I can't live +        without them. +      </p> +    </article> +  </body> +</html> diff --git a/posts/wheels/2019-06-07-how-to-start-and-drive-a-hudson-hornet.html b/posts/wheels/2019-06-07-how-to-start-and-drive-a-hudson-hornet.html new file mode 100644 index 0000000..e60e5f4 --- /dev/null +++ b/posts/wheels/2019-06-07-how-to-start-and-drive-a-hudson-hornet.html @@ -0,0 +1,328 @@ +<!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="/includes/images/logo_diag.png" /> +    <meta property="og:site_name" content="53hor.net" /> +    <meta +      property="og:title" +      content="How to Start and Drive a Hudson Hornet" +    /> +    <meta property="og:type" content="website" /> +    <meta property="og:url" content="https://www.53hor.net" /> +    <title>53hornet ➙ How to Start and Drive a Hudson Hornet</title> +  </head> + +  <body> +    <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="/hosted.html"> +            <img src="/includes/icons/desktop-tower.svg" /> +            Hosted +          </a> +        </li> +        <li> +          <a type="application/rss+xml" 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> + +    <article> +      <h1>How to Start and Drive a Hudson Hornet</h1> + +      <p class="description"> +        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. This is for the non-experts, and +        non-Hudsonites to get an idea of what it's like. +      </p> + +      <p> +        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. +      </p> + +      <h2>The Gauge Cluster, Switches, and Controls</h2> + +      <p> +        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 +        <em>should</em> 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. +      </p> +      <p>From left to right above the steering wheel you have:</p> +      <ul> +        <li> +          A speedometer that tops out at 120 mph (with 99K odometer inside) +        </li> +        <li> +          Fuel and coolant temperature gauges (and two dummy lights; more on +          those later) +        </li> +        <li>A clock</li> +        <li>An AM radio</li> +        <li>A glove compartment</li> +      </ul> + +      <p>From left to right under the steering wheel you have:</p> +      <ul> +        <li>A 2-speed wiper control knob</li> +        <li>A weather control (heater) temperature slider</li> +        <li>A 2-speed weather control fan knob</li> +        <li>The ignition barrel</li> +        <li>A headlight switch</li> +        <li> +          A cigarette-lighter (the owner's manual calls it a cigar lighter!) +        </li> +      </ul> + +      <p> +        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. +      </p> + +      <h2>Dual-Range Hydramatic</h2> + +      <p> +        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. +      </p> + +      <p> +        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: +      </p> +      <ul> +        <li>N (Neutral)</li> +        <li>4-Dr (Drive, all four speeds)</li> +        <li>3-Dr (Drive, three speeds only)</li> +        <li>Lo (Low gear)</li> +        <li>R (Reverse)</li> +      </ul> + +      <p> +        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). +      </p> + +      <p> +        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. +      </p> + +      <p> +        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. +      </p> + +      <p> +        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. +      </p> + +      <h2>Choke and Gas</h2> + +      <p> +        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. +      </p> + +      <p> +        For warm starts the engine doesn't need the choke but likes to be given +        just a little bit of gas while cranking. +      </p> + +      <h2>The Keys, Ignition, and Warning Lights</h2> + +      <p> +        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. +      </p> + +      <p> +        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. +      </p> + +      <p> +        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). +      </p> + +      <p> +        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. +      </p> + +      <h2>Starting and Driving</h2> + +      <p> +        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. +      </p> + +      <h3>From cold:</h3> + +      <ul> +        <li> +          Put your foot on the brake, and shift the lever into neutral. Just +          push it vertically, pulling towards you slightly if you need to. +        </li> +        <li> +          Push the gas pedal all the way to the floor once and let your foot +          back up again to set the choke. +        </li> +        <li> +          Put the key in the ignition and start the car (the "AMP" and "OIL" +          lights should switch off. +        </li> +        <li> +          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) +        </li> +        <li> +          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 +        </li> +        <li>Let off the brake and you're off!</li> +      </ul> + +      <h3>From warm:</h3> + +      <ul> +        <li>Put your foot on the brake and shift into neutral.</li> +        <li> +          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. +        </li> +        <li> +          Pull the shifter into 4-Dr or 3-Dr (or R), and release the parking +          brake by twisting the handle towards the steering wheel. +        </li> +        <li>Done.</li> +      </ul> + +      <h2>Stopping and Parking</h2> + +      <ul> +        <li> +          Hold your foot on the brake and twist the parking brake handle towards +          the door of the car, and pull it towards you +        </li> +        <li> +          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. +        </li> +      </ul> + +      <p> +        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. +      </p> + +      <p> +        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. +      </p> +    </article> +  </body> +</html> diff --git a/posts/wheels/2019-07-04-yabs-yet-another-bad-shop.html b/posts/wheels/2019-07-04-yabs-yet-another-bad-shop.html new file mode 100644 index 0000000..e1dcaa2 --- /dev/null +++ b/posts/wheels/2019-07-04-yabs-yet-another-bad-shop.html @@ -0,0 +1,241 @@ +<!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="/includes/images/logo_diag.png" /> +    <meta property="og:site_name" content="53hor.net" /> +    <meta property="og:title" content="YABS: Yet Another Bad Shop" /> +    <meta property="og:type" content="website" /> +    <meta property="og:url" content="https://www.53hor.net" /> +    <title>53hornet ➙ YABS: Yet Another Bad Shop</title> +  </head> + +  <body> +    <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="/hosted.html"> +            <img src="/includes/icons/desktop-tower.svg" /> +            Hosted +          </a> +        </li> +        <li> +          <a type="application/rss+xml" 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> + +    <article> +      <h1>YABS: Yet Another Bad Shop</h1> +      <p> +        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. +      </p> + +      <h2>Mom's Truck -- Balls Out</h2> + +      <p> +        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. +      </p> + +      <p> +        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. +      </p> + +      <h2>Friend's Minivan -- Crude Necessities</h2> + +      <p> +        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. +      </p> + +      <p> +        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 +        <em>completely</em> 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. +      </p> + +      <h2>Monty, My 2013 Ford Focus -- Nut Allergy</h2> + +      <p> +        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. +      </p> + +      <p> +        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. +      </p> + +      <p> +        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. +      </p> + +      <h2>Ol' Blue -- Tunnel Vision</h2> + +      <p> +        This was the real kicker. And this one doesn't really have any trailing +        narrative. I got four new tires on Ol' 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 +        <a href="https://dbtires.com/">check out Diamond Back's website</a> 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. +      </p> + +      <p> +        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. +      </p> + +      <p> +        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. +      </p> + +      <h2>Not All Bad</h2> + +      <p> +        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 Ol' 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. +      </p> +    </article> +  </body> +</html> diff --git a/posts/wheels/2019-08-30-keep-right-except-to-pass.html b/posts/wheels/2019-08-30-keep-right-except-to-pass.html new file mode 100644 index 0000000..61f329f --- /dev/null +++ b/posts/wheels/2019-08-30-keep-right-except-to-pass.html @@ -0,0 +1,114 @@ +<!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="/includes/images/logo_diag.png" /> +    <meta property="og:site_name" content="53hor.net" /> +    <meta +      property="og:title" +      content="Left Lane is for Passing, Not Cruising" +    /> +    <meta property="og:type" content="website" /> +    <meta property="og:url" content="https://www.53hor.net" /> +    <title>53hornet ➙ Left Lane is for Passing, Not Cruising</title> +  </head> + +  <body> +    <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="/hosted.html"> +            <img src="/includes/icons/desktop-tower.svg" /> +            Hosted +          </a> +        </li> +        <li> +          <a type="application/rss+xml" 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> + +    <article> +      <h1>Left Lane is for Passing, Not Cruising</h1> + +      <p> +        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 +      </p> + +      <blockquote>LEFT LANE IS FOR PASSING NOT CRUISING</blockquote> + +      <p> +        Believe it or not this has been the law throughout Virginia for years +        (<a +          href="https://law.lis.virginia.gov/vacode/title46.2/chapter8/section46.2-804/" +          >read about it here</a +        > +        and +        <a +          href="https://law.lis.virginia.gov/vacode/title46.2/chapter8/section46.2-842.1/" +          >here</a +        >). 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. +      </p> + +      <p> +        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. +      </p> + +      <p> +        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. +      </p> +    </article> +  </body> +</html>  |